Bitwidth reconfiguration of register files using shadow latch configuration
By introducing a floating-point register file configured with a shadow latch in the processor, bit-width reconfiguration for 512-bit operations was achieved, solving the problem of increased physical register file size caused by splitting and renaming, reducing costs and improving processor execution efficiency.
Patent Information
- Application Number
- CN202080067209.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-27
- Filing Date
- 2020-09-25
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2040-09-25
AI Technical Summary
Existing processors require splitting and renaming when performing 512-bit operations, which increases the size of the physical register file and consequently increases manufacturing costs.
The floating-point register file configured with a shadow latch achieves bit-width reconfiguration for 512-bit operations by storing 256 bits of data in the regular latch and the shadow latch respectively over two clock cycles, avoiding splitting and renaming.
This reduces the need for physical register files, lowers manufacturing costs, and improves processor execution efficiency.
Smart Images

Figure CN114467077B_ABST
Abstract
Description
Background Technology
[0001] Processors employ various structures to store data for use during processing activities. One type of data structure is the register file. A typical register file stores data in function latches associated with entries that can be written to or read from in parallel. To access the data stored in the function latches, a typical processor uses split renaming to "split" the registers into high-order and low-order registers. Split renaming allows the processor to implement registers wider than the processor's original width. Specifically, the high-order and low-order portions of the registers are assigned different identifiers or names by the microprocessor, making the registers logically appear as two distinct registers. For example, some currently available microprocessors split and rename a 256-bit register into high-order and low-order 128-bit registers. Split and renaming registers results in an increase in the amount of register space required to perform computational operations. For example, splitting and renaming the aforementioned 256-bit register into high-order and low-order 128-bit registers requires twice the number of entries and regions in the physical register file. The increased size of the physical register file required for split renaming leads to increased manufacturing costs because performing split renaming operations requires more microprocessor space. Attached Figure Description
[0002] This disclosure will be better understood by referring to the accompanying drawings, and many features and advantages of this disclosure will become apparent to those skilled in the art. The same reference numerals are used in different drawings to indicate similar or identical items.
[0003] Figure 1 This is a block diagram of a processor core that supports register bit-width reconfiguration using shadow latches, based on some implementation schemes.
[0004] Figure 2 It is based on some implementation plans. Figure 1 The bit cell layout of the floating-point register file configured with shadow latches in the processor core.
[0005] Figure 3 It is based on some implementation plans. Figure 1 The flowchart shows the bit-width reconfiguration method using shadow latches in the processor core.
[0006] Figure 4 It is based on some implementation plans. Figure 1 A block diagram of the floating-point register file configured with shadow latches in the processor core.
[0007] Figure 5 It is based on some implementation plans. Figure 4The timing diagram used in the floating-point register file configured with the shadow latch in the processor core. Detailed Implementation
[0008] Figures 1 to 5 This illustrates systems and techniques for supporting bit-width reconfiguration of registers within the processor core of a processor, according to some implementations. The floating-point unit in the processor includes a floating-point register file configured with shadow latches, which reconfigures the bit width from a first width (e.g., 256 bits) to a second width (e.g., 512 bits) based on the availability of shadow latches in the file, enabling floating-point units operating at the first width to be used in a processor operating at the second width. The shadow-latch-configured floating-point register file includes shadow latches, regular latches, and shadow select multiplexers (MUX) for bit-width reconfiguration, for example, during read and write data operations utilizing the floating-point unit.
[0009] To perform bit-width reconfiguration, during the first and second clock cycles, the first 256 bits of a 512-bit operation are stored in a regular latch, and the last 256 bits are stored in a shadow latch within a floating-point register file configured with a shadow latch, within the same single entry. During, for example, a 512-bit read or write operation, the first 256 bits are accessed from the floating-point register file configured with a shadow latch during the first clock cycle, and the last 256 bits are accessed during the second clock cycle, with both accesses occurring within the same entry. Because both the first and last 256 bits are stored in a single entry within the floating-point register file configured with a shadow latch, no split renaming is required to reconfigure the bit width of the 512-bit operation. In other words, by utilizing the floating-point register file configured with a shadow latch, the split renaming that would typically involve splitting a 512-bit instruction into two separate registers (i.e., a high-order register and a low-order register) for the floating-point unit to operate on a 512-bit instruction set is eliminated.
[0010] Figure 1 A processor core 100 of a processor having an execution pipeline 105 supporting bit-width reconfiguration is shown according to some embodiments. In some embodiments, the shown processor core 100 includes a central processing unit (CPU) core, such as one based on an x86 instruction set architecture (ISA), ARM ISA, etc. Processors implement multiple such processor cores, and processors are implemented in a variety of electronic devices, such as laptops, desktop computers, tablets, servers, computing-enabled cellular phones, personal digital assistants (PDAs), set-top boxes, game consoles, etc.
[0011] In some implementations, the processor used for processor core 100 supports the x86 architecture, which supports the execution of two types of vector arithmetic instructions: Single Instruction Multiple Data (SIMD) Stream Extension (SSE) instructions and Advanced Vector Extension (AVX) instructions. AVX instructions manipulate 256-bit operands, while SSE instructions manipulate 128-bit operands. AVX-512 instructions are... x86 instruction set architecture (ISA) 256-bit AVXSIMD Instructions 512 bits Extended. Therefore, processors employing register files with 512-bit registers support the execution of both AVX and SSE instructions. In some implementations, processors or processing units (such as Floating Point Unit 120) employing register files with 256-bit registers, utilizing floating-point register files configured with the shadow latches described herein, also support 512-bit operations.
[0012] In the depicted example, execution pipeline 105 includes instruction cache 110 (“Icache”), front-end 115, floating-point unit 120, and fixed-point unit 125 (often also referred to as “integer execution unit”). Processor core 100 also includes load memory unit (LSU) 130 coupled to a memory hierarchy (not shown) including one or more levels of cache (e.g., L1 cache, L2 cache, etc.), system memory such as system RAM, and one or more mass storage devices such as solid-state drives (SSDs) or optical drives.
[0013] Instruction cache 110 stores instruction set data fetched by the fetch unit (not shown) of front-end 115 in response to a command fetch operation (e.g., fetching the next instruction in the instruction stream identified by the program counter) or in response to a speculative prefetch operation. Front-end 115 decodes the instructions fetched by the fetch unit into one or more operations to be performed / executed by floating-point unit 120 or fixed-point unit 125. Operations involving floating-point calculations are dispatched to floating-point unit 120 for execution, while operations involving fixed-point calculations are dispatched to fixed-point unit 125.
[0014] As used herein, instruction type refers to the size of the operands manipulated by the instruction. Therefore, different types of instructions manipulate operands of different sizes. For example, in some embodiments, the floating-point unit 120 performs the decoding operation from instructions that manipulate 128-bit operands (referred to as 128-bit instructions) and also performs the decoding operation from instructions that manipulate 256-bit operands (referred to as 256-bit instructions). Furthermore, the floating-point unit 120 utilizes the bit-width reconfiguration technique described herein to perform the decoding operation from instructions that manipulate 512-bit operands (referred to as 512-bit instructions).
[0015] In some implementations, the floating-point unit (FPU) 120 includes a mapping unit 135, a scheduler unit 140, a floating-point register file (SC-FPRF) 145 configured with a shadow latch, and one or more execution (EX) units 150. In some implementations, the FPU 120 performs operations on floating-point numbers and performs operations including addition, subtraction, multiplication, division, square root, and bit shifting or broadcasting, as well as transcendental functions such as exponential functions, trigonometric functions, etc. In various implementations, the FPU 120 supports operations from various graphics processing units (GPUs) and central processing units (CPUs). For example, if the CPU encounters an instruction that requires performing a floating-point operation, the CPU transmits a request to the FPU 120, the FPU 120 performs the operation, and returns the result to the CPU. Although... Figure 1 The FPU 120 shown is implemented inside the processor core 100, but in other implementations, the FPU 120 is implemented outside the GPU and CPU.
[0016] The SC-FPRF 145 utilizes an additional shadow latch 147 and shadow select MUX 148 to store instructions, operands used by the instructions, and the results of instruction execution. Entries in the SC-FPRF 145 are indicated by physical register numbers. In some implementations, physical register numbers are mapped (or renamed) to architecture register numbers defined by the instruction set architecture using mapping unit 135. Typically, queue entries maintained by scheduler unit 140 include fields for storing operation payloads or operation identifiers (e.g., operation opcodes), fields for the address or other identifier of the physical register containing one or more source operands of the operation, fields for storing any immediate or shift values to be used with the operation, a destination field identifying the physical register where the execution result of the corresponding operation will be stored, and at least one field for storing instruction dependency information. For example, a load instruction includes address information indicating the destination of the load instruction and architecture register operands indicating the PRN receiving data from the destination address in the SC-FPRF 145.
[0017] In addition to operating on instructions that operate with a first-bit width (256-bit width), FPU 120 also operates on instructions that operate with a second-bit width including a relatively large number of bits (e.g., 512-bit instructions). That is, in some implementations, even if the FPU 120's data path is restricted to 256-bit instructions, FPU 120 can utilize SC-FPRF 145 to reconfigure the 256-bit data path for operating on 512-bit instructions by extending the instruction operation or transaction from a single clock cycle to two clock cycles (e.g., a first clock cycle and a second clock cycle). Therefore, in some implementations, when SC-FPRF 145 is a 512-bit register file (i.e., storing the lower 256 bits in regular latch 146 and the higher 256 bits in shadow latch 147), access to 512 bits occurs over two 256-bit cycles instead of one 512-bit cycle.
[0018] In some implementations, for example, during a read operation, when execution unit 150 reads data from SC-FPRF 145, the lower 256 bits are read from regular latch 146 in the first cycle of the transaction and the higher 256 bits are read from shadow latch 147 in the second cycle of the transaction. Using the read address provided to shadow selection MUX 148, shadow selection MUX 148 utilizes a read function to select which shadow latch in shadow latch 147 to read during the second cycle of the read operation. In some implementations, to perform a read operation, a read function is added to SC-FPRF 145 to determine whether to read shadow data stored in a shadow latch or normal data stored in a regular latch. Therefore, the read function allows execution unit 150 to use shadow selection MUX 148 to select the data to read.
[0019] Similarly, during a write operation, when the scheduling unit 140 or the execution unit 150 performs a write operation on the SC-FPRF 145, the lower 256 bits are written to the regular latch 146 during the first cycle of the transaction and the higher 256 bits are written to the shadow latch 147 during the second cycle of the transaction. During the write operation, no additional write logic is required compared to a traditional register file because the additional 256 bits being written are not written as a separate entry; that is, the additional 256 bits are a segment of shadow data associated with a regular latch in the same entry.
[0020] In some implementations, at the input of the interface to SC-FPRF 145, write control signals and read control signals are provided from SC-FPRF controller 127, specifying whether a read or write operation will occur during the second cycle. During a write operation, if the write control signal provided from SC-FPRF controller 127 (e.g., the Is512 write control input signal) is set to a high logic value at the start of the transaction, a clock for shadow writing is activated during the second cycle. That is, the Is512 write control input signal causes the shadow write clock to trigger in the second cycle of the two cycles. For a read operation, when the read control signal provided from SC-FPRF controller 127 (e.g., the Is512 read control input signal) is set to a high logic value at the start of the transaction, the shadow selection MUX 148 selects the shadow latch to be read during the second cycle based on the read address provided to the shadow selection MUX 148. That is, the Is512 read control input signal causes the shadow selection MUX 148 to select the shadow latch 147 corresponding to the requested address for reading in the second cycle. In other words, during the second cycle of a transaction, data from the shadow latch 147 is selected by the shadow selector MUX 148. As a result of using SC-FPRF 145, in various implementations, the read decoder and write decoder are not clocked during the second cycle, thereby keeping the decoded value stable and saving power while instructions are executed in the processor core 100.
[0021] In some implementations, because the control signal for the shadow selection MUX 148 arrives earlier (i.e., within the first cycle of a transaction), the signal provided to the shadow selection MUX (i.e., the shadow selection MUX signal) by, for example, a trigger, hides the timing associated with adding another shadow selection MUX 148, thereby essentially eliminating the effect of having to switch another shadow selection MUX 148 that has been added to the register file.
[0022] In some implementations, the activation of FPU 120 for 512-bit or 256-bit operations depends on the configuration of SC-FPRF controller 127. When the micro-operation to be executed is a 512-bit instruction, SC-FPRF controller 127 enables FPU 120 for 512-bit operations. When the micro-operation to be executed is a 256-bit instruction, SC-FPRF controller 127 enables FPU 120 for 512-bit operations. That is, in order for FPU 120 to determine whether a 512-bit or 256-bit operation will occur, SC-FPRF controller 127 activates FPU 120 as a 512-bit operator or a 256-bit operator. When FPU 120 is not enabled for 512-bit read or write operations, 256-bit read or write operations are activated and performed in a single cycle. When the FPU 120 is enabled to perform a 512-bit read or write operation, the 512-bit read or write operation is activated and takes two clock cycles to perform a 512-bit operation on a given port.
[0023] In some implementations, since FPU 120 is a 256-bit wide FPU, where two 256-bit cycles are used to execute a 512-bit operation, the scheduler unit 140 in FPU 120 prevents a second micro-operation from being accepted during the second cycle, so that the first micro-operation can be completed during both the first and second cycles. That is, since FPU 120 takes two cycles to execute a 512-bit operation, the scheduler unit 140 in FPU 120 is flagged by the SC-FPRF controller 127 as having taken two cycles for a 512-bit micro-operation, and prevents another micro-operation or another transaction from starting during the second cycle.
[0024] Similarly, load memory unit 130 operates in both 512-bit and 256-bit modes. The SC-FPRF controller 127 marks load memory unit 130 as an FPU 120 performing a 512-bit micro-operation. Because load memory unit 130 utilizes an internal 256-bit data path to handle 512-bit loads and stores, the lower 256 bits of the 512-bit operation are executed during the first cycle, and the higher 256 bits are executed during the second cycle, thus matching the SC-FPRF 145 and the execution pipeline. Therefore, in some embodiments, both the load memory unit 130 interface and the FPU 120 interface are 256-bit wide.
[0025] In some implementations, executing 512-bit micro-operations in the FPU 120 allows 512-bit instructions to use a single entry in a fallback queue (not shown) and many other structures in the processor core 100, such as, for example, a load queue and a scheduler in the EX150. Using a single entry improves performance compared to, for example, splitting a 512-bit instruction into two 256-bit micro-operations with a split renaming. In some implementations, the floating-point register file scheme with shadow latch configuration described herein is extended to multiple latches and cycles (such as four latches and four cycles) to perform 512-bit operations using a 128-bit data path.
[0026] To implement 512-bit renaming and 512-bit micro-operations using the SC-FPRF 145 with a 256-bit data path, in addition to the regular latches typically used to store data in the register file, an additional set of shadow latches is added to each entry in the register file (see reference). Figure 2 (Detailed description). Additionally, a second write clock is added to the floating-point unit 120 to allow writing to the shadow latch.
[0027] Scheduler unit 140 schedules instructions for execution in FPU 120. Furthermore, because SC-FPRF 145 uses two cycles to perform a single-cycle operation, scheduler unit 140 is adapted to accommodate additional cycles required to perform a two-cycle operation. Therefore, scheduler unit 140 in floating-point unit 120 blocks or delays accepting another micro-operation in the additional cycle until the two-cycle operation has been completed. That is, in one embodiment, scheduler unit 140 understands that a 512-bit micro-operation takes two cycles and blocks taking another micro-operation or another transaction in the second cycle. In some embodiments, floating-point unit 120 also requires the scheduler (scheduler unit 140) to identify that a 512-bit micro-operation takes two cycles in the register file and execution pipeline.
[0028] Load memory unit 130 performs load and store operations over two cycles instead of a single cycle to accommodate additional cycles added for shadow latch operations. Thus, for example, for a 512-bit operation, load memory unit 130 performs a 512-bit load and store using a 256-bit data path over two cycles instead of a single cycle.
[0029] In various implementations, while the FPU 120 performs all its operations using a 256-bit data path, the decoder (not shown) uses a 512-bit data path instead of 256 bits to decode the 512-bit operations. In other words, the decoder is unaware that the FPU 120 is operating using a 256-bit data path, but performs the operation as a decoder would normally do for 512-bit operations.
[0030] In some implementations, the shadow select multiplexer signal is output from a local trigger because it occurs alongside the first cycle transaction. In some implementations, outputting the shadow select multiplexer signal from a local trigger allows the processor to be faster than reading the decoder, and timing is hidden through additional or separate shadow select multiplexers.
[0031] Although the following description relates to a floating-point register file 145 configured with a shadow latch implemented in floating-point unit 120, it applies to any type of register file or register file configured with a shadow latch, for example, for fixed-point unit 125 or entirely different types of processing units, such as digital signal processors, graphics processors, application-specific integrated circuits (ASICs), etc. The SC-FPRF 145 includes a function latch, a shadow latch, and a shadow select multiplexer that allows data to be read into and written to the function latch and the shadow latch (see below for reference). Figure 2 (Further discussion).
[0032] Figure 2 This is based on the use of shadow latches for bit width reconfiguration in some implementation schemes. Figure 1 The bit cell layout of the SC-FPRF 145 is described below. The SC-FPRF 145 includes a shadow latch 147, a shadow select MUX 148, a function or general latch 146, a read logic unit (read logic) 265, and a write logic unit (write logic) 270. In the illustrated example, the shadow latch 147 includes multiple shadow latches, the shadow select MUX 148 includes multiple shadow select multiplexers, the general latch 146 includes multiple general latches, the read logic unit 265 includes multiple read logic units, and the write logic unit 270 includes multiple write logic units. In some implementations, each shadow latch 147 and general latch 146 performs a latching operation to store data to be written to and read from the SC-FPRF 145 during a bit width reconfiguration operation. Each shadow select MUX 148 is used to select data to be read from the SC-FPRF 145 during a bit width reconfiguration operation. In some implementations, the read logic unit 265 and the write logic unit 270 include logic for performing read and write operations known in the art.
[0033] like Figure 2As described, for a bit-width reconfiguration of a 512-bit operation, the FPU 120 (with a 256-bit data path) stores the first 256 bits in a regular latch 146 and the last 256 bits in a shadow latch 147 over two clock cycles. That is, during a write operation, in the first cycle, the regular latch 146 stores the lower 256 bits associated with the 512-bit operation. In the second cycle, the shadow latch 147 stores the higher 256 bits of the 512-bit operation. During a read operation, in the first cycle, data is read from the regular latch 146. In the second cycle, the shadow latch 147, which has been selected by the shadow selector MUX 148, is read from the EX 150 and provided to the EX 150 (as described). Figure 1 and 3 (As shown).
[0034] Figure 3 It is based on the use of some implementation schemes Figure 1 The processor core employs a shadow latching method 300. At block 310, the processor core 100 initiates an instruction set with data operations (e.g., read or write operations) to the floating-point unit 120. At block 330, the floating-point unit 120 operates on the instruction set configured with a second bit width. At block 340, based on a bit-width operation evaluation of the instruction set, the floating-point unit 120 performs bit-width reconfiguration using SC-FPRF 145. For example, in some embodiments, the bit-width operation evaluation of the instruction set includes determining whether the instruction set bit-width is a 512-bit or 256-bit operation, and determining whether the data operation to be performed by the floating-point unit 120 is a read operation, a write operation, or both. In some embodiments, determining whether the instruction set bit-width is 512 bits or 256 bits specifies whether the floating-point unit 120 will perform bit-width reconfiguration during floating-point operations or only perform floating-point operations with the specified 256 bits (the bit width of the data path of the floating-point unit 120). In some implementations, determining whether a data operation to be performed by the floating-point unit 120 is a read operation or a write operation will activate a write control signal or a read control signal, which specifies the timing of accessing the shadow latch and the shadow latch to be accessed using the shadow selection MUX 148 for read and write operations in the floating-point unit 120.
[0035] Figure 4 It is based on some implementation plans. Figure 1A block diagram of the SC-FPRF 145 of the processor core 100. The SC-FPRF 145 includes a write MUX 470, a regular latch 446, a shadow latch 447, and a shadow select MUX 448. In various implementations, two latches (e.g., regular latch 446 and shadow latch 447) share a single write MUX 470, but utilize different write clocks (e.g., write clock signal 410 and shadow write clock signal 420) during the write process.
[0036] During a write operation, at the write port of the SC-FPRF 145, the write MUX 470 receives write data (e.g., 512 bits of data) to be written to the regular latch 446 and the shadow latch 447. Based on the write MUX signal 440, when the write clock signal 410 is high, the write MUX 470 directs write data 491 to the regular latch 446. When the shadow write clock signal 420 is high, the write MUX 470 directs write data 492 to the shadow latch 447. The regular latch 446 and the shadow latch 447 store the received write data 491 and write data 492, respectively. During a read operation, the regular latch 446 and the shadow latch 447 release latch data 461 and shadow latch data 471 based on, for example, the logic value of the shadow select MUX signal 430, which controls the shadow select MUX 448. In some implementations, when, for example, the logic value of the shadow select MUX signal 430 is low, latch data 461 is read from latch 446 as read data 499. When the shadow select MUX signal 430 is high, shadow latch data 471 is read from shadow latch 447 as read data 499. Read data 499 is then provided to execution unit 150 as the output of SC-FPRF 145 via the read port MUX.
[0037] Figure 5 It is based on the utilization of some implementation schemes Figure 4 Timing diagram 500 for read and write operations of the SC-FPRF 145. Timing diagram 500 depicts clock signal 510, shadow select MUX signal 430, read data 499, write clock signal 410, latch data 461, shadow write clock signal 420, and shadow latch data 471. In the illustrated embodiment, timing diagram 500 shows four clock cycles; however, a different number of clock cycles is utilized in alternative embodiments.
[0038] For a write operation, during the first clock cycle, the write clock signal 410 and the shadow write clock signal 420 are low, and no data is written to the regular latch 446 or the shadow latch 447. At the end of the first clock cycle, the write clock signal 410 transitions from low to high, and therefore, write data 491 is written to the regular latch 446. The shadow write clock signal 420 remains low during the transition, and no data is written to the shadow latch 447 during the second cycle. At the end of the second clock cycle, the write clock signal 410, which transitioned low in the middle of the second clock cycle, remains low, and no data is written to the regular latch 446 during the third cycle. At the end of the second clock cycle, the shadow write clock signal 420 transitions from low to high, and write data 492 is written to the shadow latch 447. At the end of the third clock cycle, the write clock signal 410 and the shadow write clock signal 420 remain low, and no data is written to the regular latch 446 and the shadow latch 447 respectively during the fourth clock cycle. For read operations, during the first clock cycle, the shadow select MUX signal 430 is low, and no data is read from the shadow latch 447; instead, latch data 461 is read from the regular latch 446. At the end of the first cycle, when the shadow select MUX signal 430 transitions from low to high, shadow latch data 471 is read from the shadow latch 447. Latch data 461 and shadow latch data 471 are combined to... Figure 1 The desired bit width configuration is provided at the output of the SC-FPRF 145.
[0039] Computer-readable storage media may include any non-transitory storage medium or a combination of non-transitory storage media that can be accessed by a computer system during use to provide instructions and / or data to the computer system. Such storage media include, but are not limited to, optical media (e.g., compact discs (CDs), digital versatile discs (DVDs), Blu-ray discs), magnetic media (e.g., floppy disks, magnetic tapes, or magnetic hard disks), volatile memory (e.g., random access memory (RAM) or cache), non-volatile memory (e.g., read-only memory (ROM) or flash memory), or microelectromechanical systems (MEMS) based storage media. Computer-readable storage media may be embedded in a computing system (e.g., system RAM or ROM), fixedly attached to a computing system (e.g., magnetic hard disks), removably attached to a computing system (e.g., optical discs or USB-based flash memory), or coupled to a computer system via a wired or wireless network (e.g., network accessible storage devices (NAS)).
[0040] In some implementations, certain aspects of the techniques described above may be implemented by one or more processors of a processing system executing software. The software includes one or more sets of executable instructions stored or otherwise tangibly embodied on a non-transitory computer-readable storage medium. The software may include instructions and certain data that, when executed by one or more processors, manipulate the one or more processors to perform one or more aspects of the techniques described above. The non-transitory computer-readable storage medium may include, for example, disk or optical disk storage devices, solid-state storage devices such as flash memory, cache, random access memory (RAM), or one or more other non-volatile memory devices. The executable instructions stored on the non-transitory computer-readable storage medium may be in the form of source code, assembly language code, object code, or other instruction formats that are interpreted or otherwise executable by one or more processors.
[0041] It should be noted that not all activities or elements described above in the general description are required; a particular activity or part of the apparatus may not be required, and one or more other activities may be performed, or elements other than those described may be included. Furthermore, the listed order of activities is not necessarily the order in which the activities are performed. Additionally, the concepts have been described with reference to specific embodiments. However, those skilled in the art will understand that various modifications and changes may be made without departing from the scope of this disclosure as set forth in the following claims. Therefore, this specification and drawings should be viewed in an illustrative rather than restrictive sense, and all such modifications are intended to be included within the scope of this disclosure.
[0042] The benefits, other advantages, and solutions to problems have been described above with reference to specific embodiments. However, the benefits, advantages, solutions to problems, and any features that may cause any benefit, advantage, or solution to appear or become more prominent should not be construed as key, essential, or necessary features of any or all claims. Furthermore, the specific embodiments disclosed above are merely illustrative, as the disclosed subject matter can be modified and practiced in ways that will be apparent to those skilled in the art to benefit from the teachings herein. No limitation is intended to be made to the details of the construction or design shown herein, except as set forth in the following claims. Therefore, it is apparent that changes or modifications may be made to the specific embodiments disclosed above, and all such changes are considered to be within the scope of the disclosed subject matter. Therefore, the protection sought herein is set forth in the following claims.
Claims
1. A processor comprising: The front end has an instruction set and operates with a first-bit width; as well as A floating-point unit, coupled to receive the instruction set, operates with a second bit width, wherein the floating-point unit includes a register file configured with shadow latches, the register file including a plurality of regular latches and a plurality of shadow latches, wherein, as part of a bit-width reconfiguration, a first regular latch is used to store a first portion of an operand, while a corresponding first shadow latch is used to store a second portion of the operand, wherein the first regular latch and the first shadow latch share an address and a shadow select multiplexer, and wherein, during a read operation, the shadow select multiplexer is configured to read from the first regular latch during a first clock cycle based on a first value of the shadow select multiplexer input signal, and is configured to read from the first shadow latch during a second clock cycle based on a second value of the shadow select multiplexer input signal.
2. The processor as claimed in claim 1, wherein: The bit-width reconfiguration enables the floating-point unit operating with the second bit-width to operate on the instruction set received with the first bit-width.
3. The processor as claimed in claim 1, wherein: At least one of the plurality of conventional latches stores a plurality of lower bits of the first bit-width operation, and at least one of the plurality of shadow latches stores a plurality of higher bits associated with the first bit-width operation.
4. The processor as claimed in claim 1, wherein: The register file configured for the shadow latches includes multiple shadow select multiplexers (MUXs) coupled to the plurality of shadow latches, the plurality of shadow select multiplexers including the shadow select multiplexer.
5. The processor as claimed in claim 1, wherein: During the read operation, at least one of the multiple shadow selection MUXs is used to select between the first shadow latch and the first regular latch for reading from.
6. The processor of claim 1, wherein: During a write operation, at least one of the plurality of shadow latches is activated using a write control signal during the third clock cycle of a plurality of clock cycles.
7. The processor of claim 1, wherein: During the read operation, the first conventional latch is activated by the shadow select multiplexer input signal during the first clock cycle, and the first shadow latch is activated by the shadow select multiplexer input signal during the second clock cycle.
8. The processor of claim 1, wherein: The shadow latch is located in a single entry in the register file configured for the shadow latch.
9. A method comprising: Receive instruction sets that operate with the first bit width; Operate floating-point units with the second bit width; as well as A register file is employed that includes multiple regular latches and multiple shadow latches configured with shadow latches. The bit-width reconfiguration includes a first regular latch storing a first portion of an operand and a corresponding first shadow latch storing a second portion of the operand. The first regular latch and the first shadow latch share an address and a shadow select multiplexer. During a read operation, a read is performed from the first regular latch during a first clock cycle based on a first value in the input signal of the shadow select multiplexer, and a read is performed from the first shadow latch during a second clock cycle based on a second value in the input signal of the shadow select multiplexer.
10. The method of claim 9, wherein: The bit-width reconfiguration enables the floating-point unit operating with the second bit-width to operate on the instruction set received with the first bit-width.
11. The method of claim 9, wherein: The register file configured for the shadow latches includes multiple shadow select multiplexers (MUXs) coupled to the plurality of shadow latches, the plurality of shadow select multiplexers including the shadow select multiplexer.
12. The method of claim 11, wherein: During the read operation, at least one of the plurality of shadow selection MUXs is used to select at least one of the plurality of shadow latches for reading; as well as During a write operation, the write operation to at least one of the plurality of shadow latches is activated using a write control signal during the second clock cycle of a plurality of clock cycles.
Citation Information
Patent Citations
Differential pipline delays in a coprocessor
US20190179643A1