+

WO1992015960A1 - Electronic computer system and processor elements used for this system - Google Patents

Electronic computer system and processor elements used for this system Download PDF

Info

Publication number
WO1992015960A1
WO1992015960A1 PCT/JP1991/000296 JP9100296W WO9215960A1 WO 1992015960 A1 WO1992015960 A1 WO 1992015960A1 JP 9100296 W JP9100296 W JP 9100296W WO 9215960 A1 WO9215960 A1 WO 9215960A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
processor
cell
written
Prior art date
Application number
PCT/JP1991/000296
Other languages
English (en)
French (fr)
Inventor
Hajime Seki
Original Assignee
Hajime Seki
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 Hajime Seki filed Critical Hajime Seki
Priority to PCT/JP1991/000296 priority Critical patent/WO1992015960A1/ja
Publication of WO1992015960A1 publication Critical patent/WO1992015960A1/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Definitions

  • the present invention relates to a computer system having a novel configuration and a processor element used therein.
  • the present invention has been proposed in order to solve the above problems.
  • the purpose of the present invention is to execute operations in individual processors, transfer data between processors, and the like.
  • the computer system of the present invention has a hardware configuration that includes a control processor and a plurality of processor elements capable of mutually transferring data through a bucket communication network (hereinafter referred to as the present invention).
  • the control processor is written as CP and the processor element is written as PE.
  • Each PE is sent from the CP based on the principle of Single Instruction stream Multiple Data stream (SIMD).
  • SIMD Single Instruction stream Multiple Data stream
  • An execution unit having a function of executing data transfer between PEs through a communication network is configured.
  • the CP should send instructions to the control unit of the PE and execute them based on the data structure in the execution unit.
  • the content can be set, and the operation based on the data movement in the execution unit is performed in parallel with the setting of the execution unit.
  • the execution unit of the PE has a function of executing calculation of variable data indicated by a program statement based on data driving, and a variable as soon as variable data corresponding to a variable name to be transferred is obtained. It can be configured to have a function of sending a packet including name and variable data to the execution unit of the destination PE.
  • the proposed processor element has an associative memory function in which the variable name and variable data are written in each cell, and the variable names are collated and the variable data is written in the matching cell.
  • Data memory with storage function, variable name indicating the storage location of the calculation result, immediate data, and data memory in which the calculation result is written, stack memory, and individual memory for each cell Equipped with an instruction memory in which the contents of the operation are written and an operation unit that executes the operation, and configures the program statements from the PE control unit to the operation execution unit based on the instructions of the CP.
  • the stack memory is operated and the contents of the calculation indicated by the program statement are stored in the data memory with associative memory function and The contents of calculations to be executed based on data activation by converting the data stored in the data memory cells into the form of a set of individual operations that are used as operands and writing them to the instruction memory.
  • the configuration is such that the operation shown is executed.
  • the instructions for setting the execution unit in the local memory of each PE and the setting method are described.
  • the contents are stored and the CP sends instructions to execute the contents in the local memory of each PE, so that the MIMD (Multiple Instruction stream Multiple Data strea) ( A similar operation can be performed.
  • MIMD Multiple Instruction stream Multiple Data strea
  • the CP assigns an activity number to a set of contents ⁇ for setting the execution part of the PE; Section indicates the limit of the activity number of the setting that is waiting to be executed or is being executed by the CP.
  • the control unit controls the flow of commands sent to the control unit.
  • each PE indicates the limit of the activity number of the setting contents that are waiting or being executed by the execution unit to any controller at the lowest layer.
  • Each controller is waiting for or executing all the PEs connected to the lower layer, and presents the upper limit controller with the upper limit of the activity number of the setting contents.
  • the control unit may be configured to indicate to the CP the limit of the activity number of the setting contents that are waiting to be executed or are being executed across all the PEs.
  • a variable refers to a data item of a fixed word length having a storage area in one of the local memories provided in each PE, and each variable name represents a local memory for storing data. It consists of the address of the provided PE and the address of the word in the local memory.
  • Each program element represents either a variable name, immediate data, or an operator that indicates an operation such as an arithmetic logic operation or data storage.
  • a program statement is a sequence of program elements that make sense based on reverse Polish notation, and begins with a program element that indicates a variable name that indicates the storage location of the calculation result. Should end with a program element that represents.
  • the program element representing the variable name in the program statement is used to represent the storage area for operand data or the address where the calculation results are stored.
  • FIG. 1 is a block diagram showing a basic configuration of the system of the present invention
  • FIG. 2 is a block diagram showing a detailed configuration of a processor element of the present invention
  • FIG. 3 is a detailed configuration of an execution control memory described later.
  • 4 is an explanatory diagram showing the detailed configuration of the data memory with associative memory
  • FIG. 5 is an explanatory diagram showing the detailed configuration of the instruction memory
  • FIG. 6 is a data diagram.
  • FIG. 7 is an explanatory diagram showing a detailed configuration of the transfer control memory.
  • FIG. 7 is a stack memory, a data memory with an associative memory function, a key memory, and an inductance when a calculation operation is performed in the processor element of the present invention.
  • FIG. 7 is a stack memory, a data memory with an associative memory function, a key memory, and an inductance when a calculation operation is performed in the processor element of the present invention.
  • FIG. 8 is a diagram specifically showing a change in the content of the memory
  • FIG. 8 is a diagram showing the content of a matrix-vector product assumed to specifically explain the operation of the system of the present invention
  • FIG. The figure is shown in Figure 8
  • Matrix is a diagram that shows the table in binary tree.
  • FIG. 1 is a block diagram showing a basic hardware configuration of the system of the present invention, wherein 1 is a control processor (hereinafter, referred to as a CP), 21 is a broadcast network, and 22 is packet communication. Network, 3!-3 n are processor elements ('PE is shown below), and 28!-28 are clusters described later.
  • the - ⁇ -control device 29 represents a global control device described later.
  • each of the control units includes a control unit having a function of executing a flow of an instruction sent from the CP based on the principle of the SIMD method and an execution unit operating based on the data active.
  • the execution unit further includes an operation execution unit configured to execute calculation of variable data indicated by a program statement based on data driving, and a variable name to be transferred.
  • the control unit of the PE executes the flow of instructions sent from the CP, so that the execution unit can set the contents to be executed based on the data movement in the execution unit. For the operations such as, the program elements that make up the program statement are delivered one by one to the operation execution unit, and for the data transfer between PEs, the variable name to be transferred and the destination PE are sent to the communication execution unit. The address is handed over, and the contents to be executed are set based on the key movement.
  • an activity number is given by CP to each program sent to the operation execution unit of PE. It is not necessary to give different activity numbers between different program statements, but it is assumed to be a number to which a non-negative increment is added each time it is delivered to the execution unit of PE. (If the activity numbers are wrapped around, the order set in the calculation execution part of the PE does not always match the magnitude relationship.)
  • the local The instruction for setting the execution unit and the contents to be set are stored in the memory, and the CP sends the instruction to execute the contents in the local memory of each PE, so that it can be transmitted to the MIMD computer system. Similar operations can be performed. Next, each component and operation of the invention system of this embodiment will be described.
  • the CP can broadcast commands to all PEs via the broadcast network 21.
  • This instruction is directed directly to the control unit of each PE, and is executed based on the SIMD principle.However, the execution unit performs operations and data transfer between PEs based on data active. Can be set as follows.
  • the CP assigns an activity number to each program statement and notifies the control section of the PE when issuing an instruction to the control section of the PE in order to set the calculation content indicated by the program statement in the operation execution section.
  • the same activity number is given to a program sentence to a calculation execution unit in a plurality of PEs at the same time.
  • the CP Since the lower limit of the activity number of the program statement waiting or executing in the PE group is provided to the CP from the global controller described later, the CP must not lose the consistency of the data dependency. It controls the flow of commands sent to the PEs. In other words, variables that are subject to calculation in a program statement given an activity number equal to or lower than the lower limit of the activity number presented to the CP by the global controller, wait for execution or execution of variable data calculation in the PE execution unit. It is not possible to directly access the variable data by the instruction sent by the CP because it may be in the middle, and refrain from changing the variable data through the setting of the operation execution unit to maintain the integrity of the calculation. Must-have.
  • any of the PEs will be described later. If any of the execution control memory, the data memory with associative memory function, the data memory, the integration memory, and the key transfer control memory described later is about to overflow, the global memory described later is used. Since the CP is notified through the control mechanism, the CP suspends the instruction flow to set up the execution unit of the PE. When the above condition is resolved, the PE is notified again to the CP via the global control mechanism, and the CP can resume the setting of the execution unit of the PE.
  • FIG. 2 is a block diagram showing a detailed configuration of the processor element 3 i used in this embodiment.
  • the processor element 3 i has a control unit 30 i, an execution unit 31 i, and a local memory 35 i, and the execution unit 31 i comprises an operation execution unit 32 i and a communication execution unit 33 i Is done.
  • the control unit 30 i includes an execution control memory 4 i to be described later, and the arithmetic execution unit 32 i includes a stack memory 6 i, a data memory with an associative memory function 7 i, a data memory 8 i, and an installation. It has a function memory 9i and an operation unit 39i.
  • the communication execution unit 33 i includes a data transfer control memory 5 i described later.
  • the control unit 30 i is connected to the broadcast network 21 coming from the CP 1, and can directly access the oral memory 35 i. Data communication is possible between the PEs via the packet communication network 22, but the sender of the packet is a communication execution unit, and the recipient is an operation execution unit.
  • each PE control unit is configured to be able to process a single instruction flow sent from the CP at the same time, but each PE control unit It has a function to select whether to execute or ignore an instruction depending on the internal state.
  • control unit of the PE By executing the instruction flow sent from the CP, the control unit of the PE operates based on the data execution of the arithmetic execution unit and the communication execution unit. It can be set as follows.
  • the PE's control unit performs the operation on the local memory in accordance with the explicit instructions from the CP based on the SIMD principle, and the asynchronous execution with the operation based on the data organization principle in the execution unit. It can be accessed independently and in parallel in two systems.
  • the control unit of the PE controls the flow of the command sent from the CP to the control unit of the PE, the setting operation of the execution unit in the PE, and the operation based on the decoder active in the execution unit.
  • the execution control memory (hereafter referred to as the execution control memory) stores the activity number and the variable name indicating the storage location of the calculation result for each of the program statements waiting to be executed or being executed in the operation execution unit. ECM).
  • FIG. 3 is an explanatory diagram showing a detailed configuration of the ECM.
  • E CM4 i is composed of cells 4 1 i, 42 i ⁇ , each of which has an activity number column 4 1 1 i, 4 2 1 i ⁇ and a variable name column 4 1 2 i, 422 i ⁇ , and the control builders 4 13 i, 4 23 i ⁇ .
  • the ECM has an associative memory function using the variable name column as a collation field.
  • the control field of the ECM is a storage area for control information such as whether or not each cell is in use and whether variable data needs to be transferred to the communication execution unit.
  • Each PE is configured to always present the lower limit of the activity number of the program statement waiting to be executed or being executed by the operation execution unit, that is, the lower limit of the activity number written in the ECM, to the cluster controller described later. You. (If the activity number is wrapped around, the lower limit is not necessarily the minimum value.)
  • the control unit hands over the program elements that make up the program statement to the operation execution unit one by one, and sets so that the operation is executed based on data activation. can do.
  • the control unit passes one program statement to the operation execution unit based on the instruction of the CP, the variable name indicating the storage location of the calculation result and the activity number given to the program statement are vacant in the ECM. Writes to cells.
  • variable name indicated as the storage destination of the calculation result in the program statement is the local memory of the PE executing the calculation indicated in the program statement. It must belong to In each program statement, it is assumed that the same variable name as the variable name indicating the storage location of the calculation result does not appear as an operand.
  • the control unit hands over the variable name to be transferred and the address of the PE that is the destination to the communication execution unit, and makes settings so that the data transfer between PEs is executed based on the switch active. be able to.
  • variable name to be transferred is compared by the associative memory function in the ECM, and if there is no cell in which the same variable name is written, the local memory is immediately accessed and the The variable data fetched with the name is sent to the communication execution unit. Conversely, if there is an ECM cell in which the same variable name as the above transfer target is written, the control field of that cell is calculated by the arithmetic execution unit for that variable. Is completed and the control unit stores the variable data in the local memory Is set to send variable data along with the variable name to the communication execution unit.
  • variable to be transferred in the data transfer executed by the communication execution unit, the variable to be transferred must have a storage area in the local memory of the PE that is the sender of the bucket. Shall be. Further, in the present embodiment, even when variable data is transferred to the operation execution unit of the same PE based on data driving, the address of the own PE is set as the destination of the dry transfer, and the communication execution unit is used. It is assumed that the bucket is transferred from the to the operation execution unit of the same PE through the bucket communication network.
  • the operation execution part of the processor element has a stack memory, data memory with associative memory function, data memory, instruction memory, and operation unit, and can be handed over from the control part. It has a function to execute the calculation indicated in the program statement based on data drive.
  • the stack memory (hereinafter referred to as SM) 6 i is a structure in which the address of the cell of the data memory 7 i with associative memory function or the data memory 8 i is written to each cell.
  • FIG. 4 is an explanatory diagram showing a detailed configuration of a data memory with an associative memory function (hereinafter referred to as ADM) 7i.
  • the ADM 7 i is composed of cells 7 1 i and 72 i, each of which has a variable name ⁇ 7 lli, 72 1 i ⁇ , and a column for variable data 7 1 2 i, 722 i ⁇ , And control fields 7 13 i, 723 i ⁇ .
  • the ADM has an associative memory function in which a variable name is collated in the column of a variable name, and data is written into the variable data of the matching cell.
  • the control field of the ADM is used to control whether each cell is in use or not. This is a storage area for control information.
  • the data memory (in the following, denoted by DM) 8i is configured to write the variable name indicating the storage location of the calculation result, immediate data, and the operation result.
  • the instruction memory (hereinafter referred to as IM) 9i stores the contents of a program statement described based on the reverse Polish notation in the ADM and DM cells as storage areas for operand data and operation results. It is stored in the form of a set of individual operations to be performed.
  • FIG. 5 is an explanatory diagram showing a detailed configuration of the IM.
  • ⁇ ⁇ 9 ⁇ is composed of cells of 91 i and 92 i, and each cell is an operation field 911 i and 92 1:! ⁇ , 1st Operand Field 912i, 922i ⁇ , 2nd Operand Field 913i, 923i ⁇ , Destination Field 914i, 9 24 i ⁇ , and control fields 9 15 i, 9 25 i ⁇ .
  • the IM control field is used to identify each cell, such as whether the cell is in use and whether data has been written to the ADM or DM cell indicated in the operand field. This is a storage area for control information.
  • the operation unit 39 i is a part for executing the operation perfumed in M.
  • the arithmetic unit can be configured such that the arithmetic units are pipelined, or that a plurality of arithmetic units are provided and they can operate in parallel.
  • An unused cell of the ADM is assigned to the program element, and the variable name of the operand is written in ⁇ of the variable name of the cell, and the address of the written ADM cell is pushed into SM.
  • Allocate cells that do not use DM as the storage destination of operation results, secure cells that do not use IM, and store operation codes in their operation fields, and the number of operands used for calculations from SM in the operand field.
  • Write the address of the ADM or DM cell that was just extracted into the destination field and write the address of the DM cell that was assigned as the destination for the above-mentioned operation result in the destination field, and assigned it as the storage destination for the operation result. Press the address of the DM cell into the SM.
  • a cell in which IM is not used is secured, and the operation code is used in the operation field and the operation field is used for calculation from SM in the operand field.
  • variable data When variable data is transmitted along with the variable name to the operation execution unit of the processor element through the bucket communication network, the variable name is collated by the associative memory function in the ADM and the variable name is matched. Data is written to the cell variable data column.
  • IM In IM, as soon as a cell is detected in which arithmetic and logical operations, etc. are written and all operand data has been written to ADM or DM, the operation indicated in that cell is executed in the arithmetic unit. Then, the operation result is written to the DM cell indicated in the destination field.
  • the storage of data is the contents of writing, and as soon as a cell in which all of the operand data has been written to ADM or DM is detected, the storage of the data indicated in that cell is sent to the control unit. Ask.
  • a cell in which the ADM is not used is allocated every time a program element representing a variable name of an operand is delivered. If there is a cell in which the same variable name is written in the variable name column, the cell can be assigned.
  • FIG. 7 is an explanatory diagram specifically showing the operation of the arithmetic execution unit of the processor element of the present embodiment, and the detailed operation will be described below based on this diagram.
  • the configurations of ADM and IM in FIG. 7 are the same as those in FIGS. 4 and 5, respectively, except that the control field is omitted.
  • the dotted line indicates that the cell is not used. Means that. (Here, each time the execution step progresses, a hyphen and a number corresponding to the step are appended to the end of the code of each part to indicate the content of each component at that time.)
  • the cell at address DM8-4 at address 3> is assigned as the storage destination of the operation result (other unused DM cells). ), And reserve a cell at address 1 of IM 9-4 (or another unused IM cell) in order to record the contents of the operation.
  • * And are taken from SM as two addresses (operators, * and are binary operators) extracted from SM. ⁇ 2> is written into the destination field, and the address of the DM cell assigned as the storage location of the above operation result is written to the destination field, and the SM is addressed to the SM. Press in as in 6—4.
  • the associative memory function is used to enter the variable data of the cell with the variable name [ ⁇ ] written in the ADM 7-6 variable name.
  • the operation indicated in the cell at address 1 of ⁇ ⁇ 9-6 can be executed, and the operation is executed in the operation unit 39.
  • the writing to the cell at address 1 of ⁇ , the cell at ADM address ⁇ 1 >>, and the cell at DM address 2 are invalidated.
  • the data '10' of the operation result is written to the DM address 3) cell indicated by the destination field. .
  • the storage of the data indicated in the cell at address 2 of IM 9-7 becomes executable, and the control unit controls the storage of the data and 10 'in the data storage area indicated by the variable name [A]. To ask. At this time, writing to the cell at the address 2 of the IM and the two cells at the addresses 1> and 3> of the DM are invalidated.
  • the communication execution part of the processor element performs bucket communication based on active data. It performs data communication between PEs via a network.
  • the communication execution unit has a data transfer control memory described below. This data transfer control memory stores the name of the variable to be transferred and the address of the PE as the destination. As soon as the variable data corresponding to the above variable name is received, it can be transmitted to the destination.
  • Fig. 6 is an explanatory diagram showing the detailed configuration of the data transfer control memory (hereinafter referred to as TCM).
  • TCM5 i is composed of cells 5 1 i, 5 2 i ⁇ , and each cell is a destination ⁇ 5 1 1 i, 5 21 i ⁇ , a transmission variable name ⁇ 5 1 2 i, 522i ⁇ , transfer data # 513i, 523i ⁇ , and control blocks 514i, 524i ⁇ .
  • the TCM has an associative memory function in which data is written to the ⁇ ⁇ of the transfer data of the cell having the same variable name using the column of the transfer variable name as a collation field.
  • the TCM zen build of TCM is a storage area for control information such as the next to the transfer variable name and the presence or absence of writing of the transfer data tree for each cell. Next, the operation of the communication execution unit will be described.
  • a cell in which the TCM is not used is secured, and the variable name to be transferred transferred from the control unit and the address of the PE which is the destination passed from the control unit are respectively entered in the fields of ⁇ ⁇ and the destination of the transfer variable name.
  • the address By writing the address, data transfer between PEs can be set to be executed based on data movement.
  • the transmission data corresponding to the transfer variable name is sent to the communication execution unit asynchronously with the variable name after the above setting.
  • the TCM uses the associative memory function to write the variable data to the transfer channel of the cell with the matching variable name.
  • the contents of the cell for which the transfer data has been written are sent to the bucket communication network. At this time, the cell holding the contents of the transmitted packet is released.
  • the variable data is transferred from the communication execution unit through the bucket communication network.
  • the global control mechanism has the function of integrating control information from all PEs and presenting or notifying them to the CP.
  • the global control mechanism connects a plurality of control devices in a hierarchical manner, thereby reducing the number of PEs or control devices directly connected to each control device.
  • the configuration can be limited.
  • a two-layer control mechanism including a plurality of cluster control devices (hereinafter referred to as CCU) 28i to 28m and one global control device (hereinafter referred to as GCU) 29 is provided. It is assumed that each PE is directly connected to one of the CCUs, and all CCUs are directly connected to the G CU.
  • Each PE always presents the lower limit of the activity number written to the execution control memory to the directly connected CCU, and each CCU is presented by all directly connected PEs.
  • the lower limit of the activity numbers assigned to the CCU is always presented to the G CU, and the G CU always presents the lower limit of the activity numbers presented by all the CCUs to the CP. In this way, the CP can know the lower limit of the activity number of the program statement waiting or executing through all the PEs.
  • any of execution control memory, data transfer control memory, data memory with associative memory function, chip memory, and installation memory is likely to overflow.
  • the CP is notified via the global control mechanism, and the CP interrupts the execution of instructions to set the execution unit of the PE.
  • the PE is notified to the CP again through the global control mechanism, and the CP can resume the setting of the execution unit of the PE.
  • the global control mechanism is not limited to the above-described control information, and can be used to integrate various control information and present or notify the CP. Let us explain concretely the operation of the invention system in this example using the product of a sparse matrix and a vector as an example.
  • the memory efficiency can be improved by expressing each of the rows and columns in a rillie structure. That is, consider a tree structure in which one route is provided for each row and column, and leaves corresponding to non-zero matrix elements are connected to this route by pointers. In this embodiment, a binary tree is used, and a fan-out node is required to connect two or more leaves to the root.
  • a certain area of the oral memory of one PE is allocated to the nodes ⁇ constituting the tree, and each area is called a record.
  • the records corresponding to the root, leaf, and fan-out nodes are called record, leaf record, and fan-out record, respectively.
  • the pointer from the root to the leaf is the forward pointer, and the leaf to the root.
  • the forward pointer is called the back pointer. At most two forward pointers for the record, one back pointer for the leaf record, and the forward pointer for the fan-out record, along with various data. Two and one backpointer are listed.
  • FIG. 9 shows the tree representation of the sparse matrix.
  • C1 to C4 are the routes provided for columns 1 to 4
  • R1 to R4 are the routes provided for rows 1 to 4, respectively
  • C3a and R2a are fans.
  • Art nodes, aH to a44 represent leaves corresponding to matrix elements (aij corresponds to matrix elements of i rows and j columns), and one record is assigned to each of the above .
  • [C 1] designates a record corresponding to node C 1
  • [C 1] designates a variable name that stores the k-th word in record [C 1] as a data storage area.
  • PE [C 1] represents a PE having a local memory in which the record [C 1] is stored. Also, in each record, the first word identifies whether the record is in use or unused, and identifies the record in use between the root / fanart Z leaf, An indication of the type and number of pointers used, and a storage area for information such as identification of a row or column in a row or fan record, such as the second or fourth. The word is used as the storage area of the pointer, and the fifth and subsequent words are used as the storage area or the work area of the data body.
  • the CP sends an instruction to the PEs based on the principle of the SIMD method, and in each PE, the control unit controls the first word of the record.
  • the execution unit can be set as follows.
  • CALC [R 4] aa 3 i + [a 4 4 3> where k ⁇ 5, and [C 1] t to [C 4] t are 2, 0, -1, 1 It is assumed that data has been written in advance. In addition, 1 to ® are in the order set according to the instructions of the CP, and it is not always necessary to follow this order, but if you do so randomly, the consistency of the calculation will be lost. Those with the same number are set at the same time according to the principle of the SIMD method. In the setting of 1, the value of the matrix element written in each leaf record is read and used.
  • the data transfer indicated by SEND is executed through the bucket communication network immediately after setting.
  • the calculations following CALC (1) and (2) can be executed sequentially except for a part, and when the calculation is completed, the calculation result is changed to the k-th record of each record.
  • the data transfer indicated by SEND becomes executable in the same PE. Thereafter, similarly, the setting contents of 5 to 11 are executed sequentially as soon as necessary data is collected, and finally, each record is
  • efficient calculation can be performed by operating a plurality of PEs in parallel.
  • each PE operates independently by data movement, the control structure of the PE group is simple, and there is an advantage that there is no need to give much control to this control structure during programming. is there.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

明 細
電子計算機システム及び
このシステムに使用されるプロセッサ要素 技術分野
本発明は新規な構成の電子計算機システム及びこれに使用されるプ 口セッサ要素に関する。 背景技術
複数のプロセッサを並列に動作させる電子計算機システムと しては、 ノ イ マン型のプロセッサを複数個接続したシステムが存在するが、 こ の種のシステムにおいては、 プロセッサ間の同期化や通信の制御が複 雑になる上に、 ジョブの内容やプロセッサ構成などを細部にわたって 検討してプログラムを作成しなければ効率が上がらないという問題点 があつた。
本発明は上記問題点を解決するため提案されたものであり、 その目 的は個々のプロセッサにおける演算実行、 プロセッサ相互間でのデ一 タ転送などがチ'一タ鹿動 (各々の動作が必要なデータの揃った時点で 実行されること) に基ずき独立かつ非同期に行われることによって効 率的な計算を行う よう に した電子計算機システム とこれに使用される プロセッサ要素を提供することにある。 発明の開示
本発明の電子計算機システムは、 ハー ド構成的には、 制御プロセッ サと、 バケツ ト通信網を通じて相互にデータ転送の可能な複数のプロ セッサ要素とを具備して構成されており (以後、 本明細書では制御プ 口セッサを C P、 プロセッサ要素を P Eと書く ことにする) 、 各々の P Eは、 S I MD (Single Instruction stream Multiple Data stream) 方式の原理に基ずき C Pから送られて く る命令の流れを実行 する機能を有する制御部と、 データ Sg動に基ずき演算及びパケッ ト通 信網を通じての P E相互間のデータ転送を実行する機能を有する実行 部とを具備して構成され、 C Pが P Eの制御部に命令を流して実行部 でデータ躯動に基ずき実行すべき内容を設定できるよう な構成となつ ており、 上記実行部の設定と並行して実行部におけるデ一タ躯動に基 ずく動作が行われるようになつている。
前記電子計算機システムにおいて、 P Eの実行部は、 データ駆動に 基ずきプログラム文で示される変数データの計算を実行する機能と、 転送の対象である変数名に対応する変数データが得られ次第変数名と 変数データを含むパケッ トを宛先の P Eの実行部に向けて送出する機 能とを有する構成とすることができる。
また同時に提案されるプロセッサ要素は、 各々のセルに変数名と変 数データが書き込まれるようになつており変数名を照合してその一致 するセルに変数データが書き込めるような連想記憶機能を有する連想 記憶機能付デ一タメモリ と、 計算結果の格納先を表す変数名、 即値デ —タ、 及び演算結果などが書き込まれるようになつているデータメモ リ と、 スタックメモリと、 各々のセルに個々の演算の内容が書き込ま れるようになっているイ ンス トラク シヨンメモリと、 演算を実行する 演算ユニッ トとを具備し、 C Pの指示に基ずき P Eの制御部から演算 実行部にプログラム文を構成するプログラム要素が 1つずつ引き渡さ れるごとにスタックメモリを操作してプロ グラム文で示される計算の 内容を連想記憶機能付デ一タメモリ及びデ一タメモリのセルに格钠さ れるデータをオペラン ドチ'ータとする個々の演算の集合の形式に変換 しイ ンス トラク ショ ンメモリに書き込むことによりデータ能動に基ず き実行すべき計算の内容を設定し、 オペラン ドチ'一タが全て連想記憶 機能付データメモリあるいはデータメモリに書き込み済みとなり実行 可能となった演算内容の書き込まれているイ ンス トラク シヨ ンメモリ のセルが検出され次第そのセルに示される演算が実行されるような構 成となっている。
なお、 本発明に係わる電子計算機システムにおいて、 各々の P Eが 具備する口一カルメモ リ に実行部を設定するための命令及び設定すベ き内容を格納しておき、 C Pが各々の P Eの口一カルメモリにある内 容を実行させるような命令を流すことによって、 M I MD (Multiple Instruction stream Multiple Data strea )方^ (の計算機システム【こ 類似した動作をさせることができる。
また、 本発明の電子計算機システムにおいて、 C PがP Eの実行部 の設定のために ; P Eの制御部に命令を流す際に 1 まとま りの設定内容 每に活動番号を与え、 各々の P Eが実行部で実行待ちあるいは実行中 である設定内容の活動番号の限度を提示し、 C Pはすべての P Eにわ たっての実行部で実行待ちあるいは実行中である設定内容の活動番号 の限度に応じて P Eの制御部に送る命令の流れを制御するよう になつ ている。
そのために、 階層状に接続された複数の制御装置を具備し、 各々の P Eは最下層のいずれかの制御装置に実行部で実行待ちあるいは実行 中である設定内容の活動番号の限度を提示し、 各々の制御装置は下層 につながるすベての P Eにわたつての実行待ちあるいは実行中である 設定内容の活動番号の限度をよ り上層の制御装置に提示することによ つて、 最上位の制御装置が C Pにすベての P Eにわたつての実行待ち あるいは実行中である設定内容の活動番号の限度を提示するよう な構 成とすることができる。 本発明システムで使用する各タームは次のよう な意味で使用されて いる。
• 変数名
本実施例では変数とは各々の P Eに具備されている口一カルメモ リの いずれかに格納領域を有する固定語長のデータ項目をいい、 個々の変 数名はデータを格納する口一カルメモリ を具備する P Eのァ ドレスと ローカルメモリにおける語のア ドレスとから構成される。
• プログラム要素
各々のプログラム要素は変数名、 即値データ、 あるいは算術論理演算 などの演算やデータの格納などを示す演算子のいずれかを表し、 変数 名 Z即値データ Z演算子の間の識別、 変数名の場合にはオペラン ドデ —タの格納域 Z計算結果の格納先のいずれを表すのかの識別などのた めのタグが付加された構成となっている。
• プログラム文
プログラム文は、 逆ポ一ラン ド記法に基ずいて意味をなすプログラム 要素の並びであり、 計算結果の格納先を示す変数名を表すプログラム 要素で始ま りデータの格納を示す演算子 , = ' を表すプログラム要 素で終わるものとする。 なお、 プログラム文において変数名を表すプ ログラム要素はオペラン ドデータの格納領域あるいは計算結果の格納 先のア ドレスを表すために用いられる。 図面の簡単な説明
第 1図は本発明システムの基本構成を示したブロック図、 第 2図は 本発明のプロセッサ要素の詳細な構成を示すブロック図、 第 3図は後 述する実行制御用メモ リの詳細な構成を示す説明図、 第 4図は連想記 億機能付デ一タメモ リの詳細な構成を示す説明図、 第 5図はイ ンス ト ラクションメモリの詳細な構成を示す説明図、 第 6図はデータ転送制 御用メモリの詳細な構成を示す説明図、 第 7図は本発明のプロセッサ 要素において計算動作が行なわれる場合におけるスタ ックメモリ、 連 想記億機能付データメモリ、 チ'一タメモリ及びィンス トラク シヨ ンメ モリの内容の変化を具体的に示した説明図、 第 8図は本発明システム の動作を具体的に説明するために想定された行列とベク タの積の内容 を示した図、 第 9図は第 8図に示された行列をバイナリ · ツリーで表 現した図である。 発明を実施するための最良の形態
第 1図は本発明システムの基本的なハ ー ド構成を示したブロ ック図 であって、 1は制御プロセッサ (以下では C Pで示す) 、 2 1 は放送 網、 2 2はパケッ ト通信網、 3 ! - 3 n はそれぞれプロセッサ要素 ( ' 以下では P Eで示す) 、 2 8 ! 〜 2 8 , はそれぞれ後述するクラスタ -δ- 制御装置、 2 9は後述するグ口一バル制御装置を表している。
図に示したように、 本発明システムでは、 C Ρ 1から出ている放送 網 2 1が Ρ Ε 3】 〜3 ,, のすべてに接続されており、 Ρ Ε 3 , 〜3 ,, の相互間ではパケッ ト通信網 2 2を介してデータ通信が可能となって いる。 この放送網 2 1 は同じ接続のバスで置き換えられてもよい。 本発明システムでは、 各々の Ρ Εは、 S I M D方式の原理に基ずき C Pから送られてく る命令の流れを実行する機能を有する制御部とデ —タ能動に基ずき動作する実行部とを具備して構成され、 さ らに実行 部は、 データ駆動に基ずきプログラム文で示される変数データの計算 を実行するようになっている演算実行部と、 転送の対象である変数名 に対応する変数テ'ータが得られ次第変数名と変数データを含み宛先の P Eのア ドレスをヘッ ダとするバケツ トをバケツ ト通信網に送出する ようになつている通信実行部とを具備する。
P Eの制御部は C Pから送られて くる命令の流れを実行することに より、 実行部でギ一タ躯動に基ずき実行すべき内容を設定できるよう になっているが、 算術論理演算等の演算に関しては演算実行部にプロ グラム文を構成するプログラム要素を 1 つずつ引き渡して、 P E相互 間のデータ転送に関しては通信実行部に転送の対象である変数名と宛 先である P Eのァ ド レスを引き渡して、 チ'一タ躯動に基ずき実行すベ き内容を設定するよう になっている。
本実施例においては、 P Eの演算実行部に引き渡される各々のプロ グラム文に C Pによ り活動番号が与えられる。 異なるプログラム文の 間で必ずしも異なる活動番号を与える必要はないが、 P Eの演算実行 部に引き渡されるごとに非負の増分が加えられた数をとるものとする。 (活動番号はラップアラウン ドするものとすれば、 P Eの演算実行部 に設定される順番と大小関係は必ずしも一致しない)
プロセッサ要素の演算実行部、 通信実行部の各々において、 実行す べき内容の設定と並行して、 必要なデータが揃って実行可能となった 演算やチ'一タ転送は自動的に実行されるようになっている。
なお、 本発明システムにおいては、 各々の P Eが具備するローカル メモリに実行部を設定するための命令及び設定すべき内容を格納して おき、 C Pが各々の P Eの口一カルメモリにある内容を実行させるよ うな命令を流すことによって、 M I M D方式の計算機システムに類似 した動作をさせることができる。 ついで、 本実施例の発明システムを構成する各構成要素と動作を説 明する。
( I ) 制御プロセッサ (C P )
C Pは放送網 2 1 を通じて全 P Eに向けて命令を放送することがで きる。 この命令は、 直接には各々の P Eの制御部に対するもので、 S I M D方式の原理に基ずき実行されるが、 実行部をデータ能動に基ず き演算及び P E相互間のデータ転送を実行するよう に設定することが できる。
C Pはプログラム文で示される計算内容を演算実行部に設定するた めに P Eの制御部に命令を流す際に、 各々のプログラム文に対し活動 番号を割り当て、 P Eの制御部に通知する。 本実施例では複数の P E において同時に演算実行部に引き渡されるプロ グラム文に対しては同 じ活動番号が与えられるものとする。
P E群において実行待ちあるいは実行中であるプログラム文の活動 番号の下限が後述するグロ一バル制御装置から C Pに提示されている ので、 C Pは、 データの依存関係の整合性を損なわないように、 P E 群に向けて送る命令の流れを制御するようになっている。 すなわち、 グローバル制御装置が C Pに提示する活動番号の下限以降の活動番号 を与えられたプログラム文において計算の対象となっている変数は、 P Eの演算実行部において変数データの計算の実行待ちあるいは実行 中である可能性があるので、 C Pが流す命令によって変数データを直 接アクセスすることは不可であるとともに、 計算の整合性を損なわな いために演算実行部の設定を通じての変数データの変更を控えなく て はならない。
本実施例の発明システムでは、 いずれかの P Eにおいて、 後述する 実行制御用メモリ、 連想記憶機能付データメモリ、 デ一タメモリ、 ィ ンス トラク シヨ ンメモリ、 後述するチ'一タ転送制御用メモリのいずれ かが溢れそうになった場合には、 後述するグロ一バル制御機構を通じ て C Pに通知されるので、 C Pは P Eの実行部を設定するために命令 を流すことを中断する。 上記の条件が解消されると再び P Eからグロ —バル制御機構を通じて C Pに通知され、 C Pは P Eの実行部の設定 の再開が可能となる。
( Π ) プロセッサ要素 ( P E )
第 2図は本実施例で用いられるプロセッサ要素 3 i の詳細な構成を 示したブロ ック図である。 このプロセッサ要素 3 i は制御部 3 0 i、 実行部 3 1 i 及びローカルメモ リ 3 5 i を具備するが、 実行部 3 1 i は演算実行部 3 2 i と通信実行部 3 3 i から構成される。
制御部 3 0 i は後述する実行制御用メモ リ 4 i を具備し、 演算実行 部 3 2 i はスタ ックメモリ 6 i、 連想記憶機能付デ一タメモリ 7 i、 データ メモ リ 8 i、 イ ンス ト ラ ク ショ ンメモ リ 9 i、 及び演算ュニッ ト 3 9 i を具備している。 また、 通信実行部 3 3 i は後述するデータ 転送制御用メモ リ 5 i を具備している。
制御部 3 0 i は、 C P 1から出ている放送網 2 1 が接続されており、 さ らに口一カルメモリ 3 5 i を直接アクセスできるよう になっている。 P E相互間ではパケッ ト通信網 2 2を通じてデータ通信が可能となつ ているが、 パケッ トの送り手は通信実行部、 受け手は演算実行部とい う構成となっている。
(Π -1) 制御部
S I MD方式の原理に基ずき、 各々の P Eの制御部は同時に C Pか ら送られて く る単一の命令の流れを処理できる構成となっているが、 それぞれの P Eの制御部はその内部状態によって命令を実行するか無 視するかを選択できるよう な機能を有している。
P Eの制御部は、 C Pから送られてく る命令の流れを実行すること によ り、 演算実行部及び通信実行部をデ一タ能動に基ずき動作するよ うに設定することができるようになっている。
また、 P Eの制御都はローカルメモリに対し、 S I M D方式の原理 に基ずき C Pから明示的に指示されて行う ものと、 実行部でのデータ 躯動の原理に基ずく動作に伴い非同期に実行されるものとの 2系列で 独立して並列にアクセスできる構成となっている。
本実施例の発明システムにおいて PEの制御部は、 C Pが P Eの制 御部に向けて送り出す命令の流れ、 及び P Eにおける実行部の設定動 作と実行部におけるデ一ダ能動に基ずく動作との間で整合性を確保す るために、 演算実行部で実行待ちあるいは実行中であるプログラム文 の各々について活動番号と計算結果の格納先を表す変数名を記憶する 実行制御用メモリ (以下では E CMで示す) を具備している。
第 3図は、 E CMの詳細な構成を示す説明図である。 E CM4 i は 4 1 i、 42 i〜の各セルから構成されており、 そのそれぞれのセル は活動番号の欄 4 1 1 i、 4 2 1 i〜、 変数名の欄 4 1 2 i、 422 i〜、 及び制御ブイ一ルド 4 1 3 i、 4 23 i〜から成っている。
E CMは、 変数名の欄を照合フィ ール ドとする連想記憶機能を有す る。
E C Mの制御フィールドは、 各々のセルについて使用中か否か、 通 信実行部に変数データを転送する必要があるかなどの制御情報等の格 納域である。
各々の P Eは後述するクラスタ制御装置に、 演算実行部で実行待ち あるいは実行中であるプロ グラム文の活動番号の下限、 すなわち E C Mに書き込まれている活動番号の下限を常時提示する構成となってい る。 (活動番号はラップアラウン ドするとすれば下限は必ずしも最小 な値というわけではない)
次に、 本実施例の発明システムに特有な実行部に関連する制御部の 機能について説明する。
Φ演算実行部に闋連する機能
制御部は演算実行部にプロ グラム文を構成するプロ グラム要素を 1 つずつ引き渡して、 データ能動に基ずき演算が実行されるよう に設定 することができる。 C Pの指示に基ずき、 制御部が演算実行部にプロ グラム文を 1つ引き渡すごとに、 計算結果の格納先を表す変数名とプ ログラム文に与えられた活動番号を E C Mの空いているセルに書き込 むようになっている。
なお、 本実施例では、 計算の整合性を保っため、 プログラム文にお いて計箕結果の格納先と して示される変数名はそのプログラム文に示 される計算を実行する P Eの口一カルメモリに属するものでなければ ならないものとする。 また、 各々のプログラム文において、 計算結果 の格納先を表す変数名と同じ変数名がオペラン ドと して現れることは ないものとする。
演算実行部でプログラム文で示された計算が終了すると、 計算結果 を口一カルメモリへ格納するよう依頼してくるので、 制御部は口一力 ルメモリにデータの格納を行う。 計算結果のローカルメモリへの格納 と共に、 その格納域に対応する変数名の書き込まれた E C Mのセルは 開放されるが、 そのセルの制御ブイ 一ル ドに通信実行部に変数データ の転送をするように示されていれば、 変数名と共に変数データを転送 する。 なお、 上記 E C Mのセルの開放に伴って、 E C Mに書き込まれ ている活動番号の下限が変化すれば、 後述するク ラスタ制御装置に新 たに下限となる活動番号が提示されるようになっている。
②通信実行部に関連する機能
制御都は通信実行部に転送の対象である変数名と宛先である P Eの ァ ド レスを引き渡して、 チ'一タ能動に基ずき P E相互間のデータ転送 が実行されるよう に設定することができる。
その際、 E C Mにおいて連想記憶機能によ り上記転送の対象である 変数名が照合され、 同じ変数名の書き込まれているセルが存在しなか つた場合には、 即座にローカルメモリにアクセス し、 変数名と共にフ エッチされた変数データを通信実行部に届ける。 逆に、 上記転送の対 象である変数名と同じ変数名の書き込まれている E C Mのセルが存在 した場合には、 そのセルの制御フ ィ ール ドを、 演算実行部でその変数 に関する計算が終了し制御部に口一カルメモ リへの変数データの格納 を依頼してくれば変数名と共に変数データを通信実行部にも送るよう 設定する。
なお、 本実施例では、 通信実行部によって実行されるデータ転送に おいては、 転送の対象である変数はバケツ トの送り手である P Eの口 —カルメモリに格納域を有するものでなければならないものとする。 また、 本実施例では、 同じ P Eの演算実行部にデータ駆動に基ずき変 数データを転送する場合にも、 自 らの P Eのァ ド レスを乾送の宛先と して、 通信実行部からバケツ ト通信網を通じて同じ P Eの演算実行部 にバケツ トが転送されるものとする。
(Π -2) 演算実行部
プロセッサ要素の演算実行部は、 スタ ックメモリ、 連想記億機能付 データメモリ、 デ一タメモ リ、 イ ンス ト ラク ショ ンメモ リ、 演算ュニ ッ トを具備しており、 制御部から引き渡ざれるプロ グラム文に示され た計算をデータ駆動に基づき演算実行する機能を有している。
次に、 演算実行部を構成する各構成要素を説明する。
(a )スタックメモリ (S M)
スタックメモリ (以下では SMで示す) 6 i は、 各々のセルに連想 記億機能付デ一タメモリ 7 iあるいはデータメモ リ 8 iのセルのァ ド レスが書き込まれる搆成となっている。
(b )連想記億機能付データメモ リ (ADM)
第 4図は、 連想記憶機能付データメモリ (以下では ADMで示す) 7 iの詳細な構成を示す説明図である。 ADM 7 i は 7 1 i、 72 i 〜の各セルから構成されており、 そのそれぞれのセルは変数名の檷 7 l l i、 72 1 i ~、 変数データの欄 7 1 2 i、 722 i〜、 及び制 御フ ィ ール ド 7 1 3 i、 723 i〜から成っている。
ADMは、 変数名の欄で変数名を照合して、 その一致するセルの変 数データの櫬にデータの書き込みを行う ような連想記憶機能を有する。
A D Mの制御フィールドは、 各々のセルが使用中である力 変数デ —タの欄にデータの書き込みが終了しているかどうかという ような制 御情報等の格納域である。
( G )データメモリ (DM)
デ一タメモリ (以下では D Mで示す) 8 i は、 計算結果の格納先を 表す変数名、 即値データ、 及び演算結果などが書き込まれる構成とな つている。
(d )イ ンス トラク ショ ンメモリ ( I M)
イ ンス トラク ショ ンメモリ (以下では I Mで示す) 9 i は、 逆ポ一 ラン ド記法に基ずいて記述されたプログラム文の内容を、 A D M及び DMのセルをオペラン ドデータ及び演算結果の格納域とする個々の演 算の集合の形式で記憶するものである。
第 5図は、 I Mの詳細な構成を示す説明図である。 Ι Μ 9 Ϊ は 9 1 i、 9 2 i〜の各セルから構成されており、 そのそれぞれのセルはォ ペ レ一 シ ヨ ンフ ィ ール ド 9 1 1 i、 92 1 :! 〜、 第 1 オペラ ン ドフ ィ 一ル ド 9 1 2 i、 9 22 i 〜、 第 2オペラン ドフ ィ ール ド 9 1 3 i、 9 23 i〜、 デスティネーショ ンブイ一ル ド 9 14 i、 9 24 i〜、 及び制御フィールド 9 1 5 i、 9 2 5 i 〜から成っている。
I Mの制御フィール ドは、 各々のセルについて、 そのセルが使用中 であるかどうか、 オペラン ドフィールドに示される A D Mあるいは D Mのセルにデータの書き込みが終了しているかどうかなどの識別のた めの制御情報の格納域である。
なお、 本実施例において使用できる演算子は 2個以下のオペラン ド しか持たないものと しているが、 本発明では I Mのオペラン ドフィ一 ル ドの数を増やせば、 より多くのオペラン ドを持つ演箕子を用いるこ とが可能である。
( e )演算ュニッ ト
演算ュニッ ト 39 i は ェ Mに香き込まれている演算を実行する部分 である。
演算ユニッ トは、 演算器をパイプライ ン化した り、 演算器を複数個 有しそれらが並列に動作できる構成とすることが可能である。
ついで、 プロセッサ要素の演算実行部の動作を説明する。 制御部から演算実行部にプログラム文が引き渡される際に、 プログ ラム要素ごとに次の①〜⑤のいずれかの操作がなされることにより、 プログラム文に示される計算がデータ醸動に基ずき実行されるように 設定される。
①プログラム要素が計算結果の格納先を示す変数名を表す場合。
そのプロ グラム要素に D Mの使用されていないセルを割り当て計算 結果の榕鈉先を示す変数名を書き込むと共に、 その書き込みの行われ た D Mのセルのァ ドレスを S Mに押し込む。
②プログラム要素がオペラン ドの変数名を表す場合。
そのプログラム要素に A D Mの使用されていないセルを割り当て、 そのセルの変数名の櫬にオペラン ドの変数名を書き込むと共に、 その 書き込みの行われた A D Mのセルのアドレスを S Mに押し込む。
③プログラム要素が即値データを表す場合
そのプログラム要素に D Mの使用されていないセルを割り当て即値 データを書き込むと共に、 その書き込みの行われた D Mのセルのァ ド レスを S Mに押し込む。
④プログラム要素が算術論理演算子等の演算結果を生成する演算子を 表す場合
演算結果の格納先として D Mの使用されていないセルを割り当てる と共に、 I Mの使用されていないセルを確保し、 そのオペレーション フィールドに演算コー ドを、 オペランドフィールドに S Mから演算に 用いられるオペラン ドの個数だけ取り出した A D Mあるいは D Mのセ ルのア ドレスを、 デスティネーショ ンフィールドに上記演算結果の榕 納先として割り当てられた D Mのセルのァ ドレスを書き込み、 その演 算結果の格納先として割り当てられた D Mのセルのァ ドレスを S Mに 押し込む。
⑤ 'プログラム要素がデータの代入 (あるいはデータの格納) を意味す る演算子 ' = ' 等の演算結果を生成しない演算子を表す場合
I Mの使用されていないセルを確保し、 そのオペレーションフィ一 ルドに演算コ一 ドを、 オペラン ドフィールドに S Mから演算に用いら れるオペラン ドの個数だけ取り出した A D Mあるいは D Mのセルのァ ド レスを書き込む。
ついで、 プロセッサ要素の演算実行部におけるデータ駆動に基ずく 動作について説明する。
プロセッサ要素の演算実行部にバケツ ト通信網を通じて変数名と共 に変数 ータが送信されて く ると、 A D Mにおいて連想記憶機能によ り変数名の梱で変数名が照合され、 その一致するセルの変数データの 欄にデータが書き込まれる。
I Mにおいて、 算術論理演算等を書き込みの内容と しオペラン ドデ —タが全て A D Mあるいは D Mに書き込み済みとなっているセルが検 出され次第、 そのセルに示される演算が演算ユニッ トで実行され、 そ の演算結果がデスティネーショ ンフィール ドに示される D Mのセルに 書き込まれる。
I Mにおいて、 データの格納を書き込みの内容と しオペラン ドデ一 タが全て A D Mあるいは D Mに書き込み済みとなっているセルが検出 され次第、 そのセルに示されるテ'一タの格納を制御部に依頼する。
I Mの各セルにおいて書き込まれた内容の実行が終了すると、 その 内容が書き込まれていた I Mのセル、 及びそのオペラ ン ドフ ィ ール ド に示される A D Mあるいは D Mのセルは以後の使用のために解放され る。
なお、 本実施例の演算実行部においては、 オペラン ドの変数名を表 すプログラム要素が引き渡されるごとに A D Mの使用されていないセ ルが割り当てられる構成となっているが、 本発明は A D Mの変数名の 欄に同じ変数名の書き込まれたセルが存在する場合にはそのセルを割 り当てる構成とすることも可能である。
第 7図は本実施例のプロセッサ要素の演算実行部の動作を具体的に 示した説明図であ り、 以下ではこの図をもとに詳細な動作を説明する。 第 7図において A D M及び I Mの構成は、 制御フ ィ 一ル ドが省かれて いることを除けば、 それぞれ第 4図、 第 5図のものと同じである。 第 7図で点線が書き込まれている箇所は、 そのセルが使用されていない ことを意味する。 (ここでは、 実行のステップが進むごとの、 その時 々の各構成部分の内容を示すために各部の符号の後尾にハイフンとス テツプに対応する数字を添えることとする。 )
いま、 演算実行部にプログラム文が例えば { 〔A〕 , 〔 ct〕 , 5 , * , = } ( 〔Α〕 = 〔 α〕 * 5 を意味する) のように引き渡される ものとする。
演算実行部に計算結果の格納先を示す変数名 〔Α〕 を表すプログラ ム要素が引き渡されると、 このプロ グラム要素に DM 8— 1のァ ドレ ス 〈 1 > のセルを割り当て (他の使用されていない DMのセルでもよ い) 変数名 〔A〕 を書き込むと共に、 S Mに上記 DMのセルのァ ドレ ス く 1 > を 6— 1のように押し込む。 但し、 第 7図においては、 A D M、 DM, I Mの各セルは上から順に 1、 2、 3、 〜のようにァ ドレ スが付けられているものとする。
演算実行部にオペラン ドの変数名 〔α〕 を表すプロ グラム要素が引 き渡されると、 このプログラム要素に ADM 7— 2のァ ドレス《1》 のセルを割り当て (他の使用されていない ADMのセルでもよい) そ の変数名の槻に変数名 〔 α〕 を書き込むと共に、 SMに上記 ADMの セルのァ ドレス《1》を 6— 2のように押し込む。
演算実行部に即値データ ' 5 ' を表すプロ グラム要素が引き渡さ れると、 このプログラム要素に DM 8— 3のァ ドレス <2〉 のセルを 割り当て (他の使用されていない DMのセルでもよい) データ , 5 , を書き込むと共に、 S Mに上記 DMのセルのア ドレス く 2〉 を 6— 3のように押し込む。
演算実行部に演算子 ' * ' を表すプログラム要素が引き渡される と、 演算結果の格納先として DM 8— 4のア ドレス く 3〉 のセルを割 り当てる (他の使用されていない DMのセルでもよい) と共に、 演算 の内容を記億するために I M 9— 4のア ドレス 1のセルを確保し (他 の使用されていない I Mのセルでもよい) 、 そのオペレーションフィ —ルドに演算子 , * , を、 オペランドフィールドに S Mから 2つ (演算子 , * , は 2項演算子である) 取り出したア ドレス《 1》 と < 2 > を、 デスティ ネーショ ンフ ィ一ル ドに上記演算結果の格納先と して割り当て られた DMのセルのァ ドレス く 3 > を書き込み、 S Mに その DMのセルのア ド レス く 3> を 6— 4のよ う に押し込む。
演算実行部にデータの代入 (あるいはデータの格納) を意味する演 算子 , = ' を表すプログラム要素が引き渡されると、 演算の内容を 記億するために I M 9— 5のァ ド レス 2のセルを確保し (他の使用さ れていない I Mのセルでもよい) 、 そのオペ レーショ ンフ ィ ール ドに 演算子 , = , を、 オペラ ン ドフ ィ ール ドに S Mから 2つ (演算子 , = , も 2項演算子である) 取り出したア ド レス く 1 > と く 3 > を書 き込む。 こう して、 演算実行部において 〔 A〕 = 〔 α〕 * 5 の計算 がデ一タ躯動に基ずき実行されるべく設定される。
演算実行部に変数 αのデータ , 2 , が送られて く ると、 連想記憶 機能により、 ADM 7— 6の変数名の橘に変数名 〔 α〕 の書き込みの あるセルの変数データの欄にこのデータ , 2 , が 7— 6のように書 き込まれる。
そうすると、 Ι Μ 9— 6のァ ド レス 1のセルに示される演算は実行 可能となるので、 演算ユニッ ト 3 9において演算が実行される。 この とき、 Ι Μのア ド レス 1のセル、 及び ADMのア ド レス 《 1》 のセル、 DMのァ ドレス く 2〉 のセルの書き込みは無効とされる。
演算ユニッ トにおいて演算結果がデータ ' 1 0 ' のように求まる と、 デスティ ネーショ ンフ ィ ール ドで示される DMのア ド レス く 3〉 のセルに演算結果のデータ ' 1 0 ' が書き込まれる。
そうすると、 I M 9— 7のァ ド レス 2のセルに示されるデータの格 納は実行可能となり、 変数名 〔A〕 によって示されるデータの格納領 域へのデータ , 1 0 ' の格納を制御部に依頼する。 このとき、 I M のア ド レス 2のセル、 及び DMのア ドレス く 1〉、 く 3〉 の 2つのセ ルの書き込みは無効とされる。
(Π -3) 通信実行部
プロセッサ要素の通信実行部は、 データ能動に基ずきバケツ ト通信 網を通じての P E相互間のデータ通信を実行するようになっている。 この通信実行部は、 次に述べるデータ転送制御用メモ リを具備して おり、 このデータ転送制御用メモリは転送の対象である変数名と宛先 である P Eのァ ドレスを記億しておき、 上記変数名に対応する変数デ —タが届けられ次第その宛先への送信を可能にしている。
第 6図は、 データ転送制裨用メモリ (以下では TCMで示す) の詳 細な構成を示す説明図である。 TCM5 i は 5 1 i、 5 2 i〜の各セ ルから構成されており、 そのそれぞれのセルは宛先の檷 5 1 1 i、 5 21 i〜、 ¾送変数名の栅 5 1 2 i、 522 i〜、 転送データの獮 5 1 3 i、 523 i ~ 及び制御ブ イ 一ル ド 5 14 i、 5 24 i〜から 成っている。
TCMは、 転送変数名の欄を照合フィールドと して変数名の一致す るセルの転送データの檷にデータの書き込みを行うような連想記憶機 能を有する。
TCMの制禅ブイ一ルドは、 各々のセルについて転送変数名の横、 輊送データの樹の書き込みの有無などの制御情報等の格納域である。 次に、 通信実行部の動作を説明する。
本発明システムでは、 上記 T C Mの使用されていないセルを確保し、 その転送変数名の檷と宛先の欄にそれぞれ制御部から引き渡された転 送の対象である変数名と宛先である PEのア ドレスを書き込むことに より、 P E相互間のデータ転送がデータ躯動に基ずき実行されるよう に設定できるようになつている。
転送変数名に対応する ¾送データは、 上記の設定以後に変数名とと もに非同期に通信実行部に届けられるようになつている。 転送データ が変数名とともに届けられると、 TCMにおいて連想記億機能を利用 して変数名の一致するセルの転送チ'一タの欐に変数データの書き込み が行われる。
T C Mにおいて、 転送データの書き込みが終了したセルの内容は順 次バケツ ト通信網に送出される。 このとき送出されるパケッ トの内容 を保持しているセルは開放される。 本実施例では、 同じ P Eの演算実行部にデータ躯動に基ずき変数デ ータを転送する場合にも、 通信実行部からバケツ ト通信網を通じて行 われるものとする。
(m) グロ一バル制御機構
グローバル制御機構は全ての P Eからの制御情報を統合して C Pに 提示あるいは通知する機能を有する。
多数の P Eを具備する本発明の計算機システムでは、 グロ一バル制 御機構は複数の制御装置を階層状に接続することによって、 各々の制 御装置に直接接続される P Eあるいは制御装置の数を限定した構成と することができる。 本実施例では簡単のため複数のク ラスタ制御装置 (以後 C CUと呼ぶ) 28 i 〜28m と 1つのグローバル制御装置 ( 以後 G CUと呼ぶ) 29から成る 2階層の制御機構となっており、 各 々の P Eがいずれかの C C Uに直接接続され、 全ての CCUが G CU に直接接続されている構成となっているものとする。
各々の P Eは直接接続されている C C Uに、 実行制御用メモリに書 き込まれている活動番号の下限を常時提示しており、 各々の C CUは 直接接続されているすべての P Eから提示されている活動番号の下限 の中での下限を G CUに常時提示しており、 G CUはすべての CCU から提示されている活動番号の下限の中での下限を C Pに常時提示し ている。 こう して、 C Pは全 P Eを通じての実行待ちあるいは実行中 であるプログラム文の活動番号の下限を知ることができるようになつ ている。
また、 各々の P Eにおいて、 実行制御用メモリ、 データ転送制裨用 メモ リ、 連想記憶機能付デ一タ メモ リ、 チ'一タ メ モ リ、 イ ンス ト ラク シヨンメモリのいずれかが溢れそう になるとグロ一バル制御機構を通 じて C Pに通知され、 C Pは P Eの実行部を設定するために命令を流 すことを中断するようになっている。 上記の条件が解消されると再び P Eからグローバル制御機構を通じて C Pに通知され、 C Pは P Eの 実行部の設定の再開が可能となる。 なお、 グロ一バル制御機構は上述の制御情報に限らず様々な制御情 報を統合して C Pに提示あるいは通知するために用いることが可能で ある。 本実旄例の発明システムの動作を疎行列とべク タの積を例にと り具 体的に説明しょう。
行列が疎である場合は、 行と列の各々をッリ一構造で表現すること によって、 記億効率をよくすることができる。 すなわち、 行及び列の 各々についてル一 トを 1つずつ設け、 このル一 トに零でない行列要素 に対応するリーフをポインタで連結したツリー構造を考える。 本実施 例ではバイナリ · ツリーを用いるものと し、 2つ以上のリーフをルー トに連結するためにファンアウ トノードが必要となる。
ツリーを構成するノ一 ド每に 1つの P Eの口一カルメモリの一定の 領域を割り当てることにし、 このそれぞれの領域をレコ一 ドと呼ぶこ とにする。 ここでは箇単のため、 ノー ドの総数より多数のプロセッサ 要素が設けられているものと し、 1つの P Eの口一カルメモリには高 々 1つのレコードしか格納されていないものとする (口一カルメモリ に複数のレコー ドが格納されている場合への拡張は容易にできる) 。 ルー ト、 リーフ、 ファンアウ トノードに対応するレコー ドをそれぞ れル一 トレコ一 ド、 リーフ レコー ド、 ファンアウ トレコー ドと呼び、 ルー トからリーフに向かうポインタを順方向のポインタ、 リーフから ルー トに向かうポインタをバックポインタと呼ぶことにすると、 様々 なデータと共に、 ル一トレコー ドには高々 2つの順方向のポインタ、 リーフ レコー ドにはバックポインタ 1つ、 ファンアウ ト レコー ドには 順方向のポインタ 2つとバックポイ ンタ 1つが記入されている。
ッリ一構造で表現された行列に右から列べク タを掛けるためには、 まず列のツリーを通じてそれぞれのベク タ要素を対応する列のすべて の要素に分配し、 ベクタ要素と行列要素の乗算を行い、 行のツリーを 使って乗算の結果を集計すればよい。
具体的に、 第 8図に示される小さな疎行列とベク タの積を計算する ことを考えよう。 疎行列のツリー表現を第 9図に示す。 C 1〜C4は それぞれ列 1 ~4に対応して設けられたル一 ト、 R 1 ~R4はそれぞ れ行 1〜4に対応して設けられたル一 ト、 C3aと R2aはフ ァ ンァゥ ト ノ ー ド、 a H ~ a 44は行列要素に対応する リーフを表し ( a i jは i 行 j列の行列要素に対応する) 、 以上のいずれにもレコー ドが 1つずつ 割り当てられている。 以下では例えば、 〔 C 1〕 でノー ド C 1に対応 する レコー ドを、 〔C 1〕 , でレコー ド 〔C 1〕 内の k番目の語をデ —タの格納域とする変数名を表し、 P E 〔C 1〕 でレコー ド 〔C 1〕 が格納されている口一カルメモリを具備する P Eを表すものとする。 また、 それぞれのレコー ドにおいて、 1番目の語はそのレコー ドが 使用中であるか使用されていないかの識別、 使用中であるレコー ドに ついてはルー ト/ファンァゥ ト Zリーフの間の識別、 使用されるポィ ンタの種類と数の表示、 ル一 ト レコー ドあるいはファンァゥ ト レコ一 ドにおいては行あるいは列のいずれに関するものであるのかの識別な どのための情報の格納域、 2〜4番目の語はポインタの格納域、 5番 目以降の語はデータの本体の格納域あるいは作業領域と して使用され るものとする。
さて、 第 8図に示される計算を実行させるために、 C Pが S I MD 方式の原理に基ずき P E群に向け命令を流し、 各々の P Eにおいて制 御部がレコー ドの 1番目の語の内容に応じて命令を処理することによ り、 実行部を次のように設定することができる。
P E 〔C 1〕
③ S E ND 〔 C 1〕 2 T O P E C a n ]
S E D 〔 C 1〕 2 TO P E 〔 a 2】〕
P E 〔C 2〕
S E ND 〔 C 2〕 = 0 TO P E 〔 a 2 -〕
P E 〔 C 3〕
S E ND 〔 C 3〕 T O P E 〔C3a〕 © S E ND C 3 ] t = - 1 T O P E 〔 a 〕
P E 〔C 4〕
Φ S E D C 4〕 1 TO P E 〔 a "〕
P E 〔C3a〕
② C A L C C3a〕 〔 C 3〕 ,
S E D C3a〕 ? T O P E 〔 a 23〕 ⑥ S E ND C3a〕 k ― ? TO P E ( a 33 ]
P E Ca n]
① C A L C a 1 l k 2 * 〔 C 1
S E D a ii t ? T O P E 〔R 1〕
P E C a 2 i
Φ C A L C a 21 ) k 3 * 〔C 1〕 t
S E ND a 2 I- ? T O P E 〔R2a〕
P E 〔 a 22
① C A L C a 22] k 4 * 〔C 2〕
⑩ S E ND a 22] I- ? TO P E 〔R2a〕
P E C a 2;
Φ C A L C a 23) 1. 5 * 〔C3a〕 v
Φ S E D a 23〕 I- ? T O P E 〔 R 2〕
P E 〔 a 3:
Φ C A L C a ? : k 6 * 〔C3a〕 t
Φ S E ND a ssf ? T O P E 〔R 3〕
P E ( a 4:
Φ C A L C a 3} t 7 * 〔C 3〕 t
£o. S E D a 4 3 1. ? T O P E 〔R 4〕
P E 〔 a "〕
C A L C 〔 a "〕 t 8 * 〔 C 4〕 , S E ND 〔 a "〕 = T O P E 〔 R 4〕
P E 〔 R 2a〕
Φ C A L C 〔 R 2a〕
'ίΐ' S E ND 〔 R 2a〕 = ? T O P E 〔R 2〕
P E 〔 R 1〕
C A L C 〔 R 1〕 = 〔 a 1 l〕 i
P E 〔 R 2〕
⑨ C A L C 〔 R 2〕 = 〔 R 2a〕 t + 〔 a 〕 ,
P E 〔 R 3〕
' C A L C 〔 R 3〕 = 〔 a 〕 .
P E 〔 R 4〕
⑨ C A L C 〔 R 4〕 = a a 3 i + [ a 443 > ここで、 k≥ 5であり、 〔 C 1〕 t 〜 〔 C 4〕 t には、 順に 2、 0、 ー 1、 1 というデータがあ らかじめ書き込まれているものとする。 ま た、 ① 〜 ® は C Pの指示に従い設定される順序であ り、 必ずしもこ の通りにする必要はないが、 でたらめにやると計算の整合性が損なわ れてしまう。 同じ番号が付いているものは S I MD方式の原理によつ て同時に設定される。 ①の設定では各々のリーフ レコ一 ドに書き込ま れている行列要素の値を読み出して用いている。
ここでは説明のため、 演算実行部および通信実行部の設定内容をそ れぞれ CA L C、 S E NDに続く数式等で記述したが、 実際には逆ボ —ラン ド記法を含むハー ドウェアの仕様に従って行われる。
③、 ④の設定内容は、 データが揃っているので、 設定の直後に S E NDで示されるデータ転送がバケツ ト通信網を通じて実行される。 各 々のバケツ トが宛先である P Eに到着すると、 ①、 ②の C A L Cに続 く計算が一部を除き順次実行可能となり、 その計算が終了するとその 計算結果がそれぞれのレコー ドの k番目の語に格納されると共に、 同 じ P Eにおいて S E N Dで示されるデータ転送が実行可能となる。 以後同様に、 ⑤〜⑪の設定内容も必要なデータが揃い次第、 順次実 行され、 最終的には各々のレコー ドに
〔C3a〕 = 一 1、 C a n] t 二 4、 C a 2 l ] t 6、
C a≥≥] I = 0、 L a 2 s3 = ― ε, C a ss] t ― 6、
C a 4 :0 t = 一 7、 L a 44 ] = 8、 〔R2a〕 t 6、
〔R 1 = 4、 〔R 2〕 ^ = 1、 〔R 3〕 t - 6、
〔R 4〕 t = 1
のようにデータが書き込まれる。 この 〔R 1〕 〔 R 4〕 の書き 込みの内容が第 8図に示された計算の結果となる。 産業上の利用可能性
以上のように、 本発明の方式によれば、 複数の P Eを並列に動作さ せることによって効率的な計算の実行が可能である。
その上、 各々の P Eはそれぞれ独立にデ一タ躯動による動作を行う ので P E群の制御構造が単純であり、 プログラ ミ ングの際にこの制御 構造をさほど意裁する必要がないという利点がある。

Claims

請 求 の 範 囲
1 . 制御プロセッサ ( 1 ) と、 パケッ ト通信網 ( 2 2 ) を通じて相互 にデータ転送の可能な複数のプロセッサ要素 ( 3 ! 〜 3 ,, ) とを具 備した電子計算機システムであって、
上記各々のプロセッサ要素 ( 3 〜 3 n ) は、 S I MD (Single Instruction stream Multiple Data stream ) -力式の原 に ずき上 記制御プロセッサ ( 1 ) から送られて く る命令の流れを実行する機 能を有する制御部 ( 3 0 i ) と、 データ駆動に基ずき演算及びパケ ッ ト通信網 ( 2 2 ) を通じてのプロセッサ要素 ( 3 , - 3 n ) 相互 間のデータ転送を実行する機能を有する実行部 ( 3 1 i ) とを具備 して構成され、
上記制御プロセッサ ( 1 ) がプロセッサ要素 ( 3, - 3 n ) の制 御部 ( 3 0 i ) に命令を流して実行部 ( 3 1 i ) でデータ躯動に基 ずき実行すべき内容を設定できるような構成となっており、
上記実行部 ( 3 1 i ) の設定と並行して実行部 ( 3 1 i ) におけ るデータ躯動に基ずく動作が行われるよう になつている電子計算機 システム。
2. 請求項 1記載の電子計算機システムにおいて、
プロセ ッサ要素 ( 3 , 〜 3 r, ) の実行部 ( 3 1 i ) が、 データ铌動 に基ずきプログラム文で示される変数データの計算を実行する機能 と、 転送の対象である変数名に対応する変数データが得られ次第変 数名と変数データを含むパケッ トを宛先のプロセッサ要素 ( 3 , 〜 3 n ) の実行部 ( 3 1 i ) に向けて送出する機能とを有する構成と なっている電子計算機システム。
3. 各々のセルに変数名と変数データが書き込まれるよう になつてお り変数名を照合してその一致するセルに変数データが書き込めるよ うな連想記憶機能を有する連想記憶機能付デ一タメモリ ( 7 i ) と、 計算結果の格納先を表す変数名、 即値データ、 及び演算結果が書 き込まれるよう になつているデータメモリ ( 8 i ) と、 スタ ックメモリ ( 6 i ) と、
各々のセルに個々の演算の内容が書き込まれるよう になつている インス トラク ショ ンメモリ ( 9 i ) と、
オペラン ドデータが全て連想記憶機能付デ一タメモリ ( 7 i ) あ るいはデータメモリ (8 i ) に書き込み済みとなり実行可能となつ た演算内容の書き込まれているインス トラク シヨ ンメモリ ( 9 i ) のセルが検出され次第、 そのセルに示される演算を実行するように なっている演算ユニッ ト (39 i ) とを具備し、
計算結果の格納先を示す変数名を表すプログラム要素が引き渡さ れた場合には、
そのプログラム要素にデータメモリ ( 8 i ) の使用されていないセ ルを割り当て計算結果の格納先を示す変数名を書き込むと共に、 そ の書き込みの行われたデ一タメモリ (8 i ) のセルのア ドレスをス タックメモリ ( 6 i ) に押し込み、
オペランドの変数名を表すプログラム要素が引き渡された場合に は、
そのプログラム要素に連想記憶機能付デ一タメモリ ( 7 i ) の使用 されていないセルを割り当てオペラン ドの変数名を書き込むと共に、 その書き込みの行われた連想記憶機能付チ'一タメモリ ( 7 i ) のセ ルのア ドレスをスタックメモリ ( 6 i ) に押し込み、
即値データを表すプロダラム要素が引き渡された場合には、 そのプログラム要素にデータメモリ ( 8 i ) の使用されていないセ ルを割り当て即値データを書き込むと共に、 その書き込みの行われ たデ一タメモリ ( 8 i ) のセルのアドレスをスタ ックメモリ ( 6 i) に押し込み、
演算結果を生成する演算子を表すプログラム要素が引き渡された 場合には、
演算結果の格納先としてチ'一タメモリ (8 i ) の使用されていない セルを割り当てると共に、 インス トラク ションメモリ ( 9 i ) の使 用されていないセルを確保し、 演算コー ドと、 スタ ックメモリ ( 6 i ) から演算に用いられるオペラン ドの個数だけ取り 出したァ ドレ スと、 上記演算結果の格納先と して割り 当て られたデ一タメモリ ( 8 i ) のセルのア ドレスを書き込み、 その演算結果の格納先と して 割り当てられたデ一タメモリ ( 8 i ) のセルのア ドレスをスタ ック メモリ ( 6 i ) に押し込み、
演算結果を生成しない演算子を表すプロ グラム要素が引き渡され た場合には、
イ ンス ト ラク ショ ンメモ リ ( 9 i ) の使用されていないセルを確保 し、 演算コー ドと、 スタ ックメモリ ( 6 i ) から演算に用いられる オペラン ドの個数だけ取り出したァ ド レスを書き込むことによって、 プログラム文で示される計算の内容を、 データ躯動に基ずき実行さ れるよう設定するようにしたプロセッサ要素 ( 3 , 〜 3 n :) 。
4. 請求項 1記載の電子計算機システムにおいて、
各々のプロセッサ要素 ( 3 i 〜 3 r, ) が具備する口一カルメモリ ( 3 5 1 ) に、 実行部 ( 3 1 i ) を設定するための命令及び設定す べき内容を格納しておき、
制御プロセッサ ( 1 ) が各々のプロセッサ要素 ( 3 , - 3 π ) の 口一カルメモリ ( 3 5 i ) にある内容を実行させるような命令を流 すことによって、 実行部 ( 3 1 i ) をデータ躯動に基ずき動作する よう設定する方法。
5. 請求項 1記載の電子計算機システムにおいて、
制御プロセッサ ( 1 ) がプロセッサ要素 ( 3 , 〜 3 n ) の実行部 の設定のために制御部 ( 3 0 i ) に命令を流す際に、 1 まとま りの 設定内容每に活動番号を与え、
各々のプロセッサ要素 ( 3 , 〜 3 n ) が実行部 ( 3 1 i ) で実行 待ちあるいは実行中である設定内容の活動番号の限度を提示し、 制御プロセ ッサ ( 1 ) がすべてのプロセッサ要素 ( 3 , 〜 3 r, ) にわたつての実行部 ( 3 1 i ) で実行待ちあるいは実行中である設 定内容の活動番号の限度に応じてプロセッサ要素 ( 3 , - 3 r, ) の 制御部 ( 3 0 i ) に送る命令の流れを制御する制御方式。
6. 請求項 3記載の制御方式を実現するため、
階層状に接続された複数の制御装置を具備し、
各々のプロセッサ要素 ( 3 ! 〜 3「, ) は最下層のいずれかの制御 装置に実行部 (3 1 i ) で実行待ちあるいは実行中である設定内容 の活動番号の限度を提示し、
各々の制御装置は下層につながるすべてのプロセッサ要素 ( 3 ! - 3 n ) にわたつての実行待ちあるいは実行中である設定内容の活 動番号の限度をより上層の制御装置に提示することによって、 最上位の制御装置が制裨プロセッサ ( 1 ) にすベてのプロセッサ 要素 ( 3! ~ 3 n ) にわたつての実行待ちあるいは実行中である設 定内容の活動番号の限度を提示するようにした制御方式。
補正された請求の範囲
[1992年 6月 16日(16.06.92)国際事務局受理;出顧当初の鏞求の範囲 1,2,4および 6は補正さ れた;新しい講求の範囲 7および 8が加わった;他の請求の範囲は変更なし。 (4頁) 1 丄. (補正後) 制御プロセッサ ( 1 ) と、 パケッ ト通信網 ( 2 2 ) を 通じて相互にデータ転送の可能な複数のプロセッサ要素 ( 3 ,〜 3 n) とを具備した電子計算機システムであって、
上記各々のプロセッサ要素 ( 3 , 〜3 Π ) は、 S I MD (Single Instruction stream uJ Li p] e Da La stream)方 5^の原理に ずき上 記制御プロセッサ ( 1 ) から送られて く る命令の流れを実行する機 能を有する制御部 ( 3 0 i ) と、 チ'一タ能動に基ずき演算及びパケ ッ ト通信網 ( 2 2 ) を通じてのプロセッサ要素 ( 3 , - 3 r, ) 相互 間のデータ転送を実行する機能を有する実行部 ( 3 1 i ) と、 u - カルメモリ ( 3 5 i ) とを具備して構成され.
上記制御プロセッサ ( 1 ) がプロセッサ要素 ( 3 , - 3 n ) の制 御部 ( 3 0 i ) に命令を流して実行部 ( 3 1 i ) でデータ鹿動に基 ずき実行されるべき内容を設定できるよう な構成となっており、 上記実行部 ( 3 1 i ) の設定と並行して実行部 ( 3 1 i ) におけ るデータ鹿動に基ずく動作が行われるよう になつている電子計算機 システム。
2. (補正後) 請求項 1記載の電子計算機システムにおいて、
各々のプロセッサ窭素 ( 3 1 〜3 π ) が- データ鹿動に基ずきプ ログラム文で示される変数データの計算を実行する機能と、 ¾送の 対象である変数名に対応する変数データが得られ次第変数名と変数 データを含むバケツ トを宛先のプロセッサ藜素 ( 3 1 - 3 η ) に向 il 送出する機能とを有する構成となっている電子計算機システム。
3. 各々のセルに変数名と変数テ'一タが害き込まれるようになつてお り変数名を照合してその一致するセルに変数データが書き込めるよ う な連想記惊機能を有する連想記惊機能付チ'一タメモリ ( 7 i ) と、 計算結果の格納先を表す変数名、 即値データ、 及び演算結果が書 き込まれるよう になつているデータメモリ ( 8 i ) と、
ス タ ッ ク メ モ リ ( 6 1 ) と、 各々のセルに涸々の演算の内容が書き込まれるよ う になつている インス トラクショ ンメモリ ( S i ) と、
オペラン ドデータが全て連想記億機能付デ一タメモリ ( 7 i ) あ るいはデータメモリ (8 i ) に書き込み済みとなり実行可能となつ た演算内容の書き込まれているインス トラク シヨンメモリ (9 i ) のセルが検出され次第、 そのセルに示される演算を実行するように なっている演算ユニッ ト (39 i ) とを具備し、
計算結果の格納先を示す変数名を表すプログラム要素が引き渡さ れた場合には、
そのプログラム要素にデ一タメモリ (8 i ) の使用されていないセ ルを割り当て計算結果の格鈉先を示す変数名を書き込むと共に、 そ の香き込みの行われたデ—タメモリ (8 i ) のセルのア ドレスをス タックメモリ ( 6 i ) に押し込み、
オペラン ドの変数名を表すプログラム要素が引き渡された場合に は、
そのプロダラム要素に連想記億機能付データメモリ ( 7 i ) の使用 されていないセルを割り当てオペラン ドの変数名を害き込むと共に、 その香き込みの行われた連想記憶機能付データメモ リ ( 7 i ) のセ ルのア ドレスをスタ ックメモ リ ( 6 i ) に押し込み、
即植デ一タを表すプログラム要素が引き渡された場合には、 そのプログラム要素にデ一タメモリ (8 i ) の使用されていないセ ルを割り当て即値データを書き込むと共に、 その書き込みの行われ たデータメモ リ (8 i ) のセルのア ドレスをスタ ック メモ リ ( 6 i) に押し込み、
演算結果を生成する演算子を表すプログラム要素が引き渡された 場合には、
演算結果の格納先と してデ一タメモリ ( 8 i ) の使用されていない セルを割り当てると共に、 インス トラク ションメモリ ( 9 i ) の使 用されていないセルを確保し、 演算コー ドと、 スタックメモリ ( 6 i ) から演算に用いられるオペラン ドの假数だけ取り出したァ ドレ スと、 上記演算結果の格納先として割り当てられたデータメモリ ( 8 i ) のセルのア ト'レスを書き込み、 その演算結果の格納先と して 割り当てられたデ一タメモリ ( 8 i ) のセルのア ドレスをスタ ック メモリ ( 6 i ) に押し込み、
演算結果を生成しない演算子を表すプログラム要素が引き渡され た場合には、
イ ンス ト ラ ク ショ ンメモ リ ( 9 i ) の使用されていないセルを確保 し、 演算コー ドと、 スタ ックメモリ ( 6 i ) から演算に用いられる オペラン ドの饀数だけ取り出したア ドレスを書き込むことによって、 プログラム文で示される計算の内容を、 データ駆動に基ずき実行さ れるよう設定するようにしたプロセッサ要素 ( 3 , 〜 3 n :) 。
4. (補正後) 請求項 1記載の電子計算機システムにおいて、
各々のプロセッサ要素 ( 3 , 〜 3 n ;) が具備する口一カルメモリ ( 3 5 i ) に、 実行部 ( 3 1 i ) を設定するための命令シーケンス を格納しておき、
制御プロセ ッサ ( 1 ) が各々のプロセ ッサ要素 ( 3〗 - 3 π ) の 口一カルメモ リ ( 3 5 i ) に記憶されている侖令シーケンスを荬行 させるような命令を流すことによって、 実行部 ( 3 1 i ) をデータ 能動に基ずき動作するよう設定する方法。
5. 請求項 1記載の電子計算機システムにおいて、
制御プロセッサ ( 1 ) がプロセッサ要素 ( 3 , 〜 3 n ) の実行部 の設定のために制禅部 ( 3 0 i ) に命令を流す際に、 1 まとま りの 設定内容毎に活動番号を与え、
各々のプロセッサ要素 ( 3 , 〜 3 Π ) が実行部 ( 3 1 i ) で実行 待ちあるいは実行中である設定内容の活動番号の限度を提示し、 制捭プロセッサ ( 1 ) がすべてのプロセッサ要素 ( 3 , - 3 n ) にわたつての実行部 ( 3 1 i ) で実行待ちあるいは実行中である設 定内容の活動番号の限度に応じてプロセッサ要素 ( 3 , - 3 n ) の 制御部 ( 3 0 i ) に送る命令の流れを制御する制捭方式。
6. (補正後) 階層状に接続された筏数の制御装置を具備し、 各々のプロセッサ要素 (3 ! 〜 3,, ) は最下層のいずれかの制御 装置に実行部 ( 3 1 i ) で実行待ちあるいは実行中である設定内容 の活動番号の限度を提示し、
各々の制禅装置は下層につながるすべてのプロセッサ要素 (3 , 〜 3 η ) にわたつての実行待ちあるいは実行中である設定内容の活 動番号の限度をより上層の制御装置に^ _L、
最上位の制御装置が制禅プロセッサ ( 1 ) にすベてのプロセッサ 要素 (3 , 〜 3 Π ) にわたつての実行待ちあるいは実行中である設 定内容の活動番号の限度を提^するようにして請求項 5記載の制御 方式を実現した電子計算機システム。
7. (追加) 請求頊 2記載の電子計箕機シスチムにおいて、
プロセッサ要素 (3 ι 〜 3 Π ) の制御部 ( 30 i ) が、 実行部 (
3 1 ί ) にプログラム文を構成するプログラム要素を 1つずつ引き 渡して、 データ能動に基ずき実行されるべき計算の内容を設定する ようになっている電子計算機システム。
8. (追加) 譜求堵 2 載の電子計算機システムにおいて- 各々のプロセッサ耍泰 ( 31 〜 3 η ) が. 卖行都 ( 3 1 i ) で卖 行待ちあるいは実行中であるプログラム文中に示される計算結果の 納先を す 数名を記僚する 想 憶 能を有する赛行制御 ffiメ モリ (4 i ) を县備し、
卖行部でギータ転 が卖行されるよろに設定しょう とする ISに、 上富 H卖行制御用メモリ (4 : ) において連想記憶機能により転送の 対象である恋数名が照合され、
同じ変数名が書き込まれていない場合には、 即座に口一カルメモリ (35 1 ) にアクセスしデータ転送を実行し、
同じ変数名が耆き込まれている場合には、 実行部 (3 1 j ) でその 数に閎する計算が終了し次第テ'ータ転送を実行するよう設定する よ になつている電子計算機システム。
PCT/JP1991/000296 1991-03-05 1991-03-05 Electronic computer system and processor elements used for this system WO1992015960A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP1991/000296 WO1992015960A1 (en) 1991-03-05 1991-03-05 Electronic computer system and processor elements used for this system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1991/000296 WO1992015960A1 (en) 1991-03-05 1991-03-05 Electronic computer system and processor elements used for this system

Publications (1)

Publication Number Publication Date
WO1992015960A1 true WO1992015960A1 (en) 1992-09-17

Family

ID=14014307

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1991/000296 WO1992015960A1 (en) 1991-03-05 1991-03-05 Electronic computer system and processor elements used for this system

Country Status (1)

Country Link
WO (1) WO1992015960A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2374443B (en) * 2001-02-14 2005-06-08 Clearspeed Technology Ltd Data processing architectures
GB2410350A (en) * 2001-02-14 2005-07-27 Clearspeed Technology Plc Data processing architectures

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01106229A (ja) * 1987-10-20 1989-04-24 Mitsubishi Electric Corp データ駆動形計算機
JPH01195540A (ja) * 1988-01-29 1989-08-07 Sharp Corp データのロードおよびダンプ方式
JPH01211126A (ja) * 1988-02-19 1989-08-24 Sanyo Electric Co Ltd データ駆動型データ処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01106229A (ja) * 1987-10-20 1989-04-24 Mitsubishi Electric Corp データ駆動形計算機
JPH01195540A (ja) * 1988-01-29 1989-08-07 Sharp Corp データのロードおよびダンプ方式
JPH01211126A (ja) * 1988-02-19 1989-08-24 Sanyo Electric Co Ltd データ駆動型データ処理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2374443B (en) * 2001-02-14 2005-06-08 Clearspeed Technology Ltd Data processing architectures
GB2410350A (en) * 2001-02-14 2005-07-27 Clearspeed Technology Plc Data processing architectures
GB2410350B (en) * 2001-02-14 2005-11-09 Clearspeed Technology Plc Data processing architectures
US7856543B2 (en) 2001-02-14 2010-12-21 Rambus Inc. Data processing architectures for packet handling wherein batches of data packets of unpredictable size are distributed across processing elements arranged in a SIMD array operable to process different respective packet protocols at once while executing a single common instruction stream
US7917727B2 (en) 2001-02-14 2011-03-29 Rambus, Inc. Data processing architectures for packet handling using a SIMD array
US8127112B2 (en) 2001-02-14 2012-02-28 Rambus Inc. SIMD array operable to process different respective packet protocols simultaneously while executing a single common instruction stream

Similar Documents

Publication Publication Date Title
CN1311333C (zh) 用于串行互斥体的方法与装置
US5325464A (en) Pyramid learning architecture neurocomputer
Siegel et al. Using the multistage cube network topology in parallel supercomputers
Tilborg MICROS, a distributed operating system for MICRONET, a reconfigurable network computer
US20080141220A1 (en) Robot Control Software Framework in Open Distributed Process Architecture
WO1991018351A1 (en) Pyramid learning architecture neurocomputer
US20190130270A1 (en) Tensor manipulation within a reconfigurable fabric using pointers
WO2001088712A2 (en) Distributed processing multi-processor computer
US5333320A (en) Electronic computer system and processor element used with the computer system
JPS63503015A (ja) デ−タ処理コンピュ−タシステム
WO1992015960A1 (en) Electronic computer system and processor elements used for this system
US7441245B2 (en) Phasing for a multi-threaded network processor
JP5031032B2 (ja) プログラムコード変換に関してプロセスファイルシステムを管理する方法及び装置
Odijk The DOOM system and its applications: A survey of Esprit 415 subproject A, Philips Research Laboratories
WO2019113021A1 (en) Tensor manipulation within a reconfigurable fabric using pointers
JPH09330243A (ja) 計算機システム
WO2006131297A1 (en) Data flow-based information processing system and method
JP2668156B2 (ja) データ駆動型情報処理装置の実行制御方法
Erman et al. System organizations for speech understanding: Implications of network and multiprocessor computer architectures for AI
Kaplan The LDF 100: A large grain dataflow parallel processor
Ostheimer Parallel Functional Computation on STAR: DUST—
Serbedzija et al. High-level real-time distributed programming
Ha et al. Design and Implementation of a Massively Parallel Multithreaded Architecture: DAVRID
Glauert Parallel Implementation through Object Graph Rewriting
Balou et al. The design and implementation of VOOM: a parallel virtual Object Oriented machine

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载