Debug in a multicore architecture

US9830241B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9830241-B2
Application numberUS-201514822667-A
CountryUS
Kind codeB2
Filing dateAug 10, 2015
Priority dateSep 14, 2004
Publication dateNov 28, 2017
Grant dateNov 28, 2017

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.

A method of monitoring thread execution within a multicore processor architecture which comprises a plurality of interconnected processor elements for processing the threads, the method comprising receiving a plurality of thread parameter indicators of one or more parameters relating to the function and/or identity and/or execution location of a thread or threads, comparing at least one of the thread parameter indicators with a first plurality of predefined criteria each representative of an indicator of interest, and generating an output consequential upon thread parameter indicators which have been identified to be of interest as a result of the said comparison.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of debugging a multicore processor system-on-a-chip (“SoC”) comprising a single chip including a thread management and allocation controller and a plurality of processing cores each associated with a controller client from a plurality of controller clients and one debug and trace unit from a plurality of debug and trace units, the method comprising: receiving, by one or more of a plurality of controller clients from the thread management and allocation controller communicatively coupled to each of the controller clients, an interrupt comprising an input to a debug and trace unit corresponding to the controller client, each controller client associated with and communicatively coupled to a different processing core of the multicore processor; halting, by the debug and trace unit corresponding to the controller client, processing of the processing core corresponding to the controller client in response to the interrupt; in response to receiving the interrupt, accessing, by the controller client, a thread descriptor from a head of a dispatch queue associated with the processing core corresponding to the controller client, the thread descriptor comprising thread control information; decoding, by the controller client, the thread control information; configuring, by the controller client, the processing core associated with the controller client to execute a thread based on the thread control information; executing, by the processing core, the thread, wherein the controller client is configured to perform at least one of: supplying data to the processing core during the execution of the thread, and monitoring resource utilization by the processing core during the execution of the thread; and in response to a completion of the execution of the thread, outputting, by the corresponding processing core, a result of the execution of the thread. 2. The method of claim 1 wherein the result of the execution of the thread further comprises of at least one of creation of thread, issuance of a synchronization primitive or a combination of thread creation and synchronization. 3. The method of claim 1 , further comprising providing, by the controller client, out of band interfaces to the corresponding debug and trace unit for use as outputs for at least one of a run-time or a debug event. 4. The method of claim 1 , further comprising providing, by the controller client, out of band interfaces to the corresponding debug and trace unit using a standard interrupt as an input to the corresponding debug and trace unit. 5. The method of claim 1 , further comprising of implementing, by the controller client, a FIFO interface for communicating with at least one of the processing core and one or more system resources. 6. The method of claim 1 , wherein supplying data to the processing core comprises configuring the controller client to operate in a streaming mode. 7. The method of claim 6 , wherein supplying data in the streaming mode comprises streaming data from a system memory to the processing core. 8. The method of claim 1 , further comprising: interpreting, by the controller client, configuration commands; translating, by the controller client, the interpreted configuration commands into write cycles; and issuing, by the controller client, the write cycles to the processing core during the execution of the thread. 9. The method of claim 1 , wherein the thread is executed in response to one of: receiving an explicit execute primitive or entering a data transferal state. 10. The method of claim 1 , wherein the controller client determines that the execution of the thread is complete in response to receiving at least one of a signal from the processing core or measuring an amount of data outputted by the processing core. 11. A multicore processor system-on-a-chip (“SoC”) architecture comprising a single chip including a thread management and allocation controller and a plurality of processing cores each associated with a controller client from a plurality of controller clients and a debug and trace unit from a plurality of debug and trace units, the controller client of each processing core comprising: an input for receiving an interrupt from the thread management and allocation controller, wherein the interrupt comprises an input to a debug and trace unit corresponding to the controller client; a debug and trace unit corresponding to the controller client for halting processing of the processing core associated with the controller client in response to the interrupt; a plurality of sub blocks for interfacing the controller client with an associated shared memory to access a thread descriptor from a head of a dispatch queue associated with the processing core corresponding to the controller client, wherein the shared memory is accessed in response to receiving the interrupt, the thread descriptor comprising thread control information; a decoder for decoding the thread control information; and a finite state machine for configuring the processing core of the controller client to execute a thread based on the thread control information and output a result of the execution of the thread, wherein the finite state machine performs at least one of: supplying data to the processing core during the execution of the thread and monitoring resource utilization by the processing core during the execution of the thread. 12. The controller client of claim 11 wherein the result of the execution of the thread comprises of at least one of a creation of thread, an issuance of a synchronization primitive, or a combination of thread creation and synchronization. 13. The controller client of claim 11 , wherein the interrupt further provides out of band interfaces to the corresponding debug and trace unit for use as outputs for at least one of a run-time or a debug event. 14. The controller client of claim 11 , wherein the interrupt further provides out of band interfaces to the corresponding debug and trace unit using a standard interrupt as an input to the corresponding debug and trace unit. 15. The controller client of claim 11 , further comprising a FIFO interface for communicating with at least one of the processing core and one or more system resources. 16. The controller client of claim 11 , wherein supplying data to the processing core comprises configuring the controller client to operate in a streaming mode. 17. The controller client of claim 16 , wherein supplying data in the streaming mode comprises streaming data from a system memory to the processing core. 18. The controller client of claim 11 , wherein the finite statement machine further: interprets configuration commands; translates the interpreted configuration commands into write cycles; and issues the write cycles to the corresponding processing core during the execution of the thread. 19. The controller client of claim 11 , wherein the thread is executed by the processing core in response to one of: receiving an explicit execute primitive or entering a data transferal state. 20. The controller client of claim 11 , wherein the finite state machine further determines that the execution of the thread is complete in response to receiving at least one of a signal from the processing core or measuring an amount of data outputted by the processing core.

Assignees

Inventors

Classifications

  • in multi-processor systems, e.g. one processor becoming the primary tester (G06F11/2736 takes precedence) · CPC title

  • G06F11/263Primary

    Generation of test inputs, e.g. test vectors, patterns or sequences {; with adaptation of the tested hardware for testability with external testers} · CPC title

  • in a multiprocessor or a multi-core unit (multiprocessors per se G06F15/80) · CPC title

  • by tracing the execution of the program · CPC title

  • Circuit details, i.e. tracer 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 US9830241B2 cover?
A method of monitoring thread execution within a multicore processor architecture which comprises a plurality of interconnected processor elements for processing the threads, the method comprising receiving a plurality of thread parameter indicators of one or more parameters relating to the function and/or identity and/or execution location of a thread or threads, comparing at least one of the …
Who is the assignee on this patent?
Synopsys Inc, Fujitsu Semiconductor Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/263. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 28 2017 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).