IP Library › Granted Patent US 9,940,129
Granted Patent B2
US 9,940,129 · App. 15/087,269 · Granted Apr 10, 2018

Computer processor with register direct branches and employing an instruction preload structure

Inventors: Mayan Moudgill (Chappaqua, NY); Gary Nacer (Morris Plains, NJ); C. John Glossner (Nashua, NH); A. Joseph Hoane (Yonkers, NY); Paul Hurtley (White Plains, NY); Murugappan Senthilvelan (Carmel, NY); Pablo Balzola (Madrid, ES)
Assignee: Optimum Semiconductor Technologies, Inc.
G06F9/30029G06F3/0604G06F3/0647G06F3/0673G06F9/30G06F9/3013G06F9/30032G06F9/30043G06F9/30047G06F9/30054G06F9/30058G06F9/322G06F9/355G06F12/0862G06F12/0875G06F12/0893G06F12/1009G06F2212/452G06F2212/60G06F2212/602
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,940,129
App. No.
15/087,269
Granted
Apr 10, 2018
Kind
B2
Abstract

A computer processor with register direct branches and employing an instruction preload structure is disclosed. The computer processor may include a hierarchy of memories comprising a first memory organized in a structure having one or more entries for one or more addresses corresponding to one or more instructions. The one or more entries of the one or more addresses may have a starting address. The structure may have one or more locations for storing the one or more instructions. The computer processor may include one or more registers to which one or more corresponding instruction addresses are writable. The computer processor may include processing logic. In response to the processing logic writing the one or more instruction addresses to the one or more registers, the processing logic may to pre-fetch the one or more instructions of a linear sequence of instructions from a first memory level of the hierarchy of memories into a second memory level of the hierarchy of memories beginning at the starting address. At least one address of the one or more addresses may be the contents of a register of the one or more registers.

Claims (33)

1. A processor, comprising:

a hierarchy of memories comprising a first memory structure comprising one or more entries to store an instruction address and one or more instructions starting from the instruction address;

one or more registers; and

a processing logic, operably coupled to the hierarchy of memories and the one or more registers, to:

responsive to writing one or more instruction addresses starting from the instruction address to the one or more registers, pre-fetch, based on the one or more instruction addresses starting from the instruction address, one or more instructions from a first memory level of the hierarchy of memories into a second memory level of the hierarchy of memories.

2. The processor of claim 1 , wherein at least one of the one or more instruction addresses is a next instruction address for a sequence of instructions currently being processed, and wherein the first memory level comprises an instruction cache and the second memory level comprises an L2 cache.

3. The processor of claim 1 , wherein at least one of the one or more instruction addresses is a next instruction address of last of a linear sequence of pre-fetched instructions.

4. The processor of claim 1 , wherein the one or more entries further comprise one or more branch prediction entries for the one or more instructions.

5. The processor of claim 4 , wherein the processing logic is to keep the one or more branch prediction entries up-to-date.

6. The processor of claim 1 , wherein the one or more instructions are a linear sequence of instructions and correspond to a cache-line.

7. The processor of claim 1 , wherein the one or more entries further comprise an address of a next instruction following the one or more instructions stored in the first memory level of the hierarchy of memories.

8. The processor of claim 1 , wherein targets of branch instructions are one or more addresses stored in one or more corresponding registers.

9. The processor of claim 8 , wherein the one or more addresses stored in one or more corresponding registers include a fall-through address of the branch instructions being processed.

10. The processor of claim 8 , wherein the one or more addresses stored in the one or more corresponding registers include a fall-through address for a branch instruction target.

11. The processor of claim 8 , wherein the processing logic is further to identify, by selecting one of as-yet un-pre-fetched addresses, a next group of instructions to read.

12. The processor of claim 1 , wherein the one or more instruction addresses comprise one or more addresses from a call stack.

13. The processor of claim 12 , wherein the call stack is implemented as a stack of pointers to the one or more entries.

14. A method comprising:

providing a hierarchy of memories comprising a first memory a structure comprising one or more entries to store an instruction address and one or more instructions starting from the instruction address;

providing one or more registers; and

responsive to writing one or more instruction addresses starting from the instruction address to the one or more registers, pre-fetching, by a processing logic based on the one or more instruction addresses starting from the instruction address, one or more instructions from a first memory level of the hierarchy of memories into a second memory level of the hierarchy of memories.

15. The method of claim 14 , wherein at least one of the one or more instruction addresses is a next instruction address for a sequence of instructions currently being processed.

16. The method of claim 14 , wherein at least one of the one or more instruction addresses is a next instruction address of last of a linear sequence of pre-fetched instructions, and wherein the first memory level comprises an instruction cache and the second memory level comprises an L2 cache.

17. The method of claim 14 , wherein the one or more entries further comprise one or more branch prediction entries for the one or more instructions.

18. The method of claim 17 , further comprising keeping the one or more branch prediction entries up-to-date.

19. The method of claim 14 , wherein the one or more instructions are a linear sequence of instructions and correspond to a cache-line.

20. The method of claim 14 , wherein the one or more entries further comprise an address of a next instruction following the one or more instructions stored in the first memory level of the hierarchy of memories.

21. The method of claim 14 , wherein targets of branch instructions are one or more addresses stored in one or more corresponding registers.

22. The method of claim 21 , wherein the one or more addresses stored in one or more corresponding registers include a fall-through address of the branch instructions being processed.

23. The method of claim 21 , wherein the one or more addresses stored in the one or more corresponding registers include a fall-through address for a branch instruction target.

24. The method of claim 21 , further comprising identifying, by selecting one of as-yet un-pre-fetched addresses, a next group of instructions to read.

25. The method of claim 14 , wherein the one or more addresses comprise one or more instruction addresses from a call stack.

26. The method of claim 25 , wherein the call stack is implemented as a stack of pointers to the one or more entries.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2016
From: MOUDGILL, MAYAN; NACER, GARY; GLOSSNER, C. JOHN; HOANE, A. JOSEPH; SENTHILVELAN, MURUGAPPAN; BALZOLA, PABLO
To: OPTIMUM SEMICONDUCTOR TECHNOLOGIES, INC.
Reel/Frame 038644/0853 →
Continuity (2)
Provisional Application 62152313 · Apr 24, 2015
Related Publication 20160314071A1 · Oct 27, 2016