WO2012169124A1 - 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 - Google Patents

配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 Download PDF

Info

Publication number
WO2012169124A1
WO2012169124A1 PCT/JP2012/003293 JP2012003293W WO2012169124A1 WO 2012169124 A1 WO2012169124 A1 WO 2012169124A1 JP 2012003293 W JP2012003293 W JP 2012003293W WO 2012169124 A1 WO2012169124 A1 WO 2012169124A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
bits
memory
compressed
bit
Prior art date
Application number
PCT/JP2012/003293
Other languages
English (en)
French (fr)
Inventor
晋也 松山
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2013519363A priority Critical patent/JP5895229B2/ja
Priority to CN201280028496.2A priority patent/CN103597454B/zh
Publication of WO2012169124A1 publication Critical patent/WO2012169124A1/ja
Priority to US14/091,122 priority patent/US9519599B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6058Saving memory space in the encoder or decoder

Definitions

  • the present invention relates to a memory access technology by a processor.
  • Patent Document 1 As a technique for reading compressed data corresponding to arbitrary uncompressed data desired by a processor from a memory such as a ROM in which a plurality of compressed data compressed based on each of a plurality of data is arranged, for example, the technique of Patent Document 1 It has been known.
  • Patent Document 1 reads out a variable-length compressed program code obtained by compressing a program code desired by a processor using an address conversion table.
  • each address value used when the processor reads each program code is associated with an address value indicating a position on the memory where each compressed program code corresponding to each program code is arranged. It is registered.
  • Patent Document 1 converts an address value for reading a desired program code acquired from a processor using this address conversion table, and calculates the corresponding value from the position on the memory indicated by the converted address value.
  • the compressed program code is read out.
  • an object of the present invention is to provide a technique for allowing compressed data corresponding to data desired by a processor to be read from a memory without using an address conversion table.
  • an arrangement determining apparatus determines a memory arrangement for compressed data of less than M N bits compressed based on M N-bit data constituting a data block.
  • An arrangement determination device for each of general compressed data whose data length is X bits (X ⁇ N) or less among M compressed data, the entire general compressed data and at least the data length of the general compressed data
  • the first data of L bits (X ⁇ L ⁇ N) or less comprising a flag indicating that is less than or equal to X bits is added to the address value in the data block of the N bit data that is the basis of the general compressed data.
  • the specific compressed data whose data length is greater than X bits.
  • the L-bit first data consisting of X bits of the specific compressed data and at least a flag indicating that the data length of the specific compressed data is larger than X bits is used as the base of the specific compressed data.
  • First decision means for deciding to arrange at a memory location indicated by a result value obtained by performing a first operation on the address value in the data block of the N-bit data that has become, for each of the specific compressed data, from the specific compressed data
  • Second determining means for determining to be arranged at a memory location indicated by a result value obtained by performing a different second operation, wherein the second operation includes M pieces of N-bit data.
  • the same result value is obtained even if the second calculation is performed on any address value in the same set for each set of K (K ⁇ M) as one set. And an operation in which a result value different from a result value generated by performing the second operation on each address value in any other set is generated.
  • the compressed data corresponding to the N-bit data desired by the processor is obtained from the memory in which each compressed data is arranged in the arrangement determined by the arrangement determining apparatus. Reading can be performed without using an address conversion table.
  • FIG. 3 is a block diagram showing a functional configuration of a main part of the arrangement determining apparatus 100 according to the first embodiment.
  • FIG. 3 is a block diagram showing a functional configuration of a main part of the access device 200 according to the first embodiment.
  • positioning to ROM10 of each compressed code The flowchart which shows the arrangement
  • Flowchart showing access processing of access device 200 The figure which shows the circuit structure of the control circuit 210a of the access apparatus which concerns on the modification 1.
  • the block diagram which shows the function structure of the principal part of the arrangement
  • FIG. 9 is a block diagram showing a functional configuration of main parts of an access device 220 according to the second embodiment.
  • positioning to ROM10 of each compressed code The flowchart which shows the arrangement
  • a flowchart showing access processing of the access device 220 The figure which shows the circuit structure of the control circuit 230a of the access apparatus which concerns on the modification 2.
  • FIG. FIG. 9 is a block diagram showing a functional configuration of main parts of an access device 240 according to Embodiment 3.
  • positioning to ROM10 of each compressed code The flowchart which shows the arrangement
  • positioning determination apparatus 140 Flowchart showing access processing of access device 240
  • the arrangement determining apparatus includes a ROM (Read Only) which is an embodiment of a memory according to the present invention, which is a compressed M program code compressed based on each of M N-bit uncompressed program codes. This is a device for determining the allocation to (Memory).
  • program code is also simply referred to as “code”.
  • This arrangement determining apparatus determines the arrangement of each compressed code based on a result value obtained by performing a predetermined operation on the address value of each non-compressed code in the non-compressed block composed of the M uncompressed codes.
  • the arrangement determining apparatus uses the Xa bit (Xa ⁇ N) of each compressed code based on the result value obtained by performing the first operation on the address value of each uncompressed code in the uncompressed block. Determine the placement of the minutes.
  • this arrangement determining apparatus is based on a result value obtained by performing the second operation on the address value of each compressed code (hereinafter also referred to as “specific compressed code”) whose data length in the uncompressed block is greater than Xa bits.
  • specific compressed code a result value obtained by performing the second operation on the address value of each compressed code whose data length in the uncompressed block is greater than Xa bits.
  • the arrangement of the part excluding the Xa bits from each specific compression code is determined. The contents of the first calculation and the second calculation will be described later.
  • the access device identifies and reads the location on the ROM where a compressed code (hereinafter also referred to as “target compressed code”) corresponding to the uncompressed code desired by the processor is arranged.
  • target compressed code a compressed code corresponding to the uncompressed code desired by the processor.
  • the apparatus decompresses the read target compressed code and sends it to the processor.
  • This access device also uses the first calculation and the second calculation to specify the position on the ROM where the target compression code is arranged, in the same manner as the arrangement determination device.
  • the arrangement of the compressed code is determined using a predetermined calculation (first calculation and second calculation) without using the address conversion table.
  • the position of the compressed code can be specified.
  • FIG. 1 is a block diagram illustrating a functional configuration of a main part of the arrangement determining apparatus 100 according to the first embodiment.
  • the arrangement determining apparatus 100 is connected to the storage device 20 and the writing device 30, and includes an access unit 101, a compression unit 102, and a control unit 110.
  • the arrangement determining apparatus 100 is a computer including a processor and a memory, and the functions of the compression unit 102 and the control unit 110 are realized by the processor executing a program stored in the memory.
  • the access unit 101 accesses the storage device 20 having the memory area 21 for M uncompressed codes and the memory area 22 for M compressed codes in accordance with an instruction from the control unit 110, and reads and compresses the uncompressed codes. It has a function of writing code.
  • the compression unit 102 has a function of performing compression processing on an N-bit (for example, 16 bits) non-compressed code read by the access unit 101 in accordance with an instruction from the control unit 110 and generating a compressed code of less than N bits.
  • the compression unit 102 sends the generated compressed code and information indicating the data length of the compressed code (hereinafter referred to as “data length information”) to the control unit 110.
  • the control unit 110 determines the arrangement of the compressed code received from the compression unit 102 in the ROM 10 in addition to the function of instructing each block in the arrangement determination apparatus 100, and the access unit so that the determined arrangement is obtained.
  • a function of storing each compressed code in the memory area 22 for the compressed code in the storage device 20 is provided.
  • the control unit 110 includes a first determination unit 111 and a second determination unit 112.
  • the first determination unit 111 sets the Xa bits (in this example, N / 2-1, that is, 7 bits) of the compressed code received from the compression unit 102 to the non-compressed data on which the compressed code is based. It has a function of determining to be arranged at a position on the ROM 10 indicated by a result value addr_a1 obtained by performing the first operation on the address value ADDR_a in the uncompressed block of the code.
  • the address value ADDR_a is assigned in units of N bits.
  • Equation 1 An example of the first calculation is shown in Equation 1.
  • M is the number of uncompressed codes and the number of compressed codes.
  • Round 1/2 (ADDR_a / 4) is a function that returns a result value obtained by rounding the result of dividing ADDR_a by 4 by 1/2 units.
  • the control unit 110 stores the compressed code memory in the storage device 20 via the access unit 101 so that each of the M compressed codes has the arrangement determined by the first determination unit 111 and the second determination unit 112. Store in area 22.
  • the control unit 110 for each compressed code, indicates 1 bit indicating whether or not the compressed code is larger than the Xa bit for Xa bits (N / 2-1 in the above example) of the compressed code. Is stored in the storage device 20 so as to have the arrangement determined by the first determination unit 111.
  • first data the data consisting of the Xa bit portion and the 1-bit flag in the compressed code
  • second data the data consisting of the Xa bit portion and the 1-bit flag in the compressed code
  • control unit 110 When the storage of all the M compressed codes in the compressed code memory area 22 is completed via the access unit 101, the control unit 110 writes data to the ROM 10 to the writing device 30 which is a so-called ROM writer. Instructions.
  • the writing device 30 Upon receiving this instruction, the writing device 30 writes the compressed code in the ROM 10 while maintaining the arrangement in the memory area 22 for the compressed code in the storage device 20.
  • FIG. 2 is a block diagram illustrating a functional configuration of a main part of the access device 200 according to the first embodiment.
  • each compressed code is stored in the ROM 10 in the arrangement determined by the arrangement determining apparatus 100.
  • the access device 200 includes an input unit 201, a reading unit 202, an extension unit 203, and a control unit 210.
  • the access device 200 is a computer including a processor (a processor different from the processor 40) and a memory, and each function of the decompression unit 203 and the control unit 210 is a program stored in the memory. It is realized by executing.
  • the input unit 201 has a function of receiving an address value ADDR_b for accessing a desired uncompressed code from the processor 40 and sending it to the control unit 210.
  • address value ADDR_b is assigned in units of N bits.
  • the reading unit 202 has a function of reading the first data and the second data from the ROM 10 according to an instruction from the control unit 210 and sending them to the control unit 210.
  • the decompression unit 203 has a function of decompressing the compressed code sent from the control unit 210 and sending the obtained uncompressed code to the processor 40.
  • control unit 210 In addition to the function of instructing each block in the access device 200, the control unit 210, based on the address value ADDR_b received from the input unit 201, the compressed code (target compression) corresponding to the uncompressed code desired by the processor 40 Is read from the ROM 10 via the reading unit 202 and sent to the decompression unit 203.
  • the compressed code target compression
  • the control unit 210 includes a first specifying unit 211, a second specifying unit 212, and an output unit 213.
  • the first specifying unit 211 indicates the position on the ROM 10 indicated by the result value addr_b1 obtained by performing the first operation on the address value ADDR_b received from the input unit 201, and includes first data including data corresponding to Xa bits in the target compressed code Has a function of specifying as a position where.
  • Formula 3 An example of the first calculation is shown in Formula 3, which is the same as the first calculation (see Formula 1) by the first determination unit 111 of the arrangement determining apparatus 100.
  • the second specifying unit 212 removes the position on the ROM 10 indicated by the result value addr_b2 obtained by performing the second operation on the address value ADDR_b received from the input unit 201 from the specific compressed code larger than the Xa bit by the Xa bit. 2 has a function of specifying as a position where data is arranged.
  • M is an uncompressed code and is also the number of compressed codes.
  • Round 1/2 (ADDR_b / 4) is a function that returns a result value obtained by rounding the result of dividing ADDR_b by 4 by 1/2 units.
  • the second specifying unit 212 also has a function of reading out the second data arranged at the specified position on the ROM 10 via the reading unit 202.
  • the output unit 213 decompresses the target compressed code composed of the Xa-bit compressed code included in the first data read by the first specifying unit 211 and the second data read by the second specifying unit 212. A function of sending to the unit 203.
  • the output unit 213 sends the target compressed code consisting only of the compressed code included in the first data read by the first specifying unit 211 to the decompressing unit 203.
  • FIG. 3A is a diagram illustrating an example of a result of compressing each of M N-bit uncompressed codes.
  • ADDR shown in the figure indicates an uncompressed block address value ADDR_a for each uncompressed code or an uncompressed code address value ADDR_b desired by the processor 40 (FIGS. 9A and 15A described later). The same applies to).
  • the compressed code A10 is obtained as a result of compressing the uncompressed code A1 whose ADDR is “0”.
  • the data lengths of the compressed codes A10, B10, and D10 obtained by compressing the uncompressed codes A1, B1, and D1 having ADDRs “0”, “1”, and “2” are Xa bits (in this example) Indicates N / 2-1 bits) or less.
  • the data length of the compressed code C10 obtained by compressing the uncompressed code C1 whose ADDR is “2” is larger than Xa bits (N / 2-1 bits in this example).
  • FIG. 3B is a diagram showing an example of arrangement of each compressed code (A10 to D10) in the ROM 10.
  • the area area0 in the ROM 10 where each compressed code is arranged is composed of a first area area1 and a second area area2. Note that addr shown in the figure indicates an address value on the ROM 10 (the same applies to FIGS. 9B and 15B described later).
  • the first area area1 is a physically continuous area in which the first data composed of the Xa bits or less of the compressed code and the 1-bit flag is arranged for each compressed code.
  • the value of the flag when the data length of the compressed code is Xa bits or less is “0”, and the value of the flag when the data length is greater than Xa bits is “1”.
  • the second area area2 is a physically continuous area in which the second data of each specific compression code having a data length larger than Xa bits is arranged.
  • each compressed code having a data length of Xa bits or less is stored at a position in the first area area1 indicated by the result value addr_a1 of Equation 1.
  • Each specific compression code whose data length is larger than a bit is divided into a position in the first area area1 indicated by the result value addr_a1 of Expression 1 and a position in the second area area2 indicated by the result value addr_a2 of Expression 2.
  • Arrangement Determination Process> and ⁇ 4-2 A specific example of the arrangement determination process will be described in detail below.
  • the data length of the compression codes A10, B10, and D10 is N / 2-1 or less, and the data length of the compression code C10 is larger than N / 2-1. Therefore, in this example, the second data is stored only for the compressed code C10.
  • the compression codes A10 and B10 are respectively the lower N / 2 bit area and the upper N / 2 of the area where the addr in the first area area1 of the ROM 10 is “0”. It is placed in the bit area.
  • the Xa bit data C11 and the compressed code D10 of the compressed code C10 are respectively the lower N / 2 bit area and the upper N / 2 of the area where the addr in the first area area1 of the ROM 10 is “1”. It is placed in the bit area.
  • the second data C12 obtained by removing the Xa-bit data C11 from the compressed code C10 is arranged in the upper N / 2-bit area of the area where the addr in the second area area2 of the ROM 10 is “M / 2”. Is done.
  • Placement determination process First, the arrangement determining process of the arrangement determining apparatus 100 will be described.
  • FIG. 4 is a flowchart showing the arrangement determining process of the arrangement determining apparatus 100.
  • control unit 110 in the arrangement determining apparatus 100 initializes the uncompressed block address value ADDR_a (variable) of the uncompressed code to be processed to “0” (step S1).
  • the control unit 110 determines whether or not the processing after step S3 described below has been completed for all M uncompressed codes (step S2).
  • step S3 When the processing after step S3 has not been completed (step S2: NO), the control unit 110 stores the uncompressed data stored at the position in the uncompressed code area 21 of the storage device 20 indicated by the address value ADDR_a. The code is read through the access unit 101 (step S3).
  • the control unit 110 sends the read uncompressed code to the compression unit 102, and the compression unit 102 compresses the received uncompressed code, and sends the compressed code and data length information indicating the data length of the compressed code to the control unit. 110 (step S4).
  • the first determination unit 111 of the control unit 110 performs a first calculation (see Equation 1) on the address value ADDR_a (step S5), and the control unit 110 determines that the data length indicated by the data length information received from the compression unit 102 is Xa. It is determined whether or not it is larger than the bit (step S6).
  • step S6 NO
  • the control unit 110 uses the flag and the compression code received in step S4 as the first in step S5.
  • the result value addr_a1 is written into the position in the compression code area 22 of the storage device 20 indicated by the calculation result value via the access unit 101 (step S8).
  • the flag at this time is set to “0” to indicate that the data length of the compressed code is Xa bits or less.
  • step S6 when the data length indicated by the data length information received from the compression unit 102 is larger than Xa bits (step S6: YES), the second determination unit 112 of the control unit 110 performs the second operation on the address value ADDR_a ( Step S7).
  • control unit 110 puts the flag and the Xa bit of the compressed code received in step S4 at the position in the compressed code area 22 of the storage device 20 indicated by the result value addr_a1 of the first calculation in step S5. Write via the access unit 101.
  • the flag at this time is set to “1” to indicate that the data length of the compressed code is greater than Xa bits.
  • control unit 110 moves the access unit 101 to a position in the compressed code area 22 indicated by the result value addr_a2 of the second calculation in step S7, after removing the Xa bits from the compressed code received in step S4. (Step S8).
  • control unit 110 updates the address value ADDR_a to a value obtained by adding 1 (step S9), and performs the process from step S2 again.
  • step S3 When the processing after step S3 is completed for all M uncompressed codes (step S2: YES), the control unit 110 stores each compressed code arranged in the compressed code area 22 of the storage device 20. Then, the writing device 30 is instructed to write to the ROM 10 (step S10), and the arrangement determining process is terminated.
  • the writing device 30 writes the respective compressed codes arranged in the compressed code area 22 in the ROM 10 in this arrangement in accordance with this instruction from the control unit 110.
  • control unit 110 in the arrangement determining apparatus 100 initializes the uncompressed block address value ADDR_a of the processing target uncompressed code to “0” (step S1).
  • step S3 since the processing after step S3 has not been completed for all M uncompressed codes (step S2: NO), the control unit 110 performs uncompressed storage device 20 indicated by the address value ADDR_a (0).
  • the uncompressed code (A1) stored at a position in the code area 21 is read out via the access unit 101 (step S3).
  • the control unit 110 sends the read uncompressed code (A1) to the compressing unit 102, and the compressing unit 102 compresses the received uncompressed code (A1), and compresses the compressed code (A10) and the data length of the compressed code. Is sent to the control unit 110 (step S4).
  • the first determination unit 111 of the control unit 110 performs a first calculation (see Equation 1) on the address value ADDR_a (0) (step S5).
  • the result value addr_a1 of the first calculation becomes “0” at the address value ADDR_a (0) / 2.
  • the data length indicated by the data length information received from the compression unit 102 is Xa bits or less (step S6: NO). Therefore, as shown in FIG. 3B, the control unit 110 indicates the flag (0) and the compression code (A10) received in step S4 by the result value addr_a1 (0) of the first calculation in step S5. The data is written into the position in the compressed code area 22 of the storage device 20 through the access unit 101 (step S8).
  • the control unit 110 updates the address value ADDR_a to a value (1) obtained by adding 1 (step S9), and performs the processing from step S2 again.
  • Uncompressed code B1 The compressed code B10 obtained by compressing the uncompressed code B1 is also processed in the same manner as the compressed code A10 (steps S2 to S6, S8, S9).
  • the result value addr_a1 of the first calculation in step S5 becomes “1 ⁇ 2” at the address value ADDR_a (1) / 2.
  • the data length of the compression code B10 is Xa bits or less.
  • the flag (0) and the compressed code (B10) received in step S4 are the compressed code of the storage device 20 indicated by the result value addr_a1 (1/2) of the first calculation. It will be arranged at a position in the area 22 for use.
  • step S3 the processing after step S3 has not been completed for all M uncompressed codes (step S2: NO), so the control unit 110 uses the address value ADDR_a (2).
  • the uncompressed code (C1) stored at the position in the uncompressed code area 21 of the storage device 20 is read out via the access unit 101 (step S3).
  • the control unit 110 sends the read uncompressed code (C1) to the compressing unit 102, and the compressing unit 102 compresses the received uncompressed code (C1) and compresses the compressed code (C10) and the data length of the compressed code. Is sent to the control unit 110 (step S4).
  • the first determination unit 111 of the control unit 110 performs a first calculation (see Equation 1) on the address value ADDR_a (2) (step S5).
  • the result value addr_a1 of the first calculation becomes “1” at the address value ADDR_a (2) / 2.
  • the data length indicated by the data length information received from the compression unit 102 is larger than Xa bits (step S6: YES). Accordingly, the second determination unit 112 of the control unit 110 performs the second calculation on the address value ADDR_a (step S7).
  • the result value addr_a2 of the second calculation is “M / 2 + 1/2” (ADDR_a (2) / 4) and becomes “M / 2 + 1/2”.
  • the control unit 110 uses the flag (1) and the Xa bit (C11) of the compressed code (C10) received in step S4 as the first calculation in step S5.
  • the result value addr_a1 (1) is written via the access unit 101 to the position in the compression code area 22 of the storage device 20.
  • the control unit 110 uses the remaining value (C12) obtained by removing the Xa bits from the compressed code (C10) received in step S4 as a result value addr_a2 of the second calculation in step S7. Writing into the position in the compressed code area 22 indicated by (M / 2 + 1/2) through the access unit 101 (step S8).
  • control unit 110 updates the address value ADDR to a value (3) obtained by adding 1 (step S9), and performs the process from step S2 again.
  • Uncompressed code D1 The compressed code D10 obtained by compressing the uncompressed code D1 is processed in the same manner as the compressed code B10, and is received in step S4 with the flag (0) as shown in FIG.
  • the compressed code (D10) is arranged at a position in the compressed code area 22 of the storage device 20 indicated by the result value addr_a1 (3/2) of the first calculation.
  • FIG. 5 is a flowchart showing an access process of the access device 200.
  • control unit 210 in the access device 200 receives an address value ADDR_b of a desired uncompressed code from the processor 40 via the input unit 201 (step S11: YES).
  • the first specifying unit 211 of the control unit 210 performs the first calculation (see Equation 3) on the address value ADDR_b (step S12), and the control unit 210 receives the result value addr_b1 of the first calculation via the reading unit 202.
  • the first data is read from the position in the first area area1 of the ROM 10 shown (step S13).
  • the control unit 210 determines whether or not the data length of the compressed code is greater than Xa bits based on the read flag value of the first data (step S14).
  • control unit 210 determines that the data length of the compressed code is Xa bits or less (step S14: NO), and the output unit 213 of the control unit 210 reads the first read
  • the compressed code included in the data is output to the decompression unit 203 (step S17).
  • control unit 210 determines that the data length of the compressed code is greater than Xa bits (step S14: YES), and the second specifying unit 212 of the control unit 210 reads the address A second calculation is performed on the value ADDR_b (step S15).
  • the control unit 210 reads the second data from the position in the second area area2 of the ROM 10 indicated by the result value addr_b2 of the second calculation via the reading unit 202 (step S16).
  • the output unit 213 of the control unit 210 outputs to the decompression unit 203 a compressed code composed of Xa bits of the compressed code included in the read first data and the second data (step S17).
  • step S17 When the processing in step S17 is completed, the decompressing unit 203 decompresses the output compressed code (step S18), sends the uncompressed code to the processor 40 (step S19), and ends the access processing.
  • the access process of the access device 200 will be described by taking as an example a case where the address value ADDR_b “2” of the desired uncompressed code C1 is received from the processor 40.
  • the control unit 210 in the access device 200 receives the address value ADDR_b (2) of the desired uncompressed code (C1) from the processor 40 via the input unit 201 (step S11).
  • the first specifying unit 211 of the control unit 210 performs the first calculation (see Equation 3) on the address value ADDR_b (2) (step S12).
  • the result value addr_b1 of the first calculation becomes “1” at the address value ADDR_b (2) / 2.
  • the control unit 210 reads the first data (flag “1” and data C11) from the position in the first area area1 of the ROM 10 indicated by the result value addr_b1 (1) of the first calculation via the reading unit 202 (step S1). S13).
  • step S14 since the value of the flag is “1”, the control unit 210 determines that the data length of the compressed code is longer than Xa bits (step S14: YES), and the second specifying unit 212 of the control unit 210 A second calculation is performed on the value ADDR_b (step S15).
  • the result value addr_b2 of the second calculation is M / 2 + Round 1/2 (ADDR_b (2) / 4) and becomes “M / 2 + 1/2”.
  • the control unit 210 reads the second data (C12) from the position in the second area area2 of the ROM 10 indicated by the result value addr_b2 (M / 2 + 1/2) of the second calculation via the reading unit 202 (step S16). .
  • the output unit 213 of the control unit 210 outputs to the decompression unit 203 a compressed code composed of Xa bits (C11) and second data (C12) of the compressed code included in the read first data (step S17).
  • step S17 When the process of step S17 is completed, the decompression unit 203 decompresses the output compressed code (step S18), sends the uncompressed code (C1) to the processor 40 (step S19), and ends the access process.
  • the arrangement determining apparatus 100 it is possible to determine the arrangement of each compressed code on the ROM 10 without using an address conversion table, and the area on the ROM 10 in which each compressed code is arranged under a certain condition. It can be used for area 0 capacity reduction.
  • Each compressed code obtained by compressing two uncompressed codes whose address values ADDR_a are “2 ⁇ j” and “2 ⁇ j + 1” (where j 0, 1,... M / 2) is not a specific compressed code.
  • the capacity of the storage area area0 (see FIG. 3B) on the ROM 10 for each compressed code is as follows.
  • the simplest method that does not use the address conversion table is to arrange each of the M compressed codes as they are in the N-bit area on the ROM 10, but in this case the storage area capacity M ⁇ Compared to N, according to the arrangement determining apparatus 100 according to the first embodiment, the capacity can be reduced by 25%.
  • the position of the target compression code can be specified using a predetermined calculation (first calculation and second calculation) without using an address conversion table. it can.
  • FIG. 6 is a diagram illustrating a circuit configuration of the control circuit 210a of the access device according to the first modification.
  • ADDR address value input from the processor 40 via the input unit 201
  • addr address value sent to the ROM 10 via the reading unit 202
  • ADDR and addr are 16 bits.
  • N is 16 bits
  • the ROM 10 outputs 16-bit data to 16-bit addr. The same applies to Modification 2 described later.
  • control circuit 210a of the access device is a circuit including selectors 214a to 214e, an AND circuit 215, and D flip-flops 216a to 216c.
  • NDATA_ENABLE (to be described later) is “0” one or two cycles after the address value ADDR is input from the processor 40
  • the decompression unit 203 converts the DATA output from the control circuit 210 a into a valid compression code. Will be acquired and expanded.
  • the selectors 214a to 214d select an input on the side having the same value as NDATA_ENABLE among the two inputs on the “0” side and the “1” side.
  • the selector 214e selects an input having the same value as byte_select described later.
  • each selector (214a to 214e) has selected the input on the “0” side.
  • control circuit 210a will be described in detail by taking as an example a case where the address value (2) of the uncompressed code C1 shown in FIG. 3A is input from the processor 40 as the address value ADDR.
  • the ROM 10 In response to this addr [15: 0], the ROM 10 causes the upper 8 bits of data [15: 8] and the lower 8 bits of data [15: 8] of the 16-bit data arranged in addr “1” in FIG. 7: 0].
  • data [15: 8] is 8-bit data including flags “0” and D10
  • data [7: 0] is 8-bit data including flags “1” and C11. It is.
  • data [7: 0] (including C11) is output as data_sel [7: 0] from the selector 214e.
  • the 0th bit (data_sel [0]) of data_sel [7: 0] is the flag “1”, and NDATA_ENABLE is “0”. Accordingly, “1” is output from the AND circuit 215 and input to the D flip-flop 216a.
  • the “0” side input is selected. Therefore, the first to seventh bits (data_sel [7: 1]) of data_sel [7: 0] are output from the selector 214c and input to the D flip-flop 216b.
  • the decompression unit 203 since NDATA_ENABLE is “1” at this timing (after 1 cycle from the input of the address value ADDR from the processor 40), the decompression unit 203 has not yet decompressed DATA.
  • the ROM 10 has the upper 8 bits of data [15: 8] and the lower 8 bits of 16-bit data arranged in addr “M / 2” in FIG. data [7: 0] is output.
  • data [15: 8] (including C12) is output as data_sel [7: 0] from the selector 214e.
  • NDATA_ENABLE is “1”
  • “0” is output from the AND circuit 215 and input to the D flip-flop 216a.
  • the selector 214c outputs DATA [6: 0] (C11 corresponding to 7 bits of the compression code C10) and inputs it to the D flip-flop 216b.
  • the selector 214d outputs 9-bit data including data_sel [7: 0] (including C12) and the most significant bit “0”, and is input to the D flip-flop 216c.
  • the D flip-flop 216c When a clock is input to the D flip-flops 216a to 216c, “0” is output as NDATA_ENABLE from the D flip-flop 216a, and C11 corresponding to 7 bits of the compression code C10 is output from the D flip-flop 216b to DATA [6: 0].
  • the D flip-flop 216c outputs data including C12 that is the remaining data obtained by removing the compression codes C10 to C11 as DATA [15: 7].
  • NDATA_ENABLE is “0” at this timing (two cycles after the address value ADDR is input from the processor 40). Therefore, DATA (DATA [6: 0] and DATA [15: 7]) output from the control circuit 210a is acquired by the decompression unit 203 and decompressed.
  • Embodiment 2 the example which changed the content of the 2nd calculation demonstrated in Embodiment 1 is demonstrated centering on difference with Embodiment 1.
  • FIG. 7 is a block diagram showing a functional configuration of the main part of the arrangement determining apparatus 120 according to the second embodiment
  • FIG. 8 is a block diagram showing a functional configuration of the main part of the access apparatus 220 according to the second embodiment. It is.
  • the arrangement determining apparatus 120 includes a control unit 130 instead of the control unit 110 of the arrangement determining apparatus 100 according to the first embodiment, and the control unit 130 performs the control according to the first embodiment. It differs from the arrangement determining apparatus 100 in that it includes a second determining unit 131 instead of the second determining unit 112 of the unit 110.
  • the access device 220 includes a control unit 230 instead of the control unit 210 of the access device 200 according to the first embodiment.
  • the control unit 230 controls the control according to the first embodiment.
  • the access device 200 is different from the access device 200 in that a second specifying unit 231 is included instead of the second specifying unit 212 of the unit 210.
  • the second determining unit 131 of the placement determining device 120 and the second specifying unit 231 of the access device 220 express the address values ADDR_a and the address value ADDR_b as shown in the equation 5, and the equations 6 to 8 It differs from the 2nd determination part 112 and the 2nd specific
  • FIG. 9A is a diagram illustrating an example of a result of compressing each of M N-bit uncompressed codes.
  • FIG. 9B is a diagram showing an example of arrangement of each compressed code (A20 to D20) in the ROM 10.
  • the area area10 in the ROM 10 where each compressed code is arranged is composed of a first area area11 and a second area area12.
  • the first area area11 is an area in which the first data for each compressed code is arranged, as in the first area area1 according to the first embodiment, but the first data is the Xb bit of the compressed code. (Xb ⁇ N, and in this example, N / 2-2, that is, 6 bits) and a 2-bit flag are different from the first area area1.
  • the 2-bit flag indicates whether or not the data length of the compressed code is greater than Xb bits, and when the data length is greater than Xb bits, the remainder obtained by excluding Xb bits from the compressed code is the number 6 to number 8 It also indicates which of the three positions indicated by the result value is arranged.
  • the value of the flag when the data length of the compressed code is less than or equal to Xb bits is set to “00”, and when the data length of the compressed code is greater than Xb bits, the flag value is set as follows: Shall be set. That is, “10” is set when the formula 6 is used, “11” is set when the formula 7 is used, and “01” is set when the formula 8 is used. Shall.
  • the second area area12 is an area in which the second data of the specific compression code whose data length is larger than Xb bits among the respective compression codes is arranged, similarly to the first area area2 according to the first embodiment.
  • a compressed code having a data length larger than Xa bits among the respective compressed codes is called a specific compressed code.
  • a compressed code having a data length larger than Xb bits is specifically compressed. Call it a code.
  • the data length of the compression codes A20, C20, and D20 is larger than N / 2-2, and the data length of the compression code B20 is N / 2-2 or less.
  • the compressed codes A20, C20, and D20 are respectively divided into the first area area 11 and the second area area 12 of the ROM 10.
  • the second data arrangement determination method using Equations 6 to 8 is described in ⁇ 3. Operation> ⁇ 3-1. Arrangement Determination Process> and ⁇ 3-2. A specific example of the arrangement determination process will be described in detail below.
  • Placement determination process First, the arrangement determining process of the arrangement determining apparatus 120 will be described.
  • FIG. 10 is a flowchart showing the arrangement determining process of the arrangement determining apparatus 120.
  • the arrangement determining process of the arrangement determining apparatus 120 is replaced with the process of steps S6 to S8 in the arrangement determining process of the arrangement determining apparatus 100 according to the first embodiment shown in FIG.
  • This is different from the layout determination process of the layout determination apparatus 100 in that it includes the processes of S33. Therefore, the following description will focus on the processing of steps S31 to S33.
  • control unit 130 determines whether or not the data length indicated by the data length information received from the compression unit 102 in step S4 is greater than Xb bits (N / 2-2 bits in this example). Is determined (step S31).
  • step S6 shown in FIG. 4 the comparison with the Xa bit (N / 2-1 bit) is performed.
  • the flag included in the first data according to the second embodiment is 2 bits
  • step S31 Xb bits (N / 2 ⁇ 2 bits).
  • step S31: NO When the data length indicated by the data length information received from the compression unit 102 is equal to or less than Xb bits (step S31: NO), the control unit 130 uses the 2-bit flag and the compression code received in step S4 as step S5. The result value addr_a1 of the first calculation is written to the position in the compression code area 22 of the storage device 20 through the access unit 101 (step S33). The flag at this time is set to “00” to indicate that the data length of the compressed code is Xb bits or less.
  • step S31 when the data length indicated by the data length information received from the compression unit 102 is larger than Xb bits (step S31: YES), the second determination unit 131 of the control unit 130 performs the second calculation on the address value ADDR_a ( Step S32).
  • control unit 130 stores the 2-bit flag and the Xb bit of the compressed code received in step S4 in the compressed code area 22 of the storage device 20 indicated by the result value addr_a1 of the first calculation in step S5.
  • the position is written via the access unit 101.
  • the flag at this time is set according to which of the equations 6 to 8 is used in step S32. That is, it is set to “10” when the mathematical expression 6 is used, “11” when the mathematical expression 7 is used, and “01” when the mathematical expression 8 is used. .
  • control unit 130 moves the access unit 101 to the position in the compressed code area 22 indicated by the result value addr_a2 of the second calculation in step S32, after removing the Xb bits from the compressed code received in step S4. Through (step S33), the process proceeds to step S9.
  • the data length of the compressed code A20 obtained by compressing the uncompressed code A2 is larger than Xb bits (step S31: YES), and the address value ADDR_a of the uncompressed code A2 is “4”.
  • the result value addr_a2 of the second calculation is “M / 2”.
  • the control unit 130 uses the 2-bit flag (10) and the Xb bits (A21) of the compressed code (A20) received in step S4 as the first calculation in step S5.
  • the result value addr_a1 (0) is written to the position in the compression code area 22 of the storage device 20 via the access unit 101.
  • the control unit 130 obtains the remaining value (A22) obtained by removing the Xb bits from the compressed code (A20) received in step S4, as a result value addr_a2 of the second calculation in step S32. Write to the position in the compressed code area 22 indicated by (M / 2) via the access unit 101 (step S33).
  • step S31 Processing for uncompressed code B2
  • the data length of the compressed code B20 obtained by compressing the uncompressed code B2 is Xb bits or less (step S31: NO). Therefore, as shown in FIG. 9B, the control unit 130 uses the 2-bit flag (00) and the compressed code received in step S4 as the result value addr_a1 (1/2) of the first calculation in step S5. Is written via the access unit 101 in the position in the compressed code area 22 of the storage device 20 (step S33).
  • step S2 Processing for uncompressed code C2 Since the compressed code C20 obtained by compressing the uncompressed code C2 is processed in the same manner as the compressed code A20 (steps S2 to S5, S31 to S33, S9), detailed description will be given. Is omitted, but the result value addr_a1 of the first calculation in step S5 is “1”.
  • step S32 the calculation shown in Equation 7 is executed, and the result value addr_a2 of the second calculation becomes “M / 2 + 1/2”.
  • the reason why the calculation shown in Expression 7 is executed is because the calculation shown in Expression 6 is used in the compressed code A20 that already belongs to the same set.
  • the control unit 130 uses the 2-bit flag (11) and the Xb bits (C21) of the compressed code (C20) received in step S4 as the first calculation in step S5.
  • the result value addr_a1 (1) is written via the access unit 101 to the position in the compression code area 22 of the storage device 20.
  • the control unit 130 obtains the remaining value (C22) obtained by removing the Xb bits from the compressed code (C20) received in step S4, as a result value addr_a2 of the second calculation in step S32. Writing into the position in the compressed code area 22 indicated by (M / 2 + 1/2) through the access unit 101 (step S33).
  • the compressed code D20 obtained by compressing the uncompressed code D2 is also processed in the same manner as the compressed code A20.
  • the result value addr_a1 of the first operation in step S5 is “3 / 2 ”.
  • step S32 the calculation shown in Expression 8 is executed, and the result value addr_a2 of the second calculation is “3 ⁇ M / 4”.
  • the control unit 130 uses the 2-bit flag (01) and the Xb bits (D21) of the compressed code (D20) received in step S4 as the first calculation in step S5.
  • the result value addr_a1 (3/2) is written to the position in the compression code area 22 of the storage device 20 via the access unit 101.
  • the control unit 130 obtains the remaining value (D22) obtained by removing the Xb bits from the compressed code (D20) received in step S4, as a result value addr_a2 of the second calculation in step S32. Write to the position in the compressed code area 22 indicated by (3 ⁇ M / 4) via the access unit 101 (step S33).
  • FIG. 11 is a flowchart showing access processing of the access device 220.
  • the access processing of the access device 220 is the processing of steps S41 to S43 in place of steps S14, S15 and S17 in the access processing of the access device 200 according to the first embodiment shown in FIG. This is different from the access processing of the access device 200 in that Accordingly, the processing in steps S41 to S43 will be described below.
  • control unit 230 determines whether the data length of the compressed code is greater than Xb bits based on the value of the 2-bit flag of the first data read in step S13. (Step S41).
  • step S41 determines that the data length of the compressed code is Xb bits or less (step S41: NO), and the output unit 213 of the control unit 230 reads the read first
  • the compressed code included in one data is output to the decompression unit 203 (step S43).
  • step S43 the access device 220 proceeds to the process of step S18.
  • step S41 determines that the data length of the compressed code is longer than Xb bits (step S41: YES), and the second specifying unit 231 of the control unit 230 The second calculation is performed on the address value ADDR_b (step S42). That is, when the address value ADDR_b is expressed as shown in Formula 5, the second specifying unit 231 performs a calculation according to the flag value among the calculations shown in Formula 6 to Formula 8.
  • the control unit 230 reads the second data from the position indicated by the result value addr_b2 of the second calculation in the second area area12 of the ROM 10 via the reading unit 202 (step S16).
  • the output unit 213 of the control unit 230 outputs a compressed code composed of Xb bits of the compressed code included in the read first data and the second data to the decompressing unit 203 (step S43).
  • step S43 the access device 220 proceeds to the process of step S18.
  • the access processing of the access device 220 will be described by taking as an example a case where the address value ADDR_b “3” of the desired uncompressed code D2 is received from the processor 40.
  • control unit 230 determines that the data length of the compressed code is greater than Xb bits (step S41: YES).
  • the second specifying unit 231 of the control unit 230 performs a calculation according to the flag value among the calculations shown in Formula 6 to Formula 8. This is performed (step S42).
  • the calculation shown in Expression 8 is performed, and the result of the second calculation
  • the value addr_b2 is “3 ⁇ M / 4”.
  • the control unit 230 reads the second data (D21) from the position indicated by the result value addr_b2 (3 ⁇ M / 4) of the second calculation in the second area area12 of the ROM 10 via the reading unit 202 (step S16). .
  • the output unit 213 of the control unit 230 outputs a compressed code including the data (D21) obtained by removing the flag from the read first data and the second data (D22) to the decompression unit 203 (step S43).
  • the arrangement determining apparatus 120 According to the arrangement determining apparatus 120 according to the second embodiment, the area on the ROM 10 in which each compressed code is arranged while relaxing the conditions for the specific compressed code as compared with the case of the arrangement determining apparatus 100 according to the first embodiment. The capacity of the area 10 can be reduced.
  • the arrangement determining apparatus 100 can reduce the capacity by 25% on the condition that the compressed codes related to the two non-compressed codes having consecutive address values ADDR_a are not the specific compressed codes. there were.
  • the capacity reduction of 12.5% is performed on the condition that the compressed codes related to the four uncompressed codes having consecutive address values ADDR_a are not the specific compressed codes. Is possible.
  • FIG. 12 is a diagram illustrating a circuit configuration of the control circuit 230a of the access device according to the second modification.
  • control circuit 230a of the access device according to Modification 2 is a circuit including selectors 232a to 232f and D flip-flops 234a to 234c.
  • the decompression unit 203 uses the DATA output from the control circuit 230 a as valid. It is acquired and decompressed as a simple compressed code.
  • the selectors 232a and 232b select the input on the side that has the same value as NDATA_ENABLE [1: 0] among the three inputs “00”, “11”, and “01” or “10”. To choose.
  • selectors 232a to 232f have selected the input on the “00” side at the time when the address value ADDR is input from the processor 40 via the input unit 201.
  • control circuit 230a will be specifically described by taking as an example a case where the address value (3) of the uncompressed code D2 shown in FIG.
  • the ROM 10 In response to this addr [15: 0], the ROM 10 outputs the 16-bit data arranged in addr “1” in FIG. 9B as data [15: 8] and data [7: 0].
  • ADDR [0] 1 is output from the selector 232b as byte_select.
  • data [15: 8] (flags “01” and D21) is output from the selector 232e as data_sel [7: 0], and the input on the “00” side is selected in the selector 232f.
  • [1: 0] (01) is output from the selector 232f and input to the D flip-flop 234a.
  • NDATA_ENABLE [1: 0] is “01” at this timing (after 1 cycle from the input of the address value ADDR from the processor 40), the decompression unit 203 has not yet decompressed DATA. I will not.
  • ADDR [2] “0” is output as byte_select from the selector 232b
  • data [7: 0] (including D22) is output as data_sel [7: 0] from the selector 232e. .
  • NDATA_ENABLE [1: 0] is “01”
  • all 0 (“00”) is output from the selector 232f and input to the D flip-flop 234a.
  • DATA [5: 0] (D21) is output from the selector 232c and input to the D flip-flop 234b.
  • ⁇ 00, data_sel [7: 0] ⁇ is output from the selector 232d and input to the D flip-flop 234c.
  • D flip-flop 234c When there is a clock input to the D flip-flops 234a to 234c, “00” is output as NDATA_ENABLE [1: 0] from the D flip-flop 234a, and D21 is output as DATA [5: 0] from the D flip-flop 234b. Is done.
  • the D flip-flop 234c outputs data including D22 which is the remaining data obtained by removing D21 from the compressed code D20 as DATA [15: 6].
  • NDATA_ENABLE [1: 0] is “00” at this timing (after two cycles after the address value ADDR is input from the processor 40). Therefore, DATA (DATA [5: 0] and DATA [15: 6]) output from the control circuit 210a is acquired by the decompression unit 203 and decompressed.
  • Embodiment 3 ⁇ Embodiment 3 >> Hereinafter, an example in which the contents of the first calculation and the second calculation described in the first embodiment are changed will be described focusing on differences from the first embodiment.
  • FIG. 13 is a block diagram showing the functional configuration of the main part of the arrangement determining apparatus 140 according to the third embodiment
  • FIG. 14 is a block diagram showing the functional configuration of the main part of the access apparatus 240 according to the third embodiment. It is.
  • the arrangement determining apparatus 140 includes a control unit 150 instead of the control unit 110 of the arrangement determining apparatus 100 according to the first embodiment.
  • the control unit 150 includes a first determination unit 151 and a second determination unit 152 in place of the first determination unit 111 and the second determination unit 112 of the control unit 110 according to the first embodiment. 100 is different.
  • the access device 240 includes a control unit 250 instead of the control unit 210 of the access device 200 according to the first embodiment.
  • the control unit 250 includes the first specifying unit 251 and the second specifying unit 252 instead of the first specifying unit 211 and the second specifying unit 212 of the control unit 210 according to the first embodiment. Is different.
  • the first determination unit 151 of the arrangement determination device 140 and the first specification unit 251 of the access device 240 represent the address value ADDR_a and the address value ADDR_b as shown in Equation 5, they are expressed by Equation 9. It differs from the 1st determination part 111 and the 1st specific
  • FIG. 15A is a diagram illustrating a result of compressing each of M N-bit uncompressed codes.
  • FIG. 15B is a diagram showing an example of arrangement of each compressed code (A30 to H30) in the ROM 10.
  • the area area 20 in the ROM 10 where each compressed code is arranged has four consecutive addresses having the same value of j as “4 ⁇ j”, “4 ⁇ j + 1”, “4 ⁇ j + 2”, and “4 ⁇ j + 3”.
  • the first area of a set of four consecutive address values ADDR “0” to “3” is area 21a
  • the second area is area 22a
  • the first area of a set of four consecutive address values ADDR “4” to “7” is area 21b
  • the second area is area 22b.
  • each first area is an area for storing the first data of each compressed code corresponding to the set, similarly to the first area area1 according to the first embodiment.
  • each second area is the second of the specific compression code whose data length is larger than Xa bits among the respective compression codes corresponding to the set, similarly to the second area area 2 according to the first embodiment. This is the area where data is placed.
  • the data lengths of the compression codes C30 and E30 are larger than N / 2-1. Therefore, in the example of FIG. 15B, the compressed code C30 is in the first area area 21a and the second area area 22a of the ROM 10, and the compressed code E30 is in the first area area 21b of the ROM 10 and the second area.
  • the area 22b is divided and arranged.
  • Placement determination process First, the arrangement determining process of the arrangement determining apparatus 140 will be described.
  • FIG. 16 is a flowchart showing the arrangement determining process of the arrangement determining apparatus 140.
  • the arrangement determining process of the arrangement determining apparatus 140 is replaced with the process of steps S5 and S7 in the arrangement determining process of the arrangement determining apparatus 100 according to the first embodiment shown in FIG. And it differs from the arrangement
  • the first determination unit 151 of the control unit 150 performs the first calculation on the address value ADDR_a (step S51). That is, when the address value ADDR_a is expressed as shown in Equation 5, the first determining unit 151 performs an operation according to the value of k shown in Equation 9.
  • control unit 150 performs the determination process in step S6, and when the data length indicated by the data length information received from the compression unit 102 in step S4 is larger than Xa bits (step S6: YES), the control unit 150 The 2 determining unit 152 performs a second operation on the address value ADDR_a (step S52). That is, when the address value ADDR_a is expressed as shown in Equation 5, the second determination unit 152 performs an operation according to the value of k shown in Equation 10.
  • step S52 When the process of step S52 is completed, the control unit 150 proceeds to the process of step S8.
  • the data length indicated by the data length information received from the compression unit 102 is Xa bits or less (step S6: NO). Therefore, as shown in FIG. 15B, the control unit 150 indicates the flag (0) and the compression code (A30) received in step S4 by the result value addr_a1 (0) of the first calculation in step S51. The data is written into the position in the compressed code area 22 of the storage device 20 through the access unit 101 (step S8).
  • the compressed code B30 obtained by compressing the uncompressed code B3 is also processed in the same manner as the compressed code A30.
  • the result value addr_a1 is “1 ⁇ 2”. Accordingly, as shown in FIG. 15B, the flag (0) and the compression code (B30) received in step S4 are the compression code of the storage device 20 indicated by the result value addr_a1 (1/2) of the first calculation. It will be arranged at a position in the area 22 for use.
  • the result value addr_a2 of the second calculation is “1 + 1/2”.
  • the control unit 150 uses the flag (1) and the Xa bit (C31) of the compressed code (C30) received in step S4 as the first calculation in step S51.
  • the result value addr_a1 (2) is written via the access unit 101 to the position in the compression code area 22 of the storage device 20.
  • the control unit 150 obtains the data (C32) obtained by removing the Xa bits (C31) from the compressed code (C30) received in step S4 as the second operation of step S52.
  • the result value addr_a2 (1 + 1/2) is written via the access unit 101 to the position in the compression code area 22 of the storage device 20 (step S8).
  • the compressed code D30 obtained by compressing the uncompressed code D3 is also processed in the same manner as the compressed code A30.
  • the result value addr_a1 is “2 + 1/2”. Therefore, as shown in FIG. 15B, the compression code of the storage device 20 indicated by the flag (0) and the compression code (D30) received in step S4 is indicated by the result value addr_a1 (2 + 1/2) of the first calculation. It will be arranged at a position in the area 22 for use.
  • FIG. 17 is a flowchart showing access processing of the access device 240.
  • the access process of the access device 240 is the process of steps S61 and S62 instead of the process of steps S12 and S15 in the access process of the access device 200 according to the first embodiment shown in FIG. Is different from the access processing of the access device 200. Therefore, the following description will focus on the processing of steps S61 and S62.
  • step S11 When the address value ADDR_b of the desired uncompressed code is received from the processor 40 via the input unit 201 (step S11: YES), the first specifying unit 251 of the control unit 250 of the access device 240 sets the address value ADDR_b to the first value ADDR_b.
  • One operation is performed (step S61). That is, when the address value ADDR_a is expressed as shown in Equation 5, the first specifying unit 251 performs an operation according to the value of k shown in Equation 9.
  • control unit 250 performs the first data reading process in step S13 and the determination process in step S14. If the data length of the compressed code is greater than Xa bits (step S14: YES), the control unit 250 The specifying unit 252 performs the second calculation on the address value ADDR_b (step S62). That is, when the address value ADDR_b is expressed as shown in Equation 5, the second specifying unit 252 performs an operation according to the value of k shown in Equation 10.
  • step S62 When the process of step S62 is completed, the control unit 150 proceeds to the process of step S16.
  • the access processing of the access device 240 will be described by taking as an example a case where the address value ADDR_b “2” of the desired uncompressed code C3 is received from the processor 40.
  • step S11 When the address value ADDR_b “2” of the desired uncompressed code is received from the processor 40 via the input unit 201 (step S11: YES), the first specifying unit 251 of the control unit 250 of the access device 240 receives the address value.
  • a first calculation is performed on ADDR_b (step S61).
  • the result value addr_b1 of the first calculation is “2”.
  • control unit 250 reads the first data (flags “1” and C31) from the position in the first area area 21a of the ROM 10 indicated by the result value addr_b1 (2) of the first calculation via the reading unit 202 ( Step S13).
  • step S13 since the value of the flag of the first data read in step S13 is “1”, it is determined that the data length of the compressed code is greater than Xa bits (step S14: YES).
  • the second specifying unit 252 of the control unit 250 performs the second calculation on the address value ADDR_b (step S62).
  • control unit 250 reads the second data (including C32) from the position in the second area area 22a of the ROM 10 indicated by the result value addr_b2 (1 + 1/2) of the second calculation via the reading unit 202 (step 32). S16).
  • the access device 240 performs the processing of steps S17 to S19 in the same manner as the access device 200 according to Embodiment 1, and ends the access processing.
  • the first area and the second area are continuously arranged for each group. Therefore, when the access device 240 is provided with a ROM cache and the control unit 250 reads each compressed code from the ROM cache as in Modification 3 described below, the specific compressed code is obtained by one access. Can be read out.
  • the access control device includes a ROM cache 11 in addition to the control circuit 250a instead of the control unit 250 of the access device 240.
  • the ROM cache 11 stores a copy of at least a part of each compressed code on the ROM 10, and has an address value “addr [15: 0]” sent from the control circuit 250 a via the reading unit 202. On the other hand, the data stored in “addr + 0”, “addr + 1”, and “addr + 2” are output.
  • control circuit 250a reads the compressed code obtained by compressing the desired uncompressed code from the ROM cache 11 by the processor 40.
  • FIG. 18 is a diagram illustrating a circuit configuration of the control circuit 250a of the access device according to the third modification.
  • ADDR address value input from the processor 40 via the input unit 201
  • addr address value sent to the ROM cache 11 via the reading unit 202
  • ADDR and addr are 16 bits.
  • N is 16 bits
  • the ROM cache 11 outputs 16 bits of data0, data1, and data2 for 16 bits of addr.
  • control circuit 250a of the access device according to the modification 3 is a circuit including an adder 253, selectors 254a to 254c, and D flip-flops 255a and 255b.
  • the decompression unit 203 acquires and decompresses the DATA output from the control circuit 250a as an effective compressed code.
  • control circuit 250a will be described in detail by taking as an example the case where the address value (2) of the uncompressed code C3 shown in FIG.
  • ADDR [1: 0] is “10”
  • the input on the “10” side is selected in the selector 254a
  • data2 [7: 1] (C31) is output from the selector 254a as DATA [6: 0] and input to the D flip-flop 255a.
  • ADDR [1] is “1”
  • the input on the “1” side is selected in the selector 254b
  • the input on the “1” side is selected in the selector 254c because the INFO is “1”. . Therefore, ⁇ 0, data1 [15: 8] ⁇ including the data C32 is output from the selector 254c and input to the D flip-flop 255b.
  • the DATA (DATA [6: 0] and DATA [15: 7]) output from the control circuit 250a is acquired by the decompression unit 203 and decompressed.
  • the first region and the second region are continuously arranged for each group as illustrated in FIG.
  • the arrangement determining device, the arrangement determining method, the data structure, the memory, the access device, and the memory access method according to the present invention are based on each embodiment and each modification (hereinafter also simply referred to as “embodiment”).
  • the present invention can be modified as follows, and the present invention is limited to the arrangement determination device, the arrangement determination method, the data structure, the memory, the access device, and the memory access method as described in the above embodiment. Of course, this is not possible.
  • the N-bit uncompressed code shown in FIG. 3A, FIG. 9A, and FIG. As an example of the compressed data of less than M N bits according to the invention, the compressed codes of less than N bits shown in FIG. 3A, FIG. 9A, and FIG.
  • the M pieces of N-bit data and the compressed data of less than M pieces of N bits according to the present invention may be other data.
  • N 16 has been described as an example.
  • the present invention is not limited to this, and N may be larger or smaller than this.
  • the flag is 1 bit in the first and third embodiments and 2 bits in the second embodiment.
  • the present invention is not limited to this, and the bit length of the flag is larger than these examples. Also good.
  • the arrangement determining device according to the embodiment has been described as determining the arrangement of each compressed code on the ROM 10, and the access device according to the embodiment has been described as accessing the ROM 10. .
  • the arrangement determining apparatus according to the present invention is not limited to the ROM, and the arrangement of each compressed code in a memory other than the ROM may be determined.
  • the access apparatus according to the present invention may be other than the ROM.
  • the memory may be accessed.
  • the maximum data length of the first data is N / 2-1, and in the second embodiment, the maximum data length of the first data is N / 2-2. explained.
  • the maximum data length of the first data described in the embodiment is an example and may be other than this.
  • the maximum data length of the first data is determined by determining how many compressed codes an area for one address (N bits in the embodiment) of the address addr on the ROM 10 according to the embodiment is shared. It will be.
  • the maximum data length of the first data in the first and third embodiments can be set to N / i ⁇ 1.
  • the maximum data length of the data can be N / i-2.
  • the maximum data length of the second data described in the embodiment is an example and may be other than this.
  • the maximum data length of the second data can be set to N / 4, and one specific compressed data In the case of sharing the data, the maximum data length of the second data can be set to N. That is, the number of compressed data sharing an area corresponding to one address of the address addr on the ROM 10 in the first area where the first data is arranged, and the address addr on the ROM 10 in the second area where the second data is arranged.
  • the number of specific compressed data sharing an area for one address is not limited to the same case, and may be different.
  • the start address of the second data is M / 2 in the first embodiment (see Equations 2 and 4), and M / 2 and 3 ⁇ M / 4 in the second embodiment (see Equations 6 to 8). It was explained as being. However, these are only examples, and the start address can be changed as appropriate.
  • the second data is arranged between the areas (for example, area 21a in FIG. 15B) in which the first data of the respective compressed codes related to the four address values in the same set is arranged.
  • a region for example, area 22a in FIG. 15B
  • this arrangement is only an example, and it is sufficient that an area in which the second data is arranged is provided in the vicinity of the area in which the first data is arranged for each group.
  • the area where the first data is arranged may be set continuously, and the area where the second data is arranged may be set following the area, or the area where the second data may be arranged, You may set the area
  • the number of address values belonging to one set is not limited to this. Further, the address values belonging to one set do not necessarily have to be continuous.
  • the arrangement determining device according to the embodiment has been described as including the compression unit 102, and the access device according to the embodiment as including the expansion unit 203.
  • the compression unit 102 is not an essential configuration of the arrangement determining device, and may be realized by another device. In that case, for example, it is necessary to modify the storage device 20 so that each compressed code generated by another device and each data length information indicating the data length are stored in association with each other. Then, the arrangement determining device according to this modification stores each compressed code read from the storage device 20 in the determined code memory area 22 with the determined arrangement.
  • the decompression unit 203 is not an essential component of the access device, and may be realized by another device.
  • the ROM cache 11 stores a copy of at least a part of each compressed code on the ROM 10, and an address value “addr” sent from the control circuit 250a via the reading unit 202.
  • the data stored in “addr + 0”, “addr + 1”, and “addr + 2” has been described.
  • the ROM cache 11 may not be used. That is, the compressed code may be read directly from the ROM 10 as in the first and second modifications. However, in this case, two cycles are required after reading the address value ADDR from the processor 40 to read out one specific compressed code.
  • each specific compressed data is converted into X data (Xa bit in the first and third embodiments, Xb bit in the second embodiment) of the specific compressed data as the first data.
  • X data Xa bit in the first and third embodiments, Xb bit in the second embodiment.
  • the entire portion excluding the X bit from the specific compressed data has been described as being divided into two as the second data.
  • the number of divisions of each specific compressed data described in the embodiment is an example, and may be divided into three or more.
  • the portion of the specific compressed data excluding the Xc bits (Xc ⁇ N) included in the first data and the Y bits (Y ⁇ N) included in the second data Is placed in a memory location such as the ROM 10 indicated by a result value obtained by performing the third operation on the address value ADDR_a in the uncompressed block of the uncompressed code that is the basis of the specific compressed data.
  • a memory location such as the ROM 10 indicated by a result value obtained by performing the third operation on the address value ADDR_a in the uncompressed block of the uncompressed code that is the basis of the specific compressed data.
  • the third calculation is different from the first calculation and the second calculation.
  • the second data since the third data may not exist depending on the data length of the specific compressed data, in order to identify the presence of the third data, the second data has a data length of the specific compressed data from Xc + Y bits. It is necessary to include a flag (for example, 1 bit) indicating that it is large.
  • each component described in the first to third embodiments realizes its function by cooperating with the processors included in the arrangement determining device and the access device.
  • the program can be recorded on a recording medium or distributed and distributed via various communication paths.
  • a recording medium includes an IC card, a hard disk, an optical disk, a flexible disk, a ROM, a flash memory, and the like.
  • the distributed and distributed program is used by being stored in a memory or the like that can be read by a processor in the device, and the processor executes the program so that the arrangement determining apparatus described in the first to third embodiments is used. Each function of the access device is realized.
  • An arrangement determining apparatus determines an arrangement of memory for compressed data of less than M N bits compressed based on each of M N bit data constituting a data block. For each of the general compressed data whose data length is X bits (X ⁇ N) or less among the M pieces of compressed data, the entire general compressed data and at least the data length of the general compressed data are First data of L bits (X ⁇ L ⁇ N) or less including a flag indicating X bits or less is set to the address value in the data block of the N bit data that is the basis of the general compressed data. For each of the specific compressed data whose data length is larger than X bits among the M compressed data, it is decided to arrange at the memory location indicated by the result value obtained by the operation.
  • the L-bit first data consisting of X bits of the specific compressed data and at least a flag indicating that the data length of the specific compressed data is larger than X bits is used as the basis of the specific compressed data.
  • First determination means for determining to be arranged at a memory location indicated by a result value obtained by performing a first operation on an address value in the data block of bit data; and for each of the specific compressed data, the first data from the specific compressed data.
  • the second data including part or all of the portion excluding the X bits included in the second compressed data is different from the first operation in the address value in the data block of the N-bit data that is the basis of the specific compressed data.
  • Second determining means for determining to be arranged at a memory location indicated by a result value obtained by the operation, wherein the second operation includes M pieces of N-bit data, respectively.
  • the same result value is generated even if the second operation is performed on any address value in the same set, and It is an operation in which a result value different from a result value generated by performing the second operation on each address value in any other set is generated.
  • each result value indicates a different position in the first area in the memory.
  • each result value is set in the first area in the memory. It is good also as showing the position in the 2nd field which continues.
  • an arrangement determination method is an arrangement determination that determines a memory arrangement for compressed data of less than M N bits compressed based on each of M N bit data constituting a data block.
  • An arrangement determination method in an apparatus wherein among general compressed data having a data length of X bits (X ⁇ N) or less among M compressed data, the entire general compressed data and at least the general compressed data
  • the first data of L bits (X ⁇ L ⁇ N) or less comprising a flag indicating that the data length is X bits or less is used as the address value in the data block of the N bit data that is the basis of the general compressed data Is determined to be placed at the memory location indicated by the result value obtained by performing the first operation, and among the M compressed data, the specific compressed data having a data length larger than X bits is determined.
  • the L-bit first data consisting of X bits of the specific compressed data and at least a flag indicating that the data length of the specific compressed data is greater than X bits is used as the base of the specific compressed data.
  • the second calculation including the second data including a part or all of the portion excluding the X bit included in the first data is performed on the address value in the data block of the N-bit data that is the basis of the specific compressed data.
  • a second determination step of determining to arrange at a memory location indicated by a result value obtained by performing a different second operation includes: Of the address values in the data block for each of N pieces of N-bit data, the same operation is performed regardless of which address value in the same set is subjected to the second calculation for each set of K (K ⁇ M). And a result value different from the result value generated by performing the second operation on each address value in any other set.
  • each compressed data is a basis of the compressed data.
  • the N-bit data in the data block address value is determined to be arranged at a memory location indicated by a result value obtained by performing a predetermined operation (first operation or first operation and second operation).
  • the compressed data corresponding to the N-bit data desired by the processor is stored in the address value of the N-bit data from the memory in which each compressed data is arranged at the position determined by the arrangement determining device and the arrangement determining method. It is possible to read from the memory location indicated by the result value obtained by performing the above calculation. That is, compressed data corresponding to N-bit data desired by the processor can be read without using an address conversion table.
  • the second data includes a part of the portion excluding the X bit included in the first data
  • the X bit included in the first data and the specification included in the second data from the specific compressed data.
  • the third operation which is a portion excluding the data constituting the compressed data, is different from the first operation and the second operation in the address value in the data block of the N-bit data that is the basis of the specific compressed data What is necessary is just to determine to arrange
  • the compressed data corresponding to the N-bit data desired by the processor is stored in the address conversion table by placing it at the memory location indicated by the result value obtained by performing the first operation, the second operation and the third operation). Reading without using it becomes possible.
  • the first area is an area of N ⁇ M / 2 bits, and the first determining means sets the flag to F bits, and selects compressed data having a data length greater than N / 2 ⁇ F bits.
  • the specific compressed data for each of M compressed data, the first data is arranged at a memory location indicated by a result value obtained by dividing the address value in the data block of N-bit data that is the basis of the compressed data by 2. It is good also as deciding to do.
  • This arrangement determining device is a result of a simple operation of dividing the position in memory where the first data of each compressed data is arranged by dividing the address value in the data block of the N-bit data that is the basis of the compressed data by 2. Determined by
  • the first data of the compressed data corresponding to the N-bit data desired by the processor is used as the address value of the N-bit data from the memory in which each compressed data is arranged at the position determined by the arrangement determining device. It is possible to read from the memory location indicated by the result value obtained by performing the above simple calculation.
  • the second area is an N ⁇ M / 4-bit area, and the second operation is performed by setting two sets of two address values in the data block of each of M N-bit data. It is good also as the calculation which produces the result value which shows the memory position shifted
  • each area divided into N / 2 bits in the second area is shared as an area for arranging the second data of the two compressed data related to the two block address values belonging to the same set. It will be.
  • the arrangement determining apparatus can perform the compression corresponding to the N-bit data desired by the processor.
  • the memory capacity required for arranging the M pieces of compressed data can be suppressed without using an address conversion table.
  • the second area is an area of N ⁇ M ⁇ 3/8 bits, and the second operation is performed by calculating four out of the address values in the data block for each of the M N-bit data. This is an operation for generating a result value indicating three memory locations for each set, and the second determining means determines the second data of the specific compressed data for each specific compressed data. Among the three memory locations indicated by the result value obtained by performing the second operation on the address value in the data block of the N-bit data that is the basis of the compressed data, the second data of the other specific compressed data is not arranged. The flag included in the first data further determines that the second data of the specific compressed data including the first data is selected from any of the three memory locations.
  • memory The data may be 2-bit data indicating whether the data is arranged at the position.
  • three areas are shared as areas for arranging the second data of the four compressed data related to the address values in the four blocks belonging to the same set.
  • this arrangement determining device can handle the N-bit data desired by the processor.
  • the memory capacity required for arranging the M pieces of compressed data can be suppressed without using an address conversion table.
  • the compressed data corresponding to the N-bit data desired by the processor is the specific compressed data
  • the first data of the specific compressed data is read and the flag is referred to, so that any one of the above three areas is read. It is possible to easily determine whether the second data of the specific compressed data is arranged in the area.
  • the first calculation and the second calculation are performed for each set in which J (K ⁇ J ⁇ M) is one set out of the address values in the data block of M N-bit data.
  • J K ⁇ J ⁇ M
  • a result value indicating a position in the first area in the memory is generated, and each address value in the other set is set to each address value in the other set.
  • a result value indicating a position in a second area different from the first area in the memory may be generated.
  • the first data and the second data constituting the specific compressed data can be arranged in the vicinity.
  • the memory in which each compressed data is arranged at the position determined by this arrangement determining device can output data for a plurality of addresses, for example, for one address value specifying the memory position.
  • a memory having a so-called burst transfer function it is possible to increase the possibility that one specific compressed data can be read out by one access.
  • the first operation in the same set is performed for each set of four consecutive address values among the address values in the data block of each of the M N-bit data.
  • the same result value indicating the same position in the partial area in the first area is generated, and the third and fourth address values in the same set are generated.
  • the second operation is performed, the same position in the partial area shifted by N / 2 bits from the same memory position indicated by the result value obtained by performing the second operation on the first and second address values is obtained.
  • the first operation is performed for each address value for each set of 4 out of the address values in the data block for each of M N-bit data.
  • the front in the first area May be the operation result value indicating a different position occurs a partial region.
  • This arrangement determination device arranges each compressed data related to four address values having consecutive address values in a block in the same memory range.
  • the memory in which the compressed data is arranged at the position determined by the arrangement determining device is, for example, a memory having the above-described so-called burst transfer function
  • the four consecutive data can be accessed once.
  • the possibility that the compressed data related to the address value in the data block can be read together can be increased.
  • each compressed data determined by this arrangement determining apparatus is particularly useful in a case where compressed data related to a nearby address value is read.
  • the program execution has a property such as spatial locality, it can be used when the compressed data is a compressed program code.
  • the data structure according to an embodiment of the present invention has M data compressed based on each of M N-bit data as constituent elements of a program code block arranged and operated in a continuous memory area.
  • the L-bit first data composed of X bits of the specific compressed data and at least a flag indicating that the data length of the specific compressed data is larger than X bits
  • the N-bit data that is the basis of the specific compressed data is arranged at a memory location indicated by a result value obtained by performing a first operation on the address value in the continuous memory area.
  • the second data including a part or the whole of the portion excluding the X bits included in one data is converted into the address value in the continuous memory area of the N-bit data that is the basis of the specific compressed data, Are arranged at memory locations indicated by the result values obtained by performing different second operations, and the second operation is performed by adding each of M N-bit data.
  • the same result value is produced even if the second operation is performed on any address value in the same set, and any other value It is an operation in which a result value different from a result value generated by performing the second operation on each address value in the set is generated.
  • the processor when the second data is the whole of the portion excluding the X bits included in the first data, the processor can execute from the memory in which each compressed data is arranged in this data structure.
  • the compressed data corresponding to the desired N-bit data can be read without using the address conversion table.
  • a memory is a memory in which each of M pieces of compressed data less than N bits compressed based on each of M pieces of N bit data constituting a data block is arranged.
  • a first memory area and a second memory area, and the first memory area includes, for each of the general compressed data having a data length of X bits (X ⁇ N) or less among the M pieces of compressed data.
  • the general data in which the general compressed data is arranged and the first data having L bits (X ⁇ L ⁇ N) or less including at least a flag indicating that the data length of the general compressed data is X bits or less is arranged.
  • L-bit first data composed of X bits of the specific compressed data and at least a flag indicating that the data length of the specific compressed data is larger than X bits is arranged.
  • the second memory area is an area indicated by a result value obtained by performing a first operation on the address value in the data block of the N-bit data that is the basis of the specific compressed data, and the second memory area is the specific compressed data for each of the specific compressed data
  • the second data including a part or the whole of the data excluding the X bit included in the first data is arranged.
  • the memory may be a ROM (Read Only Memory).
  • the compressed data corresponding to the N-bit data desired by the processor is stored in the address conversion table. Reading without using it becomes possible.
  • An access device is an access device that accesses the memory described in (h) above, and receives an address value for accessing one N-bit data of the processor.
  • a first operation on the address value received by the input means, and the result value of the first operation indicates the entire compressed data or X bits compressed based on the one N-bit data;
  • First specifying means for specifying a position on the memory where first data of L bits or less comprising at least a flag indicating whether or not the compressed data is larger than X bits; and the first specifying means comprises:
  • a part or the whole of the portion obtained by performing a second operation different from the first operation on the received address value and excluding the X bit included in the first data from the compressed data indicated by the result value of the second operation The second specifying means for specifying the position on the memory where the second data including the data is arranged, and the first data included in the first data arranged
  • a memory access method is a memory access method in an access device that accesses a memory described in (h) above, and an address value for accessing one N-bit data of a processor is obtained.
  • An input step that is received, and a first operation is performed on the address value received in the input step, and the entire compressed data or X bit portion compressed based on the one N-bit data indicated by the result value of the first operation
  • a first specifying step for specifying a position on the memory where first data of L bits or less comprising at least a flag indicating whether or not the compressed data is larger than X bits, and the first specifying The flag in the first data arranged at the position on the memory identified in the step indicates that the compressed data is X bits.
  • the address value received in the input step is subjected to a second operation different from the first operation, and is included in the first data from the compressed data indicated by the result value of the second operation
  • a second specifying step for specifying the position on the memory where the second data including a part or all of the portion excluding the X bit is arranged, and the position on the memory specified in the first specifying step The entire first data or X bits of the arranged first data is output, and when the position on the memory is specified in the second specifying step, the first data arranged at the position on the memory is stored.
  • the same result value is generated even if the second operation is performed on any address value in the same group, and the result value generated by performing the second operation on each address value in any other group It is an operation that produces different result values.
  • the access device and the memory access method when the second data is the entire portion excluding the X bits included in the first data, the compressed data corresponding to the N-bit data desired by the processor is obtained. It becomes possible to read without using the address conversion table.
  • the access device may further include decompression means for decompressing the compressed data and sending the obtained N-bit data to the processor.
  • the processor can acquire desired N-bit data obtained by decompressing the compressed data.
  • the arrangement determining apparatus is used when determining a memory arrangement for compressed data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Stored Programmes (AREA)

Abstract

配置決定装置は、データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データそれぞれについて、当該圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に、当該圧縮データのうちの最大でXビット分と当該圧縮データがXビットより大きいか否かを示すフラグとを配置するよう決定し、当該圧縮データがXビットより大きい場合には、当該圧縮データについての前記アドレス値に第2演算を施した結果値が示すメモリ位置に、当該圧縮データのうちの残りのデータの一部又は全体を配置するよう決定する。

Description

配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
 本発明は、プロセッサによるメモリアクセス技術に関する。
 複数のデータそれぞれを基に圧縮した複数の圧縮データが配置されたROM等のメモリから、プロセッサが所望する任意の非圧縮データに対応する圧縮データを読み出す際の技術として、例えば特許文献1の技術が知られている。
 特許文献1の技術は、プロセッサが所望するプログラムコードを圧縮した可変長の圧縮プログラムコードを、アドレス変換テーブルを用いて読み出すものである。
 このアドレス変換テーブルには、プロセッサが各プログラムコードを読み出す際に用いる各アドレス値と、各プログラムコードに対応する各圧縮プログラムコードが配置されているメモリ上の位置を示すアドレス値とが対応付けて登録されている。
 即ち、特許文献1の技術は、プロセッサから取得した所望のプログラムコードを読み出すためのアドレス値を、このアドレス変換テーブルを用いて変換し、変換後のアドレス値が示すメモリ上の位置から、該当の圧縮プログラムコードを読み出すというものである。
特開2007-234048号公報
 しかしながら、特許文献1の技術では、プロセッサが所望するプログラムコードに対応する圧縮プログラムコードをメモリから読み出すために、上記アドレス変換テーブルを参照する必要がある。従って、特許文献1の技術では、このアドレス変換テーブルを記憶するためのメモリ領域を確保しなければならない。
 そこで、本発明は、アドレス変換テーブルを用いることなく、プロセッサが所望するデータに対応する圧縮データを、メモリから読み出せるようにするための技術を提供することを目的とする。
 上記課題を解決するために、本発明に係る配置決定装置は、データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置を決定する配置決定装置であって、M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定し、M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定する第1決定手段と、前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置するよう決定する第2決定手段とを備え、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であることを特徴とする。
 上記構成を備える本発明に係る配置決定装置によれば、この配置決定装置により決定された配置で各圧縮データが配置されているメモリから、プロセッサが所望するNビットデータに対応する圧縮データを、アドレス変換テーブルを用いることなく読み出し得る。
実施の形態1に係る配置決定装置100の主要部の機能構成を示すブロック図 実施の形態1に係るアクセス装置200の主要部の機能構成を示すブロック図 M個のNビットの非圧縮コードそれぞれを圧縮した結果例及び各圧縮コードのROM10への配置例を示す図 配置決定装置100の配置決定処理を示すフローチャート アクセス装置200のアクセス処理を示すフローチャート 変形例1に係るアクセス装置の制御回路210aの回路構成を示す図 実施の形態2に係る配置決定装置120の主要部の機能構成を示すブロック図 実施の形態2に係るアクセス装置220の主要部の機能構成を示すブロック図 M個のNビットの非圧縮コードそれぞれを圧縮した結果例及び各圧縮コードのROM10への配置例を示す図 配置決定装置120の配置決定処理を示すフローチャート アクセス装置220のアクセス処理を示すフローチャート 変形例2に係るアクセス装置の制御回路230aの回路構成を示す図 実施の形態3に係る配置決定装置140の主要部の機能構成を示すブロック図 実施の形態3に係るアクセス装置240の主要部の機能構成を示すブロック図 M個のNビットの非圧縮コードそれぞれを圧縮した結果例及び各圧縮コードのROM10への配置例を示す図 配置決定装置140の配置決定処理を示すフローチャート アクセス装置240のアクセス処理を示すフローチャート 変形例3に係るアクセス装置の制御回路250aの回路構成を示す図
 以下、本発明に係る配置決定装置及びメモリアクセス装置の一実施形態を、図面を参照しながら説明する。
 ≪実施の形態1≫
 <1.概要>
 実施の形態1に係る配置決定装置は、M個のNビットの非圧縮プログラムコードそれぞれを基に圧縮したM個の圧縮プログラムコードの、本発明に係るメモリの一実施形態であるROM(Read Only Memory)への配置を決定する装置である。以下、「プログラムコード」のことを単に「コード」ともいう。
 この配置決定装置は、上記M個の非圧縮コードからなる非圧縮ブロック内の各非圧縮コードのアドレス値に所定の演算を施した結果値に基づいて、各圧縮コードの配置を決定する。
 具体的には、この配置決定装置は、非圧縮ブロック内の各非圧縮コードのアドレス値に、第1演算を施した結果値に基づいて、各圧縮コードのうちのXaビット(Xa<N)分の配置を決定する。また、この配置決定装置は、非圧縮ブロック内のデータ長がXaビットより大きい各圧縮コード(以下、「特定圧縮コード」ともいう)のアドレス値に、第2演算を施した結果値に基づいて各特定圧縮コードから上記Xaビット分を除いた部分の配置を決定する。なお、第1演算及び第2演算の内容は後述する。
 また、実施の形態1に係るアクセス装置は、プロセッサが所望する非圧縮コードに対応する圧縮コード(以下、「対象圧縮コード」ともいう)が配置されている上記ROM上の位置を特定して読み出し、読み出した対象圧縮コードを伸長して、プロセッサに送出する装置である。
 このアクセス装置も上記配置決定装置と同様に、第1演算及び第2演算を用いて、対象圧縮コードが配置されているROM上の位置を特定する。
 このように、実施の形態1に係る配置決定装置及びアクセス装置によれば、アドレス変換テーブルを用いることなく、所定の演算(第1演算及び第2演算)を用いて圧縮コードの配置の決定し、圧縮コードの位置を特定することができる。
 <2.機能構成>
  <2-1.配置決定装置>
 まず、配置決定装置100の機能構成について説明する。
 図1は、実施の形態1に係る配置決定装置100の主要部の機能構成を示すブロック図である。
 同図に示すように、配置決定装置100は、記憶装置20及び書込装置30と接続しており、アクセス部101、圧縮部102及び制御部110を備える。なお、配置決定装置100は、プロセッサ及びメモリを含むコンピュータであり、圧縮部102及び制御部110の各機能は、上記メモリに格納されたプログラムを上記プロセッサが実行することで実現される。
 アクセス部101は、制御部110の指示に従って、M個の非圧縮コード用のメモリ領域21及びM個の圧縮コード用のメモリ領域22を有する記憶装置20にアクセスし、非圧縮コードの読み出し及び圧縮コードの書き込みを行う機能を有する。
 圧縮部102は、制御部110の指示に従って、アクセス部101が読み出したNビット(例えば、16ビット)の非圧縮コードに対し圧縮処理を行い、Nビット未満の圧縮コードを生成する機能を有する。圧縮部102は、生成した圧縮コード及びその圧縮コードのデータ長を示す情報(以下、「データ長情報」という)を、制御部110に送出する。
 制御部110は、配置決定装置100内の各ブロックへの指示を行う機能の他、圧縮部102から受領した圧縮コードのROM10への配置を決定し、この決定した配置になるように、アクセス部101を介して、各圧縮コードを記憶装置20の圧縮コード用のメモリ領域22に格納する機能を有する。
 制御部110は、第1決定部111及び第2決定部112を含む。
 第1決定部111は、圧縮部102から受領した圧縮コードのうちのXaビット(この例では、N/2-1、つまり7ビットとする)分を、その圧縮コードの基となった非圧縮コードの非圧縮ブロック内アドレス値ADDR_aに第1演算を施した結果値addr_a1が示すROM10上の位置に配置するよう決定する機能を有する。なお、このアドレス値ADDR_aは、Nビット単位について割り振られたものである。
 第1演算の一例を数1に示す。
  [数1]
 addr_a1=ADDR_a/2
 第2決定部112は、圧縮部102から受領したXaビットより大きい圧縮コード(特定圧縮コード)からXaビット分のデータを除いた残りのデータを、その圧縮コードの基となった非圧縮コードの非圧縮ブロック中のアドレス値ADDR_aに第2演算を施した結果値addr_a2が示すROM10上の位置に配置するよう決定する機能を有する。第2演算の一例を数2に示す。
  [数2]
 addr_a2=M/2+Round1/2(ADDR_a/4)
 ここで、Mは、非圧縮コードの個数であり、圧縮コードの個数でもある。また、Round1/2(ADDR_a/4)は、ADDR_aを4で除算した結果を、1/2単位で丸めた結果値を返す関数である。
 制御部110は、M個の圧縮コードそれぞれについて、第1決定部111及び第2決定部112で決定された配置になるように、アクセス部101を介して、記憶装置20の圧縮コード用のメモリ領域22に格納する。
 なお、制御部110は、各圧縮コードについて、その圧縮コードのうちのXaビット(上述の例では、N/2-1)分に、その圧縮コードがXaビットより大きいか否かを示す1ビットのフラグを付与して、第1決定部111が決定した配置になるように記憶装置20に格納する。
 以下では、この圧縮コードのうちのXaビット分と1ビットのフラグとからなるデータを、「第1データ」ともいい、Xaビットより大きい特定圧縮コードから、第1データに含まれるこのXaビット分を除いた部分のデータを「第2データ」ともいう。
 制御部110は、アクセス部101を介して、M個の圧縮コード全てについての圧縮コード用のメモリ領域22への格納が完了した際に、いわゆるROMライターである書込装置30にROM10への書込指示を行う。
 この指示を受けた書込装置30は、記憶装置20の圧縮コード用のメモリ領域22における配置を維持して、ROM10に各圧縮コードを書き込む。
  <2-2.アクセス装置>
 図2は、実施の形態1に係るアクセス装置200の主要部の機能構成を示すブロック図である。
 ここで、ROM10には、配置決定装置100が決定した配置で各圧縮コードが格納されているものとする。
 同図に示すように、アクセス装置200は、入力部201、読出部202、伸長部203及び制御部210を備える。なお、アクセス装置200は、プロセッサ(プロセッサ40とは別のプロセッサである)及びメモリを含むコンピュータであり、伸長部203及び制御部210の各機能は、上記メモリに格納されたプログラムを上記プロセッサが実行することで実現される。
 入力部201は、プロセッサ40から、所望する非圧縮コードにアクセスするためのアドレス値ADDR_bを受け付けて、制御部210に送出する機能を有する。
 なお、このアドレス値ADDR_bは、Nビット単位について割り振られたものである。
 読出部202は、制御部210の指示に従って、ROM10から第1データ及び第2データを読み出し、制御部210に送出する機能を有する。
 伸長部203は、制御部210から送出された圧縮コードを伸長し、得られた非圧縮コードをプロセッサ40に送出する機能を有する。
 制御部210は、アクセス装置200内の各ブロックへの指示を行う機能の他、入力部201から受領したアドレス値ADDR_bに基づいて、プロセッサ40が所望する非圧縮コードに対応する圧縮コード(対象圧縮コード)を、読出部202を介して、ROM10から読み出し、伸長部203に送出する機能を有する。
 制御部210は、第1特定部211、第2特定部212及び出力部213を含む。
 第1特定部211は、入力部201から受領したアドレス値ADDR_bに第1演算を施した結果値addr_b1が示すROM10上の位置を、対象圧縮コードのうちのXaビット分のデータを含む第1データが配置されている位置として特定する機能を有する。
 第1演算の一例を数3に示すが、この第1演算は、配置決定装置100の第1決定部111による第1演算(数1参照)と同様のものである。
  [数3]
 addr_b1=ADDR_b/2
 なお、第1特定部211は、特定したROM10上の位置に配置されている第1データを、読出部202を介して読み出す機能も有する。
 第2特定部212は、入力部201から受領したアドレス値ADDR_bに第2演算を施した結果値addr_b2が示すROM10上の位置を、Xaビットよりも大きい特定圧縮コードからXaビット分を除いた第2データが配置されている位置として特定する機能を有する。
 第2演算の一例を数4に示すが、この第2演算は、配置決定装置100の第2決定部112による第2演算(数2参照)と同様のものである。
  [数4]
 addr_b2=M/2+Round1/2(ADDR_b/4)
 ここで、Mは、非圧縮コードであり、圧縮コードの個数でもある。また、Round1/2(ADDR_b/4)は、ADDR_bを4で除算した結果を、1/2単位で丸めた結果値を返す関数である。
 なお、第2特定部212は、特定したROM10上の位置に配置されている第2データを、読出部202を介して読み出す機能も有する。
 出力部213は、第1特定部211が読み出した第1データに含まれているXaビット分の圧縮コードと、第2特定部212が読み出した第2データとからなる対象圧縮コードとを、伸長部203に送出する機能を有する。
 なお、対象圧縮コードのデータ長がXaビット以下である場合には、第2データの読み出しは行われない。従って、この場合、出力部213は、第1特定部211が読み出した第1データに含まれている圧縮コードのみからなる対象圧縮コードを、伸長部203に送出することになる。
 <3.データ>
 以下では、ROM10のデータ構成について説明する。
 図3(a)は、M個のNビットの非圧縮コードそれぞれを圧縮した結果例を示す図である。
 同図に示すADDRは、各非圧縮コードについての非圧縮ブロック内アドレス値ADDR_a又はプロセッサ40が所望する非圧縮コードのアドレス値ADDR_bを示している(後述する図9(a)、図15(a)についても同様)。
 例えば、同図では、ADDRが「0」である非圧縮コードA1を圧縮した結果、圧縮コードA10が得られたことを示している。
 また、同図では、ADDRがそれぞれ「0」、「1」、「2」である非圧縮コードA1、B1、D1を圧縮した圧縮コードA10、B10、D10のデータ長は、Xaビット(この例では、N/2-1ビット)以下であることを示している。また、同図では、ADDRが「2」である非圧縮コードC1を圧縮した圧縮コードC10のデータ長が、Xaビット(この例では、N/2-1ビット)より大きいことを示している。
 また、図3(b)は、各圧縮コード(A10~D10)のROM10への配置例を示す図である。
 各圧縮コードが配置されるROM10内の領域area0は、第1領域area1と第2領域area2とからなる。なお、同図に示すaddrは、ROM10上のアドレス値を示している(後述する図9(b)、図15(b)についても同様)。
 第1領域area1は、各圧縮コードについての、その圧縮コードのうちのXaビット以下分と1ビットのフラグとからなる第1データが配置される物理的に連続した領域である。
 この例では、圧縮コードのデータ長がXaビット以下である場合のフラグの値を「0」とし、Xaビットより大きい場合のフラグの値を「1」としている。
 第2領域area2は、データ長がXaビットより大きい各特定圧縮コードの第2データが配置される物理的に連続した領域である。
 即ち、データ長がXaビット以下である各圧縮コードは、数1の結果値addr_a1が示す第1領域area1内の位置に格納されることになる。また、データ長がビットより大きい各特定圧縮コードは、数1の結果値addr_a1が示す第1領域area1内の位置と、数2の結果値addr_a2が示す第2領域area2内の位置とに分割して格納されることになる。なお、数1及び数2を用いた各圧縮コードの配置決定方法については、以下の<4.動作>の<4-1.配置決定処理>及び<4-2.配置決定処理の具体例>において詳しく説明する。
 図3(a)の例では、圧縮コードA10、B10、D10のデータ長はN/2-1以下であり、圧縮コードC10のデータ長はN/2-1より大きい。従って、この例では、圧縮コードC10についてのみ第2データが格納されることになる。
 即ち、図3(b)の例では、圧縮コードA10とB10とがそれぞれ、ROM10の第1領域area1内のaddrが「0」である領域の下位N/2ビット分の領域と上位N/2ビット分の領域とに配置される。また、圧縮コードC10のXaビット分のデータC11と圧縮コードD10とがそれぞれ、ROM10の第1領域area1内のaddrが「1」である領域の下位N/2ビット分の領域と上位N/2ビット分の領域とに配置される。また、圧縮コードC10からXaビット分のデータC11を除いた第2データC12が、ROM10の第2領域area2内のaddrが「M/2」である領域の上位N/2ビット分の領域に配置される。
 なお、図中では、各圧縮コードの有効データ長のイメージをハッチで示している(後述する図9(b)、図15(b)についても同様)。実装においては、伸長部203で伸長したときに、元の固定長(Nビット)の非圧縮コードが得られれば足りるので、有効データ長の境界が明示される必要はない。
 <4.動作>
 次に、上記構成を備える配置決定装置100及びアクセス装置200の動作について説明する。
  <4-1.配置決定処理>
 まずは、配置決定装置100の配置決定処理について説明する。
 図4は、配置決定装置100の配置決定処理を示すフローチャートである。
 まず、配置決定装置100における制御部110は、処理対象の非圧縮コードの非圧縮ブロック内アドレス値ADDR_a(変数)を「0」に初期化する(ステップS1)。
 制御部110は、M個の非圧縮コード全てについて、以下説明するステップS3以降の処理を完了した否かを判定する(ステップS2)。
 ステップS3以降の処理を完了していない場合に(ステップS2:NO)、制御部110は、アドレス値ADDR_aが示す記憶装置20の非圧縮コード用の領域21内の位置に格納されている非圧縮コードを、アクセス部101を介して読み出す(ステップS3)。
 制御部110は、読み出した非圧縮コードを圧縮部102に送出し、圧縮部102は、受領した非圧縮コードを圧縮し、圧縮コード及びその圧縮コードのデータ長を示すデータ長情報を、制御部110に送出する(ステップS4)。
 制御部110の第1決定部111は、アドレス値ADDR_aに第1演算(数1参照)を施し(ステップS5)、制御部110は、圧縮部102から受領したデータ長情報が示すデータ長がXaビットより大きいか否かを判定する(ステップS6)。
 圧縮部102から受領したデータ長情報が示すデータ長がXaビット以下である場合に(ステップS6:NO)、制御部110は、フラグとステップS4で受領した圧縮コードとを、ステップS5の第1演算の結果値addr_a1が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS8)。このときのフラグは、圧縮コードのデータ長がXaビット以下であることを示すように「0」に設定される。
 一方、圧縮部102から受領したデータ長情報が示すデータ長がXaビットより大きい場合に(ステップS6:YES)、制御部110の第2決定部112は、アドレス値ADDR_aに第2演算を施す(ステップS7)。
 続いて、制御部110は、フラグとステップS4で受領した圧縮コードのXaビット分とを、ステップS5の第1演算の結果値addr_a1が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む。このときのフラグは、圧縮コードのデータ長がXaビットより大きいことを示すように「1」に設定される。また、制御部110は、ステップS4で受領した圧縮コードからXaビット分を除いた残りを、ステップS7の第2演算の結果値addr_a2が示す圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS8)。
 ステップS8の処理を完了すると、制御部110は、アドレス値ADDR_aを、1加算した値に更新し(ステップS9)、再びステップS2から処理を行う。
 M個の非圧縮コード全てについて、ステップS3以降の処理を完了した場合に(ステップS2:YES)、制御部110は、記憶装置20の圧縮コード用の領域22に配置されている各圧縮コードを、ROM10に書き込むよう書込装置30に指示し(ステップS10)、配置決定処理を終了する。
 なお、書込装置30は、制御部110からのこの指示に従って、圧縮コード用の領域22に配置されている各圧縮コードを、この配置のままROM10に書き込むことになる。
  <4-2.配置決定処理の具体例>
 上述した配置決定装置100の配置決定処理について、図3に示す例を用いて、図4に示すフローチャートに即して具体的に説明する。
  (1)非圧縮コードA1についての処理
 まず、配置決定装置100における制御部110は、処理対象の非圧縮コードの非圧縮ブロック内アドレス値ADDR_aを「0」に初期化する(ステップS1)。
 この例では、M個の非圧縮コード全てについて、ステップS3以降の処理を完了していないので(ステップS2:NO)、制御部110は、アドレス値ADDR_a(0)が示す記憶装置20の非圧縮コード用の領域21内の位置に格納されている非圧縮コード(A1)を、アクセス部101を介して読み出す(ステップS3)。
 制御部110は、読み出した非圧縮コード(A1)を圧縮部102に送出し、圧縮部102は、受領した非圧縮コード(A1)を圧縮し、圧縮コード(A10)及びその圧縮コードのデータ長を示すデータ長情報を、制御部110に送出する(ステップS4)。
 制御部110の第1決定部111は、アドレス値ADDR_a(0)に第1演算(数1参照)を施す(ステップS5)。この第1演算の結果値addr_a1は、アドレス値ADDR_a(0)/2で「0」になる。
 この例では、圧縮部102から受領したデータ長情報が示すデータ長は、Xaビット以下である(ステップS6:NO)。従って、制御部110は、図3(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(A10)とを、ステップS5の第1演算の結果値addr_a1(0)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS8)。
 制御部110は、アドレス値ADDR_aを、1加算した値(1)に更新し(ステップS9)、再びステップS2から処理を行う。
  (2)非圧縮コードB1について
 非圧縮コードB1を圧縮した圧縮コードB10についても、上記圧縮コードA10と同様に処理されるため(ステップS2~S6、S8、S9)、詳細な説明は省略するが、ステップS5の第1演算の結果値addr_a1は、アドレス値ADDR_a(1)/2で「1/2」になる。また、図3(a)の例では、圧縮コードB10のデータ長は、Xaビット以下である。
 従って、図3(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(B10)とが、第1演算の結果値addr_a1(1/2)が示す記憶装置20の圧縮コード用の領域22内の位置に配置されることになる。
  (3)非圧縮コードC1について
 この例では、M個の非圧縮コード全てについて、ステップS3以降の処理を完了していないので(ステップS2:NO)、制御部110は、アドレス値ADDR_a(2)が示す記憶装置20の非圧縮コード用の領域21内の位置に格納されている非圧縮コード(C1)を、アクセス部101を介して読み出す(ステップS3)。
 制御部110は、読み出した非圧縮コード(C1)を圧縮部102に送出し、圧縮部102は、受領した非圧縮コード(C1)を圧縮し、圧縮コード(C10)及びその圧縮コードのデータ長を示すデータ長情報を、制御部110に送出する(ステップS4)。
 制御部110の第1決定部111は、アドレス値ADDR_a(2)に第1演算(数1参照)を施す(ステップS5)。この第1演算の結果値addr_a1は、アドレス値ADDR_a(2)/2で「1」になる。
 この例では、圧縮部102から受領したデータ長情報が示すデータ長は、Xaビットより大きい(ステップS6:YES)。従って、制御部110の第2決定部112は、アドレス値ADDR_aに第2演算を施す(ステップS7)。この第2演算の結果値addr_a2は、M/2+Round1/2(ADDR_a(2)/4)で、「M/2+1/2」になる。
 続いて、制御部110は、図3(b)に示すように、フラグ(1)とステップS4で受領した圧縮コード(C10)のXaビット分(C11)とを、ステップS5の第1演算の結果値addr_a1(1)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む。また、制御部110は、図3(b)に示すように、ステップS4で受領した圧縮コード(C10)からXaビット分を除いた残り(C12)を、ステップS7の第2演算の結果値addr_a2(M/2+1/2)が示す圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS8)。
 ステップS8の処理を完了すると、制御部110は、アドレス値ADDRを、1加算した値(3)に更新し(ステップS9)、再びステップS2から処理を行う。
  (4)非圧縮コードD1について
 非圧縮コードD1を圧縮した圧縮コードD10についても、上記圧縮コードB10と同様に処理され、図3(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(D10)とが、第1演算の結果値addr_a1(3/2)が示す記憶装置20の圧縮コード用の領域22内の位置に配置されることになる。
  <4-3.アクセス処理>
 次に、アクセス装置200のアクセス処理について説明する。
 図5は、アクセス装置200のアクセス処理を示すフローチャートである。
 まず、アクセス装置200における制御部210は、入力部201を介して、プロセッサ40から、所望する非圧縮コードのアドレス値ADDR_bを受け付ける(ステップS11:YES)。
 制御部210の第1特定部211は、アドレス値ADDR_bに第1演算(数3参照)を施し(ステップS12)、制御部210は、読出部202を介して、第1演算の結果値addr_b1が示すROM10の第1領域area1内の位置から第1データを読み出す(ステップS13)。
 制御部210は、読み出した第1データのフラグの値に基づいて、圧縮コードのデータ長がXaビットより大きいか否かを判定する(ステップS14)。
 フラグの値が「0」の場合に、制御部210は、圧縮コードのデータ長がXaビット以下であると判定し(ステップS14:NO)、制御部210の出力部213は、読み出した第1データに含まれている圧縮コードを伸長部203に出力する(ステップS17)。
 一方、フラグの値が「1」の場合に、制御部210は、圧縮コードのデータ長がXaビットより大きいと判定し(ステップS14:YES)、制御部210の第2特定部212は、アドレス値ADDR_bに第2演算を施す(ステップS15)。制御部210は、読出部202を介して、第2演算の結果値addr_b2が示すROM10の第2領域area2内の位置から第2データを読み出す(ステップS16)。制御部210の出力部213は、読み出した第1データに含まれている圧縮コードのうちのXaビット分と第2データとからなる圧縮コードを伸長部203に出力する(ステップS17)。
 ステップS17の処理を完了すると、伸長部203は、出力された圧縮コードを伸長し(ステップS18)、非圧縮コードをプロセッサ40に送出し(ステップS19)、アクセス処理を終了する。
  <4-4.アクセス処理の具体例>
 上述したアクセス装置200のアクセス処理について、図3に示す例を用いて、図5に示すフローチャートに即して具体的に説明する。
 以下では、プロセッサ40から、所望する非圧縮コードC1のアドレス値ADDR_b「2」を受領した場合を例にアクセス装置200のアクセス処理を説明する。
 アクセス装置200における制御部210は、入力部201を介して、プロセッサ40から、所望する非圧縮コード(C1)のアドレス値ADDR_b(2)を受け付ける(ステップS11)。
 制御部210の第1特定部211は、アドレス値ADDR_b(2)に第1演算(数3参照)を施す(ステップS12)。この第1演算の結果値addr_b1は、アドレス値ADDR_b(2)/2で「1」になる。
 制御部210は、読出部202を介して、第1演算の結果値addr_b1(1)が示すROM10の第1領域area1内の位置から第1データ(フラグ「1」とデータC11)を読み出す(ステップS13)。
 この例では、フラグの値が「1」なので、制御部210は、圧縮コードのデータ長がXaビットより大きいと判定し(ステップS14:YES)、制御部210の第2特定部212は、アドレス値ADDR_bに第2演算を施す(ステップS15)。この第2演算の結果値addr_b2は、M/2+Round1/2(ADDR_b(2)/4)で、「M/2+1/2」になる。
 制御部210は、読出部202を介して、第2演算の結果値addr_b2(M/2+1/2)が示すROM10の第2領域area2内の位置から第2データ(C12)を読み出す(ステップS16)。制御部210の出力部213は、読み出した第1データに含まれる圧縮コードのXaビット分(C11)及び第2データ(C12)からなる圧縮コードを伸長部203に出力する(ステップS17)。
 ステップS17の処理を完了すると、伸長部203は、出力された圧縮コードを伸長し(ステップS18)、非圧縮コード(C1)をプロセッサ40に送出し(ステップS19)、アクセス処理を終了する。
 <5.考察>
 実施の形態1に係る配置決定装置100によれば、アドレス変換テーブルを用いることなく、各圧縮コードのROM10上の配置の決定できると共に、一定条件下で、各圧縮コードを配置するROM10上の領域area0の容量削減に利用できる。
 アドレス値ADDR_aが「2×j」及び「2×j+1」(但し、j=0,1,・・・M/2)である2つの非圧縮コードを圧縮した各圧縮コードが共に特定圧縮コードでないことを条件に、各圧縮コードのROM10上の格納領域area0(図3(b)参照)の容量は、以下のようになる。
 即ち、格納領域area0の容量は、第1領域area1の容量(M×N/2ビット)+第2領域area2の容量(M×N/4ビット)=M×N×3/4ビットとなる。
 つまり、アドレス変換テーブルを使わない方法として最も簡単な方法は、M個の圧縮コードそれぞれをROM10上のNビットの領域にそのままに配置することが考えられるが、この場合の格納領域の容量M×Nと比較し、実施の形態1に係る配置決定装置100によれば、25%の容量削減が可能になる。
 また、実施の形態1に係るアクセス装置200についても同様に、アドレス変換テーブルを用いることなく、所定の演算(第1演算及び第2演算)を用いて対象圧縮コードの位置の特定を行うことができる。
 ≪変形例1≫
 実施の形態1では、アクセス装置200の制御部210の機能は、アクセス装置200のメモリに格納されたプログラムを、アクセス装置200が備えるプロセッサが実行することで実現するものとして説明したが、以下では、比較的簡単な構成の回路で実現するように変形した例を説明する。
 図6は、変形例1に係るアクセス装置の制御回路210aの回路構成を示す図である。
 なお、同図では、入力部201を介してプロセッサ40から入力されるアドレス値を、「ADDR」と表記し、読出部202を介してROM10に送出されるアドレス値を「addr」と表記し、ADDR及びaddrは16ビットである例を示している。また、同図では、Nが16ビットであり、ROM10が16ビットのaddrに対して16ビットのdataを出力する例を示している。これらについては、後述する変形例2についても同様である。
 同図に示すように、変形例1に係るアクセス装置の制御回路210aは、セレクタ214a~214eと、AND回路215と、Dフリップフロップ216a~216cとを含んで構成される回路である。プロセッサ40からアドレス値ADDRが入力されてから1あるいは2cycle後において、後述するNDATA_ENABLEが「0」である場合に、この制御回路210aから出力されているDATAを、伸長部203は、有効な圧縮コードとして取得し伸長することになる。
 ここで、セレクタ214a~214dは、「0」側と「1」側の2つの入力のうち、NDATA_ENABLEと同値となる側の入力を選択するものである。また、セレクタ214eは、後述するbyte_selectと同値となる側の入力を選択するものである。
 入力部201を介してプロセッサ40からアドレス値ADDRが入力される時点において、各セレクタ(214a~214e)は、「0」側の入力を選択しているものとする。
 以下では、プロセッサ40から、アドレス値ADDRとして、図3(a)に示す非圧縮コードC1のアドレス値(2)が入力された場合を例に、制御回路210aの動作を具体的に説明する。
 (1)第1データの読み出し
 入力部201を介してプロセッサ40から、0~15ビット目までの16ビットからなるアドレス値ADDR[15:0]=‘0・・・010’b=2が入力された時に、セレクタ214aでは、「0」側の入力が選択されている。
 従って、このアドレス値ADDRの1ビット目から15ビット目まで(ADDR[15:1])と、最上位ビット「0」とからなる16ビットのアドレス値{0,ADDR[15:1]}=‘0・・・001’b=1がセレクタ214aからaddr[15:0]として出力される。
 このaddr[15:0]に対して、ROM10は、図3(b)のaddr「1」に配置されている16ビットデータの上位8ビットのdata[15:8]と下位8ビットのdata[7:0]とを出力する。
 この図3(b)の例では、data[15:8]はフラグ「0」及びD10を含む8ビットデータであり、data[7:0]は、フラグ「1」及びC11からなる8ビットデータである。
 また、セレクタ214bでは、「0」側の入力が選択されている。従って、プロセッサからのアドレス値ADDRの0ビット目(ADDR[0])=‘0’bが、セレクタ214bからbyte_selectとして出力される。
 従って、セレクタ214eからは、data[7:0](C11を含む)がdata_sel[7:0]として出力される。
 この例では、data_sel[7:0]の0ビット目(data_sel[0])は、フラグ「1」であり、NDATA_ENABLEは「0」である。従って、AND回路215からは「1」が出力され、Dフリップフロップ216aに入力される。
 また、セレクタ214cでは、「0」側の入力が選択されている。従って、data_sel[7:0]の1ビット目から7ビット目(data_sel[7:1])がセレクタ214cから出力され、Dフリップフロップ216bに入力される。
 また、セレクタ214dでは、「0」側の入力が選択されている。従って、all 0(9ビットが全て0)がセレクタ214dから出力され、Dフリップフロップ216cに入力される。
 Dフリップフロップ216a~216cにクロックの入力があると、Dフリップフロップ216aからは「1」がNDATA_ENABLEとして出力され、Dフリップフロップ216bからはdata_sel[7:1](C11)がDATA[6:0]として出力される。また、Dフリップフロップ216cからはall 0(9ビットが全て0)がDATA[15:7]として出力される。
 なお、この例においては、このタイミング(プロセッサ40からアドレス値ADDRが入力されてから1cycle後)では、NDATA_ENABLEが「1」であるため、伸長部203によるDATAの伸長はまだ行われない。
 (2)第2データの読み出し
 上述の通り、NDATA_ENABLEが「1」となったため、セレクタ214a~214dでは、「1」側の入力が選択されることになる。
 従って、プロセッサ40からのアドレス値ADDRの2ビット目から15ビット目まで(ADDR[15:2])と、上位2ビット「10」とからなる16ビットのアドレス値{10,ADDR[15:2]}=‘10・・・0’b=215がセレクタ214aからaddr[15:0]として出力される。
 このaddr[15:0]に対して、ROM10は、図3(b)のaddr「M/2」に配置されている16ビットデータの上位8ビットのdata[15:8]と下位8ビットのdata[7:0]とを出力する。
 また、セレクタ214bからは、プロセッサからのアドレス値ADDRの1ビット目(ADDR[1])=‘1’bがbyte_selectとして出力される。
 従って、セレクタ214eからは、data[15:8](C12を含む)がdata_sel[7:0]として出力される。
 NDATA_ENABLEは「1」であるため、AND回路215からは「0」が出力され、Dフリップフロップ216aに入力される。また、セレクタ214cからは、DATA[6:0](圧縮コードC10の7ビット分であるC11)が出力され、Dフリップフロップ216bに入力される。また、セレクタ214dからは、data_sel[7:0](C12を含む)と、最上位ビット「0」とからなる9ビットのデータが出力され、Dフリップフロップ216cに入力される。
 Dフリップフロップ216a~216cにクロックの入力があると、Dフリップフロップ216aからは「0」がNDATA_ENABLEとして出力され、Dフリップフロップ216bからは圧縮コードC10の7ビット分であるC11がDATA[6:0]として出力される。また、Dフリップフロップ216cからは圧縮コードC10からC11を除いた残りのデータであるC12を含むデータがDATA[15:7]として出力される。
 なお、この例においては、このタイミング(プロセッサ40からアドレス値ADDRが入力されてから2cycle後)で、NDATA_ENABLEが「0」である。従って、この制御回路210aから出力されたDATA(DATA[6:0]及びDATA[15:7])が伸長部203により取得されて、伸長が行われることになる。
 ≪実施の形態2≫
 以下では、実施の形態1で説明した第2演算の内容を変更した例を、実施の形態1との相違点を中心に説明する。
 <1.機能構成>
 図7は、実施の形態2に係る配置決定装置120の主要部の機能構成を示すブロック図であり、図8は、実施の形態2に係るアクセス装置220の主要部の機能構成を示すブロック図である。
 図7に示すように、配置決定装置120は、実施の形態1に係る配置決定装置100の制御部110に代えて、制御部130を備え、この制御部130は、実施の形態1に係る制御部110の第2決定部112に代えて、第2決定部131を含む点で、配置決定装置100とは異なる。
 また、図8に示すように、アクセス装置220は、実施の形態1に係るアクセス装置200の制御部210に代えて、制御部230を備え、この制御部230は、実施の形態1に係る制御部210の第2特定部212に代えて、第2特定部231を含む点で、アクセス装置200とは異なる。
 具体的には、配置決定装置120の第2決定部131及びアクセス装置220の第2特定部231は、アドレス値ADDR_a及びアドレス値ADDR_bを数5に示すように表した場合において、数6~8で示すいずれかの演算を第2演算として行う点で、第2決定部112及び第2特定部212とは異なる。
  [数5]
 ADDR_a=ADDR_b=4×j+k
  但し、j=0,1,・・・,M/4-1、k=0,1,2,3
  [数6]
 addr_a2=addr_b2=M/2+j
  [数7]
 addr_a2=addr_b2=M/2+j+1/2
  [数8]
 addr_a2=addr_b2=3×M/4+j/2
 <2.データ>
 図9(a)は、M個のNビットの非圧縮コードそれぞれを圧縮した結果例を示す図である。
 図9(a)では、ADDRが「0」~「3」である非圧縮コードA2~D2を圧縮した結果、圧縮コードA20~D20が得られ、圧縮コードA20、C20、D20のデータ長が、N/2-2ビットより大きいことを示している。
 また、図9(b)は、各圧縮コード(A20~D20)のROM10への配置例を示す図である。
 各圧縮コードが配置されるROM10内の領域area10は、第1領域area11と第2領域area12とからなる。
 ここで、第1領域area11は、実施の形態1に係る第1領域area1と同様、各圧縮コードについての第1データが配置される領域であるが、第1データが圧縮コードのうちのXbビット(Xb<Nであり、この例では、N/2-2、つまり6ビットとする)分と2ビットのフラグとからなる点で、第1領域area1とは異なる。
 ここで、2ビットのフラグは、圧縮コードのデータ長がXbビットより大きいか否かを示すと共に、Xbビットより大きい場合に、圧縮コードからXbビット分を除いた残りが、数6~数8の結果値が示す3つの位置のうちのいずれの位置に配置されているかをも示すものである。
 この例では、圧縮コードのデータ長がXbビット以下である場合のフラグの値を「00」に設定し、圧縮コードのデータ長がXbビットより大きい場合には、以下のようにフラグの値を設定するものとする。即ち、数6の演算が用いられた場合には「10」に、数7の演算が用いられた場合には「11」に、数8が用いられた場合には「01」にそれぞれ設定するものとする。
 第2領域area12は、実施の形態1に係る第1領域area2と同様、各圧縮コードのうちデータ長がXbビットより大きい特定圧縮コードの第2データが配置される領域である。なお、実施の形態1では、各圧縮コードのうちデータ長がXaビットより大きい圧縮コードを特定圧縮コードと呼んでいたが、実施の形態2では、データ長がXbビットより大きい圧縮コードを特定圧縮コードと呼ぶ。
 図9(a)の例では、圧縮コードA20、C20、D20のデータ長はN/2-2より大きく、圧縮コードB20のデータ長はN/2-2以下である。
 従って、図9(b)の例では、圧縮コードA20、C20及びD20がそれぞれ、ROM10の第1領域area11内と、第2領域area12内とに分割して配置されている。なお、数6~8を用いた第2データの配置決定方法については、以下の<3.動作>の<3-1.配置決定処理>及び<3-2.配置決定処理の具体例>において詳しく説明する。
 <3.動作>
 次に、配置決定装置120及びアクセス装置220の動作について説明する。
  <3-1.配置決定処理>
 まずは、配置決定装置120の配置決定処理について説明する。
 図10は、配置決定装置120の配置決定処理を示すフローチャートである。
 同図に示すように、配置決定装置120の配置決定処理は、図4に示す実施の形態1に係る配置決定装置100の配置決定処理のうちのステップS6~S8の処理に代えて、ステップS31~S33の処理を含む点で、配置決定装置100の配置決定処理とは異なる。従って、以下では、ステップS31~S33の処理を中心に説明する。
 ステップS1~S5の処理を完了すると、制御部130は、ステップS4で圧縮部102から受領したデータ長情報が示すデータ長がXbビット(この例では、N/2-2ビット)より大きいか否かを判定する(ステップS31)。
 図4に示すステップS6では、Xaビット(N/2-1ビット)との比較を行っていたが、実施の形態2に係る第1データに含まれるフラグは2ビットであるため、ステップS31では、Xbビット(N/2-2ビット)より大きいかを判定している。
 圧縮部102から受領したデータ長情報が示すデータ長がXbビット以下である場合に(ステップS31:NO)、制御部130は、2ビットのフラグとステップS4で受領した圧縮コードとを、ステップS5の第1演算の結果値addr_a1が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS33)。このときのフラグは、圧縮コードのデータ長がXbビット以下であることを示すように「00」に設定される。
 一方、圧縮部102から受領したデータ長情報が示すデータ長がXbビットより大きい場合に(ステップS31:YES)、制御部130の第2決定部131は、アドレス値ADDR_aに第2演算を施す(ステップS32)。
 即ち、jの値が共通する「4×j」、「4×j+1」、「4×j+2」及び「4×j+3」となる連続する4つのアドレス値ADDR_a(但し、j=0,1,・・・,M/4-1)を1組として、数6~8に示す各演算のうち、同じ組に含まれる他のアドレス値について選択されてない演算を行う。ここでは、一例として、数6、数7、数8の順で選択するものとする。詳細は、<3-2.配置決定処理の具体例>にて説明する。
 続いて、制御部130は、2ビットのフラグとステップS4で受領した圧縮コードのXbビット分を、ステップS5の第1演算の結果値addr_a1が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む。このときのフラグは、ステップS32で用いられた演算が、数6~数8のいずれであるかに応じて設定される。つまり、数6の演算が用いられた場合には「10」に、数7の演算が用いられた場合には「11」に、数8が用いられた場合には「01」に設定される。
 また、制御部130は、ステップS4で受領した圧縮コードからXbビット分を除いた残りを、ステップS32の第2演算の結果値addr_a2が示す圧縮コード用の領域22内の位置にアクセス部101を介して書き込み(ステップS33)、ステップS9の処理に進む。
  <3-2.配置決定処理の具体例>
 上述した配置決定装置120の配置決定処理について、図9に示す例を用いて、図10に示すステップS31~S33の処理内容を具体的に説明する。
  (1)非圧縮コードA2についての処理
 この例では、非圧縮コードA2を圧縮した圧縮コードA20のデータ長はXbビットより大きく(ステップS31:YES)、非圧縮コードA2のアドレス値ADDR_aは「4×j」(但しj=0)である。従って、制御部130の第2決定部131は、数6に示す演算を第2演算として実行する(ステップS32)。この第2演算の結果値addr_a2は、「M/2」になる。
 続いて、制御部130は、図9(b)に示すように、2ビットフラグ(10)とステップS4で受領した圧縮コード(A20)のXbビット分(A21)を、ステップS5の第1演算の結果値addr_a1(0)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む。また、制御部130は、図9(b)に示すように、ステップS4で受領した圧縮コード(A20)からXbビット分を除いた残り(A22)を、ステップS32の第2演算の結果値addr_a2(M/2)が示す圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS33)。
  (2)非圧縮コードB2についての処理
 この例では、非圧縮コードB2を圧縮した圧縮コードB20のデータ長はXbビット以下である(ステップS31:NO)。従って、制御部130は、図9(b)に示すように、2ビットのフラグ(00)とステップS4で受領した圧縮コードとを、ステップS5の第1演算の結果値addr_a1(1/2)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS33)。
  (3)非圧縮コードC2についての処理
 非圧縮コードC2を圧縮した圧縮コードC20についても、上記圧縮コードA20と同様に処理されるため(ステップS2~S5、S31~S33、S9)、詳細な説明は省略するが、ステップS5の第1演算の結果値addr_a1は、「1」になる。
 また、ステップS32では、数7に示す演算が実行され、第2演算の結果値addr_a2は、「M/2+1/2」になる。ここで、数7に示す演算が実行されるのは、既に同じ組に属する圧縮コードA20で数6に示す演算が用いられているためである。
 続いて、制御部130は、図9(b)に示すように、2ビットフラグ(11)とステップS4で受領した圧縮コード(C20)のXbビット分(C21)を、ステップS5の第1演算の結果値addr_a1(1)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む。また、制御部130は、図9(b)に示すように、ステップS4で受領した圧縮コード(C20)からXbビット分を除いた残り(C22)を、ステップS32の第2演算の結果値addr_a2(M/2+1/2)が示す圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS33)。
  (4)非圧縮コードD2についての処理
 非圧縮コードD2を圧縮した圧縮コードD20についても、上記圧縮コードA20と同様に処理され、特に、ステップS5の第1演算の結果値addr_a1は、「3/2」になる。
 また、ステップS32では、数8に示す演算が実行され、第2演算の結果値addr_a2は、「3×M/4」になる。
 続いて、制御部130は、図9(b)に示すように、2ビットフラグ(01)とステップS4で受領した圧縮コード(D20)のXbビット分(D21)を、ステップS5の第1演算の結果値addr_a1(3/2)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む。また、制御部130は、図9(b)に示すように、ステップS4で受領した圧縮コード(D20)からXbビット分を除いた残り(D22)を、ステップS32の第2演算の結果値addr_a2(3×M/4)が示す圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS33)。
  <3-3.アクセス処理>
 次に、アクセス装置220のアクセス処理について説明する。
 図11は、アクセス装置220のアクセス処理を示すフローチャートである。
 同図に示すように、アクセス装置220のアクセス処理は、図5に示す実施の形態1に係るアクセス装置200のアクセス処理のうち、ステップS14、S15及びS17に代えて、ステップS41~S43の処理を含む点で、このアクセス装置200のアクセス処理と異なる。従って、以下では、ステップS41~S43の処理について説明する。
 ステップS11~S13の処理を完了すると、制御部230は、ステップS13で読み出した第1データの2ビットのフラグの値に基づいて、圧縮コードのデータ長がXbビットより大きいか否かを判定する(ステップS41)。
 フラグの値が「00」である場合に、制御部230は、圧縮コードのデータ長がXbビット以下であると判定し(ステップS41:NO)、制御部230の出力部213は、読み出した第1データに含まれている圧縮コードを伸長部203に出力する(ステップS43)。ステップS43の処理を完了すると、アクセス装置220は、ステップS18の処理に進む。
 一方、フラグの値が「00」以外である場合に、制御部230は、圧縮コードのデータ長がXbビットより大きいと判定し(ステップS41:YES)、制御部230の第2特定部231は、アドレス値ADDR_bに第2演算を施す(ステップS42)。即ち、第2特定部231は、第2演算として、アドレス値ADDR_bを数5に示すように表した場合において、数6~数8に示す演算のうち、フラグの値に応じた演算を行う。
 つまり、フラグの値が「10」である場合には数6の演算を、「11」である場合には数7の演算を、「01」である場合には数8の演算を行う。
 制御部230は、読出部202を介して、ROM10の第2領域area12内の第2演算の結果値addr_b2が示す位置から第2データを読み出す(ステップS16)。制御部230の出力部213は、読み出した第1データに含まれている圧縮コードのうちのXbビット分と第2データとからなる圧縮コードを伸長部203に出力する(ステップS43)。ステップS43の処理を完了すると、アクセス装置220は、ステップS18の処理に進む。
  <3-4.アクセス処理の具体例>
 上述したアクセス装置220のアクセス処理について、図9に示す例を用いて、図11に示すS41~S43の処理内容を具体的に説明する。
 以下では、プロセッサ40から、所望する非圧縮コードD2のアドレス値ADDR_b「3」を受領した場合を例にアクセス装置220のアクセス処理を説明する。
 この例では、ステップS13で読み出した第1データのフラグは「01」であるため、制御部230は、圧縮コードのデータ長がXbビットより大きいと判定する(ステップS41:YES)。
 制御部230の第2特定部231は、第2演算として、アドレス値ADDR_bを数5に示すように表した場合において、数6~数8に示す演算のうち、フラグの値に応じた演算を行う(ステップS42)。この例では、非圧縮コードD2のアドレス値ADDR_bは「4×j+3」(但しj=0)であり、フラグは「01」であるため、数8に示す演算を行い、この第2演算の結果値addr_b2は、「3×M/4」になる。
 制御部230は、読出部202を介して、ROM10の第2領域area12内の第2演算の結果値addr_b2(3×M/4)が示す位置から第2データ(D21)を読み出す(ステップS16)。制御部230の出力部213は、読み出した第1データからフラグを除いたデータ(D21)及び第2データ(D22)からなる圧縮コードを伸長部203に出力する(ステップS43)。
 <4.考察>
 実施の形態2に係る配置決定装置120によれば、実施の形態1に係る配置決定装置100の場合よりも特定圧縮コードについての条件を緩和しつつも、各圧縮コードを配置するROM10上の領域area10の容量を削減できる。
 アドレス値ADDR_aが「4×j」、「4×j+1」、「4×j+2」及び「4×j+3」(但し、j=0,1,・・・,M/4-1)である4つの非圧縮コードを圧縮した各圧縮コードが共に特定圧縮コードでないことを条件に、各圧縮コードのROM10上の格納領域area10(図9(b)参照)の容量は、以下のようになる。
 即ち、格納領域area10の容量は、第1領域area11の容量(M×N/2ビット)+第2領域area12の容量(M×N/4ビット+M×N/8ビット)=7×M×N/8ビットとなる。
 上述のように、実施の形態1に係る配置決定装置100では、アドレス値ADDR_aが連続する2つの非圧縮コードに係る圧縮コードが共に特定圧縮コードでないことを条件に25%の容量削減が可能であった。
 一方、実施の形態2に係る配置決定装置120によれば、アドレス値ADDR_aが連続する4つの非圧縮コードに係る圧縮コードが共に特定圧縮コードでないことを条件に、12.5%の容量削減が可能である。
 ≪変形例2≫
 以下では、実施の形態2に係るアクセス装置220の制御部230を比較的簡単な構成の回路で実現するように変形した例を説明する。
 図12は、変形例2に係るアクセス装置の制御回路230aの回路構成を示す図である。
 同図に示すように、変形例2に係るアクセス装置の制御回路230aは、セレクタ232a~232fと、Dフリップフロップ234a~234cとを含んで構成される回路である。
 プロセッサ40からアドレス値ADDRが入力されてから1あるいは2cycle後において、NDATA_ENABLE[1:0]が「00」である場合に、この制御回路230aから出力されているDATAを、伸長部203は、有効な圧縮コードとして取得し伸長することになる。
 なお、セレクタ232a及び232bは、「00」側と、「11」側と、「01」又は「10」側との3つの入力のうち、NDATA_ENABLE[1:0]と同値となる側の入力を選択するものである。
 入力部201を介してプロセッサ40からアドレス値ADDRが入力される時点において、セレクタ232a~232fは、「00」側の入力を選択しているものとする。
 以下では、プロセッサ40から、図9(a)に示す非圧縮コードD2のアドレス値(3)が入力された場合を例に、制御回路230aの動作を具体的に説明する。
 (1)第1データの読み出し
 入力部201を介してプロセッサ40から、アドレス値ADDR[15:0]=‘0・・・011’b=3が入力された時、セレクタ232aでは、「00」側の入力が選択されているので、16ビットのアドレス値{0,ADDR[15:1]}=‘0・・・001’b=1がセレクタ232aからaddr[15:0]として出力される。
 このaddr[15:0]に対して、ROM10では、図9(b)のaddr「1」に配置されている16ビットデータが、data[15:8]及びdata[7:0]として出力される。
 また、セレクタ232bでは、「00」側の入力が選択されているので、ADDR[0]=1が、セレクタ232bからbyte_selectとして出力される。
 従って、セレクタ232eからは、data[15:8](フラグ「01」及びD21)がdata_sel[7:0]として出力され、セレクタ232fでは、「00」側の入力が選択されているので、data_sel[1:0](01)がセレクタ232fから出力され、Dフリップフロップ234aに入力される。
 また、セレクタ232cでは、「00」側の入力が選択されているので、data_sel[7:2](D21)がセレクタ232cから出力され、Dフリップフロップ234bに入力される。また、セレクタ232dでは、「00」側の入力が選択されているので、all 0(10ビットが全て0)がセレクタ232dから出力され、Dフリップフロップ234cに入力される。
 Dフリップフロップ234a~234cにクロックの入力があると、Dフリップフロップ234aからは「01」がNDATA_ENABLE[1:0]として出力され、Dフリップフロップ234bからはdata[7:2](D21)がDATA[5:0]として出力される。また、Dフリップフロップ234cからはall 0(10ビットが全て0)がDATA[15:6]として出力される。
 なお、この例においては、このタイミング(プロセッサ40からアドレス値ADDRが入力されてから1cycle後)では、NDATA_ENABLE[1:0]が「01」であるため、伸長部203によるDATAの伸長はまだ行われない。
 (2)第2データの読み出し
 上述の通り、NDATA_ENABLE[1:0]が「01」となったため、セレクタ232a及び232bは、「01」側の入力が選択され、セレクタ232c、232d及び232fでは、「(not)00」側の入力が選択されることになる。
 16ビットのアドレス値{110,ADDR[15:3]}=‘110・・・0’b=215+214がセレクタ232aからaddr[15:0]として出力され、ROM10は、図9(b)のaddr「3×M/4」に配置されている16ビットデータがdata[15:8]及びdata[7:0]として出力される。
 また、セレクタ232bからは、ADDR[2]=「0」がbyte_selectとして出力されるので、セレクタ232eからは、data[7:0](D22を含む)がdata_sel[7:0]として出力される。
 NDATA_ENABLE[1:0]は「01」であるため、セレクタ232fからはall 0(「00」)が出力され、Dフリップフロップ234aに入力される。また、セレクタ232cからは、DATA[5:0](D21)が出力され、Dフリップフロップ234bに入力される。また、セレクタ232dからは、{00,data_sel[7:0]}が出力され、Dフリップフロップ234cに入力される。
 Dフリップフロップ234a~234cにクロックの入力があると、Dフリップフロップ234aからは「00」がNDATA_ENABLE[1:0]として出力され、Dフリップフロップ234bからはD21がDATA[5:0]として出力される。また、Dフリップフロップ234cからは圧縮コードD20からD21を除いた残りのデータであるD22を含むデータがDATA[15:6]として出力される。
 なお、この例においては、このタイミング(プロセッサ40からアドレス値ADDRが入力されてから2cycle後)で、NDATA_ENABLE[1:0]が「00」である。従って、この制御回路210aから出力されたDATA(DATA[5:0]及びDATA[15:6])が伸長部203により取得されて、伸長が行われることになる。
 ≪実施の形態3≫
 以下では、実施の形態1で説明した第1演算及び第2演算の内容を変更した例を、実施の形態1との相違点を中心に説明する。
 <1.機能構成>
 図13は、実施の形態3に係る配置決定装置140の主要部の機能構成を示すブロック図であり、図14は、実施の形態3に係るアクセス装置240の主要部の機能構成を示すブロック図である。
 図13に示すように、配置決定装置140は、実施の形態1に係る配置決定装置100の制御部110に代えて、制御部150を備える。この制御部150は、実施の形態1に係る制御部110の第1決定部111及び第2決定部112に代えて、第1決定部151及び第2決定部152を含む点で、配置決定装置100とは異なる。
 また、図14に示すように、アクセス装置240は、実施の形態1に係るアクセス装置200の制御部210に代えて、制御部250を備える。この制御部250は、実施の形態1に係る制御部210の第1特定部211及び第2特定部212に代えて、第1特定部251及び第2特定部252を含む点で、アクセス装置200とは異なる。
 具体的には、配置決定装置140の第1決定部151及びアクセス装置240の第1特定部251は、アドレス値ADDR_a及びアドレス値ADDR_bを数5に示すように表した場合において、数9で示すkの値に応じた演算を第1演算として行う点で、第1決定部111及び第1特定部211とは異なる。
  [数9]
 k=0:addr_a1=addr_b1=3×j
 k=1:addr_a1=addr_b1=3×j+1/2
 k=2:addr_a1=addr_b1=3×j+2
 k=3:addr_a1=addr_b1=3×j+2+1/2
  但し、j=0,1,・・・,M/4-1
 また、配置決定装置140の第2決定部152及びアクセス装置240の第2特定部252は、アドレス値ADDR_a及びアドレス値ADDR_bを数5に示すように表した場合において、数10で示すkの値に応じた演算を第2演算として行う点で、第2決定部112及び第2特定部212と異なる。
  [数10]
 k=0,1:addr_a2=addr_b2=3×j+1
 k=2,3:addr_a2=addr_b2=3×j+1+1/2
  但し、j=0,1,・・・,M/4-1
 <2.データ>
 図15(a)は、M個のNビットの非圧縮コードそれぞれを圧縮した結果例を示す図である。
 同図では、ADDRが「0」~「7」である非圧縮コードA3~H3を圧縮した結果、圧縮コードA30~H30が得られ、圧縮コードC30及びE30のデータ長が、N/2-1ビットより大きいことを示している。
 また、図15(b)は、各圧縮コード(A30~H30)のROM10への配置例を示す図である。
 各圧縮コードが配置されるROM10内の領域area20は、jの値が共通する「4×j」、「4×j+1」、「4×j+2」及び「4×j+3」となる連続する4つのアドレス値ADDR(但し、j=0,1,・・・,M/4-1)を1組として、組毎に第1領域と第2領域とを有する。
 例えば、「0」~「3」となる連続する4つのアドレス値ADDRからなる組の第1領域はarea21aであり、第2領域はarea22aである。また、例えば、「4」~「7」となる連続する4つのアドレス値ADDRからなる組の第1領域はarea21bであり、第2領域はarea22bである。
 なお、各第1領域(area21a、21b)は、実施の形態1に係る第1領域area1と同様に、その組に対応する各圧縮コードの第1データを格納する領域である。また、各第2領域(area22a、22b)は、実施の形態1に係る第2領域area2と同様に、その組に対応する各圧縮コードのうちデータ長がXaビットより大きい特定圧縮コードの第2データが配置される領域である。
 図15(a)の例では、圧縮コードC30及びE30のデータ長はN/2-1より大きい。従って、図15(b)の例では、圧縮コードC30が、ROM10の第1領域area21a内と、第2領域area22a内とに、圧縮コードE30が、ROM10の第1領域area21b内と、第2領域area22b内とに分割して配置されている。
 なお、数9を用いた第2データの配置決定方法については、以下の<3.動作>の<3-1.配置決定処理>及び<3-2.配置決定処理の具体例>において詳しく説明する。
 <3.動作>
 次に、配置決定装置140及びアクセス装置240の動作について説明する。
  <3-1.配置決定処理>
 まずは、配置決定装置140の配置決定処理について説明する。
 図16は、配置決定装置140の配置決定処理を示すフローチャートである。
 同図に示すように、配置決定装置140の配置決定処理は、図4に示す実施の形態1に係る配置決定装置100の配置決定処理のうちのステップS5及びS7の処理に代えて、ステップS51及びS52の処理を含む点で、配置決定装置100の配置決定処理とは異なる。従って、以下では、ステップS51及びS52の処理を中心に説明する。
 ステップS1~S4の処理を完了すると、制御部150の第1決定部151は、アドレス値ADDR_aに第1演算を施す(ステップS51)。即ち、第1決定部151は、アドレス値ADDR_aを数5に示すように表した場合において、数9で示すkの値に応じた演算を行う。
 また、制御部150は、ステップS6の判定処理を行い、ステップS4で圧縮部102から受領したデータ長情報が示すデータ長がXaビットより大きい場合に(ステップS6:YES)、制御部150の第2決定部152は、アドレス値ADDR_aに第2演算を施す(ステップS52)。即ち、第2決定部152は、アドレス値ADDR_aを数5に示すように表した場合において、数10で示すkの値に応じた演算を行う。
 ステップS52の処理を完了すると、制御部150はステップS8の処理に進む。
  <3-2.配置決定処理の具体例>
 上述した配置決定装置140の配置決定処理について、図15に示す例を用いて、図16に示すステップS51及びS52の処理内容を具体的に説明する。
  (1)非圧縮コードA3についての処理
 この例では、非圧縮コードA3のアドレス値ADDR_aは「4×j+0」(但しj=0)である。従って、第1決定部151は、数9に示すk=0の場合の演算を第1演算として実行する(ステップS51)。この第1演算の結果値addr_a1は、「0」になる。
 また、この例では、圧縮部102から受領したデータ長情報が示すデータ長は、Xaビット以下である(ステップS6:NO)。従って、制御部150は、図15(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(A30)とを、ステップS51の第1演算の結果値addr_a1(0)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS8)。
  (2)非圧縮コードB3についての処理
 非圧縮コードB3を圧縮した圧縮コードB30についても、上記圧縮コードA30と同様に処理されるため、詳細な説明は省略するが、ステップS51の第1演算の結果値addr_a1は、「1/2」になる。従って、図15(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(B30)とが、第1演算の結果値addr_a1(1/2)が示す記憶装置20の圧縮コード用の領域22内の位置に配置されることになる。
  (3)非圧縮コードC3についての処理
 この例では、非圧縮コードC3のアドレス値ADDR_aは「4×j+2」(但しj=0)である。従って、第1決定部151は、数9に示すk=2の場合の演算を第1演算として実行する(ステップS51)。この第1演算の結果値addr_a1は、「2」になる。
 また、この例では、圧縮部102から受領したデータ長情報が示すデータ長は、Xaビットより大きい(ステップS6:YES)。従って、第2決定部151は、数10に示すk=2の場合の演算を第2演算として実行する(ステップS52)。この第2演算の結果値addr_a2は、「1+1/2」になる。
 従って、制御部150は、図15(b)に示すように、フラグ(1)とステップS4で受領した圧縮コード(C30)のうちのXaビット分(C31)とを、ステップS51の第1演算の結果値addr_a1(2)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む。また、制御部150は、図15(b)に示すように、ステップS4で受領した圧縮コード(C30)からXaビット分(C31)を除いたデータ(C32)を、ステップS52の第2演算の結果値addr_a2(1+1/2)が示す記憶装置20の圧縮コード用の領域22内の位置にアクセス部101を介して書き込む(ステップS8)。
  (4)非圧縮コードD3についての処理
 非圧縮コードD3を圧縮した圧縮コードD30についても、上記圧縮コードA30と同様に処理されるため、詳細な説明は省略するが、ステップS51の第1演算の結果値addr_a1は、「2+1/2」になる。従って、図15(b)に示すように、フラグ(0)とステップS4で受領した圧縮コード(D30)とが、第1演算の結果値addr_a1(2+1/2)が示す記憶装置20の圧縮コード用の領域22内の位置に配置されることになる。
  <3-3.アクセス処理>
 次に、アクセス装置240のアクセス処理について説明する。
 図17は、アクセス装置240のアクセス処理を示すフローチャートである。
 同図に示すように、アクセス装置240のアクセス処理は、図5に示す実施の形態1に係るアクセス装置200のアクセス処理のうちのステップS12及びS15の処理に代えて、ステップS61及びS62の処理を含む点で、アクセス装置200のアクセス処理とは異なる。従って、以下では、ステップS61及びS62の処理を中心に説明する。
 入力部201を介して、プロセッサ40から、所望する非圧縮コードのアドレス値ADDR_bを受け付けると(ステップS11:YES)、アクセス装置240の制御部250の第1特定部251は、アドレス値ADDR_bに第1演算を施す(ステップS61)。即ち、第1特定部251は、アドレス値ADDR_aを数5に示すように表した場合において、数9で示すkの値に応じた演算を行う。
 また、制御部250は、ステップS13の第1データの読出処理及びステップS14の判定処理を行い、圧縮コードのデータ長がXaビットより大きい場合に(ステップS14:YES)、制御部250の第2特定部252は、アドレス値ADDR_bに第2演算を施す(ステップS62)。即ち、第2特定部252は、アドレス値ADDR_bを数5に示すように表した場合において、数10で示すkの値に応じた演算を行う。
 ステップS62の処理を完了すると、制御部150はステップS16の処理に進む。
  <3-4.アクセス処理の具体例>
 上述したアクセス装置240のアクセス処理について、図15に示す例を用いて、図17に示すS61及びS62の処理内容を具体的に説明する。
 以下では、プロセッサ40から、所望する非圧縮コードC3のアドレス値ADDR_b「2」を受領した場合を例にアクセス装置240のアクセス処理を説明する。
 入力部201を介して、プロセッサ40から、所望する非圧縮コードのアドレス値ADDR_b「2」を受け付けると(ステップS11:YES)、アクセス装置240の制御部250の第1特定部251は、アドレス値ADDR_bに第1演算を施す(ステップS61)。この例では、非圧縮コードC2のアドレス値ADDR_bは「4×j+2」(但しj=0)であるため、数9に示すk=2の場合の演算を第1演算として実行する。この第1演算の結果値addr_b1は、「2」になる。
 従って、制御部250は、読出部202を介して、第1演算の結果値addr_b1(2)が示すROM10の第1領域area21a内の位置から第1データ(フラグ「1」とC31)を読み出す(ステップS13)。
 また、この例では、ステップS13で読み出した第1データのフラグの値が「1」なので、圧縮コードのデータ長がXaビットより大きいと判定する(ステップS14:YES)。
 従って、制御部250の第2特定部252は、アドレス値ADDR_bに第2演算を施す(ステップS62)。この例では、数10に示すk=2の場合の演算を第2演算として実行し、この第2演算の結果値addr_b2は、「1+1/2」になる。
 従って、制御部250は、読出部202を介して、第2演算の結果値addr_b2(1+1/2)が示すROM10の第2領域area22a内の位置から第2データ(C32を含む)を読み出す(ステップS16)。
 以降、アクセス装置240は、実施の形態1に係るアクセス装置200と同様にステップS17~S19の処理を行い、アクセス処理を終了する。
 <4.考察>
 実施の形態3に係る配置決定装置140によれば、実施の形態1に係る配置決定装置100の場合と同様に、アドレス値ADDR_aが「2×j」及び「2×j+1」(但し、j=0,1,・・・M/2)である2つの非圧縮コードを圧縮した各圧縮コードが共に特定圧縮コードでないことを条件に、各圧縮コードのROM10上の格納領域area20(図15(b)参照)の容量は、3×M×N/4ビットとなる。
 なお、実施の形態3では、図15(b)に示すように、組毎に第1領域と第2領域とを連続して配置している。従って、以下説明する変形例3のように、アクセス装置240にROMキャッシュを備えるようにし、制御部250がこのROMキャッシュから各圧縮コードを読み出すようにした場合には、一度のアクセスで特定圧縮コードを読み出すことも可能になる。
 ≪変形例3≫
 以下では、実施の形態3に係るアクセス装置240の制御部250を比較的簡単な構成の回路で実現するように変形した例を説明する。
 なお、この変形例3に係るアクセス制御装置は、アクセス装置240の制御部250に代えて、制御回路250aを備える他、更にROMキャッシュ11を備える。
 このROMキャッシュ11は、ROM10上の各圧縮コードのうちの少なくとも一部のコピーを格納しており、制御回路250aから読出部202を介して送出されるアドレス値「addr[15:0]」に対し、「addr+0」と、「addr+1」と、「addr+2」に格納されているデータを出力するものである。
 即ち、この例では、制御回路250aは、プロセッサ40が所望の非圧縮コードを圧縮した圧縮コードをROMキャッシュ11から読み出す。
 なお、以下では、説明を簡単にするため、キャッシュミスは発生しないものとする。
 図18は、変形例3に係るアクセス装置の制御回路250aの回路構成を示す図である。
 なお、同図では、入力部201を介してプロセッサ40から入力されるアドレス値を、「ADDR」と表記し、読出部202を介してROMキャッシュ11に送出されるアドレス値を「addr」と表記し、ADDR及びaddrは16ビットである例を示している。また、同図では、Nが16ビットであり、ROMキャッシュ11が16ビットのaddrに対してそれぞれが16ビットのdata0、data1、data2を出力する例を示している。
 同図に示すように、変形例3に係るアクセス装置の制御回路250aは、加算器253と、セレクタ254a~254cと、Dフリップフロップ255a及び255bとを含んで構成される回路である。
 プロセッサ40からアドレス値ADDRが入力されてから1cycle後において、この制御回路250aから出力されているDATAを、伸長部203は、有効な圧縮コードとして取得し伸長することになる。
 以下では、プロセッサ40から、図15(a)に示す非圧縮コードC3のアドレス値(2)が入力された場合を例に、制御回路250aの動作を具体的に説明する。
 入力部201を介してプロセッサ40から、アドレス値ADDR[15:0]=‘0・・・010’b=2が入力されると、{00,ADDR[15:2]}=‘0・・・0’b=0と、{0,ADDR[15:2],0}=‘0・・・0’b=0とが加算器253に入力される。そして、加算器253から‘0・・・0’b=0がaddr[15:0]として出力される。
 このaddr[15:0]に対して、ROMキャッシュ11からは、図15(b)のaddr「0」、「1」及び「2」に配置されている各16ビットデータが、data0[15:0]、data1[15:0]及びdata2[15:0]として出力される。
 ADDR[1:0]が「10」なので、セレクタ254aでは、「10」側の入力が選択されており、data2[0]=1がINFOとして、セレクタ254aから出力される。また、data2[7:1](C31)がDATA[6:0]としてセレクタ254aから出力され、Dフリップフロップ255aに入力される。
 また、ADDR[1]が「1」なので、セレクタ254bでは、「1」側の入力が選択されており、INFOが「1」なので、セレクタ254cでは、「1」側の入力が選択されている。従って、セレクタ254cからは、データC32を含む{0,data1[15:8]}が出力され、Dフリップフロップ255bに入力される。
 Dフリップフロップ255a及び255bにクロックの入力があると、Dフリップフロップ255aからはDATA[6:0](C31)が出力され、Dフリップフロップ255bからはDATA[15:7](C32を含む)が出力される。
 この制御回路250aから出力されたDATA(DATA[6:0]及びDATA[15:7])が伸長部203により取得されて、伸長が行われることになる。
 以上説明したように、図15(b)に示すように、組毎に第1領域と第2領域とを連続して配置するようにすることで、変形例3に係る制御回路250aによれば、第1領域と第2領域とに分割して配置されている1つの特定圧縮コードを1cycleで読み出すことが可能になる。
 ≪補足≫
 以上、本発明に係る配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法を、各実施の形態及び各変形例(以下、単に「実施の形態」ともいう)に基づいて説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法に限られないことは勿論である。
 (1)実施の形態では、本発明に係るM個のNビットデータの一例として、図3(a)、図9(a)及び図15(a)に示すNビットの非圧縮コードを、本発明に係るM個のNビット未満の圧縮データの一例として、図3(a)、図9(a)及び図15(a)に示すNビット未満の圧縮コードを、それぞれ用いて説明した。しかしながら、本発明に係るM個のNビットデータ及びM個のNビット未満の圧縮データは、これ以外のデータであってもよい。
 また、実施の形態では、Nが16である場合を例に説明したが、これに限らず、Nがこれより大きくても小さくてもよい。
 また、フラグは、実施の形態1及び3では1ビットであり、実施の形態2では2ビットである例を用いて説明したが、これに限らず、フラグのビット長はこれらの例より大きくてもよい。
 (2)実施の形態に係る配置決定装置は、各圧縮コードについてのROM10上の配置を決定するものとして説明し、また、実施の形態に係るアクセス装置は、このROM10にアクセスするものとして説明した。しかしながら、ROMに限らず、本発明に係る配置決定装置は、ROM以外の他のメモリへの各圧縮コードの配置を決定してもよいし、本発明に係るアクセス装置は、ROM以外の他のメモリへアクセスするものであってもよい。
 (3)実施の形態1及び3では、第1データの最大データ長がN/2-1であり、実施の形態2では、第1データの最大データ長がN/2-2であるものとして説明した。しかしながら、実施の形態で説明した第1データの最大データ長は一例であり、これ以外であってもよい。
 即ち、第1データの最大データ長は、実施の形態に係るROM10上のアドレスaddrの1アドレス分の領域(実施の形態ではNビット)をいくつの圧縮コードで共有するかを決定することによって決まることになる。
 例えば、i個の圧縮コードで共有すると決定した場合には、実施の形態1及び3の第1データの最大データ長は、N/i-1とすることができ、実施の形態2の第1データの最大データ長は、N/i―2とすることができる。
 実施の形態では、ROM10上のアドレスaddrの1アドレス分の領域(実施の形態ではNビット)を、2個の特定圧縮データで共有するものとして、第2データの最大データ長がN/2である例を説明した。
 しかしながら、実施の形態で説明した第2データの最大データ長は一例であり、これ以外であってもよい。例えば、ROM10上のアドレスaddrの1アドレス分の領域を4個の特定圧縮データで共有する場合には、第2データの最大データ長をN/4とすることができ、1個の特定圧縮データで共有する場合には、第2データの最大データ長をNとすることができる。即ち、第1データが配置される第1領域におけるROM10上のアドレスaddrの1アドレス分の領域を共有する圧縮データの数と、第2データが配置される第2領域におけるROM10上のアドレスaddrの1アドレス分の領域を共有する特定圧縮データの数とは、同一の場合に限らず、異なってもよい。
 また、第2データの先頭アドレスが、実施の形態1ではM/2(数2及び数4参照)、実施の形態2では、M/2及び3×M/4(数6~数8参照)であるものとして説明した。しかしながら、これらは一例であり、この先頭アドレスは適宜変更することができる。
 また、実施の形態3では、同じ組内の4つのアドレス値に係る各圧縮コードの第1データが配置される領域(例えば図15(b)のarea21a)の間に、第2データが配置される領域(例えば図15(b)のarea22a)が設定されるものとして説明した。しかしながら、この配置は一例であり、組毎に、第1データが配置される領域の近傍に第2データが配置される領域が設けられれば足りる。
 例えば、第1データが配置される領域を連続して設定し、その領域に続けて第2データが配置される領域を設定してもよいし、第2データが配置される領域に続けて、第1データが配置される領域を設定してもよい。
 また、実施の形態3では、1組に連続する4つのアドレス値が属するものとして説明したが、1組に属するアドレス値の数はこれに限らない。また、1組に属するアドレス値は、必ずしも連続しなくてもよい。
 (4)実施の形態に係る配置決定装置は圧縮部102を含み、また、実施の形態に係るアクセス装置は伸長部203を含むものとして説明した。
 しかしながら、圧縮部102は配置決定装置の必須の構成ではなく、他の装置で実現してもよい。その場合、例えば記憶装置20に他の装置で生成された各圧縮コードとそのデータ長を示す各データ長情報とを対応付けて格納するように変形する必要がある。そして、この変形に係る配置決定装置は、記憶装置20から読み出した各圧縮コードを圧縮コード用のメモリ領域22に決定した配置で格納することになる。
 また、伸長部203はアクセス装置の必須の構成ではなく、他の装置で実現してもよい。
 (5)変形例3に係るROMキャッシュ11は、ROM10上の各圧縮コードのうちの少なくとも一部のコピーを格納しており、制御回路250aから読出部202を介して送出されるアドレス値「addr」に対し、「addr+0」と、「addr+1」と、「addr+2」に格納されているデータを出力するものとして説明した。
 しかしながら、ROMキャッシュ11を用いないようにしてもよい。即ち、変形例1及び2と同様にROM10から直接圧縮コードを読み出すようにしてもよい。但し、この場合、1つの特定圧縮コード全体の読出に、プロセッサ40からアドレス値ADDRが入力されてから2cycle必要になる。
 また、各変形例では、説明の簡略化のために、厳密な入出力仕様については言及しなかったが、圧縮コードの読み書きのためのタイミングを調整するようにしたり、要求信号や応答信号等を追加したりしても勿論よい。
 (6)実施の形態では、各特定圧縮データを、その特定圧縮データのうちのXビット(実施の形態1及び3では、Xaビット、実施の形態2では、Xbビット)分を第1データに含め、その特定圧縮データからXビットを除いた部分の全体を第2データとして、2つに分割して配置するものとして説明した。
 しかしながら、実施の形態で説明した各特定圧縮データの分割数は一例であり、3つ以上に分割するようにしてもよい。
 例えば、3つに分割する場合、特定圧縮データのうち、第1データに含まれるXcビット(Xc<N)分と、第2データに含まれるYビット(Y<N)分とを除いた部分の全体である第3データを、その特定圧縮データの基となった非圧縮コードの非圧縮ブロック中のアドレス値ADDR_aに第3演算を施した結果値が示すROM10等のメモリ位置に配置すればよい。
 なお、第3演算は、第1演算及び第2演算とは異なる演算である。また、特定圧縮データのデータ長によっては、第3データは存在しない場合もあるため、第3データの有無を識別するために、第2データには、その特定圧縮データのデータ長がXc+Yビットより大きいことを示すフラグ(例えば1ビット)を含める必要がある。
 (7)実施の形態において説明した各構成要素のうち、全部又は一部を1チップ又は複数チップの集積回路で実現してもよいし、コンピュータのプログラムで実現してもよいし、その他どのような形態で実現してもよい。
 また、実施の形態1~3において説明した各構成要素は、配置決定装置及びアクセス装置それぞれが有するプロセッサと協働することにより、その機能を実現する。
 (8)実施の形態1~3において説明した配置決定装置の配置決定処理(図4、10、16参照)及びアクセス装置のアクセス処理(図5、11、17参照)をプロセッサに実行させるためのプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM、フラッシュメモリ等がある。流通、頒布されたプログラムは、機器におけるプロセッサで読み取り可能なメモリ等に格納されることにより利用に供され、そのプロセッサがそのプログラムを実行することにより実施の形態1~3で示した配置決定装置及びアクセス装置の各機能が実現される。
 (9)実施の形態に係る配置決定装置及びアクセス装置に、上記(1)~(8)の一部又は全部の変形を組み合わせて適用してもよい。
 (10)以下、更に本発明の一実施形態及びその変形例と各効果について説明する。
 (a)本発明の一実施形態に係る配置決定装置は、データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置を決定する配置決定装置であって、M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定し、M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定する第1決定手段と、前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置するよう決定する第2決定手段とを備え、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であることを特徴とする。
 また、前記第1演算は、各結果値それぞれが、メモリ中の第1領域内の異なる位置を示すものであり、前記第2演算は、各結果値それぞれが、前記メモリ中の前記第1領域と連続する第2領域内の位置を示すものであることとしてもよい。
 また、本発明の一実施形態に係る配置決定方法は、データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置を決定する配置決定装置における配置決定方法であって、M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定し、M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定する第1決定ステップと、前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置するよう決定する第2決定ステップとを含み、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であることを特徴とする。
 この配置決定装置及び配置決定方法によれば、第2データが、第1データに含まれるXビットを除いた部分の全体であるとした場合において、各圧縮データを、その圧縮データの基となったNビットデータのデータブロック内アドレス値に所定の演算(第1演算又は第1演算及び第2演算)を施した結果値が示すメモリ位置に配置するよう決定する。
 従って、この配置決定装置及び配置決定方法により決定された位置に各圧縮データが配置されているメモリから、プロセッサが所望するNビットデータに対応する圧縮データを、そのNビットデータのアドレス値に所定の演算を施した結果値が示すメモリ位置から読み出すことができる。つまり、プロセッサが所望するNビットデータに対応する圧縮データを、アドレス変換テーブルを用いることなく読み出すことが可能になる。
 なお、第2データが、第1データに含まれるXビットを除いた部分の一部を含むものであるときには、その特定圧縮データから、第1データに含まれるXビットと第2データに含まれるその特定圧縮データを構成するデータとを除いた部分である第3データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算及び前記第2演算とは異なる第3演算を施した結果値が示すメモリ位置に配置するよう決定すればよい。
 即ち、第2データが、第1データに含まれるXビットを除いた部分の一部を含むものである場合においても、その圧縮データの基となったNビットデータのデータブロック内アドレス値に所定の演算(この例では、第1演算、第2演算及び第3演算)を施した結果値が示すメモリ位置に配置することで、プロセッサが所望するNビットデータに対応する圧縮データを、アドレス変換テーブルを用いることなく読み出すことが可能になる。
 (b)また、前記第1領域は、N×M/2ビットの領域であり、前記第1決定手段は、前記フラグをFビットとし、データ長がN/2-Fビットより大きい圧縮データを前記特定圧縮データとして、M個の圧縮データそれぞれについて、当該圧縮データの基となるNビットデータの前記データブロック内アドレス値を2で除算した結果値が示すメモリ位置に、前記第1データを配置するよう決定することとしてもよい。
 この配置決定装置は、各圧縮データの第1データを配置するメモリ上の位置を、当該圧縮データの基となるNビットデータのデータブロック内アドレス値を2で除算するという簡単な演算の結果値により決定する。
 即ち、この配置決定装置により決定された位置に各圧縮データが配置されているメモリから、プロセッサが所望するNビットデータに対応する圧縮データのうちの第1データをそのNビットデータのアドレス値に上述の簡単な演算を施した結果値が示すメモリ位置から読み出すことができる。
 (c)また、前記第2領域は、N×M/4ビットの領域であり、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、2個を1組とした組毎に、N/2ビットずつずれたメモリ位置を示す結果値が生じる演算であることとしてもよい。
 これにより、第2領域内をN/2ビット毎に分けた各領域は、同じ組に属する2個のブロック内アドレス値に係る2個の圧縮データの第2データを配置する領域として共有されることになる。
 従って、同じ組に属する2個のブロック内アドレス値に係る2個の圧縮データが共に特定圧縮データでないことを条件に、この配置決定装置によれば、プロセッサが所望するNビットデータに対応する圧縮データを読み出す際にはアドレス変換テーブルを用いることなく、M個の圧縮データの配置に要するメモリ容量を抑えることができる。
 (d)また、前記第2領域は、N×M×3/8ビットの領域であり、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、4個を1組とした組毎に、3個のメモリ位置を示す結果値が生じる演算であり、前記第2決定手段は、各特定圧縮データそれぞれについて、当該特定圧縮データの前記第2データを、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に第2演算を施した結果値が示す3個のメモリ位置のうち、他の特定圧縮データの前記第2データが配置されていない1つのメモリ位置に配置するよう決定し、前記第1データに含まれるフラグは、更に当該第1データを含む前記特定圧縮データの前記第2データが、前記3個のメモリ位置のうち、いずれのメモリ位置に配置されているかを示す2ビットのデータであることとしてもよい。
 これにより、同じ組に属する4個のブロック内アドレス値に係る4個の圧縮データの第2データを配置する領域として3つの領域が共有されることになる。
 従って、同じ組に属する4個のブロック内アドレス値に係る4個の圧縮データの全てが特定圧縮データでないことを条件に、この配置決定装置によれば、プロセッサが所望するNビットデータに対応する圧縮データを読み出す際にはアドレス変換テーブルを用いることなく、M個の圧縮データの配置に要するメモリ容量を抑えることができる。
 また、プロセッサが所望するNビットデータに対応する圧縮データが特定圧縮データである場合に、その特定圧縮データの第1データを読み出し、フラグを参照することで、上記3つの領域のうちのいずれの領域にその特定圧縮データの第2データが配置されているかを簡単に判断することができる。
 (e)また、前記第1演算及び前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、J個(K≦J≦M)を1組とした各組について、同じ組内の各アドレス値に当該第1演算及び当該第2演算を施すと、メモリ中の第1領域内の位置を示す結果値が生じ、かつ他の1つの組内の各アドレス値に当該第1演算及び当該第2演算を施すと前記メモリ中の前記第1領域とは異なる第2領域内の位置を示す結果値が生じる演算であることとしてもよい。
 この配置決定装置によれば、特定圧縮データを構成する第1データ及び第2データを近傍に配置することができる。
 従って、この配置決定装置により決定された位置に各圧縮データが配置されているメモリが、例えば、メモリ位置を指定する1つのアドレス値に対して、複数アドレス分のデータを出力することが可能な、所謂バースト転送機能を有するメモリ等である場合には、一度のアクセスで、1つの特定圧縮データ全体を読み出せる可能性を高めることができる。
 (f)また、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、連続する4個のアドレス値を1組とした各組について、同じ組内の第1及び第2のアドレス値に当該第2演算を施すと、前記第1領域内の部分領域内の同一位置を示す同一の結果値が生じ、かつ当該同じ組内の第3及び第4のアドレス値に当該第2演算を施すと、前記第1及び第2のアドレス値に当該第2演算を施した結果値が示す同一のメモリ位置からN/2ビットずれた前記部分領域内の同一の位置を示す同一の結果値が生じる演算であり、前記第1演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、4個を1組とした各組について、各アドレス値に当該第1演算を施すと、前記第1領域内の前記部分領域とは異なる位置を示す結果値が生じる演算であることとしてもよい。
 この配置決定装置は、ブロック内アドレス値が連続する4つのアドレス値に係る各圧縮データを同一のメモリ範囲に配置する。
 従って、この配置決定装置により決定された位置に各圧縮データが配置されているメモリが、例えば、上述の所謂バースト転送機能を有するメモリ等である場合には、一度のアクセスで、連続する4つのデータブロック内アドレス値に係る各圧縮データをまとめて読み出せる可能性を高めることができる。
 よって、この配置決定装置により決定された各圧縮データの配置は、近傍のアドレス値に係る圧縮データを読み出すようなケースに特に有用である。例えば、プログラムの実行には、空間的局所性といった性質があるため、当該圧縮データが圧縮プログラムコードであるような場合に利用できる。
 (g)また、本発明の一実施形態に係るデータ構造は、連続メモリ領域に配置されて動作するプログラムコードブロックの構成要素としてのM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置用のデータ構造であって、M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記連続メモリ領域におけるアドレス値に第1演算を施した結果値が示すメモリ位置に配置し、M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記連続メモリ領域におけるアドレス値に第1演算を施した結果値が示すメモリ位置に配置し、前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記連続メモリ領域におけるアドレス値に、前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置し、前記第2演算は、M個のNビットデータそれぞれのアドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であることを特徴とする。
 このデータ構造によれば、第2データが、第1データに含まれるXビットを除いた部分の全体であるとした場合において、このデータ構造で各圧縮データが配置されているメモリから、プロセッサが所望するNビットデータに対応する圧縮データを、アドレス変換テーブルを用いることなく読み出すことが可能になる。
 (h)また、本発明の一実施形態に係るメモリは、データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データそれぞれが配置されたメモリであって、第1メモリ領域と第2メモリ領域とを有し、前記第1メモリ領域は、M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データが配置された、当該一般圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、前記第2メモリ領域は、前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示す領域であり、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であることを特徴とする。
 また、前記メモリはROM(Read Only Memory)であることとしてもよい。
 このメモリによれば、第2データが、第1データに含まれるXビットを除いた部分の全体であるとした場合において、プロセッサが所望するNビットデータに対応する圧縮データを、アドレス変換テーブルを用いることなく読み出すことが可能になる。
 (i)また、本発明の一実施形態に係るアクセス装置は、上記(h)記載のメモリにアクセスするアクセス装置であって、プロセッサの1つのNビットデータにアクセスするためのアドレス値を受け付ける入力手段と、前記入力手段が受け付けたアドレス値に第1演算を施し、当該第1演算の結果値が示す、前記1つのNビットデータを基に圧縮した前記圧縮データの全体又はXビット分と、少なくとも当該圧縮データがXビットより大きいか否かを示すフラグとからなるLビット以下の第1データが配置されている前記メモリ上の位置を特定する第1特定手段と、前記第1特定手段が特定した前記メモリ上の位置に配置されている前記第1データ内の前記フラグが、前記圧縮データがXビットより大きいことを示す場合に、前記入力手段が受け付けたアドレス値に前記第1演算とは異なる第2演算を施し、当該第2演算の結果値が示す、前記圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置されている前記メモリ上の位置を特定する第2特定手段と、前記第1特定手段が特定した前記メモリ上の位置に配置されている前記第1データに含まれる前記圧縮データの全体又はXビット分を出力すると共に、前記第2特定手段が前記メモリ上の位置を特定した場合には、当該メモリ上の位置に配置されている第2データを出力する出力手段とを備え、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であることを特徴とする。
 また、本発明の一実施形態に係るメモリアクセス方法は、上記(h)記載のメモリにアクセスするアクセス装置におけるメモリアクセス方法であって、プロセッサの1つのNビットデータにアクセスするためのアドレス値を受け付ける入力ステップと、前記入力ステップで受け付けたアドレス値に第1演算を施し、当該第1演算の結果値が示す、前記1つのNビットデータを基に圧縮した前記圧縮データの全体又はXビット分と、少なくとも当該圧縮データがXビットより大きいか否かを示すフラグとからなるLビット以下の第1データが配置されている前記メモリ上の位置を特定する第1特定ステップと、前記第1特定ステップで特定した前記メモリ上の位置に配置されている前記第1データ内の前記フラグが、前記圧縮データがXビットより大きいことを示す場合に、前記入力ステップで受け付けたアドレス値に前記第1演算とは異なる第2演算を施し、当該第2演算の結果値が示す、前記圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置されている前記メモリ上の位置を特定する第2特定ステップと、前記第1特定ステップで特定した前記メモリ上の位置に配置されている前記第1データのうちの全体又はXビット分を出力すると共に、前記第2特定ステップで前記メモリ上の位置を特定した場合には、当該メモリ上の位置に配置されている第2データを出力する出力ステップとを含み、前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算であることを特徴とする。
 このアクセス装置及びメモリアクセス方法によれば、第2データが、第1データに含まれるXビットを除いた部分の全体であるとした場合において、プロセッサが所望するNビットデータに対応する圧縮データを、アドレス変換テーブルを用いることなく読み出すことが可能になる。
 (j)また、前記アクセス装置は、更に圧縮データを伸長し、得られたNビットデータを前記プロセッサに送出する伸長手段を備えることとしてもよい。
 このアクセス装置によれば、プロセッサは、圧縮データを伸長して得られた所望のNビットデータを取得することができる。
 本発明に係る配置決定装置は、圧縮データについてのメモリ配置を決定する際に利用される。
   10  ROM
   20  記憶装置
   30  書込装置
  100、120、140  配置決定装置
  101  アクセス部
  102  圧縮部
  110、130、150、210、230、250  制御部
  111、151 第1決定部
  112、131、152  第2決定部
  200、220、240  アクセス装置
  201  入力部
  202  読出部
  203  伸長部
  211、251  第1特定部
  212、231、252  第2特定部
  213  出力部

Claims (14)

  1.  データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置を決定する配置決定装置であって、
     M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定し、
     M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定する第1決定手段と、
     前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置するよう決定する第2決定手段とを備え、
     前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
     ことを特徴とする配置決定装置。
  2.  前記第1演算は、各結果値それぞれが、メモリ中の第1領域内の異なる位置を示すものであり、
     前記第2演算は、各結果値それぞれが、前記メモリ中の前記第1領域と連続する第2領域内の位置を示すものである
     ことを特徴とする請求項1記載の配置決定装置。
  3.  前記第1領域は、N×M/2ビットの領域であり、
     前記第1決定手段は、
     前記フラグをFビットとし、データ長がN/2-Fビットより大きい圧縮データを前記特定圧縮データとして、M個の圧縮データそれぞれについて、当該圧縮データの基となるNビットデータの前記データブロック内アドレス値を2で除算した結果値が示すメモリ位置に、前記第1データを配置するよう決定する
     ことを特徴とする請求項2記載の配置決定装置。
  4.  前記第2領域は、N×M/4ビットの領域であり、
     前記第2演算は、
     M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、2個を1組とした組毎に、N/2ビットずつずれたメモリ位置を示す結果値が生じる演算である
     ことを特徴とする請求項3記載の配置決定装置。
  5.  前記第2領域は、N×M×3/8ビットの領域であり、
     前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、4個を1組とした組毎に、3個のメモリ位置を示す結果値が生じる演算であり、
     前記第2決定手段は、
     各特定圧縮データそれぞれについて、当該特定圧縮データの前記第2データを、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に第2演算を施した結果値が示す3個のメモリ位置のうち、他の特定圧縮データの前記第2データが配置されていない1つのメモリ位置に配置するよう決定し、
     前記第1データに含まれるフラグは、更に
     当該第1データを含む前記特定圧縮データの前記第2データが、前記3個のメモリ位置のうち、いずれのメモリ位置に配置されているかを示す2ビットのデータである
     ことを特徴とする請求項3記載の配置決定装置。
  6.  前記第1演算及び前記第2演算は、
     M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、J個(K≦J≦M)を1組とした各組について、同じ組内の各アドレス値に当該第1演算及び当該第2演算を施すと、メモリ中の第1領域内の位置を示す結果値が生じ、かつ他の1つの組内の各アドレス値に当該第1演算及び当該第2演算を施すと前記メモリ中の前記第1領域とは異なる第2領域内の位置を示す結果値が生じる演算である
     ことを特徴とする請求項1記載の配置決定装置。
  7.  前記第2演算は、
     M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、連続する4個のアドレス値を1組とした各組について、同じ組内の第1及び第2のアドレス値に当該第2演算を施すと、前記第1領域内の部分領域内の同一位置を示す同一の結果値が生じ、かつ当該同じ組内の第3及び第4のアドレス値に当該第2演算を施すと、前記第1及び第2のアドレス値に当該第2演算を施した結果値が示す同一のメモリ位置からN/2ビットずれた前記部分領域内の同一の位置を示す同一の結果値が生じる演算であり、
     前記第1演算は、
     M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、4個を1組とした各組について、各アドレス値に当該第1演算を施すと、前記第1領域内の前記部分領域とは異なる位置を示す結果値が生じる演算である
     ことを特徴とする請求項6記載の配置決定装置。
  8.  データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置を決定する配置決定装置における配置決定方法であって、
     M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定し、
     M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示すメモリ位置に配置するよう決定する第1決定ステップと、
     前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置するよう決定する第2決定ステップとを含み、
     前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
     ことを特徴とする配置決定方法。
  9.  連続メモリ領域に配置されて動作するプログラムコードブロックの構成要素としてのM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データについてのメモリ配置用のデータ構造であって、
     M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データを、当該一般圧縮データの基となったNビットデータの前記連続メモリ領域におけるアドレス値に第1演算を施した結果値が示すメモリ位置に配置し、
     M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データを、当該特定圧縮データの基となったNビットデータの前記連続メモリ領域におけるアドレス値に第1演算を施した結果値が示すメモリ位置に配置し、
     前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データを、当該特定圧縮データの基となったNビットデータの前記連続メモリ領域におけるアドレス値に、前記第1演算とは異なる第2演算を施した結果値が示すメモリ位置に配置し、
     前記第2演算は、M個のNビットデータそれぞれのアドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
     ことを特徴とするデータ構造。
  10.  データブロックを構成するM個のNビットデータそれぞれを基に圧縮したM個のNビット未満の圧縮データそれぞれが配置されたメモリであって、
     第1メモリ領域と第2メモリ領域とを有し、
     前記第1メモリ領域は、
     M個の圧縮データのうち、データ長がXビット(X<N)以下である一般圧縮データそれぞれについては、当該一般圧縮データ全体と、少なくとも当該一般圧縮データのデータ長がXビット以下であることを示すフラグとからなるLビット(X<L<N)以下の第1データが配置された、当該一般圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、
     M個の圧縮データのうち、データ長がXビットより大きい特定圧縮データそれぞれについては、当該特定圧縮データのうちのXビット分と、少なくとも当該特定圧縮データのデータ長がXビットより大きいことを示すフラグとからなるLビットの第1データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に第1演算を施した結果値が示す領域であり、
     前記第2メモリ領域は、
     前記特定圧縮データそれぞれについて、当該特定圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置された、当該特定圧縮データの基となるNビットデータの前記データブロック内アドレス値に前記第1演算とは異なる第2演算を施した結果値が示す領域であり、
     前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
     ことを特徴とするメモリ。
  11.  前記メモリはROM(Read Only Memory)である
     ことを特徴とする請求項10のメモリ。
  12.  請求項10記載のメモリにアクセスするアクセス装置であって、
     プロセッサの1つのNビットデータにアクセスするためのアドレス値を受け付ける入力手段と、
     前記入力手段が受け付けたアドレス値に第1演算を施し、当該第1演算の結果値が示す、前記1つのNビットデータを基に圧縮した前記圧縮データの全体又はXビット分と、少なくとも当該圧縮データがXビットより大きいか否かを示すフラグとからなるLビット以下の第1データが配置されている前記メモリ上の位置を特定する第1特定手段と、
     前記第1特定手段が特定した前記メモリ上の位置に配置されている前記第1データ内の前記フラグが、前記圧縮データがXビットより大きいことを示す場合に、前記入力手段が受け付けたアドレス値に前記第1演算とは異なる第2演算を施し、当該第2演算の結果値が示す、前記圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置されている前記メモリ上の位置を特定する第2特定手段と、
     前記第1特定手段が特定した前記メモリ上の位置に配置されている前記第1データに含まれる前記圧縮データの全体又はXビット分を出力すると共に、前記第2特定手段が前記メモリ上の位置を特定した場合には、当該メモリ上の位置に配置されている第2データを出力する出力手段とを備え、
     前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
     ことを特徴とするアクセス装置。
  13.  前記アクセス装置は、更に
     圧縮データを伸長し、得られたNビットデータを前記プロセッサに送出する伸長手段を備える
     ことを特徴とする請求項12記載のアクセス装置。
  14.  請求項10記載のメモリにアクセスするアクセス装置におけるメモリアクセス方法であって、
     プロセッサの1つのNビットデータにアクセスするためのアドレス値を受け付ける入力ステップと、
     前記入力ステップで受け付けたアドレス値に第1演算を施し、当該第1演算の結果値が示す、前記1つのNビットデータを基に圧縮した前記圧縮データの全体又はXビット分と、少なくとも当該圧縮データがXビットより大きいか否かを示すフラグとからなるLビット以下の第1データが配置されている前記メモリ上の位置を特定する第1特定ステップと、
     前記第1特定ステップで特定した前記メモリ上の位置に配置されている前記第1データ内の前記フラグが、前記圧縮データがXビットより大きいことを示す場合に、前記入力ステップで受け付けたアドレス値に前記第1演算とは異なる第2演算を施し、当該第2演算の結果値が示す、前記圧縮データから前記第1データに含まれるXビットを除いた部分の一部又は全体を含む第2データが配置されている前記メモリ上の位置を特定する第2特定ステップと、
     前記第1特定ステップで特定した前記メモリ上の位置に配置されている前記第1データのうちの全体又はXビット分を出力すると共に、前記第2特定ステップで前記メモリ上の位置を特定した場合には、当該メモリ上の位置に配置されている第2データを出力する出力ステップとを含み、
     前記第2演算は、M個のNビットデータそれぞれの前記データブロック内アドレス値のうち、K個(K≦M)を1組とした各組について、同じ組内のいずれのアドレス値に当該第2演算を施しても同一の結果値が生じ、かつ他のいずれの組内の各アドレス値に当該第2演算を施して生じた結果値とも異なる結果値が生じる演算である
     ことを特徴とするメモリアクセス方法。
PCT/JP2012/003293 2011-06-10 2012-05-21 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法 WO2012169124A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013519363A JP5895229B2 (ja) 2011-06-10 2012-05-21 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
CN201280028496.2A CN103597454B (zh) 2011-06-10 2012-05-21 配置决定装置、配置决定方法、数据结构的构成方法、存储器、访问装置及存储器访问方法
US14/091,122 US9519599B2 (en) 2011-06-10 2013-11-26 Memory location determining device and method for determining locations of compressed data in a memory by using first and second arithmetic operations

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-130153 2011-06-10
JP2011130153 2011-06-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/091,122 Continuation US9519599B2 (en) 2011-06-10 2013-11-26 Memory location determining device and method for determining locations of compressed data in a memory by using first and second arithmetic operations

Publications (1)

Publication Number Publication Date
WO2012169124A1 true WO2012169124A1 (ja) 2012-12-13

Family

ID=47295717

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/003293 WO2012169124A1 (ja) 2011-06-10 2012-05-21 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法

Country Status (4)

Country Link
US (1) US9519599B2 (ja)
JP (1) JP5895229B2 (ja)
CN (1) CN103597454B (ja)
WO (1) WO2012169124A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095900A (ko) * 2012-12-19 2015-08-21 마벨 월드 트레이드 리미티드 스토리지 드라이브의 비휘발성 반도체 메모리에 그리고 상기 비휘발성 반도체 메모리로부터 데이터를 전달하기 위해 디스크립터들을 생성하는 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0537789A (ja) * 1991-07-29 1993-02-12 Canon Inc 画像処理装置
JPH0922353A (ja) * 1995-07-05 1997-01-21 Toshiba Corp 1チップ・マイクロコンピュータおよびその命令コード格納方法
JP2007234048A (ja) * 2002-12-05 2007-09-13 Nec Corp コード圧縮技術の高速プロトタイピングを可能にするプログラムのコード圧縮方法、プログラムのコード圧縮システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222984A (ja) * 1993-01-22 1994-08-12 Mitsubishi Electric Corp 読み出し専用メモリ
CN1099081C (zh) * 1994-01-29 2003-01-15 世嘉企业股份有限公司 信息处理装置
JP3749507B2 (ja) * 2002-07-01 2006-03-01 株式会社ルネサステクノロジ 圧縮コードを処理するマイクロコントローラ
US7162584B2 (en) * 2003-12-29 2007-01-09 Intel Corporation Mechanism to include hints within compressed data
EP1745394B1 (en) 2004-04-26 2009-07-15 Storewiz, Inc. Method and system for compression of files for storage and operation on compressed files
US7533234B2 (en) * 2005-05-13 2009-05-12 Intel Corporation Method and apparatus for storing compressed code without an index table
EP1939751A1 (en) * 2006-12-22 2008-07-02 Telefonaktiebolaget LM Ericsson (publ) Storing compressed data
US8706951B2 (en) * 2008-07-18 2014-04-22 Marvell World Trade Ltd. Selectively accessing faster or slower multi-level cell memory
JP2010287114A (ja) * 2009-06-12 2010-12-24 Toshiba Corp データ格納方法及びデータ格納装置
CN101692349A (zh) * 2009-10-23 2010-04-07 中兴通讯股份有限公司 一种设备及其进行数据存储和启动的方法
TWI459197B (zh) * 2011-04-21 2014-11-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0537789A (ja) * 1991-07-29 1993-02-12 Canon Inc 画像処理装置
JPH0922353A (ja) * 1995-07-05 1997-01-21 Toshiba Corp 1チップ・マイクロコンピュータおよびその命令コード格納方法
JP2007234048A (ja) * 2002-12-05 2007-09-13 Nec Corp コード圧縮技術の高速プロトタイピングを可能にするプログラムのコード圧縮方法、プログラムのコード圧縮システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150095900A (ko) * 2012-12-19 2015-08-21 마벨 월드 트레이드 리미티드 스토리지 드라이브의 비휘발성 반도체 메모리에 그리고 상기 비휘발성 반도체 메모리로부터 데이터를 전달하기 위해 디스크립터들을 생성하는 장치 및 방법
KR102217966B1 (ko) 2012-12-19 2021-02-22 마벨 월드 트레이드 리미티드 스토리지 드라이브의 비휘발성 반도체 메모리에 그리고 상기 비휘발성 반도체 메모리로부터 데이터를 전달하기 위해 디스크립터들을 생성하는 장치 및 방법

Also Published As

Publication number Publication date
US9519599B2 (en) 2016-12-13
US20140089622A1 (en) 2014-03-27
CN103597454A (zh) 2014-02-19
JPWO2012169124A1 (ja) 2015-02-23
CN103597454B (zh) 2016-02-03
JP5895229B2 (ja) 2016-03-30

Similar Documents

Publication Publication Date Title
JP6370988B2 (ja) 圧縮されたデータセグメントのキャッシュライン小型化
JP6768928B2 (ja) アドレスを圧縮するための方法及び装置
TWI705695B (zh) 針對片上系統中的圖像幀的中央凹型壓縮的系統和方法
CN102112973B (zh) 协调装置、协调系统、协调方法、半导体集成电路及图像处理装置
US20100250864A1 (en) Method And Apparatus For Compressing And Decompressing Data
US20130036426A1 (en) Information processing device and task switching method
CN104981771A (zh) 基于标量寄存器数据值的向量寄存器寻址和功能
JP2018503924A (ja) 中央処理ユニット(cpu)ベースのシステム内の圧縮メモリコントローラ(cmc)による連続読取り動作を使用するメモリ帯域幅圧縮の提供
US6684267B2 (en) Direct memory access controller, and direct memory access control method
JP5978259B2 (ja) 順次読み出し最適化可変サイズフラッシュトランスレーションレイヤ
US7598891B2 (en) Data development device and data development method
JP4693072B2 (ja) Jpegアプリケーションにおける可変長符号の復号
JP5895229B2 (ja) 配置決定装置、配置決定方法、データ構造、メモリ、アクセス装置及びメモリアクセス方法
US8688947B1 (en) Aligned data access
CN107451070A (zh) 一种数据的处理方法和服务器
JP2009093513A (ja) 命令ビット長削減方法
CN107480479B (zh) 应用程序的加固方法及装置、计算设备、计算机存储介质
JP2011076497A (ja) 情報処理装置、半導体記憶装置、及びプログラム
JP2023503034A (ja) パターンベースのキャッシュブロック圧縮
JP2004246889A (ja) シーケンシャルバッファを内蔵してdspのデータアクセス性能を向上させるコンピュータシステム及びそのコンピュータシステムのアクセス方法
US10880561B2 (en) Image processing method and image processing device
JP4479370B2 (ja) プロセッサ
JP2010287114A (ja) データ格納方法及びデータ格納装置
US8484437B2 (en) Data processing apparatus using pre-fetched data
CN109582589B (zh) 半导体设备及存储器访问方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12796431

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013519363

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12796431

Country of ref document: EP

Kind code of ref document: A1