WO2004005949A1 - Hierarchical test methodology for multi-core chips - Google Patents

Hierarchical test methodology for multi-core chips Download PDF

Info

Publication number
WO2004005949A1
WO2004005949A1 PCT/US2003/021101 US0321101W WO2004005949A1 WO 2004005949 A1 WO2004005949 A1 WO 2004005949A1 US 0321101 W US0321101 W US 0321101W WO 2004005949 A1 WO2004005949 A1 WO 2004005949A1
Authority
WO
WIPO (PCT)
Prior art keywords
core
bist
test
controller
chip
Prior art date
Application number
PCT/US2003/021101
Other languages
French (fr)
Inventor
Rajesh Y. Pendurkar
Original Assignee
Sun Microsystems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems, Inc. filed Critical Sun Microsystems, Inc.
Priority to AU2003249712A priority Critical patent/AU2003249712A1/en
Priority to GB0425535A priority patent/GB2404446A/en
Publication of WO2004005949A1 publication Critical patent/WO2004005949A1/en

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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318558Addressing or selecting of subparts of the device under test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318558Addressing or selecting of subparts of the device under test
    • G01R31/318561Identification of the subpart
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C2029/3202Scan chain

Definitions

  • This invention relates generally to integrated circuit devices, and specifically to the testing of an integrated circuit device having a plurality of cores.
  • a core-based design one or more pre-existing cores are integrated as cells onto a single integrated circuit (IC) known as a multi-core chip (MCC) to form a more complex circuit.
  • IC integrated circuit
  • MCC multi-core chip
  • the pre-existing cores have already been designed and verified, they may be replicated and interconnected to form more powerful circuits without incurring the time and expense of developing an entirely new next-generation circuit.
  • semiconductor manufacturers may increase processor capabilities by replicating a number of existing processor cores within an MCC that may then be offered as the next generation processor.
  • JTAG Joint Test Action Group
  • the JTAG architecture may also be used to access a circuit's built-in self test (BIST) logic after the circuit is mounted onto a system board.
  • BIST built-in self test
  • an enable signal is applied to the internal BIST logic via the TAP controller to activate the BIST logic to perform test operations of the circuit.
  • the BIST logic includes a Test Pattern Generator that applies test patterns to the circuit under test. The test pattern is applied to the circuit under test, and the resultant output data is compared with an expected signature to determine whether the circuit passes or fails the test.
  • logical built-in self-test circuitry may be used to pass pseudo-random test patterns through logic gates to verify their correct operation.
  • memory built-in self-test circuitry may be used to apply test patterns through the memory array to verify their operation.
  • U.S. Patent No. 6,115,763 describes an MCC system in which each core includes a core interface unit coupled to a service access port to allow various service operations to be initiated through the common service access port without using a large number of input/output (I/O) pins.
  • I/O input/output
  • each core in the MCC described in U.S. Patent No. 6,115,763 uses a specially designed core interface unit, pre-existing cores that have standard test architectures such as the JTAG architecture cannot be used in that MCC without modifying each core to include the new core interface unit. Any such modification to the preexisting cores undesirably increases the time and expense required to bring the MCC to market.
  • an MCC includes a hierarchical testing architecture compliant with the IEEE 1149.1 JTAG standard that leverages existing JTAG and BIST circuitry within each processor core to facilitate chip-level access to core- level test operations.
  • the MCC includes boundary scan logic, a chip-level
  • Each processor core includes a TAP controller, a core-level master BIST controller, and one or more BIST-enabled memory arrays.
  • the chip TAP controller includes one or more user defined registers, and in one embodiment includes a core select register and a control mode register.
  • the core select register stores a plurality of core select bits that indicate whether corresponding processor cores are selected for a BIST operation.
  • the core select bits may be loaded into the chip TAP controller from either the test pin interface or the boundary scan logic.
  • the control mode register stores algorithm mode bits that specify the type of BIST operation performed and a test mode bit that selects between concurrent and sequential core testing operations.
  • the chip master BIST controller receives a BIST instruction from either the test pin interface or the chip TAP controller and, in response to the core select bits and the control mode bits, schedules the BIST operation for selected processor cores.
  • the chip master BIST controller provides a BIST enable signal to each selected processor core.
  • the selected processor cores perform the BIST operation on their memory arrays, and report the test results to the chip master BIST controller, which in turn outputs the results via the test pin interface or the chip TAP controller.
  • the core master BIST controller within each processor core schedules the BIST operation for the BIST-enabled memory arrays in the core in response to control signals provided by the chip master BIST controller.
  • the hierarchical testing architecture of present embodiments allows numerous pre-existing processor cores replicated on an MCC to be tested using standard chip- level test architectures without altering the design of individual core architectures.
  • MCC's of present embodiments may be fabricated without incurring the time and expense typically required to develop and verify a new or modified design, which in turn may reduce the time-to-market for such MCC's.
  • the ability to be the first to offer increased processing capabilities may provide a distinct market advantage.
  • FIG. 1 is a block diagram illustrating a conventional JTAG testing architecture
  • FIG. 2 is a state diagram for the test access port (TAP) controller of FIG. 1
  • FIG. 3 is a block diagram of one embodiment of a multi-core chip (MCC) in accordance with the present invention
  • FIG. 4 is a block diagram of one embodiment of the TAP controller of FIG 3;
  • FIG. 5 is a block diagram of one embodiment of the processor core of FIG. 3;
  • FIG. 6A illustrates one embodiment of a core select register of the TAP controller of FIG. 4;
  • FIG. 6B illustrates one embodiment of a control mode register of the TAP controller of FIG. 4;
  • FIG. 6C illustrates one embodiment of an additional user defined register of the TAP controller of FIG. 4;
  • FIG. 7 is a flow chart illustrating hierarchical testing of an MCC in one embodiment of the present invention.
  • FIG. 8 is a state diagram for the master BIST controller of FIG. 3.
  • Embodiments of the present invention are discussed below in the context of a monolithic multi-core chip (MCC).
  • MCC monolithic multi-core chip
  • the interconnections between circuit elements or cores may be shown as buses or as single signal lines, where each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be a bus.
  • the logic levels assigned to various signals in the description below are arbitrary, and therefore may be modified (e.g., reversed polarity) as desired. Accordingly, the present invention is not to be construed as limited to specific examples described herein but rather includes within its scope all embodiments defined by the appended claims.
  • Present embodiments allow for the implementation of various built-in self test (BIST) operations within unmodified, pre-existing cores of an MCC using either a dedicated test pin interface on the MCC or a standard JTAG test architecture provided on the MCC.
  • BIST operations implemented in the MCC may be well-known or proprietary, and may be controlled in a hierarchical manner to leverage existing JTAG and BIST circuitry within each core. In this manner, numerous pre-existing cores having their own JTAG and BIST circuitry may be replicated and interconnected to form an MCC that has increased processing power without modifying the cores' test architecture.
  • FIG. 1 illustrates a general integrated circuit 100 having a JTAG-compliant testing architecture.
  • Circuit 100 includes core logic 102 and various input/output (I/O) pins 104.
  • Core logic 102 may be any suitable logic core that performs one or more specified functions including, for example, a microprocessor having one or more memory arrays.
  • the JTAG architecture permits internal scan, boundary scan, BIST operations, and other vendor specific design-for-testability (DFT) features for circuits and cores after they have been mounted onto a system board.
  • DFT design-for-testability
  • the JTAG architecture includes a test access port (TAP) controller 106, an instruction register 108, decode logic 110, a set of test data registers including a bypass register 112, a data register 114, and a boundary scan register 116.
  • Boundary scan register 116 includes a plurality of boundary scan cells (BSC) coupled between core 102 and corresponding I/O pins 104 to form a shift register that may be selectively connected between a test data in (TDI) pin and a test data out (TDO) pin via multiplexers 118 and 120.
  • Instruction register 108 can be loaded with instructions related to various testing functions.
  • Decode logic 110 decodes instructions in instruction register 108 and provides control signals to the data registers 112, 114 and to multiplexer 118.
  • Multiplexer 118 is controller by decode logic 110.
  • Multiplexer 120 is controller by TAP controller 106.
  • TAP controller 106 is a 16-state finite state machine controlled by a test mode signal (TMS) and a test clock (TCK), and may be coupled to an optional test reset (TRST) pin to facilitate resetting of TAP controller 106 (TRST not shown for simplicity).
  • TMS test mode signal
  • TCK test clock
  • TRST optional test reset
  • data is loaded into the various data registers and instructions are loaded into instruction register 108 via the TDI pin.
  • These instructions are decoded by decode logic 110 to enable various test operations such as, for example, scan tests, BIST operations, emulation, etc. Results of the tests may be read out of the data registers via the TDO pin.
  • FIG. 2 illustrates a well-known state diagram for TAP controller 106 including a first state sequence 201 for loading instructions into instruction register 108 and a second state sequence 202 for loading data into selected data registers of circuit 100, as specified in the JTAG standard.
  • TAP controller 106 is initially in the test-logic-reset state.
  • TAP controller 106 remains in the test-logic-reset state while TMS is 1. If TMS is set to 0, then TAP controller
  • TAP controller 106 transits to the Run Test/Idle state.
  • TAP controller 106 remains in the Run Test/Idle state while TMS remains 0.
  • TMS transitions to the Select Data Register (DR) Scan state of state sequence 202.
  • Data from TDI can be scanned into a selected data register in the Shift-DR state. The scan process can be paused by transitioning to the Pause DR state. The selected data register is updated during the Update DR state. If TMS is 0, then TAP controller 106 returns to the Run Test Idle state. If TMS is 1, then TAP controller 106 returns to Select DR Scan state to access another data register.
  • State sequence 201 permits instruction scanning into instruction register 108 in a similar manner.
  • FIG. 3 shows a multi-core chip (MCC) 300 in accordance with the present invention.
  • MCC 300 includes a standard chip-level TAP controller 302, a chip-level master BIST controller (chip MBC) 304, a test pin interface 306, a plurality of processor cores 308(1)- 308(n), non-core logic 310, and boundary scan logic 312.
  • Non-core logic may be any suitable logic.
  • non-core logic 310 includes one or more level-2 (L2) cache memories that are shared between processor cores 308(1 )-308(n).
  • MCC 300 also includes a plurality of I O pins 314 for routing data, address, and control information to MCC 300.
  • MCC 300 also includes power supply and ground pins.
  • each processor core 308 is a well-known, preexisting microprocessor that includes standard JTAG test circuitry and a plurality of internal, BIST-enabled memory arrays.
  • each processor core 308 is an existing microprocessor available from Sun Microsystems, Inc.
  • the processor cores 308 are cell designs that may be incorporated into the design and fabrication of MCC 300.
  • processor cores 308 are separate dice mounted on a common substrate using any well-known material and techniques.
  • each core 308 may be any suitable logic circuit including, for example, an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • the external pin-out of MCC 300 has the same footprint (including pin assignments and locations) of a similar type package housing individual processing core 308 so that customers presently using processor core 308 may easily increase processing power by substituting MCC 300 for processor core 308. In this manner, system boards do not have to be redesigned to accommodate a different package footprint.
  • Chip TAP controller 302 is used to initiate BIST operations in selected processor cores 308(l)-308(n) when access to MCC 300's external pins is not readily available, e.g., after MCC 300 is mounted onto a system board.
  • Chip TAP controller 302 is coupled to external TDI and TDO pins via well-known boundary scan logic 312, and also includes inputs to receive TMS and TCK from corresponding external pins.
  • Chip TAP controller 302 is a JTAG-compliant TAP controller of the type shown in FIG. 1, and may receive the optional JTAG reset signal TRST (not shown for simplicity).
  • one or more additional user defined registers (UDRs) 303 are added to the conventional JTAG architecture allowed under the well-known "optional" clause of IEEE Standard 1149.1 , as illustrated in FIG. 4.
  • a first UDR 303 a hereinafter referred to as the core select register, stores a plurality of core select (CS) bits, each indicating whether a corresponding core 308 is enabled for a selected test operation.
  • a second UDR 303b hereinafter referred to as the control mode register, stores a number of algorithm mode bits that indicate which algorithm (e.g., a 6N or 13N March algorithm) the BIST operations performed in MCC 300 utilize, a test mode bit that indicates whether the BIST operation in cores 308 are performed concurrently or sequentially, and other control information.
  • Core select register 303a and control mode register 303b may be loaded by scanning in appropriate signals to chip TAP controller 302 using boundary scan logic 312 according to the state diagram of FIG. 2.
  • An exemplary embodiment 600 of core select register 303a is shown in FIG. 6a, and an exemplary embodiment 610 of control mode register is shown in FIG. 6B.
  • an additional UDR (not shown in FIG. 3 for simplicity) may be provided to store one or more specific BIST test patterns and/or instructions for implementing BIST operations in cores 308(l)-308(n).
  • An exemplary embodiment 620 of this additional UDR for storing BIST test patterns and/or BIST instructions is shown in FIG. 6C.
  • Test pin interface 306 is used to initiate BIST operations in selected cores 308(1)- 308(n) when MCC 300's external pins are available, e.g., before MCC 300 is mounted on a system board.
  • Test pin interface 306 may be any well-known interface, and is coupled to a plurality of external core select pins CS(l)-CS(n) to receive CS signals corresponding to cores
  • Test pin interface 306 is also coupled to test pins corresponding to BIST signals BISTJEN, BIST . DONE, and BISTJERROR, where BIST_EN initiates an internal BIST operation in cores 308(l)-308(n) selected by chip MBC 304 in response to the CS signals, BIST_DONE indicates that the BIST operation is complete, and BIST_ERROR indicates an error condition for the BIST operation.
  • BISTJEN BIST JEN
  • BIST . DONE BISTJERROR
  • BIST_EN initiates an internal BIST operation in cores 308(l)-308(n) selected by chip MBC 304 in response to the CS signals
  • BIST_DONE indicates that the BIST operation is complete
  • BIST_ERROR indicates an error condition for the BIST operation.
  • Chip MBC 304 is coupled to chip TAP controller 302 via bus 316, to test pin interface 306 via bus 317, to an I O terminal of each core 308 via bus 318, and to a core select (CS) input of each core 308 via bus 320.
  • buses 318 and 320 may be the same bus.
  • Chip MBC 304 is a well-known finite state machine that schedules BIST operations for the various cores 308 in response to the BIST and CS signals, which as explained above may be provided by either chip TAP controller 302 or test pin interface 306.
  • chip MBC 304 may schedule BIST operations for selected processor cores 308(l)-308(n) in either a concurrent manner or in a sequential manner.
  • chip MBC 304 schedules BIST operations in cores 308 by routing the BIST signals (e.g., BIST_EN) only to selected cores 308(l)-308(n).
  • BIST signals e.g., BIST_EN
  • FIG. 5 shows a processor core 500 that is one embodiment of processor core 308 of FIG. 3.
  • Core 500 includes gating logic 501, a standard core-level TAP controller 502, a core master BIST controller (core MBC) 504, and a plurality of testable memory elements 506(1)- 506(m).
  • memory elements 506 may be testable circuit other than memory arrays such as, for example, logic circuits.
  • some embodiments of core 500 include dedicated inputs for the BIST signals (e.g., BIST_EN, BIST_DONE, and BIST_ERROR). Referring also to FIG.
  • gating logic 501 is coupled to bus 318 via core I/O inputs, to bus 320 via core CS inputs, and to core TAP controller 502 via bus 512.
  • Gating logic 501 may be any well-known logic circuit that selectively passes BIST signals from chip MBC 304 to core TAP controller 502 in response to the CS signals provided by chip MBC 304.
  • gating logic 501 enables core 500 to receive the BIST signals from chip MBC 304 if the corresponding CS signal is asserted (e.g., to logic high), and disables core 500 during the BIST operation if the corresponding CS signal is un-asserted (e.g., to logic low).
  • gating logic 501 includes tri-stated inputs coupled to bus 318.
  • gating circuit 501 may be eliminated, and the enabling/disabling of cores 500 instead performed by chip MBC 304.
  • Core TAP controller 502 is a JTAG-compliant TAP controller of the type shown in
  • FIG. 1 is coupled to core MBC 504 via bus 514.
  • BIST signals are routed between core TAP controller 502 and gating logic 501 using TDI and TDO (not shown for simplicity).
  • core TAP controller 502 is coupled to core TDI and TDO via core boundary scan logic (not shown for simplicity).
  • TMS and TCK are provided to TAP controller 502 of each core 500 simultaneously so that all core TAP controllers 502 are in the same state.
  • TMS and TCK are provided to each core TAP controller 502 by chip MBC 304, which in turn may independently transition the states of various core TAP controllers 502, for example, when scheduling sequential BIST operations for selected cores 500.
  • Core MBC 504 which is coupled to memory elements 506(l)-506(m) via a bus 516, is a well-known finite state machine that schedules BIST operations in core memory elements 506(l)-506(m) in response to BIST signals received from chip MBC 304 via core TAP controller 502.
  • core MBC 504 decodes the BIST control mode signals and, in response thereto, selectively asserts BIST_EN for core memory elements 506(1)- 506(m) to initiate testing operations therein.
  • Core MBC 504 may schedule either concurrent or sequential BIST operations in the corresponding core memory elements 506.
  • chip MBC 304 and core MBC 504 are identical logic structures.
  • Each memory element 506 is a BIST-enabled memory structure that includes a memory array 508 coupled to a memory BIST controller 510.
  • Memory array 508 may be any suitable type of memory array.
  • memory array 508 is a level- 1 (LI) cache memory implemented as an SRAM device for the processor core.
  • Memory BIST controller 510 is a well-known circuit that performs BIST operations of corresponding memory array 508 in response to the BISTJEN signal provided by core MBC 504. The precise manner of operation of performing and implementing a memory BIST operation is well-known in the art, and therefore is not described herein.
  • chip TAP controller 302 is used to access the self -test features of MCC 300, for example, after MCC 300 is mounted onto a system board.
  • test pin interface 306 may be used to access the self-test features of MCC 300 before MCC 300 is mounted onto the system board.
  • a BIST instruction is loaded into chip TAP controller 302 via boundary scan logic 312 (step 702).
  • the BIST instruction may be any well-known instruction that initiates a memory BIST operation.
  • the core select (CS) signals and BIST control signals are loaded into core select register 303a and control mode register 303b, respectively, via boundary scan logic 312 (step 704).
  • an asserted CS signal e.g., logic high
  • an un-asserted CS signal e.g., logic low
  • the BIST control signals may be included in the BIST instruction.
  • the BIST instruction may be a default instruction stored, for example, in the additional user defined register 620 of chip TAP controller 302.
  • the BIST instruction and the BIST control signals are routed from chip TAP controller 302 to processor cores 308(l)-308(n) via chip MBC 304 (step 706).
  • Chip MBC 304 schedules BIST operations in selected cores 308(1 )-308(n) in response to the control mode bit.
  • chip MBC 304 transitions to state 810 to output the test results, and then returns to state 802.
  • chip MBC 304 schedules BIST operations for the selected cores 308(l)-(n) in a sequential manner, for example, to reduce peak power consumption.
  • Chip MBC 304 transitions to state 804 and initiates the BIST operation for core 1.
  • chip MBC 304 transitions to state 806 and initiates the BIST operation for core 2, and so on, until the last core is tested in state 808.
  • Chip MBC 304 transitions to state 810 to output the test results, and then returns to state 802. For other embodiments, the results of each core BIST operation may be reported back to chip MBC 304 during corresponding states 802, 804, and 806 of FIG. 8.
  • gating logic 501 selectively enables the core for the BIST operation in response to the CS signals, as tested in step 708. If the core 308 is not selected for testing, gating logic 501 does not forward the BIST instruction to the core TAP controller 502, and the core 308 does not participate in the BIST operation (step 710). Conversely, if the core 308 is selected for testing, gating logic 501 forwards the BIST instruction (e.g., BISTJEN) to the core TAP controller 502 (step 712). For some embodiments, gating logic 501 selectively enables and disables core TAP controller 502 in response to the CS signals.
  • BIST instruction e.g., BISTJEN
  • the core TAP controllers 502 of selected cores 308 forward the BIST instruction to the corresponding core MBCs 504 (step 714), which in turn schedule the BISToperation for the corresponding core memory elements 506(l)-506(m) (step 716).
  • the core MBC 504 for each selected core 308 decodes the instruction received from chip MBC 304 and provides an asserted BIST_EN to the memory BIST controllers 510 in corresponding core memory elements 506.
  • Memory BIST controllers 510 perform a well-known memory BIST operation on corresponding memory arrays 508 in response to BISTJ ⁇ N received from core MBC 504.
  • each memory BIST controller 510 returns a done signal and a pass/fail signal to chip MBC 304 via core MBC 504 and core TAP controller 502.
  • the done signal indicates whether the test operation is complete, and the pass/fail signal indicates whether a fault is detected in the corresponding memory array.
  • Each memory BIST controller 510 includes an address generator for corresponding memory arrays 508.
  • the address generator may be a counter.
  • the address generator may be a pseudo-random linear feedback shift register (LFSR).
  • Each memory BIST controller 510 may also include a test register to store test patterns that may be applied to memory array 508 during BIST operations.
  • the test register is a read only memory (ROM).
  • ROM read only memory
  • external test patterns may be loaded into memory BIST controllers 510 through chip TAP controller 302, chip MBC 304, core TAP controller 502, and core MBC 504.
  • Test patterns read out of memory arrays 508 are compared with an expected result or signature in a well- known manner, for example, using comparators and multiple-input shift registers (MISR) provided within memory BIST controllers 510. If the output test patterns match the expected signature, the pass/fail signal is asserted to indicate the pass condition. Otherwise, the pass/fail signal is de-asserted to indicate the fail condition.
  • MISR multiple-input shift registers
  • chip MBC 304 and core MBC 504 are identical structures.
  • each core MBC 504 may schedule testing of one or more selected corresponding core memory arrays 508 either sequentially or concurrently in a manner similar to that described above with respect to chip MBC 304.
  • core MBC 504 includes memory to store a core test mode bit for the corresponding core.
  • the core test mode bit may be provided to core MBC 504 by chip MBC 304 via the BIST instruction.

Abstract

A multi-core chip (MCC) having a plurality of processor cores includes a hierarchical testing architecture compliant with the IEEE 1149.1 Joint Test Action Group (JTAG) standard that leverages existing standard testing architectures within each processor core to allow for chip level access to schedule built-in self test (BIST) operations for the cores. The MCC includes boundary scan logic, a chip-level JTAG-compliant test access port (TAP) controller, a chip-level master BIST controller, and a test pin interface. Each processor core includes a JTAG-compliant TAP controller and one or more BIST enabled memory arrays. The chip TAP controller includes one or more user defined registers, including a core select register and a test mode register. The core select register stores a plurality of core select bits that select corresponding processor cores for BIST operations.

Description

Hierarchical Test Methodology for Multi-Core Chips
Rajesh Y. Pendurkar
BACKGROUND
1. Field of Invention
This invention relates generally to integrated circuit devices, and specifically to the testing of an integrated circuit device having a plurality of cores.
2. Description of Related Art
The continuing demand for increased computing power of microprocessors has led to the recent trend of core-based designs. In a core-based design, one or more pre-existing cores are integrated as cells onto a single integrated circuit (IC) known as a multi-core chip (MCC) to form a more complex circuit. Because the pre-existing cores have already been designed and verified, they may be replicated and interconnected to form more powerful circuits without incurring the time and expense of developing an entirely new next-generation circuit. For example, rather than designing an entirely new processor, semiconductor manufacturers may increase processor capabilities by replicating a number of existing processor cores within an MCC that may then be offered as the next generation processor.
A major design issue for complex IC's is testability. Today, most processors include a testing architecture compliant with the IEEE Standard 1149.1, also known as the Joint Test Action Group (JTAG) standard. The JTAG standard was created primarily to allow for the testing of interconnects between IC's mounted on a system board without directly accessing the pins of each IC. Each JTAG-compliant circuit includes a Test Access Port (TAP) controller, a number of dedicated test pins, and boundary scan logic that allows test patterns to be shifted in and out of the circuit for fault testing.
The JTAG architecture may also be used to access a circuit's built-in self test (BIST) logic after the circuit is mounted onto a system board. Typically, an enable signal is applied to the internal BIST logic via the TAP controller to activate the BIST logic to perform test operations of the circuit. Generally, the BIST logic includes a Test Pattern Generator that applies test patterns to the circuit under test. The test pattern is applied to the circuit under test, and the resultant output data is compared with an expected signature to determine whether the circuit passes or fails the test. For example, for logic devices such as processors and controllers, logical built-in self-test circuitry may be used to pass pseudo-random test patterns through logic gates to verify their correct operation. For memory arrays, memory built-in self-test circuitry may be used to apply test patterns through the memory array to verify their operation.
A recent technique for accessing individual cores of an MCC for testing is disclosed in U.S. Patent No. 6,115,763, which describes an MCC system in which each core includes a core interface unit coupled to a service access port to allow various service operations to be initiated through the common service access port without using a large number of input/output (I/O) pins. However, because each core in the MCC described in U.S. Patent No. 6,115,763 uses a specially designed core interface unit, pre-existing cores that have standard test architectures such as the JTAG architecture cannot be used in that MCC without modifying each core to include the new core interface unit. Any such modification to the preexisting cores undesirably increases the time and expense required to bring the MCC to market. Thus, it would be desirable to be able to use unmodified, pre-existing cores in an MCC that provides chip-level access to standard internal core testing features.
SUMMARY
A method and apparatus are disclosed that allow pre-existing processor cores that have standard test architectures to be replicated on an MCC without modification in a manner that allows for chip level access to internal BIST circuitry in the processor cores. In accordance with the present invention, an MCC is disclosed that includes a hierarchical testing architecture compliant with the IEEE 1149.1 JTAG standard that leverages existing JTAG and BIST circuitry within each processor core to facilitate chip-level access to core- level test operations. In one embodiment, the MCC includes boundary scan logic, a chip-level
TAP controller, a chip-level master BIST controller, a test pin interface, and a plurality of processor cores. Each processor core includes a TAP controller, a core-level master BIST controller, and one or more BIST-enabled memory arrays.
The chip TAP controller includes one or more user defined registers, and in one embodiment includes a core select register and a control mode register. The core select register stores a plurality of core select bits that indicate whether corresponding processor cores are selected for a BIST operation. The core select bits may be loaded into the chip TAP controller from either the test pin interface or the boundary scan logic. The control mode register stores algorithm mode bits that specify the type of BIST operation performed and a test mode bit that selects between concurrent and sequential core testing operations.
The chip master BIST controller receives a BIST instruction from either the test pin interface or the chip TAP controller and, in response to the core select bits and the control mode bits, schedules the BIST operation for selected processor cores. For one embodiment, the chip master BIST controller provides a BIST enable signal to each selected processor core. The selected processor cores perform the BIST operation on their memory arrays, and report the test results to the chip master BIST controller, which in turn outputs the results via the test pin interface or the chip TAP controller. For one embodiment, the core master BIST controller within each processor core schedules the BIST operation for the BIST-enabled memory arrays in the core in response to control signals provided by the chip master BIST controller.
In this manner, the hierarchical testing architecture of present embodiments allows numerous pre-existing processor cores replicated on an MCC to be tested using standard chip- level test architectures without altering the design of individual core architectures. As a result, MCC's of present embodiments may be fabricated without incurring the time and expense typically required to develop and verify a new or modified design, which in turn may reduce the time-to-market for such MCC's. The ability to be the first to offer increased processing capabilities may provide a distinct market advantage.
BRIEF DESCRIPTION OF THE DRAWINGS
The features and advantages of the present invention are illustrated by way of example and are by no means intended to limit the scope of the present invention to the particular embodiments shown, and in which:
FIG. 1 is a block diagram illustrating a conventional JTAG testing architecture; FIG. 2 is a state diagram for the test access port (TAP) controller of FIG. 1; FIG. 3 is a block diagram of one embodiment of a multi-core chip (MCC) in accordance with the present invention; FIG. 4 is a block diagram of one embodiment of the TAP controller of FIG 3;
FIG. 5 is a block diagram of one embodiment of the processor core of FIG. 3;
FIG. 6A illustrates one embodiment of a core select register of the TAP controller of FIG. 4;
FIG. 6B illustrates one embodiment of a control mode register of the TAP controller of FIG. 4;
FIG. 6C illustrates one embodiment of an additional user defined register of the TAP controller of FIG. 4;
FIG. 7 is a flow chart illustrating hierarchical testing of an MCC in one embodiment of the present invention; and
FIG. 8 is a state diagram for the master BIST controller of FIG. 3.
Like reference numerals refer to corresponding parts throughout the drawing figures.
DETAILED DESCRIPTION
Embodiments of the present invention are discussed below in the context of a monolithic multi-core chip (MCC). The interconnections between circuit elements or cores may be shown as buses or as single signal lines, where each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be a bus. Further, the logic levels assigned to various signals in the description below are arbitrary, and therefore may be modified (e.g., reversed polarity) as desired. Accordingly, the present invention is not to be construed as limited to specific examples described herein but rather includes within its scope all embodiments defined by the appended claims. Present embodiments allow for the implementation of various built-in self test (BIST) operations within unmodified, pre-existing cores of an MCC using either a dedicated test pin interface on the MCC or a standard JTAG test architecture provided on the MCC. The BIST operations implemented in the MCC may be well-known or proprietary, and may be controlled in a hierarchical manner to leverage existing JTAG and BIST circuitry within each core. In this manner, numerous pre-existing cores having their own JTAG and BIST circuitry may be replicated and interconnected to form an MCC that has increased processing power without modifying the cores' test architecture. In addition, the hierarchical testing approach of present embodiments allows the MCC to include any core that has a standard JTAG testing architecture, thereby providing compatibility with many different cores. FIG. 1 illustrates a general integrated circuit 100 having a JTAG-compliant testing architecture. Circuit 100 includes core logic 102 and various input/output (I/O) pins 104. Core logic 102 may be any suitable logic core that performs one or more specified functions including, for example, a microprocessor having one or more memory arrays. The JTAG architecture permits internal scan, boundary scan, BIST operations, and other vendor specific design-for-testability (DFT) features for circuits and cores after they have been mounted onto a system board. The JTAG architecture includes a test access port (TAP) controller 106, an instruction register 108, decode logic 110, a set of test data registers including a bypass register 112, a data register 114, and a boundary scan register 116. Boundary scan register 116 includes a plurality of boundary scan cells (BSC) coupled between core 102 and corresponding I/O pins 104 to form a shift register that may be selectively connected between a test data in (TDI) pin and a test data out (TDO) pin via multiplexers 118 and 120. Instruction register 108 can be loaded with instructions related to various testing functions. Decode logic 110 decodes instructions in instruction register 108 and provides control signals to the data registers 112, 114 and to multiplexer 118. Multiplexer 118 is controller by decode logic 110. Multiplexer 120 is controller by TAP controller 106.
TAP controller 106 is a 16-state finite state machine controlled by a test mode signal (TMS) and a test clock (TCK), and may be coupled to an optional test reset (TRST) pin to facilitate resetting of TAP controller 106 (TRST not shown for simplicity). In general, data is loaded into the various data registers and instructions are loaded into instruction register 108 via the TDI pin. These instructions are decoded by decode logic 110 to enable various test operations such as, for example, scan tests, BIST operations, emulation, etc. Results of the tests may be read out of the data registers via the TDO pin.
FIG. 2 illustrates a well-known state diagram for TAP controller 106 including a first state sequence 201 for loading instructions into instruction register 108 and a second state sequence 202 for loading data into selected data registers of circuit 100, as specified in the JTAG standard. TAP controller 106 is initially in the test-logic-reset state. TAP controller 106 remains in the test-logic-reset state while TMS is 1. If TMS is set to 0, then TAP controller
106 transits to the Run Test/Idle state. TAP controller 106 remains in the Run Test/Idle state while TMS remains 0. If TMS becomes 1, then TAP controller 106 transitions to the Select Data Register (DR) Scan state of state sequence 202. Data from TDI can be scanned into a selected data register in the Shift-DR state. The scan process can be paused by transitioning to the Pause DR state. The selected data register is updated during the Update DR state. If TMS is 0, then TAP controller 106 returns to the Run Test Idle state. If TMS is 1, then TAP controller 106 returns to Select DR Scan state to access another data register. State sequence 201 permits instruction scanning into instruction register 108 in a similar manner. The details of this state diagram are not important to this invention. It is sufficient to note that for any particular implementation of a test access port controller, it is possible to place the JTAG interface into a mode to shift in data from TDI into any of the data registers and into the instruction register. ι
FIG. 3 shows a multi-core chip (MCC) 300 in accordance with the present invention. MCC 300 includes a standard chip-level TAP controller 302, a chip-level master BIST controller (chip MBC) 304, a test pin interface 306, a plurality of processor cores 308(1)- 308(n), non-core logic 310, and boundary scan logic 312. Non-core logic may be any suitable logic. For one embodiment, non-core logic 310 includes one or more level-2 (L2) cache memories that are shared between processor cores 308(1 )-308(n). MCC 300 also includes a plurality of I O pins 314 for routing data, address, and control information to MCC 300. In addition, although not shown for simplicity, MCC 300 also includes power supply and ground pins. For purposes of discussion herein, each processor core 308 is a well-known, preexisting microprocessor that includes standard JTAG test circuitry and a plurality of internal, BIST-enabled memory arrays. For one embodiment, each processor core 308 is an existing microprocessor available from Sun Microsystems, Inc. For some embodiments, the processor cores 308 are cell designs that may be incorporated into the design and fabrication of MCC 300. For other embodiments, processor cores 308 are separate dice mounted on a common substrate using any well-known material and techniques. For other embodiments, each core 308 may be any suitable logic circuit including, for example, an application-specific integrated circuit (ASIC).
For one embodiment, the external pin-out of MCC 300 has the same footprint (including pin assignments and locations) of a similar type package housing individual processing core 308 so that customers presently using processor core 308 may easily increase processing power by substituting MCC 300 for processor core 308. In this manner, system boards do not have to be redesigned to accommodate a different package footprint.
Chip TAP controller 302 is used to initiate BIST operations in selected processor cores 308(l)-308(n) when access to MCC 300's external pins is not readily available, e.g., after MCC 300 is mounted onto a system board. Chip TAP controller 302 is coupled to external TDI and TDO pins via well-known boundary scan logic 312, and also includes inputs to receive TMS and TCK from corresponding external pins. Chip TAP controller 302 is a JTAG-compliant TAP controller of the type shown in FIG. 1, and may receive the optional JTAG reset signal TRST (not shown for simplicity). In accordance with present embodiments, one or more additional user defined registers (UDRs) 303 are added to the conventional JTAG architecture allowed under the well-known "optional" clause of IEEE Standard 1149.1 , as illustrated in FIG. 4.
Referring again to FIG. 3, a first UDR 303 a, hereinafter referred to as the core select register, stores a plurality of core select (CS) bits, each indicating whether a corresponding core 308 is enabled for a selected test operation. A second UDR 303b, hereinafter referred to as the control mode register, stores a number of algorithm mode bits that indicate which algorithm (e.g., a 6N or 13N March algorithm) the BIST operations performed in MCC 300 utilize, a test mode bit that indicates whether the BIST operation in cores 308 are performed concurrently or sequentially, and other control information. Core select register 303a and control mode register 303b may be loaded by scanning in appropriate signals to chip TAP controller 302 using boundary scan logic 312 according to the state diagram of FIG. 2. An exemplary embodiment 600 of core select register 303a is shown in FIG. 6a, and an exemplary embodiment 610 of control mode register is shown in FIG. 6B. For other embodiments, an additional UDR (not shown in FIG. 3 for simplicity) may be provided to store one or more specific BIST test patterns and/or instructions for implementing BIST operations in cores 308(l)-308(n). An exemplary embodiment 620 of this additional UDR for storing BIST test patterns and/or BIST instructions is shown in FIG. 6C.
Test pin interface 306 is used to initiate BIST operations in selected cores 308(1)- 308(n) when MCC 300's external pins are available, e.g., before MCC 300 is mounted on a system board. Test pin interface 306 may be any well-known interface, and is coupled to a plurality of external core select pins CS(l)-CS(n) to receive CS signals corresponding to cores
308(l)-308(n), respectively. Test pin interface 306 is also coupled to test pins corresponding to BIST signals BISTJEN, BIST .DONE, and BISTJERROR, where BIST_EN initiates an internal BIST operation in cores 308(l)-308(n) selected by chip MBC 304 in response to the CS signals, BIST_DONE indicates that the BIST operation is complete, and BIST_ERROR indicates an error condition for the BIST operation. For some embodiments, test pin interface
306 may be coupled to additional pins to receive other test-related signals. For other embodiments, test pin interface 306 may be eliminated. Chip MBC 304 is coupled to chip TAP controller 302 via bus 316, to test pin interface 306 via bus 317, to an I O terminal of each core 308 via bus 318, and to a core select (CS) input of each core 308 via bus 320. For other embodiments, buses 318 and 320 may be the same bus. Chip MBC 304 is a well-known finite state machine that schedules BIST operations for the various cores 308 in response to the BIST and CS signals, which as explained above may be provided by either chip TAP controller 302 or test pin interface 306. The specific logic used to implement chip MBC 304, which may differ between various embodiments, will be apparent to those skilled in the art after reading this disclosure, and thus is not provided herein so as to not unnecessarily obscure the invention. As explained below, chip MBC 304 may schedule BIST operations for selected processor cores 308(l)-308(n) in either a concurrent manner or in a sequential manner. For some embodiments, chip MBC 304 schedules BIST operations in cores 308 by routing the BIST signals (e.g., BIST_EN) only to selected cores 308(l)-308(n).
FIG. 5 shows a processor core 500 that is one embodiment of processor core 308 of FIG. 3. Core 500 includes gating logic 501, a standard core-level TAP controller 502, a core master BIST controller (core MBC) 504, and a plurality of testable memory elements 506(1)- 506(m). For other embodiments, memory elements 506 may be testable circuit other than memory arrays such as, for example, logic circuits. Although not shown for simplicity, some embodiments of core 500 include dedicated inputs for the BIST signals (e.g., BIST_EN, BIST_DONE, and BIST_ERROR). Referring also to FIG. 3, gating logic 501 is coupled to bus 318 via core I/O inputs, to bus 320 via core CS inputs, and to core TAP controller 502 via bus 512. Gating logic 501 may be any well-known logic circuit that selectively passes BIST signals from chip MBC 304 to core TAP controller 502 in response to the CS signals provided by chip MBC 304. For one embodiment, gating logic 501 enables core 500 to receive the BIST signals from chip MBC 304 if the corresponding CS signal is asserted (e.g., to logic high), and disables core 500 during the BIST operation if the corresponding CS signal is un-asserted (e.g., to logic low). For some embodiments, gating logic 501 includes tri-stated inputs coupled to bus 318. For other embodiments, gating circuit 501 may be eliminated, and the enabling/disabling of cores 500 instead performed by chip MBC 304. Core TAP controller 502 is a JTAG-compliant TAP controller of the type shown in
FIG. 1, and is coupled to core MBC 504 via bus 514. BIST signals are routed between core TAP controller 502 and gating logic 501 using TDI and TDO (not shown for simplicity). For some embodiments, core TAP controller 502 is coupled to core TDI and TDO via core boundary scan logic (not shown for simplicity). For one embodiment, TMS and TCK are provided to TAP controller 502 of each core 500 simultaneously so that all core TAP controllers 502 are in the same state. For another embodiment, TMS and TCK are provided to each core TAP controller 502 by chip MBC 304, which in turn may independently transition the states of various core TAP controllers 502, for example, when scheduling sequential BIST operations for selected cores 500.
Core MBC 504, which is coupled to memory elements 506(l)-506(m) via a bus 516, is a well-known finite state machine that schedules BIST operations in core memory elements 506(l)-506(m) in response to BIST signals received from chip MBC 304 via core TAP controller 502. For one embodiment, core MBC 504 decodes the BIST control mode signals and, in response thereto, selectively asserts BIST_EN for core memory elements 506(1)- 506(m) to initiate testing operations therein. Core MBC 504 may schedule either concurrent or sequential BIST operations in the corresponding core memory elements 506. The specific logic used to implement core MBC 504, which may differ between various embodiments, will be apparent to those skilled in the art after reading this disclosure, and thus is not provided herein so as to not unnecessarily obscure the invention. For some embodiments, chip MBC 304 and core MBC 504 are identical logic structures.
Each memory element 506 is a BIST-enabled memory structure that includes a memory array 508 coupled to a memory BIST controller 510. Memory array 508 may be any suitable type of memory array. For one embodiment, memory array 508 is a level- 1 (LI) cache memory implemented as an SRAM device for the processor core. Memory BIST controller 510 is a well-known circuit that performs BIST operations of corresponding memory array 508 in response to the BISTJEN signal provided by core MBC 504. The precise manner of operation of performing and implementing a memory BIST operation is well-known in the art, and therefore is not described herein.
Operation of MCC 300 in performing a hierarchical BIST operation is described below with respect to the flow chart of FIG. 7, and to FIGS. 3 and 5. For purposes of discussion herein, chip TAP controller 302 is used to access the self -test features of MCC 300, for example, after MCC 300 is mounted onto a system board. However, as described above, test pin interface 306 may be used to access the self-test features of MCC 300 before MCC 300 is mounted onto the system board. To initiate a memory BIST operation in selected processor cores 308(1 )-308(n), a BIST instruction is loaded into chip TAP controller 302 via boundary scan logic 312 (step 702). The BIST instruction may be any well-known instruction that initiates a memory BIST operation. The core select (CS) signals and BIST control signals are loaded into core select register 303a and control mode register 303b, respectively, via boundary scan logic 312 (step 704). For one embodiment, an asserted CS signal (e.g., logic high) indicates that the corresponding core 308 will participate in the BIST operation, while an un-asserted CS signal (e.g., logic low) indicates that the corresponding core 308 will not participate in the BIST operation. For some embodiments, the BIST control signals may be included in the BIST instruction. For other embodiments, the BIST instruction may be a default instruction stored, for example, in the additional user defined register 620 of chip TAP controller 302.
The BIST instruction and the BIST control signals are routed from chip TAP controller 302 to processor cores 308(l)-308(n) via chip MBC 304 (step 706). Chip MBC 304 schedules BIST operations in selected cores 308(1 )-308(n) in response to the control mode bit. Referring also to the exemplary state diagram of FIG. 8, chip MBC 304 starts in an initial state 802. If the test mode bit indicates a concurrent mode (e.g., MODE = 0), chip MBC 304 transitions to state 804 and simultaneously routes the BIST instruction and CS signals to all cores 308, which in turn may simultaneously perform core BIST operations, for example, to minimize testing time. When testing of the cores 308 is complete, chip MBC 304 transitions to state 810 to output the test results, and then returns to state 802.
If the test mode bit indicates a sequential mode, chip MBC 304 schedules BIST operations for the selected cores 308(l)-(n) in a sequential manner, for example, to reduce peak power consumption. Chip MBC 304 transitions to state 804 and initiates the BIST operation for core 1. When testing of core 1 is complete, chip MBC 304 transitions to state 806 and initiates the BIST operation for core 2, and so on, until the last core is tested in state 808. Chip MBC 304 transitions to state 810 to output the test results, and then returns to state 802. For other embodiments, the results of each core BIST operation may be reported back to chip MBC 304 during corresponding states 802, 804, and 806 of FIG. 8.
For each core 308, gating logic 501 selectively enables the core for the BIST operation in response to the CS signals, as tested in step 708. If the core 308 is not selected for testing, gating logic 501 does not forward the BIST instruction to the core TAP controller 502, and the core 308 does not participate in the BIST operation (step 710). Conversely, if the core 308 is selected for testing, gating logic 501 forwards the BIST instruction (e.g., BISTJEN) to the core TAP controller 502 (step 712). For some embodiments, gating logic 501 selectively enables and disables core TAP controller 502 in response to the CS signals. The core TAP controllers 502 of selected cores 308 forward the BIST instruction to the corresponding core MBCs 504 (step 714), which in turn schedule the BISToperation for the corresponding core memory elements 506(l)-506(m) (step 716).
For one embodiment, the core MBC 504 for each selected core 308 decodes the instruction received from chip MBC 304 and provides an asserted BIST_EN to the memory BIST controllers 510 in corresponding core memory elements 506. Memory BIST controllers 510 perform a well-known memory BIST operation on corresponding memory arrays 508 in response to BISTJΞN received from core MBC 504. After testing, each memory BIST controller 510 returns a done signal and a pass/fail signal to chip MBC 304 via core MBC 504 and core TAP controller 502. The done signal indicates whether the test operation is complete, and the pass/fail signal indicates whether a fault is detected in the corresponding memory array.
Each memory BIST controller 510 includes an address generator for corresponding memory arrays 508. For one embodiment, the address generator may be a counter. For another embodiment, the address generator may be a pseudo-random linear feedback shift register (LFSR). Each memory BIST controller 510 may also include a test register to store test patterns that may be applied to memory array 508 during BIST operations. For some embodiments, the test register is a read only memory (ROM). For other embodiments, external test patterns may be loaded into memory BIST controllers 510 through chip TAP controller 302, chip MBC 304, core TAP controller 502, and core MBC 504. Test patterns read out of memory arrays 508 are compared with an expected result or signature in a well- known manner, for example, using comparators and multiple-input shift registers (MISR) provided within memory BIST controllers 510. If the output test patterns match the expected signature, the pass/fail signal is asserted to indicate the pass condition. Otherwise, the pass/fail signal is de-asserted to indicate the fail condition.
As mentioned above, for some embodiments, chip MBC 304 and core MBC 504 are identical structures. Thus, for these embodiments, each core MBC 504 may schedule testing of one or more selected corresponding core memory arrays 508 either sequentially or concurrently in a manner similar to that described above with respect to chip MBC 304. For one embodiment, core MBC 504 includes memory to store a core test mode bit for the corresponding core. For another embodiments, the core test mode bit may be provided to core MBC 504 by chip MBC 304 via the BIST instruction.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that changes and modifications may be made without departing from this invention in its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as fall within the true spirit and scope of this invention. For example, although described in the context of memory BIST operations, embodiments of the present invention are equally applicable to performing logic BIST operations in a hierarchical manner on an MCC.

Claims

What is claimed is:
1. An integrated circuit having a hierarchical built-in self test (BIST) architecture, comprising: a plurality of cores, each including: a number of memory elements, each having a memory array coupled to a corresponding memory BIST controller; a core-level master BIST controller coupled to each of the memory elements; and a standard core-level test access port (TAP) controller coupled to the core master BIST controller; a chip-level master BIST controller coupled to each of cores; and a standard chip-level test access port (TAP) controller coupled to the chip-level master BIST controller and having a core select register for storing a plurality of core select bits, each indicating whether a corresponding core is selected for a BIST operation.
2. The integrated circuit of Claim 1, wherein the chip-level master BIST controller schedules the BIST operation for the selected cores.
3. The integrated circuit of Claim 2, wherein the core-level master BIST controllers schedule the BIST operation for corresponding memory elements in response to the core select bits.
4. The integrated circuit of Claim 2, wherein the chip-level TAP controller further comprises a control mode register for storing a test mode bit indicating how the chip- level master BIST controller schedules the BIST.
5. The integrated circuit of Claim 4, wherein the control mode register further stores an algorithm mode bit indicating which of a plurality of algorithms the BIST operation utilizes.
6. The integrated circuit of Claim 2, wherein the chip-level TAP controller further comprises an additional test data register for storing a default BIST instruction.
7. The integrated circuit of Claim 1, wherein the memory arrays comprises cache memory.
8. The integrated circuit of Claim 1, wherein each core comprises a processor.
9. The integrated circuit of Claim 1, wherein the chip-level TAP controller and the core-level TAP controllers are compliant with the Joint Test Action Group (JTAG) standard.
10. The integrated circuit of Claim 1 , further comprising: a plurality of core select pins to receive the core select bits; and a test pin interface coupled to the plurality of core select pins and to the chip-level master BIST controller.
11. The integrated circuit of Claim 10, further comprising: a plurality of BIST pins coupled to the test pin interface.
12. The integrated circuit of Claim 1, wherein each core further comprises gating logic coupled between the chip-level master BIST controller and the corresponding core TAP controller, the gating logic selectively enabling the core for the BIST operation in response to the core select bits.
13. The integrated circuit of Claim 1, wherein each of the cores comprises a preexisting processor core having an identical pin-out configuration as the integrated circuit.
14. The integrated circuit of Claim 1, wherein each of the cores comprises a processor core cell-based design.
15. A method of performing a built-in self test (BIST) operation in an integrated circuit having a plurality of processor cores, comprising: loading a built-in self test (BIST) instruction into a chip-level test access port (TAP) controller; loading a plurality of core select bits into a core select register of the chip-level TAP controller; selectively enabling the processor cores for the BIST operation in response to the core select bits; and scheduling the BIST operation for the selected processor cores using a chip-level master BIST controller.
16. The method of Claim 15, wherein the selectively enabling comprises: providing the core select bits to each processor core; and decoding the core select bits to selectively enable a core TAP controller in the processor core.
17. The method of Claim 15, wherein the scheduling comprises, for each selected processor core: decoding the BIST instruction in a core master BIST controller to generate a BIST enable signal; and implementing the BIST operation in response to the BIST enable signal using a memory BIST controller.
18. The method of Claim 15, further comprising: loading a test mode bit into a test mode register of the chip-level TAP controller, the test mode bit indicating whether the BIST operation is performed in the selected cores in a sequential manner or in a concurrent manner.
19. The method of Claim 15, further comprising; loading an algorithm mode bit into the test mode register of the chip-level TAP controller, the algorithm mode bit indicating which of a plurality of algorithms the BIST operation utilizes.
20. A multi-core chip (MCC) having a hierarchical test architecture, comprising: a plurality of cores, each including means for implementing a core-level JTAG- compliant test interface; means for implementing a chip-level JTAG-compliant test interface; and means for scheduling test operations for the cores. i i
21. The MCC of Claim 20, wherein the means for implementing a core-level JTAG-compliant test interface comprises a core-level test access port (TAP) controller.
22. The MCC of Claim 21 , wherein each core further comprises: a number of testable circuits, each having a corresponding test controller; and means for scheduling the test operations for the testable circuits.
23. The MCC of Claim 22, wherein the means for scheduling the test operations for the testable circuits comprises a core-level master test controller coupled to each of the testable circuits.
24. The MCC of Claim 23, wherein the testable circuits comprise built-in self test (BIST) enabled memory arrays, the corresponding test controller comprises a memory BIST controller, and the core-level master test controller comprises a master BIST controller.
25. The MCC of Claim 21 , wherein the means for implementing a chip-level JTAG-compliant test interface comprises a chip-level test access port (TAP) controller.
26. The MCC of Claim 25, wherein the means for scheduling test operations for the cores comprises: a chip-level master test controller coupled between the chip-level TAP controller and each of the cores.
27. The MCC of Claim 26, wherein chip-level master test controller comprises a master built-in self test (BIST) controller.
28. The MCC of Claim 25, wherein the chip-level TAP controller comprises a core select register for storing a plurality of core select bits, each indicating whether a corresponding core is selected for a test operation.
29. The MCC of Claim 28, further comprising: a plurality of core select pins to receive the core select bits; and a test pin interface coupled to the plurality of core select pins and to the means for scheduling test operations for the cores.
30. The MCC of Claim 28, wherein the chip-level TAP controller comprises a control mode register for storing a test mode bit indicating how the test operations are to be scheduled for the cores.
31. The MCC of Claim 30, wherein the control mode register further stores an algorithm mode bit indicating which of a plurality of algorithms the test operation utilizes.
32. The MCC of Claim 28, wherein each core comprises a microprocessor.
33. The MCC of Claim 28, wherein each core further comprises gating logic coupled between the means for scheduling test operations for the cores and the core-level TAP controller, the gating logic selectively enabling the core for the test operations in response to the core select bits.
PCT/US2003/021101 2002-07-03 2003-07-02 Hierarchical test methodology for multi-core chips WO2004005949A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2003249712A AU2003249712A1 (en) 2002-07-03 2003-07-02 Hierarchical test methodology for multi-core chips
GB0425535A GB2404446A (en) 2002-07-03 2003-07-02 Hierarchical test methodology for multi-core chips

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/189,870 2002-07-03
US10/189,870 US20040006729A1 (en) 2002-07-03 2002-07-03 Hierarchical test methodology for multi-core chips

Publications (1)

Publication Number Publication Date
WO2004005949A1 true WO2004005949A1 (en) 2004-01-15

Family

ID=29999739

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/021101 WO2004005949A1 (en) 2002-07-03 2003-07-02 Hierarchical test methodology for multi-core chips

Country Status (5)

Country Link
US (1) US20040006729A1 (en)
AU (1) AU2003249712A1 (en)
GB (1) GB2404446A (en)
TW (1) TWI225199B (en)
WO (1) WO2004005949A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120126846A1 (en) * 2008-09-26 2012-05-24 Nxp B.V. Method for testing a partially assembled multi-die device, integrated circuit die and multi-die device
CN104977523A (en) * 2014-04-11 2015-10-14 瑞萨电子株式会社 Semiconductor device, diagnostic test, and diagnostic test circuit
JP2017083421A (en) * 2015-10-27 2017-05-18 晶心科技股▲ふん▼有限公司Andes Technology Corporation Electronic system, and system diagnostic circuit and operation method thereof
WO2020240240A1 (en) * 2019-05-31 2020-12-03 Micron Technology, Inc. Jtag based architecture allowing multi-core operation

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10148032A1 (en) * 2001-09-28 2003-04-24 Bosch Gmbh Robert Testing CPU of microprocessor or micro-controller, by checking gates of CPU that influence flow of computer program during self-test
KR100448706B1 (en) * 2002-07-23 2004-09-13 삼성전자주식회사 System on a chip and test/debug method thereof
DE10300781B4 (en) * 2003-01-11 2014-02-06 Qimonda Ag Memory module, test system and method for testing one or more memory modules
US7290186B1 (en) * 2003-09-16 2007-10-30 Virage Logic Corporation Method and apparatus for a command based bist for testing memories
EP1544632B1 (en) * 2003-12-17 2008-08-27 STMicroelectronics (Research & Development) Limited TAP sampling at double rate
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
KR100594257B1 (en) * 2004-02-26 2006-06-30 삼성전자주식회사 System-on-chip having built-in self test circuits and self test method of the same
US8533716B2 (en) 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
EP1585139A1 (en) * 2004-04-08 2005-10-12 STMicroelectronics Pvt. Ltd An on-chip and at-speed tester for testing and characterization of different types of memories
JP2005309867A (en) * 2004-04-22 2005-11-04 Fujitsu Ltd Multi-core processor test method
JP4296996B2 (en) * 2004-06-15 2009-07-15 富士通株式会社 Multi-core processor control system
US7260759B1 (en) * 2004-06-16 2007-08-21 Sun Microsystems, Inc. Method and apparatus for an efficient memory built-in self test architecture for high performance microprocessors
US7409469B2 (en) * 2004-06-17 2008-08-05 International Business Machines Corporation Multi-chip digital system having a plurality of controllers with input and output pins wherein self-identification signal are received and transmitted
JP2006012234A (en) * 2004-06-23 2006-01-12 Toshiba Corp Circuit and method for memory testing
US9038070B2 (en) * 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
US7818640B1 (en) * 2004-10-22 2010-10-19 Cypress Semiconductor Corporation Test system having a master/slave JTAG controller
US7240267B2 (en) * 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7900099B2 (en) * 2005-01-25 2011-03-01 Micron Technology, Inc. Enabling test modes of individual integrated circuit devices out of a plurality of integrated circuit devices
US7308623B2 (en) * 2005-03-10 2007-12-11 Arm Limited Integrated circuit and method for testing memory on the integrated circuit
US7322000B2 (en) * 2005-04-29 2008-01-22 Freescale Semiconductor, Inc. Methods and apparatus for extending semiconductor chip testing with boundary scan registers
US7324392B2 (en) * 2005-06-09 2008-01-29 Texas Instruments Incorporated ROM-based memory testing
US7484153B2 (en) * 2005-12-06 2009-01-27 Kabushiki Kaisha Toshiba Systems and methods for LBIST testing using isolatable scan chains
US7665002B1 (en) * 2005-12-14 2010-02-16 Advanced Micro Devices, Inc. Multi-core integrated circuit with shared debug port
US20070162446A1 (en) * 2006-01-12 2007-07-12 Appenzeller David P Method of testing a multi-processor unit microprocessor
US7788543B2 (en) * 2006-03-22 2010-08-31 Cisco Technology, Inc. Methods and systems for generating and storing computer program execution trace data
US7346820B2 (en) * 2006-03-23 2008-03-18 Freescale Semiconductor, Inc. Testing of data retention latches in circuit devices
US7802073B1 (en) 2006-03-29 2010-09-21 Oracle America, Inc. Virtual core management
US7627794B2 (en) * 2006-05-25 2009-12-01 Mips Technologies, Inc. Apparatus and method for discrete test access control of multiple cores
KR100881622B1 (en) * 2006-11-14 2009-02-04 삼성전자주식회사 Multichip and test method thereof
US8176355B2 (en) * 2007-06-07 2012-05-08 International Business Machines Corporation Recovery from hardware access errors
US7797512B1 (en) 2007-07-23 2010-09-14 Oracle America, Inc. Virtual core management
US8055822B2 (en) * 2007-08-21 2011-11-08 International Business Machines Corporation Multicore processor having storage for core-specific operational data
CN100568008C (en) * 2007-12-26 2009-12-09 中国科学院计算技术研究所 A kind of test circuit of chip multi-core processor and design method of testability thereof
US8001434B1 (en) 2008-04-14 2011-08-16 Netlist, Inc. Memory board with self-testing capability
US7679391B2 (en) 2008-07-11 2010-03-16 Advantest Corporation Test equipment and semiconductor device
US8140902B2 (en) * 2008-11-12 2012-03-20 International Business Machines Corporation Internally controlling and enhancing advanced test and characterization in a multiple core microprocessor
US8214703B2 (en) * 2009-03-10 2012-07-03 Oracle America, Inc. Testing multi-core processors
US8122312B2 (en) * 2009-04-14 2012-02-21 International Business Machines Corporation Internally controlling and enhancing logic built-in self test in a multiple core microprocessor
US8214702B2 (en) * 2009-11-09 2012-07-03 Hewlett-Packard Development Company, L.P. Distributed joint test access group test bus controller architecture
TWI482166B (en) * 2010-03-19 2015-04-21 Hoy Technology Co Ltd Hybrid self - test circuit structure
US8281199B2 (en) * 2010-05-03 2012-10-02 Hoy Technologies, Co., Ltd. Hybrid self-test circuit structure
US8694844B2 (en) * 2010-07-29 2014-04-08 Texas Instruments Incorporated AT speed TAP with dual port router and command circuit
US9268611B2 (en) 2010-09-25 2016-02-23 Intel Corporation Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores
US9336105B2 (en) * 2010-09-30 2016-05-10 International Business Machines Corporation Evaluation of multiple input signature register results
US8769360B2 (en) * 2010-10-14 2014-07-01 International Business Machines Corporation Dynamic detection and identification of the functional state of multi-processor cores
US9063730B2 (en) * 2010-12-20 2015-06-23 Intel Corporation Performing variation-aware profiling and dynamic core allocation for a many-core processor
US8826092B2 (en) 2011-10-25 2014-09-02 International Business Machines Corporation Characterization and validation of processor links
US9020779B2 (en) 2011-10-25 2015-04-28 International Business Machines Corporation Detecting cross-talk on processor links
CN102520344B (en) * 2011-12-16 2014-04-02 大唐微电子技术有限公司 Boundary scanning module and boundary scanning system for smart card testing
FI126372B (en) * 2012-06-27 2016-10-31 Valio Oy Cheese and process for making it
US9015460B2 (en) * 2012-07-30 2015-04-21 Oracle International Corporation Hybrid hardwired/programmable reset sequence controller
US9384108B2 (en) * 2012-12-04 2016-07-05 International Business Machines Corporation Functional built-in self test for a chip
CN103149529B (en) * 2013-03-08 2015-11-25 龙芯中科技术有限公司 Polycaryon processor and method of testing thereof and device
US20150046763A1 (en) * 2013-08-12 2015-02-12 Apple Inc. Apparatus and Method for Controlling Internal Test Controllers
GB2518866A (en) * 2013-10-03 2015-04-08 St Microelectronics Res & Dev Flexible interface
US10184980B2 (en) * 2016-09-06 2019-01-22 Texas Instruments Incorporated Multiple input signature register analysis for digital circuitry
US10352998B2 (en) * 2017-10-17 2019-07-16 Microchip Technology Incorporated Multi-processor core device with MBIST
US11087857B2 (en) * 2017-11-15 2021-08-10 Texas Instruments Incorporated Enabling high at-speed test coverage of functional memory interface logic by selective usage of test paths
US11143703B2 (en) 2018-09-28 2021-10-12 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for testing a multi-die integrated circuit device
CN111308329B (en) * 2020-03-20 2022-02-25 深圳芯行科技有限公司 Circuit, device and method for testability design of many-core computing chip
US20230185633A1 (en) * 2021-12-14 2023-06-15 Texas Instruments Incorporated Distributed mechanism for fine-grained test power control

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0419734A1 (en) * 1989-08-25 1991-04-03 Koninklijke Philips Electronics N.V. Method for testing a hierarchically organised integrated circuit device, and integrated circuit device suitable for being so tested
US6122762A (en) * 1997-09-25 2000-09-19 Samsung Electronics Co., Ltd Memory interface device and method for supporting debugging
US20020040458A1 (en) * 2000-01-18 2002-04-04 Bulent Dervisoglu Hierarchical test circuit structure for chips with multiple circuit blocks
US6378090B1 (en) * 1998-04-24 2002-04-23 Texas Instruments Incorporated Hierarchical test access port architecture for electronic circuits including embedded core having built-in test access port

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324614B1 (en) * 1997-08-26 2001-11-27 Lee D. Whetsel Tap with scannable control circuit for selecting first test data register in tap or second test data register in tap linking module for scanning data
US6115763A (en) * 1998-03-05 2000-09-05 International Business Machines Corporation Multi-core chip providing external core access with regular operation function interface and predetermined service operation services interface comprising core interface units and masters interface unit
US6686759B1 (en) * 2000-11-28 2004-02-03 Cadence Design Systems, Inc. Techniques for testing embedded cores in multi-core integrated circuit designs
US6760865B2 (en) * 2001-05-16 2004-07-06 Freescale Semiconductor, Inc. Multiple level built-in self-test controller and method therefor
US6728916B2 (en) * 2001-05-23 2004-04-27 International Business Machines Corporation Hierarchical built-in self-test for system-on-chip design

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0419734A1 (en) * 1989-08-25 1991-04-03 Koninklijke Philips Electronics N.V. Method for testing a hierarchically organised integrated circuit device, and integrated circuit device suitable for being so tested
US6122762A (en) * 1997-09-25 2000-09-19 Samsung Electronics Co., Ltd Memory interface device and method for supporting debugging
US6378090B1 (en) * 1998-04-24 2002-04-23 Texas Instruments Incorporated Hierarchical test access port architecture for electronic circuits including embedded core having built-in test access port
US20020040458A1 (en) * 2000-01-18 2002-04-04 Bulent Dervisoglu Hierarchical test circuit structure for chips with multiple circuit blocks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HABERL O F ET AL: "A chip solution to hierarchical and boundary-scan compatible board level BIST", VLSI, 1992., PROCEEDINGS OF THE SECOND GREAT LAKES SYMPOSIUM ON KALAMAZOO, MI, USA 28-29 FEB. 1992, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, PAGE(S) 16-21, ISBN: 0-8186-2610-0, XP010026890 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120126846A1 (en) * 2008-09-26 2012-05-24 Nxp B.V. Method for testing a partially assembled multi-die device, integrated circuit die and multi-die device
US8829940B2 (en) * 2008-09-26 2014-09-09 Nxp, B.V. Method for testing a partially assembled multi-die device, integrated circuit die and multi-die device
CN104977523A (en) * 2014-04-11 2015-10-14 瑞萨电子株式会社 Semiconductor device, diagnostic test, and diagnostic test circuit
JP2017083421A (en) * 2015-10-27 2017-05-18 晶心科技股▲ふん▼有限公司Andes Technology Corporation Electronic system, and system diagnostic circuit and operation method thereof
WO2020240240A1 (en) * 2019-05-31 2020-12-03 Micron Technology, Inc. Jtag based architecture allowing multi-core operation

Also Published As

Publication number Publication date
TW200405166A (en) 2004-04-01
TWI225199B (en) 2004-12-11
US20040006729A1 (en) 2004-01-08
AU2003249712A1 (en) 2004-01-23
GB2404446A (en) 2005-02-02
GB0425535D0 (en) 2004-12-22

Similar Documents

Publication Publication Date Title
US20040006729A1 (en) Hierarchical test methodology for multi-core chips
US6101457A (en) Test access port
KR100267096B1 (en) Adaptive scan chain for debug and manufacturing test purposes
US6353905B1 (en) Semiconductor integrated circuit and recording medium
US6574762B1 (en) Use of a scan chain for configuration of BIST unit operation
Bleeker et al. Boundary-scan test: a practical approach
US7979764B2 (en) Distributed test compression for integrated circuits
KR100309537B1 (en) Weighted random pattern built-in self-test
US8161337B1 (en) Serially connected circuit blocks with TAPs and wrapper enable lead
US5768289A (en) Dynamically controlling the number of boundary-scan cells in a boundary-scan path
US6826101B2 (en) Semiconductor device and method for testing the same
US20050240848A1 (en) Masking circuit and method of masking corrupted bits
TW200424842A (en) Method and apparatus for testing embedded cores
US7844867B1 (en) Combined processor access and built in self test in hierarchical memory systems
US7447962B2 (en) JTAG interface using existing I/O bus
Parulkar et al. A scalable, low cost design-for-test architecture for UltraSPARC/spl trade/chip multi-processors
US8924801B2 (en) At-speed scan testing of interface functional logic of an embedded memory or other circuit core
Gillis et al. Test methodologies and design automation for IBM ASICs
Tulloss et al. BIST and boundary-scan for board level test: Test program pseudocode
Landis A test methodology for wafer scale system
JP4176944B2 (en) Semiconductor integrated circuit and recording medium
Zarrineh et al. Self test architecture for testing complex memory structures
Torreiter et al. Testing the enterprise IBM System/390/sup TM/multi processor
US20060069974A1 (en) One-hot encoded instruction register for boundary scan test compliant devices
Starke Design for testability and diagnosis in a VLSI CMOS System/370 processor

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

ENP Entry into the national phase

Ref document number: 0425535

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20030702

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

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP