JPH0232648B2 - - Google Patents
Info
- Publication number
- JPH0232648B2 JPH0232648B2 JP58093596A JP9359683A JPH0232648B2 JP H0232648 B2 JPH0232648 B2 JP H0232648B2 JP 58093596 A JP58093596 A JP 58093596A JP 9359683 A JP9359683 A JP 9359683A JP H0232648 B2 JPH0232648 B2 JP H0232648B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- signal
- instruction
- hardware
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】
発明の技術分野
本発明は情報処理装置に関し、使用するソフト
ウエアの性質に応じて自動的にハードウエアない
しフアームウエアの構造を変更するようにしたも
のである。DETAILED DESCRIPTION OF THE INVENTION Technical Field of the Invention The present invention relates to an information processing device that automatically changes the structure of hardware or firmware depending on the nature of the software used.
従来技術と問題点
従来、計算機の設計は、機能拡張等は別とし
て、定められたハードウエアの構成ないし論理に
従つて設計されている。従つて、各種のプログラ
ムを流した場合、そのプログラムの内容により計
算機の性能が大きく変わる。例えば、外部メモリ
のアクセス頻度が高い事務処理プログラムと、内
部レジスタを多く使用する科学技術用プログラム
とでは、使用する計算機の構造例えばデータレジ
スタ、命令レジスタのどちらが多く確保されてい
るか等により性能の差が大きくでる。Prior Art and Problems Conventionally, computers have been designed according to a predetermined hardware configuration or logic, apart from functional expansion. Therefore, when various programs are run, the performance of the computer changes greatly depending on the content of the programs. For example, there is a difference in performance between an office processing program that frequently accesses external memory and a science and technology program that uses many internal registers, depending on the structure of the computer used, such as whether more data registers or instruction registers are reserved. appears large.
このため汎用計算機においてどのようなプログ
ラムに対しても性能が上がるように設計しようと
しても、上述した理由からこれは極めて難しい。
そこで従来は、(1)構成制御によるシステムの設
定、(2)OPSR(Operation Status Register)によ
るハードウエア内部の論理変更等の対策が考えら
れているが、前者はシステム設置時に決定されて
しまい、後者は主にオペレータがOPSRを変更す
るものであるためオペレータの負担を重くする。
また両者ともプログラムが変わつた時(TSS等
で)に対する柔軟性は全くない。 For this reason, even if you try to design any program to improve its performance on a general-purpose computer, it is extremely difficult for the reasons mentioned above.
Conventionally, countermeasures have been considered, such as (1) system settings using configuration control, and (2) changing the internal logic of the hardware using OPSR (Operation Status Register), but the former is determined at the time of system installation. In the latter case, the operator mainly changes the OPSR, which places a heavy burden on the operator.
Also, both have no flexibility when the program changes (such as TSS).
発明の目的
本発明は、上述の如き問題点を解決するため
に、計算機自身がソフトウエアつまり各種の命令
の集合体に適するように自動的にハードウエアな
いしフアームウエアの構造(構成ないし論理)を
変更できるようにするものである。Purpose of the Invention In order to solve the above-mentioned problems, the present invention automatically changes the structure (configuration or logic) of hardware or firmware so that the computer itself is suitable for software, that is, a collection of various instructions. It allows you to change it.
発明の構成
本発明は、ハードウエアないしフアームウエア
を有する情報処理装置に、現在実行中のソフトウ
エアの性質を判断する制御部と、その判断結果に
応じてハードウエアまたはフアームウエアの構成
ないし論理を該ソフトウエアに適合する形態に変
更する機能とを設け、該制御部は所定期間内に投
入あるいは実行された1種もしくは複数種の命令
タイプを記録し、その結果から、または、所定期
間内のハードウエアの使用状況を記録し、その結
果から前記判断を行なうようにしたことを特徴と
するが、以下図面を参照しながらこれを詳細に説
明する。Structure of the Invention The present invention provides an information processing device having hardware or firmware, which includes a control unit that determines the nature of software currently being executed, and a control unit that determines the configuration or logic of the hardware or firmware in accordance with the determination result. The control unit records one or more types of commands input or executed within a predetermined period, and from the results, or The present invention is characterized in that the usage status of the hardware is recorded and the above-mentioned judgment is made based on the results. This will be explained in detail below with reference to the drawings.
発明の実施例
ベクトルプロセツサのように高速化を図る計算
機では、複数の命令及びその命令で処理する複数
の外部データをバツフアリングしておき、演算機
等の状態によつてプログラム上後続する命令を先
行する命令より先に実行することがある(命令の
追い越し)。そのために、複数の命令及び外部デ
ータをそれぞれ命令保持部(iR)とデータ保持
部(DR)に取り込んで命令の発信順序及びタイ
ミングを制御する。Embodiments of the Invention In a computer that aims to increase speed, such as a vector processor, multiple instructions and multiple external data processed by the instructions are buffered, and subsequent instructions in the program are changed depending on the state of the computer, etc. It may be executed before the preceding instruction (instruction overtaking). To this end, a plurality of instructions and external data are loaded into an instruction holding unit (iR) and a data holding unit (DR), respectively, and the order and timing of issuing instructions is controlled.
この一例として従来のベクトル命令制御装置
(VIu)を第1図に示す。この命令制御装置は命
令取込み回路1と命令発信回路2からなり、1つ
の命令に対しデータが2つずつ(フアーストとセ
カンド)入力されるものとする。3は外部メモ
リ、補助プロセツサ等の外部装置で命令及びデー
タを送出する。命令取込み回路1内の4はバツフ
アで、外部装置3からの命令及びデータをバツフ
アする。5はフラグ制御回路でデータの管理を行
なう。iR0〜3はインストラクシヨンレジスタ、
AR0〜3はデータアドレスレジスタ、DRFはフア
ーストデータレジスタ、DRSはセカンドデータレ
ジスタ、CLはクロツクである。またSELはセレ
クト回路、101は命令及びデータを伝えるバス
線、110はiROの命令で処理するデータを示す
アドレス線、111はデータレジスタDRのリー
ド(READ)アドレス線、112は発信された
命令で処理するデータの記憶場所を示すアドレス
線である。 As an example of this, a conventional vector instruction control device (VIu) is shown in FIG. It is assumed that this command control device consists of a command fetching circuit 1 and a command issuing circuit 2, and two pieces of data (first and second) are input for one command. 3 sends instructions and data to external devices such as external memory and auxiliary processors. A buffer 4 in the instruction fetching circuit 1 buffers instructions and data from the external device 3. A flag control circuit 5 manages data. iR 0 to 3 are instruction registers,
AR0-3 are data address registers, DRF is a first data register, DRS is a second data register, and CL is a clock. Also, SEL is a select circuit, 101 is a bus line that transmits instructions and data, 110 is an address line that indicates data to be processed by the iR O instruction, 111 is a read (READ) address line for data register DR, and 112 is an issued instruction This is an address line that indicates the storage location of data to be processed.
外部装置3からは命令、フアーストデータ、セ
カンドデータ(この繰り返し)の順に情報が送ら
れ、バツフア4に保持される。バツフア4からは
同様の順に情報が取り出され、クロツクCLO、
CIDF、CLDSが順にオンになると命令はインストラ
クシヨンレジスタiROへ、また2つのデータはそ
れぞれデータレジスタDRF、DRSにセツトされ
る。またクロツクCLOがオンになるとき、フラグ
制御回路5ではデータレジスタDRのアドレス
(図示の例では0〜3)のうち、フラグ(後述す
る)がオフになつているもののうちの1つを信号
機110を通してアドレスレジスタAROにセツト
する。アドレスレジスタAROの内容はその後クロ
ツクCLDF、DLDSがオンになる時に、それぞれデ
ータレジスタDRF、DRF、のライト(WRiTE)
アドレスとなる(信号線113)。命令発信回路
2では、インストラクシヨンレジスタiR1〜iR3
のどれかが空くと、クロツクCL1〜CL3のうち1
つがオンになり、対応するインストラクシヨンレ
ジスタとアドレスレジスタにそれぞれレジスタ
iRO、AROの内容を取り込む。また、演算装置
(後述する)は命令の前後関係などから発信すべ
き命令を決定し、セツト信号selにより、レジス
タiR1〜iR3の1つをセレクトし、演算装置に命令
を発信する。同時に対応するアドレスレジスタ
AR1〜AR3の1つを信号線112を通してフラグ
制御回路5に送る。フラグ制御回路5では、送ら
れてきたアドレス信号線111を通してデータレ
ジスタDRに伝え、2つのデータ1st、2ndを演算
装置へ送る。演算装置では、発信された命令及び
2つのデータを受けとつて処理を行なう。 Information is sent from the external device 3 in the order of command, first data, and second data (repetition of this), and is held in the buffer 4. Information is taken out from buffer 4 in the same order, and clocks C O ,
When CI DF and CL DS are turned on in sequence, the instruction is set to the instruction register iRO , and the two data are set to the data registers DRF and DRS, respectively. Furthermore, when the clock CLO is turned on, the flag control circuit 5 selects one of the addresses (0 to 3 in the illustrated example) of the data register DR whose flag (described later) is turned off. 110 to the address register ARO . The contents of the address register ARO are then written (WRiTE) to the data registers DRF and DRF , respectively, when the clocks CLDF and DLDS are turned on.
It becomes an address (signal line 113). In the instruction generation circuit 2, instruction registers iR1 to iR3
When one of the clocks becomes vacant, one of the clocks CL 1 to CL 3
is turned on, and the corresponding instruction register and address register are set to register.
Import the contents of iR O and AR O. Further, the arithmetic unit (described later) determines the command to be issued based on the context of the instructions, selects one of the registers iR 1 to iR 3 in response to the set signal sel, and transmits the command to the arithmetic unit. Simultaneously corresponding address register
One of AR 1 to AR 3 is sent to the flag control circuit 5 through the signal line 112. The flag control circuit 5 transmits the received data to the data register DR through the address signal line 111, and sends the two data 1st and 2nd to the arithmetic unit. The arithmetic unit receives the transmitted command and two pieces of data and processes them.
第2図はフラグ制御回路5の詳細図で、210
〜212は第1図の信号線110〜112に相当
する。230〜233が第1図のデータレジスタ
DRの各アドレス0〜3にあるデータの有効、無
効を示すフラグであり、セツト(S)/リセツト
(R)型のラツチを用いてある。SET FLAGは
第1図のクロツクCLOがオンになるとき同時にオ
ンになる信号で、フラグ230〜233のセツト
タイミングを決定する。START
iNSTRuCTioNは命令発信時に第1図の命令発
信回路2から送られてくる信号で、フラグ230
〜233のリセツトタイミングを決定する。22
2は信号線212上のアドレスをデコードしてど
のアドレスのフラグかを示すコーダ、221はフ
ラグの状態によつて空いているアドレスを示すセ
レクト回路、220はセレクトされたアドレスを
エンコードするエンコーダである。尚、セレクト
回路221の出力ALL BUSYは、全てのアドレ
スのデータが有効でそれ以上データを取り込めな
いことを示す信号である。またRARは信号線2
12(第1図の112)上の信号をラツチして信
号線211(第1図の111)の信号とし、これ
を第1図のデータレジスタDRに送るレジスタで
ある。 FIG. 2 is a detailed diagram of the flag control circuit 5.
212 correspond to the signal lines 110 to 112 in FIG. 230 to 233 are the data registers in Figure 1.
This flag indicates whether the data at each address 0 to 3 of the DR is valid or invalid, and uses a set (S)/reset (R) type latch. SET FLAG is a signal that turns on at the same time as the clock CLO in FIG. 1 turns on, and determines the timing at which flags 230 to 233 are set. START
iNSTRuCTioN is a signal sent from the command transmission circuit 2 shown in FIG.
-233 reset timing is determined. 22
2 is a coder that decodes the address on the signal line 212 and indicates which address the flag belongs to, 221 is a select circuit that indicates a vacant address depending on the state of the flag, and 220 is an encoder that encodes the selected address. . Note that the output ALL BUSY from the select circuit 221 is a signal indicating that data at all addresses are valid and no more data can be taken in. Also, RAR is signal line 2
This register latches the signal on signal line 211 (112 in FIG. 1) and sends it to the data register DR in FIG. 1.
動作を説明する。セレクト回路221により有
効でないデータ(すでに演算装置へ送出されたデ
ータ)のアドレス(フラグはリセツト状態)をセ
レクトし(値の小さいものを優先)、それをエン
コーダ220でコード化した後信号線210(第
1図の110)の信号として第1図のアドレスレ
ジスタAROに伝える。データレジスタDRの各ア
ドレス及び該各アドレスに対応するフラグ230
〜233は本例では4個であるから2値2ビツト
で表わされ、230は00、231は11、232は
10、233は11が割合てられている。これらのフ
ラグのリセツト及びこれらのフラグによるデータ
レジスタDRの空きアドレスの指定もこの2値2
ビツトで行なわれる。例えばフラグ230のみリ
セツトの場合は信号線は210は00の状態にな
り、また信号線212が00の状態になつてフラグ
230のリセツトが行なわれる。信号線210の
信号がクロツクCLOオンでレジスタAROにセツト
されたら、同時に対応するアドレスのフラグ(2
30〜233のいずれか)をセツトする。また命
令発信回路2で命令が発信されると、START
iNSTRuCTioNと共に信号線212のアドレス
が送られ、対応するフラグをリセツトする。また
アドレスはレジスタRARにラツチされ、信号線
211のリード(READ)アドレスとして第1
図のデータレジスタDRに送られ、発信された命
令で処理すべきデータが読み出され演算装置に送
られる。また以上とは別に、すべてのフラグ23
0〜233がセツト状態になると、ALL BUSY
信号がオンになる。この信号は命令取込み回路1
全体を制御する制御部に送られ、それ以上命令が
レジスタiROに取り込まれるのを防止する。 Explain the operation. The select circuit 221 selects the address (the flag is in a reset state) of invalid data (data that has already been sent to the arithmetic unit) (giving priority to the smaller value), encodes it with the encoder 220, and then sends it to the signal line 210 ( It is transmitted to the address register ARO in FIG. 1 as a signal 110) in FIG. Each address of the data register DR and the flag 230 corresponding to each address
~233 is four in this example, so it is represented by two binary values, 230 is 00, 231 is 11, and 232 is
10,233 has a ratio of 11. Resetting these flags and specifying a free address in the data register DR using these flags are also done using this binary 2 value.
It is done in bits. For example, when only the flag 230 is reset, the signal line 210 becomes 00, the signal line 212 becomes 00, and the flag 230 is reset. When the signal on the signal line 210 is set in the register ARO by turning on the clock CLO , the flag (2) of the corresponding address is set at the same time.
30 to 233). Also, when a command is sent from the command sending circuit 2, START
The address of signal line 212 is sent together with iNSTRuCTioN, and the corresponding flag is reset. The address is also latched in the register RAR, and the first address is used as the read address of the signal line 211.
The data is sent to the data register DR shown in the figure, and the data to be processed by the issued command is read out and sent to the arithmetic unit. In addition to the above, all flags 23
When 0 to 233 are set, ALL BUSY
The signal turns on. This signal is the instruction capture circuit 1
It is sent to the control unit that controls the whole, and prevents any further instructions from being taken into register iRO .
従来の計算機ではレジスタiRはインストラク
シヨン用、レジスタDRはデータ用に固定され、
相互に融通し合うようなことはない。しかし科学
計算機ではデータレジスタが多量に必要であり、
事務用計算機ではインストラクシヨンレジスタが
多量に必要であり、一方に好適に設計すれば他方
には不充分となる。そこで本発明はプログラムに
応じてハードウエアを変更する。 In conventional computers, register iR is fixed for instructions and register DR is fixed for data.
There is no mutual accommodation. However, scientific computers require a large number of data registers,
Office computers require a large number of instruction registers, and a design suitable for one will be inadequate for the other. Therefore, the present invention changes the hardware according to the program.
第3図は本発明の一実施例で、上述したように
インストラクシヨンレジスタiRやデータレジス
タDRのような情報保持部を複数持つ装置におい
て、それらの容量のバランスをソフトウエアの性
質に応じて自動的に変更しようとするものであ
る。第1図の例ではインストラクシヨンレジスタ
iRO〜iR3の数とデータレジスタDRFまたはDRSの
数は共に4個(固定)であるが、実際の命令では
外部データを使わないものも多く(例えば内部レ
ジスタのみをオペランドとする命令)、従つてソ
フトウエアによつてデータレジスタDRの使用率
が異なる。そこで本例では補助情報保持部SRを
設け、これをiRとしてもDRとしても使用できる
ようにする。全図を通してそうであるが、第3図
でも他の図と同じ部分には同じ符号が付してあ
り、そして301〜313はそれぞれ第1図の信
号線101〜113に対応する。データレジスタ
DRF、DRSは共に1段減らして3段としてあり、
信号線313をデコーダ324でデコードした出
力327(DRの0〜2のアドレスを指定)によ
りバス線301上の入力データをセツトするデー
タレジスタDRが選択される。300は構造変更
信号で、レジスタSRF、SRSをそれぞれインスト
ラクシヨンおよびアドレスレジスタiRO′、ARO′
として使う(第4図)か、4段目のデータレジス
タDRF3、DRS3として使う(第5図)かを選択す
る。つまり、信号300が1のときは、第4図の
ような構成になる。これは、第3図においてセレ
クタ320〜323が信号300で切り替られる
ことによつて自動的に実現される。逆に信号30
0が0のときは第5図5のような構成になる。こ
れはセレクタ320〜323の状態が第4図と逆
になることによつて実現される。328はデコー
ダ324の出力で、データレジスタDRの3、つ
まりDRF3、DRS3を選択することを示す信号であ
る。なお、331,332はクロツクCLO、
CLDF、CLDSの切換えゲートである。 FIG. 3 shows an embodiment of the present invention, in which, as described above, in a device having a plurality of information holding sections such as the instruction register iR and the data register DR, the balance of their capacities is adjusted according to the nature of the software. It is intended to be changed automatically. In the example in Figure 1, the instruction register
The number of iR O to iR 3 and the number of data registers DRF or DRS are both 4 (fixed), but there are many actual instructions that do not use external data (for example, instructions that use only internal registers as operands). ), therefore, the usage rate of the data register DR differs depending on the software. Therefore, in this example, an auxiliary information holding section SR is provided so that it can be used both as an iR and as a DR. As is the case throughout all the figures, the same parts in FIG. data register
Both DR F and DR S have one stage reduced to three stages,
A data register DR for setting input data on the bus line 301 is selected by an output 327 (designating addresses 0 to 2 of DR) obtained by decoding the signal line 313 by a decoder 324. 300 is a structure change signal which changes registers SRF and SRS to instruction and address registers iR O ′ and AR O ′, respectively.
(Fig. 4) or as the fourth stage data registers DR F3 and DR S3 (Fig. 5). That is, when the signal 300 is 1, the configuration is as shown in FIG. This is automatically achieved by switching selectors 320-323 with signal 300 in FIG. On the other hand, signal 30
When 0 is 0, the configuration is as shown in FIG. This is realized by reversing the states of selectors 320-323 from those shown in FIG. 328 is the output of the decoder 324, and is a signal indicating that data register 3 3, ie, DRF3 and DRS3, is selected. In addition, 331 and 332 are clocks C O ,
This is a switching gate for CL DF and CL DS .
以上の例では第1図の命令取込み回路1のレジ
スタiRO、AROに対し同種のレジスタiRO′、
ARO′を追加したが、命令発信回路2内のレジス
タをiR1〜iR4、AR1〜AR4のように4段構成とし
てもよい。いずれの場合もデータ用に使用できる
レジスタSRF、SRSを用いるので、第4図に斜線
で示すようにアドレスレジスタARでは一部未使
用の部分が生ずる。 In the above example, registers iR O ′, AR O of the same type as registers iR O , AR O of instruction fetch circuit 1 in FIG.
Although AR O ' has been added, the registers in the instruction issuing circuit 2 may be configured in four stages such as iR 1 to iR 4 and AR 1 to AR 4 . In either case, the registers SRF and SRS that can be used for data are used, so that a portion of the address register AR is unused, as shown by diagonal lines in FIG.
第4図の構成にした時には、第2図のフラグ制
御回路5も変更しなければならない(データレジ
スタDRの数が3個に減るので)。このための変
更機能部分を第6図に示す。同図において、62
1,633はそれぞれ第2図の221,233に
対応する。640が追加となるアオゲートであ
る。600は第3図の300と同じ構造変更信号
で、これが1のときは、アオゲート640の出力
が常に1となり、第2図においてフラグ230〜
232が全てセツトされた状態、すなわちデータ
レジスタDR(3個)が全てデータで満たされた
状態と等価になり、+ALL BUSY信号が1とな
る。 When adopting the configuration shown in FIG. 4, the flag control circuit 5 shown in FIG. 2 must also be changed (because the number of data registers DR is reduced to three). FIG. 6 shows the modified functional part for this purpose. In the same figure, 62
1 and 633 correspond to 221 and 233 in FIG. 2, respectively. 640 is an additional Aogate. 600 is the same structure change signal as 300 in FIG. 3. When this is 1, the output of the blue gate 640 is always 1, and the flags 230 to
232 are all set, which is equivalent to a state in which all three data registers DR are filled with data, and the +ALL BUSY signal becomes 1.
以上の実施例はハードウエアのうちのレジスタ
構成を自動的に変更する(ソフトウエアの性質に
よるところは後述する)例を示したが、変更対象
とするハードウエアはこれに限定されない。第7
図以下はベクトルアクセス制御装置の制御変更に
適用した例である。 Although the above embodiment has shown an example in which the register configuration of the hardware is automatically changed (depending on the nature of the software will be described later), the hardware to be changed is not limited to this. 7th
The following figure is an example of application to control change of a vector access control device.
複数のデータ(ベクトルデータ)を高速に処理
する計算機においては、演算命令等を実行するに
あたりなるべくメインメモリ(MEM)を使わ
ず、内部レジスタ(VR)だけで処理することが
望まれる。ベクトルレジスタとも呼ばれるこの内
部レジスタVRは1つ又は複数個のエレメントよ
りなり、各エレメントに1つずつデータが保持さ
れる。そして、一般にはエレメント0から順番に
処理され、その結果が他のVRに書き込まれる。
このためにはVRの数が多い程よい。複数のVR
の集合はベクトルレジスタ群(VRG)と呼ばれ
るが、このしかし、VRGの容量の制限あるいは
ソフトウエアの性質等によりMEMとVRGとの
間にはある頻度で必ずデータ転送が必要となる。
メモリアクセス制御装置(VSu)は例えばアクセ
ス制御部(以後アクセスパイプあるいは単にパイ
プと記す)を複数設けて上記のデータ転送を効率
よく制御するようにされる。 In a computer that processes multiple data (vector data) at high speed, it is desirable to use only internal registers (VR) to execute arithmetic instructions, etc., without using the main memory (MEM) as much as possible. This internal register VR, also called a vector register, consists of one or more elements, and each element holds one piece of data. Generally, elements are processed in order starting from element 0, and the results are written to other VRs.
For this purpose, the more VRs the better. Multiple VR
The set of is called a vector register group (VRG), but due to limitations in the capacity of the VRG or the nature of the software, data must be transferred at a certain frequency between the MEM and the VRG.
The memory access control device (VSu) is configured to include, for example, a plurality of access control units (hereinafter referred to as access pipes or simply pipes) to efficiently control the above data transfer.
第7図はベクトルデータを高速処理する機能を
備えた情報処理装置全体のブロツク図で、11は
メインメモリ(MEM)、12はメモリ制御装置
(MCu)、13はエレメントが1つスカラデータ
を処理するスカラデータ処理装置、14はチヤネ
ル装置(CHP)、15は外部の入出力装置(I/
O)である。被線枠16内がベクトルデータ処理
装置(Vu:ベクトルユニツト)で、ここにはベ
クトルレジスタ群(VRG)17、メモリアクセ
ス制御装置(VSu)18、先の例で示した命令制
御装置(VIu)16および演算装置(VEu)20
が含まれる。VRG17は前述のように複数のベ
クトルレジスタVRから構成されるが、演算装置
20はVRをオペランドとして各種演算命令等を
実行する。この演算装置20には加算用のADD
加算器20A、乗算用のMuLTi演算器20B、
除算用のDiViDE演算器20Cがある。前述した
命令制御装置9はこのメモリアクセス制御装置1
8と演算装置20への命令発信を制御する。図
中、ITは命令発信、Dはデータ、Iは命令の流
れを示す。 Figure 7 is a block diagram of the entire information processing device equipped with the function of processing vector data at high speed. 11 is the main memory (MEM), 12 is the memory control unit (MCu), and 13 is one element that processes scalar data. 14 is a channel device (CHP), 15 is an external input/output device (I/
O). Inside the lined frame 16 is a vector data processing unit (Vu: vector unit), which includes a vector register group (VRG) 17, a memory access control unit (VSu) 18, and an instruction control unit (VIu) shown in the previous example. 16 and computing unit (VEu) 20
is included. The VRG 17 is composed of a plurality of vector registers VR as described above, and the arithmetic unit 20 executes various arithmetic instructions using VR as an operand. This arithmetic unit 20 has an ADD for addition.
Adder 20A, MuLTi operator 20B for multiplication,
There is a DiViDE calculator 20C for division. The above-mentioned instruction control device 9 is the memory access control device 1.
8 and the arithmetic unit 20. In the figure, IT indicates instruction transmission, D indicates data, and I indicates the flow of instructions.
第8図はVRG17の構成例である。このVRG
17には例えばアクセスタイムが1τ(Vuのクロツ
クサイクル)以下のRAMを使用し、インタリー
ブ構成としてある。即ちVRGを構成する各レジ
スタVRO〜VR255の同じ番号のエレメントを1群
としてバンクとし、そしてこのバンクが8個で1
つのVRGが構成されるものとし、VSu内の複数
のアクセス制御部からのアクセスタイミングをこ
のバンク単位で異ならせる(ずらす)ようにす
る。このようにインタリーブ構成とすると、複数
のパイプ(アクセス制御部)で同時に同じVRG
をかち合うことなくアクセスすることができる。
第9図はこの説明図である(後述する)。 FIG. 8 shows an example of the configuration of the VRG 17. This VRG
17 uses, for example, a RAM with an access time of 1τ (Vu clock cycle) or less, and has an interleaved configuration. In other words, elements with the same number in each register VR O to VR 255 that make up VRG are grouped together as a bank, and this bank consists of 8 elements.
One VRG is configured, and the access timings from the plurality of access control units in the VSu are made different (shifted) for each bank. With this interleaved configuration, multiple pipes (access control units) can simultaneously access the same VRG.
can be accessed without having to interact with the
FIG. 9 is an explanatory diagram of this (described later).
各ベクトルレジスタVRO、VR1……のエレメン
ト数は可変でもよいが、簡単のため8を基本とす
る。実際に有効なエレメントの数はベクトルレン
グスVLによつて余えられる。1つのVRGを構成
するVRの数は256とし、8ビツトのアドレスで
指定される。エレメントの割り付けは、VRGが
1つの場合バンクnに対してエレメントnを対応
させる。第8図でEはエレメントで、その中の数
字はエレメント番号である。 The number of elements in each vector register VR O , VR 1 . . . may be variable, but for simplicity, it is basically 8. The number of actually valid elements is left over by the vector length VL. The number of VRs that make up one VRG is 256, and is specified by an 8-bit address. For element allocation, when there is one VRG, element n is made to correspond to bank n. In FIG. 8, E is an element, and the numbers therein are element numbers.
第7図の命令制御装置19にはベクトルレング
スレジスタVLRがあり、そこには制御命令によ
つてVLの値がセツトされる。このVLは有効なエ
レメントの数を示す。メモリアクセス制御装置
(VSu)18ではVLで示される数のデータを
MEM11とVRG17の間で転送する。また演
算装置20ではVLで示される数のデータを同一
命令で処理する。 The instruction control device 19 in FIG. 7 includes a vector length register VLR, in which the value of VL is set by a control instruction. This VL indicates the number of valid elements. The memory access control unit (VSu) 18 stores the number of data indicated by VL.
Transfer between MEM11 and VRG17. Further, the arithmetic unit 20 processes the number of data indicated by VL using the same instruction.
第9図ではベクトルレジスタVRの最初のエレ
メント(エレメント番号0)をアクセスするタイ
ミングを、各アクセス源(パイプ、演算器)ごと
に規定するバンクタイミングのタイムチヤート
で、K、E1、E2、E3、L、F1、F2、F3の8つの
タイミングがサイクリツクに繰り返される。この
うちK、Lはパイプ用、E1ないしF1、E2ないし
F2、E3ないしF3は演算器用で、それぞれ命令語
のR1、R2、R3部で指定されるVRをアクセスす
る。1命令語は1バイト(8ビツト)のオペレー
シヨンコード部(OP)とそれに読く3つのベク
トルデータオペランド部R1、R2、R3(各1バイ
ト)からなり、一般にR2、R3で示されるVRの
ベクトルデータに対し、各同一番号のエレメント
ごごとにOPで示される演算を実行し、その結果
をR1で示されるVRの同一番号のエレメントに書
き込む。 FIG. 9 is a bank timing time chart that defines the timing for accessing the first element (element number 0 ) of the vector register VR for each access source (pipe, arithmetic unit). Eight timings of E 3 , L, F 1 , F 2 , and F 3 are repeated cyclically. Of these, K and L are for pipes, E 1 or F 1 , E 2 or
F 2 , E 3 , and F 3 are for the arithmetic unit, and access the VR specified by the R1, R2, and R3 parts of the instruction word, respectively. One instruction word consists of a 1-byte (8-bit) operation code section (OP) and three vector data operand sections R1, R2, and R3 (1 byte each) to be read. The operation indicated by OP is executed on the vector data for each element of the same number, and the result is written to the element of the same number of VR indicated by R1.
第10図は本発明の他の実施例で、2パイプ型
のメモリアクセス制御装置によつて1つのVRG
を扱う場合の制御変更機能を示してある。同図に
おいて破線枠の1000A,1000B(以下A,
Bは略す)は2台のパイプ(アクセス制御部)
で、これに制御回路等を付加すると第7図のメモ
リアクセス制御装置(VSu)8となる。1010
(簡単化のため添字A,Bは適宜省略する、他の
ものも同様))は双方向バスで、ゲートの切換え
によつてメモリ制御装置(MCu)12へ入出力
する双方向データを転送する。1001はMCu
12からのフエツチデータを保持するフエツチデ
ータレジスタ(FDR)、1002は逆にMCu2へ
のストアデータを保持するストアデータレジスタ
(SDR)、1003はデータ列を再配列するアラ
イン回路(ALiGN)、1004はアラインレジス
タスタツク(ARS)、1020はベクトルレジス
タ群である。 FIG. 10 shows another embodiment of the present invention, in which one VRG is controlled by a two-pipe memory access control device.
The control change function when handling is shown. In the same figure, 1000A and 1000B (hereinafter referred to as A,
B is omitted) are two pipes (access control part)
When a control circuit and the like are added to this, a memory access control device (VSu) 8 as shown in FIG. 7 is obtained. 1010
(Suffixes A and B are omitted as appropriate for simplicity, the same applies to other items)) is a bidirectional bus that transfers bidirectional data input and output to the memory control unit (MCu) 12 by switching gates. . 1001 is MCu
1002 is a store data register (SDR) that holds store data to MCu2, 1003 is an align circuit (ALiGN) that rearranges the data string, and 1004 is a fetch data register (FDR) that holds the fetch data from 12. The aligned register stack (ARS) 1020 is a group of vector registers.
ここまでの構成は既提案のものと同様である。
先ずその動作を説明するに、(1)データフエツチ命
令の場合には双方向バス1010を通してMCu
12から送られた各4エレメント分のデータはレ
ジスタ1001に入り、アライン回路1003を
通して正しいエレメント順に並べ変えられた後ス
タツク1004に保持される。スタツク1004
に保持されたデータはFiFo(フアーストイン、フ
アーストアウト)式に取り出され、バンクタイム
が取れた時に1エレメントごとにVRG1020
の該当するVRに書き込まれる。(2)データストア
命令の場合にはバンクタイムが取れた時に1エレ
メントごとにVRからデータが読み出されスタツ
ク1004に保持される。そして、スタツク10
04に保持されたデータはFiFo式に取り出され、
アライン回路1003を通してメモリ11(第7
図)のアドレス順に並べ変えられた後レジスタ1
002に入り、双方向バス1010を通して
MCu12に送られる。 The configuration up to this point is similar to the previously proposed configuration.
First, to explain its operation, (1) In the case of a data fetch instruction, the MCu
Data for each four elements sent from 12 enters a register 1001, is rearranged into the correct order of elements through an align circuit 1003, and then held in a stack 1004. stack 1004
The data held in is retrieved using the FiFo (first-in, first-out) method, and when bank time is obtained, VRG1020 is stored for each element.
is written to the corresponding VR. (2) In the case of a data store instruction, data is read out from the VR element by element when bank time is available and held in the stack 1004. And stack 10
The data held in 04 is retrieved in FiFo style,
The memory 11 (seventh
Register 1 after being rearranged in the order of addresses in Figure)
002 and through the bidirectional bus 1010.
Sent to MCu12.
本例では各パイプ1000A,1000Bにゲ
ートロジツク(GL)1005A,1005Bを
追加してそれを構造変更信号1030で制御す
る。ゲートロジツク1005は入力データを出力
側に伝えるか否かを制御するゲート群より成り、
構造変更信号1030が0のときはゲートが閉
じ、1のときはゲートが開く、以下では該信号1
030が0のときを1パイプモード、1のときを
2パイプモードと呼び、各モードの動作を説明す
る。 In this example, gate logic (GL) 1005A, 1005B is added to each pipe 1000A, 1000B, and is controlled by a structure change signal 1030. Gate logic 1005 consists of a group of gates that control whether or not input data is transmitted to the output side.
When the structure change signal 1030 is 0, the gate is closed, and when it is 1, the gate is opened.
When 030 is 0, it is called 1-pipe mode, and when it is 1, it is called 2-pipe mode, and the operation of each mode will be explained.
1パイプモード:このときはゲートロジツク1
005A,1005Bが閉じているので、スタツ
ク1004A(ARS A)はVRG1020のバン
ク0〜3のみと接続され、またスタツク1004
B(ARS B)はVRG1020のバンク4〜7の
みと接続される。この場合にはパイプ1000
A,1000Bは同一命令を同時に実行できる。
つまり第9図において、パイプ1000A,10
00B共にKまたはLのいずれか(一方が実線、
他方が被線)のタイングで同時にVRのアクセス
を開始する。そして、パイプ1000Aはエレメ
ント0から3を、またパイプ1000Bはエレメ
ント4から7を扱い、そこにデータをライトまた
はリードする。VRのアクセス開始とはその最初
のバンクからのアクセス開始を示すので、これが
同じであるとかち合う恐れがあるが、VRを0〜
3、4〜7の2群に分ければそのアクセス開始バ
ンクは0と4であり、後一方は1、2、3、0、
1、……、他方は5、6、7、4、5、……と進
んで行くので、かち合うことはない。 1 pipe mode: At this time, gate logic 1
005A and 1005B are closed, stack 1004A (ARS A) is connected only to banks 0 to 3 of VRG 1020, and stack 1004A (ARS A) is connected only to banks 0 to 3 of VRG 1020.
B (ARS B) is connected only to banks 4 to 7 of VRG 1020. In this case pipe 1000
A and 1000B can execute the same instruction simultaneously.
In other words, in FIG. 9, pipes 1000A, 10
Both 00B are either K or L (one is a solid line,
VR access is started at the same time when the other side is connected (wired). The pipe 1000A handles elements 0 to 3, and the pipe 1000B handles elements 4 to 7, and writes or reads data there. The start of VR access indicates the start of access from the first bank, so there is a risk of conflict if these are the same, but if you set VR from 0 to
If divided into two groups, 3, 4 to 7, the access start banks are 0 and 4, and the latter one is 1, 2, 3, 0,
1,..., the other goes 5, 6, 7, 4, 5,..., so they never collide.
2パイプモード:このときはゲートロジツク1
005A,1005Bが開くので、スタツカ10
04A,1004Bは共にVRG1020のバン
ク0〜7と接続される。この場合は第9図に実線
で示すようにパイプ1000Aとパイプ1000
Bでバンクタイムを異ならせ(一方がKで、他方
がL)、VRG1020の同じバンクに同時にパイ
プ1000Aとパイプ1000Bがアクセス(衝
突)することがないようにした上で、両パイプを
独立に動作可能として同時に2命令を実行させ
る。 2 pipe mode: At this time, gate logic 1
Since 005A and 1005B open, stacker 10
04A and 1004B are both connected to banks 0 to 7 of VRG 1020. In this case, as shown by the solid line in FIG.
Set the bank times to be different for B (one is K and the other is L) to prevent pipes 1000A and 1000B from accessing (colliding) the same bank of VRG 1020 at the same time, and then operate both pipes independently. Execute two instructions at the same time if possible.
上述した各モードの長所、短所は次の通りであ
る。1パイプモードでは1命令しか実行できない
が、VRをエレメント0から7までアクセスする
のに4τで済む。これに対し2パイプモードでは同
時に2命令実行できるが、VRをエレメント0か
ら7までアクセスするのに8τかかる。従つて、メ
モリアクセス命令の頻度が多い場合、2パイプモ
ードの方が同時に2命令実行でき有利であり、メ
モリアクセス命令の頻度が少ない場合は、1パイ
プモードの方がデータ転送量が2倍になるので有
利になる。 The advantages and disadvantages of each mode described above are as follows. In 1-pipe mode, only one instruction can be executed, but it only takes 4τ to access VR from elements 0 to 7. On the other hand, in 2-pipe mode, two instructions can be executed at the same time, but it takes 8τ to access VR from elements 0 to 7. Therefore, when the frequency of memory access instructions is high, the 2-pipe mode is more advantageous because it allows two instructions to be executed at the same time, and when the frequency of memory access instructions is low, the 1-pipe mode doubles the amount of data transferred. This will be advantageous.
以上、構造変更信号によつてハードウエアの構
造を変更する例を2つ説明したが、次にこの構造
変更信号をソフトウエアの性質を判断して切換え
る制御部について説明する。この制御部の基本的
な考え方には2通りある。1つは命令タイプを記
録してその結果によりハードウエアの構造変更を
しようとするもの(第第11図)、他の1つはハ
ードウエアの使用状況により論理変更するもので
ある。 Two examples of changing the structure of the hardware using the structure change signal have been described above. Next, a control section that changes the structure change signal by determining the nature of the software will be described. There are two basic ways of thinking about this control section. One is to record the instruction type and change the hardware structure based on the result (FIG. 11), and the other is to change the logic depending on the usage status of the hardware.
第11図は第3図で必要な構造変更信号118
1(第3図では300)を発生するに適した制御
部の構成例で、以下の条件を前提とする。(1)命令
タイプとして外部データを使用する命令(ED命
令)のみ記録する。(2)記録期間は、第3図のイン
ストラクシヨンレジスタiROに投入された命令の
回数、すなわちクロツクCLOがオンになつた回数
nを計数し、これが予め定められた数Nに等しく
なるまでとする。(3)上記の期間中ED命令の回数
xを計数し、その計数値が予め定められた数X以
上になつたら、第3図の構成を第5図に変更す
る。 Figure 11 shows the structural change signal 118 required in Figure 3.
1 (300 in FIG. 3), and is based on the following conditions. (1) Record only instructions (ED instructions) that use external data as the instruction type. (2) The recording period is calculated by counting the number of instructions input to the instruction register iRO in Figure 3, that is, the number of times the clock CLO is turned on, and this becomes equal to a predetermined number N. up to. (3) Count the number x of ED commands during the above period, and when the counted value exceeds a predetermined number X, change the configuration in FIG. 3 to FIG. 5.
第11図におけるバツフア1100、信号線1
101、クロツクCLO(信号線1102)はそれ
ぞれ第3図のバツフア4、信号線301、クロツ
クCLOに相当する。カウンタ1150はクロツク
CLOがオンになるたびに1からN(10とする)ま
でカウントアツプし、N+1回目にクロツクCLO
がオンになると計数値nを1にもどす。このカウ
ンタ1150の計数値nは信号線1151に2進
数として4ビツトで出力される。1160はN=
n、つまりカウンタ1157の値nが10(=N)
になつたことを検出する回路で、予めラツチ11
61〜1164に2進数4ビツトでN値10(2進
数では1010)をセツトしておき、その出力と
信号線1151が一到したらゲート1165の出
力1166を1とする。カウンタ1120、一到
検出回路1130についても動作は上記と同様で
あるが、カウンタ1120はシリアライズエンド
信号1171(後述)が1になると値xが0にセ
ツトされる。1180はセツト(S)優先のセツ
ト/リセツト型ラツチで、リセツト(R)入力が
1になるとリセツトされ出力1181は0とな
る。しかし、R入力が1でもS入力が1になると
セツトが優先され出力1181は1となる。 Buffer 1100 and signal line 1 in FIG.
101 and clock CLO (signal line 1102) correspond to buffer 4, signal line 301, and clock CLO in FIG. 3, respectively. Counter 1150 is a clock
Each time CLO turns on, it counts up from 1 to N (assumed to be 10), and at the N+1st time, the clock CLO
When turned on, the count value n is returned to 1. The count value n of this counter 1150 is output to a signal line 1151 as a binary number in 4 bits. 1160 is N=
n, that is, the value n of the counter 1157 is 10 (=N)
This is a circuit that detects whether the latch 11 is
61 to 1164 are set to an N value of 10 (1010 in binary) using 4 bits of a binary number, and when the output and the signal line 1151 are connected, the output 1166 of the gate 1165 is set to 1. The operations of the counter 1120 and the arrival detection circuit 1130 are similar to those described above, but the value x of the counter 1120 is set to 0 when the serialization end signal 1171 (described later) becomes 1. Reference numeral 1180 is a set/reset type latch that gives priority to set (S), and when the reset (R) input becomes 1, it is reset and the output 1181 becomes 0. However, even if the R input is 1, if the S input becomes 1, set takes priority and the output 1181 becomes 1.
シリアライズ制御回路1170は信号線116
6の信号が1になると起動され、第1図のインス
トラクシヨンレジスタ(iR)に保持されている
全命令が終了するまで後続命令の実行を禁止し
(クロツクCLOをオンにしない)、すべてのレジス
タiRが空き状態になつた時点でシリアライズエ
ンド信号1171をオンにする。この動作を命令
のシリアライズと呼ぶ。 The serialization control circuit 1170 is connected to the signal line 116
It is activated when signal 6 becomes 1, and prohibits the execution of subsequent instructions (does not turn on clock CLO ) until all instructions held in the instruction register (iR) in Figure 1 are completed. When the register iR becomes empty, the serialize end signal 1171 is turned on. This operation is called instruction serialization.
次に、全体の動作を説明する。n<Nの期間
(信号線1167が1となつている)、バツフア1
100からED命令が送られ、これをデコーダ1
110でデコードするとその出力が1となるの
で、クロツクCLOが1になつた時に、アンドゲー
ト1111の出力が1となり、カウンタ1120
を1つカウントアツプする。カウンタ1120の
値xが回路1130による設定数X(この例では
5)になるとセツト/リセツト型ラツチ1140
がセツトされる。 Next, the overall operation will be explained. During the period when n<N (signal line 1167 is 1), buffer 1
An ED command is sent from 100, which is sent to decoder 1.
When decoded by 110, its output becomes 1, so when clock CLO becomes 1, the output of AND gate 1111 becomes 1, and counter 1120
Count up by one. When the value x of the counter 1120 reaches the number set by the circuit 1130 (5 in this example), the set/reset type latch 1140
is set.
n=N(この例では10)になると信号線116
0が1となる。これによりまず信号線1167
(信号線1166をインバータで反転したもの)
が0となり、カウンタ1120のカウントアツプ
は禁止される。またシリアライズ制御回路117
0が起動されることにより前述のシリアライズ動
作が開始される。これが終わるとシリアライズエ
ンド信号1171がオンになる。 When n=N (10 in this example), the signal line 116
0 becomes 1. As a result, first the signal line 1167
(signal line 1166 inverted with an inverter)
becomes 0, and counting up of the counter 1120 is prohibited. Also, the serialization control circuit 117
0 is activated, the above-mentioned serialization operation is started. When this is finished, the serialize end signal 1171 is turned on.
この時x<Xであるとラツチ1140の出力
は1になつている(リセツト状態)ので、ラツチ
1180がセツトされ構造変更信号1181が1
となる。またx≧Xであるとすでにラツチ114
0はセツトされてその出力が0になつているの
で、ラツチ1180はリセツトされ構造変更信号
1181は0となる。 At this time, if x<X, the output of latch 1140 is 1 (reset state), so latch 1180 is set and structure change signal 1181 is 1.
becomes. Also, if x≧X, the latch 114 is already
Since 0 is set and its output is 0, latch 1180 is reset and structure change signal 1181 becomes 0.
また上記動作と同時にシリアライズエンド信号
1171がオンになると、カウンタ1120は0
セツトされる。この結果ラツチ1140はリセツ
トされて初期値にもどり、またクロツクCLOの禁
止も解かれて次のN期間の動作が開始される。こ
こで、次のN期間の間はラツチ1180の値は不
変である。構造変更信号1181は第3図の30
0および第6図の600につながれる。そして信
号1181が1のときは次のN期間は第4図の構
成となり、信号1181が0のときは第5図の構
成となる。 Furthermore, when the serialize end signal 1171 turns on at the same time as the above operation, the counter 1120 becomes 0.
is set. As a result, latch 1140 is reset and returned to its initial value, and clock CLO is also uninhibited to begin the next N period of operation. Here, the value of latch 1180 remains unchanged for the next N periods. The structure change signal 1181 is 30 in FIG.
0 and 600 of FIG. When the signal 1181 is 1, the configuration shown in FIG. 4 is used for the next N period, and when the signal 1181 is 0, the configuration shown in FIG. 5 is used.
なお、第11図ではラツチ1131〜113
3,1161〜1164の出力は定められたX、
Nを出力するように設定されているが、この値は
構成制御、OPSR(オペレーシヨン ステータス
レジスタ)によつて変えるようにしてもよい。
また第11図ではX=5、N=10としたが、これ
らの値が小さいとシリアライズが頻繁に起こり、
それによるロスが構成変更によるメリツトより大
きくなり、かえつて性能低下になる。従つてXや
Nの値は、シリアライズによるロスが構成変更に
よるメリツトに比してずつと小さくなるようにあ
る程度大きい値を設定する必要がある。 In addition, in FIG. 11, latches 1131 to 113
3, the outputs of 1161 to 1164 are determined by X,
It is set to output N, but this value may be changed by configuration control or OPSR (Operation Status Register).
Also, in Figure 11, X = 5 and N = 10, but if these values are small, serialization will occur frequently,
The loss caused by this becomes greater than the benefit of changing the configuration, and performance deteriorates instead. Therefore, the values of X and N need to be set to a certain degree of large value so that the loss due to serialization is gradually smaller than the benefit due to configuration change.
第12図は第10図の機能を制御するに適した
構造制御信号1281(第10図の1030)を
発生する制御部の例で、次の条件を前提とする。
(1)ハードウエアの使用状況として第10図のスタ
ツカ1004B(ARS B)のうち実際使われて
いるレジスタの個数rを用いる。(2)記録期間は、
Nサイクル(マシンサイクルのクロツクがN回出
る期間)とする。(3)上記の期間にrが現在のハー
ドウエア構造によつて定められた値R1ないしR2
以上となつた回数xを計数し、その計数値が予め
定められた数X以上であつたなら、第10図の論
理を2パイプモードとする。 FIG. 12 shows an example of a control section that generates a structural control signal 1281 (1030 in FIG. 10) suitable for controlling the functions shown in FIG. 10, and is based on the following conditions.
(1) As the hardware usage status, the number r of registers actually used in the stacker 1004B (ARS B) in FIG. 10 is used. (2) The recording period is
It is assumed to be N cycles (period in which the machine cycle clock appears N times). (3) During the above period, r is the value R 1 to R 2 determined by the current hardware structure.
The number of times x that has occurred is counted, and if the counted value is greater than or equal to a predetermined number X, the logic in FIG. 10 is set to 2-pipe mode.
信号線1200は第10図のスタツク1004
B(ARS B)のうち実際使われているレジスタ
の個数rを伝える。この個数rは第10図の回路
を制御する論理部(図示せず)から送られる値
で、例えばスタツク1004Bのライト
(WRiTE)アドレスとリード(READ)アドレ
スの差を用いる。 Signal line 1200 is connected to stack 1004 in FIG.
The number r of registers actually used in ARS B (ARS B) is reported. This number r is a value sent from a logic unit (not shown) that controls the circuit of FIG. 10, and uses, for example, the difference between the write (WRiTE) address and read (READ) address of the stack 1004B.
1210,1211はそれぞれ定められた値
R1、R2を保持するレジスタ、1212,121
3はそれぞれr≧R1、r≧R2を検出し、条件が
成立したら出力に1を出す回路、1220,12
30,1240,1250,1260,127
0,1280はそれぞれ第11図の1120,1
130,1140,1150,1160,117
0,1180と同じ回路である。ただしカウンタ
1250はクロツクCLOではなくマシンサイクル
のクロツクによつてカウントアツプし、またカウ
ントアツプを禁止する入力信号COUNT UP
iNHiBiTが供給される。シリアライズ制御部1
270はシリアライズ実行中(1261がオンに
なつてからシリアライズエンド信号1271がオ
ンになるまでの間)を示す信号1272(シリア
ライズ エグゼキユーシヨン)を出力する。12
82は1パイプモードを指示する信号、1283
は2パイプモードを指示する信号である。 1210 and 1211 are respectively determined values
Registers holding R 1 and R 2 , 1212, 121
3 are circuits that detect r≧R 1 and r≧R 2 and output 1 when the conditions are met; 1220 and 12;
30, 1240, 1250, 1260, 127
0 and 1280 are respectively 1120 and 1 in Figure 11.
130, 1140, 1150, 1160, 117
This is the same circuit as 0,1180. However, the counter 1250 is counted up not by the clock CLO but by the machine cycle clock, and also by the input signal COUNT UP which prohibits counting up.
iNHiBiT is supplied. Serialization control section 1
270 outputs a signal 1272 (serialization execution) indicating that serialization is being executed (from when 1261 turns on until the serialization end signal 1271 turns on). 12
82 is a signal instructing 1 pipe mode, 1283
is a signal instructing the 2-pipe mode.
次に、全体の動作を説明する。シリアライズ制
御が終り、カウンタ1250が動作している状態
では、信号1273(これは信号1272をイン
バータで反転したもの)が1になり、アンドゲー
ド1214,1215が有効になる。現在1パイ
プモードで動作中のときは信号1282が1にな
り、ゲート1214が有効になる。この状態では
比較回路1212によつてrとR1の値が比較さ
れ、r≧R1であるとオアゲート1216の出力
が1となり、カウンタ1220がカウントアップ
される。2パイプモードで動作中のときは信号1
283が1になりゲート1215が有効になる。
その状態では比較回路1213によつてrとR2
の値が比較され、r≧R2であるとゲート121
6の出力が1となり、カウンタ1220がカウン
トアツプされる。以後の動作は第1図と同様であ
る。かくして得られた構造変更信号1281は第
10図の1030になる。そして信号1281が
0のときは、次のN期間は第10図の回路は1パ
イプモードとなり、逆に1のときは2パイプモー
ドとなる。 Next, the overall operation will be explained. When the serialization control is finished and the counter 1250 is operating, the signal 1273 (which is the signal 1272 inverted by an inverter) becomes 1, and the AND gates 1214 and 1215 become valid. When currently operating in 1-pipe mode, signal 1282 becomes 1 and gate 1214 is enabled. In this state, the comparison circuit 1212 compares the values of r and R1 , and if r≧ R1 , the output of the OR gate 1216 becomes 1 and the counter 1220 counts up. Signal 1 when operating in 2-pipe mode
283 becomes 1 and gate 1215 becomes valid.
In that state, r and R 2 are determined by the comparison circuit 1213.
The values of are compared, and if r≧R 2 , the gate 121
The output of 6 becomes 1, and the counter 1220 counts up. The subsequent operations are similar to those shown in FIG. The structure change signal 1281 thus obtained becomes 1030 in FIG. When the signal 1281 is 0, the circuit of FIG. 10 is in the 1-pipe mode for the next N period, and conversely, when it is 1, the circuit is in the 2-pipe mode.
第12図では1パイプモードと2パイプモード
の状態によつてrが比較される値をR1=6、R2
=3としているが、その理由は以下の通りであ
る。つまり、1パイプモードの状態では、rが6
になる回数xが少ないということは第7図の
MEMをアクセスする命令が少なくスタツクARS
のオーバーフローが少ないので、次のN期間にも
1パイプモードにした方が有利であると推測され
るからである。xが大きい場合は逆のことが言え
る。2パイプモード状態では、rが3以上になる
回数xが少ないということはスタツクARS Bが
ほとんど空いており、パイプBがあまり動作して
ないことを示すので、次のN期間には1パイプモ
ードにした方が有利であると推測されるからであ
る。xが大きい場合は逆のことが言える。 In Figure 12, the values at which r is compared depending on the state of 1-pipe mode and 2-pipe mode are R 1 = 6, R 2
= 3, and the reason is as follows. In other words, in the 1-pipe mode, r is 6
The fact that the number of times x is small means that
Stack ARS with fewer instructions to access MEM
This is because it is presumed that it is advantageous to use the 1-pipe mode for the next N period as well, since there is less overflow. The opposite is true when x is large. In the 2-pipe mode state, the fact that the number of times r becomes 3 or more x is small means that the stack ARS B is almost empty and pipe B is not operating much. Therefore, in the next N period, the 1-pipe mode is This is because it is presumed that it is more advantageous to do so. The opposite is true when x is large.
なお第12図ではレジスタ1210,1211
の出力は定められた値となるように設定されてい
るが、この値は構成制御、OPSR等によつて変え
るようにしてもよい。またXやNの値については
第11図に関する記述と同様のことが言える。 In addition, in FIG. 12, registers 1210 and 1211
The output of is set to a predetermined value, but this value may be changed by configuration control, OPSR, etc. Regarding the values of X and N, the same can be said as in the description regarding FIG.
発明の効果
以上述べたように本発明によれば、計算機自身
がソフトウエアに適するように自動的にハードウ
エアないしフアームウエアの構造を変更できるの
で、TSS(タイムシエアリングサービス)等の使
用によりプログラムが頻繁に変わるような状況に
おいても各プログラムに最適な性能を出す柔軟性
に富み、より汎用的な計算機とすることができ
る。特に、多種多様なプログラムを流すような場
合には非常に有効となる。Effects of the Invention As described above, according to the present invention, the computer itself can automatically change the structure of the hardware or firmware to suit the software. It is highly flexible and can provide optimal performance for each program even in situations where the program changes frequently, making it a more general-purpose computer. This is especially effective when running a wide variety of programs.
なお、実施例では単に2つの例を上げるにとど
めたが、これ以外にもさまざまな構造変更機能お
よびその制御部が考えられる。またこれらの構造
変更機能を随所に用いることにより、さらに柔軟
性の高い計算機とすることができる。 In addition, although only two examples are given in the embodiment, various other structural change functions and their control units are conceivable. Furthermore, by using these structural modification functions everywhere, it is possible to make the computer even more flexible.
なお、前述した各実施例から明らかなように、
本発明の実施に際してはハードウエアに追加する
部分があるので、ハードウエアの量を増大させる
が、これはVLSiの発達により解決できる。つま
りVLSiでは内部のゲート数は飛躍的に増加する
が、外部とのインタフエースであるピンの数はそ
れに見合うだけ増やせないという事情がある。そ
こで従来通りの設計をVLSiで実現した場合未使
用のゲートが相当数出ることになる。そこで本発
明のように多数のゲート数を使用する場合でもピ
ン数は1本ないし数方増えるだけで済み、しかも
使用するゲートの何%かは本来のピン数では使用
できないものを使用しているに過ぎないという利
点がある。 In addition, as is clear from each of the above-mentioned examples,
When implementing the present invention, there are additional parts to the hardware, which increases the amount of hardware, but this can be solved with the development of VLSi. In other words, although the number of internal gates increases dramatically in VLSi, the number of pins that interface with the outside cannot be increased commensurately. Therefore, if the conventional design is realized with VLSi, there will be a considerable number of unused gates. Therefore, even when using a large number of gates as in the present invention, the number of pins only increases by one or a few more, and what is more, some percentage of the gates used are ones that cannot be used with the original number of pins. It has the advantage that it is only .
例えば単純な例として1つのVLSi内に2種の
構造を作つておき、外部からの信号で切換えるよ
うにすれば、ゲート数は約2倍となるがピン数は
1本増えるだけで済む。 For example, as a simple example, if two types of structures are created in one VLSi and switched by an external signal, the number of gates will approximately double, but the number of pins will only increase by one.
第1図は構造変更機能のない従来の命令制御装
置の一例を示す構成図、第2図はそのフラグ制御
回路の詳細図、第3図は上記の命令制御装置に適
用した本発明の一実施例を示す構成図、第4図お
よび第5図はその要部の構造変更状態を示す説明
図、第6図は第4図の構造変更に伴うフラグ制御
回路への追加部分を示す要部構成図、第7図は複
数のデータを高速処理する情報処理装置全体の概
略構成図、第8図はそのベクトルデータ処理装置
内に設けられるベクトルレジスタ群の説明図、第
9図は該レジスタ群へのアクセスタイミングを示
すタイムチヤート、第10図は該ベクトルデータ
処理装置内に設けられるメモリアクセス制御装置
に適用した本発明の他の実施例を示す構成図、第
11図は命令タイプを記録してその結果により構
造変更信号を発生する制御部の例を示す構成図、
第12図はハードウエアの使用状況によつて構造
変更信号を発生する制御部の例を示す構成図であ
る。
図面で1130,1160,1180及び12
12,1213,1220,1230,126
0,1280は実行中ソフトウエアの性質を判断
する制御部、320,321,322,323,
331,332及び1005A,Bはハードウエ
アの構成を変更する機能、300,1030,1
181,1281は構造変更信号である。
Fig. 1 is a block diagram showing an example of a conventional instruction control device without a structure change function, Fig. 2 is a detailed diagram of its flag control circuit, and Fig. 3 is an embodiment of the present invention applied to the above instruction control device. A configuration diagram showing an example, FIGS. 4 and 5 are explanatory diagrams showing changes in the structure of the main part, and FIG. 6 is a main part configuration showing a part added to the flag control circuit due to the structural change in FIG. 4. 7 is a schematic configuration diagram of the entire information processing device that processes multiple data at high speed, FIG. 8 is an explanatory diagram of a vector register group provided in the vector data processing device, and FIG. 9 is an explanatory diagram of the vector register group provided in the vector data processing device. FIG. 10 is a configuration diagram showing another embodiment of the present invention applied to a memory access control device provided in the vector data processing device, and FIG. 11 is a time chart showing the access timing of the vector data processing device. A configuration diagram showing an example of a control unit that generates a structure change signal based on the result,
FIG. 12 is a configuration diagram showing an example of a control section that generates a structural change signal depending on the usage status of the hardware. 1130, 1160, 1180 and 12 in the drawing
12, 1213, 1220, 1230, 126
0, 1280 is a control unit that determines the nature of the software being executed, 320, 321, 322, 323,
331, 332 and 1005A, B are functions for changing the hardware configuration, 300, 1030, 1
181 and 1281 are structural change signals.
Claims (1)
ウエア及びソフトウエアを有する情報処理装置
に、 所定期間内に投入あるいは実行された1種もし
くは複数種の命令タイプを記録し、その結果から
現在実行中のソフトウエアの性質を判断する制御
部と、 その判断結果に応じてハードウエアまたはフア
ームウエアの構成ないし論理を該ソフトウエアに
適合する形態に変更する機能とを設けてなること
を特徴とする情報処理装置。 2 ハードウエア及びそれを動作させるフアーム
ウエア及びソフトウエアを有する情報処理装置
に、 所定期間内のハードウエアの使用状況を記録
し、その結果から現在実行中のソフトウエアの性
質を判断する制御部と、 その判断結果に応じてハードウエアまたはフア
ームウエアの構成ないし論理を該ソフトウエアに
適合する形態に変更する機能とを設けてなること
を特徴とする情報処理装置。[Claims] 1. One or more types of instructions input or executed within a predetermined period are recorded in an information processing device having hardware and firmware and software for operating the same, and based on the results. It is characterized by being equipped with a control unit that determines the nature of the software that is currently being executed, and a function that changes the configuration or logic of the hardware or firmware to a form that is compatible with the software according to the determination result. Information processing equipment. 2. An information processing device that has hardware and firmware and software that operates the hardware is equipped with a control unit that records the usage status of the hardware within a predetermined period and determines the nature of the software currently being executed based on the results. An information processing device characterized by being provided with a function of changing the configuration or logic of hardware or firmware to a form compatible with the software according to the determination result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58093596A JPS59218558A (en) | 1983-05-27 | 1983-05-27 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58093596A JPS59218558A (en) | 1983-05-27 | 1983-05-27 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59218558A JPS59218558A (en) | 1984-12-08 |
JPH0232648B2 true JPH0232648B2 (en) | 1990-07-23 |
Family
ID=14086687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58093596A Granted JPS59218558A (en) | 1983-05-27 | 1983-05-27 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS59218558A (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59216252A (en) * | 1983-05-25 | 1984-12-06 | Fujitsu Ltd | Information processing device |
JPS6073736A (en) * | 1983-09-29 | 1985-04-25 | Fujitsu Ltd | Information processor |
JPS6074038A (en) * | 1983-09-30 | 1985-04-26 | Fujitsu Ltd | Information processor |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS4930311A (en) * | 1972-07-18 | 1974-03-18 | ||
JPS5415388B2 (en) * | 1974-12-11 | 1979-06-14 | ||
JPS59216252A (en) * | 1983-05-25 | 1984-12-06 | Fujitsu Ltd | Information processing device |
JPS6073736A (en) * | 1983-09-29 | 1985-04-25 | Fujitsu Ltd | Information processor |
JPS6074038A (en) * | 1983-09-30 | 1985-04-26 | Fujitsu Ltd | Information processor |
-
1983
- 1983-05-27 JP JP58093596A patent/JPS59218558A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS59218558A (en) | 1984-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4467419A (en) | Data processing system with access to a buffer store during data block transfers | |
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US4674032A (en) | High-performance pipelined stack with over-write protection | |
US4361868A (en) | Device for increasing the length of a logic computer address | |
US6272596B1 (en) | Data processor | |
JPH04343151A (en) | Memory access device | |
JPS6240740B2 (en) | ||
JPS6297036A (en) | Calculator system | |
JP3137117B2 (en) | High-speed processing computer | |
US6327648B1 (en) | Multiprocessor system for digital signal processing | |
US4575796A (en) | Information processing unit | |
US5642523A (en) | Microprocessor with variable size register windowing | |
JPH0232648B2 (en) | ||
JP2003233509A (en) | Digital signal processor | |
US5276853A (en) | Cache system | |
JPH0232647B2 (en) | ||
JPS60178580A (en) | Command control method | |
JPH0232649B2 (en) | ||
JPH0232650B2 (en) | ||
JPH0465406B2 (en) | ||
JP2668987B2 (en) | Data processing device | |
JP2892116B2 (en) | Read buffer control method for shared storage control system | |
JPH07110769A (en) | Vliw type computer | |
JPS6145359A (en) | Information processor | |
JPH0412491B2 (en) |