`
`
`
`
`
`
`
`
`US 6,240,458 B1
`(10) Patent N0.:
`(12) Unlted States Patent
`
`
`
`
`
`
`
`(45) Date of Patent:
`May 29, 2001
`Gilbertson
`
`
`
`
`
`
`
`
`
`
`(54) SYSTEM AND METHOD FOR
`PROGRAMMABLY CONTROLLING DATA
`
`
`
`
`
`
`
`TRANSFER REQUEST RATES BETWEEN
`DATA SOURCES AND DESTINATIONS IN A
`
`
`
`
`
`
`
`DATA PROCESSING SYSTEM
`
`
`
`
`Inventor: Roger Lee Gilbertson, Minneapolis,
`
`MN (US)
`
`
`
`
`
`
`(73) Assignee: Unisys Corporation, Blue Bell, PA
`
`(Us)
`
`(75)
`
`
`
`
`
`
`
`
`6/1993 Webb, Jr. et a1.
`5,222,223 *
`9/1996 Guttag et 211.
`595609030 *
`~
`
`
`
`
`
`
`
`
`3/1999 Abriu ................................... 370/413
`5,881,065 *
`6,138,192 * 10/2000 Hausauer
`............................. 710/100
`
`
`
`
`
`
`
`* cited by examiner
`
`
`
`.
`
`
`
`
`
`
`
`
`
`
`Primary Examiner—Ario Etienne
`
`
`
`
`
`(74) Attorney, Agent, or Firm—Charles A. Johnson; Mark
`
`
`
`
`
`T~ Starr; Altera Law Group
`
`
`(57)
`ABSTRACT
`
`
`
`
`
`
`
`
`
`A system and method for selectively controlling the inter-
`
`
`
`
`
`
`
`
`face throughput of data transfer requests from request
`
`
`
`
`
`
`
`sources to request destinations. The system and method
`
`
`
`
`
`
`
`provide a manner in Which the flow of data transfer requests
`
`
`
`
`
`
`
`from request sources to request destinations are controlled.
`
`
`
`
`
`
`
`
`
`The data transfer requests from each of the request sources
`
`
`
`
`
`
`
`
`are temporarily stored for future delivery to its addressed
`
`
`
`
`
`
`
`
`request destination. Delivery of the stored data transfer
`
`
`
`
`
`
`
`
`requests to the addressed request destination is enabled
`
`
`
`
`
`according to a predetermined delivery priority scheme.
`
`
`
`
`
`
`
`
`
`Certain Stored data tranSfer requeStS are identified to be
`
`
`
`
`
`
`
`selectively suspended from being prioritized and delivered
`
`
`
`
`
`
`
`
`to the addressed request destination. The identified data
`
`
`
`
`
`
`
`
`transfer requests are suspended from delivery for a definable
`
`
`
`
`
`
`
`period of time. Upon expiration of the definable period of
`
`
`
`
`
`
`
`
`
`time, the suspended data transfer requests, as well as all
`
`
`
`
`
`
`
`
`
`other stored data transfer requests, are enabled for prioriti-
`
`
`
`
`
`
`
`zation and delivery in accordance With the predetermined
`
`
`
`delivery priority scheme.
`
`33 Claims, 14 Drawing Sheets
`
`
`
`
`
`
`
`( * ) N09963:
`
`
`
`
`
`
`
`
`
`Subjectto any disclaimer, the term Of this
`
`
`
`
`patent 15 extended or adjusted under 35
`
`
`
`U-S-C- 154(b) by0 days.
`
`
`
`
`
`(21) Appl. No.: 09/218,211
`
`
`
`
`
`(22)
`Flled:
`Dec. 22’ 1998
`
`
`
`
`
`
`(51)
`Int. Cl.7 ...................................................... G06F 15/16
`
`
`
`
`
`
`
`(52) us. Cl.
`.......................... 709/232, 709/233, 709/234,
`
`
`
`709/235; 710/39; 710/60
`
`
`
`
`
`
`(58) Field of Search ..................................... 709/234, 200,
`
`
`
`
`
`
`
`709/222, 252, 243, 207, 238, 235, 232,
`
`
`
`
`
`
`233’ 240; 710/263, 264, 244’ 112’ 116,
`
`
`
`
`
`
`
`39, 40, 52, 58—60; 711/150, 151; 370/395,
`
`414
`
`(56)
`
`
`
`
`References Cited
`
`
`
`
`
`U~S- PATENT DOCUMENTS
`1/1985 Agrawal et a1.
`4,493,021 *
`.
`
`
`
`
`5,136,718 *
`8/1992 Haydt .
`
`
`
`
`
`
`110
`
`
`O’
`
`/
`‘\
`
`\ \
`
`I
`
`130 >__
`I\_ _
`
`UNIT
`
`
`
`
`— —— _ .—
`
`.130_N_
`_ _ __ _
`
`
`UNIT
`
`
`
`
`
`
`
`UNIT
`
`
`
`
`
`UNIT
`
`
`
`
`____
`
`
`
`____
`
`
`
`
`
`
`
`‘\
`
`
`
`\‘
`
`
`
`
`
`
`
`
`
`
`
`
`__________________________________ ‘
`
`110A
`110B
`1100
`110D
`
`
`
`
`
`
`
`
`
`MEMORYSTORAGE
`MEMORYSTORAGE
`MEMORYSTORAGE
`MEMORY_TORAGE
`
`(MSU)
`(MSU)
`(MSU)
`_(SU)
`
`“a: .___-,_____1fl
`
`
`|fg!E=___1
`
`
`
`
`
`
`
`
`
`1308
`El 130D 130E
`"" " ‘“ iiii”"
`
`
`
`
`
`
`/
`PROCESSING
`120
`PROCESSING
`120B
`PROCESSING
`1200 _ROCESSING 120D\‘
`\\
`(POD)
`_POD) /(
`(POD)
`(POD)
`MODULE
`MODULE
`MODULE
`MODULE
`
`
`
`
`
`
`\\ ___ ____ _____ ___ _________ ____ ,’ 120
`
`
`150A
`1500
`150F
`15011
`1503
`1500
`150E
`150G
`,_— —_—— _——— ————— —— ————— ——— ———_ __-
`
`
`
`
`
`\__ ___ ____ _____ ___ _________ ____ __/\150
`INPUT/
`INPUT/
`INPUT/
`
`
`
`OUTPUT
`OUTPUT
`OUTPUT
`
`
`MODULE
`MODULE
`MODULE
`
`
`(I/O)
`(I/O)
`(I/O)
`
`
`
`
`/
`
`
`
`I
`
`l
`
`
`
`"
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(l/O) ‘_____.___..._____—_____________._______
`
`OUTPUT
`
`MODULE
`
`(l/O)
`
`
`OUTPUT
`MODULE
`
`
`
`
`
`
`OUTPUT
`
`MODULE
`
`(l/O)
`
`
`
`OUTPUT
`
`MODULE
`
`(|/O)
`
`
`OUTPUT
`MODULE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SYMMETRICAL MULTIPROCESSING PLATFORM
`
`
`
`
`
`
`
`
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`
`Sheet 1 0f 14
`
`
`
`US 6,240,458 B1
`
`cow
`
`
`
`Ea;
`
`5&8
`
`£802
`
`65
`
`\Io:0o:
`
`m._2n_0_>_
`
`02_mmm00mn_Oom—
`
`oz_mwm_00m_n_
`
`.69
`
`m._:n_0_>_
`
`680
`
`9:950
`
`m._3n_0_2
`
`\.5n_z_
`
`9:950
`
`3:002
`
`.5950
`
`53005.
`
`
`\9:n_z_\.5n_z_
`25;;
`
`9:950
`
`5:005.
`
`.5950
`
`5:005.
`
`.5950
`
`5:002
`
`
`
`>5n_z_\5n_z_
`
`_..GE
`
`
`
`
`
`EmOmbfin.Gz_mmm_00mn=._..5_>_._<0_m_._.m=>__>_>m
`
`\.5n_z_
`
`.5950
`
`5:002
`
`INTEL - 1007
`
`III-Er
`
` 5:825:820azammooEozammooE\IInIIIII\
`
`mfllumlllflmnl52
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`$565E052
`
`:2:
`
`5mg
`
`
`
` :2:wmoéoaEozwz\
`
`l
`
`/
`
`/
`
`IIII/0
`
`[a
`
`INTEL - 1007
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`Sheetz 0f14
`
`
`
`US 6,240,458 B1
`
`
`
`#5sz
`
`
`$530
`
`30$:
`
`
`
`>m0_2m=>_
`
`
`mmhmDJO
`
`305;
`
`
`
`>IO_>_m=>_
`
`ImkaAD
`
`
`
`mmeDJO
`
`_IIIHHJJIII
`\_069_momZoEzoo
`
`
`<05.mwuflomkzoo
`
`€0szmmm
`
`IIIIKIIITNmIN
`
`l.Imwmmn—Dd.
`
`
`
`mwm
`
`>mO_>_m=>_
`
`Ens:
`
`m<mmmomo<2
`
`Dm¢m\_MDwDO
`
`_<._.<n_DOQL
`
`
`
`3N22m..62_
`
`
`
`
`
`
`
`32>::2:$5.05>mo_>m__>_
`
`
`
`
`
`
`N.OE
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`US. Patent
`
`May 29, 2001
`
`Sheet3 0f14
`
`US 6,240,458 B1
`
`wwmmoo<
`
`6mm<._.<n_DOn_
`
`<._.<D00n—\wwmmDnE
`
`JOEFZOO20:02:“—
`
`._Om:.ZOO
`
`DOn.
`
`DmEéFéOn.
`
`wmmmoo<
`
`MDmDO
`
`._<Z_®_w
`
`<F<D00.“.
`
`MDMDO
`
`<h<o392
`
`6mm
`
`
`
`<20:05.\mmmm00<
`
`
`
`40520020.523
`
`405200
`
`:05.
`
`DOn_-O._.-Dm_2
`
`mmwmoo<
`
`MDwDO
`
`mDmDO
`
`050..
`
`
`
`mofimmhz.:02
`
`m.07.
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`US. Patent
`
`
`
`
`
`May 29, 2001
`
`
`Sheet 4 0f 14
`
`
`
`US 6,240,458 B1
`
`
`
`mmflmmmmm
`
`<v.GE
`
`
`
`GZ__>__._.ZO_._.OZDn_\wmmmn_n_<AAlllméE
`
`55mmEmamm(l590EEG
`
`596590_9:K
`
`m.28?\
`
`ézgmwEnemaEaH
`
`5m8%5m8%r2:,M$sz
`oomm<<82:”E)
`
`E
`
`F338”.8“.
`
`
`
`55mm595mm52.8.".[New('590.555
`
`596V59?(8.“
`
`
`
`<<<<<<<<ézgmfié
`
`o;9mN
`
`
`
`m2».OE
`
`623:.<29AAIIIEE
`
`$2:
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`US. Patent
`
`May 29, 2001
`
`Sheets 0f14
`
`US 6,240,458 B1
`
`#65
`
`m0<mwm§
`
`mDmDO
`
`0.00.—
`
`IOEHEEOS
`
`
`
`
`
`0.60..mamaom0<mmm§
`
`8m53<53880%men.02
`Emon;E8m3205So:
`
`FE9.25“.20mmm._<z_,.u_mn30:
`
`
`
`
`
`
`
`E.<n_<H<n_omooowo00m“.2.
`
`
`
`
`
`ozzbomD_._<><._.<D
`
`
`
`
`
`IIIIIIIVI0504mamSOmmmmonz
`
`m.9”.
`
`0.004
`
`<H<ommo<
`
`0mm0mm
`
`mmohm
`
`<._.<n_
`
`m0<mmm=2
`
`ozmm
`
`comm
`
`
`
`._<zw_m5m.30mmE.<o
`
`_
`
`
`
`669mazemmmmonz
`
`
`
`HmmDOm—m00m
`
`._<ZG_w
`
`mo<mmmooom—o
`
`omm
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`Sheet 6 0f 14
`
`
`
`US 6,240,458 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ADDRESS LOGIC
`
`
`
`
`
`
`
`
`DETECT
`LOGW
`
`
`
`635A60'I-lrllil-l-_l635E
`I-l ll II68
`DATA-BEFORE--‘
`
`
`
`
`DECODED
`
`530A
`NF
`
`
`
`
`SIGNALS
`
`
`
`
`
`
`
`
`
`602
`
`
`
`LOGIC
`
`
`
`
`
`I DATA VALID
`
`I ROUTING LOGIC
`
`DATA
`POD
`
`
`
`
`REQUEST
`REQUEST
`MESSAGE
`
`
`
`
`INDICATOR
`SIGNAL
`SIGNAL
`
`
`5357-}— _______ __ ————— --—— ___ _
`304
`525
`530
`537
`26°C
`
`
`
`
`
`
`
`
`
`DATA\UUJDF¥3UTWK3LOGHC
`
`FIG. 6
`
`
`
`STORE-
`
`DATA
`INDICATOR
`
`
`
`INTEL-1007
`
`I I |
`
`I
`I
`
`INTEL - 1007
`
`
`
`US. Patent
`
`May 29, 2001
`
`Sheet7 0f14
`
`US 6,240,458 B1
`
` Booozw__I059_I28528_wfi‘i'o:__anE_.1.______
`
`
`
`“mmwuwm.wwmmogm:cm$5__ammo“:nmwuu__wizgm............__><mm< 10509052:55”.?onEmQE__8x2..__$9520:nuE._3x91gCE0:a:. Booozw.5E28__$2Eagafim__JoEzoomane20.52:”.32%8:652.52%So:dzo__wmmEEmwmmogE36528$55om__808mgEgoozm__><mm<mane
`E5@N:
`
`
`
`
`
`
`
`:oEmmEm_ma__wézgm__zo_5m_._m_mmane__><m¢<
`
`
`
`
`
`
`
`_
`
`
`
`_IIIIIIIIIIIIIIIIIIIIIIII.l__Iso_
`
`mmoouzwE
`
`
`
`060..m._<zo_mN.0_n_
`
`
`
`
`
`maze105$me$5.8.220592>32%“E22%
`
`
`«83m2m3m
`
`
`
`
`
`
`
`
`
`<H<ow._<zo_w“.2<._.<ommOHmowoOOmohwmzcm—m00m30:
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`Sheet 8 0f 14
`
`
`
`US 6,240,458 B1
`
`
`
`
`
`
`
`m0<mo._.w>mOHomem0<mo._.m>mO._.omE_n_
`
`mag/EOE>mohomm=o
`
`
`wo<mo._.m>mo._,om_m_o
`
`><mm<
`
`><mm<
`
`
`
`><mm<><mm<
`
`
`
`<H<o._._.o\mo<<._.<o<._.<n_
`
`
`
`
`
`
`
`._._.o\mn_<<._.<Q
`
`mamzoazixm82mos
`
`
`
`
`
`<omwzo_wz<n_xm_:mE
`
`<omm
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`mo<mohw>mOpomm—Ewo<mOHm>mOHomEE
`
`
`
`><mm<><mm<
`
`8%zoazExm3m:88
`
`
`
`
`
`.................moak
`
`Comm
`
`
`
`zO_wz<n_Xm_392
`
`comm
`
`m0<mo._.m$5.5me
`
`
`wo<mo._.m£5.5me
`
`><mm<
`
`><mm<
`
`..85.\...
`
`
`
`._._.0ED<<._.<Q
`
`-____--_-----------—--—-----J
`
`
`----—-———-—————-————______---_--—_--__-_--_-—_—_--—-------—-_—---------—-———-----_-_-J
`
`
`
`
`......_-.——........—-------—J
`
`
`
`
`
`
`
`
`
`
`<._.<n_._._.o\mo<<._.<o<._.<o
`
`
`
`
`
`:05;$530E0552
`
`
`
`m.9“.
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`
`
`
`
`
`
`
`
`
`US. Patent
`
`May 29, 2001
`
`Sheet 9 0f 14
`
`US 6,240,458 B1
`
`IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII|IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIUIIIIIIIIII
`
`
`
`mmkwao>mo_>_m_>_oo
`
`
`
`mmhmao>mo_>_m_2
`
`<mmm
`
`‘IIIIII'
`
`FEE._bn_z_
`
`
`
`mmamzo<20no;
`
`omam—:O<H<o00m
`
`.sz_
`
`m._._m>>
`
`0m:m:0
`
`
`
`m:._m>>m._._m>>
`
`vmam.:0om3m—:0
`
`vow
`
`mo<u_m_m_._.z_E
`
`meSO{53
`
`HowzzooEsz.
`
`o_wo._
`
`tum
`
`<5518m
`
`BEEF;
`
`mom
`
`m.9“.
`
`omm
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`Sheet10 0f14
`
`
`
`US 6,240,458 B1
`
`
`
`m_I_m<mDO_n_ZOO
`
`
`
`>>O....._hwwDme
`
`EMIZOm—HZOO
`
`Z<OmO=2<Z>Q
`
`mooF
`
`
`
`2.0E
`
`om?
`
`meDOmm
`
`
`
`>>O._n_
`
`
`
`IOHmEmmOHw
`
`mDMDO
`
`
`
`
`
`memDOmwmZO_._.<Z_._.mm_D
`
`
`
`IO._.m_n_\mm—O._.w
`
`>._._m0_mn_
`
`
`O_GO._
`
`
`
`
`0:004mDMDO
`
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`
`Sheet 11 0f 14
`
`
`
`US 6,240,458 B1
`
`
`
`1188 AB STRESS f “00
`HOLD [7:0]
`
`
`
`
`
`
`
`ngfgjfigs
`[
`-
`]
`
`
`
`
`
`
`1190
`
`
`I AB7
`STRESS
`
`
`HOLD
`
`I I :
`
`11511
`
`
`I
`AB S_TR_ESS
`ENABLE
`
`
`
`
`1104
`
`I
`
`m 1
`COUNTER
`9:0]
`“02
`
`1122 I
`
`
`:
`:
`I
`I____
`
`I
`I
`I
`1
`II 11124
`REGISTER
`I
`I
`
`1152
`
`1150
`I
`I
`I
`DECODER
`: [1134 1138
`
`
`
`
`
`
`
`
`_
`_ 1
`1MB"
`1146-:
`I
`1140-:Il
`d=b II 1136-:
`I]
`I
`' wo
`' W1
`1120” ABS I'
`. J ABO l
`A87
`
`
`l REG HI REG
`REG
`'l REG
`I REG
`I___' I___'l
`' L _'
`IL.
`
`__
`
`
`
`
`
`_
`
`
`
`FIG. 11
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`Sheet 12 0f 14
`
`
`
`US 6,240,458 B1
`
`IDENTIFY DESTINATION RESOURCES
`
`
`
`
`
`
`
`
`
`
`
`
`CONFIGURE MODE REGISTERS FOR EACH
`
`
`
`DESTINATION RESOURCE
`
`
`
`
`
`
`
`
`
`SELECT MASKING WAVEFORM BASED ON
`
`
`
`
`CONFIGURED MODE FOR EACH
`
`
`
`DESTINATION RESOURCE
`
`
`
`REMOVAL ACTIVITY
`
`
`
`
`SELECT ONE OR MORE DESTINATION
`
`
`RESOURCES TO SUSPEND REQUEST
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SUSPEND REQUEST REMOVAL ACTIVITY
`
`
`
`FOR SELECTED DESTINATION
`
`
`RESOURCES ACCORDING TO
`
`
`
`
`RESPECTIVE MASKING DUTY CYCLES
`
`
`
`
`
`
`1 200
`
`
`
`1 202
`
`
`
`1 204
`
`
`
`1 206
`
`
`
`1208
`
`
`
`
`FIG. 12
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`Sheet 13 0f 14
`
`
`
`US 6,240,458 B1
`
`
`
`
`
`
`
`
`
`
`
`
`FIRST POD ASSIGNED TO ROUTINELY
`
`
`
`
`PERFORM LONG DATA TRANSFER
`
`
`
`
`OPERATIONS TO DESTINATION
`
`
`
`RESOURCE A INITIATES DATA
`
`TRANSFER
`
`
`
`
`
`
`
`
`
`1 300
`
`
`
`
`
`
`
`
`
`
`
`
`
`I/O MODULE
`
`
`
`ASSOCIATED WITH
`
`
`
`
`
`ENABLE FIRST POD TO
`
`
`
`
`SECOND POD INITIATE
`
`
`
`
`
`INITIATE ANOTHER DATA
`
`
`
`DATA TRANSFER TO
`
`
`
`
`TRANSFER
`
`DESTINATION
`
`RESOURCE A?
`
`
`
`
`
`
`
`
`
`
`
`
`I/O DATA
`,
`
`
`TRANSFER HAVE
`
`
`
`
`ASSOCIATED TIMEOUT
`
`
`
`RESTRICTION
`7
`
`
`
`
` 1 306
`
`
`
`YES
`
`
`
`
`
`
`
`DYNAMICALLY SCAN DESIRED
`
`
`
`MODE INTO PROGRAMMABLE
`
`
`REGISTER CORRESPONDING TO
`
`
`FIRST POD
`
`SELECTED MODE
`
`
`
`
`DISABLE FURTHER DATA
`
`
`
`
`TRANSFERS FROM FIRST POD TO
`
`
`DESTINATION RESOURCE A FOR
`PERIOD DESIGNATED BY
`
`
`
`
`
`
`FIG. 13
`
`
`1310
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`US. Patent
`
`
`
`
`May 29, 2001
`
`
`
`
`Sheet 14 0f 14
`
`
`
`US 6,240,458 B1
`
`
`
`
`
`
`ENABLE A SELECTED ONE OF THE STORE/FETCH
`
`
`
`
`
`QUEUES TO INITIALIZE THE CORRESPONDING MSU
`
`
`
`
`PRELOAD A NUMBER OF STORE/FETCH REQUESTS
`
`
`
`INTO REMAINING STORE/FETCH QUEUES OF
`
`
`CORRESPONDING MSU
`
`
`
`
`
`
`
`
`SET INDEFINITE DATA TRANSFER BLOCK ON
`
`
`REMAINING STORE/FETCH QUEUES
`
`1 400
`
`
`
`1402
`
`
`
`1404
`
`
`
`
`
`START MSU CLOCKS
`
`
`
`1406
`
`
`
`
`EXECUTE MSU INITIALIZATION SEQUENCE
`
`
`
`
`
`
`
`
`
`
`DYNAMICALLY SCAN BLOCK RELEASE INTO PROGRAMMABLE
`
`
`
`
`REGISTERS CORRESPONDING TO DESTINATION RESOURCE OF
`
`
`
`REMAINING STORE/FETCH QUEUES
`
`1410
`
`
`
`1408
`
`
`
`
`
`
`
`RELEASE PRELOADED REQUESTS TO DOWNLINE MSU
`
`
`LOGIC STRUCTURES
`
`
`
`1412
`
`
`
`
`
`
`
`USER-DEFINED
`
`
`
`TIME PERIOD EXPIRE
`
`
`
`?
`
`
`
`
`
`
`
`
`
`YES
`
`
`
`
`
`STOP MSU CLOCKS
`
`
`
`
`
`
`
`ASCERTAIN MSU STATE
`
`
`
`NO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`COMPARE ACTUAL MSU STATE TO
`
`
`
`EXPECTED MSU STATE
`
`FIG. 14
`
`1414
`
`
`
`
`
`1416
`
`
`
`1418
`
`
`
`
`
`
`
`1420
`
`
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`
`US 6,240,458 B1
`
`
`1
`SYSTEM AND METHOD FOR
`
`
`
`PROGRAMMABLY CONTROLLING DATA
`
`
`
`TRANSFER REQUEST RATES BETWEEN
`
`
`
`
`DATA SOURCES AND DESTINATIONS IN A
`
`
`
`
`DATA PROCESSING SYSTEM
`
`
`
`CROSS-REFERENCE TO OTHER PATENT
`
`
`APPLICATIONS
`
`
`
`
`
`
`
`
`
`
`
`The following co-pending patent application of common
`
`
`
`
`
`assignee contains some common disclosure:
`
`
`
`
`
`
`
`“Multi-Level Priority Control System And Method For
`
`
`
`
`
`
`Managing Concurrently Pending Data Transfer Requests”,
`
`
`
`
`
`
`
`
`filed concurrently herewith with assigned Ser. No. 09/218,
`
`
`
`
`
`
`377, which in incorporated by reference in its entirety;
`
`
`
`
`
`
`
`“Transfer Request Selection Method And Apparatus For
`
`
`
`
`
`Symmetrical Multiprocessor Systems”, filed concurrently
`
`
`
`
`
`
`
`
`herewith with assigned Ser. No. 09/218,210, which is incor-
`
`
`
`
`
`porated by reference in its entirety; and
`
`
`
`
`
`
`
`“Queueing Architecture And Control System For Data
`
`
`
`
`
`Processing System Having Independently-Operative Data
`And Address Interfaces”, Ser. No. 09/096,822, filed Jun. 12,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`1998, which is incorporated herein by reference in its
`
`entirety.
`
`FIELD OF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`This invention relates generally to data transfer request
`
`
`
`
`
`
`
`management in data processing systems, and more particu-
`
`
`
`
`
`
`
`
`larly to an interface and programmable interface control
`
`
`
`
`
`
`
`
`system and method for selectively providing, and control-
`
`
`
`
`
`
`
`
`
`ling the rate of, data transfer requests to destination
`
`
`
`
`
`
`
`
`resources, thereby providing the ability to manipulate data
`
`
`
`
`
`
`
`throughput under normal operating conditions, and to pro-
`
`
`
`
`
`
`vide a means for performing transaction processing testing.
`BACKGROUND OF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`Data processing systems generally include multiple units
`
`
`
`
`
`
`
`such as processing units, memory units, input/output units,
`and the like, which are interconnected over one or more
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`system interfaces. The interfaces provide for the transfer of
`
`
`
`
`
`
`
`
`
`digital signals between the units. Since many of the opera-
`
`
`
`
`
`
`
`
`tions within data processing systems involve such transfers,
`
`
`
`
`
`
`
`
`
`the efficiency of the interfaces has a major impact on the
`
`
`
`
`
`
`overall performance of the data processing system.
`
`
`
`
`
`
`
`Many conventional interfaces used within data processing
`
`
`
`
`
`
`
`
`systems have several types of signal lines, including data
`
`
`
`
`
`
`
`
`
`lines for transferring data signals, and address lines for
`
`
`
`
`
`
`
`transferring address signals. The address lines generally
`
`
`
`
`
`
`
`
`
`provide information indicative of the type of request, and
`indicate a unit and/or a particular addressable
`further
`
`
`
`
`
`
`resource associated within the unit that is involved with the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`request. The data lines provide data signals which are
`
`
`
`
`associated with the request.
`
`
`
`
`
`
`
`
`
`Requests for data transfers may occur at a faster rate than
`
`
`
`
`
`
`
`
`the memory and associated cache coherency logic can
`
`
`
`
`
`
`
`sustain. A buffering technique may be used to queue such
`
`
`
`
`
`
`
`
`requests until they can be processed. However, the queuing
`function can sometimes result in inefficient and discrimina-
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`tory request servicing.
`In some cases, one processor’s
`
`
`
`
`
`
`
`requests may be repeatedly processed, while another’s are
`
`
`
`
`
`
`
`left relatively unattended. In other cases, a processor having
`
`
`
`
`
`
`
`
`relatively few requests may needlessly tie up system
`
`
`
`
`
`
`resources by receiving unnecessary request service polls.
`
`
`
`
`
`
`
`
`These situations can reduce available request bandpass, and
`
`
`
`
`
`
`
`
`increase the probability of request stalling or request lock-
`
`
`
`
`
`
`
`
`
`out. To address this issue,
`the buffering technique may
`
`
`2
`
`
`
`
`
`
`
`
`include a priority scheme to output the data transfer requests
`
`
`
`
`
`
`
`according to a priority assigned to each of the data transfer
`
`
`
`
`
`
`
`
`requests. One priority scheme known in the art is known as
`
`
`
`
`
`
`
`
`a “fixed” request priority scheme. Each requester is assigned
`
`
`
`
`
`
`
`
`
`a fixed priority value, and requests are handled according to
`
`
`
`
`
`
`
`
`this associated priority value. Those requests having a high
`
`
`
`
`
`
`
`
`
`fixed priority value are always handled prior to those having
`
`
`
`
`
`
`
`relatively low priority values. Another request priority
`
`
`
`
`
`
`
`scheme is referred to as “snap-fixed”, where input request
`
`
`
`
`
`
`activity is continually or periodically polled. This results in
`
`
`
`
`
`
`
`a captured “snapshot” of the request activity at a given time.
`
`
`
`
`
`
`
`
`All of the captured requests are processed in a fixed order
`
`
`
`
`
`
`
`
`until all requests in the snapshot have been processed, at
`
`
`
`
`
`
`
`which time a new snapshot is taken. A “simple rotational”
`
`
`
`
`
`
`
`priority scheme involves changing the requester priority on
`
`
`
`
`
`
`
`
`
`a periodic basis. For example, the requester priority may be
`
`
`
`
`
`
`changed whenever a request is granted priority. Requester
`
`
`
`
`
`
`
`
`(N—1) moves to priority level (N), requester (N) moves to
`
`
`
`(N+1), and so forth.
`
`
`
`
`
`
`
`
`Regardless of the priority scheme used, there may be
`
`
`
`
`
`
`
`times when the implemented priority scheme inhibits execu-
`
`
`
`
`
`
`
`tion of a desired system operation. For example, testing of
`
`
`
`
`
`
`
`a complex multiprocessing system having multiple data
`
`
`
`
`
`
`
`
`transfer sources and multiple data transfer destinations can
`
`
`
`
`
`
`
`be incredibly complicated, particularly where test programs
`must be written to simulate transaction “stress” situations.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Such a transaction stress situation may occur during normal
`
`
`
`
`
`
`
`operation where some resources, like memory, are suddenly
`
`
`
`
`
`
`
`
`inundated with pending data transfer requests. When this
`
`
`
`
`
`
`
`
`occurs, memory response times may be reduced, causing the
`
`
`
`
`
`
`
`
`data transaction queues to fill. The requesting modules must
`
`
`
`
`
`
`
`
`
`be able to accommodate this situation to avoid queue
`
`
`
`
`
`
`
`overrun problems, and it is therefore important to be able to
`simulate and test
`these conditions. Further,
`the memory
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`resources must be able to manage and absorb the high
`
`
`
`
`
`
`
`
`volume of sudden request traffic and properly respond to the
`
`
`
`
`
`
`
`requesting modules. Again, these situations require thorough
`
`testing.
`
`
`
`
`
`
`
`In order to prepare test programs to simulate these stress
`conditions, a detailed knowledge of the entire hardware
`
`
`
`
`
`
`
`
`
`
`implementation would be required in order to predict the
`
`
`
`
`
`
`direct effect on system hardware produced by test program
`
`
`
`
`
`
`
`stimulus. The time, required resources, complexity and cost
`
`
`
`
`
`
`of preparing such test programs is prohibitive.
`It would therefore be desirable to provide an efficient
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`arrangement and method that allows data transfer request
`
`
`
`
`
`
`
`queues to be controlled, or “throttled”, by way of simple
`
`
`
`
`
`
`user-defined parameters. Implemented priority schemes can
`
`
`
`
`
`
`
`be maintained, but can be selectively bypassed to perform
`stress tests, or to accommodate peculiar situations which
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`might arise during normal operation. The present invention
`
`
`
`
`
`
`
`
`provides such a solution, and provides these and other
`
`
`
`
`
`
`
`advantages and benefits over the prior art.
`SUMMARY OF THE INVENTION
`
`
`
`
`
`
`
`
`
`
`The present invention relates to a system and method for
`
`
`
`
`
`
`
`selectively controlling the interface throughput of data trans-
`
`
`
`
`
`
`
`fer requests from request sources to request destinations,
`
`
`
`
`
`
`
`thereby providing the ability to manipulate data throughput
`
`
`
`
`
`
`
`under normal operating conditions, and to provide a means
`
`
`
`
`
`for performing transaction processing testing.
`In accordance with one embodiment of the invention, a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`method is provided for controlling the flow of data transfer
`
`
`
`
`
`
`
`requests from various request sources to various request
`
`
`
`
`
`
`
`destinations. Each data transfer request is a request for an
`
`
`
`
`
`
`
`addressed one of the request destinations to supply a data
`
`
`
`
`
`
`
`10
`
`15
`
`
`
`20
`
`25
`
`
`
`30
`
`35
`
`
`
`40
`
`
`
`45
`
`
`
`50
`
`
`
`55
`
`
`
`60
`
`
`
`65
`
`
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`
`US 6,240,458 B1
`
`
`3
`
`
`
`
`
`
`
`
`segment to the requesting source. The data transfer requests
`
`
`
`
`
`
`
`
`
`from each of the request sources are temporarily stored for
`
`
`
`
`
`
`
`future delivery to its addressed request destination. Delivery
`
`
`
`
`
`
`
`
`of the stored data transfer requests to the addressed request
`
`
`
`
`
`destination is enabled according to a predetermined delivery
`
`
`
`
`
`
`
`
`priority scheme. Certain ones of the stored data transfer
`
`
`
`
`
`
`
`
`requests are identified to be selectively suspended from
`
`
`
`
`
`
`
`
`being prioritized and delivered to the addressed request
`
`
`
`
`
`
`
`
`destination. These identified data transfer requests are sus-
`
`
`
`
`
`
`
`
`pended from delivery for a definable period of time. During
`
`
`
`
`
`
`
`
`this time, the destination addressed by the suspended data
`
`
`
`
`
`
`
`
`
`transfer requests will not receive any of these requests. Upon
`
`
`
`
`
`
`
`
`
`expiration of the definable period of time, the suspended
`
`
`
`
`
`
`
`
`data transfer requests, as well as all other stored data transfer
`
`
`
`
`
`
`
`
`requests, are enabled for prioritization and delivery in accor-
`
`
`
`
`
`
`
`dance with the predetermined delivery priority scheme. In
`
`
`
`
`
`
`
`
`
`this manner, the suspended data transfer requests will gain
`
`
`
`
`
`
`
`
`priority during the period of suspension, and will thereafter
`
`
`
`
`
`
`
`be provided to the destination according to their respective
`
`priorities.
`In accordance with another embodiment of the invention,
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a method is provided for controlling the flow of data transfer
`
`
`
`
`
`
`requests during normal system operations of a multiprocess-
`
`
`
`
`
`
`
`
`
`ing computing system that has multiple request sources that
`
`
`
`
`
`
`
`provide data transfer requests to multiple request destina-
`
`
`
`
`
`
`
`
`tions. The data transfer requests are prioritized according to
`
`
`
`
`
`
`
`
`a predetermined request dispatch priority scheme. Each data
`
`
`
`
`
`
`
`
`
`transfer request is a request for an addressed one of the
`
`
`
`
`
`
`request destinations to supply a data segment to a respective
`
`
`
`
`
`
`
`one of the request sources. The method includes periodically
`
`
`
`
`
`
`
`performing first data transfer operations between a first
`
`
`
`
`
`
`
`request source and a targeted request destination. A second
`
`
`
`
`
`
`
`data transfer operation is initiated between a second request
`
`
`
`
`
`
`
`
`source and the targeted request destination, wherein the
`
`
`
`
`
`
`
`
`second data transfer operation is subject
`to a response
`timeout
`limitation. The first data transfer operations are
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`suspended for a user-defined period upon recognition of
`initiation of the second data transfer operation, and the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`second data transfer operations are enabled during the
`
`
`
`
`
`
`
`user-defined period. Upon expiration of the user-defined
`
`
`
`
`
`
`
`
`
`
`period, both the first and second data transfer operations are
`
`
`
`
`
`
`
`enabled in accordance with the predetermined request dis-
`
`
`
`patch priority scheme.
`In accordance with yet another embodiment of the
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`invention, a method is provided for controlling the flow of
`
`
`
`
`
`
`
`data transfer requests during offline testing of a multipro-
`
`
`
`
`
`
`
`cessing computing system having a plurality of request
`
`
`
`
`
`
`
`
`sources capable of providing data transfer requests to a
`
`
`
`
`
`
`
`plurality of request destinations in accordance with a pre-
`
`
`
`
`
`
`
`determined request dispatch priority scheme. The multipro-
`
`
`
`
`
`
`
`cessing computing system including a main storage unit
`
`
`
`
`
`
`
`
`having multiple data transfer queues that operate in parallel
`
`
`
`
`
`
`
`
`
`to temporarily store the data transfer requests from the
`
`
`
`
`
`
`
`request sources to the request destinations. The method
`
`
`
`
`
`
`
`
`
`includes selecting a first of the plurality of data transfer
`55
`
`
`
`
`
`
`
`
`queues to initialize the memory in the main storage unit. A
`number of known data transfer requests are loaded into
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`second ones of the plurality of data transfer queues, wherein
`
`
`
`
`
`
`
`
`the second ones of the data transfer queues comprise at least
`
`
`
`
`
`
`
`
`
`one of the remaining ones of the data transfer queues not
`
`
`
`
`
`
`
`selected to initialize the memory. Data transfer operations
`
`
`
`
`
`
`
`
`
`are prohibited from the second data transfer queues for a
`
`
`
`
`
`user-defined period. A memory initialization sequence is
`executed via the first data transfer queue. The data transfer
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`operations are enabled from the second data transfer queues
`
`
`
`
`
`upon expiration of the user-defined period.
`In accordance with another aspect of the invention, a data
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`transfer request interface circuit is provided for use in a
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`60
`
`65
`
`
`4
`
`
`
`
`
`
`least one
`multiprocessing computing system having at
`
`
`
`
`
`
`
`
`request source to provide data transfer requests to at least
`
`
`
`
`
`
`
`one request destination. The interface circuit
`includes a
`
`
`
`
`
`
`
`queuing circuit coupled to each of the request sources to
`
`
`
`
`
`
`
`
`receive and temporarily store the data transfer requests. A
`
`
`
`
`
`
`
`
`
`priority logic circuit is coupled to the queuing circuit to
`
`
`
`
`
`
`
`
`prioritize a sequence by which the stored data transfer
`
`
`
`
`
`
`
`
`
`requests are output from the queuing circuit. The priority
`
`
`
`
`
`
`logic operates in accordance with a predetermined priority
`
`
`
`
`
`
`
`algorithm. A masking register is coupled to the priority logic
`
`
`
`
`
`
`
`circuit to mask predetermined stored data transfer requests
`
`
`
`
`
`
`
`
`
`from being considered by the priority logic circuit
`in
`
`
`
`
`
`
`
`response to a masking signal pattern provided to the mask-
`
`
`
`
`
`
`
`
`
`ing register. In this manner, the predetermined ones of the
`
`
`
`
`
`
`
`
`
`stored data transfer requests are retained in the queuing
`
`
`
`
`
`
`
`
`
`circuit while the remaining stored data transfer requests are
`
`
`
`
`
`
`
`
`allowed to be prioritized and output from the queuing
`
`
`
`
`
`
`circuit. A configurable request flow controller is coupled to
`
`
`
`
`
`
`
`
`the masking register to generate the masking signal pattern
`
`
`
`
`
`
`in response to user-defined parameters. The user-defined
`
`
`
`
`
`
`
`
`parameters define at least which of the stored data transfer
`
`
`
`
`
`
`
`
`requests are to be masked by the masking register, and the
`
`
`
`
`
`
`
`
`
`
`duration to which the masking signal pattern is to be
`sustained.
`
`
`
`
`
`
`
`
`Still other objects and advantages of the present invention
`
`
`
`
`
`
`
`
`
`will become readily apparent to those skilled in this art from
`
`
`
`
`
`
`
`the following detailed description. As will be realized, the
`
`
`
`
`
`
`
`invention is capable of other and different embodiments, and
`
`
`
`
`
`
`
`
`its details are capable of modification without departing
`
`
`
`
`
`
`
`
`
`from the scope and spirit of the invention. Accordingly, the
`
`
`
`
`
`
`drawing and description are to be regarded as illustrative in
`nature, and not as restrictive.
`
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`
`The invention is described in connection with the embodi-
`
`
`
`
`
`
`
`
`
`
`
`ments illustrated in the following diagrams.
`
`
`
`
`
`
`FIG. 1 is a block diagram of a Symmetrical Multi-
`
`
`
`
`
`
`Processor (SMP) System Platform in which the principles of
`
`
`
`
`
`the present invention may be applied;
`FIG. 2 is a block diagram of one embodiment of a
`
`
`
`
`
`
`
`
`
`
`Memory Storage Unit (MSU);
`FIG. 3 is a block diagram of bi-directional MSU Interface
`
`
`
`
`
`
`
`
`
`
`
`(MI) and associated interface control logic;
`
`
`
`
`FIG. 4A is a timing diagram of a POD-to-MSU address
`transfer;
`
`
`
`
`
`
`
`FIG. 4B is a timing diagram of a POD-to-MSU data
`transfer;
`
`FIG. 5 is a block diagram of one embodiment of the
`
`
`
`
`
`
`
`
`
`Address Queue Logic;
`FIG. 6 is a block diagram of one embodiment of the Data
`
`
`
`
`
`
`
`
`
`Valid Routing Logic;
`FIG. 7 is a block diagram of one embodiment of the
`
`
`
`
`
`
`
`
`
`Store/Fetch Queue Logic;
`FIG. 8 is a block diagram of one embodiment of a
`
`
`
`
`
`
`
`
`
`
`
`
`
`Memory Cluster depicting the various destination resources
`contained therein;
`
`
`FIG. 9 is a block diagram of one embodiment of an MSU
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`illustrating the availability of PODs being the resource
`destination;
`
`
`
`
`
`
`
`
`FIG. 10 is a block diagram illustrating one manner of
`
`
`
`
`
`
`
`configurably controlling the flow of data transfer requests to
`particular destination resources in accordance with the
`
`
`
`
`
`
`
`
`
`present invention;
`
`
`
`
`
`FIG. 11 is a schematic diagram illustrating one embodi-
`
`
`
`
`
`ment of a Configurable Request Flow Controller in accor-
`dance with the present invention;
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`INTEL - 1007
`
`INTEL - 1007
`
`
`
`
`
`US 6,240,458 B1
`
`
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5
`
`
`
`
`
`
`
`FIG. 12 is a flow diagram illustrating one embodiment of
`
`
`
`
`
`
`
`
`
`a method for programmably controlling the flow of data
`
`
`
`
`
`
`
`transfer requests in accordance with the present invention;
`
`
`
`
`
`
`FIG. 13 is a flow diagram of an example procedure used
`
`
`
`
`
`
`
`
`during normal operation of the system using the principles
`
`
`
`
`
`of the present invention; and
`
`
`
`
`
`
`FIG. 14 is a flow diagram of an example procedure used
`
`
`
`
`
`
`
`
`during offline testing of the system using the principles of
`
`
`
`the present invention.
`DETAILED DESCRIPTION OF THE
`
`
`ILLUSTRATED EMBODIMENTS
`
`
`
`
`
`
`
`
`
`Generally, the present invention provides a system and
`
`
`
`
`
`
`
`
`method for controlling the throughput of data transfer
`
`
`
`
`
`requests through a source-to-destination interface. The
`
`
`
`
`
`
`invention provides programmable control of the removal of
`
`
`
`
`
`
`
`data transfer requests from queuing structures to destination
`
`
`
`
`
`
`
`
`resources such as memory, and further provides for control
`
`
`
`
`
`
`
`
`
`
`of the rate at which requests are removed from the queuing
`
`
`
`
`
`
`structures, including a complete suspension of data transfers
`
`
`
`
`
`
`
`for a user-defined period. Control of request removal rates is
`
`
`
`
`
`
`
`dynamically configurable, allowing flexibility and ease of
`
`
`
`
`
`
`
`
`use. The present invention facilitates stress testing of both
`
`
`
`
`
`
`
`
`the requester and request receiv