Using renamed registers to support multiple vset{i}vl{i} instructions

US2025251935A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2025251935-A1
Application numberUS-202519044204-A
CountryUS
Kind codeA1
Filing dateFeb 3, 2025
Priority dateDec 2, 2022
Publication dateAug 7, 2025
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for renaming architectural register, such as control and status register (CSR), is disclosed. The method includes decoding an instruction for updating CSR, updating the CSR based on a respective instruction of the one or more instructions, allocating a unique tag to the instruction in pipeline, and writing the tag into a mapping table for renaming the CSR. The tag can identify the CSR included in the instruction or the updated values of the CSR. The tag can be associated with a unique value. Moreover, the method can employ a First In, First Out (FIFO) queuing technique and virtual bits.

First claim

Opening claim text (preview).

1 . A method for renaming architectural register, comprising: decoding one or more instructions in a pipeline, wherein the one or more instructions update a control and status register (CSR); updating values in the CSR based on a respective instruction of the one or more instructions; allocating one or more tags to the respective instruction in the pipeline, wherein, the one or more tags identify the CSR included in or associated with the one or more instructions or the updated values of the CSR, and each of the one or more tags is associated with a unique value; and writing the tags into a mapping table for renaming the CSR. 2 . The method of claim 1 , further comprising: liberating overwritten tags from the mapping table when the respective instruction retires from the pipeline. 3 . The method of claim 1 , wherein the CSR includes a vector type register (vtype) and a vector length register (vl), and the method further comprises: writing the values of the vtype and the vl into the mapping table as a combined entry; and updating the vtype and the vl as a combined unit. 4 . The method of claim 3 , wherein the CSR is updated by an instruction that is a vector set (vset) instruction, the vset instruction updates the vector type register (vtype) and the vector length register (vl). 5 . The method of claim 1 , further comprising: allocating a register entry of the CSR into a first-in, first-out (FIFO) queue, wherein the allocation of the register entry is managed by an allocation pointer that points to a next entry to be allocated in the FIFO queue; and deallocating the register entry from the FIFO queue when the respective instruction retires from the pipeline, wherein deallocation of the register entry is managed by a retirement pointer that points to a next entry to be retired from the FIFO queue. 6 . The method of claim 5 , further comprising: incrementing the retirement pointer to allocate a virtual index to a next physical entry in the FIFO queue. 7 . The method of claim 5 , further comprising: allocating a virtual index to the FIFO queue using one or more virtual bits, wherein the virtual index maps to a physical entry of the FIFO queue. 8 . The method of claim 7 , further comprising: determining a stall condition based on the retirement pointer and the allocated virtual index. 9 . The method of claim 1 , wherein the pipeline includes a primary pipeline and a vector pipeline. 10 . The method of claim 1 , further comprising: mapping virtual FIFO entries to physical FIFO entries using a virtual index to manage instruction flow in the pipeline. 11 . An integrated circuit comprising: a store buffer; and a processor configured to: decode one or more instructions in a pipeline, wherein the one or more instructions update a control and status register (CSR); update values in the CSR based on a respective instruction of the one or more instructions; allocate one or more tags to the respective instruction in the pipeline, wherein: the one or more tags identify the CSR included in or associated with the one or more instructions or the updated values of the CSR, and each of the one or more tags is associated with a unique value; write the tags into a mapping table for renaming the CSR; and liberate overwritten tags from the mapping table when the respective instruction retires from the pipeline. 12 . The integrated circuit of claim 11 , wherein the CSR includes a vector type register (vtype) and a vector length register (vl), and the processor is further configured to: write the values of the vtype and the vl into the mapping table as a combined entry; and update the vtype and the vl as a combined unit. 13 . The integrated circuit of claim 11 , wherein the CSR is updated by an instruction that is a vector set (vset) instruction, the vset instruction updates the vector type register (vtype) and the vector length register (vl). 14 . The integrated circuit of claim 11 , wherein the processor is further configured to: allocate a register entry of the CSR into a first-in, first-out (FIFO) queue, wherein the allocation of the register entry is managed by an allocation pointer that points to a next entry to be allocated in the FIFO queue; allocate a virtual index to the FIFO queue using one or more virtual bits, wherein the virtual index maps to a physical entry of the FIFO queue; determine a stall condition based on a retirement pointer and the allocated virtual index; increment a retirement pointer to allocate a virtual index to a next physical entry in the FIFO queue; or deallocate the register entry from the FIFO queue when the respective instruction retires from the pipeline, wherein deallocation of the register entry is managed by a retirement pointer that points to a next entry to be retired from the FIFO queue. 15 . The integrated circuit of claim 11 , wherein the processor is further configured to: map virtual FIFO entries to physical FIFO entries using a virtual index to manage instruction flow in the pipeline. 16 . A computer system comprising: memory to store an instruction; and a processor coupled with the memory, configured to: decode one or more instructions in a pipeline, wherein the one or more instructions update a control and status register (CSR); update values in the CSR based on a respective instruction of the one or more instructions; allocate one or more tags to the respective instruction in the pipeline, wherein: the one or more tags identify the CSR included in or associated with the one or more instructions or the updated values of the CSR, and each of the one or more tags is associated with a unique value; write the tags into a mapping table for renaming the CSR; and liberate overwritten tags from the mapping table when the respective instruction retires from the pipeline. 17 . The computer system of claim 16 , wherein the CSR includes a vector type register (vtype) and a vector length register (vl), and the processor is further configured to: write the values of the vtype and the vl into the mapping table as a combined entry; and update the vtype and the vl as a combined unit. 18 . The computer system of claim 16 , wherein the CSR is updated by an instruction that is a vector set (vset) instruction, the vset instruction updates the vector type register (vtype) and the vector length register (vl). 19 . The computer system of claim 16 , wherein the processor is further configured to: allocate a register entry of the CSR into a first-in, first-out (FIFO) queue, wherein the allocation of the register entry is managed by an allocation pointer that points to a next entry to be allocated in the FIFO queue; allocate a virtual index to the FIFO queue using one or more virtual bits, wherein the virtual index maps to a physical entry of the FIFO queue; determine a stall condition based on a retirement pointer and the allocated virtual index; increment a retirement pointer to allocate a virtual index to a next physical entry in the FIFO queue; or deallocate the register entry from the FIFO queue when the respective instruction retires from the pipeline, wherein deallocation of the register entry is managed by a retirement pointer that points to a next entry to be retired from the FIFO queue. 20 . The computer system of claim 16 , wherein the processor is further configured to: map virtual FIFO entries to physical FIFO entries using a virtual index to manage instruction flow in the pipeline.

Assignees

Inventors

Classifications

  • Reordering of instructions, e.g. using queues or age tags · CPC title

  • Instruction analysis, e.g. decoding, instruction word fields · CPC title

  • Register renaming · CPC title

  • Special purpose registers · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2025251935A1 cover?
A method for renaming architectural register, such as control and status register (CSR), is disclosed. The method includes decoding an instruction for updating CSR, updating the CSR based on a respective instruction of the one or more instructions, allocating a unique tag to the instruction in pipeline, and writing the tag into a mapping table for renaming the CSR. The tag can identify the CSR …
Who is the assignee on this patent?
Sifive Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/30145. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 07 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).