IP Library Granted Patent US 7,228,401
Granted Patent B2
US 7,228,401 · App. 10/054,577 · Granted Jun 5, 2007

Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor

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,228,401
App. No.
10/054,577
Granted
Jun 5, 2007
Kind
B2
Abstract

The present invention relates generally to interfacing a processor with at least one coprocessor. One embodiment relates to a processor having a set of broadcast specifiers which it uses to selectively broadcast an operand that is being written to a register within the processor to a coprocessor communication bus. Each broadcast specifier may therefore include a broadcast indicator corresponding to each general purpose register of the processor. An alternate embodiment may also use the concept of broadcast regions where each broadcast region may have a corresponding broadcast specifier where one broadcast specifier may correspond to multiple broadcast regions. Alternatively, in one embodiment, the processor may use broadcast regions independent of the broadcast specifiers where the coprocessor is able to alter its functionality in response to the current broadcast region. In one embodiment, the processor may provide a region specifier via the coprocessor communication bus to indicate the current broadcast region.

Claims (40)

1. In a processor having a register file comprising a plurality of registers and a broadcast specifier corresponding to the register file, a method comprising:

providing storage circuitry which stores the broadcast specifier, the broadcast specifier comprising a plurality of broadcast indicators, each broadcast indicator within the plurality of broadcast indicators corresponding to one of the plurality of registers and indicating whether or not a write to the corresponding register is to be broadcasted via a coprocessor communication bus;

receiving an operand to be written to said register file;

selecting one of said plurality of registers in said register file;

providing to said register file said operand to be written to said register file; and

selectively providing via said coprocessor communication bus said operand to be written in said register file based on the broadcast specifier, wherein said operand is provided to said coprocessor communication bus when the broadcast indicator corresponding to the selected one of said plurality of registers indicates that broadcasting is enabled and said operand is not provided to said coprocessor communication bus when the broadcast indicator corresponding to the selected one of said plurality of registers indicates that broadcasting is not enabled.

2. The method of claim 1 , wherein the broadcast specifier is one of a plurality of broadcast specifiers within the processor, each of the plurality of broadcast specifiers corresponding to at least one broadcast region of the processor.

3. The method of claim 2 , further comprising: selectively providing, via said coprocessor communication bus, a region indicator corresponding to a current broadcast region of a current write transaction.

4. The method of claim 2 , wherein the at least one broadcast region corresponds to a range of instruction addresses.

5. In a processor having a register file comprising a plurality of registers a method comprising:

receiving an operand to be written to said register file;

selecting one of said plurality of registers in said register file;

providing to said register file said operand to be written to said register file; and

selectively providing via a coprocessor communication bus said operand to be written in said register file based on a current execution region of said processor, wherein the current execution region corresponds to a range of instruction addresses in which a current address indicated by a program counter of the processor falls, and wherein selectively providing comprises:

determining whether broadcast is enabled for the current execution region, and

if broadcast is enabled for the current execution region, providing said operand via said coprocessor communication bus, and if broadcast is not enabled for the current execution region, not providing said operand via said coprocessor communication bus.

6. A processor, comprising:

a plurality of registers;

circuitry for performing a write operation to one of the plurality of registers;

conductors for providing an operand for the write operation to said one of the plurality of registers;

storage circuitry which stores_a set of broadcast specifiers, each broadcast specifier within the set of broadcast specifiers comprising a plurality of broadcast indicators wherein each broadcast indicator corresponds to a register of the plurality of registers and indicates whether or not a write to the corresponding register is to be broadcasted;

compare circuitry for comparing the one of the plurality of registers and a corresponding broadcast indicator within a selected one of the broadcast specifiers and for providing a broadcast enable signal, wherein the broadcast enable signal enables broadcasting when the corresponding broadcast indicator indicates broadcasting for the one of the plurality of registers and the broadcast signal does not enable broadcasting when the corresponding broadcast indicator does not indicate broadcasting for the one of the plurality of registers; and

a port, coupled to the compare circuitry, for communicating with a coprocessor communication bus, said port comprising at least one coprocessor communication bus signal for providing said operand when said broadcast enable signal enables broadcasting and not providing said operand when said broadcast enable signal does not enable broadcasting.

7. The processor of claim 6 , further comprising:

a program counter unit, for indicating address locations; and

a broadcast region control unit, coupled to the program counter unit, for indicating when the indicated address location from the program counter unit falls within one of a set of broadcast regions.

8. The processor of claim 7 , wherein the port further comprises at least one coprocessor communication bus signal indicating a current broadcast region from the set of broadcast regions when the indicated address location falls within one of the set of broadcast regions.

9. The processor of claim 7 , wherein the broadcast region control unit comprises a plurality of region storage devices, wherein each broadcast region within the set of broadcast regions has a corresponding region storage device.

10. The processor of claim 9 , wherein each region storage device comprises an upper bound storage device and a lower bound storage device to define each broadcast region.

11. The processor of claim 9 , wherein each region storage device comprises a base location storage device and a mask storage device to define each broadcast region.

12. A processor, comprising:

a plurality of registers;

circuitry for performing a write operation to one of the plurality of registers;

conductors for providing an operand for the write operation to said one of the plurality of registers;

a program counter unit, for indicating address locations;

an execution region control unit, coupled to the program counter unit, for indicating when the indicated address location from the program counter unit falls within one of a set of execution regions, each execution region indicating a range of instruction addresses; and

a port, coupled to the execution region control unit, for communicating with a coprocessor communication bus, said port comprising at least one coprocessor communication bus signal indicating a current execution region from the set of execution regions when the indicated address location falls within one of the set of execution regions.

13. The processor of claim 12 , wherein said port further comprises:

at least one coprocessor communication bus signal for selectively providing said operand to be written to said one of the plurality of registers during said write operation based on the current execution region.

14. The processor of claim 12 , wherein the execution region control unit comprises a plurality of region storage devices, wherein in each execution region within the set of execution regions has a corresponding region storage device for defining the execution region.

Assignments (16)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0655 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2015
From: ZENITH INVESTMENTS, LLC
To: APPLE INC.
Reel/Frame 034749/0791 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: ZENITH INVESTMENTS, LLC
Reel/Frame 033994/0655 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →