发明名称 Load multiple and store multiple instructions in a microprocessor that emulates banked registers
摘要 A microprocessor supports an instruction set architecture that specifies: processor modes, architectural registers associated with each mode, and a load multiple instruction that instructs the microprocessor to load data from memory into specified ones of the registers. Direct storage holds data associated with a first portion of the registers and is coupled to an execution unit to provide the data thereto. Indirect storage holds data associated with a second portion of the registers and cannot directly provide the data to the execution unit. Which architectural registers are in the first and second portions varies dynamically based upon the current processor mode. If a specified register is currently in the first portion, the microprocessor loads data from memory into the direct storage, whereas if in the second portion, the microprocessor loads data from memory into the direct storage and then stores the data from the direct storage to the indirect storage.
申请公布号 US9176733(B2) 申请公布日期 2015.11.03
申请号 US201213413314 申请日期 2012.03.06
申请人 VIA TECHNOLOGIES, INC. 发明人 Henry G. Glenn;Parks Terry;Hooker Rodney E.
分类号 G06F9/30;G06F9/22;G06F12/08 主分类号 G06F9/30
代理机构 代理人 Davis E. Alan;Huffman James W.;Cernyar Eric W.
主权项 1. A microprocessor that supports the Advanced RISC Machines (ARM) instruction set architecture (ISA), which specifies a plurality of processor modes, including a User mode, an FIQ exception mode, and a plurality of non-FIQ exception modes, and which specifies architectural registers associated with each of the plurality of processor modes and which specifies a load multiple instruction that instructs the microprocessor to load data from memory into one or more of the architectural registers specified by the load multiple instruction, the microprocessor comprising: direct storage, that holds data associated with a first portion of the architectural registers and that is coupled to at least one execution unit of the microprocessor to provide the data to the execution unit; indirect storage, that holds data associated with a second portion of the architectural registers, wherein the indirect storage is incapable of directly providing the data associated with the second portion of the architectural registers to the at least one execution unit; wherein the indirect storage is a private random access memory (PRAM) not within the instruction set architecture system memory space; wherein which of the architectural registers are in the first and second portions varies dynamically based upon a current processor mode of the plurality of processor modes; wherein for each of the architectural registers specified by the load multiple instruction: when the architectural register is currently in the first portion, the microprocessor loads data from memory into the direct storage; andwhen the architectural register is currently in the second portion, the microprocessor loads data from memory into the direct storage and then stores the data from the direct storage to the indirect storage; wherein when the current processor mode is the ARM ISA User mode then the direct storage holds data associated with the User mode architectural registers, and the indirect storage holds data associated with the R13-R14 architectural registers of the ARM ISA exception modes and the R8-R12 architectural registers of the ARM ISA FIQ exception mode; wherein when the current processor mode is the ARM ISA FIQ exception mode then the direct storage holds data associated with the FIQ exception mode architectural registers, and the indirect storage holds data associated with the R13-R14 architectural registers of the ARM ISA User mode and non-FIQ exception modes and the R8-R12 architectural registers of the ARM ISA processor mode previous to the current processor mode; and wherein when the current processor mode is an ARM ISA non-FIQ exception mode then the direct storage holds data associated with the non-FIQ exception mode architectural registers, and the indirect storage holds data associated with the R13-R14 architectural registers of the ARM ISA User mode and exception modes other than the current non-FIQ exception modes and also holds the R8-R12 architectural registers of the ARM ISA FIQ exception mode.
地址 New Taipei TW