throbber
.
`(.2; Umted States Patent
`Dye et al.
`
`(54) SELECTIVE LOSSLESS. LOSSY, OR NO
`COMPRESSION OF DATA BASED ON
`
`W5}
`
`ADDRESS RAI\’GI-Z. DA'l'A TYPE. ANDIOR
`REQUESTING .-KG]-3.-\i'l‘
`I11vent0rs: Thomas A. Dye, 6621 Candle Ridge
`Cove. Austin.
`(US) "F8731: Manuel
`J. .'-\]\"fll‘9Z.. II.
`Pi3'[Jp€l' ROCK Dl'..
`.r\1JSlll‘L TX (US) 73717; PEIOI‘ Geiger.
`[0407 'l_l'i3&.‘iL1n: Island D12, AL]SLl!'1. TX
`(US) 78730
`
`( "'
`
`) Nmice:
`
`Subiccl In any disclaimer. the term Ofllllhi
`patenl is extcxided or adjusled under 35
`A
`~.
`Q
`E
`_
`Uibit I 1‘-“bl by 0 d lyb‘
`
`_
`..
`lg” MP1‘ N“" "M39559
`.
`02> Filed:
`Jan-29-1999
`
`Reimd U-S- APP1i9=“i0fl Data
`(03) Cmliriuatiuall-in-Part nf'applicaLi011 N0. 0Rr‘916.4-6-'1.
`filed cu1Aug. H. 1997. m':\\-' 13:11. No. 6.173.381. which
`is a con1'iuuatio11—in—pzm of application No. (183463.
`‘I06.
`O11 .ll.ll‘l. 5, 1995. l'i{'.|W‘ Elballdflllfid. \’v‘l1iCl'l iii
`0 comintualiun-i11-pan Mapplicutiun N0. 03;’340.6{'w7.
`filed on Nov. 16.
`.1994. now Pat. No. 6.002.411,
`
`(51)
`
`(52)
`
`Int. Cl.
`H()3M 7,39
`G061.“ I.-_a/00
`11.5. (.1.
`
`(3905.01)
`(200501)
`341rs1;340s7;710xes<;
`
`['56)
`
`3822'.’-232.
`(58) Field of Classification Search
`333233.244: 710a’63: 709K247: 341151.
`.-'l4lr’372 7ll/l7U
`See application lile for complete sean:l1 liismry.
`References Cited
`_
`_
`_
`__ _
`‘
`_
`U-5- P“\”=m DC“ U1‘/111“ F5
`='I.(J[l8.460 A
`2:l9'!T Bryant at :0.
`4-688.108 A
`3-1937 Cotton ct 211-
`4375.54! A
`ID-"I939 Slnrer
`
`395.-463
`353-'Jfil-I
`
`|||||||||||||||||||||||||||||||||||l||||||||l|||l||||||||||||||||||||||||||
`
`US007l90284Bl
`
`(10) Patent No.:
`(45; Date of Patent:
`
`US 7,190,284 B1
`Mar. 13, 2007
`
`»l.SSI.0';‘5 A
`4,903,317 A "‘
`
`4337-541 A "'
`Q
`..
`,
`.*
`
`ll-I989 Wang ........................ .. 34l-'8?
`3:‘ |‘)*){}
`l\lishil1:u'n el :Ll.
`..
`353-"I .9
`
`
`701935
`
`F1991 L¢\'_¢{11¢ °1'=I1-
`fgtyns C18}-
`_r
`Illnge .1.
`
`A
`§Il5D_430 A
`_-3_1_-1_-1..-1.3.4 A
`5.13"-".4610 A
`5.237.675 A
`5.347.533 A
`
`9.499; mailing at M:
`94992 Ch“
`[(1.-"mg:
`{-].m_mheI.5_ [V
`8r'I993 Miller El .1].
`Se"l993
`lI:1nnnl'l.Jr.
`'.l"l993 fJ'BriEl'l el :1].
`
`
`
`5«347-545 1*‘
`
`9-"1993
`
`0-‘*'*-’l‘l""d '-" Ell
`
`_'i9S.'S3H
`7ll.lr'68
`395-‘S88
`
`395-333
`
`_
`,
`3.____.
`5.337.275 A
`5.353.024 A
`5.353.425 A
`.-.
`.
`iiiiiii ii
`5.379.035 A
`5.339.022 A
`
`4D6';7q
`5.413339 A
`5414325 A
`5_414‘35u A
`5.410.696 A
`.'7l.4.l'5.'.-"T9 A
`5.455.577 A
`5.455.943 A
`5.4fi::.390 A
`
`,,
`
`e :1.
`|
`S-"I994 Garner ................ .. 365-‘ l39.(l|
`10 I994 Graybill
`10-1994 Malamyvat :0.
`I
`I
`01.
`13.1333 213%?
`I-"I995 Siurer
`2.-I995 Seton-ssi el 0].
`
`7:1--144
`552
`39
`5"
`
`35S"'42fi
`
`358.-"463
`
`4.199‘. A;’:{er;un°cI‘:]
`5_.|g9_; Elmer
`'‘
`5.1995 Whiting el “L
`5.1995 \m,i;j,-,g
`5» I995 Wegeng el al.
`IS-"I995 Chambers. IV
`Ill» 1995 Slivkfl rrl éll.
`............... .. 3-4|-"51
`I0'_l‘)95 <'.‘ha_n_1bers. IV
`lU'l?9:
`\T;1l1llll],g ct .1].
`gmipheil E1 al‘
`
`m__.l_“
`
`5_493_59g A ‘e
`5.506.580 A
`5.5l[.'.ii4U A
`5-535-933 A
`5.53_6.3fi3 A
`5.53.-‘.693 A
`5.532.694 A
`5.539.055 A '
`it
`.,
`S.SS9.9?8 A
`5.563.935 A
`
`3..-"1995 Suzuki .-M1, _____________ H _31(;.-gm
`41990 Whiting eta]
`4-':l‘J9fi Yoncmit.-au ct ill.
`5' ["95 511-518 5'51-
`6-"1996
`\7\-‘bis.-9,81
`.
`T"l99fi Wint::1's cl nl.
`1'-""1996
`.\JIa;.'ers at al.
`T.-‘I996 Gentile
`358.-‘L16
`I‘;;::§n‘;'“]'
`
`9 I996 Spilo ........................ .. m.'20.1
`................ .. 34|-"I05
`Ill-'l‘}‘}6
`S1l'0l'1:lck.eI'
`
`
`
`Illlflll
`Elllélildlwlll
`mfimnm mmm
`
`Pvuliflolllldlhhlespulw
`h'fl|I‘.l.|l!l
`
`Oracle 1039
`
`Oracle 1039
`
`

`
`US 7,190,284 B1
`Page 2
`
`71l"ll4
`700521-1
`.. 358-'1_15
`3587404
`
`
`
`..
`
`......... .. 395-"308
`382232
`
`3584.16
`
`
`
`395-'49’.-".04
`3957170
`
`11.1996 Miller el 3.1.
`5.5'72.206 A
`1171996 Chambers. [V
`5.577.248 A
`1231996 Shitmttlrl et al.
`5.584.008 A
`1251996 Uchara
`5.590.047 A '1'
`2.'l9'-)7 Cooper et al.
`5.602.976 A "'
`31997 I-Ianselrnan
`5.606.428 A
`431997 Rczttik
`5.631.403 A
`451997 Schocnzcit or al. ,.. 375-‘£40.05
`5.625.712 A "'
`5-‘I997 Miller el al.
`5.627.995 A
`7-‘I997 ("rail
`5.653.878 A
`12-‘I997 Bicevskis el al.
`5.606.912 A
`371998 Pclartck ct‘ ttl.
`5.714.582 A "'
`361998 Franaszek cl :1].
`5.729.228 A
`64998 Mssenns
`5.771.011 A
`‘H1993 Clark at al.
`5.773.255 A
`831998 C1‘Itrra.ct al.
`5.793.937 A "‘
`81998 Hatiatly
`5.798.718 A
`971998 Hovis e1 :1].
`5.812.817 A
`10.1998 Pearce cl
`:1].
`5.828.877 A
`1171998 Starlet:
`5.835.003 A
`1171998 Dye
`5.838.334 A
`375..'l40.l5
`131998 Canficlcl eltt].
`5.847.762 A
`12.1998 Vond.nJ.n el al. ............. .. 710.91
`5.351.742 A
`.Z.'1999 (‘ntfl
`5.874.908 A
`391999 (‘rail
`5.877.711 A
`331999 {J1-ttttrturtt
`5.883.588 A
`$1999 Kimura
`5.933.104 A
`871999 Higuchi
`5.936.560 A
`871999 Kalkstein
`5.945.933 A
`91999 Vaman ct :11.
`5.956.372 A
`1021999 Tsang
`5.96l.fii7 A "‘
`101999 I-leatlt
`5.973.630 A
`1251999 Dye
`6,002,411 A
`1251999 Chttdez
`6.002.814 A “‘
`5-“I000 Dye
`6.067.098 A
`11-"3000 Dye
`6.145.069 A
`1-".'£(J0l Dye
`6.170.047 B1
`l.-‘Z1101 Dye
`6.173.381 Bl
`332001 Banton ................ .. 358.-426.02
`6.198.850 B-1*
`3:'.‘.001 Dye
`6.208.373 Bl
`[11
`933001 Powell.
`6.292.194 131*
`1253001 Shitnomtua et al.
`6.333.745 B1
`1-"2004 Kitsugi at al.
`200470017483 A1"'
`FOREIGN PATENT DOCUMENTS
`
`710.4100
`
`3457521
`358.-'l.l5
`
`7.36792 B
`
`3-48.‘J07.*)9
`
`E1’
`JP
`W0
`
`0 702 457
`05204747 A “
`95* 1966.?
`
`3.-"1996
`8.-"1993
`7'1’.-3'95
`
`CDTI 113R PU Bl.l(.'A'l‘lONS
`
`Btenza. "Synonym Avoidance Cache." IBM "technical Disclosure
`Bulletin. vol. 34. No. 1. Jun. 1991. pp. 377381.
`lntemalional Searclt Report for Application No. PCTFIIS 00303355.
`rrtajlcd Jun. 16. 2000.
`1.1.8. Appl. No. 087463.106. filed Jun. 5. 1995. Dye.
`
`U.S. Appl. No. 6071*-14.125. 11ll2t1.11.Il. 16, 1999. Dye.
`[l.S. Appl. 1*-‘o. 097-5191.343. filed Jan. 26. 3000. Dye.
`LKS. App]. No. 093818.283. filed Mar. 27. 2001. Dye.
`‘Yabe at al.. Cot11pression."Decompression DRAM For Unified
`Memory Systems: A 16 Mb. ZUOMHZ. 90% to 50% GFflph1CS~
`Bartdwidtlt Reduction Prototype. IEEE [998 So1id—Sta1e Circuits
`Conference. Feb. 1998. pp. 343-343.
`1'-ijclso er al.. Design and Performance of E Main Memory l‘1.1Ll'€1Wa.l't.T
`Data Cotttpressor. EuroMict'o 96 Conference. IEEE. Sep. 1996. pp.
`423-430.
`
`“ cited by cxzuniner
`
`Prt‘matjt'
`
`.':‘.\-mttmezr-— Ilong Kiru
`
`(57}
`
`ABSTRACT
`
`An integrated mentory controller {IMC} including Memo-
`ryF."X Teciinology which includes data compression and
`decompression engities for
`improved perlonnance. The
`memory con1roller(lM(‘,l ofllie present invention preferably
`selectively uses at combination of lossless.
`lossy. and no
`compression modes. Data transfers to and from the inte-
`grated memory controller of the present‘ invention can thus
`be in a plurality of fornists.
`these being compressed or
`normal (I1t)1'l-Ct)t'tlprE.'SS6(1)_. compressed lossy or lossless. or
`compressed with a combination of lossy and lossless. The
`invention also indicates pl‘E!1iE:t'rEd methods for specific com-
`prcssiou and dccornprcssion of particular data lortnats such
`as digital video. 3D textures and image data using :1 com-
`bination of novel lossy and lossless compression algorithms
`in block or span addressable fomtats. To improve latency
`and reduce per1"orm:mce degradations normally associated
`with compression and decompression techniques,
`the
`Menloryl".-‘X Tee-ltnology encompasses multiple novel tech-
`niques stlch as: 1 1 parallel losslcss t:ompressi0nf¢lecompres'-
`sion; 2) selectable compression modes such as lossless.
`lossy or no compression: 3) priority compression mode: 4]
`data cache toehniqttes; 5) variable compression block sizes:
`6] compression nsortdcring; and 7] unique address transla-
`tion. attribute. and address caches. The parallel compression
`and decompression algorilllut allows ltiglt-speed pawl]:-1
`compression and high speed parallel dccorupression opera-
`tion. The IMC also preferably uses a special memory
`allocation and directory teclmjque tor reduction of table size
`and low latency operation. 'l1:te integrated data contpression
`and decompression capabilities of the [MC remove system
`bottle-necks and increase perlormattcc. This allows lower
`cost systems due to smaller data storage. reduced bandwidth
`reqttirelttcnts. reduced power and !‘lL‘llf-I-.‘.
`
`16 Claims, 34 Drawing Sheets
`
`

`
`A
`
`Cache E cpu
`195
`E
`
`Local Bus 1o5—-. H A
`
`8vs*emMem°rv11°
`ll
`
`Frame Buffer Memory 114
`
`A
`
`IIF
`
`A
`
`
`
`\ PCIIAGPBus
`
`107
`
`_
`Hard Disk
`go
`
`
`
`
`HO Subsystem
`Controlier
`115
`—
`
`Keyboard
`12
`
`Mouse
`12;‘
`
`_
`Audro DAG
`2.33:
`
`C
`
`A
`
`IIO Bus 113
`
`Fig. 1
`(Prior An‘)
`
`
`
`If]I78Z"[I6I"LSJ]PE1“I-I3-THIS.".l}llZTl‘-WW2|I.l3Z|Bd'S'f1
`
`
`
`
`
`

`
`
`
`
`IIO Subsystem
`Controller
`
`Video Display 142
`
`
`
`|{]p8Z"[]6I"LSJ]I‘-‘CJ02l€|3llSLUIIZTl‘JENJ|I.l3Z|Bd'S'f1
`
`
`
`
`
`Fig. 2
`
`m
`
`flfi
`
` Keyboard
`
`

`
`
`
`I8t’8Z‘06l‘LS11V53J“9WW51-003'51“W31313:]‘ST!
`
`
`
`
`
`
`Local Bus 106
`
`
`
`Local CPUr'RiSC IIF
`(lntegraterzi External)
`
`
`
`Audio 8. Modern
`subswem
`
`
`
`System Memory
`110
`
`
`
`
`Video IIO & Formal
`
`
`Memory Controlier
`Digital Video IIF
`Conversion
`wirh Mem§£yF!X Block
`_U
`E
`
`
`
`
`
`
`
`
`VDRL En ine &
`Display F F0‘s
`2_40.
`
`RGBJNTSC
`
`
`
`I...-......-..._._..-.-___._-.-_..._.-
`
`2DI3D!video Graphics
`Eng. VGA
`M
`
`
`
`Peripheral Bus I30 Interface
`E
`
`Fig. 3
`
`

`
`
`
`
`
`[8fr8Z‘06[‘,'_SflI’-'1.‘J01-‘wellsr'.130Z't'['-WINJIIBJEJ'S'fl
`
`
`
`
`
`29
`
`_______ _ _ _R§'l“E5£3_"§’903153.31
`
`III1
`
`Address Bus 1 215
`
`Data Bus 1 216
`
`Address Bus I1
`
`Data Bus n
`
`
`
`
`Parailel Compression 8. Decompression Unit
`251
`
`110
`
`
`
`
`
`Compression
`Control Unit
`
`_____________ _ _
`
`L3 Data Cache
`
`Compressed Data
`Directory
`E
`
`

`
`“* I
`
`
`‘
`
`E
`
`III
`
`Memo
`_ Switcltny
`,
`§l‘i
`
`~
`
`Compress
`-I switch
`_5_1_6,
`Dat
`
`III
`
`T L
`
`'
`
`I
`
`I
`
`'
`
`-
`Compression
`E""'"° E
`Compression
`Engine
`
`Decompression
`Engine E
`""""fin?
`Decompression
`Engine
`
`'
`
`Memo
`lntenacrzye
`.5511
`
`
`
`mama'S'fl
`

`
`5*‘

`“
`
`"'
`"
`3-;
`
`DRAM
`Controller
`.532.
`
`DRAM
`HOIIF
`E1
`
`CAT
`
`rggg
`
`l
`
`.
`Fr9- 5
`
`u
`
`Key:
`— c
`§-A33?£-"$1"
`T - Tag
`L - Length
`Ty - Type
`
`
`
`S - Status Iflt'8Z‘06l‘LSn
`
`

`
`Inpui Data
`
`Entry
`
`Entry
`
`Entry
`
`Entrysi ss
`ssss 5:?
`snsssssm
`Wsassss
`
`C
`
`n-2
`
`Byte!)
`
`2
`
`5
`
`. 6B
`
`"Art)
`
`
`
`
`
`
`
`
`
`[8|v3Z‘06[‘LSfll'-'}.‘J09Walls’L001‘?!‘WINJIIBJBJ'S'fl
`
`

`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 7 of 34
`
`US 7,190,284 B1
`
`Parallel Compression
`
`Maintain a history table
`comprising entries
`4.02
`
`Maintain a current count of prior
`matches for each entry in the
`history table
`
`4%
`
`Receive Uncompressed data
`fl
`
`Compare a plurality of symbols with
`each entry in history table
`
`
`
`Determine match information for each
`of the plurality of symbols based on
`the current cc-untlzland compare results
`
`_1_Q
`
`Output compressed data in response
`to the mattih information
`.__2
`
`Fig. 7
`
`

`
`
`
`
`
`
`
`[flf73Z‘0fi[‘,'_SflIVEJ“813'-HISt‘.00Z't'I'-WWIHIBJBJ'S'fl
`
`
`
`
`
`
`
`Start
`
`‘W U"°°."‘|’"’55°d 35'”"’°'3
`to Hastnnr window
`31
`
` Yes
`
`Ft sh Ramainin
`U
`Matchtgp
`m
`
`revbus
`F
`
`Add Uncompressed Symbots
`to History Window
`m
`
`
`
`°”ft”n".~3fi°l‘e§s‘2‘é”°'
`i_
`
`c°J3§1'§c7aa53{1§§$ 21%”
`at
`
`Any
`Matches?
`
`“°
`
`Output Previous
`Compressed Data Info
`434
`
`
`
`
`
`Output Symbol
`Uncompressed
`ifii
`
`
`
`Output Compressed
`.
`.
`r IS Match Include
`
`the '35‘ Symbol?
`Dagafiénfo
`
`
`
`araltel. Shown
`Performed in
`serially for e-age of Iltuslrahun
`
`Reset Counter to Max of
`Symbol Count In Match
`7.3
`L
`
`r...--—._.....-_-.---..--.------------------------
`
`Increase Counter by
`# of Symbuls
`M
`
`Yes
`
`one match?
`
`442"'7
`
`
`
`
`
`
`Select Largest Match
`-
`-
`Inciudlng Pfimus Match
`
`Output Previous
`Compressed Data Info
`E
`
`Fig. 8
`
`

`
`Entry D Data Byte
`
`610
`
`Data 3
`
`Data 2
`
`Data 1
`
`Data 0
`
`UGO—smt..>
`
`Compare
`Outputs to
`Later
`Entries
`
`Entry D Counter
`511*!
`
`£513.51
`
`Results
`Catcutation
`
`Output Mask
`
`Output Count
`
`Fig. 9
`
`
`
`|{]pSZ'[|6I"LSJ]I‘-"E1°6-l33llSLUIIZTl‘JENJllallfid'S'n
`
`
`
`
`
`

`
`
`
`
`
`[8r3Z‘0fi[‘,'_Sflt-‘EJ9Ill133118L001‘?!'«‘“M.|JIIBJBJ'S'fl
`
`
`
`
`
`
`
`Ent
`
`0 Count & Mask
`
`Entry 1 Count & Mask
`Ent
`2 Count & Mask
`_
`;
`
`Ent
`
`n Count 3. Mask
`
`Ent 0 Count & Mask
`
`1 Count & Mask
`Ent
`Em 2 Cflunt & Mask
`
`Ent
`
`‘
`n Count 8: Mask
`
`Ent
`
`0 Com ress Mask
`
`Prev Count Index
`
`
`
`Output Stream
`
`
`
`
`.51_3
`
`
`:
`
`Combined Comress Mask
`
`En
`
`n Compress Mask
`
`Fig. 10
`
`Output Data Stream
`
`Reset Value
`
`Max Count Index
`
`
`
`To Results Calculation
`
`Data
`0
`
`Data
`1
`
`Data
`2
`
`Pm”
`Data
`3
`
`

`
`
`
`ISt78Z‘06l‘LSf]N31“ll1"‘“|S3-003'*31°“"'WJuaflgd‘ST!
`
`
`
`
`
`Fig. 11
`
`Output
`Counter
`
`Saved +4
`
`Saved+3
`
`Savedi-2
`
`Saved+2
`
`Saved+1
`
`Saved+1
`
`Saved+1
`
`Saved+1
`
`Saved
`
`Saved
`
`Saved
`
`Saved
`
`Saved
`
`Saved
`
`Saved
`
`Saved
`
`Output
`Mask
`
`Reset
`
`Value
`
`10000
`
`10001
`
`10010
`
`10011
`
`10100
`
`10101
`
`10110
`
`10111
`
`11000
`
`01111
`
`11010
`
`11011
`
`11100
`
`11101
`
`11110
`
`11111
`
`It-1:5-I:-43-J3--I3--it-I5!-(.IJ(D(a)(.I)hJ|‘hJ—I$
`
`New Counter
`
`Value
`
`Saved+4
`
`0 |
`
`:J—'-€:lI'\.JC)—ICDLn>l:'J-5CJl\JZ—K
`
`Input Matches
`Iiillifl
`1
`1
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`1
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`D
`
`1
`
`1
`
`1
`
`D
`
`0
`
`0
`
`0
`
`1
`
`1
`
`1
`
`1
`
`0
`
`0
`
`D
`
`0
`
`1
`
`0
`
`0
`
`1
`
`1
`
`0
`
`0
`
`1
`
`1
`
`U
`
`D
`
`1
`
`1
`
`0
`
`D
`
`1
`
`3-5-$—l§—K§—l§—i-§—|-§—¥CI
`
`

`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 12 or 34
`
`US 7,190,284 B1
`
`
`
`Send out
`
`compressed block
`IE
`
`Adjust max count
`to 4 or less
`E
`
` Yes
`
`
`
`Mask — 10000?
`1.23
`
`
`No
`
`Send out
`compressed block
`731
`
`No Yes
`sendou
`
`Z3
`
`No Yes
`
`Send LZ12
`compressed block
`E
`
`
`
`Yes
`
`
`
`CCM(O) = 1?
`
`7_4_9
`
`
`No
`
`Send out data 0
`E
`
`N0
`
`Send out data 0
`Z51
`
`No
`
`Send out data O
`M
`
`Fig. 12
`
`Done
`
`

`
`U.S. Patent
`
`Mar. 13,2007
`
`Sheet 13 of 34
`
`Us 7,190,284 B1
`
`Entry
`
`0‘l2345B?B91D1112131415
`
`smonw EHEEHEEHHEHHEEEE
`cm mmmmmmmmmmmmmmmm
`
`Input D3:U COF?F3F9
`
`mwmmm@@mmmmmmmmmmmm
`Mam"! IEIIEIEEI
`
`sm1om mnflnmflnnflflfinnflflm
`cm @m@@m@@mmmmmmmmm
`
`Input D3:0
`
`FOF1F2B5
`
`wwmm@mmm@mmmmmmm@mm
`mm=nnn@nnflnm@flnnmnm
`I
`OW
`smzvm Efliflflflflflflflflfiflflfifl
`Cow“
`IEIEEIEIEEIIEIIEIEIEIEIEIEIIEIIEIIEJ
`
`InputD3:fl
`
`wmmm@mmmmmmmm@mmmmm
`Maskout |i'l|T_F||l'l
`OW
`mm mm EHHHHHEEHHEHEHEH
`CM IEIIEIIEIIEIIEEIBJIEIEIEJEIEIEIIEIEIEI
`
`|nputD3:O
`
`state»:
`
`mmmmm@mmmmmmmmmmmm@
`mmtflmflwflflnmmflflflnmnfl
`Output
`were IE2!
`001"“
`EEIEIEIEIIEIEIE]lE|[EJ|Ell'£Jl'§lElIEAItema:eoutpu:
`Finaloutput
`
`1 3
`
`Alternate Output
`
`

`
`

`
`
`
`
`
`[HI78Z"{I6I"LS1]175J051133115L002"El‘JENIlllallfid'S'f1
`
`
`
`
`Select Generation
`
`
`
`><—=cv><¢'>EI_
`
`—~¢=r><><I:J._¢'_‘-I_
`
`C3)-(DI:-‘
`
`A!
`C
`0
`X
`1
`X
`
`B.‘
`D
`X
`0
`X
`1
`
`Output
`
`A
`3
`C
`D
`
`A)‘
`
`B 0 1 X X
`
`Fig. 1
`
`Select
`
`
` l._'%flI
`
`2
`Co
`
`re
`
`2 Way
`Compare
`
`

`
`-...-..--._._-.._- .._....__......_.......................................................—..-........_............_........r
`
`Lossy Compression Engine fl
`
`121
`
`r..__........_._._.._.._._...._..................-......-..-..........-....-.....-.-—-.......——-........_........._...._..-...
`Loasy Decompression Engine fl
`
`GmmmC
`
`
`
`Fm.3:2:2»:B.2::2.3.3$3cm.._.E=.~§E
`
`
`

`
`
`
`lIl3J3d‘STI
`
`3 ?
`
`:7»hi
`5
`“'
`
`[Hf*8Z'0(‘-1'1’.S11
`
`
`
`
`
`
`Fig. 19
`
`Amax=Amin = Dxfll]
`--
`3
`Ymax=Ymin
`AmaJ:=Amin=fixFF
`~
`— EDIE
`E
`max = Amin .!= 00 or FF IEEEEIIEE
`;'
`—:EEI[EEE [E1313 413 "5
`-
`Yrnax IEEIEEI 01
`
`15b1'f5 —— if:
`‘"3 bits
`_— HE Bbits EEEEEI 4f3 bits
`_ I@IID%_ 3?-9 B fies
`T WHERE 4:‘?! bits
`418 bits
`32 tilts jj
`IEIEEEIEEIEEIEJEEEIIEEIE ‘NB 3 135
`T E Bblts mmmm 4!8 bits
`4i8bIts [Maj
`9H0 B 195
`
`
`—— 5bitS5bil8 5bit54!3bilS 32bif5
`
`%@
`—_fi
`
`E
`—:@
`IEEI
`
`E
`
`
`
`
`
`
`
`

`
`INPUT Bus
`
`Loss-"Les; Parallal
`Compres§_:%n Engine
`——————— — —
`
`—
`
`Memory Bus
`
`Compressed
`Data
`
`
`
`10913-d'STl
`
`Lossy Compression
`Engine
`£15
`
`_____________ _ .
`
`Lnssy Decompression
`En Ina
`
`fij
`-—- - --uv Decornpressad Data
`
`
`
`Engine
`

`
`5 3’
`
`=
`--I
`
`m='
`FD
`2
`
`ED
`""
`E
`
`W"
`
`:75
`2"
`E
`1:’
`
`g E
`
`— — —FrI'rnaryoompres5ion
`___ _ _ _ '"[9"T‘9°"3°9
`Decompression
`----------- Decompression
`
`Loss-Less Parailel
`Decompression
`
`‘:
`
`fig
`
`E
`
`‘""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
`
`Compressed Data
`"""""""""""""" "
`.
`Fig. 20
`
`

`
`310
`
`320
`
`330
`
`340
`
`350
`
`§§¥\.\§
`
`Texture
`_310_2
`
`3D-DL
`fl
`
`2D-DL
`m
`
`DV-DL
`E
`
`VDRL
`fl
`
`
`KC!’
`
`
`
`-
`
`-
`
`°es=m"°"°ata
`
`Dlcmp
`
`Crnp
`
`.
`
`l—Cmp
`
`-
`
`may
`
`,
`
`Hg. 21
`
`360
`
`370
`
`380
`
`390
`
`396
`
`300
`
`
`
`
`
`[8|v3Z‘06[‘,'_SflHEJ“6!“N181'.Bl]Z'%Tl'«‘“M.|JIIBJBJ'S'fl
`
`
`
`
`
`

`
`U.S. Patent
`
`Mar. 13. 2007
`
`Sheet 20 of 34
`
`US 7,190,284 B1
`
`Compression of received data
`
`Receive uncompressed data
`
`5.0.2
`
` Determine a compression mode
`
`of the data
`QEL4.
`
`Selectively compress the
`uncompressed data according to the
`compression mode
`
`5.0.6.
`
`
`
`Store the data in the memory; store
`compression mode information with
`the data
`flfi
`
`
`
`
`Fig, 22
`
`

`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 21 of 34
`
`US 7,190,284 B1
`
`Access compressed data
`
`Receive a request for the data
`812
`
`Access the data from the memory
`.8.1_4
`
`Determine a compression mode
`for the data
`§l§
`
`Selectively decompress the data
`according to the compression mode
`BE
`
`Provide the data in response
`to the request
`
`QZQ
`
`Fig. 23
`
`

`
`Address (31:01
`
`
`
`Compressed Address Translation Table [GATT] Overflow Address Table {OAT}
`?2 bits per entry
`53 bus per entry
`1 entry per oompressed memory range
`256 entry max
`2?1(]
`
`
`
`Note:
`CATT not required for
`single address range
`implementations
`['re frame buffers} Initiai Allocation Area
`
`Memory Block Equal in srze to Memory Range
`
`Srze Divided by Maximum Compression Ratio.
`
`
`Contains one compressed block for each
`uncompressed block.
`
`Zlfl
`
`
`
`
`
`
`
` Ii]f78Z‘{Ifi[‘,’_Sf]H?J“U139115‘r‘.GOZ'€I"WINIIIIGJBJ'S'fl
`
`
`
` Overflow Area
`
`Memory Block Contains all remaining
`
`compressed blocks for each
`
`uncompressed block.
`
`
`E
`
`Decompression Engines
`flf fl
`
`Add! (1110)
`
`Output Formal Switch
`§§§
`
`
`Compressed Data
`
`2'-L9.Q
`
`Header
`
`Deoompressed Data
`
`F,"g_ 24
`
`
`
`

`
`
`
`
`
`IflI?8Z‘|]I6l‘LSflif19£2l93llSL002'5!'~"‘|r\lJIIBJBJ"S'n
`
`
`
`
`
`Memory Allocation Fields
`
`Starting Addr
`20 bits
`
`4GB Addressabllily
`4K Boundry
`
`Ending Addr
`20 bits
`
`Type
`-3- SU!
`'
`
`ala Plr
`0 bits
`
`OAT Ptr
`
`Compressed
`K Boundry
`Blk Size
`4K Boundry
`Overflow Address Table (DAT)-258 Entry Max
`
`4K Boundry
`
`ED bits
`
`24 bits
`
`8 bits
`
`
`
`‘_m E"i-v-
`
`ieaacaressabmw
`axaoundw T
`lnllial Header Description
`Meaning
`I
`
`Value
`
`bits
`
`1oA{2n no
`11 iA{a+20 bins:
`
`Last B|ocldUnusecl
`
`m2
`
`_Z The nexl block follows physically after this one
`10A (8 bits}
`The next block is A blocks before this one {or after?)
`110A [20 bils} E The next block is at offset A in lhe Overflow Area
`11 1 IA {a+2o bits]
`The next block is at offset A in the Overflow Area of DAT entry I
`
`Fig. 25
`
`

`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 24 M34
`
`US 7,190,284 B1
`
`@Memory Allocation
`[initialized GATT)
`2709
`
`2.711.
`
`Allocate CATT Ent
`
`Arrange entry order
`(if required basedzofri gtartlend address)
`
`Set the compression type
`271 5
`
`A|locate% of the requested memory
`(Based on block size and compression type)
`2717
`
`Set the data pointer to start at the initial block
`in the CATT
`2719
`
`
`
`Allocate Overflow Address memory (DAM)
`(Set by IMC driver or BIOS)
`Typically 118th original data size
`
`2721
`
`Initialize the OAT pointer in the CATT
`2723
`
`Initialize allocated memory headers to zero
`2725
`
`initialize OAT entries, set overflow
`pointer in DAT
`2727
`
`Fig. 26
`
`

`
`US. Patent
`
`Mar. 13, 2007
`
`Sheet 25 of 34
`
`US 7,190,284 B1
`
`
`
`
` @Compressed
`Memory Store (Addr N)
`MB.
`
`
`
`
`Yes
`
`Check
`Cache for Hit
`While searching CA1T
`
`E11.
`
`No
`
`
`
`
`
`Calculate Initial Address I, continue to
`compress data (Validate present entry)
`ZE
`2?§3
`
`
`
`H = Header
`from Address I
`
`
`
`
`
`Remaining
`Compressed block
`:>Btock Size?
`
`(531 Next
`Add,-955 (U:f(H))
`gfl
`
`
`
`
`
`
`
`Store block of Compressed data at
`address I with header=LAST
`
`2737
`
`Store btock of Compressed data at
`address I with2t1?e:r3a9der(U) Set I=U
`
`
`Q H2=HeaderfromAddress H Set
`
`
`Yes
`
`Store uncompressed btock and header
`at Add N in cache and set most
`recently modified bit for cache
`2_74t§
`
`header of H to UNUSED Set I-i=f(H2)
`2745
`
`Done
`
`Fig. 27
`
`

`
`U.S. Patent
`
`Mar. 13,2007
`
`Sheet 26 of 34
`
`US 7,190,234 B1
`
`-
`Deliver dezztggom cache
`—
`
`
`
`
`@Memory Fetch
`(address N)
`E
`
`Yes
`
`
`
`Search
`Cache Directory HIT?
`
`2_?'5i
`
`No
`
`
`
`Solve for initial address (I) = (Matching
`GATT start address - N){)(
`(X is based on data type)
`
`2753
`
`Fetch from memory
`compressed block I
`2755
`
`Strip the Header bits, and decompress
`the remaining data from I
`2757
`
`
`
`Fetch the overflow block using the
`overflow pointer as base and the
`header as offset
`E
`
`
`
`LAST Biock?
`2&1
`
`Yes
`
`Read compressed overflow blocks
`2756
`
`Send decompressed data to
`requesting agent
`Zlfifi
`
`Update Cache, invalidate LRU, mark
`new block as MRU
`2769
`
`Completed compressed
`read operation
`
`Fig 28
`
`

`
`Get next
`
`
`
`address §R=fiH]}
`
`32.2
`Caiculate next trl-oak adtfress poinnar
`
`A = 1(H2?eoader N:
`___E
`
`
`
`
`
`bmck OAT En1ry{u||'F
`2?93
`
`Read Ouesllovn Header @R
`
`
`
`
`
`
`
`New Overflow pointer from OAT
`@nex1 painter
`E
`
`
`
`is next
`
`overflow pointer uaiid?
`
`
`R = R+B|ocI: S‘ e
`
`Dues
`header ilidlcated Unused '?‘
`£011.
`
`Next address painter = R 0 block size
`
` [HI78Z"[I6I"LSf]PE10L2-l33llSL003"El'-WWI|Il3Z|Bd'S'f1
`
`
`
`
`
`
`
`Atlocate new black afflverflaw memory
`and OAT ann-
`270‘-
`
`
`
`
`Store resulling poinier in
`next address poirler
`ZIQE
`
`Set new OAT painter and valid bit
`EYE
`
`Calculaua new ovadluw block address
`[Fll= ffUVI1Pn1.r, ofiset. block size]
`2705
`
`
`
`
`
`
`

`
`
`
`Header
`
`win OF
`
`02%
`
`o
`
`5%
`6%
`
`
`
`a1%
`
`4-3%
`1- 33%
`13%
`11-5%
`
`
`
`
`
`
`
`Header
`
`WIOF
`
`Fragmented
`4.1%
`4.2%
`4.3%
`
`Fig. 30
`
`4.3% [HI78Z'[I()I"LSJ]ff1082.’133115L002‘El‘JENI|Il3Z|Ud'S'f1
`
`

`
`/- 251D
`
`Comgression block §256b[les)
`
`I
`
`I
`
`g
`
`5
`
`
`
`an“
`Intermediate Bfioclvr Seigrnent (32bytes)
`
`Original
`Order‘
`
`/- 2530
`
`1) Read compressed block from memory
`
`2) Decompress to L3 data cache
`
`New read address
`
`3) Store Position tag (@F) in table
`
`4) Re - compress block out of order
`
`/- 2520
`
`5) Attach header with tag (@F)
`
`' Header tag field is '0' indicating in original order
`
`6) Write compressed block back to memory
`
`New
`Compressed IEIIEIIZE
`Order“
`
`“ Header tag field is '5' indicating out of order
`
`Fig. 31
`
`
`
`
`
`If]I78Z."[lfiI"LSJ]I751"63|33llS.".l}0Z‘£l'-WW§|lI3Z|l3d'S'fl
`
`
`
`
`
`
`
`

`
`B hasE
`
`ZZZZTEZZZ
`Ijflflijjj
`Ztfilwflijj
`Ziflmjjjtfl
`jfiijj
`jfijj
`Zijjj
`jjjj
`jfijj
`Zifijj
`jtfljj
`jfiijj
`Eflj
`
`Fig. 32
`
`
`
`
`
`rt100:-|'v3-3115L130:‘El'4'-‘«'w1uaJc.,['g'f1
`
`
`
`
`
`
`
`I8P8Z'[i6I':‘.SJ1
`
`

`
`U.S. Patent
`
`Mar. 13,2007
`
`Sheet 31 or 34
`
`Us 7,190,284 B1
`
`Input Data 8 Bytes
`
`Stage 1: initial lnput Selector and Byte Counter
`
`Stage 2: Calculate Initial Selects and Overflows
`Partial Selects and Overflows
`0
`.
`.
`.
`.
`.
`. 15
`
`25501 —\,~
`
`25503 «X
`
`25505 \
`
`25507 —\
`
`25509 -\
`
`Stage 3: Calculate Final Selects
`Final Selects
`.
`.
`.
`.
`.
`
`. 15
`
`0
`
`T
`
`Pie Reister 128 bits
`
`Stage at: Data Selection
`D
`ata ut
`
`Data
`
`History Window
`
`

`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 32 or34
`
`US 7,190,284 B1
`
`Input Data
`D0:D63
`
`D0:
`D24
`
`D9: D10:
`D8:
`D63 D63 D63
`
`25521
`
`D25:
`D63
`
`IE0:
`
`E10: E13:
`E55 E55
`
`—F
`
`0:
`
`E55
`
`Data Index
`Byte
`
`Count
`
`F47
`
`25525
`
`Data mdex
`Byte
`
`F9:
`F10: F13: F25:
`F4?
`F4?
`F4?
`F4?
`4 T
`2
`Count
`Go:
`639
`
`25527
`
`Data max
`Byte
`
`4
`
`Count
`
`°°"“‘
`Data index
`
`(39: G10: G13: G25:
`G39 G39 G39 G39
`—
`H0:
`H31
`H10:
`H31
`
`25529
`H13:
`H31
`
`H9:
`H31
`
`We
`
`Start Counts
`
`
`
`
`4 —
`
`
`Count
`
`J9:
`J23
`
`J0:
`J23 25531
`J10:
`J13:
`J23
`J23
`
`— K
`
`0:
`K15 25533
`
`Data Index
`Byte
`
`K33
`K15
`
`Deooderfi
`
`Data |ndex
`Byte
`
`Data Index
`Byte
`
`25535
`
`Fig. 34
`
`

`
`
`
`1|131l3r[‘SW1
`
`2 F
`
`3
`
`'5CD
`--I
`
`:"
`
`.J1
`
`3
`3
`a
`,3A
`
`I8P830611Sfl
`
`Fig. 35
`
`I
`
`I
`
`I
`
`D0:6
`
`DB
`Check
`2&6:
`
`5115
`243
`113
`Check
`Check
`Check
`2% 2% 255$:
`
`>113
`Check
`151%
`
`4 T
`
`1
`1-1
`111 Generate
`—_—_'II
`
`T
`
`

`
`Previous
`Select
`
`10
`
`08
`
`04
`
`02
`
`
`
`IF
`IF
`IF
`IF
`IF
`IF
`IF
`IF
`
`
`
`01
`
`
`IF
`IF
`IF
`
`IF
`IF
`IF
`
`IF
`IF
`IF IF
`IF
`IF
`
`IF
`IE
`IE
`
`IE IE IE IE 00
`
`IE IE IE 1C 00
`
`08
`
`00
`
`00
`
`00
`
`00
`
`Figure 36a
`
`X
`D2:D7
`PC+I
`
`D1 :D3
`X
`PC+I
`
`X
`D7:D12
`D4:D9
`D2:D3+PC+2 D4:D6+ PC+5 D13 :D24+PC
`
`Figure 36b
`
`
`IF
`IF
`
`888888888
`
`
`
`
`
`lfl'|78Z"[)fi["LSf]ff.19ITJ-93llSL003‘fl'-WWIIIIBJE‘-I'S'fl
`
`
`
`
`
`

`
`US ?,190,284 El
`
`2
`
`1
`SELECTIVE LOSSLESS, LOSSY, OR NO
`COMPRESSION OF DATA BASED ON
`ADDRESS RANGE. D.-i.'l'A ’l'YI’E. AN DIOR
`REQUESTING AGENT
`
`(.'D1\ITlNU_I\'l‘ION IJATA
`
`This application is a continuation-in—part' (ClPl ol'Ser. No.
`0-$916,464,
`tiled Aug. 8, 1997, and now US. Pat. No.
`6,17?-.331, issued on Jan. 9, 2001;
`which is a continuation-in-part (C'.[P] of Ser. No. 08.-’-163.
`106. liled Jim. 5. 1995. now abandoned:
`
`which is a continuation-in-part (_C'lP) ol‘Ser. No. US$40,
`667. liled on Nov. 16, 1994, which is now ll.S. Pat. No.
`6.002.411, issued on Dec. 14. 1999.
`
`FIELD OF THE INVENT ION
`
`The present invention relates to computer system archi-
`tectures. and more particularly to a memory controller which
`includes an cmboided data compression a11d decotnpression
`engine for the reduction oi‘ system bandwidth and improved
`elIiciency_
`
`DESCRJ PTION OF Tl-IE RELATED ART
`
`Since their introduction in 1981. the £tl'Cl‘IilBCTtIDe of per-
`sonal
`computer
`systems
`has
`remained
`substantially
`unclianged. The current state of the art in computer system
`architectures includes. a central processing unit (CPU) which
`couples to a memory controller interface that in turn couples
`to system memory. The computer system also includes :1
`separate graphical ihter1'ace tor coupling to the video dis-
`play. in addition, the computer system includes input!output
`(IEO) control
`logic for various l2'(J devices.
`including a
`keyboard. mouse. lloppy drive. hard drive, etc.
`In general. the operation of modern computer architecture
`is as follows. lirogratrts and data are read from a respective
`U0 device such as a floppy disk or hard drive by the
`operating system. and the progrants and data are temporarily
`stored in system memory. Once a user program has been
`transferred into the system memory, the CPU begins execu-
`tion of the program by reading code and data from the
`system memory through the memory controller. The appli-
`cation code and data are presumed to produce a specified
`result when tttattipttlaled by the system CPU. The CPU
`processes the code and data. and data is provided to one or
`more of the various output devices. The computer system
`may include several output devices. including a video dis-
`play. audio (speakers). printer. etc. In most systems,
`the
`video display is the primary output device.
`Graphical output data generated by the CPU is written to
`a graphical interface device for presentation on the display
`monitor. The graphical
`interface device may simply be a
`video graphics array (VGA) card. or the system may include
`a dedicated video processor or video acceleration card
`including separate video RAM WRAM}. In a computer
`system including a separate. dedicated video processor. the
`video processor includes graphics capabilities to reduce the
`workload of the main CPU . Modern prior art" personal
`computer systems typically include a local bus video system
`based on the Peripheral Componcnt Interconnect (PCI} bus.
`the Advanced Graphics Port {AGP), or perhaps another local
`bus standard. The video subsystem is generally positioned
`on the local bus near the C‘ PU to provide increased perfor-
`mancc.
`
`Jr
`
`lll
`
`15
`
`30
`
`40
`
`43
`
`:2: 'Jr
`
`6|]
`
`Tlterefore, in summary. program code and data are first
`read l.l‘0l1‘t. the hard disk to the system memory. The program
`code and data are then read by the CPU liont system
`memory. the data is processed by the CPU. and graphical
`data is written to the video RAM in the graphical interface
`device for presentation on the display monitor.
`The systcnt memory interface to the nternory controller
`requires data bandwidth proportional to the application and
`system requirements. Thus.
`to achieve increased system
`perl'ormancc, either wider data buses or higher speed spe-
`cially memory devices are required. These solutions Force
`additional side-etfects such as increased system cost. power
`and noise. FIG. 1 illustrates the data transfer paths in a
`typical computer memory controller and system memory
`using prior art technology.
`The CPU typically reads data from system memory across
`the local btts in a normal or non-compressed format, and
`then writes the processed data or grapltical data back to the
`U0 btts or local bus where the graphical hiterface device is
`situated. The graphical itttet‘li3ce device in lt.n'n generates the
`appropriate video signals to drive the display monitor. It is
`noted that prior art‘ computer architectures autd operation
`typically do not perform data compression artdfor decont-
`pression during the tmttsfer between system tnctnory and the
`CPU or between the system memory and the local IEO bus.
`Prior art contputer architecture also does nothing to reduce
`lltc size of system memory required to l'1.1l't the required user
`applications or so liwarc operating system. In addition. soft-
`ware control led compression and decompression algoritluns
`typically controlled by the CPU [or non-volatile memory
`reduction techniques can not be applied to real time appli-
`cations that require high data rates such as audio. video. and
`graphics applications. Further. CPU soliware controlled
`compression and tlecottlpression algoritlitns put additional
`loads on the CPU and CPU cttcltc subsystems.
`Certain prior art systems utilize multiple DRAM devices
`to gain improved memory bandwidth. These additional
`Dl{.=\M devices may cost the manufacturer more due to the
`abundance of memory that is not fully utilized or required,
`The multiple DRAM devices are in many instances included
`primarily for added bandwidth. and when only the added
`banclwidllt is ttecded. additional cost is incutted due to the
`tttttltiplc DILAM packages. For example. if a specific com-
`puter system or consuiner computing appliance such as a
`Digital TV" set-top box uses DRDRAM memory and requires
`more than 1.6 tibyteslsec ol’ bandwidth, then the minimum
`amount of memory tor this bandwidth requirement will be
`16 Mbytes. In such a case the manufacture pays for ]6
`Mbytcs even if the set-top box only rcqtlirtzs S Mbytcs.
`Computer systems are being called upon to perform larger
`mid more complex tasks that require increased computing
`power. In addition. modern soliware applications require
`computer systems with increased graphics capabilities.
`Modern software applications include graphical user inter-
`faces [_GUls] which place increased burdens on the graphics
`capabilities of the computer system. Further. tlte increased
`prevalence of multimedia applications also demands com-
`putcr systems with more powerful graphics capabilities.
`Therefore. :1 new system and method is desired to reduce the
`bandwidth requirements required by the computer system
`application and operating software. A new system and
`method is desired which provides increased system perfor-
`’ mance without specialty high speed memory devices or
`wider data U0 buses required itt prior art cornputer syslcnt
`architectures.
`
`

`
`3
`SUMMARY OF THE INVENTION
`
`US ?,190,284 El
`
`4
`
`5
`
`ll.l
`
`15
`
`NJ
`
`As mentioned above, according to the present invention
`the McmoryI’)'X Technology embedded within the IMC
`includes one or more compression and decompression
`engines for compressing and decornpressing. data within the
`system. In the preferred embodiment the MeraoryF/‘X Tech-
`nology comprises separate compression and decompression
`engines.
`In an altentate embodiment. a single combined
`compression/decompression engine can be Implemented.
`Tlte JMC preferably. primarily uses a lossless data compres-
`sion and decompression scheme. Data transfers to and front
`the intcgmted memory controller of the present invention
`can thus be in either two formats, these being compressed or
`normal t_non—cornprcsscd}. The IMC‘ may also include one or
`more lossy compression schemes for audiolvidcofgraphjcs
`data.
`
`Thus cotnpresscd data front system lr‘O peripherals such
`as the non-volatile mentory.
`floppy drive. or local area
`network ("LAN") arc decompressed in thc IMC‘ and stored
`into system memory or saved in the system memory in
`compressed format. Thus. data can be saved in either a
`normal or compressed format. retrieved from the system
`memory for C‘PU usage in a normal or compressed formal‘.
`or transmitted and stored on a medium in a normal or
`compressed l‘onnat.
`To improve latency and reduce performance degradations
`normally associated with compression and decompression
`techniques. the Memoryliffii Technology encompasses tutti-
`tiple novel techniques such as: 1] parallel lossless compres-
`sionfdecornpre-ssion; 2) selectable compression modes such
`as lossless. loss-y or no compression: 3) priority compression
`mode: 4) data cache techniques: 5] variable compression
`block sizes; 6] compression reordering; and 7) unique
`address translal ion. attribute. and address caches.
`
`The present invention comprises a memory controller.
`also referred to as the integrated memory controller (IMC).
`which provides improved data efliciency and batldwidth.
`The rnemory controller includes a compression!'decon‘tpres-
`sion engine, preferably parallel data compression and
`decompression slices. that are embedded into the memory
`control logic of the memory controller. Further. the present
`invention does not require specialty memory devices or
`system soliware changes for operation. The memory con-
`troller logic of the present invention preferably interliaccs to
`the system CPU either external or internal to the memory
`controller. Further. the memory controller interfaces to the
`main system mem

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket