IP Library Patent Application 11470732
Patent Application
App. No. 11/470,732

Computer Processor Architecture Comprising Operand Stack and Addressable Registers

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 None
App. No.
11/470,732
Abstract

A computer processor architecture is disclosed that exhibits both the speed of register-oriented architectures in the prior art and the code efficiency of stack-oriented machines in the prior art. The illustrative embodiment accomplishes this by providing an operand stack and a stack-oriented instruction set but also a set of general registers and a set of instructions that enable the illustrative embodiment to substitute the general registers and literals for the stack in any operation. The result is a processor that can function as a traditional stack-oriented machine, a register-oriented machine, or a new hybrid stack-register machine on an instruction-by-instruction basis.

Claims (46)

1 . A processor comprising:

(a) a stack comprising a plurality of stack registers;

(b) a first general register;

(c) a second general register;

(d) a third general register;

(e) an instruction decoder for capable of decoding and orchestrating the performance of:

(i) a first instance of a zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is read from said second general register, and the resultant is stored into said third general register; and

(ii) a second instance of said zero-address dyadic instruction in which the first operand is popped off of said stack, said second operand is popped off of said stack, and the resultant is pushed onto said stack.

2 . The processor of claim 1 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a third instance of said zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is popped off of said stack, and the resultant is stored into said third general register.

3 . The processor of claim 1 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a third instance of said zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is popped off of said stack, and the resultant is pushed onto said stack.

4 . The processor of claim 1 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a third instance of said zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is read from said second general register, and the resultant is pushed onto said stack.

5 . The processor of claim 1 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a third instance of said zero-address dyadic instruction in which the first operand is popped off of said stack, said second operand is popped off of said stack, and the resultant is stored into said first general register.

6 . A processor comprising:

(a) a stack comprising a plurality of stack registers;

(b) a first general register;

(c) a second general register; and

(d) an instruction decoder capable of decoding and orchestrating the performance of (i) a first instance of a zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is popped off of said stack, and the resultant is stored into said second general register.

7 . The processor of claim 6 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (ii) a second instance of said dyadic instruction in which the first operand is read from said first general register, the second operand is popped off of said stack, and the resultant is pushed onto said stack.

8 . The processor of claim 6 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (ii) a second instance of said dyadic instruction in which the first operand is popped off of said stack, said second operand is popped off of said stack, and the resultant is pushed onto said stack.

9 . The processor of claim 6 further comprising (e) a third general register; and

wherein said instruction decoder is also capable of decoding and orchestrating the performance of (ii) a second instance of said dyadic instruction in which the first operand is read from said first general register, the second operand is read from said second general register, and the resultant is stored into said third general register.

10 . The processor of claim 6 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a second instance of said zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is read from said second general register, and the resultant is pushed onto said stack.

11 . The processor of claim 6 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a second instance of said zero-address dyadic instruction in which the first operand is popped off of said stack, said second operand is popped off of said stack, and the resultant is stored into said first general register.

12 . A processor comprising:

(a) a stack comprising a plurality of stack registers;

(b) a first general register; and

(c) an instruction decoder capable of decoding and orchestrating the performance of (i) a first instance of a zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is popped off of said stack, and the resultant is pushed onto said stack.

13 . The processor of claim 12 further comprising (d) a second general register; and

wherein said instruction decoder is also capable of decoding and orchestrating the performance of (ii) a second instance of said dyadic instruction in which the first operand is read from said first general register, the second operand is popped off of said stack, and the resultant is stored into said second general register.

14 . The processor of claim 12 wherein said instruction decoder is also capable of decoding and orchestrating the performance of (ii) a second instance of said dyadic instruction in which the first operand is popped off of said stack, said second operand is popped off of said stack, and the resultant is pushed onto said stack.

15 . The processor of claim 12 further comprising:

(d) a second general register; and

(e) a third general register;

wherein said instruction decoder is also capable of decoding and orchestrating the performance of (ii) a second instance of said dyadic instruction in which the first operand is read from said first general register, the second operand is read from said second general register, and the resultant is stored into said third general register.

16 . The processor of claim 12 further comprising (d) a second general register; and

wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a second instance of said zero-address dyadic instruction in which the first operand is read from said first general register, the second operand is read from said second general register, and the resultant is pushed onto said stack.

17 . The processor of claim 12 further comprising (d) a second general register; and

wherein said instruction decoder is also capable of decoding and orchestrating the performance of (iii) a second instance of said zero-address dyadic instruction in which the first operand is popped off of said stack, said second operand is popped off of said stack, and the resultant is stored into said first general register.

18 . A processor comprising:

(a) a stack comprising a plurality of stack registers;

(b) a first general register; and

(c) an instruction decoder capable of decoding and orchestrating the performance of (i) a first instance of a zero-address dyadic instruction in which the resultant of said first instance of a zero-address dyadic instruction is, by default, pushed onto said stack unless a resultant specifier indicates that said resultant is to be stored into said first general register.

19 . The processor of claim 18 further comprising (d) a second general register; and

wherein the first operand of said first instance of a zero-address dyadic instruction is, by default, popped off of said stack unless a first operand specifier indicates that said second operand is read from said second general register.

20 . The processor of claim 19 further comprising (e) a third general register; and

wherein the second operand of said first instance of a zero-address dyadic instruction is, by default, also popped off of said stack unless a second operand specifier indicates that said second operand is read from said third general register.

Assignments (12)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
SECURITY AGREEMENT Recorded Feb 2, 2007
From: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 018855/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2006
From: FISCHER, MICHAEL ANDREW
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 018336/0201 →