IP Library Granted Patent US 8,572,354
Granted Patent B2
US 8,572,354 · App. 11/536,483 · Granted Oct 29, 2013

Programmable logic unit and method for translating and processing instructions using interpretation registers

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,572,354
App. No.
11/536,483
Granted
Oct 29, 2013
Kind
B2
Abstract

An architecture for microprocessors, in which instructions include a type identifier, selects one of several interpretation registers. The interpretation registers hold information for interpreting the opcode of each instruction, so that a stream of compressed instructions (with type identifiers) can be translated into a stream of expanded instructions. Preferably the type identifiers also distinguish sequencer instructions from processing-element instructions, and can even distinguish among different types of sequencer instructions (as well as among different types of processing-element instructions).

Claims (37)

1. A programmable logic unit, comprising:

one or more programmable processing elements; and

a sequencer which decodes instructions in an instruction stream using indirect reference to multiple interpretation registers, as specified by a Type Identifier (ID) value and an opcode value within said instructions, and sends commands derived from the instruction stream to said one or more processing elements;

wherein said interpretation registers include identifiers defining respective mappings of opcodes to one of a plurality of instruction groups, and said commands being at least partly determined by said mappings; and

wherein said interpretation registers include operand control information that comprises a vector length and a stride between vector elements.

2. The unit of claim 1 , wherein said instruction stream includes both processing instructions and sequencing instructions.

3. The unit of claim 1 , wherein said instruction stream includes both processing instructions and sequencing instructions, and wherein both said processing instructions and said sequencing instructions include said Type ID value, and wherein said Type ID value also indicates whether each instruction is a processing instruction or a sequencing instruction.

4. The unit of claim 1 , wherein said instruction stream includes both processing instructions and sequencing instructions, and said sequencing instructions include commands for changing the values in at least some ones of said interpretation registers.

5. The unit of claim 1 ,

wherein said commands are expanded by at least one sequencer; and

wherein said instruction stream includes both processing instructions and sequencing instructions; and

wherein said sequencing instructions include set-up commands which are executed by the at least one sequencer and not by said one or more processing elements, said set-up commands including commands for changing the values in an interpretation register.

6. The unit of claim 1 , wherein said commands are expanded by at least one sequencer; and wherein the at least one sequencer broadcasts a single instruction stream to multiple processing elements in a single instruction, multiple data (SIMD) configuration.

7. The unit of claim 1 , wherein each single one of said instructions specifies only a single opcode.

8. The unit of claim 1 , wherein each of said instructions of said instruction stream includes an index number which selects a respective portion of said interpretation registers, and wherein said sequencer expands said instructions by using said respective portion of said interpretation registers.

9. A method of executing a series of instructions, comprising the steps of:

a) interpreting each of the instructions with reference to a respective one of multiple interpretation registers specified in a Type Identifier (ID) field of said instructions, the interpretation registers including identifiers that define respective mappings of opcodes to instruction groups and operand control information including vector length and stride between vector elements, wherein commands associated with the opcodes are at least partly determined by said mappings, and wherein said operand control information comprises control of an operand data type; and

b) executing said instructions.

10. The method of claim 9 , wherein said series of instructions includes both processing instructions and sequencing instructions.

11. The method of claim 9 , wherein said series of instructions includes both processing instructions and sequencing instructions, and wherein said Type ID field also indicates whether each instruction is a processing instruction or a sequencing instruction.

12. The method of claim 9 , wherein said series of instructions includes both processing instructions and sequencing instructions, and said sequencing instructions include commands for changing the values in at least one interpretation register.

13. The method of claim 9 , wherein at least one instruction of said series of instructions is expanded by at least one sequencer;

wherein said series of instructions includes both processing instructions and sequencing instructions; and

wherein said sequencing instructions include set-up commands which are executed by a sequencer and not by processing elements, said set-up commands including commands for changing the bit values in the interpretation registers.

14. The method of claim 9 , wherein said instructions are expanded by at least one sequencer; and

wherein said at least one sequencer broadcasts a single instruction stream to multiple processing elements in a single instruction, multiple data (SIMD) configuration.

15. The method of claim 9 , wherein each single processing instruction specifies only a single opcode.

16. The method of claim 9 , wherein each of said instructions includes an index number which selects a respective particular portion of a respective interpretation register, and wherein a sequencer expands said instructions by using said respective particular portion of said respective interpretation register.

17. A method for executing a series of instructions, comprising the steps of:

a) interpreting each of the instructions using an indirect reference to a respective one of multiple interpretation registers which is specified in a Type Identifier (ID) field of said instructions, the interpretation registers including operand control information including vector length and stride between vector elements; wherein said Type ID field distinguishes between sequencer instructions and processing-element instructions, and also distinguishes among multiple different formats for processing-element instructions; wherein the respective interpretation register includes an identifier that selects respective mappings of opcodes to instruction groups, and commands associated with the opcodes are at least partly determined by said mappings, and

b) executing said instructions.

18. The method of claim 17 , further comprising:

changing the values in at least some ones of said interpretation registers in response to commands included within sequencer instructions.

19. The method of claim 17 , further comprising:

expanding said instructions using at least one sequencer; and

wherein said sequencer instructions include set-up commands which are executed only by a sequencer.

20. The method of claim 17 , wherein said sequencer instructions include commands for changing the bit values in the respective interpretation register.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054244/0566 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054198/0029 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 16, 2017
From: ZIILABS INC., LTD.
To: RPX CORPORATION
Reel/Frame 044476/0749 →
CHANGE OF NAME Recorded Nov 25, 2014
From: 3DLABS INC., LTD.
To: ZIILABS INC., LTD.
Reel/Frame 034466/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2007
From: BLOOMFIELD, JONATHAN; ROBSON, JOHN; MURPHY, NICK
To: 3D LABS INC., LTD.
Reel/Frame 019008/0655 →