IP Library Patent Application 13753380
Patent Application
App. No. 13/753,380

FETCHING INSTRUCTIONS OF A LOOP ROUTINE

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.
13/753,380
Abstract

In one aspect, a processor is configured to store instructions fetched from a program memory in an instruction queue, determine that an instruction to be decoded defines a beginning of a loop routine, and determine whether the instruction is stored in the instruction queue. In response to determining that the instruction is stored in the instruction queue, the processor disables fetching of instructions from the program memory, fetches instructions of the loop routine from the instruction queue, and stores the instructions of the loop routine in an instruction register. In response to determining that the instruction is not stored in the instruction queue, the processor fetches the instruction from the program memory, stores the instruction in the instruction queue, and stores the instruction in the instruction register.

Claims (79)

1 . A method comprising:

storing instructions fetched from a program memory in an instruction queue;

determining that an instruction to be decoded defines a beginning of a loop routine;

determining whether the instruction is stored in the instruction queue;

in response to determining that the instruction is stored in the instruction queue:

disabling fetching of instructions from the program memory,

fetching instructions of the loop routine from the instruction queue, and

storing the instructions of the loop routine in an instruction register; and

in response to determining that the instruction is not stored in the instruction queue:

fetching the instruction from the program memory,

storing the instruction in the instruction queue, and

storing the instruction in the instruction register.

2 . The method of claim 1 , wherein storing instructions fetched from the program memory in the instruction queue comprises:

storing instructions fetched from the program memory in a first in, first out (FIFO) queue.

3 . The method of claim 1 , wherein storing instructions fetched from the program memory in the instruction queue comprises:

storing instructions that are skipped as a result of a branch or a jump.

4 . The method of claim 1 , wherein determining that the instruction to be decoded defines the beginning of the loop routine comprises:

determining that a decoded instruction defines an ending point of the loop routine; and

determining that a number of iterations of the loop routine remaining has not reached zero.

5 . The method of claim 1 , wherein determining that the instruction to be decoded defines the beginning of the loop routine comprises:

receiving a memory address associated with a result of an executed instruction; and

determining that the memory address occurs earlier than a memory address associated with the executed instruction.

6 . The method of claim 1 , wherein in response to determining that the instruction is stored in the instruction queue, the method further comprises:

determining that the loop routine has been exited; and

re-enabling fetching of instructions from the program memory.

7 . The method of claim 1 , wherein in response to determining that the instruction is not stored in the instruction queue, storing the instruction in the instruction queue and storing the instruction in the instruction register comprises storing the instruction in the instruction register concurrently with the storing of the instruction in the instruction queue.

8 . An apparatus comprising:

an instruction queue;

an instruction register; and

a controller configured to:

store instructions fetched from a program memory in the instruction queue;

determine that an instruction to be decoded defines a beginning of a loop routine;

determine whether the instruction is stored in the instruction queue;

in response to determining that the instruction is stored in the instruction queue:

disable fetching of instructions from the program memory,

fetch instructions of the loop routine from the instruction queue, and

store the instructions of the loop routine in the instruction register; and

in response to determining that the instruction is not stored in the instruction queue:

fetch the instruction from the program memory,

store the instruction in the instruction queue, and

store the instruction in the instruction register.

9 . The apparatus of claim 8 , wherein the controller is configured to store instructions fetched from the program memory in a first in, first out (FIFO) queue.

10 . The apparatus of claim 8 , wherein the controller is configured to store instructions that are skipped as a result of a branch or a jump.

11 . The apparatus of claim 8 , wherein the controller is configured to:

determine that a decoded instruction defines an ending point of the loop routine; and

determine that a number of iterations of the loop routine remaining has not reached zero.

12 . The apparatus of claim 8 , wherein the controller configured to:

receive a memory address associated with a result of an executed instruction; and

determine that the memory address occurs earlier than a memory address associated with the executed instruction.

13 . The apparatus of claim 8 , wherein in response to determining that the instruction is stored in the instruction queue, the controller is further configured to:

determine that the loop routine has been exited; and

re-enable fetching of instructions from the program memory.

14 . The apparatus of claim 8 , wherein in response to determining that the instruction is not stored in the instruction queue, the controller is configured to store the instruction in the instruction register concurrently with the storing of the instruction in the instruction queue.

15 . A system comprising:

a program memory; and

a processor configured to:

store instructions fetched from the program memory in an instruction queue;

determine that an instruction to be decoded defines a beginning of a loop routine;

determine whether the instruction is stored in the instruction queue;

in response to determining that the instruction is stored in the instruction queue:

disable fetching of instructions from the program memory,

fetch instructions of the loop routine from the instruction queue, and

store the instructions of the loop routine in an instruction register; and

in response to determining that the instruction is not stored in the instruction queue:

fetch the instruction from the program memory,

store the instruction in the instruction queue, and

store the instruction in the instruction register.

16 . The system of claim 15 , wherein the processor is configured to store instructions fetched from the program memory in a first in, first out (FIFO) queue.

17 . The system of claim 15 , wherein the processor is configured to store instructions that are skipped as a result of a branch or a jump.

18 . The system of claim 15 , wherein the processor is configured to:

determine that a decoded instruction defines an ending point of the loop routine; and

determine that a number of iterations of the loop routine remaining has not reached zero.

19 . The system of claim 15 , wherein the processor is configured to:

receive a memory address associated with a result of an executed instruction; and

determine that the memory address occurs earlier than a memory address associated with the executed instruction.

20 . The system of claim 15 , wherein in response to determining that the instruction is stored in the instruction queue, the processor is further configured to:

determine that the loop routine has been exited; and

re-enable fetching of instructions from the program memory.

21 . The system of claim 15 , wherein in response to determining that the instruction is not stored in the instruction queue, the processor is configured to store the instruction in the instruction register concurrently with the storing of the instruction in the instruction queue.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: ATMEL CORPORATION
Reel/Frame 059262/0105 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059333/0222 →
SECURITY INTEREST Recorded Sep 18, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 047103/0206 →
SECURITY INTEREST Recorded Jun 25, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 046426/0001 →
SECURITY INTEREST Recorded Feb 10, 2017
From: ATMEL CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041715/0747 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Apr 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ATMEL CORPORATION
Reel/Frame 038376/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR AND ASSIGNEE PREVIOUSLY RECORDED AT REEL: 030181 FRAME: 0767. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 28, 2014
From: DANIELSEN, STEIN
To: ATMEL CORPORATION
Reel/Frame 033647/0561 →
PATENT SECURITY AGREEMENT Recorded Jan 3, 2014
From: ATMEL CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC. AS ADMINISTRATIVE AGENT
Reel/Frame 031912/0173 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2013
From: ATMEL NANTES S.A.S.
To: ATMEL CORPORATION
Reel/Frame 030181/0767 →