EP1631903B1

Address offset generation within a data processing system

Abstract

This record has no abstract on file.

EP1631903B1, drawing sheet 1
Sheet 1 of 5

Term

Term ended

Expired 30 December 2023, 2.7 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

26 claims: 18 independent, 8 dependent

  1. 1
    Apparatus (2) for processing data, said apparatus comprising:an instruction decoder (14) responsive to program instructions to control data processing operations;and an address offset generating circuit (4, 6, 8, 10) controlled by said instruction decoder and operable to generate an N-bit address offset having a value specified by an address offset generating instruction including an offset value sign specifying bit S;characterised in that : said N-bit address offset has bit values B i when expressed as a two's complement number, where (N-1)≥i≥Z and (N-1)>Z≥0, said address offset generating instruction includes L offset-extending bits P k , where (N-Z)>L≥1 and L>k≥0, and said address offset generating circuit is operable such that: (i) if all of said offset-extending bits P k have respective predetermined values D k that are legacy values, then bits B j of said N-bit address offset are given by B j = S for all values ofj such that (N-1)≥j≥(N-L-1);and (ii) if any of said offset-extending bits P k does not have said predetermined value D k , then bits B j of said N-bit address offset, where (N-1)≥j≥(N-L-1), are given by a predetermined one-to-one mapping from combinations of values of said offset-extending bits P k and said offset value sign specifying bit S to combinations of values of B j other than the combination B j = 1 for all values ofj such that (N-1)≥j≥(N-L-1) and the combination B j = 0 for all values ofj such that (N-1)≥j≥(N-L-1).
  2. 3
    Apparatus as claimed in any one of claims 1 and 2, wherein said address offset generating circuit is operable to generate bit B j values of said N-bit address offset each bit value B j having a value given by a respective predetermined one of:B j = S for one directly sign bit specified value of j;B j = S XOR P k(j) XOR D k(j) where k(j) is a one-to-one index mapping from values of j, excluding said directly sign bit specified value of j, to values of k.
  3. 5
    Apparatus as claimed in any one of the preceding claims, wherein said address offset generating instruction is a branch instruction and said N-bit address offset is an N-bit branch target address offset.
  4. 7
    Apparatus as claimed in any one of the preceding claims, wherein said N-bit address offset is further sign extended by said address offset generating instruction prior to use.
  5. 8
    Apparatus as claimed in any one of the preceding claims, wherein L = 2.
  6. 9
    Apparatus as claimed in any one of the preceding claims, wherein N = 25.
  7. 10
    Apparatus as claimed in any one of the preceding claims, wherein Z is one of 1 and 2.
  8. 11
    Apparatus as claimed in any one of the preceding claims, wherein bit values B N-2-L to B Z are directly specified in said address offset generating instruction.
  9. 12
    A method of processing data, said method comprising the steps of:controlling data processing operations using an instruction decoder (14) responsive to program instructions;and generating an N-bit address offset having a value specified by an address offset generating instruction including an offset value sign specifying bit S using an address offset generating circuit (4, 6, 8, 10) controlled by said instruction decoder;characterised in that : said N-bit address offset has bit values B i when expressed as a two's complement number, where (N-1)≥i≥Z and (N-1)>Z≥0, said address offset generating instruction includes L offset-extending bits P k , where (N-Z)>L≥1 and L>k≥0, and said address offset generating circuit is operable such that: (i) if all of said offset-extending bits P k have respective predetermined values D k that are legacy values, then bits B j of said N-bit address offset are given by B j = S for all values ofj such that (N-1)≥j≥(N-L-1);and (ii) if any of said offset-extending bits P k does not have said predetermined value D k , then bits B j of said N-bit address offset, where (N-1)≥j≥(N-L-1), are given by a predetermined one-to-one mapping from combinations of values of said offset-extending bits P k and said offset value sign specifying bit S to combinations of values of B j other than the combination B j = 1 for all values of j such that (N-1)≥j≥(N-L-1) and the combination B j = 0 for all values ofj such that (N-1)≥j≥(N-L-1).
  10. 14
    A method as claimed in any one of claims 12 and 13, wherein said address offset generating circuit is operable to generate bit B j values of said N-bit address offset each bit value B j having a value given by a respective predetermined one of:B j = S for one directly sign bit specified value of j;B j = S XOR P k(j) XOR D k(j) where k(j) is a one-to-one index mapping from values of j, excluding said directly sign bit specified value of j, to values of k.
  11. 16
    A method as claimed in any one of claims 12 to 15, wherein said address offset generating instruction is a branch instruction and said N-bit address offset is an N-bit branch target address offset.
  12. 18
    A method as claimed in any one of claims 12 to 17, wherein said N-bit address offset is further sign extended by said address offset generating instruction prior to use.
  13. 19
    A method as claimed in any one of claims 12 to 18, wherein L = 2.
  14. 20
    A method as claimed in any one of claims 12 to 19, wherein N = 25.
  15. 21
    A method as claimed in any one of claims 12 to 20, wherein Z is one of I and 2.
  16. 22
    A method as claimed in any one of claims 12 to 21, wherein bit values B N-2-L to B z are directly specified in said address offset generating instruction.
  17. 23
    A computer program product including a computer program for controlling a computer to perform the steps of:controlling data processing operations using an instruction decoder (14) responsive to program instructions;and generating an N-bit address offset having a value specified by an address offset generating instruction including an offset value sign specifying bit S using an address offset generating circuit (4, 6, 8, 10) controlled by said instruction decoder;characterised in that : said N-bit address offset has bit values B i when expressed as a two's complement number, where (N-1)≥i≥Z and (N-1)>Z≥0, said address offset generating instruction includes L offset-extending bits P k , where (N-Z)>L≥1 and L>k≥0, and said address offset generating circuit is operable such that: (i) if all of said offset-extending bits P k have respective predetermined values D k that are legacy values, then bits B j of said N-bit address offset are given by B j = S for all values ofj such that (N-1)≥j≥(N-L-1);and (ii) if any of said offset-extending bits P k does not have said predetermined value D k , then bits B j of said N-bit address offset, where (N-1)≥j≥(N-L-1), are given by a predetermined one-to-one mapping from combinations of values of said offset-extending lbits P k and said offset value sign specifying bit S to combinations of values of B j other than the combination B j = 1 for all values of j such that (N-1)≥j≥(N-L-1) and the combination B j = 0 for all values of j such that (N-1)≥j≥(N-L-1).
  18. 25
    A computer program product as claimed in any one of claims 23 and 24, wherein said address offset generating circuit is operable to generate bit B j values of said N-bit address offset each bit value B j having a value given by a respective predetermined one of:B j = S for one directly sign bit specified value of j;B j = S XOR P k(j) XOR D k(j) where k(j) is a one-to-one index mapping from values ofj, excluding said directly sign bit specified value ofj, to values of k.
Independent claims18