WO2006121046A1 - プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法 - Google Patents

プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法 Download PDF

Info

Publication number
WO2006121046A1
WO2006121046A1 PCT/JP2006/309325 JP2006309325W WO2006121046A1 WO 2006121046 A1 WO2006121046 A1 WO 2006121046A1 JP 2006309325 W JP2006309325 W JP 2006309325W WO 2006121046 A1 WO2006121046 A1 WO 2006121046A1
Authority
WO
WIPO (PCT)
Prior art keywords
logic blocks
valid data
data
processor
microinstruction
Prior art date
Application number
PCT/JP2006/309325
Other languages
English (en)
French (fr)
Inventor
Shogo Nakaya
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to JP2007528287A priority Critical patent/JP4530042B2/ja
Priority to US11/920,156 priority patent/US20090031113A1/en
Publication of WO2006121046A1 publication Critical patent/WO2006121046A1/ja

Links

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Definitions

  • Processor array processor element complex, micro instruction control device and micro instruction control method
  • the present invention relates to a processor array that executes a microprogram, and more particularly to a control method and control device for the microprogram.
  • FIG. 1 (A) is a circuit diagram showing a general configuration of a processor array
  • FIG. 1 (B) is a block diagram schematically showing an example of an instruction system of a conventional processor array.
  • each of the processor element 1 is composed of a logic block 2 including an operation unit and a switch, and a microprogram memory 3 ', and each operation block of each logic block
  • the function is determined by the instruction output from the microprogram memory 3 '.
  • the switch function as an example, set the connection state between the programmable wiring, select the computing unit input that has programmable wiring capability, and specify the programmable wiring to which the calculation result is to be output.
  • the microprogram memory 3 ' holds a plurality of instructions, and which instruction is to be output is determined by the address signal 4 generated by the sequencer 200.
  • Patent Document 2 discloses a method for avoiding useless occupation of the memory by such an instruction. The point of this method is that the unused fields (that is, the default value part) of the instruction are omitted and stored in the memory, and the unused fields omitted when reading from the memory are returned to the original state to be one instruction. It is in the point to use. Force that needs to carry information indicating which position of an instruction of a predetermined length is at an unused field As a whole, it is possible to save memory (see paragraphs 0013 to 0022, FIGS. 1 and 2).
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2001-312481
  • Patent Document 2 Japanese Patent Application Laid-Open No. 7-175648
  • the memory saving method described in Patent Document 2 presupposes a single processor and achieves effective memory saving even if it is applied to a processor array as it is. It is not possible. Unlike a single processor, the processor array has programmable interconnects 100, so the logic block of each processor element is provided with a much larger number of switches. For this reason, the waste of microprogram memory is much more than that of a single processor, and the memory saving method described in Patent Document 2 can not obtain a sufficient memory reduction effect.
  • the present invention solves the above-described conventional problems, and provides a processor array having an array of a plurality of programmable logic blocks, corresponding to the array of the plurality of logic blocks.
  • a plurality of memory means which are arranged and store a plurality of valid data portions in which valid data of a plurality of micro instructions are stored at least partially and control information indicating which position of each micro data portion corresponds to each valid data portion
  • micro instruction generation means for generating a micro instruction which determines the function of each of.
  • the microphone program memory of a plurality of processor elements adjacent to each other in the processor array is shared, the valid data and its position information are stored in the shared micro program memory, and the valid data is valid.
  • the data unit is divided into multiple processors
  • the plurality of logic blocks are arranged in a two-dimensional array, and the microinstruction generation unit connects the plurality of memory units to two vertically adjacent logic blocks.
  • the microinstruction generation means connects each of the plurality of memory means to two adjacent logic blocks, and connects each of the plurality of logic blocks to each other. Desirably connected to two memory means.
  • a processor element complex includes a plurality of logic blocks connectable to another logic block and a plurality of valid data in which valid data of a plurality of micro instructions are stored at least in part.
  • Memory means for storing a plurality of encoded instructions consisting of a control unit and control information indicating which position of each effective data unit corresponds to the position of the microinstruction, and one of the plurality of encoded instructions according to the address signal
  • An address decoder to be designated, the memory means and the plurality of logic blocks are connected, and based on the control information of the designated encoding instruction, the plurality of valid data portions and the predetermined data are input.
  • decoding means for decoding a microinstruction that determines the function of each of the logic blocks.
  • the above-described microinstruction generation means or decoding means is preferably provided corresponding to each logic block, according to the control information, and the effective data portion and the effective data portion are preferably provided according to the control information.
  • a plurality of selectors select one of! / Predetermined data and generate a plurality of section data constituting the micro instruction.
  • a processor array according to another aspect of the present invention may include a plurality of equivalent logic blocks B to B.
  • N is an integer of 2 or more
  • selectors associated with each of the logic blocks
  • microprogram memories P arranged in correspondence to the logic blocks B to B:
  • each of the logic blocks B to B is connected between an operator and the logic block.
  • the first group of selectors includes the microprogram memory M and the location information and the plurality of locations.
  • An effective data unit is supplied, and a second group of the plurality of selectors is supplied with microprogram memory M position information and the plurality of effective data sections, and each of the plurality of selectors includes the position information And select one from the plurality of valid data parts and a predetermined value and output it as a section command, and the function of the corresponding logic block is output by the section command in which the plurality of selectors are also output.
  • the total data width of the plurality of valid data portions of the microprogram memory is determined to be smaller than the total data width of the section instruction of each port block.
  • a microinstruction control device is arranged corresponding to the arrangement of the plurality of logic blocks, and a plurality of effective data of a plurality of microinstructions are stored at least in part.
  • a plurality of memory means for storing the valid data portion of the memory and control information indicating to which position of the microinstruction each valid data portion corresponds, each of the plurality of memory means and the plurality of microinstructions should be supplied
  • Micro instruction generation means for connecting a plurality of logic blocks and generating a micro instruction for determining the function of each of the plurality of logic blocks from the valid data portion and predetermined data based on the control information
  • a microinstruction control method is that a plurality of valid data parts in which valid data of a plurality of microinstructions are stored at least partially and each valid data part correspond to any position of the microinstruction. And a plurality of coding instructions each including control information indicating whether or not to be stored, and one of the plurality of coding instructions is specified according to the address signal, and based on the control information of the specified coding instruction And decoding a microinstruction that determines the function of each of the plurality of logic blocks from the valid data portion and the predetermined data, and supplying the decoded microinstruction to a corresponding logic block. Effect of the invention
  • the microprogram memory is shared by a plurality of processor elements, and the data stored in the microprogram memory is based on valid data.
  • the area of the microprogram memory can be reduced, and the memory space in the processor array can be significantly reduced.
  • the width of the logic block is configured to be the same as or slightly different from the width of the conventional processor element. be able to. It is effective if you do not redesign the arrangement of logic block operators or switches, or if you make minor changes!
  • the circuit configuration is significantly simplified by connecting each of the plurality of memory means to two adjacent logic blocks and connecting each of the plurality of logic blocks to two adjacent memory means.
  • the circuit area and the delay can be reduced.
  • the range for transferring effective data and control information is narrowed, there is also an advantage that the length of wiring can be shortened.
  • the flexibility of valid data is also improved, such as using up to four valid data per logic block.
  • FIG. 2 is used to explain the processor array according to the first embodiment of the present invention in comparison with the conventional processor array, and (A) shows the instruction sequence of the processor array according to the first embodiment of the present invention.
  • FIG. 1B is a schematic block diagram showing an instruction system of a conventional processor array. Although only 2 rows and 4 columns of processor elements are shown here in order not to clutter the figure, the same is true even if a desired number of processor elements are arranged.
  • FIG. 2 (A) in the processor array according to the present embodiment, a plurality of processor element complexes 300 are arranged, and an address signal 4 is output from the sequencer 200 for each processor element complex 300. Be done.
  • the processor element complex 300 has two logic blocks 2a and 2b and a shared microprogram memory 3 for storing instructions for them, as described later.
  • logic blocks 2a and 2b of the processor element complex 300 are conventionally laterally adjacent and independently! /, Two processor elements la and 1 Each corresponds to the logic block b. Therefore, logic blocks 2a and 2b are the same circuit.
  • the shared microprogram memory 3 of the processor element complex 300 is an integration of the conventional microprogram memories 3a and 3b of the processor elements la and 1b. As will be described later, the shared microprogram memory 3 stores a plurality of compressed instructions, and one compression instruction is read according to the address signal 4 input from the sequencer 200. Two microinstructions are decoded from the read compressed instruction, which control logic blocks 2a and 2b respectively. Control of the corresponding logic block by each microinstruction is the same as in the prior art.
  • the area of the microprogram memory can be reduced.
  • FIG. 3 is a block diagram showing the configuration of a processor element complex according to a first embodiment of the present invention.
  • Processor element complex 300 has two logic blocks 2a and 2b, a shared microprogram memory 3 for storing a plurality of compressed instructions, and two microinstructions to be provided to logic blocks 2a and 2b, respectively.
  • a decryption unit is composed of selectors 7. la to 7. 4 a associated with the logic block 2a and selectors 7. 7 associated with the logic block 2b, as described later.
  • Shared microprogram memory 3 has an address decoder 5 for decoding address signal 4 and a memory core 30 for storing a plurality of instructions, and decodes one of the plurality of instructions according to address signal 4. Output to the department.
  • the microinstruction in the present embodiment is configured of four interval instruction powers, and each interval instruction is generated by one selector. That is, four selectors 7. Interval instructions generated by la to 7.4a 6. La to 6.4a are input as one microinstruction to one logic block 2a, and the other logic block 2a , 4 selectors 7. Interval instructions generated by la to 7.4b respectively 6. lb to 6.4b are input as one microinstruction.
  • each instruction 10 stored in the shared microprogram memory 3 in the present embodiment includes three valid data sections 11. 1 to 1: L 1.3 and position information indicating the positions of the valid data sections. (SC) 13 and As described later, in position information 13, selection control data in which one of valid data and default value is specified as a sorting instruction for each selector is selected from 8. la to 8.4a and 8. lb to 8.4b. Force ⁇ Written!
  • Data in valid data part 11.1 of shared microprogram memory 3 is output to selector 7.la to 7.4a and selector 7.la to 7.2b, and data in valid data part 11.2
  • the data of the valid data part 11.3 is the selectors 7.3a to 7.4a and the selectors 7.la to 7.4b, Each is output.
  • Selector 7. la to 7.4a is selected and controlled by selection control data of position information 13.
  • 8. la to 8.4a is selected and controlled
  • selector 7. la to 7.4b is selection control data 8. lb to 8.4b
  • Each is selectively controlled. For example, since selector 7.4a is input from three valid data portions 11.1-11.3, one output is selected from three input data and one default value according to its selection control data 8.4a. .
  • each data width of valid data portions 11. 1 to L 1.3 is an interval instruction 6. la to 6.
  • each data width of 4a and 6. lb-6. 4b It is the same as each data width of 4a and 6. lb-6. 4b.
  • the data width of the instructions required by each of the logic blocks 2a and 2b is the same as the sum of the data widths of the interval instructions 6.la to 6.4a (or 6.lb to 6.4b). Therefore, for example, even if all three valid data portions 11 1. 1 to L 1.3 are assigned to one logic block, the instruction data width of the logic block is insufficient. In this case, default values are used for missing data.
  • FIG. 4A is a schematic diagram showing an example of a plurality of microinstructions stored in the microprogram memory cores 30a and 30b in the conventional independent adjacent processor element
  • FIG. 4B is a diagram showing the first embodiment of the present invention. Shows multiple compressed instructions stored in memory core 30
  • FIG. 7C is a schematic view showing the format of the position information 13 in one compression instruction.
  • each of micro program memory cores 30 a and 30 b stores five word data (one word data corresponds to one micro instruction of the processor element) in order. It is assumed that the white part indicates a valid bit and the hatched part indicates an invalid bit (default value).
  • the word data in each memory core is divided into interval data corresponding to the interval instruction described above.
  • four section data obtained by dividing one word data into four equal parts are illustrated.
  • the word data (micro instruction) stored in the top row (bottom row in the figure) of the microprogram memory core 30a is the top section data A and the last section data.
  • Valid bits exist in B and B, respectively, and all other interval data are invalid bits.
  • all the word data stored in the top row (bottom row in the figure) of the microprogram memory core 30b are invalid bits. If valid data is included in the interval data, the interval data is regarded as "valid data”, and otherwise it is considered as "invalid data”. Therefore, in FIG. 4A, section data A to L are valid data.
  • Word data stored in microprogram memory cores 30a and 30b in such adjacent processor elements are integrated by rank, and only valid data A to L are integrated as shown in FIG. 4 (B). It is stored in the shared microprogram memory 30 together with the position information of In FIG. 4 (B), each compression instruction of the shared microprogram memory core 30 is composed of position information (SC) 13 and three valid data portions 11.1 to L 1.3. Valid data portions 11.1 to L 1.3 correspond to the three sections of integrated word data shown in FIG. 4 (A), respectively. For example, since effective data A is located at the left end of integrated word data 10.1, effective data portion 11.1 is written, and since effective data B is located in the middle 2 columns, effective data portion 11.2 is written.
  • position information 13 includes selectors 7. la to 7. 4a and selectors 7. 1 b to 7.4 b. 4a is stored in order.
  • selectors 7. la and 7.4b select one valid data and one default value, so selection control data 8, la and 8.4b need only be 1 bit.
  • Other selectors 7. 2a-7. 4a and 7. 1b-7. 3b select one of 2 or 3 valid data and default values, so selection control data 8. 2a-8. 4a and 8. b. lb-8.3b requires 2 bits.
  • valid data A which is the first section data is valid data section 11.1
  • valid data B which is the fourth section data B is valid data section. Since they are written in 11.2, their location information 13 is set as follows.
  • Selection control data 8. la is 1 bit data (eg "1") to select valid data from valid data section 11.
  • selection control data 8.2a and 8.3a are invalid data
  • Force default 2-bit data for example, "00" for selecting a value
  • selection control data 8.4a is 2-bit data (for example, "10") for selecting valid data from valid data portion 11.2.
  • Control data 8. 4a and 8. lb to 8.4b are 2 bit data (eg "00") for selecting the force default value which is invalid data.
  • valid data stored in valid data portion 11.1 is stored.
  • the selector A outputs the selector 7. la to the selector 7.2 b, and the valid data B stored in the valid data portion 11.2 to the selectors 7.2 a to 7.3 b.
  • Location information 13 Valid data portion 11. 1-bit selection control data for selecting valid data from 8.1 8.1a, 2-bit selection control data for selecting default value 8.2a and 8.3a, valid data portion 11. 2-bit selection control data to select valid data from 2. 8. 4a, and 2-bit selection control data to select default value. 8. 4a and 8. lb to 8.4 b power. It will be These selection control data 8. la to 8.4 b are output to selectors 7. la to 7.4 b, respectively.
  • selector 7. interval command which is valid data A from la is output to logic block 2a, and interval command which is a default value from selectors 7.2a and 7.3a is 6.2a
  • 3a is the selector 7.
  • 4a an interval instruction whose valid data b is 6.
  • 4a is output to the logic block 2a, and further, the selector 7. 1b to 7. 4b an interval instruction which is the default value. 4a and 6. lb-6. 4b are output to logic block 2b.
  • one microinstruction is given to each of logic blocks 2a and 2b.
  • the compressed instruction 10.5 is read by one clock.
  • the valid data I is an interval instruction 6. la
  • the default value is an interval instruction 6.2a
  • the valid data J and K are interval instructions 6.3a and 6.4a
  • the default value is an interval instruction 6.
  • the compressed instruction 10.6 is read by the next clock as the lb to 6.3b
  • the valid data L is read as the interval instruction 6.4b.
  • These interval instructions 6.la to 6. 4a and 6. lb to 6.4b are output to logic blocks 2a and 2b, respectively.
  • the block diagram shown in FIG. 3 is an example of the fastest circuit that does not include a circuit between the position information 13 and each selector. Inserting a decoder between the position information 13 and each selector to reduce the bit width of the position information 13 can be easily implemented by those skilled in the art.
  • the data format of the conventional microprogram memory shown in FIG. 4 (A) must be converted into the format shown in FIG. 4 (B) in advance. That is, it is necessary to cut out conventional microprogram power valid data, create selection control data specifying the output position thereof, and store them in predetermined word data of shared microprogram memory 30.
  • This conversion process can be performed by dedicated software. The Also, this software is included in the compiler, even! /.
  • processor elements in a processor array have a large number of switches for programmable wiring which are not included in a single processor, and hence the ratio of valid data used simultaneously among instructions is a single processor. It drops significantly compared to.
  • FIG. 5 is a circuit diagram for explaining the operation of the processor array.
  • the processor array may have an inherent phenomenon which is not present in a single processor.
  • a processor element (for example, la) indicated by a white square is occupied by data in which a large part of the instruction is valid
  • a processor element (for example, lb) indicated by a hatched box is It is assumed that most of the instructions are occupied by invalid data (default value).
  • two microprocessor elements share one microprogram memory, and therefore, a difference in effective data amount between processor elements is actively used.
  • Significant microprogram memory savings can be realized compared to the prior art.
  • a shared microprogram shared by both is used. A large amount of valid data can be allocated from the memory 3 to the logic block 2a, and the two logic blocks can merge the valid data as needed. Therefore, processing can be performed with less microprogram memory as a whole.
  • the number of address decoders 5 used is smaller than that in the prior art, further area reduction is realized.
  • the number of valid data is three and the interval per logic block is four instructions. In the present invention, the number of these is not limited to this, and any number may be used. You may Modifications of the present embodiment will be described later.
  • the manner in which two processor elements share one microprogram memory is not limited to the laterally aligned processor elements of the first embodiment.
  • the processor element complex of the first embodiment described above since the microprogram memories of two processor elements la and lb next to each other are shared, the processor element complex is used.
  • the width of the microprogram memory 3 of the processor element complex 300 of 02 (A) is significantly shorter than the sum of the widths of the microprogram memories 3a and 3b of la and lb. This is because, along with the sharing of the two microprogram memories, invalid data (default value) is eliminated and the data width of the microprogram memory is reduced.
  • FIG. 2 (A) it is necessary to reduce the width of the logic blocks 2a and 2b compared to the conventional width (FIG. 2 (B)) and redesign the arrangement of operation units and switches. .
  • the processor array according to the second embodiment of the present invention shares the microprogram memories 3a and 3b of the processor elements la and lb arranged one above the other, thereby forming the processor element complex 300.
  • the width of the logic blocks 2a and 2b can be configured to be the same as the width of the conventional processor element, with a slight change. For this reason, there is a merit that if it is not necessary to redesign the arrangement of computing units and switches, or if only minor changes are required.
  • FIG. 6 is used to explain the processor array according to the second embodiment of the present invention in comparison with the conventional processor array, and (A) shows the processor array according to the second embodiment of the present invention.
  • FIG. 2B is a schematic block diagram showing an instruction system
  • FIG. 2B is a schematic block diagram showing an instruction system of a conventional processor array. Although only 2 rows and 4 columns of processor elements are shown here in order not to clutter the figure, the same is true even if a desired number of processor elements are arranged.
  • FIG. 6 (A) in the processor array according to the present embodiment, a plurality of processor elements are The address complex 4 is arranged, and an address signal 4 is output from the sequencer 200 to each processor element complex 300.
  • the processor element complex 300 has two logic blocks 2a and 2b arranged in the vertical direction and a shared microprogram memory 3 for storing instructions for them.
  • Logic blocks 2a and 2b of processor element complex 300 are, as shown in FIG. 6 (B), conventionally, the logic blocks of two processor elements la and 1b are vertically adjacent to each other and independently. Respectively. Therefore, logic blocks 2a and 2b are the same circuit.
  • the shared microprogram memory 3 of the processor element complex 300 is an integration of the conventional microprogram memories 3a and 3b of the processor elements la and 1b. As described above, the shared microprogram memory 3 stores a plurality of compressed instructions, and one compression instruction is read according to the address signal 4 input from the sequencer 200. Two microinstructions are decoded from the read compressed instruction, which control logic blocks 2a and 2b respectively.
  • the configuration of the processor element complex 300 is the same as that shown in FIG.
  • the number of processor elements sharing one microprogram memory is not limited to two as in the first and second embodiments! //.
  • FIG. 7 is used to explain the processor array according to the third embodiment of the present invention in comparison with the conventional processor array, and (A) shows the processor array according to the third embodiment of the present invention.
  • FIG. 2B is a schematic block diagram showing an instruction system
  • FIG. 2B is a schematic block diagram showing an instruction system of a conventional processor array. Although only 2 rows and 4 columns of processor elements are shown here in order not to clutter the figure, the same is true even if a desired number of processor elements are arranged.
  • processor element complex 300 in the processor array according to the present embodiment, a plurality of processor element complexes 300 are arranged, and an address signal 4 is output from sequencer 200 for each processor element complex 300. Be done.
  • Processor element complex 300 stores two logic blocks 2a and 2b vertically arranged and instructions for them. It has a shared microprogram memory 3.
  • Logic blocks 2a, 2b, 2c and 2d of processor element complex 300 are, as shown in FIG. 7 (B), conventionally four processor elements independently adjacent in the vertical and horizontal directions. It corresponds to the logic block of la, lb, lc and Id respectively. Thus, logic blocks 2a, 2b, 2c and 2d are the same circuit.
  • the shared microprogram memory 3 of the processor element complex 300 is an integration of the conventional microprogram memories 3a, 3b, 3c and 3d of the processor elements la, lb, lc and Id. As described above, the shared microprogram memory 3 stores a plurality of compressed instructions, and one compressed instruction is read according to the address signal 4 input from the sequencer 200. From the compressed instruction read out, two microphone instructions are decoded, which control logic blocks 2a, 2b, 2c and 2d respectively.
  • the configuration of the processor element complex 300 according to the third embodiment is basically the same as that of FIG. 3 except for the difference due to the increase in the number of control target sound blocks. That is, logic blocks 2c and 2d are added to logic blocks 2a and 2b in FIG. 3, and selectors are similarly added correspondingly.
  • the instruction 10 stored in the memory core 30 includes the position information 13 in which the selection control data corresponding to the section instruction of each logic block is arranged, and a plurality of valid data sections. Each valid data portion is connected such that a predetermined number of selectors serving as an output destination are sequentially shifted. This connection relationship is merely an extension of the connection relationship between the memory core 30 and each selector shown in FIG.
  • FIG. 8 is a schematic block diagram showing an instruction system of a processor array according to a fourth embodiment of the present invention.
  • a plurality of logic blocks 2i and a plurality of shared microprogram memory 3ij are arranged in parallel in a line, and one shared two shared memory. It is controlled by the microprogram memory.
  • i is a, b, c or d
  • j is b, c or d according to the symbols in FIG. 8
  • one shared microprogram memory 3a b controls the two closest logic blocks 2a and 2b, 1
  • One logic block 2b is controlled by the two most recent shared microprogram memories 3ab and 3bc.
  • microprogram memory 3 ij distributes valid data to logic blocks 2 i and 3 ⁇ 4.
  • Arrows 9 extending from one microprogram memory to two logic blocks in the figure distribute the valid data to which microprogram memory is valid data.
  • the valid data is distributed from the memory memories 3ij and 3 ⁇ 4k.
  • FIG. 9 is a block diagram showing a more detailed configuration of the processor array of FIG.
  • the same reference numerals as in FIG. 8 denote the same blocks as in FIG. 8, and a description of the block configuration and operation described in FIG. 3 will be omitted.
  • the configurations related to the shared microphone program memory 3bc and the logic blocks 2b and 2c are the same.
  • the instruction 10 stored in each shared microprogram memory 3 includes two valid data portions 11.1 and 11.2 and one position information 13.
  • the valid data section and location information are as described in Figure 4 (B) and (C).
  • the other logic blocks receive interval instructions 6. 1-6. 4 from the four selectors 7. 1-7. 4 and the first logic block has 2 selectors 7 From 3 and 7.4 to interval instruction 6.3 and 6.4
  • the last logic block shall receive interval instructions 6.1 and 6.2 from selectors 7.1 and 7.2.
  • the number of valid data and section instructions shown here is merely an example, and the present invention is not limited to this.
  • the data of the valid data part 11. lbc is output to the selectors 7.3b and 7.4b and the selector 7. 1c, respectively, and the valid data part 11.2 be The data is output to selector 7.4b and selector 7.lc and 7.2c, respectively.
  • Selectors 7. 3b, 7. 4b, 7. 1c and 7. 2c are selected and controlled by position information 13bc, selection control data 8.3b, 8. 4b, 8. 1c and 8.2c, respectively.
  • selector 7.4b inputs from two valid data sections 11. lbc and 11. 2bc, it selects one output from two input data and one default value according to its selection control data 8.4b.
  • selecting from a maximum of three greatly simplifies the circuit configuration and reduces the circuit area and delay.
  • each shared microprogram memory has two valid data parts and is distributed to two road area blocks, so on average, two valid per logic block. There will be data. That is, of the four interval instructions possessed by one logic block, there are half as many effective data on average.
  • FIG. 10 is a schematic block diagram showing an instruction system of a processor array according to a modification of the first or second embodiment of the present invention
  • FIG. 11 is a more detailed view of a processor element complex. It is a block diagram showing composition.
  • FIGS. 10 and 11 the same reference numerals are used for the same blocks, and the description of the block configuration and operation described in FIG. 3 will be omitted.
  • processor arrays arranged in a line are illustrated to avoid cluttering the figure, the same is true even if a desired number of processor elements are arranged in an area. Only force also receives valid data.
  • Each instruction 10 stored in the shared microprogram memory 3 in the present modification includes four valid data portions 11.1 to: L 1.
  • position information (SC) 13 indicating the position of the valid data portions It consists of As described above, in position information 13, selection control data in which one of valid data and default value is specified as a sorting instruction for each selector is 8. la to 8.4 a and 8. lb to 8.4 b. Has been written.
  • the data of valid data portion 11.1 of shared microprogram memory 3 is output to selector 7.la to 7.4a and selector 7.la respectively, and the data of valid data portion 11.2 is selected to selector 7.b. 2a to 7. 4a and the selector 7.
  • the data of the valid data part 11.3 is from la to 7.2b.
  • the data of 4 is output to selector 7.4a and selector 7.la to 7.4b, respectively.
  • Selector 7. la to 7.4a is selected and controlled by selection control data of position information 13. 8. la to 8.4a, respectively.
  • Selector 7. la to 7.4b is selected by selection control data 8. lb to 8.4b. Selected Controlled.
  • the selector 7.4a is input from four valid data parts 11.1 to 1: 1.4, according to the selection control data 8.4a, one output from four input data and one default value select.
  • each data width of valid data portions 11. 1 to L 1. 4 is the same as each data width of section commands 6. la to 6.4 a and 6. lb to 6.4 b. .
  • the data width of the instructions required by each of the logic blocks 2a and 2b is the same as the sum of the data widths of the interval instructions 6. la to 6. 4a (or 6. lb to 6.4 b). Therefore, one microinstruction can be configured by assigning all four valid data sections 11.1 to 11.4 to one logic block.
  • the present invention is applicable to a processor array in which a plurality of processor elements are arranged in a one-dimensional or two-dimensional array.
  • FIG. 1 (A) is a circuit diagram showing a general configuration of a processor array, and (B) is a block diagram schematically showing an example of an instruction system of a conventional processor array.
  • FIG. 2A is a schematic block diagram showing an instruction system of a processor array according to a first embodiment of the present invention
  • FIG. 2B is a schematic block diagram showing an instruction system of a conventional processor array.
  • FIG. 3 is a block diagram showing the configuration of a processor element complex according to a first embodiment of the present invention.
  • FIG. 4A is a schematic diagram showing an example of a plurality of microinstructions stored in microprogram memory cores 30a and 30b in a conventional independent adjacent processor element
  • FIG. 4B is a first embodiment of the present invention
  • FIG. 12C is a schematic view showing a plurality of compressed instructions stored in the memory core 30 in the embodiment
  • FIG. 12C is a schematic view showing a format of position information 13 in one compressed instruction.
  • FIG. 5 is a circuit diagram for explaining the operation of the processor array.
  • FIG. 6 (A) is a schematic block diagram showing an instruction system of a processor array according to a second embodiment of the present invention
  • FIG. 6 (B) is a schematic block diagram showing an instruction system of a conventional processor array.
  • FIG. 7 (A) is a schematic block diagram showing an instruction system of a processor array according to a third embodiment of the present invention
  • FIG. 7 (B) is a schematic block diagram showing an instruction system of a conventional processor array.
  • FIG. 8 is a schematic block diagram showing an instruction system of a processor array according to a fourth embodiment of the present invention.
  • FIG. 9 A block diagram showing a more detailed configuration of the processor array of FIG.
  • FIG. 10 is a schematic block diagram showing an instruction system of a processor array according to a modification of the first or second embodiment of the present invention.
  • FIG. 11 is a block diagram showing a more detailed configuration of a processor element complex in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Abstract

 省面積のマイクロプログラムメモリを有するプロセッサアレイを提供する。  プロセッサアレイにおいて、互いに隣接した複数のプロセッサエレメントのマイクロプログラムメモリを共有化する。共有化されたマイクロプログラムメモリ3には有効なデータとその位置情報13を格納し、有効データを含む有効データ部11.1~11.3を複数のプロセッサエレメントのロジックブロック2a、2bで融通しあう。これによって、必要なマイクロプログラムメモリが削減され、省面積が実現される。

Description

明 細 書
プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置お よびマイクロ命令制御方法
技術分野
[0001] 本発明はマイクロプログラムを実行するプロセッサアレイに係り、特にそのマイクロプ ログラムの制御方法および制御装置に関する。
背景技術
[0002] プロセッサアレイは、単一プロセッサの逐次処理と異なり、多数のプロセッサエレメン トの並列処理によって高速データ処理を実現できることから大いに注目されており、こ れまでに様々な提案がなされている。以下、図 1を参照しながら従来例を簡単に説明 する。図 1 (A)はプロセッサアレイの一般的な構成を示す回路図であり、(B)は従来 のプロセッサアレイの命令系統の一例を概略的に示すブロック図である。
[0003] 特開 2001— 312481号公報 (特許文献 1)には、図 1 (A)に示すように、多数のプ 口セッサエレメント(PE) 1が 2次元アレイ状に配列され、プログラマブル配線 100よつ てプログラマブルに接続されたプロセッサアレイが開示されて 、る。プロセッサエレメ ント 1の各々は、図 1 (B)に示すように、演算器およびスィッチを含むロジックブロック 2 とマイクロプログラムメモリ 3'とから構成されており、各ロジックブロックの演算器ゃスィ ツチの機能は、そのマイクロプログラムメモリ 3'から出力される命令によって決定され る。スィッチ機能を例に取れば、プログラマブル配線間の接続状態を設定したり、プロ グラマブル配線力もの演算器入力の選択や演算結果の出力先となるプログラマブル 配線の指定をしたりする。マイクロプログラムメモリ 3'は複数の命令を保持しており、 いずれの命令を出力するかはシーケンサ 200によって生成されるアドレス信号 4によ つて決定される。
[0004] ところが、実際には、命令によって同時に制御されるのは、ロジックブロック内の一 部の演算器やスィッチであることが多い。言い換えれば、アドレス信号 4によって指定 された命令は、実施の命令として使用されるのはその一部のみであり、残りはデフォ ルト値 (たとえば論理値 0)としてマイクロプログラムメモリ 3を無駄に占有して!/、る。 [0005] このような命令によるメモリの無駄な占有を回避するための方法が特開平 7— 1756 48号公報 (特許文献 2)に開示されている。この方法のポイントは、命令のうち未使用 フィールド (すなわちデフォルト値の部分)を省略してメモリに格納し、メモリから読み 出すときに省略した未使用フィールドを元の状態に戻して 1つの命令として使用する 点にある。所定長の命令のどの位置に未使用フィールドがあるかを示す情報を付カロ する必要がある力 全体としてはメモリの節約が可能となる(段落 0013〜0022、図 1 、図 2参照)。
特許文献 1:特開 2001 - 312481号公報
特許文献 2 :特開平 7— 175648号公報
発明の開示
発明が解決しょうとする課題
[0006] し力しながら、特許文献 2に記載されたメモリ節約方法は、単一プロセッサを前提と したものであり、これをそのままプロセッサアレイに適用しても効果的なメモリ節約を達 成することはできない。単一プロセッサとは異なり、プロセッサアレイはプログラマブル 配線 100を有しているので、各プロセッサエレメントのロジックブロックには格段に多く のスィッチが設けられている。このため、単一プロセッサに比べてマイクロプログラムメ モリの無駄がはるかに多くなり、特許文献 2に記載されたメモリ節約方法では十分なメ モリ削減効果を得ることができないからである。
課題を解決するための手段
[0007] 本発明は、上記従来の課題を解決するものであり、プログラマブルに接続された複 数のロジックブロックの配列を有するプロセッサアレイにぉ 、て、前記複数のロジック ブロックの配列に対応して配列され、複数のマイクロ命令の有効データが少なくとも 一部分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位 置に対応するかを示す制御情報とを格納する複数のメモリ手段と、前記複数のメモリ 手段の各々と前記複数のマイクロ命令を供給すべき複数のロジックブロックとを接続 し、前記制御情報に基づ!、て前記有効データ部および所定データから前記複数の ロジックブロックの各々の機能を決定するマイクロ命令を生成するマイクロ命令生成 手段と、を有することを特徴とする。 言い換えれば、プロセッサアレイの互いに隣接した複数のプロセッサエレメントのマ イク口プログラムメモリを共有ィ匕し、共有ィ匕されたマイクロプログラムメモリに有効デー タとその位置情報を格納し、有効データを含む有効データ部を複数のプロセッサェ
Figure imgf000005_0001
[0009] 望ましくは、複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令 生成手段は前記複数のメモリ手段をそれぞれ上下方向に隣接する 2つのロジックブ ロックに接続する。
[0010] 本発明の一実施形態によれば、マイクロ命令生成手段は、複数のメモリ手段の各 々を隣接する 2つのロジックブロックに接続し、かつ、前記複数のロジックブロックの各 々を隣接する 2つのメモリ手段に接続することが望ま 、。
[0011] 本発明の一側面によるプロセッサエレメント複合体は、他のロジックブロックとプログ ラマブルに接続可能な複数のロジックブロックと、複数のマイクロ命令の有効データ が少なくとも一部分に格納された複数の有効データ部と各有効データ部がマイクロ命 令のどの位置に対応するかを示す制御情報とからなる符号化命令を複数個格納す るメモリ手段と、アドレス信号に従って前記複数の符号化命令の 1つを指定するァドレ スデコーダと、前記メモリ手段と前記複数のロジックブロックとを接続し、指定された符 号化命令の前記制御情報に基づ!、て、前記有効データ部および所定データから前 記複数のロジックブロックの各々の機能を決定するマイクロ命令を復号ィヒする復号ィ匕 手段と、を有することを特徴とする。
[0012] 上述したマイクロ命令生成手段ある!/ヽは復号化手段は、好まし!/ヽ実施例として、各 ロジックブロックに対応して設けられ、前記制御情報に従って前記有効データ部およ び前記所定データの!/、ずれかを選択し、前記マイクロ命令を構成する複数の区間デ ータをそれぞれ生成する複数のセレクタ力 なる。
[0013] 本発明の他の側面によるプロセッサアレイは、複数の同等なロジックブロック B〜B
1 N
(Nは 2以上の整数)と、前記ロジックブロックの各々に付随する複数のセレクタと、前 記ロジックブロック B〜: Bに対応して配列された複数のマイクロプログラムメモリ P〜
1 N 1
P とを有し、前記ロジックブロック B〜Bの各々は、演算器と、ロジックブロック間を
N-1 1 N
プログラマブルに接続するスィッチとを含み、前記マイクロプログラムメモリ p〜pの 各々に格納されている複数の命令の各々は、位置情報と複数の有効データ部とを含 み、任意のロジックブロック B (1= 2, · · · , N- 1)に付随する前記複数のセレクタのう ち第 1のグループは、マイクロプログラムメモリ M から前記位置情報と前記複数の有
i-1
効データ部とを供給され、前記複数のセレクタのうち第 2のグループはマイクロプログ ラムメモリ M力 前記位置情報と前記複数の有効データ部とを供給され、前記複数 のセレクタの各々は、前記位置情報に含まれるデータに基づいて、前記複数の有効 データ部と既定値とから一つを選択して区間命令として出力し、前記複数のセレクタ 力も出力される区間命令によって、対応するロジックブロックの機能が決定され、各口 ジックブロックの前記区間命令の合計データ幅より、前記マイクロプログラムメモリの 前記複数の有効データ部の合計データ幅が小さ 、、ことを特徴とする。
[0014] 本発明のさらに別の側面によるマイクロ命令制御装置は、前記複数のロジックプロ ックの配列に対応して配列され、複数のマイクロ命令の有効データが少なくとも一部 分に格納された複数の有効データ部と各有効データ部がマイクロ命令のどの位置に 対応するかを示す制御情報とを格納する複数のメモリ手段と、前記複数のメモリ手段 の各々と前記複数のマイクロ命令を供給すべき複数のロジックブロックとを接続し、前 記制御情報に基づいて前記有効データ部および所定データから前記複数のロジッ クブロックの各々の機能を決定するマイクロ命令を生成するマイクロ命令生成手段と
、ことを特徴とする。
[0015] 本発明のさらに別の側面によるマイクロ命令制御方法は、複数のマイクロ命令の有 効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部が マイクロ命令のどの位置に対応するかを示す制御情報とからなる符号化命令を複数 個格納し、アドレス信号に従って前記複数の符号化命令から 1つを指定し、指定され た符号化命令の前記制御情報に基づ!、て、前記有効データ部および所定データか ら前記複数のロジックブロックの各々の機能を決定するマイクロ命令を復号し、前記 復号されたマイクロ命令を対応するロジックブロックへ供給する、ことを特徴とする。 発明の効果
[0016] 本発明によれば、マイクロプログラムメモリを複数のプロセッサエレメントで共有し、 マイクロプログラムメモリに格納するデータは有効データに基づいたものであるために 、マイクロプログラムメモリの面積を縮小でき、プロセッサアレイにおけるメモリスペース を大幅に削減することができる。
[0017] また、従来は上下に並んでいたプロセッサエレメントのマイクロプログラムメモリを共 有化することで、ロジックブロックの横幅を従来のプロセッサエレメントの横幅と同じか 、わずかな変更で済むように構成することができる。ロジックブロックの演算器ゃスイツ チの配置を再設計しなくてよ!、か、または軽微な変更で済むと!、う効果がある。
[0018] さらに、複数のメモリ手段の各々を隣接する 2つのロジックブロックに接続し、かつ、 複数のロジックブロックの各々を隣接する 2つのメモリ手段に接続することで、回路構 成が大幅に簡単になり、回路面積や遅延を減らすことができる。さらに、有効データ や制御情報を転送する範囲が狭くなるので、配線の長さも短くて済むというメリットも ある。しかも、 1つのロジックブロック当たり最大で 4つの有効データを使えるなど、有 効データの融通性も向上する。
発明を実施するための最良の形態
[0019] 1.第 1実施形態
1. 1)プロセッサアレイ
図 2は本発明の第 1実施形態によるプロセッサアレイを従来のプロセッサアレイと比 較して説明するために用いられ、(A)は本発明の第 1実施形態によるプロセッサァレ ィの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を 示す概略的ブロック図である。ここでは、図を煩雑にしないために 2行 4列のプロセッ サエレメントだけを図示して 、るが、所望の数のプロセッサエレメントが配列されても 同様である。
[0020] 図 2 (A)において、本実施形態によるプロセッサアレイでは、複数のプロセッサエレ メント複合体 300が配列されており、各プロセッサエレメント複合体 300に対してシー ケンサ 200からアドレス信号 4が出力される。プロセッサエレメント複合体 300は、後 述するように、 2つのロジックブロック 2aおよび 2bと、それらに対する命令を格納する 共有ィ匕マイクロプログラムメモリ 3とを有する。
[0021] プロセッサエレメント複合体 300のロジックブロック 2aおよび 2bは、 02 (B)に示すよ うに、従来は横方向に隣り合って独立して!/、た 2つのプロセッサエレメント laおよび 1 bのロジックブロックにそれぞれ対応する。したがってロジックブロック 2aおよび 2bは 同じ回路である。
[0022] また、プロセッサエレメント複合体 300の共有ィ匕マイクロプログラムメモリ 3は、従来 のプロセッサエレメント laおよび lbのマイクロプログラムメモリ 3aおよび 3bを統合した ものである。後述するように、共有ィ匕マイクロプログラムメモリ 3には圧縮された命令が 複数個格納されており、シーケンサ 200から入力したアドレス信号 4に従って 1つの圧 縮命令が読み出される。読み出された圧縮命令から 2つのマイクロ命令を復号し、そ れらによってロジックブロック 2aおよび 2bがそれぞれ制御される。各マイクロ命令によ る対応ロジックブロックの制御は従来と同様である。
[0023] このようにマイクロプログラムメモリを複数のプロセッサエレメントで共有することで、 マイクロプログラムメモリの面積を縮小することができる。
[0024] 1. 2)プロセッサエレメント複合体
図 3は本発明の第 1実施形態によるプロセッサエレメント複合体の構成を示すブロッ ク図である。プロセッサエレメント複合体 300は、 2つのロジックブロック 2aおよび 2bと 、複数の圧縮命令を格納する共有ィ匕マイクロプログラムメモリ 3と、ロジックブロック 2a および 2bへそれぞれ与えられる 2つのマイクロ命令を生成するための復号部と、を有 する。復号部は、後述するように、ロジックブロック 2aに付随するセレクタ 7. la〜7. 4 aとロジックブロック 2b〖こ付随するセレクタ 7. lba〜7. 4bとから構成される。
[0025] 共有化マイクロプログラムメモリ 3は、アドレス信号 4をデコードするアドレスデコーダ 5と複数の命令を格納するメモリコア 30とを有し、アドレス信号 4に応じて複数の命令 のうち一つを復号部へ出力する。
[0026] 本実施形態におけるマイクロ命令は 4つの区間命令力 構成され、各区間命令は 1 つのセレクタによって生成される。すなわち、 4つのセレクタ 7. la〜7. 4aによりそれ ぞれ生成される区間命令 6. la〜6. 4aは 1つのマイクロ命令として一方のロジックブ ロック 2aに入力し、他方のロジックブロック 2aには、 4つのセレクタ 7. la〜7. 4bによ りそれぞれ生成される区間命令 6. lb〜6. 4bが 1つのマイクロ命令として入力する。
[0027] また、本実施形態における共有ィ匕マイクロプログラムメモリ 3に格納された各命令 10 は、 3つの有効データ部 11. 1〜: L 1. 3とそれら有効データ部の位置を示す位置情 報(SC) 13とからなる。位置情報 13には、後述するように、各セレクタに対して有効 データおよびデフォルト値のいずれか一方を区分命令として指定する選択制御デー タ 8. la〜8. 4aおよび 8. lb〜8. 4b力 ^書き込まれて!/、る。
[0028] 共有化マイクロプログラムメモリ 3の有効データ部 11. 1のデータはセレクタ 7. la〜 7. 4aおよびセレクタ 7. la〜7. 2bにそれぞれ出力され、有効データ部 11. 2のデー タはセレクタ 7. 2a〜7. 4aおよびセレクタ 7. la〜7. 3bに、有効データ部 11. 3のデ ータはセレクタ 7. 3a〜7. 4aおよびセレクタ 7. la〜7. 4bに、それぞれ出力される。 セレクタ 7. la〜7. 4aは位置情報 13の選択制御データ 8. la〜8. 4aによってそれ ぞれ選択制御され、セレクタ 7. la〜7. 4bは選択制御データ 8. lb〜8. 4bによって それぞれ選択制御される。たとえば、セレクタ 7. 4aは 3つの有効データ部 11. 1〜1 1. 3から入力するので、その選択制御データ 8. 4aに従って、 3つ入力データおよび 1つのデフォルト値から 1つの出力を選択する。
[0029] 図 3において、有効データ部 11. 1〜: L 1. 3の各データ幅は、区間命令 6. la〜6.
4aおよび 6. lb〜6. 4bの各データ幅と同じである。ロジックブロック 2aおよび 2bの各 々が必要とする命令のデータ幅は、区間命令 6. la〜6. 4a (あるいは 6. lb〜6. 4b )のデータ幅の合計と同じである。したがって、たとえば 3個すベての有効データ部 1 1. 1〜: L 1. 3を一方のロジックブロックに割り当てたとしても、当該ロジックブロックの 命令データ幅には不足する。この場合、不足するデータはデフォルト値が使われる。
[0030] 既に説明したように、 1つのマイクロ命令のうち、すべてのビットが有効な情報として 使われる場合は少な!/、ので、ほとんどの場合は本実施形態のように 3つの有効デー タ部を用意することで間に合う。もし命令の全ビットを使用する必要が生じた場合は、 次に説明するように、その命令を複数命令に分割して実行することで対処可能である 。その場合、所要クロック数は増える力 プログラム全体でそのような事態がわずかな 回数しか起こらなければ、全体の性能はほとんど変わらな 、。
[0031] 1. 3)メモリ節約法
図 4 (A)は、従来の独立した隣接プロセッサエレメントにおけるマイクロプログラムメ モリコア 30aおよび 30bに格納された複数のマイクロ命令の一例を示した模式図、(B )は本発明の第 1実施形態におけるメモリコア 30に格納された複数の圧縮命令を示 した模式図、(C)は 1つの圧縮命令における位置情報 13のフォーマットを示す模式 図である。
[0032] 図 4 (A)にお!/、て、マイクロプログラムメモリコア 30aおよび 30bの各々には、 5つの ワードデータ(1ワードデータはプロセッサエレメントの 1マイクロ命令に相当する)が順 に格納されており、白い部分が有効なビット、斜線ハッチング部分が無効なビット(デ フォルト値)を示すものとする。本実施形態では、各々のメモリコア内のワードデータ を上述した区間命令に相当する区間データに分割する。ここでは、 1ワードデータを 4 等分した 4つの区間データを例示する。
[0033] 図 4 (A)に示す例では、マイクロプログラムメモリコア 30aの先頭行(図の最下行)に 格納されたワードデータ(マイクロ命令)には先頭の区間データ Aと後尾の区間デー タ Bとにそれぞれ有効ビットが存在し、その他の区間データはすべて無効ビットである 。またマイクロプログラムメモリコア 30bの先頭行(図の最下行)に格納されたワードデ ータすべて無効ビットである。区間データのなかに有効なビットが含まれていれば、そ の区間データを「有効データ」とし、そうでない場合には「無効データ」とする。従って 、図 4 (A)では、区間データ A〜Lが有効データである。
[0034] このような隣接プロセッサエレメントにおけるマイクロプログラムメモリコア 30aおよび 30bに格納されたワードデータは順位ごとに統合され、図 4 (B)に示すように、有効デ ータ A〜Lのみがそれらの位置情報と共に共有ィ匕マイクロプログラムメモリ 30に格納 される。図 4 (B)において、共有ィ匕マイクロプログラムメモリコア 30の各圧縮命令は、 位置情報(SC) 13と 3個の有効データ部 11. 1〜: L 1. 3と力らなる。有効データ部 11 . 1〜: L 1. 3は、図 4 (A)における統合ワードデータの 3つの区間割当にそれぞれ対 応している。たとえば、有効データ Aは統合ワードデータ 10. 1の左端に位置するの で有効データ部 11. 1に、有効データ Bは中央 2列に位置するので有効データ部 11 . 2に、それぞれ書き込まれる。
[0035] このように、図 4 (A)の統合ワードデータ 10. 1〜: LO. 4は有効データの個数が 3以 下であるから、図 4 (B)の共有化マイクロプログラムメモリ 30の圧縮命令 10. 1〜: LO. 4にそれぞれ対応して格納される。これに対して、統合ワードデータ 10. 5には 4つの 有効データ I、 J、 K、 Lが存在する。この場合には、図 4 (B)に示すように、 2つの圧縮 命令 10. 5および 10. 6を使って有効データ I、 J、 K、 Lを格納すればよい。読み出し のための所要クロック数は増える力 プログラム全体でそのような事態がわずかな回 数しか起こらな 、ので、全体的な影響は極めて少なく性能面での低下はほとんど無 い。
[0036] 図 4 (C)に示すように、位置情報 13は、セレクタ 7. la〜7. 4aおよびセレクタ 7. lb 〜7. 4bの選択動作をそれぞれ制御する選択制御データ 8. la〜8. 4aを順に格納 したものである。この例の場合、セレクタ 7. laおよび 7. 4bは 1つの有効データとデフ オルト値のうち一方を選択するので、選択制御データ 8, laおよび 8. 4bは 1ビットで あればよい。そのほかのセレクタ 7. 2a〜7. 4aおよび 7. lb〜7. 3bは 2つあるいは 3 つの有効データとデフォルト値のうち一つを選択するので選択制御データ 8. 2a〜8 . 4aおよび 8. lb〜8. 3bは 2ビット必要である。
[0037] たとえば、図 4 (B)の圧縮命令 10. 1では、第 1区間データである有効データ Aは有 効データ部 11. 1に、第 4区間データである有効データ Bは有効データ部 11. 2にそ れぞれ書き込まれているので、その位置情報 13は次のように設定される。選択制御 データ 8. laは有効データ部 11. 1からの有効データを選択するための 1ビットデー タ(たとえば" 1")、選択制御データ 8. 2aおよび 8. 3aは無効データである力 デフォ ルト値を選択するための 2ビットデータ (たとえば" 00")、選択制御データ 8. 4aは有 効データ部 11. 2からの有効データを選択するための 2ビットデータ(たとえば" 10") 、選択制御データ 8. 4aおよび 8. lb〜8. 4bは無効データである力 デフォルト値を 選択するための 2ビットデータ(たとえば" 00")となる。
[0038] 1. 4)動作
次に、共有ィ匕マイクロプログラムメモリ 30に図 4 (B)および (C)に示す圧縮命令が格 納されている場合を例にとって、図 3に示すプロセッサエレメント複合体 300の動作を 簡単に説明する。
[0039] たとえば、アドレス信号 4によって図 4 (B)の圧縮命令 10. 1が指定され、共有化プ ログラムメモリ 30から読み出されたとすると、有効データ部 11. 1に格納された有効デ ータ Aはセレクタ 7. la〜セレクタ 7. 2bに、有効データ部 11. 2に格納された有効デ ータ Bはセレクタ 7. 2a〜セレクタ 7. 3bに、それぞれ出力される。位置情報 13には、 有効データ部 11. 1からの有効データを選択するための 1ビット選択制御データ 8. 1 a、デフォルト値を選択するための 2ビット選択制御データ 8. 2aおよび 8. 3a、有効デ ータ部 11. 2からの有効データを選択するための 2ビット選択制御データ 8. 4a、およ び、デフォルト値を選択するための 2ビット選択制御データ 8. 4aおよび 8. lb〜8. 4 b力らなる。これらの選択制御データ 8. la〜8. 4bがそれぞれセレクタ 7. la〜7. 4b に出力される。
[0040] したがって、セレクタ 7. laからは有効データ Aである区間命令 6. laがロジックブロ ック 2aへ出力され、セレクタ 7. 2aおよび 7. 3aからはデフォルト値である区間命令 6. 2aおよび 6. 3aが、セレクタ 7. 4aからは有効データ bである区間命令 6. 4aがロジック ブロック 2aへ出力され、さらに、セレクタ 7. lb〜7. 4bからはデフォルト値である区間 命令 6. 4aおよび 6. lb〜6. 4bがロジックブロック 2bへ出力される。こうして、ロジック ブロック 2aおよび 2bにそれぞれ 1つのマイクロ命令が与えられる。
[0041] 図 4 (B)の圧縮命令 10. 5および 10. 6のように 1クロック命令であったものを複数ク ロックに分割した場合は、 1つのクロックにより圧縮命令 10. 5が読み出され、上述し たように有効データ Iが区間命令 6. la、デフォルト値が区間命令 6. 2a、有効データ J および Kがそれぞれ区間命令 6. 3aおよび 6. 4a、デフォルト値が区間命令 6. lb〜 6. 3bとして各セレクタに保持され、さらに、次のクロックにより圧縮命令 10. 6が読み 出され、有効データ Lが区間命令 6. 4bとして保持され、これら区間命令 6. la〜6. 4 aおよび 6. lb〜6. 4bがロジックブロック 2aおよび 2bへそれぞれ出力される。
[0042] なお、図 3に示すブロック図は、位置情報 13と各セレクタとの間に回路を含まない 最も高速な回路の例である。位置情報 13と各セレクタとの間にデコーダを挿入し、位 置情報 13のビット幅を削減することは、当該分野の技術を有するものであれば容易 に実施可能である。
[0043] また、上述したように、図 4 (A)で示した従来のマイクロプログラムメモリのデータ形 式は、あら力じめ図 4 (B)に示した形式に変換する必要がある。すなわち従来のマイ クロプログラム力 有効データを切り出し、その出力位置を指定する選択制御データ を作成し、それらを共有ィ匕マイクロプログラムメモリ 30の所定のワードデータ内に格納 しなければならない。この変換処理は専用のソフトウェアによって行うことができる。ま た、このソフトウェアはコンパイラに含まれて 、てもよ!/、。
[0044] 既述のようにプロセッサアレイにおけるプロセッサエレメントの場合、単一プロセッサ にはないプログラマブル配線用のスィッチを多量に持っており、このため命令の中で 同時に使う有効データの割合は単一プロセッサに比べて大幅に低下する。
[0045] 1. 5)効果
図 5はプロセッサアレイの動作説明のための回路図である。図 5に示すように、プロ セッサアレイでは単一プロセッサにはない固有の現象が生じることがある。ここで、白 い四角で示されたプロセッサエレメント(たとえば la)は、命令の多くの部分が有効な データが占められており、斜線ハッチングの四角で示されたプロセッサエレメント(たと えば lb)は、命令の多くの部分が無効なデータ(デフォルト値)で占められるものとす る。
[0046] このように、多数のプロセッサエレメントが一様に使われることはほとんどなぐプロセ ッサエレメントごとに命令に占める有効なデータの割合が異なることが多い。さらに、 プロセッサアレイでは、図 5に示したような有効データ割合の分布パターンは、クロッ クごとに変化していく。従来の単一プロセッサを前提としたマイクロプログラムメモリ節 約法では、このようなプロセッサエレメントごとの有効データ量の違いにまったく対応 できない。
[0047] これに対して、本実施形態によれば、 2つのプロセッサエレメントで 1つのマイクロプ ログラムメモリを共有して 、るので、プロセッサエレメントごとの有効データ量の違、を 積極的に利用して従来に比べて大幅なマイクロプログラムメモリの節約を実現できる 。たとえば、図 3において、ロジックブロック 2aが多量の有効データを使用し、ロジック ブロック 2bが少量の有効データし力使わない場合、本実施形態によれば、両者で共 有されている共有化マイクロプログラムメモリ 3から多くの有効データをロジックブロッ ク 2aに割り当てることができ、 2つのロジックブロックで必要に応じて有効データを融 通しあうことが可能となる。したがって、全体として少ないマイクロプログラムメモリで処 理が可能となる。
[0048] さらに、本実施形態では、使用するアドレスデコーダ 5の数が従来に比べて少なくな るため、さらなる面積低減が実現する。 [0049] なお、図 3に示すブロック図では、有効データを 3個、ロジックブロック当たりの区間 命令を 4個で説明した力 本発明においてこれらの個数はこれに限定されるものでは なぐ任意であってよい。本実施形態の変形例については後述する。
[0050] 2.第 2実施形態
2つのプロセッサエレメントで 1つのマイクロプログラムメモリを共有する仕方は第 1実 施形態の横方向に並んだプロセッサエレメントに限定されるものではな 、。上述した 第 1実施形態のプロセッサエレメント複合体では、図 2 (B)に示したように横に隣り合 つた 2つのプロセッサエレメント laおよび lbのマイクロプログラムメモリを共有化したも のであるから、プロセッサエレメント laおよび lbのマイクロプログラムメモリ 3aおよび 3 bの横幅の合計より、 02 (A)のプロセッサエレメント複合体 300のマイクロプログラム メモリ 3の横幅のほうが大幅に短くなる。これは 2つのマイクロプログラムメモリの共有 ィ匕に伴って、無効なデータ(デフォルト値)を省き、マイクロプログラムメモリのデータ 幅の節減を行ったためである。これによつて図 2 (A)に示すように、ロジックブロック 2a および 2bの横幅を従来の横幅(図 2 (B) )に比べて縮小し演算器やスィッチの配置を 設計し直す必要がある。
[0051] これに対して、本発明の第 2実施形態によるプロセッサアレイは、上下に並んでいた プロセッサエレメント laおよび lbのマイクロプログラムメモリ 3aおよび 3bを共有化する ことで、プロセッサエレメント複合体 300におけるロジックブロック 2aおよび 2bの横幅 を従来のプロセッサエレメントの横幅と同じ力、わずかな変更で済むように構成するこ とができる。このため、演算器やスィッチの配置を再設計しなくてよいか、または軽微 な変更で済むと 、うメリットがある。
[0052] 図 6は本発明の第 2実施形態によるプロセッサアレイを従来のプロセッサアレイと比 較して説明するために用いられ、(A)は本発明の第 2実施形態によるプロセッサァレ ィの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を 示す概略的ブロック図である。ここでは、図を煩雑にしないために 2行 4列のプロセッ サエレメントだけを図示して 、るが、所望の数のプロセッサエレメントが配列されても 同様である。
[0053] 図 6 (A)において、本実施形態によるプロセッサアレイでは、複数のプロセッサエレ メント複合体 300が配列されており、各プロセッサエレメント複合体 300に対してシー ケンサ 200からアドレス信号 4が出力される。プロセッサエレメント複合体 300は、縦 方向に並んだ 2つのロジックブロック 2aおよび 2bと、それらに対する命令を格納する 共有ィ匕マイクロプログラムメモリ 3とを有する。
[0054] プロセッサエレメント複合体 300のロジックブロック 2aおよび 2bは、図 6 (B)に示すよ うに、従来は縦方向に隣り合って独立して 、た 2つのプロセッサエレメント laおよび 1 bのロジックブロックにそれぞれ対応する。したがってロジックブロック 2aおよび 2bは 同じ回路である。
[0055] また、プロセッサエレメント複合体 300の共有ィ匕マイクロプログラムメモリ 3は、従来 のプロセッサエレメント laおよび lbのマイクロプログラムメモリ 3aおよび 3bを統合した ものである。上述したように、共有ィ匕マイクロプログラムメモリ 3には圧縮された命令が 複数個格納されており、シーケンサ 200から入力したアドレス信号 4に従って 1つの圧 縮命令が読み出される。読み出された圧縮命令から 2つのマイクロ命令を復号し、そ れらによってロジックブロック 2aおよび 2bがそれぞれ制御される。なお、プロセッサェ レメント複合体 300の構成は、図 3と同じであるから説明は省略する。
[0056] 3.第 3実施形態
1つのマイクロプログラムメモリを共有するプロセッサエレメントの数は上記第 1およ び第 2実施形態のように 2個に限定されるものではな!/、。
[0057] 図 7は本発明の第 3実施形態によるプロセッサアレイを従来のプロセッサアレイと比 較して説明するために用いられ、(A)は本発明の第 3実施形態によるプロセッサァレ ィの命令系統を示す概略的ブロック図、(B)は従来のプロセッサアレイの命令系統を 示す概略的ブロック図である。ここでは、図を煩雑にしないために 2行 4列のプロセッ サエレメントだけを図示して 、るが、所望の数のプロセッサエレメントが配列されても 同様である。
[0058] 図 7 (A)において、本実施形態によるプロセッサアレイでは、複数のプロセッサエレ メント複合体 300が配列されており、各プロセッサエレメント複合体 300に対してシー ケンサ 200からアドレス信号 4が出力される。プロセッサエレメント複合体 300は、縦 方向に並んだ 2つのロジックブロック 2aおよび 2bと、それらに対する命令を格納する 共有ィ匕マイクロプログラムメモリ 3とを有する。
[0059] プロセッサエレメント複合体 300のロジックブロック 2a、 2b、 2cおよび 2dは、図 7 (B) に示すように、従来は上下および左右方向に隣り合って独立して 、た 4つのプロセッ サエレメント la、 lb、 lcおよび Idのロジックブロックにそれぞれ対応する。したがって ロジックブロック 2a、 2b、 2cおよび 2dは同じ回路である。
[0060] また、プロセッサエレメント複合体 300の共有化マイクロプログラムメモリ 3は、従来 のプロセッサエレメント la、 lb、 lcおよび Idのマイクロプログラムメモリ 3a、 3b、 3cお よび 3dを統合したものである。上述したように、共有ィ匕マイクロプログラムメモリ 3には 圧縮された命令が複数個格納されており、シーケンサ 200から入力したアドレス信号 4に従って 1つの圧縮命令が読み出される。読み出された圧縮命令から 2つのマイク 口命令を復号し、それらによってロジックブロック 2a、 2b、 2cおよび 2dがそれぞれ制 御される。
[0061] なお、第 3実施形態によるプロセッサエレメント複合体 300の構成は、制御対象の口 ジックブロックの数が増えたことによる相違を除いて、基本的には図 3と同じである。す なわち、図 3におけるロジックブロック 2aおよび 2bにロジックブロック 2cおよび 2dを追 加し、それらに対応してセレクタを同様に追加する。メモリコア 30に格納される命令 1 0は、上述したように、各ロジックブロックの区間命令に対応する選択制御データを配 列した位置情報 13と複数の有効データ部とからなる。各有効データ部は、出力先と なる所定数のセレクタが順次シフトするように接続される。この接続関係は、図 3に示 すメモリコア 30と各セレクタとの接続関係の拡張に過ぎない。
[0062] 4.第 4実施形態
本発明によれば、 1つのマイクロプログラムメモリにより複数のロジックブロックを制御 するだけでなぐ複数のマイクロプログラムメモリにより 1つのロジックブロックを制御す ることち可會である。
[0063] 図 8は本発明の第 4実施形態によるプロセッサアレイの命令系統を示す概略的プロ ック図である。ここでは、図を煩雑にしないためにライン状に配列されたプロセッサァ レイを図示している力 所望の数のプロセッサエレメントがエリア状に配列されても同 様である。 [0064] 図 8において、本実施形態によるプロセッサアレイでは、複数のロジックブロック 2iと 複数の共有ィ匕マイクロプログラムメモリ 3ijとがライン状に並行して配列され、 1つの共 は 2つの共有ィ匕マイクロプログラムメモリにより制御される。図 8の記号に従って iを a, b, cあるいは d、jを b, cあるいは dとすれば、 1つの共有化マイクロプログラムメモリ 3a bは直近の 2つのロジックブロック 2aおよび 2bを制御し、 1つのロジックブロック 2bは 直近の 2つの共有化マイクロプログラムメモリ 3abおよび 3bcにより制御される。
[0065] すなわち、マイクロプログラムメモリ 3ijは、ロジックブロック 2iおよび ¾に有効データ を分配する。図中の 1つのマイクロプログラムメモリから 2つのロジックブロックへ伸び る矢印 9は各々のマイクロプログラムメモリが有効データをどのロジックブロックに分配 ムメモリ 3ijおよび ¾kから有効データを分配される。
[0066] 図 9は、図 8のプロセッサアレイのより詳細な構成を示すブロック図である。なお、図 8に示すブロックと同一ブロックには同一参照符号を用い、図 3で説明したブロック構 成や動作については説明を省略する。以下、説明を煩雑にしないために、共有化マ イク口プログラムメモリ 3bc、ロジックブロック 2bおよび 2cに関連する構成について説 同様である。
[0067] まず、本実施形態では、各共有ィ匕マイクロプログラムメモリ 3に格納された命令 10は 、 2つの有効データ部 11. 1および 11. 2と 1つの位置情報 13とを含むものとする。有 効データ部や位置情報につ!、ては図 4 (B)および (C)で説明したとおりである。また 、先頭と末尾のロジックブロックを除いて、その他のロジックブロックは 4つのセレクタ 7 . 1〜7. 4から区間命令 6. 1〜6. 4を受け取り、先頭のロジックブロックは 2つのセレ クタ 7. 3および 7. 4から区間命令 6. 3および 6. 4を、末尾のロジックブロックはセレク タ 7. 1および 7. 2から区間命令 6. 1および 6. 2を受け取るものとする。なお、ここで 示す有効データや区間命令の数は一例に過ぎず、これに限定するものではない。
[0068] 図 9のロジックブロック 2bに区間命令を供給するセレクタ 7. lb〜7. 4bをみると、左 半分のセレクタ 7. lbおよび 7. 2bは共有化マイクロプログラムメモリ 3abから有効デ ータを受け、右半分のセレクタ 7. 3bおよび 7. 4bは共有化マイクロプログラムメモリ 3 beから有効データを受ける。
[0069] 共有化マイクロプログラムメモリ 3bcをみると、有効データ部 11. lbcのデータはセ レクタ 7. 3bおよび 7. 4bとセレクタ 7. lcとにそれぞれ出力され、有効データ部 11. 2 beのデータはセレクタ 7. 4bとセレクタ 7. lcおよび 7. 2cにそれぞれ出力される。セ レクタ 7. 3b、 7. 4b、 7. lcおよび 7. 2cは位置情報 13bcの選択制御データ 8. 3b、 8. 4b、 8. lc、 8. 2cによってそれぞれ選択制御される。たとえば、セレクタ 7. 4bは 2 つの有効データ部 11. lbcおよび 11. 2bcから入力するので、その選択制御データ 8. 4bに従って、 2つ入力データおよび 1つのデフォルト値から 1つの出力を選択する
[0070] したがって、本実施形態によれば、最大 3つ(2つの有効データと一つのデフォルト 値)から選択すればよぐ回路構成が大幅に簡単になり、回路面積や遅延を減らすこ とがでさる。
[0071] さらに、有効データや選択制御データを転送する範囲が狭くなる(すなわち有効デ ータあたりの接続セレクタ数が少なくなる)ので、配線の長さも短くて済むというメリット もある。しかも、 1つのロジックブロック当たり最大で 4つの有効データを使えるなど、 有効データの融通性も向上する。このように、本実施形態によれば、より省面積で高 速なマイクロプログラムメモリの節約を実現できる。
[0072] なお、図 9に示す構成では、各共有ィ匕マイクロプログラムメモリが 2つの有効データ 部を有し、 2つの路地区ブロックへ配布されるので、平均して、ロジックブロック当たり 2つの有効データがあることになる。すなわち、一つのロジックブロックが持つ 4つの 区間命令のうち平均して半分の有効データがあることになる。
[0073] 5.変形例
本発明の第 1および第 2実施形態では、共有ィ匕マイクロプログラムメモリに格納され る命令の有効データは 3個、ロジックブロック当たりの区間命令は 4個で説明したが、 これらの個数に限定されるものではない。以下、変形例について説明する。
[0074] 図 10は本発明の第 1あるいは第 2実施形態の変形例によるプロセッサアレイの命令 系統を示す概略的ブロック図であり、図 11はプロセッサエレメント複合体のより詳細な 構成を示すブロック図である。なお、図 10および図 11では、同一ブロックには同一参 照符号を用い、図 3で説明したブロック構成や動作については説明を省略する。また 、図を煩雑にしないためにライン状に配列されたプロセッサアレイを図示しているが、 所望の数のプロセッサエレメントがエリア状に配列されても同様である。 のみ力も有効データを受け取る。本変形例における共有ィ匕マイクロプログラムメモリ 3 に格納された各命令 10は、 4つの有効データ部 11. 1〜: L 1. 4とそれら有効データ 部の位置を示す位置情報(SC) 13とからなる。位置情報 13には、既に述べたように、 各セレクタに対して有効データおよびデフォルト値のいずれか一方を区分命令として 指定する選択制御データ 8. la〜8. 4aおよび 8. lb〜8. 4bが書き込まれている。
[0076] 共有化マイクロプログラムメモリ 3の有効データ部 11. 1のデータはセレクタ 7. la〜 7. 4aおよびセレクタ 7. laにそれぞれ出力され、有効データ部 11. 2のデータはセレ クタ 7. 2a〜7. 4aおよびセレクタ 7. la〜7. 2bに、有効データ部 11. 3のデータはセ レクタ 7. 3a〜7. 4aおよびセレクタ 7. la〜7. 3bに、有効データ部 11. 4のデータは セレクタ 7. 4aおよびセレクタ 7. la〜7. 4bに、それぞれ出力される。セレクタ 7. la 〜7. 4aは位置情報 13の選択制御データ 8. la〜8. 4aによってそれぞれ選択制御 され、セレクタ 7. la〜7. 4bは選択制御データ 8. lb〜8. 4bによってそれぞれ選択 制御される。たとえば、セレクタ 7. 4aは 4つの有効データ部 11. 1〜: L 1. 4から入力 するので、その選択制御データ 8. 4aに従って、 4つ入力データおよび 1つのデフォ ルト値から 1つの出力を選択する。
[0077] 図 11において、有効データ部 11. 1〜: L 1. 4の各データ幅は、区間命令 6. la〜6 . 4aおよび 6. lb〜6. 4bの各データ幅と同じである。ロジックブロック 2aおよび 2bの 各々が必要とする命令のデータ幅は、区間命令 6. la〜6. 4a (あるいは 6. lb〜6. 4b)のデータ幅の合計と同じである。したがって、 4個すベての有効データ部 11. 1 〜11. 4を一方のロジックブロックに割り当てることで、 1つのマイクロ命令を構成する ことができる。
[0078] このように 4つの有効データ 11. 1〜: L 1. 4が 2つのロジックブロック 2aおよび 2bに 分配されるので、 1つのロジックブロック当たり 4つの区間命令のうち平均すると半分 の有効データがあることになる。したがって、本変形例は、図 9に示す第 4実施形態と 同じロジックブロック当たりの平均有効データ量となる。
産業上の利用可能性
[0079] 本発明は複数のプロセッサエレメントが 1次元あるいは 2次元アレイ状に配列された プロセッサアレイに適用可能である。
図面の簡単な説明
[0080] [図 1] (A)はプロセッサアレイの一般的な構成を示す回路図であり、(B)は従来のプ 口セッサアレイの命令系統の一例を概略的に示すブロック図である。
[図 2] (A)は本発明の第 1実施形態によるプロセッサアレイの命令系統を示す概略的 ブロック図、 (B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図であ る。
[図 3]本発明の第 1実施形態によるプロセッサエレメント複合体の構成を示すブロック 図である。
[図 4] (A)は、従来の独立した隣接プロセッサエレメントにおけるマイクロプログラムメ モリコア 30aおよび 30bに格納された複数のマイクロ命令の一例を示した模式図、(B )は本発明の第 1実施形態におけるメモリコア 30に格納された複数の圧縮命令を示 した模式図、(C)は 1つの圧縮命令における位置情報 13のフォーマットを示す模式 図である。
[図 5]プロセッサアレイの動作説明のための回路図である。
[図 6] (A)は本発明の第 2実施形態によるプロセッサアレイの命令系統を示す概略的 ブロック図、 (B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図であ る。
[図 7] (A)は本発明の第 3実施形態によるプロセッサアレイの命令系統を示す概略的 ブロック図、 (B)は従来のプロセッサアレイの命令系統を示す概略的ブロック図であ る。
[図 8]本発明の第 4実施形態によるプロセッサアレイの命令系統を示す概略的ブロッ ク図である。
[図 9]図 8のプロセッサアレイのより詳細な構成を示すブロック図である。 [図 10]本発明の第 1あるいは第 2実施形態の変形例によるプロセッサアレイの命令系 統を示す概略的ブロック図である。
[図 11]図 10におけるプロセッサエレメント複合体のより詳細な構成を示すブロック図 である。
符号の説明
1、 la、 lb プロセッサエレメント
2、 2a、 2b ロジックブロック
3、 3a、 3b、 3ab、 3bc、 3cd マイクロプログラムメモリ
4 マイクロプログラムメモリのアドレス信号
5、 5ab、 5bc、 5cd アドレスデコーダ
6.1a〜6. 4a、 6.1b〜6. 4b、 6.1c〜6. 4c、 6.1d〜6. 2d 区間命令
7.1a〜7. 4a、 7.1b〜7. 4b、 7.1c〜7. 4c、 7.1d〜7. 2d セレクタ
8.1a〜8. 4a、 8.1b〜8. 4b、 8.1c〜8. 4c、 8.1c!〜 8. 2d 位置情報内の選択 制御データ
9 有効データの分配範囲
10、 10ab、 10bc、 lOcd 命令
10.1〜: LO, 6 ワードデータ
11. 1〜: L 1. 4、 11. lab, 11. 2ab、 11. lbc、 11. 2bc、 11. led, 11. 2cd 有 効データ咅
12 デフォルト値
13、 13ab、 13bc、 13cd 位置情報
30、 30ab、 30bc、 30cd マイクロプログラムメモリコア
100 プログラマブル配線
200 シーケンサ
300 プロセッサエレメント複合体

Claims

請求の範囲
[1] プログラマブルに接続された複数のロジックブロックの配列を有するプロセッサァレ ィにおいて、
前記複数のロジックブロックの配列に対応して配列され、複数のマイクロ命令の有 効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部が マイクロ命令のどの位置に対応するかを示す制御情報とを格納する複数のメモリ手 段と、
前記複数のメモリ手段の各々と前記複数のマイクロ命令を供給すべき複数のロジッ クブロックとを接続し、前記制御情報に基づ!/、て前記有効データ部および所定デー タカ 前記複数のロジックブロックの各々の機能を決定するマイクロ命令を生成する マイクロ命令生成手段と、
を有することを特徴とするプロセッサアレイ。
[2] 前記複数のロジックブロックは一次元アレイ状に配列され、前記マイクロ命令生成 手段は前記複数のメモリ手段をそれぞれ隣接する 2つのロジックブロックに接続する ことを特徴とする請求項 1に記載のプロセッサアレイ。
[3] 前記複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令生成 手段は前記複数のメモリ手段をそれぞれ上下方向に隣接する 2つのロジックブロック に接続することを特徴とする請求項 1に記載のプロセッサアレイ。
[4] 前記複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令生成 手段は前記複数のメモリ手段をそれぞれ上下左右に隣接する 4つのロジックブロック に接続することを特徴とする請求項 1に記載のプロセッサアレイ。
[5] 前記複数のロジックブロックは一次元アレイ状に配列され、前記マイクロ命令生成 手段は、前記複数のメモリ手段の各々を隣接する 2つのロジックブロックに接続し、か つ、前記複数のロジックブロックの各々を隣接する 2つのメモリ手段に接続する、こと を特徴とする請求項 1に記載のプロセッサアレイ。
[6] 前記複数のロジックブロックは二次元アレイ状に配列され、前記マイクロ命令生成 手段は、前記複数のメモリ手段の各々を隣接する 2つのロジックブロックに接続し、か つ、前記複数のロジックブロックの各々を隣接する 2つのメモリ手段に接続する、こと を特徴とする請求項 1に記載のプロセッサアレイ。
[7] 前記マイクロ命令生成手段は、各ロジックブロックに対応して設けられ、前記制御情 報に従って前記有効データ部および前記所定データの!/、ずれかを選択し、前記マイ クロ命令を構成する複数の区間データをそれぞれ生成する複数の選択手段を含む ことを特徴とする請求項 1な 、し請求項 6の 、ずれかに記載のプロセッサアレイ。
[8] 前記複数のメモリ手段の各々に格納された前記複数の有効データ部の合計のデ ータ幅は、前記マイクロ命令のデータ幅より短 、ことを特徴とする請求項 1に記載の プロセッサアレイ。
[9] 前記複数のメモリ手段の各々は、前記複数の有効データ部および前記制御情報か らなる命令を複数個格納し、アドレス信号に従って前記複数の命令の 1つを指定する アドレスデコーダを更に有することを特徴とする請求項 1に記載のプロセッサアレイ。
[10] 前記アドレス信号を生成するシーケンサを更に有することを特徴とする請求項 9に 記載のプロセッサアレイ。
[11] 他のロジックブロックとプログラマブノレ〖こ接続可會な複数のロジックブロックと、 複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効デ ータ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す制御情報と 力 なる符号化命令を複数個格納するメモリ手段と、
アドレス信号に従って前記複数の符号化命令の 1つを指定するアドレスデコーダと 前記メモリ手段と前記複数のロジックブロックとを接続し、指定された符号化命令の 前記制御情報に基づ!、て、前記有効データ部および所定データから前記複数の口 ジックブロックの各々の機能を決定するマイクロ命令を復号ィヒする復号ィヒ手段と、 を有することを特徴とするプロセッサエレメント複合体。
[12] 前記復号化手段は、各ロジックブロックに対応して設けられ、前記制御情報に従つ て前記有効データ部および前記所定データの!/、ずれかを選択し、前記マイクロ命令 を構成する複数の区間データをそれぞれ生成する複数のセレクタからなることを特徴 とする請求項 11に記載のプロセッサエレメント複合体。
[13] 請求項 11または請求項 12に記載のプロセッサエレメント複合体を複数個配列し、 各プロセッサエレメント複合体の前記複数のロジックブロックの各々は、演算器とロジ ックブロック間をプログラマブルに接続するスィッチとを含むことを特徴とするプロセッ サアレイ。
[14] 複数の同等なロジックブロック B〜B (Nは 2以上の整数)と、前記ロジックブロック
1 N
の各々に付随する複数のセレクタと、前記ロジックブロック B〜Bに対応して配列さ
1 N
れた複数のマイクロプログラムメモリ P〜P とを有し、
1 N-1
前記ロジックブロック B〜Bの各々は、演算器と、ロジックブロック間をプログラマブ
1 N
ルに接続するスィッチとを含み、
前記マイクロプログラムメモリ P〜P の各々に格納されている複数の命令の各々は
1 M
、位置情報と複数の有効データ部とを含み、
任意のロジックブロック B (i= 2, · · · , N— 1)に付随する前記複数のセレクタのうち 第 1のグループは、マイクロプログラムメモリ M から前記位置情報と前記複数の有効
i-1
データ部とを供給され、前記複数のセレクタのうち第 2のグループはマイクロプロダラ ムメモリ Mから前記位置情報と前記複数の有効データ部とを供給され、
前記複数のセレクタの各々は、前記位置情報に含まれるデータに基づいて、前記 複数の有効データ部と既定値とから一つを選択して区間命令として出力し、 前記複数のセレクタから出力される区間命令によって、対応するロジックブロックの 機
能が決定され、
各ロジックブロックの前記区間命令の合計データ幅より、前記マイクロプログラムメモ リの前記複数の有効データ部の合計データ幅が小さい、
ことを特徴とするプロセッサアレイ。
[15] 複数のロジックブロックに対してそれぞれマイクロ命令を供給するためのマイクロ命 令制御装置において、
前記複数のロジックブロックの配列に対応して配列され、複数のマイクロ命令の有 効データが少なくとも一部分に格納された複数の有効データ部と各有効データ部が マイクロ命令のどの位置に対応するかを示す制御情報とを格納する複数のメモリ手 段と、 前記複数のメモリ手段の各々と前記複数のマイクロ命令を供給すべき複数のロジッ クブロックとを接続し、前記制御情報に基づ!ヽて前記有効データ部および所定デー タカ 前記複数のロジックブロックの各々の機能を決定するマイクロ命令を生成する マイクロ命令生成手段と、
ことを特徴とするマイクロ命令制御装置。
複数のロジックブロックに対してそれぞれマイクロ命令を供給するためのマイクロ命 令制御方法において、
複数のマイクロ命令の有効データが少なくとも一部分に格納された複数の有効デ ータ部と各有効データ部がマイクロ命令のどの位置に対応するかを示す制御情報と からなる符号化命令を複数個格納し、
アドレス信号に従って前記複数の符号化命令から 1つを指定し、
指定された符号化命令の前記制御情報に基づ!/、て、前記有効データ部および所 定データ力 前記複数のロジックブロックの各々の機能を決定するマイクロ命令を復 号し、
前記復号されたマイクロ命令を対応するロジックブロックへ供給する、
ことを特徴とするマイクロ命令制御方法。
PCT/JP2006/309325 2005-05-12 2006-05-09 プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法 WO2006121046A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007528287A JP4530042B2 (ja) 2005-05-12 2006-05-09 プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法
US11/920,156 US20090031113A1 (en) 2005-05-12 2006-05-09 Processor Array, Processor Element Complex, Microinstruction Control Appraratus, and Microinstruction Control Method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-139258 2005-05-12
JP2005139258 2005-05-12

Publications (1)

Publication Number Publication Date
WO2006121046A1 true WO2006121046A1 (ja) 2006-11-16

Family

ID=37396554

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/309325 WO2006121046A1 (ja) 2005-05-12 2006-05-09 プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法

Country Status (3)

Country Link
US (1) US20090031113A1 (ja)
JP (1) JP4530042B2 (ja)
WO (1) WO2006121046A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5835498B2 (ja) * 2012-09-21 2015-12-24 三菱電機株式会社 Lsi及びlsi製造方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175648A (ja) * 1993-04-13 1995-07-14 Nec Corp マイクロプログラム制御装置
JPH09198356A (ja) * 1996-01-22 1997-07-31 Matsushita Electric Ind Co Ltd マルチプロセッサ装置
JP2000067020A (ja) * 1998-08-20 2000-03-03 Nec Corp マルチプロセッサシステム
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182169A (ja) * 1993-12-24 1995-07-21 Toshiba Corp 並列処理型コンピュータ
US7814242B1 (en) * 2005-03-25 2010-10-12 Tilera Corporation Managing data flows in a parallel processing environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175648A (ja) * 1993-04-13 1995-07-14 Nec Corp マイクロプログラム制御装置
JPH09198356A (ja) * 1996-01-22 1997-07-31 Matsushita Electric Ind Co Ltd マルチプロセッサ装置
JP2000067020A (ja) * 1998-08-20 2000-03-03 Nec Corp マルチプロセッサシステム
JP2001312481A (ja) * 2000-02-25 2001-11-09 Nec Corp アレイ型プロセッサ

Also Published As

Publication number Publication date
JP4530042B2 (ja) 2010-08-25
US20090031113A1 (en) 2009-01-29
JPWO2006121046A1 (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
US6738891B2 (en) Array type processor with state transition controller identifying switch configuration and processing element instruction address
JP4900717B2 (ja) 再構成可能な装置
US6122722A (en) VLIW processor with less instruction issue slots than functional units
US7953955B2 (en) Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture
JP3916680B2 (ja) プロセッサ
US8799623B2 (en) Hierarchical reconfigurable computer architecture
JP4594666B2 (ja) 再構成可能な演算装置
US6795909B2 (en) Methods and apparatus for ManArray PE-PE switch control
US6167502A (en) Method and apparatus for manifold array processing
EP2056212B1 (en) Mixed mode parallel processor system and method
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
KR20100092805A (ko) 재구성 가능한 구조의 프로세서
JP2005527036A (ja) プロセッサのアドレス発生ユニット
WO2006121046A1 (ja) プロセッサアレイ、プロセッサエレメント複合体、マイクロ命令制御装置およびマイクロ命令制御方法
JP2002063025A (ja) 可変長データ処理用プロセッサ
US20040250047A1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
US20090282223A1 (en) Data processing circuit
JP4743581B2 (ja) データ処理システムおよびその制御方法
KR20040111650A (ko) 인스트럭션 시퀀스 디코딩 방법 및 장치
US5862399A (en) Write control unit
JPH0341862B2 (ja)
CN112579971A (zh) 矩阵运算电路、矩阵运算装置及矩阵运算方法
WO2008093123A2 (en) Encoding and decoding methods
MXPA00003003A (es) Metodos y aparatos para el procesamiento de una matriz de distribucion
JP2003187582A (ja) 連想メモリ装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007528287

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11920156

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 06746156

Country of ref document: EP

Kind code of ref document: A1