×

Mapping between registers used by multiple instruction sets

  • US 9,092,215 B2
  • Filed: 02/22/2011
  • Issued: 07/28/2015
  • Est. Priority Date: 03/15/2010
  • Status: Active Grant
First Claim
Patent Images

1. Apparatus for processing data comprising:

  • a plurality of registers configured to store data values to be processed;

    processing circuitry coupled to said plurality of registers and configured to perform data processing operations upon data values stored in said plurality of registers;

    an instruction decoder coupled to said processing circuitry and responsive to a stream of program instructions to control said processing circuitry to perform said data processing operations;

    whereinsaid instruction decoder is responsive to program instructions of a first instruction set to control said processing circuitry to perform said data processing operations using N-bit architectural registers provided by said plurality of registers, where N is a positive integer value;

    said instruction decoder is responsive to program instructions of a second instruction set to control said processing circuitry to perform said data processing operations using M-bit architectural registers provided by said plurality of registers, where M is a positive integer value different from N and at least some of said plurality of registers are shared by program instructions of said first instruction set and program instructions of said second instruction set;

    said instruction decoder is configured to decode a register specifying field within a program instruction of said first instruction set when determining which of said plurality of registers to access as part of a first set of N-bit architectural registers presented for use by program instructions of said first instruction set;

    said instruction decoder is configured to decode a register specifying field within a program instruction of said second instruction set when determining which of said plurality of registers to access as part of a second set of M-bit architectural registers presented for use by program instructions of said second instruction set; and

    said instruction decoder is configured to provide a first mapping between values of said register specifying field within program instructions of said first instruction set and said plurality of registers and a second mapping between values of said register specifying field within program instructions of said second instruction set and said plurality of registers, said first mapping is different from said second mapping and said first mapping and said second mapping are configured so each register of said first set has a predetermined one-to-one mapping to a register of said second set, shares with said register of said second set a shared part of a common register within said plurality of registers, an unshared part of said common register being unaccessible using instructions of said first instruction set, and stores a value that is accessible using a register of said second set, wherein said apparatus when executing program instructions of said first instruction set is configured to operate in a plurality of exception states and said instruction decoder is configured to decode said register specifying field within a program instruction of said first instruction set together with a current exception state of said plurality of exception states when determining which of said plurality of registers to access and a group of registers within said first set corresponding to a common value of said register specifying field within said program instruction of said first instruction set and different exception states are a banked group of registers,wherein within said banked group of registers a value of a least significant bit of said register specifying field within said program instruction of said first instruction set is common with a value of a least significant bit of said register specifying field within said program instruction of said second instruction set,wherein said instruction decoder is configured to provide said first mapping and said second mapping wherein, for a portion of said registers of said second set corresponding to a sequence of incrementing values of said register specifying field within said program instruction of said second instruction set, corresponding values of said register specifying field within said program instruction of said first instruction set alternate between two values.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×