EP3754484A2

Generating encoding software and decoding means

Abstract

Methods of encoding and decoding are described which use a variable number of instruction words to encode instructions from an instruction set, such that different instructions within the instruction set may be encoded using different numbers of instruction words. To encode an instruction, the bits within the instruction are re-ordered and formed into instruction words based upon their variance as determined using empirical or simulation data. The bits in the instruction words are compared to corresponding predicted values and some or all of the instruction words that match the predicted values are omitted from the encoded instruction.

EP3754484A2, drawing sheet 1
Sheet 1 of 13

Term

11.2 yearsto projected expiry

Projected expiry 21 November 2037, counted from filing; an application has no term until it is granted.

  1. Priority and filed
  2. Published
  3. Today
  4. Projected expiry

15 claims: 9 independent, 6 dependent

  1. 1
    A method comprising:receiving, at an input, mapping data (1002) for an instruction set and instruction data describing instructions in an instruction set in canonical form (1004);parsing the mapping data and instruction data using a grammar library;generating, in a code and data generation engine, both encoding software (1008) and decoding means based on the parsed mapping data and instruction data, wherein the decoding means comprises a hardware description of a decoder (1006) and/or decoding software (1010);and outputting the encoding software and the decoding means.
  2. 3
    The method according to any of the preceding claims, wherein the decoding means comprises the hardware description of a decoder.
  3. 4
    The method according to any of the preceding claims, wherein the instruction data is received in machine readable form.
  4. 5
    The method according to any of the preceding claims, further comprising:receiving usage data (1032) relating to the instructions generated using the encoding software;analyzing the usage data;and updating the mapping data based on the analysis of the usage data.
  5. 7
    The method according to any of the preceding claims, wherein the encoding software uses variable length instruction encoding.
  6. 8
    The method according to any of claims 1-6, wherein the encoding software encodes different instructions within an instruction set using different numbers of instruction words.
  7. 9
    The method according to any of claims 1-6 and 8, wherein the encoding software uses a method comprising:re-arranging bits within an instruction in canonical form;forming the re-arranged bits into a plurality of instruction words according to an encoding type, the plurality of instruction words comprising an ordered sequence of instruction words;and removing one or more instructions words from the sequence that only comprise bits that have values which match predicted values.
  8. 12
    The method according to any of claims 9-11, wherein outputting the encoding software and the decoding means comprises:outputting the predicted values.
  9. 15
    A device comprising:a processor (802);and a memory (808) arranged to store device-executable instructions configured, when executed by the processor, to cause the processor, in response to receiving mapping data (1002) for an instruction set and instruction data describing instructions in an instruction set in canonical form (1004), to: parse the mapping data and instruction data using a grammar library;generate both encoding software (1008) and a hardware description of a decoder based on the parsed mapping data and instruction data;and output the encoding software and the hardware description of a decoder.