IP Library Granted Patent US 12,197,915
Granted Patent B2
US 12,197,915 · App. 17/526,882 · Granted Jan 14, 2025

Parallel instruction demarcator

Inventor: Sitaram Yadavalli (San Jose, CA)
G06F9/30152
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 12,197,915
App. No.
17/526,882
Granted
Jan 14, 2025
Kind
B2
Abstract

Parallel instruction demarcators and methods for parallel instruction demarcation are included, wherein an instruction syllable sequence comprising a plurality of instruction syllables is received and stored at an instruction buffer. It is determined, using one or more logic blocks arranged in a sequence, a size of an instruction and at least one boundary at which the instruction is demarcated. Additionally, using a controlling logic block a restart point is determined from where the sequence of instruction syllables is examined and demarcated into individual instructions.

Claims (44)

1. An instruction demarcator comprising:

a buffer to receive and store two or more instruction syllables comprising a first instruction syllable and a second instruction syllable; and

two or more logic blocks comprising a first logic block and a second logic block, wherein the first logic block comprises a first logic circuit and the second logic block comprises a second logic circuit,

wherein the first logic block receives a first portion of the first instruction syllable and generates a first output signal, and

wherein the second logic block receives a second portion of the second instruction syllable, and

wherein the second logic block receives the first output signal from the first logic block as input, and in response to the first output signal and the second portion of the second instruction syllable, the second logic block outputs a last syllable indicator that indicates a boundary of an instruction.

2. The instruction demarcator of claim 1 , wherein the last syllable indicator is an end of instruction marker.

3. The instruction demarcator of claim 1 , further comprising a controlling logic block configured to generate two or more decoupler control signals individually coupled to corresponding individual ones of the two or more logic blocks, and wherein the controlling logic block comprises a controlling logic circuit.

4. The instruction demarcator of claim 3 , wherein the controlling logic block is configured to receive a target address, and in response to the target address, generate values on the two or more decoupler control signals.

5. The instruction demarcator of claim 4 , wherein the target address identifies a target instruction syllable of the two or more instruction syllables corresponding with a next starting point.

6. The instruction demarcator of claim 4 , wherein the target address is given by an instruction pointer.

7. The instruction demarcator of claim 4 , wherein the target address is generated in response to redirection of an executing program thread.

8. The instruction demarcator of claim 3 , wherein the second logic block is decoupled from the first logic block in response to a corresponding individual one of the two or more decoupler control signals.

9. The instruction demarcator of claim 8 , wherein the second logic block is decoupled from the first logic block in response to the corresponding individual one of the two or more decoupler control signals by decoupling the second logic block from the first output signal of the first logic block.

10. The instruction demarcator of claim 1 , further comprising a multiplexer to demarcate the instruction at the boundary of the instruction.

11. The instruction demarcator of claim 10 , wherein the multiplexer is coupled to a data bus to transmit the instruction after demarcation.

12. The instruction demarcator of claim 10 , wherein the instruction after demarcation is received and stored in an instruction queue entry.

13. The instruction demarcator of claim 1 , wherein the two or more logic blocks are selected from the group consisting of a test logic block that comprises a first type logic circuit, a size testing logic block that comprises a second type logic circuit that computes a size indicator, a composite logic block that comprises a third type logic circuit, and a further logic block that comprises a fourth type logic circuit that restarts demarcation.

14. The instruction demarcator of claim 1 , wherein the two or more logic blocks generate respective size indicator values.

15. The instruction demarcator of claim 14 , wherein the size indicator value generated by the first logic block is received by the second logic block.

16. The instruction demarcator of claim 14 , wherein the second logic block generates the size indicator value by decrementing a size indicator value received from a preceding logic block.

17. The instruction demarcator of claim 14 , wherein the second logic block generates the size indicator value by shifting a size indicator value received from a preceding logic block.

18. The instruction demarcator of claim 14 , wherein a size indicator value that equals a terminal value indicates a last syllable of a corresponding instruction.

19. The instruction demarcator of claim 1 , wherein the first portion of the first instruction syllable is used to determine a length.

20. An instruction demarcator comprising:

a buffer to receive and store two or more instruction syllables comprising a first instruction syllable and a second instruction syllable;

two or more logic blocks comprising a first logic block and a last logic block, wherein the first logic block comprises a first stage logic circuit and the last logic block comprises a last stage logic circuit, and

wherein the first logic block receives a first portion of the first instruction syllable and the last logic block receives a second portion of the second instruction syllable, and

wherein the last logic block generates a first output; and

a carryover storage entity comprising at least one storage element, and

wherein the carryover storage entity receives as input the first output from the last logic block in a first time cycle preceding a time boundary, and

wherein the first output of the last logic block is stored into the carryover storage entity by the end of the first time cycle and transmitted by the carryover storage entity in a second time cycle succeeding the time boundary, and

wherein a carryover output generated from the carryover storage entity is received by the first logic block in the second time cycle, and in response to the carryover output in the second time cycle and the first portion of the first instruction syllable, the first logic block outputs a last syllable indicator that indicates a boundary of an instruction.

21. The instruction demarcator of claim 20 , wherein the first output of the last logic block indicates a last syllable of a corresponding instruction.

22. The instruction demarcator of claim 20 , wherein the first output of the last logic block is a size indicator wherein the size indicator at a stage gives the number of remaining syllables in an instruction.

23. The instruction demarcator of claim 20 , wherein the carryover storage entity presents a size carry over output as an input to the first logic block, wherein the first logic block computes a new size indicator value in response to the size carry over output.

24. The instruction demarcator of claim 20 , wherein the second portion of the second instruction syllable is used to determine a size.

25. A binary translation program product stored on a computer-readable non-transitory storage and executing on a processor in communication with the computer-readable non-transitory storage, the binary translation program product implementing

an instruction demarcator that comprises:

a buffer to receive and store two or more instruction syllables comprising a first instruction syllable and a second instruction syllable; and

two or more logic blocks comprising a first logic block and a second logic block, wherein the first logic block is implemented as a first procedure and the second logic block is implemented as a second procedure,

wherein the first logic block receives a first portion of the first instruction syllable and generates a first output, and

wherein the second logic block receives a second portion of the second instruction syllable, and wherein the second logic block receives the first output from the first logic block as input, and in response to the first output and the second portion of the second instruction syllable, the second logic block outputs a last syllable indicator that indicates a boundary of an instruction.

26. The binary translation program product of claim 25 , wherein the instruction demarcator further comprises a controlling logic block configured to generate two or more decoupler control signals individually received by corresponding individual ones of the two or more logic blocks, and wherein the controlling logic block is a controlling procedure that generates the two or more decoupler control signals in response to a target address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2026
From: YADAVALLI, SITARAM, DR.
To: ONNIVATION LLC
Reel/Frame 075401/0645 →
Continuity (3)
Continuation 16991408 · Aug 12, 2020
Provisional Application 62931435 · Nov 6, 2019
Related Publication 20220137971A1 · May 5, 2022
References Cited (8)
US 5450605A · Grochowski · 1995 [cited by examiner]
US 5600806A · Brown · 1997 [cited by examiner]
US 5852727A · Narayan · 1998 [cited by examiner]
US 6032250A · Zaidi · 2000 [cited by examiner]
US 6049863A · Tran · 2000 [cited by examiner]
US 6308257B1 · Theogarajan · 2001 [cited by examiner]
US 6405303B1 · Miller · 2002 [cited by examiner]
US 20020087848A1 · Homewood · 2002 [cited by examiner]