`
`C
`(12; Umted States Patent
`Dye et al.
`
`am Patent No.:
`(45) Date of Patent:
`
`US 7,190,284 B1
`Mar. 13, 2007
`
`(54) SELECTIVE LOSSLESS, LOSSY, OR NO
`CTOMPRESSION OF DATA BASED ON
`
`4.881.025 A
`4.903.317-" A "
`
`ll.-‘I989 Wang
`231990 Nishihztra el al.
`
`.
`
`
`
`341.-“S7
`358.-1.9
`
`1.-Z1991 Leveritc ct al.
`::i:z3:
`t!.:::::::::::~
`6:199; Whnlng CH1‘
`8-1992 Yoshtda et a].
`el Ell‘
`
`..
`
`.
`
`T0].-"35
`
`395.-‘"888
`
`I
`
`711.444
`395.6250
`
`358426
`
`358.-'468
`
`341-"51
`
`3.8.. U
`" ’
`‘
`370.-"230
`
`1
`
`A])[)R[4jss RAN(:[1j, |)A'1‘A '|'Yp14j, AN|),r()|{
`
`(76)
`
`( “ ] Notice:
`
`Inventors: Thomas A. Dye, 6621 Candle Ridge
`.
`.
`LOVe, A1lSt1l'1_. TX
`Manuel
`J. Alvarez, II. 8800 Pepper Rock l)r..
`Austin. TX (US) 78717: Peter Geigelfi
`10407 Treasure Island Dr._. Austin. TX
`(US) 78730
`Stlhjccl-10 ally disclaimer. the term oflhis
`patent is extended or E:lC1_]llS1.CC1 under 35
`I
`I
`I
`5
`I
`USC 1 4(1)) by Odays
`
`_
`(211 Al’p1‘N“" "9’239°659
`.
`(223 F‘l"d'
`
`J3“-211999
`Related U-S- A1JP“I==Ifi0n Data
`(63) Continuation—in—part of application No. 081916.464.
`)
`.
`filed o11Aug. 8. 1997. now 1 at. No. 6.173.381. Wl]lC11
`is a continuation-in-palll of applicalioll No. (187465.
`106. filed on Jan. 5, 1925, now abandoned. winch IS
`a cont1nuat1on—1n—part of application No. 081340.667.
`filed on Nov. 16, 1994. now Pat. No. 6.002.411.
`
`(51)
`
`Int, C],
`H0334’ 7/30
`Sow/av
`(52) U.S.(.‘l.
`
`(200601)
`<2oo6~on
`34];‘5];34lf87:7l()i’68:
`7111470; 3821232; 382E233-,382f244
`Field of Classification Search
`3827232.
`382a"2?-3.244; 710.168; 7097247; 341151.
`341187; 7l].u"l70
`Sec application 1111:: for complete SL“dDCl'l history.
`
`(58)
`
`(56)
`
`References Cited
`
`U-3' PATENT DOCUMENT5
`_
`319?? Bryant {:1 31.
`8.71987 Cotton et al.
`10.’1989 Storer
`
`4.008.450 :'\
`4.688.108 A
`4.876.541 A
`
`_
`395.5463
`358."261.1
`
`4.987.541 A *
`:~2‘::333:
`5'l26'739 A
`5.136.289 A
`A
`g,-1992 (1...
`5'l50‘430 A
`10.-"I992 Chambers. [V
`5.155.484 A
`8-"1993 Miller ct al.
`5.237.460 A
`gagntln. Jr.
`«Q
`’ non ct .1.
`.
`
`E;-'»)1:I'11lI'Il1 01 «'l1-
`2: *
`_”5{S‘_m
`-
`631994 Bird
`;;'32S'fi9? A *
`.
`.-
`_..
`..
`8-‘"1994 Garner
`365-"189.U1
`5.337.275 A
`10-"1994 Graybill
`5.353.024 A
`10.41994 Malmny el al.
`5.353.425 A
`10.-‘"1994 Pattisam ct .11.
`5.357.614 A
`12.-1994 Graybill ctal.
`5.371.499 A
`1.91995 St
`5.379.036 A
`2.-1995 seizfiissi el :11.
`5.339.922 A
`3,1995 ”a“5°l'm“
`5'39("343 A
`431995 Grayblll el al.
`5.406.278 A
`4..m9_.) Andaman cl :1]
`_.) 406 279 A
`1995 Glovcli.
`[1429 A
`5.1995 Whiting CH1‘
`5'414_435 A
`5.-' I995 Whiting
`5.414.850 A
`5.-"1995 Wegcng et al.
`5.420.696 A
`6.-“I995 Chambc1"s.IV
`5.426.729 A
`1071995 Slivka el al.
`5.455.577 A
`10.91995 C1'I£I:ll:'l1'J8fS.1\"'
`5.455.943 A
`27:39:22 5:: 5
`:.'4.I9‘,m A .
`15.199" C " h .
`_.
`5'435'525 A
`“.992 .-.2212: cl 7""
`5_493_.593 A 4
`231995 suzukic-(31.
`5.506.580 A
`4.91996 Whiting elal.
`5.510.840 A
`4.-"1996 Yonemilstl elal.
`5-535-.932 A
`5-11995 Chfiflg 01 5|]-
`5.526.363 A
`6.91996 Weiss el :11.
`5.532.693 A
`7..-‘I996 Winters et al.
`5.532.694 A
`7".-"1996 Mayors et al.
`5.539.865 A 5
`"L-"1996 Gentile
`5.548.742 A
`8.-"1996 Wang el al.
`5 553 [60 A an
`()__.-lggfi Dawson
`5__559_973 A
`9.91995 spno
`5.563.595 A
`10.31996 Strohacker
`
`358.-"L16
`711.5128
`353|l.'426‘02
`711,.-Q03
`341.5106
`
`
`
`APPLE 1009
`
` 1
`
`APPLE 1009
`
`1
`
`
`
`5.572.206 A
`5.577.248 A
`5,584.008 A
`5,590,047 A *
`5.602.976 A "‘
`5.606.428 A
`5,621,403 A
`5.625.712 A *
`5,627,995 A
`5,652,878 A
`5.696.912 A
`5,724,582 A ’°
`5,729.228 A
`5.771.011 A
`5.778.255 A
`5,793,937 A ’“
`5.798.718 A
`5.812,817 A
`5,828,877 A
`5.836.003 A
`5.838,334 A
`5,847,762 A *
`5.852.742 A "‘
`5.874,908 A
`5.877.711 A
`5,883,588 A
`5.933.104 A
`5.936.560 A
`5.945.933 A
`5.956.372 A
`5.961,617 A *
`5.973.630 A
`6.002.411 A
`6,002,814 A *
`6.067.098 A
`6,145,069 A
`6.l70,047 B1
`6.173.381 131
`6,198.850 B1‘
`6.208.273 B1
`6.292.194 131*
`6.333.745 B1
`200450017483 A1‘
`
`1151996 Miller et al.
`1151996 Charrlbers. IV
`12.51996 Shimadaet a.l.
`1251996 Uehara
`251997 Cooper :31 al.
`2.51997
`l'1a.nselI11a.n
`4.51997 Reznik
`4.51997 Schocnzcit ct al.
`551997 Miller et :11.
`7.51997 Craft
`1251997 Bicevskis et al.
`351998 Pelanek et a1.
`3.51998 Franaszek et al.
`6.51998 Mascnas
`7.51998 Clark el al.
`8.51998 Chara et a1.
`851998 lladady
`951998 llovisctal.
`10.51998 Pearce et :11.
`11.51998 Sarleh
`11.51998 Dye
`12.51998 Canfield et al.
`12.51998 \5bru1r:1net:t1.
`251999 Craft
`3.51999 Craft
`3.51999 Ukamura
`8.51999 Kimura
`8.51999
`Iliguchi
`8.51999 Kalkstein
`951999 Va.I1'Ian el :11.
`1051999 Tsang
`1051999 lleath
`
`1251999 Dye
`1251999 Chadez
`552000 Dye
`1152000 Dye
`152001 Dye
`1.52001 Dye
`352001 Banlon
`352001 Dye
`9.52001 Powell. 111
`1252001 Shimomura et al.
`152004 Kitsugi el al.
`
`
`
`395-"497.04
`395.5670
`
`3755240.15
`71051
`
`710.5100
`
`3455521
`358.5l.l5
`
`358542602
`
`236.592 B
`
`348520799
`
`l5ORl'€l(}N PA'l‘l'lN'l‘ I)O('_‘.UMl"lN'l‘S
`
`EP
`JP
`W0
`
`0 702 457
`05204747 A ’“
`95.5 19662
`
`351996
`8.51993
`7.51995
`
`OTHER PUBLICATIONS
`
`Brenza. “Synonym Avoidance Cache.“ IBM Technical Disclosure
`Bulletin. vol. 34. No. 1. Jun. 1991. pp. 377-381.
`International Search Report tor Application No. PC'T5US 00.502355.
`mailed Jun. 16. 2000.
`U.S.App1. No. 08.5463.106. filed Jun. 5. 1995. Dye.
`
`US 7,190,284 B1
`Page 2
`
`711.5114
`700.5214
`35851.15
`3585404
`
`
`
`375.-5240.05
`
`U.S. Appl. No. 605144.125. filed Jul. 16. 1999. Dye.
`US. Appl. No. 095491343. filed Jan. 26. 2000, Dye.
`U.S, Appl. No. 095818283. filed Mar. 27, 2001, Dye.
`Yabe ct al., Compression5Dccompression DRAM for Unified
`Memory Systems: A 16 M11. 200l\-'11-1'/.. 90°/o to 50% Graphics-
`Ba.ndwidl.h Reduction Prototype. IEEE 1998 So1id—Sla.le Circuits
`Conference, Feb. 1998. pp. 342-343.
`Kjclso ct al.. Design and Performance of a Main Memory Hardware
`Data Compressor. Etlrohdiero 96 Conference. lEF,F.. %p. 1996. pp.
`423-430.
`
`3955308
`3825232
`
`” cited by examiner
`
`Primary Exam5rzer—H0ng Kiln
`
`35851.16
`
`(57)
`
`ABS'1"RAC’1‘
`
`An integrated memory controller (IMC) including Memo-
`ryF5X Technology which includes data compression and
`decompression engines for
`improved performance. The
`memory controller (IMC) oftlie present invention preferably
`selectively uses a combination of losslcss,
`lossy, and no
`compression modes. Data transfers to and from tl1e inte-
`grated memory controller of the present invention can thus
`be in a plurality of formats,
`these being compressed or
`normal [non-compressed), compressed lossy or lossless, or
`compressed with a combination of lossy and lossless. The
`invention also indicates preferred methods for specific C0111-
`pression and decompression of particular data formats such
`as digital video, 31) textures and image data using a com-
`bination of novel lossy and lossless compression algorithms
`in block or span addressable formats. To improve latency
`and reduce perfomtance degradations normally associated
`with compression and decompression techniques.
`the
`Memorylifx Technology encompasses multiple novel tech-
`niques such as: 1) parallel lossless comp1'ession5deI:ompres-
`sion; 2) selectable compression modes such as lossless.
`lossy or no compression; 3) priority compression mode; 4)
`data cache teclmiques; 5) variable compression block sizes;
`6) compression reordering; and 7) unique address transla-
`tion. attribute, and address caches. The parallel compression
`and decompression algorithm allows high-speed parallel
`compression and high speed parallel decompression opera-
`tion. The IMC also preferably uses a special memory
`allocation and directory technique for reduction oftable size
`and low latency operation. The integrated data compression
`and decompression capabilities of the IMC remove system
`bottle—necks and increase performance. This allows lower
`cost systems due to smaller data storage, reduced bandwidth
`requirements. reduced power and noise.
`
`16 Claims, 34 Drawing Sheets
`
`2
`
`
`
`m
`
`43%6.2%m.90.,F.l
`
`U.S. Patent
`
`Mar 13, 2007
`
`Sheet 1 of 34
`
`w.1,S
`
`U|IIImagQIas
`o<oo__§<$302uaofimxo:EaEm_._
`
`
`
`gmn_w<.._on_
`
`BF
`
`Emimgm0:
`
`_m__eEoo
`
`
`
`
`
`.v_._.roam:Exammemi
`
`4. i3
`3%E228
`
`«o..rasamE3
`
`Q3.<m%_.m5522o:.
`
`
`
`aoEm_2Emfiam
`
`3
`
`
`
`
`
`U.S. Patent
`
`mM
`
`7.H
`
`M
`
`US 7,190,284 B1
`
`M<o
`
`7.2;
`5HI
`.|<MI:N3E6982>9:L
`
`Nmm
`
`m:.asO:
`
`<0
`
`
`
`mass._u._mo§mx
`
`.3EaEm:
`
`
`
`H,o<n_o_u=<o:gems.E2m>m
`
`
`
`
`
`20E280< E§
`
`«ll..we3:33
`
`4
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 3 of 34
`
`Us 7,190,284 B1
`
`
`"582>_£_m_oE58won82>_m__2Eooroams."3aoemz
`
`
`
`
`:o_m._m>:ouv_uo_mfimfismz£5,QE.
`
`QwH2\m_0m__
`
`m,atM.......................................................................................J
`
`meam_m.oo._
`
`
`
`"3$356_8o._
`
`Q__mEm:m_EEma2___.
`
`5252wo__5<
`
`Emaxflzm
`
`am
`
`
`
`roam:E226
`
`o:
`
`5
`
`
`
`
`
`
`
`U.S. Patent
`
`mM
`
`m
`
`M.m.4.H
`
`US 7,190,284 B]
`
`o:
`
`Vat
`
`.—dm.
`
`
`
`
`
`:5:o_mmoaE8mn_M...coammaeoo_m__Ema
`
`m_|fi
`
`o_mo._
`
`momtmE_
`
`7.boEmEQm280983
`
`:o_m.o,maEoo
`
`HE:_2=_8
`
`Qua
`
`
`
`_.N_8EooE.mmm=.wmm
`
` _.___IIIIIIIII_IIIIIIIIIII
`
`6
`
`
`
`
`
`
`
`
`U.S. Patent
`
`mM
`
`-5.whS
`
`M..m,
`
`SU
`
`284 B1
`
`mama-m.,25-3.m59.3-._
`
`anmm._.-H
`
`QWH:9.E,_2<mn_
`
`255
`
`%B__2Eoo
`
`co_m8aEo8n_
`
`coammaeoo
`
`%c
` eoo mcacm
`$8..
`Bmsmcm
`_I@_!__
`
`S
`
`mat
`
`7
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 6 of 34
`
`Us 7,190,284 B]
`
`ogem
`
`Ema=a:_
`
`omam
`
`8
`
`
`
`U.S. Patent
`
`Mar. 13, 200?
`
`Sheet '.+' of 34
`
`US 7,190,234 B1
`
`Parallel Compression
`
`Maintain a history table
`comprising entries
`&
`
`M
`
`Maintain a current count of prior
`matches for each entry in the
`history table
`
`Receive Uncompressed data
`fl
`
`Compare a plurality of symbols with
`each entry in the history table
`
`fl
`
`
`
`Determine match information for each
`of the plurality of symbols based on
`the current count and compare results
`
`an
`
`
`
`Output compressed data in response
`to the match! finformation
`:4_
`
`Fig. 7
`
`9
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 3 of 34
`
`Us 7,190,284 B1
`
`
`
`aouc__am&v.2m_I2macaw:
`
`
`
`iou:§flu_m_I2gsému$8ae8.52.42a_$am=_=_m=._mm%_.__n_..._2_E..w$335,0052.4
`
`
`
`
`
`
`
`Esonm._m__m_3:__..._mEB+_mn_9:.
`
`=ozm:ma__:owmm.So§__m.:mmWl
`
`
`5.225E38_B.§m38$22.2550swamo._:_3.8uommeaeoo
`
`m8_$.n_32:0
`
`3.3.585so_§ms:moma.:um_mmmm
`
`
`
`ens28Qo_oaEmE22:gems.m:o_>$n_m:_u=_oc_
`ma..flma
`
`I
`———————---------___________..----.,______________j
`
`_3e_,m53.330
`
`u$$._n_E85
`
`mm
`
`
`
`Qcm.,___o_..._.__z...Ema£__.__.
`
`am
`
`
`
`
`
`_3E.$_=&_Emam._mn_Eoo
`
`_3§m.330
`
`ummmmaE8_.5
`
`fl
`
`mm33.
`
`m§:_._oo=438¢m=o_.§n_53:0
`
`
`
`cam2£5m=...n_uwmmmaeou
`
`=_m_on_..§m
`
`.....:2mE93
`
`mm
`
`§o__§n_
`
`$2.222
`
`me,
`
`mm;
`
`
`
`m_on_ExwEn3._m._.5oommmQu:_
`
`3%
`
`10
`
`10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`m4
`
`x.mQat
`
`U.S. Patent
`
`u
`
`M.m9WWm
`
`anSU
`
`M8_...m_EE22E29208285008
`
`._mE=ooDbEm_
`
`ma
`
`v_mm_239:0
`
`E8033:0
`
`gamma
`
`gco__m_8_mo
`
`
`
`EEm_m8_>....:n:5
`
`
`
` m:_m>swam2mm
`
`8
`
`mam28QEm.
`
`ma
`
`$8
`
`Em
`
`m28
`
`m28
`
`o38
`
`_.2.3
`
`11
`
`11
`
`
`
`
`
`U.S. Patent
`
`m
`
`M
`
`m4
`
`
`
`mxmmzwEsau:.EmMmNommxouc_E30052onQm_o_..=._o2828$8>_w,.:mEL_=Wm2o.._mms_wE80NEm
`
`
`
`
`
`
`
`yams..82
`
`yam:wE80_Em.
`
`
`
`mm,EmmzmEma52:0
`
`fl.0.%9.._u.
`
`
`
`
`
`Uxmm_>_mmmaeooc_Em.
`
`
`
`
`
`mExmmzwEzoo:Emw_o§m:m_wo_mo_u:lm.=oHmmEmgm5soxm_E_E80>2;.m=M_v¢oxmmzw:58NEm
`E:w:58_%EmV_m§_w:80oE
`
`12
`
`
`
`vim:mmmaeooo.Em
`
`
`
`
`
`vans.mwmteooumcfieoo
`
`:o=m__§mofl_=mmm_o._.v_mmS_M.E200OEm
`
`2__m>33¢
`
`
`
`
`
`12
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 200?
`
`Sheet 11 of 34
`
`US 7,190,284 B1
`
`FF.m.iF.FFFFF_§8OF.FFFF.2FFF85FFoaoF.FoFFFF...:$ooFooF.2:FF822.,NFFaovFFoFF85%ooF.FF.
`
`Fommm55:053:0Ecaoo>62....EoFas_=35
`
`
`F+8>mmNFFF.FNFFSF
`:_§$occoFm2SF$8.5mFFooFmFoFoFF+_§$ooFoFN02.2
`F.0SFF__..eamFFoFoFFFFFo3%ooFFoF80FF8,8mFFFF.mFFFoF
`
`
`
` N+8>mmoooFFNoF8FN+8>mmFFF.FFFF82?§$ooFFFo88FF:Ram2.9%FFFFm=_a>F322.256033>
`
`13
`
`13
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 12 of 34
`
`US 7,190,284 B1
`
`
`
`Send out
`compressed block
`ZZE
`
`Adjust max count
`to 4 or less
`
`E
`
` Yes
`
`
`Max
`Mask = 10000?
`
`E
`
`No
`
`Send out
`
`compressed block
`731
`
`No
`
`Yes
`
`Sendon
`
`733
`
`No Yes
`
`Send LZ12
`compressed block
`Efi
`
`“'0
`
`
`CCM(0) = 1?
`EB
`
`“*5
`
`Send out data 0
`E
`
`14
`
`Done
`
`N0
`
`Send out data 0
`Z41
`
`No
`
`Send out data 0
`M
`
`14
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 13 of 34
`
`Us 7,190,284 B1
`
`Entry
`
`012345s7a9101112131415
`
`SWODM Eflflflflflflflflflflflflflflfl
`Gm EEEEEEEEEEEEEEEE
`
`|nputD3:U
`
`WWMEEEEEEEEEEEEEEEE
`mmtflflflfiflflflflflflflflflflfifl
`Output
`Sm'Dw flflflflflflflflflflflflflflflfl
`Cm EEEEEEEEEEEEEEEE
`
`Input 03:0
`
`WWWEEEEEEEEEEEEEEEE
`mmtflflflflflflflflflflflflflflfl
`1
`Output
`SW20“ EHEEEHHHHHHHHEEH
`Cm EEEHEEEEEEEEEEEE
`
`Input 03:0
`
`wwmmmmmmm@m@@@@mm@m
`mmtflflflflflflfiflflflflflflflflfl
`Output
`SW30“ EEEEEHEEEHEHHHEH
`Cm EEEEEEEEEEEEEEEE
`
`Input D310
`
`WWWEEEEEEEEEEEEEEEE
`Wmtflflflflflflflflflflflflflflflfl
`
`State‘
`
`Data
`CW E@@@E@@I@@E@EE@Emmwm
`Final Output
`
`Output
`
`[9,2)E2(6,1)
`
`Attemate Output
`
`13
`
`15
`
`15
`
`
`
`16
`
`
`
`U.S. Patent
`
`Mm
`
`S
`
`w
`
`.m.
`
`43
`
`US 7,190,284 B1
`
`
`
`
`
`
`
`in!
`
`
`
`
`
`Bemqeooemneooemaeoo235828500m__Nn_EoomisN35NisNB;NisNEsNMIIIL‘L
`
`2at
`
`mcozemcmo523
`
`h.
`
`17
`
`Ema
`
`17
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 16 of 34
`
`Us 7,190,284 B]
`
`._______..—._____.......__—---______---—.____—----------..__________________________________gl
`
`L--_-__--_----------__-------___-----________ __--_---___--
`
`—..-.-_._...-.---..-..--.__..--_.
`
`J
`
`t.m.i
`wIIIIll
`
`Q235cemmmasoo.$mo._
`
`
`
`
`
`uuuuuuuuuuuuuuuunuununuuunnnnnnnunnunuennnnuaunuuuunnuuuanus:nunanununuuuaucan:nun:nun:unnlnnuunnnnunauusuununuuuuuLu
`
`839E8
`
`
`
`
`
`QQmama5mr__..m..Vw_:..mmm>22mzém
`
`
`
`
`
`W3mc_m_m_:o_mmmaEoomn_.38..
`
`IIIIIIIIIII|IIIIIIIIIIIIIIIIIIIIIIIIIIIIUllIIIIIIIIIltllllllIlaItillIlllliIOloICIIIIllIIIIIIIIIIIIIIIIIIIIIIIIIIII
`
`ummmeqeoo
`
`9%
`
`>3.cmE>333
`
`:o_m._m;_._ooO2>
`
`ma
`
`
`
`lllllIIi!OO!IIIIIIIIIIIllIIIIIIII|lIIIIIIIIIIllIIIIIIllllllllllllIIIIIIIOIIllllIllaIOIII00!IOIIIOCIIIIIIIOIOOIIIIIII
`
`‘I
`
`musow
`
`NE.>B0._o:$Eou
`
`mom
`
`___----___-_-_---_-----L-----------____- -------_--_____--
`
`18
`
`18
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 17 of 34
`
`US 7,190,284 B1
`
`2mi
`
`mi...
`
`
`
`mmmeaaégglgégggga
`25>H.as»
`%%mfi..§%|||
`
`
`
`3m3Ilglulggggg"Ea8H.___._aH:22
`
`ElégéagxmemEgg___§..u:a.&EIII23;.25.23mmfimmfiglllIla£3;2_£em__££3_...L_£%§§__¥||Elma:%Eagmfiwgggfi___efi:aEElg22:25%5%wasgag.E4:II 55>H.E;I£3.£2;a_£_eEmEEgéégg-EE§
`
`
`
`
`gfilllllalgxmemEuaulllaéemEEEEE&5£___s_Ea§EIIIII2.:was£3gillEEIEEI8s:_§u.a_.&
`
`
`
`
`
`
`
`
`
`
`
`19
`
`fig_.__E>u..35»
`
`gel
`
`Egg52>u_.62»
`
`Emil
`
`ggll
`
`19
`
`
`
`
`
`
`SU
`
`D1
`
`.[
`
`imlauoI|nas
`...wummmmaeooIIIIIIIuIw:_m:m_commmaeooa_m__Emn_
`
`
`m$._.mmo._
`
`.mamboEms_
`
`gm5%:
`
`r.aM
`
`—........002H,
`
`w.nS
`
`US 7,190,284 B1
`
`
`
`M3foncmom:o_mmmaE8on_.$mo._
`
`
`
`manuummuaeoo
`
`
`
`EmanmmmmaeoomoA...
`
`
`
`_m__m_mn_mmm._.mmo._
`
`5323.88
`
`osmcm
`
`am
`
`
`
`
`
`:o__mmmaE8.cmE.:n_|I-
`
`_._o_mmmaE8ma
`
`2m_umE_mE_
`
`
`
`8_mmmaE8ma.............._
`
`20
`
`20
`
`
`
`
`
`U.S. Patent
`
`Sheet 19 of 34
`
`US 7,190,234 B1
`
`3.at
`
`o
`
`oncan
`
`canownohmcom
`
`
`
`
`
`%afiohmE,___%_§,%__.§
`
`m§xw._.fiflfi
`.39._n_->n_5-8._n_-n_m
`
`fl;/fly
`
`1/i
`
`HWOQ»
`
`t
`
`8
`
`fiohmEm9%Q88
`
`a_.mM~_g_Eo2mn_858
`
`mo5
`
`21
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 20 of 34
`
`Us 7,190,284 B1
`
`Compression of received data
`
`Receive uncompressed data
`
`£10.21
`
`
`
`Determine a compression mode
`of the data
`§€L4.
`
`
`
`
`
`
`
`Selectively compress the
`uncompressed data according to the
`
`compression mode
`
`§_0_§
`
` Store the data in the memory; store
`
`
`compression mode information with
`the data
`
`.E_50_8
`
`Fig. 22
`
`22
`
`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
`.&1_2
`
`Access the data from the memory
`QM.
`
`Determine a compression mode
`for the data
`§l§
`
`Selectively decompress the data
`according to the compression mode
`flfi
`
`Provide the data in response
`to the request
`
`§Z0.
`
`Fig. 23
`
`23
`
`23
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 22 of 34
`
`US 7,190,284 B1
`
`m=_=_mE2__m25:8V_8_m_roams
`
`
`
`
`
`
`
`cowm._O.._m.._oo_aummmmaEooEmfl_umwmm;QEDD
`
`me<.....oEm>o
`
`m:o=mEmEm_n_E_
`
`
`
`Eats;mew:as
`
`
`
`8.3=o__m8__<_m=_=_
`
`
`
`02$.roses.2mua=__m=cm_,..._8_m555.
`
`
`.o_.mmcommmaeooE=E._xm_2.3nmu___,_omum
`
`58.2£83Emmeneoo25m_.__mEoo
`
`
`
`3%goesuommmaeooca
`
`
`
`
`
`$5.mmeuumm_mc_m
`
`.9u2_=3_E:tko
`
`H902
`
`
`
`E3.tflw
`
`3
`
`
`
`ummmmaeoo.8.98FE5.3238E5an25EE9032$223,..a__§oE5...._n_E.a_a_2m:$25.Bamaes
`
`
`
`
`
`
`
`
`xm_._._§_._mmmmmace__coEmE
`
`
`
`3..Em§%<
`
`24
`
`
`
`
`
`
`
`
`
`.v_8_aBmmmaeoocg
`
`oltm
`
`Emaummmmaeoo
`
`
`
`
`
`fixed mmzacmcoammaeoumo
`
`am
`
`§_§mmean.5230
`
`ma
`
`as:E2
`
`VN.m.E23ummmwasoumo
`
`an
`
`24
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 23 of 34
`
`Us 7,190,284 B]
`
`mN m
`
`m
`
`Esm.3ea25223%%_4m_loosE:2:Has9<2
`
`.Hasas8.42___mm
`
`as8+8<_E
`
`
`
`
`
`=o_E_.umon_Etna:3o=._m>o
`
`
`
`_.c=_m.5,05mos.zofimsoasc_<EmtoHmm_xoosca:9:.
`
`
`
`«mi.so_to5m_.=_.__4ago_mm._£83am:9:.
`
`_a§2,_3_m53HI
`
`s§%_s_masH!
`
`
`
`Scams..6nm=_m>
`
`
`
`
`
`
`
`26m____arm,..__mu_m.Enm.....o=2v_8_n_:8:m;._.
`
`
`
`
`
`=o_..__.o3n_53¢:_a=_:_
`
`a_2_smVa
`
`25
`
`
`
` o;.___g_IJ0:2.“%_aEu=m>.Eo$2:0.._.,..o:62._8_m:32._n__,§_§o
`
`was25552;;
`
`
`
`
`
`._E_._&_3o.35§..t<u_min...:o_§m=E._.wm...:_._u<naaaeoo
`
`
`
`
`
`
`EcamE.Saga5.mum___m_a_§omE.aegom5Ilél
`a___n§e2.<mo.‘QwasAm__§gs.“
`
`
`
`53E!_§.2_.E_2.._:=Em
`
`
`
`
`
`
`
`:5.E5@3240.m__.,_£322.439.35
`
`
`
`
`
`mu_u_.._=o_fiuo__4boEa_...._
`
`
`
`
`
`a___.Q$§._z.mov
`
`25
`
`
`
`
`U.S. Patent
`
`Mar. 13, 200?
`
`Sheet 24 of 34
`
`US 7,190,234 B1
`
`@Memory Allocation
`(lnitialized CATT)
`2709
`
`271 1
`
`Allocate CATT Ent
`
`Arrange entry order
`(if required based on istarllend address)
`
`271
`
`Set the compression type
`271 5
`
`Al|ocate% of the requested memory
`(Based on block sizg a1nd compression type)
`
`7 7
`
`Set the data pointer to start at the initial block
`in the CATT
`2?19
`
` Allocate Overflow Address memory (OAM)
`
`(Set by IMC driver or BIOS)
`
`
`Typically 118th ogginal data size
`
`
`2? 1
`
`Initialize the OAT pointer in the GATT
`2723
`
`Initialize allocated memory headers to zero
`2725
`
`
`
`Initialize OAT entries, set overflow
`pointer in OAT
`2727
`
`
`
`
`Fig. 26
`
`26
`
`26
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 25 of 34
`
`US 7,190,284 B1
`
`
`
`
` @Compressed
`Memory Store (Addr N)
`2749
`
`Yes
`
`
`Check
`Cache for Hit
`
`While searching CATT
`
`
`
`
`E N
`
`o
`
`
`
`
`
`H = Header
`Calculate Initial Address I. continue to
`from Address I
`compress data (Validate present entry)
`2759
`2733
`
`
`
`
`
`
`
`(391 Next
`Address (U:f(H))
`2799
`
`
`
`Remaining
`Compressed block
`>Block SIZE?
`
`
`Store block of Compressed data at
`address 1 with headeI=LAST
`
`2737
`
`
`
`Store block of Compressed data at
`address I with header(U) Set |=U
`2739
`
`
`
`header of H to UNUSED Set H=f(H2)
`2745
`
`
`Q H2=HeaderfromAddressHSet
`
`
`Yes
`
`Store uncompressed block and header
`at Add N in cache and set most
`recently modified bit for cache
`as
`
`Done
`
`Fig. 27
`
`27
`
`27
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 26 of 34
`
`Us 7,190,284 B1
`
`-
`Deliver daI2t%Ig£0m cache
`1
`
`
`
`
`@Memory Fetch
`(address N)
`2?59
`
`
`
`
`Yes
`
`
`Search
`cache Directory HIT?
`
`2751
`
`
`
`No
`
`Solve for initial address (I) = (Matching
`
`CATT start address - N)t')( (X is based on data type)
`
`2}’53
`
`Fetch from memory
`compressed block I
`2755
`
`Strip the Header bits, and decompress
`the remaining data from I
`2757
`
`LAST Block?
`2?61
`
`No
`
`Yes
`
`
`
`Fetch the overflow block using the
`overflow pointer as base and the
`header as offset
`Mi
`
`Read oompressed overflow blocks
`2756
`
`Send decompressed data to
`requesting agent
`2765
`
`Update Cache, invalidate LRU_ mark
`new block as MRU
`2769
`
`Completed compressed
`read operation
`
`Fig 28
`
`28
`
`28
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 27 of 34
`
`US 7,190,284 B1
`
`
`
`mmeuum:3.35._..__5E5552.5;m_.___=_._m9esm.coEmE__soEmsohozoosam:2m8__¢
`
`
`
`§.__a
`mam\..2.~.
`
`
`
`
`
`
`
`BEEmmannmfiozca...m_w_=u_mo%Bo._m55
`
`x@.33;Eeeo32.
`
`HM
`
`wR.__.E22:ESEsaw;
`
`
`
`.u~_m.30.“.+mu§:_8mmeuumuazm~_wV_uo_m+m_um
`
`mackgem
`
`
`
`
`
`%__m____$:__3.....o_to>o
`
`mm
`
`as
`
`8»
`
`Rm:m_
`
`n_.___._.:556._az
`
`mm-
`
`29
`
`map“E25..E.353:5:2am
`
`
`
`
`
`m$._3m:83.so=._m...ogm:2....._3_mu
`
`an
`
`
`
`3%3...35...&__§_"E
`
`29
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 28 of 34
`
`Us 7,190,284 B1
`
`8mm
`
`
`
`
`
`Sumo:Erma:_u=_.__nsooans.__sa_tm>o_~_._=_
`
`
`
`
`
`
`
`
`
`mu._n_.:oz:._x.m2>m8:3
`
`
`
`"6.5.B2.5:o_.moo__<ofim35._8_mEm._8_m
`
`30
`
`30
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 29 of 34
`
`Us 7,190,284 B]
`
`can\\
`
`2m~.\..
`
`
`
`
`
`wenmmwxoo_ncommaE00
`
`
`
`>_oEmEE9:v.83ummmmaeooomom2
`_m_hMm
`
`BUSEmum._9mmoaE8moAN
`
`was.._5.as8_=8n_2%3
`$225E9:62
`
`
`
`
`
`$2.3Emsmwmv_8Wm%_Bs§___
`
`
`
`
`
`boeme2gownxoosummmmaeoo25$6
`
`
`
`EEO3so:83mmmaeoo-mm3..
`
`c@as._E_%_,..2_5243
`
`can.\
`
`Eat
`
`
`
`IIHIHHIEHHEumm.%@moo
`
`
`
`
`
`$20_mc_m__oc_m:_._3__E__o_m_22:mm.38¢:.
`
`
`
`
`
`
`
`ans.5som:_.mo._u:__m_2Emumm“swam:2,
`
`31
`
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 30 of 34
`
`Us 7,190,284 B1
`
`'1"
`
`V— v— 1— 1— 1* "l— 1.— C\|
`
`(NI
`'0
`
`Fig.32
`
`
`
`
`
`
`
`1111010
`
`1100
`
`1101
`
`1110
`
`1111000
`
`1111001
`
`32
`
`
`
`
`
`
`
`
`
`BytesCompressed
`
`BitsUsed
`
`Count
`
`Index
`
`Flag
`
`32
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 31 of 34
`
`US 7,190,284 B1
`
`Input Data 8 Bytes
`
`
`
`
`
`
`
`
`
`
`
`
`‘
`
`:
`
`Data
`Vaiid
`
`Data Bytes
`0
`7
`
`
`
`Stage 3: Calculate Final Selects
`
`Final Selects
`.
`.
`.
`.
`.
`
`. 15
`
`flfifis
`
`History Window
`
`Fig. 33
`
`33
`
`
`
`Pie Reister 128 bits
`
`Stage 4: Data Selection
`0
`“ta ”‘
`15
`
`
`
`Start Count
`0
`7
`
`Index
`
`0
`
`7
`
`Index
`Valid
`
`
`
`Stage 1: Initial input Seiector and Byte Counter
`
`
`
`
`
`Pie R ister 168 bits
`
`Stage 2: Calculate Initial Selects and Overftows
`
`Partial Selects and Overfiows
`0
`.
`.
`.
`.
`.
`. 15
`
`Pie Reister 144 bits
`
`
`
`
`
`
`
`
`
`
`D
`
`25501 -\
`
`25505 '\
`
`25513 ‘X
`
`33
`
`
`
`U.S. Patent
`
`Mar. 13, 2007
`
`Sheet 32 of 34
`
`US 7,190,284 B1
`
`Input Data
`D0:D63
`
`D0:
`D24
`
`D9: D10: D13: D25:
`D3:
`D63 D63 D6
`D63 D63
`
`25521
`
`I—E0:
`
`E55
`
`Index
`
`Count
`
`E9:
`E55
`
`E13: E25:
`E55
`E55
`
`—F
`
`0:
`
`F47
`
`25525
`F10: F13: F25:
`F4?’
`F47
`F47
`
`F9:
`F4?
`
`G0,
`G39
`
`25527
`G9: G10: G13: G25:
`G3 G39 G39 G39
`
`H0:
`H31
`
`H10:
`H31
`
`25529
`H13:
`H31
`
`0:
`
`J23 25531
`J10:
`J13:
`J23
`J23
`
`J9:
`J23
`
`— K
`
`0:
`K15 25533
`
`Data Index
`Byte
`
`Start Counts
`
`Data Index
`Byte
`
`Data Index
`By1e
`
`25535
`
`Fig. 34
`
`34
`
`
`
`
`H9:
`H31
`
`—J
`
`
`
`Data Index
`Byle
`
`4
`Count
`
`—ec0der2
`
`Data Index
`Byte
`
`4
`
`coum
`
`34
`
`
`
`U.S. Patent
`
`r.aM
`
`7...002m
`
`43fl033w_..HS
`
`US 7,190,284 B1
`
`mmat
`
`Emx85
`
`E300
`
`23
`
`eemfio
`
`5%
`
`m=o__..2n_
`
`E_$
`
`35
`
`35
`
`
`
`m0m
`
`%
`
`B
`
`m£5asmfi
`
`sx295295SHExUxxxx88585838
`
`
`
`m,xo._+_,.ao”:om+o.$8”§~+om+m98_+o._
`
`
`
`
`
`BN3X2
`in5.5
`
`Ema
`
`macaw
`
`Ion
`
`uflflfimv
`
`t8EEEEESana»:w8EEEEESHQHTAEM8EEEEESnagP..83%858888m.:._.;_,.:._
`
`m8888888uB§m889EEE85832n88EEEE8u8§M8EEEEE8uB»28EEEEE8uQ§
`
`«M«anoasmmm
`
`36
`
`36
`
`
`
`US ?,l90,284 B1
`
`1
`Slill.l4l(I'I‘lVE L()SSLESS, l.()SSY., OR NO
`COMPRESSION OF DATA BASED ON
`ADDRESS RANGE, DATA TYPE, AND.-‘OR
`REQUESTING AGENT
`
`(T()NTINUATI()N DATA
`
`This application is a continuation—in—part (CIP) ofSer. No.
`08i’9l6,464,
`filed Aug. 8, 1997. and now U.S. Pat. No.
`6,173,381, isstted on Jan. 9. 2001'.
`which is a continuation-in-part (CIP) of Ser. No. 08.I’463.
`106, filed Jun. 5, 1995, now abandoned;
`which is a continuation—in—part (CIP) of Ser. No. 08:840.
`667. filed on Nov. 16, 1994. which is now U.S. Pat. No.
`6.(l{)2,4ll, issued on Dec. 14. I999.
`
`l-'IIiI,l) OF TIIl.i IN\r’l_iN'l"I()N
`
`The present invention relates to computer system archi-
`tectures. and more particularly to a memory controller which
`includes an embedded data compression and decompression
`engine for the reduction of system bandwidth and improved
`efliciency.
`
`DI€S(IRlP'l‘I()N ()l"' Tlll-5 RI.£I..A'l'IilJ ART
`
`Since their introduction in I98]. the architectttre of pe -
`sonal
`computer
`systems
`has
`remained
`substantially
`unchanged. The current state of the art in cotnputer 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 a
`separate graphical interface for coupling to the video dis-
`play. In addition, the computer system includes inputfoutput
`(IEO) control
`logic for various U0 devices.
`including a
`keyboard. mouse. floppy drive, hard drive, etc.
`I11 general. the operation of tnodern computer architecture
`is as follows. Programs and data are read from a respective
`IEO device such as a floppy disk or hard drive by the
`operating syste1n._ and the programs and data are temporarily
`stored in systetn 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 manipulated by the system CPU. "lhe (TPU
`processes the code and data. and data is provided to one or
`tnore of the various output devices. The computer system
`may include several output devices, including a video dis-
`play. audio (speakers). primer. 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 g;I'aphics array (VCIAJ card. or the system may inchtde
`a dedicated video processor or video acceleration card
`including separate video RAM (\r"RAM].
`111 a computer
`system including a separate, dedicated video processor, the
`video processor includes graphics capabilities to reduce the
`workload of the lnain CPU. Modern prior an personal
`computer systems typically inclttde a local btts video system
`based on the Peripheral Component 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 CPU to provide increased perfor-
`]T]£:ll'lCC.
`
`2
`
`IU
`
`15
`
`20
`
`25
`
`30
`
`Therefore, in summary. program code and data are first
`read from the hard disk to the system memory. The program
`code and data are then read by the CPU frotn 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 system memory interface to the memory controller
`requires data bandwidth proportional to the application and
`system requirements. Thus.
`to achieve increased system
`performance, either wider data buses or higher speed spe-
`cialty metnory devices are required. These solutions force
`additional side-effects such as increased system cost. power
`and noise.
`I"I('"r.
`1
`illustrates the data transfer paths iii a
`typical computer memory controller and system memory
`using prior art technology.
`The CPU typically reads data from system memory across
`the local bus in a normal or non—compressed format. and
`then writes the processed data or graphical data back to the
`[E0 bus or local bus where the graphical interface device is
`situated. The graphical interface device in turn generates the
`appropriate video signals to drive the display monitor. It is
`noted that prior art computer architectures and operation
`typically do not perform data compression andfor decom-
`pression during the transfer between system memory and the
`CPU or between the system memory and the local [I0 bus.
`Prior art oomputer architecture also does nothing to reduce
`the size of system memory required to run the required user
`applications or software operating system. In addition. soft-
`ware controlled compression and decompression algorithms
`typically controlled by the CPU fiir non-volatile memory
`redttction techniques can not he applied to real time appli-
`cations that require high data rates such as audio, video, and
`graphics applications. Further. CPU software controlled
`compression and decompression algorithms put additional
`loads on the CPU and CPU cache subsystems.
`Certain prior art systems utilize multiple DRAM devices
`to gain improved memory bandwidth. These additional
`DRAM devices may cost the manufacturer more due to the
`abundance of memory that is not fully utilimd or required.
`The multiple DRAM devices are in many instances included
`primarily for added bandwidth. and when only the added
`bandwidth is needed, additional cost is incurred due to the
`multiple DRAM packages. For example, ifa specific com-
`puter system or consumer computing appliance such as a
`Digital TV set-top box uses l)Rl')RAM memory and requires
`more than 1.6 Gbytesfsec of bandwidth. then the tninimum
`amount of memory for this bandwidth requirement will be
`16 Mbytes. In such a case the manufacture pays for 16
`Mbytes even if the set-top box only requires 8 Mbytes.
`Computer systems are being called upon to perform larger
`and more complex tasks that reqttire increased computing
`power. In addition, tnodern software applications require
`_ computer systems with increased graphics capabilities.
`Modern software applications include graphical user inter-
`faces (Gills) which place increased burdens on the graphics
`capabilities of the computer system. I-iurther. the increased
`prevalence of multimedia applications also demands com-
`puter systems with more powerzfiil graphics capabilities.
`Therefore, a new system and method is desired to redttce the
`bandwidth requirements required by the computer system
`application and operating software. A new system and
`method is desired which provides increased system per:lor—
`_ mance without specialty high speed memory devices or
`wider data IEO buses required in prior art computer system
`architectures.
`
`40
`
`50
`
`60
`
`37
`
`37
`
`
`
`3
`SUMMARY OI" 'l‘[Ili lNV[iNTI(JN
`
`US ?,l90,284 B1
`
`4
`
`S
`
`10
`
`15
`
`20
`
`As mentioned above, according to the present invention
`the MemoryFJ'X Technology embedded within the IMC
`includes one or more compression and decompression
`engines for compressing and decompressing data within the
`system. ln the preferred embodiment the Mernoryl7r"X Tech-
`nology comprises separate oompression and decompression
`engines. In an alternate embodiment, a single combined
`compressionfdecompression engine can be implemented.
`The IMC preferably. primarily uses a lossless data compres-
`sion and decompression scheme. |.)ata transfers to and from
`the integrated memory controller of the present invention
`can thus be in either two formats, these being compressed or
`normal (non—compressed). The IMC may also include one or
`more lossy compression schemes for audiofvideolgraphics
`data.
`
`Thus compressed data from system L"O peripherals such
`as the non—volatile memory_.
`floppy drive, or local area
`network (LAN) are decompressed in the IMC and stored
`into system memory or saved in the system memory in
`compressed fomrat. Thus, data can be saved in either a
`normal or compressed format, retrieved from the system
`memory for CPU usage in a normal or compressed format.
`or‘ transmitted and stored on a medium in a nomial or
`
`The present invention comprises a memory controller.
`also referred to as the integrated memory controller (IMC),
`which provides improved data efliciency and bandwidth.
`The memory controller includes a compressionJ'dccompres-
`sion engine, preferably parallel data compression and
`decompression slices, that are embedded into the memory
`control logic ofthe memory controller. I’L1r1l1er, the present
`invention does not require specialty memory devices or
`system software changes for operation. The rnelnory con-
`troller logic of the present invention preferably interfaces to
`the system CPU either extemal or internal to the memory
`controller. Fur1her, the memory controller interfaces to the
`main system r11ernory and other interface buses such as a
`l1igl1—speed system peripheral bus, e.g., the PCI bus or the
`AGP. Additionally the IMC may contain graphics, video
`andfor audio control functions. The IMC includes one or
`
`more symmetric memory ports for connecting to system
`memory. The IMC also may include video outputs to
`directly drive the display device, as well as an audio
`interface for digital audio delivery to an external stereo
`digital-to-analog conver1er (DAC).
`'Il're IMC includes an embedded Technology termed
`“Memoryl7r"X” desigred for the reduction ofdata bandwidth
`between the main or system memory and the memory
`controller. The MemoryFJ'X Technology reduces the band-
`width requirements while increasing the memory efliciency
`for almost all data types within the computer system. Thus.
`conventional standard (JDEC) memory devices can achieve
`higher bandwidth with less system power and noise than
`when used in conventional systems without the MemoryF:'X
`Technology.
`Tl're IMC transfers data between the local bus, the embed-
`ded MemoryFr'X Technology and system memory. In addi-
`tion,
`the IMC also transfers data between the system
`memory and the display output. Therefore, the MemoryF:'X
`technology of the present
`invention typically resides
`between the CPU local bus, peripheral interconnect buses.
`and the rrrain system memory.
`The MemoryFJ'X Technology is designed to embed into
`memory control circuits and has a novel architecture to
`compress and decompress parallel data streams within the
`computing system. In addition, the Men1oryI'U"X Technology
`has a “scalable” architecture designed to function in a
`plurality of memory configurations or compression modes
`with a plurality of performance requirements.
`The lV[emoryl"fX Technology's system level architecture
`reduces data bandwidth requirements and thus irrrproves
`memory efliciency. Eflicierrcy is improved by the reduction
`of device L"O pins between the main memory bank and the
`memory controller. Compared to conventional systems, the
`Me1r1oryl*'r"X Technology obtains equivalent bandwidth to
`conventional architectures that u