IP Library Granted Patent US 9,588,881
Granted Patent B2
US 9,588,881 · App. 13/467,874 · Granted Mar 7, 2017

Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses

Inventor: Franck Fillere (Colorado Springs, CO)
Assignee: Cypress Semiconductor Corporation
G06F12/0238G06F12/0223G06F2212/1016G06F2212/1028G06F2212/175G06F2212/178Y02B60/1225
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 9,588,881
App. No.
13/467,874
Granted
Mar 7, 2017
Kind
B2
Abstract

A stack processor and method implemented using a ferroelectric random access memory (F-RAM) for code and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses and thus minimize program execution time. This is particularly advantageous in low power applications and those in which the power supply is only available for a finite period of time such as RFID implementations. Disclosed herein is a relatively small but complete set of instructions enabling a multitude of possible applications to be supported with a program execution time that is not too long.

Claims (18)

1. A method for operating a stack processor comprising:

a data POP wherein data is transferred from a bottom portion of a data stack to a top portion of the data stack in a first cycle of the stack processor, wherein the top portion of the data stack is in a volatile memory in a Forth core in the stack processor and the bottom portion of the data stack is in a ferroelectric random access memory in the stack processor, separate from the Forth core and coupled to the Forth core by a single code/data bus extending between the Forth core and ferroelectric random access memory only, and wherein data is transferred from the bottom portion of the data stack to the top portion of the data stack through the single code/data bus;

transferring data from the top portion of the data stack to a top portion of a return stack in a second cycle of the stack processor, wherein the top portion of the return stack is a single register in the volatile memory, and wherein transferring data between the top portion of the data stack and the top portion of the return stack comprises copying data in the top portion of the data stack to the top portion of the return stack; and

a return PUSH wherein data is transferred from the top portion of the return stack to a bottom portion of the return stack in a third cycle of the stack processor, wherein the bottom portion of the return stack is in the ferroelectric random access memory, and wherein data is transferred from the top portion of the return stack to the bottom portion of the return stack through the single code/data bus,

wherein the first, second and third clock cycles are sequential, and wherein the data POP, return PUSH and the transferring data are performed in response to a stack-based computer programming language.

2. The method of claim 1 wherein the stack-based computer programming language comprises 64 possible instructions based upon a 16 bit word, wherein each of the instructions in the 16 bit word comprises 3 five bit instructions and a 16 th bit applicable to each of the 3 five bit instructions.

3. A method for operating a stack processor comprising:

in a first cycle of the stack processor transferring data from a bottom portion of a data stack to a top portion of the data stack, wherein the bottom portion of the data stack is in a ferroelectric random access memory (F-RAM) and the top portion of the data stack is in a volatile memory in a Forth core in the stack processor, and the data is transferred through a single code/data bus coupled between the F-RAM and the Forth core only;

in a second cycle of the stack processor copying the data from the top portion of the data stack to a top portion of a return stack, wherein the top portion of the return stack comprises a single register in the volatile memory; and

in a third cycle of the stack processor transferring the data from the top portion of the return stack to a bottom portion of the return stack, wherein the bottom portion of the return stack is in F-RAM and the data is transferred through the single code/data bus.

4. The method of claim 3 wherein the transferring and the copying of data are performed in response to a stack-based computer programming language supporting Forth core instructions.

5. The method of claim 4 wherein the Forth core instructions comprise 64 possible instructions based upon a 16 bit word, wherein each of the instructions in the 16 bit word comprises 3 five bit instructions and a 16th bit applicable to each of the 3 five bit instructions.

6. A method for operating a stack processor comprising:

transferring data from a bottom portion of a data stack to a top portion of the data stack, wherein the bottom portion of the data stack is in a ferroelectric random access memory (F-RAM) and the top portion of the data stack is in a volatile memory in a Forth core in the stack processor and the data is transferred through a single code/data bus coupled between the F-RAM and the Forth core only;

copying data from the top portion of the data stack to a top portion of a return stack, wherein the top portion of the return stack comprises a single register in the volatile memory; and

transferring the data from the top portion of the return stack to a bottom portion of the return stack, wherein the bottom portion of the return stack is in F-RAM and the data is transferred through the single code/data bus,

wherein the transferring and the copying of data are performed in three sequential clock cycles of the stack processor in response to Forth core instructions.

7. The method of claim 6 wherein the Forth core instructions comprise 64 possible instructions based upon a 16 bit word, wherein each of the instructions in the 16 bit word comprises 3 five bit instructions and a 16th bit applicable to each of the 3 five bit instructions.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Mar 16, 2022
From: MUFG UNION BANK, N.A.
To: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
Reel/Frame 059410/0438 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Recorded Nov 3, 2020
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058002/0470 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Oct 28, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MUFG UNION BANK, N.A.
Reel/Frame 050896/0366 →
SECURITY INTEREST Recorded Mar 21, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035240/0429 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2012
From: RAMTRON INTERNATIONAL CORPORATION
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 029408/0437 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2012
From: FILLERE, FRANCK
To: RAMTRON INTERNATIONAL CORPORATION
Reel/Frame 028189/0944 →
Continuity (2)
Provisional Application 61486652 · May 16, 2011
Related Publication 20120297120A1 · Nov 22, 2012