US20030126356A1 - Memory system having synchronous-link DRAM (SLDRAM) devices and controller - Google Patents

Memory system having synchronous-link DRAM (SLDRAM) devices and controller Download PDF

Info

Publication number
US20030126356A1
US20030126356A1 US10/176,327 US17632702A US2003126356A1 US 20030126356 A1 US20030126356 A1 US 20030126356A1 US 17632702 A US17632702 A US 17632702A US 2003126356 A1 US2003126356 A1 US 2003126356A1
Authority
US
United States
Prior art keywords
data
command
sldram
module
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/176,327
Inventor
David Gustavson
David James
Hans Wiggers
Peter Gillingham
Cormac O'Connell
Bruce Millar
Jean Crepeau
Kevin Ryan
Terry Lee
Brent Keeth
Troy Manning
Donald North
Desi Rhoden
Henry Stracovsky
Yoshikazu Morooka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Memory International Inc
Original Assignee
Advanced Memory International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/909,299 external-priority patent/US6226723B1/en
Priority claimed from US08/933,713 external-priority patent/US5917760A/en
Priority claimed from US08/933,710 external-priority patent/US5945886A/en
Priority claimed from US08/933,673 external-priority patent/US6088774A/en
Priority claimed from US08/987,328 external-priority patent/US6249827B1/en
Application filed by Advanced Memory International Inc filed Critical Advanced Memory International Inc
Priority to US10/176,327 priority Critical patent/US20030126356A1/en
Publication of US20030126356A1 publication Critical patent/US20030126356A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/409Mechanical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1057Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1087Data input latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K1/00Printed circuits
    • H05K1/02Details
    • H05K1/0213Electrical arrangements not otherwise provided for
    • H05K1/0237High frequency adaptations
    • H05K1/0246Termination of transmission lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K1/00Printed circuits
    • H05K1/02Details
    • H05K1/0213Electrical arrangements not otherwise provided for
    • H05K1/0216Reduction of cross-talk, noise or electromagnetic interference
    • H05K1/0218Reduction of cross-talk, noise or electromagnetic interference by printed shielding conductors, ground planes or power plane
    • H05K1/0219Printed shielding conductors for shielding around or between signal conductors, e.g. coplanar or coaxial printed shielding conductors
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/07Electric details
    • H05K2201/0707Shielding
    • H05K2201/0715Shielding provided by an outer layer of PCB
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/09Shape and layout
    • H05K2201/09209Shape and layout details of conductors
    • H05K2201/09218Conductive traces
    • H05K2201/09236Parallel layout
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/09Shape and layout
    • H05K2201/09209Shape and layout details of conductors
    • H05K2201/09218Conductive traces
    • H05K2201/09254Branched layout
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/09Shape and layout
    • H05K2201/09209Shape and layout details of conductors
    • H05K2201/0929Conductive planes
    • H05K2201/09309Core having two or more power planes; Capacitive laminate of two power planes
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/10Details of components or other objects attached to or integrated in a printed circuit board
    • H05K2201/10007Types of components
    • H05K2201/10022Non-printed resistor
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/10Details of components or other objects attached to or integrated in a printed circuit board
    • H05K2201/10007Types of components
    • H05K2201/10159Memory
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/10Details of components or other objects attached to or integrated in a printed circuit board
    • H05K2201/10613Details of electrical connections of non-printed components, e.g. special leads
    • H05K2201/10621Components characterised by their electrical contacts
    • H05K2201/10689Leaded Integrated Circuit [IC] package, e.g. dual-in-line [DIL]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the invention relates generally to memory systems that use inexpensive random access memory devices (e.g. DRAM devices).
  • the invention relates more specifically to memory devices that may be programmably-calibrated while in-circuit.
  • This application includes descriptions of algorithms that may be implemented by one or more computer programs.
  • the owner of this application reserves the right to claim certain copyrights in said computer programs.
  • the owner has no objection, however, to the reproduction by others of the descriptions herein of such algorithms if such reproduction is for the sole purpose of studying the disclosure to understand the invention or inventions described herein.
  • the owner reserves all other copyrights in such computer programs, including the right to reproduce such computer programs in machine-executable form.
  • Dynamic memory or DRAM (dynamic random access memory) devices are well-known in the industry for providing inexpensive and relatively high-speed storage capabilities.
  • the basic dynamic memory cell comprises a charge-storing capacitor and a gating element (e.g. a field effect transistor) for providing addressable access to the charge in the capacitor for sensing, refresh and overwriting.
  • a gating element e.g. a field effect transistor
  • SIMM's Single Inline Memory Modules
  • IC packages such as single Inline Memory Modules
  • Mb 64 Mega-bits
  • MCM's may be used for providing the main system memory of the computers.
  • Each IC device of the SIMM typically includes a monolithic silicon die or other semiconductor substrate with lithographically defined circuitry provided thereon or therein. The IC device further comprises a sealed package for protecting the substrate and its circuitry, and interconnect pins for providing signal coupling between the package-internal circuitry and external circuits.
  • MCM Multi-Chip Module
  • DRAM dynamic random access memory
  • FPM Fast Page Mode
  • EDO Extended Data Out
  • SDRAM Serial DRAM
  • DDR Double Data Rate
  • a Synchronous-Link Dynamic Random Access Memory (SLDRAM) System may be provided in accordance with the invention to include: (a) a command module for issuing command packets to uniquely addressable memory units and/or addressable collections of such units; (b) a high-speed command link for carrying the command packets; (c) one or more high-speed data links for carrying data corresponding to packet-commanded data-transfer actions; and (d) one or more, in-circuit programmably-calibratable SLDRAM modules each having one or more addressable memory units, where each SLDRAM module is capable of interfacing with the command link and at least one of the high-speed data links for appropriately responding to informational queries provided by command packets, for further appropriately responding to tuning (adjustment, or calibrating) commands provided by command packets, and for yet further appropriately responding to data addressing and other data-transfer-related commands provided by command packets.
  • a command module for issuing command packets to uniquely addressable memory units and/or addressable collections of such units
  • a system initializing method in accordance with the invention comprises the steps of: (a) first initializing an SLDRAM system by broadcasting from a reference location (e.g., from pins of a memory controlling module) a predefined first synchronization sequence over command/address lines (e.g., CA(9:0)) and data lines (e.g., DQ(17:0)) of the system while simultaneously and synchronously outputting from the reference location a continuously-running clock train over one or more clock lines (e.g., CCLK, DCLK0, DCLK1) of the system for allowing one or more SLDRAM modules present in the system to each self-adjust local command-receiving and data-receiving circuits of the SLDRAM module to synchronously recognize the predefined first synchronization sequence at the locality of the self-adjusting SLDRAM module; (b) second initializing the SLDRAM system by sequentially assigning identification codes (ID's and/or sub-ID's) to individually-ad
  • a system utilization method in accordance with the invention comprises the steps of: (a) synchronously issuing command packets from a reference location (e.g., from a memory controlling module) of an SLDRAM system using command/address lines (e.g., CA(9:0)) of the system and command-clock lines (e.g., CCLK/CCLK#) of the system for transmitting the command packets to one or more in-circuit-calibratable SLDRAM modules of the system, where first ones of the issued command packets individually or collectively address one or more individually-addressable, memory units within the SLDRAM modules and define a data-transfer operation'to be carried out by the individually or collectively addressed memory units; and (b) causing the addressed memory units to responsively perform the defined data-transfer operation within a time slot that follows receipt by the memory unit of a respective command packet, where latency between the receipt of the respective command packet and the responsive performance the defined data-transfer operation is adjustable; and wherein second ones of the issued
  • a pins and/or traces distribution pattern in accordance with the invention is characterized by: one or plural linear series of pins/traces, with each series extending in a lateral first direction between outer extremes of a signal communicating path extending longitudinally in a second, generally orthogonal direction and wherein said pins/traces include: (a) a first pair of complementary command-clock pins/traces for respectively carrying complementary command-clock signals (CCLK, CCLK#), the first pair of command-clock pins/traces being disposed approximately midway between said outer extremes of said signal communicating path; (b) a set of command-packet carrying pins/traces for carrying command words (CA0:9) that are synchronized with the command-clock signals and define command-packets, the command-packet carrying pins/traces being disposed proximate to the first pair of command-clock pins/traces; (c) a,
  • FIG. 1A is a block diagram showing a simplified, high-level view of a SLDRAM system in accordance with the invention
  • FIG. 1B is a schematic showing a more detailed view of one embodiment of an SLDRAM system in accordance with the invention.
  • FIG. 1C is a schematic diagram for illustrating general aspects of a SLIO (SynchronousLink Input/Output) connection
  • FIG. 1D is a schematic diagram illustrating a possible configuration of a controller mother board and module daughter boards
  • FIG. 1E is a legend for symbols used in FIGS. 1 B- 1 D;
  • FIG. 2A is a flow diagram showing in simple terms how commands, data clocks and data bus transfers may be pipelined in accordance with the invention
  • FIG. 2B is a timing diagram showing in more detail how commands, data clocks and data bus transfers may be interleaved in accordance with the invention
  • FIG. 3 is a block diagram of a buffered system
  • FIG. 4 is a top-view pinout diagram showing an interleaving of interconnect pins on opposed sides of a bottom of a Vertically Standing Module Package (VSMP) in accordance with the invention
  • FIGS. 5 A- 5 B combine to form a schematic diagram of an SLDRAM module in accordance with the invention.
  • FIG. 6A is a block diagram of a memory controller in accordance with the invention.
  • FIG. 6B is a schematic of a DLL circuit and a matched delay circuit that may be used in the memory controller of FIG. 6A;
  • FIG. 7 is a block diagram of a SLDRAM module having timing circuits that complement those used in the memory controller of FIG. 6A.
  • FIG. 1A provides an introduction to a SLDRAM System 100 in accordance with the invention that satisfies at least some of the desirable characteristics set forth above, namely, (a) allowing for low per bit cost, (b) allowing for minimized power usage when devices are not in use, (c) providing for wide and sustainable read/write bandwidth capabilities, (d) where possible, reducing latency times between each access request and a corresponding read/write operation, (e) providing for easy scalability to deeper and/or wider data storage organizations, (f) permitting mixing and matching of memory devices that use different kinds of memory technologies where some are slower than others, and (g) providing basic support for different kinds of hierarchical memory configurations.
  • a key feature of the SLDRAM System 100 shown in FIG. 1A is the provision of one or more, command-queriable and command-tunable memory modules (command Q/T-able modules) such 110 and 180 .
  • command-queriable indicates here that a command module 150 can send information-seeking, query packets to individually-addressable memory units (IAMU's) for discovering their internal organization and basic characteristics.
  • IAMU's individually-addressable memory units
  • Examples of such internal organization information includes number of memory banks, number of memory rows per bank, number of memory columns per row, number of bits or words per column and number of parallel data output lines.
  • Examples of basic characteristics include minimum and maximum latency times for accessing a specific column of an already-opened row in a given bank. Another such example is minimum and maximum latency times for accessing a specific column of a not-yet-opened row in a not-yet-opened bank.
  • An already-opened row in an already-opened bank is referred to herein as a ‘page’ and its respective read/write latencies are referred to herein as ‘page read’ (PgRd) and ‘page write’ (PgW) latencies.
  • the respective latencies for a specific column of data in a not-yet-opened row of a not-yet-opened bank are referred to herein as ‘bank read’ (BkRd) and ‘bank write’ (BkW) latencies.
  • the minimum and maximum values for each of the PgRd, PgW, BkRd and BkW latencies can vary depending on the internal technologies used within given memory devices.
  • the command module 150 it is useful for the command module 150 to be able to discover what the internal organization and basic characteristics are of the various memory modules 110 through 180 that are present, and operatively in-circuit, within the SLDRAM System 100 so that the command module 150 can tune (calibrate) the memory modules while they are in-circuit and so that the command module 150 can properly interleave data transfers of such in-circuit tuned, memory modules to correspond with respective data time slots.
  • the term ‘SLDRAM module’ can refer to either a single SLDRAM IC device or to a daughter board containing a buffered group of SLDRAM IC devices.
  • Each ‘SLDRAM module’ can contain one or a plurality of individually-addressable, memory units (IAMU's). Each so-addressable memory unit (IAMU) may be assigned an ID (identification) number during system initialization.
  • IAMU individually-addressable, memory unit
  • IAMU individually-addressable memory unit
  • ID identification
  • query packets can be directed from the command module 150 to respective IAMU's for discovering their internal organizations and basic characteristics.
  • Calibrating packets may be directed from the command module 150 to respective SLDRAM modules for tuning each module to match in-circuit conditions.
  • Data access (read and write) command packets may be directed from the command module 150 to respective, pre-calibrated SLDRAM modules for timely accessing their data.
  • SLDRAM System 100 can support up to 256 IAMU's by using a set of nine identification bits, ID 0 through ID 8 within command packets.
  • this globally-addressing or broadcast code is defined as a setting of each of the ID bits to logic high (‘1’).
  • SLDRAM System 100 can support up to 512 IAMU's by using a set of ten identification bits, ID 0 through ID 9 within command packets.
  • ID 0 through ID 9 within command packets.
  • the number of IAMU's is expanded by retaining ID 0 through ID 8 and supplementing these 9 address bits with additional, sub-ID bits.
  • larger address spaces are also contemplated through the use of enlarged command packets that have more ID bits and/or more sub-ID bits.
  • command packets travel unidirectionally over a CommandLink 151 that couples the command module 150 to each of up to eight further ‘loads’ (SLDRAM modules 110 through 180 ).
  • the CommandLink 151 comprises ten, single-end terminated transmission lines for respectively carrying command/address bits zero through nine (CA0:9) in parallel. These ten lines are collectively referred to as the CA bus 151 a.
  • Successive CA0:9 command/address words are synchronized consecutively with the rising and falling edges of a command clock that is provided as a differential pair of signals, CCLK and CCLK# on two, single-end terminated transmission lines 151 b .
  • Description herein of a specific rising or falling clock edge refers to the noninverted signal (e.g., CCLK) rather than to its inverted complement (e.g., CCLK#).
  • the CommandLink 151 further comprises four command control lines 151 c that respectively carry a FLAG signal ( 151 c 1 ), a LISTEN signal ( 151 c 2 ), a LINKON signal ( 151 c 3 ) and a RESET# signal ( 151 c 4 ).
  • the references, 151 c 1 - 151 c 4 are seen in FIG. 1B rather than in 1 A.
  • command packets each consist of 4 consecutive, 10 bit wide words transmitted over the CA(9:0) bus 151 a .
  • the first word of a command is indicated by a ‘1’ in a ‘01000’ command-aligning SLIO stream provided on the FLAG line ( 151 c 1 ).
  • An expected typical frequency for CCLK is about 200 MHz although other frequencies such as about 300 MHz, about 400 MHz, about 600 MHz, and so forth are contemplated as well.
  • Both edges of the differential free running clock CCLK/CCLK* 151 b are used by listening SLDRAM modules ( 110 - 180 ) to synchronously latch command words.
  • the 200 MHz version of CCLK provides a command bandwidth of 400 Mega-bits per second per CA line (400 Mb/s/pin). It is contemplated that alternate embodiments may use more CA words per command packet and/or a wider CA bus having more CA transmission lines 151 a.
  • Each SLDRAM module ( 110 - 180 ) should be able to exit this non-listening standby mode and accept a next command packet within 2 CCLK clock cycles (4 ticks) of LISTEN going back high (to logic
  • LINKON ( 151 c 3 ) is brought low the SLDRAM modules ( 110 - 180 ) may enter a shutdown mode in which the complementary CCLK/CCLK# signals 151 b can be turned off to achieve a low power consumption condition on the CommandLink 151 .
  • the RESET# signal ( 151 c 4 ) is used to put the SLDRAM modules ( 110 - 180 ) into a known state such as on power-up so that initialization may begin.
  • At least one, bi-directional DataLink (DataLink_A) 155 is provided.
  • This DataLink_A 155 is used by the command module 150 for receiving initialization-query responses and other data (e.g., read data) from each of the SLDRAM modules ( 110 - 180 ). It may also be used by the command module 150 for outputting write data to one or more of the SLDRAM modules.
  • DataLink_A 155 comprises eighteen, single-end terminated transmission lines for respectively carrying data bits zero through seventeen (DQ(0:17)_A) in parallel. These eighteen lines are collectively referred to as the DQ_A bus 155 a .
  • each DataLink such as 155 can support no more than eight electrical loads, each of a predefined maximum value of electrical capacitance (e.g., 3 pF).
  • Successive DQ(0:17)_A data words are associated consecutively with the rising and falling edges of a command-specified one of plural data clock signals.
  • the command-specified data clock signal may be provided either as differential pair, DCLK0_A and DCLK0_A# on a respective first pair of single-end terminated transmission lines 155 b or it may be provided as differential pair, DCLK1_A and DCLK1_A# on a respective second pair of single-end terminated transmission lines 155 c .
  • Description herein of a specific rising or falling data clock edge refers to the non-inverted DCLK0 or DCLK1 signal rather than to its inverted complement, the DCLK0# or DCLK1# signal.
  • Each of the DCLK0 and DCLK1 data-clock signals generally operates at or about the same frequency as the CCLK command-clock. Unlike the CCLK signal, the DCLK0 and DCLK1 data-clock signals are generally time-windowed rather than being free-running.
  • the signal-originating point for each of the DCLK0_A and DCLK1_A data-clock signals should change to correspond with the source point of corresponding data that is to be placed onto the DQ_A bus 155 a . As different devices take over mastery of the DQ_A bus 155 a the origin point of the corresponding DCLK0_A or DCLK1_A signal also typically changes.
  • Data transmission on the DQ_A bus 155 a preferably occurs as bursts of at least 4 consecutive data words each, with each such data word being 18 bits wide (thus providing at least 72 bits of data transfer per burst). Data burst length may be specified by a corresponding command packet.
  • the DCLK0 and DCLK1 signals are each originated from an assigned one of the SLDRAM modules ( 110 - 180 ) that has corresponding mastery over the DQ_A bus 155 a for the read operation.
  • the command module 150 gives itself corresponding mastery over the DQ_A bus and the DCLK0 and DCLK1 signals are each originated from the command module 150 .
  • the phase and magnitudes of the DCLK0 and DCLK1 signals at their respective points of origin can vary depending on the location of the source point along on the DataLink 155 .
  • a first of the SLDRAM modules ( 110 - 180 ) acts as an originating source for a first of the data-clock signals (e.g., DCLK0/ 0 #) and as a source of a corresponding first data transmission burst while, in preparation for a successive second data transmission burst, a second of the SLDRAM modules ( 110 - 180 ) or the command module 150 begins to act as an active originating source for the second of the data-clock signals (e.g., DCLK1/ 1 #).
  • the second SLDRAM module or the command module 150 should simultaneously prepare itself to be the source of the corresponding, second data transmission burst.
  • Such preparation preferably occurs in parallel with the first transmission so that the second data burst (which in this example happens to be synchronized with DCLK1/ 1 #) may be immediately placed on the DQ_A bus 155 a just after the first data burst (which in this example happens to be synchronized with DCLK0/ 0 #) finishes. This allows for time efficient use of the shared, DQ_A bus 155 a.
  • Both edges of each of the differential, and time-windowed data-clock signals, DCLK — 0A/DCLK — 0A# ( 155 b ) and DCLK — 1A/DCLK — 1A# ( 155 c ) are used to latch data words on the shared DQ_A bus 155 a .
  • a 200 MHz CCLK version of SLDRAM System 100 provides a per data-link bandwidth of 400 Mega-bits per second per DQ line (400 Mb/s/pin). It is contemplated that alternate embodiments may use a wider DQ_A bus 155 a having more than 18 transmission lines.
  • the eighteen bits of each data word may be designated as desired, including two for carrying parity or other error-related code and the remaining sixteen for carrying corresponding data bytes of 8 bits each.
  • the illustrated, second DataLink_B 156 is optional and may be used in conjunction with at least some of the SLDRAM modules (such the illustrated module 180 ) that have data ports which are wider than DQ_A bus 155 a .
  • module 180 has a 36-bit wide, parallel data-transmission capability while module 110 has only a 18-bit wide, parallel data-transmission capability. All of the SLDRAM modules ( 110 - 180 ) convey their initialization information over the primary DataLink_A 155 .
  • the command module 150 may instruct module 180 to convey the upper half of its 36-bit wide data by way of DataLink_B 156 while the lower half is simultaneously conveyed by way of DataLink_A 155 .
  • the command module 150 may instruct module 180 to convey the upper half of its 36-bit wide data by way of DataLink_B 156 while the lower half is simultaneously conveyed by way of DataLink_A 155 .
  • DataLink_B 156 is preferably structured in the same way as DataLink_A 155 to have eighteen, single-end terminated transmission lines for respectively carrying secondary data bits zero through seventeen (DQ(0:17) _B)) in parallel. These eighteen lines are collectively referred to as the DQ_B bus 156 a . Similarly, successive DQ(0:17)_B data words (each 18-bits wide) are associated consecutively with the rising and falling edges of a command-specified one of plural data clock signals of the secondary link 156 .
  • the command-specified data clock signal of the DQ_B bus 156 a may be provided either as differential pair, DCLK0_B and DCLK0_B# on a respective first pair of single-end terminated transmission lines 156 b or it may be provided as differential pair, DCLK1_B and DCLK1_B# on a respective second pair of single-end terminated transmission lines 156 c .
  • the outputting source of a respective one of DCLK0_B/B# and DCLK1_B/B# also acts as the outputting source of the corresponding data bursts on DQ_B bus 156 a.
  • SLDRAM System 100 may have yet further data links in addition to 155 and 156 . These additional data links may be similar to 155 or wider or narrower as appropriate for the different kinds of SLDRAM modules ( 110 - 180 ) used in the system 100 .
  • the DCLK — 0B/DCLK — 0B# lines ( 156 b ) and DCLK — 1B/DCLK — 1B# ( 156 c ) are shown lumped together close to the DQ_B bus 156 a .
  • the CCLK lines should run close to the CA(0:9) and FLAG lines so that these exhibit substantially same transmission characteristics for the utilized clock frequency and mechanical layout.
  • the CCLK lines should run close to the DCLK0 and DCLK1 lines of at least one DataLink so that these exhibit substantially same transmission characteristics for the utilized clock frequency and mechanical layout.
  • One embodiment follows the trace-wire dispersal pattern shown in FIG. 4.
  • a daisy chained, serial bus 152 is further shown in FIG. 1A.
  • This serial bus 152 includes provision of an input SI terminal and output SO terminal on each module, 110 - 180 and also 150 .
  • Serial bus 152 is used on power-up and resets to serially step through the SLDRAM modules ( 110 - 180 ), to tune their command-receiving phases, and to thereafter assign unique ID's to each IAMU (individually-addressable, memory unit).
  • Each SLDRAM module ( 110 - 180 ) may contain one or more respective IAMU's.
  • RESET# ( 151 c 4 ) is activated.
  • all SLDRAM modules ( 110 - 180 ) and the command module 150 drive their respective SO terminal low. This signals to the next module in the daisy chain 152 that the previous module has not yet finished initializing.
  • the command module 150 should be initialized first. Such initialization may or may not include output level tuning and/or clock tuning as appropriate for a specific implementation of command module 150 .
  • Initialization of the command module 150 may be self-mediated or controlled through a system bus 90 .
  • the system bus 90 may couple to a CPU (central processing unit) or to another, like high-intelligence system.
  • the command module 150 may be a low cost, packaged device that supports only the minimal requirements set forth herein or it may be more complex, as desired.
  • the intent here is to allow the basic SLDRAM System 100 (with the exception of system bus 90 and its interface) to be of low cost and compact size.
  • the command module 150 drives its SO terminal 152 a to logic high (“1”) for a first time in order to begin a broadcast initialization sequence.
  • the command module 150 asserts mastery over both the DCLK — 0A/DCLK — 0A# bus ( 155 b ) and the DCLK — 1A/DCLK — 1A# bus ( 155 c ) and begins continuous transmission of the CCLK signal onto these buses 155 b,c as well as onto the CCLK transmission lines 151 b .
  • the command module 150 begins continuous transmission of a predefined first synchronization sequence onto each of the lines of the CA(0:9) bus 151 a , onto each of the lines of the DQ(0:17) _A bus 155 a , and onto the FLAG line ( 151 c 1 ).
  • this predefined first synchronization sequence comprises a repeat of the 15 -bit, pseudo-random SYNC sequence: ‘111101011001000’ (four 1's, two 01's, two 100's, and a 0). This pattern provides every possible 4-bit sequence except 0000. Other similar sequences may of course be possible.
  • the SYNC sequence is staggered across lines as indicated by Table 0.5. TABLE 0.5 SYNC PATTERN ALIGNMENT SIGNAL REPEATING PATTERN . . . FLAG 1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 . . . CA9 0 0 0 0 1 0 1 0 1 1 1 1 . . . CA8 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 . . . CA7 0 0 0 0 1 0 1 0 1 1 1 1 . . .
  • CA6 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 . . . CA5 0 0 0 0 1 0 1 0 1 1 1 1 . . . CA4 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 . . . CA3 0 0 0 0 0 0 1 0 1 0 1 1 1 1 . . . CA2 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 . . . CA1 0 0 0 0 0 0 1 0 1 0 1 1 1 . . . CA1 0 0 0 0 0 0 0 1 0 1 1 1 . . . CA1 0 0 0 0 0 0 0 1 0 1 1 1 . . . CA1
  • the predefined first synchronization sequence is known to each of the SLDRAM modules ( 110 - 180 ) and each enters into its own self-synchronizing operation wherein it adjusts internal parameters (e.g., internal clock phases and/or delays) so as to optimize local recognition of the predefined synchronization sequence in synchronism with a respective one of the locally-received CCLK, DCLK0 and DCLK1 signals. This will be better appreciated when FIG. 1B is discussed.
  • internal parameters e.g., internal clock phases and/or delays
  • each of the SLDRAM modules ( 110 - 180 ) finishes its self-synchronizing operation, it sets its SO line high if its SI line is also high.
  • the low to high transition at the end of the chain, at 152 e informs the command module 150 that all the present modules 110 - 180 have finished their respective self-synchronizing operations and are now in condition to receive command packets.
  • the command module 150 may send a message to a system BIOS (Basic Input Output System, not shown) by way of bus 90 to indicate that SLDRAM System 100 has experienced an initialization error and that intervention is needed to fix the fault.
  • BIOS Basic Input Output System
  • command module 150 stops broadcasting the synchronization sequence over the CA, DQ and FLAG lines. Then module 150 brings its SO line 152 a low. The low ripples through the serial chain 152 back to the last SI terminal 152 e . In response, command module 150 drives its SO terminal 152 a to logic high (“1”) for a second time in order to begin an identification assignment sequence. Some time before this step, all the SLDRAM modules ( 110 - 180 ) should have reset respective identification registers within themselves to a broadcast-recognition value (e.g., a local ID and sub-ID's of all 1's).
  • a broadcast-recognition value e.g., a local ID and sub-ID's of all 1's.
  • the first SLDRAM module in the chain 152 that has the broadcast-recognition value as its ID (e.g., module 110 ) and sees the second ripple-high of its SI terminal (e.g., 152 a ) responsively enters into an identification assignment procedure. If the SLDRAM module ( 110 ) has more than one IAMU (not shown), each IAMU may have its own SI/SO terminal for continuing the identification assignment daisy chain internally within the SLDRAM module. Each IAMU can therefore individually declare its presence during the initialization process.
  • each successive IAMU within the SLDRAM module ( 110 )) whose respective SI/SO state is 1/0, and whose current ID is all ones, accepts a next successive and typically-unique identification comprised of a main ID part (e.g., 9 bits) and optionally, a sub-ID part (e.g., 4 bits).
  • Identification assignment is thus daisy chained from one IAMU to the next inside each of the SLDRAM modules ( 110 - 180 ) and similarly from one SLDRAM module to the next. Accordingly, when SLDRAM module 110 is finished, its SI line 152 a will be high and its SO line 152 b will be also be high. This SI/SO state of 1/1 causes SLDRAM module 110 to ignore further ID assignment commands. The next successive SLDRAM module takes over.
  • the command module 150 may send a message to the system BIOS by way of bus 90 to indicate that SLDRAM System 100 has experienced an initialization error during ID assignment and that intervention is needed to fix the fault.
  • the command module 150 should know how many IAMU's (individually-addressable, memory units) are present in SLDRAM System 100 and it should know what unique (or nonunique) ID has been assigned to each such IAMU.
  • the command module 150 may query each uniquely-identified IAMU to learn about its internal capabilities. It may then individually tune the DCLK and DQ output drivers of each SLDRAM module so as to optimize synchronous recognition at the receipt plane of the command module 150 of DCLK and DQ signals output from differently situated ones of the SLDRAM modules ( 110 - 180 ). These aspects will become clearer as various details FIG. 1B are discussed.
  • the command module 150 may begin to send individualized data access and other command packets to each IAMU. It may also send group command packets to groups of IAMU's on a multicast basis. It may also send global command packets to all the IAMU's on a broadcast basis as will be seen.
  • Signaling levels and directions within SLDRAM System 100 may vary according to Table 1.0.
  • SLIO stands for a 3-level, synchronous link input/output signaling system as will be detailed by FIG. 1C.
  • LVCMOS stands for a binary, low-voltage (e.g., 0-2.5V) CMOS signaling system. TTL or LVTTL may be used instead of LVCMOS if desired.
  • MC is the memory controller (also referred to as command module) 150 .
  • command module also referred to as command module 150 .
  • an asterisk ‘*’ is used interchangeably with the pound sign ‘#’ to indicated a complementary signal.
  • the SLIO signaling system of SLDRAM System 100 may be viewed as an improved and more rigid version of the JEDEC SSTL — 2 signaling system (Series Stub Termination Logic for 2.xV logic circuits).
  • SLIO is used for high speed signaling. Output drive levels are more tightly specified in SLIO to achieve faster bus settling and improved noise margin.
  • the Controller 150 and SLDRAM devices 110 - 180 each employ a noise-isolated, 2.50V V ccQ supply to power the respective V ddQ drain terminals of their respective output drivers.
  • a corresponding noise-isolated, ground line is similarly used to power the respective V ssQ source terminals of their respective output drivers. See FIGS. 1B and 1C.
  • Other parts of the system that operate at lower frequencies and/or are generally less sensitive to noise preferably use a more general 2.50V V cc supply rail and corresponding signal ground.
  • Each differential or nondifferential SLIO signal of the CommandLink 151 and of the DataLinks 155 (and optionally 156 , etc.) is transmitted over a single-end terminated, transmission line.
  • R T termination resistor
  • a series stub resistor (R S ) of approximately 20 ⁇ each or a generally equivalent isolation means is provided at each tap point into each SLIO transmission line to help isolate the major part of the transmission line from load perturbations that may be presented by module inputs and outputs (roughly 3 pF each).
  • circuit 130 is representative of a SLIO output driver such as may found for example inside the package of the command module 150 .
  • Circuit 140 is representative of a spaced-apart SLIO receiver such as may found for example inside the package of a SLDRAM module (e.g., 110 ).
  • Clock source 136 is representative of a synchronization means such as may be further found for example inside the package of the command module 150 .
  • Clock source 136 is coupled by a transmission means 137 (e.g., an RF transmission line) to the locality of receiver circuit 140 .
  • the separation between the SLIO line driver circuit 130 and the SLIO receiver circuit 140 may be on the order of about 50 mm (millimeters) to 175 mm.
  • a major portion of an exemplary SLIO transmission line is represented by trace impedance elements 133 (Z trace1 ) and 135 (Z trace2 ) These elements 133 , 135 may be generally implemented as printed circuit board traces on mother and daughter boards. Other forms of implementing compact transmission lines for carrying SLIO signals of 200 MHz or higher switching frequencies may used instead as appropriate.
  • a first tap into the exemplary SLIO transmission line 133 / 135 is represented by dot 134 a and may occur for example at the MC-near end of the line.
  • a second tap into the SLIO transmission line 133 / 135 is represented by dot 134 b and may occur for example anywhere between the MC-near end of the line and the termination ( 139 ) far end of the line.
  • Element 131 represents a first package interconnect impedance associated with line-driving circuit 130 .
  • the value of Z pack1 may vary depending on specific package design. In one embodiment, it should be no more than about a 3 pF capacitance to AC ground.
  • the internal representation of the SLIO line-driver circuit 130 may also vary depending on what specific IC technology is used.
  • element P 1 represents in general, a current sourcing element that couples to the SLIO power rail, V ccQ .
  • N 1 represents in general, a current sinking element that couples to the corresponding SLIO ground rail.
  • the illustrated, tristate CMOS design that includes P-channel MOSFET P 1 , N-channel MOSFET N 1 and the OR and NOR gates may be used for supporting 3-level signaling that includes a HI-Z output state when OE is inactive (when OE# is high). Other equivalents that can support such 3-level signaling may be used instead.
  • Elements 130 a , 130 b represent programmably-configurable tuning means for tuning the respective V OH and V OL , binary output levels of line-driver 130 .
  • elements 130 a , 130 b are shown as being in series with elements P 1 , N 1 , it is to be understood that such an arrangement is conceptual.
  • the tuning of the respective V OH and V OL , binary output levels may be instead performed by parallel circuitry in which the effective channel width of transistors such as P 1 , N 1 , is modulated, for example by enabling more or fewer transistors that operate in parallel with P 1 , N 1 . If such a parallel-tuning approach is used, voltage levels V ccQ and V ddQ are essentially the same.
  • V ddQ is about 2.50V
  • V ssQ is about 0V
  • the respective V OH and V OL output levels are approximately 1.85V and 0.65V at the output pin of module 130 .
  • the V term level is about midway between V OH and V OL such that source current flow is about +12 mA for representing a SLIO logic high (‘1’) and sink current flow is about ⁇ 12 mA for representing a SLIO logic low (‘0’).
  • the respective high (H) and low (L) voltage levels at second tap point 134 b are about 1.60V and 0.90V.
  • a locally-situated reference voltage level V ref that is provided at the SLIO receiver circuit 140 is positioned about midway between these H/L levels of tap point 134 b and is supplied to one input terminal of receiver circuit 140 , for example to a minus ( ⁇ ) input of comparator 143 .
  • a second input terminal of comparator 143 couples to the SLIO transmission line 133 / 135 by way of tap point 134 b , and by further way of isolating stub resistor 138 and package interconnect impedance 141 (Z pack2 )
  • the value of Z pack2 may vary depending on specific package design of circuit 140 .
  • an output of comparator 143 couples to a D input of flip flop 145 and indicates whether at a given point in time, the received signal level is above or below the local V ref .
  • Alternative methods for detecting the state of tap point 134 b may be used. This is merely an example.
  • an internal first clock, ICLK 1 of SLIO receiver circuit 140 controls the latching instant of flip flop 145 .
  • Alternative methods for defining the state-sampling time or times for tap point 134 b may be used. This is merely an example.
  • the internal first clock, ICLK 1 may be generated in a variety of ways.
  • a phase-lock loop (PLL) circuit or delay-locked loop (DLL) circuit 146 may be coupled to clock source 136 by way of coupling means 137 .
  • a phase and/or frequency locked output 147 a of the PLL/DLL circuit may be supplied to plural delay elements 148 a , 148 b , 148 c , etc.
  • a differently buffered route 147 b may be used to couple means 137 to the delay elements 148 a , 148 b , 148 c , etc.
  • Some or all of the delay elements 148 a , 148 b , 148 c , etc. may be programmably-adjustable so as to selectively provide different vernier values of phase shift over the cycle length of clock source 136 .
  • the respective, phase-shifted versions, ICLK 1 , ICLK 2 , ICLK 3 , etc. may be distributed about SLIO receiver circuit 140 as appropriate. Again, this is merely an example of how to establish vernier control over sampling time. Other approaches may be taken.
  • the output drive levels of respective line drivers such as 130 should be tuned by the memory controller 150 to achieve and maintain over time, the expected 0.90 v and 1.60 v drive levels on the main SLIO transmission line (e.g., at tap points 134 a and 134 b ).
  • Transmission means 137 can be a second, so-tunable SLIO path. However, here we are focusing on the adjustments made for keeping SLIO transmission line 133 / 135 within calibration.
  • C TAP represents a lumped and parasitic, impedance perturbation due to tap point 134 b disturbing the distributed impedance of the main SLIO transmission line 133 / 135 .
  • This lumped, impedance perturbation can be attributed to a via hole passing through a printed circuit board (PCB) and/or a slot connector on a controller mother board that removably receives a SLDRAM module package or IC package.
  • C PAD represents a lumped and parasitic, impedance perturbation due to an internal IC pad within receiver circuit 140 .
  • Stub resistor 132 helps to isolate the main SLIO transmission line 133 / 135 from load perturbations and signal reflections that may be presented to the line by driver 130 .
  • Stub resistor 138 helps to isolate the main SLIO transmission line 133 / 135 from load perturbations and signal reflections that may be presented to the line by receiver 140 .
  • Line terminating resistor 139 (R T ) is approximately 30 ⁇ .
  • FIG. 1D illustrates a possible mechanical arrangement for an SLDRAM system.
  • a first transmission plane 149 a represents a controller mother board.
  • An orthogonally-disposed second transmission plane, 149 b represents a SLDRAM module or daughter board.
  • Node 134 c is representative of a tap means that allows unit 149 b to be removably inserted for tapping into the SLIO transmission line.
  • An example of such connectors are shown at 182 and 188 .
  • Distance d 0 is a lead-in separation between the package pin of SLIO line driver 130 . 1 and stub resistor 132 . 1 .
  • Distance d 1 is a first PCB trace length from the front end of the SLIO transmission line to tap point 134 c .
  • Distance d 2 is a second line length from the tap point 134 c to stub resistor 138 . 1 on the daughter board 149 b of receiver of unit 140 . 1 .
  • Distance d 3 is a third line length from the tap point 134 c to an R T termination on the mother board 149 a.
  • each SLIO transmission line e.g., 133 / 135 of FIG. 1C
  • lead-in distance d 0 is approximately 50 mm
  • the maximum trace length d 5 on the mother board is approximately 175 mm
  • inter-module spacing d 4 is approximately 15 mm.
  • Wire length d 6 on each daughter board 149 b from connector ( 182 , 188 ) to the SLDRAM module (including through the stub resistor) is about 15 mm.
  • trace widths are approximately 6-mils per track and track pitch is approximately 20-mils.
  • the characteristic impedance of each SLIO trace taken by itself is about 60 ⁇ to 65 ⁇ .
  • the presence of the closely-spaced stub resistors reduces the effective line impedance to about 30 ⁇ to 35 ⁇ , which close to the value of the termination resistor.
  • Ground lines and/or planes may be interleaved between SLIO traces to provide shielding and reduce cross-talk.
  • in-circuit tuning during the initialization phase and during periodic re-calibration operations is expected to compensate for design differences, including different values of line distances d 1 , d 2 , d 3 , etc. (FIG. 1D); different values of package impedances such as Z pack1 , Z pack2 ; different values of trace impedances such as Z trace1 , Z trace2 ; different values of other load disturbances such as C TAP , C PAD ; and changes over time due to voltage drift, temperature drift, mechanical reconfiguration of where different SLDRAM modules are inserted, and so forth.
  • the tunable values include variable driver-output levels as represented in FIG. 1C by elements 130 a , 130 b and variable sampling times as represented in FIG. 1C by elements 146 , 148 a - 148 c.
  • FIG. 1E provides a legend of some symbols used in the drawings.
  • a generally-tunable delay element or phase-defining means is represented by an oval and sine-wave tail as shown at 191 .
  • phase defining operation can operate similarly on both rising and falling edges of a given signal or differently with respect to each edge.
  • phase adjustment is to be understood to include some way of defining when the input signal is sampled so as to determine its state at the sampling time.
  • phase adjustment is to be understood to include some way of defining when the output signal transitions from one state to another (e.g., from low to high).
  • a coarsely and vernierably-fine tunable delay element or phase-defining element is represented by an oval and two sine-wave tails (one dashed) as shown at 192 .
  • a vernierably-fine tunable delay element or phase-defining element is represented by an oval and a dashed sine-wave tail as shown at 193 .
  • coarse delay/phase tunings are provided in quantums of CCLK clock ticks while vernier-fine tunings are provided in fractional quantums of a CCLK clock tick.
  • a CCLK clock ‘tick’ is the time length between a rising and successively falling edge of a CCLK pulse.
  • a generally-tunable, output-level defining element is represented by a circle and a sinewave tail as shown at 195 .
  • a “H” in the symbol indicates that it is for tuning the V OH level of the corresponding driver output while a “L” in the same symbol indicates that it is for adjusting the V OL output level of the tunable output driver.
  • the composite symbol shown at 197 represents an SLIO transmitter with individually-tunable V OH and V OL output levels.
  • the OE (output-enable) terminal of symbol 197 indicates that the symbol further represents a tristatable driver which provides a high-impedance (HI-Z) state at each of its respective outputs when OE is brought low (deactivated).
  • the output of the driver 197 that has an open circle (bubble) represents the inverted output while the solid output line above it carries the non-inverted complementary output signal.
  • the dashed line coming from the middle right of symbol 197 indicates that it is a SLIO transmitter that is driven by the noise-isolated V ccQ and ground power rails.
  • symbol 196 represents a SLIO receiver.
  • the dashed line at one of its inputs indicates that SLIO receiver 196 is responsive to a locally-supplied V ref reference level for determining the state at its other, solid input terminal.
  • a SLIO receiver which receives complementary, inverted and non-inverted SLIO signals may employ differential techniques for removing common mode, noise before comparing against the locally-supplied V ref reference level.
  • Connections to SLIO transmission lines may be bidirectional such a same tap is used for both input and output.
  • the multi-directed symbol at 198 represents a SLIO transceiver that provides bidirectional buffering. It is understood to be a combination of differential driver 197 and either two copies of SLIO receiver 196 (one for each of the differential lines) or a differential SLIO receiver.
  • FIG. 1B For a better understanding of details of the there illustrated SLDRAM System 100 ′. It should be understood with regard to FIG. 1B that various liberties were taken due to space limitations in the drawing. For example, LINKON line 151 c 3 is not shown extending to and coupling to all SLDRAM modules ( 110 ′, 120 ′, etc.). Such coupling is nevertheless understood. Similarly, the couplings of RESET# line 151 c 4 , LISTEN line 151 c 2 and FLAG line 151 c 1 to all SLDRAM modules ( 110 ′, 120 ′, etc.) is not fully shown but nevertheless understood.
  • reference 155 b,c is intended to cover four, single-end terminated, clock lines even though the drawing shows only two such lines at the local of reference 155 b,c . (All four lines are shown at the local of elements 155 j , 155 k .)
  • symbol 118 is intended to correspondingly represent two SLIO transceivers coupling respectively to the four lines of 155 b,c .
  • Symbol 113 a may represent a plurality of tunable delay or phase-establishing elements (e.g., each for a respective rising or falling pulse edge and/or each for a respective input or output signal) although only one symbol is shown at 113 a . There are other examples of such drawing liberties as will become apparent from the below, detailed description.
  • power supply 101 provides a sequence of power levels upon system turn-on.
  • a general LVCMOS voltage rail V cc typically +2.50V
  • V ccQ also typically +2.50V
  • Termination voltage V term is turned on thereafter.
  • Reference voltage V ref may be turned on simultaneously with V term or shortly thereafter.
  • SLIO receivers should ignore their inputs and output a default state at least until their local V ref is activated.
  • V term is preferably turned on after V ccQ so as to avoid latch-up problems.
  • V cc , V ccQ , and V ref power levels are respectively applied to the illustrated command module 150 ′ and the daisy-chained sequence of SLDRAM modules 110 ′, 120 ′, etc. (only two shown) in accordance with the above sequence. It is understood that SLDRAM System 100 ′ can have more than just the illustrated two SLDRAM modules 110 ′, 120 ′ and that general descriptions herein extend generally to such further SLDRAM modules.
  • a free-running oscillator 103 is provided for generating the CCLK (command clock) signal from a reference point when LINKON 151 c 3 is active. If desired, a power saving switch 102 may be included to disable oscillator 103 when LINKON is low.
  • the frequency, waveshape and voltage levels of oscillator 103 may be programmably adjustable or not, as desired.
  • the oscillator output is coupled to the CCLK bus 151 b by way of a differential-output, SLIO driver 151 k .
  • Line-driver 151 k may have tunable output levels or not, as desired. Additionally, it may be tristatable or not, as desired. If it is tristatable, its OE terminal should be driven by the LINKON signal 151 c 3 so that power is conserved when LINKON is false.
  • line-driver 151 k and at least part of oscillator 103 will be included within the sealed package of command module 150 ′ so that the pins of module 150 ′ serve as a reference plane.
  • Driver 151 k is shown outside for clarity and to emphasize the point that data transfer operations of SLDRAM System 100 ′ are mediated by synchronous command packets, where such command packets are synchronized to a reference point that outputs the CCLK signal.
  • oscillator 103 may be replaced by a distant clock source at a distal end of system bus 90 .
  • a DLL or PLL may be used locally to regenerate a local reference version of that distal clock source.
  • Stub resistor 106 a couples the non-inverting, CCLK output of line-driver 151 k to SLIO transmission line 107 a .
  • Stub resistor 106 b couples the inverting CCLK# output of line-driver 151 k to SLIO transmission line 107 b .
  • Node 108 a represents a first tap into line 107 a by a CCLK-receiving part of a first SLDRAM module 110 ′.
  • Node 108 b represents another tap into line 107 b by the CCLK-receiving part ( 119 ) of module 110 ′.
  • Termination resistor (R T ) 109 a is provided at the end of line 107 a and coupled thereafter to V term .
  • termination resistor (R T ) 109 b is provided at the end of line 107 b and coupled thereafter to V term .
  • each SLIO transmission line such as 107 a and 107 b is structured to operate with a switching frequency of about 200 MHz or higher.
  • SLDRAM module 110 ′ includes at least one individually-addressable memory unit (IAMU) 111 .
  • This IAMU 111 comprises a plurality of selectable memory banks. See for example, the selectable Bank0 ( 511 a ) in the illustrated group of banks 511 of FIG. 5A.
  • Each bank includes a plurality of selectable rows. See for example, the selectable top row 511 b of Bank0 of FIG. 5A. (Note that an already-opened (currently selected) row is referred to herein as a “page”.)
  • Each row comprises a plurality of selectable columns. See for example, column 511 c of FIG. 5A.
  • Each column (e.g., 511 c ) comprises a plurality of dynamic memory cells for storing a respective plurality of data bits.
  • each column stores 72 bits; each row contains 128 columns; each bank contains 1024 rows ( 1 K of rows); and the IAMU 511 has 8 banks.
  • This provides a DRAM data storage capacity of 9,437,184 bits per bank or 75,497,472 bits (72 Mb) for all 8 banks.
  • Each given IAMU can have a different number of banks, a different number of rows per bank, and a different number of columns per row. Different embodiments of system 100 ′ can even have different numbers of bits per column.
  • FIG. 5A merely provides an illustrative example.
  • a page read latency value is associated with-IAMU 111 .
  • such a PgRd latency is associated with coarse-and-tunable delay element 112 a .
  • This tunable PgRd delay 112 a indicates at minimum how much time it would take to read an already-opened row (a page) within an already-opened bank after a page-read command packet is issued by command module 150 ′.
  • the delay of tunable PgRd delay element 112 a may be increased by the command module 150 ′ to provide a longer delay as appropriate for scheduling page-read bursts. It is seen in FIG.
  • Another fine-and-coarse tunable delay element of FIG. 1B represents at least the latency delay of IAMU 111 for a given bank read operation where the bank read operation generally requires the selecting or opening of a specific bank, in combination with the selecting or opening of a specific row.
  • the delay of tunable BkRd delay element 112 b may be increased by the command module 150 ′ to provide a longer delay as appropriate for scheduling bank-read bursts.
  • the data flow path is conceptually from IAMU 111 through delay element 112 b , through line-driver 116 to the DQ_A bus 155 a .
  • the tunable delay is usually established by vernier shifting of phases of internal clocks that strobe respective latches of the data pipeline instead of using analog delay elements.
  • any kind of delay technology may be used as appropriate.
  • the SLDRAM system definition does not mandate a specific internal technology for each SLDRAM module.
  • Data read operation over DQ_A bus 155 a continue in system 100 ′ with the receipt by an SLIO transceiver 155 d within the command module 150 ′ of the SLIO transmitted signal.
  • the tunable output elements 114 of line-driver 116 are adjusted by the command module 150 ′ to optimize the transfer of data from line-driver 116 to transceiver 155 d by way of bus 155 a . Specifics of this optimization process is left to design choices made by designers of the overall system 100 ′.
  • a main feature of the present invention is that SLDRAM module 110 ′ may be manufactured with loose tolerances so as to minimize its costs.
  • the in-circuit tunability of delay elements such as 112 a,b and of level-controlling elements such as 114 allow for in-circuit matching of the characteristics of the SLDRAM module 110 ′ to the characteristics of the in-circuit data bus 155 a and to those of the in-circuit command module 150 ′.
  • the SLDRAM system 106 ′ is further initialized by sequentially commanding each in-circuit SLDRAM module 110 ′, 12 ′, etc., to adjust output levels of the SLDRAM module's respective data-line driving circuits ( 116 , 126 ) and data-clock driving circuits ( 118 , 128 ) to H and L levels that are acceptable to the in-circuit command module 150 ′. This may be done using DC levels as will be seen.
  • the SLDRAM system 100 ′ may be further initialized by sequentially commanding each in-circuit SLDRAM module 110 ′, 120 ′ to respectively output a predefined second synchronization sequence (which can be the same as the first synchronization sequence, e.g., ‘111101011001000’) over the data lines (e.g., DQ(17:0) 156 a ) of the system while simultaneously and synchronously outputting from the clock-drivers 118 , 128 of the commanded SLDRAM module, a continuously-running clock train over one or both of the data-clock lines (e.g., DCLK0, DCLK1) of the system.
  • a predefined second synchronization sequence which can be the same as the first synchronization sequence, e.g., ‘111101011001000’
  • the data lines e.g., DQ(17:0) 156 a
  • a continuously-running clock train over one or both of the data-clock lines (e.g., DCLK0, DCLK
  • the in-circuit memory controller to command adjustments (e.g., individual phase changes) to the delay elements such as 112 a,b , 122 a,b of the local data-outputting circuits and/or to delay elements (or phase-setting elements) such as 113 a , 123 a of local data-clock outputting circuits of the sequence-outputting SLDRAM module so that the memory controller will be able to synchronously recognize the predefined second synchronization sequence at the locality 156 d , 155 j , 155 k of the memory controller 150 ′.
  • vernier delay/phase units such as 113 c,d are locally adjusted by their respective SLDRAM modules, 110 ′, 120 ′, etc. to define the sampling times of SLIO receivers 115 , 117 such that units 115 , 117 optimally detect the predefined synchronization sequence on the DQ and CA buses.
  • coarse delays such as those of PgW 112 e and BkW 112 f are set in accordance with commands sent from the command module 150 ′.
  • data flow during write operations conceptually flows from SLIO transceiver 155 d , through DQ bus 155 a , through vernier delay (or detection phase setting) 112 d , through SLIO receiver 115 , through a corresponding one of coarse delays 112 e , 112 f , and then into IAMU 111 for performing either a page write (PgW) or a bank write (BkW) operation.
  • PgW page write
  • BkW bank write
  • Command output operations of the command module 150 ′ are synchronized with the command clock (C_CLK/C_CLK#) of bus 151 b , which CCLK generally originates from module 150 ′.
  • Data write operations are similarly synchronized to the command clock by having the command module 150 ′ drive a corresponding one of the D_CLK — 0/0# or D_CLK — 1/1# from respective SLIO transceivers 155 j and 155 k .
  • data read operations are synchronized with a command-specified one of the D_CLK0 and D_CLK1 signals, where the command-specified data clock originates from the data-sourcing SLDRAM module 110 ′, 120 ′, etc.
  • SLDRAM module sourced signals are received respectively by transceivers 155 j and 155 k of command module 150 ′.
  • SLIO transceiver 155 d uses the received one of the D_CLK0 and D_CLK1 signals to sample its data from DQ_A bus 155 a.
  • each SLDRAM module internal clocks (ICLK's) of each SLDRAM module are formed as delayed counterparts of the CCLK signal.
  • the differential SLIO receiver 119 acquires the CCLK signal from its respective tap points ( 108 a,b ) on lines 107 a,b .
  • the switching signal that is there detected by SLIO receiver 119 is operatively coupled to one or more vernierably tunable delay means (or phase-defining means) such as 113 c,d for producing local ICLK signals.
  • These local ICLK signals may be used during the broadcast synchronization operation to establish the signal latching phases of SLIO receivers such as 115 , 117 .
  • vernierably tunable delay/phase means such as 113 a,b are operatively coupled to SLIO transceiver 118 for producing locally-phased versions of the DCLK — 0A/DCLK — 0A# ( 155 b ) and DCLK — 1A/DCLK — 1A# ( 155 c ) clock signals.
  • SLDRAM module 120 ′ has its own set of separately tunable delay/phase means 123 c,d and its own set of counterpart SLIO receivers 125 (for data read) and 127 (for command receive).
  • the specific values of tuned delay in each respective SLDRAM module 110 ′, 120 ′, etc. can be adjusted in accordance with the impedances of respective local tap points such as 108 a,b and in accordance with respective transmission line lengths present between the C_CLK source 151 k and the respective circuits (e.g., 119 , 115 , 117 , 129 , 125 , 127 ) within the corresponding SLDRAM module 110 ′, 120 ′, etc.
  • differential bus-transceivers 118 , 128 each actually represents two such SLIO differential transceivers, one dedicated to the D_CLK — 0 bus 151 b and the other dedicated to the D_CLK — 1 bus 151 c .
  • the clock phase for each of these two data clock buses 155 b,c are respectively controllable by tunable delay elements such as 113 a , 113 b and 123 a , 123 b.
  • each SLDRAM module and to each data clock bus 155 b,c may be individually compensated for based on the specific in-circuit location of the data originating SLDRAM module relative to the command module 150 ′. This compensation accounts for the round trip path taken starting with the issuance of command packets from the command module 150 , where these packets travel synchronously to an addressed SLDRAM module by way of the CA lines 151 a while accompanying clock signals travel along the CCLK lines 151 b .
  • the pre-tuned SLIO receiver such as 117 or 127 of the addressed IAMU introduces the command at the appropriate time into its SLDRAM module because of the synchronization-time pre-tuning of delay/phasing means 112 c and 122 c , or 113 c,d and 123 c,d.
  • the addressed IAMU responds to its command blindly. Its response latency is compensated for by individually calibrated elements such as 112 a,b ; 112 e,f ; 122 a,b ; etc. Thus, in a read operation, compensation continues by having the data clock signal DCLK0/ 1 originate in the data-sourcing SLDRAM module and having it move through delay or phase-establishing elements such as 113 a , 123 a and local clock transceivers 118 , 128 onto the DCLK bus 155 b,c .
  • each SLDRAM module includes local compensating means for compensating for its unique in-circuit situation.
  • the correspondingly tuned data clock will be generated by transceiver 118 .
  • Corresponding tunable elements 113 a,b may be used to define the local phase of the there originated DCLK signal.
  • Corresponding tunable elements 112 a,b and 114 may be used to define the local phase and H/L levels of the there originated burst of read data.
  • the unique positionings and other variances of each SLDRAM module 110 ′, 120 ′, etc. and of the command module 150 ′ may be compensated for individually by appropriate tuning of the tunable elements in each SLDRAM module 110 ′, 120 ′, etc.
  • the tuning ranges that are available for each respective set of tuning elements may be set forth in a corresponding, local configuration memory (LCM) 110 a , 120 a , etc. of the respective module 110 ′, 120 ′, etc.
  • the organization of memory banks, rows and columns should also be set forth in the corresponding LCM 110 a , 120 a , etc. for each IAMU ill, 121 , etc.
  • Local configuration memories such as 110 a , 120 a , etc. may come in mixed forms such as ROM (read only memory) or PROM (once-programmable memory) or EEPROM (electrically-erasable and re-writable nonvolatile memory) and registers or SRAM. These local configuration memories 110 a , etc. are used for storing fixed data and variable calibration settings of their respective SLDRAM modules.
  • the command module 150 ′ should address each SLDRAM module 110 ′, 120 ′, etc. individually and tune its respective V OH and V OL output levels for line drivers such as that of 116 and 118 in module 110 ′.
  • the command module 150 ′ may do so by commanding the addressed SLDRAM module to output a selected one of a DC (direct current) ‘0’ level and ‘1’ level onto a corresponding one of the DQ_A bus lines 155 a and/or the DCLK — 0A/DCLK — 0A# ( 155 b ) lines and/or the DCLK — 1A/DCLK — 1A# ( 155 c ) lines.
  • the command module 150 ′ may command the addressed SLDRAM module to increment or decrement the tunable V OH and V OL levels until a satisfactory state is reached.
  • the command module 150 ′ uses its local V ref to define what received V OH and V OL levels are satisfactory.
  • the command module 150 ′ should instruct each SLDRAM module in turn to individually output the predefined synchronization sequence (e.g., ‘111101011001000’) onto each line of the DQ_A bus 155 a .
  • this output comes from line-driver 116 when 110 ′ is the addressed module.
  • the command module 150 ′ should instruct the addressed module to begin a free-running output of its local clock onto both the DCLK — 0A/DCLK — 0A# ( 155 b ) bus and the DCLK — 1A/DCLK — 1A# ( 155 c ) bus.
  • the predefined synchronization sequence e.g., ‘111101011001000’
  • these outputs comes from transceivers 118 (only one of a pair shown) when 110 ′ is the addressed module. Then in response to the synchronized samplings detected at its end of each of these buses 155 a , 155 b , 155 c ; the command module 150 ′ may command the addressed SLDRAM module to increment or decrement the tunable vernier setting of delay element such as 112 a,b 113 a,b until a satisfactory state is reached.
  • That satisfactory state is of course, acceptable discrimination of the predefined synchronization sequence (e.g., ‘111101011001000’) on each line of the DQ_A bus 155 a in synchronism with the received clock signals of each of DCLK buses 155 b and 155 c.
  • the predefined synchronization sequence e.g., ‘111101011001000’
  • the command module 150 ′ should instruct each SLDRAM module in turn to individually perform one or more Bank Read operations and one or more Page Read operations while all other SLDRAM modules remain quiet. These read commands should use both of the DCLK buses 155 b , 155 c , each in turn.
  • a DCLK preamble waveshape (see FIGS. 2 A- 2 B) should be seen on the respective DCLK bus 155 b , 155 c just before the responsive burst of read data comes in.
  • the command module 150 ′ should measure the time between its command issuance and its receipt of the DCLK preamble waveshape to determine what the current latency of the addressed SLDRAM module is.
  • each SLDRAM module should have reset itself to have its own minimum page and bank latencies.
  • the read latencies measured shortly after RESET should be the respective minimum page read and bank read latencies of each respectively addressed SLDRAM module.
  • Information collected about the current read latencies of all the SLDRAM modules may next be used to define a smallest-allowed value for each of the page read and bank read latencies for the SLDRAM System 100 ′ as a whole.
  • these smallest-allowed values will be the page/bank read minimums of the slowest-to-read-from SLDRAM module ( 110 ′, 120 ′, etc.) in the system 100 ′.
  • the command module 150 ′ should measure the write latencies of each SLDRAM module in turn. This may be done by having the command module 150 ′ output an extended burst of write data onto the DQ_A bus 155 a immediately in conjunction with an ungapped series of write commands. The ungapped series of write commands should address consecutive locations within the SLDRAM module that is being tested. The corresponding extended burst of write data should first contain a slate-cleaning code such as all zeroes. Then the operation is repeated over an upper subset of the same set of addresses with the extended burst of write data now containing a predefined unique sequence of codes such as the values, 0, 1, 2, . . . , 31.
  • the addressed SLDRAM module will have a greater write latency however. As such, one or more of the early members of the unique sequence of codes will not be written successfully into the addressed SLDRAM module. The corresponding memory locations will still have the clean slate code. The first memory location that does get written successfully into will contain a respective member of the unique sequence of codes (e.g., 5, 6, 7, 8, etc.).
  • the command module 150 ′ (or an upstream, more intelligent master) can determine what the current write latency is of the SLDRAM module that is being tested. Again, these write latency tests should be conducted for both page write and bank write operations using respective ones of the DCLK buses, 155 b and 155 c , so as to obtain a fair measure of overall system performance. (During active RESET#, each SLDRAM module should have reset itself to have its own minimum page and bank latencies.
  • the write latencies measured shortly after RESET should be the respective minimum page write and bank write latencies of each respectively addressed SLDRAM module.
  • Information collected about the current write latencies of all the SLDRAM modules may next be used to define a smallest-allowed value for each of the page write and bank write latencies for the SLDRAM System 100 ′ as a whole.
  • these smallest-allowed values will be the page/bank write minimums of the slowest-to-write-to SLDRAM module ( 110 ′, 120 ′, etc.) in the system 100 ′.
  • the command module 150 ′ may address each SLDRAM module 110 ′, 120 ′, etc. individually to collect from the addressed module, certain characteristics information stored within the respective LCM ( 110 a , 120 a , etc.) of the SLDRAM module.
  • Either the command module 150 ′ or an upstream more-intelligent controller may store the collected information from the LCM's in its own configuration-tracking memory.
  • FIG. 1B such a configuration-tracking memory 150 b is shown situated within the package of module 150 ′. If desired, the configuration-tracking memory 150 b may be located outside the package of module 150 in another, more intelligent and upstream means that couples to module 150 ′ by way of system bus 90 . See FIG. 1A.
  • This configuration-tracking memory 150 b may be used after initial calibration or after periodic re-calibration operations to keep track of the currently-tuned states of each of the SLDRAM modules 110 ′, 1201 , etc. and of their respective memory organizations.
  • This information may be used to appropriately schedule data read and data write operations over a shared data bus (e.g., 155 a ) such that contention is avoided between SLDRAM modules 110 ′, 120 ′, etc.
  • the tracking information may be further used to optimize read and write scheduling so that wasteful time gaps between data bursts may be avoided or at least minimized. Such minimization of wasteful time gaps helps to obtain maximal usage of the bandwidth provided by the shared data bus 155 a.
  • dashed box 155 x represents the resources of a first DataLink (A) corresponding to 155 of FIG. 1A while dashed box 156 x represents the resources of an optional second DataLink (B) corresponding to 156 of FIG. 1A.
  • the resources 156 x of the optional secondary DataLink are understood to include dual differential transceivers such as 155 j , 155 k and a set of eighteen data line transceivers such as represented by 156 d . All the calibration and measurement operations that have been described above for DataLink_A 155 may be further employed for the optional DataLink_B 156 if it is present.
  • FIG. 2A provides a simple, first example of how latency information for each SLDRAM module may be advantageously used to closely pack respective data bursts on a shared DataLink (e.g., 155 ) while avoiding contention.
  • a first command packet 210 consisting of four 10-bit wide command words is posted onto the CommandLink 151 beginning at time to. Successive command words are synchronized with respective ‘ticks’ of the C_CLK. A tick corresponds to the duration between a rising and subsequently falling edge of the C_CLK.
  • a ‘1’ in the 5 -bit FLAG sequence ‘01000’ identifies the beginning of the command packet 210 .
  • command packet 210 is a data read command addressed to a given first SLDRAM module (e.g., 110 ′).
  • the response latency of the addressed first module is represented by time passage 211 .
  • the addressed first SLDRAM module outputs a predefined preamble waveshape 212 onto a command-specified one of the D_CLK buses, 155 b or 155 c (assume it is D_CLK — 0 here).
  • the predefined preamble waveshape 212 should have a duration that is not longer than that of two minimum data bursts (so that minimum bursts can be interleaved using the DCKL0 and DCLK1 buses). It should be distinguishable from an alternating train of successive 1's and 0's (10101010 . . . ) as well as from maintenance of a power-conserving HI-Z state. It should also include at least one L-to-H transition and one H-to-L transition for removing intersymbol interference (ISI).
  • ISI intersymbol interference
  • the preamble waveshape 212 should have a continuous period of at least two clock ticks where its level is all 1's or all 0's during which the receiving device can safely enable its DCLK clock input without seeing any transitional glitches on the DCLK lines.
  • the predefined preamble waveshape 212 has a duration of 5 DCLK ticks (5 data word time slots) and consists of the 5 bit L/H sequence: 00010.
  • a first data word output by the addressed SLDRAM module appears on the DQ_A bus 155 a in alignment with an end 213 of the predefined preamble waveshape 212 .
  • the data originating module e.g., 110 ′
  • This windowed running of the data clock is used for synchronizing remaining words of its output data burst 230 . Illustration here of the DCLK edges centering with, the middle of each data word is purely conceptual and not intended to imply that such is necessarily the case.
  • phase relationship between a given data clock signal and its data words depends on where physically along their respective transmission lines each one is observed. During data read operations, the phase of the DCLK at its point of origin will generally not be the same as the phase of the CCLK at its point of origin. This is what the illustration here of the DCLK edges centering with the middle of each data word is intended to convey.
  • the embodiments disclosed herein rely on source synchronous clocking. This means that a known phase relationship exists between clock edges and their corresponding data (or clock) words at the source point on the bus where the respective clock and data (or command) signals are injected into the bus.
  • the clock edges and the corresponding data (or command) words should track one another very closely as they move along the bus for receipt by a distant receiving device.
  • the receiving device is expected to have internal, fine vernier phase adjustment means for compensating for fine skews of phase that may occur as respective clock and data (or command) signals move into the receiving device.
  • data burst 230 consists of a minimum of four consecutive data words, each 18 bits wide.
  • the corresponding command packet 210 may define the burst length as being the minimum or longer.
  • a responsive data burst 230 is produced by the addressed SLDRAM module and this data burst is defined as consisting of M consecutive words, where M is an integer equal to or greater than 4, and more preferably where M is a whole number multiple of 4.
  • Command packet 210 finishes using the CommandLink 151 at time point t 4 .
  • a next successive command packet 220 is placed on the CommandLink 151 .
  • Interpacket gaps such as 205 are optional and may be used to avoid contention on the shared DQ bus (e.g., 155 a ) between responsive data bursts.
  • the second command packet 220 is a read command that is addressed to a second SLDRAM module (e.g., 120 ′) different from that targeted by first command packet 210 .
  • a second response latency 221 is associated with the reaction of the second SLDRAM module to second command packet 220 .
  • the optional interpacket gap 205 should be adjusted such that the beginning 223 of the next data burst 240 (the one output by the second SLDRAM module) comes as close as possible to the end ( 214 ) of the first data burst 230 (the one associated with the first SLDRAM module) while avoiding contention on the shared DQ bus 155 a .
  • Preamble waveshape 222 may begin to be output by the originator ( 120 ′) of the second data burst 240 onto the alternate DCLK bus ( 155 c ) at a time point t 11 even while the originator ( 110 ′) of the first data burst 230 is still using the first DCLK bus ( 155 b ) and the DQ_A bus 155 a.
  • dual data clock buses 155 b,c allows for simultaneous compensation for the different positionings or other attributes of spaced-apart SLDRAM modules (e.g., 110 ′, 120 ′) and that such use also permits close coincidence between the end 214 of a first data burst 230 output by one such module and the beginning 223 of a second data burst 240 output by another such module.
  • burst 230 consists of just the 4 data words, DATA_WD#0 through DATA_WD#3 rather than the more generic case represented by DATA_WD#M.
  • Second data burst 240 may comprise more than its illustrated 4 data words.
  • FIG. 2B provides a vertically aligned timing diagram that shows a series of Page Read and Page Write commands as may be issued by the memory controller 150 to respective ones of the SLDRAM modules 110 - 180 .
  • FIG. 2B shows the relationship of these commands and their responsive data bursts to the CCLK, FLAG, DCLK0 and DCLK1 signals.
  • responsive data burst lengths are shown as 4N (where N is length of a CCLK tick) although 4N, 8N and/or longer data bursts can be dynamically intermixed if desired.
  • the read access time to a pre-opened row in a pre-opened bank also known as Page Read Latency (PgRL#0)
  • PgRL#0 Page Read Latency
  • FIG. 2B The read access time to a pre-opened row in a pre-opened bank, also known as Page Read Latency (PgRL#0)
  • PgRL#0 Page Read Latency
  • FIG. 2B The read access time to a pre-opened row in a pre-opened bank, also known as Page Read Latency (PgRL#0)
  • PgRL#0 Page Read Latency
  • Each SLDRAM module can have its own, different Page Read Latency value as well as different Page Write and Bank Read/Write latency values.
  • the illustrated PgRL#0 applies to a respective SLDRAM module #0 but not necessarily to other modules (e.g., not to an SLDRAM #2 which in FIG. 2B is shown to have a shorter Page Write Latency value).
  • the first two illustrated command packets 251 , 252 are Page Reads to different banks in a same SLDRAM #0.
  • the corresponding read data bursts 261 , 262 both appear on the same data bus 155 a along with a companion DCLK0 signal on bus 155 b .
  • the preamble waveshape consists here of the 5-bit times, 3-level sequence: ‘00010’ wherefor ‘0’ represents a L voltage level, ‘1’ represents a H voltage level, and ‘-’ represents a M voltage level, in other words the midlevel on the SLIO line between the H and L levels.
  • the DCLK0 preamble waveshape 271 is immediately preceded by M train 270 (‘- -’) and immediately followed by a subsequent, 8 ticks-long ‘101010 . . . ’ train 272 .
  • the combination of preamble waveshape 271 and the subsequent ‘101010 . . . ’ train 272 provides the memory controller 150 with synchronizing edges for preparing to, and for strobing-in the read data bursts 261 , 262 .
  • the first DCLK0 preamble 271 can provide pre-data synchronization for both of the first two Page Read bursts 261 , 262 . It is not necessary to insert a gap between the two 4N data bursts 261 , 262 . The data-outputting SLDRAM module itself can ensure that DCLK0 is driven continuously without any substantial glitch.
  • the responsive data burst 263 for the following Page Read command 253 (which command 253 is addressed to a different SLDRAM #1), should be separated from the preceding burst 262 by a data gap (Gap D 1 ) of at least 2N duration to allow settling of the DataLink bus and to compensate for timing uncertainties between the data-clock generators of SLDRAM #0 and SLDRAM #1.
  • a 2N data gap should be included each time control of the shared DataLink 155 passes from one module to another. This includes changeover of bus mastery, as such occurs in successive reads from different SLDRAM modules or as such occurs in read to write and write to read transitions where the command module 150 is master during the write operation and a pre-commanded SLDRAM module is master during the read operation.
  • the memory controller 150 is responsible for assuring that the 2N gap (e.g., GapD 1 ) will be inserted between data bursts as appropriate.
  • the command module 150 can do so by inserting a corresponding 2N gap (e.g., GapC 1 ) or longer gaps between consecutive read or write command packets. It may alternatively create a DataLink gap by inserting on the CommandLink 151 , command packets for operations other than those that use the affected DataLink 155 .
  • the illustrated Read1 command 253 instructs the addressed SLDRAM #1 to use the DCLK1 bus 155 c instead of the DCLK0 bus 155 b .
  • the responsive preamble 273 appears on the DCLK1 bus 155 c at the same time the Rd0b data bursts 262 is still using the DCLK0 bus 155 b .
  • This parallel use of the DCLK0 and DCLK1 buses 155 b,c allows SLDRAM #1 to begin mastering and conditioning its respectively-assigned DCLK lines well in advance of the actual data burst.
  • Shaded parallelogram 260 is provided as a visual aid for visually distinguishing between those data transmissions that use the DCLK0 bus 255 b for synchronization (this being indicated by having the respective Rd or Wr blocks shown to be isometrically positioned on top of the parallelogram 260 ) and those that use the DCLK1 bus 155 c (this being indicated by having the respective Rd or Wr blocks shown to be isometrically positioned off and in front of the parallelogram 260 ).
  • the next command 254 (Wr2) in the example is a write command using DCLK0 to strobe write data from command module 150 into SLDRAM #2.
  • the Page Write Latency (PgWL#2) of this SLDRAM #2 is taken to be pre-programmed to a value equal to PgRL#0 ⁇ 2N (two ticks less than the Page Read Latency of SLDRAM #0).
  • the controller 150 delays the issuance of the Write2 command 254 by including a 4N gap (GapC 2 ) after the Read1 command 253 .
  • the programming of write latency values in this manner may be intentional so as to create one or more open 4N command slots on the CommandLink 151 , which 4-word slots (e.g., GapC 2 , GapC 3 ) could then be used for issuing 4-word commands of the non-data transfer kind such as row open, row close, register write or refresh. These non-transfer operations can be executed without consuming time slots on the DataLink 155 .
  • 4-word slots e.g., GapC 2 , GapC 3
  • the next command 255 in the example of FIG. 2B is a read command (Rd3) addressed to SLDRAM #3.
  • An inter-packet gap is not needed between the Rd3 command 255 and the preceding Wr2 command 254 to create a 2N mastery-changeover gap (GapD 3 ) on the DQ_A bus 155 a because the latency difference between the programmably-established values, PgWL#2 and PgRL#3 provides such a gap (GapD 3 ).
  • the command module 150 is master over the DataLink 155 when the respective data transfer operations 266 , 267 and 268 of the last three, illustrated write commands, 256 , 257 and 258 are executed. As such, 2N mastery-changeover gaps are not provided between the data bursts 266 , 267 and 268 even though these write to different SLDRAM modules (#4, #5 and #6).
  • DCLKs should be generated by the command module 150 alternatingly on the DCLK0 and DCLK1 lines, 155 b and 155 c , so that each of the addressed SLDRAM modules (#4, #5 and #6) can lock onto the start of it's respective write data burst (as announced by respective preambles, 276 , 277 and 278 ). Since all write data originates from the memory controller there should be no glitches of timing as between consecutive data bursts 266 (Wr4), 267 (Wr5) and 268 (Wr6) on the DQ_A bus 155 a and the respective data clock signals on the DCLK0 and DCLK1 lines, 155 b and 155 c.
  • each line of the databus portion (e.g., 155 a ) should be left to drift to a midpoint level (M) for nominally two ticks (2N) of the CCLK 151 b .
  • M midpoint level
  • 2N nominally two ticks
  • Such a mastery-changeover gap may produce indeterminate voltage levels between L and H, and possibly multiple transitions at the input terminals of receivers coupled to the DQ bus ( 155 a ). This transient state is acceptable for the data lines themselves, but not for the data clocks which will be used to strobe in new data once it becomes valid.
  • a predefined preamble waveshape such as 271 of FIG. 2B is output onto each respective data clock bus ( 155 b,c ) before the occurrence on the data clock bus of the first H/L transition which is associated with a corresponding first bit of read or write data (R/W data).
  • the module that is commanded to receive the R/W data can enable it's command-identified one of two DCLK input buffers anytime during the period of the first three ticks (the initial ‘000’ period) of the preamble waveshape ( 271 ).
  • At least one pair of dummy transitions ‘10’ is included in the preamble to allow the data receiver to remove pulse width dependent skew from its internal version of the DCLK signal. Accordingly, the receiving device ignores the first dummy rising and dummy falling edge of the locally-received DCLK signal and begins latching valid R/W data on the second rising edge (e.g., the beginning of period 272 of FIG. 2B).
  • Two data clock buses are provided so that gapless 4N write bursts (e.g., 266 - 268 ) to different SLDRAM modules can be accommodated and so that minimally-gapped 4N read bursts (e.g., 262 , 263 ) from different SLDRAM modules can be accommodated.
  • the controller 150 indicates in each command packet which of the DCLK buses 155 b,c is to be used for synchronizing each respective R/W data transfer.
  • the controller 150 transmits CCLK edges that are coincident with edges of CA(9:0) command words and edges of the FLAG line ( 151 c 1 ). If the DCLK signal originates from the controller 150 , the DCLK edges originating from the controller are also coincident with the CCLK edges at the controller end of CCLK transmission lines 151 b as are the edges of the DQ(17:0) data.
  • the SLDRAM modules should be able to add fraction-of-a-tick delay to incoming CCLK and DCLK signals so that such modules can produce vernier-adjustable, internal clocks for sampling commands and write data at optimum time points.
  • the SLDRAM modules ( 110 - 180 ) are generally programmed by the controller 150 to add the appropriate amount of fractional delay to DCLKs generated by the SLDRAM modules ( 110 - 180 ). These programmably-defined delays allow the controller 150 to accurately strobe in read data using the received DCLK signal without the need for any further internal delay adjustments within the controller 150 .
  • the controller 150 is expected to program each SLDRAM module with at least 4 respective timing parameters; Page Read Latency (PgR), Page Write Latency(PgW), Bank Read Latency (BkR), and Bank Write Latency (BkW). These latency values define the number of clock ticks between the end of a received command packet and the start of the associated data burst. For consistent operation of the memory subsystem, it is recommended that each SLDRAM module 110 - 180 should be programmed so as to appear to provide same values for the 4 different latencies as viewed from the vantage of the controller pins.
  • PgR Page Read Latency
  • PgW Page Write Latency
  • BkR Bank Read Latency
  • BkW Bank Write Latency
  • each SLDRAM module Due to different round-trip bus delays from command-issuance by the controller 150 through recognition and response by the differently situated SLDRAM modules, due to the presence or absence of buffers in the system, and due to varying performances of individual SLDRAM devices, the actual values programmed into each SLDRAM module may differ considerably. On power up reset, latency registers within each SLDRAM module should automatically reset to their respective minimum values. The controller can measure the response times of each SLDRAM module after reset and then make appropriate adjustments to obtain consistent operation across the system 100 .
  • read latency is made programmably adjustable in both coarse increments of unit bit intervals (unit ticks) and fine increments of fractional bit intervals (equal fractions of a tick).
  • the controller should program the coarse and fine read latency of each SLDRAM so that read data bursts from different SLDRAM modules, at different electrical distances from the controller, all arrive back at the controller with equal delay as measured from issuance of the command packet at the controller pins.
  • the controller 150 may, of course alternatively choose other latency schedules as allowed by the characteristics of the in-circuit SLDRAM modules. The uniform schedule one is merely the easiest to administer.
  • write latency (PgW, BkW) of each SLDRAM module is made programmably adjustable by the controller 150 only in terms of coarse increments.
  • the write latency values programmed into each SLDRAM module by the controller 150 determine when the SLDRAM module will begin looking for transitions on the command-specified DCLK lines in order to strobe in write data.
  • Each SLDRAM command packet of one embodiment is organized as four 10-bit wide words that are transmitted over the CA(9:0) bus and are further aligned with a predefined FLAG sequence (01000) that indicates the presence of a command.
  • the specific command packet depicted in Table 2.0 is designed for individually addressing up to 256 IAMU's (individually-addressable, memory units) where each such IAMU can have as many as 8 banks of DRAM storage, with each bank having as many as 1024 individually addressable rows of DRAM storage, and each row having as many as 128 individually addressable columns of DRAM storage.
  • a column of DRAM storage comprises a plurality of DRAM cells whose respective bits of data are accessed as a collective burst.
  • each column has 64 DRAM cells
  • this combination of banks, rows and columns represents a maximum DRAM storage capacity of 64 Megabits (64 Mb).
  • 64 Mb 64 Megabits
  • the memory controller 150 should poll all the SLDRAM modules of the system 100 to determine how many banks, rows and columns each IAMU of each SLDRAM module has. The controller can then include the appropriate number of address bits in the command packet for each individual memory unit.
  • the first CA(9:0) word of the command packet of Table 2.0 contains the ID bits for addressing individually-addressable, memory units (IAMU's). Each IAMU is expected to ignore any command whose ID field (ID(8:0)) does not designate the local ID of the IAMU either individually, globally or on a multi-cast basis. Local ID's are assigned by the controller 150 on power-up using the SI/SO signals. This allows the controller to uniquely address every IAMU in the system without the need for separate chip enable signals or glue logic.
  • the packet ID field comprises 9 bits. These bits, ID(8:0) are used for commanding up to 256 IAMU's over a given CommandLink 151 .
  • Half of the 512 location address space of ID(8:0) is reserved for broadcasting and multi-casting. Multi-casting may be used to simultaneously command groups of 2, 4, 8, 16 etc. IAMU's with a single command packet. This is useful for initialization, refresh, and multiple DataLink configurations.
  • Table 2.1 depicts one allocation of the ID(8:0) address space for individual, multi-cast and broadcast commanding. Other allocations are of course possible.
  • the multicasting pattern of Table 2.1 may be thought of as a pyramid whose base layer contains the 128 address space pairs, 0:1, 2:3, 4:5, . . . 254:255.
  • the next higher layer of the pyramid contains the 64 address space quartets, 0:3, 4:7, 8:11, . . . 252:255.
  • the next layer of the pyramid contains the 32 address space quartets, 0:7, 8:15, . . . 248:255. And so on.
  • the command field of the packet shown in Table 2.0 includes the 6 bits, CMD(5:0).
  • Table 2.2 illustrates one possible allocation of the 64 locations in the CMD(5:0) address space.
  • CMD(5:3) define eight major command space areas as follows: (0) Page-accesses that produce a responsive burst of 4 data words; (1) Page-accesses that produce a responsive burst of 8 data words; (2) Bank-accesses that produce a responsive burst of 4 data words; (3) Bank-accesses that produce a responsive burst of 8 data words; (4) Row-operations/ Register-operations/ Event-commands; (5) Synchronization commands; (6) Reserved for future expansion; and (7) Reserved for future expansion.
  • Page-based access implies that a bank has been opened ahead of time and a row has been opened within that bank.
  • CMD 5 1
  • other operations such row open/close, register accesses, events, or special synchronization commands may be selected.
  • Bits SID(4:0) define a device sub-ID value.
  • TABLE 2.3a REGISTER READ PACKET FLAG CA9 CA8 CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0 0 x x x x x x x x x x 1 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 CMD5 0 CMD4 CMD3 CMD2 CMD1 CMD0 REG6 REG5 REG4 REG3 REG2 0 REG1 REG0
  • Event-commands may include commands such as for Auto-Refresh, Self-Refresh, Reset, and Close All Rows.
  • Calibration commands such as Read-Data Fine-Vernier Adjustment, Read-Data DCLK-Offset Adjustment, and V OH /V OL Adjustments are also implemented as event commands. These event commands along with the special synchronization commands can provide the very tight signal timing and voltage levels that may be required in a given SLDRAM memory system. These tunable settings may be initialized and maintained over time by the memory controller 150 .
  • Table 2.4a shows one possible configuration for event-request packets. Bits E(6:0) define specific events. Bits ADJ(4:0) provide adjustment setting codes. Bits DO(4:0) provide offset setting codes such as may be used in DQ output tuning. Table 2.4b shows one possible allocation of the E(6:0) address space.
  • Device-internal registers and other memory may be used for storing device local ID codes, calibration values and other information.
  • Table 2.5 shows one possible configuration for allocation of registered information over the address space of REG(0:6). This space is divided into a write-only side to which ID and calibration data can be written, and into a read-only side which stores device characteristics information such number of banks, delay values, and so forth.
  • the ‘Configuration’ data includes an indication of how many DQ lines are present in the device (e.g., 16, 18, 32, 36, 64, 72, etc.). This lets the controller 150 know if multiple datalinks may be available for use.
  • REG2 REG1 REG0 CONTROL
  • STATUS 0 0 0 0 ID Configuration (No. Banks, Rows, Columns, DQ_lines) 0 0 0 1 SUB-ID Actual Delays 0 0 1 0 Frequency (current) Minimum Delays 0 0 1 1 Test Maximum Delays 0 1 0 0 Page Read Delay (PgR) Test 0 1 0 1 Page Write Delay (PgW) tRAS/tRP (RowOpenTime/PreCharge) 0 1 1 0 Bank Read Delay (BkR) tRC1/tRC2 (RowOpenTime/AutoRefresh Time) 0 1 1 1 1 Bank Write Delay (BkW) tRRD/tXSR (BankOpenTime/Exit Self Refresh Time) 1 0 0 0 0 Reserved tWR/tWRD (Write to Read Time Delay) 1 0 0 0 0 0 0 Reserved tWR/tWRD (Write to
  • the latter module will generally alter the characteristics information (e.g., min/max delay times) it provides on the read-only side of its LCM. Analog behavior of certain parts of the SLDRAM module may vary according to what CCLK frequency is being currently used by the controller 150 .
  • the controller 150 when the SLDRAM memory subsystem 100 is powered up, the controller 150 must take the following steps, STEP1-STEP8 before normal memory operations can begin.
  • V cc , V ref and V ccQ are applied first followed later by application of V term (the 1.25v CommandLink and DataLink termination supply), this being done to avoid latchup.
  • STEP3 Synchronization: The controller begins transmitting CCLK and drives both DCLKs with continuous transitions, and sets its SO to ‘1’. On DQ[17:0], CA[9:0], and FLAG the controller transmits inverted and non-inverted versions of the 15 bit repeating pseudo-random SYNC sequence “111101011001000”.
  • System BIOS may then output a message indicating that there is a break in the SI/SO chain and where the break is located. (The controller can keep track of how many modules responded before the problem was encountered.) The user may be instructed to replace the Nth module in the series of present modules.
  • STEP6 Read Synchronization: The controller issues a ‘Read Sync’ command to each SLDRAM module. In response, the SLDRAM module then transmits continuous transitions on both DCLKs and the 15 bit pseudo-random synchronization pattern on DQ(17:0). The controller first adjusts the position of the data burst bits using the ‘Increment Fine Vernier Event’ command and then adjusts the delay of DQ edges relative to DCLK edges, using the ‘Increment/Decrement DCLK Offset Event’ command, to sample the synchronization pattern at the optimum point.
  • STEP8 Writing Latency Programming: The controller issues to each SLDRAM module a write command with zero write latency and an extended 32N extended burst of data. Words in the write burst are incremented 0, 1, 2, 3, . . . 31. After the write command the controller reads the locations addressed by the write command. The first word contains an indication of the minimum write latency. With this information the controller can set the write latencies of all SLDRAM modules to a common value by writing to their respective Write Delay Registers.
  • calibrated timing and voltage level parameters may drift due to changes in temperature and/or supply voltages and/or passage of time.
  • SLDRAM modules should be recalibrated periodically to ensure robust operation. Recalibration operations can be hidden during AutoRefresh and SelfRefresh periods so as not to affect system performance.
  • the SLDRAM protocol allows the addressing of hierarchical memory subsystems having more devices than a single electrical interface can support.
  • Buffered modules permit deeper and/or wider memory configurations than the basic unbuffered configuration having only 8 SLDRAM chips. Buffered and unbuffered modules can be mixed in a system. The initialization and synchronization sequence will accommodate the additional delays added by the buffers.
  • FIG. 3 shows an example of an SLDRAM system 300 that includes buffers.
  • like reference numbers in the ‘ 300 ’ century series are used for elements having like counterparts of the ‘ 100 ’ century series in FIG. 1A. As such, details do not have to be repeated.
  • Each of devices 310 , 320 , 330 , 340 , 350 and 360 is a packaged integrated circuit (IC) which includes command-queriable and command-tunable memory resources in accordance with the descriptions given above.
  • IC packaged integrated circuit
  • LOAD Cl first electrical load
  • SLDRAM device 310 connects directly to DataLink_A 355 to thereby define a first electrical load on that DataLink (LOAD Al).
  • SLDRAM device 320 similarly creates a second load (LOAD C 2 ) on the CommandLink 351 and a first load (LOAD B 1 ) on DataLink_B 356 .
  • a command-side first buffer 301 is interposed between SLDRAM devices 330 - 360 and the CommandLink 351 . Accordingly, all four devices 300 - 360 represent only a single electrical load (LOAD C 3 ) to the CommandLink.
  • the data-side of device 330 connects directly to DataLink_A and thereby defines a second electrical load (LOAD A 2 ) on that link 355 .
  • the data-side of device 360 connects directly to DataLink_A and thereby provides a third electrical load (LOAD A 3 ) on that link 355 .
  • a data-side, second buffer 302 is interposed between the data-sides of devices 340 , 350 and DataLink_B ( 356 ). As such, both devices 340 - 350 represent only a single electrical load (LOAD B 2 ) on DataLink 356 .
  • buffers and direct connections within FIG. 3 is merely for purposes of illustration.
  • Buffered and non-buffered modules may be mixed and matched in many further ways.
  • command-side buffering and data-side buffering may be hierarchical.
  • multicasting may be used to simultaneously command the transfer of data along the plural DataLinks.
  • Devices 310 , 320 would be further assigned different sub-ID's.
  • Tuning commands can be directed individually to devices according to sub-ID values. Thus each device can be individually tuned even though it may not have a unique ID assigned to it.
  • Commands may be issued over a shared and optionally buffered ( 301 ) CommandLink 351 .
  • CommandLink overhead including pins on the controller, motherboard tracks and termination networks, termination power dissipation, and module connectors, is therefore not duplicated for each DataLink and savings are seen as system bandwidth is scaled upwardly by adding more DataLinks.
  • the configuration of devices 340 - 350 allows a controller with a single SLDRAM interface to address a larger memory depth than 8 individual unbuffered SLDRAM devices (e.g., 310 , 320 ) would allow.
  • the CommandLink buffer 301 and the DataLink buffer 302 may be combined into a single chip with memory units 340 - 350 .
  • a single chip may contain just command buffer 301 and direct-to-DataLink units such as 330 and 360 .
  • FIG. 4 illustrates a possible pinout arrangement 400 for an SLDRAM module or integrated circuit in accordance with the invention.
  • Each SLDRAM integrated circuit or module may be a Vertically Standing Module Package (VSMP) which has interleaved pins on opposed sides thereof as shown.
  • the pins may be used for removable insertion of the VSMP into a like-configured connector or for soldering into like-configured printed circuit board (PCB). Odd-numbered traces may appear on the top surface of the printed circuit board while even-numbered traces may run opposingly on the bottom surface of the PCB or vice versa. Other configurations are, of course, possible.
  • VSMP Vertically Standing Module Package
  • signals that generally transition the least are provided at opposed outer portions (peripheral ends) of the odd/even serial pin distributions: 1, 3, 5, . . . , 63 and 2, 4, 6, . . . ,64.
  • Relatively quiet (e.g., lower frequency) I/O pins such as the LVCMOS lines (pins 59, 60) of a serial chain zone 460 (SI/SO) are also provided near the bottom, outer extreme.
  • relatively-quiet command control signals (RESET#, LINKON, LISTEN) are carried by pins provided in a quiet command control zone 408 near an upper outer extreme of the pins series. Because the outer pins such as 1, 2 and 63, 64 are generally associated with the longest, diagonally extending traces in the lead frame of each IC, and these have relatively poor electrical characteristics, the lowest frequency signals (e.g., V DD , V ss , SI, SO, TEST, etc.) are positioned near these outer extremes.
  • the signals with the highest frequency content are carried by pins provided generally in the middle of the serial pinout series. These pins (24-29) are generally designated in FIG. 4 as those of a D/C Clocks Pins zone 427 .
  • the internal lead frames have their shortest traces near the middle portion of the package side. These shorter lead frame traces typically exhibit the lowest capacitances, smallest inductances of the package and thereby provide superior electrical performance for transmitting signals with high-frequency content. Positioning of the command and data clock pins in such a zone 427 takes advantage of this general characteristic.
  • command word carrying pins 30-42 including the pin 42 that carries the FLAG signal.
  • This pins grouping is generally denoted in FIG. 4 as a Vibrant CommandLink Pins zone 430 .
  • a relatively quiet LVCMOS power zone 433 separates the CA(0:2) pins from the more significant CA(3:9) pins.
  • An advantage of positioning the clock pins 427 and the command pins 430 centrally relative to a side of the integrated circuit die within the IC package is that such clock and command signals can be routed inside the IC package and die with equal delay to equidistant memory arrays on different halves of the IC chip.
  • D/C Clocks Pins zone 427 there are provided the pins which carry the signals of data lines DQ(0:7,17). This grouping of pins is generally denoted as the DQ(0:7,17) Pins zone 417 .
  • Two SLIO Power zones 420 are interspersed in the area of DQ Pin zone 417 .
  • Each SLIO Power zone includes a V DDQ pin and a V ssQ pin.
  • Another grouping of data pins DQ(9:16) is provided in Pins zone 450 just to the outside of the CommandLink Pins zone 430 .
  • Two further SLIO Power zones 455 are distributed in the general region of the DQ(9:16) Pins zone 450 .
  • memory arrays are distributed such that those arrays which store an upper half of each data word are positioned near one end of the chip and those that store a lower half of the same memory word (e.g., lower byte) are disposed in the other half of the IC chip.
  • the pins of DQ zones 417 and 450 are organized according to this distribution so that each data bit can travel along a relatively short path to reach its respective memory array rather than having to travel the full length of the IC chip.
  • data bit DQ 17 represents a parity bit that covers data bits DQ(9:16).
  • data bit DQ 8 represents a parity bit that covers data bits DQ(0:7). Note that the parity data bits DQ 8 and DQ 17 are disposed in the pin groups 430 and 417 opposite to that of their respectively covered data bits.
  • pin layout 400 is structured to encourage substantial similarity in the electrical characteristics of the printed circuit board traces and pins that carry the D/C synchronization clocks (zone 427 ).
  • Pin layout 400 is further structured to encourage substantial similarity of characteristics for the pins of the some-what-centralized zone 430 which carry the more Vibrant CommandLink signals (FLAG) and CA(0:9).
  • DQ zones 417 and 450 straddle zones 427 , 430 so as to further encourage conformity in delay times between the DataLink lines and the CommandLink lines.
  • SLIO Power zones 420 , 455 are symmetrically distributed relative to signal-sourcing SLIO lines so as to reduce ground bounce and provide uniform distribution of power to respective SLIO line drivers.
  • the Vibrant CommandLink Pins zone 430 is not a signal-sourcing region of each respective SLDRAM module. Instead, it is a signal-receiving zone. It is the command module 150 that generally outputs signals onto the CommandLink 151 . As such, there is no need to include an SLIO power zone in the middle of command zone 430 .
  • CommandLink words are captured by a command-and-address capture unit 501 .
  • the signal latching time of unit 501 is controlled by a respective one (ICLK 1 ) of a plurality of internal clock signals (ICLK's) produced by an internal clocks generating unit (ICGU) 505 .
  • ICGU 505 is responsive to the locally received version of the command clock signals (CCLK) and to the locally received version of elsewhere-sourced data clock signals (DCLK0/1).
  • a DLL delay-locked loop, not shown
  • ICGU 505 may be used inside ICGU 505 to produce a stable internal clock reference that runs in synchronism with the external CCLK. Respective phases of various ones of the internal clocks (ICLK's) are tuned during initialization and periodic recalibrations.
  • ICGU 505 may include various phase-locked loops (PLL's, not shown) and/or other clock producing components, as appropriate.
  • LCM local configuration memory
  • command packet processing is initiated, or allowed to continue, in a command decoding and sequencing unit 504 as well as in an address sequencing unit 506 .
  • Twenty bits of data representing Bk(2:0), Row(9:0) and Col(6:0) are extracted from each general R/W command packet and sent to address sequencing unit 506 for decoding.
  • Command decoding and sequencing unit 504 processes other information within the command packet.
  • a 3-bit wide first output portion 506 a (Bk(2:0)) from the address sequencer 506 is sent to bank address register 514 to designate the currently open bank (e.g. Bank0 511 a ).
  • the bank designating code within register 514 does not change during page access operations.
  • Appropriate strobing of the bank address register 514 is provided by internal control logic (not shown).
  • a 10-bit wide second portion 506 b (Row(9:0)) of the address sequencer output is supplied to row address register 516 .
  • the loading of a new value into row address register 516 corresponds to an open-new-row operation.
  • Row address register 516 is strobed by internal control logic as appropriate.
  • Multiplexer 526 routes the output of row address register 516 to an address pre-decoding unit 536 .
  • Pre-decoding unit 536 begins to decode a more significant part of the row address into parallel selection information.
  • the decoding process is completed in pipelined fashion by an address-specified one of a plurality of row selection and decoding units 546 . Each such unit is dedicated to a respective bank of memory.
  • Row selection decoding and latching unit 546 a is dedicated to Bank0 ( 511 a ).
  • Each of the row selection units 546 has a corresponding output of 1K lines (1,024 lines).
  • row selection unit 546 a has a first complement 547 a of 1K parallel selection lines, each for respectively activating a corresponding one of the 1,024 rows ( 511 b ) in Bank0 ( 511 a ).
  • the next, behind-shown, row selection unit has its respective complement of 1K parallel selection lines, and so forth.
  • Bank control logic unit 524 has an output comprised of eight bank selecting lines for respectively activating memory banks 0 through 7. Each successively-activated bank may use a retained row selection (row opening) as defined by a respective one of the row selection decoding and latching units 546 .
  • the output of a refresh counter 507 alternatively passes through multiplexer 526 for decoding by circuits 536 and 546 .
  • a 7-bit wide, third output portion 506 c (Col(6:0)) of the address sequencer is coupled to a column address decoding and registering unit 566 .
  • the latched output of unit 566 couples to an I/O gating unit 576 .
  • Each of the eight memory banks of IAMU 511 includes its own set of sense amplifiers and a bidirectional data-carrying section having 9,216 lines (72 bits per column times 128 columns). These lines couple to the I/O gating section 576 .
  • 9,216 lines is shown at 576 a .
  • I/O gating unit 576 In response to a column address output by unit 566 , and due to the activation or opening of a specific bank and pre-addressing of a specific row within that bank, I/O gating unit 576 gates a specific column of data to bidirectional data bus 580 .
  • each column ( 511 c ) of memory stores 72 bits (which bits may be seen as four data words, each 18 bits wide).
  • data bus 580 couples to a quartet 540 of read latches, each 18 bits wide. These latches 540 are used for capturing read data output by gating unit 576 .
  • Multiplexer 541 sequences through the respective 18-bit outputs of each of latches 540 and supplies the selected 18-bits of data to a data input (DI) port of a read-side FIFO 545 .
  • FIFO (first in/first out) unit 545 resynchronizes the read data to align with one of the data clocks (DCLK0/1). Phase difference is compensated by, for example, command-tunable delay element 546 .
  • the resynchronized data is output from a DO port of FIFO 545 onto bus 545 a and coupled thereby to DQ line drivers 555 .
  • the corresponding DCLK signal whose phase is defined by command-tunable delay element 546 , is output by an enabled one of DCLK bus drivers, 556 and 557 .
  • SLIO receiver 585 receives the DQ(0:17) signals while a command-selected one of SLIO receivers 586 and 587 is used for acquiring the controller-produced DCLK signals.
  • Command-tunable delay elements 581 , 582 are used to compensate for the in-circuit placement of module 500 .
  • One of the internal clock signals ICLK 2 produced by ICGU 505 sequentially strobes a quartet 584 of 18-bit wide input latches for timely capturing a respective burst of four data words supplied on DQ(0:17). For longer bursts, a round-robin set of more than four input latches may be used.
  • the showing of just four latches in group 584 is for purpose of example.
  • a corresponding, 72-bit wide output of the input latches group 584 is supplied to a data input port (DI) of write FIFO 590 .
  • internal clock signals (ICLK's) are used for timely strobing the DI and DO sides of FIFO 590 so that the output data is in phase with an internal write clock WCLK.
  • ICLK's internal clock signals
  • a 72-bit wide set 595 of data latches and gate-unit drivers then supply the column data to gating unit 576 by way of bus 580 . The addressed column of the then open row is overwritten with the new data.
  • FIG. 6A illustrates internal components of a command module 650 that is in accordance with the invention.
  • Each dual-arrowed symbol such as at 615 represents a latch that acts on both the rising and falling edges of its respective clock signals.
  • Master clock 610 drives both the clock input and D input of dual-edge latch 615 .
  • the Q output of dual-edge latch 615 drives SILO output buffer 618 to produce the external reference CCLK signal with respective rising and falling edges aligned to those of master clock 601 .
  • Dual-edge latch 625 is also strobed by the master clock 610 .
  • a first command word (CMD_WD1) appears on the Q output of latch 625 in synchronism with a rising edge of master clock 610 .
  • the next subsequent command word (CMD_WD2) appears on the Q output of latch 625 in synchronism with the immediately next, falling edge of master clock 610 .
  • Subsequent CMD_WD3 appears in alignment with the next rising edge.
  • Non-differential SILO driver 628 outputs the respective command words onto the CA(9:0) bus. Line drivers 618 and 628 should be matched so that the same synchronism between rising and falling edges of the CCLK and validity of the command words is maintained at the output pins of command module 650 .
  • Buffer 619 couples the master clock 610 to a first input of a multi-tapped DLL (delay locked loop).
  • An end-tap of DLL 620 is coupled to its feedback input.
  • VCD voltage-controlled delay
  • VCD voltage-controlled delay
  • Internal controls within DLL 620 modulate the variable delay (e.g., VCD) until successive rising edges at the feedback input are in phase with the rising edges of the master clock 610 .
  • VCD voltage-controlled delay
  • Internal controls within DLL 620 modulate the variable delay (e.g., VCD) until successive rising edges at the feedback input are in phase with the rising edges of the master clock 610 .
  • There are enough tapped delays in DLL 620 such that the tapped delays define fractional units of one clock period of the master clock 610 .
  • the master clock period is divided into 16 equal subunits of time by action of the DLL 620 .
  • a signal 622 which defines the locked delay amount of DLL 620 is coupled to a like-designed unit 640 .
  • Unit 640 has multi-tapped fine delays controllable in the same manner as are the fine delay units of DLL 620 . Because unit 640 is manufactured on the same IC as unit 620 , the tapped delays of units 620 and 640 mimic one another despite changes in environmental temperature or voltage and despite process variations between one mass-produced IC chip and another.
  • Initialization unit 641 couples to the plural taps of variable delay unit 640 .
  • read synchronization when one of the SLDRAM modules is outputting the predefined SYNC pattern onto the DQ(17:0) bus as input words, DQI_WD1, DQI_WD2, etc., and is further toggling the DCLK buses (only one shown in FIG. 6A)
  • the corresponding DCLK in edges are received by SLIO receiver 639 and fed into tapped delay unit 640 .
  • Fractional adjustments are made to the phases of the rising and falling edges that are ultimately applied to a clock input 646 of dual-edge latch 645 for strobing in DQI words.
  • initialization unit 641 connects an initialization-selected first of the taps of unit 640 to output line 642 for defining the phase of rising edges supplied to clock input 646 .
  • Initialization unit 641 further connects an initialization-selected second of the taps of unit 640 to output line 643 for defining the phase of falling edges supplied to clock input 646 .
  • Combining unit 644 combines the phased signals of lines 642 and 643 to produce the corresponding rising and falling edges on line 646 .
  • the read synchronization adjustments to the phases on lines 642 , 643 place sampling line 642 a (which corresponds to a rising edge of DCLK in ) at a ‘bulls-eye’ time point relative to the DQI_WD1 signal that is received by way of SLIO receiver 648 . They further place sampling line 643 a (which corresponds to a falling edge of DCLK in ) at a ‘bulls-eye’ time point relative to the DQI_WD2 signal that is next received over the DQ bus.
  • Sampling line 642 b (which corresponds to a next rising edge of DCLK in ) is automatically at a ‘bulls-eye’ time point relative to the next, DQI_WD3 signal because each SLDRAM module is required in this embodiment to maintain a fixed rise-to-rise period on the DCLK signals output by that SLDRAM module.
  • the rise-to-rise period on the DCLK signals output by each SLDRAM module match the rise-to-rise period of the CCLK signals output by the command module 650 . (Timing between rising and falling edges is harder to control, as is understood in the art, because current sourcing and current sinking devices such as the P 1 and N 1 transistors of FIG. 1C tend to have different characteristics.)
  • command module 650 When command module 650 performs a write operation, write data is output by way of dual-edge latch 655 and tristate SILO driver 658 to the DQ(17:0) bus.
  • Latch 655 is strobed by the master clock 610 .
  • Dual-edge latch 635 is also strobed by the master clock 610 and produces the output data clock (DCLK out ) of the command module for output by tristate SILO driver 638 to the DCLK bus.
  • Latches 635 and 655 are matched.
  • SILO line-drivers 638 and 658 are matched. Thus the rising and falling edges of the DCLKout signal are aligned with the DQO words output by command module 650 .
  • SILO line-drivers 638 and 658 should be further matched to SILO line-driver 618 so that the DQO words output by command module 650 are in synchronization with the CCLK.
  • the V OL and V OH levels of SILO line-driver 638 may be tuned by the command module 650 itself based on how receiver 639 sees clock signals output by 638 while 638 is connected to the corresponding DCLK line of the system.
  • the V OL and V OH levels of SILO line-driver 658 may be tuned by the command module 650 itself based on how receiver 648 sees data signals output by 658 while 658 is connected to the corresponding DQ line of the system.
  • variable delay means 601 e.g., a CMOS amplifier
  • Variable delay means 601 is part of a first serial chain 621 of variable delay means further including like elements 602 , 603 , . . . , 609 .
  • a variable voltage supply/controller 605 controls the power supply voltage that is applied to each of the delay elements 601 , 602 . . . , 609 . This modulates their respective signal propagating times.
  • Multiplexer 690 is fixed to return the output tapped from an end element (e.g., 609 ) of series 621 back to a phase comparator 685 .
  • Unit 684 determines which tap point is the end point and thereby determines how many fractions the period of master clock 686 will be divided into. All tap points of series 621 are equally loaded, for example by corresponding inputs of multiplexer 690 .
  • Phase comparator 685 compares the phase difference between the rising edges of the fed-back output 681 of multiplexer 690 (also referenced as feedback signal ICLK F ) and the rising edges of the master clock signal 686 .
  • the phase comparator 685 then instructs the voltage controller 605 to modulate applied power supply voltage 622 ′ of delay elements 601 , 602 , . . . , 609 , so as to bring rising edges of the reference and feedback signals ( 686 , 681 ) into synchronization with one another.
  • the synchronization-achieving, voltage 622 ′ is further fed to a replica delay chain 660 that comprises respective, variable delay element 661 , 662 . . . 669 .
  • Delay elements 661 - 669 are all fabricated on the same IC and in like manner as are delay elements 601 - 609 .
  • Tap points of delay chain 660 are loaded in the same way as those of delay chain 621 . Accordingly, the delay elements of chain 660 acquire essentially the same delay values as those in the DLL 620 ′.
  • Multiplexer 690 is matched to multiplexer 680 and taps into all the respective tap points of chain 660 .
  • multiplexer 690 is not limited to selecting an end tap point as is multiplexer 680 .
  • multiplexer 690 has two respective outputs 692 and 693 which respectively output signals selected by a rising-edge tap-value setting circuit 682 and a falling-edge tap-value setting circuit 683 .
  • Outputs 692 and 693 are respectively coupled to the SET and RESET terminals of SR flip-flop 694 .
  • the SET signals may be tapped off from tap points that provide the noninverted but delayed version of a next-described DCLK in signal 696 while the RESET signals are tapped off from tap points that provide the inverted but delayed version of DCLK in .
  • the Q output of flip-flop 694 produces an output signal 695 that has respective rising and falling edges with phases defined by the outputs of tap-value setting circuits 682 and 683 .
  • each of the tapped serial chains 621 , 660 includes at least 16 tap points for dividing the clock period of master clock 686 into 16 fractional units.
  • an SLDRAM integrated circuit module 750 is shown that complements the command module integrated circuit 650 of FIG. 6A.
  • SLIO receiver 728 receives the command words output by SLIO line driver 628 (FIG. 6A) while differential SLIO receiver 718 receives the CCLK signals output by driver 618 .
  • the arriving command words 707 may be slightly out of synchronization with the arriving CCLK signal 708 as indicated by timing lines 709 (e.g., a fraction of a tick data/clock skew).
  • Output 719 of the CCLK receiver 718 is supplied to one input of a multi-tapped DLL 720 .
  • An end-tap of the DLL 720 is fed back to its other input 720 a .
  • Signal 722 represents the phase-locking control voltage developed by multi-tapped DLL 720 for matching the phases of rising edges of signals on its main input 719 and its feedback input 720 a.
  • Delay-establishing signal 722 is fed to a delay control input of a multi-tapped delay unit 740 .
  • Delay unit 740 corresponds to unit 630 of FIG. 6A. It receives data-clock (DCLK) signals-by way of SLIO receiver 739 and provides fraction-of a-tick delayed versions on its respective taps to initialization unit 741 .
  • Output lines 742 and 743 of the initialization unit 741 provide respective rising edge and falling edge signals to combiner 744 .
  • the resulting strobe pulses are carried by line 746 to the clock input of dual-edge latch 755 .
  • initialization unit 741 adjusts the phases of the rising and falling edges on line 746 to optimize the sampling times of latch 755 for best detecting the predefined bit sequences (the SYNC sequence) in the incoming data words that pass through SLIO receiver 758 to the D input of latch 755 .
  • SLIO receiver 739 is transferring the incoming data clock signals (DCLK in ) to multi-tapped unit 740 . This initialization operation therefore corresponds to the one carried out in FIG.
  • each SLDRAM module (e.g., 750 ) adjusts its internal clock on its respective line 746 to compensate for the unique, in-circuit positioning of that SLDRAM module relative to the system reference points (e.g., the pins of the command module 650 .)
  • the SYNC signal is also being broadcast to all the SLDRAM modules (e.g., 750 ) by way of the CA(9:0) bus while the CCLK is running.
  • the incoming CCLK pulses are transferred from SLIO receiver 718 to a second multi-tapped delay unit 715 .
  • the variable delay-establishing control of multi-tapped delay unit 715 is driven by signal 722 , which latter signal is output by multi-tapped DLL 720 .
  • the fine delay components of multi-tapped delay unit 715 are matched with those in multi-tapped DLL 720 and also those in multi-tapped delay unit 740 . As such each can provide equal increments of a fraction-of a-tick delay amount.
  • Initialization unit 714 receives the multiple, tapped delay signals output by multi-tapped delay unit 715 .
  • Circle-and-plus_sign symbol 716 represents yet another combiner like 744 .
  • Element 716 receives signals for defining the respective phases of rising and falling edges from initialization unit 714 .
  • Initialization unit 714 adjusts the respective phases of the rising and falling edges that are strobed into dual-edge latch 725 so as to bring the sampling points of latch 725 into alignment with the optimal-detection or ‘bull's eye’ positions of the SYNC signals then coming in on the CA(9:0) bus.
  • Dual-edge latch 725 is accordingly conditioned while in-circuit to synchronously capture the respective bits of incoming command words 707 .
  • the command module ( 650 ) sends individualized tuning commands to each respective SLDRAM module ( 750 ).
  • One of these commands is a vernier-tuning command which is transferred along path 726 from the already-calibrated latch/initializer combination 725 / 714 to a tunable vernier unit 727 .
  • the tunable vernier unit 727 receives the tapped fine-delays of DLL unit 720 .
  • the circle-and-plus_sign symbol 729 represents a combiner which receives separate timings for respective phases of rising and falling edges from vernier controller 727 .
  • Element 716 outputs the corresponding clock signals onto line 730 .
  • the clock signals output on line 730 may be thought of as the internal master clock of the given SLDRAM module 750 .
  • This master clock is transferred by way of line 734 to the D input of dual-edge latch 735 while the clock input of latch 735 is further strobed by the local master clock 730 .
  • the Q output of latch 735 drives SLIO differential line driver 738 .
  • Line driver 738 is tristatable and drives a corresponding DCLK bus when SLDRAM module 750 is given mastery over that DCLK bus (that mastery being given by way of a command packet issued by the command module 650 ). It may be noted that elements 734 , 735 , 738 of FIG. 7 correspond to elements 634 , 635 and 638 of FIG. 6A.
  • Line driver 738 does not have to be perfectly matched to line driver 638 (FIG. 6A) because the combination of tunable vernier 727 and initialization unit 641 can compensate for timing differences. Also the tunability of the V OH and V OL levels of each DCLK line-driver such as 738 helps to compensate for differences in current sourcing and current sinking capabilities of each SLDRAM module (e.g., 750 ) in the memory system.
  • Clock signal 730 is further coupled to the clock input of dual-edge latch 745 .
  • the D input of latch 745 receives read data that is to be output as bursts from SLDRAM module 750 during read operations.
  • the Q output of latch 745 drives a tristatable, SLIO line-driver 748 .
  • the V OH and V OL output levels of line-driver 748 are also tunable by further commands that are captured by latch 725 . These may be adjusted during the DC portion of the individual calibration of SLDRAM module 750 .
  • the data words such as DQO_WD1, DQO_WD2, DQO_WD3 that are output by line-driver 748 should appear on the DQ(17:0) bus in synchronism with the DCLKout signal that is simultaneously output by line-driver 738 .
  • Elements 745 and 748 of FIG. 7 correspond to elements 655 and 658 of FIG. 6A.
  • line-driver 748 should be matched with line-driver 738 so that DQO output bursts are sourced in synchronism with the DCLK signals output by the corresponding SLDRAM module 750 .
  • source synchronization is provided in combination with destination tunability to thereby allow for mixing and matching of devices from different vendors while not requiring tightly-fixed tolerances in any one device.
  • a memory device e.g., 310 / 320
  • a memory device may be divided into separate bank groups, each servicing a different DataLink ( 355 / 356 ) and concurrent operation may be obtained with pipelined commands.
  • the CommandLink 151 uses a separate clocking signal (CCLK) from those (DCLK0/1) of the DataLinks, and this separateness allows for fully independent non-blocking access to further commanding SLDRAM modules even while one or more of the DataLinks are being used.
  • CCLK clocking signal
  • Memory devices may be designed with internal memory units (IAMU's) that are semi-independent (e.g., having only different sub-ID's).
  • IAMU's internal memory units
  • Semi-independent memory units allow for sharing of access-control circuitry among proximal banks (i.e., shared sense amplifiers in a DRAM) provided some minor restrictions in external control are adhered to. For example, if a given row in bank N is active, then no same or differently-addressed rows in control-sharing banks N ⁇ 1, N, or N+1 should be activated.
  • a high-speed timing alignment scheme is provided that not only can adjust the coarse timing of when a response is returned relative to a command packet, but also the fine timing offset of the returned response relative to its associated clock.
  • a memory device where the read data latency can be programmed independently of the write data latency, and where an offset between the two latencies may be programmed to allow for optimal data bus performance/efficiency.
  • a signaling technology uses a DC termination resistor, and allows for adjustment of the device's output high level and the output low level relative to the DC termination resistor.
  • the output level adjustments can equalize the device's series on-resistance (see elements 130 a , P 1 of FIG. 1C) during output of a logic ‘1’ to the device's series on-resistance (see elements 130 b , N 1 of FIG. 1C) during output of a logic ‘0’. Because of such equalized resistances for current sourcing and sinking, the resulting rise/fall times may be made approximately equal.
  • the voltage swings of one device calibrated on a bus may be made nearly equal to that of other devices on the bus, and this can result in no or very small timing skews for any device or voltage level. Setting the reference point to the midpoint between logic high and logic low also provides the lowest possible AC power dissipation during line togglings.
  • (h) The use of a daisy-chained serial link ( 152 ) in the system to sequentially enable individual devices to respond to commands on a shared CommandLink is advantageous during initialization before ID's are assigned.
  • the daisy chain may be use to exclusively address a specific device in a system.
  • the daisy chain may be used at different times to indicate the completion of respective different events (self-calibration and ID acceptance) by all devices.
  • a predefined synchronization pattern (SYNC) is used in an in-circuit calibratable memory system to allow optimization of data capture timing within devices, and to allow alignment of timing between devices to improve the bus efficiency of shared buses.
  • Methods are disclosed for monitoring for a clock signal transition or level to determine the current latency time between a read command and its respective response in a memory system. This may be used to determine the difference in latencies of various devices in the system. This feature can be used to optimize the use of faster versus slower devices for different operations, or it may be used (possibly in conjunction with programmable latencies) to equalize latencies between devices, or to group devices together logically that have similar latencies.
  • an initialization sequence includes assigning device ID's for optimal system configuration, and calibration output levels, and aligning and synchronizing the timing on the system bus for optimal performance.
  • a special pseudo-random bit sequence (e.g., ‘111101011001000’) that produces different 4-bit sequences is disclosed for implementing a synchronization pattern in a memory system.
  • a method is disclosed of reading unique device characteristics information such as a manufacturer's code from a memory device to determine which manufacturer fabricated the device. This feature provides an advantage for detecting counterfeit memory devices that are physically marked with another manufacturer's name. The system may actually detect and report which devices populate a memory module or board. Other information that may be accessed from such a memory device includes manufacturing information such as date code, mask revision, configuration information such as organization and speed grade information.
  • a method is disclosed of reading and writing unique device characteristics information. This includes the ability to program or to read a register in a device that specifies a value that is comprised of both analog (time) and digital (number of clock periods, or countable events) components. This allows a device to be optimized for a particular frequency, or any intermediate frequency with better timing resolution; and
  • a non-free running strobe for capturing data or information in a memory system whereby the strobe has a preamble of edge transitions prior to the data is advantageous in that it allows the receiving device to lock onto the strobe frequency, and to compensate for internal delays of the latching signals in the receiving device, and/or to reduce intersymbol interference of the strobe signal and thereby reduce timing uncertainty.

Abstract

A SLDRAM System is provided with a plurality of in-circuit, calibratable memory modules and a memory controller for issuing unicast and multicast command packets to the memory modules. Command packets are transmitted over a unidirectional command link that includes a complementary pair of command clock lines, a command FLAG line and a plurality of noncomplemented command bit lines. Each of the command clock lines, command bit lines and the FLAG line is a SLIO transmission line. Data transfer operations are carried out in response to the command packets over one or more bidirectional data links that each includes two complementary pairs of data clock lines, and a plurality of noncomplemented data bit lines. Each of the data clock lines and the data bit lines is a SLIO transmission line. Each SLIO transmission line is single-end terminated and preferably tapped into by way of stub resistors.

Description

    BACKGROUND
  • 1. Field of the Invention [0001]
  • The invention relates generally to memory systems that use inexpensive random access memory devices (e.g. DRAM devices). The invention relates more specifically to memory devices that may be programmably-calibrated while in-circuit. [0002]
  • 2a. Cross Reference to Related Non-Provisional Applications [0003]
  • The following copending U.S. non-provisional patent applications are fully owned by the owner of the present application, and their disclosures are incorporated herein by reference: [0004]
  • (A) Ser. No. 08/909,299 [Attorney Docket No. SLDM1001] filed Aug. 11, 1997, by inventors David B. Gustavson et al. and entitled, BIFURCATED DATA AND COMMAND/ADDRESS COMMUNICATIONS BUS ARCHITECTURE FOR RANDOM ACCESS MEMORIES EMPLOYING SYNCHRONOUS COMMUNICATION PROTOCOLS; [0005]
  • (B) Ser. No. 08/933,713 [Attorney Docket No. SLDM1004] filed Sep. 19, 1997, by inventor Bruce Millar and entitled, DE-SKEWING DATA SIGNALS IN A MEMORY SYSTEM; [0006]
  • (C) Ser. No. 08/933,710 [Attorney Docket No. SLDM1006] filed Sep. 19, 1997, by inventor Bruce Millar and entitled, HIGH-SPEED BUS STRUCTURE FOR PRINTED CIRCUIT BOARDS; [0007]
  • (D) Ser. No. 08/933,673 [Attorney Docket No. SLDM1008] filed Sep. 19, 1997, by inventors Peter Bruce Gillingham and entitled, READ/WRITE TIMING FOR MAXIMUM UTILIZATION OF BIDIRECTIONAL READ/WRITE BUS; and [0008]
  • (E) Ser. No. 08/987,328 [Attorney Docket No. SLDM1011] filed Dec. 9, 1997, by inventors David V. James et al. and entitled, DUAL DATA CLOCK FOR GLITCH-LESS TRANSFER OF TIMING INFORMATION. [0009]
  • 2b. Cross Reference to Related Provisional Applications The following copending U.S. provisional patent applications are fully owned by the owner of the present application, and their disclosures are further incorporated herein by reference: [0010]
  • (F) Ser. No. 60/055,349 filed Aug. 11, 1997, by inventors Kevin Ryan et al. and entitled, SLDRAM ARCHITECTURE; [0011]
  • (G) Ser. No. 60/057,092 filed Aug. 27, 1997, by inventors David B. Gustavson et al. and entitled, SLDRAM ARCHITECTURE; [0012]
  • (H) Ser. No. 60/057,687 filed Aug. 27, 1997, by inventors David B. Gustavson et al. and entitled, SLDRAM ARCHITECTURE [0013]
  • (I) Ser. No. 60/055,368 filed Aug. 11, 1997, by inventors David B. Gustavson et al. and entitled, A HIGH-SPEED MEMORY INTERFACE; and [0014]
  • (J) Ser. No. 60/069,092 filed Dec. 10, 1997 by inventors David B. Gustavson et al. and entitled, SLDRAM PROTOCOL AND COMMAND FORMAT. [0015]
  • 2c. Cross Reference to Other Documents [0016]
  • The following documents are cited here for purposes of reference: [0017]
  • (a) (SLDRAM White Paper) [0018] SLDRAM Architectural and Functional Overview by Peter Gillingham, MOSAID Technologies Inc., Aug. 29, 1997 SLDRAM Consortium;
  • (b) Draft 0.99 Oct. 14, 1996 IEEE Memory Interface (SyncLink) P1596.7-199X entitled, [0019] Draft Standard for A High-Speed Memory Interface (SyncLink) by the IEEE Project 1596.x Working Group including Bill Vogley of Texas Instruments Semiconductor Group and Dr. David B. Gustavson of Santa Clara University; and
  • (c) (Previous SLDRAM device specs) DRAFT/ADVANCE SLDRAM Inc. [0020] SLD4M18DR400 4 MEG×18 SLDRAM PIPELINED, EIGHT BANK, 2.5V OPERATION 400 Mb/s/pin SLDRAM, including original of August 1997, and later revisions of: Sep. 22, 1997; Dec. 4, 1997; Jan. 29, 1998; and Feb. 12, 1998.
  • 2d. Reference to Appended Documents [0021]
  • The following documents are appended hereto and form part of the present disclosure. If there are any discrepancies between any of the appended documents and the present, main specification of this application, each shall be deemed as internally consistent with what is described in that document or, main specification without disturbing the other. Cross-consistent details of the main specification and appended documents supplement one another: [0022]
  • (a) (Latest SLDRAM device specs) DRAFT/ADVANCE SLDRAM Inc. [0023] SLD4M18DR400 4 MEG×18 SLDRAM PIPELINED, EIGHT BANK, 2.5V OPERATION 400 Mb/s/pin SLDRAM, revision of: Jul. 9, 1998;
  • (b) “SLDRAM: High-Performance Open-Standard Memory”, Peter Gillingham and Bill Vogley, IEEE Micro Magazine November/December 1997 pp 29-39; [0024]
  • (c) Draft 0.99 Oct. 14, 1996 IEEE Memory Interface (SyncLink) P1596.7-199X entitled, [0025] Draft Standard for A High-Speed Memory Interface (SyncLink) by the IEEE Project 1596.x Working Group including Bill Vogley of Texas Instruments Semiconductor Group and Dr. David B. Gustavson of Santa Clara University;
  • (d) Appendices I-IV of above-cited provisional applications including internal sub appendices thereof; and [0026]
  • (e) 1998 IEEE International Solid-State Circuits Conference (ISSCC), pp.160-161, 431, 126-127, 385, Y. Morooka et al., “Source Synchronization and Timing Vernier Techniques for 1.2 GB/s SLDRAM Interface”. [0027]
  • 2e. Notice Regarding Copyright Claims [0028]
  • This application includes descriptions of algorithms that may be implemented by one or more computer programs. The owner of this application reserves the right to claim certain copyrights in said computer programs. The owner has no objection, however, to the reproduction by others of the descriptions herein of such algorithms if such reproduction is for the sole purpose of studying the disclosure to understand the invention or inventions described herein. The owner reserves all other copyrights in such computer programs, including the right to reproduce such computer programs in machine-executable form. [0029]
  • 3. Description of the Related Art [0030]
  • Dynamic memory or DRAM (dynamic random access memory) devices are well-known in the industry for providing inexpensive and relatively high-speed storage capabilities. The basic dynamic memory cell comprises a charge-storing capacitor and a gating element (e.g. a field effect transistor) for providing addressable access to the charge in the capacitor for sensing, refresh and overwriting. [0031]
  • Because of the simplicity of the basic dynamic memory cell, many such cells can be crammed economically into industry-standard sized integrated circuit (IC) dice. For example, present day home computers are typically provided with so-called SIMM's (Single Inline Memory Modules) that have 8 or 9 IC packages mounted thereon with each such IC package providing 64 Mb (64 Mega-bits) of DRAM storage. Such SIMM's may be used for providing the main system memory of the computers. Each IC device of the SIMM typically includes a monolithic silicon die or other semiconductor substrate with lithographically defined circuitry provided thereon or therein. The IC device further comprises a sealed package for protecting the substrate and its circuitry, and interconnect pins for providing signal coupling between the package-internal circuitry and external circuits. Multi-Chip Module (MCM) type packages may also be used. [0032]
  • There remains a long-felt desire in the industry to increase the storage density and speed of dynamic memory (e.g., DRAM) systems while simultaneously reducing costs. However, this is not a simple task. Part of the effort toward reduction of costs comes in the form of making ever-smaller dynamic memory cells. But that is not enough. Aside from a large number of dynamic memory cells, a dynamic memory device generally needs additional circuitry for organizing its dynamic memory cells into addressable words, refreshing data held in the memory cells, moving data along internal buses, and interfacing with external circuitry. All these additional circuits introduce varying delays to the data access times of the overall dynamic memory device. [0033]
  • Because of this, it has become difficult to mix and match different dynamic memory devices in a single system. For example, if a computer system requires so-called 70 nS (70 nanosecond) devices, it is not advisable to mix-in faster 60 nS devices while retaining the slower 70 ns devices. The differing response speeds of such mixed devices may create timing problems on the memory bus. Even if all the utilized devices are rated for a same 60 nS speed, sometimes timing problems may still arise if the mix of 60 nS devices is from different manufacturers. Tolerances may vary between manufacturers. Because of this each memory device may have slightly different parametric characteristics than that of its neighbors due to, for example, the use of different semiconductor technologies in their manufacture. This presents problems to users who have invested in a first set of memory chips from a first vendor and want to mix them in a same memory system with a second set of more modern memory chips obtained from a different vendor. [0034]
  • Despite such problems, the relatively low cost of dynamic memory (e.g., DRAM) devices has led to their incorporation into a wide variety of applications including serving as the main memory of both desktop and mobile computer systems, as well as providing image-storing services for real-time and high-resolution video systems. This broad range of applications imposes many demands on future generations of dynamic memory devices including desirabilities for: (a) providing yet-lower per bit cost and higher storage densities, (b) allowing for minimized power usage by each device, (c) providing for wide and sustainable read/write bandwidth capabilities, (d) reducing latency times between each access request and a corresponding read/write operation, (e) providing for easy scalability to deeper and/or wider data storage organizations, (f) permitting mixing and matching of memory devices in legacy systems that still use older technology devices, and (g) providing basic support for different kinds of hierarchical memory configurations. [0035]
  • In an attempt to meet a subset of these challenges, past generations of DRAM devices have evolved through a number of iterations over the years. Fast Page Mode (FPM) devices were early providers of higher speed access to previously opened pages of memory. Extended Data Out (EDO) devices provided for yet faster memory access by overlapping address decode and output operations. SDRAM (Synchronous DRAM) devices provided a higher speed interface by using synchronously-clocked data buses. DDR (Double Data Rate) devices began to take advantage of both edges on each clock pulse to increase throughput rate. [0036]
  • However, none of these evolutionary approaches (FPM, EDO, SDRAM, or DDR) are believed to be sufficient on their own for providing a general solution to the challenges that are expected to arrive in the coming years. Next-generation computer systems are expected to operate at ever-higher switching frequencies and use wider word sizes and deeper (larger) address spaces. Small amounts of skew between data and clock phases may become a problem. Small differences in the various' delays that are imposed on parallel signals may become a problem. For example, delay differences may arise due to minor differences between parallel transmission lines that carry parallel clock and/or data signals (e.g., the delay differences may be due to slight mismatches of impedances on printed circuit board traces) and such differences may become a problem. As switching frequencies increase, problems with intersymbol interference, crosstalk, general noise, and so forth are expected to increase. A more comprehensive approach is needed for anticipating such problems and for providing flexible mechanisms to deal with such problems. [0037]
  • SUMMARY OF THE INVENTION
  • A Synchronous-Link Dynamic Random Access Memory (SLDRAM) System may be provided in accordance with the invention to include: (a) a command module for issuing command packets to uniquely addressable memory units and/or addressable collections of such units; (b) a high-speed command link for carrying the command packets; (c) one or more high-speed data links for carrying data corresponding to packet-commanded data-transfer actions; and (d) one or more, in-circuit programmably-calibratable SLDRAM modules each having one or more addressable memory units, where each SLDRAM module is capable of interfacing with the command link and at least one of the high-speed data links for appropriately responding to informational queries provided by command packets, for further appropriately responding to tuning (adjustment, or calibrating) commands provided by command packets, and for yet further appropriately responding to data addressing and other data-transfer-related commands provided by command packets. [0038]
  • A system initializing method in accordance with the invention comprises the steps of: (a) first initializing an SLDRAM system by broadcasting from a reference location (e.g., from pins of a memory controlling module) a predefined first synchronization sequence over command/address lines (e.g., CA(9:0)) and data lines (e.g., DQ(17:0)) of the system while simultaneously and synchronously outputting from the reference location a continuously-running clock train over one or more clock lines (e.g., CCLK, DCLK0, DCLK1) of the system for allowing one or more SLDRAM modules present in the system to each self-adjust local command-receiving and data-receiving circuits of the SLDRAM module to synchronously recognize the predefined first synchronization sequence at the locality of the self-adjusting SLDRAM module; (b) second initializing the SLDRAM system by sequentially assigning identification codes (ID's and/or sub-ID's) to individually-addressable, memory units within the in-system SLDRAM modules; (c) third initializing the SLDRAM system by sequentially commanding each in-circuit SLDRAM module to adjust output levels of the SLDRAM module's data-clock driving and data-line driving circuits to levels acceptable to an in-circuit memory controller (command module); (d) fourth initializing the SLDRAM system by sequentially commanding each in-circuit SLDRAM module to respectively output a predefined second synchronization sequence (which can be the same as the first) over the data lines (e.g., DQ(17:0)) of the system while simultaneously and synchronously outputting from the commanded SLDRAM module, a continuously-running clock train over one or more data-clock lines (e.g., DCLK0, DCLK1) of the system, this for allowing the in-circuit memory controller to command adjustments (e.g., individual phase changes) to local data-outputting circuits and local data-clock outputting circuits of the sequence-outputting SLDRAM module so that the memory controller will be able to synchronously recognize the predefined second synchronization sequence at the locality of the memory controller; and (e) fifth initializing the SLDRAM system by sequentially determining data read and data write latency times of respective ones of the in-circuit, individually-addressable, memory units. [0039]
  • A system utilization method in accordance with the invention comprises the steps of: (a) synchronously issuing command packets from a reference location (e.g., from a memory controlling module) of an SLDRAM system using command/address lines (e.g., CA(9:0)) of the system and command-clock lines (e.g., CCLK/CCLK#) of the system for transmitting the command packets to one or more in-circuit-calibratable SLDRAM modules of the system, where first ones of the issued command packets individually or collectively address one or more individually-addressable, memory units within the SLDRAM modules and define a data-transfer operation'to be carried out by the individually or collectively addressed memory units; and (b) causing the addressed memory units to responsively perform the defined data-transfer operation within a time slot that follows receipt by the memory unit of a respective command packet, where latency between the receipt of the respective command packet and the responsive performance the defined data-transfer operation is adjustable; and wherein second ones of the issued command packets individually address one or more of the individually-addressable, memory units and define one or more respective data-transfer latencies for the individually-addressed memory unit. [0040]
  • A pins and/or traces distribution pattern in accordance with the invention, as seen across a plane that intersects the pins or the traces (which traces can be printed circuit board traces), is characterized by: one or plural linear series of pins/traces, with each series extending in a lateral first direction between outer extremes of a signal communicating path extending longitudinally in a second, generally orthogonal direction and wherein said pins/traces include: (a) a first pair of complementary command-clock pins/traces for respectively carrying complementary command-clock signals (CCLK, CCLK#), the first pair of command-clock pins/traces being disposed approximately midway between said outer extremes of said signal communicating path; (b) a set of command-packet carrying pins/traces for carrying command words (CA0:9) that are synchronized with the command-clock signals and define command-packets, the command-packet carrying pins/traces being disposed proximate to the first pair of command-clock pins/traces; (c) a, packet-flagging pin/trace for carrying a FLAG signal that may be used to identify the beginning or ends of consecutive command-packets, the command-flagging pin/trace being disposed proximate to the command-carrying pins/traces; (d) second and third pairs of complementary data-clock pins/traces for respectively carrying complementary first data-clock signals (DCLK0, DCLK0#) and complementary second data-clock signals (DCLK1, DCLK1#), the second and third complementary pairs of data-clock pins/traces being disposed proximate to the first pair of complementary command-clock pins/traces; (e) a set of data-word carrying pins/traces for carrying data-words (DQ0:17) that are synchronized with one or the other of the data-clocks (DCLK0, DCLK1), the set of data-carrying pins/traces being distributed symmetrically about the data-clock carrying pins/traces; and (f) data-output powering pins/traces for providing dedicated power rails (VDDQ, VssQ) for line-drivers that output signals onto the data-carrying pins/traces, the data-output powering pins/traces being distributed plurally and symmetrically adjacent to the data-word carrying pins/traces. [0041]
  • Other aspects of SLDRAM systems in accordance with the invention will become apparent from the below detailed description.[0042]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The below detailed description makes reference to the accompanying drawings, in which: [0043]
  • FIG. 1A is a block diagram showing a simplified, high-level view of a SLDRAM system in accordance with the invention; [0044]
  • FIG. 1B is a schematic showing a more detailed view of one embodiment of an SLDRAM system in accordance with the invention; [0045]
  • FIG. 1C is a schematic diagram for illustrating general aspects of a SLIO (SynchronousLink Input/Output) connection; [0046]
  • FIG. 1D is a schematic diagram illustrating a possible configuration of a controller mother board and module daughter boards; [0047]
  • FIG. 1E is a legend for symbols used in FIGS. [0048] 1B-1D;
  • FIG. 2A is a flow diagram showing in simple terms how commands, data clocks and data bus transfers may be pipelined in accordance with the invention; [0049]
  • FIG. 2B is a timing diagram showing in more detail how commands, data clocks and data bus transfers may be interleaved in accordance with the invention; [0050]
  • FIG. 3 is a block diagram of a buffered system; [0051]
  • FIG. 4 is a top-view pinout diagram showing an interleaving of interconnect pins on opposed sides of a bottom of a Vertically Standing Module Package (VSMP) in accordance with the invention; [0052]
  • FIGS. [0053] 5A-5B combine to form a schematic diagram of an SLDRAM module in accordance with the invention;
  • FIG. 6A is a block diagram of a memory controller in accordance with the invention; [0054]
  • FIG. 6B is a schematic of a DLL circuit and a matched delay circuit that may be used in the memory controller of FIG. 6A; and [0055]
  • FIG. 7 is a block diagram of a SLDRAM module having timing circuits that complement those used in the memory controller of FIG. 6A. [0056]
  • DETAILED DESCRIPTION
  • System Overview [0057]
  • FIG. 1A provides an introduction to a [0058] SLDRAM System 100 in accordance with the invention that satisfies at least some of the desirable characteristics set forth above, namely, (a) allowing for low per bit cost, (b) allowing for minimized power usage when devices are not in use, (c) providing for wide and sustainable read/write bandwidth capabilities, (d) where possible, reducing latency times between each access request and a corresponding read/write operation, (e) providing for easy scalability to deeper and/or wider data storage organizations, (f) permitting mixing and matching of memory devices that use different kinds of memory technologies where some are slower than others, and (g) providing basic support for different kinds of hierarchical memory configurations. These aspects will become clearer as various details are discussed in conjunction with the more detailed representation found in FIG. 1B.
  • A key feature of the [0059] SLDRAM System 100 shown in FIG. 1A is the provision of one or more, command-queriable and command-tunable memory modules (command Q/T-able modules) such 110 and 180.
  • The term ‘command-queriable’ (command Q-able) indicates here that a [0060] command module 150 can send information-seeking, query packets to individually-addressable memory units (IAMU's) for discovering their internal organization and basic characteristics.
  • Examples of such internal organization information includes number of memory banks, number of memory rows per bank, number of memory columns per row, number of bits or words per column and number of parallel data output lines. Examples of basic characteristics include minimum and maximum latency times for accessing a specific column of an already-opened row in a given bank. Another such example is minimum and maximum latency times for accessing a specific column of a not-yet-opened row in a not-yet-opened bank. [0061]
  • An already-opened row in an already-opened bank is referred to herein as a ‘page’ and its respective read/write latencies are referred to herein as ‘page read’ (PgRd) and ‘page write’ (PgW) latencies. The respective latencies for a specific column of data in a not-yet-opened row of a not-yet-opened bank are referred to herein as ‘bank read’ (BkRd) and ‘bank write’ (BkW) latencies. The minimum and maximum values for each of the PgRd, PgW, BkRd and BkW latencies can vary depending on the internal technologies used within given memory devices. [0062]
  • As will be seen, it is useful for the [0063] command module 150 to be able to discover what the internal organization and basic characteristics are of the various memory modules 110 through 180 that are present, and operatively in-circuit, within the SLDRAM System 100 so that the command module 150 can tune (calibrate) the memory modules while they are in-circuit and so that the command module 150 can properly interleave data transfers of such in-circuit tuned, memory modules to correspond with respective data time slots.
  • As used herein, the term ‘SLDRAM module’ can refer to either a single SLDRAM IC device or to a daughter board containing a buffered group of SLDRAM IC devices. Each ‘SLDRAM module’ can contain one or a plurality of individually-addressable, memory units (IAMU's). Each so-addressable memory unit (IAMU) may be assigned an ID (identification) number during system initialization. Thereafter, information-seeking, query packets can be directed from the [0064] command module 150 to respective IAMU's for discovering their internal organizations and basic characteristics. Calibrating packets may be directed from the command module 150 to respective SLDRAM modules for tuning each module to match in-circuit conditions. Data access (read and write) command packets may be directed from the command module 150 to respective, pre-calibrated SLDRAM modules for timely accessing their data.
  • In one embodiment, [0065] SLDRAM System 100 can support up to 256 IAMU's by using a set of nine identification bits, ID0 through ID8 within command packets. A first half (e.g., ID8=0) of the corresponding address space of 512 locations that is addressable by ID(0:9) is reserved for individually addressing (unicasting to) the IAMU's. At least one unique location within the second half (e.g., ID8=1) of the same address space is reserved for globally addressing all IAMU's. Preferably, this globally-addressing or broadcast code is defined as a setting of each of the ID bits to logic high (‘1’). Other locations within the upper half of the address space may be used for addressing subsets of IAMU's in multicast fashion. In a second embodiment, SLDRAM System 100 can support up to 512 IAMU's by using a set of ten identification bits, ID0 through ID9 within command packets. In an alternate embodiment, the number of IAMU's is expanded by retaining ID0 through ID8 and supplementing these 9 address bits with additional, sub-ID bits. Of course, larger address spaces are also contemplated through the use of enlarged command packets that have more ID bits and/or more sub-ID bits.
  • In FIG. 1A, command packets travel unidirectionally over a [0066] CommandLink 151 that couples the command module 150 to each of up to eight further ‘loads’ (SLDRAM modules 110 through 180). The CommandLink 151 comprises ten, single-end terminated transmission lines for respectively carrying command/address bits zero through nine (CA0:9) in parallel. These ten lines are collectively referred to as the CA bus 151 a.
  • Successive CA0:9 command/address words (each 10-bits wide) are synchronized consecutively with the rising and falling edges of a command clock that is provided as a differential pair of signals, CCLK and CCLK# on two, single-end terminated [0067] transmission lines 151 b. Description herein of a specific rising or falling clock edge refers to the noninverted signal (e.g., CCLK) rather than to its inverted complement (e.g., CCLK#).
  • The [0068] CommandLink 151 further comprises four command control lines 151 c that respectively carry a FLAG signal (151 c 1), a LISTEN signal (151 c 2), a LINKON signal (151 c 3) and a RESET# signal (151 c 4). The references, 151 c 1-151 c 4 are seen in FIG. 1B rather than in 1A.
  • In one embodiment, command packets each consist of 4 consecutive, 10 bit wide words transmitted over the CA(9:0) [0069] bus 151 a. The first word of a command is indicated by a ‘1’ in a ‘01000’ command-aligning SLIO stream provided on the FLAG line (151 c 1). The CCLK/CCLK# signals of transmission lines 151 b are preferably free-running square waves during an active, LINKON=1 mode. An expected typical frequency for CCLK is about 200 MHz although other frequencies such as about 300 MHz, about 400 MHz, about 600 MHz, and so forth are contemplated as well. Both edges of the differential free running clock CCLK/CCLK* 151 b are used by listening SLDRAM modules (110-180) to synchronously latch command words. Thus the 200 MHz version of CCLK provides a command bandwidth of 400 Mega-bits per second per CA line (400 Mb/s/pin). It is contemplated that alternate embodiments may use more CA words per command packet and/or a wider CA bus having more CA transmission lines 151 a.
  • While the LISTEN line ([0070] 151 c 2) is high the SLDRAM modules (110-180) are expected to monitor other parts of the CommandLink 151 for commands. When LISTEN is low there should be no commands present on the CommandLink and SLDRAM modules (110-180) are permitted to enter a power saving standby mode. Each SLDRAM module (110-180) should be able to exit this non-listening standby mode and accept a next command packet within 2 CCLK clock cycles (4 ticks) of LISTEN going back high (to logic When LINKON (151 c 3) is brought low the SLDRAM modules (110-180) may enter a shutdown mode in which the complementary CCLK/CCLK# signals 151 b can be turned off to achieve a low power consumption condition on the CommandLink 151. The RESET# signal (151 c 4) is used to put the SLDRAM modules (110-180) into a known state such as on power-up so that initialization may begin.
  • At least one, bi-directional DataLink (DataLink_A) [0071] 155 is provided. This DataLink_A 155 is used by the command module 150 for receiving initialization-query responses and other data (e.g., read data) from each of the SLDRAM modules (110-180). It may also be used by the command module 150 for outputting write data to one or more of the SLDRAM modules. DataLink_A 155 comprises eighteen, single-end terminated transmission lines for respectively carrying data bits zero through seventeen (DQ(0:17)_A) in parallel. These eighteen lines are collectively referred to as the DQ_A bus 155 a. Individual lines are respectively referenced by parenthetical number such as DQ(5)_A for line 5 of the DQ_A bus 155 a. In one embodiment, aside from the command module 150, each DataLink such as 155 can support no more than eight electrical loads, each of a predefined maximum value of electrical capacitance (e.g., 3 pF).
  • Successive DQ(0:17)_A data words (each 18-bits wide) are associated consecutively with the rising and falling edges of a command-specified one of plural data clock signals. The command-specified data clock signal may be provided either as differential pair, DCLK0_A and DCLK0_A# on a respective first pair of single-end terminated [0072] transmission lines 155 b or it may be provided as differential pair, DCLK1_A and DCLK1_A# on a respective second pair of single-end terminated transmission lines 155 c. Description herein of a specific rising or falling data clock edge refers to the non-inverted DCLK0 or DCLK1 signal rather than to its inverted complement, the DCLK0# or DCLK1# signal.
  • Each of the DCLK0 and DCLK1 data-clock signals generally operates at or about the same frequency as the CCLK command-clock. Unlike the CCLK signal, the DCLK0 and DCLK1 data-clock signals are generally time-windowed rather than being free-running. The signal-originating point for each of the DCLK0_A and DCLK1_A data-clock signals should change to correspond with the source point of corresponding data that is to be placed onto the [0073] DQ_A bus 155 a. As different devices take over mastery of the DQ_A bus 155 a the origin point of the corresponding DCLK0_A or DCLK1_A signal also typically changes. Data transmission on the DQ_A bus 155 a preferably occurs as bursts of at least 4 consecutive data words each, with each such data word being 18 bits wide (thus providing at least 72 bits of data transfer per burst). Data burst length may be specified by a corresponding command packet.
  • During read operations, the DCLK0 and DCLK1 signals are each originated from an assigned one of the SLDRAM modules ([0074] 110-180) that has corresponding mastery over the DQ_A bus 155 a for the read operation. During write operations, the command module 150 gives itself corresponding mastery over the DQ_A bus and the DCLK0 and DCLK1 signals are each originated from the command module 150. The phase and magnitudes of the DCLK0 and DCLK1 signals at their respective points of origin can vary depending on the location of the source point along on the DataLink 155.
  • Typically, a first of the SLDRAM modules ([0075] 110-180) acts as an originating source for a first of the data-clock signals (e.g., DCLK0/0#) and as a source of a corresponding first data transmission burst while, in preparation for a successive second data transmission burst, a second of the SLDRAM modules (110-180) or the command module 150 begins to act as an active originating source for the second of the data-clock signals (e.g., DCLK1/1#). The second SLDRAM module or the command module 150 should simultaneously prepare itself to be the source of the corresponding, second data transmission burst. Such preparation preferably occurs in parallel with the first transmission so that the second data burst (which in this example happens to be synchronized with DCLK1/1#) may be immediately placed on the DQ_A bus 155 a just after the first data burst (which in this example happens to be synchronized with DCLK0/0#) finishes. This allows for time efficient use of the shared, DQ_A bus 155 a.
  • Both edges of each of the differential, and time-windowed data-clock signals, DCLK[0076] 0A/DCLK0A# (155 b) and DCLK1A/DCLK1A# (155 c) are used to latch data words on the shared DQ_A bus 155 a. Thus a 200 MHz CCLK version of SLDRAM System 100 provides a per data-link bandwidth of 400 Mega-bits per second per DQ line (400 Mb/s/pin). It is contemplated that alternate embodiments may use a wider DQ_A bus 155 a having more than 18 transmission lines. The eighteen bits of each data word may be designated as desired, including two for carrying parity or other error-related code and the remaining sixteen for carrying corresponding data bytes of 8 bits each.
  • The illustrated, [0077] second DataLink_B 156 is optional and may be used in conjunction with at least some of the SLDRAM modules (such the illustrated module 180) that have data ports which are wider than DQ_A bus 155 a. In the illustrated example, module 180 has a 36-bit wide, parallel data-transmission capability while module 110 has only a 18-bit wide, parallel data-transmission capability. All of the SLDRAM modules (110-180) convey their initialization information over the primary DataLink_A 155. However, if the command module 150 learns from the initialization process that module 180 has the wider, 36-bit parallel data-transmission capability, the command module 150 may instruct module 180 to convey the upper half of its 36-bit wide data by way of DataLink_B 156 while the lower half is simultaneously conveyed by way of DataLink_A 155. Thus, scaling to wider data paths and higher bandwidths is supported.
  • [0078] DataLink_B 156 is preferably structured in the same way as DataLink_A 155 to have eighteen, single-end terminated transmission lines for respectively carrying secondary data bits zero through seventeen (DQ(0:17) _B)) in parallel. These eighteen lines are collectively referred to as the DQ_B bus 156 a. Similarly, successive DQ(0:17)_B data words (each 18-bits wide) are associated consecutively with the rising and falling edges of a command-specified one of plural data clock signals of the secondary link 156. The command-specified data clock signal of the DQ_B bus 156 a may be provided either as differential pair, DCLK0_B and DCLK0_B# on a respective first pair of single-end terminated transmission lines 156 b or it may be provided as differential pair, DCLK1_B and DCLK1_B# on a respective second pair of single-end terminated transmission lines 156 c. Again, the outputting source of a respective one of DCLK0_B/B# and DCLK1_B/B# also acts as the outputting source of the corresponding data bursts on DQ_B bus 156 a.
  • Although not shown, [0079] SLDRAM System 100 may have yet further data links in addition to 155 and 156. These additional data links may be similar to 155 or wider or narrower as appropriate for the different kinds of SLDRAM modules (110-180) used in the system 100.
  • Mechanically-speaking, for each DataLink ([0080] 155, 156, etc.), the clock and data transmission lines of that DataLink should be run closely together so that they all exhibit substantially same transmission characteristics for the utilized clock frequency and so that data and clock transmissions closely track one another. This is why the DCLK0A/DCLK0A# lines (155 b) and DCLK1A/DCLK1A# (155 c) are shown lumped together close to the DQ_A bus 155 a. For the same reason, the DCLK0B/DCLK0B# lines (156 b) and DCLK1B/DCLK1B# (156 c) are shown lumped together close to the DQ_B bus 156 a. Also, the CCLK lines should run close to the CA(0:9) and FLAG lines so that these exhibit substantially same transmission characteristics for the utilized clock frequency and mechanical layout. Additionally, the CCLK lines should run close to the DCLK0 and DCLK1 lines of at least one DataLink so that these exhibit substantially same transmission characteristics for the utilized clock frequency and mechanical layout. One embodiment follows the trace-wire dispersal pattern shown in FIG. 4.
  • A daisy chained, [0081] serial bus 152 is further shown in FIG. 1A. This serial bus 152 includes provision of an input SI terminal and output SO terminal on each module, 110-180 and also 150. Serial bus 152 is used on power-up and resets to serially step through the SLDRAM modules (110-180), to tune their command-receiving phases, and to thereafter assign unique ID's to each IAMU (individually-addressable, memory unit). Each SLDRAM module (110-180) may contain one or more respective IAMU's.
  • On power-up/reset, RESET# ([0082] 151 c 4) is activated. In response all SLDRAM modules (110-180) and the command module 150 drive their respective SO terminal low. This signals to the next module in the daisy chain 152 that the previous module has not yet finished initializing. The command module 150 should be initialized first. Such initialization may or may not include output level tuning and/or clock tuning as appropriate for a specific implementation of command module 150. Initialization of the command module 150 may be self-mediated or controlled through a system bus 90. The system bus 90 may couple to a CPU (central processing unit) or to another, like high-intelligence system. The command module 150 may be a low cost, packaged device that supports only the minimal requirements set forth herein or it may be more complex, as desired. The intent here is to allow the basic SLDRAM System 100 (with the exception of system bus 90 and its interface) to be of low cost and compact size.
  • Once initialization of the [0083] command module 150 completes, it drives its SO terminal 152 a to logic high (“1”) for a first time in order to begin a broadcast initialization sequence. The command module 150 asserts mastery over both the DCLK0A/DCLK0A# bus (155 b) and the DCLK1A/DCLK1A# bus (155 c) and begins continuous transmission of the CCLK signal onto these buses 155 b,c as well as onto the CCLK transmission lines 151 b. At the same time and in synchronism with the CCLK signal, the command module 150 begins continuous transmission of a predefined first synchronization sequence onto each of the lines of the CA(0:9) bus 151 a, onto each of the lines of the DQ(0:17) _A bus 155 a, and onto the FLAG line (151 c 1). In one embodiment, this predefined first synchronization sequence comprises a repeat of the 15 -bit, pseudo-random SYNC sequence: ‘111101011001000’ (four 1's, two 01's, two 100's, and a 0). This pattern provides every possible 4-bit sequence except 0000. Other similar sequences may of course be possible.
  • In one embodiment, the SYNC sequence is staggered across lines as indicated by Table 0.5. [0084]
    TABLE 0.5
    SYNC PATTERN ALIGNMENT
    SIGNAL REPEATING PATTERN . . .
    FLAG 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    CA9 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    CA8 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    CA7 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    CA6 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    CA5 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    CA4 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    CA3 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    CA2 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    CA1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    CA0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ17 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ16 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ15 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ14 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ13 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ12 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ11 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ10 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ9 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ8 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ7 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ6 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ5 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ4 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ3 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ2 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    DQ1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 1 . . .
    DQ0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 . . .
    CCLK 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 . . .
    DCLK1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 . . .
    DCLK0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 . . .
  • The predefined first synchronization sequence is known to each of the SLDRAM modules ([0085] 110-180) and each enters into its own self-synchronizing operation wherein it adjusts internal parameters (e.g., internal clock phases and/or delays) so as to optimize local recognition of the predefined synchronization sequence in synchronism with a respective one of the locally-received CCLK, DCLK0 and DCLK1 signals. This will be better appreciated when FIG. 1B is discussed.
  • Once each of the SLDRAM modules ([0086] 110-180) finishes its self-synchronizing operation, it sets its SO line high if its SI line is also high. The low to high transition at the end of the chain, at 152 e, informs the command module 150 that all the present modules 110-180 have finished their respective self-synchronizing operations and are now in condition to receive command packets. If a predefined maximum time elapses and command module 150 does not see the expected low to high transition at the end of the chain 152 e, the command module 150 may send a message to a system BIOS (Basic Input Output System, not shown) by way of bus 90 to indicate that SLDRAM System 100 has experienced an initialization error and that intervention is needed to fix the fault.
  • In response a successful return of a first low to high transition at the end of the [0087] chain 152 e, command module 150 stops broadcasting the synchronization sequence over the CA, DQ and FLAG lines. Then module 150 brings its SO line 152 a low. The low ripples through the serial chain 152 back to the last SI terminal 152 e. In response, command module 150 drives its SO terminal 152 a to logic high (“1”) for a second time in order to begin an identification assignment sequence. Some time before this step, all the SLDRAM modules (110-180) should have reset respective identification registers within themselves to a broadcast-recognition value (e.g., a local ID and sub-ID's of all 1's).
  • The first SLDRAM module in the [0088] chain 152 that has the broadcast-recognition value as its ID (e.g., module 110) and sees the second ripple-high of its SI terminal (e.g., 152 a) responsively enters into an identification assignment procedure. If the SLDRAM module (110) has more than one IAMU (not shown), each IAMU may have its own SI/SO terminal for continuing the identification assignment daisy chain internally within the SLDRAM module. Each IAMU can therefore individually declare its presence during the initialization process. In response to one or more, ID-register write-request packets, each successive IAMU within the SLDRAM module (110)) whose respective SI/SO state is 1/0, and whose current ID is all ones, accepts a next successive and typically-unique identification comprised of a main ID part (e.g., 9 bits) and optionally, a sub-ID part (e.g., 4 bits). Identification assignment is thus daisy chained from one IAMU to the next inside each of the SLDRAM modules (110-180) and similarly from one SLDRAM module to the next. Accordingly, when SLDRAM module 110 is finished, its SI line 152 a will be high and its SO line 152 b will be also be high. This SI/SO state of 1/1 causes SLDRAM module 110 to ignore further ID assignment commands. The next successive SLDRAM module takes over.
  • When the last SLDRAM module in the chain (e.g., [0089] 180) is finished, its SI line 152 c will be high and its SO line 152 e will go high. The end-of chain SO line 152 e returns to the SI input of the command module 150 and is used for letting module 150 know that the end of the chain has been again reached. If a predefined maximum time elapses and command module 150 does not see the expected low to high transition at the end of the chain 152 e, the command module 150 may send a message to the system BIOS by way of bus 90 to indicate that SLDRAM System 100 has experienced an initialization error during ID assignment and that intervention is needed to fix the fault.
  • When a successful return of the second low to high transition occurs at the end of the [0090] chain 152 e, the command module 150 should know how many IAMU's (individually-addressable, memory units) are present in SLDRAM System 100 and it should know what unique (or nonunique) ID has been assigned to each such IAMU.
  • In a subsequent set of individualized query and tuning operations, the [0091] command module 150 may query each uniquely-identified IAMU to learn about its internal capabilities. It may then individually tune the DCLK and DQ output drivers of each SLDRAM module so as to optimize synchronous recognition at the receipt plane of the command module 150 of DCLK and DQ signals output from differently situated ones of the SLDRAM modules (110-180). These aspects will become clearer as various details FIG. 1B are discussed.
  • Following the individual query and tuning operations, the [0092] command module 150 may begin to send individualized data access and other command packets to each IAMU. It may also send group command packets to groups of IAMU's on a multicast basis. It may also send global command packets to all the IAMU's on a broadcast basis as will be seen. Signaling levels and directions within SLDRAM System 100 may vary according to Table 1.0. In Table 1.0, SLIO stands for a 3-level, synchronous link input/output signaling system as will be detailed by FIG. 1C. LVCMOS stands for a binary, low-voltage (e.g., 0-2.5V) CMOS signaling system. TTL or LVTTL may be used instead of LVCMOS if desired. MC is the memory controller (also referred to as command module) 150. (At times throughout this document, an asterisk ‘*’ is used interchangeably with the pound sign ‘#’ to indicated a complementary signal.)
    TABLE 1.0
    Signal Name Description Direction Level
    Command- CCLK/ Command MC-->SLDRAM SLIO
    Link CCLK* Clock
    FLAG Command MC-->SLDRAM SLIO
    Word Flag
    CA[9:0] Command MC-->SLDRAM SLIO
    Address Bus
    LISTEN Standby MC-->SLDRAM SLIO
    Mode
    LINKON Shutdown MC-->SLDRAM LVCMOS
    Mode
    RESET* Hard Reset MC-->SLDRAM LVCMOS
    DataLink DCLK0/ Data Clock 0 MC<->SLDRAM SLIO
    DCLK0*
    DCLK1/ Data Clock 1 MC<->SLDRAM SLIO
    DCLK1*
    DQ[17:0] Data Bus MC<->SLDRAM SLIO
    Serial SI Serial Input MC-->SLDRAM, LVCMOS
    SLDRAM-->
    SLDRAM
    SO Serial Output MC-->SLDRAM, LVCMOS
    SLDRAM-->MC
  • SLIO Signaling [0093]
  • The SLIO signaling system of [0094] SLDRAM System 100 may be viewed as an improved and more rigid version of the JEDEC SSTL 2 signaling system (Series Stub Termination Logic for 2.xV logic circuits). SLIO is used for high speed signaling. Output drive levels are more tightly specified in SLIO to achieve faster bus settling and improved noise margin. The Controller 150 and SLDRAM devices 110-180 each employ a noise-isolated, 2.50V VccQ supply to power the respective VddQ drain terminals of their respective output drivers. A corresponding noise-isolated, ground line is similarly used to power the respective VssQ source terminals of their respective output drivers. See FIGS. 1B and 1C. Other parts of the system that operate at lower frequencies and/or are generally less sensitive to noise (e.g., LVCMOS lines) preferably use a more general 2.50V Vcc supply rail and corresponding signal ground.
  • Each differential or nondifferential SLIO signal of the [0095] CommandLink 151 and of the DataLinks 155 (and optionally 156, etc.) is transmitted over a single-end terminated, transmission line. Preferably, each such SLIO line is resistively urged to a midpoint reference level of about Vterm=1.25V by a termination resistor RT of approximately 30 Ω, see FIGS. 1B-1C) provided at the far end of the line, away from the command module (MC) 150. Such single end termination helps to save power consumption as compared against more-standard, double-ended termination systems.
  • As seen in FIGS. 1B and 1C, a series stub resistor (R[0096] S) of approximately 20 Ω each or a generally equivalent isolation means is provided at each tap point into each SLIO transmission line to help isolate the major part of the transmission line from load perturbations that may be presented by module inputs and outputs (roughly 3 pF each).
  • In FIG. 1C, [0097] circuit 130 is representative of a SLIO output driver such as may found for example inside the package of the command module 150. Circuit 140 is representative of a spaced-apart SLIO receiver such as may found for example inside the package of a SLDRAM module (e.g., 110). Clock source 136 is representative of a synchronization means such as may be further found for example inside the package of the command module 150. Clock source 136 is coupled by a transmission means 137 (e.g., an RF transmission line) to the locality of receiver circuit 140. The separation between the SLIO line driver circuit 130 and the SLIO receiver circuit 140 may be on the order of about 50 mm (millimeters) to 175 mm.
  • A major portion of an exemplary SLIO transmission line is represented by trace impedance elements [0098] 133 (Ztrace1) and 135 (Ztrace2) These elements 133, 135 may be generally implemented as printed circuit board traces on mother and daughter boards. Other forms of implementing compact transmission lines for carrying SLIO signals of 200 MHz or higher switching frequencies may used instead as appropriate.
  • A first tap into the exemplary [0099] SLIO transmission line 133/135 is represented by dot 134 a and may occur for example at the MC-near end of the line. A second tap into the SLIO transmission line 133/135 is represented by dot 134 b and may occur for example anywhere between the MC-near end of the line and the termination (139) far end of the line.
  • Element [0100] 131 (Zpack1) represents a first package interconnect impedance associated with line-driving circuit 130. The value of Zpack1 may vary depending on specific package design. In one embodiment, it should be no more than about a 3 pF capacitance to AC ground.
  • The internal representation of the SLIO line-[0101] driver circuit 130 may also vary depending on what specific IC technology is used. In FIG. 1C, element P1 represents in general, a current sourcing element that couples to the SLIO power rail, VccQ. N1 represents in general, a current sinking element that couples to the corresponding SLIO ground rail. The illustrated, tristate CMOS design that includes P-channel MOSFET P1, N-channel MOSFET N1 and the OR and NOR gates may be used for supporting 3-level signaling that includes a HI-Z output state when OE is inactive (when OE# is high). Other equivalents that can support such 3-level signaling may be used instead.
  • [0102] Elements 130 a, 130 b represent programmably-configurable tuning means for tuning the respective VOH and VOL, binary output levels of line-driver 130. Although elements 130 a, 130 b are shown as being in series with elements P1, N1, it is to be understood that such an arrangement is conceptual. The tuning of the respective VOH and VOL, binary output levels may be instead performed by parallel circuitry in which the effective channel width of transistors such as P1, N1, is modulated, for example by enabling more or fewer transistors that operate in parallel with P1, N1. If such a parallel-tuning approach is used, voltage levels VccQ and VddQ are essentially the same. In one embodiment, VddQ is about 2.50V, VssQ is about 0V, and due to the source-to-drain on-resistances (or effective channel widths) of MOSFET elements P1, N1, the respective VOH and VOL output levels are approximately 1.85V and 0.65V at the output pin of module 130. The Vterm level is about midway between VOH and VOL such that source current flow is about +12 mA for representing a SLIO logic high (‘1’) and sink current flow is about −12 mA for representing a SLIO logic low (‘0’).
  • With this circuit configuration, the respective high (H) and low (L) voltage levels at [0103] second tap point 134 b are about 1.60V and 0.90V. A locally-situated reference voltage level Vref that is provided at the SLIO receiver circuit 140 is positioned about midway between these H/L levels of tap point 134 b and is supplied to one input terminal of receiver circuit 140, for example to a minus (−) input of comparator 143.
  • In the illustrated example of [0104] SLIO receiver circuit 140, a second input terminal of comparator 143 (e.g., the plus (+) terminal) couples to the SLIO transmission line 133/135 by way of tap point 134 b, and by further way of isolating stub resistor 138 and package interconnect impedance 141 (Zpack2) The value of Zpack2 may vary depending on specific package design of circuit 140.
  • Further in this example, an output of [0105] comparator 143 couples to a D input of flip flop 145 and indicates whether at a given point in time, the received signal level is above or below the local Vref. Alternative methods for detecting the state of tap point 134 b may be used. This is merely an example.
  • Further in this example, an internal first clock, ICLK[0106] 1 of SLIO receiver circuit 140 controls the latching instant of flip flop 145. Alternative methods for defining the state-sampling time or times for tap point 134 b may be used. This is merely an example. The internal first clock, ICLK1 may be generated in a variety of ways. For example, a phase-lock loop (PLL) circuit or delay-locked loop (DLL) circuit 146 may be coupled to clock source 136 by way of coupling means 137. A phase and/or frequency locked output 147 a of the PLL/DLL circuit may be supplied to plural delay elements 148 a, 148 b, 148 c, etc. Alternatively, a differently buffered route 147 b may be used to couple means 137 to the delay elements 148 a, 148 b, 148 c, etc. Some or all of the delay elements 148 a, 148 b, 148 c, etc. may be programmably-adjustable so as to selectively provide different vernier values of phase shift over the cycle length of clock source 136. The respective, phase-shifted versions, ICLK1, ICLK2, ICLK3, etc. may be distributed about SLIO receiver circuit 140 as appropriate. Again, this is merely an example of how to establish vernier control over sampling time. Other approaches may be taken.
  • During power-up and periodic recalibration modes, the output drive levels of respective line drivers such as [0107] 130 should be tuned by the memory controller 150 to achieve and maintain over time, the expected 0.90 v and 1.60 v drive levels on the main SLIO transmission line (e.g., at tap points 134 a and 134 b). Transmission means 137 can be a second, so-tunable SLIO path. However, here we are focusing on the adjustments made for keeping SLIO transmission line 133/135 within calibration.
  • In FIG. 1C, C[0108] TAP represents a lumped and parasitic, impedance perturbation due to tap point 134 b disturbing the distributed impedance of the main SLIO transmission line 133/135. This lumped, impedance perturbation can be attributed to a via hole passing through a printed circuit board (PCB) and/or a slot connector on a controller mother board that removably receives a SLDRAM module package or IC package. CPAD represents a lumped and parasitic, impedance perturbation due to an internal IC pad within receiver circuit 140. Stub resistor 132 helps to isolate the main SLIO transmission line 133/135 from load perturbations and signal reflections that may be presented to the line by driver 130. Stub resistor 138 helps to isolate the main SLIO transmission line 133/135 from load perturbations and signal reflections that may be presented to the line by receiver 140. Line terminating resistor 139 (RT) is approximately 30 Ω.
  • Many factors can contribute to variations in the parametric values of elements such as [0109] 131-135, 138, 141, CTAP and CPAD, where these elements influence the signal levels and phases seen by comparator 143.
  • FIG. 1D illustrates a possible mechanical arrangement for an SLDRAM system. Here, a [0110] first transmission plane 149 a represents a controller mother board. An orthogonally-disposed second transmission plane, 149 b represents a SLDRAM module or daughter board. Node 134 c is representative of a tap means that allows unit 149 b to be removably inserted for tapping into the SLIO transmission line. An example of such connectors are shown at 182 and 188.
  • Distance d[0111] 0 is a lead-in separation between the package pin of SLIO line driver 130.1 and stub resistor 132.1. Distance d1 is a first PCB trace length from the front end of the SLIO transmission line to tap point 134 c. Distance d2 is a second line length from the tap point 134 c to stub resistor 138.1 on the daughter board 149 b of receiver of unit 140.1. Distance d3 is a third line length from the tap point 134 c to an RT termination on the mother board 149 a.
  • Designers of PCB's (printed circuit boards) and IC's (integrated circuits) are relatively free to optimize this arrangement as they see fit for reducing noise, cross-talk, package size and so forth. As such, the ultimate parametric values that are seen on each SLIO transmission line (e.g., [0112] 133/135 of FIG. 1C) may vary. In one embodiment, lead-in distance d0 is approximately 50 mm; the maximum trace length d5 on the mother board is approximately 175 mm; and inter-module spacing d4 is approximately 15 mm. Wire length d6 on each daughter board 149 b from connector (182, 188) to the SLDRAM module (including through the stub resistor) is about 15 mm. Further in this one embodiment; trace widths are approximately 6-mils per track and track pitch is approximately 20-mils. The characteristic impedance of each SLIO trace taken by itself is about 60 Ω to 65 Ω. The presence of the closely-spaced stub resistors reduces the effective line impedance to about 30 Ω to 35 Ω, which close to the value of the termination resistor. Ground lines and/or planes may be interleaved between SLIO traces to provide shielding and reduce cross-talk.
  • It should be apparent in view of the above description of FIG. 1C that in-circuit tuning during the initialization phase and during periodic re-calibration operations is expected to compensate for design differences, including different values of line distances d[0113] 1, d2, d3, etc. (FIG. 1D); different values of package impedances such as Zpack1, Zpack2; different values of trace impedances such as Ztrace1, Ztrace2; different values of other load disturbances such as CTAP, CPAD; and changes over time due to voltage drift, temperature drift, mechanical reconfiguration of where different SLDRAM modules are inserted, and so forth. The tunable values include variable driver-output levels as represented in FIG. 1C by elements 130 a, 130 b and variable sampling times as represented in FIG. 1C by elements 146, 148 a-148 c.
  • FIG. 1E provides a legend of some symbols used in the drawings. A generally-tunable delay element or phase-defining means is represented by an oval and sine-wave tail as shown at [0114] 191. As is understood in the art, there are many ways to define the phase of a given signal. These techniques can employ analog or digital delay elements or latches that are strobed by differently phased clock signals or combinations of such elements. The phase defining operation can operate similarly on both rising and falling edges of a given signal or differently with respect to each edge. The general intent of symbol 191 is to convey that the phases of one or both of the rising and falling edges of the more signals (e.g., input and output) passing along the indicated path are adjustable on one or both of a fine and coarse adjustment scales as appropriate for the context of the illustrated path. For input signals, phase adjustment is to be understood to include some way of defining when the input signal is sampled so as to determine its state at the sampling time. For output signals, phase adjustment is to be understood to include some way of defining when the output signal transitions from one state to another (e.g., from low to high).
  • A coarsely and vernierably-fine tunable delay element or phase-defining element is represented by an oval and two sine-wave tails (one dashed) as shown at [0115] 192. A vernierably-fine tunable delay element or phase-defining element is represented by an oval and a dashed sine-wave tail as shown at 193. In one embodiment, coarse delay/phase tunings are provided in quantums of CCLK clock ticks while vernier-fine tunings are provided in fractional quantums of a CCLK clock tick. A CCLK clock ‘tick’ is the time length between a rising and successively falling edge of a CCLK pulse.
  • Further in FIG. 1E, a generally-tunable, output-level defining element is represented by a circle and a sinewave tail as shown at [0116] 195. A “H” in the symbol indicates that it is for tuning the VOH level of the corresponding driver output while a “L” in the same symbol indicates that it is for adjusting the VOL output level of the tunable output driver. Thus, the composite symbol shown at 197 represents an SLIO transmitter with individually-tunable VOH and VOL output levels. The OE (output-enable) terminal of symbol 197 indicates that the symbol further represents a tristatable driver which provides a high-impedance (HI-Z) state at each of its respective outputs when OE is brought low (deactivated). In accordance with traditional symbolism, the output of the driver 197 that has an open circle (bubble) represents the inverted output while the solid output line above it carries the non-inverted complementary output signal. The dashed line coming from the middle right of symbol 197 indicates that it is a SLIO transmitter that is driven by the noise-isolated VccQ and ground power rails.
  • Similarly, [0117] symbol 196 represents a SLIO receiver. The dashed line at one of its inputs indicates that SLIO receiver 196 is responsive to a locally-supplied Vref reference level for determining the state at its other, solid input terminal. Although not specifically shown, it understood that a SLIO receiver which receives complementary, inverted and non-inverted SLIO signals may employ differential techniques for removing common mode, noise before comparing against the locally-supplied Vref reference level.
  • Connections to SLIO transmission lines may be bidirectional such a same tap is used for both input and output. The multi-directed symbol at [0118] 198 represents a SLIO transceiver that provides bidirectional buffering. It is understood to be a combination of differential driver 197 and either two copies of SLIO receiver 196 (one for each of the differential lines) or a differential SLIO receiver.
  • Given the above introduction, reference is now made to FIG. 1B for a better understanding of details of the there illustrated [0119] SLDRAM System 100′. It should be understood with regard to FIG. 1B that various liberties were taken due to space limitations in the drawing. For example, LINKON line 151 c 3 is not shown extending to and coupling to all SLDRAM modules (110′, 120′, etc.). Such coupling is nevertheless understood. Similarly, the couplings of RESET# line 151 c 4, LISTEN line 151 c 2 and FLAG line 151 c 1 to all SLDRAM modules (110′, 120′, etc.) is not fully shown but nevertheless understood. Additionally, reference 155 b,c is intended to cover four, single-end terminated, clock lines even though the drawing shows only two such lines at the local of reference 155 b,c. (All four lines are shown at the local of elements 155 j, 155 k.) Moreover, symbol 118 is intended to correspondingly represent two SLIO transceivers coupling respectively to the four lines of 155 b,c. Symbol 113 a may represent a plurality of tunable delay or phase-establishing elements (e.g., each for a respective rising or falling pulse edge and/or each for a respective input or output signal) although only one symbol is shown at 113 a. There are other examples of such drawing liberties as will become apparent from the below, detailed description.
  • In the [0120] illustrated SLDRAM system 100′, power supply 101 provides a sequence of power levels upon system turn-on. First, a general LVCMOS voltage rail Vcc (typically +2.50V) is activated. Then, after a predefined start-up delay of say 2 microseconds, the SLIO dedicated supply VccQ (also typically +2.50V) is activated. Termination voltage Vterm is turned on thereafter. Reference voltage Vref may be turned on simultaneously with Vterm or shortly thereafter. SLIO receivers should ignore their inputs and output a default state at least until their local Vref is activated. Vterm is preferably turned on after VccQ so as to avoid latch-up problems.
  • The V[0121] cc, VccQ, and Vref power levels are respectively applied to the illustrated command module 150′ and the daisy-chained sequence of SLDRAM modules 110′, 120′, etc. (only two shown) in accordance with the above sequence. It is understood that SLDRAM System 100′ can have more than just the illustrated two SLDRAM modules 110′, 120′ and that general descriptions herein extend generally to such further SLDRAM modules. A free-running oscillator 103 is provided for generating the CCLK (command clock) signal from a reference point when LINKON 151 c 3 is active. If desired, a power saving switch 102 may be included to disable oscillator 103 when LINKON is low. The frequency, waveshape and voltage levels of oscillator 103 may be programmably adjustable or not, as desired. The oscillator output is coupled to the CCLK bus 151 b by way of a differential-output, SLIO driver 151 k. Line-driver 151 k may have tunable output levels or not, as desired. Additionally, it may be tristatable or not, as desired. If it is tristatable, its OE terminal should be driven by the LINKON signal 151 c 3 so that power is conserved when LINKON is false. Typically, line-driver 151 k and at least part of oscillator 103 will be included within the sealed package of command module 150′ so that the pins of module 150′ serve as a reference plane. Driver 151 k is shown outside for clarity and to emphasize the point that data transfer operations of SLDRAM System 100′ are mediated by synchronous command packets, where such command packets are synchronized to a reference point that outputs the CCLK signal. If desired, oscillator 103 may be replaced by a distant clock source at a distal end of system bus 90. A DLL or PLL may be used locally to regenerate a local reference version of that distal clock source.
  • [0122] Stub resistor 106 a couples the non-inverting, CCLK output of line-driver 151 k to SLIO transmission line 107 a. Stub resistor 106 b couples the inverting CCLK# output of line-driver 151 k to SLIO transmission line 107 b. Node 108 a represents a first tap into line 107 a by a CCLK-receiving part of a first SLDRAM module 110′. Node 108 b represents another tap into line 107 b by the CCLK-receiving part (119) of module 110′. Termination resistor (RT) 109 a is provided at the end of line 107 a and coupled thereafter to Vterm. Similarly, termination resistor (RT) 109 b is provided at the end of line 107 b and coupled thereafter to Vterm. In one embodiment, each SLIO transmission line such as 107 a and 107 b is structured to operate with a switching frequency of about 200 MHz or higher.
  • [0123] SLDRAM module 110′ includes at least one individually-addressable memory unit (IAMU) 111. This IAMU 111 comprises a plurality of selectable memory banks. See for example, the selectable Bank0 (511 a) in the illustrated group of banks 511 of FIG. 5A. Each bank includes a plurality of selectable rows. See for example, the selectable top row 511 b of Bank0 of FIG. 5A. (Note that an already-opened (currently selected) row is referred to herein as a “page”.) Each row comprises a plurality of selectable columns. See for example, column 511 c of FIG. 5A. Each column (e.g., 511 c) comprises a plurality of dynamic memory cells for storing a respective plurality of data bits. In one embodiment of IAMU 511 (FIG. 5A), each column stores 72 bits; each row contains 128 columns; each bank contains 1024 rows (1K of rows); and the IAMU 511 has 8 banks. This provides a DRAM data storage capacity of 9,437,184 bits per bank or 75,497,472 bits (72 Mb) for all 8 banks. Other configurations are possible. Each given IAMU can have a different number of banks, a different number of rows per bank, and a different number of columns per row. Different embodiments of system 100′ can even have different numbers of bits per column. FIG. 5A merely provides an illustrative example.
  • A page read latency value is associated with-[0124] IAMU 111. In FIG. 1B such a PgRd latency is associated with coarse-and-tunable delay element 112 a. This tunable PgRd delay 112 a indicates at minimum how much time it would take to read an already-opened row (a page) within an already-opened bank after a page-read command packet is issued by command module 150′. The delay of tunable PgRd delay element 112 a may be increased by the command module 150′ to provide a longer delay as appropriate for scheduling page-read bursts. It is seen in FIG. 1B that the conceptual flow of read data is from IAMU 111 through PgRd element 112 a and through output-level tunable line-driver 116 (tristatable) to the DQ_A bus 155 a. The value of the PgRd latency 112 a is generally tuned or set by the command module 150 during module-read initialization and subsequent, periodic recalibrations.
  • Another fine-and-coarse tunable delay element of FIG. 1B, namely [0125] 112 b (BkRd) represents at least the latency delay of IAMU 111 for a given bank read operation where the bank read operation generally requires the selecting or opening of a specific bank, in combination with the selecting or opening of a specific row. The delay of tunable BkRd delay element 112 b may be increased by the command module 150′ to provide a longer delay as appropriate for scheduling bank-read bursts. Again, the data flow path is conceptually from IAMU 111 through delay element 112 b, through line-driver 116 to the DQ_A bus 155 a. In the actual device, the tunable delay is usually established by vernier shifting of phases of internal clocks that strobe respective latches of the data pipeline instead of using analog delay elements. However, any kind of delay technology may be used as appropriate. The SLDRAM system definition does not mandate a specific internal technology for each SLDRAM module.
  • Data read operation over [0126] DQ_A bus 155 a continue in system 100′ with the receipt by an SLIO transceiver 155 d within the command module 150′ of the SLIO transmitted signal. During initial read-calibration and periodic recalibrations, the tunable output elements 114 of line-driver 116 are adjusted by the command module 150′ to optimize the transfer of data from line-driver 116 to transceiver 155 d by way of bus 155 a. Specifics of this optimization process is left to design choices made by designers of the overall system 100′. A main feature of the present invention is that SLDRAM module 110′ may be manufactured with loose tolerances so as to minimize its costs. The in-circuit tunability of delay elements such as 112 a,b and of level-controlling elements such as 114 allow for in-circuit matching of the characteristics of the SLDRAM module 110′ to the characteristics of the in-circuit data bus 155 a and to those of the in-circuit command module 150′.
  • In one embodiment, after individual ID's have been assigned, the SLDRAM system [0127] 106′ is further initialized by sequentially commanding each in-circuit SLDRAM module 110′, 12′, etc., to adjust output levels of the SLDRAM module's respective data-line driving circuits (116, 126) and data-clock driving circuits (118, 128) to H and L levels that are acceptable to the in-circuit command module 150′. This may be done using DC levels as will be seen. After the H and L levels are tuned using command-tunable elements such 114, 124, etc, the SLDRAM system 100′ may be further initialized by sequentially commanding each in-circuit SLDRAM module 110′, 120′ to respectively output a predefined second synchronization sequence (which can be the same as the first synchronization sequence, e.g., ‘111101011001000’) over the data lines (e.g., DQ(17:0) 156 a) of the system while simultaneously and synchronously outputting from the clock-drivers 118, 128 of the commanded SLDRAM module, a continuously-running clock train over one or both of the data-clock lines (e.g., DCLK0, DCLK1) of the system. This allows the in-circuit memory controller to command adjustments (e.g., individual phase changes) to the delay elements such as 112 a,b, 122 a,b of the local data-outputting circuits and/or to delay elements (or phase-setting elements) such as 113 a, 123 a of local data-clock outputting circuits of the sequence-outputting SLDRAM module so that the memory controller will be able to synchronously recognize the predefined second synchronization sequence at the locality 156 d, 155 j, 155 k of the memory controller 150′.
  • Matching of the in-circuit characteristics for data write operations follows a similar approach. During the initial broadcasting of the first synchronization sequence (e.g., ‘111101011001000’) by [0128] SLIO transceiver 155 d and line-driver 155 o of the command module 150′, vernier delay elements such as 112 d may be locally adjusted by their respective SLDRAM modules, 110′, 120′, etc. to optimally detect the predefined synchronization sequence. In one embodiment, wherein the initial broadcasting of the first synchronization sequence is aligned with the CCLK at the reference plane (the pins) of command module 150′, vernier delay/phase units such as 113 c,d are locally adjusted by their respective SLDRAM modules, 110′, 120′, etc. to define the sampling times of SLIO receivers 115, 117 such that units 115, 117 optimally detect the predefined synchronization sequence on the DQ and CA buses. In a subsequent, individual tuning operation, coarse delays such as those of PgW 112 e and BkW 112 f are set in accordance with commands sent from the command module 150′.
  • Thereafter, data flow during write operations conceptually flows from [0129] SLIO transceiver 155 d, through DQ bus 155 a, through vernier delay (or detection phase setting) 112 d, through SLIO receiver 115, through a corresponding one of coarse delays 112 e, 112 f, and then into IAMU 111 for performing either a page write (PgW) or a bank write (BkW) operation.
  • Command output operations of the [0130] command module 150′ are synchronized with the command clock (C_CLK/C_CLK#) of bus 151 b, which CCLK generally originates from module 150′. Data write operations are similarly synchronized to the command clock by having the command module 150′ drive a corresponding one of the D_CLK 0/0# or D_CLK 1/1# from respective SLIO transceivers 155 j and 155 k. On the other hand, data read operations are synchronized with a command-specified one of the D_CLK0 and D_CLK1 signals, where the command-specified data clock originates from the data-sourcing SLDRAM module 110′, 120′, etc. These SLDRAM module sourced signals are received respectively by transceivers 155 j and 155 k of command module 150′. SLIO transceiver 155 d uses the received one of the D_CLK0 and D_CLK1 signals to sample its data from DQ_A bus 155 a.
  • Within each SLDRAM module, internal clocks (ICLK's) of each SLDRAM module are formed as delayed counterparts of the CCLK signal. In [0131] SLDRAM module 110′ for example, the differential SLIO receiver 119 acquires the CCLK signal from its respective tap points (108 a,b) on lines 107 a,b. The switching signal that is there detected by SLIO receiver 119 is operatively coupled to one or more vernierably tunable delay means (or phase-defining means) such as 113 c,d for producing local ICLK signals. These local ICLK signals may be used during the broadcast synchronization operation to establish the signal latching phases of SLIO receivers such as 115, 117. Additionally, vernierably tunable delay/phase means such as 113 a,b are operatively coupled to SLIO transceiver 118 for producing locally-phased versions of the DCLK0A/DCLK0A# (155 b) and DCLK1A/DCLK1A# (155 c) clock signals.
  • As seen, [0132] SLDRAM module 120′ has its own set of separately tunable delay/phase means 123 c,d and its own set of counterpart SLIO receivers 125 (for data read) and 127 (for command receive). The specific values of tuned delay in each respective SLDRAM module 110′, 120′, etc. can be adjusted in accordance with the impedances of respective local tap points such as 108 a,b and in accordance with respective transmission line lengths present between the C_CLK source 151 k and the respective circuits (e.g., 119, 115, 117, 129, 125, 127) within the corresponding SLDRAM module 110′, 120′, etc.
  • When signals flow the other way during a read operation, from a given SLDRAM module ([0133] 110′, 120′) to command module receiver 155 i, the respective module 110′, 120′ is responsible for generating a correspondingly phased data clock onto respective bus 155 b or 155 c. Due to space constraints, both of the DCLK0 and DCLK1 differential buses are shown in FIG. 1B as combination 155 b,c above modules 110′ and 120′. It is to be understood that the corresponding, differential bus-transceivers 118, 128 each actually represents two such SLIO differential transceivers, one dedicated to the D_CLK 0 bus 151 b and the other dedicated to the D_CLK 1 bus 151 c. The clock phase for each of these two data clock buses 155 b,c are respectively controllable by tunable delay elements such as 113 a, 113 b and 123 a, 123 b.
  • Thus, the separate tap and transmission line characteristics attributed to each SLDRAM module and to each [0134] data clock bus 155 b,c may be individually compensated for based on the specific in-circuit location of the data originating SLDRAM module relative to the command module 150′. This compensation accounts for the round trip path taken starting with the issuance of command packets from the command module 150, where these packets travel synchronously to an addressed SLDRAM module by way of the CA lines 151 a while accompanying clock signals travel along the CCLK lines 151 b. The pre-tuned SLIO receiver such as 117 or 127 of the addressed IAMU introduces the command at the appropriate time into its SLDRAM module because of the synchronization-time pre-tuning of delay/phasing means 112 c and 122 c, or 113 c,d and 123 c,d.
  • The addressed IAMU responds to its command blindly. Its response latency is compensated for by individually calibrated elements such as [0135] 112 a,b; 112 e,f; 122 a,b; etc. Thus, in a read operation, compensation continues by having the data clock signal DCLK0/1 originate in the data-sourcing SLDRAM module and having it move through delay or phase-establishing elements such as 113 a, 123 a and local clock transceivers 118, 128 onto the DCLK bus 155 b,c. At the same time, a correspondingly synchronized burst of read data moves from the addressed IAMU (e.g., 111, 121) and through delays 112 a,b or 122 a,b and the in-circuit-calibrated driver 116 or 126 back to the command module 150′ by way of DQ_A bus 155 a. Thus each SLDRAM module includes local compensating means for compensating for its unique in-circuit situation.
  • In other words, if data is to be sourced from line-[0136] driver 126 of second module 120′—and module 120′ has substantially different latencies than first module 110′—the correspondingly tuned data clock (DCLK0/0# or DCLK1/1#) will be generated by transceiver 128 of second module 120′. Corresponding tunable phase-establishers 123 a,b will be used to define the local phase of the originated DCLK signal. Corresponding tunable phase-establishing elements 122 a,b and 124 will be used to define the local phase and H/L levels of the originated burst of read data. If the read data is to be instead sourced from differently positioned line-driver 116 of first module 110′, the correspondingly tuned data clock will be generated by transceiver 118. Corresponding tunable elements 113 a,b, may be used to define the local phase of the there originated DCLK signal. Corresponding tunable elements 112 a,b and 114 may be used to define the local phase and H/L levels of the there originated burst of read data. As such, the unique positionings and other variances of each SLDRAM module 110′, 120′, etc. and of the command module 150′ may be compensated for individually by appropriate tuning of the tunable elements in each SLDRAM module 110′, 120′, etc.
  • The tuning ranges that are available for each respective set of tuning elements may be set forth in a corresponding, local configuration memory (LCM) [0137] 110 a, 120 a, etc. of the respective module 110′, 120′, etc. The organization of memory banks, rows and columns should also be set forth in the corresponding LCM 110 a, 120 a, etc. for each IAMU ill, 121, etc. Local configuration memories such as 110 a, 120 a, etc. may come in mixed forms such as ROM (read only memory) or PROM (once-programmable memory) or EEPROM (electrically-erasable and re-writable nonvolatile memory) and registers or SRAM. These local configuration memories 110 a, etc. are used for storing fixed data and variable calibration settings of their respective SLDRAM modules.
  • During initialization (but after ID assignment), the [0138] command module 150′ should address each SLDRAM module 110′, 120′, etc. individually and tune its respective VOH and VOL output levels for line drivers such as that of 116 and 118 in module 110′. The command module 150′ may do so by commanding the addressed SLDRAM module to output a selected one of a DC (direct current) ‘0’ level and ‘1’ level onto a corresponding one of the DQ_A bus lines 155 a and/or the DCLK0A/DCLK0A# (155 b) lines and/or the DCLK1A/DCLK1A# (155 c) lines. Then in response to the levels detected at its end of each of these buses 155 a, 155 b, 155 c; the command module 150′ may command the addressed SLDRAM module to increment or decrement the tunable VOH and VOL levels until a satisfactory state is reached. In general, the command module 150′ uses its local Vref to define what received VOH and VOL levels are satisfactory.
  • After V[0139] OH and VOL calibration, the command module 150′ should instruct each SLDRAM module in turn to individually output the predefined synchronization sequence (e.g., ‘111101011001000’) onto each line of the DQ_A bus 155 a. In FIG. 1B this output comes from line-driver 116 when 110′ is the addressed module. At the same time, the command module 150′ should instruct the addressed module to begin a free-running output of its local clock onto both the DCLK0A/DCLK0A# (155 b) bus and the DCLK1A/DCLK1A# (155 c) bus. In FIG. 1B these outputs comes from transceivers 118 (only one of a pair shown) when 110′ is the addressed module. Then in response to the synchronized samplings detected at its end of each of these buses 155 a, 155 b, 155 c; the command module 150′ may command the addressed SLDRAM module to increment or decrement the tunable vernier setting of delay element such as 112 a,b 113 a,b until a satisfactory state is reached. That satisfactory state is of course, acceptable discrimination of the predefined synchronization sequence (e.g., ‘111101011001000’) on each line of the DQ_A bus 155 a in synchronism with the received clock signals of each of DCLK buses 155 b and 155 c.
  • After the individualized read synchronization process completes, the [0140] command module 150′ should instruct each SLDRAM module in turn to individually perform one or more Bank Read operations and one or more Page Read operations while all other SLDRAM modules remain quiet. These read commands should use both of the DCLK buses 155 b, 155 c, each in turn. A DCLK preamble waveshape (see FIGS. 2A-2B) should be seen on the respective DCLK bus 155 b, 155 c just before the responsive burst of read data comes in. The command module 150′ should measure the time between its command issuance and its receipt of the DCLK preamble waveshape to determine what the current latency of the addressed SLDRAM module is. (During active RESET#, each SLDRAM module should have reset itself to have its own minimum page and bank latencies. Thus, the read latencies measured shortly after RESET should be the respective minimum page read and bank read latencies of each respectively addressed SLDRAM module.) Information collected about the current read latencies of all the SLDRAM modules may next be used to define a smallest-allowed value for each of the page read and bank read latencies for the SLDRAM System 100′ as a whole. Typically, these smallest-allowed values will be the page/bank read minimums of the slowest-to-read-from SLDRAM module (110′, 120′, etc.) in the system 100′.
  • After the individualized read latencies measurements complete, the [0141] command module 150′ should measure the write latencies of each SLDRAM module in turn. This may be done by having the command module 150′ output an extended burst of write data onto the DQ_A bus 155 a immediately in conjunction with an ungapped series of write commands. The ungapped series of write commands should address consecutive locations within the SLDRAM module that is being tested. The corresponding extended burst of write data should first contain a slate-cleaning code such as all zeroes. Then the operation is repeated over an upper subset of the same set of addresses with the extended burst of write data now containing a predefined unique sequence of codes such as the values, 0, 1, 2, . . . , 31. This latter operation assumes a write latency of zero. The addressed SLDRAM module will have a greater write latency however. As such, one or more of the early members of the unique sequence of codes will not be written successfully into the addressed SLDRAM module. The corresponding memory locations will still have the clean slate code. The first memory location that does get written successfully into will contain a respective member of the unique sequence of codes (e.g., 5, 6, 7, 8, etc.).
  • By simply reading back the memory locations to see which memory location is the first to have had a member of the unique sequence of codes over-written successfully thereat, the [0142] command module 150′ (or an upstream, more intelligent master) can determine what the current write latency is of the SLDRAM module that is being tested. Again, these write latency tests should be conducted for both page write and bank write operations using respective ones of the DCLK buses, 155 b and 155 c, so as to obtain a fair measure of overall system performance. (During active RESET#, each SLDRAM module should have reset itself to have its own minimum page and bank latencies. Thus, the write latencies measured shortly after RESET should be the respective minimum page write and bank write latencies of each respectively addressed SLDRAM module.) Information collected about the current write latencies of all the SLDRAM modules may next be used to define a smallest-allowed value for each of the page write and bank write latencies for the SLDRAM System 100′ as a whole. Typically, these smallest-allowed values will be the page/bank write minimums of the slowest-to-write-to SLDRAM module (110′, 120′, etc.) in the system 100′.
  • During initialization (but after ID assignment and read synchronization), the [0143] command module 150′ may address each SLDRAM module 110′, 120′, etc. individually to collect from the addressed module, certain characteristics information stored within the respective LCM (110 a, 120 a, etc.) of the SLDRAM module. Either the command module 150′ or an upstream more-intelligent controller (not shown but understood to couple by way of system bus 90) may store the collected information from the LCM's in its own configuration-tracking memory. In FIG. 1B such a configuration-tracking memory 150 b is shown situated within the package of module 150′. If desired, the configuration-tracking memory 150 b may be located outside the package of module 150 in another, more intelligent and upstream means that couples to module 150′ by way of system bus 90. See FIG. 1A.
  • This configuration-[0144] tracking memory 150 b may be used after initial calibration or after periodic re-calibration operations to keep track of the currently-tuned states of each of the SLDRAM modules 110′, 1201, etc. and of their respective memory organizations. This information may be used to appropriately schedule data read and data write operations over a shared data bus (e.g., 155 a) such that contention is avoided between SLDRAM modules 110′, 120′, etc. The tracking information may be further used to optimize read and write scheduling so that wasteful time gaps between data bursts may be avoided or at least minimized. Such minimization of wasteful time gaps helps to obtain maximal usage of the bandwidth provided by the shared data bus 155 a.
  • It should be understood from FIG. 1B that dashed [0145] box 155 x represents the resources of a first DataLink (A) corresponding to 155 of FIG. 1A while dashed box 156 x represents the resources of an optional second DataLink (B) corresponding to 156 of FIG. 1A. Although not fully shown, the resources 156 x of the optional secondary DataLink are understood to include dual differential transceivers such as 155 j, 155 k and a set of eighteen data line transceivers such as represented by 156 d. All the calibration and measurement operations that have been described above for DataLink_A 155 may be further employed for the optional DataLink_B 156 if it is present. It is left to the command module 150‘to read the LCM’s (110 a, 120 a) of the respective SLDRAM modules for determining whether the optional DataLink_B 156 is functionally present in the system and whether and how such an additional DataLink_B 156 should be used to improve read and write bandwidths.
  • FIG. 2A provides a simple, first example of how latency information for each SLDRAM module may be advantageously used to closely pack respective data bursts on a shared DataLink (e.g., [0146] 155) while avoiding contention. A first command packet 210 consisting of four 10-bit wide command words is posted onto the CommandLink 151 beginning at time to. Successive command words are synchronized with respective ‘ticks’ of the C_CLK. A tick corresponds to the duration between a rising and subsequently falling edge of the C_CLK. A ‘1’ in the 5 -bit FLAG sequence ‘01000’ identifies the beginning of the command packet 210.
  • It is assumed here that command [0147] packet 210 is a data read command addressed to a given first SLDRAM module (e.g., 110′). The response latency of the addressed first module is represented by time passage 211. Starting at a time point t1, the addressed first SLDRAM module outputs a predefined preamble waveshape 212 onto a command-specified one of the D_CLK buses, 155 b or 155 c (assume it is D_CLK 0 here).
  • The [0148] predefined preamble waveshape 212 should have a duration that is not longer than that of two minimum data bursts (so that minimum bursts can be interleaved using the DCKL0 and DCLK1 buses). It should be distinguishable from an alternating train of successive 1's and 0's (10101010 . . . ) as well as from maintenance of a power-conserving HI-Z state. It should also include at least one L-to-H transition and one H-to-L transition for removing intersymbol interference (ISI). Furthermore, the preamble waveshape 212 should have a continuous period of at least two clock ticks where its level is all 1's or all 0's during which the receiving device can safely enable its DCLK clock input without seeing any transitional glitches on the DCLK lines. In one embodiment, the predefined preamble waveshape 212 has a duration of 5 DCLK ticks (5 data word time slots) and consists of the 5 bit L/H sequence: 00010.
  • A first data word output by the addressed SLDRAM module appears on the [0149] DQ_A bus 155 a in alignment with an end 213 of the predefined preamble waveshape 212. At the same time, the data originating module (e.g., 110′) toggles its assigned D CLK 0 bus with a windowed running of the data clock train immediately following the preamble waveshape 212. This windowed running of the data clock is used for synchronizing remaining words of its output data burst 230. Illustration here of the DCLK edges centering with, the middle of each data word is purely conceptual and not intended to imply that such is necessarily the case. The phase relationship between a given data clock signal and its data words depends on where physically along their respective transmission lines each one is observed. During data read operations, the phase of the DCLK at its point of origin will generally not be the same as the phase of the CCLK at its point of origin. This is what the illustration here of the DCLK edges centering with the middle of each data word is intended to convey. In general, the embodiments disclosed herein rely on source synchronous clocking. This means that a known phase relationship exists between clock edges and their corresponding data (or clock) words at the source point on the bus where the respective clock and data (or command) signals are injected into the bus. The clock edges and the corresponding data (or command) words should track one another very closely as they move along the bus for receipt by a distant receiving device. The receiving device is expected to have internal, fine vernier phase adjustment means for compensating for fine skews of phase that may occur as respective clock and data (or command) signals move into the receiving device.
  • In one embodiment, data burst [0150] 230 consists of a minimum of four consecutive data words, each 18 bits wide. The corresponding command packet 210 may define the burst length as being the minimum or longer. Thus, for each read command packet in general, a responsive data burst 230 is produced by the addressed SLDRAM module and this data burst is defined as consisting of M consecutive words, where M is an integer equal to or greater than 4, and more preferably where M is a whole number multiple of 4.
  • [0151] Command packet 210 finishes using the CommandLink 151 at time point t4. At a time point t10, which latter point can be coincident with t4 or it can come later, a next successive command packet 220 is placed on the CommandLink 151. Interpacket gaps such as 205 are optional and may be used to avoid contention on the shared DQ bus (e.g., 155 a) between responsive data bursts.
  • In this example, the [0152] second command packet 220 is a read command that is addressed to a second SLDRAM module (e.g., 120′) different from that targeted by first command packet 210. A second response latency 221 is associated with the reaction of the second SLDRAM module to second command packet 220. In accordance with the invention, the optional interpacket gap 205 should be adjusted such that the beginning 223 of the next data burst 240 (the one output by the second SLDRAM module) comes as close as possible to the end (214) of the first data burst 230 (the one associated with the first SLDRAM module) while avoiding contention on the shared DQ bus 155 a. Preamble waveshape 222 may begin to be output by the originator (120′) of the second data burst 240 onto the alternate DCLK bus (155 c) at a time point t11 even while the originator (110′) of the first data burst 230 is still using the first DCLK bus (155 b) and the DQ_A bus 155 a.
  • Note that the use of dual [0153] data clock buses 155 b,c allows for simultaneous compensation for the different positionings or other attributes of spaced-apart SLDRAM modules (e.g., 110′, 120′) and that such use also permits close coincidence between the end 214 of a first data burst 230 output by one such module and the beginning 223 of a second data burst 240 output by another such module. (In the example where 214 is the end of burst 230, it is to be understood that burst 230 consists of just the 4 data words, DATA_WD#0 through DATA_WD#3 rather than the more generic case represented by DATA_WD#M. Second data burst 240 may comprise more than its illustrated 4 data words.)
  • Note further from FIG. 2A that the use of dual [0154] data clock buses 155 b,c allows the recipient (e.g., command module 150′) of each corresponding data burst to prepare ahead of time for receipt of the beginning (213 or 223) of each respective data burst (230 or 240) by locking onto the preceding, preamble waveshape 212 or 222. Preambles such as 212 and 222 may overlap in time as will be seen.
  • FIG. 2B provides a vertically aligned timing diagram that shows a series of Page Read and Page Write commands as may be issued by the [0155] memory controller 150 to respective ones of the SLDRAM modules 110-180. FIG. 2B shows the relationship of these commands and their responsive data bursts to the CCLK, FLAG, DCLK0 and DCLK1 signals. For purposes of illustration all responsive data burst lengths are shown as 4N (where N is length of a CCLK tick) although 4N, 8N and/or longer data bursts can be dynamically intermixed if desired.
  • The read access time to a pre-opened row in a pre-opened bank, also known as Page Read Latency (PgRL#0), is shown in FIG. 2B as a 12N distance (e.g., 30 ns for a 200 MHz CCLK) between the end of the [0156] first command packet 251 and the beginning of the first responsive data burst 261. Each SLDRAM module can have its own, different Page Read Latency value as well as different Page Write and Bank Read/Write latency values. Thus the illustrated PgRL#0 applies to a respective SLDRAM module #0 but not necessarily to other modules (e.g., not to an SLDRAM #2 which in FIG. 2B is shown to have a shorter Page Write Latency value).
  • The first two illustrated [0157] command packets 251, 252 (Rd0a and Rd0b) are Page Reads to different banks in a same SLDRAM #0. The corresponding read data bursts 261, 262 both appear on the same data bus 155 a along with a companion DCLK0 signal on bus 155 b. As indicated by bracket 271 the preamble waveshape consists here of the 5-bit times, 3-level sequence: ‘00010’ wherefor ‘0’ represents a L voltage level, ‘1’ represents a H voltage level, and ‘-’ represents a M voltage level, in other words the midlevel on the SLIO line between the H and L levels. In this example, the DCLK0 preamble waveshape 271 is immediately preceded by M train 270 (‘- -’) and immediately followed by a subsequent, 8 ticks-long ‘101010 . . . ’ train 272. The combination of preamble waveshape 271 and the subsequent ‘101010 . . . ’ train 272 provides the memory controller 150 with synchronizing edges for preparing to, and for strobing-in the read data bursts 261, 262.
  • Because the first two Page Read commands [0158] 251, 252 are addressed to the same SLDRAM module, the first DCLK0 preamble 271 can provide pre-data synchronization for both of the first two Page Read bursts 261, 262. It is not necessary to insert a gap between the two 4N data bursts 261, 262. The data-outputting SLDRAM module itself can ensure that DCLK0 is driven continuously without any substantial glitch.
  • The responsive data burst [0159] 263 for the following Page Read command 253 (which command 253 is addressed to a different SLDRAM #1), should be separated from the preceding burst 262 by a data gap (Gap D1) of at least 2N duration to allow settling of the DataLink bus and to compensate for timing uncertainties between the data-clock generators of SLDRAM #0 and SLDRAM #1. A 2N data gap should be included each time control of the shared DataLink 155 passes from one module to another. This includes changeover of bus mastery, as such occurs in successive reads from different SLDRAM modules or as such occurs in read to write and write to read transitions where the command module 150 is master during the write operation and a pre-commanded SLDRAM module is master during the read operation.
  • The [0160] memory controller 150 is responsible for assuring that the 2N gap (e.g., GapD1) will be inserted between data bursts as appropriate. The command module 150 can do so by inserting a corresponding 2N gap (e.g., GapC1) or longer gaps between consecutive read or write command packets. It may alternatively create a DataLink gap by inserting on the CommandLink 151, command packets for operations other than those that use the affected DataLink 155.
  • The illustrated [0161] Read1 command 253 instructs the addressed SLDRAM #1 to use the DCLK1 bus 155 c instead of the DCLK0 bus 155 b. The responsive preamble 273 appears on the DCLK1 bus 155 c at the same time the Rd0b data bursts 262 is still using the DCLK0 bus 155 b. This parallel use of the DCLK0 and DCLK1 buses 155 b,c allows SLDRAM #1 to begin mastering and conditioning its respectively-assigned DCLK lines well in advance of the actual data burst. Shaded parallelogram 260 is provided as a visual aid for visually distinguishing between those data transmissions that use the DCLK0 bus 255 b for synchronization (this being indicated by having the respective Rd or Wr blocks shown to be isometrically positioned on top of the parallelogram 260) and those that use the DCLK1 bus 155 c (this being indicated by having the respective Rd or Wr blocks shown to be isometrically positioned off and in front of the parallelogram 260).
  • The next command [0162] 254 (Wr2) in the example is a write command using DCLK0 to strobe write data from command module 150 into SLDRAM #2. The Page Write Latency (PgWL#2) of this SLDRAM #2 is taken to be pre-programmed to a value equal to PgRL#0−2N (two ticks less than the Page Read Latency of SLDRAM #0). In order to create a 2N-long mastery-changeover gap (GapD2) on the DQ_A bus 155 a between the SLDRAM#1-mastered read operation Rd1 (263) and the controller-mastered write operation Wr2 (264), the controller 150 delays the issuance of the Write2 command 254 by including a 4N gap (GapC2) after the Read1 command 253. The programming of write latency values in this manner (e.g., PgWL#2 equals PgRL#0−2N) may be intentional so as to create one or more open 4N command slots on the CommandLink 151, which 4-word slots (e.g., GapC2, GapC3) could then be used for issuing 4-word commands of the non-data transfer kind such as row open, row close, register write or refresh. These non-transfer operations can be executed without consuming time slots on the DataLink 155.
  • The [0163] next command 255 in the example of FIG. 2B is a read command (Rd3) addressed to SLDRAM #3. An inter-packet gap is not needed between the Rd3 command 255 and the preceding Wr2 command 254 to create a 2N mastery-changeover gap (GapD3) on the DQ_A bus 155 a because the latency difference between the programmably-established values, PgWL#2 and PgRL#3 provides such a gap (GapD3).
  • The [0164] command module 150 is master over the DataLink 155 when the respective data transfer operations 266, 267 and 268 of the last three, illustrated write commands, 256, 257 and 258 are executed. As such, 2N mastery-changeover gaps are not provided between the data bursts 266, 267 and 268 even though these write to different SLDRAM modules (#4, #5 and #6). However, different DCLKs should be generated by the command module 150 alternatingly on the DCLK0 and DCLK1 lines, 155 b and 155 c, so that each of the addressed SLDRAM modules (#4, #5 and #6) can lock onto the start of it's respective write data burst (as announced by respective preambles, 276, 277 and 278). Since all write data originates from the memory controller there should be no glitches of timing as between consecutive data bursts 266 (Wr4), 267 (Wr5) and 268 (Wr6) on the DQ_A bus 155 a and the respective data clock signals on the DCLK0 and DCLK1 lines, 155 b and 155 c.
  • DataLink Mastery and Data Clocks [0165]
  • To summarize the above: for one embodiment of the invention, when control of a DataLink (e.g., [0166] 155, 156 of FIG. 1A) is passed from one module to another, each line of the databus portion (e.g., 155 a) should be left to drift to a midpoint level (M) for nominally two ticks (2N) of the CCLK 151 b. Such a mastery-changeover gap may produce indeterminate voltage levels between L and H, and possibly multiple transitions at the input terminals of receivers coupled to the DQ bus (155 a). This transient state is acceptable for the data lines themselves, but not for the data clocks which will be used to strobe in new data once it becomes valid. To solve this problem, a predefined preamble waveshape such as 271 of FIG. 2B is output onto each respective data clock bus (155 b,c) before the occurrence on the data clock bus of the first H/L transition which is associated with a corresponding first bit of read or write data (R/W data). The module that is commanded to receive the R/W data can enable it's command-identified one of two DCLK input buffers anytime during the period of the first three ticks (the initial ‘000’ period) of the preamble waveshape (271). At least one pair of dummy transitions ‘10’ (L-to-H and H-to-L) is included in the preamble to allow the data receiver to remove pulse width dependent skew from its internal version of the DCLK signal. Accordingly, the receiving device ignores the first dummy rising and dummy falling edge of the locally-received DCLK signal and begins latching valid R/W data on the second rising edge (e.g., the beginning of period 272 of FIG. 2B). Two data clock buses are provided so that gapless 4N write bursts (e.g., 266-268) to different SLDRAM modules can be accommodated and so that minimally-gapped 4N read bursts (e.g., 262, 263) from different SLDRAM modules can be accommodated. The controller 150 indicates in each command packet which of the DCLK buses 155 b,c is to be used for synchronizing each respective R/W data transfer.
  • In one embodiment, the [0167] controller 150 transmits CCLK edges that are coincident with edges of CA(9:0) command words and edges of the FLAG line (151 c 1). If the DCLK signal originates from the controller 150, the DCLK edges originating from the controller are also coincident with the CCLK edges at the controller end of CCLK transmission lines 151 b as are the edges of the DQ(17:0) data.
  • The SLDRAM modules should be able to add fraction-of-a-tick delay to incoming CCLK and DCLK signals so that such modules can produce vernier-adjustable, internal clocks for sampling commands and write data at optimum time points. The SLDRAM modules ([0168] 110-180) are generally programmed by the controller 150 to add the appropriate amount of fractional delay to DCLKs generated by the SLDRAM modules (110-180). These programmably-defined delays allow the controller 150 to accurately strobe in read data using the received DCLK signal without the need for any further internal delay adjustments within the controller 150.
  • Timing Adjustments [0169]
  • To recap, further in the one embodiment the [0170] controller 150 is expected to program each SLDRAM module with at least 4 respective timing parameters; Page Read Latency (PgR), Page Write Latency(PgW), Bank Read Latency (BkR), and Bank Write Latency (BkW). These latency values define the number of clock ticks between the end of a received command packet and the start of the associated data burst. For consistent operation of the memory subsystem, it is recommended that each SLDRAM module 110-180 should be programmed so as to appear to provide same values for the 4 different latencies as viewed from the vantage of the controller pins. Due to different round-trip bus delays from command-issuance by the controller 150 through recognition and response by the differently situated SLDRAM modules, due to the presence or absence of buffers in the system, and due to varying performances of individual SLDRAM devices, the actual values programmed into each SLDRAM module may differ considerably. On power up reset, latency registers within each SLDRAM module should automatically reset to their respective minimum values. The controller can measure the response times of each SLDRAM module after reset and then make appropriate adjustments to obtain consistent operation across the system 100.
  • In one embodiment, read latency (PgR, BkR) is made programmably adjustable in both coarse increments of unit bit intervals (unit ticks) and fine increments of fractional bit intervals (equal fractions of a tick). The controller should program the coarse and fine read latency of each SLDRAM so that read data bursts from different SLDRAM modules, at different electrical distances from the controller, all arrive back at the controller with equal delay as measured from issuance of the command packet at the controller pins. The [0171] controller 150 may, of course alternatively choose other latency schedules as allowed by the characteristics of the in-circuit SLDRAM modules. The uniform schedule one is merely the easiest to administer.
  • In one embodiment, write latency (PgW, BkW) of each SLDRAM module is made programmably adjustable by the [0172] controller 150 only in terms of coarse increments. The write latency values programmed into each SLDRAM module by the controller 150 determine when the SLDRAM module will begin looking for transitions on the command-specified DCLK lines in order to strobe in write data.
  • SLDRAM Command Format [0173]
  • Each SLDRAM command packet of one embodiment is organized as four 10-bit wide words that are transmitted over the CA(9:0) bus and are further aligned with a predefined FLAG sequence (01000) that indicates the presence of a command. The specific command packet depicted in Table 2.0 is designed for individually addressing up to 256 IAMU's (individually-addressable, memory units) where each such IAMU can have as many as 8 banks of DRAM storage, with each bank having as many as 1024 individually addressable rows of DRAM storage, and each row having as many as 128 individually addressable columns of DRAM storage. A column of DRAM storage comprises a plurality of DRAM cells whose respective bits of data are accessed as a collective burst. For the case where each column has 64 DRAM cells, this combination of banks, rows and columns represents a maximum DRAM storage capacity of 64 Megabits (64 Mb). For the case where each column has 72 DRAM cells, this represents a maximum DRAM storage capacity of 72 Mb (8×1024×128×72=75497472 bits=72 Mb). [0174]
  • In the command packet of Table 2.0, there are 9 bits (ID(8:0)) for addressing IAMU's individually or as groups. There are 3 bits for bank address, BNK[2:0], 10 bits for row address, ROW[9:0], and 7 bits for column address, COL[6:0]. The first row of x's represents a don't care. This means that the command receiver may detect the first zero in a 01000 FLAG sequence but is expected to ignore the bits of the CA(9:0) bus as they may apply to this specific command packet. They may belong to a previous command. Many other organizations and densities of memory can be accommodated within the same 40 bits of a command packet. Table 2.0 is merely an example. [0175]
  • On power up, the [0176] memory controller 150 should poll all the SLDRAM modules of the system 100 to determine how many banks, rows and columns each IAMU of each SLDRAM module has. The controller can then include the appropriate number of address bits in the command packet for each individual memory unit.
    TABLE 2.0
    DATA READ/WRITE PACKET
    FLAG CA9 CA8 CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0
    0 x x x x x x x x x x
    1 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 CMD5
    0 CMD4 CMD3 CMD2 CMD1 CMD0 BNK2 BNK1 BNK0 ROW9 ROW8
    0 ROW7 ROW6 ROW5 ROW4 ROW3 ROW2 ROW1 ROW0 0 0
    0 0 0 0 COL6 COL5 COL4 COL3 COL2 COL1 COL0
  • Memory Unit ID and Multicasting [0177]
  • The first CA(9:0) word of the command packet of Table 2.0 contains the ID bits for addressing individually-addressable, memory units (IAMU's). Each IAMU is expected to ignore any command whose ID field (ID(8:0)) does not designate the local ID of the IAMU either individually, globally or on a multi-cast basis. Local ID's are assigned by the [0178] controller 150 on power-up using the SI/SO signals. This allows the controller to uniquely address every IAMU in the system without the need for separate chip enable signals or glue logic. The packet ID field comprises 9 bits. These bits, ID(8:0) are used for commanding up to 256 IAMU's over a given CommandLink 151. Half of the 512 location address space of ID(8:0) is reserved for broadcasting and multi-casting. Multi-casting may be used to simultaneously command groups of 2, 4, 8, 16 etc. IAMU's with a single command packet. This is useful for initialization, refresh, and multiple DataLink configurations. Table 2.1 depicts one allocation of the ID(8:0) address space for individual, multi-cast and broadcast commanding. Other allocations are of course possible.
    TABLE 2.1
    Addr-
    essed
    ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 IAMU's
    0 0 0 0 0 0 0 0 0  0
    0 0 0 0 0 0 0 0 1  1
    0 0 0 0 0 0 0 1 0  2
    0 1 1 1 1 1 1 1 1 255
    1 0 0 0 0 0 0 0 0 0:1
    1 0 0 0 0 0 0 0 1 0:3
    1 0 0 0 0 0 0 1 0 2:3
    1 0 0 0 0 0 0 1 1 0:7
    1 0 0 0 0 0 1 0 0 4:5
    1 0 0 0 0 0 1 0 1 4:7
    1 0 0 0 0 0 1 1 0 6:7
    1 0 0 0 0 0 1 1 1  0:15
    1 0 0 0 0 1 0 0 0 8:9
    1 0 0 0 0 1 0 0 1  8:11
    1 0 0 0 0 1 1 1 1  0:31
    1 0 1 1 1 1 1 1 1  0:255
    1 1 Other
    1 1 1 1 1 1 1 1 1  0:255
  • The multicasting pattern of Table 2.1 may be thought of as a pyramid whose base layer contains the 128 address space pairs, 0:1, 2:3, 4:5, . . . 254:255. The next higher layer of the pyramid contains the 64 address space quartets, 0:3, 4:7, 8:11, . . . 252:255. The next layer of the pyramid contains the 32 address space quartets, 0:7, 8:15, . . . 248:255. And so on. [0179]
  • SLDRAM Commands [0180]
  • The command field of the packet shown in Table 2.0 includes the 6 bits, CMD(5:0). Table 2.2 illustrates one possible allocation of the 64 locations in the CMD(5:0) address space. CMD(5:3) define eight major command space areas as follows: (0) Page-accesses that produce a responsive burst of 4 data words; (1) Page-accesses that produce a responsive burst of 8 data words; (2) Bank-accesses that produce a responsive burst of 4 data words; (3) Bank-accesses that produce a responsive burst of 8 data words; (4) Row-operations/ Register-operations/ Event-commands; (5) Synchronization commands; (6) Reserved for future expansion; and (7) Reserved for future expansion. When the most significant bit CMD[0181] 5=0, normal read or write commands are executed. The selection of Page-based or Bank-based access, Burst Length, Read or Write, Autoprecharge, and DCLK are subselections of this main selection. Page-based access implies that a bank has been opened ahead of time and a row has been opened within that bank. When CMD5=1, other operations such row open/close, register accesses, events, or special synchronization commands may be selected.
    TABLE 2.2
    CMD5 CMD4 CMD3 Command CMD2 CMD1 CMD0 Subcommand
    0 0 0 0 0 0 Read Access, Leave
    Row Open, Drive
    DCLK0
    0 0 0 0 0 1 Read Access, Leave
    Row Open, Drive
    DCLK1
    0 0 0 0 1 0 Read Access, Close
    Row after, Drive
    DCLK0
    0 0 0 Page 0 1 1 Read Access, Close
    Access: Row, Drive DCLK1
    0 0 0 Burst of 4 1 0 0 Write Access, Leave
    Row Open, Use DCLK0
    0 0 0 Data 1 0 1 Write Access, Leave
    Words Row Open, Use DCLK1
    0 0 0 1 1 0 Write Access, Close
    Row, Use DCLK0
    0 0 0 1 1 1 Write Access, Close
    Row, Use DCLK1
    0 0 1 0 0 0 Read Access, Leave
    Row Open, Drive
    DCLK0
    0 0 1 0 0 1 Read Access, Leave
    Row Open, Drive
    DCLK1
    0 0 1 0 1 0 Read Access, Close
    Row, Drive DCLK0
    0 0 1 Page 0 1 1 Read Access, Close
    Access: Row, Drive DCLK1
    Burst of 8
    0 0 1 Data 1 0 0 Write Access, Leave
    Words Row Open, Use DCLK0
    0 0 1 1 0 1 Write Access, Leave
    Row Open, Use DCLK1
    0 0 1 1 1 0 Write Access, Close
    Row, Use DCLK0
    0 0 1 1 1 1 Write Access, Close
    Row, Use DCLK1
    0 1 0 0 0 0 Read Access, Leave
    Row Open, Drive
    DCLK0
    0 1 0 0 0 1 Read Access, Leave
    Row Open, Drive
    DCLK1
    0 1 0 0 1 0 Read Access, Close
    Row, Drive DCLK0
    0 1 0 Bank 0 1 1 Read Access, Close
    Access: Row, Drive DCLK1
    Burst of 4
    0 1 0 Data 1 0 0 Write Access, Leave
    Words Row Open, Use DCLK0
    0 1 0 1 0 1 Write Access, Leave
    Row Open, Use DCLK1
    0 1 0 1 1 0 Write Access, Close
    Row, Use DCLK0
    0 1 0 1 1 1 Write Access, Close
    Row, Use DCLK1
    0 1 1 0 0 0 Read Access, Leave
    Row Open, Drive
    DCLK0
    0 1 1 0 0 1 Read Access, Leave
    Row Open, Drive
    DCLK1
    0 1 1 0 1 0 Read Access, Close
    Row, Drive DCLK0
    0 1 1 Bank 0 1 1 Read Access, Close
    Access: Row, Drive DCLK1
    0 1 1 Burst of 8 1 0 0 Write Access, Leave
    Row Open, Use DCLK0
    0 1 1 Data 1 0 1 Write Access, Leave
    Words Row Open, Use DCLK1
    0 1 1 1 1 0 Write Access, Close
    Row, Use DCLK0
    0 1 1 1 1 1 Write Access, Close
    Row, Use DCLK1
    1 0 0 0 0 0 Reserved
    1 0 0 0 0 1 Open Row
    1 0 0 Row Ops, 0 1 0 Close Row
    1 0 0 Register 0 1 1 Register Write
    Access,
    1 0 0 or Event 1 0 0 Register Read, Use
    DCLK0
    1 0 0 1 0 1 Register Read, Use
    DCLK1
    1 0 0 1 1 0 Reserved
    1 0 0 1 1 1 Event
    1 0 1 0 0 0 Read Sync (Drive
    both DCLKs)
    1 0 1 0 0 1 Stop Read Sync
    1 0 1 0 1 0 Drive DCLKs LOW
    1 0 1 Data 0 1 1 Drive DCLKs HIGH
    1 0 1 Sync 1 0 0 Write Sync (Both
    DCLKs toggling)
    1 0 1 1 0 1 Reserved
    1 0 1 1 1 0 Disable DCLKs
    1 0 1 1 1 1 Drive DCLKs Toggling
    1 1 0 Reserved x x x Reserved
    1 1 1 Reserved x x x Reserved
  • For register operations {CMD(5:3)=100} bits representing memory bank number, row number and column number are not required. Their fields in the command packet are instead filled to define register address and register write data. Since register writes do not use the [0182] DataLink 155, registers within SLDRAM modules can be written to before write synchronization is completed. Register read data appears on the DataLink 155 with DCLK exactly like a normal read. Table 2.3a shows one possible configuration for register read packets. Bits marked as ‘uu’ are unused and preferably each filled with a zero. Table 2.3b shows one possible configuration for register write packets. RD(9:0) define 10 bits of data that may be written to the addressed register, where the latter is addressed by REG(6:0). Bits SID(4:0) define a device sub-ID value.
    TABLE 2.3a
    REGISTER READ PACKET
    FLAG CA9 CA8 CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0
    0 x x x x x x x x x x
    1 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 CMD5
    0 CMD4 CMD3 CMD2 CMD1 CMD0 REG6 REG5 REG4 REG3 REG2
    0 REG1 REG0 uu uu uu uu uu uu uu uu
    0 uu uu uu uu uu uu uu uu uu uu
  • [0183]
    TABLE 2.3b
    REGISTER WRITE PACKET
    FLAG CA9 CA8 CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0
    0 x x x x x x x x x x
    1 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 CMD5
    0 CMD4 CMD3 CMD2 CMD1 CMD0 SID4 SID3 SID2 SID1 SID0
    0 REG6 REG5 REG4 REG3 REG2 REG1 REG0 uu uu uu
    0 RD9 RD8 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
  • Event-commands may include commands such as for Auto-Refresh, Self-Refresh, Reset, and Close All Rows. Calibration commands such as Read-Data Fine-Vernier Adjustment, Read-Data DCLK-Offset Adjustment, and V[0184] OH/VOL Adjustments are also implemented as event commands. These event commands along with the special synchronization commands can provide the very tight signal timing and voltage levels that may be required in a given SLDRAM memory system. These tunable settings may be initialized and maintained over time by the memory controller 150.
  • Table 2.4a shows one possible configuration for event-request packets. Bits E(6:0) define specific events. Bits ADJ(4:0) provide adjustment setting codes. Bits DO(4:0) provide offset setting codes such as may be used in DQ output tuning. Table 2.4b shows one possible allocation of the E(6:0) address space. [0185]
    TABLE 2.4a
    EVENT REQUEST PACKET
    FLAG CA9 CA8 CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0
    0 x x x x x x x x x x
    1 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0 CMD5
    0 CMD4 CMD3 CMD2 CMD1 CMD0 SID4 SID3 SID2 SID1 SID0
    0 E6 E5 E4 E3 E2 E1 E0 uu uu uu
    0 ADJ9 ADJ8 ADJ7 ADJ6 ADJ5 DO4 DO3 DO2 DO1 DO0
  • [0186]
    TABLE 2.4b
    EVENT DEFINITION CODES
    E(6:3) E2 E1 E0 EVENT ACTION(S)
    0 0 0 0 RESET DEVICE, Set its ID register to 255, set its
    sub-ID register to 15
    0 0 0 1 RESET DEVICE, Leave its ID REGISTER and
    SUB-ID REGISTER unchanged
    0 0 1 0 Perform an AUTO-REFRESH
    0 0 1 1 CLOSE all ROWS
    0 1 0 0 Enter SELF-REFRESH mode
    0 1 0 1 Exit SELF-REFRESH mode
    0 1 1 0 Adjust Settings
    0 1 1 1 Reserved
    1 x x x Reserved
    2 x x x Reserved
    3 x x x Reserved
    4-7 x x x Open Space for Vendor Specific Events
  • Device-internal registers and other memory may be used for storing device local ID codes, calibration values and other information. Table 2.5 shows one possible configuration for allocation of registered information over the address space of REG(0:6). This space is divided into a write-only side to which ID and calibration data can be written, and into a read-only side which stores device characteristics information such number of banks, delay values, and so forth. The ‘Configuration’ data includes an indication of how many DQ lines are present in the device (e.g., 16, 18, 32, 36, 64, 72, etc.). This lets the [0187] controller 150 know if multiple datalinks may be available for use.
    TABLE 2.5
    REGISTER SPACE
    REG WRITE-ONLY READ-ONLY
    (6:3) REG2 REG1 REG0 (CONTROL) (STATUS)
    0 0 0 0 ID Configuration
    (No. Banks, Rows, Columns,
    DQ_lines)
    0 0 0 1 SUB-ID Actual Delays
    0 0 1 0 Frequency (current) Minimum Delays
    0 0 1 1 Test Maximum Delays
    0 1 0 0 Page Read Delay (PgR) Test
    0 1 0 1 Page Write Delay (PgW) tRAS/tRP
    (RowOpenTime/PreCharge)
    0 1 1 0 Bank Read Delay (BkR) tRC1/tRC2
    (RowOpenTime/AutoRefresh
    Time)
    0 1 1 1 Bank Write Delay (BkW) tRRD/tXSR
    (BankOpenTime/Exit Self
    Refresh Time)
    1 0 0 0 Reserved tWR/tWRD
    (Write to Read Time Delay)
    1 0 0 1 Reserved tPR/tBR
    (Max_PgR/Max_BkR)
    1 0 1 0 Reserved tPW/tBW
    (Min_PgW/Min_BkW)
    1 x x x Reserved
    2-7 x x x Reserved
  • In response to the [0188] command module 150′ placing a code representing the current frequency of CCLK in the ‘Frequency’ register of a given SLDRAM module, the latter module will generally alter the characteristics information (e.g., min/max delay times) it provides on the read-only side of its LCM. Analog behavior of certain parts of the SLDRAM module may vary according to what CCLK frequency is being currently used by the controller 150.
  • SLDRAM Module Initialization and Calibration [0189]
  • System level calibration of individual SLDRAM module timings and output drive levels allows for high manufacturing yield using more mature semiconductor processes and lower cost for SLDRAM components. Individual devices are not required to meet tight AC and DC parametric specifications. Rather, these are calibrated at the system level both during initialization, and later periodically over time to compensate for wide variation in individual device parameters and time-dependent drift. [0190]
  • In one embodiment, when the [0191] SLDRAM memory subsystem 100 is powered up, the controller 150 must take the following steps, STEP1-STEP8 before normal memory operations can begin.
  • STEP1 (Power Up): V[0192] cc, Vref and VccQ are applied first followed later by application of Vterm (the 1.25v CommandLink and DataLink termination supply), this being done to avoid latchup.
  • STEP2 (Reset): The RESET* pin on each SLDRAM module is held low. This clears the SLDRAM module's internal synchronization indication and sets device ID=255. [0193]
  • STEP3 (Synchronization): The controller begins transmitting CCLK and drives both DCLKs with continuous transitions, and sets its SO to ‘1’. On DQ[17:0], CA[9:0], and FLAG the controller transmits inverted and non-inverted versions of the 15 bit repeating pseudo-random SYNC sequence “111101011001000”. The SLDRAM modules recognize this condition from the presence of 2 consecutive ‘1’s on the FLAG line. Each SLDRAM module then determines for itself an optimum internal delay for CCLK and both DCLKs to optimally sample incoming bits. Before the SLDRAM module has synchronized it will set SO=0. Once the SLDRAM has synchronized and the appropriate delays for CCLK, DCLK0 and DCLK1 have been programmed, the SLDRAM module will set its SO=SI. The controller stops sending the SYNC pattern when its SI=1. It then resets its SO=0 which ripples through all SLDRAMs. [0194]
  • STEP4 (ID Assignment): The controller sets its SO=1 once again and sends out an ‘ID Register Write’ command packet having the write data field filled as the value, 0. Only the SLDRAM module with its SI=1 and ID=255 will respond to this command. This responding SLDRAM module overwrites its ID Register with the register-write data value of 0 and sets its SO=1. After sufficient delay (e.g., 4 ticks), the controller continues to output ‘ID Register Write’ command packets having their write data field filled with a next successive value, such as [0195] 1 and so on until it observes a high logic level on its SI. Then the controller knows ID's have been assigned to each in-circuit device. If the sequential ID values at the controller side exceed a predefined maximum number (e.g., 256) and the controller 150 has still not seen its SI line 152 e go high, it can conclude that there is a break in the SI/SO chain. System BIOS may then output a message indicating that there is such a break in the SI/SO chain due to a defective SLDRAM module or other reasons.
  • In an alternate approach for ID assignment, rather than waiting a predefined number of ticks before issuing the next ID-assigning command, the [0196] controller 150 sends to the just-assigned module, one or more a drive-DQ to static high commands (‘Drive DCLKs=1’) and drive-DQ to static low commands (‘Drive DCLKs=0’). If an appropriate response is seen on the DQ lines, the controller 150 knows the ID assignment has completed properly and proceeds to assigning the next module its ID. If an appropriate response is seen on the DQ lines within a predefined reasonable time frame, the controller 150 can conclude after one or more retries that the corresponding SLDRAM module is defective. System BIOS may then output a message indicating that there is a break in the SI/SO chain and where the break is located. (The controller can keep track of how many modules responded before the problem was encountered.) The user may be instructed to replace the Nth module in the series of present modules.
  • STEP5 (V[0197] OH, Vol Calibration): The controller calibrates each SLDRAM module's I/O levels by sending ‘Drive DCLKs=0’ or ‘Drive DCLKs=1’ commands to each device and then issuing ‘Increment/Decrement Voh/Vol Event’ commands until the levels match the controller's own reference. This step may be integrated with the above alternate method for assigning ID's where the ‘Drive DCLKs=0’ and ‘Drive DCLKs=1’ commands are used for verifying proper acceptance of each assigned ID.
  • STEP6 (Read Synchronization): The controller issues a ‘Read Sync’ command to each SLDRAM module. In response, the SLDRAM module then transmits continuous transitions on both DCLKs and the 15 bit pseudo-random synchronization pattern on DQ(17:0). The controller first adjusts the position of the data burst bits using the ‘Increment Fine Vernier Event’ command and then adjusts the delay of DQ edges relative to DCLK edges, using the ‘Increment/Decrement DCLK Offset Event’ command, to sample the synchronization pattern at the optimum point. [0198]
  • STEP7 (Read Latency Calibration): After RESET the SLDRAM module read and write latencies are set to their minimum values. For each SLDRAM module the controller issues a Drive DCLKs=0 command followed by a ‘Read’ command. The controller monitors the specified DCLK for the transitions which accompany the responsive data burst to measure latency. Once the minimum latencies have been measured for each SLDRAM module, an appropriate read latency value can be calculated and programmed into each device by writing to its Read Delay Registers. [0199]
  • STEP8 (Write Latency Programming): The controller issues to each SLDRAM module a write command with zero write latency and an extended 32N extended burst of data. Words in the write burst are incremented 0, 1, 2, 3, . . . 31. After the write command the controller reads the locations addressed by the write command. The first word contains an indication of the minimum write latency. With this information the controller can set the write latencies of all SLDRAM modules to a common value by writing to their respective Write Delay Registers. [0200]
  • Recalibration During Operation [0201]
  • During normal operations, calibrated timing and voltage level parameters may drift due to changes in temperature and/or supply voltages and/or passage of time. SLDRAM modules should be recalibrated periodically to ensure robust operation. Recalibration operations can be hidden during AutoRefresh and SelfRefresh periods so as not to affect system performance. [0202]
  • Buffered Modules [0203]
  • The SLDRAM protocol allows the addressing of hierarchical memory subsystems having more devices than a single electrical interface can support. Buffered modules permit deeper and/or wider memory configurations than the basic unbuffered configuration having only 8 SLDRAM chips. Buffered and unbuffered modules can be mixed in a system. The initialization and synchronization sequence will accommodate the additional delays added by the buffers. [0204]
  • FIG. 3 shows an example of an [0205] SLDRAM system 300 that includes buffers. Where practical, like reference numbers in the ‘300’ century series are used for elements having like counterparts of the ‘100’ century series in FIG. 1A. As such, details do not have to be repeated. Each of devices 310, 320, 330, 340, 350 and 360 is a packaged integrated circuit (IC) which includes command-queriable and command-tunable memory resources in accordance with the descriptions given above.
  • [0206] SLDRAM system 300 is shown in a post-initialization state. Unique identification numbers have already been assigned to each IAMU. SLDRAM IC 310 has been assigned an identification of ID=00. IC 320 has been assigned ID=01, and so forth. As explained above, in accordance with one embodiment, the number of SLIO electrical loads (a maximum of about 3 pF's each) that may be placed on each of the CommandLink 351, DataLink_A 355 and DataLink_B 356 is limited to eight, not counting the command module 350. The command-side of SLDRAM device 310 couples directly to CommandLink 351 to thereby define a first electrical load (LOAD Cl) on the CommandLink. The data-side of SLDRAM device 310 connects directly to DataLink_A 355 to thereby define a first electrical load on that DataLink (LOAD Al). SLDRAM device 320 similarly creates a second load (LOAD C2) on the CommandLink 351 and a first load (LOAD B1) on DataLink_B 356.
  • A command-side [0207] first buffer 301 is interposed between SLDRAM devices 330-360 and the CommandLink 351. Accordingly, all four devices 300-360 represent only a single electrical load (LOAD C3) to the CommandLink. The data-side of device 330 connects directly to DataLink_A and thereby defines a second electrical load (LOAD A2) on that link 355. Similarly, the data-side of device 360 connects directly to DataLink_A and thereby provides a third electrical load (LOAD A3) on that link 355.
  • A data-side, [0208] second buffer 302 is interposed between the data-sides of devices 340, 350 and DataLink_B (356). As such, both devices 340-350 represent only a single electrical load (LOAD B2) on DataLink 356.
  • The illustrated use of buffers and direct connections within FIG. 3 is merely for purposes of illustration. Buffered and non-buffered modules may be mixed and matched in many further ways. For example, command-side buffering and data-side buffering may be hierarchical. Additionally, there may be more than just the illustrated two [0209] DataLinks 355, 356.
  • Because plural devices are connected in FIG. 3 to each of plural DataLinks ([0210] 355, 356), multicasting may be used to simultaneously command the transfer of data along the plural DataLinks. For example, a first multicasting, command packet may simultaneously instruct device 310 (ID=00) and device 320 (ID=01) to perform a read data operation on their respective DataLinks 355, 356. A next multicasting command may instruct devices 330 (ID=02) and 340 (ID=03) to perform a data write operation on their respective DataLinks 355, 356. A yet further, multicasting command may instruct devices 350 (ID=04) and 360 (ID=05) to perform a refresh during the time that devices 330 and 340 are using respective DataLinks 355 and 356.
  • In an alternate variation of the above multicasting technique, both of [0211] devices 310, 320 would be assigned a same identification, say ID=10 (not shown) instead of different ID's. Devices 310, 320 would be further assigned different sub-ID's. Similarly, devices 330 and 340 would be assigned a same next ID, say ID=11, but different sub-ID's. And correspondingly, devices 350 and 360 would be assigned a same next ID=12 while being given different sub-ID's. In this alternate configuration, a non-multicast R/W command to ID=10 will be simultaneously obeyed by devices 310 and 320. A non-multicast R/W command to ID=11 will be simultaneously obeyed by devices 330 and 340. A non-multicast R/W command to ID=12 will be simultaneously obeyed by devices 330 and 340. Tuning commands (register write commands) can be directed individually to devices according to sub-ID values. Thus each device can be individually tuned even though it may not have a unique ID assigned to it.
  • Given the mix and match assortment of buffered and non-buffered devices in FIG. 3, it should be apparent that turnaround time between command issuances and completions of execution can be quite different for each of the SLDRAM devices [0212] 310-360. For example, DataLink_A (355) may be differently loaded than DataLink_B (356) and may therefore exhibit different delay times for similarly situated modules. The response time of SLDRAM device 330 includes the delay of the command-side buffer 301 while the response time of device 310 does not. The response time of device 340 includes the combined delays of buffers 301 and 302. However, this is generally not a problem because the in-circuit tuning features of the present invention gives the command module 350 flexibility in setting the response times of each device 310-360 and in scheduling respective commands.
  • Buffered CommandLink [0213]
  • As seen in FIG. 3, wide modules (e.g., [0214] 330-360) with multiple DataLinks may provide higher memory bandwidth. Commands, however, may be issued over a shared and optionally buffered (301) CommandLink 351. CommandLink overhead, including pins on the controller, motherboard tracks and termination networks, termination power dissipation, and module connectors, is therefore not duplicated for each DataLink and savings are seen as system bandwidth is scaled upwardly by adding more DataLinks.
  • Buffered CommandLink and DataLink [0215]
  • As further seen in FIG. 3, the configuration of devices [0216] 340-350 allows a controller with a single SLDRAM interface to address a larger memory depth than 8 individual unbuffered SLDRAM devices (e.g., 310, 320) would allow. The CommandLink buffer 301 and the DataLink buffer 302 may be combined into a single chip with memory units 340-350. Alternatively, a single chip may contain just command buffer 301 and direct-to-DataLink units such as 330 and 360.
  • Pin Assignment and Board Trace Distribution [0217]
  • FIG. 4 illustrates a [0218] possible pinout arrangement 400 for an SLDRAM module or integrated circuit in accordance with the invention. Each SLDRAM integrated circuit or module may be a Vertically Standing Module Package (VSMP) which has interleaved pins on opposed sides thereof as shown. The pins may be used for removable insertion of the VSMP into a like-configured connector or for soldering into like-configured printed circuit board (PCB). Odd-numbered traces may appear on the top surface of the printed circuit board while even-numbered traces may run opposingly on the bottom surface of the PCB or vice versa. Other configurations are, of course, possible.
  • In the 64-pin layout of FIG. 4, signals that generally transition the least (e.g., V[0219] DD and Vss) are provided at opposed outer portions (peripheral ends) of the odd/even serial pin distributions: 1, 3, 5, . . . , 63 and 2, 4, 6, . . . ,64. Relatively quiet (e.g., lower frequency) I/O pins such as the LVCMOS lines (pins 59, 60) of a serial chain zone 460 (SI/SO) are also provided near the bottom, outer extreme. Similarly, relatively-quiet command control signals (RESET#, LINKON, LISTEN) are carried by pins provided in a quiet command control zone 408 near an upper outer extreme of the pins series. Because the outer pins such as 1, 2 and 63, 64 are generally associated with the longest, diagonally extending traces in the lead frame of each IC, and these have relatively poor electrical characteristics, the lowest frequency signals (e.g., VDD, Vss, SI, SO, TEST, etc.) are positioned near these outer extremes.
  • In contrast, the signals with the highest frequency content (the generally most vibrant), namely the data clocks and the command clocks, are carried by pins provided generally in the middle of the serial pinout series. These pins (24-29) are generally designated in FIG. 4 as those of a D/C Clocks Pins [0220] zone 427. It should also be noted that in general, for most integrated circuit packaging designs, the internal lead frames have their shortest traces near the middle portion of the package side. These shorter lead frame traces typically exhibit the lowest capacitances, smallest inductances of the package and thereby provide superior electrical performance for transmitting signals with high-frequency content. Positioning of the command and data clock pins in such a zone 427 takes advantage of this general characteristic.
  • Immediately adjacent to the CCLK pins 28, 29 are the command word carrying pins 30-42, including the pin 42 that carries the FLAG signal. This pins grouping is generally denoted in FIG. 4 as a Vibrant CommandLink Pins [0221] zone 430. A relatively quiet LVCMOS power zone 433 separates the CA(0:2) pins from the more significant CA(3:9) pins.
  • An advantage of positioning the clock pins [0222] 427 and the command pins 430 centrally relative to a side of the integrated circuit die within the IC package is that such clock and command signals can be routed inside the IC package and die with equal delay to equidistant memory arrays on different halves of the IC chip.
  • Above the D/C Clocks Pins [0223] zone 427 there are provided the pins which carry the signals of data lines DQ(0:7,17). This grouping of pins is generally denoted as the DQ(0:7,17) Pins zone 417. Two SLIO Power zones 420 are interspersed in the area of DQ Pin zone 417. Each SLIO Power zone includes a VDDQ pin and a VssQ pin.
  • Another grouping of data pins DQ(9:16) is provided in Pins zone [0224] 450 just to the outside of the CommandLink Pins zone 430. Two further SLIO Power zones 455 are distributed in the general region of the DQ(9:16) Pins zone 450.
  • In one embodiment, memory arrays are distributed such that those arrays which store an upper half of each data word are positioned near one end of the chip and those that store a lower half of the same memory word (e.g., lower byte) are disposed in the other half of the IC chip. The pins of [0225] DQ zones 417 and 450 are organized according to this distribution so that each data bit can travel along a relatively short path to reach its respective memory array rather than having to travel the full length of the IC chip. (In one embodiment, data bit DQ17 represents a parity bit that covers data bits DQ(9:16). Similarly data bit DQ8 represents a parity bit that covers data bits DQ(0:7). Note that the parity data bits DQ8 and DQ17 are disposed in the pin groups 430 and 417 opposite to that of their respectively covered data bits.)
  • The overall organization of [0226] pin layout 400 is structured to encourage substantial similarity in the electrical characteristics of the printed circuit board traces and pins that carry the D/C synchronization clocks (zone 427). Pin layout 400 is further structured to encourage substantial similarity of characteristics for the pins of the some-what-centralized zone 430 which carry the more Vibrant CommandLink signals (FLAG) and CA(0:9). DQ zones 417 and 450 straddle zones 427,430 so as to further encourage conformity in delay times between the DataLink lines and the CommandLink lines.
  • SLIO Power zones [0227] 420, 455 are symmetrically distributed relative to signal-sourcing SLIO lines so as to reduce ground bounce and provide uniform distribution of power to respective SLIO line drivers. The Vibrant CommandLink Pins zone 430 is not a signal-sourcing region of each respective SLDRAM module. Instead, it is a signal-receiving zone. It is the command module 150 that generally outputs signals onto the CommandLink 151. As such, there is no need to include an SLIO power zone in the middle of command zone 430.
  • Internal Structure of an SLDRAM Module [0228]
  • Referring to FIGS. [0229] 5A-5B, internal components of an SLDRAM module 500 that is in accordance with the invention will now be described. In SLDRAM module 500, CommandLink words are captured by a command-and-address capture unit 501. The signal latching time of unit 501 is controlled by a respective one (ICLK1) of a plurality of internal clock signals (ICLK's) produced by an internal clocks generating unit (ICGU) 505. ICGU 505 is responsive to the locally received version of the command clock signals (CCLK) and to the locally received version of elsewhere-sourced data clock signals (DCLK0/1). A DLL (delay-locked loop, not shown) may be used inside ICGU 505 to produce a stable internal clock reference that runs in synchronism with the external CCLK. Respective phases of various ones of the internal clocks (ICLK's) are tuned during initialization and periodic recalibrations. ICGU 505 may include various phase-locked loops (PLL's, not shown) and/or other clock producing components, as appropriate.
  • [0230] Local ID register 502 is consulted by the CA capture unit 501 to determine whether a captured command is addressed to the present module 500. ID register 502 is shown separately but is understood to be part of a larger, LCM (local configuration memory) 512. LCM 512/502 is configured by IAMU configuration circuit 503 during initialization and calibration or re-calibration operations.
  • In response to captured commands, if it is so directed (by individual, or multicast, or broadcast addressing), command packet processing is initiated, or allowed to continue, in a command decoding and [0231] sequencing unit 504 as well as in an address sequencing unit 506. Twenty bits of data representing Bk(2:0), Row(9:0) and Col(6:0) are extracted from each general R/W command packet and sent to address sequencing unit 506 for decoding. Command decoding and sequencing unit 504 processes other information within the command packet.
  • A 3-bit wide [0232] first output portion 506 a (Bk(2:0)) from the address sequencer 506 is sent to bank address register 514 to designate the currently open bank (e.g. Bank0 511 a). The bank designating code within register 514 does not change during page access operations. Appropriate strobing of the bank address register 514 is provided by internal control logic (not shown).
  • A 10-bit wide [0233] second portion 506 b (Row(9:0)) of the address sequencer output is supplied to row address register 516. The loading of a new value into row address register 516 corresponds to an open-new-row operation. Row address register 516 is strobed by internal control logic as appropriate. Multiplexer 526 routes the output of row address register 516 to an address pre-decoding unit 536. Pre-decoding unit 536 begins to decode a more significant part of the row address into parallel selection information. The decoding process is completed in pipelined fashion by an address-specified one of a plurality of row selection and decoding units 546. Each such unit is dedicated to a respective bank of memory. Accordingly, previously-made row selections may be retained on a bank by bank basis. Row selection decoding and latching unit 546 a, for example, is dedicated to Bank0 (511 a). Each of the row selection units 546 has a corresponding output of 1K lines (1,024 lines). Accordingly, row selection unit 546 a has a first complement 547 a of 1K parallel selection lines, each for respectively activating a corresponding one of the 1,024 rows (511 b) in Bank0 (511 a). The next, behind-shown, row selection unit has its respective complement of 1K parallel selection lines, and so forth.
  • Bank [0234] control logic unit 524 has an output comprised of eight bank selecting lines for respectively activating memory banks 0 through 7. Each successively-activated bank may use a retained row selection (row opening) as defined by a respective one of the row selection decoding and latching units 546.
  • During DRAM refresh operations, the output of a [0235] refresh counter 507 alternatively passes through multiplexer 526 for decoding by circuits 536 and 546.
  • A 7-bit wide, [0236] third output portion 506 c (Col(6:0)) of the address sequencer is coupled to a column address decoding and registering unit 566. The latched output of unit 566 couples to an I/O gating unit 576.
  • Each of the eight memory banks of [0237] IAMU 511 includes its own set of sense amplifiers and a bidirectional data-carrying section having 9,216 lines (72 bits per column times 128 columns). These lines couple to the I/O gating section 576. One such grouping of 9,216 lines is shown at 576 a. In response to a column address output by unit 566, and due to the activation or opening of a specific bank and pre-addressing of a specific row within that bank, I/O gating unit 576 gates a specific column of data to bidirectional data bus 580. In this particular embodiment, each column (511 c) of memory stores 72 bits (which bits may be seen as four data words, each 18 bits wide).
  • Referring to FIG. 5B, [0238] data bus 580 couples to a quartet 540 of read latches, each 18 bits wide. These latches 540 are used for capturing read data output by gating unit 576. Multiplexer 541 sequences through the respective 18-bit outputs of each of latches 540 and supplies the selected 18-bits of data to a data input (DI) port of a read-side FIFO 545. FIFO (first in/first out) unit 545 resynchronizes the read data to align with one of the data clocks (DCLK0/1). Phase difference is compensated by, for example, command-tunable delay element 546. The resynchronized data is output from a DO port of FIFO 545 onto bus 545 a and coupled thereby to DQ line drivers 555. The corresponding DCLK signal; whose phase is defined by command-tunable delay element 546, is output by an enabled one of DCLK bus drivers, 556 and 557.
  • When write data is provided from the [0239] command module 150, SLIO receiver 585 receives the DQ(0:17) signals while a command-selected one of SLIO receivers 586 and 587 is used for acquiring the controller-produced DCLK signals. Command- tunable delay elements 581, 582 are used to compensate for the in-circuit placement of module 500.
  • One of the internal clock signals ICLK[0240] 2 produced by ICGU 505 sequentially strobes a quartet 584 of 18-bit wide input latches for timely capturing a respective burst of four data words supplied on DQ(0:17). For longer bursts, a round-robin set of more than four input latches may be used. The showing of just four latches in group 584 is for purpose of example.
  • A corresponding, 72-bit wide output of the input latches [0241] group 584 is supplied to a data input port (DI) of write FIFO 590. internal clock signals (ICLK's) are used for timely strobing the DI and DO sides of FIFO 590 so that the output data is in phase with an internal write clock WCLK. A 72-bit wide set 595 of data latches and gate-unit drivers then supply the column data to gating unit 576 by way of bus 580. The addressed column of the then open row is overwritten with the new data.
  • Internal Structure of a Memory Controller [0242]
  • FIG. 6A illustrates internal components of a command module [0243] 650 that is in accordance with the invention. Each dual-arrowed symbol such as at 615 represents a latch that acts on both the rising and falling edges of its respective clock signals. Master clock 610 drives both the clock input and D input of dual-edge latch 615. The Q output of dual-edge latch 615 drives SILO output buffer 618 to produce the external reference CCLK signal with respective rising and falling edges aligned to those of master clock 601.
  • Dual-[0244] edge latch 625 is also strobed by the master clock 610. A first command word (CMD_WD1) appears on the Q output of latch 625 in synchronism with a rising edge of master clock 610. The next subsequent command word (CMD_WD2) appears on the Q output of latch 625 in synchronism with the immediately next, falling edge of master clock 610. Subsequent CMD_WD3 appears in alignment with the next rising edge. Non-differential SILO driver 628 outputs the respective command words onto the CA(9:0) bus. Line drivers 618 and 628 should be matched so that the same synchronism between rising and falling edges of the CCLK and validity of the command words is maintained at the output pins of command module 650.
  • [0245] Buffer 619 couples the master clock 610 to a first input of a multi-tapped DLL (delay locked loop). An end-tap of DLL 620 is coupled to its feedback input. There is a voltage-controlled delay (VCD) or a like variable delay means within DLL 620. (See for example DLL 6201 of FIG. 6B.) Internal controls within DLL 620 modulate the variable delay (e.g., VCD) until successive rising edges at the feedback input are in phase with the rising edges of the master clock 610. There are enough tapped delays in DLL 620 such that the tapped delays define fractional units of one clock period of the master clock 610. In one embodiment, the master clock period is divided into 16 equal subunits of time by action of the DLL 620.
  • A [0246] signal 622 which defines the locked delay amount of DLL 620 is coupled to a like-designed unit 640. Unit 640 has multi-tapped fine delays controllable in the same manner as are the fine delay units of DLL 620. Because unit 640 is manufactured on the same IC as unit 620, the tapped delays of units 620 and 640 mimic one another despite changes in environmental temperature or voltage and despite process variations between one mass-produced IC chip and another.
  • [0247] Initialization unit 641 couples to the plural taps of variable delay unit 640. During read synchronization (when one of the SLDRAM modules is outputting the predefined SYNC pattern onto the DQ(17:0) bus as input words, DQI_WD1, DQI_WD2, etc., and is further toggling the DCLK buses (only one shown in FIG. 6A)), the corresponding DCLKin edges are received by SLIO receiver 639 and fed into tapped delay unit 640. Fractional adjustments are made to the phases of the rising and falling edges that are ultimately applied to a clock input 646 of dual-edge latch 645 for strobing in DQI words. To make these phase adjustments, initialization unit 641 connects an initialization-selected first of the taps of unit 640 to output line 642 for defining the phase of rising edges supplied to clock input 646. Initialization unit 641 further connects an initialization-selected second of the taps of unit 640 to output line 643 for defining the phase of falling edges supplied to clock input 646. Combining unit 644 combines the phased signals of lines 642 and 643 to produce the corresponding rising and falling edges on line 646.
  • The read synchronization adjustments to the phases on [0248] lines 642, 643 place sampling line 642 a (which corresponds to a rising edge of DCLKin) at a ‘bulls-eye’ time point relative to the DQI_WD1 signal that is received by way of SLIO receiver 648. They further place sampling line 643 a (which corresponds to a falling edge of DCLKin) at a ‘bulls-eye’ time point relative to the DQI_WD2 signal that is next received over the DQ bus. Sampling line 642 b (which corresponds to a next rising edge of DCLKin) is automatically at a ‘bulls-eye’ time point relative to the next, DQI_WD3 signal because each SLDRAM module is required in this embodiment to maintain a fixed rise-to-rise period on the DCLK signals output by that SLDRAM module. In one embodiment, the rise-to-rise period on the DCLK signals output by each SLDRAM module match the rise-to-rise period of the CCLK signals output by the command module 650. (Timing between rising and falling edges is harder to control, as is understood in the art, because current sourcing and current sinking devices such as the P1 and N1 transistors of FIG. 1C tend to have different characteristics.)
  • When command module [0249] 650 performs a write operation, write data is output by way of dual-edge latch 655 and tristate SILO driver 658 to the DQ(17:0) bus. Latch 655 is strobed by the master clock 610. Dual-edge latch 635 is also strobed by the master clock 610 and produces the output data clock (DCLKout) of the command module for output by tristate SILO driver 638 to the DCLK bus. Latches 635 and 655 are matched. SILO line- drivers 638 and 658 are matched. Thus the rising and falling edges of the DCLKout signal are aligned with the DQO words output by command module 650. SILO line- drivers 638 and 658 should be further matched to SILO line-driver 618 so that the DQO words output by command module 650 are in synchronization with the CCLK.
  • The V[0250] OL and VOH levels of SILO line-driver 638 may be tuned by the command module 650 itself based on how receiver 639 sees clock signals output by 638 while 638 is connected to the corresponding DCLK line of the system. Similarly, the VOL and VOH levels of SILO line-driver 658 may be tuned by the command module 650 itself based on how receiver 648 sees data signals output by 658 while 658 is connected to the corresponding DQ line of the system.
  • Referring to FIG. 6B, an [0251] embodiment 620′ for a multi-tapped DLL is described. The master clock signal 686 is applied as a reference to the input of a first, variable delay means (e.g., a CMOS amplifier) 601. Variable delay means 601 is part of a first serial chain 621 of variable delay means further including like elements 602, 603, . . . , 609. In one embodiment, a variable voltage supply/controller 605 controls the power supply voltage that is applied to each of the delay elements 601, 602 . . . , 609. This modulates their respective signal propagating times. Multiplexer 690 is fixed to return the output tapped from an end element (e.g., 609) of series 621 back to a phase comparator 685. Unit 684 determines which tap point is the end point and thereby determines how many fractions the period of master clock 686 will be divided into. All tap points of series 621 are equally loaded, for example by corresponding inputs of multiplexer 690.
  • [0252] Phase comparator 685 compares the phase difference between the rising edges of the fed-back output 681 of multiplexer 690 (also referenced as feedback signal ICLKF) and the rising edges of the master clock signal 686. The phase comparator 685 then instructs the voltage controller 605 to modulate applied power supply voltage 622′ of delay elements 601, 602, . . . , 609, so as to bring rising edges of the reference and feedback signals (686, 681) into synchronization with one another.
  • The synchronization-achieving, [0253] voltage 622′ is further fed to a replica delay chain 660 that comprises respective, variable delay element 661, 662 . . . 669. Delay elements 661-669 are all fabricated on the same IC and in like manner as are delay elements 601-609. Tap points of delay chain 660 are loaded in the same way as those of delay chain 621. Accordingly, the delay elements of chain 660 acquire essentially the same delay values as those in the DLL 620′.
  • [0254] Multiplexer 690 is matched to multiplexer 680 and taps into all the respective tap points of chain 660. However, multiplexer 690 is not limited to selecting an end tap point as is multiplexer 680. Instead, multiplexer 690 has two respective outputs 692 and 693 which respectively output signals selected by a rising-edge tap-value setting circuit 682 and a falling-edge tap-value setting circuit 683. Outputs 692 and 693 are respectively coupled to the SET and RESET terminals of SR flip-flop 694. (The SET signals may be tapped off from tap points that provide the noninverted but delayed version of a next-described DCLKin signal 696 while the RESET signals are tapped off from tap points that provide the inverted but delayed version of DCLKin.) The Q output of flip-flop 694 produces an output signal 695 that has respective rising and falling edges with phases defined by the outputs of tap- value setting circuits 682 and 683.
  • During read synchronization, the input data clock (DCLK[0255] in) 696 is supplied to delay chain 660. Setting circuits 682 and 683 are operated to adjust the phases of their respective outputs 692, 693 such that the produced clock signal 695 has respective rising and falling edges that align as close as possible with optimal-detection, sampling points (e.g., the word centers) of the predefined synchronization signals (the SYNC sequence). This ‘bulls-eye’ acquisition is illustrated by the vertically aligned relationship in FIG. 6B between the centers of DQI words 697 and the respective rising and falling edges of generated clock signal 695. In one embodiment, each of the tapped serial chains 621, 660 includes at least 16 tap points for dividing the clock period of master clock 686 into 16 fractional units.
  • Referring to FIG. 7, an SLDRAM [0256] integrated circuit module 750 is shown that complements the command module integrated circuit 650 of FIG. 6A. SLIO receiver 728 receives the command words output by SLIO line driver 628 (FIG. 6A) while differential SLIO receiver 718 receives the CCLK signals output by driver 618. Due to minor differences in transmission line characteristics, the arriving command words 707 may be slightly out of synchronization with the arriving CCLK signal 708 as indicated by timing lines 709 (e.g., a fraction of a tick data/clock skew).
  • [0257] Output 719 of the CCLK receiver 718 is supplied to one input of a multi-tapped DLL 720. An end-tap of the DLL 720 is fed back to its other input 720 a. Signal 722 represents the phase-locking control voltage developed by multi-tapped DLL 720 for matching the phases of rising edges of signals on its main input 719 and its feedback input 720 a.
  • Delay-establishing [0258] signal 722 is fed to a delay control input of a multi-tapped delay unit 740. Delay unit 740 corresponds to unit 630 of FIG. 6A. It receives data-clock (DCLK) signals-by way of SLIO receiver 739 and provides fraction-of a-tick delayed versions on its respective taps to initialization unit 741. Output lines 742 and 743 of the initialization unit 741 provide respective rising edge and falling edge signals to combiner 744. The resulting strobe pulses are carried by line 746 to the clock input of dual-edge latch 755.
  • During write synchronization, when the command module [0259] 650 is outputting the SYNC sequence signal on the DQ(17:0) bus and toggling the DCLK buses, initialization unit 741 adjusts the phases of the rising and falling edges on line 746 to optimize the sampling times of latch 755 for best detecting the predefined bit sequences (the SYNC sequence) in the incoming data words that pass through SLIO receiver 758 to the D input of latch 755. At the same time SLIO receiver 739 is transferring the incoming data clock signals (DCLKin) to multi-tapped unit 740. This initialization operation therefore corresponds to the one carried out in FIG. 6A by units 639, 640, 641, 644, 645 and 648 except that now the command module 650 is outputting the SYNC sequence and each SLDRAM module (e.g., 750) adjusts its internal clock on its respective line 746 to compensate for the unique, in-circuit positioning of that SLDRAM module relative to the system reference points (e.g., the pins of the command module 650.)
  • Further during the write initialization process, the SYNC signal is also being broadcast to all the SLDRAM modules (e.g., [0260] 750) by way of the CA(9:0) bus while the CCLK is running. In FIG. 7, the incoming CCLK pulses are transferred from SLIO receiver 718 to a second multi-tapped delay unit 715. The variable delay-establishing control of multi-tapped delay unit 715 is driven by signal 722, which latter signal is output by multi-tapped DLL 720. The fine delay components of multi-tapped delay unit 715 are matched with those in multi-tapped DLL 720 and also those in multi-tapped delay unit 740. As such each can provide equal increments of a fraction-of a-tick delay amount.
  • [0261] Initialization unit 714 receives the multiple, tapped delay signals output by multi-tapped delay unit 715. Circle-and-plus_sign symbol 716 represents yet another combiner like 744. Element 716 receives signals for defining the respective phases of rising and falling edges from initialization unit 714. Initialization unit 714 adjusts the respective phases of the rising and falling edges that are strobed into dual-edge latch 725 so as to bring the sampling points of latch 725 into alignment with the optimal-detection or ‘bull's eye’ positions of the SYNC signals then coming in on the CA(9:0) bus. Dual-edge latch 725 is accordingly conditioned while in-circuit to synchronously capture the respective bits of incoming command words 707.
  • During a later calibration phase of the SLDRAM system, the command module ([0262] 650) sends individualized tuning commands to each respective SLDRAM module (750). One of these commands is a vernier-tuning command which is transferred along path 726 from the already-calibrated latch/initializer combination 725/714 to a tunable vernier unit 727. The tunable vernier unit 727 receives the tapped fine-delays of DLL unit 720. Like symbol 716, the circle-and-plus_sign symbol 729 represents a combiner which receives separate timings for respective phases of rising and falling edges from vernier controller 727. Element 716 outputs the corresponding clock signals onto line 730.
  • The clock signals output on line [0263] 730 may be thought of as the internal master clock of the given SLDRAM module 750. This master clock is transferred by way of line 734 to the D input of dual-edge latch 735 while the clock input of latch 735 is further strobed by the local master clock 730. The Q output of latch 735 drives SLIO differential line driver 738. Line driver 738 is tristatable and drives a corresponding DCLK bus when SLDRAM module 750 is given mastery over that DCLK bus (that mastery being given by way of a command packet issued by the command module 650). It may be noted that elements 734, 735, 738 of FIG. 7 correspond to elements 634, 635 and 638 of FIG. 6A. Line driver 738 does not have to be perfectly matched to line driver 638 (FIG. 6A) because the combination of tunable vernier 727 and initialization unit 641 can compensate for timing differences. Also the tunability of the VOH and VOL levels of each DCLK line-driver such as 738 helps to compensate for differences in current sourcing and current sinking capabilities of each SLDRAM module (e.g., 750) in the memory system.
  • Clock signal [0264] 730 is further coupled to the clock input of dual-edge latch 745. The D input of latch 745 receives read data that is to be output as bursts from SLDRAM module 750 during read operations. The Q output of latch 745 drives a tristatable, SLIO line-driver 748. The VOH and VOL output levels of line-driver 748 are also tunable by further commands that are captured by latch 725. These may be adjusted during the DC portion of the individual calibration of SLDRAM module 750. The data words such as DQO_WD1, DQO_WD2, DQO_WD3 that are output by line-driver 748 should appear on the DQ(17:0) bus in synchronism with the DCLKout signal that is simultaneously output by line-driver 738. Elements 745 and 748 of FIG. 7 correspond to elements 655 and 658 of FIG. 6A. It should be apparent now that line-driver 748 should be matched with line-driver 738 so that DQO output bursts are sourced in synchronism with the DCLK signals output by the corresponding SLDRAM module 750. Thus, source synchronization is provided in combination with destination tunability to thereby allow for mixing and matching of devices from different vendors while not requiring tightly-fixed tolerances in any one device.
  • To review here, the present disclosure provides at least the following features: [0265]
  • (a) A memory device (e.g., [0266] 310/320) may be divided into separate bank groups, each servicing a different DataLink (355/356) and concurrent operation may be obtained with pipelined commands.
  • (b) The [0267] CommandLink 151 uses a separate clocking signal (CCLK) from those (DCLK0/1) of the DataLinks, and this separateness allows for fully independent non-blocking access to further commanding SLDRAM modules even while one or more of the DataLinks are being used.
  • (c) Memory devices may be designed with internal memory units (IAMU's) that are semi-independent (e.g., having only different sub-ID's). Completely independent memory units offer flexibility from the standpoint of external control; however, the increase in die size caused by replicating circuitry for controlling each memory unit (each IAMU) may become too large as the number of internal memory units increases. Semi-independent memory units allow for sharing of access-control circuitry among proximal banks (i.e., shared sense amplifiers in a DRAM) provided some minor restrictions in external control are adhered to. For example, if a given row in bank N is active, then no same or differently-addressed rows in control-sharing banks N−1, N, or N+1 should be activated. [0268]
  • (d) A high-speed timing alignment scheme is provided that not only can adjust the coarse timing of when a response is returned relative to a command packet, but also the fine timing offset of the returned response relative to its associated clock. [0269]
  • (e) A memory device is provided where the read data latency can be programmed independently of the write data latency, and where an offset between the two latencies may be programmed to allow for optimal data bus performance/efficiency. [0270]
  • (f) A signaling technology is provided that uses a DC termination resistor, and allows for adjustment of the device's output high level and the output low level relative to the DC termination resistor. With the DC termination scheme, the output level adjustments can equalize the device's series on-resistance (see [0271] elements 130 a, P1 of FIG. 1C) during output of a logic ‘1’ to the device's series on-resistance (see elements 130 b, N1 of FIG. 1C) during output of a logic ‘0’. Because of such equalized resistances for current sourcing and sinking, the resulting rise/fall times may be made approximately equal. Further, the voltage swings of one device calibrated on a bus may be made nearly equal to that of other devices on the bus, and this can result in no or very small timing skews for any device or voltage level. Setting the reference point to the midpoint between logic high and logic low also provides the lowest possible AC power dissipation during line togglings.
  • (g) By using differential I/O on only the clocks for strobing signals in a memory device, pin count may be reduced as compared to systems that force every I/O path to be differential. The use of differential signaling on the clock paths improves timing stability by reducing sensitivity to common mode noise and reference voltage variances, and it improves control of clock duty cycle. While an ideal high speed system might use differential signaling on all the data and command pins, such a system would not satisfy the desire for low-pin count in memory packages. The use of differential I/O at least for the clocks improves the stability of the timing references. [0272]
  • (h) The use of a daisy-chained serial link ([0273] 152) in the system to sequentially enable individual devices to respond to commands on a shared CommandLink is advantageous during initialization before ID's are assigned. The daisy chain may be use to exclusively address a specific device in a system. The daisy chain may be used at different times to indicate the completion of respective different events (self-calibration and ID acceptance) by all devices.
  • (i) The use of a special first FLAG pin sequence to delineate the beginning of one command packet and the end of a previous command packet is advantageously combined with the use of a special second and different FLAG pin sequence to identifying special functions or operations, such as timing synchronization or calibration. Violation of the normal “1000” sequence (i.e., two or more 1's in a row) indicates the entry into a synchronization mode. [0274]
  • (j) A predefined synchronization pattern (SYNC) is used in an in-circuit calibratable memory system to allow optimization of data capture timing within devices, and to allow alignment of timing between devices to improve the bus efficiency of shared buses. [0275]
  • (k) Register read operations allow optimization of data capture timing for each device by identifying specific components and ranges of timing skew. [0276]
  • (l) Both exclusive addressing, and multi-cast programmable addressing schemes are used within a memory system to allow operations to be performed on appropriate groups of devices, in addition to exclusive operations. Multi-cast addressing can include broadcast addressing. [0277]
  • (m) Methods are disclosed for monitoring for a clock signal transition or level to determine the current latency time between a read command and its respective response in a memory system. This may be used to determine the difference in latencies of various devices in the system. This feature can be used to optimize the use of faster versus slower devices for different operations, or it may be used (possibly in conjunction with programmable latencies) to equalize latencies between devices, or to group devices together logically that have similar latencies. [0278]
  • (n) A memory system is disclosed wherein an initialization sequence includes assigning device ID's for optimal system configuration, and calibration output levels, and aligning and synchronizing the timing on the system bus for optimal performance. [0279]
  • (o) A special pseudo-random bit sequence (e.g., ‘111101011001000’) that produces different 4-bit sequences is disclosed for implementing a synchronization pattern in a memory system. [0280]
  • (p) A method is disclosed of reading unique device characteristics information such as a manufacturer's code from a memory device to determine which manufacturer fabricated the device. This feature provides an advantage for detecting counterfeit memory devices that are physically marked with another manufacturer's name. The system may actually detect and report which devices populate a memory module or board. Other information that may be accessed from such a memory device includes manufacturing information such as date code, mask revision, configuration information such as organization and speed grade information. [0281]
  • (q) A method is disclosed of reading and writing unique device characteristics information. This includes the ability to program or to read a register in a device that specifies a value that is comprised of both analog (time) and digital (number of clock periods, or countable events) components. This allows a device to be optimized for a particular frequency, or any intermediate frequency with better timing resolution; and [0282]
  • (r) The use of a non-free running strobe (DCLK's) for capturing data or information in a memory system whereby the strobe has a preamble of edge transitions prior to the data is advantageous in that it allows the receiving device to lock onto the strobe frequency, and to compensate for internal delays of the latching signals in the receiving device, and/or to reduce intersymbol interference of the strobe signal and thereby reduce timing uncertainty. [0283]
  • The above disclosure is to be taken as illustrative of the invention, not as limiting its scope or spirit. Numerous modifications and variations will become apparent to those skilled in the art after studying the above disclosure. [0284]
  • Given the above disclosure of general concepts and specific embodiments, the scope of protection sought is to be defined by the claims appended hereto. [0285]

Claims (7)

What is claimed is:
1. A memory module [110] for use in a memory system [100] having a command link [151] and one or more data links [155,156] where the command link includes a first pair of lines [151 b] for carrying complementary, command clock signals [CCLK/CCLK#], where each data link includes a second pair of lines [155 b] for carrying complementary, first data clock signals [DCLK0/0#], and where each data link further includes a third pair of lines [155 c] for carrying complementary, second data clock signals [DCLK1/1#], said memory module comprising:
a series of interconnect pins [400] extending between opposed first and second interconnect extremes [pins1:64] wherein said series of interconnect pins includes:
(a) a first pair of interconnect pins [28,29] for receiving said complementary, command clock signals [CCLK/CCLK#]
(b) a second pair of interconnect pins [24,25] for transceiving said complementary, first data clock signals [DCLK0/0#] of a first data link, where the second pair of interconnect pins are located substantially adjacent to the first pair of interconnect pins; and
(c) a third pair of interconnect pins [26,27] for transceiving said complementary, second data clock signals [DLK1/1#] of the first data link, where the third pair of interconnect pins are located substantially adjacent to the first pair of interconnect pins.
2. A memory module [110] according to claim 1 wherein:
(a.1) the first pair of interconnect pins are located substantially centrally within the series of interconnect pins.
3. A memory module [110] according to claim 1 for use in said system [100], wherein a first data link of the system further includes a first plurality of data lines [155 a] each for carrying a noncomplemented data signal [DQ(i)], wherein said series of interconnect pins further includes:
(d) a first plurality of noncomplemented interconnect pins of a same number as said first plurality of data lines, the first plurality of noncomplemented interconnect pins [417,450] being distributed in a substantially symmetric fashion about each of said first, second and third pairs of interconnect pins [427].
4. A memory module [110] according to claim 3 for use in said system [110], wherein the command link of the system further includes a second plurality of command lines [151 a] each for carrying a noncomplemented command signal [CA(j)], wherein said series of interconnect pins further includes:
(e) a second plurality of noncomplemented interconnect pins of a same number as said second plurality of command lines, the second plurality of noncomplemented interconnect pins [430] being disposed substantially adjacent to the combination [427] of said first, second and third pairs of interconnect pins.
5. A Synchronous-Link Dynamic Random Access Memory (SLDRAM) System [100] comprising:
(a) a command module [150] for issuing unicast command packets [210] directed to uniquely addressable ones of plural memory units [111,211] and for issuing multicast command packets directed to addressable collections of said memory units;
(b) a command link [151] for carrying the command packets;
(c) one or more data links [155,156] for carrying data corresponding to packet-commanded data-transfer actions; and
(d) one or more, in-circuit programmably-calibratable SLDRAM modules [110-180] each having one or more of said addressable memory units, where each SLDRAM module is capable of interfacing with the command link and at least one of the data links for appropriately responding to informational queries provided by command packets, for further appropriately responding to tuning (adjustment, or calibrating) commands provided by command packets, and for yet further appropriately responding to data addressing and other data-transfer-related commands provided by command packets.
6. A method for initializing a SLDRAM system [100] having one or more, in-circuit programmably-calibratable SLDRAM modules [110-180], said method comprising the steps of:
(a) first initializing the SLDRAM system by broadcasting from a reference location [150] a predefined first synchronization sequence over command/address lines [CA(9:0)] and data lines [DQ(17:0)] of the system while simultaneously and synchronously outputting from the reference location a continuously-running clock train over one or more clock lines [CCLK,DCLK0,DCLK1] of the system for allowing one or more SLDRAM modules present in the system to each self-adjust local command-receiving circuits [117] and data-receiving [115] circuits of the SLDRAM module to synchronously recognize the predefined first synchronization sequence at the locality of the SLDRAM module;
(b) second initializing the SLDRAM system by sequentially assigning identification codes [ID's] to individually-addressable, memory units [111,121] within the in-system SLDRAM modules;
(c) third initializing the SLDRAM system by sequentially commanding each in-circuit SLDRAM module to adjust output levels of the SLDRAM module's data-clock driving circuits [118] and data-line driving circuits [116] to levels acceptable to an in-circuit memory controller [150];
(d) fourth initializing the SLDRAM system by sequentially commanding each in-circuit SLDRAM module to respectively output a predefined second synchronization sequence over the data lines [DQ(17:0)] of the system while simultaneously and synchronously outputting from the commanded SLDRAM module, a continuously-running clock train over one or more data-clock lines [DCLK0,DCLK1] of the system, this for allowing the in-circuit memory controller to command adjustments (e.g., individual phase changes) to local data-outputting circuits [116] and local data-clock outputting circuits [118] of the sequence-outputting SLDRAM module so that the memory controller will be able to synchronously recognize the predefined second synchronization sequence at the locality of the memory controller; and
(e) fifth initializing the SLDRAM system by sequentially determining data read and data write latency times of respective ones of the in-circuit, individually-addressable, memory units.
7. A method for using a SLDRAM system [100] having one or more, in-circuit programmably-calibratable SLDRAM modules [110-180], said method comprising the steps of:
(a) synchronously issuing command packets from a reference location [150] of the SLDRAM system using command/address lines [CA(9:0)] of the system and command-clock lines [CCLK/CCLK#] of the system for transmitting the command packets to one or more of the in-circuit-calibratable SLDRAM modules of the system, where first ones of the issued command packets individually or collectively address one or more individually-addressable, memory units within the SLDRAM modules and define a data-transfer operation to be carried out by the individually or collectively addressed memory units; and
(b) causing the addressed memory units to responsively perform the defined data-transfer operation within a time slot that follows receipt by the memory unit of a respective command packet, where latency between the receipt of the respective command packet and the responsive performance the defined data-transfer operation is adjustable; and
(c) wherein second ones of the issued command packets individually address one or more of the individually-addressable, memory units and define one or more respective data-transfer latencies for the individually-addressed memory unit.
US10/176,327 1997-08-11 2002-06-19 Memory system having synchronous-link DRAM (SLDRAM) devices and controller Abandoned US20030126356A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/176,327 US20030126356A1 (en) 1997-08-11 2002-06-19 Memory system having synchronous-link DRAM (SLDRAM) devices and controller

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US5534997P 1997-08-11 1997-08-11
US5536897P 1997-08-11 1997-08-11
US08/909,299 US6226723B1 (en) 1996-09-20 1997-08-11 Bifurcated data and command/address communication bus architecture for random access memories employing synchronous communication protocols
US5709297P 1997-08-27 1997-08-27
US5768797P 1997-08-27 1997-08-27
US08/933,713 US5917760A (en) 1996-09-20 1997-09-19 De-skewing data signals in a memory system
US08/933,710 US5945886A (en) 1996-09-20 1997-09-19 High-speed bus structure for printed circuit boards
US08/933,673 US6088774A (en) 1996-09-20 1997-09-19 Read/write timing for maximum utilization of bidirectional read/write bus
US08/987,328 US6249827B1 (en) 1997-08-11 1997-12-09 Method for transferring data associated with a read/write command between a processor and a reader circuit using a plurality of clock lines
US6909297P 1997-12-10 1997-12-10
US09/132,158 US6442644B1 (en) 1997-08-11 1998-08-10 Memory system having synchronous-link DRAM (SLDRAM) devices and controller
US10/176,327 US20030126356A1 (en) 1997-08-11 2002-06-19 Memory system having synchronous-link DRAM (SLDRAM) devices and controller

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US08/909,299 Continuation US6226723B1 (en) 1996-09-20 1997-08-11 Bifurcated data and command/address communication bus architecture for random access memories employing synchronous communication protocols
US09/132,158 Continuation US6442644B1 (en) 1997-08-11 1998-08-10 Memory system having synchronous-link DRAM (SLDRAM) devices and controller

Publications (1)

Publication Number Publication Date
US20030126356A1 true US20030126356A1 (en) 2003-07-03

Family

ID=27556718

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/132,158 Expired - Fee Related US6442644B1 (en) 1997-08-11 1998-08-10 Memory system having synchronous-link DRAM (SLDRAM) devices and controller
US10/176,327 Abandoned US20030126356A1 (en) 1997-08-11 2002-06-19 Memory system having synchronous-link DRAM (SLDRAM) devices and controller

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/132,158 Expired - Fee Related US6442644B1 (en) 1997-08-11 1998-08-10 Memory system having synchronous-link DRAM (SLDRAM) devices and controller

Country Status (1)

Country Link
US (2) US6442644B1 (en)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020030220A1 (en) * 1999-02-26 2002-03-14 Micron Technology, Inc. Conductive container structures having a dielectric cap
US20040030853A1 (en) * 2002-08-12 2004-02-12 Welker James A. Automatic READ latency calculation without software intervention for a source-synchronous interface
US20040205433A1 (en) * 2003-04-14 2004-10-14 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20050025190A1 (en) * 2003-07-28 2005-02-03 Frisch Arnold M. Self-calibrating strobe signal generator
US20050078506A1 (en) * 2003-10-10 2005-04-14 Ocz Technology Posted precharge and multiple open-page ram architecture
WO2005043761A1 (en) * 2003-09-30 2005-05-12 Infineon Technologies Ag Circuit system
US20050268022A1 (en) * 2004-05-26 2005-12-01 Pelley Perry H Cache line memory and method therefor
US20050276141A1 (en) * 2004-05-26 2005-12-15 Pelley Perry H Memory with serial input/output terminals for address and data and method therefor
US20050276142A1 (en) * 2004-05-26 2005-12-15 Pelley Perry H Automatic hidden refresh in a dram and method therefor
US20060029094A1 (en) * 2004-08-07 2006-02-09 Jui-Chung Chen Multi-swap communication module
US20060056262A1 (en) * 2003-12-12 2006-03-16 Stmicroelectronics Sa Serial memory comprising means for protecting an extended memory array during a write operation
US20070061614A1 (en) * 2005-09-12 2007-03-15 Samsung Electronics Co., Ltd. Memory system and method having point-to-point link
US20070120569A1 (en) * 2005-11-02 2007-05-31 Sony Corporation Communication semiconductor chip, calibration method, and program
EP1814119A1 (en) * 2006-01-30 2007-08-01 Fujitsu Limited Semiconductor memory, memory controller and control method for semiconductor memory
US20070195582A1 (en) * 2003-05-28 2007-08-23 Hitachi, Ltd. Semiconductor device
US20070230509A1 (en) * 2006-03-31 2007-10-04 To Hing Thomas Y Disparate clock domain synchronization
US20080133848A1 (en) * 2006-12-01 2008-06-05 Patel Mukesh K Embedded Memory And Multi-Media Accelerator And Method Of Operating Same
US20080177949A1 (en) * 2005-09-12 2008-07-24 Samsung Electronics Co., Ltd. Memory system having low power consumption
US20080211662A1 (en) * 2004-10-15 2008-09-04 Price Vernon D Self-Calibrating Object Detection System
US20090119472A1 (en) * 2007-10-30 2009-05-07 Kazimierz Szczypinski Control circuit in a memory chip
US7536666B1 (en) * 2004-11-19 2009-05-19 Xilinx, Inc. Integrated circuit and method of routing a clock signal in an integrated circuit
US20090172134A1 (en) * 2005-06-03 2009-07-02 Jacobs Rimell Limited Automated provisioning system
US20100053454A1 (en) * 2008-09-04 2010-03-04 Fujitsu Component Limited Receiver and signal transmission system
US20130326184A1 (en) * 2012-06-04 2013-12-05 Macronix International Co., Ltd. Memory apparatus
US20140185396A1 (en) * 2012-12-28 2014-07-03 SK Hynix Inc. Semiconductor memory, memory system, and operation method thereof
US9148277B2 (en) 2007-12-14 2015-09-29 Novachips Canada Inc. Clock reproducing and timing method in a system having a plurality of devices
US20160267015A1 (en) * 2013-10-29 2016-09-15 Hewlett Packard Enterprise Development Lp Mapping virtual memory pages to physical memory pages
TWI581092B (en) * 2016-03-30 2017-05-01 威盛電子股份有限公司 Memory apparatus and energy-saving controlling method thereof
CN106664006A (en) * 2014-09-08 2017-05-10 西门子公司 Power electronic system for operating a load, and method for synchronizing load modules
US10193711B2 (en) 2017-06-22 2019-01-29 Micron Technology, Inc. Timing based arbitration methods and apparatuses for calibrating impedances of a semiconductor device
US10205451B1 (en) 2018-01-29 2019-02-12 Micron Technology, Inc. Methods and apparatuses for dynamic step size for impedance calibration of a semiconductor device
US10223017B2 (en) 2016-03-30 2019-03-05 Via Technologies, Inc. Memory apparatus and energy-saving control method thereof
WO2019089102A1 (en) * 2017-10-30 2019-05-09 Micron Technology, Inc. Apparatuses and methods for identifying memory devices of a semiconductor device sharing an external resistance
US10348270B2 (en) 2016-12-09 2019-07-09 Micron Technology, Inc. Apparatuses and methods for calibrating adjustable impedances of a semiconductor device
US10394473B2 (en) 2015-10-14 2019-08-27 Micron Technology, Inc. Apparatuses and methods for arbitrating a shared terminal for calibration of an impedance termination
WO2021025864A1 (en) * 2019-08-05 2021-02-11 Cypress Semiconductor Corporation Methods for error detection and correction and corresponding systems and devices for the same
US11237579B2 (en) 2019-11-19 2022-02-01 Micron Technology, Inc. Apparatuses and methods for ZQ calibration
US11607038B2 (en) 2019-10-11 2023-03-21 Ergotron, Inc. Configuration techniques for an appliance with changeable components

Families Citing this family (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570944B2 (en) 2001-06-25 2003-05-27 Rambus Inc. Apparatus for data recovery in a synchronous chip-to-chip system
US6173432B1 (en) 1997-06-20 2001-01-09 Micron Technology, Inc. Method and apparatus for generating a sequence of clock signals
US6870419B1 (en) * 1997-08-29 2005-03-22 Rambus Inc. Memory system including a memory device having a controlled output driver characteristic
US6101197A (en) * 1997-09-18 2000-08-08 Micron Technology, Inc. Method and apparatus for adjusting the timing of signals over fine and coarse ranges
AU9798798A (en) * 1997-10-10 1999-05-03 Rambus Incorporated Power control system for synchronous memory device
US6401167B1 (en) * 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory
AU9604698A (en) 1997-10-10 1999-05-03 Rambus Incorporated Method and apparatus for two step memory write operations
US6154821A (en) * 1998-03-10 2000-11-28 Rambus Inc. Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain
US6510503B2 (en) * 1998-07-27 2003-01-21 Mosaid Technologies Incorporated High bandwidth memory interface
US6349399B1 (en) 1998-09-03 2002-02-19 Micron Technology, Inc. Method and apparatus for generating expect data from a captured bit pattern, and memory device using same
US6470060B1 (en) 1999-03-01 2002-10-22 Micron Technology, Inc. Method and apparatus for generating a phase dependent control signal
US6629222B1 (en) * 1999-07-13 2003-09-30 Micron Technology Inc. Apparatus for synchronizing strobe and data signals received from a RAM
US6643787B1 (en) * 1999-10-19 2003-11-04 Rambus Inc. Bus system optimization
US6321282B1 (en) * 1999-10-19 2001-11-20 Rambus Inc. Apparatus and method for topography dependent signaling
US6646953B1 (en) 2000-07-06 2003-11-11 Rambus Inc. Single-clock, strobeless signaling system
US6550052B1 (en) * 1999-11-09 2003-04-15 Daimlerchrysler Corporation Software development framework for constructing embedded vehicle controller software
US6636978B1 (en) * 1999-11-17 2003-10-21 International Business Machines Corporation Rescheduling data input and output commands for bus synchronization by using digital latency shift detection
TW449689B (en) * 1999-12-10 2001-08-11 Via Tech Inc Motherboard and computer system for flexible using SDRAM and DDRAM
US6545875B1 (en) * 2000-05-10 2003-04-08 Rambus, Inc. Multiple channel modules and bus systems using same
US6587804B1 (en) * 2000-08-14 2003-07-01 Micron Technology, Inc. Method and apparatus providing improved data path calibration for memory devices
US6678767B1 (en) * 2000-10-06 2004-01-13 Broadcom Corp Bus sampling on one edge of a clock signal and driving on another edge
US6816932B2 (en) 2000-10-06 2004-11-09 Broadcom Corporation Bus precharge during a phase of a clock signal to eliminate idle clock cycle
US6925086B2 (en) * 2000-12-12 2005-08-02 International Business Machines Corporation Packet memory system
US6976114B1 (en) * 2001-01-25 2005-12-13 Rambus Inc. Method and apparatus for simultaneous bidirectional signaling in a bus topology
US7079775B2 (en) 2001-02-05 2006-07-18 Finisar Corporation Integrated memory mapped controller circuit for fiber optics transceiver
US6665624B2 (en) * 2001-03-02 2003-12-16 Intel Corporation Generating and using calibration information
US6877079B2 (en) * 2001-03-06 2005-04-05 Samsung Electronics Co., Ltd. Memory system having point-to-point bus configuration
US6658523B2 (en) * 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US7003643B1 (en) 2001-04-16 2006-02-21 Micron Technology, Inc. Burst counter controller and method in a memory device operable in a 2-bit prefetch mode
US6675272B2 (en) 2001-04-24 2004-01-06 Rambus Inc. Method and apparatus for coordinating memory operations among diversely-located memory components
US8391039B2 (en) 2001-04-24 2013-03-05 Rambus Inc. Memory module with termination component
US6629225B2 (en) * 2001-05-31 2003-09-30 Intel Corporation Method and apparatus for control calibration of multiple memory modules within a memory channel
US6996632B2 (en) * 2001-06-19 2006-02-07 Intel Corporation Multiphase encoded protocol and synchronization of buses
TW561491B (en) * 2001-06-29 2003-11-11 Toshiba Corp Semiconductor memory device
US6877054B2 (en) * 2001-07-16 2005-04-05 Rambus Inc. Method and apparatus for position dependent data scheduling
US7058131B2 (en) * 2001-11-08 2006-06-06 International Business Machines Corporation Signal transmission system with programmable voltage reference
US7346099B2 (en) * 2002-01-03 2008-03-18 Intel Corporation Network fabric physical layer
DE10203893B4 (en) * 2002-01-31 2004-01-15 Infineon Technologies Ag DDR memory and storage method
US6762961B2 (en) * 2002-04-16 2004-07-13 Sun Microsystems, Inc. Variable delay compensation for data-dependent mismatch in characteristic of opposing devices of a sense amplifier
US7231306B1 (en) 2002-04-30 2007-06-12 Rambus Inc. Method and apparatus for calibrating static timing offsets across multiple outputs
US7088198B2 (en) * 2002-06-05 2006-08-08 Intel Corporation Controlling coupling strength in electromagnetic bus coupling
US6934199B2 (en) * 2002-12-11 2005-08-23 Micron Technology, Inc. Memory device and method having low-power, high write latency mode and high-power, low write latency mode and/or independently selectable write latency
US6832177B2 (en) * 2002-12-27 2004-12-14 Intel Corporation Method of addressing individual memory devices on a memory module
US6887095B2 (en) * 2002-12-30 2005-05-03 Intel Corporation Electromagnetic coupler registration and mating
US7119549B2 (en) * 2003-02-25 2006-10-10 Rambus Inc. Output calibrator with dynamic precision
US20040194109A1 (en) * 2003-03-25 2004-09-30 Tibor Boros Multi-threaded time processing unit for telecommunication systems
US20050166006A1 (en) * 2003-05-13 2005-07-28 Advanced Micro Devices, Inc. System including a host connected serially in a chain to one or more memory modules that include a cache
US7254690B2 (en) * 2003-06-02 2007-08-07 S. Aqua Semiconductor Llc Pipelined semiconductor memories and systems
US7200787B2 (en) * 2003-06-03 2007-04-03 Intel Corporation Memory channel utilizing permuting status patterns
US7168027B2 (en) * 2003-06-12 2007-01-23 Micron Technology, Inc. Dynamic synchronization of data capture on an optical or other high speed communications link
US7072355B2 (en) * 2003-08-21 2006-07-04 Rambus, Inc. Periodic interface calibration for high speed communication
US20050050375A1 (en) * 2003-08-29 2005-03-03 Mark Novak Memory interface system and method
US6924660B2 (en) * 2003-09-08 2005-08-02 Rambus Inc. Calibration methods and circuits for optimized on-die termination
US7177201B1 (en) 2003-09-17 2007-02-13 Sun Microsystems, Inc. Negative bias temperature instability (NBTI) preconditioning of matched devices
US7164612B1 (en) 2003-10-10 2007-01-16 Sun Microsystems, Inc. Test circuit for measuring sense amplifier and memory mismatches
US7020035B1 (en) 2003-10-10 2006-03-28 Sun Microsystems, Inc. Measuring and correcting sense amplifier and memory mismatches using NBTI
US7127584B1 (en) * 2003-11-14 2006-10-24 Intel Corporation System and method for dynamic rank specific timing adjustments for double data rate (DDR) components
US6980020B2 (en) * 2003-12-19 2005-12-27 Rambus Inc. Calibration methods and circuits for optimized on-die termination
US8422568B2 (en) 2004-01-28 2013-04-16 Rambus Inc. Communication channel calibration for drift conditions
US7158536B2 (en) * 2004-01-28 2007-01-02 Rambus Inc. Adaptive-allocation of I/O bandwidth using a configurable interconnect topology
US7400670B2 (en) 2004-01-28 2008-07-15 Rambus, Inc. Periodic calibration for communication channels by drift tracking
US7095789B2 (en) * 2004-01-28 2006-08-22 Rambus, Inc. Communication channel calibration for drift conditions
US7299329B2 (en) 2004-01-29 2007-11-20 Micron Technology, Inc. Dual edge command in DRAM
KR100585136B1 (en) * 2004-03-04 2006-05-30 삼성전자주식회사 Memory system and data channel initialization method thereof
KR100539252B1 (en) * 2004-03-08 2005-12-27 삼성전자주식회사 Memory module capable of improving the integrity of signal transferred through data bus and command/address bus, and memory system including the same
US6961862B2 (en) 2004-03-17 2005-11-01 Rambus, Inc. Drift tracking feedback for communication channels
US7099221B2 (en) * 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US7978754B2 (en) * 2004-05-28 2011-07-12 Rambus Inc. Communication channel calibration with nonvolatile parameter store for recovery
US7516029B2 (en) 2004-06-09 2009-04-07 Rambus, Inc. Communication channel calibration using feedback
US7535958B2 (en) * 2004-06-14 2009-05-19 Rambus, Inc. Hybrid wired and wireless chip-to-chip communications
US20060010339A1 (en) * 2004-06-24 2006-01-12 Klein Dean A Memory system and method having selective ECC during low power refresh
US7340668B2 (en) * 2004-06-25 2008-03-04 Micron Technology, Inc. Low power cost-effective ECC memory system and method
KR100608882B1 (en) * 2004-06-30 2006-08-08 엘지전자 주식회사 Waveguide system of electrodeless lighting device
US7116602B2 (en) * 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US6965537B1 (en) * 2004-08-31 2005-11-15 Micron Technology, Inc. Memory system and method using ECC to achieve low power refresh
US7301831B2 (en) 2004-09-15 2007-11-27 Rambus Inc. Memory systems with variable delays for write data signals
US7489739B2 (en) * 2004-09-17 2009-02-10 Rambus, Inc. Method and apparatus for data recovery
US7173877B2 (en) * 2004-09-30 2007-02-06 Infineon Technologies Ag Memory system with two clock lines and a memory device
WO2006044942A2 (en) * 2004-10-20 2006-04-27 Atmel Corporation Method and system for providing sensing circuitry in a multi-bank memory device
ITMI20041988A1 (en) * 2004-10-20 2005-01-20 Atmel Corp "METHOD AND SYSTEM FOR THE DELIVERY OF DETECTION IN A MULTIPLE BENCH MEMORY DEVICE."
US20060095652A1 (en) * 2004-10-29 2006-05-04 Hermann Ruckerbauer Memory device and method for receiving instruction data
US7196567B2 (en) * 2004-12-20 2007-03-27 Rambus Inc. Systems and methods for controlling termination resistance values for a plurality of communication channels
US7136310B2 (en) * 2004-12-27 2006-11-14 Rambus Inc. Programmable output driver turn-on time for an integrated circuit memory device
US7996590B2 (en) * 2004-12-30 2011-08-09 Samsung Electronics Co., Ltd. Semiconductor memory module and semiconductor memory system having termination resistor units
KR101570180B1 (en) 2009-05-20 2015-11-18 삼성전자주식회사 Semiconductor memory module and semiconductor memory system capable of improving a signal integrity
US8335115B2 (en) * 2004-12-30 2012-12-18 Samsung Electronics Co., Ltd. Semiconductor memory module and semiconductor memory system having termination resistor units
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
EP1872192B1 (en) 2005-04-21 2012-09-12 Violin Memory, Inc. Interconnection system
US7389194B2 (en) * 2005-07-06 2008-06-17 Rambus Inc. Driver calibration methods and circuits
US11328764B2 (en) 2005-09-26 2022-05-10 Rambus Inc. Memory system topologies including a memory die stack
US7562271B2 (en) 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7464225B2 (en) * 2005-09-26 2008-12-09 Rambus Inc. Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology
JP5193045B2 (en) 2005-09-30 2013-05-08 モサイド・テクノロジーズ・インコーポレーテッド Memory with output controller
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US7269093B2 (en) * 2005-10-31 2007-09-11 Infineon Technologies Ag Generating a sampling clock signal in a communication block of a memory device
US8335868B2 (en) * 2006-03-28 2012-12-18 Mosaid Technologies Incorporated Apparatus and method for establishing device identifiers for serially interconnected devices
KR100746620B1 (en) * 2006-06-29 2007-08-08 주식회사 하이닉스반도체 Circuit generating a auto-precharge signal
US8700818B2 (en) 2006-09-29 2014-04-15 Mosaid Technologies Incorporated Packet based ID generation for serially interconnected devices
US7894289B2 (en) 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US7900120B2 (en) 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
JP4952194B2 (en) * 2006-10-31 2012-06-13 富士通セミコンダクター株式会社 Semiconductor memory device
US8271758B2 (en) 2006-12-06 2012-09-18 Mosaid Technologies Incorporated Apparatus and method for producing IDS for interconnected devices of mixed type
US8433874B2 (en) * 2006-12-06 2013-04-30 Mosaid Technologies Incorporated Address assignment and type recognition of serially interconnected memory devices of mixed type
US8331361B2 (en) * 2006-12-06 2012-12-11 Mosaid Technologies Incorporated Apparatus and method for producing device identifiers for serially interconnected devices of mixed type
US8010709B2 (en) * 2006-12-06 2011-08-30 Mosaid Technologies Incorporated Apparatus and method for producing device identifiers for serially interconnected devices of mixed type
US7925854B2 (en) * 2006-12-06 2011-04-12 Mosaid Technologies Incorporated System and method of operating memory devices of mixed type
US7853727B2 (en) * 2006-12-06 2010-12-14 Mosaid Technologies Incorporated Apparatus and method for producing identifiers regardless of mixed device type in a serial interconnection
US20080137470A1 (en) * 2006-12-07 2008-06-12 Josef Schnell Memory with data clock receiver and command/address clock receiver
US8984249B2 (en) * 2006-12-20 2015-03-17 Novachips Canada Inc. ID generation apparatus and method for serially interconnected devices
US7802061B2 (en) * 2006-12-21 2010-09-21 Intel Corporation Command-based control of NAND flash memory
US20080170685A1 (en) * 2007-01-16 2008-07-17 Broadcom Corporation, A California Corporation Data scrambling circuit
US8010710B2 (en) 2007-02-13 2011-08-30 Mosaid Technologies Incorporated Apparatus and method for identifying device type of serially interconnected devices
CN101617371B (en) 2007-02-16 2014-03-26 莫塞德技术公司 Non-volatile semiconductor memory having multiple external power supplies
US8086785B2 (en) 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
US8046527B2 (en) 2007-02-22 2011-10-25 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
KR100868251B1 (en) * 2007-03-22 2008-11-12 주식회사 하이닉스반도체 Semiconductor Memory Device
US8467486B2 (en) 2007-12-14 2013-06-18 Mosaid Technologies Incorporated Memory controller with flexible data alignment to clock
US8291248B2 (en) 2007-12-21 2012-10-16 Mosaid Technologies Incorporated Non-volatile semiconductor memory device with power saving feature
WO2009079744A1 (en) * 2007-12-21 2009-07-02 Mosaid Technologies Incorporated Non-volatile semiconductor memory device with power saving feature
US8966414B2 (en) 2009-05-29 2015-02-24 Cypress Semiconductor Corporation Implementing a circuit using an integrated circuit including parametric analog elements
US9858367B1 (en) 2009-08-31 2018-01-02 Cypress Semiconductor Corporation Integrated circuit including parametric analog elements
EP4053840A1 (en) * 2010-02-23 2022-09-07 Rambus Inc. Methods and circuits for dynamically scaling dram power and performance
KR101132797B1 (en) * 2010-03-30 2012-04-02 주식회사 하이닉스반도체 Semiconductor module comprising module control circuit and module control method of semiconductor module
US8526249B1 (en) 2010-08-04 2013-09-03 Marvell International Ltd. Methods and systems for detecting and correcting timing signal drift in memory systems
US9223726B2 (en) 2010-09-10 2015-12-29 Cypress Semiconductor Corporation Apparatus and method for programmable read preamble with training pattern
US8990605B2 (en) * 2010-09-10 2015-03-24 Spansion Llc Apparatus and method for read preamble disable
US9355051B2 (en) * 2010-09-10 2016-05-31 Cypress Semiconductor Corporation Apparatus, method, and manufacture for using a read preamble to optimize data capture
US8520428B2 (en) 2011-03-25 2013-08-27 Intel Corporation Combined data level-shifter and DE-skewer
US8760945B2 (en) 2011-03-28 2014-06-24 Samsung Electronics Co., Ltd. Memory devices, systems and methods employing command/address calibration
DE202012013709U1 (en) * 2011-03-28 2020-01-07 Samsung Electronics Co., Ltd. Storage devices and systems using command / address calibration
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9588883B2 (en) 2011-09-23 2017-03-07 Conversant Intellectual Property Management Inc. Flash memory system
US9641122B2 (en) * 2012-06-26 2017-05-02 Johnson Controls Technology Company HVAC actuator with automatic end stop recalibration
US9190129B2 (en) * 2013-05-31 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Continuous tuning of preamble release timing in a double data-rate memory device interface
KR20150019268A (en) * 2013-08-13 2015-02-25 에스케이하이닉스 주식회사 Data input/output apparatus and system including the same
US9542305B2 (en) * 2015-01-16 2017-01-10 Harman International Industries, Inc. Impedance matching for high speed signaling in memory system
US10199962B2 (en) 2015-03-18 2019-02-05 Johnson Controls Technology Company Plug and play universal input actuator
US9727267B1 (en) * 2016-09-27 2017-08-08 Intel Corporation Power management and monitoring for storage devices
US10095432B2 (en) 2016-09-27 2018-10-09 Intel Corporation Power management and monitoring for storage devices
US11114179B1 (en) * 2017-12-13 2021-09-07 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Systems and methods for detecting counterfeit memory
US11728000B1 (en) 2017-12-13 2023-08-15 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Systems and methods for detecting counterfeit or defective memory
US11177003B1 (en) 2019-03-04 2021-11-16 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Systems and methods for runtime analog sanitation of memory
US11139043B2 (en) 2019-05-20 2021-10-05 Board Of Trustees Of The University Of Alabama, For And On Behalf Of The University Of Alabama In Huntsville Systems and methods for identifying counterfeit memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495482A (en) * 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
US5477541A (en) * 1989-09-29 1995-12-19 White; Richard E. Addressing technique for storing and referencing packet data
JP3311260B2 (en) * 1996-12-17 2002-08-05 富士通株式会社 Semiconductor device and semiconductor storage device

Cited By (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020030220A1 (en) * 1999-02-26 2002-03-14 Micron Technology, Inc. Conductive container structures having a dielectric cap
US20020030221A1 (en) * 1999-02-26 2002-03-14 Micron Technology, Inc. Conductive container structures having a dielectric cap
US6833579B2 (en) * 1999-02-26 2004-12-21 Micron Technology, Inc. Conductive container structures having a dielectric cap
US6946357B2 (en) 1999-02-26 2005-09-20 Micron Technology, Inc. Conductive container structures having a dielectric cap
US7199415B2 (en) 1999-02-26 2007-04-03 Micron Technology, Inc. Conductive container structures having a dielectric cap
US20070284638A1 (en) * 1999-02-26 2007-12-13 Micron Technology, Inc. Conductive container structures having a dielectric cap
US20060244030A1 (en) * 1999-02-26 2006-11-02 Micron Technology, Inc. Conductive container structures having a dielectric cap
US7298000B2 (en) 1999-02-26 2007-11-20 Micron Technology, Inc. Conductive container structures having a dielectric cap
US20040030853A1 (en) * 2002-08-12 2004-02-12 Welker James A. Automatic READ latency calculation without software intervention for a source-synchronous interface
US6898682B2 (en) * 2002-08-12 2005-05-24 Freescale Semiconductor, Inc. Automatic READ latency calculation without software intervention for a source-synchronous interface
US20060242541A1 (en) * 2003-04-14 2006-10-26 Gower Kevin C High reliability memory module with a fault tolerant address and command bus
US8489936B2 (en) 2003-04-14 2013-07-16 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7761771B2 (en) 2003-04-14 2010-07-20 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7363533B2 (en) 2003-04-14 2008-04-22 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20070204201A1 (en) * 2003-04-14 2007-08-30 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20070204200A1 (en) * 2003-04-14 2007-08-30 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20070250756A1 (en) * 2003-04-14 2007-10-25 Gower Kevin C High reliability memory module with a fault tolerant address and command bus
US7380179B2 (en) 2003-04-14 2008-05-27 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US20040205433A1 (en) * 2003-04-14 2004-10-14 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7234099B2 (en) * 2003-04-14 2007-06-19 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7366947B2 (en) 2003-04-14 2008-04-29 International Business Machines Corporation High reliability memory module with a fault tolerant address and command bus
US7542357B2 (en) * 2003-05-28 2009-06-02 Hitachi, Ltd. Semiconductor device
US20070195582A1 (en) * 2003-05-28 2007-08-23 Hitachi, Ltd. Semiconductor device
US20050025190A1 (en) * 2003-07-28 2005-02-03 Frisch Arnold M. Self-calibrating strobe signal generator
US7219269B2 (en) * 2003-07-28 2007-05-15 Credence Systems Corporation Self-calibrating strobe signal generator
US20060248260A1 (en) * 2003-09-30 2006-11-02 Maksim Kuzmenka Circuit system
WO2005043761A1 (en) * 2003-09-30 2005-05-12 Infineon Technologies Ag Circuit system
KR100760727B1 (en) * 2003-09-30 2007-09-21 인피니언 테크놀로지스 아게 Circuit system
US7433258B2 (en) * 2003-10-10 2008-10-07 Datasecure Llc. Posted precharge and multiple open-page RAM architecture
US20050078506A1 (en) * 2003-10-10 2005-04-14 Ocz Technology Posted precharge and multiple open-page ram architecture
US20060056262A1 (en) * 2003-12-12 2006-03-16 Stmicroelectronics Sa Serial memory comprising means for protecting an extended memory array during a write operation
US7474585B2 (en) 2004-05-26 2009-01-06 Freescale Semiconductor, Inc. Memory with serial input-output terminals for address and data and method therefor
US7088632B2 (en) 2004-05-26 2006-08-08 Freescale Semiconductor, Inc. Automatic hidden refresh in a dram and method therefor
US20070211554A1 (en) * 2004-05-26 2007-09-13 Freescale Semiconductor, Inc. Memory with serial input-output terminals for address and data and method therefor
US20050276141A1 (en) * 2004-05-26 2005-12-15 Pelley Perry H Memory with serial input/output terminals for address and data and method therefor
US20050268022A1 (en) * 2004-05-26 2005-12-01 Pelley Perry H Cache line memory and method therefor
US20050276142A1 (en) * 2004-05-26 2005-12-15 Pelley Perry H Automatic hidden refresh in a dram and method therefor
US7221613B2 (en) 2004-05-26 2007-05-22 Freescale Semiconductor, Inc. Memory with serial input/output terminals for address and data and method therefor
US7324835B2 (en) * 2004-08-07 2008-01-29 C-One Technology Corporation Motherboard and daughterboard multi-swap system with communication module for a GPRS system
US20060029094A1 (en) * 2004-08-07 2006-02-09 Jui-Chung Chen Multi-swap communication module
US20080211662A1 (en) * 2004-10-15 2008-09-04 Price Vernon D Self-Calibrating Object Detection System
US7536666B1 (en) * 2004-11-19 2009-05-19 Xilinx, Inc. Integrated circuit and method of routing a clock signal in an integrated circuit
US8135808B2 (en) * 2005-06-03 2012-03-13 Jacobs Rimell Limited Automated provisioning system
US20090172134A1 (en) * 2005-06-03 2009-07-02 Jacobs Rimell Limited Automated provisioning system
US20080177949A1 (en) * 2005-09-12 2008-07-24 Samsung Electronics Co., Ltd. Memory system having low power consumption
US7966446B2 (en) * 2005-09-12 2011-06-21 Samsung Electronics Co., Ltd. Memory system and method having point-to-point link
US20070061614A1 (en) * 2005-09-12 2007-03-15 Samsung Electronics Co., Ltd. Memory system and method having point-to-point link
US7930492B2 (en) 2005-09-12 2011-04-19 Samsung Electronics Co., Ltd. Memory system having low power consumption
US7995966B2 (en) * 2005-11-02 2011-08-09 Sony Corporation Communication semiconductor chip, calibration method, and program
US20070120569A1 (en) * 2005-11-02 2007-05-31 Sony Corporation Communication semiconductor chip, calibration method, and program
US20070177449A1 (en) * 2006-01-30 2007-08-02 Fujitsu Limited Semiconductor memory, memory controller and control method for semiconductor memory
EP1814119A1 (en) * 2006-01-30 2007-08-01 Fujitsu Limited Semiconductor memory, memory controller and control method for semiconductor memory
US7599244B2 (en) 2006-01-30 2009-10-06 Fujitsu Microelectronics Limited Semiconductor memory, memory controller and control method for semiconductor memory
US7936789B2 (en) * 2006-03-31 2011-05-03 Intel Corporation Disparate clock domain synchronization
US20070230509A1 (en) * 2006-03-31 2007-10-04 To Hing Thomas Y Disparate clock domain synchronization
US8442075B2 (en) 2006-03-31 2013-05-14 Intel Corporation Disparate clock domain synchronization
US20080133848A1 (en) * 2006-12-01 2008-06-05 Patel Mukesh K Embedded Memory And Multi-Media Accelerator And Method Of Operating Same
US8756393B2 (en) * 2007-10-30 2014-06-17 Qimonda Ag Control circuit in a memory chip
US20090119472A1 (en) * 2007-10-30 2009-05-07 Kazimierz Szczypinski Control circuit in a memory chip
US9148277B2 (en) 2007-12-14 2015-09-29 Novachips Canada Inc. Clock reproducing and timing method in a system having a plurality of devices
US8471835B2 (en) * 2008-09-04 2013-06-25 Fujitsu Component Limited Receiver and signal transmission system
US20100053454A1 (en) * 2008-09-04 2010-03-04 Fujitsu Component Limited Receiver and signal transmission system
US20130326184A1 (en) * 2012-06-04 2013-12-05 Macronix International Co., Ltd. Memory apparatus
US8825978B2 (en) * 2012-06-04 2014-09-02 Macronix International Co., Ltd. Memory apparatus
US20140185396A1 (en) * 2012-12-28 2014-07-03 SK Hynix Inc. Semiconductor memory, memory system, and operation method thereof
US8947955B2 (en) * 2012-12-28 2015-02-03 SK Hynix Inc. Semiconductor memory, memory system, and operation method thereof
US20160267015A1 (en) * 2013-10-29 2016-09-15 Hewlett Packard Enterprise Development Lp Mapping virtual memory pages to physical memory pages
US10340784B2 (en) 2014-09-08 2019-07-02 Siemens Aktiengesellschaft Power electronic system and method for synchronizing power modules
CN106664006A (en) * 2014-09-08 2017-05-10 西门子公司 Power electronic system for operating a load, and method for synchronizing load modules
US10394473B2 (en) 2015-10-14 2019-08-27 Micron Technology, Inc. Apparatuses and methods for arbitrating a shared terminal for calibration of an impedance termination
US10216250B2 (en) 2016-03-30 2019-02-26 Via Technologies, Inc. Memory apparatus and energy-saving control method thereof
US10223017B2 (en) 2016-03-30 2019-03-05 Via Technologies, Inc. Memory apparatus and energy-saving control method thereof
TWI581092B (en) * 2016-03-30 2017-05-01 威盛電子股份有限公司 Memory apparatus and energy-saving controlling method thereof
US10868519B2 (en) 2016-12-09 2020-12-15 Micron Technology, Inc. Apparatuses and methods for calibrating adjustable impedances of a semiconductor device
US11916527B2 (en) 2016-12-09 2024-02-27 Lodestar Licensing Group Llc Apparatuses and methods for calibrating adjustable impedances of a semiconductor device
US10348270B2 (en) 2016-12-09 2019-07-09 Micron Technology, Inc. Apparatuses and methods for calibrating adjustable impedances of a semiconductor device
US11482989B2 (en) 2016-12-09 2022-10-25 Micron Technology, Inc. Apparatuses and methods for calibrating adjustable impedances of a semiconductor device
US10193711B2 (en) 2017-06-22 2019-01-29 Micron Technology, Inc. Timing based arbitration methods and apparatuses for calibrating impedances of a semiconductor device
US10530613B2 (en) 2017-06-22 2020-01-07 Micron Technology, Inc. Timing based arbitration methods and apparatuses for calibrating impedances of a semiconductor device
US11212142B2 (en) 2017-06-22 2021-12-28 Micron Technology, Inc. Timing based arbitration methods and apparatuses for calibrating impedances of a semiconductor device
US10855495B2 (en) 2017-06-22 2020-12-01 Micron Technology, Inc. Timing based arbitration methods and apparatuses for calibrating impedances of a semiconductor device
WO2019089102A1 (en) * 2017-10-30 2019-05-09 Micron Technology, Inc. Apparatuses and methods for identifying memory devices of a semiconductor device sharing an external resistance
US11121714B2 (en) 2017-10-30 2021-09-14 Micron Technology, Inc. Apparatuses and methods for identifying memory devices of a semiconductor device sharing an external resistance
US10615798B2 (en) 2017-10-30 2020-04-07 Micron Technology, Inc. Apparatuses and methods for identifying memory devices of a semiconductor device sharing an external resistance
US11728812B2 (en) 2017-10-30 2023-08-15 Micron Technology, Inc. Apparatuses and methods for identifying memory devices of a semiconductor device sharing an external resistance
US10396787B2 (en) 2018-01-29 2019-08-27 Micron Technology, Inc. Methods and apparatuses for dynamic step size for impedance calibration of a semiconductor device
US10205451B1 (en) 2018-01-29 2019-02-12 Micron Technology, Inc. Methods and apparatuses for dynamic step size for impedance calibration of a semiconductor device
WO2021025864A1 (en) * 2019-08-05 2021-02-11 Cypress Semiconductor Corporation Methods for error detection and correction and corresponding systems and devices for the same
US11403172B2 (en) 2019-08-05 2022-08-02 Cypress Semiconductor Corporation Methods for error detection and correction and corresponding systems and devices for the same
US11607038B2 (en) 2019-10-11 2023-03-21 Ergotron, Inc. Configuration techniques for an appliance with changeable components
US11237579B2 (en) 2019-11-19 2022-02-01 Micron Technology, Inc. Apparatuses and methods for ZQ calibration

Also Published As

Publication number Publication date
US6442644B1 (en) 2002-08-27

Similar Documents

Publication Publication Date Title
US6442644B1 (en) Memory system having synchronous-link DRAM (SLDRAM) devices and controller
US11206020B2 (en) On-die termination
US11823732B2 (en) High capacity memory system using standard controller component
Gillingham et al. SLDRAM: High-performance, open-standard memory
US7765376B2 (en) Apparatuses for synchronous transfer of information
US7644216B2 (en) System and method for providing an adapter for re-use of legacy DIMMS in a fully buffered memory environment
US7529112B2 (en) 276-Pin buffered memory module with enhanced fault tolerance and a performance-optimized pin assignment
US7111108B2 (en) Memory system having a multiplexed high-speed channel
US8588012B2 (en) Balanced on-die termination
US20230298642A1 (en) Data-buffer controller/control-signal redriver
US10241538B2 (en) Resynchronization of a clock associated with each data bit in a double data rate memory system

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE