An interface unit is provided for use with a JTAG test and debug procedure involving a plurality of processor cores. The interface unit is provided with a logic unit that can translate test and debug commands into control signals. The control signals are applied to a power state machine coupled to a processor/core. The state of the power state machine can thereby be controlled and therefore the parameters of the associated processor/core, i.e., the power and clock parameters of the processor/core. In addition, the logic unit can generate control signals for activating switches, switches that controllably selective apply the TRST signal and the TMS signal to the tap unit of the processor/core. This capability permits the tap units of each processor/core to be synchronized.
|
19. A method for testing a processor core controllably coupled to a power state machine, the method comprising:
receiving test commands for testing the processor core at a processor test access port (tap) comprised in the processor core;
receiving test commands to request changes to power and clock parameters of the processor core at an interface tap of an interface unit controllably coupled to the power state machine; and
forcing a change to the parameters in response to a test command received by the interface tap.
16. An apparatus comprising:
a processor core comprising a processor test access port (tap), wherein the processor tap is operable to control testing of the processor core;
a power state machine controllably coupled to the processor core to change clock and power parameters of the processor core; and
an interface unit controllably coupled to the power state machine, wherein the interface unit comprises an interface tap operable to receive test commands and the interface unit is operable to force a change to the clock and power parameters responsive to a test command received by the interface tap.
9. method comprising:
receiving a test command in a test access port (tap) of an interface unit coupled to a plurality of power state machines, wherein each power state machine is coupled to a respective one processor core of a plurality of processor cores to control power and clock parameters of the respective one processor core, wherein each processor core comprises a tap, and wherein the test command requests a parameter change in at least one processor core of the plurality of processor cores; and
sending, by the interface unit, control signals to the power state machine coupled to the at least one processor core, wherein the parameter change is forced.
1. An apparatus comprising:
a plurality of processor cores, wherein each processor core is coupled to a respective one power state machine of a plurality of power state machines, wherein each power state machine is configured to control power and clock parameters of the respective processor core, and wherein each processor core comprises a test access port (tap); and
an interface unit coupled to the plurality of power state machines, wherein the interface unit comprises a tap configured to receive test commands, and wherein the interface unit is configured to selectively provide control signals to the plurality of power state machines to force a parameter change in the respective processor cores in response to a received test command requesting the parameter change.
2. The apparatus of
3. The apparatus of
4. The apparatus of
5. The apparatus of
a plurality of switch units, wherein each switch unit is coupled to the tap of a respective one processor core of the plurality of processor cores, and wherein each switch unit is coupled to receive a test signal from a test and debug unit, and
wherein the interface unit is coupled to the plurality of switch units to selectively provide control signals to the plurality of switch units, and wherein the interface unit is further configured to, in response to a received test command, selectively provide control signals to at least one of the switch units to cause the at least one switch unit to apply the received test signal to the respective tap.
7. The apparatus of
10. The method of
receiving, by the interface unit, confirmation from the power state machine that the parameter change is complete.
11. The method of
12. The method of
13. The method of
sending, by the interface unit, current parameters of the at least one processor core to a test and debug unit responsive to a test command.
14. The method of
receiving a test signal from a test and debug unit at a switch unit coupled to the tap of the at least one processor core; and
sending, by the interface unit in response to a test command, control signals to the switch unit to cause the switch unit to apply the test signal to the tap.
15. The method of
17. The apparatus of
18. The apparatus of
20. The method of
applying a test signal received from a test and debug unit to the processor tap in response to a test command received by the interface tap, wherein the interface unit is controllably coupled to the processor tap to cause the application of the test signal.
|
This application is related to provisional U.S. Patent Application Ser. No. 60/675,274, filed Apr. 27, 2005, titled “Apparatus and Method to Facilitate Debug and Test in a Multi-Processor System in the Presence of Lower Power and Security Constraints,” for which priority under 35 U.S.C. 119(e) (1) is hereby claimed and which is hereby incorporated herein by reference.
U.S. patent application No. 11/411,670 entitled Apparatus And Method For Coupling A Plurality Of Test Access Ports To External Test And Debug Facility, invented by Robert A. McGowan and filed on even date herewith; and U.S. Patent Application No. 11/411,381 entitled Apparatus And Method For Test And Debug Of A Processor/Core Having Advanced Power Management, invented by Robert A. McGowan and filed on even date herewith are related applications.
1. Field of the Invention
This invention relates generally to the test and debug of multiple processors on a chip and, more particularly to the coupling of the test access ports (TAPs) associated with each processor to an external test and debug unit. More specifically, this invention relates to control of selected parameters by the test and debug procedures.
2. Background of the Invention
Today's digital signal processors, microprocessor, and complex logic cores facilitate test via a limited pin interface called the JTAG interface. This interface conforms to the IEEE 1149.1 Test Access Port (TAP) protocol and requirements. Modern processor units often use the JTAG interface to provide access to in-circuit emulation (ICE) logic in order to facilitate debug of an embedded processor or logic system-on-a-chip designs. The processor unit often has multiple processors/cores, each processor/core having its own TAP.
The IEEE1149.1 specification has two ways in which multiple TAPs can be connected together. In the parallel configuration, a single TDI (test data in) input signal is connected to the TDI input of each TAP in the system. Similarly, the TDO (test data out) output signals from all of the processors/cores are wired together. A separate TMS control signal for each TAP is used to drive each TAP state independently. The controller assures that only one TAP at a time is put into a state in which it responds to the TDI input signals and transmits the TDO output signals.
The problem with a parallel configuration is that each TAP requires its own TMS control signal. On a system-on-a-chip with multiple processor/cores, this configuration would require several pins on the device. In addition, each of these pins would need to be coupled to a JTAG controller. This coupling would require additional signals on the processor unit board and the connector to the JTAG controller. This solution to the problem of multiple TAPS is not conveniently scalable. Since only one TAP can drive its TDO output at the same time, the parallel solution also does not facilitate co-emulation in which multiple TAPs need to be driven through the TAP state machine at the same time.
With the parallel configuration, one or more TAPs can be turned off or un-powered while preserving the ability to performs scans to active TAPS. However, once a TAP becomes inactive, there is no way for a controller to wakeup the module and re-enable scans.
The series configuration is the more common configuration for connecting multiple TAPs. This configuration requires that all TAPs be clocked with the same clock and the serial output of one TAP is used as the serial input to the next TAP in the system. This configuration supports both debug and test procedures.
There are several problems with the series test configuration. First, if the power is removed from one TAP in the series, then the controller will be unable to shift data into and out of any TAP linked in series with the un-powered TAP. Once a TAP has been un-powered, the scan controller is not able to wakeup the sleeping module. The second problem is that all TAPs must be clocked at the same frequency. Consequently, the maximum clock frequency is limited by the slowest component in the system. Synthesizable ARM processors from ARM Ltd exacerbate this problem since the JTAG TCK (test clock) clock signal must be synchronized with the ARM processor functional clock. This synchronized TCK signal, called the RTCK signal, must be used as the TCK signal for all other components linked in series with the ARM processor. Therefore, if the ARM clock is running at a slow frequency or is turned off, scanning through any of the TAPs in series with this core is not possible.
Another problem with the series configuration of TAPs is that to access one particular TAP, the controller must scan through all of the TAPs in the series. This feature makes scaling difficult. Systems or even systems-on-a-chip may have hundreds of processors. This complexity leads to a scan path that is thousands of bits long. A long scan path significantly slows debug of a selected processor core.
The series configuration also presents problems for production testing. Typically, the test vectors used in a production test are written for a single TAP. The test harness does not have an automated method to understand that other TAPs may precede or follow the TAP under test in the JTAG series. For each system, these test vectors must be rewritten to accommodate several TAPs in series.
In order to protect confidential information being processed on an embedded device, some devices are equipped with security features to block viewing of some data. Security features on a system may also be used to protect intellectual property, such as algorithms, drivers, or other software. Because debug procedures use the TAP on a processor to access ICE logic, security logic often disables the TAP on the protected core. In past designs, the TAP was disabled by gating the TCLK signal, which is the TAP clock signal.
Gating the TCLK signals presents several problems. First, gating the TCLK signal at the device level blocks debug and test procedures access to all TAPs and hence all processor/cores to in the system. This unsophisticated technique does not allow for visibility in the protected system while blocking visibility into other systems. Even if the TCLK signal was gated closer to the processor/core's TAP, this implementation would not help because the TAPs are connected in series. For the shifting through the series TAPs to be implemented, the TCLK signal must be enabled to all TAPs in the chain. The second problem is that blocking visibility into the system is in direct conflict with the needs of debug procedures that seek to give full visibility into the system. A method is needed to selectively and dynamically enable or disable access to all TAPs in a system.
Referring to
Referring to
The operation of the TAP unit 20 can be summarized as follows. A value is entered in the IR register 25. In response to the value, an activity is implemented by control signals generated by the logic unit 22. This result of a value in the IR register can be a transfer of a value from the DR register to a register in the processor/core result or can result in the transfer of a value in a processor/core register to a DR register. One predetermined value in the IR register 25 results in a logic “1” being set in the bit-by-pass register 29. Thus, in the example of a plurality of TAP units, a string of logic signals entered in all the IR registers and synchronized by the state machine, can short circuit one or more designated TAP units by setting the logic “1” in the by-pass bit register. When the contents of a string of DR registers in the TAP unit sequence is read out, the designated by-pass bit registers provide only a logic “1” output, in essence, providing a short circuit for the test and debug activity for the processor/core associated a designated tap register.
One of the problems that can arise in the test and debug procedures is that the processor/core being tested is not in an appropriate state for testing. For example, the power to processor/core can be removed from part or from all of the processor/core, rendering testing impossible. The power may be reduced as part of an energy management scheme. Similarly, the system clock of the processor/core can be altered, either as a power control feature or for some other reason. Finally, the state machine of a processor/core TAP unit may be in an inappropriate state. The state machine of the TAP unit must be synchronized with the TAP units of the other processor/cores for the test and debug procedures
A need has therefore been felt for apparatus and an associated method having the feature of improving test and debug procedures. It is a more particular object of the apparatus and associated method to permit selective testing of a number of a plurality of processor. It is yet a further object of the apparatus and associated method to activate the selected processor/cores using JTAG test and debug procedures. It is a still further feature of the apparatus and associated method to provide a technique for determining the status of selected processor/core parameters for certain processor/cores. It is more particular feature of the apparatus and associated method to provide an interface unit between the test and debug apparatus and a plurality of processor/cores that can facilitate the test and debug procedures. It is a still further particular feature of the apparatus and associated method to provide an interface unit that includes a TAP unit. It is yet another particular feature of the apparatus and associated method to provide a status registers providing the status of the plurality of processor/cores under test. It is still another feature of the apparatus and related method to permit the test and debug procedures to control certain processor/core parameters. It is a still further feature of the apparatus and associated method to provide a technique for controlling the power and clock parameters of a processor/core. It is yet another feature of the apparatus and associated method to be able to synchronize the TAP unit state machines for all processor/cores being tested.
The aforementioned and other features are provided, according to the present invention, by an interface unit between a plurality of TAP units of processor/cores on a substrate and a test and debug unit. The interface unit includes a TAP unit. The interface unit and the processor/cores have a switch unit coupled to each TAP unit. The interface unit includes a logic unit for translating the command signals from the test and debug unit into control signals. In this manner, control signals can be generated that are applied to the power state machine coupled to the processor/core. The control signals can control the state of the processor/core and consequently the power and clock parameters. The logic unit, in response to test and debug commands, generates control signals operating switches in each switch unit associated with a processor/core. In this manner, the TRST signal and the TMS signal, which are applied to input terminals of the switch units, can controllably be applied to the state machine of the processor/core TAP unit. The state of the TAP units of the processor/cores can thereby be synchronized.
These and other features and advantages of present invention will be more clearly understood upon reading of the following description and the accompanying drawings and the claims.
Referring to
The values in the status registers permit the test and debug apparatus to determine when a processor/core is available for testing. The determination of the availability of each processor/core can be done with the same JTAG procedures as are used in the actual test and debug procedure.
Each processor/core 11-1N has a power state machine 121-12N, respectively, coupled thereto. The power state machines 121-12N control the power level of the coupled processor/core. The power state machines are coupled to the logic unit 303 in the interface unit. Through the logic unit 303, the status of the power state machine is coupled to and entered in the status and control registers 304. The status and control registers 304 store the status of the power applied to the coupled processor/core. The status of the power applied to each processor core can be communicated to the test and debug unit through the interface TAP unit. In this manner, the test and debug unit can determine whether the power applied to the coupled processor/core is appropriate for test and debug procedures.
The logic unit 303 is coupled to the power state machines 121-12N and to the status and control register. The state of the power state machine is transmitted to the logic unit 303 and consequently is stored in the status and control registers 304 in response to commands from the test and debug unit can specify the state of each power state machine.
Referring to
Referring to
Referring to
As indicated before with respect to the RTCLK signal, this signal is not a member of the JTAG signal set. However, some processor cores, such as ARM units, the TCLK signal is processed by the processor/core and the processed signal is referred to as the RTCLK signal. As will be clear, the present invention can work equally well with and without the generation of the RTCLK signal.
The operation of the present invention can best be understood in the following manner. On a chip having a plurality of processor/cores, each processor core is provided with a TAP unit to provide the interface to JTAG signals. The processor/core TAP units are coupled in series. An interface unit is provided that includes a TAP unit. The interface unit TAP unit is coupled in series with the series-coupled TAP units of the processor cores. A first set of switches is provided for each TAP unit. In response to control signals, the TDI terminal and the TDO terminal for a selected TAP unit can be short circuited. Similarly, in response to second control signals, the TCLK terminal and the RTCLK terminal are coupled together, i.e. short circuited. The control signals are generated in response to TDI signals applied to the interface unit TAP unit by the test and debug unit. In response to the TDI signal, the logic unit of the interface unit can implement the encoded commands. In this manner, the switches can set such that only one TAP unit receives the TDI and TCLK signals. The ability to control the state of each switch unit permits the selection and therefore the testing of a selected individual processor/core. A plurality of processor/cores can be selected. In this manner, a plurality of processor/cores can be tested simultaneously. The ability of the testing of a plurality of processor/cores requires that test and debug unit generate a string of data signals capable in the single access by the test and debug apparatus of placing appropriate bits in the plurality of TAP unit IR registers of the selected processor/cores. Similarly, when the test and debug apparatus receive the results of testing the plurality of processor/cores, the test and debug apparatus will have to sort out the responses from each selected processor/core from a string of data bits from a plurality of DR registers.
The interface unit includes a plurality of status registers. Typical parameters stored in the status registers relate to power, clock and security conditions. Each of these conditions determines the ability to test the processor/core described by the parameters. When the processor/core is not available for test, e.g., the power is off, this information is transmitted through the interface unit TAP unit to the test and debug unit. The test and debug unit then transmits signal groups through the interface unit TAP unit to the logic unit appropriate signals that result in control signals being transmitted to the switch unit associated with the (powered-off) processor/core. The control signals then place the switch in a short circuit mode and the TDI and TCLK signals are not applied to the (powered-off) processor/core. This procedure prevents the test and debug procedure from being halted because of a condition in one of the processor/cores.
With respect to the RTCLK signal, this clock signal is a result of a peculiarity of the ARM unit wherein, in order to use the JTAG test and debug procedures, the TCLK signal must be synchronized with the internal clock of the ARM unit. The resulting (synchronized) signal is referred to as the RTCLK signal and, according to one embodiment of the invention, when a single ARM unit is in the scan chain, the RTCLK signal from the single ARM unit can, depending on the state of the switches, either be applied to each scan chain TAP unit or pass through each scan chain TAP unit. The state of each switch of the scan chain is controlled by the logic unit in the interface unit and, ultimately, by the test and debug unit. When more than one ARM unit is present, then each of the ARM units will provide a different RTCLK signal. The net result of the presence of a plurality of ARM units in the scan chain is to slow the clock rate with the passage of the TCLK or RTCLK signal through the scan chain. When the resulting RTCLK signal is applied to the test and debug unit, the test and debug unit can throttle back the clock rate of the TCLK signal so that the, signals in the scan chain can be shifted in unison.
As indicated, the control signals, generated by the logic unit in the interface unit in response to test and debug commands can be applied to the power state machine associated with each processor/core. Control signals, generated by the logic in the interface unit in response to other test and debug commands, control the application of the TRST signal and the TMS signal and consequently provide a technique for the synchronization of the TAP units of the associated processor/cores.
While the invention has been described with respect to the embodiments set forth above, the invention is not necessarily limited to these embodiments. Accordingly, other embodiments, variations, and improvements not described herein are not necessarily excluded from the scope of the invention, the scope of the invention being defined by the following claims.
Patent | Priority | Assignee | Title |
10095300, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
10534419, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
10613610, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
10635155, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
7743278, | Nov 28 2005 | Renesas Electronics Corporation; NEC Electronics Corporation | Test access control for plural processors of an integrated circuit |
7870429, | Jun 22 2007 | Kabushiki Kaisha Toshiba | Control apparatus |
7949887, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
8020058, | Jun 17 2004 | International Business Machines Corporation | Multi-chip digital system having a plurality of controllers with self-identifying signal |
8069358, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
8555120, | Apr 30 2010 | Samsung Electronics Co., Ltd. | Target device providing debugging function and test system comprising the same |
8639981, | Aug 29 2011 | Apple Inc. | Flexible SoC design verification environment |
8782468, | Dec 22 2010 | Intel Corporation | Methods and tools to debug complex multi-core, multi-socket QPI based system |
8819506, | Apr 30 2010 | Samsung Electronics Co., Ltd. | Target device providing debugging function and test system comprising the same |
8856568, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
8996899, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
9021279, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
9037885, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
9037892, | Apr 13 2011 | International Business Machines Corporation | System-wide power management control via clock distribution network |
9135132, | Sep 20 2011 | Samsung Electronics Co., Ltd. | Method of testing a device under test, device under test, and semiconductor test system including the device under test |
9619011, | Aug 14 2013 | Samsung Electronics Co., Ltd. | System on chip for debugging a cluster regardless of power state of the cluster, method of operating the same, and system having the same |
9841803, | Nov 01 2006 | Intel Corporation | Independent power control of processing cores |
Patent | Priority | Assignee | Title |
5459737, | Jul 07 1993 | National Semiconductor Corporation | Test access port controlled built in current monitor for IC devices |
5636227, | Jul 08 1994 | ARM Limited | Integrated circuit test mechansim and method |
5983014, | May 26 1995 | National Semiconductor Corp. | Power management system that one of plurality of peripheral signals is selectably routed to main pad clock node during a test mode |
6073254, | Aug 30 1996 | Texas Instruments Incorporated | Selectively accessing test access ports in a multiple test access port environment |
6094729, | Dec 17 1997 | GLOBALFOUNDRIES Inc | Debug interface including a compact trace record storage |
6115763, | Mar 05 1998 | 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 |
6314530, | Dec 17 1997 | GLOBALFOUNDRIES Inc | Processor having a trace access instruction to access on-chip trace memory |
6324662, | Mar 27 1998 | Texas Instruments Incorporated | TAP and linking module for scan access of multiple cores with IEEE 1149.1 test access ports |
6665802, | Feb 29 2000 | MEDIATEK INC | Power management and control for a microcontroller |
6704895, | |||
7058862, | May 26 2000 | Texas Instruments Incorporated | Selecting different 1149.1 TAP domains from update-IR state |
7111217, | Feb 28 2002 | XILINX, Inc.; Xilinx, Inc | Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC) |
7213171, | Aug 30 1996 | Texas Instruments Incorporated | IEEE 1149.1 tap instruction scan with augmented TLM scan mode |
7313730, | May 20 2004 | Nokia Siemens Networks Oy | Configuration logic for embedded software |
7389456, | May 26 2000 | Texas Instruments Incorporated | IC with linking module in series with TAP circuitry |
7398440, | Dec 17 2003 | STMICROELECTRONICS RESEARCH & DEVELOPMENT LIMITED | Tap multiplexer |
7412633, | Apr 17 2003 | ARM Limited | Communication interface for diagnostic circuits of an integrated circuit |
20050097519, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 26 2005 | MCGOWAN, ROBERT A | Texas Instruments Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017829 | /0216 | |
Apr 26 2006 | Texas Instruments Incorporated | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Oct 04 2012 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 27 2016 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 23 2020 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
May 19 2012 | 4 years fee payment window open |
Nov 19 2012 | 6 months grace period start (w surcharge) |
May 19 2013 | patent expiry (for year 4) |
May 19 2015 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 19 2016 | 8 years fee payment window open |
Nov 19 2016 | 6 months grace period start (w surcharge) |
May 19 2017 | patent expiry (for year 8) |
May 19 2019 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 19 2020 | 12 years fee payment window open |
Nov 19 2020 | 6 months grace period start (w surcharge) |
May 19 2021 | patent expiry (for year 12) |
May 19 2023 | 2 years to revive unintentionally abandoned end. (for year 12) |