US8914566B2 - Managing interrupts - Google Patents
Managing interrupts Download PDFInfo
- Publication number
- US8914566B2 US8914566B2 US13/527,048 US201213527048A US8914566B2 US 8914566 B2 US8914566 B2 US 8914566B2 US 201213527048 A US201213527048 A US 201213527048A US 8914566 B2 US8914566 B2 US 8914566B2
- Authority
- US
- United States
- Prior art keywords
- data packet
- interrupts
- processing device
- data
- circuitry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2733—Test interface between tester and unit under test
Definitions
- This disclosure relates generally to managing interrupts that are directed to a processing system.
- ATE Automatic test equipment plays a role in the manufacture of electronics, such as semiconductor devices and circuit board assemblies. Manufacturers generally use automatic test equipment, or “test instruments”, to verify the operation of devices during the manufacturing process. Such devices are referred to as a “device under test” (DUT) or a “unit under test” (UUT).
- DUT device under test
- UUT unit under test
- ATEs typically include a processing device, such as a microprocessor, and hardware elements, such as circuitry or logic configured to perform various tasks.
- the hardware elements may issue interrupts to the processing device.
- an interrupt is an asynchronous signal indicating that a particular hardware device is in need of attention.
- a hardware interrupt causes the processing device to save its state of execution and to begin execution of an interrupt handler.
- the interrupt hander may include code that is executed on the processor to service the interrupt.
- PCIe peripheral component interconnect Express-based system
- MSI message signal interrupts
- a processing device referred to as a “root complex” in PCI Express parlance.
- the processing device may address the interrupt, which can interfere with processing and thereby affect processing efficiency.
- An example process may include: receiving interrupts bound for a processing device, where the interrupts are received from hardware devices that are configured to communicate with the processing device; generating data containing information corresponding to the interrupts; and sending the data to the processing device.
- the example process may include one or more of the following features, either alone or in combination.
- the data may first data, and the processes may include the following: generating second data, where the second data identifies the electronic circuitry; and sending the second data to the processing device following the first data.
- the electronic circuitry may comprise a first aggregator, and the second data may comprise a signature unique to the first aggregator.
- At least some interrupts may be received via a dedicated transmission path, and at least some (e.g., other) of interrupts may be multiplexed on a same transmission path.
- the data may comprise a packet containing an address that corresponds to the processing device.
- An example of the electronic circuitry may include the following: an input interface for receiving interrupts bound for a processing device, where the interrupts are received from hardware devices that are configured to communicate with the processing device; a data generator for generating data containing information corresponding to the interrupts; and an output interface for sending the data to the processing device.
- the example electronic circuitry may include one or more of the following features, either alone or in combination.
- the data may be first data; the data generator may be configured to generate second data, where the second data identifies the electronic circuitry; and the second data may be sent over the output interface to the processing device following the first data.
- the electronic circuitry may comprise a first aggregator; and the second data may comprise a signature unique to the first aggregator.
- Each first interrupt may be received via a dedicated transmission path between corresponding hardware and the electronic circuitry, and at least some of the second interrupts may be multiplexed on a same transmission path.
- the data may comprise a packet containing an address that corresponds to the processing device.
- An example of a system may include the following: a processing device; one or more first dedicated lines for transmitting first interrupts having a first latency; one or more second dedicated lines for transmitting second interrupts having a second latency that is different from the first latency, where interrupts on the second lines are multiplexed for transmission; and circuitry to receive the first interrupts and the second interrupts, to generate data corresponding to the first interrupts and the second interrupts, and to send the data to the processing device.
- the example system may include one or more of the following features, either alone or in combination.
- the data may be first data and the circuitry may be configured to send second data to the processing device.
- the second data may be sent after the first data, and the second data may identify the circuitry.
- the circuitry may comprise a first aggregator; and the second data may comprise a signature unique to the first aggregator.
- the data may comprise a packet containing an address that corresponds to the processing device.
- the system may comprise a PCI Express bus to interconnect the circuitry and the processing device.
- the data may be sent over the PCI Express bus.
- the system may comprise a second processing device, and the circuitry may send the data to the second processing device.
- the first and second processing devices may be root complexes.
- the data may be first data and the circuitry may be configured to send second data to the second processing device.
- the second data may be sent after the first data, and the second data may identify the circuitry.
- the systems and techniques described herein, or portions thereof, may be implemented as a computer program product that includes instructions that are stored on one or more non-transitory machine-readable storage media, and that are executable on one or more processing devices.
- the systems and techniques described herein, or portions thereof, may be implemented as an apparatus, method, or electronic system that may include one or more processing devices and memory to store executable instructions to implement the stated functions.
- FIG. 1 is an example block diagram of a test instrument.
- FIG. 2 is a flowchart of an example process that may be performed by the test instrument of FIG. 1 .
- FIG. 3 is a block diagram of an example test system that may include the test instrument of FIG. 1 , or portions thereof.
- FIG. 4 is a block diagram of a portion of the test system of FIG. 3 .
- test instrument that manages interrupts on buses, such as a PCI Express bus domain.
- the test instrument is configured, among other things, to receive interrupts bound for a processing device internal or external to the bus domain, to generate data containing information corresponding to the interrupts, and to send the data to the processing device.
- the data may take the form of one or more packets, that aggregate the interrupts, and that are addressed to the processing device (e.g., a PCI Express root complex).
- the processing device may read the payload of the initial packet, and service the interrupts identified therein.
- FIG. 1 is a block diagram of an example implementation of the foregoing test instrument 100 , also referred to as ATE.
- test instrument 100 includes a processing device 101 , which may be a central processing unit (CPU).
- Processing device 101 may be a microprocessor, microcontroller, programmable logic, or other appropriate circuitry for performing processing operations.
- processing device 101 controls various features of test instrument 100 , such as communication with an external network 102 , which may be a PCI Express network.
- processing device 101 is programmable to perform various testing operations, examples of which are provided below.
- processing device 101 may include one or more processing devices, such as one or more microprocessors or a single multi-core microprocessor (not shown).
- processing device 101 may also include memory (not shown) that stores executable code to control test instrument communication with the external environment, and to perform various “housekeeping” functions to control operation of test instrument 100 .
- processing device 101 may be responsible for exchanging communications between the test instrument and one or more external entities over an output interface such as a network interface, memory management, power control, and other functions that are not specifically related to testing.
- Processing device 101 is programmable to perform test operations on a UUT (not shown) interfaced to test instrument 100 , e.g., via network 102 .
- the test operations may include, but are not limited to, testing bus speed, reaction time, or any other appropriate operational aspects of the UUT.
- the testing that is performed is dependent upon the type of device being tested, and the information sought during testing.
- one or more test programs may be loaded into memory on processing device 101 , and executed by processing device 101 in order to perform the testing. While performing testing, processing device 101 may continue to perform other functions, including those described elsewhere herein, e.g., to keep test instrument 100 operational.
- processing device 101 may be part of a multi-tiered processing system.
- the first tier may include a system processing device 110 .
- System processing device 110 may be a microprocessor, microcontroller, programmable logic, or other appropriate circuitry for performing processing operations.
- System processing device 110 may be configured to perform testing operations, such as those described herein, on individual UUTs.
- System processing device 110 may also be configured to coordinate processing among various test instruments, including test instrument 100 .
- System processing device 110 may be separate (e.g., remote) from, or incorporated into, a test instrument.
- system processing device 110 is part of computer 112 , although that need not be the case in other system implementations.
- a second tier in the multi-tiered system may include embedded processing devices, such as processing device 101 .
- processing devices are embedded in the sense that they are incorporated into cores of test instrument 100 , and may be dedicated to performing test functions (e.g., to testing UUTs interfaced to test instrument 100 ).
- FIG. 1 shows only one core 103 of the test instrument; however multiple cores identical to core 103 may be included in the same test instrument.
- Embedded processing devices need not (but may) be responsible for test instrument operations.
- the embedded processing devices may be programmed to perform one or more such operations, or other operations not specifically directed to testing UUTs.
- a third tier may include programmable logic, e.g., field-programmable gate arrays (FPGAs) (not shown), each of which may be configured to act as an interface between a UUT, or portion thereof (e.g., a UUT bus) and test instrument 100 , and to facilitate testing.
- FPGAs field-programmable gate arrays
- testing may be performed exclusively by one tier or another of the architecture.
- processing device 101 may be programmed to run one or more test programs to test a UUT, while devices on other tiers of the architecture do not perform UUT tests.
- System processing device 110 may be programmed to run one or more test programs to test a UUT, while devices on other tiers of the architecture do not perform UUT tests. Devices that are not performing tests are not necessarily dormant during this time.
- system processing device 110 may continue to coordinate operations among various cores of the test instrument and/or other test instrument electronics; the FPGAs may continue to route data to/from the UUT (i.e., to act as interfaces to the UUT); and the embedded processing devices may continue to be active in coordination or other communication (e.g., transmitting test results from the FPGAs to system processing device 110 ).
- testing may be performed by different tiers of the architecture concurrently or in concert (e.g., coordinated among the tiers).
- two or more of system processing device 110 , embedded processing devices 101 , and FPGA(s) may act in coordination at the same time or within the same test sequence to perform one or more test operations on a single UUT or on multiple UUTs.
- appropriate programming is loaded into processing devices 101 and/or 110 , and/or appropriate images are loaded into the FPGA(s).
- a first test may be performed on a UUT by system processing device 110 ; and a second test may be performed on the UUT by processing device 101 .
- the first and second tests may be separate tests, or part of the same test sequence.
- Data from the various tests may be combined, e.g., in system processing device 110 , and processed to obtain the appropriate test results. These test results may be sent to an external computer for analysis and reporting.
- network 102 may have a PCI Express bus backbone 115 .
- a PCI Express bus is a high-speed serial interconnect bus that uses shared address/data lines.
- PCI Express is based on point-to-point topology, with separate serial links connecting devices to a root complex (e.g., processing device 101 for core 103 ).
- PCI Express communication is encapsulated in packets.
- message signal interrupts MSI are sent from individual hardware elements to the root complex (e.g., processing device 101 in core 103 ).
- test instrument 100 includes electronic circuitry, e.g., programmable logic such as FPGA 120 , that acts as an aggregator to aggregate (e.g., combine) and output information about interrupts.
- FPGA 120 is configured, among other things, to receive interrupts bound for a root complex (e.g., processing device 101 ). In this example, the interrupts are received from one or more hardware devices that are configured to communicate with the processing device.
- FPGA 120 is also configured to generate data (e.g., packet(s)) containing information corresponding to the interrupts, and to send the data to the processing device.
- FPGA 120 is programmed to implement a data generator 121 to perform the operations of generating data containing information corresponding to the interrupts, and sending the data to the processing device.
- FPGA 120 is positioned in a circuit path between test hardware (e.g., test defined FPGA 125 ) and processing device 101 .
- test hardware e.g., test defined FPGA 125
- the hardware element shown in FIG. 1 is an FPGA, any other appropriate hardware element or elements may be used.
- the hardware elements may include microcontrollers, logic gates, memory, and so forth, which may be used alone or in concert in performing UUT test or other operations.
- dedicated transmission lines 126 are used to transmit interrupts between various hardware devices (represented by FGPA 125 in this example) and FPGA 120 .
- FPGA 120 may include an input interface 130 that is configured to receive interrupts from the dedicated transmission lines.
- the dedicated transmission lines may be simple conduits, such as wires, or more complex conduits, such as buses.
- Dedicated transmission lines 126 include transmission lines 127 , which are used to transmit interrupts.
- each transmission line is reserved for use by a particular hardware element; however, that need not be the case.
- there are two low latency transmission lines 128 are two low latency transmission lines 128 ; however, any appropriate number may be included in tester 100 .
- each low latency transmission line may service multiple hardware elements.
- interrupts from multiple hardware elements may be multiplexed (via, e.g., a multiplexer—not shown) onto a low latency transmission line.
- this need not be the case, e.g., there may also be dedicated transmission lines for low latency interrupts.
- the interrupts may be ordered.
- the FPGA can aggregate the interrupts into a packet and order the interrupts for execution.
- the FPGA may order the interrupts, it is up to the processing device that actually handles the interrupts to determine whether that order is to be followed or if the interrupts are to be handled in a different order dictated by that processing device.
- FPGA 120 receives interrupts over dedicated transmission lines 126 .
- FPGA 120 generates one or more data packets that represent the interrupts.
- the data packet may include a header and a payload.
- the header may indicate that the packet includes interrupts, and may also specify the destination of the data packet (e.g., the address of processing device 101 or other root complex).
- the payload may include one or more bits indicating that an interrupt has been received and one or more bits identifying (e.g., by address or other designation) the identity of the hardware element that issued the interrupt. Other data may also be included in the data packet.
- FPGA 120 may include an output interface 131 , through which data packets are sent, via a PCI Express bus (in this example), to processing device 101 .
- Processing device 101 receives such a data packet 140 and stores it in memory, at least until receipt of a second data packet from FPGA 120 . More specifically, processing device 101 executes code (e.g., instructions) that reads the data packet, identifies the interrupts contained therein (and the sources thereof), and services the interrupts. This code may be part of an interrupt handler. In this example, however, the code is not executed upon receipt of data packet 140 . Rather, processing device 101 includes memory (e.g., a register), the writing to which triggers execution of the code and interpretation of data packet 140 .
- code e.g., instructions
- FPGA 120 After sending data packet 140 , FPGA 120 generates and sends, over its output interface, second data (e.g., a second data packet 141 ) to processing device 101 .
- This second data packet 141 is addressed to the register on processing device that will trigger execution of the interrupt handler.
- This second data packet may include a header that includes the packet's destination address.
- the second data packet may also include a payload.
- the payload may identify the source of the data, e.g., FPGA 120 .
- the payload may identify the FPGA by device or network address or other type of signature that is unique to the sending FPGA. This feature enables interrupts to be directed to locations on a PCI network other than a root complex.
- a non-transparent bridge 145 may connect a core 103 of test instrument to other cores (not shown).
- the non-transparent bridge is a pathway that interconnects two different PCI Express domains.
- FPGA 120 may cause a processing device in another core (e.g., a device other than processing device 101 in the same core) to service one or more interrupts in cores (root complexes) that are external to the processing device.
- the payload may also identify the sources of interrupts on a bus domain that is external to the processing device. This is different from the simple PCI Express model, which limits servicing of interrupts to the root complex of a PCI network.
- FPGA 120 writes second data packet 141 to an appropriate register address in processing device 101 .
- This action causes processing device 101 to execute code (e.g., to run the interrupt handler) to read, interpret, and act upon the first data packet and thereby to service one or more interrupts identified in the first data packet in an appropriate order.
- code e.g., to run the interrupt handler
- FIG. 2 is a flowchart showing a process 200 performed by the system of FIG. 1 .
- the process includes FPGA 120 receiving ( 201 ) interrupts bound for processing device 101 .
- the interrupts are received from hardware devices that are configured to communicate with processing device 101 .
- the interrupts are received from FPGA 125 .
- FPGA 120 generates ( 202 ) data containing information corresponding to the interrupts, and sends ( 203 ) that data (e.g., a first data packet) to processing device 101 .
- Processing device 101 stores this data packet in memory until a second data packet is received.
- Receipt of this second packet triggers the interrupt handler of processing device 101 to service interrupts identified in this first data packet.
- FPGA 120 generates ( 204 ) second data (e.g., a second data packet).
- This second data packet identifies the hardware (e.g., electronic circuitry, processor, etc.) that sent the interrupts.
- This second data packet is sent ( 205 ) to the processing device, and written to an appropriate register on the processing device that triggers the processing device's interrupt handler. Once triggered, the interrupt handler service interrupts identified in the first data packet.
- FPGA 120 (“the FPGA”) implements Packet Transported Interrupt Requests (PTIQs) of the type described above with respect to FIGS. 1 and 2 .
- the FPGA (referred to in the following as the “X 3 ”) implements PTIQ interrupts for a Test Defined FPGA (TDF), such as FGPA 125 , via an interface called the PTIQ bus. Up to 256 interrupt sources are supported on the PTIQ bus.
- TDF Test Defined FPGA
- An example of the PTIQ bus includes transmission lines 126 FIG. 1 .
- the X 3 prior to sending an MSI packet, the X 3 first writes a PTIQ packet to host memory.
- a host in this implementation is processing device 101 of FIG. 1 .
- the PTIQ packet's fixed-length 8DW (double word) payload is a bit map identifying which of the 256 possible TDF interrupt sources are currently active.
- the PTIQ packet is written to a PCIe destination address currently specified in the X 3 's “PTIQ_PTR” register, which is configured by the host.
- the MSI packet employs a fixed message data field, and thus resolves only which endpoint is requesting interrupt service.
- the X 3 contains 256 mask bits that the host may use to mask PTIQ sources. If a source is masked, then the X 3 will not include the source in its PTIQ list. All bits are masked by default.
- the TDF asserts 256 source request signals to X 3 .
- the TDF holds each active request asserted until the host takes action directly to the TDF to satisfy the request. For example, the TDF asserts a PTIQ request 0 (PTIQ_ 0 ) directly from a “not empty” flag of an internal UART Rx FIFO. When the host reads the FIFO data and the FIFO empties, PTIQ_ 0 is deasserted.
- the host interrupt service routine is as follows.
- the host examines its PTIQ list and chooses to service or to ignore each active source.
- sources # 0 -# 7 have low-latency sources and sources # 8 -# 255 have higher (and variable) latency.
- Software can order interrupts by algorithmically choosing the order of sources to service.
- the interrupt service routine (ISR) in the host may ignore certain requests in order to give other interrupts a higher class of service. For example, the ISR may always handle source # 0 -# 4 but service # 5 -# 256 in round robin order.
- the X 3 waits until the host rewrites the PTIQ_PTR before sending another PTIQ packet/MSI.
- the host may employ a circular set of buffers to form a debugging trail or for other reasons. If the host wishes to update the X 3 's mask bits, it does so before rewriting the PTIQ_PTR. Once the PTIQ_PTR is updated, the X 3 forms a new PTIQ packet containing all the unmasked still-active and unmasked newly active requests. The TDF holds requests active until directly serviced by the host. The X 3 does not latch requests.
- the X 3 contains host-programmable registers that, if initialized, produce additional small write packets that precede the PTIQ packet and the MSI packet. These packets re-program the PCIe translation windows for the PTIQ and MSI packets that follow. In other implementations, software will not initialize the registers, and the extra packets will not be sent.
- the PTIQ bus (the bus between the TDF and the X 3 ) contains ten wires, including outputs from the TDF and inputs to the X 3 .
- Eight wires correspond to PTIQ_ 0 thru PTIQ_ 7 . These are asynchronous and low-latency.
- PTIQ_ 8 and above (up to PTIQ_ 255 ) are optional. These are time-multiplexed onto a single wire that is synchronized to a 100 Mhz system clock.
- the final wire is an always-repeating start-of-frame pulse coincident with PTIQ_ 8 .
- the frame length depends on how many serial PTIQ's are used, and the X 3 does not need to be told the frame length beforehand. The frame and serial data repeat since all PTIQ's remain asserted until the source logic is serviced by the host.
- the X 3 For the serial PTIQ's, the X 3 has a WAIT_FOR_FRAME mode bit. If this WAIT_FOR_FRAME mode bit is set, the X 3 will wait for the end of a serial frame before transmitting a PTIQ packet. This mode adds latency, but allows logic in the TDF to group-together interrupt sources for efficiency, if desired.
- the PTIQ does not preclude the TDF from implementing a standard 4-register IRQ logic. That logic's output line may drive any of the PTIQ_ 0 thru PTIQ_ 7 wires.
- the standard IRQ logic is expandable by cascading IRQ logic blocks.
- FIG. 3 shows an example test system 300 for testing a UUT 301 .
- the test system of FIG. 3 may include test instrument 100 or portion(s) thereof.
- Test system 300 includes a tester 302 , which may have the multi-tiered architecture of FIG. 1 or 2 .
- system 300 includes a computer system 305 that interfaces with tester 302 over a network connection 306 .
- computer system 305 may incorporate the functionality of computer 112 ( FIG. 1 ) or it may be an external computer that interacts with computer 112 on the test instrument.
- UUT 301 typically, computer system 305 sends commands to tester 302 to initiate execution of routines and programs for testing UUT 301 . Such executing test programs may initiate the generation and transmission of test signals to the UUT 301 and collect responses from the UUT.
- Various types of UUTs may be tested by system 300 .
- UUTs may be avionics, radar, weaponry, semiconductor devices, and so forth.
- tester 302 is connected, via an appropriate FPGA interface, to one or more connector pins that provide an interface for the internal circuitry of UUT 301 .
- device tester 302 is connected to a connector pin of UUT 301 via a hardwire connection to deliver test signals (to the internal circuitry of UUT 301 ).
- Tester 302 also senses signals at UUT 301 in response to the test signals provided by device tester 302 . For example, a voltage signal or a current signal may be sensed at a UUT pin in response to a test signal. Such single port tests may also be performed on other pins included in UUT 301 .
- tester 302 may provide test signals to other pins and collect associated signals reflected back over conductors (that deliver the provided signals). In some examples, by collecting the reflected signals, the input impedance of the pins may be characterized along with other single port testing quantities. In other test scenarios, a digital signal may be sent to UUT 301 for storage on UUT 301 . Once stored, UUT 301 may be accessed to retrieve and send the stored digital value to tester 302 . The retrieved digital value may then be identified to determine if the proper value was stored on UUT 301 .
- a two-port test may also be performed by device tester 302 .
- a test signal may be injected to a pin on UUT 301 and a response signal may be collected from one or more other pins of UUT 301 .
- This response signal is provided to device tester 302 to determine quantities, such as gain response, phase response, and other throughput measurement quantities.
- device tester 302 includes an interface card 401 that can communicate with numerous pins.
- interface card 401 includes the one or more cores (e.g., root complexes) described herein, which may be used to transmit test signals to the UUT and to collect corresponding responses.
- Each communication link to a pin on the UUT may constitute a channel and, by providing test signals to a large number of channels, testing time may be reduced since multiple tests may be performed simultaneously.
- the overall number of channels increases, thereby further reducing testing time.
- two additional interface cards 402 and 403 are shown to demonstrate that multiple interface cards may populate tester 302 .
- Each interface card may include dedicated integrated circuit circuitry, including, e.g., an FGPA and embedded processing device (as described, e.g., FIG. 1 ), for performing particular test functions.
- This circuitry may implement, e.g. a pin electronics (PE) stage for performing PE tests, and a parametric measurement unit (PMU) stage for performing tests.
- PMU testing involves providing a (programmable) DC voltage or current signal to the UUT to determine such quantities as input and output impedance, current leakage, and other types of DC performance characterizations.
- PE testing involves sending DC or AC test signals, or waveforms, to a UUT (e.g., UUT 301 ) and collecting responses to further characterize the performance of the UUT.
- the PE stage may transmit (to the UUT) AC test signals that represent a vector of binary values for storage on the UUT. Once these binary values have been stored, the UUT may be accessed by tester 302 to determine if the correct binary values have been stored.
- an interface device may be used to connect one or more conductors from tester 302 to the UUT.
- the UUT may connect to an Interface Test Adapter (ITA) which interfaces with an Interface Connection Adapter (ICA) that connects with the tester.
- ITA Interface Test Adapter
- ICA Interface Connection Adapter
- the UUT e.g., UUT 301
- DIB device interface board
- a UUT conductor may be connected to the DIB for placing test signals on the appropriate pin(s) of the UUT.
- tester 302 may connect to two or more DIBs for interfacing the channels provided by interface cards 401 to 403 to one or multiple UUTs.
- tester 302 includes a PE controller 408 (e.g., in a system processing device, in an embedded processing device, or in programmable logic) to provide test parameters (e.g., test signal voltage level, test signal current level, digital values, etc.) for producing test signals and analyzing UUT responses.
- Tester 302 also includes a network interface 409 that allows computer system 305 to control the operations executed by tester 302 and also allows data (e.g., test parameters, UUT responses, etc.) to pass between tester 302 and to computer system 305 .
- the computer system may be configured to exchange communications with a test program running on tester 302 through active communication channels with the device tester.
- the computer system may be, or include, computer 102 of FIG. 1 .
- computer 102 may be part of tester 302 and the computer system described with respect to FIG. 4 may communicate with computer 102 .
- Testing may be performed using a system processing device, embedded processing devices, or programmable logic. However, testing may be performed using a combination of system processing device, embedded processing devices, or programmable logic. For example, each of these different elements may run on or more test programs simultaneously to test the same device or portion thereof. Likewise, these different elements may coordinate testing so that, e.g., a system processing device performs a first part of a test sequence, an embedded processing device performs a second part of the same testing sequence, and programmable logic performs a third part of the same testing sequence. Any appropriate coordination may take place between the different programmable elements of the test instrument described herein.
- a system processing device may be external to the test instrument.
- an external computer may be employed to control operations of the test instrument, and may interact with embedded processing device(s) and programmable logic on the test instrument in the manner described herein.
- the system processing device may be part of the test instrument or remote from the test instrument (e.g., connected to the test instrument over a network).
- programmable logic may be replaced with non-programmable logic.
- ASICs application-specific integrated circuits
- the functionality described herein, or portions thereof, and its various modifications are not limited to the hardware described herein. All or part of the functions can be implemented, at least in part, via a computer program product, e.g., a computer program tangibly embodied in an information carrier, such as one or more non-transitory machine-readable media, for execution by, or to control the operation of, one or more data processing apparatus, e.g., a programmable processor, a computer, multiple computers, and/or programmable logic components.
- a computer program product e.g., a computer program tangibly embodied in an information carrier, such as one or more non-transitory machine-readable media, for execution by, or to control the operation of, one or more data processing apparatus, e.g., a programmable processor, a computer, multiple computers, and/or programmable logic components.
- a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a network.
- Actions associated with implementing all or part of the functions can be performed by one or more programmable processors executing one or more computer programs to perform the functions of the calibration process. All or part of the functions can be implemented as, special purpose logic circuitry, e.g., an FPGA and/or an ASIC (application-specific integrated circuit).
- special purpose logic circuitry e.g., an FPGA and/or an ASIC (application-specific integrated circuit).
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read-only memory or a random access memory or both.
- Components of a computer include a processor for executing instructions and one or more memory devices for storing instructions and data.
- Components of different embodiments described herein may be combined to form other embodiments not specifically set forth above. Components may be left out of the circuitry shown in FIGS. 1 to 4 without adversely affecting its operation. Furthermore, various separate components may be combined into one or more individual components to perform the functions described herein.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
Description
Claims (18)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/527,048 US8914566B2 (en) | 2012-06-19 | 2012-06-19 | Managing interrupts |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/527,048 US8914566B2 (en) | 2012-06-19 | 2012-06-19 | Managing interrupts |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20130339803A1 US20130339803A1 (en) | 2013-12-19 |
| US8914566B2 true US8914566B2 (en) | 2014-12-16 |
Family
ID=49757117
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/527,048 Active 2033-02-05 US8914566B2 (en) | 2012-06-19 | 2012-06-19 | Managing interrupts |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US8914566B2 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140143469A1 (en) * | 2012-11-20 | 2014-05-22 | Dzung Tran | Transmitting an interrupt packet |
| US20150149832A1 (en) * | 2013-11-26 | 2015-05-28 | Inventec Corporation | Bus pressure testing system and method thereof |
| US10387356B1 (en) | 2018-10-02 | 2019-08-20 | Teradyne, Inc. | Generating timestamps on a packet-oriented bus |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9430349B2 (en) * | 2013-01-24 | 2016-08-30 | Xcerra Corporation | Scalable test platform in a PCI express environment with direct memory access |
| US9336108B2 (en) | 2013-01-24 | 2016-05-10 | Xcerra Corporation | Scalable test platform |
| US9430348B2 (en) * | 2013-01-24 | 2016-08-30 | Xcerra Corporation | Scalable test platform in a PCI express environment with direct memory access |
| US9459978B2 (en) * | 2013-01-24 | 2016-10-04 | Xcerra Corporation | Automated test platform utilizing segmented data sequencers to provide time controlled test sequences to device under test |
| US10429437B2 (en) * | 2015-05-28 | 2019-10-01 | Keysight Technologies, Inc. | Automatically generated test diagram |
| CN104954215A (en) * | 2015-07-29 | 2015-09-30 | 天津市英贝特航天科技有限公司 | CAN bus circuit |
| US10915389B1 (en) * | 2017-09-11 | 2021-02-09 | Amazon Technologies, Inc. | Hardware device error origin identification |
| KR102504660B1 (en) * | 2018-02-05 | 2023-03-02 | 삼성전자주식회사 | Application processor, automotive electronic processor, and computing device including application processor |
Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5619705A (en) * | 1993-12-16 | 1997-04-08 | Intel Corporation | System and method for cascading multiple programmable interrupt controllers utilizing separate bus for broadcasting interrupt request data packet in a multi-processor system |
| US5956516A (en) * | 1997-12-23 | 1999-09-21 | Intel Corporation | Mechanisms for converting interrupt request signals on address and data lines to interrupt message signals |
| US6195725B1 (en) * | 1998-12-14 | 2001-02-27 | Intel Corporation | Dynamically varying interrupt bundle size |
| US20010032285A1 (en) * | 1997-12-23 | 2001-10-18 | Stephen S. Pawlowski | Mechanisms for converting address and data signals to interrupt message signals |
| US20040088460A1 (en) * | 2002-10-31 | 2004-05-06 | Poisner David I. | Event delivery |
| US20060218328A1 (en) * | 2005-03-28 | 2006-09-28 | Microsoft Corporation | Systems and methods for an augmented interrupt controller and synthetic interrupt sources |
| US20070002760A1 (en) * | 2005-06-30 | 2007-01-04 | Tiruvallur Keshavan K | Virtualization of pin functionality in a point-to-point interface |
| US7398343B1 (en) * | 2006-01-03 | 2008-07-08 | Emc Corporation | Interrupt processing system |
| US7409483B2 (en) * | 2003-12-19 | 2008-08-05 | Intel Corporation | Methods and apparatuses to provide message signaled interrupts to level-sensitive drivers |
| US20080276027A1 (en) * | 2007-05-01 | 2008-11-06 | Hagita Yasuharu | Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method |
| US20100262737A1 (en) * | 2009-04-08 | 2010-10-14 | Jacob Pan | Dynamic, local retriggered interrupt routing discovery method |
| US20130198432A1 (en) * | 2011-11-30 | 2013-08-01 | Marvell World Trade Ltd. | Interrupt handling systems and methods for pcie bridges with multiple buses |
-
2012
- 2012-06-19 US US13/527,048 patent/US8914566B2/en active Active
Patent Citations (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5619705A (en) * | 1993-12-16 | 1997-04-08 | Intel Corporation | System and method for cascading multiple programmable interrupt controllers utilizing separate bus for broadcasting interrupt request data packet in a multi-processor system |
| US5956516A (en) * | 1997-12-23 | 1999-09-21 | Intel Corporation | Mechanisms for converting interrupt request signals on address and data lines to interrupt message signals |
| US20010032286A1 (en) * | 1997-12-23 | 2001-10-18 | Pawlowski Stephen S. | Mechanisms for converting interrupt request signals on address and data lines to interrupt message signals |
| US20010032285A1 (en) * | 1997-12-23 | 2001-10-18 | Stephen S. Pawlowski | Mechanisms for converting address and data signals to interrupt message signals |
| US20010032284A1 (en) * | 1997-12-23 | 2001-10-18 | Stephen S. Pawlowski | Mechanisms for converting interrupt request signals on address and data lines to interrupt message signals |
| US6195725B1 (en) * | 1998-12-14 | 2001-02-27 | Intel Corporation | Dynamically varying interrupt bundle size |
| US20040088460A1 (en) * | 2002-10-31 | 2004-05-06 | Poisner David I. | Event delivery |
| US7051137B2 (en) * | 2002-10-31 | 2006-05-23 | Intel Corporation | Event delivery |
| US7409483B2 (en) * | 2003-12-19 | 2008-08-05 | Intel Corporation | Methods and apparatuses to provide message signaled interrupts to level-sensitive drivers |
| US8166223B2 (en) * | 2003-12-19 | 2012-04-24 | Intel Corporation | Apparatuses to provide a message signaled interrupt to generate a PCI express interrupt |
| US20060218328A1 (en) * | 2005-03-28 | 2006-09-28 | Microsoft Corporation | Systems and methods for an augmented interrupt controller and synthetic interrupt sources |
| US7689747B2 (en) * | 2005-03-28 | 2010-03-30 | Microsoft Corporation | Systems and methods for an augmented interrupt controller and synthetic interrupt sources |
| US20070002760A1 (en) * | 2005-06-30 | 2007-01-04 | Tiruvallur Keshavan K | Virtualization of pin functionality in a point-to-point interface |
| US7783809B2 (en) * | 2005-06-30 | 2010-08-24 | Intel Corporation | Virtualization of pin functionality in a point-to-point interface |
| US7398343B1 (en) * | 2006-01-03 | 2008-07-08 | Emc Corporation | Interrupt processing system |
| US7805556B2 (en) * | 2007-05-01 | 2010-09-28 | Ricoh Company, Ltd. | Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method |
| US20080276027A1 (en) * | 2007-05-01 | 2008-11-06 | Hagita Yasuharu | Interrupt control apparatus, bus bridge, bus switch, image processing apparatus, and interrupt control method |
| US20100262737A1 (en) * | 2009-04-08 | 2010-10-14 | Jacob Pan | Dynamic, local retriggered interrupt routing discovery method |
| US7953916B2 (en) * | 2009-04-08 | 2011-05-31 | Intel Corporation | Dynamic, local retriggered interrupt routing discovery method |
| US20110231590A1 (en) * | 2009-04-08 | 2011-09-22 | Jacob Pan | System and method for dynamic, local retriggered interrupt routing discovery |
| US8463972B2 (en) * | 2009-04-08 | 2013-06-11 | Intel Corporation | System and method for dynamic, local retriggered interrupt routing discovery |
| US20130198432A1 (en) * | 2011-11-30 | 2013-08-01 | Marvell World Trade Ltd. | Interrupt handling systems and methods for pcie bridges with multiple buses |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140143469A1 (en) * | 2012-11-20 | 2014-05-22 | Dzung Tran | Transmitting an interrupt packet |
| US9251105B2 (en) * | 2012-11-20 | 2016-02-02 | Intel Corporation | Transmitting an interrupt packet |
| US20150149832A1 (en) * | 2013-11-26 | 2015-05-28 | Inventec Corporation | Bus pressure testing system and method thereof |
| US10387356B1 (en) | 2018-10-02 | 2019-08-20 | Teradyne, Inc. | Generating timestamps on a packet-oriented bus |
Also Published As
| Publication number | Publication date |
|---|---|
| US20130339803A1 (en) | 2013-12-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8914566B2 (en) | Managing interrupts | |
| US10718812B2 (en) | Device, system and method to support communication of test, debug or trace information with an external input/output interface | |
| US10289779B2 (en) | Universal verification methodology (UVM) register abstraction layer (RAL) traffic predictor | |
| US7035755B2 (en) | Circuit testing with ring-connected test instrument modules | |
| US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
| CN112292670A (en) | Debug controller circuit | |
| US9639447B2 (en) | Trace data export to remote memory using remotely generated reads | |
| US9959236B2 (en) | Observing an internal link via an existing port for system on chip devices | |
| US20130110446A1 (en) | Test instrument having a configurable interface | |
| US20130110445A1 (en) | Programmable test instrument | |
| US8701130B2 (en) | Implementing remote procedure calls | |
| US20060190668A1 (en) | Computer system architecture | |
| Hanawa et al. | Tightly coupled accelerators architecture for minimizing communication latency among accelerators | |
| Gaikwad et al. | Verification of AMBA AXI on-chip communication protocol | |
| WO2016184170A1 (en) | Smi interface device debugging apparatus and method, and storage medium | |
| US9032252B2 (en) | Debug barrier transactions | |
| CN115658415B (en) | Chip debugging device and method | |
| US6973607B2 (en) | Method and apparatus for testing electronic components | |
| CN117194135A (en) | Verification method, system and computer equipment of universal asynchronous receiving and transmitting device | |
| CN111079922B (en) | AXI-APB-based neural network interaction system, method, server and storage medium | |
| CN112559437B (en) | Debugging unit and processor | |
| CN112557886A (en) | Protocol conversion bridge circuit, intellectual property core and system-on-chip | |
| CN120144520B (en) | Device communication verification method, device, storage medium, and program product | |
| CN113496107B (en) | Comprehensive CPU model | |
| Tsang et al. | An Efficient & Programmable FPGA-Based Approach for Fast-Tuning Silicon CPU Design for Embedded Systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: TERADYNE, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VANDERVALK, DAVID;FRICK, LLOYD K.;REEL/FRAME:029712/0821 Effective date: 20120619 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: BARCLAYS BANK PLC, NEW YORK Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:TERADYNE, INC.;LITEPOINT CORPORATION;REEL/FRAME:035507/0116 Effective date: 20150427 |
|
| FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| FEPP | Fee payment procedure |
Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
| AS | Assignment |
Owner name: LITEPOINT CORPORATION, CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY;ASSIGNOR:BARCLAYS BANK PLC, AS COLLATERAL AGENT;REEL/FRAME:049632/0940 Effective date: 20190627 Owner name: EAGLE TEST SYSTEMS, INC., ILLINOIS Free format text: RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY;ASSIGNOR:BARCLAYS BANK PLC, AS COLLATERAL AGENT;REEL/FRAME:049632/0940 Effective date: 20190627 Owner name: GENRAD, LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY;ASSIGNOR:BARCLAYS BANK PLC, AS COLLATERAL AGENT;REEL/FRAME:049632/0940 Effective date: 20190627 Owner name: TERADYNE, INC., MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY;ASSIGNOR:BARCLAYS BANK PLC, AS COLLATERAL AGENT;REEL/FRAME:049632/0940 Effective date: 20190627 Owner name: ENERGID TECHNOLOGIES CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY;ASSIGNOR:BARCLAYS BANK PLC, AS COLLATERAL AGENT;REEL/FRAME:049632/0940 Effective date: 20190627 Owner name: NEXTEST SYSTEMS CORPORATION, CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY;ASSIGNOR:BARCLAYS BANK PLC, AS COLLATERAL AGENT;REEL/FRAME:049632/0940 Effective date: 20190627 |
|
| AS | Assignment |
Owner name: TRUIST BANK, GEORGIA Free format text: SECURITY INTEREST;ASSIGNOR:TERADYNE, INC.;REEL/FRAME:052595/0632 Effective date: 20200501 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |