Multi-processor system having tripwire data merging and collision detection

US9495158B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9495158-B2
Application numberUS-201414311217-A
CountryUS
Kind codeB2
Filing dateJun 20, 2014
Priority dateJun 20, 2014
Publication dateNov 15, 2016
Grant dateNov 15, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An integrated circuit includes a pool of processors and a Tripwire Data Merging and Collision Detection Circuit (TDMCDC). Each processor has a special tripwire bus port. Execution of a novel tripwire instruction causes the processor to output a tripwire value onto its tripwire bus port. Each respective tripwire bus port is coupled to a corresponding respective one of a plurality of tripwire bus inputs of the TDMCDC. The TDMCDC receives tripwire values from the processors and communicates them onto a consolidated tripwire bus. From the consolidated bus the values are communicated out of the integrated circuit and to a debug station. If more than one processor outputs a valid tripwire value at a given time, then the TDMCDC asserts a collision bit signal that is communicated along with the tripwire value. Receiving tripwire values onto the debug station facilitates use of the debug station in monitoring and debugging processor code.

First claim

Opening claim text (preview).

What is claimed is: 1. An integrated circuit comprising: a first pool of processors, wherein each of the processors has a tripwire bus port, wherein each of the processors can decode and execute a tripwire instruction, wherein execution of the tripwire instruction causes a valid multi-bit value to be output from the processor onto the tripwire bus port of the processor; and a tripwire data merging and collision detection circuit (TDMCDC), wherein the TDMCDC is coupled to the tripwire bus port of each of the processors of the pool, wherein: 1) if more than one of the processors is outputting a valid multi-bit value onto its tripwire bus port at a given time then the TDMCDC asserts a collision bit signal and supplies the asserted collision bit signal onto a set of conductors; 2) if one and only one of the processors is outputting a valid multi-bit value onto its tripwire bus port at a given time then the TDMCDC supplies the valid multi-bit value onto the set of conductors along with a deasserted collision bit signal; 3) if none of the processors is outputting a valid multi-bit value onto its tripwire bus port at a given time then the TDMCDC does not output a valid multi-bit value onto the set of conductors. 2. The integrated circuit of claim 1 , further comprising: an event bus comprising a plurality of event ring circuits, wherein the set of conductors extends from the TDMCDC and into an event ring circuit of the event bus; and a plurality of terminals and debug interface circuitry, wherein the a multi-bit value output by one of the processors as a result of the processor executing a tripwire instruction is communicated through the TDMCDC from the processor to an event ring circuit and then through the event bus to the debut interface circuitry and then out of the integrated circuit via the plurality of terminals. 3. The integrated circuit of claim 2 , further comprising: a second pool of processors, wherein each processor of the second pool has a tripwire bus port, wherein each processor of the second pool can decode and execute a tripwire instruction, wherein execution of the tripwire instruction causes a valid multi-bit value to be output from the processor onto the tripwire bus port of the processor, and wherein the TDMCDC is coupled to the tripwire bus port of each processor of the second pool. 4. The integrated circuit of claim 3 , wherein the integrated circuit comprises a plurality of islands, wherein the first pool of processors is disposed on a first of the islands, wherein the second pool of processors is disposed on a second of the islands, and wherein the event bus extends through both the first and second islands. 5. The integrated circuit of claim 1 , wherein each of the processors has an associated number, and wherein a multi-bit value output by a processor onto its tripwire bus port as a result of the processor executing a tripwire instruction includes a first multi-bit value and a second multi-bit value, wherein the second multi-bit value is the number of the processor. 6. The integrated circuit of claim 1 , wherein the multi-bit value output by a processor as a result of the processor executing a tripwire instruction includes a first multi-bit value and a second multi-bit value, wherein the first multi-bit value is a value that was stored in a register file of the processor. 7. The integrated circuit of claim 6 , wherein there are multiple different types of tripwire instructions, and wherein the multi-bit value further includes an indication of the type of tripwire instruction that caused the multi-bit value to be output onto the TDMCDC. 8. The integrated circuit of claim 1 , wherein all the processor are clocked by a common clock signal, wherein the TDMCDC includes a plurality of registers, and wherein all the registers of the TCMCDC are clocked by the common clock signal. 9. The integrated circuit of claim 1 , wherein the tripwire bus port of a processor only carries a valid multi-bit value if the processor is actively processing a tripwire instruction. 10. The integrated circuit of claim 9 , wherein the processor is clocked by a clock signal, and wherein the processor outputs a valid multi-bit value onto its tripwire bus port for one and only one clock cycle during a time when the processor is actively processing a tripwire instruction. 11. The integrated circuit of claim 10 , wherein none of the processors of the first pool can perform a write to any memory. 12. The integrated circuit of claim 1 , wherein each of the processors fetches instructions from a memory, and wherein none of the processors can write to any memory from which it fetches instructions. 13. The integrated circuit of claim 2 , wherein the event bus serially communicates event packets from one event ring circuit to event ring circuit of the event bus, and wherein valid multi-bit values output by processors as a result of executing tripwire instructions are communicated as parts of event packets via the event bus to the debug interface circuitry. 14. A method comprising: (a) executing a tripwire instruction in a first processor and as a result of the executing of (a) outputting a valid multi-bit tripwire value from the first processor onto a tripwire bus port of the first processor; (b) executing a tripwire instruction in a second processor and as a result of the executing of (b) outputting a valid multi-bit tripwire value from the second processor onto a tripwire bus port of the second processor; and (c) receiving the valid multi-bit tripwire value from the first processor and receiving the valid multi-bit tripwire value from the second processors and supplying multi-bit tripwire values one by one to a debug interface circuit, wherein each multi-bit tripwire value is supplied to the debug interface circuit along with a collision bit, wherein the collision bit indicates whether multiple multi-bit tripwire values were received from processors at the same time. 15. The method of claim 14 , wherein each multi-bit tripwire value received in (c) includes a first multi-bit value, a second multi-bit value, wherein the second multi-bit value that identifies the processor that generated the multi-bit tripwire value. 16. An integrated circuit comprising: debug interface circuitry; a pool of processors, wherein each processor of the pool has a tripwire bus port, wherein each of the processors can decode and execute a tripwire instruction, wherein execution of the tripwire instruction causes a valid multi-bit tripwire value to be output from the processor onto the tripwire bus port of the processor; and means for merging multi-bit tripwire values received from the processors and for supplying multi-bit tripwire values to the debug interface circuitry, wherein the means is also for: 1) supplying an asserted collision bit signal to the debug interface circuitry if more than one of the processors is outputting a valid multi-bit tripwire value onto its tripwire bus port at a given time; 2) supplying a deasserted collision bit signal to the debug interface circuitry if one and only one of the processors is outputting a valid multi-bit value onto its tripwire bus port at a given time, and supplying the valid multi-bit value to the debug interface circuitry along with the deasserted collision bit signal; 3) not supplying a valid multi-bit value to the debug circuitry if none of the processors is outputting a valid multi-bit value onto its tripwire bus port at a given time. 17. The integrated circuit of claim 16 , wherein the means supplies the multi-bit tripwire data values to the debug interface circuitry via

Assignees

Inventors

Classifications

  • Arrangements for executing specific machine instructions · CPC title

  • by instrumenting at runtime · CPC title

  • data or demand driven · CPC title

  • Instruction analysis, e.g. decoding, instruction word fields · CPC title

  • using additional hardware · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9495158B2 cover?
An integrated circuit includes a pool of processors and a Tripwire Data Merging and Collision Detection Circuit (TDMCDC). Each processor has a special tripwire bus port. Execution of a novel tripwire instruction causes the processor to output a tripwire value onto its tripwire bus port. Each respective tripwire bus port is coupled to a corresponding respective one of a plurality of tripwire bus…
Who is the assignee on this patent?
Netronome Systems Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/30003. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 15 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).