throbber
US005630096A
`Patent Number:
`11
`45 Date of Patent:
`
`5,630,096
`May 13, 1997
`
`FOREIGN PATENT DOCUMENTS
`549139 6/1993 European Pat. Off..
`OTHER PUBLICATIONS
`IBM Technical Disclosure Bulletin, vol. 33, No. 6A, pp.
`269-272, Nov. 1990.
`IBM Technical Disclosure Bulletin, vol. 33, No. 6A, pp.
`265-266, Nov. 1990.
`IBM Technical Disclosure Bulletin, vol. 31, No. 9, pp.
`351-354, Feb. 1989.
`IBM Technical Disclosure Bulletin, vol. 33, No. 3A, pp.
`441-442, Aug. 1990.
`Micron Semiconductor, Inc., Spec Sheet, MT48LC2M8S1
`S. cover page and pp. 33 and 37, 1993.
`Primary Examiner-Frank J. Asta
`Attorney, Agent, or Firm-Burns, Doane, Swecker & Mathis
`57
`ABSTRACT
`A controller for a synchronous DRAM is provided for
`maximizing throughput of memory requests to the synchro
`nous DRAM. The controller maintains the spacing between
`the commands to conform with the specifications for the
`synchronous DRAMs while preventing gaps from occurring
`in the data slots to the synchronous DRAM. Furthermore,
`the controller allows memory requests and commands to be
`issued out of order so that the throughput may be maximized
`by overlapping required operations which do not specifically
`involve data transfer. To achieve this maximized throughput,
`memory requests are tagged for indicating a sending order.
`Thereafter, the memory requests may be arbitrated when
`conflicting memory requests are queued and this arbitration
`process is then decoded for simultaneously updating sched
`uling constraints. The memory requests may be further
`qualified based on the scheduling constraints and a con
`mand stack of memory request is then developed for modi
`fying update queues. The controller also functions by receiv
`ing a controller clock signal and generating an SDRAM
`clock signal by dividing this controller clock signal.
`
`20 Claims, 6 Drawing Sheets
`
`- OC
`
`United States Patent 19
`Zuravleff et al.
`
`54 CONTROLLER FOR ASYNCHRONOUS
`DRAM THAT MAXIMIZES THROUGHPUT
`BY ALLOWING MEMORY REQUESTS AND
`COMMANDS TO BE ISSUED OUT OF
`ORDER
`
`75
`
`Inventors: William K. Zuravleff, Mountainview:
`Timothy Robinson, Boulder Creek,
`both of Calif.
`73 Assignee: Microunity Systems Engineering, Inc.,
`Sunnyvale, Calif.
`
`(21) Appl. No.: 437,975
`22 Filled:
`May 10, 1995
`(51] Int. Cl. .................. G06F 1300
`52 U.S. Cl. ................................... 395/481: 364/DIG. 1;
`365/233; 395/432; 395/477; 395/478; 395/485;
`395/494; 395/496
`58 Field of Search ............................. 365/233:395/432,
`395/477,478,481,485, 494, 496
`
`56
`
`References Cited
`U.S. PATENT DOCUMENTS
`4,685,088
`8/1987 annucci.
`4,691.302
`9/1987 Mattanusch.
`4,734,888 3/1988 Tielert.
`4,740,924 4/1988 Tielert.
`4,790,418 12/1988 Masterson.
`5,077,693 12/1991 Hardee et al. .
`5,179,667
`1/1993 Iyer.
`5,193,193 3/1993 Iyer.
`5,253,214 10/1993 Herrmann.
`5,253,357 10/1993 Allen et al. .
`5,276.856
`1/1994 Norsworthy et al. .
`5,278,967
`1/1994 Curran.
`5,283,877 2/1994 Gastinel et al..
`5,287,327 2/1994 Takasugi.
`5,301278 4/1994 Bowater et al..
`5,311,483 5/1994 Takasugi.
`5,381536 i? 1995 Phelps et al. ........................... 395/375
`5,513,148 4/1996 Zagar ...................................... 365,233
`
`
`
`
`
`
`
`N
`
`OUT
`
`
`
`CONTROLLER
`CLOCK
`
`BANK
`DATA PATH
`
`DATA PATH
`
`RETURN DATA
`DATA PATH
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 1
`
`

`

`U.S. Patent
`
`May 13, 1997
`
`Sheet 1 of 6
`
`5,630,096
`
`N
`
`RETURN DATA
`DATA PATH
`
`CONTROLER
`CLOCK
`
`
`
`CONTROL
`BLOCK
`
`FIG. 1
`
`
`
`COMMAND
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 2
`
`

`

`U.S. Patent
`
`May 13, 1997
`
`Sheet 2 of 6
`
`5,630,096
`
`
`
`4:... it
`
`PROCESSOR
`
`
`
`16MB SDRAM
`D A CLK
`
`16MB SDRAM
`D A CLK
`
`
`
`
`
`
`
`314
`
`64MB SDRAM
`D A CK
`
`64MB SDRAM
`D A CK
`
`D
`
`4:... it
`
`PROCESSOR
`
`CK
`
`
`
`FIG. 3(a)
`
`FIG. 3(b)
`
`300
`
`
`
`
`
`
`
`MICRO
`PROCESSOR /
`CK
`
`320
`
`16MB SDRAM
`D A CK
`
`
`
`
`
`
`
`500
`
`322
`
`64MB SDRAM
`)
`A
`
`MICRO
`PROCESSOR A/C
`CK
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 3
`
`

`

`U.S. Patent
`
`May 13, 1997
`
`Sheet 3 of 6
`
`5,630,096
`
`MCRO
`Poisor A/C
`
`330
`
`
`
`
`
`
`
`52
`
`8
`
`
`
`co-
`PSOR A/C
`CK
`
`
`
`
`
`
`
`
`
`16MB SDRAM
`D A CK
`
`6MB SDRAM
`)
`A CK
`
`16MB SDRAM
`
`16MB SDRAM
`) A CK
`
`
`
`500
`
`350
`
`
`
`MICRO
`PROCESSOR A/C
`CK
`
`WICRO
`PROCESSOR A/C
`CLK
`
`
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 4
`
`

`

`0
`500000
`1000000
`1500000
`2000000
`
`
`
`
`
`| | 1 | I ! i Lam 1 | 1 | t ‘ "i 1 | 1 | t 1 | ' [ 1 | 1 I |1 1 " |ee
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CONTROLLER CLOCK
`
`|
`
`RESET
`
`RESTART GO
`
`READY
`
`CONTROLLER INPUT BUS
`
`CONTROLLER RETURN BUS REQUEST
`
`yusyeg“SD
`
`L66L“ETABI
`9J9pONS
`#8—JLL
`
`
`
`POWER UP
`~~
`
`—=|
`
`YXKXXKKX
`
`STORES
`
`LOADS
`
`Lil
`Li
`YYLK xx
`T
`i)
`1 |
`CONTROLLER RETURN BUS GRANT
`00000000—Wta}
`CONTROLLER RETURN BUS
`SDRAM CLOCK
`FOPWCYNoPY{NoP It NOP I{NOP I NOP TL NOP YE NOP TY NopI}} NOP
`CHINHRNNOP
`(ASreONC
`
`COMMAND
`
`ADDRESS
`{22227277=PRECHARGEBOTHBANKS” iH
`
`
`DATA
`GKREGISTERSET]MI.XM
`OUTPUT TO PAD
`DRIVE
`
`READ WINDOW
`
`
`
`SAMPLE
`
`ACTIVE ROW 0
`
`ACTIVE ROW 1
`
`
`XXX
`000 Y ooo
`{xxx
`
`XXX
`XXX
`XXX
`
`
`960°0€9°S
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 5
`
`

`

`U.S. Patent
`
`May 13, 1997
`
`Sheet S of 6
`
`5,630,096
`
`
`
`
`
`
`
`|| ||
`||||||||||||||||||||||||||||||||||||||||||||||||||
`}|0010
`èJETIO?||N00
`
`
`
`
`„”
`(q);
`'OLJ
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 6
`
`

`

`U.S. Patent
`
`May 13, 1997
`
`Sheet 6 of 6
`
`5,630,096
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`G 77777777
`WIW0
`
`SS}}{00\}
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 7
`
`

`

`5,630,096
`
`1.
`CONTROLLER FOR A SYNCHRONOUS
`DRAM THAT MAXIMIZES THROUGHPUT
`BY ALLOWING MEMORY REQUESTS AND
`COMMANDS TO BE SSUED OUT OF
`ORDER
`
`O
`
`5
`
`30
`
`35
`
`BACKGROUND
`The present invention is directed to a controller for
`maximizing throughput of memory requests from an exter
`nal device to a synchronous DRAM. More particularly, the
`present invention is directed to a controller which prioritizes
`multiple memory requests from the external device and
`issues reordered memory requests to the synchronous
`DRAM so that the throughput from the external device to the
`synchronous DRAM is maximized.
`Synchronous DRAMs are relatively new devices which
`are similar to conventional DRAMs but the synchronous
`DRAMs have some important differences. The architecture
`of the synchronous DRAMs is similar to conventional
`20
`DRAMs. For instance, the synchronous DRAMs have mul
`tiplexed address pins, control pins such as RAS, CAS, CS,
`WE, and bidirectional data pins. Also, the synchronous
`DRAMs activate a page as does the conventional DRAM
`and then subsequent accesses to that page occur faster.
`25
`Accordingly, a precharge operation must be performed
`before another page is activated.
`One difference between synchronous DRAMs and con
`ventional DRAMs is that all input signals are required to
`have a set-up and hold time with respect to the clockinput
`in synchronous DRAMs. The hold time is referenced to the
`same clock input. The outputs also have a clock to output
`delay referenced to the same clock. Thereby, the synchro
`nous characteristics are provided. Furthermore, the synchro
`nous DRAMs are pipelined which means that the latency is
`generally greater than one clock cycle. As a result, second
`and third synchronous DRAM commands can be sent before
`the data from the original write request arrives at the
`synchronous DRAM. Also, the synchronous DRAMs have
`two internal banks of data paths which generally correspond
`to separate memory arrays sharing I/O pins. The two internal
`banks of memory paths are a JEDEC standard for synchro
`nous DRAMs. An example of a known synchronous DRAM
`is a 2 MEGx8 SDRAM from Micron Semiconductor, Inc.,
`model no. MT48LC2M8SS1S.
`In the synchronous DRAMs, almost all I/O timings are
`referenced to the input clock. Minimum parameters such as
`CAS latency remain but are transformed from electrical
`timing requirements to logical requirements so that they are
`an integral number of clock cycles. The synchronous
`50
`DRAMs for at least by-four and by-eight parts are a JEDEC
`standard with defined pin outs and logical functions.
`Because the synchronous DRAMs are internally pipelined,
`the pipe stage time is less than the minimum latency so that
`spare time slots can be used for other functions. For instance,
`the spare time slots can be used for bursting out more data
`(similar to a nibble mode) and issuing another "command”
`with limitations.
`Certain problems arise when using synchronous DRAMs
`which must be addressed. For instance, the clock to output
`delay can equal the whole cycle. Also, because the synchro
`nous DRAMs are pipelined, a second request must be given
`before the first one is complete to achieve full performance.
`Furthermore, the output electrical/load/timing specifications
`of synchronous DRAMs are difficult to meet. Therefore, a
`65
`controller is desired for interfacing the synchronous DRAMs
`with devices which read and write, such as microprocessors,
`
`45
`
`55
`
`2
`and meeting JEDEC standards for synchronous DRAMs so
`that versatile synchronous DRAMs may be provided and
`applied in many design applications.
`
`SUMMARY
`An object of the present invention is to control a syn
`chronous DRAM by interfacing an external device, such as
`a microprocessor, for reading and writing to the synchronous
`DRAM.
`Another object of the present invention is to provide a
`controller for a synchronous DRAM which can buffer and
`process multiple memory requests so that greater
`throughput, or an equivalent throughput at less latency, can
`be achieved by the synchronous DRAM.
`A still further object of the present invention is to provide
`a controller for issuing and completing requests out of order
`with respect to the received or issued order so that the
`throughput of the synchronous DRAM is improved by
`overlapping required operations, which do not specifically
`involve data transfer, with operations involving data trans
`fer.
`A still further object of the present invention is to provide
`a controller for a synchronous DRAM that schedules
`memory request commands as closely together as possible
`within the timing constraints of the synchronous DRAM so
`that the throughput of the memory requests is maximized.
`These objects of the present invention are fulfilled by
`providing a controller for a synchronous DRAM comprising
`a sorting unit for receiving memory requests and sorting said
`memory requests based on their addresses and a throughput
`maximizing unit for processing said memory requests to the
`synchronous DRAM in response to scheduling which maxi
`mizes the use of data slots by the synchronous DRAM. The
`controller is able to prioritize and issue multiple requests to
`the synchronous DRAM in a different order than was
`received or issued such that the out of order memory
`requests improve the throughput to the synchronous DRAM.
`In particular, the controller issues memory requests as
`closely together as possible while maintaining the timing
`constraints of the synchronous DRAM based on its speci
`fications.
`The objects of the present invention are also fulfilled by
`providing a method for controlling a synchronous DRAM
`comprising the steps of receiving memory requests and
`sorting said memory requests based on their addresses, and
`maximizing throughput of said memory requests to the
`synchronous DRAM so that use of data slots by the syn
`chronous DRAM is maximized. Similarly, this method con
`trols the memory requests issued to the synchronous DRAM
`so that they are spaced as closely as possible while main
`taining the timing constraints of the synchronous DRAM
`based on its specifications.
`Further scope of applicability of the presentinvention will
`become apparent from the detailed description given here
`inafter. However, it should be understood that the detailed
`description and specific examples, while indicating pre
`ferred embodiments of the invention, are given by way of
`illustration only, since various changes and modifications
`within the spirit and scope of the invention will become
`apparent to those skilled in the art from this detailed descrip
`tion.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The present invention will become more fully understood
`from the detailed description given hereinbelow and the
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 8
`
`

`

`5,630,096
`
`10
`
`15
`
`20
`
`25
`
`3
`accompanying drawings which are given by way of illus
`tration only, and thus are not limitative of the present
`invention, wherein:
`FIG. 1 illustrates a controller for a synchronous DRAM
`according to an embodiment of the present invention;
`FIG. 2 illustrates a block diagram for prioritizing and
`issuing multiple requests to the synchronous DRAM by the
`controller illustrated for an embodiment of the present
`invention;
`FIGS. 3(a)-3(h) illustrate part configurations of the syn
`chronous DRAM for embodiments of the present invention;
`and
`FIGS. 4(a)-4(c) illustrate timing diagrams for commands
`to the synchronous DRAM.
`DETALED DESCRIPTION
`FIG. 1 illustrates a controller for a synchronous DRAM
`according to an embodiment of the present invention. In
`FIG. 1, signals corresponding to memory requests and
`commands from an external device, such as a microproces
`sor for example, are input to the controller at a bank sortunit
`10. The bank sort unit 10 processes address, control, and
`data signals and sorts the databased on the address before
`sending the data to bank datapaths 20 and 30. The output of
`the bank data paths 20 and 30 are multiplexed by a multi
`plexer 40 and input to a pad driver 50 before being input to
`the synchronous DRAM 100. The memory requests and
`commands are tagged to indicate their received order. The
`tags are used to indicate the order of the memory requests
`and commands for achieving increased throughput or
`re-ordering the memory requests and commands as will be
`further described. The tags may be associated with the
`memory requests and commands at the external device or
`may be generated by the bank sortunit 10. Areturn datapath
`60 receives data from the bank data paths 20 and 30 and the
`synchronous DRAM 100 via the pad driver 50 and is used
`to process and re-order the data, if necessary, based on the
`tag information.
`The controller also includes a control block 70 which
`receives a controller clock. The control block 70 outputs a
`slower SDRAM clock which is based on the controller
`clock. More specifically, the SDRAM clockis derived in the
`control block 70 by dividing the controller clock with a
`programmable divisor between 4 and 32, inclusive, and
`applying wave shaping circuits having programmable offset
`and duty cycle inputs. The SDRAM clockis then input to the
`synchronous DRAM 100.
`The controller may be implemented in BiCMOS technol
`ogy which includes bipolar (ECL) style logic with CMOS
`50
`pad drivers having integrated low swing differential to full
`swing (LVTTL) voltage level converters in a preferred
`embodiment. Because the logic is implemented in the bipo
`lar (ECL) style circuits, very high speeds are possible with
`cycle times being in excess of 1 GHz. The controller is
`designed to run at a clock frequency greater than the
`SDRAM clock frequency. Both the SDRAM clock and
`sampling point for incoming data can be controlled to the
`accuracy of the controller clock so that a fully synchronous
`circuit can be maintained which has a sample point resolu
`tion greater than the SDRAM clock.
`The programmable sample point overcomes the problem
`of the SDRAM clock to output delay being greater than or
`equal to one SDRAM clock period by providing a sampling
`point which can be placed at a particular controller clock
`edge. In the present controller, no analog delay elements are
`required or used. If analog delay elements were to be used
`
`65
`
`4
`in a different controller, which has a single clock frequency
`for the controller and the synchronous DRAM for example,
`the data generally would have to be resynchronized to the
`single clock after sampling. As a result, the data would be
`delayed by another entire SDRAM clock period before the
`data is available for use by the processor if analog delay
`elements are used. In addition, the return data path 60 runs
`at the same timing as the SDRAM clockbut can be offset in
`time from the SDRAM clock edges by a programmable
`number of controller clock edges. The programmable clock
`and sampling points can also be used to provide adequate
`timing margins for different printed circuit board trace
`lengths or different loading conditions from various part
`configurations.
`At the input from the external device, or within the
`controller, each memory request is "tagged” or assigned an
`integer to indicate the order in which the memory request
`was received as part of the control stream. This tag has three
`purposes. One purpose is for the tag to be passed with the
`loaded data back to the external device so that loads which
`are returned out of order will be indicated. A second purpose
`is that the tag may be used to send the earliest request to the
`synchronous DRAM when multiple pending requests may
`be serviced. A third purpose is that the tag may be used to
`service the earliest pending request only if the return of load
`data is required to be in order such as during system
`integration or debug. The controller functions to translate
`memory load and store requests into synchronous DRAM
`commands. For example, a simple load might be translated
`to the synchronous DRAM as the following sequence of
`commands: precharge, activate (for the high portion of
`addresses), and read (for the low portion of addresses). The
`controller also functions to enforce timing requirements and
`to queue a minimum of two requests. Furthermore, the
`controller functions to interrupt normal operation for
`required refresh, power on reset (load mode register), power
`down, and power up. The main purpose of the controller is
`to allow or provide greater throughput, or equivalent
`throughput at less latency, from the synchronous DRAMs.
`This controller is applicable to computer systems where
`processors can request data much faster than the memory
`can provide the data (generally four to fifty times faster).
`Also, the controller is applicable to processors which do not
`stall for an individual memory request or processors which
`do not stop to wait for data where possible. The main goal
`of the controller is to achieve a high throughput of the
`memory requests and commands. Another importantissue is
`latency, but minimizing latency is secondary to maximizing
`throughput in the present controller. Another goal of the
`controller is to provide flexibility in timing and
`configuration, but this is also secondary to maximizing
`throughput.
`One feature of the controller is to buffer multiple memory
`requests, and in an example of the present embodiment, two
`memory requests can be buffered per bank Buffering up to
`one request per bank allows for the opportunity of the banks
`being in parallel. By buffering two requests to the same
`bank, the same page address match computation and the
`actual memory data transfer may be placed in parallel.
`Another feature of the controller is to issue and complete
`requests out of order with respect to the order received or the
`order issued by the external device. Out of order issue/
`completion can improve throughput by overlapping required
`operations which do not specifically involve data transfer
`with operations involving data transfer.
`The controller for state machines implemented in digital
`logic allows for out of order issue and completion by using
`
`30
`
`35
`
`40
`
`45
`
`55
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 9
`
`

`

`S
`dynamic constraint based, maximum throughputscheduling.
`In general, the memory requests are resolved into their
`required sequences of precharge/bank activate/read-write
`Sequences and placed in a queue where one queue per bank
`exists. Dynamic constraint based logic determines which
`requests are ready to issue and scheduling logic chooses the
`requests thereafter, but not necessarily in the order that the
`requests are received. The requests are chosen according to
`the requests which can be issued to the synchronous DRAM
`without causing reduction in throughput. For example, bank
`1 may be precharged while bank 0 is bursting outdata. Also,
`the scheduling and logic select requests such that the
`throughput is maximized. For example, a read to a page and
`bank is chosen when directly following a read to that same
`page and bank.
`
`10
`
`5,630,096
`
`6
`The functions for each of the units described above do not
`have to be accomplished within four pulses of the controller
`clock, or a certain number of pulses of the controller clock.
`However, these steps must be completed within one
`SDRAM clock pulse. The SDRAM clock pulse relates to the
`controller clock and is determined by dividing the controller
`clock with the programmable divisor. A command stack of
`memory requests is developed for each bank of the data
`paths. The command update unit 210 updates the per bank
`command stack. An illustration of the update performed is
`provided in Table 1 below for a two-deep control stack.
`
`TABLE 1.
`
`COMMAND UPDATE
`
`Incoming
`Request
`
`go rw mp pop pnp
`incoming transactions, no pop's
`
`TOS
`
`Next
`
`TOS
`
`Next
`
`st
`
`tr
`
`tap
`
`nr nnp
`
`st
`
`tr
`
`tinp
`
`nr anp
`
`1 X X
`1 X X
`pop's
`
`O
`O
`
`O
`O
`
`O X X X X
`X X X X
`
`1
`2
`
`rw mp X X
`tr
`tinp
`rw
`mp
`
`1.
`
`O X X
`X X X X O X X X X
`O
`O X X
`2 X X X X
`nr ninp X X
`O
`O X X
`1.
`X X X X
`tr
`O X X
`1.
`O
`O X X
`O
`1.
`2 X X X X
`t
`0
`m ninp
`simultaneous incoming transactions and
`pops
`
`1.
`2
`
`X X
`1.
`1 X X
`do nothing
`
`O X X
`O X X
`O X X
`
`O
`
`O
`O
`O
`
`O
`1.
`
`O
`O
`O
`
`1.
`1.
`
`X X X X
`X X X X
`
`1
`2
`
`rw mp X X
`tr
`0
`rw
`up
`
`O X X X X O X X X X
`1 X X X X
`1.
`tr
`trip X X
`2 X X X X
`2
`tr
`top m ninp
`
`FIG. 2 further illustrates how multiple requests are pri
`oritized and issued to the synchronous DRAMs. Each of the
`units illustrated in FIG. 2 are incorporated into the control
`ler. For example, a command update unit 210, a bank
`qualification unit 220 and a constraint update unit 240 may
`45
`be incorporated into each of the bank data paths 20 and 30
`of FIG. 1 and a bank arbitration unit 230 may be incorpo
`rated into the control block 70. There is one bank arbitration
`unit 230 and a plurality (N) of other command update, bank
`qualification and constraint update units 210, 220 and 240
`50
`where N=the number of banks. The bank qualification unit
`220 qualifies the per bank requests with the current syn
`chronous DRAM status (active or precharged) and ongoing
`scheduling constraints. The bank qualification unit 220
`further interprets memory requests and commands, such as
`load and store, into synchronous DRAM commands, such as
`activate, read, write and precharge. The bankarbitration unit
`230 is connected to the bank qualification unit 220 and
`arbitrates between multiple sources of memory requests.
`The constraint update unit 240 is connected to the bank
`arbitration unit 230 for decoding the decision to synchro
`nous DRAM standard commands while simultaneously
`updating scheduling constraints per each separate bank. The
`command update unit 210 is connected to the constraint
`update unit 240 for updating the per bankmemory requests
`queues and popping the top element off to reveal the next
`request when necessary.
`
`65
`
`55
`
`InTable 1, go represents the existence of a new command
`from the external device, rw represents a read or write
`request where rw-1 indicates a read request and rw-0
`indicates a write request, np represents a new page where the
`transaction is a new page (row) address, pop represents an
`input transaction for popping the stack, pnp represents an
`input transaction for clearing the np bit if set (this allows a
`page activate to clear the np bit without popping the stack),
`and strepresents the number of elements in the stack. Also,
`TOS indicates top of stack and next indicates the next entries
`in the stack.
`In all of the tables, the inputs are on the left of the vertical
`bar and the outputs are to the right. An input of “X” means
`"don't care” and an output of “X” means unspecified.
`Outputs may assume symbolic values representing specific
`numeric values and may also assume the value of an input
`where the name of the input appears in the table.
`The bank qualification unit 220 qualifies the top of the
`stack with constraints of the synchronous DRAM. The
`constraints on the synchronous DRAM may be obtained, for
`example, from the specification sheet of the device used,
`such as from the Micron Semiconductor Specification Sheet
`for MT48LC2M8S1S. The memory requests and commands
`are qualified per each bank of data path. Bank control inputs
`(st), read (tr) and new page (tinp), are combined with bank
`active signals and qualifiers (ok to read, write, activate, and
`precharge) to develop a per bank command request as
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 10
`
`

`

`8
`
`TABLE 3
`
`ON
`
`B
`
`Current
`Bank
`X
`X
`
`Current
`Bank
`1.
`1
`
`5,630,096
`
`7
`illustrated in Table 2 below. The first three inputs of Table 2
`correspond to the first three outputs in Table 1 from the
`command update unit 210. The control inputs indicate that
`there is a request pending (st-0), a read request is pending
`when the read qualifier is active and a new page address is 5
`requested when the new page qualifier is active.
`
`TABLE 2
`BANK QUALIFICATION
`
`TOS
`
`OK to OK to
`Read
`Write
`Bank
`Bank
`
`OK to
`Activate
`Bank
`
`OK to
`Prechg
`Bank
`
`Precharge
`f
`
`B
`
`st
`
`tr
`
`tnp
`
`Active
`
`O
`
`O
`
`0
`
`O
`
`Idle
`
`State
`
`new page
`
`>0 X 1.
`>0 X
`1.
`>0 X 1.
`>0 X
`1.
`write
`
`>0
`>0
`>0
`>0
`read
`
`0
`0
`0
`O
`
`0
`0
`0
`O
`
`O
`O
`1.
`1
`
`O
`
`O
`1.
`
`X
`X
`X
`X
`
`X
`X
`X
`X
`
`X
`X
`X
`X
`
`X
`1.
`X
`O
`
`1
`1
`
`X
`X
`O
`O
`>0
`X
`1.
`1.
`0
`>0
`X
`X
`0
`0
`>0
`X
`O
`1.
`0
`1
`>0
`if no command, precharge if active, otherwise idle
`
`O X X
`O X X
`O X X
`O X X
`
`O
`
`1.
`1.
`
`X
`X
`X
`X
`
`X
`X
`X
`X
`
`1.
`0
`X
`X
`
`1.
`X
`O
`X
`
`X
`O
`X
`
`X
`X
`X
`X
`
`X
`X
`1.
`0
`
`X
`X
`X
`X
`
`X
`X
`X
`X
`
`X
`1.
`1
`O
`
`X
`X
`X
`X
`
`X
`X
`X
`X
`
`X
`X
`X
`X
`
`X
`1.
`O
`X
`
`BA1
`Bl
`BP1
`Bl
`
`BA1
`BW1
`B1
`Bl1
`
`BA
`BR1
`B
`B1
`
`B1.
`BP1
`B1
`B1.
`
`In Table 2, OK to Read Bank 0 is a constraint for reading
`from bank 0 which indicates that it is possible to read in this 40
`SDRAM cycle, Write Bank 0 is a constraint for writing to
`bank 0 which indicates that it is possible to write in this
`SDRAM cycle, OK to Activate Bank 0 is a constraint for
`activating bank 0 which indicates that it is possible to
`activate in this SDRAM cycle and Prechg Bank 0 is a
`constraint for precharging bank 0 which indicates that it is
`possible to precharge in this SDRAM cycle.
`
`so
`
`Next, the bank arbitration unit 230 arbitrates between
`commands from different banks so that the throughput is
`maximized. The arbitration is performed after the qualifica-
`o
`tion so that the data slots between the commands are used as 55
`much as possible for memory requests. The arbitration is
`performed between banks and between system conditions
`such as power up, power down, and refresh. Table 3 below
`illustrates that one of the conflicting memory requests or
`commands is selected to maintain throughput based on 60
`previous reads or writes (with read always being picked over
`write) for preventing unused data slots. The first two inputs
`of Table 3 correspond to the outputs from the bank qualifi-
`cation unit 220 in Table 2. In addition, a least recently used 65
`bit (rub) of the current bank is used as a "tie-breaker' for
`choosing a request.
`
`s
`
`Supervisory
`B State B State
`State
`Bank O Bank 1
`S.
`Bw
`BR1
`SI
`BA1
`BR1
`s
`E.
`W.
`X
`SI
`BR1
`BP1
`X
`SI
`BA1
`BW1
`X
`SI
`PE
`BW1
`X
`SI
`BW
`BA1
`:
`s
`Y.
`E.
`O
`X
`SI
`BA1
`BP1
`both banks want to do the same thing so preference is given to
`the least recently used bank
`SI
`BR1
`BR1
`s
`E.
`E.
`SI
`BW1
`BW1
`SI
`BA1
`BA1
`s
`E.
`O
`SE
`BP1
`BP1
`arbitrate control state when one or more banks request idle
`BI
`B1.
`SI
`X
`b
`B1
`SI
`X
`1.
`B1
`SI
`X
`O
`
`O
`1.
`1.
`O
`
`1.
`
`O
`1
`
`O
`i
`1.
`O
`i
`
`BW1
`
`C
`
`C-State
`R1
`R1
`:
`R1
`W1
`W1
`W1.
`y
`A1
`
`R1
`s
`W1
`A1
`
`P1
`
`1.
`R1
`W1
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 11
`
`

`

`9
`
`TABLE 3-continued
`BANKARBTTRATION
`
`5,630,096
`
`10
`1. These two inputs along with the supervisory state have
`three bit wide field widths. The current bank select bit is at
`the input and the next bank select bit at the output and
`C-state represents the arbitrated control state.
`
`B State
`Bank O
`
`B State
`Bank 1
`
`Supervisory
`State
`
`Current
`Bank
`
`Current
`Bank
`
`C-State
`
`5
`
`X
`S
`BA1
`BI1
`X
`SI
`BP1
`BI1
`X
`S.
`BI1
`BR1
`:
`s
`R EX,
`X
`SI
`BI
`BP1
`reset sequence reqeusts, if active, have precedence
`X
`X
`SP
`X
`X
`X
`SRF
`X
`X
`X
`SPD
`X
`X
`X
`SM
`X
`X
`X
`SW
`X
`X
`X
`SL
`X
`
`O
`O
`1.
`
`1.
`
`cb
`cb
`cb
`cb
`cb
`cb
`
`A1
`a
`P1
`The constraint update unit 240 is used to update CO
`R1
`straints. Table 4 below illustrates how constraints are
`y 10 updated in each bankin response to the C-State output from
`P1
`the bank arbitration. The output counter indicates the num
`ber of SDRAM cycles one must wait before a read, write,
`activate or precharge operation can be performed.
`
`P
`RF1
`PD
`M1
`1.
`I1
`
`15
`
`20
`
`In Table 3, B-State Bank 0 represents the bank state of
`bank 0 and B-state Bank 1 represents the bank state of bank
`
`TABLE 4
`
`CONSTRAINT UPDATE
`
`BL
`(Burst Length)
`
`tRCD
`(RJC Delay)
`
`C State
`
`Current Bank
`
`Counter
`
`X
`X
`X
`X
`
`2
`3
`X
`X
`
`Al
`A1
`R1
`W1
`
`1.
`1.
`X
`
`trCD-1
`tRCD-1
`BL-1
`BL-1
`
`tAA
`(CAS
`Latency)
`
`X
`X
`X
`X
`
`BL
`
`X
`X
`X
`X
`
`tRCD
`
`C-State Current Bank
`
`Counter
`
`2
`3
`X
`X
`
`A.
`A1
`R1
`W1
`
`tRCD-1
`tRCD-1
`tAA - BL-1.
`BL-1
`
`X
`X
`
`tRCm1
`(Read Cycle
`Time)
`
`tRRD
`(Row-Row
`Delay)
`
`tRP
`(RAS
`Precharge) C-State Current Bank
`
`OK to
`Read
`
`O
`O
`O
`O
`
`OK to
`Write
`
`O
`O
`O
`O
`
`OK to
`Activate
`
`O
`O
`1.
`O
`1.
`O
`
`OK to
`Precharge
`
`M.
`RF
`P
`P
`A1
`A.
`
`X
`X
`1.
`1.
`O
`O
`
`Counter
`
`tRCn
`tRCm1
`O
`tRP-1
`O
`tRRD-1
`
`C-State Current Bank
`
`Counter
`
`X
`X
`O. ... 1
`>
`X
`X
`
`tWR
`(Write
`Recovery
`Time)
`
`X
`X
`X
`X
`X
`X
`
`tAA
`
`O . . . i.
`0... 1
`>
`X
`
`X
`X
`X
`X
`O . . .
`>1
`
`.
`
`BL
`
`<4
`4
`X
`X
`
`X
`X
`X
`X
`
`R1
`R
`R1
`W
`
`1.
`1.
`1
`
`O
`tAA+ 2
`tAA-BL-3
`WRBL-2
`
`1
`O
`O
`O
`
`Samsung Electronics Co., Ltd.
`Ex. 1060, p. 12
`
`

`

`5,630,096
`
`5
`
`10
`
`15
`
`20
`
`11
`FIGS.3(a)-3(h) illustrate some examples of part configu
`rations supported by the controller. The part configurations
`of FIGS. 3(a), 3(c), 3(e) and 3(g) use 16 Mbit parts to
`support 4MBytes, 2MBytes, 8MBytes and 4MBytes of total
`memory respectively. The part configurations of FIGS. 3(b),
`3(d), 3(f) and 3(h) use 64Mbit parts to support 16 MBytes,
`8 MBytes, 32 MBytes and 16 MBytes of total memory
`respectively. According to JEDEC specifications, the syn
`chronous DRAM has two banks. As a result, the maximum
`number of banks is two times the number of parts used. With
`more banks, a more random stream of data can be handled
`faster. However, as the number of banks used increases, the
`hardware complexity increases due to the larger number of
`decisions which must be made at the same time.
`In FIGS. 3(a)-3(h), a microprocessor 300 is connected to
`synchronous DRAMs for the various configurations. The
`configurations of FIG. 3(a) and 3(b) support two 16 Mbit
`synchronous DRAMs 310 and 312 and two 64 Mbit syn
`chronous DRAMs 314 and 316, respectively. The configu
`rations of FIGS. 3(c) and 3(d) support one 16 Mbit syn
`chronous DRAMs 320 and one 64 Mbit synchronous
`DRAMs 332, respectively. In FIGS. 3(e) and 3(f), configu
`rations of four synchronous DRAMs 330,332,334 and 336
`and four synchronous DRAMs 340, 342, 344 and 346 are
`respectively supported. FIGS. 3(g) and 3(h) support con
`25
`figurations of two synchronous DRAMs 350 and 352 and
`two synchronous DRAMs 354 and 356, respectively.
`FIG. 4(a) illustrates the timing signals to the synchronous
`DRAM over a relatively large time frame. The controller
`clock (the fast clock) and the slower SDRAM clock are
`illustrated for the power up period and subsequent stores and
`loads in addition to signal at the SDRAM pins.
`FIG. 4(b) illustrates an example of the reordering of a
`store request that occurs in the controller before being issued
`in the synchronous DRAM. As illustrated by the controller
`input bus, three writes are to be performed to bank 0 and one
`write is to be performed to bank 1. Also illustrated are the
`scheduled no opera

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