Patent ID: 7178008

Claim:
A parallel processor which simultaneously executes a plurality of instructions in one clock cycle, comprising: an instruction change unit which splits each of a plurality of simultaneously input machine instructions into a plurality of nano-instructions each of which includes at least one of an access instruction and an operation instruction; a plurality of operation units which execute operation instructions split by the instruction change unit; a multi-bank register file in which a plurality of banks each having a plurality of registers are formed, and which is accessed by an access instruction which is split by the instruction change unit and designates a bank and register; a plurality of operation arbitrators, which are interposed between the instruction change unit and the operation units, and arbitrate output clock cycles of said operation instructions with respect to the operation units; an access arbitrator which is interposed between the instruction change unit and the multi-bank register file, and arbitrates output clock cycles of respective access instructions with respect to the multi-bank register file so as to prevent the access instructions simultaneously output from the instruction change unit from contending in an identical bank, the access arbitrator having a plurality of queues, each including a plurality of registers which temporarily store access instructions simultaneously output from the instruction change unit, and the access arbitrator changing output timing of an access instruction stored in a register of a row of one queue with output timing of an access instruction stored in a register of another row of the queue; and an execution result bus which feeds back access results to the multi-bank register file, and operation results in the operation units to the operation and access arbitrators, wherein when an input access instruction is a write instruction, data to be written by which is given by an execution result of an operation, and the execution result is not given yet as an execution result from the execution results bus, the access arbitrator arbitrates the output clock cycle of this access instruction with respect to the multi-bank register file; and when an input operation instruction is an operation instruction that uses an execution result of access executed for the multi-bank register file, and the execution result is not given yet via the execution result bus, each operation arbitrator arbitrates the output clock cycle of this operation instruction with respect to the corresponding operation unit.