WO1994003901A1 - Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration - Google Patents

Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration Download PDF

Info

Publication number
WO1994003901A1
WO1994003901A1 PCT/US1993/007262 US9307262W WO9403901A1 WO 1994003901 A1 WO1994003901 A1 WO 1994003901A1 US 9307262 W US9307262 W US 9307262W WO 9403901 A1 WO9403901 A1 WO 9403901A1
Authority
WO
WIPO (PCT)
Prior art keywords
bus
module
memory
data
transceiver
Prior art date
Application number
PCT/US1993/007262
Other languages
French (fr)
Inventor
Wingyu Leung
Fu-Chieh Hsu
Original Assignee
Monolithic System Technology, 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
Application filed by Monolithic System Technology, Inc. filed Critical Monolithic System Technology, Inc.
Priority to DE69331061T priority Critical patent/DE69331061T2/en
Priority to EP93918585A priority patent/EP0654168B1/en
Priority to JP6505501A priority patent/JPH08500687A/en
Priority to AU47987/93A priority patent/AU4798793A/en
Publication of WO1994003901A1 publication Critical patent/WO1994003901A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0272Arrangements for coupling to multiple lines, e.g. for differential transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1032Simple parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0653Configuration or reconfiguration with centralised address assignment
    • G06F12/0661Configuration or reconfiguration with centralised address assignment and decentralised selection
    • 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/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • G06F13/4077Precharging or discharging
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/006Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/83Masking faults in memories by using spares or by reconfiguring using programmable devices with reduced power consumption
    • G11C29/832Masking faults in memories by using spares or by reconfiguring using programmable devices with reduced power consumption with disconnection of faulty elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L22/00Testing or measuring during manufacture or treatment; Reliability measurements, i.e. testing of parts without further processing to modify the parts as such; Structural arrangements therefor
    • H01L22/20Sequence of activities consisting of a plurality of measurements, corrections, marking or sorting steps
    • H01L22/22Connection or disconnection of sub-entities or redundant parts of a device in response to a measurement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/026Arrangements for coupling transmitters, receivers or transceivers to transmission lines; Line drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/14Two-way operation using the same type of signal, i.e. duplex
    • H04L5/1461Suppression of signals in the return path, i.e. bidirectional control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0401Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals in embedded memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/81Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a hierarchical redundancy scheme
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier
    • H01L27/0203Particular design considerations for integrated circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/028Arrangements specific to the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/028Arrangements specific to the transmitter end
    • H04L25/029Provision of high-impedance states
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0292Arrangements specific to the receiver end
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S257/00Active solid-state devices, e.g. transistors, solid-state diodes
    • Y10S257/907Folded bit line dram configuration

Definitions

  • the present invention generally relates to wafer- scale circuit integration, in particular to a wafer-scale integrated circuit system comprising data processing elements partitioned into modules, a parallel high-speed hierarchical bus, and one or more bus masters which control the bus operation, bus and a bus interface thereof.
  • Wafer-scale integration provides more transistors in a single large chip, which allows more functions to be integrated in a small printed circuit board area. Systems built with wafer-scale integration therefore have higher performance, higher reliability and lower cost.
  • the major barrier to a successful wafer-scale system has been defects inherent in the fabrication process which may render a substantial part of or the whole system nonfunctional. Therefore, it is important to have an effective defect tolerant scheme which allows the overall system to function despite failure of some of its functional blocks.
  • One effective way to manage defects is to partition the wafer-scale system into identical small blocks so that defective blocks can be eliminated.
  • the area of each block is usually made small so that the overall block yield is high. If the number of defective blocks is small, the performance of the system as a whole is not substantially affected.
  • the blocks are in general connected together by an interconnect network which provides communication links between each block and the outside.
  • the blocks are usually small, information processing within each block is relatively fast and the overall system performance is largely determined by the performance (bandwidth and latency) of the network. Since the network may extend over the entire wafer, its total area is significant and it is highly susceptible to defects. Therefore, it is important for the network to be highly tolerant to defects. Traditionally, high communication performance and defect tolerance are conflicting requirements on the network. High communication performance, such as short latency and high bandwidth, requires large numbers of parallel lines in the network which occupy a large area, making it more susceptible to defects.
  • one object of this invention is to provide a defect or fault tolerant bus for connecting multiple functional modules to one or more bus masters, so that performance of the bus is not substantially affected by defects and faults in the bus nor in the modules.
  • Another object of this invention is to provide a high-speed interface in the module so that large amounts of data can be transferred between the module and the bus masters.
  • Another object of this invention is to provide a method for disabling defective modules so that they have little effect on the rest of the system.
  • Another object of this invention is to provide a method for changing the communication address of a module when the system is in operation.
  • the technique facilitates dynamic address mapping and provides run-time fault tolerance to the system.
  • Another object of this invention is to provide programmability in the bus transceivers so that the bus network can be dynamically reconfigured.
  • a fault- tolerant, high-speed wafer scale system comprises a plurality of functional modules, a parallel hierarchical bus which is fault-tolerant to defects in an interconnect network, and one or more bus masters.
  • This bus includes a plurality of bus lines segmented into sections and linked together by programmable bus switches and bus transceivers or repeaters in an interconnect network.
  • a high speed, fault-tolerant bus system is provided for communication between functional module and one or more bus controllers. Structured into a 3-level hierarchy, the bus allows high frequency operation (>500 MHz) while maintaining low communication latency ( ⁇ 30 ns) , and high reconfiguration flexibility.
  • the bus employs a special source-synchronous block or packet transfer scheme for data communication and asynchronous handshakes for bus control and dynamic configuration.
  • This source synchronous scheme allows modules to communicate at different frequencies and increases the overall yield of the system as it can accommodate both slow and fast memory devices without sacrificing the performance of the fast devices. It also frees the system of the burden of implementing a global clock synchronization which in general consumes a relatively large amount of power and is difficult to achieve high synchronization accuracy in a wafer-scale or large chip environment.
  • the functional modules are memory modules and each module consists of DRAM arrays and their associated circuitry.
  • the bus master is the memory controller which carries out memory access requested by other devices such as a CPU, a DMA controller and a graphics controller in a digital system.
  • Such a memory subsystem can be used in for instance, computers, image processing, and digital and high-definition television.
  • the memory module and a substantial part of the bus are integrated in a wafer-scale or large chip environment.
  • One variation is to integrate the whole memory subsystem, including the memory modules, the bus and the memory controller, in a single integrated circuit device.
  • Another variation is to integrate the whole memory subsystem into a few integrated circuit devices connected together using substantially the same bus.
  • the invention can also be used in a system where the circuit modules are each a processor with it's own memory and the bus master is an instruction controller which fetches and decodes program instruction from an external memory. The decoded instruction and data are then sent through the bus to the processors.
  • Such a system can be used to perform high-speed, high through-put data processing.
  • the DRAM arrays By grouping the DRAM arrays into logically independent modules of relatively small memory capacity (588 Kbit) , a large number of cache lines (128) is obtained at small main memory capacity (4 Mbyte) . The large number of cache lines is necessary for maintaining a high cache hit rate (>90%) .
  • the small module size also makes high-speed access ( ⁇ 30 ns) possible.
  • High defect tolerance in the hierarchical bus is obtained using the following techniques: 1) Use of relatively small block size (512K bit or 588K bit with parity) for the memory modules; 2) Use of programmable identification register to facilitate dynamic address mapping and relatively easy incorporation of global redundancy; 3) Use of a grid structure for the bus to provide global redundancy for the interconnect network; 4) Use of a relatively narrow bus consisting of 13 signal lines to keep the total area occupied by the bus small; 5) Use of segmented bus lines connected by programmable switches and programmable bus transceivers to facilitate easy isolation of bus defects; 6) Use of special circuit for bus transceivers and asynchronous handshakes to facilitate dynamic bus configuration; 7) Use of programmable control register to facilitate run-time bus reconfiguration; 8) Use of spare bus lines to provide local redundancy for the bus; and 9) Use of spare rows and columns in the memory module to provide local redundancy.
  • Figure 1 is a block diagram of a digital system in accordance with the present invention as a memory subsystem.
  • Figure 2 is a diagram showing the hierarchical structure of the bus.
  • Figure 3 is a diagram showing the structure of a cross-bar switch used in the hierarchical bus.
  • Figure 4 is a table defining the bus signals.
  • Figure 5 is a truth table defining the bus states.
  • Figure 6 is a diagram showing a bus configuration under point-to-point communication.
  • Figure 7 shows the field definitions of a command packet.
  • Figure 8 is a block diagram showing the bus topology for a prior art general purpose EDC system.
  • Figure 9 shows the field definitions of a data packet with EDC code.
  • Figure 10 is a block diagram showing in Figure 10(a) an implementation of EDC using bus-watch technique;
  • Figure 10(b) is an implementation of EDC using flow-through technique.
  • Figure 11 is a block diagram of a memory module used in the present invention.
  • Figure 12(a) is a schematic showing the circuit implementing dual-edge transfer; it also shows the matching circuit for the clock buffer; Figure 12(b) is the timing diagram of the circuit in (a) .
  • Figure 13 is a schematic showing the circuit of the programmable clock generator.
  • Figure 14 is a block diagram showing the system configuration used for testing the wafer-scale memory using a relatively low speed tester.
  • Figure 15 is a block diagram showing the functional blocks of a memory bus interface.
  • Figure 16 shows the field definition of the configuration register in the memory bus interface.
  • Figure 17 shows the schematic of a bus transceiver: Figure 17(a) is a block diagram; Figure 17(b) is a bus transceiver consisting of two back-to-back bi-directional tri-state drivers; Figure 17(c) is a circuit of the tri- state driver; Figure 17(d) is a circuit of the control unit; Figure 17(e) is a block diagram showing an identification register and a control register included in the control unit.
  • Figure 18 shows diagrams showing the reconfiguration of the bus network using the programmability in the bus transceivers:
  • Figure 18(a) is a section of the bus network including grids of the global bus;
  • Figure 18(b) is 5 a Symbolic representation of the bus section in (a) ;
  • Figure 18(c) is a Bus section of Figure 18(a) configured to tree structure;
  • Figure 18(d) is a Reconfiguration of the bus tree in Figure 18(c) to isolate defects;
  • figure 18(e) is Reconfiguration of the bus section in Figure 10 18(d) to switch the position of bus master;
  • Figure 18(f) is the bus section in Figure 18(a) when two transceivers are incorporated in each vertical link;
  • Figure 18(g) is the bus section in Figure 18(a) when two transceivers are incorporated in each bus link.
  • a memory sub-system As illustrated in Figure l, a memory sub-system according to the present invention is used in a digital system, which consists of a wafer scale memory 5, hierarchical memory bus 6 and a memory controller 7.
  • a digital system which consists of a wafer scale memory 5, hierarchical memory bus 6 and a memory controller 7.
  • memory controller 7 controls memory access and comprises a memory bus interface 8 for communicating to the hierarchical bus 6, and a system bus interface 9 for communicating to the system bus 10.
  • the system bus 10 connects the memory subsystem to the memory request
  • the bus has a hierarchical structure which can be distinguished into 3 levels. As illustrated in Figure 2, the first level or the root level has a few branches (IOB)
  • the root branches are connected to the second level through the input-output
  • the bus is arranged into quad trees with four memory modules connecting to one local bus transceiver (LT) through the local bus interconnect (LB) .
  • the bus is divided into bus segments (GB) arranged into grids joined together by bus transceivers (GT) and bus switches (S) .
  • One of the bus grids is high-lighted with thicker lines in Figure 2.
  • the second level bus or the global bus forms the backbone of the communication network. In a system with many memory modules, loading on the global bus can be relatively heavy. To facilitate high frequency communications, bus repeaters or transceivers are inserted periodically to restore signal quality.
  • IOT input- output transceiver
  • the grid structure interlaced with bus repeaters allows flexible bus configuration for high defect-tolerance while maintaining high-frequency bus transfers and low communication latency.
  • the bus transceivers IOT, GT and LT all use the same circuit structure.
  • Each transceiver is incorporated with a control register which can be programmed to set the transceiver into the high impedance (HiZ) state in which the two bus segments connecting to the transceiver are electrically isolated from each other.
  • Defective bus segments can be isolated from the rest of the bus by setting the transceivers connecting to them to HiZ state. Fuses or programmable switches (not shown for clarity) are used to connect the transceivers to the bus segments. The fuses or switches can be used to isolate the transceivers from the bus in case of defects on the transceivers.
  • the bus switches provide another (optional) means for flexible bus configuration.
  • the cross-bar switch consists of an array of anti-fuses Sll to S44 overlying four sets of bus segments 1 to 4. For clarity, only four bus signals are shown.
  • an anti-fuse provides a low resistance connection between the two lines it intersects.
  • the cross-bar switch separates the four bus segments 1,2,3,4, from one another.
  • the cross-bar switch allows the bus segments to be selectively joined together.
  • Detailed structure of a cross-bar switch used in accordance with the present invention is described in a co-pending and related patent application entitled "Circuit module redundancy architecture," filed April 8, 1992, serial number 07/865,410.
  • Bus configuration using cross-bar switches can be carried out after the bus segments and the memory module are tested. Only good bus segments connecting to good memory modules are connected to the bus. Hence, defective segments and defective modules are isolated and they do not impose additional loading to the bus.
  • the anti-fuses can be replaced by other programmable switches such as EPROM or EEPROM.
  • Spare signal lines incorporated in the bus provide another level of defect management. Fifteen signal lines are used for the bus in all levels, however, only thirteen of them is actually required. The other two lines are used for spares.
  • the local redundancy scheme using spare lines and special cross-bar switch are described in the co- pending patent application entitled "Circuit module redundancy architecture,” filed April 8, 1992, serial number 07/865,410.
  • Defect management in the memory modules is divided into two levels. At the local level, spare rows and columns are provided for repairing defective row and columns. At the global level, identification registers and control registers are incorporated into the memory modules. These registers incorporate both nonvolatile memory elements, such as EPROM, fuses and anti-fuses, and ordinary logic circuit for both hard and soft programming. By programming the registers a defective memory module can be disabled and replaced by any good module.
  • the identification register provides the communication address for the module. It also defines the base address of the memory cells in the module. Before the identification register is programmed, each memory module has the number 0 for its identification and they are all identical. A module is given a unique identification number only after it passes the functional tests.
  • some or all of the bits in the identification code may be preprogrammed either during chip fabrication or before functional test, so long as a unique identification number can be established for each functional module in the device.
  • Run-time replacement of defective modules can be carried out by setting the disable bit in the control register of the defective module and writing the identification number of the defective module to the identification register of a spare module. This also activates the spare module into a regular module.
  • the memory controller occupies a separate IC die so that defective controller can be easily replaced.
  • multiple copies of the memory controller are fabricated on the same wafer, and control registers incorporating one-time or non-volatile programmable elements are used for enabling and disabling the memory controller. Any controller that passes the functional tests can be activated by setting the enable bit in its control register.
  • the bus in all three levels comprises fifteen signal lines with thirteen regular lines and two spare lines.
  • the thirteen regular signal lines are divided into 2 groups. As illustrated in Figure 4, group one contains ten signals, BusData[0:8] and elk.
  • BusData[0:8] carries the multiplexed data, address and commands during block- mode transfers while elk carries the control timing.
  • Both BusData[0:8] and elk are bi-directional signals which can be driven by either the memory controller or any one of the memory modules.
  • the source device During a block-mode transfer, the source device generates both the data and the timing signals, facilitating source synchronous transfer.
  • a signal on the elk line is used by the destination device for latching the data into the data buffers.
  • Group two of the bus signals is responsible for setting up the block-mode transfers and it has three members: BusBusy# (BB#) , Transmit/Receive (T/R) , and TriStateControl# (TC#) . They are asynchronous bus control signals. When referring to the module, BB# and T/R are input signals and TC# is a bidirectional signal. BB# is active low. Its falling edge signals the beginning of a block transfer while its rising edge indicates the end of a transfer. The memory controller can also use this signal to abort a block transfer by driving this signal high in the middle of a transfer. T/R controls the direction of a transfer. When driven low, it sets the bus transceivers in the receive direction and the block transfer is initiated by the controller.
  • BB# BusBusy#
  • T/R Transmit/Receive
  • TC# TriStateControl#
  • T/R When driven high, T/R sets the transceivers in the transmit direction and the block transfer is sourced by a preselected memory module.
  • TC# is active low. When driven low, it sets the bus transceivers in the high impedance (HiZ) state. When driven high, it enables the bus transceivers to buffer bus signals in the direction set by the T/R signal.
  • the bus in the perspective of the communicating devices (memory modules and the controller) has four states: idle, receiving, transmitting and HiZ. They are set by the states of the three control signals as illustrated in Figure 5. In the idle state, no bus transaction is carried out and no device participates in communication. In the receive state, the memory controller is the source device and the participating memory module is the destined device.
  • One or more modules can be designated to receive the information.
  • the bus sections to which they are connected are set in the HiZ state.
  • the participating module In the transmit state, the participating module is the source device while the controller is the destined device.
  • the bus sections connecting to the non-participating device are set in the HiZ state. Therefore to the modules not participating in the communication, the bus is in the HiZ state when it is not in the idle state.
  • the bus transceivers connected to that section are set in the HiZ state and the memory module connected thereto is in standby with its bus drivers set in the HiZ state.
  • the bus section is thus isolated from the portion of the bus connecting between the participating module and the controller. Since most of the bus transaction involves only one memory module, only a small part of the bus is in active most of time. This keeps the power consumption of and the noise-level in the system low and hence the overall system reliability high.
  • the bus uses asynchronous handshakes for communication control and a source-synchronous block or packet transfer for protocols. This is to simplify the clock distribution of the system and minimize the intelligence in the memory modules. Thereby, the amount of logic in the modules is minimized and the bit density of the wafer-scale memory is maximized.
  • Asynchronous handshakes are used to initiate and terminate a block transfer.
  • the handshake sequences are carried out using the bus control lines BB#, T/R, and TC#.
  • Two kinds of block transfer are implemented, broadcasting and point-to-point. Broadcasting allows the controller to send command messages to all modules. Point-to-point allows only one module at a time to communicate with the controller. In point-to-point communication, only the part of the bus connecting between the controller and the participating module is activated. The rest of the bus is in HiZ state.
  • Figure 6 shows the configuration of the bus during a point-to-point communication. The activated path is high-lighted by hash marks; only a small portion of the bus is activated.
  • the handshake sequence for setting up a broadcasting transfer is carried out as follows:
  • the controller sets all the bus transceivers to the receive direction by driving T/R low, TC# high and BB# low.
  • the controller sends the broadcast message through the BusData lines, and transfer timing through the elk line.
  • the controller sets the bus to the idle state by driving the BB# line high.
  • the handshake sequence for setting up point-to-point communication is carried out as follows:
  • the controller sets all the bus transceivers to the receive mode by driving T/R low, TC# high and BB# low.
  • the controller sets all the transceivers to HiZ, by driving TC# low.
  • the controller turns around the direction of transfer on the bus by driving T/R high. All the bus transceivers remain in the HiZ state.
  • the participating memory module drives its TC# line high, and this activates the bus portion connecting between the module and the controller while leaving the other portions of the bus in HiZ.
  • Step (2) requires the setting of a series of transceivers to HiZ state without the use of a separate broadcasting signal.
  • FIG. 6 illustrates the sequence of events in step (4) after memory module Ma drives its TC# line high.
  • the arrows next to the transceivers indicates the direction which the transceivers are set.
  • the high state of the TC# signal in module Ma activates local bus transceiver LTa which drives the TC# signal in bus segment GBa high.
  • This in turn activates global bus transceiver GTa which subsequently drives the TC# signal in bus segment GBb high.
  • Transceiver GTb is then activated and drives associated bus segment GBc.
  • GBc connects to the input- output transceiver IOT which is always active during bus transactions.
  • IOT drives the first-level bus IOB which connects between the controller and the IOT.
  • Non- participating modules keep their bus drivers in the HiZ state. This in turn keeps the portion of TC# line connecting to them in the low state and the bus transceivers connecting to them in the HiZ state. Consequently, the portion of the bus not connecting between Ma and the controller stays in the HiZ state protocol.
  • command packets are broadcasted by the controller to the whole memory subsystem.
  • Data packets are sent using point-to-point communication.
  • short data packets sent from the controller to a module can be carried out using broadcasting, which uses a shorter handshake sequence.
  • a command packet consists of three bytes of 9 bit each. As illustrated in Figure 7, the first byte and the five least significant bits of the second byte contain the identification (ID) number of the addressed module. The fourteen bit number allows 16K active and 16K spare memory modules to be independently addressed.
  • the address space between the active and spare modules are distinguished by the nature of the commands.
  • Commands intended for the active module are meaningless to the spare module, except global commands which require both type of module to perform the same tasks.
  • Examples of commands intended for active modules are Cache Read and Cache Write.
  • Examples for commands intended for spare modules are Identification Number Change and Module Activation.
  • Examples of global commands are System Reset and Broadcast Write. Part of the address to the modules is therefore implicit in the command, and this implicit addressing allows more efficient use of the bits in the command packet.
  • the command header encoded in the four most significant bit of the second byte in a command packet, contains the operation the designated module is instructed to perform.
  • the third byte of a command packet is optional. When used, it contains the additional information necessary for the module to complete the operation instructed by the command header. For instance, if the instruction is a cache read operation, then the detail information contains the address location from which the first data byte is read.
  • a data packet contains data arranged in bytes of 9 bits. During a block transfer, the data bytes are sent in consecutive order one at a time. The number of bytes in a packet can vary from one to 128 bytes with the upper limit imposed by the size of the cache line inside the memory module.
  • EDC error detection and correction
  • Figure 8 shows the block diagram of a prior art EDC scheme. Each piece of data transferred in the system bus is accompanied by its EDC code transferred in the EDC bus. The EDC device inputs the data and its EDC code for error checking and correction. In this system, efficient EDC coding can be obtained at the expense of more costly large word-width buses which is also less efficient in handling partial words (bytes or 16 bit words) .
  • the 9 bit format of the data packet allows efficient implementations of EDC.
  • EDC Either a simple odd or even parity scheme can be used.
  • 8 of the nine bits in a byte contain the data, while the other bit contains the parity.
  • Parity encoding and decoding can be carried out in the memory controller during memory access and made transparent to the rest of the memory system.
  • EDC can also be implemented in the system by restricting the number of bytes in the data packets to a few numbers, for examples 8. In this scheme, 8 bits in each byte can be used to carry data. The other bit in each byte can be grouped together to carry the EDC code.
  • each byte can be used to carry 8 bits of data and 1 bit of the 8 bit EDC code.
  • the EDC code is then distributed among the 8 bytes of the packet.
  • the number of bits in a byte, the number of EDC bits in a byte and the number of bytes in a data packet can be chosen rather arbitrarily. For instance, a four byte packet with each byte containing 18 bits can be used. Then two bits in each byte can be used to carry a portion of the EDC code.
  • FIG. 10(a) shows the block diagram of the memory system using a bus-watch EDC scheme.
  • the memory controller 1007a assembles the data and encodes the EDC code in the data packet before sending it.
  • the destined memory module stores both the EDC code and data indiscriminently, in other words it simply stores the whole packet in the cache or in the memory core without further data processing.
  • the desired data packet which contains both the data and its EDC code is fetched from the memory module 1005a. After arriving at the memory controller 1007a, the EDC bit in each byte is stored away, the data portion is forwarded to the requesting device in the system.
  • a copy of that data is sent to the EDC functional block 1008a where syndrome bits of the data are generated. Error checking and correction are carried out when the complete EDC code is obtained. In this way, EDC operations are carried out in parallel with data transfer. When no error is detected as is true most of the time, EDC operations has little effect on the memory accessing time.
  • the memory controller 1008a sets a flag in its internal register, corrects the data, write the correct data back to the memory module, and generates an interrupt to the requesting device to arrange for a data re-transmission.
  • data received is not forwarded to the requesting device until the whole packet is received and the packet is checked and corrected for error.
  • EDC operations are completely transparent to the requesting device as no flags need to be set and no interrupt need to be generated.
  • Figure 10(b) A block diagram of this flow-through scheme is shown in Figure 10(b) .
  • Partial word write can also be handled efficiently according to the present schemes.
  • the partial word and its address from a requested device is buffered in the controller 1008a or 1008b.
  • the address is sent to the corresponding memory module to fetch the whole word from the memory module.
  • the partial word is then used to replace the corresponding data in the completely word.
  • the modified word is then written back to the memory module.
  • the whole operation is carried out in the memory sub-system and is made transparent to the requesting devices.
  • the EDC scheme in accordance with the present invention is versatile as it can be fully tailored to optimize the performance of computer system with different word width and clock speed. Unlike the prior art schemes, the present invention does not waste memory storage or addressing space. Furthermore, it generates substantially less additional traffic on the system bus.
  • the memory subsystem in accordance with this invention consists of memory module connected in parallel to a hierarchical bus. As illustrated in Figure 11, a module 1100 consists four DRAM arrays 1101 and a bus interface 1102.
  • the memory array can be DRAM, SRAM, ROM, EEPROM or flash EPROM, and the number of arrays can be chosen rather arbitrarily. In the present embodiment, each memory array contains 147K bits configured into 256 rows of 64 bytes (9 bit) .
  • the memory array 1101 also contains 576 (64x9) sense amplifiers 1103, the row select and the column select circuitry 1104, 1105.
  • the row select circuit 1104 when activated, enables one row of memory cells for data transfer. For memory read operation, data stored in the cells is transferred to the bit line. It is then amplified by and stored in the latched sense amplifiers 1103. Once the data is stored in the sense-amplifiers 1103, subsequent access from that row can be made directly from the sense amplifiers 1103 without going through the row select circuit 1104. Data from the sense amplifiers 1103 is selectively gated to the bus interface 1102 for output during a cache read operation. For write operation, data addressed to the row currently selected can be written directly to the sense amplifiers 1103.
  • Data in the sense amplifier 1103 can be transferred to the memory cells using two different modes of operation: write through and write back.
  • write through mode data written to the sense amplifiers 1103 is automatically transferred to the corresponding memory cells.
  • write back mode data written to the sense amplifiers 1103 is transferred to the memory cells only when it is instructed through a memory transfer command.
  • Write through mode requires the word line selected by the row select circuit 1104 to be activated during a write operation while write back requires the word line to be activated only when the memory is instructed.
  • the sense amplifiers can be used as a cache (sense-amp cache) for the memory block.
  • Prior art systems attempted to use sense amplifiers in the DRAM as cache with limited success.
  • Conventional DRAM because of package limitations, usually has few data input-output pins.
  • the most popular DRAM today has a configuration of XI or X4 in which only 1 or 4 data I/O are available.
  • Memory systems using conventional DRAM require 4 to 32 chips form a computer word (32 bits) .
  • the cache line size is programmable. In systems with large memory capacity, the number of cache lines can be much more than 100. At this level, decreasing the number of cache lines has little effect on the hit rate but it can save memory storage for cache tags and speeds up the cache tag search.
  • the number of cache lines in accordance with the present invention can be decreased by increasing the cache line size. It can be doubled from 64 byte to 128 byte by setting the cache-line-size bit in the configuration register of the memory module.
  • the cache system in accordance with the present invention is more flexible for system optimization and its performance is much less sensitive to the memory size than the prior art systems.
  • the present invention in one embodiment employs a source synchronous scheme for timing control.
  • the clock signal which provides the timing information of the block transfer is driven by the source device from which the packet is sent.
  • the clock signal can be the same clock which governs the internal operations of the sending device.
  • the clock signal sent along with the communication packet is used in the receiving device to latch in the bus data.
  • global clock synchronization is not required and the communicating devices can use totally independent clocks.
  • the clock frequency and phase of all the communicating devices can be completely different from one another.
  • the source- synchronous scheme avoids the problems such as phase locking and clock skew between communicating devices, which are associated with global clock synchronization and distribution. Those problems are much more difficult to handle at high frequency operations in a wafer scale environment.
  • Skew between clock and data which limits the frequency of bus operations is minimized by matching the propagation delay in the elk and the BusData[0:8] signals.
  • This matching includes the matching of their physical dimensions, their routing environment, their loads and their buffers. Good matching in line dimensions, signal buffers and loads is obtained by laying out the devices required to be matched identically and in close proximity of each other.
  • the use of a relatively narrow bus (which with 10 lines needs to be critically matched) minimizes the geographical spread of the bus elements such as bus lines, bus drivers, and bus transceivers and allows the critical elements to be laid-out close to each other.
  • the use of a fully-parallel bus structure also allows relatively easy matching of the loads on the bus lines.
  • FIG. 12 illustrates the matching of the clock and data buffers in the bus interface.
  • Figure 12(a) shows a schematic of the circuit used to facilitate dual-edge transfer. Two bytes of data DB0 and DB1 are loaded to the inputs of the multiplexer MlOO where, for simplicity only one bit of the data byte (bit n) is shown.
  • the multiplexer MlOO selects data byte 1 (DB0) on the positive cycle of data clock (dck) and data byte I (DB1) on the negative cycle for output.
  • Tri-state buffer B100 buffers the data signal to the bus (BusData) .
  • the transmission clock (tck) is buffered by the multiplexer M101 and tri-state buffer B101.
  • M101 and B101 have the same circuit structure as do MlOO and B100 respectively. Both B100 and B101 are enabled by the signal En.
  • tck is generated so that its phase lags that of dck by 90 degree.
  • clock generation is facilitated by incorporating a programmable ring oscillator in each of the communicating device.
  • Figure 13 shows a schematic diagram of the frequency programmable ring oscillator. It consists of two parts: a 3-stage ring oscillator and a frequency control unit.
  • the frequency of the clock signal at output (sck) is inversely proportional to the total delay in the three delay stages S100, S101 and S102.
  • Delay in S100 and S101 is controlled by the control voltage Vcp and Vcn which determine the drive current in transistors P100-P101 and N100-N101.
  • Vcp and Vcn are generated by the current mirror MlOO consisting the transistors N10, Nil and P10.
  • MlOO uses the output current of the current multiplier 1100 as a reference to generate the control voltages Vcp and Vcn.
  • the binary- weighted current multiplier 1100 consisting of transistors P1-P14, has a current output which is equal to a constant times the value of either I ck or 1 ⁇ depending on the state of the select signal SO.
  • SO has a state of zero selecting I ck during normal operations, and a state of one selecting 1 ⁇ during low speed tests.
  • 1 ⁇ has a value approximately equal to one- fiftieth of that of I ck .
  • the magnitude of I clc is chosen so that the resultant clock frequency has a period a little longer than the delay of the longest pipeline stage inside the module.
  • the current multiplying factor of the current multiplier is determined by the five most significant bits S1-S5 of the clock register R100.
  • the desired number for the multiplying constant can be loaded into the clock register through PD[0:5] and by activating the parallel load control signal PI. In a memory module, the loading occurs when the Clock-frequency-change command is executed.
  • the programmable current multiplier allows sixty-four different clock frequencies to be selected in the clock generator to meet the requirements of testing and system optimizations.
  • the sixty-four frequencies are divided into two groups of thirty-two. One group has much lower (50x) frequencies than the other.
  • the lower frequencies are in general used for functional or low-speed tests when the testing equipment is operating at relatively low speeds.
  • the higher frequencies are used during normal operations and high speed tests.
  • the fine adjustment of the clock frequency offers a relatively simple way for testing the device at speed.
  • the 32 high-frequency levels have an increment of one twentieth of the base value. For a typical base frequency of 250 MHz which has a period of 4ns, the frequency increment is 12.5 MHz and the clock period increment is 0.2ns. This fine adjustment capability matches that offered by the most expensive test equipment existing today.
  • Testing of the device at speed can be carried out by increasing the clock frequency until it fails, then the safe operating speed of the device can be set at a frequency two levels below that. As illustrated in Figure 14, the tests can be carried out at a relatively low-speed using a relatively inexpensive tester 1407 with the tester connected only to the system bus interface 1405 of the memory controller 1403.
  • the operating frequency of the system bus interface 1405 can be set at speed level comfortable to the tester 1407 without compromising the operation speed at the hierarchical bus 1402. All the high-speed signals of the hierarchical bus 1402 is shielded from the tester 1407. This test capability can substantially decrease the testing cost of the memory system.
  • the receiving device uses the clock sent by the source device to control the timing of the receiving process which is different from the internal clock that it uses for controlling its other functional blocks.
  • the memory controller serves as a bridge between the memory modules and the memory requesting devices such as the CPU and DMA (Direct Memory Access) controller. It has two bus interfaces: memory and system. The memory interface connects the controller to the hierarchical or memory bus and the system interface connects the controller to the CPU and the memory requesting devices.
  • the method used in the memory modules for transfer synchronization is also used in the memory controller.
  • a frequency synthesizer synchronized to the system clock generates the internal clock signal of the memory controller. Synchronization between the receiving unit of the memory interface and the sending unit of the system interface uses a first-in-first-out (FIFO) memory in which the input port is controlled by the receiving clock but the output port is controlled by the system or internal clock. Flags such as FIFO empty, half-full, and full provide communications between the two bus interfaces and facilitate a more tightly coupled data transfer.
  • FIFO first-in-first-out
  • the memory bus interface connected directly to the hierarchical memory bus, is responsible for carrying out handshake sequences, encoding and decoding communication protocols, assembling and dissembling communication packets and the synchronization of data transfers.
  • Figure 15 shows a block diagram of the interface. It consists of the bus drivers 1501, two FIFO's 1502, 1503, eight address and control registers 1505-1512, and a sequencer 1504. This bus interface appears in the memory controller as well as in each of the memory blocks.
  • the bus drivers 1501 buffer the bus signals to and from the memory bus. Bi-directional tri-state drivers are used for the bidirectional signals while simple buffers are used for the unique directional asynchronous control signal.
  • the two FIFO's 1502, 1503 are used to match the communication bandwidth between the memory bus 1513 and the internal bus of the memory module or the memory controller.
  • the sense-amp cache has an access cycle time of 5 to 10ns which is longer than the block-mode cycle time of the memory bus (1.5 - 3ns).
  • the transfer bandwidth four bytes (36 bits) of data are accessed from or to the cache at a time. This requires the internal bus connecting to the sense-amp cache to be 36 bits wide and the transfer frequency is one quarter of that in the memory bus.
  • the serial-to-parallel FIFO 1503 converts the byte serial data from the bus to 36 bit words before sending it out to the internal bus.
  • the parallel-to-serial FIFO 1502 serializes the data word from the sense-amp cache into data bytes before sending it out to the memory bus.
  • the word-width mismatch occurs between the memory bus and the system bus (32 to 64 bits) and the FIFO's are used to bridge it.
  • the FIFO's are also used to synchronize the transfer of data between the memory bus and the system bus.
  • flags which indicate the status of the FIFO's such as empty and half- full are used.
  • the four 8-bit row address registers 1505-1508 one dedicated for each memory block contains the addresses of the rows whose content is being cached by the sense amplifiers.
  • the 7-bit column address register 1509 holds the base address for the current cache access.
  • the two identification registers 1510, 1511 holds the 12 most significant bit of the communication address of the each memory block.
  • the two least-significant bits of the communication address received in a packet is used to select one of the four modules.
  • One-time programmable (OTP) elements such as fuses or anti-fuses, are used in the OTP register 1510 to hold the communication address of the module for system initialization.
  • the OTP register 1510 are programmed in the factory after the functional tests, and only registers associated with good modules need to be programmed.
  • the number held in the OTP identification register 1510 is transferred to the soft programmable (SP) identification register 1511 during system reset.
  • the communication address can subsequently be changed by performing a write access to the SP identification register 1511.
  • the identification registers 1510, 1511 provide a special way for setting up communication address in the bus system which is different from those described in the prior systems such as those described in international patent PCT/US91/02590 [Farmwald et al] and US Patent No. 4,007,452 [Hoff, Jr.], where a separate serial bus is employed.
  • the identification registers 1510, 1511 also allow dynamic reconfiguration of the memory system in case of module failures.
  • the 8-bit configuration register 1512 contains three fields. The six least significant bits contain the byte length of the data packet used in the communication. Bit 7 of the register 1512 contains the spare/active (S/A) bit which sets the module into the corresponding state. In the spare state, the module carries out only communication configuration commands such as identification change and module reset and it is not allowed to carry out any memory access. Memory access to a module is allowed only when the S/A bit is set to 0.
  • the most significant bit of the configuration register 1512 selects short line size (64 byte) or long line size (128 byte) for the cache. In the long cache-line mode, the content of row address registers 0 and 2 is always duplicated in row address registers 1 and 3 respectively. Also, the least significant bit of the communication address in the packet is ignored. In the short cache-line mode, the most significant bit of the column address is ignored.
  • configuration register 1512 In the memory controller, for a single master system, only the configuration register 1512 is incorporated in the memory interface 1500. However, in a multiple master system, both configuration register 1512 and identification registers 1510, 1511 are incorporated.
  • the sequencer 1504 is responsible for generating all the control signals for the operations in the interface.
  • FIG. 17(a) shows a block diagram of a bus transceiver. It consists of 15 bi-directional tri-state buffers 1701 for buffering signals in each bus line 0-14, and a control unit 1702 for enabling the outputs and controlling the direction of signal buffering 1701. All the bi- directional tri-state buffers in a transceiver have identical circuit and layout structure so that their signal propagation-delay characteristics are well matched. This minimizes the timing skews on the bus signals and it allows the substitution of a signal line by any other one for defect management.
  • Figure 17(b) shows the circuit schematic of a bi-directional tri-state buffer 1701.
  • the bi-directional buffer 1701 is set to buffer only signal from the TD (right) side to RD (left) side. By blowing fuse F3 in both drivers, the bi-directional buffer 1701 is disabled and the bus segment TD is isolated from the segment RD.
  • the control unit 1702 has four control input signals T/Rlr, TC#lr, T/Rrl and TC#rl connected to bus signals through anti-fuses.
  • the T/Rlr and T/Rrl are programmed to connect to the T/R bus signal, and the TC#lr and TC#rl are programmed to connect to the TC# signal using the corresponding anti-fuses.
  • Programmable switches can readily be used to replace the anti-fuses, with little effect on the system performance.
  • Outputs TEN and REN which control the bi-directional buffers 1701 are driven deactive low by transistor P2 which has a higher drive capability than transistor N2. By blowing fuse F2, TEN and REN remains low all the time and the bi ⁇ directional buffers 1701 in the transceiver are disabled.
  • T/Rlr and TC#lr to assume the control of the bi-directional buffers 1701.
  • T/Rrl and TC#rl is given the control by blowing fuse F3 which sets DirSel to a state of 0. Fuses F3 and F4 can be replaced by a programmable switch with little effect on the system performance.
  • the control unit 1702 can also incorporate a control register 1703 for bus configuration and an identification register 1704 for communication with the memory controller.
  • the identification register 1704 includes non-volatile programmable elements which can be used to store a unique communication address assigned during the manufacturing process. The communication address allows the control register 1703 in the transceiver to be accessed by the memory controller during system initialization or system reconfiguration for enabling and disabling the transceiver.
  • the control register 1703 contains four bits C0-C3. When CO is set, it enables the control of the DirSel signal by CI. When CO is set, CI overrides the effects of the fuses F3 and F4. Cl drives DirSel to the low state when it is set and to the high state when it is reset.
  • the control register 1703 is reset at power-on.
  • the memory controller drives the bus control signals BB# high, T/R low, and TC# high. This enables the comparator 1705 which compares the content of the BusData[0:8] in the bus with its communication address in the identification register 1704. In case of a match, the new control word from BusData[0:3] is loaded to the control register 1703 at the next clock edge.
  • the design of the tri-state bi-directional repeater allows the communicating devices (memory control and module) to set a series of transceivers to HiZ state without the use of a separate broadcasting signal during bus configuration. This is accomplished in the design by having the propagation delay in the tri-state buffer shorter than the input-to-output delay in the control unit. As a result, T/R and TC# signals at the inputs of the repeater are forwarded to the next transceiver before their effect on the outputs of the control unit REN and TEN is asserted.
  • the tri-state bi-directional repeater configuration as shown in Figures 17(a,b,c,d,e) allows the flexible implementation of communication networks that can be dynamically (or statically) re-configured or remapped for defect isolation or for passing the control of the network among several bus masters.
  • FIG. 18(a) An exemplary network 1800 in accordance with the present invention with 9 nodes is shown in Figure 18(a) where each node 1-9 represents a section of the second level of the bus (GB) architecture. For simplicity, the third level (local bus) and the circuit modules attached to it are not shown.
  • Bus transceivers (GTij) establish the link between neighboring nodes. When the bus transceivers (GTij) are physically clustered near the vertices of the network grid, it can be represented as in Figure 18(b). Symbolically, the network 1800 can also be represented as in Figure 18(c) where each directional link Lij represents a bus transceiver group (GT) .
  • the network can be remapped into many different configurations in which any of the masters can be at the root of a hierarchical tree bus structure. This capability is useful in replacing an defective master or when control of the network is passed from one master to another master.
  • Figure 18(e) shows an example of the bus mapping when the root of the hierarchical tree is at node 5 ((vs. node 4 in Figure 18(d) ) .
  • the master node 5 is in control of the network instead of the master attached to node 4 as in Fig. 18(d).
  • the network can be partitioned into many disjoint sub-networks with one master at the root of each sub-network tree. This configuration is useful for certain parallel processing applications in a multiple master environment.
  • Figure 18(e) The network topology in accordance with the present invention as shown in Figure 18(e) is simple but powerful.
  • the physical implementations of it may be variations from that of Figure 18(a,b).
  • Figure 18(f) shows an implementation with each vertical link consists of two bus transceivers (lGTij) (2GTij)
  • Figure 18(g) shows an implementation with each vertical and horizontal link consists of two bus transceivers lVGTij, lVGTij, lHGTmn, 2HGTmn.
  • lGTij bus transceivers
  • lVGTij 2GTij
  • Figure 18(g) shows an implementation with each vertical and horizontal link consists of two bus transceivers lVGTij, lVGTij, lHGTmn, 2HGTmn.

Abstract

A fault-tolerant, high-speed wafer scale system comprises a plurality of functional modules, a parallel hierarchical bus which is fault-tolerant to defects in an interconnect network, and one or more bus masters. This bus includes a plurality of bus lines segmented into sections and linked together by programmable bus switches and bus transceivers or repeaters in an interconnect network. By: 1) use of small block size (512K bit) for the memory modules; 2) use of programmable identification register to facilitate dynamic address mapping and relatively easy incorporation of global redundancy; 3) use of a grid structure for the bus to provide global redundancy for the interconnect network; 4) use of a relatively narrow bus consisting of 13 signal lines to keep the total area occupied by the small bus; 5) use of segmented bus lines connected by programmable switches and programmable bus transceivers to facilitate easy isolation of bus defects; 6) use of special circuit for bus transceivers and asynchronous handshakes to facilitate dynamic bus configuration; 7) use of programmable control register to facilitate run-time bus reconfiguration; 8) use of spare bus lines to provide local redundancy for the bus; and 9) use of spare rows and columns in the memory module to provide local redundancy, high defect tolerance in the hierarchical bus is obtained.

Description

FAULT-TOLERANT, HIGH-SPEED BUS SYSTEM AND BUS INTERFACE FOR WAFER-SCALE INTEGRATION
Cross-reference to Related Applications
This application is a continuation-in-part of U.S. patent application Serial No. 07/865,410 filed April 8, 1992, entitled "Circuit Module Redundancy Architecture" which, in turn is a Continuation-in-part of U.S. patent application Serial No. 07/787,984, filed November 5, 1991, entitled "Wafer-scale Integration Architecture, Circuit, Testing and Configuration".
BACKGROUND OF THE INVENTION Field of the Invention The present invention generally relates to wafer- scale circuit integration, in particular to a wafer-scale integrated circuit system comprising data processing elements partitioned into modules, a parallel high-speed hierarchical bus, and one or more bus masters which control the bus operation, bus and a bus interface thereof.
Description of the Prior Art
Wafer-scale integration provides more transistors in a single large chip, which allows more functions to be integrated in a small printed circuit board area. Systems built with wafer-scale integration therefore have higher performance, higher reliability and lower cost.
The major barrier to a successful wafer-scale system has been defects inherent in the fabrication process which may render a substantial part of or the whole system nonfunctional. Therefore, it is important to have an effective defect tolerant scheme which allows the overall system to function despite failure of some of its functional blocks. One effective way to manage defects is to partition the wafer-scale system into identical small blocks so that defective blocks can be eliminated. The area of each block is usually made small so that the overall block yield is high. If the number of defective blocks is small, the performance of the system as a whole is not substantially affected. The blocks are in general connected together by an interconnect network which provides communication links between each block and the outside. Since the blocks are usually small, information processing within each block is relatively fast and the overall system performance is largely determined by the performance (bandwidth and latency) of the network. Since the network may extend over the entire wafer, its total area is significant and it is highly susceptible to defects. Therefore, it is important for the network to be highly tolerant to defects. Traditionally, high communication performance and defect tolerance are conflicting requirements on the network. High communication performance, such as short latency and high bandwidth, requires large numbers of parallel lines in the network which occupy a large area, making it more susceptible to defects.
By limiting the direct connection to be between neighboring blocks only, a serial bus system offers high defect tolerance and simplicity in bus configuration.
Systems using a serial bus are described, for instance, in R.W. Horst, "Task-Flow Architecture," IEEE Computer, Vol. 25, No. 4, April 1992, pp. 10 - 18; McDonald US Patent 4,847,615, and R.C. Aubusson et al, "Wafer-scale Integration—A Fault-tolerant Procedure." IEEE ISCC, Vol. SC-13, No. 3, June 1988, pp. 339-344. These systems have the capability of self configuration and are highly tolerant to defects. However, they inherit the disadvantage of a serial bus and suffer from long access latency because the communication signals have to be relayed from one block to another down the serial bus. A parallel bus system offers direct connections between all the communicating devices and provides the shortest communication latency. However, a parallel bus system without reconfiguration capability offers the lowest defect tolerance since any defect on the bus can render a substantial part of the system without communication link. Known systems implement parallel bus with limited success. In US Patent 4,038,648 [Chesley] a parallel bus connected to all circuit module is used to transfer address and control information, no defect management is provided for the parallel bus. In US Patent No. 4,007,452 [Hoff, Jr.], a two-level hierarchical bus is used to transfer multiplexed data and address in a wafer- scale memory. Without redundancy and reconfiguration capability in the bus, harvest rate is relatively low, because defects in the main bus can still cause failure in a substantial part of the system. In both these systems, a separate serial bus is used to set the communication address of each functional module. In each scheme, a defect management different from that used in the parallel bus is required in the serial bus. This complicates the overall defect management of the system as a whole and increases the total interconnect overhead.
Many known systems use a tree-structure in their bus. By reducing the number of blocks the bus signals have to travel through, buses with tree structures offer higher communication speed than those with linear or serial structure.
In K.N. Ganapathy, et al, "Yield Optimization in Large RAMs with Hierarchical Redundancy," IEEE JSSC, vol. 26, No. 9, 1991, pp. 1259 - 1264, a wafer-scale memory using a binary-tree bus is described. The scheme uses separate bus lines for address and data. Address decoding is distributed among the tree nodes in the bus. The separation of address and data buses increases the bus overhead and complicates the defect management. Summary of the Invention
Accordingly, one object of this invention is to provide a defect or fault tolerant bus for connecting multiple functional modules to one or more bus masters, so that performance of the bus is not substantially affected by defects and faults in the bus nor in the modules.
Another object of this invention is to provide a high-speed interface in the module so that large amounts of data can be transferred between the module and the bus masters.
Another object of this invention is to provide a method for disabling defective modules so that they have little effect on the rest of the system.
Another object of this invention is to provide a method for changing the communication address of a module when the system is in operation. The technique facilitates dynamic address mapping and provides run-time fault tolerance to the system.
Another object of this invention is to provide programmability in the bus transceivers so that the bus network can be dynamically reconfigured.
In accordance with the present invention, a fault- tolerant, high-speed wafer scale system comprises a plurality of functional modules, a parallel hierarchical bus which is fault-tolerant to defects in an interconnect network, and one or more bus masters. This bus includes a plurality of bus lines segmented into sections and linked together by programmable bus switches and bus transceivers or repeaters in an interconnect network. In accordance with the present invention a high speed, fault-tolerant bus system is provided for communication between functional module and one or more bus controllers. Structured into a 3-level hierarchy, the bus allows high frequency operation (>500 MHz) while maintaining low communication latency (<30 ns) , and high reconfiguration flexibility. Easy incorporation of redundant functional module and bus masters in the bus allows highly fault-tolerant systems to be built making the bus highly suitable for wafer-scale integrated systems. The bus employs a special source-synchronous block or packet transfer scheme for data communication and asynchronous handshakes for bus control and dynamic configuration. This source synchronous scheme allows modules to communicate at different frequencies and increases the overall yield of the system as it can accommodate both slow and fast memory devices without sacrificing the performance of the fast devices. It also frees the system of the burden of implementing a global clock synchronization which in general consumes a relatively large amount of power and is difficult to achieve high synchronization accuracy in a wafer-scale or large chip environment.
In one embodiment, the functional modules are memory modules and each module consists of DRAM arrays and their associated circuitry. The bus master is the memory controller which carries out memory access requested by other devices such as a CPU, a DMA controller and a graphics controller in a digital system. Such a memory subsystem can be used in for instance, computers, image processing, and digital and high-definition television.
According to the present invention, the memory module and a substantial part of the bus are integrated in a wafer-scale or large chip environment. One variation is to integrate the whole memory subsystem, including the memory modules, the bus and the memory controller, in a single integrated circuit device. Another variation is to integrate the whole memory subsystem into a few integrated circuit devices connected together using substantially the same bus. The invention can also be used in a system where the circuit modules are each a processor with it's own memory and the bus master is an instruction controller which fetches and decodes program instruction from an external memory. The decoded instruction and data are then sent through the bus to the processors. Such a system can be used to perform high-speed, high through-put data processing.
By grouping the DRAM arrays into logically independent modules of relatively small memory capacity (588 Kbit) , a large number of cache lines (128) is obtained at small main memory capacity (4 Mbyte) . The large number of cache lines is necessary for maintaining a high cache hit rate (>90%) . The small module size also makes high-speed access (< 30 ns) possible. High defect tolerance in the hierarchical bus is obtained using the following techniques: 1) Use of relatively small block size (512K bit or 588K bit with parity) for the memory modules; 2) Use of programmable identification register to facilitate dynamic address mapping and relatively easy incorporation of global redundancy; 3) Use of a grid structure for the bus to provide global redundancy for the interconnect network; 4) Use of a relatively narrow bus consisting of 13 signal lines to keep the total area occupied by the bus small; 5) Use of segmented bus lines connected by programmable switches and programmable bus transceivers to facilitate easy isolation of bus defects; 6) Use of special circuit for bus transceivers and asynchronous handshakes to facilitate dynamic bus configuration; 7) Use of programmable control register to facilitate run-time bus reconfiguration; 8) Use of spare bus lines to provide local redundancy for the bus; and 9) Use of spare rows and columns in the memory module to provide local redundancy.
Brief Description of the Drawings Figure 1 is a block diagram of a digital system in accordance with the present invention as a memory subsystem.
Figure 2 is a diagram showing the hierarchical structure of the bus. Figure 3 is a diagram showing the structure of a cross-bar switch used in the hierarchical bus. Figure 4 is a table defining the bus signals.
Figure 5 is a truth table defining the bus states.
Figure 6 is a diagram showing a bus configuration under point-to-point communication. Figure 7 shows the field definitions of a command packet.
Figure 8 is a block diagram showing the bus topology for a prior art general purpose EDC system.
Figure 9 shows the field definitions of a data packet with EDC code.
Figure 10 is a block diagram showing in Figure 10(a) an implementation of EDC using bus-watch technique; Figure 10(b) is an implementation of EDC using flow-through technique. Figure 11 is a block diagram of a memory module used in the present invention.
Figure 12(a) is a schematic showing the circuit implementing dual-edge transfer; it also shows the matching circuit for the clock buffer; Figure 12(b) is the timing diagram of the circuit in (a) .
Figure 13 is a schematic showing the circuit of the programmable clock generator.
Figure 14 is a block diagram showing the system configuration used for testing the wafer-scale memory using a relatively low speed tester.
Figure 15 is a block diagram showing the functional blocks of a memory bus interface.
Figure 16 shows the field definition of the configuration register in the memory bus interface. Figure 17 shows the schematic of a bus transceiver: Figure 17(a) is a block diagram; Figure 17(b) is a bus transceiver consisting of two back-to-back bi-directional tri-state drivers; Figure 17(c) is a circuit of the tri- state driver; Figure 17(d) is a circuit of the control unit; Figure 17(e) is a block diagram showing an identification register and a control register included in the control unit. Figure 18 shows diagrams showing the reconfiguration of the bus network using the programmability in the bus transceivers: Figure 18(a) is a section of the bus network including grids of the global bus; Figure 18(b) is 5 a Symbolic representation of the bus section in (a) ; Figure 18(c) is a Bus section of Figure 18(a) configured to tree structure; Figure 18(d) is a Reconfiguration of the bus tree in Figure 18(c) to isolate defects; figure 18(e) is Reconfiguration of the bus section in Figure 10 18(d) to switch the position of bus master; Figure 18(f) is the bus section in Figure 18(a) when two transceivers are incorporated in each vertical link; Figure 18(g) is the bus section in Figure 18(a) when two transceivers are incorporated in each bus link.
15 Detailed Description of the Invention
As illustrated in Figure l, a memory sub-system according to the present invention is used in a digital system, which consists of a wafer scale memory 5, hierarchical memory bus 6 and a memory controller 7. The
20 memory controller 7 controls memory access and comprises a memory bus interface 8 for communicating to the hierarchical bus 6, and a system bus interface 9 for communicating to the system bus 10. The system bus 10 connects the memory subsystem to the memory request
25 devices which are CPU 3, DMA controller 2 and graphics controller 1.
The bus has a hierarchical structure which can be distinguished into 3 levels. As illustrated in Figure 2, the first level or the root level has a few branches (IOB)
30 for connecting the memory controller to the second level. In most cases, only one branch is used for the connection, unless multiple controllers are used, the other branches are used for spares. The root branches (IOB) are connected to the second level through the input-output
35 transceivers (IOT) . In the third level, the bus is arranged into quad trees with four memory modules connecting to one local bus transceiver (LT) through the local bus interconnect (LB) . In the second level, the bus is divided into bus segments (GB) arranged into grids joined together by bus transceivers (GT) and bus switches (S) . One of the bus grids is high-lighted with thicker lines in Figure 2. The second level bus or the global bus forms the backbone of the communication network. In a system with many memory modules, loading on the global bus can be relatively heavy. To facilitate high frequency communications, bus repeaters or transceivers are inserted periodically to restore signal quality. By structuring the bus into a hierarchy of three levels, loading on the global bus imposed by the memory modules is decreased, in this case, by four times. In addition, loading from the global bus is shielded from the controller by the input- output transceiver (IOT) . The grid structure interlaced with bus repeaters allows flexible bus configuration for high defect-tolerance while maintaining high-frequency bus transfers and low communication latency. The bus transceivers IOT, GT and LT, all use the same circuit structure. Each transceiver is incorporated with a control register which can be programmed to set the transceiver into the high impedance (HiZ) state in which the two bus segments connecting to the transceiver are electrically isolated from each other. Defective bus segments can be isolated from the rest of the bus by setting the transceivers connecting to them to HiZ state. Fuses or programmable switches (not shown for clarity) are used to connect the transceivers to the bus segments. The fuses or switches can be used to isolate the transceivers from the bus in case of defects on the transceivers.
The bus switches provide another (optional) means for flexible bus configuration. As illustrated in Figure 3, the cross-bar switch consists of an array of anti-fuses Sll to S44 overlying four sets of bus segments 1 to 4. For clarity, only four bus signals are shown. When programmed, an anti-fuse provides a low resistance connection between the two lines it intersects. In its "virgin" or preprogrammed state, the cross-bar switch separates the four bus segments 1,2,3,4, from one another. When programmed, the cross-bar switch allows the bus segments to be selectively joined together. Detailed structure of a cross-bar switch used in accordance with the present invention is described in a co-pending and related patent application entitled "Circuit module redundancy architecture," filed April 8, 1992, serial number 07/865,410. Bus configuration using cross-bar switches can be carried out after the bus segments and the memory module are tested. Only good bus segments connecting to good memory modules are connected to the bus. Hence, defective segments and defective modules are isolated and they do not impose additional loading to the bus. Those skilled in the art will recognize that the anti-fuses can be replaced by other programmable switches such as EPROM or EEPROM.
Spare signal lines incorporated in the bus provide another level of defect management. Fifteen signal lines are used for the bus in all levels, however, only thirteen of them is actually required. The other two lines are used for spares. The local redundancy scheme using spare lines and special cross-bar switch are described in the co- pending patent application entitled "Circuit module redundancy architecture," filed April 8, 1992, serial number 07/865,410.
Defect management in the memory modules is divided into two levels. At the local level, spare rows and columns are provided for repairing defective row and columns. At the global level, identification registers and control registers are incorporated into the memory modules. These registers incorporate both nonvolatile memory elements, such as EPROM, fuses and anti-fuses, and ordinary logic circuit for both hard and soft programming. By programming the registers a defective memory module can be disabled and replaced by any good module. The identification register provides the communication address for the module. It also defines the base address of the memory cells in the module. Before the identification register is programmed, each memory module has the number 0 for its identification and they are all identical. A module is given a unique identification number only after it passes the functional tests. Alternatively, some or all of the bits in the identification code may be preprogrammed either during chip fabrication or before functional test, so long as a unique identification number can be established for each functional module in the device. Run-time replacement of defective modules can be carried out by setting the disable bit in the control register of the defective module and writing the identification number of the defective module to the identification register of a spare module. This also activates the spare module into a regular module.
In one embodiment, the memory controller occupies a separate IC die so that defective controller can be easily replaced. In another embodiment, multiple copies of the memory controller are fabricated on the same wafer, and control registers incorporating one-time or non-volatile programmable elements are used for enabling and disabling the memory controller. Any controller that passes the functional tests can be activated by setting the enable bit in its control register.
The bus in all three levels comprises fifteen signal lines with thirteen regular lines and two spare lines. The thirteen regular signal lines are divided into 2 groups. As illustrated in Figure 4, group one contains ten signals, BusData[0:8] and elk. BusData[0:8] carries the multiplexed data, address and commands during block- mode transfers while elk carries the control timing. Both BusData[0:8] and elk are bi-directional signals which can be driven by either the memory controller or any one of the memory modules. During a block-mode transfer, the source device generates both the data and the timing signals, facilitating source synchronous transfer. A signal on the elk line is used by the destination device for latching the data into the data buffers.
Group two of the bus signals is responsible for setting up the block-mode transfers and it has three members: BusBusy# (BB#) , Transmit/Receive (T/R) , and TriStateControl# (TC#) . They are asynchronous bus control signals. When referring to the module, BB# and T/R are input signals and TC# is a bidirectional signal. BB# is active low. Its falling edge signals the beginning of a block transfer while its rising edge indicates the end of a transfer. The memory controller can also use this signal to abort a block transfer by driving this signal high in the middle of a transfer. T/R controls the direction of a transfer. When driven low, it sets the bus transceivers in the receive direction and the block transfer is initiated by the controller. When driven high, T/R sets the transceivers in the transmit direction and the block transfer is sourced by a preselected memory module. TC# is active low. When driven low, it sets the bus transceivers in the high impedance (HiZ) state. When driven high, it enables the bus transceivers to buffer bus signals in the direction set by the T/R signal. The bus, in the perspective of the communicating devices (memory modules and the controller) has four states: idle, receiving, transmitting and HiZ. They are set by the states of the three control signals as illustrated in Figure 5. In the idle state, no bus transaction is carried out and no device participates in communication. In the receive state, the memory controller is the source device and the participating memory module is the destined device. One or more modules can be designated to receive the information. For the non-participating module, the bus sections to which they are connected are set in the HiZ state. In the transmit state, the participating module is the source device while the controller is the destined device. The bus sections connecting to the non-participating device are set in the HiZ state. Therefore to the modules not participating in the communication, the bus is in the HiZ state when it is not in the idle state. When a bus section is in the HiZ state, the bus transceivers connected to that section are set in the HiZ state and the memory module connected thereto is in standby with its bus drivers set in the HiZ state. The bus section is thus isolated from the portion of the bus connecting between the participating module and the controller. Since most of the bus transaction involves only one memory module, only a small part of the bus is in active most of time. This keeps the power consumption of and the noise-level in the system low and hence the overall system reliability high.
The bus uses asynchronous handshakes for communication control and a source-synchronous block or packet transfer for protocols. This is to simplify the clock distribution of the system and minimize the intelligence in the memory modules. Thereby, the amount of logic in the modules is minimized and the bit density of the wafer-scale memory is maximized.
Asynchronous handshakes are used to initiate and terminate a block transfer. The handshake sequences are carried out using the bus control lines BB#, T/R, and TC#. Two kinds of block transfer are implemented, broadcasting and point-to-point. Broadcasting allows the controller to send command messages to all modules. Point-to-point allows only one module at a time to communicate with the controller. In point-to-point communication, only the part of the bus connecting between the controller and the participating module is activated. The rest of the bus is in HiZ state. Figure 6 shows the configuration of the bus during a point-to-point communication. The activated path is high-lighted by hash marks; only a small portion of the bus is activated. The handshake sequence for setting up a broadcasting transfer is carried out as follows:
(1) The controller sets all the bus transceivers to the receive direction by driving T/R low, TC# high and BB# low.
(2) The controller sends the broadcast message through the BusData lines, and transfer timing through the elk line.
(3) The controller sets the bus to the idle state by driving the BB# line high.
The handshake sequence for setting up point-to-point communication is carried out as follows:
(1) The controller sets all the bus transceivers to the receive mode by driving T/R low, TC# high and BB# low. (2) The controller sets all the transceivers to HiZ, by driving TC# low.
(3) The controller turns around the direction of transfer on the bus by driving T/R high. All the bus transceivers remain in the HiZ state. (4) The participating memory module drives its TC# line high, and this activates the bus portion connecting between the module and the controller while leaving the other portions of the bus in HiZ.
(5) In case the memory module is the communication source, block transfer commences. At the end of the transfer, the controller drives the BB# high, this causes all the modules to drive their TC# line high and set the bus in the idle state. In case the controller is the communication source, the controller turns around the bus by driving T/R low before entering block-mode transfer. At the end of the transfer, the controller turns around the bus once more by driving T/R high, at the same time it drives the BB# line high, this causes the module to drive their TC# signal high and the bus enters the idle state. Step (2) requires the setting of a series of transceivers to HiZ state without the use of a separate broadcasting signal. This is accomplished with a special transceiver which sends out the broadcasting information before going to its HiZ state. The design of the transceiver is discussed in the transceiver section below. Figure 6 illustrates the sequence of events in step (4) after memory module Ma drives its TC# line high. The arrows next to the transceivers indicates the direction which the transceivers are set. The high state of the TC# signal in module Ma activates local bus transceiver LTa which drives the TC# signal in bus segment GBa high. This in turn activates global bus transceiver GTa which subsequently drives the TC# signal in bus segment GBb high. Transceiver GTb is then activated and drives associated bus segment GBc. GBc connects to the input- output transceiver IOT which is always active during bus transactions. IOT drives the first-level bus IOB which connects between the controller and the IOT. Non- participating modules keep their bus drivers in the HiZ state. This in turn keeps the portion of TC# line connecting to them in the low state and the bus transceivers connecting to them in the HiZ state. Consequently, the portion of the bus not connecting between Ma and the controller stays in the HiZ state protocol.
Once the bus network is set up by the handshake sequences, bus transactions can be carried out using block-mode transfer in which information is transferred in blocks or packets. Two kinds of packets can be distinguished: command and data. In one embodiment, command packets are broadcasted by the controller to the whole memory subsystem. Data packets are sent using point-to-point communication. To avoid the delay of using point-to-point handshake, short data packets sent from the controller to a module can be carried out using broadcasting, which uses a shorter handshake sequence. A command packet consists of three bytes of 9 bit each. As illustrated in Figure 7, the first byte and the five least significant bits of the second byte contain the identification (ID) number of the addressed module. The fourteen bit number allows 16K active and 16K spare memory modules to be independently addressed. The address space between the active and spare modules are distinguished by the nature of the commands. Commands intended for the active module are meaningless to the spare module, except global commands which require both type of module to perform the same tasks. Examples of commands intended for active modules are Cache Read and Cache Write. Examples for commands intended for spare modules are Identification Number Change and Module Activation. Examples of global commands are System Reset and Broadcast Write. Part of the address to the modules is therefore implicit in the command, and this implicit addressing allows more efficient use of the bits in the command packet. The command header, encoded in the four most significant bit of the second byte in a command packet, contains the operation the designated module is instructed to perform. The third byte of a command packet is optional. When used, it contains the additional information necessary for the module to complete the operation instructed by the command header. For instance, if the instruction is a cache read operation, then the detail information contains the address location from which the first data byte is read.
A data packet contains data arranged in bytes of 9 bits. During a block transfer, the data bytes are sent in consecutive order one at a time. The number of bytes in a packet can vary from one to 128 bytes with the upper limit imposed by the size of the cache line inside the memory module.
The format of the data packet allows efficient implementation of error detection and correction (EDC) . EDC schemes used in prior art systems suffer from inefficient coding and slow memory access. Figure 8 shows the block diagram of a prior art EDC scheme. Each piece of data transferred in the system bus is accompanied by its EDC code transferred in the EDC bus. The EDC device inputs the data and its EDC code for error checking and correction. In this system, efficient EDC coding can be obtained at the expense of more costly large word-width buses which is also less efficient in handling partial words (bytes or 16 bit words) .
According to the present invention, the 9 bit format of the data packet allows efficient implementations of EDC. Either a simple odd or even parity scheme can be used. In such scheme, 8 of the nine bits in a byte contain the data, while the other bit contains the parity. Parity encoding and decoding can be carried out in the memory controller during memory access and made transparent to the rest of the memory system. EDC can also be implemented in the system by restricting the number of bytes in the data packets to a few numbers, for examples 8. In this scheme, 8 bits in each byte can be used to carry data. The other bit in each byte can be grouped together to carry the EDC code. As illustrated in Figure 9, for an 8-byte data packet, each byte can be used to carry 8 bits of data and 1 bit of the 8 bit EDC code. The EDC code is then distributed among the 8 bytes of the packet. Those skilled in the art may recognize that the number of bits in a byte, the number of EDC bits in a byte and the number of bytes in a data packet can be chosen rather arbitrarily. For instance, a four byte packet with each byte containing 18 bits can be used. Then two bits in each byte can be used to carry a portion of the EDC code.
EDC operations is carried out in the memory controller. Figure 10(a) shows the block diagram of the memory system using a bus-watch EDC scheme. During a memory write operation, the memory controller 1007a assembles the data and encodes the EDC code in the data packet before sending it. The destined memory module stores both the EDC code and data indiscriminently, in other words it simply stores the whole packet in the cache or in the memory core without further data processing. During a memory read operation, the desired data packet which contains both the data and its EDC code is fetched from the memory module 1005a. After arriving at the memory controller 1007a, the EDC bit in each byte is stored away, the data portion is forwarded to the requesting device in the system. A copy of that data is sent to the EDC functional block 1008a where syndrome bits of the data are generated. Error checking and correction are carried out when the complete EDC code is obtained. In this way, EDC operations are carried out in parallel with data transfer. When no error is detected as is true most of the time, EDC operations has little effect on the memory accessing time. When an error is detected, the memory controller 1008a sets a flag in its internal register, corrects the data, write the correct data back to the memory module, and generates an interrupt to the requesting device to arrange for a data re-transmission.
In another embodiment, data received is not forwarded to the requesting device until the whole packet is received and the packet is checked and corrected for error. In this way, EDC operations are completely transparent to the requesting device as no flags need to be set and no interrupt need to be generated. A block diagram of this flow-through scheme is shown in Figure 10(b) .
Partial word write can also be handled efficiently according to the present schemes. The partial word and its address from a requested device is buffered in the controller 1008a or 1008b. The address is sent to the corresponding memory module to fetch the whole word from the memory module. The partial word is then used to replace the corresponding data in the completely word. The modified word is then written back to the memory module. The whole operation is carried out in the memory sub-system and is made transparent to the requesting devices.
The EDC scheme in accordance with the present invention is versatile as it can be fully tailored to optimize the performance of computer system with different word width and clock speed. Unlike the prior art schemes, the present invention does not waste memory storage or addressing space. Furthermore, it generates substantially less additional traffic on the system bus. The memory subsystem in accordance with this invention consists of memory module connected in parallel to a hierarchical bus. As illustrated in Figure 11, a module 1100 consists four DRAM arrays 1101 and a bus interface 1102. One skilled in the art will recognize that the memory array can be DRAM, SRAM, ROM, EEPROM or flash EPROM, and the number of arrays can be chosen rather arbitrarily. In the present embodiment, each memory array contains 147K bits configured into 256 rows of 64 bytes (9 bit) . The memory array 1101 also contains 576 (64x9) sense amplifiers 1103, the row select and the column select circuitry 1104, 1105. The row select circuit 1104, when activated, enables one row of memory cells for data transfer. For memory read operation, data stored in the cells is transferred to the bit line. It is then amplified by and stored in the latched sense amplifiers 1103. Once the data is stored in the sense-amplifiers 1103, subsequent access from that row can be made directly from the sense amplifiers 1103 without going through the row select circuit 1104. Data from the sense amplifiers 1103 is selectively gated to the bus interface 1102 for output during a cache read operation. For write operation, data addressed to the row currently selected can be written directly to the sense amplifiers 1103. Data in the sense amplifier 1103 can be transferred to the memory cells using two different modes of operation: write through and write back. In the write through mode, data written to the sense amplifiers 1103 is automatically transferred to the corresponding memory cells. In the write back mode, data written to the sense amplifiers 1103 is transferred to the memory cells only when it is instructed through a memory transfer command. Write through mode requires the word line selected by the row select circuit 1104 to be activated during a write operation while write back requires the word line to be activated only when the memory is instructed.
Since access to and from the sense amplifiers is much faster (5-10 ns) than access to and from the memory cells (40-100 ns) , the sense amplifiers can be used as a cache (sense-amp cache) for the memory block. Prior art systems attempted to use sense amplifiers in the DRAM as cache with limited success. Conventional DRAM because of package limitations, usually has few data input-output pins. For example, the most popular DRAM today has a configuration of XI or X4 in which only 1 or 4 data I/O are available. Memory systems using conventional DRAM require 4 to 32 chips form a computer word (32 bits) . When 4 megabit chips are used, the resultant sense-amp caches have large cache line sizes of 8K to 64K bytes but very few lines (8 to 1 lines for a 32 megabyte system) . As a result, these caches have poor hit rates (50-80%) . In general, a cache with over 90% hit rate requires over 100 lines irrespective of the size of the cache line. [A. Agarwal, et al, "An Analytic Cache Model," ACM Transactions on Computer Systems. May 1989, pp. 184- 215.] .
The scheme described in International Patent No. PCT/US91/02590 [Farmwald et al] managed to decrease the line size of the sense-amp cache to IK byte when using a 4 Mega bit chip. However, in order to achieve a hit rate of over 90% for the sense amp cache, over 50 DRAM chips are required. The resultant memory systems have capacities of over 24 megabyte which it much bigger than the memory capacity (4-8 megabyte) used in most computer systems today. One embodiment of the present invention uses a small array size of 147K bit. The resultant sense-amp cache has a line size of 64 byte. To achieve a hit rate of over 90%, the memory system is required to have a capacity of less than two megabytes which is much less than those in the prior art systems. Another feature in accordance with the present invention is not found in prior systems is that the cache line size is programmable. In systems with large memory capacity, the number of cache lines can be much more than 100. At this level, decreasing the number of cache lines has little effect on the hit rate but it can save memory storage for cache tags and speeds up the cache tag search. The number of cache lines in accordance with the present invention can be decreased by increasing the cache line size. It can be doubled from 64 byte to 128 byte by setting the cache-line-size bit in the configuration register of the memory module.
The cache system in accordance with the present invention is more flexible for system optimization and its performance is much less sensitive to the memory size than the prior art systems.
The present invention in one embodiment employs a source synchronous scheme for timing control. The clock signal which provides the timing information of the block transfer is driven by the source device from which the packet is sent. The clock signal can be the same clock which governs the internal operations of the sending device. The clock signal sent along with the communication packet is used in the receiving device to latch in the bus data. As a result, global clock synchronization is not required and the communicating devices can use totally independent clocks. In fact, the clock frequency and phase of all the communicating devices can be completely different from one another. The source- synchronous scheme avoids the problems such as phase locking and clock skew between communicating devices, which are associated with global clock synchronization and distribution. Those problems are much more difficult to handle at high frequency operations in a wafer scale environment. Skew between clock and data which limits the frequency of bus operations is minimized by matching the propagation delay in the elk and the BusData[0:8] signals. This matching includes the matching of their physical dimensions, their routing environment, their loads and their buffers. Good matching in line dimensions, signal buffers and loads is obtained by laying out the devices required to be matched identically and in close proximity of each other. The use of a relatively narrow bus (which with 10 lines needs to be critically matched) minimizes the geographical spread of the bus elements such as bus lines, bus drivers, and bus transceivers and allows the critical elements to be laid-out close to each other. The use of a fully-parallel bus structure also allows relatively easy matching of the loads on the bus lines. To facilitate better matching between the elk and BusData signal-path, dual-edge transfer, in which a piece of data is sent out every clock edge, is used. In dual- edge transfer, the clock frequency is equal to the maximum frequency of the data signals. Bandwidth requirements in the clock signal path therefore equal those in the data path making the matching of the signal delay in the clock and data relatively easy in the present invention. Figure 12 illustrates the matching of the clock and data buffers in the bus interface. Figure 12(a) shows a schematic of the circuit used to facilitate dual-edge transfer. Two bytes of data DB0 and DB1 are loaded to the inputs of the multiplexer MlOO where, for simplicity only one bit of the data byte (bit n) is shown. The multiplexer MlOO selects data byte 1 (DB0) on the positive cycle of data clock (dck) and data byte I (DB1) on the negative cycle for output. Tri-state buffer B100 buffers the data signal to the bus (BusData) . The transmission clock (tck) is buffered by the multiplexer M101 and tri-state buffer B101. To match the delay in the clock and data delay, M101 and B101 have the same circuit structure as do MlOO and B100 respectively. Both B100 and B101 are enabled by the signal En. To maximize the data setup and hold time for the data latches in the destined device, tck is generated so that its phase lags that of dck by 90 degree. In one embodiment clock generation is facilitated by incorporating a programmable ring oscillator in each of the communicating device. Figure 13 shows a schematic diagram of the frequency programmable ring oscillator. It consists of two parts: a 3-stage ring oscillator and a frequency control unit. The frequency of the clock signal at output (sck) is inversely proportional to the total delay in the three delay stages S100, S101 and S102. Delay in S100 and S101 is controlled by the control voltage Vcp and Vcn which determine the drive current in transistors P100-P101 and N100-N101. Vcp and Vcn are generated by the current mirror MlOO consisting the transistors N10, Nil and P10. MlOO uses the output current of the current multiplier 1100 as a reference to generate the control voltages Vcp and Vcn. The binary- weighted current multiplier 1100, consisting of transistors P1-P14, has a current output which is equal to a constant times the value of either Ick or 1^ depending on the state of the select signal SO. SO has a state of zero selecting Ick during normal operations, and a state of one selecting 1^ during low speed tests. In the preferred embodiment, 1^ has a value approximately equal to one- fiftieth of that of Ick. The magnitude of Iclc is chosen so that the resultant clock frequency has a period a little longer than the delay of the longest pipeline stage inside the module. The current multiplying factor of the current multiplier is determined by the five most significant bits S1-S5 of the clock register R100. The desired number for the multiplying constant can be loaded into the clock register through PD[0:5] and by activating the parallel load control signal PI. In a memory module, the loading occurs when the Clock-frequency-change command is executed.
The programmable current multiplier allows sixty-four different clock frequencies to be selected in the clock generator to meet the requirements of testing and system optimizations. The sixty-four frequencies are divided into two groups of thirty-two. One group has much lower (50x) frequencies than the other. The lower frequencies are in general used for functional or low-speed tests when the testing equipment is operating at relatively low speeds. The higher frequencies are used during normal operations and high speed tests. The fine adjustment of the clock frequency offers a relatively simple way for testing the device at speed. The 32 high-frequency levels have an increment of one twentieth of the base value. For a typical base frequency of 250 MHz which has a period of 4ns, the frequency increment is 12.5 MHz and the clock period increment is 0.2ns. This fine adjustment capability matches that offered by the most expensive test equipment existing today. Testing of the device at speed can be carried out by increasing the clock frequency until it fails, then the safe operating speed of the device can be set at a frequency two levels below that. As illustrated in Figure 14, the tests can be carried out at a relatively low-speed using a relatively inexpensive tester 1407 with the tester connected only to the system bus interface 1405 of the memory controller 1403. The operating frequency of the system bus interface 1405 can be set at speed level comfortable to the tester 1407 without compromising the operation speed at the hierarchical bus 1402. All the high-speed signals of the hierarchical bus 1402 is shielded from the tester 1407. This test capability can substantially decrease the testing cost of the memory system. The receiving device uses the clock sent by the source device to control the timing of the receiving process which is different from the internal clock that it uses for controlling its other functional blocks. Synchronization is required when data moves from the receiving unit to the other functional area inside the device. Since the read and write process do not happen simultaneously in a memory module, the receiving clock can be used to control the write process and the internal clock can be used to control the read process. In this way, no synchronization between the receiving and the internal clock is necessary. The memory controller serves as a bridge between the memory modules and the memory requesting devices such as the CPU and DMA (Direct Memory Access) controller. It has two bus interfaces: memory and system. The memory interface connects the controller to the hierarchical or memory bus and the system interface connects the controller to the CPU and the memory requesting devices. In one embodiment, when the system bus does not use a fixed clock for communication, the method used in the memory modules for transfer synchronization is also used in the memory controller. In another embodiment, when the system bus is synchronized with a system clock, a frequency synthesizer synchronized to the system clock generates the internal clock signal of the memory controller. Synchronization between the receiving unit of the memory interface and the sending unit of the system interface uses a first-in-first-out (FIFO) memory in which the input port is controlled by the receiving clock but the output port is controlled by the system or internal clock. Flags such as FIFO empty, half-full, and full provide communications between the two bus interfaces and facilitate a more tightly coupled data transfer.
The memory bus interface, connected directly to the hierarchical memory bus, is responsible for carrying out handshake sequences, encoding and decoding communication protocols, assembling and dissembling communication packets and the synchronization of data transfers. Figure 15 shows a block diagram of the interface. It consists of the bus drivers 1501, two FIFO's 1502, 1503, eight address and control registers 1505-1512, and a sequencer 1504. This bus interface appears in the memory controller as well as in each of the memory blocks. The bus drivers 1501 buffer the bus signals to and from the memory bus. Bi-directional tri-state drivers are used for the bidirectional signals while simple buffers are used for the unique directional asynchronous control signal. The two FIFO's 1502, 1503 are used to match the communication bandwidth between the memory bus 1513 and the internal bus of the memory module or the memory controller. In the memory module, the sense-amp cache has an access cycle time of 5 to 10ns which is longer than the block-mode cycle time of the memory bus (1.5 - 3ns). To keep up with the transfer bandwidth, four bytes (36 bits) of data are accessed from or to the cache at a time. This requires the internal bus connecting to the sense-amp cache to be 36 bits wide and the transfer frequency is one quarter of that in the memory bus. The serial-to-parallel FIFO 1503 converts the byte serial data from the bus to 36 bit words before sending it out to the internal bus. Similarly, the parallel-to-serial FIFO 1502 serializes the data word from the sense-amp cache into data bytes before sending it out to the memory bus. In the memory controller, the word-width mismatch occurs between the memory bus and the system bus (32 to 64 bits) and the FIFO's are used to bridge it. For a synchronous system bus, the FIFO's are also used to synchronize the transfer of data between the memory bus and the system bus. To facilitate a more coherent synchronization, flags which indicate the status of the FIFO's such as empty and half- full are used.
Five address registers 1505-1509 and three control registers 1510-1512 are incorporated in the interface 1500 of a memory module. The four 8-bit row address registers 1505-1508, one dedicated for each memory block contains the addresses of the rows whose content is being cached by the sense amplifiers. The 7-bit column address register 1509 holds the base address for the current cache access. The two identification registers 1510, 1511 holds the 12 most significant bit of the communication address of the each memory block. The two least-significant bits of the communication address received in a packet is used to select one of the four modules. One-time programmable (OTP) elements, such as fuses or anti-fuses, are used in the OTP register 1510 to hold the communication address of the module for system initialization. Any nonvolatile memory elements such as EPROM and EEPROM can also be used. The OTP register 1510 are programmed in the factory after the functional tests, and only registers associated with good modules need to be programmed. The number held in the OTP identification register 1510 is transferred to the soft programmable (SP) identification register 1511 during system reset. The communication address can subsequently be changed by performing a write access to the SP identification register 1511. The identification registers 1510, 1511 provide a special way for setting up communication address in the bus system which is different from those described in the prior systems such as those described in international patent PCT/US91/02590 [Farmwald et al] and US Patent No. 4,007,452 [Hoff, Jr.], where a separate serial bus is employed. The identification registers 1510, 1511 also allow dynamic reconfiguration of the memory system in case of module failures.
The 8-bit configuration register 1512, as shown in Figure 16, contains three fields. The six least significant bits contain the byte length of the data packet used in the communication. Bit 7 of the register 1512 contains the spare/active (S/A) bit which sets the module into the corresponding state. In the spare state, the module carries out only communication configuration commands such as identification change and module reset and it is not allowed to carry out any memory access. Memory access to a module is allowed only when the S/A bit is set to 0. The most significant bit of the configuration register 1512 selects short line size (64 byte) or long line size (128 byte) for the cache. In the long cache-line mode, the content of row address registers 0 and 2 is always duplicated in row address registers 1 and 3 respectively. Also, the least significant bit of the communication address in the packet is ignored. In the short cache-line mode, the most significant bit of the column address is ignored.
In the memory controller, for a single master system, only the configuration register 1512 is incorporated in the memory interface 1500. However, in a multiple master system, both configuration register 1512 and identification registers 1510, 1511 are incorporated.
The sequencer 1504 is responsible for generating all the control signals for the operations in the interface.
Bus transceivers in all three levels of the bus hierarchy have the same basic circuit structure. Figure 17(a) shows a block diagram of a bus transceiver. It consists of 15 bi-directional tri-state buffers 1701 for buffering signals in each bus line 0-14, and a control unit 1702 for enabling the outputs and controlling the direction of signal buffering 1701. All the bi- directional tri-state buffers in a transceiver have identical circuit and layout structure so that their signal propagation-delay characteristics are well matched. This minimizes the timing skews on the bus signals and it allows the substitution of a signal line by any other one for defect management. Figure 17(b) shows the circuit schematic of a bi-directional tri-state buffer 1701. It consists of two back-to-back tri-state drivers T,, T2. The drivers T,, T2 are connected to the bus segment in each end through an optional fuse (Fl and F2) which provides programmability for disconnecting the tri-state buffer from the bus in case of functional failure in the buffer. ^The tri-state driver can also be constantly disabled (tri- stated) by blowing fuse F3 or enabled by blowing fuse F4 as shown in Figure 17(c). By blowing fuse F3 in bus driver Tl and fuse F4 in driver T2, the bi-directional buffer 1701 is set to buffer only signal from the TD (right) side to RD (left) side. By blowing fuse F3 in both drivers, the bi-directional buffer 1701 is disabled and the bus segment TD is isolated from the segment RD. By disabling the transceivers attached to the two ends of a bus segment, a defective segment can be isolated from the rest of the bus network. Those skilled in the art recognize that any programmable switches can readily be used to replace the fuse elements. Under normal operations, the tri-state drivers are enabled by the control signals REN and TEN generated by the control unit. The transceiver control unit controls the direction of communication by enabling the bus driver pointing to that direction and disabling the one pointing in the Opposite direction. As illustrated in Figures 17(a) and 17(d), the control unit 1702 has four control input signals T/Rlr, TC#lr, T/Rrl and TC#rl connected to bus signals through anti-fuses. During network configuration, the T/Rlr and T/Rrl are programmed to connect to the T/R bus signal, and the TC#lr and TC#rl are programmed to connect to the TC# signal using the corresponding anti-fuses. Programmable switches can readily be used to replace the anti-fuses, with little effect on the system performance. Outputs TEN and REN which control the bi-directional buffers 1701 are driven deactive low by transistor P2 which has a higher drive capability than transistor N2. By blowing fuse F2, TEN and REN remains low all the time and the bi¬ directional buffers 1701 in the transceiver are disabled. When fuse Fl is blown, disabling signal D is driven deactive low by N2 and the output states at TEN and REN are dependent on the states of the two input pairs T/Rlr and TC#lr, and T/Rrl and TC#rl. Signal DirSel selects which input pair to assume the control of the TEN and REN. The selection is based on the position of the memory controller relative to the transceiver. The selection can be carried out by programming these fuses F3 and F4 which control the state of DirSel. For example, if the memory controller is located to the left of the transceiver, in order for the controller to have complete control of the transceiver, DirSel is set to a state of 1 by blowing fuse F4. This causes T/Rlr and TC#lr to assume the control of the bi-directional buffers 1701. Similarly, if the controller is located to the right of the transceiver, T/Rrl and TC#rl is given the control by blowing fuse F3 which sets DirSel to a state of 0. Fuses F3 and F4 can be replaced by a programmable switch with little effect on the system performance.
As shown in Figure 17(e), the control unit 1702 can also incorporate a control register 1703 for bus configuration and an identification register 1704 for communication with the memory controller. The identification register 1704 includes non-volatile programmable elements which can be used to store a unique communication address assigned during the manufacturing process. The communication address allows the control register 1703 in the transceiver to be accessed by the memory controller during system initialization or system reconfiguration for enabling and disabling the transceiver. The control register 1703 contains four bits C0-C3. When CO is set, it enables the control of the DirSel signal by CI. When CO is set, CI overrides the effects of the fuses F3 and F4. Cl drives DirSel to the low state when it is set and to the high state when it is reset. When C2 is set, TEN is driven to the low state and the transceiver is disabled in the transmission direction. Similarly, when C3 is set, REN is driven low and the transceiver is disabled in the receiving direction. The control register 1703 is reset at power-on. To program the control register 1703, the memory controller drives the bus control signals BB# high, T/R low, and TC# high. This enables the comparator 1705 which compares the content of the BusData[0:8] in the bus with its communication address in the identification register 1704. In case of a match, the new control word from BusData[0:3] is loaded to the control register 1703 at the next clock edge.
The design of the tri-state bi-directional repeater allows the communicating devices (memory control and module) to set a series of transceivers to HiZ state without the use of a separate broadcasting signal during bus configuration. This is accomplished in the design by having the propagation delay in the tri-state buffer shorter than the input-to-output delay in the control unit. As a result, T/R and TC# signals at the inputs of the repeater are forwarded to the next transceiver before their effect on the outputs of the control unit REN and TEN is asserted.
The tri-state bi-directional repeater configuration as shown in Figures 17(a,b,c,d,e) allows the flexible implementation of communication networks that can be dynamically (or statically) re-configured or remapped for defect isolation or for passing the control of the network among several bus masters.
An exemplary network 1800 in accordance with the present invention with 9 nodes is shown in Figure 18(a) where each node 1-9 represents a section of the second level of the bus (GB) architecture. For simplicity, the third level (local bus) and the circuit modules attached to it are not shown. Bus transceivers (GTij) establish the link between neighboring nodes. When the bus transceivers (GTij) are physically clustered near the vertices of the network grid, it can be represented as in Figure 18(b). Symbolically, the network 1800 can also be represented as in Figure 18(c) where each directional link Lij represents a bus transceiver group (GT) . Not all links are used to establish a tree hierarchy; this means that the network has inherent redundancy in linking the nodes in the presence of defects. An example is shown in Figure 18(d) , where a tree bus hierarchy is established in the presence of multiple node and link defects 2,L78, L89.
In a network with multiple masters, the network can be remapped into many different configurations in which any of the masters can be at the root of a hierarchical tree bus structure. This capability is useful in replacing an defective master or when control of the network is passed from one master to another master. Figure 18(e) shows an example of the bus mapping when the root of the hierarchical tree is at node 5 ((vs. node 4 in Figure 18(d) ) . In this configuration the master node 5 is in control of the network instead of the master attached to node 4 as in Fig. 18(d). Furthermore, the network can be partitioned into many disjoint sub-networks with one master at the root of each sub-network tree. This configuration is useful for certain parallel processing applications in a multiple master environment. The network topology in accordance with the present invention as shown in Figure 18(e) is simple but powerful. The physical implementations of it may be variations from that of Figure 18(a,b). For example, Figure 18(f) shows an implementation with each vertical link consists of two bus transceivers (lGTij) (2GTij) and Figure 18(g) shows an implementation with each vertical and horizontal link consists of two bus transceivers lVGTij, lVGTij, lHGTmn, 2HGTmn. Those skilled in the art may recognize that many combinations exist as to the number of bus transceivers per link in either of the two directions.
This disclosure is illustrative and not limiting; further modifications and variations will be apparent to those skilled in the art in light of this disclosure and the appended claims.

Claims

We claim:
1. A defect tolerant integrated circuit subsystem having a plurality of modules, a hierarchical bus connecting to said modules and bus masters for controlling bus operation, comprising: tri-stateable transceivers for controlling signal transfer directions in said bus or cutting off signal transfer; and programmable switches for isolating defective bus modules from a remainder of said subsystem.
2. A defect-tolerant integrated circuit subsystem as in claim 1, wherein at least one said module comprises at least one identification register for storing an identification code associated with said module.
3. A defect-tolerant integrated circuit subsystem as in claim 2, wherein said identification registers comprise a nonvolatile memory element and a logic circuit.
4. A defect-tolerant integrated circuit subsystem as in claim 2, wherein said identification registers further form a base address for a memory block inside said module.
5. A defect-tolerant integrated circuit subsystem as in claim 1, wherein at least one said module comprises a control register having a disable bit for disabling said module.
6. A method for communication between a communicating module in a plurality of memory modules and a memory controller through a bus having a set of signal lines and a set of control lines comprising the steps of: using a source-synchronous scheme for transferring data, address and timing information through the set of signal lines; and using an asynchronous scheme for transferring bus control signals through the set of control lines.
7. A method as in claim 6, wherein a path on the bus through which said data and address information pass and a path on the bus through which said timing information passes are fully matched.
8. A method as in claim 6, wherein said information transferred according to said source-synchronous scheme is in packets.
9. A method as in claim 8, wherein said bus control signals control said bus into one of idle, receiving, transmitting and high impedance states.
10. A method as in claim 8, wherein said bus control signals comprise bus busy control, transmit/receive control and high impedance control.
11. A method as in claim 10, wherein a falling edge of said bus busy control signals the beginning of a packet transfer and a rising edge of said bus busy control indicates the end of a transfer.
12. A method as in claim 8, wherein said packets of information comprise command packets and data packets.
13. A method as in claim 12, wherein said command packets are broadcast by said controller to said plurality of memory modules.
14. A method as in claim 12, wherein said data packets are sent using a point-to-point communication mode.
15. A method as in claim 14, wherein only a portion of said bus that connects between said communicating module and said memory controller is activated during said point-to-point communication mode.
16. A bus on a semiconductor device for communication between a communicating module and a bus master comprising circuitry for asynchronous transfer of bus state control signals.
17. A bus on semiconductor device as in claim 16, wherein said communication comprises at least a broadcast communication mode and a point-to-point communication mode.
18. A bus on semiconductor device as in claim 17, wherein only a portion of said bus that connects between said communicating module and said bus master is activated during said point-to-point communication mode.
19. A bus on semiconductor device as in claim 16, further comprising means for source-synchronously transferring of command, data, address and clock signals in packets.
20. A bus on semiconductor device as in claim 19, wherein said data signal comprises a command packet format containing an identification number of a addressed module and operation instruction for said addressed module.
21. A fault-tolerant hierarchical bus system on an integrated circuit for establishing communication links between communicating modules of multiple circuit modules and an outside module-requesting device through at least one bus master and system bus of a digital system comprising: at least one root bus branch in a first level of the hierarchy; a plurality of bus segments in a second level; and a plurality of local bus branches in a third level; said root bus branch connecting said bus master to said plurality of bus segments through a root transceiver; said bus segments in the second level being arranged into grids joined together by bus transceivers and bus switches; and said local bus branches each being connected to said bus segments in the second level and being arranged into a tree with at least two circuit modules connecting to a local bus transceiver.
22. A bus system as in claim 21, wherein said bus switches are programmable thereby to form a bus configuration which isolates defective bus segments and modules.
23. A bus system as in claim 22, wherein said bus switches include of anti-fuses.
24. A bus system as in claim 21, wherein said root transceiver, said bus transceiver and said local bus transceiver each include a set of bi-directional tri-state buffers.
25. A bus system as in claim 24, wherein said bi¬ directional, tri-state buffers can be disabled through programmable switches in said bi-directional, tri-state buffers.
26. A bus system as in claim 24, wherein said each transceiver comprises a control unit for controlling communication directions.
27. A bus system as in claim 26, wherein said control unit comprises two outputs for controlling said bi-directional, tri-state buffer and two input pairs of four control signals which pair control said outputs according to a position of said bus master relative to said transceiver.
28. A bus system as in claim 26, wherein said control unit comprises a control register for determining bus configuration to isolate defective bus segments.
29. A bus system as in claim 26, wherein said control unit comprises an identification register for communication with said bus master.
30. A bus system as in claim 29, wherein said identification register comprises a non-volatile programmable element for storing a communication address of said transceiver.
31. A bus system as in claim 21, wherein said multiple circuit modules comprise active modules and spare modules.
32. A bus system as in claim 21, wherein said grids are able to be mapped into a tree structure.
33. A bus system as defined in claim 32, wherein said grids are able to be mapped into a disjoint tree structure.
34. A bus system as in claim 32, wherein said bus switch is a programmable cross-bar switch overlying four set of bus segments to connect one another among said four bus segments or separate said four bus segments from one another, and each transceiver in said bus system is programmable to isolate said bus segments so that said grids are able to be remapped to exclude defect.
35. A bus system as defined in claim 34, wherein said tree can be remapped to switch said bus master.
36. A bus transceiver for a bus having a plurality of lines, comprising: a plurality of bi-directional, tri-state buffers for buffering signals in each bus line; and a control unit for enabling output of said transceiver and controlling directions of said signal buffering.
37. A bus transceiver as in claim 36, wherein said bi-directional, tri-state buffers each comprise circuits to disable said bus transceiver.
38. A bus transceiver as in claim 37, wherein said circuits comprise programmable switches.
39. A bus transceiver as in claim 36, wherein said control unit comprises two outputs for controlling said bi-directional, tri-state buffer and two input pairs of four control signals one pair of which is selected to control said outputs.
40. A bus transceiver as in claim 36, wherein said control unit comprises an identification register for storing an address of said bus transceiver.
41. A bus transceiver as in claim 40, wherein said identification register comprises a non-volatile programmable element for storing said address.
42. A bus transceiver as in claim 36, wherein said control unit comprises a control register for controlling said bi-directional, tri-state buffers.
43. A high speed bus interface in a memory module having a plurality of memory blocks, for connecting to a hierarchical memory bus, comprising bus drivers for buffering bus signals to or from said memory bus.
44. A high-speed bus interface as in claim 43, wherein said memory blocks include memory cells arranged in rows and columns, further comprising a plurality of address registers used for holding row addresses for each of said memory blocks whose content is being cached, and an address register for holding a base address for a current cache access.
45. A high-speed bus interface as in claim 43, further comprising three control registers for selecting a communicating module and activating or deactivating a module.
46. A high-speed bus interface as in claim 45, wherein said control registers comprise a non-volatile memory element and a programmable register both used as identification register.
47. A high-speed bus interface as in claim 45, wherein one of said control registers comprises a configuration register.
48. A high-speed bus interface as in claim 47, wherein said configuration register comprises a spare/active bit for setting said memory module into corresponding status.
49. A high-speed bus interface as in claim 47, wherein said configuration register comprises a short/long bit for setting length of cache line in said memory module.
50. A high-speed bus interface as in claim 47, wherein said configuration register comprises bits for indicating byte length of a data packet used in data communication.
51. A method for error detection and correction (EDC) in transferring data in a packet of bytes from a memory module to a requesting device comprising the steps of: defining for each byte of packet have an EDC code portion and a data portion; reading out said data from said memory module; forwarding said data portion to said requesting device; storing said EDC portion and sending said EDC portion to an EDC functional block when a complete EDC code is obtained; copying said data and sending said data to said EDC functional block; performing error checking and correction in said EDC functional block when said EDC functional block receives a complete EDC code.
52. A method as in claim 51, wherein when an error is detected in said EDC functional block, said block causes: setting a flag and correcting said data; writing the correct data back to said memory module; and generating an interrupt to said requesting device for a later retransmission.
53. A method as in claim 51, wherein each byte of a packet has 8 bits of data and 1 bit of a 8 bit EDC code and said EDC code is distributed among 8 bytes of each packet.
54. A method as in claim 51, wherein said forwarding of said data portion will not begin until an entire packet is received and said entire packet is checked and corrected for error.
55. A circuit comprising a plurality of functional modules and a bus connecting thereto in which data signals are transferred in packets through the bus between a source device and a receiving device using a source- generated clock signal, on substantially matched data and clock paths.
56. A device as in claim 55, wherein said clock signal is variable in frequency.
57. A device as in claim 55, wherein each said functional module comprises a frequency-programmable ring oscillator for generating variable clock signals.
58. A device as in claim 57, wherein said ring oscillator is on the same chip as said semiconductor device.
59. A method for disabling a defective module in a plurality of functional modules in a functional subsystem to be communicated through a bus, with a bus controller comprising the steps of: providing spare modules in said function modules; providing identification registers for holding a communication address associated with each said module; setting a disable bit in said identification registers associated with said defective module; and writing said communication address to identification registers associated with a spare module.
60. A method for disabling a defective module as in claim 59, wherein said identification register comprises a non-volatile memory element for holding said communication address for each said module.
61. A method for using a latched sense amplifier in a memory module as high-speed cache memory comprising the steps of arranging a plurality of DRAM arrays to form said module; and providing a cache line having a plurality of
DRAM sense amplifiers of DRAM array.
62. A method as in claim 61, wherein a length of said sense amplifier cache line is programmable by setting a cache-line-size bit in a register of said memory modules.
63. A method for activating only a portion of a bus communicating directly between a communicating module in a plurality of functional modules and a bus master during a point-to-point communication mode, said bus comprising a plurality of bus segments linked together by bus switches and bus transceivers, defining a receiving state, a transmitting mode and a high-impedance state, said method comprising the steps of: setting all said bus transceivers to said receiving state by said bus master; setting all said bus transceivers to said high impedance state by said bus master; inverting all said bus transceivers to said transmitting state by said bus master; and driving a particular bus transceiver to a non- high-impedance state by said communicating module, thereby to activate said portion of the bus only.
64. A method as in claim 63, wherein three control signals are provided to set said states of said transceivers.
65. A method as in claim 64, wherein said control signals comprise a bus busy control signal, a transmit/receive control signal and a tri-state control signal.
66. A transceiver as in claim 42, wherein said control register is programmable.
67. A high speed bus interface in a memory module having a plurality of memory blocks, for connecting to a hierarchical memory bus, comprising: bus drivers for buffering bus signals to or from said memory bus; and two first-in first-out memory elements for matching communication bandwidth between said memory bus and an internal bus of said memory module.
68. A device as in Claim 55, wherein said clock signal is derived from a system clock.
69. A device as in Claim 6, wherein said timing information is derived from a system clock. AMENDED CLAIMS
[received by the International Bureau on 28 January 1994 (28.01.94); original claims 6,16-20,36,43-51,55,61,63 and 67 amended; other claims unchanged (11 pages)]
1. A defect tolerant integrated circuit subsystem having a plurality of modules, a hierarchical bus connecting to said modules and bus masters for controlling bus operation, comprising: tri-stateable transceivers for controlling signal transfer directions in said bus or cutting off signal transfer; and programmable switches for isolating defective bus modules from a remainder of said subsystem.
2. A defect-tolerant integrated circuit subsystem as in claim 1, wherein at least one said module comprises at least one identification register for storing an identification code associated with said module.
3. A defect-tolerant integrated circuit subsystem as in claim 2, wherein said identification registers comprise a nonvolatile memory element and a logic circuit.
4. A defect-tolerant integrated circuit subsystem as in claim 2, wherein said identification registers further form a base address for a memory block inside said module.
5. A defect-tolerant integrated circuit subsystem as in claim 1, wherein at least one said module comprises a control register having a disable bit for disabling said module.
6. A method for communication between a communicating module in a plurality of memory modules and a memory controller through a bus system having a set of signal lines and a set of control lines comprising the steps of: using an asynchronous scheme for transferring bus control signals through the set of control lines, said control signals determining transferring directions and modes of said set of signal lines; and then using a source-synchronous scheme for transferring data, address and timing information through the set of signal lines, said timing information being driven by a source device from which the data information is sent, and being used by a receiving device to latch in the data information.
7. A method as in claim 6, wherein a path on the bus through which said data and address information pass and a path on the bus through which said timing information passes are fully matched.
8. A method as in claim 6, wherein said information transferred according to said source-synchronous scheme is in packets.
9. A method as in claim 8, wherein said bus control signals control said bus into one of idle, receiving, transmitting and high impedance states.
10. A method as in claim 8, wherein said bus control signals comprise bus busy control, transmit/receive control and high impedance control.
11. A method as in claim 10, wherein a falling edge of said bus busy control signals the beginning of a packet transfer and a rising edge of said bus busy control indicates the end of a transfer.
12. A method as in claim 8, wherein said packets of information comprise command packets and data packets.
13. A method as in claim 12, wherein said command packets are broadcast by said controller to said plurality of memory modules.
14. A method as in claim 12, wherein said data packets are sent using a point-to-point communication mode.
15. A method as in claim 14, wherein only a portion of said bus that connects between said communicating module and said memory controller is activated during said point-to-point communication mode.
16. A bus system on a semiconductor device for communication between a communications module which is one of a plurality of communications modules and a bus master, comprising circuitry for asynchronous transfer of bus state control signals from said bus master to said communications module.
17. A bus system on a semiconductor device as in claim 16, wherein said communication comprises at least a broadcast communication mode and a point-to-point communication mode.
18. A bus system on a semiconductor device as in claim 17, wherein only a portion of said bus system that connects between said communicating module and said bus master is activated during said point-to-point communication mode.
19. A bus system on a semiconductor device as in claim 16, further comprising means for source- synchronously transferring of command, data, address and clock signals in packets.
20. A bus system on a semiconductor device as in claim 19, wherein said data signal comprises a command packet format containing an identification number of a addressed module and operation instruction for said addressed module.
21. A fault-tolerant hierarchical bus system on an integrated circuit for establishing communication links between communicating modules of multiple circuit modules and an outside module-requesting device through at least one bus master and system bus of a digital system comprising: at least one root bus branch in a first level of the hierarchy; a plurality of bus segments in a second level; and a plurality of local bus branches in a third level; said root bus branch connecting said bus master to said plurality of bus segments through a root transceiver; said bus segments in the second level being arranged into grids joined together by bus transceivers and bus switches; and said local bus branches each being connected to said bus segments in the second level and being arranged into a tree with at least two circuit modules connecting to a local bus transceiver.
22. A bus system as in claim 21, wherein said bus switches are programmable thereby to form a bus configuration which isolates defective bus segments and modules.
23. A bus system as in claim 22, wherein said bus switches include of anti-fuses.
24. A bus system as in claim 21, wherein said root transceiver, said bus transceiver and said local bus transceiver each include a set of bi-directional tri-state buffers .
25. A bus system as in claim 24, wherein said bi¬ directional, tri-state buffers can be disabled through programmable switches in said bi-directional, tri-state buffers.
26. A bus system as in claim 24, wherein said each transceiver comprises a control unit for controlling communication directions.
27. A bus system as in claim 26, wherein said control unit comprises two outputs for controlling said bi-directional, tri-state buffer and two input pairs of four control signals which pair control said outputs according to a position of said bus master relative to said transceiver.
28. A bus system as in claim 26, wherein said control unit comprises a control register for determining bus configuration to isolate defective bus segments.
29. A bus system as in claim 26, wherein said control unit comprises an identification register for communication with said bus master.
30. A bus system as in claim 29, wherein said identification register comprises a non-volatile programmable element for storing a communication address of said transceiver.
31. A bus system as in claim 21, wherein said multiple circuit modules comprise active modules and spare modules.
32. A bus system as in claim 21, wherein said grids are able to be mapped into a tree structure. 33. A bus system as defined in claim 32, wherein said grids are able to be mapped into a disjoint tree structure.
34. A bus system as in claim 32, wherein said bus switch is a programmable cross-bar switch overlying four set of bus segments to connect one another among said four bus segments or separate said four bus segments from one another, and each transceiver in said bus system is programmable to isolate said bus segments so that said grids are able to be remapped to exclude defect.
35. A bus system as defined in claim 34, wherein said tree can be remapped to switch said bus master.
36. A bus transceiver for a hierarchical bus having a plurality of lines, comprising: a plurality of bi-directional, tri-state buffers for buffering signals in each bus line of said hierarchical bus along one of two opposite bus directions; and a control unit for enabling output of said transceiver and controlling said directions along which said signals are buffered; wherein a propagation delay of each bi¬ directional, tri-state buffer is made smaller than an input-to-output delay of said control unit.
37. A bus transceiver as in claim 36, wherein said bi-directional, tri-state buffers each comprise circuits to disable said bus transceiver.
38. A bus transceiver as in claim 37, wherein said circuits comprise programmable switches.
39. A bus transceiver as in claim 36, wherein said control unit comprises two outputs for controlling said bi-directional, tri-state buffer and two input pairs of four control signals one pair of which is selected to control said outputs.
40. A bus transceiver as in claim 36, wherein said control unit comprises an identification register for storing an address of said bus transceiver.
41. A bus transceiver as in claim 40, wherein said identification register comprises a non-volatile programmable element for storing said address.
42. A bus transceiver as in claim 36, wherein said control unit comprises a control register for controlling said bi-directional, tri-state buffers.
43. A bus interface in a memory module having a plurality of memory blocks, for connecting to a hierarchical memory bus, comprising bus drivers buffering bus signals to or from said hierarchical memory bus.
44. A bus interface as in claim 43, wherein said memory blocks include memory cells arranged in rows and columns, further comprising a plurality of address registers used for holding row addresses for each of said memory blocks whose content is being cached, and an address register for holding a base address for a current cache access.
45. A bus interface as in claim 43, further comprising three control registers for selecting a communicating module and activating or deactivating a module.
46. A bus interface as in claim 45, wherein said control registers comprise a non-volatile memory element and a programmable register both used as identification register.
47. A bus interface as in claim 45, wherein one of said control registers comprises a configuration register.
48. A bus interface as in claim 47, wherein said configuration register comprises a spare/active bit for setting said memory module into corresponding status.
49. A bus interface as in claim 47, wherein said configuration register comprises a short/long bit for setting length of cache line in said memory module.
50. A bus interface as in claim 47, wherein said configuration register comprises bits for indicating byte length of a data packet used in data communication.
51. A method for error detection and correction (EDC) in transferring data to a requesting device in a packet of bytes from a memory module which is one of a plurality of memory modules each in communication with the requesting device, comprising the steps of: defining for each byte of packet an EDC code portion and a data portion; reading out said data from said memory module; forwarding said data portion to said requesting device; storing said EDC portion and sending said EDC portion to an EDC functional block when a complete EDC code is obtained; copying said data and sending said data to said EDC functional block; and performing error checking and correction in said EDC functional block when said EDC functional block receives a complete EDC code. 52. A method as in claim 51, wherein when-an error is detected in said EDC functional block, said block causes: setting a flag and correcting said data; writing the correct data back to said memory module; and generating an interrupt to said requesting device for a later retransmission.
53. A method as in claim 51, wherein each byte of a packet has 8 bits of data and 1 bit of a 8 bit EDC code and said EDC code is distributed among 8 bytes of each packet.
54. A method as in claim 51, wherein said forwarding of said data portion will not begin until an entire packet is received and said entire packet is checked and corrected for error.
55. A circuit comprising a plurality of functional modules and a bus connecting thereto in which data signals are transferred in packets through the bus between a source device and a receiving device using a source- generated clock signal, on substantially matched data and clock paths to minimize skews between the clock signal and each of the data signal.
56. A device as in claim 55, wherein said clock signal is variable in frequency.
57. A device as in claim 55, wherein each said functional module comprises a frequency-programmable ring oscillator for generating variable clock signals.
58. A device as in claim 57, wherein said ring oscillator is on the same chip as said semiconductor device. 59. A method for disabling a defective module in a plurality of functional modules in a functional subsystem to be communicated through a bus, with a bus controller comprising the steps of: providing spare modules in said function modules; providing identification registers for holding a communication address associated with each said module; setting a disable bit in said identification registers associated with said defective module; and writing said communication address to identification registers associated with a spare module.
60. A method for disabling a defective module as in claim 59, wherein said identification register comprises a non-volatile memory element for holding said communication address for each said module.
61. A method for using a latched sense amplifier in a memory module used as high-speed cache memory, said memory module being one of a plurality of memory modules, comprising the steps of: arranging a plurality of DRAM arrays to form said memory module; and providing a cache line having a plurality of
DRAM sense amplifiers for each DRAM array.
62. A method as in claim 61, wherein a length of said sense amplifier cache line is programmable by setting a cache-line-size bit in a register of said memory modules.
63. A method for activating only a portion of a bus system communicating directly between a communicating module in a plurality of functional modules and a bus /03901
- 54 - master during a point-to-point communication mode, said bus system comprising a plurality of bus segments linked together by bus switches and bus transceivers, defining a receiving state, a transmitting mode and a high-impedance state, said method comprising the steps of: setting all said bus transceivers to said receiving state by said bus master; setting all said bus transceivers to said high impedance state by said bus master; inverting all said bus transceivers to said transmitting state by said bus master; and driving a particular bus transceiver to a non- high-impedance state by said communicating module, thereby to activate said portion of the bus only.
64. A method as in claim 63, wherein three control signals are provided to set said states of said transceivers.
65. A method as in claim 64, wherein said control signals comprise a bus busy control signal, a transmit/receive control signal and a tri-state control signal.
66. A transceiver as in claim 42, wherein said control register is programmable.
67. A bus interface as in Claim 43, wherein said memory module has an internal bus, said bus interface further comprising: two first-in first-out memory elements for matching communication bandwidth between said hierarchical memory bus and said internal bus of said memory module.
PCT/US1993/007262 1992-08-10 1993-08-05 Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration WO1994003901A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE69331061T DE69331061T2 (en) 1992-08-10 1993-08-05 Fault-tolerant hierarchical bus system
EP93918585A EP0654168B1 (en) 1992-08-10 1993-08-05 Fault-tolerant hierarchical bus system
JP6505501A JPH08500687A (en) 1992-08-10 1993-08-05 Fault-tolerant high speed bus devices and interfaces for wafer scale integration
AU47987/93A AU4798793A (en) 1992-08-10 1993-08-05 Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92756492A 1992-08-10 1992-08-10
US927,564 1992-08-10

Publications (1)

Publication Number Publication Date
WO1994003901A1 true WO1994003901A1 (en) 1994-02-17

Family

ID=25454909

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1993/007262 WO1994003901A1 (en) 1992-08-10 1993-08-05 Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration

Country Status (6)

Country Link
US (8) US5613077A (en)
EP (1) EP0654168B1 (en)
JP (1) JPH08500687A (en)
AU (1) AU4798793A (en)
DE (1) DE69331061T2 (en)
WO (1) WO1994003901A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996021188A1 (en) * 1994-12-29 1996-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Bus arrangement related to a magazine
FR2764095A1 (en) * 1997-05-30 1998-12-04 Sgs Thomson Microelectronics Memory circuit with dynamic redundancy
GB2352855A (en) * 1999-05-05 2001-02-07 Ibm Replacement of non-operational metal lines in DRAMs
US6324485B1 (en) 1999-01-26 2001-11-27 Newmillennia Solutions, Inc. Application specific automated test equipment system for testing integrated circuit devices in a native environment
EP3279796A1 (en) * 2016-08-02 2018-02-07 NXP USA, Inc. Resource access management component and method therefor
EP3923286A1 (en) * 2009-07-16 2021-12-15 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
US20220350713A1 (en) * 2021-04-29 2022-11-03 Mellanox Technologies Ltd. Redundancy data bus inversion sharing

Families Citing this family (212)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367208A (en) 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
WO1994003901A1 (en) * 1992-08-10 1994-02-17 Monolithic System Technology, Inc. Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration
US5655113A (en) 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
US5954828A (en) * 1995-01-05 1999-09-21 Macronix International Co., Ltd. Non-volatile memory device for fault tolerant data
JPH0926466A (en) * 1995-07-11 1997-01-28 Advantest Corp Pattern generation circuit of semiconductor inspection device
KR0186166B1 (en) * 1995-11-03 1999-04-15 구자홍 Error detecting device for a cd-rom driver
KR100197407B1 (en) * 1995-12-28 1999-06-15 유기범 Communication bus architecture between process in the full electronic switching system
JPH09214456A (en) * 1996-01-30 1997-08-15 Hitachi Ltd Multiplex converter and configuration method for multiplex converter
US6876624B1 (en) 1996-01-30 2005-04-05 Hitachi, Ltd. Multiplex conversion unit
US5944807A (en) * 1996-02-06 1999-08-31 Opti Inc. Compact ISA-bus interface
US5859961A (en) * 1996-05-31 1999-01-12 Townsend And Townsend And Crew Llp Renumbered array architecture for multi-array memories
US5799196A (en) * 1996-07-02 1998-08-25 Gateway 2000, Inc. Method and apparatus of providing power management using a self-powered universal serial bus (USB) device
US5867645A (en) * 1996-09-30 1999-02-02 Compaq Computer Corp. Extended-bus functionality in conjunction with non-extended-bus functionality in the same bus system
US5893089A (en) * 1996-11-15 1999-04-06 Lextron Systems, Inc. Memory with integrated search engine
US8225003B2 (en) 1996-11-29 2012-07-17 Ellis Iii Frampton E Computers and microchips with a portion protected by an internal hardware firewall
US6725250B1 (en) * 1996-11-29 2004-04-20 Ellis, Iii Frampton E. Global network computers
US6167428A (en) 1996-11-29 2000-12-26 Ellis; Frampton E. Personal computer microprocessor firewalls for internet distributed processing
US7926097B2 (en) 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US7805756B2 (en) 1996-11-29 2010-09-28 Frampton E Ellis Microchips with inner firewalls, faraday cages, and/or photovoltaic cells
US7506020B2 (en) 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
US20050180095A1 (en) 1996-11-29 2005-08-18 Ellis Frampton E. Global network computers
US5959466A (en) 1997-01-31 1999-09-28 Actel Corporation Field programmable gate array with mask programmed input and output buffers
US6150837A (en) 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US5805606A (en) * 1997-03-13 1998-09-08 International Business Machines Corporation Cache module fault isolation techniques
US5805610A (en) * 1997-04-28 1998-09-08 Credence Systems Corporation Virtual channel data distribution system for integrated circuit tester
US5925145A (en) * 1997-04-28 1999-07-20 Credence Systems Corporation Integrated circuit tester with cached vector memories
JPH11259372A (en) * 1998-03-09 1999-09-24 Fujitsu Ltd Duplex memory control unit
CA2233789C (en) * 1998-04-01 2013-06-11 Ian Mes Semiconductor memory asynchronous pipeline
WO1999050852A1 (en) * 1998-04-01 1999-10-07 Mosaid Technologies Incorporated Semiconductor memory asynchronous pipeline
US6393020B1 (en) * 1998-05-29 2002-05-21 Honeywell International Inc. Gated multi-drop communication system
KR100308066B1 (en) * 1998-06-29 2001-10-19 박종섭 Data bus line control circuit
US6182178B1 (en) * 1998-06-30 2001-01-30 International Business Machines Corporation Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across a PCI host bridge supporting multiple PCI buses
JP3592547B2 (en) * 1998-09-04 2004-11-24 株式会社ルネサステクノロジ Information processing apparatus and signal transfer method
US6114840A (en) * 1998-09-17 2000-09-05 Integrated Device Technology, Inc. Signal transfer devices having self-timed booster circuits therein
DE19917589C1 (en) * 1999-04-19 2000-11-02 Siemens Ag Random access memory
US6567950B1 (en) 1999-04-30 2003-05-20 International Business Machines Corporation Dynamically replacing a failed chip
DE69938098T2 (en) * 1999-05-05 2009-02-05 Freescale Semiconductors, Inc., Austin Method and system for transmitting data on a serial bus
US6505149B1 (en) * 1999-08-02 2003-01-07 International Business Machines Corporation Method and system for verifying a source-synchronous communication interface of a device
US6646982B1 (en) * 2000-03-07 2003-11-11 Juniper Networks, Inc. Redundant source synchronous busses
US6535986B1 (en) * 2000-03-14 2003-03-18 International Business Machines Corporation Optimizing performance of a clocked system by adjusting clock control settings and clock frequency
US6813353B1 (en) 2000-04-12 2004-11-02 Adtran, Inc. Redundant operation of ring voltage generators utilizing voltage bus segmentation for fault isolation
DE10022479B4 (en) * 2000-05-09 2004-04-08 Infineon Technologies Ag Arrangement for the transmission of signals between a data processing device and a functional unit in a main memory system of a computer system
US7389374B1 (en) 2000-05-17 2008-06-17 Marvell International Ltd. High latency interface between hardware components
US6871251B1 (en) * 2000-05-17 2005-03-22 Marvell International Ltd. High latency interface between hardware components
DE10030158A1 (en) * 2000-06-20 2002-01-03 Bayerische Motoren Werke Ag Control unit with a main microprocessor and with a processor interface to a bus transceiver
JP2002007201A (en) * 2000-06-21 2002-01-11 Nec Corp Memory system, memory interface, and memory chip
JP2002014914A (en) * 2000-06-29 2002-01-18 Toshiba Corp Function block
EP1307884A2 (en) * 2000-07-07 2003-05-07 Mosaid Technologies Incorporated A high speed dram architecture with uniform access latency
US6603323B1 (en) * 2000-07-10 2003-08-05 Formfactor, Inc. Closed-grid bus architecture for wafer interconnect structure
US6636924B1 (en) * 2000-08-17 2003-10-21 Koninklijke Philips Electronics N.V. Multiple port I2C hub
US7281065B1 (en) 2000-08-17 2007-10-09 Marvell International Ltd. Long latency interface protocol
US7050197B1 (en) * 2000-09-14 2006-05-23 Eastman Kodak Company Image processor for high-speed printing applications
JP2002117000A (en) * 2000-10-05 2002-04-19 Hitachi Ltd Memory system and connection member
US6633948B1 (en) * 2000-10-20 2003-10-14 Sun Microsystems, Inc. Stackable dual mode (registered/unbuffered) memory interface cost reduction
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US7215360B2 (en) * 2001-04-06 2007-05-08 Triveni Digital, Inc. Error propagation tree technology
US6859853B2 (en) * 2001-05-01 2005-02-22 Sun Microsystems, Inc. Method and apparatus for driving signals on a bus
US6779131B2 (en) * 2001-05-01 2004-08-17 Sun Microsystems, Inc. Reconfigurable multi-chip modules
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
KR100448709B1 (en) * 2001-11-29 2004-09-13 삼성전자주식회사 Data bus system and method for controlling the same
US6751113B2 (en) * 2002-03-07 2004-06-15 Netlist, Inc. Arrangement of integrated circuits in a memory module
AU2003223892A1 (en) * 2002-03-21 2003-10-08 Pact Xpp Technologies Ag Method and device for data processing
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US6918068B2 (en) * 2002-04-08 2005-07-12 Harris Corporation Fault-tolerant communications system and associated methods
US7113488B2 (en) * 2002-04-24 2006-09-26 International Business Machines Corporation Reconfigurable circular bus
US7046536B2 (en) * 2002-05-29 2006-05-16 Micron Technology, Inc. Programable identification circuitry
US7466160B2 (en) * 2002-11-27 2008-12-16 Inapac Technology, Inc. Shared memory bus architecture for system with processor and memory units
US7362697B2 (en) * 2003-01-09 2008-04-22 International Business Machines Corporation Self-healing chip-to-chip interface
DE602004007532T2 (en) * 2003-09-04 2008-03-20 Nxp B.V. INTEGRATED CIRCUIT AND METHOD FOR CACHE MICROPOSITION
TWI266191B (en) * 2003-09-05 2006-11-11 Realtek Semiconductor Corp Clock pulse adjusting device and method thereof
US8775112B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for increasing die yield
US8732644B1 (en) 2003-09-15 2014-05-20 Nvidia Corporation Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits
US8775997B2 (en) * 2003-09-15 2014-07-08 Nvidia Corporation System and method for testing and configuring semiconductor functional circuits
WO2005029329A2 (en) * 2003-09-15 2005-03-31 Nvidia Corporation A system and method for testing and configuring semiconductor functional circuits
US7623894B2 (en) * 2003-10-09 2009-11-24 Freescale Semiconductor, Inc. Cellular modem processing
US20050099832A1 (en) * 2003-11-12 2005-05-12 Agere Systems, Incorporated System and method for securing an integrated circuit as against subsequent reprogramming
US8711161B1 (en) 2003-12-18 2014-04-29 Nvidia Corporation Functional component compensation reconfiguration system and method
FR2864320A1 (en) * 2003-12-19 2005-06-24 St Microelectronics Sa NEW FIFO MEMORY ARCHITECTURE AND METHOD FOR MANAGING SUCH A MEMORY.
JP2005190036A (en) * 2003-12-25 2005-07-14 Hitachi Ltd Storage controller and control method for storage controller
KR100598097B1 (en) * 2003-12-29 2006-07-07 삼성전자주식회사 Dual chip package
US20050018495A1 (en) * 2004-01-29 2005-01-27 Netlist, Inc. Arrangement of integrated circuits in a memory module
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US20060045123A1 (en) * 2004-07-14 2006-03-02 Sundar Gopalan Method of forming a communication system, a communication card with increased bandwidth, and a method of forming a communication device
US7389375B2 (en) * 2004-07-30 2008-06-17 International Business Machines Corporation System, method and storage medium for a multi-mode memory buffer device
US7539800B2 (en) * 2004-07-30 2009-05-26 International Business Machines Corporation System, method and storage medium for providing segment level sparing
US7224595B2 (en) * 2004-07-30 2007-05-29 International Business Machines Corporation 276-Pin buffered memory module with enhanced fault tolerance
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US20060036826A1 (en) * 2004-07-30 2006-02-16 International Business Machines Corporation System, method and storage medium for providing a bus speed multiplier
DE102004041731B3 (en) * 2004-08-28 2006-03-16 Infineon Technologies Ag Memory module for providing a storage capacity
US8723231B1 (en) 2004-09-15 2014-05-13 Nvidia Corporation Semiconductor die micro electro-mechanical switch management system and method
US8711156B1 (en) 2004-09-30 2014-04-29 Nvidia Corporation Method and system for remapping processing elements in a pipeline of a graphics processing unit
US7263027B2 (en) * 2004-10-14 2007-08-28 Broadcom Corporation Integrated circuit chip having non-volatile on-chip memories for providing programmable functions and features
KR100634439B1 (en) * 2004-10-26 2006-10-16 삼성전자주식회사 Fuse_free circuit, fuse_free semiconductor ic and non_volatile memory device, and fuse_free method
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7277988B2 (en) 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7395476B2 (en) 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7512762B2 (en) * 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7299313B2 (en) * 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US20060095620A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation System, method and storage medium for merging bus data in a memory subsystem
US8256147B2 (en) 2004-11-22 2012-09-04 Frampton E. Eliis Devices with internal flexibility sipes, including siped chambers for footwear
US20060164909A1 (en) * 2005-01-24 2006-07-27 International Business Machines Corporation System, method and storage medium for providing programmable delay chains for a memory system
US7332976B1 (en) * 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7380161B2 (en) * 2005-02-11 2008-05-27 International Business Machines Corporation Switching a defective signal line with a spare signal line without shutting down the computer system
US9582449B2 (en) 2005-04-21 2017-02-28 Violin Memory, Inc. Interconnection system
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
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US8112655B2 (en) 2005-04-21 2012-02-07 Violin Memory, Inc. Mesosynchronous data bus apparatus and method of data transmission
KR101331569B1 (en) 2005-04-21 2013-11-21 바이올린 메모리 인코포레이티드 Interconnection System
US8021193B1 (en) * 2005-04-25 2011-09-20 Nvidia Corporation Controlled impedance display adapter
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US20060253726A1 (en) * 2005-05-06 2006-11-09 Vikas Kukshya Fault-tolerant architecture for a distributed control system
US7793029B1 (en) 2005-05-17 2010-09-07 Nvidia Corporation Translation device apparatus for configuring printed circuit board connectors
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US9459960B2 (en) * 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US7478259B2 (en) * 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
GB2432759B (en) * 2005-11-26 2008-07-02 Wolfson Ltd Audio device
GB2432765B (en) * 2005-11-26 2008-04-30 Wolfson Microelectronics Plc Audio device
GB2443990B (en) * 2005-11-26 2009-01-28 Wolfson Microelectronics Plc Audio device
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US8417838B2 (en) * 2005-12-12 2013-04-09 Nvidia Corporation System and method for configurable digital communication
US8412872B1 (en) 2005-12-12 2013-04-02 Nvidia Corporation Configurable GPU and method for graphics processing using a configurable GPU
US9098641B1 (en) * 2006-01-30 2015-08-04 Cypress Semiconductor Corporation Configurable bus
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
WO2007130640A2 (en) * 2006-05-04 2007-11-15 Inapac Technology, Inc. Memory device including multiplexed inputs
US7636813B2 (en) 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7640386B2 (en) * 2006-05-24 2009-12-29 International Business Machines Corporation Systems and methods for providing memory modules with multiple hub devices
US7594055B2 (en) * 2006-05-24 2009-09-22 International Business Machines Corporation Systems and methods for providing distributed technology independent memory controllers
US7584336B2 (en) 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US20070297146A1 (en) * 2006-06-27 2007-12-27 Campbell John E Data Communications with an Integrated Circuit
KR100809690B1 (en) * 2006-07-14 2008-03-07 삼성전자주식회사 Semiconductor memory device capable of low frequency test operation and test method of the same
US7493439B2 (en) * 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
US7669086B2 (en) * 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7581073B2 (en) 2006-08-09 2009-08-25 International Business Machines Corporation Systems and methods for providing distributed autonomous power management in a memory system
US7587559B2 (en) * 2006-08-10 2009-09-08 International Business Machines Corporation Systems and methods for memory module power management
US7539842B2 (en) 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7490217B2 (en) 2006-08-15 2009-02-10 International Business Machines Corporation Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
US7739545B2 (en) * 2006-09-13 2010-06-15 International Business Machines Corporation System and method to support use of bus spare wires in connection modules
WO2008042403A2 (en) * 2006-10-03 2008-04-10 Inapac Technologies, Inc. Memory accessing circuit system
US7539811B2 (en) * 2006-10-05 2009-05-26 Unity Semiconductor Corporation Scaleable memory systems using third dimension memory
US7870459B2 (en) * 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US8028186B2 (en) 2006-10-23 2011-09-27 Violin Memory, Inc. Skew management in an interconnection system
US7477522B2 (en) * 2006-10-23 2009-01-13 International Business Machines Corporation High density high reliability memory module with a fault tolerant address and command bus
US8012761B2 (en) * 2006-12-14 2011-09-06 Kimberly-Clark Worldwide, Inc. Detection of formaldehyde in urine samples
US7935538B2 (en) * 2006-12-15 2011-05-03 Kimberly-Clark Worldwide, Inc. Indicator immobilization on assay devices
US7846383B2 (en) * 2006-12-15 2010-12-07 Kimberly-Clark Worldwide, Inc. Lateral flow assay device and absorbent article containing same
US7721140B2 (en) * 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7603526B2 (en) * 2007-01-29 2009-10-13 International Business Machines Corporation Systems and methods for providing dynamic memory pre-fetch
US7606988B2 (en) 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8040266B2 (en) * 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US7996710B2 (en) 2007-04-25 2011-08-09 Hewlett-Packard Development Company, L.P. Defect management for a semiconductor memory system
US7694093B2 (en) 2007-04-27 2010-04-06 Hewlett-Packard Development Company, L.P. Memory module and method for mirroring data by rank
US20090027081A1 (en) * 2007-07-25 2009-01-29 International Business Machines Corporation Eight Transistor Tri-State Driver Implementing Cascade Structures To Reduce Peak Current Consumption, Layout Area and Slew Rate
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US8724483B2 (en) 2007-10-22 2014-05-13 Nvidia Corporation Loopback configuration for bi-directional interfaces
US20090119114A1 (en) * 2007-11-02 2009-05-07 David Alaniz Systems and Methods for Enabling Customer Service
US8453019B2 (en) * 2007-11-06 2013-05-28 Nvidia Corporation Method and system for a free running strobe tolerant interface
US8125796B2 (en) 2007-11-21 2012-02-28 Frampton E. Ellis Devices with faraday cages and internal flexibility sipes
US8467486B2 (en) * 2007-12-14 2013-06-18 Mosaid Technologies Incorporated Memory controller with flexible data alignment to clock
US8781053B2 (en) * 2007-12-14 2014-07-15 Conversant Intellectual Property Management Incorporated Clock reproducing and timing method in a system having a plurality of devices
US20110191646A1 (en) * 2008-04-04 2011-08-04 Arizona Board of Regents, a body Corporate of the State of Arizona, Acting for and Fault-and Variation-Tolerant Energy - and Area-Efficient Links for Network-on-Chips
US8234540B2 (en) 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8144442B1 (en) * 2008-07-03 2012-03-27 Google Inc. Power protection in a multi-level power hierarchy
WO2010013437A1 (en) * 2008-07-30 2010-02-04 パナソニック株式会社 Controller with error correction function, recording device with error correction function, and system with error correction function
US7925939B2 (en) * 2008-09-26 2011-04-12 Macronix International Co., Ltd Pre-code device, and pre-code system and pre-coding method thererof
US20100290948A1 (en) * 2009-05-15 2010-11-18 Xuedong Song Absorbent articles capable of indicating the presence of urinary tract infections
US8294396B2 (en) * 2009-07-13 2012-10-23 Hamilton Sundstrand Space Systems International, Inc. Compact FPGA-based digital motor controller
US8464145B2 (en) * 2009-07-16 2013-06-11 Cypress Semiconductor Corporation Serial interface devices, systems and methods
CN101615145B (en) * 2009-07-24 2011-12-07 中兴通讯股份有限公司 Method and device for improving reliability of data caching of memorizer
US8995333B2 (en) * 2009-07-29 2015-03-31 Qualcomm Incorporated Synchronous interface for multi-radio coexistence manager
JP5478625B2 (en) * 2009-08-18 2014-04-23 パナソニック株式会社 Semiconductor integrated circuit
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
JP5314612B2 (en) * 2010-02-04 2013-10-16 ルネサスエレクトロニクス株式会社 Semiconductor memory device
US9331869B2 (en) * 2010-03-04 2016-05-03 Nvidia Corporation Input/output request packet handling techniques by a device specific kernel mode driver
WO2012024699A1 (en) 2010-08-20 2012-02-23 Mosys, Inc. Data synchronization for circuit resources without using a resource buffer
US8615690B2 (en) * 2011-05-05 2013-12-24 Mediatek Inc. Controller of memory device and method for operating the same
US9183082B2 (en) * 2013-01-29 2015-11-10 Qualcomm Incorporated Error detection and correction of one-time programmable elements
US9189438B2 (en) 2013-03-13 2015-11-17 Qualcomm Incorporated Method and apparatus for dynamic power saving with flexible gating in a cross-bar architecture
US9454419B2 (en) * 2013-07-18 2016-09-27 Advanced Micro Devices, Inc. Partitionable data bus
US9244799B2 (en) * 2014-01-06 2016-01-26 International Business Machines Corporation Bus interface optimization by selecting bit-lanes having best performance margins
US9934179B2 (en) 2015-02-17 2018-04-03 Mediatek Inc. Wafer-level package with at least one input/output port connected to at least one management bus
US10152445B2 (en) 2015-02-17 2018-12-11 Mediatek Inc. Signal count reduction between semiconductor dies assembled in wafer-level package
KR102339780B1 (en) * 2015-10-29 2021-12-15 삼성전자주식회사 Semiconductor device having chip ID generartation circuit
US10860786B2 (en) 2017-06-01 2020-12-08 Global Tel*Link Corporation System and method for analyzing and investigating communication data from a controlled environment
US10277268B2 (en) * 2017-06-02 2019-04-30 Psemi Corporation Method and apparatus for switching of shunt and through switches of a transceiver
CN108536017B (en) * 2018-05-03 2021-01-08 山东师范大学 Random distribution interconnection system cooperation fault-tolerant control method based on dynamic feedback control
WO2020051921A1 (en) * 2018-09-15 2020-03-19 Intel Corporation Runtime cell row replacement in a memory
US11070218B2 (en) * 2019-04-17 2021-07-20 Texas Instruments Incorporated Real time counter-based method for the determination and measurement of frequency lock time in phase-locked loops
US11508375B2 (en) 2019-07-03 2022-11-22 Samsung Electronics Co., Ltd. Electronic apparatus including control command identification tool generated by using a control command identified by voice recognition identifying a control command corresponding to a user voice and control method thereof
US11036581B2 (en) 2019-08-08 2021-06-15 Apple Inc. Non-volatile memory control circuit with parallel error detection and correction
US11217323B1 (en) * 2020-09-02 2022-01-04 Stmicroelectronics International N.V. Circuit and method for capturing and transporting data errors
US11698833B1 (en) 2022-01-03 2023-07-11 Stmicroelectronics International N.V. Programmable signal aggregator

Citations (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3585378A (en) * 1969-06-30 1971-06-15 Ibm Error detection scheme for memories
US3651473A (en) * 1970-03-27 1972-03-21 Burroughs Corp Expandable interlock exchange for multiprocessing systems
US3761879A (en) * 1971-05-12 1973-09-25 Philips Corp Bus transport system for selection information and data
US4092733A (en) * 1976-05-07 1978-05-30 Mcdonnell Douglas Corporation Electrically alterable interconnection
US4227045A (en) * 1978-06-28 1980-10-07 Honeywell Inc. Data processing protocol system
US4319356A (en) * 1979-12-19 1982-03-09 Ncr Corporation Self-correcting memory system
US4605928A (en) * 1983-10-24 1986-08-12 International Business Machines Corporation Fault-tolerant array of cross-point switching matrices
US4615017A (en) * 1983-09-19 1986-09-30 International Business Machines Corporation Memory controller with synchronous or asynchronous interface
US4627058A (en) * 1984-01-27 1986-12-02 Pioneer Electronic Corporation Code error correction method
US4639861A (en) * 1983-01-21 1987-01-27 Cselt Centro Studi E Laboratori Telecomunicazioni S.P.A. Interface controlling bidirectional data transfer between a synchronous and an asynchronous bus
US4646298A (en) * 1984-05-01 1987-02-24 Texas Instruments Incorporated Self testing data processing system with system test master arbitration
US4653050A (en) * 1984-12-03 1987-03-24 Trw Inc. Fault-tolerant memory system
US4663758A (en) * 1984-08-28 1987-05-05 Cselt-Centro Studi E Laboratori Telecomunicazioni Spa Wideband integrated services local communication system
US4667328A (en) * 1985-04-29 1987-05-19 Mieczyslaw Mirowski Clocking circuit with back-up clock source
US4719621A (en) * 1985-07-15 1988-01-12 Raytheon Company Packet fastbus
US4872137A (en) * 1985-11-21 1989-10-03 Jennings Iii Earle W Reprogrammable control circuit
US4881232A (en) * 1987-02-10 1989-11-14 Sony Corporation Method and apparatus for error correction
US4926382A (en) * 1987-11-25 1990-05-15 Kabushiki Kaisha Toshiba Divided bit line type dynamic random access memory with charging/discharging current suppressor
US4943966A (en) * 1988-04-08 1990-07-24 Wang Laboratories, Inc. Memory diagnostic apparatus and method
US4955020A (en) * 1989-06-29 1990-09-04 Infotron Systems Corporation Bus architecture for digital communications
US4970724A (en) * 1988-12-22 1990-11-13 Hughes Aircraft Company Redundancy and testing techniques for IC wafers
US4984192A (en) * 1988-12-02 1991-01-08 Ultrasystems Defense Inc. Programmable state machines connectable in a reconfiguration switching network for performing real-time data processing
US4985895A (en) * 1988-11-14 1991-01-15 Wegener Communications, Inc. Remote controlled receiving system apparatus and method
US5077737A (en) * 1989-08-18 1991-12-31 Micron Technology, Inc. Method and apparatus for storing digital data in off-specification dynamic random access memory devices
US5077738A (en) * 1988-12-30 1991-12-31 Intel Corporation Test mode enable scheme for memory
US5103424A (en) * 1990-03-26 1992-04-07 Trw Inc. Memory column interface with fault tolerance
US5111434A (en) * 1988-12-20 1992-05-05 Ltd. SamSung Electronics Co. Semiconductor memory device
US5133064A (en) * 1987-04-27 1992-07-21 Hitachi, Ltd. Data processing system generating clock signal from an input clock, phase locked to the input clock and used for clocking logic devices
US5159273A (en) * 1990-09-28 1992-10-27 Hughes Aircraft Company Tri-state bus driver to support reconfigurable fault tolerant logic
US5187779A (en) * 1989-08-11 1993-02-16 Micral, Inc. Memory controller with synchronous processor bus and asynchronous i/o bus interfaces
US5218686A (en) * 1989-11-03 1993-06-08 Compaq Computer Corporation Combined synchronous and asynchronous memory controller

Family Cites Families (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3835530A (en) * 1967-06-05 1974-09-17 Texas Instruments Inc Method of making semiconductor devices
US3579196A (en) * 1969-02-14 1971-05-18 Bunker Ramo Data storage and display system
FR2050036A5 (en) * 1969-06-06 1971-03-26 Licentia Gmbh
US3766529A (en) * 1972-03-17 1973-10-16 Racal Thermionic Ltd Computer-compatible tape and reading system therefor
CA948705A (en) * 1972-07-28 1974-06-04 Robert C. Cook Method for making an integrated circuit apparatus
US3849872A (en) * 1972-10-24 1974-11-26 Ibm Contacting integrated circuit chip terminal through the wafer kerf
US3803562A (en) * 1972-11-21 1974-04-09 Honeywell Inf Systems Semiconductor mass memory
US3803560A (en) 1973-01-03 1974-04-09 Honeywell Inf Systems Technique for detecting memory failures and to provide for automatically for reconfiguration of the memory modules of a memory system
GB1461245A (en) * 1973-01-28 1977-01-13 Hawker Siddeley Dynamics Ltd Reliability of random access memory systems
US3859640A (en) 1973-10-01 1975-01-07 Sperry Rand Corp Concurrent data address and refresh control for a volatile lsi memory system
US4038648A (en) * 1974-06-03 1977-07-26 Chesley Gilman D Self-configurable circuit structure for achieving wafer scale integration
US4052698A (en) * 1975-03-17 1977-10-04 Burroughs Corporation Multi-parallel-channel error checking
US4007452A (en) * 1975-07-28 1977-02-08 Intel Corporation Wafer scale integration system
JPS5230095A (en) 1975-09-03 1977-03-07 Hitachi Ltd Washer for medical appliances and like
US4071887A (en) * 1975-10-30 1978-01-31 Motorola, Inc. Synchronous serial data adaptor
US4063225A (en) * 1976-03-08 1977-12-13 Rca Corporation Memory cell and array
US4105995A (en) * 1976-06-16 1978-08-08 Hewlett-Packard Company Digitally controlled transmission impairment measuring apparatus
GB1569298A (en) * 1976-06-25 1980-06-11 Knox J H Intercommunication systems
US4200916A (en) * 1976-07-01 1980-04-29 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4107785A (en) * 1976-07-01 1978-08-15 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4188670A (en) * 1978-01-11 1980-02-12 Mcdonnell Douglas Corporation Associative interconnection circuit
US4215430A (en) * 1978-09-26 1980-07-29 Control Data Corporation Fast synchronization circuit for phase locked looped decoder
US4236087A (en) * 1978-10-30 1980-11-25 Sperry Corporation Programmable bus driver isolation
FR2450008A1 (en) * 1979-02-21 1980-09-19 Portejoie Jean Francois CIRCUIT FOR SYNCHRONIZING PLESIOCHRONOUS DIGITAL SIGNALS BY JUSTIFICATION
US4438352A (en) 1980-06-02 1984-03-20 Xerox Corporation TTL Compatible CMOS input buffer
US4329685A (en) * 1980-06-09 1982-05-11 Burroughs Corporation Controlled selective disconnect system for wafer scale integrated circuits
US4345328A (en) * 1980-06-30 1982-08-17 Sperry Corporation ECC Check bit generation using through checking parity bits
US4379327A (en) * 1980-07-21 1983-04-05 Motorola, Inc. Universal interface circuit for synchronous and asynchronous buses
US4407014A (en) * 1980-10-06 1983-09-27 Honeywell Information Systems Inc. Communications subsystem having a direct connect clock
US4467400A (en) * 1981-01-16 1984-08-21 Burroughs Corporation Wafer scale integrated circuit
US4458297A (en) * 1981-01-16 1984-07-03 Mosaic Systems, Inc. Universal interconnection substrate
US4494196A (en) * 1981-05-19 1985-01-15 Wang Laboratories, Inc. Controller for peripheral data storage units
US4400794A (en) * 1981-11-17 1983-08-23 Burroughs Corporation Memory mapping unit
US4414480A (en) 1981-12-17 1983-11-08 Storage Technology Partners CMOS Circuit using transmission line interconnections
CA1191022A (en) * 1981-12-29 1985-07-30 Eiichi Asada Resistor compositions and resistors produced therefrom
JPS594798A (en) 1982-06-30 1984-01-11 日本基礎技術株式会社 Pipe propelling apparatus
JPS59180871A (en) 1983-03-31 1984-10-15 Fujitsu Ltd Semiconductor memory device
JPS59200326A (en) 1983-04-26 1984-11-13 Nec Corp Data processing system
US4612613A (en) 1983-05-16 1986-09-16 Data General Corporation Digital data bus system for connecting a controller and disk drives
JPS59212962A (en) * 1983-05-18 1984-12-01 Mitsubishi Electric Corp Multi-element processor
US4649384A (en) * 1983-10-07 1987-03-10 Dialogic Systems Corp. Method and apparatus for fault tolerant serial communication of digital information
US4639933A (en) * 1983-12-14 1987-01-27 General Electric Company Steering logic circuit for a digital data transceiver
US4897818A (en) * 1983-12-30 1990-01-30 Texas Instruments Incorporated Dual-port memory with inhibited random access during transfer cycles
JPS60186940A (en) 1984-01-27 1985-09-24 Pioneer Electronic Corp Code error correction system
US4703436A (en) * 1984-02-01 1987-10-27 Inova Microelectronics Corporation Wafer level integration technique
US4599722A (en) * 1984-04-03 1986-07-08 Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee Apparatus for encoding and decoding digital data to permit error correction
US4637073A (en) * 1984-06-25 1987-01-13 Raytheon Company Transmit/receive switch
US4796233A (en) * 1984-10-19 1989-01-03 Fujitsu Limited Bipolar-transistor type semiconductor memory device having redundancy configuration
US4736365A (en) * 1984-10-26 1988-04-05 Dialogic Systems Corporation Method and apparatus for controlling access to an asynchronous communication network
JPS61160898A (en) 1985-01-05 1986-07-21 Fujitsu Ltd Semiconductor memory device
JPH0648822B2 (en) * 1985-03-04 1994-06-22 株式会社日立製作所 Abnormality handling method in digital transmission system
US4630355A (en) * 1985-03-08 1986-12-23 Energy Conversion Devices, Inc. Electric circuits having repairable circuit lines and method of making the same
US4707808A (en) * 1985-04-26 1987-11-17 Rockwell International Corporation Small size, high speed GaAs data latch
US5206832A (en) * 1985-06-17 1993-04-27 Hitachi, Ltd. Semiconductor memory device
EP0209306B1 (en) * 1985-07-09 1992-06-10 Nec Corporation Phase-locked clock regeneration circuit for digital transmission systems
JPS6281745A (en) * 1985-10-05 1987-04-15 Fujitsu Ltd Lsi semiconductor device in wafer scale and manufacture thereof
GB2181870B (en) * 1985-10-14 1988-11-23 Anamartic Ltd Control circuit for chained circuit modules
US4906987A (en) * 1985-10-29 1990-03-06 Ohio Associated Enterprises, Inc. Printed circuit board system and method
US4748588A (en) 1985-12-18 1988-05-31 International Business Machines Corp. Fast data synchronizer
JP2569478B2 (en) * 1986-02-19 1997-01-08 ソニー株式会社 Data recording device
US4876700A (en) * 1986-04-16 1989-10-24 E. F. Johnson Company Data demodulator
US4680780A (en) * 1986-05-01 1987-07-14 Tektronix, Inc. Clock recovery digital phase-locked loop
US4890224A (en) * 1986-06-27 1989-12-26 Hewlett-Packard Company Method and apparatus for fault tolerant communication within a computing system
GB8616852D0 (en) 1986-07-10 1986-08-20 Hughes Microelectronics Ltd Electronic counter
US4782457A (en) 1986-08-18 1988-11-01 Texas Instruments Incorporated Barrel shifter using bit reversers and having automatic normalization
US4785415A (en) 1986-08-29 1988-11-15 Hewlett-Packard Company Digital data buffer and variable shift register
US4866508A (en) * 1986-09-26 1989-09-12 General Electric Company Integrated circuit packaging configuration for rapid customized design and unique test capability
US4937203A (en) * 1986-09-26 1990-06-26 General Electric Company Method and configuration for testing electronic circuits and integrated circuit chips using a removable overlay layer
US4884122A (en) * 1988-08-05 1989-11-28 General Electric Company Method and configuration for testing electronic circuits and integrated circuit chips using a removable overlay layer
JPH0661066B2 (en) * 1986-10-20 1994-08-10 株式会社日立製作所 Storage controller
DE3742514A1 (en) 1986-12-24 1988-07-07 Mitsubishi Electric Corp VARIABLE DELAY CIRCUIT
JP2690083B2 (en) 1987-07-22 1997-12-10 株式会社日立製作所 Semiconductor integrated circuit device
JPH0693216B2 (en) 1987-04-27 1994-11-16 株式会社日立製作所 Information processing equipment
US4855613A (en) * 1987-05-08 1989-08-08 Mitsubishi Denki Kabushiki Kaisha Wafer scale integration semiconductor device having improved chip power-supply connection arrangement
US5008882A (en) 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
US4864496A (en) 1987-09-04 1989-09-05 Digital Equipment Corporation Bus adapter module for interconnecting busses in a multibus computer system
US5179687A (en) * 1987-09-26 1993-01-12 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device containing a cache and an operation method thereof
US4860285A (en) 1987-10-21 1989-08-22 Advanced Micro Devices, Inc. Master/slave synchronizer
JPH01109599A (en) 1987-10-22 1989-04-26 Nec Corp Writable and erasable semiconductor memory device
US5226147A (en) * 1987-11-06 1993-07-06 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device for simple cache system
JPH01251738A (en) * 1988-03-31 1989-10-06 Toshiba Corp Standard cell
US5055897A (en) * 1988-07-27 1991-10-08 Intel Corporation Semiconductor cell for neural network and the like
US5267200A (en) 1988-08-31 1993-11-30 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device and operating method thereof with transfer transistor used as a holding means
JP2633645B2 (en) 1988-09-13 1997-07-23 株式会社東芝 Semiconductor memory device
US5001712A (en) * 1988-10-17 1991-03-19 Unisys Corporation Diagnostic error injection for a synchronous bus system
US4912633A (en) * 1988-10-24 1990-03-27 Ncr Corporation Hierarchical multiple bus computer architecture
US5262986A (en) * 1989-01-31 1993-11-16 Sharp Kabushiki Kaisha Semiconductor memory device with volatile memory and non-volatile memory in latched arrangement
US5276893A (en) * 1989-02-08 1994-01-04 Yvon Savaria Parallel microprocessor architecture
JP2796329B2 (en) * 1989-02-08 1998-09-10 株式会社日立製作所 Display memory and image processing apparatus having the same
US4974048A (en) * 1989-03-10 1990-11-27 The Boeing Company Integrated circuit having reroutable conductive paths
JPH02246099A (en) * 1989-03-20 1990-10-01 Hitachi Ltd Large scale semiconductor integrated circuit device and defect remedy thereof
EP0389203A3 (en) * 1989-03-20 1993-05-26 Fujitsu Limited Semiconductor memory device having information indicative of presence of defective memory cells
US5043820A (en) * 1989-03-27 1991-08-27 Hughes Aircraft Company Focal plane array readout employing one capacitive feedback transimpedance amplifier for each column
US5020020A (en) * 1989-04-07 1991-05-28 Digital Equipment Corporation Computer interconnect system with transmit-abort function
US5257235A (en) * 1989-04-25 1993-10-26 Kabushiki Kaisha Toshiba Semiconductor memory device having serial access mode
US4954854A (en) 1989-05-22 1990-09-04 International Business Machines Corporation Cross-point lightly-doped drain-source trench transistor and fabrication process therefor
JP2837433B2 (en) * 1989-06-05 1998-12-16 三菱電機株式会社 Bad bit relief circuit in semiconductor memory device
US5051938A (en) 1989-06-23 1991-09-24 Hyduke Stanley M Simulation of selected logic circuit designs
JPH0329342A (en) * 1989-06-26 1991-02-07 Toshiba Corp Semiconductor device
US5003558A (en) 1989-10-30 1991-03-26 International Business Machines Corporation Data synchronizing buffers for data processing channels
US5125006A (en) * 1989-12-08 1992-06-23 Standard Microsystems Corporation Local area network high impedance transceiver
US5161152A (en) * 1989-12-15 1992-11-03 Alcatel Network Systems, Inc. High-speed synchronous transmission line access terminal
US5021985A (en) * 1990-01-19 1991-06-04 Weitek Corporation Variable latency method and apparatus for floating-point coprocessor
DE69123987T2 (en) 1990-01-31 1997-04-30 Hewlett Packard Co Push operation for microprocessor with external system memory
JPH03227547A (en) * 1990-02-01 1991-10-08 Mitsubishi Electric Corp Semiconductor device
US5128737A (en) * 1990-03-02 1992-07-07 Silicon Dynamics, Inc. Semiconductor integrated circuit fabrication yield improvements
US5118975A (en) * 1990-03-05 1992-06-02 Thinking Machines Corporation Digital clock buffer circuit providing controllable delay
US5252507A (en) * 1990-03-30 1993-10-12 Tactical Fabs, Inc. Very high density wafer scale device architecture
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Integrated circuit i/o using a high performance bus interface
US5243703A (en) * 1990-04-18 1993-09-07 Rambus, Inc. Apparatus for synchronously generating clock signals in a data processing system
US5145645A (en) 1990-06-15 1992-09-08 Spectral Sciences, Inc. Conductive polymer selective species sensor
US5261077A (en) * 1990-06-29 1993-11-09 Digital Equipment Corporation Configurable data path arrangement for resolving data type incompatibility
JPH0469894A (en) * 1990-07-09 1992-03-05 Fujitsu Ltd Semiconductor storage device
US5359722A (en) * 1990-07-23 1994-10-25 International Business Machines Corporation Method for shortening memory fetch time relative to memory store time and controlling recovery in a DRAM
US5278967A (en) * 1990-08-31 1994-01-11 International Business Machines Corporation System for providing gapless data transfer from page-mode dynamic random access memories
JPH04119597A (en) * 1990-09-07 1992-04-21 Mitsubishi Electric Corp Sense amplifier for nonvolatile semiconductor storage device
US5214657A (en) * 1990-09-21 1993-05-25 Micron Technology, Inc. Method for fabricating wafer-scale integration wafers and method for utilizing defective wafer-scale integration wafers
US5243623A (en) * 1990-09-25 1993-09-07 National Semiconductor Corporation Switchable multi-mode transceiver interface device
JP3019869B2 (en) 1990-10-16 2000-03-13 富士通株式会社 Semiconductor memory
US5131015A (en) * 1990-10-22 1992-07-14 Cirrus Logic, Inc. Combined BAUD rate generator and digital phase locked loop
US5204836A (en) * 1990-10-30 1993-04-20 Sun Microsystems, Inc. Method and apparatus for implementing redundancy in parallel memory structures
GB9023867D0 (en) 1990-11-02 1990-12-12 Mv Ltd Improvements relating to a fault tolerant storage system
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5247522A (en) * 1990-11-27 1993-09-21 Digital Equipment Corporation Fault tolerant bus
US5168331A (en) 1991-01-31 1992-12-01 Siliconix Incorporated Power metal-oxide-semiconductor field effect transistor
US5317540A (en) 1991-03-14 1994-05-31 Kabushiki Kaisha Toshiba Semiconductor memory device
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
JP3185248B2 (en) 1991-05-28 2001-07-09 日本電気株式会社 Sense amplifier circuit
EP0520634A1 (en) 1991-06-21 1992-12-30 The Whitaker Corporation Communications medium having a dual active/passive bus
US5265216A (en) * 1991-06-28 1993-11-23 Digital Equipment Corporation High performance asynchronous bus interface
EP0523885A1 (en) * 1991-07-15 1993-01-20 National Semiconductor Corporation Phase detector for very high frequency clock and data recovery circuits
US5278800A (en) 1991-10-31 1994-01-11 International Business Machines Corporation Memory system and unique memory chip allowing island interlace
DE69226150T2 (en) 1991-11-05 1999-02-18 Hsu Fu Chieh Redundancy architecture for circuit module
JP2724932B2 (en) 1991-12-03 1998-03-09 三菱電機株式会社 Dual port memory
US5465223A (en) 1992-01-09 1995-11-07 Oki Electric Industry Co., Ltd. Barrel shifter
EP0895162A3 (en) * 1992-01-22 1999-11-10 Enhanced Memory Systems, Inc. Enhanced dram with embedded registers
JPH07506921A (en) * 1992-03-06 1995-07-27 ランバス・インコーポレーテッド Cache prefetching to minimize main memory access time and cache memory size in computer systems
US5355391A (en) * 1992-03-06 1994-10-11 Rambus, Inc. High speed bus system
JPH05276004A (en) 1992-03-30 1993-10-22 Mitsubishi Electric Corp Output circuit
US5254883A (en) * 1992-04-22 1993-10-19 Rambus, Inc. Electrical current source circuitry for a bus
US5297092A (en) * 1992-06-03 1994-03-22 Mips Computer Systems, Inc. Sense amp for bit line sensing and data latching
US5268639A (en) * 1992-06-05 1993-12-07 Rambus, Inc. Testing timing parameters of high speed integrated circuit devices
US5227677A (en) 1992-06-10 1993-07-13 International Business Machines Corporation Zero power transmission line terminator
WO1994003901A1 (en) * 1992-08-10 1994-02-17 Monolithic System Technology, Inc. Fault-tolerant, high-speed bus system and bus interface for wafer-scale integration
US5329174A (en) * 1992-10-23 1994-07-12 Xilinx, Inc. Circuit for forcing known voltage on unconnected pads of an integrated circuit
CA2106271C (en) 1993-01-11 2004-11-30 Joseph H. Steinmetz Single and multistage stage fifo designs for data transfer synchronizers
US5311083A (en) 1993-01-25 1994-05-10 Standard Microsystems Corporation Very low voltage inter-chip CMOS logic signaling for large numbers of high-speed output lines each associated with large capacitive loads
JP3201551B2 (en) 1993-05-31 2001-08-20 日本電信電話株式会社 Shaping circuit
US5402388A (en) * 1993-12-16 1995-03-28 Mosaid Technologies Incorporated Variable latency scheme for synchronous memory
US5434996A (en) * 1993-12-28 1995-07-18 Intel Corporation Synchronous/asynchronous clock net with autosense
US5561630A (en) * 1995-09-28 1996-10-01 International Business Machines Coporation Data sense circuit for dynamic random access memories
JP3204957B2 (en) 1999-12-22 2001-09-04 株式会社ナムコ Game device, game processing method, and recording medium
JP3502845B2 (en) 2001-03-21 2004-03-02 株式会社柏原製袋 Shut-off valve

Patent Citations (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3585378A (en) * 1969-06-30 1971-06-15 Ibm Error detection scheme for memories
US3651473A (en) * 1970-03-27 1972-03-21 Burroughs Corp Expandable interlock exchange for multiprocessing systems
US3761879A (en) * 1971-05-12 1973-09-25 Philips Corp Bus transport system for selection information and data
US4092733A (en) * 1976-05-07 1978-05-30 Mcdonnell Douglas Corporation Electrically alterable interconnection
US4227045A (en) * 1978-06-28 1980-10-07 Honeywell Inc. Data processing protocol system
US4319356A (en) * 1979-12-19 1982-03-09 Ncr Corporation Self-correcting memory system
US4639861A (en) * 1983-01-21 1987-01-27 Cselt Centro Studi E Laboratori Telecomunicazioni S.P.A. Interface controlling bidirectional data transfer between a synchronous and an asynchronous bus
US4615017A (en) * 1983-09-19 1986-09-30 International Business Machines Corporation Memory controller with synchronous or asynchronous interface
US4605928A (en) * 1983-10-24 1986-08-12 International Business Machines Corporation Fault-tolerant array of cross-point switching matrices
US4627058A (en) * 1984-01-27 1986-12-02 Pioneer Electronic Corporation Code error correction method
US4646298A (en) * 1984-05-01 1987-02-24 Texas Instruments Incorporated Self testing data processing system with system test master arbitration
US4663758A (en) * 1984-08-28 1987-05-05 Cselt-Centro Studi E Laboratori Telecomunicazioni Spa Wideband integrated services local communication system
US4653050A (en) * 1984-12-03 1987-03-24 Trw Inc. Fault-tolerant memory system
US4667328A (en) * 1985-04-29 1987-05-19 Mieczyslaw Mirowski Clocking circuit with back-up clock source
US4719621A (en) * 1985-07-15 1988-01-12 Raytheon Company Packet fastbus
US4872137A (en) * 1985-11-21 1989-10-03 Jennings Iii Earle W Reprogrammable control circuit
US4881232A (en) * 1987-02-10 1989-11-14 Sony Corporation Method and apparatus for error correction
US5133064A (en) * 1987-04-27 1992-07-21 Hitachi, Ltd. Data processing system generating clock signal from an input clock, phase locked to the input clock and used for clocking logic devices
US4926382A (en) * 1987-11-25 1990-05-15 Kabushiki Kaisha Toshiba Divided bit line type dynamic random access memory with charging/discharging current suppressor
US4943966A (en) * 1988-04-08 1990-07-24 Wang Laboratories, Inc. Memory diagnostic apparatus and method
US4985895A (en) * 1988-11-14 1991-01-15 Wegener Communications, Inc. Remote controlled receiving system apparatus and method
US4984192A (en) * 1988-12-02 1991-01-08 Ultrasystems Defense Inc. Programmable state machines connectable in a reconfiguration switching network for performing real-time data processing
US5111434A (en) * 1988-12-20 1992-05-05 Ltd. SamSung Electronics Co. Semiconductor memory device
US4970724A (en) * 1988-12-22 1990-11-13 Hughes Aircraft Company Redundancy and testing techniques for IC wafers
US5077738A (en) * 1988-12-30 1991-12-31 Intel Corporation Test mode enable scheme for memory
US4955020A (en) * 1989-06-29 1990-09-04 Infotron Systems Corporation Bus architecture for digital communications
US5187779A (en) * 1989-08-11 1993-02-16 Micral, Inc. Memory controller with synchronous processor bus and asynchronous i/o bus interfaces
US5077737A (en) * 1989-08-18 1991-12-31 Micron Technology, Inc. Method and apparatus for storing digital data in off-specification dynamic random access memory devices
US5218686A (en) * 1989-11-03 1993-06-08 Compaq Computer Corporation Combined synchronous and asynchronous memory controller
US5103424A (en) * 1990-03-26 1992-04-07 Trw Inc. Memory column interface with fault tolerance
US5159273A (en) * 1990-09-28 1992-10-27 Hughes Aircraft Company Tri-state bus driver to support reconfigurable fault tolerant logic

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0654168A4 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996021188A1 (en) * 1994-12-29 1996-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Bus arrangement related to a magazine
US6006341A (en) * 1994-12-29 1999-12-21 Telefonaktiebolaget Lm Ericsson Bus arrangement related to a magazine
FR2764095A1 (en) * 1997-05-30 1998-12-04 Sgs Thomson Microelectronics Memory circuit with dynamic redundancy
US6324485B1 (en) 1999-01-26 2001-11-27 Newmillennia Solutions, Inc. Application specific automated test equipment system for testing integrated circuit devices in a native environment
GB2352855A (en) * 1999-05-05 2001-02-07 Ibm Replacement of non-operational metal lines in DRAMs
GB2352855B (en) * 1999-05-05 2004-04-14 Ibm Method and apparatus for the replacement of non-operational metal lines in drams
EP3923286A1 (en) * 2009-07-16 2021-12-15 Netlist, Inc. System and method utilizing distributed byte-wise buffers on a memory module
EP3279796A1 (en) * 2016-08-02 2018-02-07 NXP USA, Inc. Resource access management component and method therefor
CN107678868A (en) * 2016-08-02 2018-02-09 恩智浦美国有限公司 Resource access management assembly and its method
US20220350713A1 (en) * 2021-04-29 2022-11-03 Mellanox Technologies Ltd. Redundancy data bus inversion sharing
US11656958B2 (en) * 2021-04-29 2023-05-23 Mellanox Technologies, Ltd. Redundancy data bus inversion sharing

Also Published As

Publication number Publication date
JPH08500687A (en) 1996-01-23
US7634707B2 (en) 2009-12-15
US6483755B2 (en) 2002-11-19
US20040260983A1 (en) 2004-12-23
US20030051091A1 (en) 2003-03-13
US20010039601A1 (en) 2001-11-08
US5592632A (en) 1997-01-07
EP0654168A4 (en) 1998-06-03
EP0654168A1 (en) 1995-05-24
US20080209303A1 (en) 2008-08-28
DE69331061D1 (en) 2001-12-06
US6717864B2 (en) 2004-04-06
US6425046B1 (en) 2002-07-23
EP0654168B1 (en) 2001-10-31
AU4798793A (en) 1994-03-03
DE69331061T2 (en) 2002-06-06
US5666480A (en) 1997-09-09
US5613077A (en) 1997-03-18

Similar Documents

Publication Publication Date Title
US5592632A (en) Defect tolerant integrated circuit subsystem for communication between a module and a bus controller in a wafer-scale integrated circuit system
EP0541288B1 (en) Circuit module redundacy architecture
EP0034070B1 (en) Fault tolerant memory system
US5576554A (en) Wafer-scale integrated circuit interconnect structure architecture
JP3618531B2 (en) Resynchronization circuit and method
EP0437081B1 (en) Redundancy for serial memory
EP0480966B1 (en) A fault tolerant data storage system
US20140082453A1 (en) Substitute redundant memory
KR0177740B1 (en) Redundancy circuit and its method for semiconductor memory device
CN113963739B (en) Fuse circuit with reduced footprint
US20220366998A1 (en) Systems and methods for power savings in row repaired memory
JPS6237423B2 (en)
US10665316B2 (en) Memory device
JP2741824B2 (en) Semiconductor storage device
WO2014047225A1 (en) Substitute redundant memory
McAuley et al. A self-testing reconfigurable CAM
US4800302A (en) Redundancy system with distributed mapping
US6519202B1 (en) Method and apparatus to change the amount of redundant memory column and fuses associated with a memory device
CN113362883B (en) Configurable Soft Post Package Repair (SPPR) scheme
US6442097B2 (en) Virtual channel DRAM
GB2244826A (en) Linking circuit modules
JPH09223400A (en) Testing device, testing method and memory device for semiconductors

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1993918585

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1993918585

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: CA

WWG Wipo information: grant in national office

Ref document number: 1993918585

Country of ref document: EP