JP2677414B2 - 命令実行のシリアライズ制御方式 - Google Patents

命令実行のシリアライズ制御方式

Info

Publication number
JP2677414B2
JP2677414B2 JP1121277A JP12127789A JP2677414B2 JP 2677414 B2 JP2677414 B2 JP 2677414B2 JP 1121277 A JP1121277 A JP 1121277A JP 12127789 A JP12127789 A JP 12127789A JP 2677414 B2 JP2677414 B2 JP 2677414B2
Authority
JP
Japan
Prior art keywords
instruction
signal
unit
access
post
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
Application number
JP1121277A
Other languages
English (en)
Other versions
JPH02300852A (ja
Inventor
賢一 坂井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1121277A priority Critical patent/JP2677414B2/ja
Priority to CA002016532A priority patent/CA2016532C/en
Priority to US07/523,567 priority patent/US5247691A/en
Priority to DE69028572T priority patent/DE69028572T2/de
Priority to EP90305212A priority patent/EP0398639B1/en
Publication of JPH02300852A publication Critical patent/JPH02300852A/ja
Application granted granted Critical
Publication of JP2677414B2 publication Critical patent/JP2677414B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔概要〕 スカラユニットとベクトルユニットとを備える情報処
理システムにおける命令実行のシリアライズ制御方式に
関し、 POST命令/WAIT命令を用いたシリアライズ制御におい
て、インタロックされているスカラ命令の実行開始を早
めることを目的とし、 スカラユニットは、POST命令の実行時に、先行する主
記憶アクセスの未終了を表すアクセス未終了信号を強制
的に発生するとともに、この強制信号をベクトルユニッ
トから送られてくるアクセス未終了信号に継続させてい
くよう処理する手段と、WAIT命令の実行時に、この手段
がアクセス未終了信号の存在状態を表示しているときに
は、後続する主記憶アクセスに対してのインタロック信
号を発生するとともに、消滅状態を表示しているときに
は発生しないよう処理するインタロック信号発生手段と
を備え、ベクトルユニットは、スカラユニットから送ら
れてくるPOST命令が発信するまでの間、アクセス未終了
信号を強制的にスカラユニットに送出するとともに、こ
の強制信号を本来のアクセス未終了信号に継続させてい
くよう処理する手段を備えるよう構成する。
〔産業上の利用分野〕
本発明は、スカラユニットとスカラユニットから送ら
れるベクトル命令を処理するベクトルユニットとを備え
た科学技術用計算機等の情報処理システムにおける命令
実行のシリアライズ制御方式に関するものである。
このような科学技術用計算機システムでは、スカラ命
令とベクトル命令、あるいはベクトル命令とベクトル命
令間で命令の先行制御や並列実行が行われることがある
ため、主記憶参照順序が保証されないことがある。これ
から、主記憶参照順序を保証するためにはベクトルオペ
レーションのシリアライズを行う必要がある。
ベクトルオペレーションのシリアライズとは、それ以
前に実行中である命令が生じる主記憶オペランドアクセ
スをそれよりも後に実行すべき命令の主記憶オペランド
アクセスが生じる前に終了させることである。このベク
トルオペレーションのシリアライズは、ベクトル命令同
士及びベクトル命令とスカラ命令の主記憶オペランドア
クセス間において意味をもち、スカラ命令間でもともと
順序関係が保証されているため意味をもたない。
近年の科学技術用計算機システムにおける高速化要求
に応えるため、本発明はベクトルオペレーションのシリ
アライズに伴うオーバーヘッドの削減を図ることを意図
している。
〔従来の技術〕
第10図に、本発明が適用される従来の科学技術用計算
機システムの構成例を示す。図中、1はスカラユニッ
ト、2はベクトルユニット、3はベクトル実行部、4及
び5は乗算・加算パイプライン、6は除算パイプライ
ン、7はベクトルレジスタ、8及び9はロード・ストア
パイプライン、10は主記憶装置、11はベクトル制御部、
12はベクトル命令管理部、13はベクトル記憶管理部、14
は記憶制御部である。
スカラユニット1はプログラム中の命令を順次フェッ
チし、スカラ命令については自分自身で実行し、ベクト
ル命令についてはベクトルユニット2へ送って実行させ
る。ベクトルユニット2のベクトル制御部11において、
ベクトル命令管理部12はスカラユニット1から送られて
きたベクトル命令を受け取り、実行を管理する。ベクト
ルLOAD命令、ベクトルSTORE命令の場合は、ベクトル記
憶管理部13が起動され、記憶制御部14を介して主記憶装
置10へのアクセスが行われる。主記憶装置10からベクト
ルレジスタ7へのベクトルデータのLOAD処理、およびベ
クトルレジスタ7から主記憶装置10へのベクトルデータ
のSTORE処理は、ロード・ストアパイプライン8,9を用い
て行われる。一方、スカラユニット1から主記憶装置10
へのアクセスは、ベクトルユニット2内の記憶制御部14
を介して行われる。
スカラユニット1とベクトルユニット2とは、可能な
限り並列に動作することがシステムの処理性能を高める
うえで望ましい。しかし、プログラム中のベクトル命令
あるいはスカラ命令が、先行するベクトル命令あるいは
スカラ命令の実行結果のデータを主記憶オペランドとし
て使用する場合、それらの命令間での実行順序を保証す
ることが必要となる。この制御が、ベクトルオペレーシ
ョンのシリアライズ制御である。
従来のシステムにおいて、ベクトルオペレーションの
シリアライズ制御を、POST命令及びWAIT命令を利用して
行う方法がある。この方法は、POST命令より前に実行さ
れるべき命令の主記憶オペランドの参照が、WAIT命令よ
り後で実行されるべき命令の主記憶オペランドの参照よ
りも早く行われるように制御するものである。このた
め、POST命令とWAIT命令にはさまれた命令の主記憶オペ
ランドは、ベクトルオペレーションのシリアライズの対
象から除外されることになる。
従来、ベクトル命令とスカラ命令の各組み合わせでの
シリアライズの保証は、次のように行われている。
(1) ベクトル命令→ベクトル命令間のシリアライズ (a)POST命令に先行するベクトルLOAD命令の保証 −プライオリティがとれるまで。
(b)POST命令に先行するベクトルSTORE命令の保証 −プライオリティがとれるまで。
(2) スカラ命令→ベクトル命令間のシリアライズ (a)POST命令に先行するスカラLOAD命令の保証 −もともと保証されている。
(b)POST命令に先行するスカラSTORE命令の保証 −プライオリティがとれるまで。
(3) ベクトル命令→スカラ命令間のシリアライズ (a)POST命令に先行するベクトルLOAD命令の保証 −プライオリティがとれるまで。
(b)POST命令に先行するベクトルSTORE命令の保証 −スカラユニット1へのバッファ・インバリデーション
が全てスカラユニット1に反映されるまで。
ここで、上記(3)の(b)は、POST命令に先行する
ベクトルSTORE命令によって主記憶装置10にデータを書
き込んだ場合、スカラユニット1内のバッファ(キャッ
シュと称されている)に該当するアドレスの旧データが
あれば、それらを全て無効化するバッファ無効果(イン
バリデーション)処理を行い、これが終了するまでは、
WAIT命令の後の主記憶参照を伴うスカラ命令を実行させ
ないことを意味している。
次に、第11図及び第12図を使い、上記(3)の(b)
に関しての従来のシリアライズ制御方式による命令シー
ケンスの処理について具体的に説明する。
第11図は、POST命令とWAIT命令とを用いてシリアライ
ズ制御を行う命令シーケンスの例を示したもので、VST
はベクトルSTORE命令、LDはスカラLOAD命令を表してい
る。この図の例では、POSTの前にあるのVSTが実行完
了するまでは、WAITの後にあるのLDは実行されず、こ
れらVSTとLDとの間の主記憶参照順序は保証される。一
方、POSTとWAITの間にあるないしのVSTについて
は、シリアライズ制御は行われずに主記憶の参照順序は
保証されないことになる。
第12図は、この第11図に示されている命令シーケンス
の処理フローを示したものである。この例では、第10図
のベクトルユニット2のベクトル命令管理部12により、
第11図中のないしのベクトル命令VSTは、2本のパ
イプラインを用いてこの第12図に示すように順次2命令
ずつ並列実行されることになる。
この第12図に示すように、従来のシリアライズ制御方
式では、ベクトル命令管理部12は、のVSTの実行が完
了するまでの間、スカラユニット1に対して、POST命令
に先行する命令が未完了であることを示すPOST_PENDING
を出力し、のVSTの実行が完了すると、このPOST_PEND
INGをOFFにする。ベクトル命令管理部12は、続いて、
のVSTまでの各ベクトル命令を発信した後にWAIT命令を
発信し、スカラユニット1に対して、WAIT命令の発信を
示すインタロック解除可能信号であるWAIT_ACKを返す。
そして、スカラユニット1は、ベクトルユニット2から
のWAIT_ACKを検出すると、POSTB_PENDINGがOFFであるこ
とを確認して、続くのスカラLOAD命令LDを発信する。
このように、従来のベクトル命令→スカラ命令のシリ
アライズでは、POST命令に先行する主記憶アスセス処理
の継続の認識と、WAIT命令開始の認識が、それぞれベク
トルユニット2内で、POST命令、WAIT命令が発信された
タイミングで行われるよう構成されていたのである。
〔発明が解決しようとする課題〕 しかしながら、このような従来のベクトル命令→スカ
ラ命令のシリアライズでは、スカラユニット1では、ベ
クトルユニット2から送られてくるPOST_PENDINGがOFF
になっても、更にベクトルユニット2からWAIT_ACKが送
られてくるまでは、後続命令を発信することができなか
った。すなわち、POST命令に先行する主記憶アクセス処
理が終了しているにもかかわらず、ベクトルユニット2
側でWAIT命令が発信しないために、スカラユニット1側
では、後続命令を発信することができなかったのであ
る。このため、スカラユニット1の後続命令が待たされ
る場合があり、シリアライズ処理によるオーバヘッドが
増大するという問題点があった。
本発明はかかる事情に鑑みてなされたものであって、
POST命令/WAIT命令を用いたベクトル命令からスカラ命
令へのシリアライズにおいて、スカラユニット1におい
てインタロックされているスカラ命令の実行開始を早め
て、ベクトル命令とスカラ命令の並列実行の可能性を高
めるようにすることを目的とするものである。
〔課題を解決するための手段〕
第1図は本発明の原理構成図である。
図中、第10図で説明したものと同じものについては、
同一の記号で示してある。100はスカラ命令管理部であ
って、スカラ命令の実行を管理するもの、101はPOST命
令検出部であって、POST命令の実行開始を検出するも
の、102はWAIT命令検出部であって、WAIT命令の実行開
始を検出するもの、103はアクセス未終了信号発生部で
あって、POST命令検出部101によりPOST命令が検出され
るときに、そのPOST命令に先行する主記憶アクセスが未
だ終了していないことを表すアクセス未終了信号を強制
的に発生するもの、104はインタロック信号発生部であ
って、WAIT命令検出部102によりWAIT命令が検出される
ときに、アクセス未終了信号発生部103からのアクセス
未終了信号の出力状態に従って、そのWAIT命令に後続す
る主記憶アスセスをインタロックするためのインタロッ
ク信号を発生するもの、105はスカラ実行部であって、
スカラ命令を実行するもの、106は後続命令インタロッ
ク部であって、インタロック信号発生部104からのイン
タロック信号に応じて、WAIT命令に後続する主記憶アス
セスをインタロックするもの、200はアクセス未終了信
号送出部であって、スカラユニット1からPOST命令が送
られてくるときに、そのPOST命令に先行する主記憶アク
セスが未だ終了していないことを表すアクセス未終了信
号をスカラユニット1に対して送出するもの、201はシ
リアライズ制御部であって、シリアライズ処理の制御を
実行するものである。
〔作用〕
本発明では、スカラユニット1のアクセス未終了信号
発生部103は、スカラユニット1内でPOST命令の実行が
開始されると、ベクトルユニット2とは関係なく直ちに
インタロック信号発生部104に対してアクセス未終了信
号のラッチ出力を出力する。そして、スカラユニット1
は、このPOST命令をベクトルユニット2のベクトル命令
管理部12に渡すよう処理する。ベクトル命令管理部12の
アクセス未終了信号送出部200は、このPOST命令を受け
取ると、直ちにスカラユニット1のアクセス未終了信号
発生部103及びインタロック信号発生部104に対してアク
セス未終了信号を送出するよう処理する。そして、シリ
アライズ制御部201は、受け取ったPOST命令の発信に応
じて記憶制御部14に対してシリアライズ処理を起動す
る。
このようにしてシリアライズ処理に入ると、シリアラ
イズ制御部201は、記憶制御部14からの情報に従って、
受け取ったPOST命令に先行する主記憶アクセスが終了し
ていない間、アクセス未終了信号送出部200に対してア
クセス未終了信号を出力する。この出力処理により、ア
クセス未終了信号送出部200は、POST命令がベクトルユ
ニット2に渡されたときからそのPOST命令に先行する主
記憶アクセスが終了するまでの間、アクセス未終了信号
発生部103及びインタロック信号発生部104に対してアク
セス未終了信号を送出することになる。
一方、スカラユニット1のインタロック信号発生部10
4は、スカラユニット1内でWAIT命令の実行が開始され
るときにおいて、アクセス未終了信号発生部103からア
クセス未終了信号が出力されているときには、後続命令
インタロック106に対してインタロック信号を出力する
よう処理するとともに、アクセス未終了信号が出力され
ていないときには、インタロック信号を出力しないよう
処理する。このインタロック信号に従って、後続命令イ
ンタロック部106は、WAIT命令に後続する主記憶アクセ
スの実行をインタロックすることになる。このスカラユ
ニット1の処理時にあって、アクセス未終了信号送出部
200からのアクセス未終了信号が消滅するとき、すなわ
ち、POST命令に先行する主記憶アクセスが終了するとき
には、アクセス未終了信号発生部103はそのアクセス未
終了信号のラッチ出力をリセットするとともに、インタ
ロック信号発生部104は、出力しているインタロック信
号をリセットするよう処理する。
このように動作することから、本発明では、スカラユ
ニット1でのWAIT命令の実行開始時に、既にPOST命令に
先行する主記憶アクセスが終了しているときには、アク
セス未終了信号発生部103のアクセス未終了信号に既に
リセットされているので、インタロック信号発生部104
がインタロック信号を出力することはなく、従ってスカ
ラ実行部105は直ちにWAIT命令に後続する主記憶アクセ
スの実行に入れることになる。そして、WAIT命令の実行
開始時に、POST命令に先行する主記憶アクセスが終了し
ていないがためにインタロック信号発生部104がインタ
ロック信号を出力するときにあっては、主記憶アクセス
の終了と同時にインタロック信号発生部104はそのイン
タロック信号をリセットするので、スカラ実行部105
は、POST命令に先行する主記憶アクセスの終了と同時に
WAIT命令に後続する主記憶アクセスの実行に入れること
になる。
このように、従来はベクトルユニット2におけるWAIT
命令の発信時に応じてWAIT命令に後続する主記憶アクセ
スの実行に入るようにしていたのに対して、本発明で
は、スカラユニット1におけるWAIT命令の実行時に、PO
ST命令に先行する主記憶アクセスが終了しているのか否
かを判断するよう構成して、終了していると判断すると
きには直ちにWAIT命令に後続する主記憶アクセスの実行
に入るように構成したことから、シリアライズ処理のオ
ーバヘッドがなくなるとともに、POST命令とWAIT命令と
の間に沢山のベクトル命令を挿入することで、ベクトル
命令とスカラ命令の並列実行による性能向上が期待でき
るようになるのである。
〔実施例〕
以下、実施例に従って本発明を詳細に説明する。
第2図に、本発明の一実施例システムの構成を示す。
図中、1はスカラユニット(SUと称することがある)、
2はベクトルユニット(UVと称することがある)、12は
ベクトル命令管理部(Viと称することがある)、14は記
憶制御部(MCUと称することがある)であり、第1図に
示されるものと同じものである。そして、スカラユニッ
ト1内のBufferは、主記憶アクセスデータのバッファで
あり、POST_Pending、WAIT_Pendingは、それぞれラッチ
である。また、記憶制御部14内のBIASは、ベクトルSTOR
E命令が更新した主記憶アドレスをバッファインバリデ
ーションのために保持しておくスタックであり、このア
ドレスは後にスカラユニット1内のBufferに反映され、
該当するアドレスのデータが無効化される。
次に、第2図のブロック間に矢印で示される信号な
いしについて説明する。
:シリアライズ起動信号(Vi→MCU) −POST命令に先行するすべてのSTORE命令が、すべてBIA
Sに入ったことが保証できるタイミングでViからMCUに送
る。
:BIAS_PENDING信号(MCU→Vi) −シリアライズ起動信号によりシリアライズが起動され
てから、BIASが空になるまでONとなる。
:POST_PENDING信号(Vi→SU) −SUからPOST命令を受け取るとONになる。その後、POST
命令が発信されることでシリアライズ処理が開始され、
POST命令に先行するすべてのSTORE命令によるBIASが空
になり、かつ、POST命令に先行するすべてのLOAD命令の
プライオリティがとれるとOFFになる。
:シリアライズ終了信号(MCU→SU) −BUASが空になったところで、MCUからSUに送る。SUで
は、この信号によりバッファインバリデーションBIを行
い、その期間、主記憶アスセススカラ命令をインタロッ
クする。
第1図でも説明したように、本発明では、スカラユニ
ット1でのWAIT命令の実行開始時に、POST命令に先行す
る主記憶アクセスが終了したのか否かを判断して、WAIT
命令に後続する主記憶アクセスのインタロックを決定す
るよう構成するものである。この構成にあって、スカラ
ユニット1側でPOST命令に先行する主記憶アクセスが終
了したのか否かを正確に判断できるようにするために、
スカラユニット1内でPOST命令の実行開始時にPOST_PEN
DING信号を強制的に発生させるとともに、この強制的に
発生させたPOST_PENDING信号をベクトルユニット2から
送られてくるPOST_PENDING信号に継続させていくよう構
成するものである。
第3図に、スカラユニット1内で実行されるこのPOST
_PENDING信号の生成のための回路構成の一実施例を示
す。図中、30はAND回路であって、POST命令の実行が開
始されるときに出力信号を出力するもの、31は第2図の
POST_Pendingに相当するセット・リセットラッチであっ
て、AND回路30から出力信号が出力されるときにセット
されてPOST_PENDING信号を出力するもの、32は所定の数
(パイプラインのステージ数+遅延するマシンサイクル
数)に従って設けられるフリップフロップであって、AN
D回路30の出力信号を順次遅延していくもの、33はパイ
プラインのステージ数に対応させて設けられるAND回路
であって、対応するフリップフロップ32の出力と各ステ
ージにおけるPOST命令の存在を表示するバリッドとの論
理積をとるもの、34はNOR回路であって、AND回路33とパ
イプラインに対応されないフリップフロップ32とベクト
ルユニット2からのPOST_PENDING信号とがすべてOFFに
なるときに、セット・リセットラッチ31に対してRESET_
POST_PENDING信号を送出することでセット・リセットラ
ッチ31が出力するPOST_PENDING信号をリセットするもの
である。
本発明では、このセット・リセットラッチ31が出力す
るPOST_PENDING信号で、WAIT命令に後続する主記憶アク
セスのインタロックのためのインタロック信号を生成す
るよう構成するものである。
第4図に、スカラユニット1内で実行されるこのイン
タロック信号の生成のための回路構成の一実施例を示
す。図中、40はAND回路であって、セット・リセットラ
ッチ31からのPOST_PENDING信号がONで、かつWAIT命令の
実行が開始されるときに出力信号を出力するもの、41は
第2図のWAIT_Pendingに相当するセット・リセットラッ
チであって、AND回路40から出力信号が出力されるとき
にセットされてWAIT_PENDING信号を出力するもの、42は
AND回路であって、セット・リセットラッチ41からのWAI
T_PENDING信号がONで、かつWAIT命令に後続する主記憶
のアクセス命令の実行開始要求があるときにINTERLOCK
信号を発生するもの、43はAND回路であって、セット・
リセットラッチ41からのWAIT_PENDING信号がONで、かつ
セット・リセットラッチ31からのPOST_PENDING信号がOF
Fになるときに、セット・リセットラッチ41に対してリ
セット信号が送出することでセット・リセットラッチ41
が出力するWAIT_PENDING信号をリセットするものある。
次に、第5図及び第6図に従って、ベクトルユニット
2で実行されるPOST_PENDING信号の生成のための回路構
成の一実施例について説明する。ベクトルユニット2の
ベクトル命令管理部12は、第5図に示すように、VFSで
示す命令フェッチステージと、VPSで示す命令デコード
ステージと、VQSで示す命令発信ステージというステー
ジに従って、スカラユニット1から受け取るベクトル命
令の発信を管理するよう構成され、命令フェッチステー
ジと命令デコードステージとの間のデータの授受のため
に、VFBで示される命令フェッチのバッファが設けられ
るとともに、命令デコードステージと命令発信ステージ
との間のデータの授受のために、VQBで示される命令発
信ステージのバッファが設けられるよう構成される。図
中の“V"は、そのステージが有効であることを表示する
バリッドのフラグであり、また、“P"は、そのステージ
にPOST命令が存在することを表示するフラグである。
第6図に、ベクトルユニット2が備えるPOST_PENDING
信号の生成のための回路構成の一実施例を示す。図中、
60は第5図の各ステージ(バッファ)対応で設けられる
AND回路であって、各ステージが有効でかつ各ステージ
にPOST命令が存在しているときに出力信号を出力するも
の、201は第1図で説明したシリアライズ制御部であっ
て、図示しない命令発信制御部からのPOST命令の発信信
号に従って記憶制御部14にシリアライズ起動信号を送出
するとともに、記憶制御部14から送られてくるBIAS_PEN
DING信号に従って、POST命令に先行する主記憶アクセス
が終了していないことを表すPOST_PENDING信号(この信
号が本来のPOST_PENDING信号である)を送出するもの、
61はOR回路であって、AND回路60からの出力信号とシリ
アライズ制御部201からのPOST_PENDING信号との間の論
理和出力を出力するものである。このOR回路61の論理和
出力が、スカラユニット1に送られるPOST_PENDING信号
となるもので、AND回路60のいずれか1つから出力信号
が出力されているとき、すなわち、発信される前のPOST
命令があるときと、シリアライズ制御部201からのPOST_
PENDING信号がONしているときには、OR回路61からPOST_
PENDING信号がスカラユニット1に対して送出されるこ
とになる。
次に、第7図ないし第9図に示す処理フロー図に従っ
て、このように構成される本発明の動作処理について説
明する。ここで、これらの第7図、第8図、第9図にお
いて、中央に示す一点鎖線を境にして上段はスカラユニ
ット1の制御シーケンス、下段はベクトルユニット2の
制御シーケンスを表している。図中に示すように、スカ
ラユニット1のパイプラインでは、POST命令やWAIT命令
等のベクトル命令は4フローを使用して処理されること
になる。また、フロー中のD,A,T,E,E,Wは、パイプライ
ンのステージを表し、Dはデコード、Aはオペランドア
ドレスの生成、Tはアドレス変換、Bはオペランドのバ
ッファアクセス、Eは演算、Wは結果の書き込みであ
る。
最初に、第7図の処理フロー図に従って、スカラユニ
ット1及びベクトルユニット2で実行されるPOST_PENDI
NG信号の生成処理について説明する。
スカラユニット1のAND回路30は、POST命令の第4フ
ロー中のAステージのAリリース信号Arelのタイミング
で出力信号を出力することで、セット・リセットラッチ
31からPOST_PENDING信号が出力されることになるよう処
理する。このようにして、ベクトルユニット2とは関係
なく強制的に出力されるPOST_PENDING信号は、フリップ
フロップ32の遅延動作とNOR回路34のNOR機能に従って、
図中のに示すように、第4フローのWステージが終了
してからも3マシンサイクル後までの間リセットされる
ことなく出力されることが保証されることになる。一
方、POST命令は、図中のIV(インストラクション・バリ
ッド)とDV(データ・バリッド)のタイミングに従って
スカラユニット1からベクトルユニット2にと渡され
る。
このようにしてPOST命令がベクトル命令管理部12の命
令フェッチステージVFSに入力すると、OR回路61は、AND
回路60からの出力信号を受けて、図中のに示すよう
に、POST命令の発信前からスカラユニット1のNOR回路3
4に対してPOST_PENDING信号を強制的に送出するよう処
理する。そして、OR回路61は、POST命令の発信後にはシ
リアライズ制御部201からのPOST_PENDING信号に従っ
て、スカラユニット1のNOR回路34に対してPOST_PENDIN
G信号を送出し続けるよう処理することになる。。このO
R回路61からのPOST_PENDING信号の送出処理を受けて、
スカラユニット1のNOR回路34は、シリアライズ制御部2
01からPOST_PENDING信号が出力されなくなるまで、セッ
ト・リセットラッチ31に対してRESET_POST_PENDING信号
を出力しないよう処理する。この処理に従って、図中の
に示すように、スカラユニット1のセット・リセット
ラッチ31は、POST命令に先行する主記憶アクセスが終了
するまでの間、のPOST_PENDINGに続けて途切れること
なくPOST_PENDING信号を出力していくことになる。
次に、第8図及び第9図の処理フロー図に従って、WA
IT命令に後続する主記憶参照のスカラ命令のインタロッ
ク処理について説明する。
スカラユニット1のAND回路40は、WAIT命令の第4フ
ロー中のAステージのAリリース信号Arelのタイミング
で論理積を求めて出力する。このとき、セット・リセッ
トラッチ31からPOST_PENDING信号が出力されていると
き、すなわち、未だPOST命令に先行する主記憶アクセス
が終了していないときには、AND回路40は、第8図中の
に示すように、セット・リセットラッチ41からWAIT_P
ENDING信号が出力されることになるよう出力する。そし
て、AND回路42は、この出力されるWAIT_PENDING信号に
従って、主記憶参照のスカラ命令をインタロックするよ
う処理する。このインタロック処理は、ベクトルユニッ
ト2からのPOST_PENDING信号がOFFになる時点に同期し
て、セット・リセットラッチ31のPOST_PENDING信号がOF
FになることでAND回路43に従って解除され、それに応じ
てWAIT命令に後続する主記憶アクセスの実行が許可され
るよう処理される。
一方、AND回路40がAリリース信号Arelのタイミング
で論理積を求めて出力するとき、セット・リセットラッ
チ31からPOST_PENDING信号が出力されていないとき、す
なわち、既にPOST命令に先行する主記憶アクセスが終了
しているときには、AND回路は、第9図中のに示すよ
うに、WAIT_PENDING信号を出力しないよう処理する。こ
の処理に従って、AND回路42からINTERLOCK信号が出力さ
れることはないので、スカラユニット1はWAIT命令に後
続する主記憶アクセスを直ちに実行できることになる。
従って、ベクトルユニット2でのWAIT命令の発信までの
間待たされることがなくなり、シリアライズ制御に伴う
オーバーヘッドの問題点を大きく改善できるようになる
のである。
〔発明の効果〕
以上説明したように、本発明によれば、スカラユニッ
ト1は、WAIT命令による後続の主記憶参照スカラ命令の
インタロックをベクトルユニット2におけるWAIT命令の
発信を待たずに解除可能となることから、その後続スカ
ラ命令の実行を早めることができることになる。しか
も、POST命令とWAIT命令の間にベクトル命令が沢山設け
られるような場合には、ベクトル命令とスカラ命令との
並列実行による処理性能の向上を図れるようになるので
ある。
【図面の簡単な説明】
第1図は本発明の原理構成図、 第2図は本発明の一実施例システムの構成図、 第3図はスカラユニットでのPOST_PENDING信号の生成論
理の一実施例、 第4図はスカラユニットでのINTERLOCK信号の生成論理
の一実施例、 第5図はベクトル命令管理部のステージの説明図、 第6図はベクトルユニットでのPOST_PENDING信号の生成
論理の一実施例、 第7図、第8図及び第9図は本発明によるシリアライズ
制御の処理フロー図、 第10図は従来の科学技術用計算機システムの構成図、 第11図はPOST/WAITを用いてシリアライズを行った命令
シーケンス例の説明図、 第12図は従来のシリアライズ制御方式の処理フロー図で
ある。 図中、1はスカラユニット、2はベクトルユニット、10
は主記憶装置、12はベクトル命令管理部、14は記憶制御
部、100はスカラ命令管理部、103はアクセス未終了信号
発生部、104はインタロック信号発生部、200はアクセス
未終了信号送出部、201はシリアライズ制御部である。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】スカラ命令を処理するスカラユニット
    (1)と、該スカラユニット(1)から送られるベクト
    ル命令を処理するベクトルユニット(2)と、主記憶装
    置とを備え、POST命令とWAIT命令によりシリアライズ制
    御を行う情報処理システムにおいて、 スカラユニット(1)は、POST命令の実行時に、該POST
    命令に先行する主記憶アクセスが未だ終了していないこ
    とを表すアクセス未終了信号を強制的に発生するととも
    に、該強制信号をベクトルユニット(2)から送られて
    くるアクセス未終了信号に継続させていくよう処理する
    アクセス未終了信号発生部(103)と、 WAIT命令の実行時に、該アクセス未終了信号発生部(10
    3)がアクセス未終了信号の存在状態を表示していると
    きには、該WAIT命令に後続する主記憶アクセスをインタ
    ロックするためのインタロック信号を発生するととも
    に、アクセス未終了信号の消滅状態を表示しているとき
    には、該インタロック信号を発生しないよう処理し、か
    つ発生させたインタロック信号をベクトルユニット
    (2)から送られてくるアクセス未終了信号の消滅時に
    同期させて解除するよう処理するインタロック信号発生
    部(104)とを備え、 そして、ベクトルユニット(2)は、スカラユニット
    (1)からPOST命令が送られてくるときに、該POST命令
    が発信するまでの間、該POST命令に先行する主記憶アク
    セスが未だ終了していないことを表すアクセス未終了信
    号を強制的にスカラユニット(1)に対して送出すると
    ともに、該強制信号を該POST命令の発信に伴って発生さ
    れる本来のアクセス未終了信号に継続させていくよう処
    理するアクセス未終了信号送出部(200)を備えること
    を、 特徴とする命令実行のシリアライズ制御方式。
JP1121277A 1989-05-15 1989-05-15 命令実行のシリアライズ制御方式 Expired - Lifetime JP2677414B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP1121277A JP2677414B2 (ja) 1989-05-15 1989-05-15 命令実行のシリアライズ制御方式
CA002016532A CA2016532C (en) 1989-05-15 1990-05-10 Serializing system between vector instruction and scalar instruction in data processing system
US07/523,567 US5247691A (en) 1989-05-15 1990-05-15 System for releasing suspended execution of scalar instructions following a wait instruction immediately upon change of vector post pending signal
DE69028572T DE69028572T2 (de) 1989-05-15 1990-05-15 Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem Datenverarbeitungssystem
EP90305212A EP0398639B1 (en) 1989-05-15 1990-05-15 Serializing system between vector instruction and scalar instruction in data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1121277A JP2677414B2 (ja) 1989-05-15 1989-05-15 命令実行のシリアライズ制御方式

Publications (2)

Publication Number Publication Date
JPH02300852A JPH02300852A (ja) 1990-12-13
JP2677414B2 true JP2677414B2 (ja) 1997-11-17

Family

ID=14807272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1121277A Expired - Lifetime JP2677414B2 (ja) 1989-05-15 1989-05-15 命令実行のシリアライズ制御方式

Country Status (5)

Country Link
US (1) US5247691A (ja)
EP (1) EP0398639B1 (ja)
JP (1) JP2677414B2 (ja)
CA (1) CA2016532C (ja)
DE (1) DE69028572T2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530881A (en) * 1991-06-06 1996-06-25 Hitachi, Ltd. Vector processing apparatus for processing different instruction set architectures corresponding to mingled-type programs and separate-type programs
EP0529303A3 (en) * 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US5809552A (en) * 1992-01-29 1998-09-15 Fujitsu Limited Data processing system, memory access device and method including selecting the number of pipeline stages based on pipeline conditions
US5872988A (en) * 1992-06-17 1999-02-16 U.S. Philips Corporation Parallel data processing device having a concatenated data path between elementary processors
JPH06168263A (ja) * 1992-11-30 1994-06-14 Fujitsu Ltd ベクトル処理装置
US6513107B1 (en) * 1999-08-17 2003-01-28 Nec Electronics, Inc. Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
US6625720B1 (en) * 1999-08-17 2003-09-23 Nec Electronics, Inc. System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US20030196072A1 (en) * 2002-04-11 2003-10-16 Chinnakonda Murali S. Digital signal processor architecture for high computation speed
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7543133B1 (en) 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US7437521B1 (en) * 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7421565B1 (en) * 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US20070074008A1 (en) * 2005-09-28 2007-03-29 Donofrio David D Mixed mode floating-point pipeline with extended functions
US7694025B1 (en) 2006-03-31 2010-04-06 Integrated Device Technology, Inc. Method and device for base address sorting and entry into base address registers
US7647438B1 (en) 2006-05-09 2010-01-12 Integrated Device Technology, Inc. Binary base address sorting method and device with shift vector
US7779197B1 (en) 2006-05-09 2010-08-17 Integrated Device Technology, Inc. Device and method for address matching with post matching limit check and nullification
US7634586B1 (en) 2006-06-05 2009-12-15 Integrated Device Technology, Inc. Device for concurrent limit validity check

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6043535B2 (ja) * 1979-12-29 1985-09-28 富士通株式会社 情報処理装置
JPS6186844A (ja) * 1984-10-04 1986-05-02 Fujitsu Ltd 逐次化命令の移動方式
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US4760518A (en) * 1986-02-28 1988-07-26 Scientific Computer Systems Corporation Bi-directional databus system for supporting superposition of vector and scalar operations in a computer
JPH06103494B2 (ja) * 1986-11-18 1994-12-14 株式会社日立製作所 ベクトル処理装置の制御方式
JPS63253468A (ja) * 1987-04-10 1988-10-20 Hitachi Ltd ベクトル処理装置
JPS6432379A (en) * 1987-07-29 1989-02-02 Hitachi Ltd Computer
JPS6467680A (en) * 1987-09-09 1989-03-14 Hitachi Ltd Vector processor

Also Published As

Publication number Publication date
EP0398639A3 (en) 1991-05-29
US5247691A (en) 1993-09-21
EP0398639B1 (en) 1996-09-18
DE69028572D1 (de) 1996-10-24
EP0398639A2 (en) 1990-11-22
CA2016532A1 (en) 1990-11-15
CA2016532C (en) 1994-04-26
DE69028572T2 (de) 1997-01-30
JPH02300852A (ja) 1990-12-13

Similar Documents

Publication Publication Date Title
JP2677414B2 (ja) 命令実行のシリアライズ制御方式
US5293500A (en) Parallel processing method and apparatus
CA2497807A1 (en) Vector processing apparatus with overtaking function
JPH07302200A (ja) 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。
KR100335785B1 (ko) 데이타처리명령의실행
JPH06103494B2 (ja) ベクトル処理装置の制御方式
US5226166A (en) Parallel operation processor with second command unit
US5129065A (en) Apparatus and methods for interface register handshake for controlling devices
EP0292188B1 (en) Cache system
US5276853A (en) Cache system
EP0600583B1 (en) Vector processing device
JP2504536B2 (ja) 命令実行のシリアライズ制御方式
JPS6227837A (ja) 主記憶アクセス方式
JPS5896345A (ja) 階層型演算方式
JP3017866B2 (ja) 割込み処理方式
JP2549410B2 (ja) 主記憶参照順序制御方式
JP2875546B2 (ja) 情報処理システム
JPH02301830A (ja) 情報処理方式
JPH0269825A (ja) パイプライン制御方式
JPH02294761A (ja) マルチプロセッサシステムの逐次化処理方式
JPH0281269A (ja) 命令実行のシリアライズ制御方式
JP2806690B2 (ja) マイクロプロセッサ
JPH0332103B2 (ja)
JPH02217924A (ja) データ処理装置のストア処理方式
JPH0769800B2 (ja) データ処理装置