Streaming engine with error detection, correction and restart

US10078551B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10078551-B2
Application numberUS-201615384355-A
CountryUS
Kind codeB2
Filing dateDec 20, 2016
Priority dateJul 15, 2013
Publication dateSep 18, 2018
Grant dateSep 18, 2018

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.

This invention is a streaming engine employed in a digital signal processor. A fixed data stream sequence including plural nested loops is specified by a control register. The streaming engine includes an address generator producing addresses of data elements and a steam head register storing data elements next to be supplied as operands. The streaming engine fetches stream data ahead of use by the central processing unit core in a stream buffer. Parity bits are formed upon storage of data in the stream buffer which are stored with the corresponding data. Upon transfer to the stream head register a second parity is calculated and compared with the stored parity. The streaming engine signals a parity fault if the parities do not match. The streaming engine preferably restarts fetching the data stream at the data element generating a parity fault.

First claim

Opening claim text (preview).

What is claimed is: 1. A digital data processor comprising: an instruction memory to store instructions, each instruction specifying a data processing operation and at least one data operand; an instruction decoder connected to said instruction memory to sequentially recall instructions from said instruction memory and determine said data processing operation and said at least one data operand for each instruction; at least one functional unit connected to a data register file and said instruction decoder to perform a data processing operation upon at least one data operand corresponding to an instruction decoded by said instruction decoder and to cause a result of said data processing operation to be stored in said data register file; a streaming engine connected to said instruction decoder to, in response to a stream start instruction, recall a data stream from a memory, wherein said data stream includes an instruction specified sequence of a plurality of data elements, and wherein said streaming engine includes: an address generator to generate stream memory addresses corresponding to said data elements of said data stream; a stream buffer to receive and store data corresponding to said stream memory addresses, wherein said stream buffer includes a plurality of cache lines; and a stream head register to store a data element of said data stream that is next to be used by said at least one functional unit; a first parity bit generator to receive said data elements corresponding to said stream memory addresses, wherein said first parity bit generator has an output connected to said stream buffer and is configured to form first parity bits from said data elements corresponding to said stream memory addresses, and wherein said data elements of said data stream received by said first parity bit generator and their corresponding first parity bits are stored in said stream buffer; and a second parity bit generator to receive said data elements and their corresponding first parity bits from an output of said stream buffer prior to supply of said stored data elements and corresponding first parity bits to said at least one functional unit, wherein the second parity bit generator is configured to: for each of said data elements form second parity bits from said data elements received from said output of said stream buffer; compare said first parity bits received from said output of said stream buffer with corresponding ones of said second parity bits; and signal a parity fault if said first parity bits do not match said corresponding ones of said second parity bits; wherein: said at least one functional unit is responsive to a stream operand instruction to receive at least one data operand from said stream head register; said stream operand instruction is one of a stream operand read only instruction and a stream operand read and increment instruction; said at least one functional unit is configured to receive data corresponding to a data element stored in said stream head register as said received at least one data operand in response to said stream operand instruction being either said stream operand read only instruction or said stream operand read and increment instruction; and when said stream operand instruction is said stream operand read and increment instruction, said streaming engine is further configured to store a next fetched data element in said stream head register and to deallocate a corresponding cache line of said stream buffer upon supply of all data elements stored therein in response to said stream operand read and increment instruction. 2. The digital data processor of claim 1 , wherein: said streaming engine is further configured to restart fetching said data stream upon a parity fault being signaled, wherein restarting of said fetching begins at said data element generating said parity fault. 3. The digital data processor of claim 1 , wherein: each cache line of said plurality of cache lines of said stream buffer includes a plurality of data bits, a plurality of tag bits corresponding to said data bits, and at least one valid bit indicating whether corresponding data bits of said cache line are valid. 4. The digital data processor of claim 1 , wherein: said data register file includes a plurality of data registers, wherein each data register is designated by a register number; and said instruction decoder is configured to: decode an instruction having a data operand field having a first subset of bit codings to supply data stored in a corresponding data register to a corresponding functional unit; decode an instruction having a data operand field having a predetermined read bit coding as said stream operand read only instruction; and decode an instruction having a data operand field having a predetermined read/advance bit coding as said stream operand read and increment instruction. 5. The digital data processor of claim 1 , wherein: said data stream including said instruction specified sequence of said plurality of data elements includes an instruction specified number of data elements having an instruction specified data size. 6. The digital data processor of claim 1 , wherein: said stream head register is divided into lanes, each lane corresponding to a size of said data elements; and said streaming engine is further configured to store one data element of said data stream in each lane of said stream head register. 7. The digital data processor of claim 6 , wherein: if there are fewer remaining data elements than lanes, said streaming engine is further configured to stores all 0's in excess lanes. 8. The digital data processor of claim 1 , wherein: said data elements of said data stream each have a same data size. 9. The digital data processor of claim 1 , wherein: said instruction specified sequence of a plurality of data elements each have an instruction specified data type; said data elements of said data stream each have an instruction specified data type. 10. The digital data processor of claim 1 , wherein: said streaming engine is further configured to, responsive to a stream end instruction, stop said recall of said data stream. 11. The digital data processor of claim 1 , wherein: said streaming engine is further configured to, responsive to recalling of all data elements in said instruction specified sequence of said plurality of data elements, stop said recall of said data stream. 12. A digital data processor comprising: an instruction memory to store instructions, each instruction specifying a data processing operation and at least one data operand; an instruction decoder connected to said instruction memory to sequentially recall instructions from said instruction memory and determine said data processing operation and said at least one data operand for each instruction; at least one functional unit connected to a data register file and said instruction decoder to perform a data processing operation upon at least one data operand corresponding to an instruction decoded by said instruction decoder and to cause a result of said data processing operation to be stored in said data register file; a streaming engine connected to said instruction decoder to, in response to a stream start instruction, recall a data stream from a memory, wherein said data stream includes an instruction specified sequence of a plurality of data elements, and wherein said streaming engine includes: an address generator to generate stream memory addresses corresponding to said data elements of said data stream; a stream buffer to receive and store data corresponding to said stream memory addresses, wherein said stream

Assignees

Inventors

Classifications

  • Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00) · CPC title

  • G06F11/10Primary

    Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's · CPC title

  • Hit rate improvement · CPC title

  • Instruction code · CPC title

  • Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · 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 US10078551B2 cover?
This invention is a streaming engine employed in a digital signal processor. A fixed data stream sequence including plural nested loops is specified by a control register. The streaming engine includes an address generator producing addresses of data elements and a steam head register storing data elements next to be supplied as operands. The streaming engine fetches stream data ahead of use by…
Who is the assignee on this patent?
Texas Instruments Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/10. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 18 2018 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).