WO2001016717A1 - Unite de commande et support d'enregistrement - Google Patents

Unite de commande et support d'enregistrement Download PDF

Info

Publication number
WO2001016717A1
WO2001016717A1 PCT/JP2000/005850 JP0005850W WO0116717A1 WO 2001016717 A1 WO2001016717 A1 WO 2001016717A1 JP 0005850 W JP0005850 W JP 0005850W WO 0116717 A1 WO0116717 A1 WO 0116717A1
Authority
WO
WIPO (PCT)
Prior art keywords
instruction
control unit
field
execution
instruction set
Prior art date
Application number
PCT/JP2000/005850
Other languages
English (en)
French (fr)
Other versions
WO2001016717A8 (fr
Inventor
Tomoyoshi Sato
Original Assignee
Ip Flex Inc.
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 Ip Flex Inc. filed Critical Ip Flex Inc.
Priority to AU68644/00A priority Critical patent/AU6864400A/en
Publication of WO2001016717A1 publication Critical patent/WO2001016717A1/ja
Publication of WO2001016717A8 publication Critical patent/WO2001016717A8/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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30181Instruction operation extension or modification
    • 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
    • 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
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Definitions

  • the present invention relates to a control program described by a microcode or the like and a control unit capable of executing the control program.
  • processors data processing devices
  • DSP digital 'signa-no-reprocessor
  • MPU micro-processor
  • DSP digital 'signa-no-reprocessor
  • the architectural elements that have greatly contributed to these performance improvements include the addition of pipelining technology, super-pipelining technology, superscalarization technology, VLIW technology, and specialized data paths (dedicated instructions). be able to.
  • branch prediction, register bank, and cache technology can be cited.
  • the performance difference between the non-pipeline and the pipeline is clear. Basically, if the instruction is the same, the throughput will surely improve by the number of pipeline stages. In addition, the delay (penalty) of the branch instruction becomes relatively small as the number of pipeline stages increases. Therefore, with a four-stage pipeline, the throughput can be expected to be four times or more. If it is an eight-stage pipeline, the calculation will be eight times as large, and the super-pipeline technology will further improve the performance by more than two times. In fact, as the critical path can be subdivided as the process progresses, the effect of greatly improving the upper limit of the operating frequency can be expected, and the contribution will be even greater.
  • Super.Scalar technology which is an internal data path. It improves the performance of the program and executes instructions near the program counter simultaneously. This technology is said to be supported by advances in compiler optimization technology, and it has become possible to execute about 4 to 8 instructions simultaneously.However, the instructions themselves often use the immediately preceding operation results and register results. Instructions that can be executed simultaneously even if various techniques such as reordering, out-of-order, register renaming, etc. are used, apart from peak performance On average, the numbers have to be much lower than the above. In particular, since it is impossible to execute multiple conditional branch instructions, etc., the effect of the super scaler technique is even lower. Therefore, the contribution to improving the performance of the processor seems to be about 2.0 to 2.5 times on average. Even if a very compatible application is used, the actual contribution is considered to be less than four times.
  • VLIW technology will emerge as the next technology.
  • the idea is that the data paths are configured in advance so that they can be executed in parallel, and the compiler generates the desired VLIW instruction code by optimizing to increase this parallel execution.
  • This eliminates the need for a circuit to check the possibility of parallel execution of each instruction, as in the Super 'scaler, and is a means of implementing hardware that performs parallel execution.
  • the fact that multiple conditional branch instructions and the like cannot be executed is the same as above, and the contribution to actual performance is therefore 3.5 to 5 times. It is considered to be a degree.
  • VLIW is not an optimal solution when considering a processor that is used for processing applications that require image processing and special data processing.
  • applications that require continuous processing of operation results there is a limit to data operation and data processing while holding data in general-purpose registers. This is also the case with conventional pipeline technology.
  • various matrices and vector calculations can achieve higher performance if they are realized by dedicated circuits.
  • the cutting-edge implementation aiming for the highest performance in the world, the idea of aiming for the highest performance by mounting various dedicated arithmetic circuits according to the application purpose based on VLIW is becoming mainstream.
  • VLIW is a technique for improving the efficiency of parallel processing execution near the program counter.
  • VLIW is not a very effective means for executing two or more objects simultaneously or executing two or more functions.
  • the implementation of various dedicated arithmetic circuits means that the hardware increases while the flexibility of the software decreases. Furthermore, it is inherently difficult to solve the penalty problem that occurs when executing a conditional branch.
  • an object of the present invention is to examine the above problem from a viewpoint different from the conventional technology for speeding up a processor, and to provide a new solution. In other words, it is possible to improve the throughput like a pipeline, to solve the penalty of executing a conditional branch, and to use a dedicated circuit even for complicated data processing.
  • Another object of the present invention is to provide a system that can be executed at high speed without using dedicated instructions, that is, a control program, and a control unit and a data processing device capable of executing the control program. Disclosure of the invention
  • the inventor of the present application has found that the above-mentioned problem has arisen from the non-pipelined technology to the instruction set used in the conventional technology.
  • the instruction set (instruction format) of a program microcode, assembly code, machine language, etc.) that defines data processing in the processor is used for instruction operation (execution instruction) and execution of the instruction.
  • Register It is a mnemonic code combined with an operand that defines the environment or interface. Therefore, if you look at the instruction set, you can completely understand the contents of the processing specified by it, but you cannot know the contents of the processing at all until you decode the instruction set. Therefore, in the present invention, by significantly changing the method of configuring the instruction set itself, the above-mentioned problem, which was difficult to cope with with the conventional technology, can be solved successfully, and the performance of the data processing device can be dramatically improved. I am doing it.
  • a first field capable of describing (describing) an execution instruction instructing data operation or other data processing executed by the control unit in the instruction set; Preparing instructions to make the data execution or other data processing executable state is provided (description).
  • a second field that can be used is provided, and the content of the execution instruction described in the first field is independent.
  • a prepared order with the contents described above can be entered in the second field.
  • the control program having the instruction set is recorded on a recording medium readable by the control unit and can be provided.
  • the transmission medium in which the control program or the converted data is embedded can be provided via a computer network or other communication.
  • control unit includes a first field capable of describing an execution instruction for instructing the content of data operation or other data processing to be executed by the control unit, and a control unit.
  • a second execution control unit for setting a state of the control unit.
  • the instruction set according to the present invention includes the first field that describes an execution instruction and the second field that describes a preparation instruction independent of the execution instruction. . Therefore, in the case of arithmetic instructions, the first field describes an instruction operation such as ADD, and the second field describes an instruction that specifies a register. Instruction set.
  • the execution instruction and the preparation instruction are independent and do not correspond in the same instruction set, the instruction set has the characteristic that the processing executed by the control unit is not specified. That is, the instruction set according to the present invention is significantly different from the conventional mnemonic code.
  • instruction operations and their corresponding operands, which were conventionally described in one instruction set can now be defined separately and independently. Can be easily executed.
  • the first field of an instruction set (instruction format is an instruction record) may contain instructions that operate on at least one arithmetic logic unit in the control unit.
  • the second field of the instruction set specifies the interface of the arithmetic and logic unit, such as the destination register, that has at least one of the source registers used for at least one of the arithmetic and logic units. Instructions to be written.
  • the register information of the arithmetic and logic operation unit is decoded, the register is set, and then the execution instruction fetched by the execution instruction is fetched. A predetermined logical operation is performed, and the result is stored in a specified register.
  • the destination register can be described in the first field together with the execution instruction.
  • the instructions RO, R l, and # 1 2 3 4 H make sense to add register R 1 and # 0 1 2 3 4 H and store this in register RO.
  • the register R 0 and # 0 1 2 3 4 H are arithmetically added to the registers R 0 and # 0 1 2 3 4 H before the execution of the instruction called ADD, which overlaps with the execution cycle of the previous instruction set. It is convenient from the viewpoint of high-speed execution if the read is executed to the input register of the data path to which the device ADD belongs. In other words, purely arithmetic addition can be performed on the AC characteristics, so that the execution frequency characteristics are improved.
  • the branch destination information can be given to the control unit prior to the execution instruction in the branch instruction such as the conditional branch instruction. Wear.
  • the contents of the instruction set can be understood at a glance by a human, but the processing contents cannot be understood until the instruction set appears, whereas in the instruction set according to the present invention, the instruction set is not used.
  • the contents of the set are not obvious at a glance, but before the execution instruction appears, the information related to the execution instruction is known. Therefore, since the branch destination is known prior to the execution instruction, it is possible to fetch the instruction set of the branch destination, and further, it is possible to perform the preparation before the execution instruction at the branch destination. It becomes possible.
  • the address information of the branch destination can be obtained only after decoding, and it is essentially difficult to solve the penalty that occurs when executing the conditional branch.
  • the instruction set since the information of the branch destination can be given in advance, the penalty for executing the conditional branch can be eliminated. Furthermore, if there is enough hardware, it is possible to fetch a branch destination preparation instruction and prepare for the subsequent execution instruction. If the branch condition is not satisfied, the preparation is only wasted, and the execution time does not become a penalty.
  • register information required by a subsequent instruction is determined at the same time as or before the execution instruction, it is possible to increase the speed without increasing hardware cost.
  • the second execution control unit that executes the preparation instruction may be capable of dynamically controlling an architecture capable of changing the connection between transistors, such as an FPGA. .
  • changing hardware dynamically like an FPGA takes time, and hardware Is required.
  • the second execution control unit by providing the second execution control unit with a function as a scheduler that specifies the interface of the arithmetic and logic unit, such as decoding and fetching register information, It is possible to provide a simple configuration that can execute a preparation instruction for an arithmetic logic unit in a short time.
  • an interface defining at least one interface of the arithmetic and logic operation unit included in the control unit and the processing content of the arithmetic and logic operation unit. This makes it possible to specify the data flow. This makes it possible to increase the independence of the data path. As a result, the data flow can be specified while executing another instruction program, or the data path inside the control unit in the idle state can be changed to the external one. It is possible to easily provide a structure that allows lending for processing with high urgency that is being performed in other control units.
  • the present invention provides a means effective not only for executing parallel processing in the vicinity of the program counter, but also for simulating two or more objects simultaneously and simulating two or more functions simultaneously.
  • processes based on separate program counters such as different data processing in two or more contexts and execution of an algorithm, could not be started at the same time.
  • a data path that is considered to be effective for improving the performance from the application side can be incorporated from software using the second field, and the data path (data flow) realized thereby becomes necessary. Accordingly, it can be activated at the instruction level from software.
  • This data path is extremely flexible because it can be used not only for data processing for a specific purpose, but also for starting a general state machine.
  • the data operation target has conventionally been forced to be a register.
  • memory single-port dual-port
  • register files can be used instead.
  • the second execution control unit provides the control unit with the instruction.
  • the cache has the advantage of being able to solve the first fetch-penalty problem efficiently. Therefore, since CALLZRET and interrupt processing / IRET can be processed at high speed, an environment for responding to an event can be easily constructed, and the data processing performance can be prevented from being degraded by the event.
  • the first or second field is a field that describes a plurality of execution instructions or preparation instructions, such as VLIW, and the first or second execution control unit is the first or second execution control unit.
  • the performance can be further improved by providing a plurality of execution control units capable of independently processing a plurality of independent execution instructions or preparation instructions described in the second field.
  • FIG. 1 is a diagram showing an outline of an instruction set according to the present invention.
  • FIG. 2 illustrates the Y-field of the instruction set shown in FIG. 1 in more detail.
  • FIG. 3 is a diagram showing a simple example in which the instruction set shown in FIG. 1 is actually used.
  • FIG. 4 is a diagram showing how data is stored in a register by the instruction set shown in FIG.
  • FIG. 5 shows a control unit capable of executing the instruction set according to the present invention. It is a figure showing an example.
  • Figure 6 shows a sample program that can be run on a conventional CPU or DSP.
  • FIG. 7 is an example of a program for a control unit according to the present invention.
  • FIG. 8 is a diagram showing an example in which the program shown in FIG. 7 is compiled into an execution program of an instruction set according to the present invention.
  • FIG. 9 is an example of a different program for the control unit according to the present invention.
  • FIG. 10 is a diagram showing a data flow configured by the program of FIG. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 shows the configuration of an instruction set (instruction format) according to the present invention.
  • the instruction set (DNA / DAP instruction set) 10 according to the present invention includes a first field, an instruction execution basic field (X field) 11, and a next instruction execution section. It has two fields, called the next instruction execution preparation cycle (the additional field is the Y field), which is the second field that can improve efficiency.
  • Instruction execution basic field (X field) 1 1 specifies the data operation and other various data processing contents, and specifies the destination where the result is stored.
  • X fields 1 1, whereas c contains only information of the instructions are actually executed in order to increase the use efficiency of the instruction length, additional fields (Y field) 1 2 have the same instruction Se Tsu DOO
  • An instruction (information) that is independent of the execution instruction in the X field can be described. For example, it is assigned to the execution preparation cycle of the next instruction.
  • the X field 11 is composed of an execution instruction field 15 for describing an instruction operation or an execution instruction (Ex ecution ID) for an arithmetic logic unit and the like.
  • Y field It is provided with a field (type field) 16 indicating the type of the preparation instruction indicated by the Z invalid and Y field 12 and a field 17 indicating the register of the destination.
  • the contents of the type field 16 can be defined independently of the contents of the other fields in the X field 11.
  • a preparation instruction defined by the type field 16 is described.
  • the preparation instruction described in this field 12 is information for enabling data operation or other data processing, and FIG. 2 shows some specific examples.
  • the execution instruction field 15 and the type field 16 are independent or unrelated.
  • the field 12 can describe an address ID 21 and address information 22 that defines the purpose of use.
  • the address described in this field 12 is used for reading and writing between a register or buffer and memory (including the register file), and is used for block transfer as in D D. It is also possible.
  • information such as an address (fetch address) indicating a branch destination when a branch instruction is executed and a start address when executing a parallel instruction can be described in the Y field 12.
  • register type instructions for example, arithmetic operations or other logical operation instructions (including MOVE, memory read Z-write, etc.), register information or immediate values (immediate values) on the source side. G) can also be described in the Y field 12.
  • the Y field 12 contains an arithmetic and logic unit (AL
  • Information 25 specifying the source, destination, and processing details of U) can also be described. Therefore, a pipeline (data flow or data path) for performing data processing can be defined by the Y field 12. Of course, Y fee In the field, information for starting and ending the data flow can be described, and the defined data flow can be processed independently of the program counter.
  • the format of the instruction set shown in FIGS. 1 and 2 is an example of an instruction set having two independent instruction fields according to the present invention, and it is a matter of course that the present invention is not limited to this. .
  • the position of the type field does not need to be limited to this example, and can be positioned at the beginning of the Y field.
  • an example will be described in which an execution instruction or a preparation instruction is described or described in the X field and the Y field. It is of course possible to have an instruction set that only has meaning.
  • operands such as register information related to the execution instruction described in the X field are provided, that is, a preparation instruction that is not independent of the execution instruction is simultaneously executed.
  • the described instruction set can be programmed together with the instruction set according to the present invention, such an example is not described below in order to explain the present invention easily.
  • FIG. 3 shows a simple example of the instruction set 10 of the present example.
  • T j 32 bit immediate data in Y field 12 in X field 11 in X field 11 of first instruction set 10 (j_l) It is shown that it is described.
  • # 0 0 0 1 2 3 4 H is described as an immediate.
  • M ⁇ VE is described in the execution instruction field 15 of the X field 11, and the register R is written in the destination field 17. 3 is listed. Therefore, when this instruction set 10 (: j) is fetched, the ALU of the control unit will have the immediate # 0 0 0 0 defined in the previous instruction field 10 (j-1). 0 1 2 3 4 Store H in register R 3 You.
  • instruction set 10 the instruction set 10 (j—1) preceding the instruction set 10 (j) in which the execution instruction is described is executed by the instruction set 10 (j—1). Preparations are made. Therefore, instruction set 10
  • the processing performed by the ALU that constitutes the control unit is not known from (j) alone, but the processing performed by the ALU using the two instruction sets 10 (j-1) and 10 (j) is Determined uniquely.
  • the execution instruction field 15 of instruction set 10 (j-1) contains the Y field of the instruction set before instruction set 10 (j-1) independently of the Y field 12-2. Describes an instruction to execute the process prepared by the rule 12.
  • a certain execution instruction is stored in the Y field 12 of the instruction set 10 immediately before the instruction set 10 (j) described in the X field 11 by the preparation information of the execution instruction ( Preparation instruction) is described, but the instruction set in which the preparation information is described is not limited to the immediately preceding instruction set.
  • the instruction set in which the preparation information is described is not limited to the immediately preceding instruction set.
  • the state (environment or interface) of the ALU set by the preparation instruction If the instruction set with the execution instruction corresponding to the preparation instruction is retained until it is fetched and executed, the preparation instruction can be described in the Y field of the instruction set several instructions earlier.
  • Figure 3 shows how the instruction set shown in Figure 3 stores values in a register file or memory that functions as a register.
  • the immediate immediate W 0 0 0 0 1 2 3 4 H is set to the register D on the source side of ALU by the first instruction set 10 (j-1) of Tj.
  • FIG. 5 shows a schematic configuration of a control unit 30 that can time a program in which the processing content is described by the instruction set 10 of this example.
  • the microcode or microprogram having the instruction set 10 of this example is stored in the code ROM 39, and the instruction set 10 constituting the microprogram is fetched as needed by the fetch unit 31. You.
  • the control unit 30 decodes the X field 11 of the fetched instruction set 10 to determine or assert the processing content of the ALU 34, and also deciphers the logical operation result of the ALU 34.
  • a first execution control unit 32 having a function of selecting and latching the register 34 d of the destination is provided.
  • control unit 30 decodes the Y field 12 of the fetched instruction set 10 based on the information of the type field 16 of the X field 11 and the ALU 34 the second execution control Interview with the function of selecting the register 3 4 s of the source side of the - Tsu DOO 3 3 in which t the second execution control Yuni' Doo 3 3 includes the type field 1 6 information Except for, except for the instructions in the Y field 12, the information can be interpreted independently of the contents of the X field 11.
  • the second execution control unit 33 further selects the source side and destination side of the ALU 34 if the information described in the Y field 12 specifies the data flow.
  • the second execution control unit 33 has a function of determining the setting, that is, determining the interface of the ALU 34, and continuously holding the state until a predetermined clock or release instruction is given.
  • the second execution control unit 33 also determines the processing contents of the ALU. The state is held for a predetermined period. .
  • the control unit 30 of the present example further includes such an execution control unit. And a plurality of combinations of ALUs 34 and 33 and ALU 34, so that various processes can be executed. Therefore, the control unit 30 of this example is used as a core or a peripheral circuit to configure a DSP that processes image data at high speed, a CPU or MPU that can perform general-purpose digital processing at high speed, and the like.
  • 6 to 9 show an example of a program executed by the control unit 30 of the present embodiment.
  • the sample program 41 shown in Fig. 6 is an example created so that it can be executed by a conventional CPU or DSP.This program extracts the largest value from the table starting from the address of #START, This program terminates when it detects #END indicating the last data.
  • the program 42 shown in FIG. 7 is obtained by converting the same processing as in FIG. 6 into a program suitable for the control unit 30 capable of executing the instruction set according to the present invention.
  • An example that can be executed in a set is shown.
  • the program shown in FIG. 7 is converted into an instruction set execution program according to the present invention through a compiler, and is executed by the control unit 30.
  • Figure 8 shows a compiled example 43.
  • the second execution instruction is prepared in the Y field 12 of the first instruction set, and when the second instruction set is executed, the execution instruction field is executed. It simply executes the MOVE instruction in C1-15.
  • the preparation information of the execution instruction in the execution instruction field of the next instruction set is described.
  • a conditional branch is described in the execution instruction field 15 of the fourth instruction set, and the address of the branch destination is set to the Y of the third instruction set preceding this instruction set. It is described in field 12. Therefore, when or before the fourth instruction set is executed, the address of the branch destination is set in the fetch register, and when the branch condition is satisfied, the instruction set of the branch destination is set without penalty. Can be fetched or executed. Furthermore, the instruction at the branch destination can be prefetched, and preparation for executing the execution instruction at the branch destination can be prepared in advance. Therefore, even the instruction at the branch destination can be executed without wasting one clock, and the processing can be accurately defined in units of one clock. FIG.
  • DFLWI is an instruction for initial setting of a data flow
  • DFLWC is an instruction for defining connection information (information of an interface) of ALU constituting a data flow (data path) and processing contents.
  • DFLWS is an instruction that defines a data flow termination condition.
  • the second execution control unit 33 functions as the scheduler 36, and as shown in FIG. 10, the three ALU 34 interfaces (input / output ) And the contents of the processing are defined and held until the termination condition is satisfied. Therefore, the data flow composed of these ALUs 34 is Depending on the clock, the same processing as the processing shown in Fig. 6 proceeds one by one on a clock basis.
  • the dedicated unit for the processing is provided in the control unit 30 by the three ALUs 34, and the maximum value is deviated from the control of the program counter. Can be executed. Therefore, as can be seen from FIG. 9, by defining the data flow, it is possible to execute the same processing in the program described in FIG. 6 or 7 without using a branch instruction. For this reason, it is possible to perform a specific process at a very high speed and efficiently similarly to the control unit including the dedicated circuit, even though the general-purpose control unit 30 is used.
  • a data flow or a pseudo data flow for performing various processing can be provided in the control unit.
  • These data flows can be applied to other processes or other programs as templates, and the hardware can be changed to a configuration suitable for specific data processing at any time using software. This means that it can be implemented in other programs or other hardware. It is also possible to set a plurality of such data flows, and a multi-command stream can be defined in the control unit using software. Therefore, it is extremely easy to execute a plurality of processes in parallel, and the execution contents can be freely controlled by programming.
  • control unit according to the present invention by setting an appropriate data flow, the surplus hardware could be used by another control unit. When you use it, you can do anything.
  • control unit according to the present invention is provided by improving the efficiency of the instruction execution sequence, securing the independence of some data paths, and improving the degree of freedom (degree of diversion). In a processor using this, if there is enough hardware to execute, it is possible to execute without any problem even if instruction sequences in contexts with completely different properties are supplied simultaneously.
  • special instructions other than those described above can be provided.
  • one or more objects (programs) are started simultaneously, and XF ⁇ RK supports parallel processing start at the instruction level, and XSYNK specifies synchronization between objects (programs).
  • XPI ⁇ ⁇ which instructs pipeline connection between parallel processes
  • XSWITC ⁇ ⁇ which terminates the current object and starts the next object, are considered.
  • the instruction set according to the present invention the programming using the instruction set, and the control unit technology capable of executing the instruction set.
  • the instruction set according to the present invention is considered to be extremely difficult to solve with the prior art by reviewing the method of configuring the instruction set from a completely different viewpoint from the method of configuring the conventional instruction set. It solves many problems extremely efficiently.
  • the method of composing the instruction set and the method of supplying (obtaining) the instruction by hardware were realized by an extremely uniform and traditional preconception, so that in the essential sense.
  • the present invention realizes an instruction set that prioritizes the originally required application requirements, so that it is easy to obtain high development efficiency and product quality assurance, not just efficiency improvement of product performance.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)
  • Image Processing (AREA)
  • Saccharide Compounds (AREA)
  • Eye Examination Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Facsimiles In General (AREA)
  • Vehicle Body Suspensions (AREA)
  • Steering Control In Accordance With Driving Conditions (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)

Description

明 細 書 制御ュニッ トおよび記録媒体 技術分野
本発明は、 マイク ロコー ドなどによって記載された制御プロダラ ムおよびそれを実行可能な制御ュニッ トに関するものである。 背景技術
汎用的および専用的なデジタルデータ処理を行う装置と して、 マ イ ク 口プロセ ッサー ( M P U ) 、 デジタル ' シグナノレプロセ ッサー ( D S P ) といった演算機能を内蔵したプロセ ッサ (データ処理装 置) が知られている。 これらの性能向上に大きく貢献したァーキテ クチャ要素と して、 パイプライ ン化技術、 ス一パー ' パイプライ ン 化技術、 スーパー · スケーラ化技術、 V L I W技術、 特化型データ パス (専用命令) 追加を挙げることができる。 さ らに、 分岐予測や レジスタバンク、 キャッシュ技術等も挙げることができる。
ノ ン · パイプラインとパイプラインとの性能差は、 明確である。 基本的に同一命令であれば、 パイプライ ンの段数だけスル一プッ ト は確実に向上する。 また、 分岐命令のディ レイ (ペナルティ) も、 パイプライン段数を大きく した分だけ、 相対的に小さ く なる。 従つ て、 4段のパイプラインでは、 スループッ トは 4倍以上となること が期待できる。 も し 8段のパイプラインであれば、 8倍という計算 となり、 スーパ一 ' パイプライン技術は、 更に性能を 2倍以上向上 させた事になる。 実際は、 プロセスの進歩に従い、 ク リティカルパ スを細分化可能な為、 動作周波数の上限を大きく改善するという効 果も期待出来るので、 その貢献度は更に大きいものとなって現われ る。
次に、 スーパー . スケーラ技術であるが、 これは内部のデータパ 2 スを高性能化し、 プログラムカウンタ近傍の命令を同時実行するも のである。 この技術はコンパイ ラの最適化技術の進歩にも支えられ て、 4命令から 8命令程度の同時実行が可能になったと されている しかしながら、 命令自体はその直前の演算結果やレジスタの結果を 頻繁に使用する事が多く、 ピーク性能は別にして、 フォヮ一ディン グゃ命令再配置、 アウ ト ' ォブ ' オーダ、 レジスタ リネーミング等 の各種テクニックを駆使したと しても同時実行可能な命令数は平均 的には上記よ りかなり低い値とならざるを得ない。 特に、 条件分岐 命令等を複数実行することは不可能なので、 スーパー ' スケーラ技 術の効果は更に低いものとなる。 したがって、 プロセッサの性能向 上への貢献度と しては、 平均 2 . 0から 2 . 5倍程度と思われる。 非常に相性の良いアプリ ケーショ ンが仮にあつたと しても、 現実的 な貢献度は 4倍以下と考えられる。
V L I W技術が、 次の技術と して浮上する。 これは、 予めデータ パスを並列実行可能なよ うに構成しておき、 コンパイラがこの並列 実行を高めるよ うに、 最適化を行い目的の V L I W命令コー ドを生 成する という考え方であり、 極めて合理的な考え方を採用している, これによ り、 スーパー ' スケーラのよ うに 1つ 1つの命令の並列実 行の可能性をチェックする回路が不要なので、 並列実行を行うハー ドウエアの実装手段と しては、 極めて有望と されているものである しかしながら、 条件分岐命令などを複数実行できないことは上記と 同様であり、 そのため、 実際の性能に対する貢献度と しては、 3 . 5倍〜 5倍程度と考えられる。
しかしながら、 画像処理や特殊データ処理を必要とするアプリ ケーシヨ ンの処理を用途とするプロセッサを考えると、 V L I Wも 最適な解決策とはならない。 特に演算結果の連続処理を要求される よ うな用途では、 汎用レジスタにデータを抱えながらのデータ演算 やデータ処理には限界があるからである。 これは従来のパイプライ ン技術でも同様である。 各種のマ ト リ ツタス計算やべク トル計算等は、 専用回路によ り こ れを実現した方が高い性能を得られる事は過去の経験から良く知ら れている。 現在、 世界最高性能を目指す最先端実装では、 V L I W をベースにアプリケーショ ン目的に応じて、 各種の専用演算回路を 実装して、 最高性能を目指すという考え方が主流になりつつある。
しかしながら、 V L I Wは、 プログラムカウンタ近傍の並列処理 実行効率を改善する技術であり、 例えば 2つ以上のオブジェク ト同 時実行、 2つ以上の関数実行にはあま り有効な手段とはならない。 また、 各種の専用演算回路を実装することはハー ドウェアが増加す る一方、 ソフ ト ウェアのフ レキシビリ ティ ーが低下することを意味 する。 さ らに、 条件分岐を実行するときに発生するペナルティ の問 題を本質的に解決し難い。
そこで、 本発明においては、 これらの従来のプロセッサを高速化 する技術と異なった視点から上記の問題を検討し、 新たな解決策を 提供することを目的と している。 すなわち、 パイプラインのよ うに スループッ トの向上を図ることができると共に、 条件分岐を実行す る際のペナルティを解決することが可能であり、 さ らに、 複雑な データ処理であっても専用回路あるいは専用命令を用いなくても高 速に実行可能なシステム、 すなわち、 制御プログラムと、 それを実 行可能な制御ュニッ トおよびデータ処理装置を提供することを本発 明の目的と している。 発明の開示
本願の発明者は、 上記のよ うな問題がノ ンパイプライン技術から 今までの技術に用いられている命令セッ 卜の制約から上記のよ うな 問題が生じていることを見出した。 すなわち、 プロセッサにおける データ処理を規定するプログラム (マイク ロコー ド、 アセンブリ コー ド、 機械語など) の命令セ ッ ト (命令フォーマッ ト) は命令操 作 (実行命令) とその命令を実行する際に使用する レジスタなどの 環境またはィンタフェースを規定するオペラン ドとが組み合わせさ れたニーモニッ クコー ドである。 したがって、 命令セッ トを見れば、 それによつて指示されている処理の内容を完全に把握できるが、 命 令セッ トをデコー ドするまで処理の内容については全く判らない。 そこで、 本発明においては、 命令セッ トの構成方法そのものを大幅 に変更することによ り、 従来技術では対応の難しかった上記の問題 を上手く解決し、 データ処理装置の性能を飛躍的に向上できるよ う にしている。
すなわち、 本発明においては、 命令セッ トの中に、 制御ユニッ ト で実行するデータ演算または他のデータ処理の内容を指示する実行 命令を記載 (記述) 可能な第 1 のフィール ドと、 制御ユニッ トを データ演算または他のデータ処理が実行可能な状態にする準備命令 を記載 (記述) 可能な第 2のフィール ドとを設け、 第 1 のフィール ドに記載された実行命令の内容に対し独立した内容の準備命令が第 2のフィール ドに記載できるよ うにしている。 そして、 この命令 セッ トを有する制御プログラムを制御ュニッ トが読み取り可能な記 録媒体に記録して提供できるよ うにしている。 また、 その制御プロ グラムまたはそれを変換したデータを埋め込んだ伝送媒体は、 コン ピュータネッ トワークあるいはその他の通信を介して提供すること ができる。
さ らに、 本発明にかかる制御ユニッ トは、 その制御ュニッ トで実 行するデータ演算または他のデータ処理の内容を指示する実行命令 を記載可能な第 1 のフィール ド、 および制御ュニッ トを前記データ 演算または他のデータ処理が実行可能な状態にする準備命令を記載 可能な第 2のフィールドとを具備する命令セッ トをフヱツチするュ ニッ トと、 第 1 のフィール ドの実行命令をデコー ドし、 該制御ュ 二ッ トが予め設定された状態でデータ演算または他のデータ処理を 進める第 1 の実行制御ュニッ トと、 第 2 のフィール ドの準備命令を デコー ドし、 第 1 の実行制御ュニッ トの実行内容とは独立して該制 御ュニッ トの状態を設定する第 2 の実行制御ュニッ ト とを有するこ とを特徴と している。
このよ うに、 本発明にかかる命令セッ トは、 実行命令を記述する 第 1 のフィール ドと、 この実行命令とは独立した準備命令を記述す る第 2のフィール ドとを備えたものである。 したがって、 算術命令 などにおいては、 第 1 のフィール ドに A D Dなどの命令操作が記述 され、 第 2のフィール ドにレジスタを特定する命令が記述されるの で、 一見、 従来のアセンブルコー ドと同様の命令セ ッ ト と なる。 し かしながら、 実行命令と準備命令は独立であり、 同じ命令セッ ト内 では対応していないので、 その命令セッ トでは制御ユニッ トで実行 される処理が特定されないという特性を備えている。 すなわち、 本 発明にかかる命令セッ トは従来のニーモニックコー ドとは大き く異 なるものである。 そして、 従来は 1つの命令セッ トの中に記述され ていた命令操作とそれに対応するオペラン ドを個別に、 独立して定 義できるよ うにすることによ り、 従来の命令セッ トでは実現できな い処理を簡単に実行することができる。
まず、 第 2のフィール ドに、 後続の命令セッ トの第 1 のフィール ドに記載される実行命令を実行するための準備命令を記述すること ができる。 これによ り、 実行命令を備えた命令セッ トが表れる前に、 その実行命令を実行するための準備を行う ことができる。 例えば、 ある命令セッ ト (命令フォーマッ トあるレ、は命令レコー ド) の第 1 のフィールドに制御ュニッ トに含まれる少なく と も 1 つの算術論理 演算ュニッ トを操作する命令を記載し、 それに先立つ命令セッ トの 第 2のフィール ドに、 その少なく と も 1 つの算術論理演算ュニッ ト に用いられるソース側のレジスタあるレ、はディ スティネーショ ン側 のレジスタ といった算術論理演算ュニッ トのイ ンタフェースを規定 する命令を記載することができる。 これによ り、 実行命令がフェツ チされる前に、 算術論理演算ュニッ 卜のレジスタ情報がデコー ドさ れ、 レジスタがセッ ト され、 その後にフェッチされた実行命令によ り所定の論理演算が実行され、 その結果が指定されたレジスタに保 存される。 デイスティネーショ ン側のレジスタは実行命令と共に第 1 のフィールドに記述すること も可能である。
したがって、 本発明にかかる命令セッ トにおいても、 パイプライ ン処理と同様にデータ処理を多段階に分けて実行することが可能で ありスループッ トを向上することができる。 また、 例えば、 ADD
R O, R l , # 1 2 3 4 Hという命令は、 レジスタ R 1 と # 0 1 2 3 4 Hを加算してこれをレジスタ R Oに格納するとレ、う意味にな るが、 ハー ドウェア構成上は、 前の命令セッ トの実行サイクルと オーバラ ップさせて、 ADDという実行命令を実行する 1 C L K前 にレジスタ R 0 と # 0 1 2 3 4 Hを算術論理演算ュニッ トである算 術加算器 AD Dが属するデータパスの入力レジスタにリー ドを実行 しておく と高速実行させる観点からは、 都合が良い。 つまり、 A C 特性上は、 純粋に算術加算を行う よ うにできるので、 実行周波数特 性が向上する。
そして、 本発明の命令セッ トにおいては、 準備命令を実行命令に 際だって記述できるので、 条件分岐命令などの分岐命令においては 分岐先の情報が実行命令に先立って制御ュニッ トに与えることがで きる。 すなわち、 従来のニーモニックコー ドでは、 命令セッ トの内 容は人間が一目で分かるが、 その命令セッ トが表れるまで処理内容 が判らなかったのに対し、 本発明にかかる命令セッ トでは、 命令 セッ トの内容は一目では分からないが、 実行命令が表れる前に、 そ の実行命令に関連する情報が分かる。 したがって、 実行命令に先 立って分岐先が判るので、 その分岐先の命令セッ トをフェッチする こと も可能であり、 さ らには、 分岐先の実行命令に先立ってその準 備を行う こと も可能となる。
一般に、 現在の C P U D S Pの殆どがパイプライン処理を後段 (時間軸が後方) にズラすことで、 同様に処理の高速化を図ること に成功している力 プログラムの分岐時や C A L L R E T実行時 には、 この問題が表面化する。 つまり、 先行してフェッチ · ァ ドレ ス情報が得られていない為に、 本質的にペナルティ となり、 原理的 にこれを解消することができない。 もちろん、 分岐予測やディ レイ ディ ド ' ブランチ、 高速ブランチバッファ、 或いは D S Pにて採用 されている高速ループ処理技術等は、 このペナルティをかなり緩和 する事に成功しているが、 連続分岐が数多く発生したりすると、 そ の問題点が表面化し、 本質的な解決にはなっていないことが認識さ せられる。
また、 後続命令が必要とする レジスタ情報が先に得られない為に パイプライン処理を高速化する為のフォヮ一ディ ング処理やバイパ ス処理の複雑さが増大し、 従来技術で高速化を図ろう とする事自体 が膨大なハー ドウエア · コス トを招く。
このよ うに、 従来の命令セッ トは分岐先のア ドレス情報はデコー ド後にしか得られず、 条件分岐を実行するときに発生するペナル ティを本質的に解決し難いのに対し、 本発明の命令セッ トにおいて は、 分岐先の情報を事前に与えることができるので、 条件分岐を実 行するときのペナルティを無くすことができる。 さ らに、 ハー ド ウェアに余裕があれば、 分岐先の準備命令をフェッチして、 それに 続く実行命令のための準備を行う こと も可能となる。 分岐条件が整 わない場合は、 その準備が無駄になるだけであり、 実行時間のペナ ゾレティになることはない。
また、 後続命令が必要とする レジスタ情報が、 実行命令と同時に あるいは先立って判るので、 ハー ドウェア · コス トを増大させずに 高速化を図ることが可能となる。
本発明の制御ユニッ トにおいて、 準備命令を実行する第 2の実行 制御ュニッ トは、 F P G Aのよ う に ト ランジスタ間の接続を変更可 能なアーキテクチャを動的に制御できるものであっても良い。 しか しながら、 F P G Aのよ うにハー ドウエアをダイナミ ックに変更す るには時間がかかり、 また、 その時間を短縮するためのハー ドゥエ ァが必要となる。 これに対し、 第 2の実行制御ユニッ トに、 レジス タ情報をデコー ドしてフエツチするなどの算術論理演算ュニッ トの インタフェースを規定するスケジューラと しての機能を持たせるこ とによ り、 短時間で算術論理演算ュニッ トに対し準備命令を実行で きる簡易な構成を提供できる。
さ らに、 第 2 のフィール ドに、 制御ユニッ トに含まれる少なく と も 1 つの算術論理演算ュニッ トのイ ンタフェースおよびその算術論 理演算ュニッ トの処理内容を規定する命令を記載あるいは記述する ことによ り、 データフロー指定を行う ことが可能となる。 これによ り、 データパスの独立性を高めることが可能となり結果的にデータ フロー指定を別命令プログラムを実行しながら行ったり、 アイ ドル 状態にある制御ュニッ 卜の内部のデータパスを、 外部の他の制御ュ ニッ トにおいて実行されている緊急度の高い処理のために貸し出す ことも許す構造を容易に提供可能である。
従来は、 複雑なデータ処理は、 専用回路を用意し、 その専用回路 を用いる専用命令化する しか対応方法が無くハー ドウェアコス トが 増大する。 これに対し、 本発明の命令セッ トにおいては、 実行命令 とは独立して第 2のフィールドによ り論理演算ュニッ トのインタ一 フユ一スおよびその処理内容を記述できるので、 パイプライン制御 やデータパス制御の構造を命令セッ 卜の中に取り込むことが可能と なる。 したがって、 本発明は、 プログラムカンタ近傍の並列処理を 実行だけでなく、 2つ以上オブジェク トの同時擬似実行や 2つ以上 の関数の同時擬似実行に有効な手段を提供することになる。 つま り . 従来の命令セッ トでは、 2つ以上のコンテキス 卜の異なるデータ処 理ゃアルゴリ ズム実行等の、 それぞれ離れたプログラムカウンター に基づく処理が同時に起動ができなかったのに対し、 本発明の命令 セッ トを用いてデータフローを適当に定義することによ り、 プログ ラムカウンタにかかわらずに処理を実行することが可能となる。
したがって、 本命令セッ トを用いると、 並列処理に対して、 予め アプリ ケーショ ン側から見て性能向上に有効と思われるデータパス を第 2 のフィール ドを用いてソフ トウエアから組み込むことが可能 であり、 それによ り実現されたデータパス (データフロー) を必要 に応じて、 さ らにソフ トウエアから命令レベルで起動することがで きる。 このデータパスは、 特定の目的に対応したデータ処理だけで なく、 一般のステー トマシンを起動するよ うな目的にも使用可能な ので、 極めて自由度が高い。
また、 この第 2のフィール ドの情報によ り、 先行して次命令の準 備サイクルを簡単に発生させることが可能となるために、 従来はそ のデータ演算対象をレジスタにせざるを得なかったものが、 バッ ファ リ ングを前提とすればメモリ (シングルポー ト Zデュアルポー ト) やレジスタファイルで代用可能となる。 すなわち、 第 2 の フィールドに、 制御ュニッ 卜に含まれる レジスタまたはバッファ と メモ リ の間の入出力を指示する命令を記述することを可能と し、 第 2の実行制御ュニッ トが制御ュニッ トに含まれるレジスタまたは バッファ とメモ リの間の入出力を制御する機能を持つよ うにすれば 実行命令とは独立してメモリ に対する入出力を行う ことができる。
このことは、 1つ 1つの命令シーケンスの関連性を高めると同時 にハー ドウェア リ ソースの競合を事前に回避する事に貢献するので 複数命令の並列同時実行や外部からの割り込み要因への対応を早め ることが可能となる。 そして、 基本的に、 メモ リ をレジスタ と見な せるので、 高速なタスクスィ ッチの実現が可能となる。 さ らに、 従 来のファース トフエ ッチのペナノレティ を消せないキャ ッシュ · メモ リの代わり に、 プリ ローデイ ング型の高速バッファを採用する事も 可能となる為、 1 0 0 %のヒ ッ ト率を保証しながら一切ペナルティ の発生しない高速の組み込みシステムの実現も可能となる。
すなわち、 メモリ をレジスタ とみなせるよ うにすることによ り、 割り込み等の複数の非同期処理要求に対し高速対応が可能となり、 複雑なデータ処理や連続データ処理への対応を非常にフレキシブル に行う ことができる。 また、 レジスタの対比および復帰に時間がか からないので、 タスクスィ ツチ等への高速対応が極めて簡単である c そして、 外部メモリ と内部メモリ のアクセススピー ド差の影響を完 全に消すことができるので、 キャ ッシュは、 ファース トフェッチ - ペナルティの問題を効率良く解決できるといったメ リ ッ トを得るこ とができる。 したがって、 C A L L Z R E Tや割り込み処理/ I R E Tを高速で処理することができるので、 イベン トに対する応答環 境を簡単に構築でき、 ィベン トによってデータ処理性能が低下する のを防止できる。
さ らに、 第 1 または第 2のフィール ドを、 V L I Wのよ うに、 複 数の実行命令または準備命令を記述なフィ一ル ドと し、 第 1 または 第 2 の実行制御ュニッ トが第 1 または第 2 のフィールドに記載され た複数の独立した実行命令または準備命令を独立して処理可能な複 数の実行制御部を備えているよ うにすれば、 さ らにパフォーマンス を向上できる。
そして、 本発明にかかる制御ュニッ トをコアあるいは周辺回路に 採用したデータ処理装置を実現することによ り、 上述したよ うなメ リ ッ トを活かし、 処理速度が速く 、 さ らに経済的なデータ処理装置 を提供できる。 図面の簡単な説明
図 1 は、 本発明にかかる命令セッ トの概要を示す図である。
図 2は、 図 1 に示す命令セッ トの Yフィ ール ドをさ らに詳しく説 明する図である。
図 3は、 図 1 に示す命令セッ トを実際に用いた簡単な例を示す図 である。
図 4は、 図 3に示す命令セッ トによ りデータがレジスタに格納さ れる様子を示す図である。
図 5は、 本発明にかかる命令セ ッ トを実行可能な制御ュニッ トの 例を示す図である。
図 6は、 従来の C P Uあるいは D S Pで実行可能なサンプルプロ グラムである。
図 7は、 本発明にかかる制御ュニッ ト用のプログラム例である。 図 8は、 図 7に示すプログラムを本発明にかかる命令セ ッ トの実 行プログラムにコンパイルした例を示す図である。
図 9は、 本発明にかかる制御ュニッ ト用の異なるプログラム例で ある。
図 1 0は、 図 9のプログラムによ り構成されたデータフローを示 す図である。 発明を実施するための最良の形態
以下に図面を参照して、 本発明をさ らに詳しく説明する。 図 1 に 本発明にかかる命令セッ ト (命令フォーマッ ト) の構成を示してあ る。 本発明にかかる命令セ ッ ト (D N A / D A Pの命令セッ ト) 1 0は、 第 1 のフィール ドである命令実行基本フィール ド ( Xフィー ノレド) 1 1 と呼ばれる部分と、 次の命令実行の効率化を図ることが できる第 2 のフィールドである次命令実行準備サイクル (追加 フィール ドあるレ、は Yフィール ド) 1 2 と呼ばれる 2つのフィール ドを備えている。 命令実行基本フィール ド ( Xフィール ド) 1 1 は. データ演算およびその他の各種データ処理内容を指定し、 その結果 が格納される先を指定する。 また、 Xフィール ド 1 1 は、 命令長の 使用効率を上げるために実際に実行される命令の情報しか含まない c 一方、 追加フィール ド (Yフィール ド) 1 2 は、 同一の命令セ ッ ト の Xフィール ドの実行命令とは独立した命令 (情報) が記述可能で あり、 たとえば、 次の命令の実行準備サイクルに割当てられる。
さ らに詳しく命令セッ ト 1 0を説明すると、 Xフィール ド 1 1 は. 算術論理演算ュニッ トなどに対する命令操作あるいは実行命令 (Ex ecution ID ) を記述する実行命令フィ ール ド 1 5 と、 Yフィール ド 1 2の有効 Z無効および Yフィールド 1 2で示す準備命令のタィプ を示すフィール ド (タイプフィール ド) 1 6 と、 デイ スティネー ショ ンのレジスタを示すフィールド 1 7 とを備えている。 タイプ フィーノレ ド 1 6 の内容は、 Xフィール ド 1 1 の他のフィーノレ ドの内 容とは独立して定義できることは上述した通りである。
また、 Υフィ ール ド 1 2は、 タイプフィール ド 1 6によって規定 される準備命令が記述される。 この Υフィール ド 1 2に記述される 準備命令は、 データ演算または他のデータ処理を実行可能な状態に するための情報であり、 図 2に具体的な幾つかの例を示してある。 先ず、 実行命令フィール ド 1 5 とタイプフィール ド 1 6 とは独立ま たは無関係である。 Υフィ ール ド 1 2には、 ア ドレス I D 2 1 と、 それによつて利用目的が規定されるァ ドレス情報 2 2を記述するこ とができる。 この Υフィール ド 1 2に記述されたア ドレスは、 レジ スタあるいはバッファ と メモ リ (レジスタファイルを含む) との間 のリー ドおよびライ トに用いられ、 D Μ Αのよ うにブロ ック転送も 可能な構成になっている。 さ らに、 分岐命令を実行したときの分岐 先を示すア ドレス (フェッチア ドレス) 、 並列実行するときのス ター トァ ドレスなどの情報も Yフィールド 1 2に記述することがで さる。
また、 レジスタタイプの命令、 たとえば、 算術演算あるいはその 他の論理演算命令 (M O V E、 メモ リ一リー ド Zライ トなども含 む) に対してソース側となるレジスタ情報あるいは即値 (イ ミ一 ディエイ ト) を規定する情報 2 3 も Yフィール ド 1 2に記述するこ とができる。
さ らに、 Yフィール ド 1 2には、 算術論理演算ユニッ ト ( A L
U ) のソース、 ディステイネイ シヨ ンおよび処理内容を規定する情 報 2 5 も記述することが可能である。 したがって、 Yフィール ド 1 2によってデータ処理を行うためのパイプライン (データフローあ るいはデータパス) を定義することができる。 もちろん、 Yフィー ルドには、 そのデータフローをスター トする情報および終了する情 報を記述することが可能であり、 定義したデータフローにプロダラ ムカウンタから独立した処理を行う ことができる。
なお、 図 1および図 2に示した命令セ ッ トのフォーマッ トは、 本 発明にかかる 2つの独立した命令フィール ドを備えた命令セッ トの 一例であり、 これに限定されないことはもちろんである。 例えば、 タイプフィール ドの位置は、 本例に限定される必要はないし、 Y フィール ドの先頭に位置させること も可能である。 また、 以下では Xフィール ドぉよび Yフィールドに実行命令あるいは準備命令が記 載あるいは記述された例を説明するが、 これらのフィールドに命令 を記述せず (N O P ) 、 Xフィール ドあるいは Yフィール ドだけが 意味を持つよ うな命令セッ トももちろん可能である。 さ らに、 従来 の命令セッ ト と同様に、 Xフィール ドに記述された実行命令にかか るレジスタ情報などのオペラン ドを備えた、 すなわち、 実行命令に 対し独立していない準備命令が同時に記述された命令セッ トを本発 明にかかる命令セッ トと混在してプログラ ミングすること も可能で あるが、 以下では本発明をわかりやすく説明するためにそのよ うな 例は記載していない。
図 3に、 本例の命令セッ ト 1 0の簡単な例を示してある。 先ず、 T j — 1番目の命令セ ッ ト 1 0 ( j _ l ) の Xフィール ド 1 1 のタ ィプフィール ド 1 6に Yフィーノレ ド 1 2に 3 2 ビッ トのイ ミ一ディ エイ トが記載されていることが示されている。 そして Yフィールド 1 2には、 イ ミ一ディエイ ト と して # 0 0 0 0 1 2 3 4 Hが記載さ れている。 次の T j 番目の命令セッ ト 1 0 ( j ) にでは、 Xフィー ノレ ド 1 1 の実行命令フィール ド 1 5に M〇 V Eが記載され、 デイ ス ティネーショ ンフィ 一ル ド 1 7 にレジスタ R 3が記載されている。 このため、 この命令セッ ト 1 0 (: j ) をフェッチすると、 制御ュ ニッ トの A L Uは、 前の命令フィール ド 1 0 ( j — 1 ) に定義され たイ ミ一ディエイ ト # 0 0 0 0 1 2 3 4 Hをレジスタ R 3に格納す る。
このよ うにして、 本例の命令セッ ト 1 0では、 実行命令が記述さ れた命令セッ ト 1 0 ( j ) の前の命令セッ ト 1 0 ( j — 1 ) によ り その実行命令の準備が行われる。 したがって、 命令セッ ト 1 0
( j ) だけでは制御ュニッ トを構成する A L Uが実行する処理内容 は判らないが、 2つの命令セッ ト 1 0 ( j — 1 ) および 1 0 ( j ) によ り A L Uが実行する処理内容は一義的に決定される。 もちろん 命令セッ ト 1 0 ( j — 1 ) の実行命令フィール ド 1 5 には、 Y フィールド 1 2 とは独立して命令セッ ト 1 0 ( j — 1 ) の前の命令 セッ トの Yフィ ール ド 1 2によ り準備された処理を実行する命令が 記述されている。 また、 命令セッ ト 1 0 ( j ) のタイプフィール ド
1 6および Yフィールド 1 2には、 次の命令セッ トの実行命令 フィールドに記述された実行命令の準備をする情報が記述されてい る。
また、 本例では、 ある実行命令が Xフィール ド 1 1 に記述された 令セッ ト 1 0 ( j ) の直前の命令セッ ト 1 0 の Y フィール ド 1 2に、 その実行命令の準備情報 (準備命令) が記述さ れているが、 準備情報が記述される命令セッ トは、 直前の命令セッ トにかぎられるものではない。 例えば、 複数の A L Uを備えた制御 ュニッ トの制御プログラムなどであれば直前の命令セッ トである必 要はなく、 準備命令によってセッ トされた A L Uの状態 (環境ある いはイ ンタフェース) 力 その準備命令に対応する実行命令を備え た命令セッ トがフエツチされて実行されるまで保持されるのであれ ば、 数命令前の命令セ ッ トの Yフィ一ル ドで準備命令を記述できる 図 4に、 図 3に示した命令セッ トによ り レジスタ と して機能する レジスタファイルあるいはメモリ に値が格納される様子を示してあ る。 先ず、 T j 一 1番目の命令セッ ト 1 0 ( j — 1 ) によ りイ ミ一 ディエイ ト W 0 0 0 0 1 2 3 4 Hが A L Uのソース側のレジスタ D
P 0. Rにラッチされる。 そして、 T j 番目の命令セッ ト 1 0 ( j ) を実行するサイクルでバッファ 2 9にス トアされる。 その後 メモ リ またはレジスタフア イ ノレ 2 8 のレジスタ R 3 のァ ドレスに バッファ 2 9の値が格納される。
図 5に、 本例の命令セッ ト 1 0によ り処理内容が記述されたプロ グラムを時刻可能な制御ユニッ ト 3 0の概略構成を示してある。 本 例の命令セッ ト 1 0を具備したマイクロコー ドあるいはマイクロプ ログラムはコー ド R O M 3 9に記憶されており、 フェッチュニッ ト 3 1 によ りマイクロプログラムを構成する命令セッ ト 1 0が随時 フェッチされる。 制御ユニッ ト 3 0は、 フェッチされた命令セッ ト 1 0の Xフィール ド 1 1 をデコー ドして A L U 3 4の処理内容を決 定あるいはアサー トすると共に、 A L U 3 4の論理演算結果をディ スティネーシヨ ンのレジスタ 3 4 dを選択してラツチする機能を備 えた第 1 の実行制御ュニッ ト 3 2を備えている。
さ らに、 制御ユエッ ト 3 0は、 フェッチされた命令セッ ト 1 0の Yフィール ド 1 2を Xフィール ド 1 1 のタイプフィール ド 1 6 の情 報に基づいてデコー ドし、 A L U 3 4のソース側のレジスタ 3 4 s を選択する機能を備えた第 2 の実行制御ュ-ッ ト 3 3を備えている t この第 2 の実行制御ュニッ ト 3 3は、 タイプフィール ド 1 6 の情報 を除き、 Yフィール ド 1 2 の命令あるレ、は情報を Xフィール ド 1 1 の内容とは独立して解釈することができる。 第 2の実行制御ュニッ ト 3 3は、 さ らに、 Yフィール ド 1 2に記載された情報がデータフ 口一を規定するものであれば、 A L U 3 4のソース側およびディス ティネーシヨ ン側の選択あるいは設定、 すなわち、 A L U 3 4のィ ンタフェースを決定し、 さ らに、 その状態を所定のク ロ ックあるい は解除の指示があるまで連続的に保持する機能も備えている。 また. Yフィール ド 1 2の情報がデータフローを規定する場合は、 この第 2 の実行制御ユニッ ト 3 3は、 さ らに、 A L Uの処理内容も決定し. その状態を所定の期間保持する。
本例の制御ユニッ ト 3 0は、 さ らに、 このよ うな実行制御ュニッ ト 3 2および 3 3 と、 A L U 3 4の組み合わせを複数備えており、 これらによって様々な処理が実行できるよ うになつている。 した がって、 本例の制御ュニッ ト 3 0をコアあるいは周辺回路と して画 像データを高速で処理するよ うな D S P、 汎用のデジタル処理を高 速で行える C P Uあるいは M P Uなどを構成することが可能である 図 6ないし図 9に、 本例の制御ュニッ ト 3 0で実行するプログラ ムの一例を示してある。 図 6に示したサンプルプログラム 4 1 は、 従来の C P Uあるいは D S Pで実行可能なよ う に作成した例である, このプログラムは、 # S T A R Tのァ ドレスから始まるテーブルか ら最も大きな値を抽出し、 最終データであることを示す # E N Dを 検出すると終了するプログラムである。
図 7に記載したプログラム 4 2は、 図 6 と同じ処理を本発明にか かる命令セッ トを実行可能な制御ュニッ ト 3 0に適したプログラム に変換したものであり、 2命令を 1 つの命令セッ トで実行できる例 を示してある。 図 7に示したプログラムは、 コンパイラ一を通して 本発明にかかる命令セッ トの実行プロダラムに変換され、 制御ュ ニッ ト 3 0で実行される。 図 8にコンパイルした例 4 3を示してあ る。 本図から判るよ うに、 第 1 の番目の命令セッ トの Yフィール ド 1 2で 2番目の実行命令の準備が行われ、 2番目の命令セッ トを実 行するときは、 その実行命令フィール ド 1 5の M O V E命令を単に 実行するだけになる。 同様に、 2番目の命令セッ トの Yフィールド 1 2には次の命令セッ 卜の実行命令フィール ドの実行命令の準備情 報が記述されている。
このよ うに、 本発明の命令セッ トによれば、 各々の命令セッ トに 記載された実行命令を行う ときは、 A L Uのソース側にデータが リ一ドされているので純粋に算術命令だけを行う よ うになるので A C特性が良く、 実行周波数特性が向上する。 さ らに、 実行命令に対 する前後の差はあるが、 従来のパイプラインと同様に、 命令フェツ チ、 レジスタデコー ド、 処理実行などを段階的に行う ことが可能で あり、 スループッ トも向上できる。 また、 本例のプログラムは 2命 令を 1命令セッ トに記述できるよ う になっているので、 V L I Wと 同様にプログラムカウンタの近傍の複数の命令を並列実行すること によ り処理速度を向上することができる。
さ らに、 4番目の命令セッ トの実行命令フィール ド 1 5には条件 分岐が記述されており、 その分岐先のア ドレスは、 この命令セッ ト に先行する 3番目の命令セッ トの Yフィール ド 1 2に記述されてい る。 したがって、 4番目の命令セッ トを実行する際に、 あるいはそ れに先立ってフェッチレジスタに分岐先のァ ドレスをセッ ト し、 分 岐条件が成立したときにペナルティーなく分岐先の命令セッ トを フェッチあるいは実行することができる。 さ らには、 分岐先の命令 をプリ フユツチしておく こと も可能であり、 分岐先の実行命令を実 行する準備を事前に整えておく こと も可能となる。 したがって、 分 岐先の命令であっても 1 ク 口 ックの無駄もなく実行することが可能 であり、 1 クロ ック単位で処理を正確に定義することができる。 図 9には、 さらに、 本発明の命令セッ ト 1 0の Yフィール ド 1 2 を用いてデータフローを定義し、 そのデータフローによ り上記と同 様の処理を行うプログラム 4 4の例を示してある。 D F L W I は、 データフローの初期設定を行う命令であり、 D F L W Cはデータフ ロー (データパス) を構成する A L Uの接続情報 (イ ンタフェース の情報) および処理内容を規定する命令である。 また、 D F L W T はデータフローの終了条件を規定する命令であり、 最後に、 このよ うにして定義されたデータフ口一にデータを入力して処理を行う D F L W Sが記述されている。
図 9に示した本例のデータフロー指定では、 第 2の実行制御ュ ニッ ト 3 3がスケジューラ 3 6 と して機能し、 図 1 0に示すよ うに 3つの A L U 3 4のインタフェース (入出力) と、 その処理内容を 規定し、 それを終了条件が成立するまで保持する。 したがって、 こ れらの A L U 3 4によ り構成されるデータフローあるレ、はデータパ スによ り、 ク ロ ック単位で次々 と図 6に示した処理と同じ処理が進 行する。 すなわち、 データフロー指定を行う ことによ り、 3つの A L U 3 4によって制御ュニッ ト 3 0の中に、 その処理のための専用 回路が設けられた状態となり、 プログラムカウンタの制御から外れ て最大値を求める処理を実行することができる。 したがって、 図 9 から判るよ うに、 データフローを定義することによ り分岐命令を用 いずに図 6あるいは図 7に記載されたプログラムを同じ処理を実行 することができる。 このため、 汎用の制御ユニッ ト 3 0でありなが ら、 専用回路を備えた制御ュニッ トと同様に特定の処理を非常に高 速に効率良く行う ことが可能となる。
本発明にかかる命令セッ トおよび制御ユニッ トによ り、 様々な処 理を行うデータフローあるいは疑似データフローを制御ユニッ トに 設けることができる。 これらのデータフローはテンプレー 卜と して 他の処理あるいは他のプログラムにも適用できるものであり、 ソフ トウエアを用いてハー ドウェアを随時、 特定のデータ処理に適した 構成に変更でき、 それを他のプログラムあるいは他のハー ドウエア においても実現できることを意味する。 そして、 このよ うなデータ フローを複数設定すること も可能であり、 マルチコマン ドス ト リー ムをソフ トウエアを用いて制御ュニッ トの中に定義することができ る。 したがって、 複数の処理を並列実行することが極めて簡単とな り、 その実行内容をプログラ ミ ングによ り 自由に制御することがで きる。
また、 従来のプロセッサでは、 複数のマルチプロセッサ間の接続 方法が、 共有メモ リ等を通す方法しか存在せず、 アイ ドル状態のプ 口セッサ一が存在しても、 その内部データ処理ユニッ トを外部から 利用する方法が無かったのに対し、 本発明にかかる制御ュニッ トに おいては、 適当なデータ フローを設定することによ り、 余っている ハー ドウェアを他の制御ユニッ トによ り使用するといつたこと も可 能となる。 さ らに、 副次的な効果と して、 命令実行シーケンスの効率化と內 部データパスの独立性の確保と 自由度 (流用度) の向上によ り、 本 発明にかかる制御ュニッ トあるレ、はそれを用いたプロセッサにおい ては、 実行するハー ドウェアに余裕さえあれば、 全く性質の異なる コンテクス トの命令シーケンスを同時に供給しても問題無く実行す ることが可能となる。
更に、 現在、 ハー ドウェアと ソフ ト ウェアの強調設計によるメ リ ッ トが盛んに指摘されるよ うになったが、 本発明による命令セッ トおよび制御ュニッ トを採用することによ り、 ユーザ側の要求する アルゴリ ズムやデータ処理を許されるハー ドウェア ■ コス トでどう 効率良く経済的に実現可能かという事に対しする 1つの回答を与え ることができる。 例えば、 ハー ドウェア · コス トを最小に抑制しな がら、 性能向上に貢献可能なデータパス (データフロー) を、 過去 のデータパスに関する構成結果情報である本発明にかかる命令セ ッ ト (旧 D A P / D N A ) のデータ情報と、 その後に追加されるハー ドゥユア構成情報およびデータ処理を実行するシーケンス情報から 新しいタイプの組み合わせ結果、 すなわち、 新しいデータフローを 定義するソフ トウユアを導き、 極めて無駄の少ない最適解を提供す ることが可能となる。
また、 従来は、 ハー ドウェア構成が要素化され難いために、 その 相互の組み合わせ自体の柔軟性が無く、 基本的には、 性能を上げる 為に 1つ新規のデータパスを追加するという よ うなやり方が主流で あった。 そして、 性能向上のための情報蓄積の点でも、 実際にそれ を実現する上で必要となるハー ドウユア情報の追加という観点でも、 数値化し難くデータべ一ス化することは困難であった。 上での問題 点であった。 これに対し、 本発明によれば、 ある程度コンパク トな データパスをいくつかテンプレー ト的に用意しておき、 そのデータ パス間の組み合わせを指示して、 データフロー型の処理に持ち込む ことによ り高性能化を図ることが可能である。 そして、 極めて細か い単位でのハー ドウエアと ソフ ト ウェアとの連携の見積も りが容易 となる。 また、 ハー ドウェアと ソフ トウェアの ト レー ドオフ情報を 蓄積すること も可能で、 データパス単位でその組み合わせの可能性 が、 処理性能貢献度と密接に結びつく事になる。 したがって、 ハー ドウユアと ソフ トウェアの緊密な実行性能データや処理要求に応じ た性能コス トの正確な見積も り を蓄積することが可能となる。 もち ろん、 これらのデータパスは主要な処理あるいは汎用的な処理の実 行を停止させないで実現すること も可能となるため、 性能要求に対 して、 何をどれだけどのよ うに追加すれば、 どのよ うな結果が期待 出来るという事を、 純粋に過去に蓄積された本発明にかかる命令 セッ トおよびハー ドウエアのデータから予測する事が可能とする。
これは、 現在行われている設計コス トゃ仕様策定コス 卜の著しい 低減に貢献するだけで無く 、 次の新しい設計に対して、 新規に追加 すべきハー ドウエアと ソフ トウエアの ト レー ドオフを必要最小限で 完了させる事に貢献する。 また、 処理形態に応じて、 内部のデータ パスを外部へ貸し出しする事も容易にする為、 ハー ドウユアのリ ソースシェアリ ング化が可能となり、 複数の本発明にかかるモ ジュール ( D A P D N Aモジュール) の間で並列処理化を極め、 コンパク トなハー ドウエアで実現する事が可能となる。
本発明の命令セッ トおよび制御ュニッ トによ り提供される新しい プログラ ミング環境においては、 上述した以外にも特殊な命令を設 けることが可能である。 例えば、 現在のプログラムとは別に、 1つ 以上のオブジェク ト (プログラム) を同時に起動し、 並列処理起動 を命令レベルでサポー トする X F〇 R K、 オブジェク ト (プロダラ ム) 間の同期を指定する X S Y N K、 並列処理間のパイプライン結 合を命令する X P I Ρ Ε、 現在のオブジェク トを終了し、 次のォブ ジェタ トを起動する X S W I T C Ηなどが考えられている。
以上に説明したよ うに、 本発明にかかる命令セッ トおよびそれを 用いたプロダラ ミ ングおよびそれを実行可能な制御ュニッ トの技術 は、 従来の命令セッ トの構成方法そのものを大幅に変更するもので あり、 これによ り、 従来技術では対応の難しかった上述したよ うな 問題を上手く解決し、 大きな性能向上を図ることができる。
すなわち、 本発明にかかる命令セ ッ トは、 命令セ ッ トの構成方法 を従来の命令セッ トの構成方法とは全く異なる視点から見直すこと によ り、 従来技術では解決の極めて困難と思われる多く の問題を、 極めて効率良く解決している。 実際、 従来技術においては、 その命 令セ ッ トの構成法とハー ドウユアによる命令供給 (入手) 方法が、 極めて画一的で伝統的な先入観によ り実現されていたため、 本質的 な意味での解決を遠ざけており、 その問題点を全て膨大で複雑な ハー ドウェア構成によ り解決しょ う とすることで社会へ貢献すべき テクノ ロジーとその上に構築される各種の情報処理製品の開発コス トを膨大に引き上げる原因となっていた。 本発明は、 これを本来あ るべきアプリケーショ ン要求を優先した命令セッ トを実現すること によ り、 単に製品性能の効率化に止まらず、 その高い開発効率と製 品の品質保証を得易い手段を提供することができる。 また、 これに よ り、 従来存在したアプリケーショ ン間の資産の共有化とハー ド ウェア資産の共有化、 及び高性能化に対する適切なハー ドウユア投 資がよ り健全な方向へ向かい、 ネッ トワーク化社会を構築する上で のテクノ ロジー ■ インフラと しても大きく貢献可能となることが期 待できる。

Claims

請 求 の 範 囲
1 . 命令セ ッ トの中に、 制御ユニッ トで実行するデータ演算また は他のデータ処理の内容を指示する実行命令を記載可能な第 1 の フィールドと、 前記制御ユニッ トを前記データ演算または他のデー タ処理が実行可能な状態にする準備命令を記載可能な第 2 のフィ ー ゾレ ドとを有し、 前記第 1 のフィ一ルドに記載された実行命令の内容 に対し独立した内容の準備命令が前記第 2のフィールドに記載され た制御プログラムが記録されていることを特徴とする制御ユニッ ト が読み取り可能な記録媒体。
2 . 請求項 1 において、 前記第 2のフィールドに、 後続の命令 セッ トの前記第 1 のフィールドに記載される実行命令を実行するた めの準備命令が記載された前記制御プログラムが記録されているこ とを特徴とする制御ュニッ トが読み取り可能な記録媒体。
3 . 請求項 1 において、 前記第 1 のフィール ドに、 前記制御ュ ニッ トに含まれる少なく と も 1つの算術論理演算ュニッ トを操作す る命令が記載され、 前記第 2 のフィールドに、 前記少なく と も 1 つ の算術論理演算ュニッ トのイ ンタフェースを規定する命令が記載さ れた前記制御プログラムが記録されていることを特徵とする制御ュ ニッ トが読み取り可能な記録媒体。
4 . 請求項 1 において、 前記第 2のフィール ドに、 前記制御ュ ニッ トに含まれる少なく と も 1 つの算術論理演算ュニッ トのイ ンタ フェースおよびその算術論理演算ュニッ トの処理内容を規定する命 令が記載された前記制御プログラムが記録されていることを特徴と する制御ュニッ 卜が読み取り可能な記録媒体。
5 . 請求項 1 において、 前記第 2のフィール ドに、 前記制御ュ ニッ トに含まれるレジスタまたはバッファ とメモ リ の間の入出力を 指示する命令が記載された前記制御プログラムが記録されているこ とを特徴とする制御ュ-ッ トが読み取り可能な記録媒体。
6 . 請求項 1 において、 前記第 1 または第 2のフィール ドは、 複 数の実行命令または準備命令を記載可能なフィ一ルドを備えている 前記制御プログラムが記録されていることを特徴とする制御ュニッ トが読み取り可能な記録媒体。
7 . 命令セッ トの中に、 制御ユニッ トで実行するデータ演算また は他のデータ処理の内容を指示する実行命令を記載可能な第 1 の フィールドと、 前記制御ュニッ トを前記データ演算または他のデ一 タ処理が実行可能な状態にする準備命令を記載可能な第 2のフィ一 ルドとを有し、 前記第 1 のフィ一ルドに記載された実行命令の内容 に対し独立した内容の準備命令が前記第 2のフィールドに記載され た制御プログラムが埋め込まれていることを特徴とする伝送媒体。
8 . 制御ュニッ トで実行するデータ演算または他のデータ処理の 内容を指示する実行命令を記載可能な第 1 のフィ ール ド、 および前 記制御ュニッ トを前記データ演算または他のデータ処理が実行可能 な状態にする準備命令を記載可能な第 2 のフィール ドとを具備する 命令セッ トをフェ ッチするュニッ トと、
前記第 1 のフィールドの実行命令をデコー ドし、 前記制御ュニッ トが予め設定された状態でデータ演算または他のデータ処理を進め る第 1 の実行制御ュニッ トと、
前記第 2 のフィール ドの準備命令をデコー ドし、 前記第 1 の実行 制御ュニッ トの実行内容とは独立して前記制御ュニッ トの状態を設 定する第 2の実行制御ュニッ トとを有する制御ュニッ ト。
9 . 請求項 8において、 前記第 2 の実行制御ユニッ トは、 前記制 御ュニッ トに含まれる少なく と も 1 つの算術論理演算ュニッ トのィ ンタフェースを規定するスケジューラと しての機能を備えているこ とを特徴とする制御ュニッ ト。
1 0 . 請求項 8において、 前記第 2の実行制御ユニッ トは、 前記 制御ュニッ トに含まれる レジスタまたはバッファ とメモ リ の間の入 出力を制御する機能を備えていることを特徴とする制御ユニッ ト。
1 1 . 請求項 8において、 前記第 1 または第 2 の実行制御ュニッ トは、 前記第 1 または第 2のフィールドに記載された複数の独立し た実行命令または準備命令を独立して処理可能な複数の実行制御部 を備えている制御ュニッ ト。
1 2 . 請求項 8に記載の制御ュニッ トを有するデータ処理装置。
PCT/JP2000/005850 1999-08-30 2000-08-30 Unite de commande et support d'enregistrement WO2001016717A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU68644/00A AU6864400A (en) 1999-08-30 2000-08-30 Control unit and recorded medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24413799 1999-08-30
JP11/244137 1999-08-30

Publications (2)

Publication Number Publication Date
WO2001016717A1 true WO2001016717A1 (fr) 2001-03-08
WO2001016717A8 WO2001016717A8 (fr) 2001-04-12

Family

ID=17114319

Family Applications (3)

Application Number Title Priority Date Filing Date
PCT/JP2000/005850 WO2001016717A1 (fr) 1999-08-30 2000-08-30 Unite de commande et support d'enregistrement
PCT/JP2000/005848 WO2001016710A1 (fr) 1999-08-30 2000-08-30 Processeur de donnees
PCT/JP2000/005849 WO2001016711A1 (fr) 1999-08-30 2000-08-30 Progiciel et processeur de donnees

Family Applications After (2)

Application Number Title Priority Date Filing Date
PCT/JP2000/005848 WO2001016710A1 (fr) 1999-08-30 2000-08-30 Processeur de donnees
PCT/JP2000/005849 WO2001016711A1 (fr) 1999-08-30 2000-08-30 Progiciel et processeur de donnees

Country Status (16)

Country Link
US (4) US6826674B1 (ja)
EP (2) EP1134654A4 (ja)
JP (2) JP4234925B2 (ja)
KR (2) KR100497078B1 (ja)
CN (3) CN1145879C (ja)
AT (1) ATE466330T1 (ja)
AU (3) AU782238B2 (ja)
BR (2) BR0013595A (ja)
CA (2) CA2348259A1 (ja)
DE (1) DE60044300D1 (ja)
EA (2) EA004071B1 (ja)
HK (1) HK1047326A1 (ja)
IL (4) IL142676A0 (ja)
NZ (2) NZ516679A (ja)
TW (2) TW504608B (ja)
WO (3) WO2001016717A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW504608B (en) * 1999-08-30 2002-10-01 Ip Flex Inc Program product and data processing device
JP2003140886A (ja) * 2001-10-31 2003-05-16 Seiko Epson Corp インストラクションセット及びコンパイラ
US7093225B2 (en) 2002-07-17 2006-08-15 Osann Robert Jr FPGA with hybrid interconnect
US7679398B2 (en) * 2002-07-17 2010-03-16 Osann Jr Robert Reprogrammable instruction DSP
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
RU2006100275A (ru) * 2003-06-18 2006-07-10 Амбрик, Инк. (Us) Система разработки интегральной схемы
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
US20050097306A1 (en) * 2003-09-29 2005-05-05 Gajski Daniel D. No-instruction-set-computer processor
DE10360998B4 (de) * 2003-12-23 2008-09-04 Infineon Technologies Ag Schutz von Chips gegen Attacken
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US9047094B2 (en) * 2004-03-31 2015-06-02 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor
JP4451733B2 (ja) * 2004-06-30 2010-04-14 富士通マイクロエレクトロニクス株式会社 半導体装置
JP4893309B2 (ja) * 2004-10-28 2012-03-07 富士ゼロックス株式会社 再構成可能な論理回路を有するデータ処理装置
CN100346292C (zh) * 2005-12-02 2007-10-31 浙江大学 多地址空间异步计算等待响应指令的控制方法
JP4795025B2 (ja) * 2006-01-13 2011-10-19 キヤノン株式会社 ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
JP4410297B2 (ja) * 2006-03-09 2010-02-03 富士通株式会社 リコンフィギャラブル回路
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
WO2008142750A1 (ja) * 2007-05-17 2008-11-27 Fujitsu Limited 演算ユニット、プロセッサ及びプロセッサアーキテクチャ
US7752592B2 (en) * 2007-10-10 2010-07-06 International Business Machines Corporation Scheduler design to optimize system performance using configurable acceleration engines
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US9069918B2 (en) * 2009-06-12 2015-06-30 Cadence Design Systems, Inc. System and method implementing full-rate writes for simulation acceleration
JP5718558B2 (ja) * 2009-09-16 2015-05-13 富士ゼロックス株式会社 画像データ処理装置
TWI563479B (en) * 2009-12-30 2016-12-21 Tatung Co Field emission display
JP5617282B2 (ja) * 2010-03-09 2014-11-05 富士通セミコンダクター株式会社 データ処理システム
JP5580404B2 (ja) * 2010-03-29 2014-08-27 株式会社東芝 半導体装置
GB2483903A (en) * 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Instruction which specifies the type of the next instruction to be executed
US9412022B2 (en) * 2012-09-06 2016-08-09 Leonard Flom Iris identification system and method
US9880842B2 (en) * 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
JP6321325B2 (ja) 2013-04-03 2018-05-09 ルネサスエレクトロニクス株式会社 情報処理装置および情報処理方法
US20170083313A1 (en) * 2015-09-22 2017-03-23 Qualcomm Incorporated CONFIGURING COARSE-GRAINED RECONFIGURABLE ARRAYS (CGRAs) FOR DATAFLOW INSTRUCTION BLOCK EXECUTION IN BLOCK-BASED DATAFLOW INSTRUCTION SET ARCHITECTURES (ISAs)
KR102276718B1 (ko) * 2015-11-25 2021-07-13 삼성전자주식회사 Vliw 인터페이스 장치 및 제어 방법
DE102017208818A1 (de) * 2017-05-24 2018-11-29 Wago Verwaltungsgesellschaft Mbh Initialisierung von Datenbusteilnehmern
RU182446U1 (ru) * 2018-03-13 2018-08-17 Федеральное государственное бюджетное образовательное учреждение высшего образования "Казанский государственный энергетический университет" Усовершенствованное устройство проверки однородности нескольких однотипных выборок
CN110209629B (zh) * 2019-07-15 2023-12-15 北京一流科技有限公司 协处理器的数据处理路径中的数据流动加速装置及其方法
CN113760364B (zh) * 2020-06-03 2022-06-17 广东高云半导体科技股份有限公司 逻辑器件的控制器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61294548A (ja) * 1985-06-21 1986-12-25 Toshiba Corp 機械命令実行装置
JPS6482131A (en) * 1987-09-24 1989-03-28 Mitsubishi Electric Corp Data processor
JPH01156824A (ja) * 1987-12-14 1989-06-20 Hitachi Ltd マイクロプロセッサ
JPH02183332A (ja) * 1989-01-10 1990-07-17 Fujitsu Ltd プログラムド制御方式
JPH07253882A (ja) * 1994-03-15 1995-10-03 Hitachi Ltd 命令制御装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5626062B2 (ja) 1973-12-12 1981-06-16
US5038386A (en) 1986-08-29 1991-08-06 International Business Machines Corporation Polymorphic mesh network image processing system
GB9123271D0 (en) 1991-11-02 1991-12-18 Int Computers Ltd Data processing system
US5452455A (en) * 1992-06-15 1995-09-19 International Business Machines Corporation Asynchronous command support for shared channels for a computer complex having multiple operating systems
JP3684579B2 (ja) 1993-04-27 2005-08-17 富士通株式会社 分散型並列計算機のプロセッサエレメント
US5535406A (en) * 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5551570B1 (en) 1994-02-02 1999-10-05 Tartan Paper Products Decorative packaging system including a method and kit therefor
JPH07319692A (ja) 1994-05-25 1995-12-08 Fuji Electric Co Ltd プログラマブルコントローラ
US5617431A (en) * 1994-08-02 1997-04-01 Advanced Micro Devices, Inc. Method and apparatus to reuse existing test patterns to test a single integrated circuit containing previously existing cores
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5742180A (en) 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
JP2987308B2 (ja) * 1995-04-28 1999-12-06 松下電器産業株式会社 情報処理装置
US5826072A (en) * 1995-11-13 1998-10-20 Oasis Design, Inc. Pipelined digital signal processor and signal processing system employing same
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5771362A (en) * 1996-05-17 1998-06-23 Advanced Micro Devices, Inc. Processor having a bus interconnect which is dynamically reconfigurable in response to an instruction field
US6023564A (en) * 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
US5805875A (en) * 1996-09-13 1998-09-08 International Computer Science Institute Vector processing system with multi-operation, run-time configurable pipelines
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
JPH10260832A (ja) * 1997-03-18 1998-09-29 Hitachi Ltd 情報処理装置
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
JP3414209B2 (ja) 1997-07-30 2003-06-09 松下電器産業株式会社 プロセッサ
JP3449186B2 (ja) * 1997-08-19 2003-09-22 富士通株式会社 パイプラインバイパス機能を有するデータ処理装置
US6282627B1 (en) * 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
US6647511B1 (en) * 1998-09-17 2003-11-11 Texas Instruments Incorporated Reconfigurable datapath for processor debug functions
JP2000207202A (ja) 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US6181163B1 (en) * 1999-01-21 2001-01-30 Vantis Corporation FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
TW504608B (en) * 1999-08-30 2002-10-01 Ip Flex Inc Program product and data processing device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61294548A (ja) * 1985-06-21 1986-12-25 Toshiba Corp 機械命令実行装置
JPS6482131A (en) * 1987-09-24 1989-03-28 Mitsubishi Electric Corp Data processor
JPH01156824A (ja) * 1987-12-14 1989-06-20 Hitachi Ltd マイクロプロセッサ
JPH02183332A (ja) * 1989-01-10 1990-07-17 Fujitsu Ltd プログラムド制御方式
JPH07253882A (ja) * 1994-03-15 1995-10-03 Hitachi Ltd 命令制御装置

Also Published As

Publication number Publication date
CA2348261C (en) 2006-02-14
AU782238B2 (en) 2005-07-14
NZ516679A (en) 2004-03-26
JP4234925B2 (ja) 2009-03-04
EP1215569A1 (en) 2002-06-19
IL142676A0 (en) 2002-03-10
CN1321271A (zh) 2001-11-07
KR100497078B1 (ko) 2005-06-27
JP3842129B2 (ja) 2006-11-08
KR20010080366A (ko) 2001-08-22
IL142675A (en) 2006-07-05
IL142675A0 (en) 2002-03-10
CN1301459C (zh) 2007-02-21
EP1134654A1 (en) 2001-09-19
US20050240757A1 (en) 2005-10-27
EA004196B1 (ru) 2004-02-26
KR20010080367A (ko) 2001-08-22
WO2001016717A8 (fr) 2001-04-12
CN1321270A (zh) 2001-11-07
KR100491593B1 (ko) 2005-05-27
AU776972B2 (en) 2004-09-30
TW495711B (en) 2002-07-21
IL142676A (en) 2006-08-20
WO2001016711A1 (fr) 2001-03-08
CN1532692A (zh) 2004-09-29
EA200200310A1 (ru) 2002-10-31
CN1145879C (zh) 2004-04-14
BR0013594A (pt) 2002-07-16
CA2348259A1 (en) 2001-03-08
EP1215569B1 (en) 2010-04-28
BR0013595A (pt) 2002-07-16
US6904514B1 (en) 2005-06-07
US6826674B1 (en) 2004-11-30
US20050038550A1 (en) 2005-02-17
WO2001016710A1 (fr) 2001-03-08
NZ516680A (en) 2004-01-30
EA004071B1 (ru) 2003-12-25
TW504608B (en) 2002-10-01
HK1047326A1 (zh) 2003-02-14
EA200200309A1 (ru) 2002-08-29
AU6864300A (en) 2001-03-26
ATE466330T1 (de) 2010-05-15
AU6864400A (en) 2001-03-26
EP1215569A4 (en) 2006-08-23
AU6864200A (en) 2001-03-26
CA2348261A1 (en) 2001-03-08
DE60044300D1 (de) 2010-06-10
EP1134654A4 (en) 2006-08-23
CN1148647C (zh) 2004-05-05

Similar Documents

Publication Publication Date Title
WO2001016717A1 (fr) Unite de commande et support d'enregistrement
US20220107911A1 (en) Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US11307873B2 (en) Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10564980B2 (en) Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US10387319B2 (en) Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10380063B2 (en) Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator
US10515046B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10416999B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10558575B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10817291B2 (en) Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US20190101952A1 (en) Processors and methods for configurable clock gating in a spatial array
US20190004994A1 (en) Processors and methods for pipelined runtime services in a spatial array
US20190004878A1 (en) Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features
WO2019194916A1 (en) Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator
US6330657B1 (en) Pairing of micro instructions in the instruction queue
WO2020005449A1 (en) Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US11366669B2 (en) Apparatus for preventing rescheduling of a paused thread based on instruction classification
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
US20210200540A1 (en) Apparatuses, methods, and systems for fused operations in a configurable spatial accelerator
Uhrig et al. Coupling of a reconfigurable architecture and a multithreaded processor core with integrated real-time scheduling
JP4560705B2 (ja) データ処理装置の制御方法
Mekhiel Instructions with Indirect Register Indexing for Multiple and Exponential Operations to Improve Performance
JP2002318689A (ja) 資源使用サイクルの遅延指定付き命令を実行するvliwプロセッサおよび遅延指定命令の生成方法
Fletzer ausgeführt am Institut für Technische Informatik, Embedded Computing Systems Group Technische Universität Wien

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

AK Designated states

Kind code of ref document: C1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

CFP Corrected version of a pamphlet front page
CR1 Correction of entry in section i

Free format text: PAT. BUL. 10/2001 UNDER (51) REPLACE THE EXISTING SYMBOLS BY "G06F 9/30, G06F 9/38"

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

Ref country code: JP

Ref country code: JP

Ref country code: JP

Ref country code: JP