IIIH
US006907516B2
(12) United States Patent ao) Patent No.: us 6,907,516 B2
Kirovski et al. (45) Date of Patent: Jun. 14,2005
(54) COMPRESSION OF PROGRAM
INSTRUCTIONS USING ADVANCED
SEQUENTIAL CORRELATION
(75) Inventors: Darko Kirovski, Bellevue, WA (US);
Milenko Drinic, Los Angeles, CA
(US); Hoi Huu Vo, Bellevue, WA (US)
(73) Assignee: Microsoft Corporation, Redmond, WA (US)
( * ) Notice: Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.C. 154(b) by 558 days.
(21) Appl. No.: 10/159,857
(22) Filed: May 30, 2002
Prior Publication Data
US 2003/0225997 Al Dec. 4, 2003
Int. C I. G06F 9/00
U.S. C I 712 210
Field of Search 707/101; 712/210
(56) References Cited
U.S. PATENT DOCUMENTS
5,632,024 A * 5/1997 Yajima et al 712/205
5,710,909 A * 1/1998 Brown et al 711/170
5,805,932 A * 9/1998 Kawashima et al 710/68
5,832,126 A * 11/1998 Tanaka 382/239
6,142,682 A * 11/2000 Skogby 703/26
![[blocks in formation]](http://www.google.fr/patents?id=MC0WAAAAEBAJ&hl=fr&ie=ISO-8859-1&output=text&pg=PA1&img=1&zoom=3&hl=fr&q=&cds=1&sig=ACfU3U3deHq5rjfK5Uux3kzLF_A4K15mQA&edge=0&edge=stretch&ci=478,178,382,211)
Compressing program binaries with reduced compression ratios. One or several pre-processing acts are performed before performing compression using a local sequential correlation oriented compression technology such as PPM, or one of its variants or improvements. One pre-processing act splits the binaries into several substreams that have high local sequential correlation. Such splitting takes into consideration the correlation between common fields in different instructions as well as the correlation between different fields in the same instruction. Another pre-processing reschedules binary instructions to improve the degree of local sequential correlation without affecting dependencies between instructions. Yet another pre-processing act replaces common operation codes in the instruction with a symbols from a second alphabet, thereby distinguishing between operation codes that have a particular value, and other portions of the instruction that just happen to have the same value. Local sequential correlation compression such as PPM is then performed.
26 Claims, 6 Drawing Sheets
![[blocks in formation]](http://www.google.fr/patents?id=MC0WAAAAEBAJ&hl=fr&ie=ISO-8859-1&output=text&pg=PA1&img=1&zoom=3&hl=fr&q=&cds=1&sig=ACfU3U3deHq5rjfK5Uux3kzLF_A4K15mQA&edge=0&edge=stretch&ci=330,736,270,488)