IP Library Granted Patent US 8,209,520
Granted Patent B2
US 8,209,520 · App. 11/725,631 · Granted Jun 26, 2012

Expanded functionality of processor operations within a fixed width instruction encoding

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,209,520
App. No.
11/725,631
Granted
Jun 26, 2012
Kind
B2
Abstract

An apparatus for executing fixed width instructions in a multiple execution unit system has a device for fetching instructions from a memory, and a decoder for decoding each fetched instruction in turn. A determination is made as to whether each decoded instruction includes a portion to fetch a locally stored instruction from a local store. If it does, the locally stored instruction is fetched and locally stored portion are executed.

Claims (50)

1. A multiple parallel execution unit system for executing instructions comprising:

means for fetching fixed width instructions from a memory, each of the fixed width instructions comprising a portion for fetching a template instruction and a portion for containing variable parameters relating to the template instruction;

means for pre-decoding each of the fetched instructions in turn;

means for determining whether each of the pre-decoded instructions includes a portion for fetching a locally stored template instruction from local storage means;

means for fetching the locally stored template instruction;

means for opening and decoding the fetched locally stored template instruction; and

means for causing the decoded fetched locally stored template instruction to be executed using the variable parameters included in the fixed width instruction.

2. The system according to claim 1 further including means for storing additional local template instructions in the local storage means in response to data included in the fetched instruction.

3. The system according to claim 2 , wherein the data included in the fetched instruction includes data defining a location in the local storage means into which the additional local template instruction is to be written.

4. The system according to claim 2 , wherein the means for storing the additional local template instructions is operable during an execution of a program whereby contents of the locally stored template instructions may be dynamically altered during the execution of the program.

5. The system according to claim 1 , wherein the locally stored template instruction comprises at least a functional portion defining a type of an operation to be performed.

6. The system according to claim 1 , wherein the pre-decoding means provides an output defining resource requirements for the instruction fetching means in comparison with resource availability and means for enabling the scheduling means in dependence on a result of the comparison.

7. The system according to claim 1 , wherein the fetched locally stored template instruction can operate on a plurality of different processors.

8. A method for executing instructions in a multiple parallel execution unit system, the method comprising the steps of:

fetching fixed width instructions from a memory, each of the fixed width instructions comprising a portion for fetching a template instruction and a portion for containing variable parameters relating to the template instruction;

pre-decoding each of the fetched instructions in turn;

determining whether each of the pre-decoded instructions includes a portion for fetching a locally stored template instruction from local storage means;

fetching the locally stored template instruction;

opening and decoding the fetched locally stored template instruction; and

causing the decoded fetched locally stored template instruction to be executed using the variable parameters included in the fixed width instruction.

9. The method according to claim 8 further including the step of storing additional local template instructions in response to data included in the fetched instruction.

10. The method according to claim 9 , wherein the data included in the fetched instruction includes data defining a location in local storage means into which the additional local template instruction is to be stored.

11. The method according to claim 9 , wherein the step of storing the additional local template instructions in response to the data in the fetched instruction is operable during an execution of a program whereby contents of the locally stored template instructions may be dynamically altered during the execution of the program.

12. The method according to claim 8 , wherein the locally stored template instruction comprises at least a functional portion defining a type of an operation to be performed.

13. The method according to claim 8 , wherein the fetched locally stored template instruction can operate on a plurality of different processors.

14. The method according to claim 8 further including the steps of checking the resource requirements against the resource availability and enabling the scheduling means in dependence on a result of the checking step.

15. A multiple parallel execution unit system comprising:

multiple parallel execution units, each of the execution units being configured to perform a function independently and simultaneously with the other execution units and comprising a data processing core;

a control core for receiving fixed width instructions and outputting the fixed width instructions to the multiple parallel execution units, each of the fixed width instructions comprising a portion for retrieving a template instruction and a portion for containing variable parameters relating to the template instruction;

a memory for receiving data written by the control core and the multiple parallel execution units and containing data to be retrieved by the control core and the multiple parallel execution units;

means for pre-decoding the data retrieved by the control core from the memory in turn;

means for determining whether the pre-decoded data includes a portion for retrieving a locally stored template instruction from local storage means;

means for retrieving the locally stored template instruction;

means for opening and decoding the retrieved locally stored template instruction; and

means for sending the decoded retrieved locally stored template instruction to be executed using the variable parameters included in the fixed width instruction.

16. The system of claim 15 , wherein a sum of widths of the instructions from the control core to the multiple parallel execution units is greater than the fixed width instruction.

17. The system according to claim 15 , wherein the retrieved locally stored template instruction can operate on a plurality of different processors.

18. A method for executing instructions in a multiple parallel execution unit system, the method comprising the steps of:

providing multiple parallel execution units, each of the execution units being configured to perform a function independently and simultaneously with the other execution units and comprising a data processing core;

receiving fixed width instructions by a control core, each of the fixed width instructions comprising a portion for retrieving a template instruction and a portion for containing variable parameters relating to the template instruction;

outputting the fixed width instructions to the multiple parallel execution units by the control core;

receiving data written by the control core and the multiple parallel execution units to a memory;

containing the data to be retrieved by the control core and the multiple parallel execution units to the memory;

pre-decoding the data retrieved by the control core from the memory in turn;

determining whether the pre-decoded data includes a portion for retrieving a locally stored template instruction from local storage means;

retrieving the locally stored template instruction;

opening and decoding the retrieved locally stored template instruction; and

sending the decoded retrieved locally stored template instruction to be executed using the variable parameters included in the fixed width instruction.

19. The method of claim 18 , wherein a sum of widths of the instructions from the control core to the multiple parallel execution units is greater than the fixed width instruction.

20. The method according to claim 18 , wherein the retrieved locally stored template instruction can operate on a plurality of different processors.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2018
From: MIPS TECH LIMITED
To: MIPS TECH, LLC
Reel/Frame 045348/0973 →
CHANGE OF NAME Recorded Mar 22, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 045314/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 045275/0491 →
CHANGE OF NAME Recorded Jan 26, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 045168/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 044712/0386 →