throbber
United States Patent
`Andersen et al.
`
`3,967,247
`in,
`[451 June 29, 1976
`
`[541 STORAGE INTERFACE UNIT
`[75] Inventors: Vernon K. Andersen, New Brighton;
`Michael W. Goddard, Roseville.
`both of Minn.
`[73] Assignee: Sperry Rand Corporation, New
`York, N.Y.
`Nov. ll, 1974
`{22] Filed:
`[2]] Appl. No.: 522,553
`
`[52] U.S. Cl. ........................................... .. 340/1725
`[51] Int. Cl.2 .................... .. G06F 13/00; G1 1C 9/06
`[58] Field of Search ..................... .. 340/1725; 444/1
`
`[56]
`
`References Cited
`UNITED STATES PATENTS
`
`3,394,353
`
`7/1968 Bloom et al. .................. .. 340/1725
`
`3,569,938
`
`3/1971
`
`Eden . . . . . . . . i . . . . . . .
`
`. . . . .. 340/1725
`
`3,588,839
`
`6/1971
`
`Belady cl al. . . . .
`
`. . . . .. 340/1725
`
`3,647,348
`
`3/1972 Smith ct a1 . . . . . . .
`
`. . . . . . . . . . .. 340/1725
`
`3,670,309
`R26,624
`
`......... .. 340/1725
`6/1972 Amdahl et a1. ..
`7/1969 Bloom et a1. .................. .. 340/1725
`
`Primary Examt'ner—Gareth D. Shaw
`Assistant Examiner—-Michael C. Sachs
`Attorney, Agent, or Firm-Thomas J. Nikolai; Kenneth
`T. Grace; Marshall M. Truex
`
`[57]
`
`ABSTRACT
`
`A storage interface unit adapted to serve as a high
`speed buffer between plural requestor units and a rela
`tively low speed main memory in a data processing
`system. The high speed buffer provides temporary
`storage for a limited number of blocks of data stored
`in the main memory. When a particular address is re
`quested by a requestor unit, a check is made to deter
`mine if that address is resident in the high speed buffer
`and if so, it is available to the requestor unit for read‘
`ing or writing. If the desired address is not resident in
`the high speed buffer, a block in the buffer is selected
`for replacement. in accordance with the present in
`vention, when a block is to be displaced from the buf~
`fer and a new block is requested from the main mem
`ory, during the interval that the new block is re
`quested from the main memory, the block to be dis
`placed is checked for modi?cations. If any word of the
`old block has been modi?ed since it was obtained
`originally from main memory the entire block is read
`into a temporary holding register and is restored in the
`main memory while the new block is being entered
`into the buffer storage.
`
`2 Claims, 11 Drawing Figures
`
`one ADDRESS
`SEGMENT
`(SEGMENT o)
`
`'0
`
`REQO
`
`REG. 1
`
`RED. 2
`
`'2
`
`56
`
`f 58
`
`I 60
`
`RED.
`R0. REG.
`i
`
`REO.
`no. REG.
`i
`‘
`
`R50.
`no. REG.
`l
`‘
`
`54
`
`f7:
`WR. DATA
`SLR.
`
`52
`f
`span mm‘ lmnnmwnmm ass.
`
`[J
`
`'
`
`I
`
`:
`
`‘
`
`--"°
`
`36
`
`[
`
`1
`MAIN
`venom
`
`72
`I
`mm ME".
`
`"ET:
`
`SLR.
`
`I
`
`
`
`
`
`I I ._'l_l_l
`
`‘
`
`AOR. REG.
`
`1
`
`'
`
`I
`
`EVEN ADDRESS
`s EGMENT
`(SEGMENT 1)
`
`{7|
`wn. DATA
`suit
`
`"54
`
`11
`
`L1
`
`52
`se
`[
`I
`mu MEMWRDATA REG. mom, mom
`
`
`
`
`
`I I LI_I_.. I
`
`
`
`SLR.
`
`-
`
`--
`
`-
`
`—
`
`-
`
`l -
`
`- -
`
`—
`
`Petitioners' EX1025 Page 1
`
`

`
`U.S. Patent
`
`Mvm
`
`wE%Ilnll
`_...._mumomommom8m9._Mdam.82.8E.w::,_ms_omm.8kzusomm.
`9,Pzmsaumommmmmhzuzomm
`
`2mmmEn_<zm_>um$m8<So
`
`nmN_Ndmm_dmm0.0mmO_uJI0‘
`
`fO
`
`9,
`
`M
`
`8Eozmz
`
`3mmm
`
`29.»mn__,_.m._m.8m.34.m._mH_»m_n__,_
`
`
`
`"W29:E59.5:2:2,.«:3.9.20¢“.
`
`Petitioners‘ EX1025 Page 2
`
`Petitioners' EX1025 Page 2
`
`
`
`

`
`aP
`
`Jm
`
`S
`
`8f0
`
`
`
`
`2mo<mo.6m>:<_uomm<Emmofiemm>_.§oomm<mmm_U.
`,%-mmwmooqzm>m<29mmumoeqSom,wm"~”mm
`
`
`
`
`
`.mm_m8<aim9mmmmmm8<SEtamEtnmUvm$
`
`w¢Nww
`
`31mm.mo<Em.m>>
`
`
`
`.mmnizm
`
`9,
`
`74
`
`2'i2ill7II6E.E_u|
`
`.mmutamdum
`
`mm.8”..m§aux.mo<
`
`H3
`
`
`
`IlIIIII.|§\|.'N_O3..|..\m.dumdumdmm
`
`fllill
`
`mmnrsmcumIo_
`
`.m..mEs.m._m.ma<
`
`Petitioners‘ EX1025 Page 3
`
`Petitioners' EX1025 Page 3
`
`
`

`
`U.S. Patent
`
`June 29, 1976
`
`.m3
`
`8
`
`no
`N
`
`
`
`Q0m<50.550.5V608xuo._m
`
`
`
`mmizoo:02:
`
`N¢
`
`Sw._._m
`Wummuo_
`
`769.,
`
`
`
`3v_oo._mIV
`
`21Nok
`
`mowmuaoum
`
`Petitioners‘ EX1025 Page 4
`
`Petitioners' EX1025 Page 4
`
`
`
`

`
`U.S. Patent June 29, 1976
`
`Sheet 4 of 8
`
`3,967,247
`
`BLOCK SELECTOR
`
`"*8
`
`BLOCK A
`
`BLOCK B
`k
`A l
`
`BLOCK 0 BLOCK D
`A
`A
`
`_
`F! g. 3
`
`|
`
`WORD |
`
`WORD 1
`
`f3O
`
`WORD | 5
`
`3
`5
`7
`
`l
`
`3
`5
`7
`
`0
`
`3
`5
`7
`
`3 h
`5
`7
`
`O
`
`0
`
`d-1
`
`A B c D
`MATCH
`COMPARE W
`OUTPUT
`'
`-
`(FIG. 2)
`WORD a
`WORD |
`3
`3
`
`SET
`
`l2?
`
`l
`
`5
`
`7
`
`i 5
`
`7
`
`\ _
`

`WORD I
`3
`
`5
`
`7
`

`WORD |
`3 __
`
`l
`
`5
`
`7
`
`+__+
`_ I
`‘4'
`
`44
`f
`SET
`SLR.
`
`46
`/
`WORD
`SLR.
`
`09-03
`
`OZ-Ol
`V
`
`REQUESTOR
`ADR. REG.
`
`BLOCK A BLOCK B BLOCK 0
`
`BLOCK 0
`
`|8_._
`
`92
`ADD
`a4\ f
`>=<
`COMP.
`A t
`
`[74
`1‘
`BLK.ADR AGE ‘g
`
`96\
`ADD
`as T
`>=<
`COMP
`A
`
`/98
`ADD
`T ,90
`>=<
`COMP.
`A A
`
`,94
`ADD
`Ahas
`>=<
`COMP.
`‘
`A _
`FROM
`I
`82
`MATCH
`\_ COMPARE t
`COMPARE
`SLR.
`(FIG. 2)
`A 1 LA
`{so
`#5 [76
`Fe [78 _? D
`BLK.ADR AGE ‘3'
`IBLKADR. AGE ‘3'
`BLK.ADR. AGE ‘g
`
`Petitioners' EX1025 Page 5
`
`

`
`US. Patent June 29, 1976
`
`Sheet 5 of 8
`
`3,967,247
`
`Fig. 5
`
`C?
`l
`
`GATE WORD
`FROM REQ. TO
`BUFFER STACK
`
`w-l24
`
`SET WB BIT
`IN TAG STACK
`
`l
`
`SEND ACK. TO
`REQUESTOR
`
`g. 50
`
`Petitioners' EX1025 Page 6
`
`

`
`US. Patent
`
`June 29, 1976
`
`Sheet 6 of 8
`
`3,967,247
`
`WAIT FOR
`REQ.
`
`/ I02
`
`I04
`
`IS THERE MORE
`THAN 1 REQ. ?
`
`/ I06
`ESTABLISH
`PRIORITY
`
`UPDATE AGE
`BITS OF
`TAG WORD
`
`LOCK OUT
`OTHER REQ.
`
`l
`
`GATE REQ. ADR.
`BITS |O~O3 TO
`SET SEL. 8 BITS
`02-Ol TO WRD. SEL.
`
`l
`
`READ 4 BLK.
`ADDESSES FROM
`TAG STACK TO
`MATCH CKT.
`
`,-|08
`
`r- | l 0
`
`PIIZ
`
`k-| |4
`
`GATE SELECTED
`WORD FROM BLOCK
`SEL. TO REQ.
`RD. REG.
`
`l
`
`[I32
`
`SEND ACK. TO
`REQ. UNIT
`
`l
`
`READ 4 DATA
`WORDS FROM
`BUFFER STACK
`TO BLOCK SLR.
`
`l
`
`COMPARE 4 BLOCK ,.||6
`ADRS. WITH
`REQ. ADR.
`
`Fig. 50
`
`Petitioners' EX1025 Page 7
`
`

`
`U.S. Patent June 29, 1976
`
`Sheet 7 0f 8
`
`3,967,247
`
`I
`
`SELECT LRU
`ADDRESS FROM
`MISS SEGMENT
`
`I
`
`STORE ADDRESS OF
`NON-RESIDENT
`BLOCK
`
`I
`
`I40“ SEND READ REQ. TO
`BOTH SEGMENTS
`
`I
`
`UNCONDITIONALLY
`UN LOAD LRU DATA
`IB-WORDSI
`INTO HOLDING REG.
`
`I44
`
`15 W5 BIT
`SET ?
`YES
`
`SEND WRITE REQ.
`TO MAIN MEMORY
`
`I
`
`SIU RECEIVES
`WRITE RESUME
`FROM MAIN MEMORY
`
`I
`
`SEND READ REQ. TO
`MAIN MEMORY
`
`I
`
`SEND DESIRED
`8-WORD BLOCK
`FROM MAIN MEMORY
`TO SASU
`
`I
`
`STORE B-WORD BLOCK
`IN SASU BUFFER
`LOCATION PREVIOUSLY
`KNOWN AS LRU
`
`I
`
`UPDATE TAG
`ADDRESS B AGE.
`CLEAR WB BIT
`
`I
`
`SIU RECIEVES READ
`RESUME SIGNAL
`FROM MAIN MEMORY
`
`.T.
`
`REI N ITIATE
`EXTERNAL
`REQUEST
`
`Fig. 5b
`
`Petitioners' EX1025 Page 8
`
`

`
`U.S. Patent
`
`June 29, 1976
`
`Sheet 8 of 8
`
`3,967,247
`
`
`
`
`
`
`
`mz_._><4mo.6528z_<2
`
`.m;>.22mtmz
`
`dmm22o._.mu.._x
`
`.E<._.m
`
`woos.mtm;am
`
`
`
`woos.ofim_.:m
`
`vmm
`
`HSo32mtwtWONN.H-cm2»z_.mo<mkzuzmmm..s_.s_9mmmm8<
`
`
`o:,u___«EamammopmEtnamomom..mo<2:Wwmm
`
`
`
`momfimatomflmmmmomkmwwmwm
`
`ozmm
`
`Fzmzmmomo
`
`E28
`
`
`
`
`
`mz:><._mo.55282.3,.
`
`Fzmzmmomo
`
`._.zDOom:o>odhdo
`
`
`
`zfiwmfi
`
`._v_Noqwm
`
`mmm
`
`Umm<u..o5.
`
`mm&54..‘.>.:mo_Emm.mm.
`
`AEosaz
`
`0%:C0
`
`
`
`3353noozmmes.mm_s_
`
`Sumodmm
`
`I.._.zOo
`
`oom<oom<
`
`Petitioners‘ EX1025 Page 9
`
`Petitioners' EX1025 Page 9
`
`
`
`
`

`
`1
`
`STORAGE INTERFACE UNIT
`
`5
`
`BACKGROUND OF THE INVENTION
`It has long been recognized that the speed of a com
`puter memory system can be increased through the use
`of a relatively high speed. low capacity buffer store.
`That is, if a high speed buffer is implemented properly
`in a computer system, main memory speed will appear
`to approach that of the buffer. For example, in a case |
`where the cycle time of the buffer is one-tenth of that
`of the main memory, the effective access time may be
`eight to nine times less than that of the main memory.
`The underlying reason for this speed-up of operation is
`that experience has shown that data currently being
`processed have a high probability of being used again in
`the near future and that related data is commonly
`stored in contiguous address locations in the main
`memory.
`The manner in which so-called “cache” buffers have
`been implemented in various lBM computer systems
`has been described in a number of published technical
`articles. For example, reference is made to the article
`by J. S. Liptay entitled, “Structural Aspects of the
`System/360 Model 85, [l the Cache", IBM Systems
`Journal, Vol. 7, No. 1, pp 15-21; that by D. H. Gibson
`entitled “Considerations in Block-Oriented Systems
`Design", Spring Joint Computer Conference I967; and
`that by C. .I. Conti et al entitled “Structural Aspects of
`the System/ 360 Model 85,l General Organization”,
`IBM Systems Journal, Vol. 7, No. 1, 1968. In the IBM
`System 360-Model 85, store operations always cause
`the main memory to be directly updated. If the main
`storage sector being changed has a sector in the buffer
`assigned to it, the buffer is also updated; otherwise, no
`activity related to the buffer takes place. Therefore,
`store operations cannot cause a buffer sector to be
`reassigned, a block to be loaded, or the activity list
`controlling the replacement algorithm to be revised.
`The present invention is considered to be a signi?
`cant improvement over the memory hierarchy em
`ployed in the IBM system. In accordance with the
`teachings of the present invention, one or more proces
`sor units and/or Input-Output devices are adapted to
`receive instructions and operands (hereinafter collec
`tively referred to as “data") from a main memory only
`by way of a high speed buffer memory. Also, data from
`the processors and/or [/0 units to be stored in the main
`memory must pass through the high speed buffer mem
`ory. Thus, the buffer of the present invention will here
`inafter be termed a “Storage lnterface Unit" or “S]U".
`The SIU of the present invention is a high-speed (low
`cycle time) storage buffer designed to reduce the over
`all storage delay time of a computing system by auto
`matically allowing the great majority of storage refer
`ences to take place in the SlU proper, rather than in the
`lower speed (higher cycle time) main memory or back
`ing store. In the preferred embodiment of the present
`invention, this is accomplished by providing circuitry
`(hardware) to transfer an 8-w0rd block of data into the
`SIU whenever any word from that block is required by
`a processor or input/output unit. This block becomes
`one of several blocks remaining resident in the SlU
`until it is displaced by a new current block as deter
`mined by a suitable replacement algorithm.
`The SlU of the present invention employs a so-called
`set-associative storage buffer. In an exemplary arrange
`ment, the buffer may comprise 4,096 words of storage
`
`3,967,247
`2
`which may be divided into 128 sets, each set consisting
`of four 8~word blocks of data. The main memory em
`ployed in the system is then also divided into 128 sets,
`each set containing l/l28 of the words in the total main
`memory address range. Alternatively, the buffer may
`be expanded to contain additional words of storage
`divided into a larger number of sets with each set con
`sisting of four 8-word blocks of data. In this alternative
`arrangement, the main memory would also be divided
`0 into an identical number of sets but each set would
`include a lesser number of 8-word blocks. Any one of
`the 8-word blocks in a given main memory set may be
`placed in any one of the four 8-word blocks in the
`corresponding SIU set. When a transfer (either a read
`or a write) is made between the SlU and main storage,
`an 8-word block from contiguous addresses is trans
`ferred during a single main memory cycle.
`When a request for a word from storage is made by a
`processor or an input/output unit, this request is seen
`only by the SlU. Conventional direct address selection
`is used to address the one of 128 sets in which the
`required word is located. This selection causes the SIU
`to simultaneously read the address of each of the four
`blocks currently resident in the set and to compare
`each with the requested address. If one of the four
`block addresses matches the requested address, the
`appropriate word is read from that block and sent to
`the requesting unit. If none of the four block addresses
`matches, an immediate request is made by the SIU to
`the main memory for the entire block which contains
`the desired word. While waiting for this new block of
`data, the SlU determines which of the four current
`blocks is the least recently used and marks it for re
`placement. Next, the SlU checks the block to be re
`placed to determine whether any word in that block has
`been modi?ed while resident in the SIU. if a modi?ca
`tion had occurred, the entire block plus its address is
`read into a temporary holding register in the SlU so
`that it can be restored to the main memory as soon as
`the current main memory cycle is ?nished. When the
`data arrives from the main memory, it is stored into the
`now-vacated block and the appropriate word is ulti
`mately sent by the SlU to the original requestor to
`complete the cycle.
`In prior art computing systems wherein high speed
`bu?'ers are employed to increase the throughput of the
`system, store operations always cause the main mem
`ory to be updated. If the main memory set being
`changed has a corresponding set in the bu?'er assigned
`to it, the buffer is also updated. That is, each time a
`processor or [/0 unit effects a write operation, the main
`memory must be updated immediately. Since the main
`memory operates at a relatively long cycle time, fre
`quent references to main memory slow down the over
`all processing speed of the system.
`The system of the present invention utilizes what is
`termed a “post-store" method to obviate this problem.
`Rather than making a write reference to the main mem
`ory each time a write is effected in the SIU bu?'er mem
`ory, in the system of the present invention the main
`memory is only updated when the address to be modi
`fied is not resident in the buffer and a block containing
`altered data, i.e., data different from what is in its cor
`responding block in main memory is selected for re
`placement. Upon detecting that a desired address is not
`resident in the SIU buffer, the SlU immediately sends a
`“read“ request to the main memory to obtain the entire
`block in which the desired address is located. Simulta
`
`25
`
`30
`
`35
`
`40
`
`50
`
`55
`
`60
`
`65
`
`Petitioners' EX1025 Page 10
`
`

`
`3,967,247
`neously the SIU, through a replacement algorithm,
`determines which of the blocks currently in the buffer
`memory is to be replaced. A check is made to deter
`mine if this selected block had its contents modi?ed
`while resident in the buffer and if so, the entire block
`plus its address is gated into a temporary holding regis
`ter. While the new block is being brought into the buf
`fer from the main memory and stored in the now
`vacated block location, the displaced block contained
`in the holding register is written back into the main
`memory, thereby updating the main memory.
`The economy in time occasioned by this “post-store"
`method is readily apparent. Rather than requiring a
`relatively slow main memory cycle each time a change
`is made in a block stored in the buffer to update the
`main memory as in prior art systems, in the system of
`this invention only one main memory cycle is used to
`update main memory and this only occurs when a block
`is selected for replacement which had its contents mod
`i?ed while it was resident in the buffer. However, while
`resident in the buffer, this block may have undergone
`many, many modi?cations before being selected for
`replacement.
`
`20
`
`4
`invention. This drawing will be used in explaining the
`organization and functional operation of the SIU and
`following this explanation will be a description of the
`construction and mode of operation of the various
`blocks of FIG. 1 which are other than conventional.
`As has been mentioned in the introductory portion of
`this speci?cation, the present invention relates to a
`Storage Interface Unit (SIU) which operates as a high
`speed buffer between plural requestor units and a main
`memory in such a way that the overall memory access
`time for a given operand is substantially decreased.
`This is accomplished by including as an interface be
`tween the requestor units and the main memory a high
`speed buffer memory which contains a subset of the
`information stored in the main memory. The design is
`such that on a statistical basis there is a high probability
`that a given operand being sought by a requestor unit
`for reading or writing will be found in the high speed
`buffer, thereby obviating the necessity of making a
`reference to the lower speed main memory.
`The system illustrated in FIG. 1 includes two seg
`ments denoted “odd segment” and “even segment”
`which are substantially identical in construction, mode
`of operation and which operate in parallel. Hence, in
`the following detailed description reference will be
`made to the various functional elements in the odd
`segment, i.e., those to the left of the section line 10, but
`it is to be understood that what is said about those
`elements also holds true for those to the right of the
`section line 12. Elements which are shared by both
`segments are shown between the section lines 10 and
`12.
`Shown at the bottom of FIG. I are the plurality of
`input lines 13 which originate at the requestor units and
`which are used to present request control signals, ad
`dress representing signals and data to be written to the
`SIU. The requestor units may comprise one or more
`central processing units (CPU‘s) and input/output units
`(lOU’s). While only three such units (Reg. 0, l, 2) are
`indicated, it is to be understood that additional request
`ors may be used. The incoming request signals are
`applied to priority networks 14 in each SIU half which,
`upon receipt of simultaneous requests from two or
`more requestor units, award priority to one and only
`one unit at a time for communication with the SIU.
`Both the CPU’s and IOU’s communicate with the SIU
`on a Request/Acknowledge basis. This mode of com
`munication is fully explained in the Ehrman, et al US.
`Pat. No. 3,243,78l, so that it is felt to be unnecessary
`to explain in further detail the construction or organi
`zation of such requestors. That patent also shows the
`manner in which plural request signals originating at
`different units are applied to a priority network which
`selects one such unit at a time for communication with
`the remainder of the system.
`Presented along with the request signal is an address
`which uniquely selects a desired word for reading or for
`modi?cation in the event that the request signal is a
`read or a write request, respectively. These address
`representing signals are applied as inputs to the re
`questor address selectors I6. The selectors 16 are
`merely gating devices responsive to control signals
`emanating from the priority circuitry 14 which permit
`the address signals from a single requestor selected by
`the priority network to pass through to the requestor
`address registers 18. In a similar fashion the buffer
`write selectors 20 are conventional gating arrange
`
`25
`
`30
`
`35
`
`OBJECTS
`It is accordingly an object of the present invention to
`provide an improved buffer memory system for a digi
`tal computing system.
`Another object is to provide an improved storage
`interface unit between one or more requestors and a
`main memory which unit contains a high speed buffer
`memory which, on a statistical basis, has a high proba
`bility of containing a word address speci?ed by the
`requestor.
`Another object is to provide an improved memory
`architecture for a digital computing system permitting
`repeated modi?cations to a given block of data resident
`in a high speed buffer without the need of effecting a
`corresponding modi?cation to the associated block in
`the main memory each time the block in the buffer is
`modi?ed.
`These and other objects and advantages of the inven
`tion will become apparent to those having skill in the
`art upon a reading of the following detailed description
`taken in conjunction with the accompanying drawings
`in which:
`
`40
`
`45
`
`DESCRIPTION OF THE DRAWINGS
`FIGS. la and lb when arranged as shown in FIG. I
`depict a system block diagram of the SIU in which the
`present invention is used;
`FIG. 2 is a block diagram representation of the tag
`portion of the set associative storage modules;
`FIG. 3 is a block diagram representation of the buffer
`portion of the set associative storage modules;
`FIG. 4 is a logic diagram illustrating the circuits used
`to implement the “least recently used" algorithm.
`FIGS. 50, 5b and 5(- when arranged as indicated in
`FIG. 5, show by means of a ?ow diagram the sequence
`of the various operations performed by the preferred
`embodiment; and
`FIG. 6 illustrates by means of a logic diagram the
`control network used in the system of FIG. 1.
`
`50
`
`55
`
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`Referring now to FIG. 1, there is shown a system
`block diagram of the preferred embodiment of the
`
`65
`
`Petitioners' EX1025 Page 11
`
`

`
`3,967,247
`
`v
`
`5
`ments which permit write data from the selected re
`questor to be entered into the buffer write registers 22.
`The outputs from the requestor address registers 18
`and the requestor write registers 22 are made available
`to the two Set Associative Storage Units (SASU) iden
`ti?ed generally by the numerals 24 and 26. The SASU
`24 is used to store the odd address of plural blocks
`while SASU 26 stores the even addresses in these same
`blocks. The storage units 24 and 26 may be conven
`tional addressable random access memories, but are
`divided into two parts termed the “tag" and the “buf
`fer". More speci?cally and as will be further explained
`with the aid of FIGS. 2 and 3, the SASU 24 has a ?rst
`stack of addressable registers 28 for storing so-called
`tag words and a second stack of addressable registers
`30 for storing plural sets of four 4-word half blocks of
`data. Similarly, the SASU 26 is divided in two parts, 32
`and 34, part 32 storing tag words and part 34 storing
`plural sets of four 4-word half blocks of data. There is
`one tag word in the sections 28 and 32 for each of the
`4-word half blocks stored in the sections 30 and 34.
`To gain a clearer understanding of the overall organi
`zation of the SIU, it is deemed helpful to consider an
`exemplary embodiment. However, it is to be under
`stood that the storage capacities to be set forth are a
`matter of choice and no limitation to the ?gures pres
`ented should be inferred.
`bet it be assumed that the buffers 30 and 34 have a
`combined capacity of 4,096 words of data and that the
`main memory 36 has a capacity of 262,144 words. In
`this exemplary con?guration, the buffers may be parti
`tioned into I28 sets of four 8~word blocks (I28 X 4 X
`8 = 4,096 words). The main memory may then also be
`considered as being comprised of I28 sets, each set
`containing l / I 28 of the word capacity of the main
`memory. In the example, then, each set would contain
`256 8-word blocks (I28 X 256 X 8 = 262,l44 words).
`Any four of the 256 8-word blocks of a set in main
`memory may be resident in a corresponding one of the
`I28 sets in the combined buffers 30 and 34.
`To speed up the addressing of data stored in the SIU
`buffers, the SIU is divided into an odd address segment
`and an even address segment so that under certain
`conditions to be explained, buffer access can be ac
`complished in an overlapped fashion. The odd/even
`segmentation affects the set/block structure by dividing
`each 8-word block into two 4-word half blocks. Thus,
`buffer 30 may store the 2,048 words having odd ad
`dresses and buffer 34 may store the remaining 2,048
`words having even addresses. This odd/even address
`structure is displayed below in Table I.
`TABLE!
`
`6
`main memory 36 in those instances where the address
`being sought for reading or writing is not resident in the
`SASU‘s. Again, this format is premised on the use of a
`single main memory module 36 having a storage capac
`ity of 262,144 words and a combined buffer having a
`capacity of 4,096 words. If additional memory modules
`are employed, additional address bits would be re
`quired for module selection.
`TABLE II
`
`22 4 I0
`
`9 _ 3
`
`2 _ I
`
`SE'I'
`BLOCK
`SEL.
`SEL.
`l‘- MAIN MEMORY ADDRESS —~>
`
`WD.
`SEL.
`
`20
`
`3
`
`u
`
`O/F.
`SEL.
`
`FIG. 2 illustrates diagrammatically the makeup of the
`tag parts 28 and 32 of the SASU’s 24 and 26 and before
`proceeding with the system description shown in FIGv
`I, consideration will be given to the organization and
`operation of the odd segment SASU 24, it being under
`stood that the even segment SASU 26 operates in an
`identical manner.
`The SASU 24 involves conventional addressing in
`both the tag and buffer portions thereof. The output
`from the requestor address register 18 is applied via
`cable 38 to an address translator 40 in SASU 24 which
`functions to examine bits 3 through 9 of the address to
`uniquely select one out of I28 lines used to access any
`one of the I28 registers comprising the tag memory.
`Stored in each tag memory register is a 64-bit entry,
`each having the format shown at set address 0 0 0 in
`FIG. 2. The part of the tag word labeled “block ad
`dress" includes bits l0—22 of the address of the ?rst
`word in each of the four blocks comprising that set in
`the buffer, a block being eight contiguous words lo
`cated on eight word‘boundaries.
`The entries labeled “age" are each a 2-bit ?eld asso
`ciated with each of the four block addresses in each tag
`location that provide a relative indication If how long it
`has been since each block has been referenced. More
`will be said of this age ?eld when the details of the
`“least recently used" replacement algorithm are ex
`plained.
`The ?eld labeled “W8” is termed the “Writeback
`Bit" and is one bit wide and is used to indicate whether
`modi?ed data exists in the speci?ed block. If this bit is
`a binary “ I” when the block in question is selected for
`replacement, all four words in that block must be writ
`ten back into main storage. When it is a binary “0”
`there is no need to write the displaced block into main
`memory, since no word in that block had been modi
`?ed by a write operation while it was resident in the
`buffer.
`To determine whether a desired block is resident in
`the buffer, the four block addresses of the tag asso
`ciated with the requested set are compared, bit-by-bit,
`with bits 10 through 22 of the address present in the
`requestor address register 18 (FIG. 2). If one of the
`four block addresses match, as determined by a Match
`Compare circuit 42, the requested word is resident in
`the buffer and can be obtained directly from the buffer.
`Because the buffer sections are addressed with the set
`number (bits 3-9) and the bits identifying a word
`within the block (bits I—2), its output is four words
`wide. one word from each of the four blocks in the
`requested set. The output from comparator 42, which
`
`35
`
`40
`
`45
`
`50
`
`4 8~Wurd
`Blocks
`
`44-Word
`Half Blocks
`
`4 4-Word
`Half Blocks
`
`55
`
`ABCD - BLOCK-v ABCD
`EEFF.
`EEEF
`0000
`EFIEE
`EEFE
`EEEF
`0000
`EEEE
`EFEE
`0000
`E F l- E
`0000
`
`BUFFER 34
`
`ABCD
`0000
`0000
`0000
`0000
`
`BUFFER 30
`
`Set forth below in Table II (for exemplary purposes
`only) is the format adopted for the address provided by
`the selected requestor units and employed to access
`information stored in the SASU’s 24 and 26 or in the
`
`65
`
`Petitioners' EX1025 Page 12
`
`

`
`3,967,247
`
`7
`identi?es the block number in which the match oc
`curred, is used to select the appropriate word from the
`buffer to send it to the requestor as will next be ex
`plained.
`Referring to FIG. 3, there is shown the organization
`of the buffer portion 30 of the SASU 24. Buffer 34 is
`identical in construction. The buffers per se each com
`prise a plurality of addressable registers for storing
`data. The individual words are grouped into 128 sets,
`each containing four 4-word half blocks, the even ad
`dresses being stored in buffer 34 and the odd ones in
`buffer 30. To access a given word, bits 09 through 03 of
`the requestor address selects one of the l28 sets stored
`in the buffer. Bit 0 of the requestor address register is
`decoded to specify whether the address is odd or even
`such that buffer 30 or 34 should be accessed, respec
`tively, and bits 02 and 01 of the requestor address
`register are translated by the word selector 46 to
`uniquely select one of the four words in each block
`within a given set in the speci?ed odd or even segment.
`Because the same requestor address is simultaneously
`applied to the tag stack (FIG. 2), if a match occurs
`between the address of a requested block and the ad
`dress of a block resident in the buffer, an output signal
`will be developed on one of the lines A, B, C, D from
`the comparator 42 of the speci?ed odd or even seg
`ment. This output signal, when applied to the inputs of
`the block selector 48 (FIG. 3) will permit only the
`selected word of the selected block of the selected set
`in the selected segment to be read out from the buffer ~
`30 or 34 of the SASU 24 or 26. Of course, if the desired
`block is not resident in the buffer, match compare
`circuit 42 will fail to produce an output signal on either
`output line A, B, C, or D and selector network 48 will
`be precluded from gating any word out from the buffer
`30.
`Words sent out from the SASU buffer segments 30
`and 34 may be passed over the cables 50 (FIG. 1) to
`read data selectors 52 which are controlled by the
`priority network 14. The re ad data selectors function to
`gate these words over cables 54 to the particular one of
`the read registers 56, S8 or 60 of the requestor unit
`which presented the read request to the SIU in the ?rst
`instance.
`In the event that a read or a write request is presented
`to the SIU and a determination is made that the word
`being sought is not resident in the buffer, the desired
`address from the requestor address registers 18 is trans
`ferred via cable 6] to the miss address register 62
`where it is captured and held for later use. Next, the
`least recently used (LRU) algorithm is invoked which
`causes the tag address associated with the block to be
`replaced to be read out from the tag segment 28 or 32
`to the associated tag address register 64 and from
`there, by way of cables 63 and 65, to the buffer tag
`address register 66.
`Following this, during four buffer memory read cy
`cles, the two 4~word half blocks singled out for replace
`ment are read out from the buffer sections 30 and 34 of
`the SASU’s and loaded one-by-one into the four sec
`tions of the main memory write data registers 68 where
`they are held.
`The desired non-resident block of data is read out
`two words at a time from the main memory 36 in four
`cycles on cable 70 and applied through the buffer write
`selectors 20 to the buffer write registers 22. The re
`placement block obtained from the main memory is
`stored at the beginning buffer address designated by
`
`50
`
`55
`
`65
`
`the contents of the buffer tag address register 66 and as
`each word is entered, the bits 1 and 2 are incremented
`to provide the word address for each entry. Also, a new
`tag word is written into the tag sections 28 and 32 of
`the SASU‘s in a manner yet to be described.
`While these operations are in progress, the writeback
`bit of the portion of the tag word presently contained in
`the tag address register 64 is checked and if set, it
`indicates that the block now resident in the main mem
`ory write data registers 68 had undergone modi?cation
`while resident in the buffer. As such, it is necessary to
`write this block back into the main memory.
`During four main memory cycles, words are un
`loaded two at a time from the registers 68 (one from
`the odd segment and one from the even segment) and
`stored in the main memory at the block location speci
`?ed by the address which had been earlier captured in
`the miss address register 62. More speci?cally, the
`contents of the miss address register 62 are applied to
`the main memory address register 72.
`After the last word of read data from the main mem~
`ory unit 36 has been entered into the bu?'er, another
`priority scan is initiated, thereby allowing the original
`requestor to gain access to the now-resident address in
`the buffer. The desired word is therefore made avail
`able to the original requestor for reading or writing.
`To understand the operation of the least recently
`used (LRU) algorithm, which is the means utilized to
`select a block for replacement when a request is pres
`ented for a word which is not resident in the buffer,
`reference will be made to the circuitry of FIG. 4.
`It will be recalled from the explanation of the tag
`portion of the SASU (FIG. 2), that each set has a tag
`word specifying the address of the four blocks currently
`resident in the buffer as well as a pair of “age” bits for
`each block which may have the binary values 00, 0],
`10, or 11. By convention, the bloc

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