IP Library Granted Patent US 7,577,827
Granted Patent B2
US 7,577,827 · App. 09/794,943 · Granted Aug 18, 2009

Data processor with multi-command instruction words

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 7,577,827
App. No.
09/794,943
Granted
Aug 18, 2009
Kind
B2
Abstract

A data processor that addresses instructions as groups of commands which may contain more than one branch command, such as VLIW instructions that contain several commands for parallel execution. The processor selects an expected taken branch command from the branch commands in a group. The processor also selects a tentative target for the expected taken branch command and tentatively redirects control flow to a further group of commands identified by the tentative target. The processor contains an associative target memory for storing targets of previously executed branch commands. Targets are retrieved with an associative address that identifies a command in the group, the tentative target being selected on the basis of a match between the associative address associated with the tentative target and an indication of the expected taken command.

Claims (17)

1. A branch prediction unit for implementation in a processor architecture that supports instructions including multiple branch commands, the branch prediction unit comprising:

a branch history memory storing information about previously-executed source instructions;

a selection unit coupled to the branch history memory, the selection unit reading the information to select a predicted branch command from a plurality of branch commands included in a current instruction and outputting a position indication indicating a location of the predicted branch command in the current instruction;

a branch target memory comprising:

a first input coupled to the selection unit, the first input receiving the position indication from the selection unit,

a second input coupled to a program counter in the processor architecture, the second input receiving a source instruction address from the program counter,

a set memory that outputs a set of target instructions, and

a comparison unit that receives the set of target instructions from the set memory and selects an instruction corresponding to the predicted branch command from the set of target instructions based on the source instruction address received from the program counter and the position indication received from the selection unit; and

a multiplexer coupled to the branch target memory, the multiplexer outputting the selected instruction to a processor in the processor architecture.

2. The branch prediction unit of claim 1 , wherein the set memory comprises a plurality of sets, each set identified by a first portion of an address of a respective source instruction.

3. The branch prediction unit of claim 2 , wherein each set comprises a plurality of memory locations, each memory location storing a tag and a target instruction of a respective branch command included in the respective source instruction.

4. The branch prediction unit of claim 3 , wherein each tag comprises a position of the respective branch command in the respective source instruction and a remaining portion of the address of the respective source instruction.

5. The branch prediction unit of claim 4 , wherein the set memory selects the set of target instructions outputted to the comparison unit from the plurality of sets using a first portion of the source instruction address.

6. The branch unit of claim 5 , wherein the set memory selects the set of target instructions concurrently with the selection unit reading the information to select the predicted branch command.

7. The branch prediction unit of claim 1 , wherein the branch history memory is an associative memory accessible by the selection unit using an address of the current instruction.

8. The branch prediction unit of claim 1 , further comprising:

a control unit that updates the branch history memory and the set memory of the branch target memory after execution of source instructions by the processor in the processor architecture.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2011
From: NXP B.V.
To: NYTELL SOFTWARE LLC
Reel/Frame 026634/0532 →
CONFIRMATORY ASSIGNMENT Recorded Jun 8, 2011
From: U.S. PHILIPS CORPORATION; KONINKLIJKE PHILIPS ELECTRONICS N.V.
To: NXP B.V.
Reel/Frame 026409/0628 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2008
From: KONINKLIJKE PHILIPS ELECTRONICS N.V.; U.S. PHILIPS CORPORATION
To: NXP B.V.
Reel/Frame 020548/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2001
From: HOOGERBRUGGE, JAN
To: U.S. PHILIPS CORPORATION
Reel/Frame 011813/0549 →