Method and system for testing rambus memory modules

Information

  • Patent Grant
  • 6285962
  • Patent Number
    6,285,962
  • Date Filed
    Monday, March 15, 1999
    25 years ago
  • Date Issued
    Tuesday, September 4, 2001
    23 years ago
Abstract
A system and method for testing a RIMM loaded with RDRAM integrated circuits generates and reads test transaction data with a test transaction engine, such as a microprocessor-based memory tester. A RIMM adapter interfaces with the test transaction engine and the RIMM under test to communicate test data, including test write, address, control and read data. A comparison of test read data returned to the test transaction engine from the RIMM against predetermined values allows a determination of the operational status of the RIMM. The RIMM adapter is embodied as an ASIC with plural FIFO circuits interfaced between the test transaction engine and a channel controller and RAC. The FIFOs reconcile differences in timing between generation and return of test data and demands by the RAC and channel controller. Separate read and write data paths between the test transaction engine and ASIC support improved rates of data transfer. The test transaction engine provides full speed test transactions by using instruction data to generate test data with FPGAs.
Description




TECHNICAL FIELD OF THE INVENTION




This invention relates in general to the field of testing electronic devices, and more particularly to testing memory modules.




BACKGROUND OF THE INVENTION




Memory integrated circuits are typically assembled on memory modules for incorporation into computing devices, such as personal computers. Before a memory module is incorporated in a computing device, the module and memory integrated circuits assembled on the module are usually tested for faults. For instance, personal computer manufacturers typically purchase memory modules from subcontractors. The subcontractors assemble the memory integrated circuits on the memory modules according to the manufacturers' specifications, and then test the modules to ensure their proper operation before shipping the modules to the manufacturer. Computer manufacturers expect high reliability for the memory modules. Thus, subcontractors who assemble memory modules generally must test the assembled modules to meet predetermined specifications of the computer manufacturer with a high degree of reliability.




Conventional memory integrated circuits include DRAM, SDRAM, and SGRAM integrated circuits that operate at speeds of up to 100 megahertz. Recently, a new type of integrated memory circuit known as a direct RAMBUS integrated circuit (RDRAM), has been introduced that is capable of operating at much higher speeds, such as a clock speed of 400 megahertz, with data transactions occurring on both edges of the clock signal to provide an effective device speed of 800 megahertz. To obtain these improved operating speeds, RAMBUS integrated circuits are loaded on a specially designed RDRAM integrated memory module, known as a RAMBUS In-Line Memory Module (“RIMM”). RIMMs include a Direct RAMBUS ASIC channel cell (RAC) to support communications between the RIMM and another RAC located in a computing device. A RAC is a logical to physical interface that multiplexes and demultiplexes


144


bit wide datums with an 18 bit wide RAMBUS channel. Cooperating RACs communicate data over the 18 bit wide RAMBUS channel by exchanging control and address information in unique packetized formats. A RAMBUS Memory Controller (“RMC”) supports data transfers with a RAC by taking simple high-level commands and data to create simpler commands formatted for the RAC and by scheduling for data transmittal or retrieval.




For instance, a RMC may receive or transmit data at a 100 MHz clock rate. In one clock cycle, the RMC may receive 40 bits worth of information, including 35 address bits, 4 command bits and 1 packet length bit, along with 144 bits worth of data to be written to a RIMM. The RMC reformats the 40 address/command/length bits into a sequence of commands to the RAC with each command having 64 bits of packet information and 12 bits of scheduling information. The 144 bits of data are passed unchanged to the RAC. The RAC then transmits this information to a RAC of one of the Direct RDRAM chips in the RIMM with the 64 bits of packet information broken down into 8 sets of 8 bits and the 144 bits of data broken down into 8 sets of 18 bits. The transfer between RACs is clocked out on the leading and trailing edges of a 400 MHz clock to allow all eight sets of data to be transmitted within a 10 ns window that matches the 100 MHz system bus clock.




The use of RDRAM integrated circuits loaded on a RIMM allows a substantial increase in the rate at which data is exchanged for use by a processor of a computing device. However, the increased speed at which RIMMs operate makes it especially important to ensure that no faults exist on the RIMMs before the RIMMs are used in a computing device. At the present time, commercial microprocessor bus systems do not exist that will support a RAMBUS channel operating at higher than 100 megahertz.




Faults associated with a RIMM can be introduced in a number of different manners. A fault can exist in the RDRAM integrated circuits and RIMM printed wire board (PWB) before assembly, or can be introduced during assembly. For instance, RIMM PWBs can have PWB faults such as open or shorted traces due to under plating or over plating, excessive warpage, and out of tolerance electrical characteristics. RDRAM faults can include open or shorted pins due to lead frame bonding flaws, inoperable nodes internal to the device, and excessive sensitivity to signal patterns, temperature variations, voltages, and/or internal node states. Faults introduced during assembly of a RIMM can include incorrect installation of parts, open or shorted signals through the use of excessive or insufficient solder, signal path contamination resulting in high pin leakage, ESD damage resulting in high pin leakage, and damaged pin drivers or input buffers.




Several conventional testers are available for testing memory modules. The simplest type of memory tester is a microprocessor-based tester. Microprocessor-based testers essentially act as a mother board to pass microprocessor-generated test data to a module and read the test data sent back from the module. The memory module is tested by comparing the written and read data. Although microprocessor-based testers are simple to build and use, they are generally slow in operation and incapable of performing more complex types of tests. Such testers usually feature commodity memory controllers as the interface between the microprocessor and the memory module.




Most other types of conventional memory testers are hardware-enhanced. Hardware-enhanced testers provide more rapid testing of memory modules by using specialized hardware to generate test accesses and verify test data. One such hardware-enhanced memory testing system is a vector-based system. Vector-based systems use a microprocessor to generate test data, and then store the test data in memory until the data is sent to the module under test. A key disadvantage to vector-based systems is that they generally require large amounts of memory for storing test data before the data is sent to the module under test.




Another hardware-enhanced method for testing memory modules is through the use of an interface that provides test data to the module under test. For instance, the SIGMA testing systems produced by Tanisys Technology, Inc. create test data with algorithms and incorporate specialized controllers to interface the algorithmically-created data with the module under test. A microprocessor supervises the operation of the specialized controller, which in response generates and writes predetermined data to the memory module through an interface, and then reads back the data and compares it against the written data to ensure that the memory module is operating properly.




Many of the hardware-enhanced memory testers use pin drivers. Pin drivers and receivers interfaced with the memory module send signals to and receive signals from the memory module under test. Conventional pin drivers are frequently used to test a variety of integrated circuits, including microprocessors, where operational parameters such as input voltage range, output voltage range, power supply range, and signal timing vary widely between device types. Pin-driver based testers generally incorporate expensive and complex hardware and software that determine whether the output signals generated are appropriate for a given suite of test signals. Conventional pin drivers are expensive and their use to test memory devices is generally considered overkill since memory devices typically operate over a narrow range of voltages and speeds, such as the 0.8 voltage swing for RDRAM signals, whereas pin drivers are designed to operate over a large voltage range, such as 7 to −5 volts. In addition, conventional pin drivers are typically housed in large packages with high input voltages that generate considerable amounts of heat, frequently requiring cooling by fluids.




A number of difficulties exist in attempting to use conventional memory testing systems to test RIMMs. One difficulty is presented by the rapid operating speeds of RIMMs. For instance, conventional 100 megahertz memory devices and busses cannot exchange data at the full operating rate of a RIMM. Although pin-driver systems can present data to a RIMM at full operating speeds, pin driver systems are expensive and difficult to use.




Another difficulty is converting data generated by conventional testing systems into a format that is readable by a RIMM. For instance, RIMMs typically have 8 control lines that carry packetized control information in 64 bit packets. Further, RIMMS have an 18 bit wide RAMBUS channel with occupancy of the channel dependent upon prior and pending channel activity.




Another difficulty is the implementation of testing algorithms and sequences that test the various RIMM configurations and RIMM transaction sequences under worst-case test conditions.




SUMMARY OF THE INVENTION




Therefore a need has arisen for a memory testing system and method which will support inexpensive testing of RIMMs with at-speed test data.




A further need has arisen for a memory testing system and method which maintains full utilization of a RAMBUS channel to test the RIMM at full operating speeds.




A further need has arisen for a memory testing system and method which supports testing of a variety of RIMM configurations under a variety of test conditions.




In accordance with the present invention, a memory testing system and method is provided that substantially eliminates or reduces disadvantages and problems association with previously developed memory testing systems and methods. A RIMM adapter accepts test data for transfer to and from a RIMM to allow evaluation of the RIMM's operation.




The RIMM adapter includes an application specific integrated circuit (ASIC) having a RAC that multiplexes and demultiplexes test data with a RAMBUS channel. The RAMBUS channel is controlled by a channel controller located on board the ASIC in communication with the RAC. The channel controller writes and reads data from one or more first-in-first-out (FIFO) circuits also located on board the ASIC. The FIFOs form the interface between the ASIC of the RIMM adapter and a test transaction engine. In one embodiment, the test transaction engine is a hardware-enhanced based memory tester.




In another embodiment, a test transaction engine located on the RIMM adapter generates and compares test data based on instructions provided to processing circuits, such as field programmable gate arrays. A sequencer in communication with write data generate, address/command generate and read data compare engines supports transfer of test transaction data between the FIFOs and the test transaction engine. The FIFOs allow the RAC to provide the RIMM data transactions at full operating speed. Registers located on the ASIC of the RIMM adapter are in communication with the channel controller and RAC to allow modifications of the operational characteristics of the channel controller and RAC to support control of channel drive strengths and timing. A parametric measurement unit (PMU) and a load unit interface with the RIMM to provide analog testing signals and simulated loads.




Instructions for test data transactions are provided by a host computer in communication with the test transaction engine. The instructions are stored in a SRAM, and identify the type of transactions to be performed with the RIMM. A sequencer communicates with the SRAM and with the host computer, a read compare engine, a write generate engine, and an address command generate engine. The sequencer supplies addresses to the SRAM in a user defined order to have the write generate and address command generate engines generate both transaction address commands and test write data for transfer to the RIMM, or to have the read compare engine verify data returned from the RIMM. Instructions from the SRAM direct the sequencer to modify the address, test write data, and read compare data after a transaction is issued to support a high data flow rate to the RIMM.




The read compare engine and write generate engines have separate data paths for communicating with the RIMM adapter ASIC. The channel controller of the ASIC accepts data from the write generate engine through a write FIFO for transmission to the RIMM as the RAMBUS channel is available, and provides data received from the RAMBUS channel to a read FIFO for transmission to the read compare engine. The read compare engine compares data received from the RIMM with expected data values and issues status results back to the sequencer and host computer.




In one embodiment, the read compare engine, write generate engine and address command generate engine are field programmable gate arrays (FPGAs), having a bank of registers sharing a single arithmetic logic unit to provide interleaved accesses that help ensure uninterrupted data flow to and from the RIMM.




In another embodiment, the RIMM adapter ASIC includes a bypass circuit that allows direct communication between the test transaction engine and the RAC loaded on the ASIC. The bypass mode allows direct communication of test transaction data from the tester to the RAC without processing by the channel controller loaded on the ASIC. Thus, for instance, the test transaction engine may provide 64 bit commands and 144 bit data directly to the RAC on the ASIC to test failure modes in the field with a logic analyzer.




The present invention provides a number of important technical advantages. One important technical advantage is that the RIMM adapter implements transaction sequences for testing a RIMM at full speed when supplied with transaction commands issued by lower-speed testing engines. For instance, 100 megahertz, 144 bit datum transactions are provided to the 18 bit RIMM channel through the RIMM adapter to facilitate full control of transaction sequences. Further, the transactions are not constrained by microprocessor or memory controller implementations.




Another important technical advantage of the present invention is that full utilization of the RIMM channel is maintained. The RIMM channel is tested at full speed, such as its 800 megahertz operating speed, by transactions provided through the RIMM adapter. Separate read and write paths provide double the speed of a single read and write path and avoids waiting for host bus turnaround. Further, by locating a memory controller on board an ASIC instead of in the test engine, and providing test data through FIFO circuits before assigning the test data to memory channels, the time for transferring data to the RIMM is reduced.




Another advantage of the present invention is that it supports a variety of RIMM configurations tested under a variety of conditions. The channel controller supports control of channel drive strengths and timing to adjust data and clock skew. For instance, the channel controller allows testing with different numbers of RDRAM parts loaded on a RIMM, and with delays in clocking rate that may be associated with changes in bus length. The load unit simulates operational conditions to ensure the RIMM meets worst case test conditions, including simulation of multiple RIMMS loaded on a RAMBUS channel.




Another important technical advantage of the present invention is that the test transaction engine may communicate directly with the RAC through the bypass circuit. By configuring the ASIC so that the channel controller is bypassed, all possible memory access methods for talking to the RIMM may be utilized, which allows for the testing of additional sequences of RAC commands that may cause failures.











BRIEF DESCRIPTION OF THE DRAWINGS




A more complete understanding of the present invention and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings in which like referenced numbers indicate like features and wherein:





FIG. 1

depicts a block diagram of a RIMM adapter interfaced with a test transaction engine;





FIG. 2

depicts a block diagram of a RIMM adapter and test transaction engine in a stand-alone, contiguous-unit configuration;





FIG. 3

depicts a block diagram of an address command generate engine;





FIG. 4

depicts a block diagram of a read compare engine;





FIG. 5

depicts a block diagram of an address crossbar switch;





FIG. 6

depicts a channel controller bypass circuit;





FIG. 7

depicts a block diagram of a RIMM tester in a channel controller bypass configuration; and





FIG. 8

depicts a flow diagram of a memory testing sequence.











DETAILED DESCRIPTION OF THE INVENTION




Preferred embodiments of the present invention are illustrated in the FIGURES, like numeral being used to refer to like and corresponding parts of the various drawings.




Hardware-enhanced memory testing systems provide inexpensive but accurate testing of memory modules. For instance, the SIGMA memory testing system sold by Tanisys Technology, Inc. accepts user-specific testing sequences that support the running of a predetermined series of read and write cycles on a memory module to ensure that the memory module operates correctly. Hardware-enhanced memory testing systems support full speed operational testing of conventional memory, such as 100 MHZ SDRAM, DRAM and SGRAM, by using commodity high speed interfaces which operate at 100 MHZ. However, conventional hardware-enhanced memory testing systems are not able to directly interface with RIMMs having RDRAM integrated circuits at full operational speeds due to the unique data format used by RIMMs and due to the rapid operating speeds at which data is transferred by RIMMs.




Referring now to

FIG. 1

, a block diagram of a RIMM adapter


10


is interfaced with a test transaction engine


12


by an adapter connector


14


. RIMM adapter


10


and test transaction engine


12


could alternatively be interfaced across a distance by conventional connectors and cables. RIMM adapter


10


provides an interface to accept test transaction data from test transaction engine


12


for testing a RIMM loaded in a device under test (DUT) adapter


26


. Adapter connector


14


is a 300 pin connection that supports two separate data paths between RIMM adapter


10


and test transaction engine


12


. Thus, a write data path


15


provides up to 96 bits of test write data, address and control data instructions from test transaction engine


12


to RIMM adapter


10


, and a separate read data path


17


accepts up to 160 bits of test read data from RIMM adapter


10


to test transaction engine


12


. The use of separate write and read data paths effectively doubles the amount of data that can be transferred between RIMM adapter


10


and test transaction engine


12


.




Test transaction engine


12


is a hardware-enhanced memory test system, such as the SIGMA


3


memory test system sold by Tanisys Technology, Inc. The Sigma


3


memory test system is operable to test standard memory modules loaded with up to 160 data bit SRAM, DRAM or SGRAM that generally operate at speeds of up to 100 megahertz.




Test transaction engine


12


provides a user interface, such as a personal computer


24


with a 200 MHz processor. Personal computer


24


communicates with a 200 MHz RISC processor


22


loaded on test transaction engine


12


, to accept test inputs and display test results. For a RIMM under test on DUT


26


of RIMM adapter


10


, test transaction engine


12


provides RIMM adapter


10


with power through programmable power source


19


. Test transaction engine


12


also provides RIMM adapter


10


with access test address and control data and test write data through address control engine


16


, and with read compare functionality through data engine


18


. Address control engine


16


generates the access test address and control signals that specify the location in the RIMM to which test data is written and from which test data is read. Address control engine


16


also provides instructions for the creation of test write data for transfer to the RIMM, and creation of read compare data for comparison with test data read from the RIMM. Data engine


18


generates test data for comparison with read test data from the RIMM, enabling a comparison of the read test data against expected results. If data from the RIMM does not match expected results, data engine


18


identifies the error for display to the user.




Other test signals provided by test transaction engine


12


include signals provided to parametric measurement unit (PMU)


20


. PMU


20


includes circuitry to perform current leakage, DC voltage and resistance measurements of the RIMM. A serial interface


23


with RISC processor


22


supports initialization of a RIMM for accepting test transactions. A clock


21


provides timing signals for coordination of data transfers. Processor


22


interfaces with a personal computer


24


to accept test instructions and direct the operation of the test by test transaction engine


12


.




RIMM adapter


10


acts as a docking adapter to supply a RIMM loaded in DUT adapter


26


with test data in a RAMBUS format at 800 MHZ operating speed through a RAMBUS channel


28


. Essentially, RIMM adapter


10


operationally converts 144-bit wide 100 MHZ test data generated by test transaction engine


12


to supply 18-bit wide 800 MHZ test data to RAMBUS channel


28


, and converts 18-bit wide 800 MHZ test data received from a RIMM in DUT


26


into 144-bit wide 100 MHZ test data for evaluation by test transaction engine


12


.




Test data is provided to and received from RAMBUS channel


28


by an application specific integrated circuit (ASIC)


30


. ASIC


30


includes a RAC


32


, which is defined by the RAMBUS Corporation standards, a RAMBUS channel controller


34


in communication with RAC


32


, and plural FIFO circuits


36


,


38


and


40


, in communication with RAMBUS channel controller


34


. RAC


32


accepts test write data from channel controller


34


and formats the test write data for transfer to a RIMM via RAMBUS channel


28


. RAC


32


also accepts test read data from a RIMM via RAMBUS channel


28


and formats the test read data for transfer to test transaction engine


12


through channel controller


34


. Channel controller


34


controls the flow of data through RAC


32


as RAMBUS channel


28


is available. A direct RAMBUS clock generator


31


communicates with clock


21


of test transaction


12


, control circuit


48


of ASIC


30


and a configuration circuit


33


of ASIC


30


, enabling alignment of clock signals of test transaction engine


12


and ASIC


30


. Configuration circuit


33


includes registers to store data for enabling alternative configurations of RAC


32


and channel controller


34


, such as clock control modes.




A read FIFO


36


accepts test read data from a RIMM in DUT


26


through controller


34


and provides the test read data to data engine


18


for comparison with expected results. A write FIFO


38


accepts data from a write data engine


42


and provides the data through RAC


32


to RIMM DUT


36


. Thus, read FIFO


36


and write FIFO


38


provide read and write 144 bit data paths with ASIC


30


, effectively doubling the transaction speed at which ASIC


30


can process 144 bit test write and test read datum.




An address cross-bar circuit


44


interfaces with address control engine


16


and with an address FIFO


40


to form contiguous address space from five separate fields, enabling a variety of RIMM configurations to be tested and to optimize test address sequencing. Address cross-bar circuit


44


accepts 35 address lines from address control engine


16


and outputs the 35 address lines to address FIFO


40


. A control interface circuit


46


communicates with a control circuit


48


of ASIC


30


to provide control information for supporting time-aligned address and data information during RIMM transactions. Control interface circuit


46


includes registers to support transfer of miscellaneous control logic, such as control of isolation relays


50


, which enable analog measurements. Control circuit


48


provides ASIC


30


with internal control logic based upon data received from control interface


46


. For instance, control circuit


48


provides control of data paths in ASIC


30


for loading and updating data in FIFOs


38


and


40


, and transfer of data from FIFOs


38


and


40


to RAC


32


through channel controller


34


.




Analog measurements of a RIMM loaded in DUT


26


are performed by PMU


20


. Isolation relays


50


support electrical isolation of DUT


26


from other circuits on RIMM adapter


10


when PMU


20


performs analog measurements. PMU


20


includes a programmable current source and sink, a programmable voltage source, and a differential voltage analog-to-digital converter to perform current leakage, DC voltage and resistance measurements on a RIMM loaded in DUT


26


.




A load circuit


52


is provided on RAMBUS channel


28


to attenuate channel signals for altering the electrical characteristics of RAMBUS channel


28


by, for instance, degrading the channel signal. For instance, load circuit


52


can vary the capacitance of RAMBUS channel


28


to subject a RIMM in DUT


26


to various test conditions, can simulate the effect of a second device interfaced with RAMBUS channel


28


, and can simulate increased trace length of the bus. A termination circuit


53


supplies the RAMBUS-specified electrical termination of signals of channel


28


.




Referring now to

FIG. 2

, a block diagram depicts a stand-alone configuration of RIMM adapter


10


that is operationally independent of a separate hardware-enhanced test system. Test transaction engine


12


interfaces with a personal computer


24


for accepting user inputs and displaying test results, and also interfaces with ASIC


30


. Test transaction engine


12


dispatches transactions specified in instruction SRAM


54


to DUT


26


through ASIC


30


, and verifies data resulting from those transactions.




Test transaction engine


12


includes instruction SRAM


54


, a sequencer


56


and function specific blocks including PMU


20


, read compare engine


58


, write generate engine


60


, and address control generate engine


62


. Instruction SRAM


54


accepts instructions loaded from personal computer


24


for use by transaction engine


12


. Sequencer


56


communicates with personal computer


24


and instruction SRAM


54


to supply addresses to instruction SRAM


54


in a user-defined order. Instruction SRAM


54


provides instruction data to write generate engine


60


and address control generate engine


62


to generate desired transaction address, commands and write data for transfer to ASIC


30


. Instruction data from instruction SRAM


54


also provides instruction data to read compare engine


58


enabling read compare engine


58


to verify transaction read data received from ASIC


30


. Instruction data from instruction SRAM


54


specifies the type of transaction that will be issued to DUT


26


. In addition, instruction data stored in instruction SRAM


54


directs sequencer


56


to modify the next address issued to instruction SRAM


54


, and specifies how the test address, test write data and test read compare data are modified after a transaction is issued.




Instruction data from instruction SRAM


54


includes address generation instructions for address control generate engine


62


. The address generation instructions direct address control generate engine


62


to supply


35


bits of test address data in five fields to ASIC


30


, with the fields corresponding to two column addresses, a row address, a bank address, and a device address. In addition, the instruction data directs address control generate engine


62


to issue a nominally 6 bit wide transaction command. Write generate engine


60


supplies either one or two 144 bit datums for each transaction command. In this way, the sequencer


56


, address command generate engine


62


and write generate engine


60


provide a full speed data stream to facilitate full utilization of RAMBUS channel


28


, with full control of transaction sequences issued to DUT


26


without constraint by microprocessor or memory controller implementations of test transaction engine


12


.




Read compare engine


58


receives instruction data from instruction SRAM


54


enabling comparison of 144-bit transaction read data received from ASIC


30


with expected values based on the nominally 6-bit wide transaction command provided by address command generate engine


62


. Read compare engine


58


issues results for the comparison to sequencer


56


and personal computer


24


, enabling a determination of the operational status of a RIMM in DUT


26


. Read compare engine


58


includes a transaction command FIFO to account for access latencies of DUT


26


while performing reads. The FIFO of read compare engine


58


maintains a transaction command until the transaction to DUT


26


associated with the command is completed.




ASIC


30


includes address control FIFO


52


in communication with address control generate engine


62


and channel controller


34


. Channel controller


34


maintains the status of active transactions with DUT


26


and the operational status of RDRAM devices loaded on a RIMM in DUT


26


. Channel controller


34


extracts transaction address and control commands from address control FIFO


52


, when RAMBUS channel


28


is available. A write FIFO


38


is in communication with write generate engine


60


and channel controller


34


so that, in the case of write transactions, up to 288 bits of write data can be transferred from write FIFO


38


by channel controller


34


when RAMBUS channel


28


is available. Read FIFO


36


is in communication with read compare engine


58


and channel controller


34


to allow channel controller


34


to load read transaction data returned from completed read transactions of DUT


26


. Channel controller


34


communicates with RAC


32


and controls the transfer of data from and to RAC


32


through channel


28


.




Read FIFO


36


, write FIFO


38


and address command FIFO


52


form the interface between channel controller


34


of ASIC


30


and transaction engine


12


. ASIC


30


provides a path by which reads and writes initiated through sequencer


56


can be accomplished. Status registers


64


internal to ASIC


30


allow test transaction engine


12


to modify operational characteristics of channel controller


34


and RAC


32


. ASIC


30


, with Direct RAMBUS clock Generator (DRCG)


31


also implements RAMBUS channel input and output differential clocks and serial interface with channel clock circuit


66


.




Referring now to

FIG. 3

, a block diagram of address control generate engine


62


is depicted in a field programmable gate array (FPGA) embodiment. Address control generation engine


62


includes five logic blocks that accept predetermined transaction instructions from a user and provide test address and test control data to RIMM adapter


10


. A bank block


70


provides 5-bit bank address data generated with a bank arithmetic logic unit (ALU)


72


. Four bank registers


74


are selectable on a real-time basis for pipelined generation of DUT test bank addresses. A row block


76


provides


12-


bit row addresses generated by a row ALU


78


and output by ROW register


82


. Row block


76


includes a row comparator


80


and an end register


82


for determining when the final row address is generated. A column A block


84


, including a column A ALU


86


and COLA register


90


, and a column B block


92


, including a column B ALU


94


and COLB register


96


, generate 6-bit test column addresses. Column A comparators


88


and end registers support detection of two column address termination conditions. Hold registers


98


provide value storage capability for row block


76


, column A block


84


and column B block


92


. The fifth block of address control generation engine


62


is block


100


, which provides five bits of device test with a device address with a device ALU


102


and four device address registers


104


.




The logic blocks of address command generation engine


62


provide algorithmically-determined addresses to a RIMM on a per-access basis. The blocks accept instructions specified by a user and allow modification of the address patterns in accordance with a test algorithm without respect to actual address values. Registers associated with the blocks store user-determined address patterns following operations by the ALUs pending transfer of the user-supplied addresses to the RIMM. The four bank address registers


74


, device registers


104


, column address bank


62


and column address bank


92


support storage of multiple instances of addresses to provide full speed multiple device transactions with the RIMM. For instance, the use of four registers for bank and device addresses allows intermingling of up to sixteen transactions to different addresses while accessing a RIMM. The use of multiple registers allows interleaved access of unique addresses to multiple devices on a RIMM, while also allowing multiple banks to be accessed in a single device. To accomplish interleaved access, a 2-bit field selects one of the four registers, and another 2-3 bit field selects the ALU operation to be performed on the selected register at the next clock edge. The register select field can be selected in advance of the operation selection by one selection cycle, allowing sufficient time to select the register and set up the value in that register to the ALU.




Referring now to

FIG. 4

, a block diagram depicts a read compare engine


58


embodied as a FPGA. Read compare engine


58


includes circuits functionally equivalent to those found in write generate engine


60


in order to facilitate the comparison of data returned from DUT


26


to data written to DUT


26


during an earlier transaction that was generated by write data generation engine


60


. Write generate engine


60


receives instructions by a sequencer or personal computer that modify hold registers


110


and offset register


112


for generating test write data with ALU


114


. The test write data is provided to value registers


116


for transfer to a RIMM or, when instantiated inside of the read compare engine


58


, for use to compare against test read data received from a RIMM. Mask circuit


118


, compare circuit


120


and error circuit


122


provide a comparison between test write data and test read data to detect differences that indicate an error with the RIMM that provided the test read data.




Referring now to

FIG. 5

, a block diagram of address cross-bar switch


44


is depicted. Address cross-bar switch


44


eliminates unused bits from inputs A


00


to A


34


, thus improving test efficiency by mapping address bits to channel controller


34


in contiguous fields. Address cross-bar switch has thirty-five inputs A


00


through A


34


and thirty-five outputs Ynn. Each input is provided to thirty-five address logic blocks


45


for each output Ynn. At most one logic block


45


associated with each output Ynn is selected, determining which input is gated to that output Ynn. Address cross-bar switch


44


can also reduce test time by simulating a vector-based test method and can sequence a given test data through a series of addresses by mapping address lines to different banks or devices on a RIMM under test. The sequencing of addresses enhances test efficiency with increased utilization of a channel of a RIMM under test and may also assist in the isolation of certain internal RIMM fault modes.




Referring now to

FIG. 6

, a channel bypass circuit is conceptually depicted that supports additional testing of a RIMM under test. Address/command FIFO


40


interfaces directly with channel controller


34


, or alternatively, interfaces directly with RAC


32


through a bypass circuit


53


. Bypass circuit


53


allows a user to directly access RAC


32


, enabling a user to send packets of test data to RAC


32


for performing additional tests not supported by channel controller


34


. For instance, bypass circuit


53


allows a user to arrange certain bits sent to a RIMM and to perform tests of the low power mode of a RIMM. More thorough testing of a RIMM can be accomplished since bypass circuit


53


provides direct control over every signal on the channel


28


at every clock edge of channel


28


.




Referring now to

FIG. 7

, a block diagram of one embodiment of a RIMM tester implementing the channel controller bypass is depicted. Input registers


64


of ASIC


30


receive information from test transaction engine


12


, and the content of registers


64


may then be presented through channel controller


34


to RAC


32


or directly to RAC


32


. If the test information is presented through channel controller


34


, then channel controller


34


has the burden of issuing RAMBUS instructions, with a format and timing appropriate for the RIMM in DUT


26


. If channel controller


34


is bypassed, then test transaction engine


12


provides data to drive RAC


32


, such as transaction vectors and their related timing requirement, while channel controller


34


clocks return data from RAC


32


. Bypassing channel controller


34


increases the complexity of the instructions of test transaction engine


12


, and thus the software that generates the instructions.




However, bypassing channel controller


34


allows greater control by test transaction engine


12


since channel controller


34


tends to select certain fixed methods for accomplishing memory operations and may not allow testing of certain unique sequences of commands.




Essentially, the components of the RIMM tester with a bypass circuit are functionally equivalent to like components discussed previously, however, in some instances, the test transaction engine communicates directly with RAC


32


, bypassing channel controller


34


. Host


24


downloads a high-level memory test algorithm which provides for variable assignments, arithmetic operations, looping, procedures, and flow control as well as access to specific command structures to a sequencer


56


through a portion of the SRAM


54


. To enable direct communication with RAC


32


, address control engine


62


provides 64 bit commands through registers


64


to RAC


32


in conjunction with 144 bit data. Thus, in summary, test transaction engine


12


provides information to RAC


32


on ASIC


30


in the same format as the data would have been provided if the data had come from channel controller


34


.




To allow a comparison of the written data against subsequently read data, SPAM


54


provides very long instruction word (VLIW) instructions to sequencer


56


. Sequencer


56


then provides the instructions to the address control engine


62


, read/compare engine


58


and write engine


60


, which use the instructions to generate the 64 bit commands and 144 bit data for writing through RAC


32


. The address/control engine


62


, read/compare engine


58


and write engine


60


generate command, data, timing and address sequences for ASIC


30


and for comparison of data read through RAC


32


. Thus, the same instructions may be used to generate write data as are used to generate read compare data.




In bypass mode, the output of address/control engine


62


is generally a sequence of RAC packet commands with associated timing information. For instance, RAC


32


may support ROW packets having three bytes of information and COL packets having five bytes of information. The packet commands are generally transmitted as a group of eight bytes at a 100 MHz rate, although some packets may not have valid data. To provide additional scheduling flexibility, packets within each group of eight bytes, as well as data reads and writes, may be scheduled at 2.5 nS increments within the 10 nS clock period. Timing offset information provided via the VLIW command word provides 8 bits of offset information with 2 bits each corresponding to four offset times for a row packet, a column packet, write data, and read data.




In

FIG. 7

, vector, OP code & address and write mask paths have a total of 64 bits that represent packet data, although an application of names to specific pins is somewhat artificial since the signal on any given pin depends on the particular mode and format of the current packet. Generally, however, the write mask path outputs 16 bits worth of data for either a COLM or COLX packet when in the vector mode of bypassing channel controller


34


, and outputs a write mask when in the standard mode of processing instructions through channel controller


34


. The OP code and address path provides 35 bits of address information, four op code bits and one bit of packet length when data is passed through channel controller


34


. In the vector mode of bypassing channel controller


34


, the 40 bits of path associated with OP code and address are combined with the 8 bits of path associated with the vector path and the 16 bits of path associated with the write mask to provide a 64 bit path to pass eight bytes of packet information. Note that, although

FIG. 7

depicts one embodiment of a bypass circuit, in yet another embodiment, test transaction


12


can perform all of the functions of channel controller


34


, thus eliminating the need for a channel controller on ASIC


30


.




Referring now to

FIG. 8

, a flow diagram depicts one possible test flow for a RIMM associated with RIMM adapter


10


. At step


150


, the connectivity of all RIMM input and output signals and voltages is performed before power is applied to the RIMM under test. At step


152


, quiescent RIMM power consumption is verified. At step


154


, access to all RDRAMS on the RIMM is verified, with initialization performed by the CMOS serial bus. At step


156


, all RDRAMs on the RIMM are verified as able to detect unique patterns on the row, column and data DQ[AB] buses, including refresh and current control performed at predetermined intervals. Upon completion of step


156


, the basic connectivity of the RDRAMs on the RIMM is verified.




At step


158


, the voltage levels on the data DQ[AB] signals are verified during burst reads of each RDRAM on the RIMM. At step


160


, write and read verification is accomplished for all cells in each RDRAM on the RIMM. Write and read verification includes worst-case condition testing under different voltage, loading and timing conditions. Pattern sensitivity tests are also accomplished if necessary. Refresh and current control are accomplished at predetermined intervals. At step


162


, each channel transaction required for the target application is performed and validated. At step


164


, the RIMM SPD EEPROMs are programmed and verified.




Although the present invention has been described in detail, it should be understood that various changes, substitutions and alterations can be made thereto without departing from the spirit and scope of the invention as defined by the appended claims.



Claims
  • 1. An application specific integrated circuit for communicating test data between a test transaction engine and a RIMM associated with a RAMBUS Channel, comprising:a RAMBUS ASIC Channel cell for providing test data to a RAMBUS channel and accepting test data from the RAMBUS channel; a channel controller interfaced with the RAMBUS ASIC Channel cell, the channel controller for controlling the writing and reading of test data by the RAMBUS ASIC Channel cell; a control interface circuit interfaced with the channel controller, the control interface circuit for accepting test control data from the test transaction engine; and at least one first-in-first-out circuit interfaced with the channel controller, the first-in-first-out circuit for accepting test data from the test transaction engine and providing test data to the test transaction engine, the at least one first-in-first-out circuit comprising: a write first-in-first-out circuit for accepting test write data from the test transaction engine; a read first-in-first-out circuit for providing test read data to the test transaction engine.
  • 2. The application specific integrated circuit according to claim 1 further comprising registers interfaced with the channel controller, the registers for accepting test transaction commands for modifying operational characteristics of the channel controller.
  • 3. The application specific integrated circuit according to claim 1 wherein the read first-in-first-out circuit provides 144 bit wide read test data.
  • 4. The application specific integrated circuit according to claim 1 wherein the write first-in-first-out circuit accepts first and second 144 bit wide datums for each test data transaction.
  • 5. The application specific integrated circuit according to claim 1 wherein the address first-in-first-out circuit accepts 35 bit address information for each RIMM transaction.
  • 6. A system for testing a RIMM, the system comprising:a test transaction engine for generating and reading test transaction data to test the operation of the RIMM, the test transaction engine comprising: instruction memory for storing test transaction instructions; a write generate engine interfaced with the instruction memory, the write generate engine for generating test write data from the test transaction instructions; and an address control generate engine interfaced with the instruction memory, the address control generate engine for generating test address data and test control data from the transaction instructions; and A RIMM adapter interfaced with the test transaction engine, the RIMM adapter for communicating test transaction data between the test transaction engine and the RIMM.
  • 7. The system according to claim 6 wherein the test transaction data comprises test address, control and write data.
  • 8. The system according to claim 6 wherein the RIMM adapter comprises an ASIC having a RAMBUS ASIC Channel cell and a channel controller.
  • 9. The system according to claim 6 wherein the test transaction engine comprises a write data path for providing test write data to the RIMM adapter, and a read data path for accepting test read data from the RIMM adapter.
  • 10. The system according to claim 6 further comprising a read compare engine for accepting test read data from the RIMM adapter and comparing the test read data against test write data to determine RIMM results.
  • 11. The system according to claim 10 wherein the read compare engine comprises a write generate engine for generating test write data from the test transaction instructions.
  • 12. The system according to claim 10 wherein the write generate engine and read compare engine interface with the RIMM adapter through separate data paths.
  • 13. The system according to claim 6 wherein the address control generate engine comprises:at least one field programmable gate arrays, the field programmable gate array having at least one arithmetic logic unit for generating test data; and plural interleaved banks of plural registers, the registers for providing test address or control data to the RIMM adapter.
  • 14. The system according to claim 6 wherein the read compare engine comprises a field programmable gate array.
  • 15. The system according to claim 6 wherein the write generate engine comprises a field programmable gate array.
  • 16. The system according to claim 6 further comprising:a write first-in-first-out circuit interfacing the write generate engine and the RIMM adapter; and an address first-in-first-out circuit interfacing the address control generate engine and the RIMM adapter.
  • 17. The system according to claim 16 further comprising an address cross-bar switch interfaced with the address first-in-first-out circuit for sequencing test addresses generated by the address control generate engine.
  • 18. The system according to claim 10 further comprising a read first-in-first-out circuit interfacing the read compare engine and the RIMM adapter.
  • 19. A method for testing a RIMM comprising the steps of:generating test transaction information by providing instructions to a write generate engine to algorithmically generate test write data; providing the test transaction information to the RIMM through a RIMM adapter for storage on the RIMM, RIMM adapter comprising an application specific integrated circuit having a RAMBUS ASIC channel cell and a channel controller; reading the stored test transaction information from the RIMM through the RIMM adapter; and comparing the test transaction information read from the RIMM against predetermined results to determine the operational status of the RIMM.
  • 20. The method according to claim 19 wherein the providing the test transaction data to the RIMM step further comprises the steps of:providing the test write data to the channel controller; and using the channel controller to direct the RAMBUS ASIC channel cell to send the test write data to the RIMM.
  • 21. The method according to claim 20 further comprising the step of providing predetermined test write data to the RIMM by bypassing the channel controller.
  • 22. The method according to claim 20 wherein the test transaction information further comprises test address information and test control information, the using the channel controller step further comprising the step of using the channel controller to store the test write data on the RIMM according to the test address information and test control information.
  • 23. The method according to claim 22 wherein the providing test transaction information step further comprises the steps of:providing test write data to a write first-in-first-out circuit interfaced with the channel controller; providing the test address information to an address first-in-first-out circuit interfaced with the channel controller; providing the test control information to a control first-in-first-out circuit interfaced with the channel controller; and accessing the write, address and control first-in-first-out circuits with the channel controller to provide the test write data to the RIMM.
  • 24. The method according to claim 19 wherein the comparing step further comprises the step of generating read compare test data with the instructions and a read compare engine for comparison with the data read from the RIMM.
  • 25. The method according to claim 19 wherein the test transaction information is provided to the RIMM adapter and read from the RIMM adapter through separate paths.
RELATED APPLICATIONS

This application claims priority from U.S. Provisional Application Ser. No. 60/097,894, filed Aug. 26, 1998 entitled “Memory System Testing and Method,” by Paul Hunter and assigned to Tanisys Technology, Inc.

US Referenced Citations (6)
Number Name Date Kind
5638334 Farmwald et al. Jun 1997
6061263 Boaz et al. May 2000
6154821 Barth et al. Nov 2000
6173345 Stevens Jan 2001
6182254 Bae Jan 2001
6195771 Tanabe et al. Feb 2001
Non-Patent Literature Citations (3)
Entry
Ho, “Defining Tomorrow's Memory Module Tester,” EE Evaluation Engineering, Nelson Publishing, vol. 38, No. 3, pp. 14-18, Mar. 1999.
Goldberg, “Timing: The Key to Rambus Testing,” Test and Measurement World, Cahners Publishing, vol. 17, No. 11, pp. 53-54, 56, 58-59, Oct 1997.
Gasbarro, “Techniques for Characterizing DRAMS with a 500 MHz Interface,” Proceedings of the International Test Conference, New York, IEEE, pp. 516-525, Oct. 1994.
Provisional Applications (1)
Number Date Country
60/097894 Aug 1998 US