IP Library › Granted Patent US 12,566,609
Granted Patent B2
US 12,566,609 · App. 18/224,002 · Granted Mar 3, 2026

Microprocessor with apparatus and method for handling of instructions with long throughput

Inventor: Thang Minh Tran (Austin, TX)
Assignee: Simplex Micro, Inc.
G06F9/3836G06F9/3838G06F9/3856
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,566,609
App. No.
18/224,002
Granted
Mar 3, 2026
Kind
B2
Abstract

A processor includes a time counter and a time-resource matrix and statically dispatches instructions if the resources are available based on data stored in the time-resource matrix. Execution times for the instructions use a time count from the time counter to specify when the instructions may be provided to an execution pipeline. The execution of a second instruction to a functional unit may be replayed due to the throughput time of a first instruction to the same functional unit. A busy bit and next available time of the functional unit are set when the first instruction is sent to the functional unit are the indication to replay the second instruction.

Claims (53)

1 . A processor comprising:

a time counter storing a time count representing a current time of the processor, wherein the time count is incremented periodically;

an instruction issue unit coupled to the time counter that receives a first instruction, and issues the first instruction with a first preset execution time based on the time count;

an execution queue coupled to the time counter and the instruction issue unit that receives the first instruction from the instruction issue unit, and dispatches the first instruction to a functional unit when the first preset execution time corresponds to the time count; and

dispatch circuitry that determines if the functional unit is busy at the first preset execution time and if so then retains the first instruction in the execution queue and causes replay of the first instruction based on a next free time provided by a next free time register coupled to the dispatch circuitry.

2 . The processor of claim 1 further comprising:

a clock circuit that causes the time counter to increment the time count with each clock cycle of the clock circuit; and

wherein the time counter comprises an N-bit counter which counts from a zero count to an Nth-bit count value, which represents a largest preset time for the instruction issue unit to issue an instruction;

wherein the N-bit counter returns to the zero count after reaching the Nth-bit count value.

3 . The processor of claim 1 further comprising:

a register scoreboard storing a write time of a selected register from a plurality of registers in a register file, wherein the write time is a preset time based on the time count;

an instruction decode unit coupled to the register scoreboard, wherein the instruction decode unit reads a write time for each source operand of the first instruction from the register scoreboard, and wherein the register scoreboard uses one or more write times to determine an execution time for the first instruction; and

a time-resource matrix unit, coupled to the register scoreboard, comprising a plurality of time-resource registers for storing information relating to available resources for each time count of an N-bit time counter;

wherein the time-resource registers store information for resources that include at least one of: a plurality of read buses, a plurality of write buses, and a plurality of each type of functional units; and

wherein the time-resource matrix unit uses the execution time of the first instruction to further check availability of the plurality of read buses, the plurality of write buses, and the plurality of each type of functional units to issue the first instruction at a second preset execution time.

4 . The processor of claim 3 , wherein the plurality of time-resource registers include a shared resource wherein the shared resource can be read and incremented by one or more of the instruction issue unit, a coprocessor, or by replay of an instruction.

5 . The processor of claim 1 further comprising:

read control circuitry having registers storing time count entries specifying when operands may be read and transported on a read bus, and wherein the read control circuitry further accesses a register scoreboard to determine availability of a first register in a register file, wherein if a write time of the first register is the same as the time count then data is forwarded from the first register instead of being read from the register file.

6 . The processor of claim 5 further comprising:

a write control circuitry having a plurality of write bus control registers, each write bus control register storing a time count entry specifying when result data may be transported on a write bus and written to a second register of the register file;

wherein the write control circuitry further accesses the register scoreboard to clear a valid bit if the write time stored in the write bus control register is the same as the time count.

7 . The processor of claim 6 wherein the execution queue stores a plurality of instructions, the functional unit is one of a plurality of functional units and each instruction includes a first read time which is represented by a preset time count wherein the execution queue dispatches instructions to at least a selected functional unit and wherein dispatching of a long throughput instruction to the selected functional unit sets a busy bit associated with the selected functional unit and records a next available time of the functional unit.

8 . The processor of claim 7 wherein the read control circuitry is synchronized with a second read time in the execution queue.

9 . The processor of claim 7 wherein each instruction of the execution queue includes a replay bit to replay a corresponding instruction if such corresponding instruction was not completed at a corresponding preset time.

10 . The processor of claim 9 wherein each instruction in the execution queue further includes an immediate data field and a source valid bit that is set at a time at which the replay bit is set, and a valid source operand data is written into the immediate data field.

11 . A processor comprising:

a clock circuit;

a time counter storing a time count representing a specific time of operation of the processor, wherein the time count is incremented by the clock circuit;

a time-resource matrix coupled to a register scoreboard and the time counter for storing information relating to available resources for each time count of the time counter;

an instruction issue unit coupled to the time counter for receiving a first instruction, and issuing or stalling the first instruction at a first preset execution time, as represented by the time count, based on availability of the available resources as provided by the time-resource matrix;

an execution queue coupled to the time counter and the instruction issue unit to receive the first instruction from the instruction issue unit, and dispatch the first instruction to a functional unit when the first preset execution time matches the time count;

dispatch circuitry to determine if a busy bit of the functional unit is set to replay the first instruction at a new read time determined from a time count at which the functional unit is next available;

the register scoreboard storing a write time of a register in a register file, wherein the write time is a future time specified by the time count;

an instruction decode unit coupled to the register scoreboard, the instruction decode unit reading a write time for each source operand of a selected instruction from the register scoreboard, and using the write times corresponding to the selected instruction to determine an execution time for the selected instruction; and

wherein the available resources include at least one of a plurality of read buses, a plurality of write buses, and a plurality of functional units.

12 . A computer program product for issuing an instruction, the computer program product stored on a non-transitory computer readable storage medium and including instructions for causing a computer system to execute a method that is executable by a processor, the method comprising:

issuing an instruction to an execution queue to execute at a preset time, wherein the preset time is a time defined by a time count from a periodically incremented time counter;

dispatching the instruction from the execution queue to a functional unit when the preset time corresponds to the time count; and

retaining the instruction in the execution queue and replaying the instruction at a next free time if a dispatch circuitry determines that the functional unit is busy at the preset time.

13 . The computer program product of claim 12 wherein the method further comprises:

operating the time counter to provide a maximum time count corresponding to a latest preset time to issue an instruction.

14 . The computer program product of claim 13 wherein the method further comprises:

storing a write time of a register of a register file wherein the write time is a preset time defined by the time count.

15 . The computer program product of claim 14 wherein the method further comprises:

storing information corresponding to available resources for each time count in a time-resource matrix, wherein the resources comprise at least one of a plurality of read buses, a plurality of write buses, and a plurality of functional units.

16 . The computer program product of claim 15 wherein the method further comprises:

storing in a register of a read control circuitry a read time that specifies when data may be read from a register file and transported on a read bus.

17 . The computer program product of claim 16 wherein the method further comprises:

storing in a register of a write control circuitry a write time that specifies when result data may be transported on a write bus and written to a register of the register file.

18 . The computer program product of claim 17 wherein the method further comprises:

storing a plurality of instructions in the execution queue, wherein each instruction includes a read time defined by the time count.

19 . The computer program product of claim 18 wherein the method further comprises:

synchronizing the read time of the execution queue with the read control circuitry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2023
From: TRAN, THANG MINH
To: SIMPLEX MICRO, INC.
Reel/Frame 065084/0921 →
Continuity (2)
Provisional Application 63451959 · Mar 14, 2023
Related Publication 20240311157A1 · Sep 19, 2024
References Cited (176)
US 5021985A · Hu et al. · 1991 [cited by applicant]
US 5185868A · Tran · 1993 [cited by applicant]
US 5187796A · Wang et al. · 1993 [cited by applicant]
US 5251306A · Tran · 1993 [cited by applicant]
US 5497467A · Wakui et al. · 1996 [cited by applicant]
US 5655096A · Branigin · 1997 [cited by applicant]
US 5689653A · Karp et al. · 1997 [cited by applicant]
US 5699536A · Hopkins et al. · 1997 [cited by applicant]
US 5799163A · Park et al. · 1998 [cited by applicant]
US 5802386A · Kahle et al. · 1998 [cited by applicant]
US 5809268A · Chan · 1998 [cited by applicant]
US 5835745A · Sager et al. · 1998 [cited by applicant]
US 5860018A · Panwar · 1999 [cited by applicant]
US 5870579A · Tan · 1999 [cited by applicant]
US 5881302A · Omata · 1999 [cited by applicant]
US 5903779A · Park · 1999 [cited by applicant]
US 5903919A · Myers · 1999 [cited by applicant]
US 5933618A · Tran et al. · 1999 [cited by applicant]
US 5958041A · Petolino, Jr. et al. · 1999 [cited by applicant]
US 5961630A · Zaidi et al. · 1999 [cited by applicant]
US 5964867A · Anderson et al. · 1999 [cited by applicant]
US 5974538A · Wilmot, II · 1999 [cited by applicant]
US 5996061A · Lopez-Aguado et al. · 1999 [cited by applicant]
US 5996064A · Zaidi et al. · 1999 [cited by applicant]
US 6003128A · Tran · 1999 [cited by applicant]
US 6016540A · Zaidi et al. · 2000 [cited by applicant]
US 6035389A · Grochowski et al. · 2000 [cited by applicant]
US 6035393A · Glew et al. · 2000 [cited by applicant]
US 6065105A · Zaidi et al. · 2000 [cited by applicant]
US 6247113B1 · Jaggar · 2001 [cited by applicant]
US 6282634B1 · Hinds et al. · 2001 [cited by applicant]
US 6304955B1 · Arora · 2001 [cited by applicant]
US 6425090B1 · Arimilli et al. · 2002 [cited by applicant]
US 6453424B1 · Janniello · 2002 [cited by applicant]
US 6591359B1 · Hass et al. · 2003 [cited by applicant]
US 6671799B1 · Parthasarathy · 2003 [cited by applicant]
US 6959379B1 · Wojcieszak et al. · 2005 [cited by applicant]
US 7069425B1 · Takahashi · 2006 [cited by applicant]
US 7434032B1 · Coon et al. · 2008 [cited by applicant]
US 8166281B2 · Gschwind et al. · 2012 [cited by applicant]
US 9256428B2 · Heil et al. · 2016 [cited by applicant]
US 9348590B1 · Kashyap et al. · 2016 [cited by applicant]
US 9354884B2 · Comparan et al. · 2016 [cited by applicant]
US 10339095B2 · Moudgill et al. · 2019 [cited by applicant]
US 10346171B2 · Gabor et al. · 2019 [cited by applicant]
US 10437595B1 · Kanapathipillai et al. · 2019 [cited by applicant]
US 11062200B2 · Lie et al. · 2021 [cited by applicant]
US 11132199B1 · Tran · 2021 [cited by applicant]
US 11144319B1 · Battle et al. · 2021 [cited by applicant]
US 11163582B1 · Tran · 2021 [cited by applicant]
US 11188478B1 · Tran · 2021 [cited by applicant]
US 11204770B2 · Tran · 2021 [cited by applicant]
US 11263013B2 · Tran · 2022 [cited by applicant]
US 11467841B1 · Tran · 2022 [cited by applicant]
US 11829187B2 · Tran · 2023 [cited by applicant]
US 11954491B2 · Tran · 2024 [cited by applicant]
US 12061906B2 · Stephens et al. · 2024 [cited by applicant]
US 20010004755A1 · Levy et al. · 2001 [cited by applicant]
US 20030023646A1 · Lin et al. · 2003 [cited by applicant]
US 20030135712A1 · Theis · 2003 [cited by applicant]
US 20040073779A1 · Hokenek et al. · 2004 [cited by applicant]
US 20040168045A1 · Morris et al. · 2004 [cited by applicant]
US 20040236920A1 · Sheaffer · 2004 [cited by applicant]
US 20040243894A1 · Smith et al. · 2004 [cited by applicant]
US 20050038980A1 · Rodgers et al. · 2005 [cited by applicant]
US 20050251657A1 · Boucher · 2005 [cited by applicant]
US 20060010305A1 · Maeda et al. · 2006 [cited by applicant]
US 20060095732A1 · Tran et al. · 2006 [cited by applicant]
US 20060218124A1 · Williamson et al. · 2006 [cited by applicant]
US 20060259800A1 · Maejima · 2006 [cited by applicant]
US 20060288194A1 · Lewis et al. · 2006 [cited by applicant]
US 20070028078A1 · Harris et al. · 2007 [cited by applicant]
US 20070038984A1 · Gschwind et al. · 2007 [cited by applicant]
US 20070113058A1 · Tran et al. · 2007 [cited by applicant]
US 20070113059A1 · Tran · 2007 [cited by applicant]
US 20070255903A1 · Tsadik et al. · 2007 [cited by applicant]
US 20070260856A1 · Tran et al. · 2007 [cited by applicant]
US 20080114966A1 · Begon et al. · 2008 [cited by applicant]
US 20080294882A1 · Jayapala et al. · 2008 [cited by applicant]
US 20090113192A1 · Hall et al. · 2009 [cited by applicant]
US 20090158279A1 · Iino et al. · 2009 [cited by applicant]
US 20090217020A1 · Yourst · 2009 [cited by applicant]
US 20100049958A1 · Vaskevich et al. · 2010 [cited by applicant]
US 20100064106A1 · Yamada et al. · 2010 [cited by applicant]
US 20100306505A1 · Williamson · 2010 [cited by examiner]
US 20110099354A1 · Takashima et al. · 2011 [cited by applicant]
US 20110153987A1 · Luke et al. · 2011 [cited by applicant]
US 20110320765A1 · Karkhanis et al. · 2011 [cited by applicant]
US 20120047352A1 · Yamana · 2012 [cited by applicant]
US 20120060015A1 · Eichenberger et al. · 2012 [cited by applicant]
US 20120124344A1 · Jarvis · 2012 [cited by applicant]
US 20120151156A1 · Citron et al. · 2012 [cited by applicant]
US 20130151816A1 · Indukuru et al. · 2013 [cited by applicant]
US 20130297912A1 · Tran et al. · 2013 [cited by applicant]
US 20130298129A1 · Rabinovitch et al. · 2013 [cited by applicant]
US 20130346985A1 · Nightingale · 2013 [cited by applicant]
US 20140059328A1 · Gonion · 2014 [cited by applicant]
US 20140082626A1 · Busaba et al. · 2014 [cited by applicant]
US 20150026435A1 · Muff et al. · 2015 [cited by applicant]
US 20150089141A1 · Chen et al. · 2015 [cited by applicant]
US 20150100754A1 · Reid et al. · 2015 [cited by applicant]
US 20150212972A1 · Boettcher et al. · 2015 [cited by applicant]
US 20150227369A1 · Gonion · 2015 [cited by applicant]
US 20150331760A1 · Dalessandro et al. · 2015 [cited by applicant]
US 20160092230A1 · Chen et al. · 2016 [cited by applicant]
US 20160092238A1 · Codrescu et al. · 2016 [cited by applicant]
US 20160275043A1 · Grochowski et al. · 2016 [cited by applicant]
US 20160283240A1 · Mishra et al. · 2016 [cited by applicant]
US 20160371091A1 · Brownscheidle et al. · 2016 [cited by applicant]
US 20170177345A1 · Ould-Ahmed-Vall et al. · 2017 [cited by applicant]
US 20170177354A1 · Ould-Ahmed-Vall · 2017 [cited by applicant]
US 20170185407A1 · Shwartsman · 2017 [cited by applicant]
US 20170357513A1 · Ayub et al. · 2017 [cited by applicant]
US 20170371657A1 · Mahurin et al. · 2017 [cited by applicant]
US 20180181400A1 · Scherbinin et al. · 2018 [cited by applicant]
US 20180196678A1 · Thompto · 2018 [cited by applicant]
US 20180253310A1 · Stephens · 2018 [cited by applicant]
US 20180321938A1 · Boswell et al. · 2018 [cited by applicant]
US 20190079764A1 · Diamond et al. · 2019 [cited by applicant]
US 20190243646A1 · Anderson · 2019 [cited by applicant]
US 20190303161A1 · Nassi et al. · 2019 [cited by applicant]
US 20200004534A1 · Gurram et al. · 2020 [cited by applicant]
US 20200004543A1 · Kumar et al. · 2020 [cited by applicant]
US 20200065111A1 · Bouzguarrou et al. · 2020 [cited by applicant]
US 20200089528A1 · Gutierrez et al. · 2020 [cited by applicant]
US 20200125498A1 · Betts et al. · 2020 [cited by applicant]
US 20200310796A1 · Pfister et al. · 2020 [cited by applicant]
US 20200319885A1 · Eyole et al. · 2020 [cited by applicant]
US 20200371810A1 · Lichtenau · 2020 [cited by examiner]
US 20200387382A1 · Tseng et al. · 2020 [cited by applicant]
US 20210026639A1 · Tekmen et al. · 2021 [cited by applicant]
US 20210200550A1 · Sivtsov et al. · 2021 [cited by applicant]
US 20210208891A1 · Wen et al. · 2021 [cited by applicant]
US 20210311743A1 · Tran · 2021 [cited by examiner]
US 20210326141A1 · Tran · 2021 [cited by examiner]
US 20210389979A1 · Tran · 2021 [cited by applicant]
US 20220066760A1 · Chang et al. · 2022 [cited by applicant]
US 20220326988A1 · Gunter et al. · 2022 [cited by applicant]
US 20230068637A1 · Feiste et al. · 2023 [cited by applicant]
US 20230130826A1 · Segger · 2023 [cited by applicant]
US 20230214218A1 · Battle et al. · 2023 [cited by applicant]
US 20230244490A1 · Tran · 2023 [cited by applicant]
US 20230244491A1 · Tran · 2023 [cited by applicant]
US 20230367599A1 · Waterman et al. · 2023 [cited by applicant]
US 20230393852A1 · Tran · 2023 [cited by applicant]
EP 0840213A2 · 1998 [cited by applicant]
EP 0902360A2 · 1999 [cited by applicant]
EP 0959575A1 · 1999 [cited by applicant]
WO 0010076A1 · 2000 [cited by applicant]
WO 0208894A1 · 2002 [cited by applicant]
WO 0213005A1 · 2002 [cited by applicant]
WO 2024015445A1 · 2024 [cited by applicant]
H. O. Kultala et al., “Exposed datapath optimizations for loop scheduling,” 2017 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS), Pythagorion, Greece, pp. 171-178 (… [cited by applicant]
PCT/US2024/02037, Written Opinion of the International Searching Authority, Dec. 11, 2024. [cited by applicant]
PCT/US2024/020737 International Search Report, Dec. 11, 2024. [cited by applicant]
Wang, Y., Jia, Z., Chen, R., Wang, M., Liu, D. and Shao, Z., Loop scheduling with memory access reduction subject to register constraints for DSP applications. Softw. Pract. Exper., pp. 999-1026. (Year: 2014). [cited by applicant]
Anonymous: “RISC-V—Wikipedia”, Apr. 16, 2022 (Apr. 16, 2022), XP093142703, Retrieved from the Internet:URL:https://en.wikipedia.org/w/index.php?title=RISC-V&oldid=1083030760 [retrieved on Mar. 27, 2024]. [cited by applicant]
PCT/US2023/018970, International Preliminary Report on Patentability, Jul. 18, 2024. [cited by applicant]
PCT/US2023/018996, International Preliminary Report on Patentability, Jul. 19, 2024. [cited by applicant]
PCT/US2023/018996, Written Opinion of the International Preliminary Examining Authority, Apr. 8, 2024. [cited by applicant]
PCTUS2023081682, Written Opinion of the International Searching Authority, Mar. 22, 2024. [cited by applicant]
Written Opinion of The International Preliminary Examining Authority, PCTUS2023/018970, Mar. 25, 2024. [cited by applicant]
U.S. Appl. No. 17/588,315, filed Jan. 30, 2022, Thang Minh Tran. [cited by applicant]
U.S. Appl. No. 17/672,622, filed Feb. 15, 2022, Thang Minh Tran. [cited by applicant]
U.S. Appl. No. 17/697,865, filed Mar. 17, 2022, Thang Minh Tran. [cited by applicant]
U.S. Appl. No. 17/697,870, filed Mar. 17, 2022, Thang Minh Tran. [cited by applicant]
U.S. Appl. No. 17/713,569, filed Apr. 5, 2022, Thang Minh Tran. [cited by applicant]
U.S. Appl. No. 17/254,476, filed Apr. 20, 2022, Thang Minh Tran. [cited by applicant]
U.S. Appl. No. 17/829,909, filed Jun. 1, 2022, Thang Minh Tran. [cited by applicant]
Choi, W., Park, SJ., Dubois, M. (2009). Accurate Instruction Pre-scheduling in Dynamically Scheduled Processors. In: Stenström, P. (eds) Transactions on High-Performance Embedded Architectures and Compilers I. Lecture N… [cited by applicant]
Diavastos, Andreas & Carlson, Trevor. (2021). Efficient Instruction Scheduling using Real-time Load Delay Tracking. (Year: 2021). [cited by applicant]
J. S. Hu, N. Vijaykrishnan and M. J. Irwin, “Exploring Wakeup-Free Instruction Scheduling,” 10th International Symposium on High Performance Computer Architecture (HPCA'04), Madrid, Spain, pp. 232-232 (Year: 2004). [cited by applicant]
PCT/US23/27497: Written Opinion of the International Searching Authority. [cited by applicant]
Written Opinion of the International Searching Authority, PCT/S2022/052185. [cited by applicant]
Written Opinion of the International Searching Authority, PCT/US2023/018970. [cited by applicant]
Written Opinion of the International Searching Authority, PCT/US2023/018996. [cited by applicant]