WO2017151223A1 - Low cost inbuilt deterministic tester for soc testing - Google Patents

Low cost inbuilt deterministic tester for soc testing Download PDF

Info

Publication number
WO2017151223A1
WO2017151223A1 PCT/US2017/012857 US2017012857W WO2017151223A1 WO 2017151223 A1 WO2017151223 A1 WO 2017151223A1 US 2017012857 W US2017012857 W US 2017012857W WO 2017151223 A1 WO2017151223 A1 WO 2017151223A1
Authority
WO
WIPO (PCT)
Prior art keywords
response
chip
deterministic
auto
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US2017/012857
Other languages
French (fr)
Inventor
Lakshminarayana PAPPU
Timothy J. CALLAHAN
Tomer Levy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of WO2017151223A1 publication Critical patent/WO2017151223A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • 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
    • G11C29/38Response verification devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • 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
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • 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
    • G11C29/38Response verification devices
    • G11C29/40Response verification devices using compression techniques
    • 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
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • 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

Definitions

  • Embodiments of the invention relate to system on a chip testing. More specifically, embodiments relate to use of an auto-response unit fabricated on a chip to perform on-chip testing.
  • Testing of systems on a chip is essentially for quality assurance. As systems have become more complex and faster, effective testing has become more difficult and more expensive. Generally, testing involves using external testers to analyze data exchanges with an external memory. Unfortunately, because of the increasing disparity between tester speeds and double data rate (DDR) memory exchanges, existing techniques fail to provide the desired quality assurance.
  • DDR double data rate
  • Stretch mode one traditional technique in which the data strobe time is stretched with a ratio equivalent to the speed ratio of the DDR to the tester speed, become entirely impractical as speeds increase.
  • the testing interface has a much slower speed than is desired, often with a stretch factor of four or more. As the stretch factor increases, so does the command bubble duration.
  • the logic to handle the DDR input/output (I/O) is both complex and intrusive.
  • a second historical testing option is write data always response (WDAR) mode.
  • This mechanism requires 128 cache lines of additional memory for data. Often, this amount of memory does not exist in products to be tested. Moreover, WDAR has a huge time impact resulting from the need to fill the memory with known data before starting the test. Finally, it is not possible to calculate the expected response on the fly. Therefore, the WDAR test writer must perform pre-silicon simulation and compare with post-silicon results. Often, mismatches occur between the signatures calculated from the simulation and those that exist in the actual silicon. BRIEF DESCRIPTION OF THE DRAWINGS
  • Figure 1 is a block diagram a system according to one embodiment of the invention.
  • Figure 2 is a more detailed block diagram of the auto-response unit according to one embodiment of the invention.
  • Figure 3 is a flow diagram of operation of a system according to one embodiment of the invention.
  • Figure 4 is a block diagram of a system that may incorporate one embodiment of the invention.
  • FIG. 1 is a block diagram a system according to one embodiment of the invention.
  • Auto-response unit 102 is fabricated on a chip 100 having a chip boundary 180.
  • Auto-response unit 102 is preferably fabricated near the chip boundary 180 to provide effective testing for chip devices further from the boundary than itself.
  • the auto responder effectively tests all components of the chip in the signal path of the read and write transactions issued during a test regimen.
  • auto-response unit 102 is coupled between a memory controller 160 and the memory ports 182 through which the memory controller 160 accesses off-chip memory (not shown). In this arrangement the auto response unit can provide effective testing of the memory controller 160 in addition to other chip components.
  • Auto-response unit 102 includes a signature collector 106 that non-deterministically collects signatures of transactions received at the auto-response unit 102.
  • signature collector 106 may collect only signatures of write transactions. In other embodiments, signature collector 106 may collect signatures of both read and write transactions.
  • Auto- response unit 102 also includes a read-response module 104 to provide an automatic
  • Auto-response unit 102 deterministic response to read requests received by the auto-response unit 102.
  • Auto-response unit 102 is discussed more detail below with reference to Figure 2.
  • Chip 100 has fabricated thereon multiple core modules 110, 112. While two core modules are shown, an arbitrarily large number of core modules may be fabricated on a chip. As such, an arbitrary number of core modules are deemed within the scope and contemplation of various embodiments of the invention.
  • Each core module is associated with a cache memory.
  • core module 110 is associated with cache 116
  • core module 112 is associated with cache 118. If more cores are present correspondingly more caches will be present.
  • a Graphic technologies module 114 may also be fabricated on chip 100. Graphic technology module 114 may include a graphics processing unit (GPU) and any other components desired for graphics support within the system.
  • GPU graphics processing unit
  • an analogous auto response unit may be use to test the GPU subsystem by fabrication it at the chip boundary between a graphics controller (not shown) and the graphics input/output interface (not shown).
  • Chip 100 provides a fabric 120 through which the core modules 110, 112 communicate and can send read and write requests via an interface fabric 122 to memory controller 160.
  • a bus functional module 164 is provided to facilitate communication between the north complex of chip 100 and the south complex.
  • the south complex may include a plurality of fabrics 168 and 170 that provide network connectivity through IP ports 166.
  • a test controller 162 may also be fabricated in the south complex. Test controller 162 can act as a transaction agent, sending read and write transactions through the local fabrics 168, 170 and the interface fabric 122 to memory controller 160.
  • the memory controller 160 receives a transaction either from one of the core modules, e.g., transaction 190, or from the test controller, e.g., transaction 192, and translates the logical address specified in the transaction to a physical address, which is then forwarded through the auto-response unit 102. If the auto-response unit 102 is not in a test mode, it takes no action and the transaction is conducted in the normal manner of the DDR interface 182. But, if the auto- response unit is in a test mode, it will handle the transaction as discussed more fully with reference to Figure 2. Notably, signature collectors 106 can be distributed at different branch points around the system to improve localization of faults identified in the course of a test.
  • FIG. 2 is a more detailed block diagram of the auto-response unit according to one embodiment of the invention.
  • auto-response unit 102 includes a signature collector 106.
  • signature collector 106 uses AND logic with a global trigger to ensure valid data has passed to a compression unit 222.
  • a summer 224 adds compressed data is to any previously accumulated signatures creating a running non- deterministic checksum.
  • An accumulator 228 feeds back the result to the summer for a subsequent transaction while latching the present value and also storing it in a register storage 230.
  • This construction results in a non-deterministic signature accumulation, which is agnostic to the order of the transaction's arrival, high speed, and provides an easy checksum for comparison with an expect value for an easy pass fail determination.
  • the testing transaction agent need only read register file 230 and compare it with its expected value to determine whether the test has passed or failed.
  • signature collection is only performed for write transactions. In other embodiments, signature collection is performed on both read and write transactions.
  • the physical address for the transaction forms part of the checksum and during the posttest comparison the transactions agent use an expected value based on the physical rather than the logical addresses.
  • the use of the physical address is driven by the desire auto response unit as deep in the signal path as possible to the greatest coverage during testing.
  • the logical to physical address conversion by the memory controller occurs quite close to the chip boundary, by placing the auto response unit later in the path, excellent chip coverage is achieved.
  • Auto-response unit 102 includes read-response unit 104, which receives read requests from a memory controller when the system is under test.
  • read-response unit 104 includes an address conversion module 240 that converts the physical address supplied by the memory controller to a logical address that would have been sent by the transaction agent.
  • An example of a logical address conversion is shown in Table 1 below.
  • This conversion is based on a system using DDR 4 16GB X 8 full occupancy (all ranks and all channels) with no interleaving, no remap and no error correction codes. Appropriate mapping may be employed for whatever system memory population is intended. This conversion is required because the memory controller convert the logical address receive with the transaction to a physical address and since the auto response unit is after the memory controller in the signal path, it only receives the physical address. Some embodiments of the invention could place the auto response unit before the memory controller in the signal path.
  • the converted address (that is, the logical address) is then fed into an encoder 242, which applies a set of equations to generate a deterministic value corresponding to that logical address.
  • Data_response[l] f(address bits 12, 23, 11 )
  • Data_ _response[2] f(address bits 19, 37, 11)
  • Data_ _response[3] f(address bits 30, 15, 9)
  • Data_ _response[4] f (address bits 13, 25, 7)
  • Data_ _response[5] f(address bits 28, 16, 10)
  • Data_ _response[6] f (address bits 20, 6, 11)
  • Data_ _response[7] f(address bits 33, 19, 10)
  • Data_ _response[8] f(address bits 16, 32, 11)
  • Data_ _response[9] f(address bits 21, 38, 9)
  • Data_ _response[10] f(address bits 36, 14, 6)
  • Data_ _response[l l] f(address bits 22, 18, 10)
  • Data_ _response[12] f (address bits 29, 13, 8)
  • Data_ _response[13] f(address bits 20, 29, 6)
  • Data_ _response[14] f(address bits 23, 17, 7)
  • Data_ _response[15] f(address bits 17, 33, 6)
  • Data_ _response[16] f(address bits 12, 26, 9)
  • Data_ _response[17] f (address bits 26, 11, 6)
  • Data_ _response[18] f(address bits 21, 38, 7)
  • Data_ _response[19] f(address bits 15, 28, 10)
  • Data_ _response[20] f(address bits 31, 16, 10)
  • Data_ _response[21] f (address bits 26, 21, 6)
  • Data_ _response[22] f(address bits 15, 30, 7)
  • Data_ _response[23] f(address bits 35, 20, 7)
  • Data_ _response[24] f(address bits 18, 27, 9)
  • Data_ _response[25] f(address bits 14, 26, 10)
  • Data_ _response[26] f (address bits 15, 13, 8)
  • Data_ _response[27] f(address bits 35, 12, 8)
  • Data_ _response[28] f(address bits 14, 24, 9)
  • Data_ _response[29] f(address bits 17, 28, 9)
  • Data_ _response[30] f (address bits 34, 9, 10)
  • Data_ _response[31] f(address bits 18, 22, 6)
  • Data_ _response[32] f(address bits 28, 17, 8)
  • Data_ _response[33] f(address bits 36, 15, 11)
  • Data_ _response[34] f(address bits 27, 14, 10)
  • Data_ _response[35] f (address bits 32, 9, 10) Data_response[36 f(address bits 19, 22, 9)
  • Data_ _response 105] f(address bits 12, 14, 7)
  • Data_ _response 106] f(address bits 34, 17, 11)
  • Data_ _response 107] f(address bits 21, 34, 6)
  • Data_ _response 108] f(address bits 36, 20, 10)
  • Data_ _response 109] f(address bits 32, 19, 6)
  • Data_ _response 110] f(address bits 23, 19, 9)
  • Data_ _response HI] f(address bits 18, 24, 11)
  • Data_ _response 112] f(address bits 34, 14, 9)
  • Data_ _response 113] f(address bits 35, 15, 6)
  • Data_ _response 114] f(address bits 25, 18, 10)
  • Data_ _response 115] f(address bits 13, 22, 6)
  • Data_ _response 116] f(address bits 16, 37, 10)
  • Data_ _response 117] f(address bits 20, 29, 8)
  • Data_ _response 118] f(address bits 19, 20, 8)
  • Data_ _response 119] f(address bits 26, 13, 10)
  • Data_ _response 120] f(address bits 35, 12, 7)
  • Data_ _response 121] f(address bits 16, 38, 10)
  • Data_ _response 122] f(address bits 14, 31, 11)
  • Data_ _response 123] f(address bits 28, 11, 9)
  • Data_ _response 124] f(address bits 36, 21, 11)
  • Data_ _response 125] f(address bits 27, 13, 10)
  • Data_ _response 126] f(address bits 17, 30, 9)
  • Data_ _response 127] f(address bits 30, 15, 6 )
  • function f could be an XOR function. However, more complex equations may alternatively be used.
  • the above example is only one possible function set; generally, it is desirable to choose the function f to minimize the aliasing between generated data bits. Simulations may be conducted to ensure sufficient deterministic randomness in the return data. Any set of functions that provide suitable deterministic randomness could be used.
  • the deterministic value generated by the encoder 242 may then be fed into a masking unit 246, which may apply a mask to change or otherwise ensure that one or more bits of the deterministic value resolve to a known value. This may be important where a particular bit has been found to be the source of errors and it is desirable to test if errors exist elsewhere in the system.
  • a register file 248 may hold various masks for this purpose. It is of course possible that the masking logic 246 will leave the original deterministic value unchanged. The masked or unmasked value is then returned to the transaction agent.
  • the auto-response unit 102 includes a mode selector 208 which ensures that the deterministic value is fed back only when the system is in test mode and real data, that is, functional data from the memory is returned from read requests when test mode is not selected.
  • the transaction agent 110, 162 verifies the check sum of the collected signatures and confirms that the read response values have match expected values. It both are true, the logic in the signal path of the transaction is deem to be validated and the chip can be accepted as meeting specifications.
  • Figure 3 is a flow diagram of operation in a system according to one embodiment of the invention.
  • a test routine is loaded into the cache of a transaction agent. This can be done with low speed low cost test equipment.
  • the agent directs the auto- response unit 102 to transition into test mode.
  • the transaction agent configures any desired masking in the auto-response unit 102 at block 306.
  • the transaction agent sends a transaction directed towards the off chip memory.
  • a determination is made whether the transaction is a read. If a read has been received, the auto-response unit 102 converts the physical address to a logical address (that is, the physical address received from the memory controller into a logical address that is used by the transaction agent).
  • the auto-response unit 102 encodes the logical address to yield a deterministic value.
  • the transaction agent maintains a precomputed expected value for the transaction. A determination is made by the transaction agent whether the returned value is equal to the expected value at block 322. If it is not, the read test for that logical address is deemed to have failed at block 324. If at block 310, the transaction is not a read transaction, a determination is made at block 326 if a write transaction has been received. If a write transaction has been received, the signature of that transaction is accumulated as a checksum at block 328. Then, at block 330, a determination is made whether the test transactions are complete. If they are not, further transactions are sent from the agent, and the process continues.
  • the checksum of the accumulated values is acquired and compared with the expected value at block 332. A determination is made whether those values match at block 334. If the checksum of accumulated values matches the expected value, the write test is deemed to pass. Then, a determination is made if there have been any read test failures at block 236. If there have been no read test failures, the test passes at block 240. If not, the test fails at block 238. The test will also fail at block 238 if there is no match of the checksum from the accumulation of signatures.
  • FIG 4 is a block diagram of a system according to one embodiment of the present invention.
  • the computer system 1000 (also referred to as the electronic system 1000) as depicted can employ the auto response testing, according to any of the several disclosed embodiments and their equivalents as set forth in this disclosure.
  • the computer system 1000 may be a mobile device such as a netbook computer.
  • the computer system 1000 may be a mobile device such as a wireless smart phone.
  • the computer system 1000 may be a desktop computer.
  • the computer system 1000 may be a hand-held reader.
  • the computer system 1000 may be a server system.
  • the computer system 1000 may be a supercomputer or high- performance computing system.
  • the electronic system 1000 is a computer system that includes a system bus 1020 to electrically couple the various components of the electronic system 1000.
  • the system bus 1020 is a single bus or any combination of busses according to various embodiments.
  • the electronic system 1000 includes a voltage source 1030 that provides power to the integrated circuit 1010. In some embodiments, the voltage source 1030 supplies current to the integrated circuit 1010 through the system bus 1020.
  • the integrated circuit 1010 is electrically coupled to the system bus 1020 and includes any circuit, or combination of circuits according to an embodiment.
  • the integrated circuit 1010 includes a processor 1012 that can be of any type.
  • the processor 1012 may mean any type of circuit such as, but not limited to, a microprocessor, a microcontroller, a graphics processor, a digital signal processor, or another processor.
  • the processor 1012 includes, or is coupled with, a SIP as disclosed herein.
  • SRAM embodiments are found in memory caches of the processor.
  • the integrated circuit 1010 includes on-die memory 1016 such as static random-access memory (SRAM).
  • the integrated circuit 1010 includes embedded on-die memory 1016 such as embedded dynamic random-access memory (eDRAM).
  • the integrated circuit 1010 is complemented with a subsequent integrated circuit 1011.
  • Useful embodiments include a dual processor 1013 and a dual communications circuit 1015 and dual on-die memory 1017 such as SRAM.
  • the dual integrated circuit 1010 includes embedded on-die memory 1017 such as eDRAM.
  • the electronic system 1000 also includes an external memory 1040 that in turn may include one or more memory elements suitable to the particular application, such as a main memory 1042 in the form of RAM, one or more hard drives 1044, and/or one or more drives that handle removable media 1046, such as diskettes, compact disks (CDs), digital variable disks (DVDs), flash memory drives, and other removable media known in the art.
  • the external memory 1040 may also be embedded memory 1048 such as the first die in a die stack, according to an embodiment.
  • the electronic system 1000 also includes a display device 1050, an audio output 1060.
  • the electronic system 1000 includes an input device such as a controller 1070 that may be a keyboard, mouse, trackball, game controller, microphone, voice-recognition device, or any other input device that inputs information into the electronic system 1000.
  • an input device 1070 is a camera.
  • an input device 1070 is a digital sound recorder.
  • an input device 1070 is a camera and a digital sound recorder.
  • an input device is a touch screen that may be part of display device 1050.
  • the integrated circuit 1010 can be implemented in a number of different embodiments, including a system on a chip (SOC), according to any of the several disclosed embodiments and their equivalents, an electronic system, a computer system, one or more methods of fabricating an integrated circuit, and one or more methods of fabricating an electronic assembly that includes a SOC, according to any of the several disclosed embodiments as set forth herein in the various embodiments and their art-recognized equivalents.
  • the elements, materials, geometries, dimensions, and sequence of operations can all be varied to suit particular I/O coupling requirements including array contact count, array contact configuration for a microelectronic die embedded in a processor mounting substrate according to any of the several disclosed SIP embodiments and their equivalents.
  • a foundation substrate may be included, as represented by the dashed line of Figure 4.
  • Passive devices may also be included, as is also depicted in Figure 4.
  • Some embodiments pertain multi-core system on a chip having at least a first processing core and a second processing fabricated on a chip.
  • An auto-response unit is also fabricated on the chip at a chip boundary.
  • the auto- response unit is to provide a deterministic return value based on a logical address of a received read request.
  • the multi-core system has a memory controller fabricated on the chip and the auto-response unit resides in a signal path between the memory controller and the chip boundary.
  • the auto-response unit includes a converter to convert a physical address to a logical address and an encoder to deterministically encode the return value based on the logical address.
  • multi-core system has an accumulator to non-deterministically accumulate signatures of transactions received by the auto-response unit.
  • multi-core system has a switch fabric on the chip and a controller coupled to the switch fabric.
  • the controller acts as a transaction agent to which the auto-response unit is to respond to a read transaction with a deterministic return value.
  • the auto-response unit has a mode selector to select between a test mode and a functional mode.
  • the auto-response unit provides a deterministic return value only when the test mode is selected.
  • the auto-response unit includes masking logic to mask a bit of the return value responsive to an instruction from a transaction agent.
  • Some embodiments pertain to a method of testing an integrated circuit by transitioning an auto- response module into a test mode. Once in test mode a read transaction is sent from a transaction agent. The read transaction is intercepted in the auto-response module. The auto response module sends a deterministic response to the transaction agent based on the read transaction.
  • the method includes sending a write transaction from the processing agent, intercepting the write transaction in the auto-response module; and accumulating a non-deterministic signature of the write transaction.
  • the method includes translating a physical address of the read transaction into a logical address of the read transaction.
  • a set of equations are applied to the logical address to generate the deterministic response.
  • the auto-response module resides between a memory controller and a chip boundary.
  • the method includes applying a mask to the deterministic response to force one or more bits of the deterministic response to a known value.
  • Some embodiments pertain to an on-chip test component with a mode selector to select between a test mode and a functional mode.
  • the test component also has an encoder to encode a logical address into a deterministic return value and masking logic to mask one or more bits of the return value responsive to a signal from a transaction agent.
  • the on-chip test component has a signature collector to store signatures of write transactions received at the test component.
  • the masking logic comprises a register file to retain one or more masks.
  • the on-chip test component includes response logic to send the deterministic return value to an agent that is the source of the read request.
  • the signatures collected are non-deterministic.
  • the signature collector includes a data compressor, an accumulator, and a register file.
  • Some embodiments pertain to a chip having on-chip test functionality including a transaction agent fabricated on the chip.
  • the chip also includes means for accumulating non- deterministic signatures of write transactions from the transaction agent and means for automatically responding with a deterministic return value when a read transaction is received from the transaction agent.
  • the chip includes means for selecting between a test mode and a functional mode.
  • the means for automatically responding has means for encoding a logical address into a deterministic value and means for masking bits of the deterministic value.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

A method and system for high speed on chip testing for quality assurance. A multi-core system on a chip has a plurality of processing cores. The cores act as transaction agents with an auto-response unit fabricated on the chip at a chip boundary, the auto-response unit to provide a deterministic return value based on a logical address of a received read request.

Description

LOW COST INBUILT DETERMINISTIC TESTER FOR SOC TESTING
FIELD
Embodiments of the invention relate to system on a chip testing. More specifically, embodiments relate to use of an auto-response unit fabricated on a chip to perform on-chip testing.
BACKGROUND
Testing of systems on a chip is essentially for quality assurance. As systems have become more complex and faster, effective testing has become more difficult and more expensive. Generally, testing involves using external testers to analyze data exchanges with an external memory. Unfortunately, because of the increasing disparity between tester speeds and double data rate (DDR) memory exchanges, existing techniques fail to provide the desired quality assurance.
Stretch mode, one traditional technique in which the data strobe time is stretched with a ratio equivalent to the speed ratio of the DDR to the tester speed, become entirely impractical as speeds increase. The testing interface has a much slower speed than is desired, often with a stretch factor of four or more. As the stretch factor increases, so does the command bubble duration. The logic to handle the DDR input/output (I/O) is both complex and intrusive.
Moreover, for stretch mode to work for design for manufacturability (DFX) tests, enormous tuning of the tester is required. Such tuning has been found impractical to real- world applications.
A second historical testing option is write data always response (WDAR) mode. This mechanism requires 128 cache lines of additional memory for data. Often, this amount of memory does not exist in products to be tested. Moreover, WDAR has a huge time impact resulting from the need to fill the memory with known data before starting the test. Finally, it is not possible to calculate the expected response on the fly. Therefore, the WDAR test writer must perform pre-silicon simulation and compare with post-silicon results. Often, mismatches occur between the signatures calculated from the simulation and those that exist in the actual silicon. BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that different references to "an" or "one" embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
Figure 1 is a block diagram a system according to one embodiment of the invention. Figure 2 is a more detailed block diagram of the auto-response unit according to one embodiment of the invention.
Figure 3 is a flow diagram of operation of a system according to one embodiment of the invention.
Figure 4 is a block diagram of a system that may incorporate one embodiment of the invention.
DETAILED DESCRIPTION
Figure 1 is a block diagram a system according to one embodiment of the invention. Auto-response unit 102 is fabricated on a chip 100 having a chip boundary 180. Auto-response unit 102 is preferably fabricated near the chip boundary 180 to provide effective testing for chip devices further from the boundary than itself. As explained below, the auto responder effectively tests all components of the chip in the signal path of the read and write transactions issued during a test regimen. In one embodiment, auto-response unit 102 is coupled between a memory controller 160 and the memory ports 182 through which the memory controller 160 accesses off-chip memory (not shown). In this arrangement the auto response unit can provide effective testing of the memory controller 160 in addition to other chip components.
Auto-response unit 102 includes a signature collector 106 that non-deterministically collects signatures of transactions received at the auto-response unit 102. In some embodiments, signature collector 106 may collect only signatures of write transactions. In other embodiments, signature collector 106 may collect signatures of both read and write transactions. Auto- response unit 102 also includes a read-response module 104 to provide an automatic
deterministic response to read requests received by the auto-response unit 102. Auto-response unit 102 is discussed more detail below with reference to Figure 2.
Chip 100 has fabricated thereon multiple core modules 110, 112. While two core modules are shown, an arbitrarily large number of core modules may be fabricated on a chip. As such, an arbitrary number of core modules are deemed within the scope and contemplation of various embodiments of the invention. Each core module is associated with a cache memory. Here, core module 110 is associated with cache 116, and core module 112 is associated with cache 118. If more cores are present correspondingly more caches will be present. A Graphic technologies module 114 may also be fabricated on chip 100. Graphic technology module 114 may include a graphics processing unit (GPU) and any other components desired for graphics support within the system. In some embodiments an analogous auto response unit may be use to test the GPU subsystem by fabrication it at the chip boundary between a graphics controller (not shown) and the graphics input/output interface (not shown). Chip 100 provides a fabric 120 through which the core modules 110, 112 communicate and can send read and write requests via an interface fabric 122 to memory controller 160. A bus functional module 164 is provided to facilitate communication between the north complex of chip 100 and the south complex. The south complex may include a plurality of fabrics 168 and 170 that provide network connectivity through IP ports 166. A test controller 162 may also be fabricated in the south complex. Test controller 162 can act as a transaction agent, sending read and write transactions through the local fabrics 168, 170 and the interface fabric 122 to memory controller 160.
The memory controller 160 receives a transaction either from one of the core modules, e.g., transaction 190, or from the test controller, e.g., transaction 192, and translates the logical address specified in the transaction to a physical address, which is then forwarded through the auto-response unit 102. If the auto-response unit 102 is not in a test mode, it takes no action and the transaction is conducted in the normal manner of the DDR interface 182. But, if the auto- response unit is in a test mode, it will handle the transaction as discussed more fully with reference to Figure 2. Notably, signature collectors 106 can be distributed at different branch points around the system to improve localization of faults identified in the course of a test.
Figure 2 is a more detailed block diagram of the auto-response unit according to one embodiment of the invention. As noted with reference to Figure 1, auto-response unit 102 includes a signature collector 106. In one embodiment, signature collector 106 uses AND logic with a global trigger to ensure valid data has passed to a compression unit 222. A summer 224 adds compressed data is to any previously accumulated signatures creating a running non- deterministic checksum. An accumulator 228 feeds back the result to the summer for a subsequent transaction while latching the present value and also storing it in a register storage 230. This construction results in a non-deterministic signature accumulation, which is agnostic to the order of the transaction's arrival, high speed, and provides an easy checksum for comparison with an expect value for an easy pass fail determination. When a test is complete, the testing transaction agent need only read register file 230 and compare it with its expected value to determine whether the test has passed or failed. In one embodiment, signature collection is only performed for write transactions. In other embodiments, signature collection is performed on both read and write transactions. Generally, the physical address for the transaction forms part of the checksum and during the posttest comparison the transactions agent use an expected value based on the physical rather than the logical addresses. The use of the physical address is driven by the desire auto response unit as deep in the signal path as possible to the greatest coverage during testing. The logical to physical address conversion by the memory controller occurs quite close to the chip boundary, by placing the auto response unit later in the path, excellent chip coverage is achieved.
Auto-response unit 102 includes read-response unit 104, which receives read requests from a memory controller when the system is under test. In one embodiment, read-response unit 104 includes an address conversion module 240 that converts the physical address supplied by the memory controller to a logical address that would have been sent by the transaction agent. An example of a logical address conversion is shown in Table 1 below.
Figure imgf000005_0001
TABLE 1
This conversion is based on a system using DDR 4 16GB X 8 full occupancy (all ranks and all channels) with no interleaving, no remap and no error correction codes. Appropriate mapping may be employed for whatever system memory population is intended. This conversion is required because the memory controller convert the logical address receive with the transaction to a physical address and since the auto response unit is after the memory controller in the signal path, it only receives the physical address. Some embodiments of the invention could place the auto response unit before the memory controller in the signal path.
Those embodiments would avoid the need for physical to logical address conversion in the auto response unit, but would not provide effective testing of the memory controller.
The converted address (that is, the logical address) is then fed into an encoder 242, which applies a set of equations to generate a deterministic value corresponding to that logical address. In one embodiment, the encoder 242 generates 128 bits of data response to be returned to the transaction agent. Each data bit generation involves a unique logic equation. For example: Data_response[0] = f( address bits 18, 25, 11)
Data_response[l] = f(address bits 12, 23, 11 ) Data_ _response[2] = f(address bits 19, 37, 11)
Data_ _response[3] = f(address bits 30, 15, 9)
Data_ _response[4] = f (address bits 13, 25, 7)
Data_ _response[5] = f(address bits 28, 16, 10)
Data_ _response[6] = f (address bits 20, 6, 11)
Data_ _response[7] = f(address bits 33, 19, 10)
Data_ _response[8] = f(address bits 16, 32, 11)
Data_ _response[9] = f(address bits 21, 38, 9)
Data_ _response[10] = f(address bits 36, 14, 6)
Data_ _response[l l] = f(address bits 22, 18, 10)
Data_ _response[12] = f (address bits 29, 13, 8)
Data_ _response[13] = f(address bits 20, 29, 6)
Data_ _response[14] = f(address bits 23, 17, 7)
Data_ _response[15] = f(address bits 17, 33, 6)
Data_ _response[16] = f(address bits 12, 26, 9)
Data_ _response[17] = f (address bits 26, 11, 6)
Data_ _response[18] = f(address bits 21, 38, 7)
Data_ _response[19] = f(address bits 15, 28, 10)
Data_ _response[20] = f(address bits 31, 16, 10)
Data_ _response[21] = f (address bits 26, 21, 6)
Data_ _response[22] = f(address bits 15, 30, 7)
Data_ _response[23] = f(address bits 35, 20, 7)
Data_ _response[24] = f(address bits 18, 27, 9)
Data_ _response[25] = f(address bits 14, 26, 10)
Data_ _response[26] = f (address bits 15, 13, 8)
Data_ _response[27] = f(address bits 35, 12, 8)
Data_ _response[28] = f(address bits 14, 24, 9)
Data_ _response[29] = f(address bits 17, 28, 9)
Data_ _response[30] = f (address bits 34, 9, 10)
Data_ _response[31] = f(address bits 18, 22, 6)
Data_ _response[32] = f(address bits 28, 17, 8)
Data_ _response[33] = f(address bits 36, 15, 11)
Data_ _response[34] = f(address bits 27, 14, 10)
Data_ _response[35] = f (address bits 32, 9, 10) Data_response[36 f(address bits 19, 22, 9)
Data_response[37 f(address bits 18, 38, 7)
Data_response[38 f(address bits 26, 18, 11)
Data_response[39 f (address bits 31, 19, 6)
Data_response[40 f(address bits 14, 37, 8)
Data_response[41 f (address bits 29, 12, 7)
Data_response[42 f(address bits 38, 13, 9)
Data_response[43 f(address bits 18, 30, 6)
Data_response[44 f (address bits 13, 29, 8)
Data_response[45 f(address bits 28, 16, 8)
Data_response[46 f(address bits 16, 28, 8)
Data_response[47 f (address bits 25, 21, 11)
Data_response[48 f(address bits 21, 13, 6)
Data_response[49 f(address bits 18, 25, 7)
Data_response[50 f (address bits 23, 21, 8)
Data_response[51 f (address bits 31, 20, 9)
Data_response[52 f(address bits 15, 32, 10)
Data_response[53 f(address bits 17, 36, 11)
Data_response[54 f (address bits 20, 35, 8)
Data_response[55 f (address bits 14, 22, 11)
Data_response[56 f(address bits 21, 34, 9)
Data_response[57^ f(address bits 32, 19, 10)
Data_response[58" f(address bits 38, 20, 10)
Data_response[59 f (address bits 24, 16, 8)
Data_response[60 f(address bits 37, 13, 10)
Data_response[61 f(address bits 29, 6, 11)
Data_response[62 f (address bits 15, 31, 6)
Data_response[63 f(address bits 17, 33, 9)
Data_response[64j f(address bits 22, 18, 10)
Data_response[65] f(address bits 14, 32, 8)
Data_response[66] f (address bits 32, 16, 7)
Data_response[67] f(address bits 37, 11, 7)
Data_response[68] f(address bits 31, 7, 8)
Data_response[69] f(address bits 17, 34, 9) Data _response[70 = f(address bits 22, 20, 6) Data _response[71 = f (address bits 31, 15, 11) Data _response[72 = f (address bits 13, 36, 11) Data _response[73 = f(address bits 25, 18, 7) Data _response[74 = f(address bits 14, 28, 6) Data _response[75 = f(address bits 21, 26, 10) Data _response[76 = f(address bits 27, 13, 8) Data _response[77 = f (address bits 24, 12, 6) Data _response[78 = f (address bits 22, 16, 9) Data _response[79 = f(address bits 29, 7, 8) Data. _response[80 = f(address bits 20, 30, 9) Data _response[81 = f (address bits 23, 14, 6) Data _response[82 = f(address bits 34, 17, 11) Data _response[83 = f(address bits 38, 19, 8) Data _response[84 = f(address bits 27, 21, 10) Data _response[85 = f(address bits 38, 12, 6) Data _response[86 = f(address bits 14, 33, 8) Data _response[87 = f(address bits 27, 21, 7) Data _response[88 = f(address bits 15, 37, 7) Data _response[89 = f(address bits 12, 29, 11) Data _response[90 = f(address bits 35, 6, 8) Data _response[91 = f(address bits 18, 24, 10) Data _response[92 = f(address bits 35, 20, 7) Data _response[93 = f(address bits 33, 16, 9) Data _response[94 : f(address bits 19, 21, 10) Data _response[95 : f(address bits 15, 33, 10) Data _response[96 : f (address bits 15, 23, 11) Data _response[97 : f(address bits 12, 24, 10) Data _response[98 : f(address bits 16, 27, 8) Data. _response[99 : f(address bits 19, 17, 11) Data_ _response[100] = f(address bits 17, 33, 8) Data_ _response[101] = f(address bits 27, 8, 7) Data_ _response[102] = f(address bits 37, 7, 8) Data _response[103] = f(address bits 38, 18, 6) Data_ _response 104] = f(address bits 18, 37, 8)
Data_ _response 105] = f(address bits 12, 14, 7)
Data_ _response 106] = f(address bits 34, 17, 11)
Data_ _response 107] = f(address bits 21, 34, 6)
Data_ _response 108] = f(address bits 36, 20, 10)
Data_ _response 109] = f(address bits 32, 19, 6)
Data_ _response 110] = f(address bits 23, 19, 9)
Data_ _response HI] = f(address bits 18, 24, 11)
Data_ _response 112] = f(address bits 34, 14, 9)
Data_ _response 113] = f(address bits 35, 15, 6)
Data_ _response 114] = f(address bits 25, 18, 10)
Data_ _response 115] = f(address bits 13, 22, 6)
Data_ _response 116] = f(address bits 16, 37, 10)
Data_ _response 117] = f(address bits 20, 29, 8)
Data_ _response 118] = f(address bits 19, 20, 8)
Data_ _response 119] = f(address bits 26, 13, 10)
Data_ _response 120] = f(address bits 35, 12, 7)
Data_ _response 121] = f(address bits 16, 38, 10)
Data_ _response 122] = f(address bits 14, 31, 11)
Data_ _response 123] = f(address bits 28, 11, 9)
Data_ _response 124] = f(address bits 36, 21, 11)
Data_ _response 125] = f(address bits 27, 13, 10)
Data_ _response 126] = f(address bits 17, 30, 9)
Data_ _response 127] = f(address bits 30, 15, 6 )
In one embodiment, function f could be an XOR function. However, more complex equations may alternatively be used. The above example is only one possible function set; generally, it is desirable to choose the function f to minimize the aliasing between generated data bits. Simulations may be conducted to ensure sufficient deterministic randomness in the return data. Any set of functions that provide suitable deterministic randomness could be used. The deterministic value generated by the encoder 242 may then be fed into a masking unit 246, which may apply a mask to change or otherwise ensure that one or more bits of the deterministic value resolve to a known value. This may be important where a particular bit has been found to be the source of errors and it is desirable to test if errors exist elsewhere in the system. A register file 248 may hold various masks for this purpose. It is of course possible that the masking logic 246 will leave the original deterministic value unchanged. The masked or unmasked value is then returned to the transaction agent. The auto-response unit 102 includes a mode selector 208 which ensures that the deterministic value is fed back only when the system is in test mode and real data, that is, functional data from the memory is returned from read requests when test mode is not selected.
Referring again to Figure 1, after a series of transactions e.g. 190, 192 conducted as part of a test, the transaction agent 110, 162 respectively, verifies the check sum of the collected signatures and confirms that the read response values have match expected values. It both are true, the logic in the signal path of the transaction is deem to be validated and the chip can be accepted as meeting specifications.
Figure 3 is a flow diagram of operation in a system according to one embodiment of the invention. At block 302, a test routine is loaded into the cache of a transaction agent. This can be done with low speed low cost test equipment. At block 304, the agent directs the auto- response unit 102 to transition into test mode. The transaction agent configures any desired masking in the auto-response unit 102 at block 306. At block 308, the transaction agent sends a transaction directed towards the off chip memory. At block 310, a determination is made whether the transaction is a read. If a read has been received, the auto-response unit 102 converts the physical address to a logical address (that is, the physical address received from the memory controller into a logical address that is used by the transaction agent). At block 314, the auto-response unit 102 encodes the logical address to yield a deterministic value. A
determination is then made if masking is desired at block 316. If masking is desired, a specified mask is applied at block 318. The resultant value, with or without masking, is then returned to the transaction agent at block 320.
Generally, the transaction agent maintains a precomputed expected value for the transaction. A determination is made by the transaction agent whether the returned value is equal to the expected value at block 322. If it is not, the read test for that logical address is deemed to have failed at block 324. If at block 310, the transaction is not a read transaction, a determination is made at block 326 if a write transaction has been received. If a write transaction has been received, the signature of that transaction is accumulated as a checksum at block 328. Then, at block 330, a determination is made whether the test transactions are complete. If they are not, further transactions are sent from the agent, and the process continues. If all transactions are complete, the checksum of the accumulated values is acquired and compared with the expected value at block 332. A determination is made whether those values match at block 334. If the checksum of accumulated values matches the expected value, the write test is deemed to pass. Then, a determination is made if there have been any read test failures at block 236. If there have been no read test failures, the test passes at block 240. If not, the test fails at block 238. The test will also fail at block 238 if there is no match of the checksum from the accumulation of signatures.
Figure 4 is a block diagram of a system according to one embodiment of the present invention. The computer system 1000 (also referred to as the electronic system 1000) as depicted can employ the auto response testing, according to any of the several disclosed embodiments and their equivalents as set forth in this disclosure. The computer system 1000 may be a mobile device such as a netbook computer. The computer system 1000 may be a mobile device such as a wireless smart phone. The computer system 1000 may be a desktop computer. The computer system 1000 may be a hand-held reader. The computer system 1000 may be a server system. The computer system 1000 may be a supercomputer or high- performance computing system.
In an embodiment, the electronic system 1000 is a computer system that includes a system bus 1020 to electrically couple the various components of the electronic system 1000. The system bus 1020 is a single bus or any combination of busses according to various embodiments. The electronic system 1000 includes a voltage source 1030 that provides power to the integrated circuit 1010. In some embodiments, the voltage source 1030 supplies current to the integrated circuit 1010 through the system bus 1020.
The integrated circuit 1010 is electrically coupled to the system bus 1020 and includes any circuit, or combination of circuits according to an embodiment. In an embodiment, the integrated circuit 1010 includes a processor 1012 that can be of any type. As used herein, the processor 1012 may mean any type of circuit such as, but not limited to, a microprocessor, a microcontroller, a graphics processor, a digital signal processor, or another processor. In an embodiment, the processor 1012 includes, or is coupled with, a SIP as disclosed herein. In an embodiment, SRAM embodiments are found in memory caches of the processor. Other types of circuits that can be included in the integrated circuit 1010 are a custom circuit or an application- specific integrated circuit (ASIC), such as a communications circuit 1014 for use in wireless devices such as cellular telephones, smart phones, pagers, portable computers, two-way radios, and similar electronic systems, or a communications circuit for servers. In an embodiment, the integrated circuit 1010 includes on-die memory 1016 such as static random-access memory (SRAM). In an embodiment, the integrated circuit 1010 includes embedded on-die memory 1016 such as embedded dynamic random-access memory (eDRAM). In an embodiment, the integrated circuit 1010 is complemented with a subsequent integrated circuit 1011. Useful embodiments include a dual processor 1013 and a dual communications circuit 1015 and dual on-die memory 1017 such as SRAM. In an embodiment, the dual integrated circuit 1010 includes embedded on-die memory 1017 such as eDRAM.
In an embodiment, the electronic system 1000 also includes an external memory 1040 that in turn may include one or more memory elements suitable to the particular application, such as a main memory 1042 in the form of RAM, one or more hard drives 1044, and/or one or more drives that handle removable media 1046, such as diskettes, compact disks (CDs), digital variable disks (DVDs), flash memory drives, and other removable media known in the art. The external memory 1040 may also be embedded memory 1048 such as the first die in a die stack, according to an embodiment.
In an embodiment, the electronic system 1000 also includes a display device 1050, an audio output 1060. In an embodiment, the electronic system 1000 includes an input device such as a controller 1070 that may be a keyboard, mouse, trackball, game controller, microphone, voice-recognition device, or any other input device that inputs information into the electronic system 1000. In an embodiment, an input device 1070 is a camera. In an embodiment, an input device 1070 is a digital sound recorder. In an embodiment, an input device 1070 is a camera and a digital sound recorder. In an embodiment, an input device is a touch screen that may be part of display device 1050.
As shown herein, the integrated circuit 1010 can be implemented in a number of different embodiments, including a system on a chip (SOC), according to any of the several disclosed embodiments and their equivalents, an electronic system, a computer system, one or more methods of fabricating an integrated circuit, and one or more methods of fabricating an electronic assembly that includes a SOC, according to any of the several disclosed embodiments as set forth herein in the various embodiments and their art-recognized equivalents. The elements, materials, geometries, dimensions, and sequence of operations can all be varied to suit particular I/O coupling requirements including array contact count, array contact configuration for a microelectronic die embedded in a processor mounting substrate according to any of the several disclosed SIP embodiments and their equivalents. A foundation substrate may be included, as represented by the dashed line of Figure 4. Passive devices may also be included, as is also depicted in Figure 4.
The following examples pertain to further embodiments. The various features of the different embodiments may be variously combined with some features included and others excluded to suit a variety of different applications. Some embodiments pertain multi-core system on a chip having at least a first processing core and a second processing fabricated on a chip.
An auto-response unit is also fabricated on the chip at a chip boundary. The auto- response unit is to provide a deterministic return value based on a logical address of a received read request.
In further embodiments, the multi-core system has a memory controller fabricated on the chip and the auto-response unit resides in a signal path between the memory controller and the chip boundary.
In further embodiments, the auto-response unit includes a converter to convert a physical address to a logical address and an encoder to deterministically encode the return value based on the logical address.
In further embodiments, multi-core system has an accumulator to non-deterministically accumulate signatures of transactions received by the auto-response unit.
In further embodiments, multi-core system has a switch fabric on the chip and a controller coupled to the switch fabric. The controller acts as a transaction agent to which the auto-response unit is to respond to a read transaction with a deterministic return value.
In further embodiments, the auto-response unit has a mode selector to select between a test mode and a functional mode. The auto-response unit provides a deterministic return value only when the test mode is selected.
In further embodiments, the auto-response unit includes masking logic to mask a bit of the return value responsive to an instruction from a transaction agent.
Some embodiments pertain to a method of testing an integrated circuit by transitioning an auto- response module into a test mode. Once in test mode a read transaction is sent from a transaction agent. The read transaction is intercepted in the auto-response module. The auto response module sends a deterministic response to the transaction agent based on the read transaction.
In further embodiments, the method includes sending a write transaction from the processing agent, intercepting the write transaction in the auto-response module; and accumulating a non-deterministic signature of the write transaction.
In further embodiments, the method includes translating a physical address of the read transaction into a logical address of the read transaction. A set of equations are applied to the logical address to generate the deterministic response.
In further embodiments, the auto-response module resides between a memory controller and a chip boundary.
In further embodiments, the method includes applying a mask to the deterministic response to force one or more bits of the deterministic response to a known value. Some embodiments pertain to an on-chip test component with a mode selector to select between a test mode and a functional mode. The test component also has an encoder to encode a logical address into a deterministic return value and masking logic to mask one or more bits of the return value responsive to a signal from a transaction agent.
In further embodiments, the on-chip test component has a signature collector to store signatures of write transactions received at the test component.
In further embodiments, the masking logic comprises a register file to retain one or more masks.
In further embodiments, the on-chip test component includes response logic to send the deterministic return value to an agent that is the source of the read request.
In further embodiments, the signatures collected are non-deterministic.
In further embodiments, the signature collector includes a data compressor, an accumulator, and a register file.
Some embodiments pertain to a chip having on-chip test functionality including a transaction agent fabricated on the chip. The chip also includes means for accumulating non- deterministic signatures of write transactions from the transaction agent and means for automatically responding with a deterministic return value when a read transaction is received from the transaction agent.
In further embodiments, the chip includes means for selecting between a test mode and a functional mode.
In further embodiments, the means for automatically responding has means for encoding a logical address into a deterministic value and means for masking bits of the deterministic value.
While embodiments of the invention are discussed above in the context of flow diagrams reflecting a particular linear order, this is for convenience only. In some cases, various operations may be performed in a different order than shown or various operations may occur in parallel. It should also be recognized that some operations described with respect to one embodiment may be advantageously incorporated into another embodiment. Such incorporation is expressly contemplated.
In the foregoing specification, the invention has been described with reference to the specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

CLAIMS What is claimed is:
1. A multi-core system on a chip comprising:
a first processing core fabricated on a chip;
a second processing core fabricated on the chip; and
an auto-response unit fabricated on the chip at a chip boundary, the auto-response unit to provide a deterministic return value based on a logical address of a received read request.
2. The multi-core system of claim 1, further comprising:
a memory controller fabricated on the chip,
wherein the auto-response unit resides in a signal path between the memory controller and the chip boundary.
3. The multi-core system of claims 1 or 2, wherein the auto-response unit comprises:
a converter to convert a physical address to a logical address; and
an encoder to deterministically encode the return value based on the logical address.
4. The multi-core system of claims 1 or 2, further comprising:
an accumulator to non-deterministically accumulate signatures of transactions received by the auto-response unit.
5. The multi-core system of claim 1 or 2, further comprising:
a switch fabric on the chip;
a controller coupled to the switch fabric;
wherein the auto-response unit is to respond to a read transaction from the controller with a deterministic return value.
6. The multi-core system of claims 1 or 2, wherein the auto-response unit comprises:
a mode selector to select between a test mode and a functional mode;
wherein the auto-response unit provides a deterministic return value only when the test mode is selected.
7. The multi-core system of claim 1 or 2, wherein the auto-response unit further comprises: masking logic to mask a bit of the return value responsive to an instruction from a transaction agent.
8. A method of testing an integrated circuit, comprising:
transitioning an auto-response module into a test mode;
sending a read transaction from a transaction agent;
intercepting the read transaction in the auto-response module; and
sending a deterministic response to the transaction agent based on the read transaction.
9. The method of claim 8, further comprising:
sending a write transaction from the processing agent;
intercepting the write transaction in the auto-response module; and
accumulating a non-deterministic signature of the write transaction.
10. The method of claims 8 or 9, further comprising:
translating a physical address of the read transaction into a logical address of the read transaction; and
applying a set of equations to the logical address to generate the deterministic response.
11. The method of claims 8 or 9, wherein the auto-response module resides between a memory controller and a chip boundary.
12. The method of claim 10, further comprising:
applying a mask to the deterministic response to force one or more bits of the deterministic response to a known value.
13. An on-chip test component, comprising:
a mode selector to select between a test mode and a functional mode;
an encoder to encode a logical address into a deterministic return value; and
masking logic to mask one or more bits of the return value responsive to a signal from a transaction agent.
14. The on-chip test component of claim 13, further comprising a signature collector to store signatures of write transactions received at the test component.
15. The on-chip test component of claims 13 or 14, wherein the masking logic comprises a register file to retain one or more masks.
16. The on-chip test component of claims 13 or 14, further comprising:
response logic to send the deterministic return value to an agent that is the source of the read request.
17. The on-chip test component of claims 13 or 14, wherein the signatures collected are non- deterministic.
18. The on-chip test component of claims 13 or 14, wherein the signature collector comprises:
a data compressor;
an accumulator; and
a register file.
19. A chip having on-chip test functionality comprising:
a transaction agent fabricated on the chip; means for accumulating non-deterministic signatures of write transactions from the transaction agent; and
means for automatically responding with a deterministic return value when a read transaction is received from the transaction agent.
20. The chip of claim 19, further comprising:
means for selecting between a test mode and a functional mode.
21. The chip of claims 19 or 20, wherein the means for automatically responding comprises: means for encoding a logical address into a deterministic value; and
means for masking bits of the deterministic value.
22. The chip of claims 19 or 20, further comprising:
a switch fabric on the chip; and
a controller coupled to the switch fabric that act as the transaction agent.
23. The chip of claims 19 or 20 wherein the chip comprises:
a plurality of processing cores any of which can function as the transaction agent.
PCT/US2017/012857 2016-03-01 2017-01-10 Low cost inbuilt deterministic tester for soc testing Ceased WO2017151223A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/057,685 US10192633B2 (en) 2016-03-01 2016-03-01 Low cost inbuilt deterministic tester for SOC testing
US15/057,685 2016-03-01

Publications (1)

Publication Number Publication Date
WO2017151223A1 true WO2017151223A1 (en) 2017-09-08

Family

ID=59723748

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2017/012857 Ceased WO2017151223A1 (en) 2016-03-01 2017-01-10 Low cost inbuilt deterministic tester for soc testing

Country Status (2)

Country Link
US (1) US10192633B2 (en)
WO (1) WO2017151223A1 (en)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US11720714B2 (en) * 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US12411962B2 (en) 2019-11-22 2025-09-09 Pure Storage, Inc. Managed run-time environment-based detection of a ransomware attack
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US12153670B2 (en) 2019-11-22 2024-11-26 Pure Storage, Inc. Host-driven threat detection-based protection of storage elements within a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11625481B2 (en) * 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US12204657B2 (en) 2019-11-22 2025-01-21 Pure Storage, Inc. Similar block detection-based detection of a ransomware attack
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US12248566B2 (en) 2019-11-22 2025-03-11 Pure Storage, Inc. Snapshot deletion pattern-based determination of ransomware attack against data maintained by a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US12050683B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US12561428B2 (en) 2019-11-22 2026-02-24 Pure Storage, Inc. Remote analysis of potentially corrupt data written to a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11500788B2 (en) * 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000029368A (en) * 1998-10-30 2000-05-25 어드밴테스트 코포레이션 Method and structure for testing embedded cores based system-on-a-chip
US20030005380A1 (en) * 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US20070168796A1 (en) * 2005-04-19 2007-07-19 Chris Martin On-chip sampling circuit and method
US20090083594A1 (en) * 2006-04-28 2009-03-26 International Business Machines Corporation Testing Functional Boundary Logic at Asynchronous Clock Boundaries of an Integrated Circuit Device
US20150316605A1 (en) * 2014-04-30 2015-11-05 Duke University Software-based self-test and diagnosis using on-chip memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061545A1 (en) * 1994-09-30 2003-03-27 Chandrashekhar S. Patwardhan Method and apparatus for providing test mode access to an instruction cache and microcode rom
JPH10171676A (en) * 1996-12-10 1998-06-26 Toshiba Corp Microprocessor testability circuit.
US20050080581A1 (en) * 2003-09-22 2005-04-14 David Zimmerman Built-in self test for memory interconnect testing
US20100262773A1 (en) * 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
US8868992B2 (en) * 2009-12-31 2014-10-21 Intel Corporation Robust memory link testing using memory controller
KR20120119960A (en) * 2011-04-21 2012-11-01 삼성전자주식회사 Semiconductor device capable of testing micro-bump connectivity
KR20130060791A (en) * 2011-11-30 2013-06-10 삼성전자주식회사 Memory system, data storage device, memory card, and ssd including wear level control logic

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000029368A (en) * 1998-10-30 2000-05-25 어드밴테스트 코포레이션 Method and structure for testing embedded cores based system-on-a-chip
US20030005380A1 (en) * 2001-06-29 2003-01-02 Nguyen Hang T. Method and apparatus for testing multi-core processors
US20070168796A1 (en) * 2005-04-19 2007-07-19 Chris Martin On-chip sampling circuit and method
US20090083594A1 (en) * 2006-04-28 2009-03-26 International Business Machines Corporation Testing Functional Boundary Logic at Asynchronous Clock Boundaries of an Integrated Circuit Device
US20150316605A1 (en) * 2014-04-30 2015-11-05 Duke University Software-based self-test and diagnosis using on-chip memory

Also Published As

Publication number Publication date
US10192633B2 (en) 2019-01-29
US20170256325A1 (en) 2017-09-07

Similar Documents

Publication Publication Date Title
US10192633B2 (en) Low cost inbuilt deterministic tester for SOC testing
US11789815B2 (en) Memory controller and memory device including the same
CN105589770B (en) Method and device for fault detection
US9577671B2 (en) Parity check circuit and memory device including the same
KR20160143744A (en) Memory device having controller with local memory
WO2011009332A1 (en) Method and device for processing data caching
KR20170034224A (en) Semiconductor memory and semiconductor system using the same
CN115794481A (en) Memory controller and memory system including same
CN106445725A (en) Test method for error mode of flash memory and system
US9298614B2 (en) Combined rank and linear address incrementing utility for computer memory test operations
US9063827B2 (en) Systems and methods for storing and retrieving a defect map in a DRAM component
Roberts et al. FAULTSIM: A fast, configurable memory-resilience simulator
US11105854B2 (en) System, apparatus and method for inter-die functional testing of an integrated circuit
EP3971593B1 (en) Probe device, test device, and test method for semiconductor device
CN109508247B (en) Method, system, and electronic device for locating where a memory error occurs
TWI773570B (en) Computer system based on wafer-on-wafer architecture and memory test method
CN115879720A (en) Inspection sequence optimization method and system adopting universal inspection tool for inspection
CN115827304A (en) System and method for checking on-chip high-speed bus data
US11193975B2 (en) Compressed test patterns for a field programmable gate array
CN115346593B (en) Memory fault repairing method, device, computer equipment and storage medium
WO2024065794A1 (en) Evaluation and mitigation of soft-errors in parallel and distributed training and inference of transformers
Sunita et al. Matrix code based multiple error correction technique for n-bit memory data
Das et al. Space compression revisited
CN116504301A (en) Single event effect detection method and device
US20110320894A1 (en) Surrogate Circuit For Testing An Interface

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17760421

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17760421

Country of ref document: EP

Kind code of ref document: A1