JPS5948472B2 - 可変長オペランドの取出制御機構 - Google Patents

可変長オペランドの取出制御機構

Info

Publication number
JPS5948472B2
JPS5948472B2 JP54019898A JP1989879A JPS5948472B2 JP S5948472 B2 JPS5948472 B2 JP S5948472B2 JP 54019898 A JP54019898 A JP 54019898A JP 1989879 A JP1989879 A JP 1989879A JP S5948472 B2 JPS5948472 B2 JP S5948472B2
Authority
JP
Japan
Prior art keywords
signal
aop
operand
fetch
latch
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
Application number
JP54019898A
Other languages
English (en)
Other versions
JPS54127634A (en
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS54127634A publication Critical patent/JPS54127634A/ja
Publication of JPS5948472B2 publication Critical patent/JPS5948472B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/383Operand prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 本発明はキャッシュ並びに主記憶のキャッシュ・バイパ
スからデータを取出すことに係り、また次の命◆の復号
と並行して、(5f変長オペランドを実行するに必要な
順序で取出データを要求し、受取り、そしてバッファす
る如き)複数の浮動式オベランド・アドレス・レジスタ
及びオペランド・バッファの順序づけを制御することに
係る。
発明の背景IBMシステム/370モデル168の如き
大形商業プロセツサでは、主記憶制御機構(Procー
essorStorageControlFuncti
on:以下)PSCFlと略す)と命今前処理機構(I
nstru−ct10nPre−Pr0CeSSing
FUI1Cti0n:以下「IPPFlと略す)との間
に設けられるデータ転送用のバスはダブルワードの幅を
有している。
従つて、大量のデータが転送されねばならない場合、多
数の夕゛ブルワード・サイクルが取られることになる。
キヤツシユ(高速バツフア記憶)がPSCF中に設けら
れる場合には、主記憶からキ−17ツソユへロードする
ことができる最小量のデータである[ライン」のサイズ
を、夕゛ブルワードの2の累乗倍(2,4,8又は16
)に取るのが晋通である。このライン・サイズはシステ
ムの註能を最適化するように選ばれる。ライン・サイズ
を小さく取ると多数のラインを転送する必要があるため
に肚能の低下を招くことがあり、また逆にライン・サイ
ズを大きく取るとライン転送に長い時間を要するために
かえつて囲能の低下を招くことがある。さらに、バス・
サイズとライン・サイズは異なつているので、キヤツシ
ユヘ1ラインをロードするためには複数のサイクルを要
し、しかもこれらのサイクルの間、キヤツシユヘ転送中
のラインをプロセッサが利用できないという問題がある
。先行技術 命◆ユニツトヘ供給される記憶データのアクセス速度を
改善するために、キヤツシユを使用することは先行技術
において周知である。
たとえば、米国特許第3569938号にば、主記憶か
らキヤツシユへの転送をキヤツシユ・ブロツクと呼ばれ
るデータ群を単位として行い、その際、主記憶とキヤツ
シユの間にあるバスの幅に依存して1ラインを一連の並
列サブラインとして取出すことが示されている。このサ
ブラインは、種々の状況に応じて、バイト、ワード、ダ
ブルワード又は4ワードのいずれかに等しく選ばれる。
IBMシステム/370モデル168の如き大形のプロ
セツサでは、サブラインとしてダブルワードが使用され
る。また、米国特許第3588829号、第38068
88号、第3896419号等の先行技術には、或るラ
インを取出している間に、要求されたサブライン(これ
は必ずしもライン中の第1サブラインでなくてもよい)
をキヤツシユヘ転送すると同時に、命令ユニツトへも転
送することが示されている。しかし、本発明のように、
転送中ラインのうち要永されたサブラインから始まつて
最上位アドレスを有するサブラインに至るまでの他のサ
ブラインを、命令ユニツト及びキヤツシユの双方へ同時
的に転送することについては、これら先行技術には何も
示されていない。本発明の1側面によれば、谷サブライ
ンがキヤツシユヘ転送されるとすぐに、IPPFは最も
望ましいサブラインのすべてをアクセスすることができ
る。本発明のように、ライン転送が完了する前に、転込
中ラインの第1サブラインを除く任意のサブラィンを命
今ユニツトヘアクセス可能にするという先行技術は知ら
れていなぃ。事実、既知の先行技術には、ライン転送中
にキヤツシユのアクセスを禁止するという技術が示され
ているにすぎない。たとえば、米国特許第370538
8号はこの類型に属し、キヤツシユ中の異なるブロツク
、すなわち完成されたラインへのアクセスのみを許谷す
る技術を示しているにすぎない6また米国特許第346
2744号には、最初の命令の前処理の間に、命令ユニ
ツトによつて主記憶から要求された諸オペランドヘ諸タ
グを割当てるとともに、これらのオペランドを処理すべ
き実行ユニツト中の諸レジスタヘ前記タグを割当てるよ
うにしたオペランド処理技術が示されている。
詳述すれば、各オペランドが主記憶から共通データ・バ
スに到着する際、このオペランドヘ割当てられたタグが
すべてのレジスタヘ放送(broadcaーst)され
る。このタグを割当てられたレジスタは放送されたタグ
との比奴一致に応答して付勢され、かくて受取られたオ
ペランドは共通データ・バスからこの・l寸勢済みのレ
ジスタヘ入カゲートされ、このようにしてこの命令の実
行を完了することができる。この共通データ・バス方式
は本発明とは完全に異なる。先行技術でもあるIBMシ
ステム/370モデル168は、本発明とは異なる方法
を使用している。
このプロセツサは、主記憶から取出されたダブルワード
をバツフアずることができる8バイトのオペランド・バ
ツフアを2個備えている。キヤツシユヘ或るラインが取
出される際このラインの1ダブルワードだけが主記憶か
らIPPFへ直接に転送されるのに対し、他の夕ゞブル
ワードはこのラインの転送が完了した後でなければキヤ
ツシユから■PPFへ転送することができない。1ダブ
ルワードより大きいオペランドを必要とする命令につい
ては、IPPFは最初の夕゛ブルワードを取出すだけで
ある。
このオペランドの後続 こダブルワードは、マイクロプ
ログラムの制御下で、実行機構(ExecutionF
unction:以下[EF]と略す)によつて取出さ
れる。データを正しいバイト境界へ合せたり、相異なる
夕゛ブルワードからのデータを連結したりする操作も、
マイクロプロ lグラムの制御下で、EFf3f!1l
)で行われる。■BMシステム/370モデル168に
おいてこのようにして処理されるLM(多重ロード)命
令や、MVC(移動)、NC(論理積)、OC(論理和
)、XC(排地論理和)又はCLC(論理比較)の如き
SS(Storage−to−Storage:記憶域
間)論理命今については、IPPF(LEFの間の並行
処理が禁止されるので、復号されたこの種の命令の実行
が完了するまでIPPFは後続命令を復号することがで
きない。発明の要約 キヤツシユ・ミスが生じた際のプロセツサの囲能を強化
するために通常取られている方法は、IPPFによつて
要求されたサブラインを主記憶から取出し、このサブラ
インをキヤツシユヘ書込むと同時に、これをIPPFへ
送るというものである。
こうすることにより、IPPFは要求されたサブライン
を町能な限り速かに受取ることができる。一般に、後続
サブラインの各々に対するPSCFの取出はこの最初の
取出に続いて当該ラインの終端に至るまで順次に行われ
、そしてこれらのサブラインはIPPFによつて動的l
こ割当てられた浮動式オペランド・バツフアヘ転送され
る。次いで、このライン取出は当該ラインの始端へ戻り
、そこから最初に取出されたサブラインに至るまでの残
りのサブラインを取出すように継続されるけれども、該
残りのサブラインはIPPF中のどの浮動式オペランド
・バツフアにも転送されない。そのかわり、このライン
全体がキヤツシユヘ転送される。たとえば、或るライン
が8個の夕゛ブルワード0乃至7を含み且つ夕゛ブルワ
ード3に対する取出要求がキー(・ツシユ・ミスを生ぜ
しめるものとすれば、これらの夕゛ブルワードは3,4
,5,6,7,O,1,2の順序で取出され、これらの
うちダブルワード3乃至7がIPPFへ利用町能となる
。もしこの例においてキヤツシユ・ヒツトが生ずるなら
ば、lPPFが要氷したダブルワード3乃至7がキヤツ
シユから直接に得られることになる。
従つて、本発明によれば、キヤツシユ・ミスの場合には
IPPFは主記憶中の要求データを直接にアクセスする
ことができ、またキヤツシユ・ヒツトの場合にはキヤツ
シユ中の要求データをアクセスすることができるので、
先行技術のキヤツシユに見られるような転送中ラインを
アクセスするための遅延を排除することが可能となる。
本発明の側面に従つて、主記憶から受取られた諸サブラ
インをバツフアするためにそれぞれ夕゛ブルワードの容
量を有する複数のオペランド・バツフアを設け、これら
のオペランド・バツフアを浮動式に割当てることが行わ
れる。
IBMシステム/370の諸命令LM,.MVC,.N
C,.OC,XC及びCLCについて、IPPFはオペ
ランドのサブライン全部を受取り、PSCFのシフタを
使用してこれらのサブラインを所望の境界へ位置合ピし
、そして割当てられたオペランド・バツフアへ諸バイト
を入カゲートすることによつて相異なるサブラインから
のデータを連結するように動作する。或る命令に対する
オペランドのサブライン全部を一旦要求してしまうと、
IPPFは、並行的に実行することができる先行命今が
いつ実行されるかということに拘わりなく、後絖命今の
ためのオペランド取出を行うことができる。PSCF(
LIPPFの間の通信は次のように設定される。
すなわち、IPPFの取出要求は、浮動式オペランド・
バツフアと対をなす浮動式オぺランド゜アドレス・レジ
スタによつて開始される。■PPFは取出要求アドレス
及び取出要求制御信号をPSCFへ送る。もしデータが
キヤツシユから利用町能であれば、このデータはPSC
FとIPPF間の他の制御信号を要することなしに2サ
イクル後にプロセツサノ\送られる。もしこのデータを
キヤツシユから利用することができなければ、PSCF
はIPPFの待機を通知するために■PPFへ「取出遅
延」信号を送る。その後、デークが到着する前に、PS
CFはIPPFへ「PSCF前進」信号を迷る。PSC
Fによつて複数のダブルワードが復帰(return)
されんとするとき、PSCFは、各ダブルワードを送る
前に[PSCF前進」信号を上昇させる。
この信号の待機を停止する時機をIPPFに通知するた
めに、前記遅延された取出の開始時に「取出進行中」信
号がオンに転じられ、またその終了時にこの信号がオフ
に転じられる。このことは(当該ラインで最上位アドレ
スを有するダブルワードに対する)最後のIPSCF前
進」信号と同時又はその後でもよい。この機構を動作さ
せる制御論埋は2つに分けられる。
第1のものは、複数のダブルワードを復帰させるために
PSCFfこ設けられた諸回路である。第2のものは、
複数の夕゛ブルワードを要求し、受取り、そして保持す
るために■PPFに設けられたアドレス・オペランド対
(AddressOperandpa1r:以下「AO
P」と略す)と呼ばれる浮動式オペランド・アドレス・
レジスタ及び浮動式オペランド・バツフアの対と、これ
らのAOPを各オペランドごとに受取られる複数のダブ
ルワードと関連づけ且つ順序づけるための諸制御とから
成る。PSCFは、主記憶からIPPFへ複数の夕゛ブ
ルワードを通過させるとともに、IPPFへ必要な諸制
御信号を供給するための複数の制御を含む。
PSCFが各ダブルワードに対する取出要求を受取る場
合、PSCFはこの要求に関連する諸制御ピツトをソー
ス/シンク・ユニツト制御フイールドに置き、これによ
つて要求された最初のダブルワード、当該ラインの終端
にあるダブルワード及びこのラインについて取出される
べき最後の夕゛・ブルワードを識別する。各ダブルワー
ドが主記億から出力される際、PSCFは、要求された
最初のダブルワードから当該ラインの終端にぁる夕゛ブ
ルワードに至るまでの各ダブルワードを、IPPFへ直
接的に通過させる。これに対し、当該ライン・゛−の始
端から始まる後枕ダブルワードは、IPPFには通過さ
れなぃ。■PPF中のオペランド制側』は、AOPと呼
ばれる浮動式オペランド・アドレス・レジスタと浮動式
オペランド・バツフアの対を複数組含む。
・1AOPの谷々は、PSCFから1ダブルワード
の取出を要求してその夕゛ブルワードを受取るとともに
、命今実行のためにEFによつて必要とされるまでこの
ダブルワードをバツフアすることができる。)或る幾つ
かの命◆(たとえば、LM.MVC、CLC,.XC,
等ノについては、IPPFは、最大33ダブルワードま
での複数のダブルワードを有するオペランドを取出す。
AOP0)谷々は、タブルワード要求の谷々へ割当てら
れる。
同一オペランド中の複数の夕゛ブルワードヘ割当てられ
た諸AOPは、それらを表わす複数のAOPステータス
・ラツチに保持されたバツク・ポインタのチエーンによ
つて互いに連結される。AOPステータス・ラツチの谷
々は「先行鐵別子」、すなわち[先行■D」と呼ばれる
バツク・ポインタを受取ることができ、これにより同一
オペランドのチエーンにおいて先行する隣接ダブルワー
ドヘ割当てられた他のAOPを識別する。或るAOPに
対する取出が遅延された場合、どのAOPがPSCFか
らの次の夕゛ブルワードを受取るべきかを記録するため
に、AOPステータス・ラツチに「前進1D]が記憶さ
れる。欠の「PSCF前進]信号が受取られる場合、こ
れは諸AOPステータス・ラツチに記憶された「先行■
D」と比較され、これにより「前進1Diに等しい[先
行1D」が存在するか否かが決定される。
もしいずれかの「先行1D」が等しければ、これを保持
するAOPステータス・ラツチによつて表わされたAO
Pは次の夕゛ブルワードを受取るべき次のAOPでなけ
ればならない。かくて、該次のAOP01Dはチエーン
における欠の後絖AOPを決定するための「前進1D」
となるので、この手順を繰返せば当該オペランドに対す
る諸AOPの)1屓序全体を決定することができる。従
つて、もしPSCFが他の夕゛ブルワードに対する「P
SCF前進]信号を送るならば、このダブルワードは次
の後続AOPへ向けられることになる。このプロセスは
、PSCFか「取由進行中]信号を下降させるか又はチ
エーンの終りを指示する「AOP比較一致]信号が存在
しなくなるまで、継絖されることになる。実施態様の概
要 本発明は、IBMシステム/370の命◆LM(多重ロ
ード)、MVC(移動)、NC(論理積)、OC(論理
和)、XC(排他論理和)、CLC(論理比較)、MV
Z(ゾーン移動)及びMVN(数字移動)を処理する際
、そのオペランド取出と実行機能との間の並行動作を町
能にすることによつて、プロセツサの曲能を改善せんと
するものである。
さらに本発明は、これらのMVC,.NC,OC1XC
及びCLC命今に対する取出動作の間に第1及び第2の
可変長オペランドの位置合せを行い、該オペランドを位
置合せした状態でEF(実行機構)へ供給することによ
つて、プロセツサの囲能を改善せんとするものである。
LM命令の場合、オペランドの取出動作中に1対の汎用
レジスタヘ8バイトのオペランドがロードされるように
位置合せを行うと、EF自体はこの位置合せを行う必要
がノよく、従つてそのために遅延されることがないので
、これによりプロセツサの囲能を改善することができる
。以下詳細な実施態様のデータ流に含まれる主要な構成
要素について簡述する。
(1) PSCF(主記憶制御機構)に設けられた多重
夕゛ブルワードのバイパス制御。
これは、主記憶から取出された諸ダブルワードをダブル
ワード境界でIPPFへ通過させることができる。(2
) PSCFのバツフア・データ・バス・アウト(Bu
fferDataBusOut :以下「BDBO」と
略す)に設けられたシフタ。このシフタは取出されたダ
ブルワードをバイト境界に合せて左シフトするとともに
、この夕゛ブルワードの左端からシフト・オフされた任
意のバイトを該夕゛ブルワードの右端へ再挿入すること
ができる。このシフト動作はIPPFから供給される3
ビツ卜の「シフト量]信号によつて制御される。この信
号は夕゛ブルワードを左シフトすべきバイト数を指定し
、要求された可変長オペランドのバイト・アドレスにあ
る最下位3ビツトによつて形成される。(3) IPP
Fに設けられた6個のAOPoこの各各は1個のオペラ
ンド・アドレス・レジスタ(0perandAddre
ssRegister:以下「0ARlと略す)と1個
のオペランド・バツフア(0perarldBuffe
r:以下「OP」と略す)から成り、それぞれ8バイト
をアドレスし、受取り、そして保持することができる。
各AOP中のOARは、主記憶中にある要求された任意
のバイトをアドレスするためのバイト・アドレスを保持
する。0ARに保持されたアドレスは取出要求を介して
PSCFへ送られ、そこでアドレスされたバイトを含む
単一の夕゛ブルワードを取出すために使用される。
このダブルワードは常にダブルワード境界にあり、従つ
てPSCFの要求アドレスはダブルワード・アドレスで
あつて、この夕゛ブルワード中のバイトを指定すベき下
位3ビツトを無視する。もし要求されたダブルワードが
キャツシユ中にあれば、このダブルワードはPSCFに
よつてキヤツシユから取出され、さもなければ主記憶か
ら取出される。取出された夕゛ブルワードはBDBOを
介してIPPFへ送られ、そしてその諸バイトは1個又
は2個のAOPへ選択的に入カゲートされる。この入カ
ゲート動作は、BDBOから各AOP中の谷0Pへバイ
ト単位で行われる。つまり、BDBO上の或るバイトが
或るAOP中のOPへ入カゲートされるのに対し、BD
BO上の他のバイトは他のAOP中のOPへ入カゲート
されることがあるということである。このようにして入
カゲートされた任意のOPを選択し、その内容をEF中
の作業レジスタ、すなわちA及びBレジスタヘゲートす
ることができる。(4)オペランド取出ブロツクに設け
られたアドレス増数器。
任意のOARに置かれたアドレスはこの増数器へゲート
され、そこでO又は8を加算された後、6個のOARの
うち任意のものへゲートされうる。このアドレス増数器
は、IPPFにおける他の機能のためにも使用される。
IPPFによつて行われる可変長オペランドの取出動作
には、2種類のものがある。
第1のものはソース・オペランドを取出すので、以下で
は単に「ソース取出」と呼ばれる。第2のものは行先オ
ペランドを取出す関係上、以下では単に「行先取出」と
呼ばれる。これら2種類の取出動作がともに活勢である
場合は、その各々は最大3個までのAOPを使用するこ
とができる。これに対し、LM又はMVCの如き命令に
ついてソース取出動作のみが活勢である場合は、この動
作のために利用可能なすべてのAOPを使用することが
できる。行先取出動作が常に零のシフト量を使用する点
を除くと、ソース及び行先取出動作は全く同じである。
ソース取出動作は、命今が復号された時間にこの命令の
ために開始される。
この時間には、このフイールドの第1バイトが置かれる
Aレジスタ中のバイト位置及び該第1バイトの王記憶バ
イト位置を考慮して、そのシフト量が決定される。この
第1バイトの主記憶バイト位置は、第2オペランド・ア
ドレスの下位3ビツトを調べることによつて決定される
。命+MVC.NC、0C.XC及びCLCについては
、第2オペランドは第1オぺランドと位置合せされてい
ると考えられるので、第1バイトが置かれるべきAレジ
スタ中のバイト位置は第1オペランド・アドレスの下位
3ビツトによつて決定される。LM命令については、第
1オペランド・アドレスの下位3ビツトは、ロードさる
べき第1レジスタが偶数又は奇数番号のどちらであるか
に依存して、000又は100の値を取る。かくて、シ
フト量を決定するには、第2オペランド・アドレスの下
位3ビツトから第1オぺランド・アドレスの下位3ビツ
トを減算するとともに、上位ビツト位置からの桁上げを
無視すればよい。たとえば、もし第1オペランド・アド
レスが010で終了し、そして第2オペランド・アドレ
スが101で終了すれば、101から010を減算した
値は011である。つまり、第2オペランドを第1オペ
ランドと位置合せするためには、第2オペランドを3バ
イトだけ左シフトせねばならないということである。M
VZ命令及びMVN命今については、位置合せは行われ
ないから、シフト量は零へセツトされる。このシフト量
は保持され、主記憶に置かれたオペランドに関係するす
べての取出のために使用される。さらに、第2オペラン
ド・アドレスと第1オペランド・アドレスが比較され、
その結果、もし前者が後者より大きければ、第1オペラ
ンドの取出が繰返される。この点については以下で説明
する。命令の復号時には、オペランドを取出すたのに何
回の夕゛ブルワード取出を遂行する必要があるかという
ことが決定される。
この回数は2つの数値を加算することによつて決足され
る。最初の数値Lは命令のLフイールドから導かれる8
ビツトの長さ値である。これはオペランドのバイト数よ
り1だけ少ない2進数であり、IPPFによつて他の目
的のために発生される。数値Lへ加算される8ビツトの
値Dは次のようにして発生される。すなわち、この数値
Dの上位4ビツトは零であり、次のビツトは最初の取出
が重複(dup11cate)されるときは1であり、
最後の3ビツトはオペランド開始アドレスの下位3ビツ
トである。これらの数値が加算される場合、上位ビツト
位置からの桁上げが保持され、9ビツトの和の上位ビツ
トになる。この9ビツトの和のうち、下位3ビツトが捨
てられて6ビットの結果値が得られる。この結果値は、
遂行すべきダブルワード取出の全回数よりも1だけ少な
い。この結果値はカウンタに置かれ、そこで(最初の取
出を除く)各取出ごとに滅数されるので、これにより取
出動作を停止すべき時機を制御することができる。たと
えば、或るオペランドが35バイトを含み、最初の取出
は重複されず、そのアドレスの下位ビツトは101であ
るものと仮定する。そうすると、Lは00100010
に等しく、Dは00000101に、その和は0001
00111に、そして結果値は000100に等しくな
るから、最初の取出の後に4回のダブルワード取出が行
われねばならない。命◆が復号されるとき、そのオペラ
ンド・アドレスが計算され、利用可能な1個のAOPに
置かれるので、これに基づいてPSCFへの取出要求が
開始される。
このAOPに関連する制御には、シフト量を記憶し、こ
の制御に関連する特定の命令を記憶し、そして当該AO
Pがこのフイールドへ割当てられた最初のAOPである
ことを記憶するように、ステータス情報がセットされる
。次いで、プロセッサ中の優先順位が許各する場合、他
のAOPが割当てられて開始されることに7工る。こう
するためには、最後に開始されたAOP中のアドレスを
増数器へゲートし、通常はこのアドレスに8を加算し、
このようにして増数されたアドレスを開始さるべき次の
AOPへゲートすることが必要である。次のAOPに関
連する制御はシフト量をセツトされ、そして各AOPに
ついて設けられたラツチはその特定のAOPに対する3
ビツトの[先行1D」を保持する。このI一先行ID」
は、該特定のAOPの前に開姑されたAOPを識別する
ものである。取出さるべき諸ダブルワードヘ複数のAO
Pを割当てるというこの手順は、AOPが利用町能であ
る間は、換言すれば最大数のAOPが開始されてしまう
まで、継続されるのである。任意のAOPはその開始時
に所与のダブルワードに動的に割当てづれる。これと同
様に、任意のAOPはその受取られた夕゛ブルワードを
EFへ転送した後にリセツトされると、その割当を動的
に外される。割当を外された任意のAOPは、処理中の
任意のオペランド・チエーンにおける割当のために利用
可能となる。かくて、複数のバツク・ポインタによつて
連結された諸AOPのチエーンが存在する場合、このチ
エーン中の各AOPは次の上位アドレスを有するダブル
ワードを取出す。最初の取出を重複させるようなチエー
ンは通常のチエーンとは異なる。というのは、このよう
なチェーンでは第2のAOPが開始されたとき、その要
求アドレスは増数されず、従つてかかる重複的な取出チ
エーンにおける最初の2個のAOPは同一ダブルワード
を取出すからである。PSCFがこのようにして取出さ
れた諸ダブルワードを諸AOPへ送る場合、該夕゛ブル
ワードはPSCFの制御が指示する量だけPSCFによ
つてシフトされている。もし所与のグブルワードが最初
のAOPに対するものであれば、該ダブルワードは該A
OP中のOPへ完全に入カゲートされよう。しかし、も
しこれが最初のAOPではなく、しかもこのダブルワー
ドが循壌バイト(BDBOの左端からシフト・オフされ
且つその右端へ再挿入されたバイト)を有するならば、
これらの循環バイトは、該バイトがBDBO上のダブル
ワードで有していたと同じバイト位置において、先行す
るAOP中のOPへ入カゲ゛一卜されることになる。残
りのバイト、すなわち循環シフトされなかつたバイトは
、該バイトがBDBO上の夕゛ブルワードで有していた
と同じバイト位置において、当該夕゛ブルワードを要求
したAOP中のOPへ入カゲー卜される。命令の実行が
EFで一旦開始してしまうと、充満状態にある諸AOP
中のOPはEFによつて必要とされる順序でその作業レ
ジスタ、すなわちA及びBレジスタヘ入カゲートされる
命令のオペランドのためにチエーン中の最後のAOPが
開始されると、オペランド取出を必要とする他の命今を
復号することが許容されてその取出が開始され、またこ
れと並行して、EFの内部では先にオペランドを取出さ
れた先行命令について実行が継続される。
実施態様の詳細な説明 第1図はIBMシステム/370のアーキテクチヤを使
用した計算機システムを示す。
I/OブロツクA17はこのシステムヘ接絖されるすべ
てのI/O論理回路及び装置(たとえば、チヤネル及び
I/O装置)を表わす。I/0ブロツクA17はその制
御情報をEF A15から受取り、そのデータをPSC
F A13と授受する。PSCF A13は主記憶(M
S)A16とデータを授受するに必要なすべての論理回
路を含む。さらに、PSCF A13は、仮想アドレス
を実アドレスヘ変換するための論理と、ブロセツサによ
つて現に使用されている情報を保持してその高速アクセ
スを町能とするキヤツシユを含む。主記憶A16は、こ
のシステムヘ接続されるすべての主記憶を表わす。諸ブ
ロツクA10,A11,A12及びA9はこのシステム
の■PPFA7を構成し、一層具体的にはブロツクA1
0は命令取出1−FTHを遂行し、ブロツクAllは命
令復号1−DECを遂行し、ブロツクA12は命令の待
ち行列1−Qであり、ブロツクA9はオペランド取出0
PND FTHを遂行する。従つて、IPPF A7は
諸命令を取出し、諸命今を復号し、そしてPSCF A
13からそのオペランドを取出すように動作する。所与
の命◆がEF A15へ転送されるとき、そのオペラン
ドは利用叶能となつていることが多いので、この場合に
はその処埋を直ちに行うことができる。IPPF A7
は処理中の複数の命今を同時に保持することができる。
命今取出ブロツクA10は、PSCF A13から命令
を取出すための論理と、命令復号ブロツクAl1によつ
て必要とされるまでこれらの命今を保持するための論理
とを表わす。
このブロツクA10は、分岐命令が処理されているとき
、その目標ストリーム及び正規ストリームの両方から命
令を取出すことができる。命今復号ブロツクA11は、
命今の復号に関係するすべての論理を表わす。
このブロツクAl1は1個の命令レジスタを含み、該レ
ジスタは命令取出ブロツクA10から命令を1個ずつ受
取り、該命令が復号されるまでこれを保持する。所与の
命今を復号する場合には、システム中の多数のインタロ
ツク条件を調べ、これに基づいて、この命令の実行に備
えてIPPF A7で遂行されねばならない動作を特定
のサイクルで開姑することができるか否かを決定する必
要がある。このブロツクA11は、脊定の命◆の有効ア
ドレスを計算するに必要な論理も含む。もし特定の命今
が榎号可能であるということが判明すれば、バスA4を
介して「復号成功」信号が生ぜられ、この信号に応じて
所定の動作が開姑される。もし特定サイクル 5の間に
この命令を復号できないということが判明すれば、この
命令は1サイクル余計に命令レジスタに保持されるので
、この命今が復号町能でめるか否かを後続サイクルで決
定することができる。谷命令はプログラムによつて論理
的に呼出される l順序で復号されるが、その際、分岐
の経路を仮定することが行われる。もし実際の分岐経路
が仮定した経路と違うことが判れば、この間違つた経路
で処理されたすべての命令がリセットされ、然る後、実
際の分岐経路に沿つた動作が再開される。所与の命令が
成功裡に復号されると、この命令は命今復号ブロツクA
l1から命今待ち行列ブロツクA12へ転送され、そし
てオペランドの取出が必要であれば、その有効アドレス
及び適当な制御信号がバスA4を介してオペランド取出
ブロツク 2A9へ送られる。2バイト及び4バイト長
の命令については、復号サイクルとして1サイクルだけ
が必要であるにすぎない。
しかし、6バイト長の命◆については、オペランドの各
々に関連して1サイクルずつ、つまり2復号サイクルが
必要であ 2る。オペランドの取出は、これら復号サイ
クルの各々ごとに開始されうる。しかし、この命今は第
2復号サイクルまで命今待ち行列ブロツクA12へ移動
されない。命令待ち行列ブロツクA12は、復号から完
全3な実竹まで諸命今を保持する如き命令待ち行列論理
を表わす。
このブロツクA12は4個の待ち行列位置に1個ずつ、
計4個の命令を保持することができ、そのうちの1個は
実行中でもよい。また待ち行列位置は簡単なラワンド・
ロビンの様式で 3使用される。2ビツトの「待ち行列
入カボインタ」、すなわち「Q入カポインタ」は次にロ
ードさるべき待ち行列位置を指定し、命令が命今待ち行
列ブロツクA12へ移動されるたびに1ずつステツプさ
れる。
2ビツトの「待ち行列出力ポインタ」、すなわち[Q出
力ポインタ」はEF A15へ迷られるべき次の待ち行
列位置を指定し、命令の実行が開始するたびに1ずつス
テツプされる。
また所与の命令がEF A15へ移動して第1実何サイ
クルに1サイクルだけ先行する場合には、「OP分岐取
得」信号が発生される。EF A15は、シフトや加算
等の諸命令を実行するに必要なすべての論理を表わす。
この論埋は、各命今がどのように実行さるべきかを決定
する処の制御記憶中のマイクロプログラムによつて制御
される。EF A15は、プログラムによつて呼出され
た順序で、各命令を順次に実行勺゛る。1サイクルで実
行することができる命令に遭遇した場合、該命?は命今
待ち行列ブロツクA12からEF A15へ通過され、
そこで各命今あたり1サイクルの速度で実行される。
EF A15は汎用レジスタへのすべての書込みを処理
し、またすべての割込条件を処理する。ブロツクA14
はシステム中の汎用レジスタGRを表わす。
これらの汎用レジスタは命令の実行のためにEF A1
5によつてアクセス可能であり、実行されようとしてい
る命令の準備の一部として命令待ち行列ブロツクA12
の制御下でEF A15へ読出され、また有効アドレス
を計算するために命今復号ブロツクAllによつて読出
される。オペランド取出ブロツクA9は主記憶A16か
らオペランドを取出すために使用される論理を示す。
このブロツクA9は後述するように本発明の要部である
。第2図には、前記の諸ブロツクA13,A11,A1
2及びA15へそれぞれ接絖されたオペランド取出ブロ
ツクA9のインタフエース・バスA1乃至A6及びA8
が略示されている。
これらのバスはそれぞれ仄のように定義される複数の線
から成る。ノくスA1 B2 Q9 ノくスA2 A2A A2B A2C A2 D A2E A2F ノマスA3 E18 取出要求 一 シフト量 PSCF使用中 PSCF前進 取出拒否 取出遅延 取出進行中 BDBOバス ォペランド制御のPSCF要求 B36 バスA4 A4A A4B A4C A4D A4E A4F A4G オペランド制御の使用中 A4H A4J ノくスA5 A5A A5B A5C バスA6 A6A − Aレジスタへの主記憶オペランドA6B
− Bレジスタへの主記憶オペランドアドレス加算器出
力 復号成効 オペランド長 行先取出 ソース取出 命令ビツト11 MVC,NC,OC,XC, CLC復号 LM復号 SS第2復号サイクル 0P分岐取得 Q出力ポインタ Q入カポインタ バスA8 R1 − A及びBレジスタへのバス G17 − Aレジスタへの入カゲート G18 − Bレジスタへの入カゲート S2 − Eクロツク停止 第2図はオペランド取出ブロツクA9の主要な構成要素
を示す。
詳述すれば、合計6個のAOP,すなわちAOP−A乃
至AOP−Fが設けられ、またその内部にはOAR−A
乃至0AR−F並びにOP−A乃至0P−Fがそれぞれ
設けられる。簡単のために第2図にはAOP−Aだけが
詳細に図示されているが、これはOAR−A,0P−A
及びそれらの制御CTLを含む。これと同様の配列がA
OP−B乃至AOP−Fの各々に設けられる。AOPの
各々は主記憶A16から取出さるべき夕゛ブルワードを
アドレスし、このダブルワードを受取り、そしてEF
A15によつて必要とされるまでこれをバツフアする。
谷命令ごとに十分な数のAOPが割当てられるので、オ
ペランド・フイールド全体を取出し、これを必要に応じ
てEF A15に供給することができる。IBMシステ
ム/370(こは、或る命令のすベてのオペランド取出
を後続命令のオペランド取出の前に遂行しなければなら
ないというアーキテクチヤ上の制約がある。
さらに、多くの命令については、オペランドの取出をそ
のフイールドの下位端から上位端へ順次に遂行しなけれ
ばならないという制約もある。このため、或る命今のオ
ペランドを取出すに必要なすべてのAOPは、オペラン
ド取出を必要とする後続オペランドの復号が許各される
前に、割当てられなければならない。たとえば、3ダブ
ルワードの取出を必要とするようなLM命令について考
察する。このような命令の場合、次の命令の復号が許容
される前に、その取出を遂行するために3個のAOPが
割当てられねばならない。これらのAOPのうち最初の
AOPは、LM命令が復号されるとき命令復号ブロツク
A11から受取られる諸信号によつて割当てられ、その
動作を開始させる。それと同時に、命令復号ブロツクA
11からの他の制御信号はソース制御SRC CTLを
作動させる。オペランド取出ブロツクA9で優先順位の
条件が許容する場合、ソース制御は他の2個のAOPを
割当ててそれらを開始させる。従つて、当該フイールド
の取出に関連する3個のAOPは互いにチエーンされて
いるものと考えられる。LM命令を実行するための準備
が完了すると、最初に割当てられたAOPにバツフアさ
れているデータがEF A15へ自動的に入カゲートさ
れ、然る後、EF A15の要求に応じて割当て済みの
他のAOPにバツフアされているデータがEF A15
へ供給される。多数のSS(Storage−to−S
torage :記憶域間)論理命令は主記憶A16か
ら2フイールドを取出すことを必要とし、しかも該フイ
ールドの各々は多数の夕゛ブルワードを含むことがある
ので、オぺランド取出ブロツクA9は、2種類のチエー
ンについて複数のAOPを同時に割当て且つ開始させる
ことが必要である。このような理由で、他方のオペラン
ドを扱うために、ソース制御と殆んど同じ構成を有する
行先制御DST CTLと呼ばれる第2組の制御が設け
られる。ここで、行先制御は命令の第1(行先)オペラ
ンドによつて使用されるのに対し、ソース制御は命令の
第2(ソース)オペランドによつて使用されるものであ
る。また、オペランド取出を順序正しく維持しなければ
ならないという制約と、IPPF A1及びPSCF
A13の間のインタフエースの制約があるために、オペ
ランド取出ブロツクA9は或る取出を反復しなければな
らないことがある。この目的に沿つて、必要に応じて或
る取出を反復させるための再取出論理RE−FTH L
GCが設けられる。PSCF A13がキヤツシユを参
照して取出を遂行することができない場合、IPPF
A7のオペランド取出ブロツクA9へデータを復帰させ
るまでに余分の遅延が含まれる。
この状況では、PSCF A13との通信を扱うために
オペランド取出ブロツクA9中に遅延取出論理DLYD
−FTH LGCが設けられる。ここで、5個の汎用レ
ジスタヘロードするようなLM命+(LM O,4,,
AI)R)の例について考察する。
この例の場合、主記憶A16中のデータは、以下の表−
1に示すように、第1バィト「Nを第1ダブルlノ一ド
(DW0のバイト位置「ADR]に置かれ、その後に残
りのバイトが置かれる。なお、汎用レジスタの各々は1
ワードをそれぞれ保持する。囲能を向上させるために、
オペランド取出ブロツクA9は、EF A15の処理に
最適のバイト境界へソース・オペランドを位置合せする
ための手段を備えている。
説明中のLM命令の例では、ロードさるべき最初の汎用
レジスタは偶数番号を有し、そして最初の入カゲートの
際には前記の位置合せによつて記憶オペランドの最初の
8バイトがEF A15中のAレジスタヘ供給される。
次いで、これらの8バイトは汎用レジスタ・ブロツクA
14に設けられた最初の2個の汎用レジスタへ同時に書
込まれ、然る後、オペランド取出ブロツクA9から後続
データの要求が与えられると、他の8バイト・グルーブ
が供給され、直ちに汎用レジスタ・ブロツクA14にあ
る2個の汎用レジスタヘ書込まれる。もしLM命今にょ
つてロードされる最初の汎用レジスタが奇数番号を有す
るものであれば、前記の最適位置合せにより記憶オぺラ
ンド位置に供給され、そこから当該汎用レジスタヘ書込
まれる。後絖データの要求が与えられると、オペランド
取出ブロツクA9は記憶オペランドの後続8バイト・グ
ループを供給し、これを汎用レジスタ・ブロツクA14
の汎用レジスタ対へ書込ませる。この例の場合、書込ま
るべき最初の汎用レジスタは偶数番号を有し、従つて最
初の入カゲート時に8バイトが置かれることが望ましい
。し力化ながら、前記の表−1に示すように、主記憶A
16中のデータはその第1バイト[A」が第1ダブルワ
ードのバイト位置3にあるように位置合せされている。
従つて、EF A15へ供給さるべき最初の8バイトの
うち、5バイトは第1ダブルワードから与えられ、残り
の3バイトは第2ダブルワードから与えら,(1.る。
これらのバイトを正しいバイト位置へ移動させる操作は
PSCFA13に設けられたシフタによつて行われ、該
シフタはオペランド取出ブロツクA9で制御されるシフ
ト量に応じて動作する。このシフト量は左シフトの量を
指定する3ビツトから成る。当該夕゛ブルワードの左端
からシフト・オフされた任意のバイトは、その右端へ再
挿入される。ここで、第2図に関連して、このフイール
ドを取出すために31固のAOP,すなわちAOP−A
乃至AOP−Cが割当てられ、そしてこれらのAOPは
主記憶バイト位置「ADR」、「ADR+8」及び「A
DR+16」に置かれた各ダブルワードを取出すために
それぞれ割当てられているものと仮定する。
PSCF A13はこのアドレスの下位3ビツトを無視
し、アドレスされたバイトを含むダブルワードを復帰さ
せる。注意すべきは、これらのAOPが割当てられる順
序はどのAOPが現に割当てられているかということに
依存し、従つてA,B,C,D、等の如き必然的な順序
づけは存在しないということである。もつとも、LM命
今が復号されるときにどのAOPも使用中でなければ、
AOPはこの順序で割当てられることになろう。まず、
AOP−Aに設けられたOARーA中の取出要求アドレ
スに応じて復帰されたデータを考祭する。このようにし
て取出された第1ダブルワード(DW1)は3バイトだ
け左シフトすることによつて位置合せされるので、PS
CFA13によつて復帰されるデータはABCDEー一
−の順序を有する。シフト済みの第1夕゛ブルワードは
AOP−A中のOP−Aへ入カゲートされる。前記の動
作は以下の表−2に示されており、ここで記号Xは関係
のない以前の内容を表わす。アンダ−ラインはどのバイ
トが入カゲートされたかということを示す。AOP−B
の取出によつて得られる第2ダブルワード(DW2)は
諸バイトIJKLMFGHである。
以下の表−3はこのデータがどのようにしてOP−A及
びOP−Bへ入カゲートされるかということを示す。し
かし、取出された第2ダブルワードの全部が0P−Bへ
入カゲートされるわけではない。
左シフトされたけれども左端からシフト・オフされなか
つたバイト、すなわちI,J,K,L及びMだけがOP
−Bへ入カゲートされる。左端からシフトオフされ且つ
右端に再挿入された他の3バイトF,G及びHはOP−
Bに先行するOP−Aへ入カゲートされる。この第2の
取出に応じたデータが復帰され且つこのデータがOP−
A及びOP−Bへ入カゲートされてしまうと、0P−A
の完成された内容をEF A15へ供給することができ
る。
第3の取出に応じたデータ、すなわち第3ダブルワード
a)W3)はQRST−NOPであり、以下の表−4に
示すようにOP−C及びOP−Bへ入カゲートされる。
このようにして取出された第3ダブルワードも3バイト
だけ左シフトされ、その際、左端からシフト・オフされ
なかつたバイトはOP−Cへ入力)ゲートされ、左端か
らシフト・オフされ且つ右端に再挿入されたバイトはO
P−Cに先行するOP一Bへ入カゲートされる。
この第3ダブルワードの取出が完了すると、0P−B及
びOP−Cに置かれたデータをEF A15へ供給する
ことができる。以上では幾つかの例を参照しながら動作
上の概念を説明したが、以下ではこれらの概念を一般化
して説明する。
まずシフト量を決定することが必賛であり、このためオ
ペランドの第1バイトが置かれた主記憶バイト位置と、
EF A15によつて必要とされる該第1バイトのバイ
ト位置とが考慮される。このシフト量は、アドレスされ
たフイールドから取出された各夕゛ブルワードに適用さ
れる。第1ダブルワードについては、その全バイトがシ
フトされ、然る後、割当てられた最初のOPへ入カゲー
トされる。後続の各夕゛ブルワードについては、その左
端からシフト・オフされたバイトは常に前に割当てられ
たAOP中のOPへ入カゲートされ、また左シフトされ
たけれども左端からシフト・オフされなかつたバイトは
当該取出のために用いられたアドレスを保持するAOP
中のOPへ入カゲートされる。このシフト量が零でなけ
れば、特定のAOPに置かれたデータは次のAOPによ
る取出が完了するまで使用することができない。という
のは、次の取出によつて得られるデータの或るものが、
該特定のOPの内容を完成させるために必要となる場合
があるからである。割当てられた最後のOPに置かれた
データは、その取出が完了するとすぐに使用されること
はもちろんである。第1ダブルワード中の必要なバイト
のうち1以上のバイトが左端からシフト・オフされる場
合、これらのバイrが失われないようにするために該ダ
ブルワードヘ2個のAOPを割当てることが必要である
これは車複取出条件と呼ばれる。ここで、重複取出の例
として、夕゛ブルワード境界の3バイト後にある主記憶
バイト位置[ADR2]で開始する、10バイトの第2
オペランドを、ダブルワード現界の5バイト後にある主
記憶バイ卜位置「ADR 1」で開始する第1オペラン
ドへ移動させるようなMVC命令について、6バイトの
左シフトを使用した伏況を考察する。この例は以下の表
−5乃至表−8lこ示されている。表−5には、第1バ
イト「A」が主記憶バイト位置「ADR 2」に置かれ
ている第2オペランドの取出時における位置合せと、第
1バイト[Al力住記憶バイト位置「ADR 1」に置
かれる第1オペランドの書込時における位置合せがそれ
ぞれ示されている。MVC命令については、諸AOPに
おけるデー夕位置合せは、取出されたオペランドの第1
バイ卜を書込まるべき位置の夕゛ブルワード境界につい
て位置合せした後、このデータをそのままEFA15へ
移動させたり書込んだりするようなものであることが望
ましい。
この場合、LM命今の例に関連して説明した前記の動作
概念が適用されるならば、取出されたオペランドの或る
バイトが失われることになろう。
この損失が生ずるのは、書込オペランドの第1ダブルワ
ードに含まれるバイト数が取出オペランドの第1ダブル
ワードに含まれるバイト数よりも小さい場合である。こ
の損失を回避するには、最初の2個のAOPを最初の取
出ダブルワードヘ重複的に割当てればよい。LM命令に
ついて既に説明した動作概念を適用できるのは、主記憶
A16中の同一ダブルワードを取出すために最初の2個
のAOPが割当てられる場合だけである。この場合、割
当てられた最初のAOPは最初のダブルワードの循環シ
フト・バイトをバツフアし、第2のAOPは第2の夕゛
ブルワードの非一循環シフト・バイトをバツフアする。
第2のAOPが第1の取出ダブルワードヘ割当てられた
後、後続のAOPが連続的な取出ダブルワードへそれぞ
れ割当てられる。2個の取出夕゛ブルワードを含むMV
C命令の重複シフトの例では、3個のAOPが必要であ
るが、以下ではこれらがAOP−AsAOP−B及びA
OP−Cであると仮定する。
AOP−A及びAOP−Bは主記憶バイト位置「ADR
2」に置かれた第1の取出夕゛ブルワードヘ割当てら
れ、AOP−Cは主記憶バイト位置[ADR 2+8」
に置かれた第2の取出ダブルワードヘ割当てられる。も
し追加の取出が必要であれば、それぞれのAOPをオペ
ランド・フイールドの上位夕゛ブルワードへ順次割当て
ればよく、前記のようにAOPを重複的に割当てること
は必要ない。この例では、AOP−A及びAOP−Bは
第1及び第2の重複AOPと呼ばれる。第1のダブルワ
ードヘ割当てられたAOP−Aの取出に応じて6バイト
だけ左シフトされたデータが復帰されると、このデータ
全体は表−6に示すようにOP−Aへ入カゲートされる
表−6乃至表−8中のアンダ−ラインはどのバイトが入
力ゲートされたかということを示す。表−7は、AOP
−Bによる第2の重複取出に対する循環シフ卜・データ
がどのように扱われるかということを示す。循環シフト
されない2バイト「E]及び[F」はOP−Bへ入カゲ
ートされ、残りの6バイ卜はOP−Aへ入カゲートされ
、かくてそこに既に存在する同一隋報にオーバーレーさ
れる。表−8は第2の取出夕゛ブルワード1W2)がA
OP−Cによつてどのように扱われるかということを示
す。AOP−Cによる6バイトのシフト後、その6つの
循環バイト位置は前に割当てられたOPーBの対応バイ
ト位置へゲートされ、かくてバイトG,H,I,J,−
,一で以てダブルワードを完成し、またこの例では使用
されることがない残りの2バイトがOP−Cへ入カゲー
トされる。次いで、0P−A及びOP−Bにあるデータ
(これは表−5に示す如く、第1オペランドの第3及び
第4ダブルワードにそのまま書込まれるように位置合せ
されている)は、MVC命令の実行に必要になるときE
F A15へ転送される。この例の場合、MVC命令は
OP−Cに置かれたデータを使用せずにその実行を完了
するので、このデータはEF A15によつては使用さ
れない。次に、第3図に示すタイミングを使用する如き
オペランド取出ブロツタA9とPSCF A13との間
のインタフエースを考察する。
オペランド取出ブロツクA9は、任意のプロセツサ・サ
イクルのラツチ時間に、「取出要求」信号B2を開始さ
せることができる。ラツチ時間はプロセツサ・夕ロツク
の下降に応じて開始及び終了する。これに対し、トリガ
時間はプロセツサ・クロツクの上昇に応じて開始及び終
了する。「取出要求」信号B2はPSCF A13へ送
られ、それと同時にオペランド取出ブロツクA9のプロ
セツサ・アドレス・ラツチ(PRAL、第2図参照)か
らPSCF A13へその倫理アドレスが送られる。プ
ロセツサ・アドレス・ラツチは、IPPF A7にある
源のうちOARから論理アドレスを転送する。もしPS
CF A13が一層優先順位の高い機能のために使用中
であり、従つてこの取出要求を処理することができなけ
れば、PSCF A13は信号B2が送られる前のトリ
ガ時間に「PSCF使用中」信号A2Aを上昇させる。
この信号A2Aは、このプロセツサ・サイクルの間に送
られるすべての取出要求がPSCF A13によつて完
全に無視されるということを、オペランド取出ブロツク
A9に指示する。第4図は、キヤツシユをアクセスする
ためにPSCF A13によつて受諾される簡単な取出
要求のタイミングを示す。
プロセツサ・サイクル1のラツチ時間に、「取出要求」
信号B2とアドレスがオペランド取出ブロックA9のプ
ロセツサ・アドレス・ラツチヘ送られる。プロセツサ・
サイクル2及び3の間、PSCF0)C1及びC2サイ
クルがキヤツシユ・アクセスの時間を指定する。キヤツ
シユはC1サイクルの間にアクセスされ、そしてキヤツ
シユ・ヒツトの場合は要求されたデータがC2サイクル
の間に復帰される。またC2サイクルの間には、LM命
令及びMVC命令の例について既に説明した値を有する
「シフト量」信号Q9がこの取出のためにIPPF A
7からPSCF A13へ送られる。ブロセツサ・サイ
タル3のラツチ時間には、PSCF A13はキヤツシ
ユから得られたダブルワードをこの信号Q9に応じてシ
フトし、これをBDBOを介してオぺランド取出ブロツ
クA9へ転込する。第5図はやや特殊な状況における取
出のタイミングを示す。
すなわち、要求されたデータがキヤツシユに存在しない
ためにPSCF A13によつて主記憶A16から取出
されねばならず、しかもこの取出要求がPSCF A1
3によつて受取られたとき、PSCF A13が既に主
記憶A16に対する進行中のアクセスを有しているよう
な状況である。「取出要求」信号B2は前記したように
プロセツサ・サイクル1の間にIPPF A7から送ら
れる。しかしながら、プロセツサ・サイクル3に相当す
るPSCF(7)C2サイクルの間にキヤツシユ・ミス
が決定され、かくてPSCF A13からオペランド取
出ブロックA9へ「取出拒否」信号A2Cが送られる。
この信号A2Cは、キヤツシユからデータが得られない
ことを指示し、さらにPSCF A13が遅延された取
出について既に使用中であり、従つてこの時点で当該取
出要求を処理することができないことを指示する。PS
CFA13はこの拒否された取出要求を記憶しないので
、オペランド取出ブロツクA9はこの取出要求を後で再
び供給しなければならない。また、PSCF A13か
らの「取出進行中」信号A2Eは、オペランド取出ブロ
ツクA9に対し、PSCFA13における遅延された取
出の持続時間を通知する。この信号A2Eは、「取出拒
否」信号A2Cの存続時間中はオン又はオフのいずれで
あつてもよい。オペランド取出ブロツタA9は、拒否さ
れた取出要求が再び拒否されるような可能曲が少ない時
機を次定するために、「取出進行中」信号A2Eを利用
する。第5図において、この信号A2Eはプロセツサ・
サイクル7にオフに移行し、そして「取出要求」信号B
2はプロセツサ・ケイクル8のラツチ時間に反復される
ように図示されている。これは、当該取出要求が再び拒
否さrないように、この要求を反復することができる敢
も早いタイミングである。PSCF A13から遅延さ
れた取出のための「取出進行中」信号A2Eを供給させ
るようにしたのは、PSCF A13が主記″慮A16
からキヤツシユヘ1ラインのデータ(壬ヤツシユ・ブロ
ツク)を現に取出しているからである。
これは1ラインごとに8ダブルワードを転送することを
含む。ラインの境界は、000で終る2進の主記憶ダブ
ルワード・アドレスによつて表わされる。所与のライン
から取出される最初のダブルワードは、取出要求によつ
てアドレスされた夕゛ブルワードである。次U)で、P
SCF A13はそのラインの終端に至るまで主記憶ア
ドレスの順に各グブルワードを取出し、そしてその後は
、このラインの始端から前記要求された夕゛ブルワード
に至るまでの各夕゛ブルワードを取出す。以下の表−9
は8ダブルワードから成る或るラインを示す。
但し、取出要求はこのラインの第6ダブルワード(DW
6)をアドレスしているものとする。表−9の右端にあ
る数字は、PSCF A13によつて主記憶A16から
取出される各夕゛ブルワードの取出順序を示す。本発明
によれば、PSCFA13は、取出要求によつてアドレ
スされた特定のダブルワードからこのラインの終端にあ
る最後の夕゛ブルワード、すなわちこのラインで最高の
主言?アドレスを有するダブノレワードまでのものを、
オペランド取出ブロツタA9へ送るにすぎない。表−9
の例では、このラインの第6乃至第8ダブルワードのみ
がIPPF A7及びキヤツシユヘ送られる。もつとも
、キヤツシユは結果的にこのライン全体を受取ることに
なる。存在しないためにこれを主記憶A16から取出さ
なければならず、そしてPSCF A13がこの取出要
求を受諾するような状況における取出夕イミングを示す
プロセツサ・サイクル1の間、「取出要求」信号B2は
第3図乃至第5図について説明したと同様の様式で開始
される。この信号B2がPSCF A13・によつて受
諾されるとき、「取出進行中」信号A2Eは存在しない
。ブロセツサ・サイクル3に相当するPSCFのC2サ
イクルの間、PSCF A13からオペランド取出ブロ
ツクA9へ「取出遅延]信号A2Dが送られ、この取出
要求がPSCF A13によつて処埋されること及び要
求されたデータが直ちには利用できないことを指示する
。次のプロセツサ・サイクル4の間、「取出進行中]信
号A2Eがオンとなり、当該遅延された取出が完了され
るまでオンに留まる。プロセツサ・サイクル10として
示される或る後続サイクルの間、PSCF A13から
オペランド取出ブロツタA9へ「PSCF前進]信号A
2Bが送られ、この2サイクル後にアドレスされたダブ
ルワート(DW)が供給されることを指示する。この信
号A2Bがオンとなつてから2サイクル後にPSCF0
)C1及びC2サイクルが与えられ、かくてC2サイク
ルの間にオペランド取出ブロツクA9へ前記アドレスさ
れたダブルワード(DW)が与えられる。これは第6図
のプロセツサ・サイタル11及び12の間に示される。
主記憶A16が当該ラインの全体をキヤツシユヘ転送し
ている間、「取出進行中」信号A2Eはオンに留まる。
[PSCF前進」信号A2Bは、オペランド取出ブロツ
クA9へ送られるべき各後続夕゛ブルワードのプロセツ
サ・サイクルの間、オンとなる。この信号A2Bは連続
的なプロセツサ・サイクルにわたつてオンであつてもよ
く、又はPSCFA13で干渉条件が生じれば互いに分
離されてもよい。この信号A2B(ま、オペランド取出
ブロツクA9へ送られないでキヤツシユにのみ送られる
当該ライン中の夕゛ブルワードについては、オペランド
取出ブロツクA9へ供給されない。1ラインに包含され
るダブルワードのうちどれが要求されるかということに
依存して、1個乃至8個のうち適当な数の「PSCF前
進」信号A2Bが「取出進行中」信号A2Eの持続時間
中にオペランド取出ブロツクA9へ込られる。
或る場合にはオペランド取出ブロツクA9によつて必要
とされるものよりも多い夕゛ブルワードが存在しうるが
、このような状況では、必要でないデータはオペランド
取出ブロツクA9によつて無視される。もしアドレスさ
れた夕゛ブルワードに続く追加のダブルワードがオペラ
ンド取出ブロツクA9によつて必要とされるならば、該
ブロツタはこの信号A2Bが受取られるたびに擬似的な
C1及びC2サイクルを通過する。第6図の例では、P
SCF(7)C1及びC2サイクルは3ダブルワード(
DW,DW+8及びDW+16)の各々ごとにそれぞれ
与えられる。BDBOを介してオペランド取出ブロツク
A9へ転送されている諸ダブルワード中の衝突を避ける
ために、PSCF A13は、該ブロツクA9へ「PS
CF前進」信号A2Bを送つている間は常に「PSCF
使用中」信号A2Aを上昇させる。次に、第1図の命今
復号ブロツクA11とオぺランド取出ブロツクA9との
間で通信される諸信号を考察する。
既iこ説明したように、バスA3は2本の信号線E18
及びB36を含み、これらの線は追加命今の復号を条件
付きで禁止する。前者の信号線はPSCF A13の使
用を必要とするどの命令も復号さるべきでないことを指
示し、後者の信号線はオペランド取出ブロツクA9の使
用を必要とするどの命令も復号さるべきでないことを指
示する。バスA4は、オペランドの取出を開始させる多
数の信号線A4A乃至A4Hから成る。
ラツチ信号である「復号成功」信号A4Bは、成功裡の
復号サイクルが生じたことを指示する。「アドレス加算
器出力」信号A4Aは、復号中の命今の有効アドレスを
与える。「オペランド長」信号A4Cは、オペランド・
フイールド中にあるバイトの数より1だけ小さい8ビツ
トの2進値を与える。「SS第2復号サイクル」信号A
4Jは、命令復号ブロツクA11が6バイト長を有する
命令の第1復号を完了して、今や第2復号を行おうとし
ているとき、オンとなる。「行先取出」信号A4Dは命
今により行先オペランドが取出されることを指示し、最
初のAOPを直接的に開始させるとともに、1より多い
取出が必要である場合には行先制御(DST CTL、
第2図)を作動させる。「行先取出」信号A4DはSS
命今の第1オペランドを取出すためにだけ使用され、主
記憶A16とは異なる境界へ位置合せすることは行わな
い。「ソース取出」信号A4Eは命令によりソース・オ
ペランドが取出されることを指示し、最初のAOPを直
接的に開始させるとともに、1より多い取出が必要であ
る場合にはソース制御(SRCCTL,第2図)を作動
させる。この信号A4EはSS命令の第2オペランドを
取出すために使用され、またより簡単な命令のオペラン
ドを取出すためにも使用される。「LM復号]信号A4
Hは、当該命令がLM命令であるとき、オンとなる。信
号A4Gは、当該命今がMVC.NC.OC.XC又は
CLC命今のいずれかであるとき、オンとなる。「命令
ビツト11」信号A4Fは、当該命令のビツト11が1
であるとき、オンとなる。この信号は、LM命令につい
て、ロードさるべき最初の汎用レジスタが偶数又は奇数
番号のどちらを有するかを決定するために使用される。
「アドレス加算器出力」信号A4A及び「行先取出]信
号A4Dはトリガ信号であつて、復号サイタルの間lこ
有意となる。残りの諸信号はラツチ信号であり、復号サ
イクルのラツチ時間(1/2サイクル後)の間に有意な
値を有する。次に、第1図の命令待ち行列ブロツクA1
2からオペランド取出ブロツクA9へ至るバスA5につ
いて説明する。
「0P分岐取得」信号A5Aはトリガ信号であつて、命
令待ち行列ブロツタA12からEF A15へ或る命令
が転送されようとしていることを指示する。これはこの
命今の第1実何サイクルの前に生せられる。[Q出力ポ
インタ」信号A5Bは2ビツトの2進カウンタであり、
実行さるべき次の命令がどの待ち行列位置から到来する
かを指示する。この信号A5Bはフツチ信号であつて、
「OP分岐取得」信号A5Aに応答して、1ずつステツ
プする。「Q入カポインタ]信号A5Cは2ビツトの2
進カウンタであり、復号さるべき次の命令がどの待ち行
列位置に置かれるかを指示する。この信号A5Cはラツ
チ信号であつて、「復号成功」信号A4Bが或るSS命
令の第1復号サイクルに対するものでない限り、該信号
A4Bに応答して1ずつステツプする。第7図は、LM
及びMVC命今がどのようにして復号及び実行されるか
という1つのタイミング例を示す。
この例では、LM命令は待ち行列位置00に保持され、
MVC命今は待ち行列位置01に保持される。また第7
図は、この例について、「復号成功」信号A4B、「Q
入カポインタ」信号A5C、「Q出力ポインタ」信号A
5B及び「OP分岐取得]信号A5Aのタィミング関係
を示す。次に、第1図のオペランド取出ブロツクA9と
EF A15との間に介存するバスA6及びA8につい
て説明する。
バスA6は2本の線A6A及びA6Bを含む。「Aレジ
スタへの主記憶オペランド]信号A6Aは、EF A1
5が他のOPに保持されたソース・データをAレジスタ
ヘゲートすることを必要としていることを指示する。[
Bレジスタへの主記憶オペランド」信号A6Bは、EF
A15が他のOPに置かれた行先データをBレジスタ
ヘゲートすることを必要としていることを指示する。こ
れらの信号はともにトリガ信号であつて、データが必要
とされる1サイクル前に生ずる。バスA8は4本の線を
含む。
R・1はデータ・バスであつて、諸0PからEF A1
5中のA及びBレジスタに至る。[Aレジスタへの入カ
ゲート」信号G17及び「Bレジスタへの人カゲート]
信号G18はラツチ信号であつて、バスA8をA及びB
レジスタへそれぞれ入カゲートさせるためのものである
。バスA8の「Eクロツク停止」信号S2はトリガ信号
であつて、EF A15中のクロツク、すなわちEクロ
ツクを停止させる。この信号S2がオンに転ずるのは、
PSCF A13からまだ得られていないデータをEF
A15が必要とする場合である。第8図は、Eクロツ
クを停止させるための代表的な状況下におけるタイミン
グ例を示す。
プロセツサ・サイクル1の間に「Aレジスタへの主記憶
オペランド」信号A6Aが受取られ、EFA15により
或るデータが必要とされていることを指示する。しかし
ながら、この例ではブロセツサ・サイクル4に至るまで
このデータを取出すためのPSCF0)C2サイクルが
付勢されないので、該データはプロセツサ・サイクル5
の開始端まで利・用することができない。このことほブ
ロセツサ・サイクル1の間に認識され、かくてプロセツ
サ・サイクル2の間に[Eクロツク停止」信号S2がオ
ンに転じられ、かくてEクロツクのパルス3がOZ禁止
される。
この禁止条件はその後2サイクルにわたつて持続し、前
記と同様の事象を生ぜしめる。「Aレジスタへの入カゲ
ー目信号G17はこの期間中オンに維持され、その間の
各サイタルごとにAレジスタへの入カゲートを行わしめ
る。というのは、この入カゲート動作は停止式クロツク
では1よく自走式クロツクによつて制御されるからであ
る。プロセツサ・サイクル5の間に行われる最後の入カ
ゲートと同時に、必要なデータが利用可能になる。かく
て、このデータはその必要曲に応じて延長されたEサイ
クルの終了間近にAレジスタに現われる。命令待ち行列
ブロツクA12は最大4個の命今を保持することができ
、そのうち1つの命令は実行中であり、残りの3つは実
行を待機中でもよい。
これらの命今は、EF A15が受諾可能になるとすぐ
に、命令待ち行列ブロツクA12からEFA15へ順次
に転送される。命令待ち行列ブロツクA12からEF
A15へ各命今が転送されるとき、このことを指示する
ために「0P分岐取得」信号A5Aが生ぜられる。この
信号A5Aはオぺランド取出ブロツクA9へ送られ、E
F A15における実行の開始に1サイクルだけ先行す
る。或る種の命令は1サイクルで実行することができる
のC、これらの命令が処理される場合、各サイクルごと
に命今待ち行列ブロツクA12からEFA15へ新しい
命令を転送することができる。EF A15は、諸命令
の実行を遂行するに必要なすべての論埋、たとえばオペ
ランドのシフト、加算等を遂行する論理を含む。この論
理は書込み町能な制御記憶によつて制御され、該制御記
憶はプロセツサが初期設定されるときにセツトされ、各
命令がどのように実行さるべきかを決定する処のマイク
ロプログラムを保持する。オペランド取出ブロツクA9
は本発明の要部であり、PSCFA13からオペランド
を事前に取出し且つそれらを必要に応じてEF A15
へ転送するための論理を含む。オペランド取出ブロツク
A9の動作は、オペランドの取出を必要とする命令が復
号される際に命令復号ブロツクAllから生ぜられる制
御信号によつて開始される。
オペランド取出ブロツクA9は、既に説明したように、
AOP−A乃至AOP−Fを含む。これらAOPの各々
はPSCF5JA13から要求された単一のダブルワー
ドをアドレスするとともに、それに応じて受取られた該
夕゛ブルワードをEF A15が必要とするまでバツフ
アすることができる。
これらのAOPは、オペランドの取出が必要となる都度
、一度に1つずつ割当てられる。多くの命令、特にSS
命今及びLM命今は複数の夕゛ブルワードを有するオペ
ランドの取出を要求することがあるから、オペランド取
出ブロツクA9には2組の制御、すなわちソース制御(
SRC CTL、第2図)及び行先制御(DST CT
L、第2図)が設けられる。これらの制御は命令復号ブ
ロツクA11からの制御信号に応じてオンに転ぜられ、
これにより適当な数のAOPの動作を開始させる。IB
Mシステム/370のアーキテクチヤには、主記憶A1
6から取出されるオペランドの実際の順序がプログラム
によつて論理的に呼出される順序と同じでなければなら
ないという制約がある。
この理由で、オペランド取出ブロツクA9に再取出論理
(RE−FTH LGC、第2図)が設けられ、何らか
の埋由でオペランドの取出順序が乱されたとき該オペラ
ンドの再取出を行うために使用される。オペランド取出
ブロツクA9からPSCF A13に至るバスA1は、
取出さるべきォペランドの仮想アドレスをPSCF A
13へ送るためのアドレス線と、この取出がどのように
処理さるべきかを通知する制御線とを含む。PSCFA
13からオペランド取出ブロツクA9に至るバスA2は
、データを復帰させるためのダブルワード線と、データ
が利用可能となる時機又は当該取出が即時に処理できる
のか若しくは遅延されるのかを指示するための制御線と
を含む。オペランド取出ブロツクA9から命令復号ブロ
ツクA11へ至るバスA3は主としてオペランド取出ブ
ロツクA9が使用中である場合を指示する数本の制御線
から成り、従つて命令復号ブロツクA11は必要とあれ
ばこれを利用して後続命今の復号を禁止することができ
る。命令復号ブロツクA11からオペランド取出ブロツ
クA9に至るバスA4は、当該命今について計算された
有効アドレスを送るためのアドレス線と、この命令につ
いて必要なオぺランド取出を開始させるための制御線と
を含む。命令待ち行列ブロツクA12からオペランド取
出ブロツクA9へ至るバスA5は、どの命今が次oti
Iに実行されるかを指示する制御線を含むので、オペラ
ンド取出ブロツクA9はこれによりEF A15がオペ
ランドを必要とする時機を知ることができる。
オペランド取出ブロツクA9からEFA15へ至るバス
A6は、それぞれの0PからEF A15中のA及びB
レジスタヘ接続された8バイトのバスと、この情報をA
及びBレジスタヘ入カゲートさせるための制御線と、E
F A15の必要とするデータがまだ利用可能でないと
きEクロツクを停止させて該データを待機させる如き「
Eクロツク停止」線S2とを含む。EF A15からオ
ペランド取出ブロツクA9に至るバスA6は複数の入カ
ゲート線から成り、該線はEF A15によつて追加の
夕゛ブルワードが必要とされていることをオペランド取
出ブロツクA9へ指示する。
第9A図乃至第9D図は、主としてオペランド取出の開
始及び命令復号ブロツクA11から受取られた信号の処
理に関係する幾つかの論理を示す。
線A4Bは、所与の命令が命令復号ブロツクA11で復
号されたサイクルのラツチ時間に[復号成夾信号を送る
。この信号A4Bは、動作の開始に関係するオペランド
取出ブロツクA9中の他の部分にも送られる。この信号
A4Bが受取られると同時に、他の諸信号が他の動作を
開始させるために受取られることがある。これらの信号
のうち、1−行先取出」信号A4Dは当該命今の行先オ
ペランドの取出が行われることを指示し、「ソース取出
」信号A4Eは当該命今のソース・オペランドの取出が
行われることを指示する。これと同時に、命令復号ブロ
ツクAllからのアドレスが利用可能となり、第11図
のプロセツサ・アドレス・ラツチD12へゲートされる
。またこれと同時に、第9D図において「命令ビツト1
1」信号A4Fが与えられ、さらに第9C図において取
出さるべきオペランドのバイト数より1だけ小さい8ビ
ツトの[オペランド長」信号A4Cが与えられる。ォペ
ランド取出ブロツクA9を開始させた 復号成功」信号
A4Bが生ぜられた後のサィクルには、オペランド取出
ブロツクA9は、当該命令の要求を満たすために取出さ
れねばならない夕゛ブルワードの数を決定する必要があ
る。このため、オペランド取出ブロツクA9は、第9C
図の長さレジスタB15へ供給される「オペランド長」
信号A4Cの値と、当該命令が復号される際その後続サ
イクルのラツチ時間に第11図のプロセツサ・アドレス
・ラツチD12から線D2を介しで第9C図のプロセツ
サ・アドレス・レジスタB16へゲートされるアドレス
の下位3ビツトとを使用する。このアドレスの下位3ビ
ットは夕゛ブルワード境界の左側にあるオペランドの第
1バイトを位置付ける。第9B図の「重複取出」信号B
10は、ォペランドの第1ダブルワード位置から追加の
取出が遂行されねばならないときに生ぜられる。第9C
図のオペランド長加算器B17から生ぜられる和のうち
線B11に与えられるビツト23乃至28は、当該オペ
ランドについて取出されねばならないダブルワードの総
数より1だけ小さい「ダブルワード・カウント」信号を
有する。もしこの信号Bllが零に等しいことが零検出
器B18によつて検出されるならば、「復号成功」信号
A4Bによつて直接に開始された最初の取出だけで十分
である。しかし、もしこの信号B11が零でなければ、
この信号は第13図のソース制御又は行先制御を作動さ
せ、当該オペランドについて必要とされる追加ダブルワ
ードの取出を行わしめる。追加のA0Pを開始させるた
めにソース制御及び行先制御をオペランド取出ブロツク
A9に設けたのは、或る種のSS命令が互いに独立した
2フイールドの取出を要求するということになる。
これらの命令については、前記制御は同時的に動作する
。ソース制御と行先制御の1つの相違点は、前者が主記
憶A16から取出されたオペランドの位置合せを遂行す
ることができるのに対し、後者は取出されたダブルワー
ドを常に1エンテイテイ(er1tlty)としてEF
A15へ通過させるということにある。しかし、ソー
ス制御はダブルワードを任意のバイト境界へシフトする
ことができるので、互いに異なる2個の夕゛ブルワード
からのデータを1iVAのOPへアセンブルし、その結
果データを必要に応じてEF A15へ供給することが
できる。ソース制御については、PSCF A13から
データが復帰されるときのオペランドのシフト量が決定
されるが、これは「復号成功」信号A4Bのラツチ時間
に行われる。
LM命今の場合は、第9D図の3ビツト加算器B19が
使用される。その右側入力B20は1の補数化回路へ接
続され、該回路は線A4Fを介して加えられるLM命今
の[命令ビツト11」信号(これはロードされる最初の
汎用レジスタが奇数番号を有するときオンの状態を示す
)とOOを連結する。加算器B19の左側入力D2は、
第11図のプロセツサ・アドレス・ラツチD12から、
LM命令の有効アドレスの下位3ビツトを受取る。この
結果、EFA15中のAレジスタに置かれるべきオペラ
ンドの第1バイトのバイト・アドレスが、該第1バイト
の主記憶A16におけるバイト・アドレスから減算され
る。つまり、加算器B19の出力は当該オペランドが左
シフトさるべき量を指示するということである。加算器
B19の位置29から生ぜられる桁上げは、EF A1
5・へ供給さるべき第1ダブルワード中のバイトの数が
、主記憶A16からの最初の取出中に得られるバイトの
数に等しいか又はそれより大きいことを指示する。この
特定の状況では、ソース制御によつて遂行される次の取
出は主記憶A16中の後絖ダブルワードT対象として行
われることになる。しかし、加算器B19の位置29か
ら桁上げが生じなければ、最初の入力ゲート時にEF
A15へ供給されるバイトよりも多いバイトが最初の取
出の際に得られるということが指示される。これは重複
取出の状況である。第9D図の加算器B21は、MVC
.NC、0C.XC及びCLC命令のシフト量を決定す
る。その機能はLM命令に関連して説明した加算器B1
9のモれと略同じであり、ただ右側入力B22が第1オ
ペランドの下位アドレス・ビツトを受取るという点が相
違するだけである。これらの下位アドレス・ビツトはレ
ジスタB23から得られ、該レジスタは当該命令の第1
オペランドに対する先の復号成功サイクル中にセツトさ
れている。加算器B21及びB19の出力は、ゲート信
号として機能する信号A4G及びA4Hの制御下でレジ
スタB24へゲートされ、該レジスタは復号に続くサイ
クルの開始時にこのシフト量を保持する。但し、信号A
4Gは復号された命◆がMVC1NC.OC.XC若し
くはCLC命令であることを指示し、他の信号A4Hは
復号された命令がLM命今であることを指示する。もし
第9A図のトリガB26がオンで、当該復号サイクルが
ソース取出を開始させたことを指示するならば、レジス
タB24(第9D図)に保持されたシフト量信号は3ビ
ツトのソース・シフト・バツフア・ラツチB25へ入カ
ゲートされる。このようにして該ラツチB25に置かれ
たシフト量信号は、ソース・オペランドの取出を必要と
する他の命今について新之しい「復号成功」信号A4B
が得られるまで、そのままに留まる。第13図からの「
ソース取出」信号F7によつて指示されるように、ソー
ス制御がソース取出を行うたびに、ラツチB25中のシ
フト量信号はバスB13.へゲートされる。トリガB2
6(第9A図)からの「ソース・フイールド取出」信号
B9は、「復号成功」信号A4Bに起因する最初の取出
のためにレジスタB24に保持されたシフト量信号をバ
スB13へ直接にゲートさせる。バスB13の出力は、
後述する如く、AOPに関連するステータス・ビツトを
シフトする。ソース・シフト・バツフア・ラツチB25
の出力へ接続された零検出器B27及びレジスタB24
へ接続された零検出器B28は、フアネル回路を通して
線B14へ供給される。この「零シフト量]信号B14
はこのソース取出についてはシフトが遂行さるべきでな
いことを指示し、また特定のAOPが取出を完了すると
すぐに、すなわち後続AOPの取出を待機せずに、その
OPからのデータをEF A15へ供給することを可能
にする。加算器B19及びB21から生ぜられる桁上げ
信号B41及びB42は第9B図のフアネル回路B29
へ供給され、そこで遂行中の命令の型を指示する適当な
復号信号A4G又はA4H及び「復号成功」信号A4B
と組合わされ、これにより重複取出卜リガB30をオン
に転じる。このトリガB30は当該ソース・オペランド
について重複取出が遂行されねばならないことを指示し
、重複取出論理の制御並びに遂行さるべさ取出の回数を
決定するオペランド長加算器B17へその出力を供給す
る。MVC,.NC,.OC,.XC又はCLC命◆の
場合、重複取出条件はラツチB32へ接続された線B3
1上の信号によつて指示される。これは特別の信号であ
つて、行先フィールド(第1オペランド)の全体が1ダ
ブルワードに包含されるときに、重複取出を抑止するた
めに使用される。このような場合、両オペランドが重複
取出を必要とするように位置合せされたとしても、かか
る重複取出を行う必要はない。ラツチB32からの信号
Bノ31はトリガB33によつて制御することができる
トリガB33は、SS命令の第1オペランドが1より多
いダブルワードを有する場合、該命寺の第1復号サイク
ル中にセツトされる。ラツチB32がセツトされるのは
、トリガB33がオンである場合か又はトリガB34が
オンで且つ信号B12が1より多い夕゛ブルワードが供
給されることを指示する場合である。トリガB34がセ
ツトされるのは、「復号成功」信号A4Bが存在し、M
VC,.NC,.OX,.XC又はCLC命令のいずれ
かが復号されており且つ当該サイタルがこのような命◆
の第2復岩サイクルでない場合である。ラツチB32及
びトリガB33は、それらをリセツトさせるような次の
「復号成功」信号A4Bが生ぜられるまで、そのままオ
ンに留まる。線B4乃至B7上の信号はトリガ信号であ
り、所与のAOPが開始されるサイクルの間に有意とな
る。
これらの信号は、このAOPによつて遂行さるべき動作
に関係する情報を供給する。「第1取出」信号B4は現
在の取出が主記憶A16の特定のフイールドから取出さ
れつつあるオペランドの最初のものであることを指示し
、「最終取出」信号B5は現在の取出がこのオペランド
の最後のものであることを、「行先取出」信岩B6は現
在の取出が行先制御によつて行われていることを、そし
て「ソース取出」信号B7は現在の取出がソース制御に
よつて行われていることをそれぞれ指示する。信号B6
又はB7のいずれか一方は、これらのすべての取出につ
いてオンとなる。信号B4及びB5は、順欠の取出位置
に依存して、いずれかの組合せでオンとなる。第12図
から加わる「再取出優先」信号E8は、当該サイタルの
間にアドレス増数器Dll(第11図)が再取出を遂行
するために使用されていることを指示する。
これは遂行町能な最高優先順位の動作である。信号E8
は、アドレス増数器ラツチD10(第11図)からアド
レスが取られるように「アドレス加算器をPRALへゲ
ート」信号B1をオフに転じ、またラツチ時間に[取出
要求」信号B2をオンに転じてPSCF A13へ取出
要求を指示させる。[ソース/行先優先」信号E7は、
或るサイクルの間にソース制御又は行先制御のいずれか
が取出のためにアドレス増数器D11を使用しているこ
とを指示する。これは第2の優先順位を有する動作であ
る。またこの信号E7は、アドレス増数器D11からア
ドレスが取られるように、信号B1をオフに転じる。さ
らにこの信号E7は、PSCF A13への「取出要求
」信号B2をラツチ時間にオンに転じるとともに、この
取出のために或るAOPが開始されるように「AOP開
始]信号B3をオンに転じる。もし命令復号ブロックA
llから加0る「行先取出」信号A4D及び「ソース取
出」信号A4Eの一方が「復号成功]信号A4Bと同時
にオンとなるならば、これに応じて信号B2及びB3が
オンに転じられる。しかし、信号B1はオンに転じない
ので、アドレスはアドレスカロ算器D13(第11図)
から取られない。第10A図及び第10B図に示す論埋
は、使用申状態にあるAOPのトラツクを維持するとと
もに、必要に応じて開始さるべき次のAOPを決定する
破線で囲まれた回路C(A)乃至C(Dの各々は、開始
トリガと、使用中トリガと、AOPの各々に対応するラ
ツチとを含む。以下では回路C(A)について説明する
が、これは他の回路C(8)乃至C(ト)についてもあ
てはまる。回路C(A)に設けられた使用中トリガC2
0及び使用中ラツチC21は、AOP−Aに対応する使
用中トリガ及び使用中ラツチである。これらはAOP−
Aが使用中であるときオンとなり、AOP−Aが割当て
られておらず従つて利用可能であるときオフとなる。こ
れらをオンに転ずる信号はAND回路C22から到来し
、該回路は第9A図から加わる「AOP開始」信号B3
及びAOP−Aが次に使用されることを指示する復号器
C23の出力Aによつて作動される。AND回路C22
の出力はそれと同時に開始トリガC24をオンに転じ、
該トリガはAOP−Aが開始されている1サイタルの間
オンとなる。[AOP−Aリセツト」信号K1は、AO
P−Aがもはや必要でなくなつたとき1サイクルの間オ
ンになり、使用中ラツチC21及び使用中トリガC20
をセに転じてAOP−Aが今や割当てられていないこと
を指示させる。ラツチC21がオンであると、これに応
じて[アドレス増数器をOAR−Aへゲート」信号C7
及び「アドレス加算器をOAR−Aへゲート」信号C1
3が禁止される。第11図を参照する1こ、信号C7及
びC13はアドレス増数器ラツチD10又はアドレス加
算器ラツチD9からAOP−AにあるOAR−Aへの入
カゲートをそれぞれ制御する。もし使用中ラツチC21
がオフであれば、信号B1の状態に依存して信号C7又
はC13のいずれか一方が出力され、かくてアドレス増
数器ラツチD10又はアドレス加算器ラツチD9のいず
れかがOAR−Aへ入力ゲートされる。従つて、或るA
OPが使用中でなければ、そのOARは、信号B1の状
態に依存して第11図のアドレス増数器ラツチD10又
はアドレス加算器ラツチD9から各サイクルごとに入カ
ゲートされうる。然る後、このAOPが開始されるとき
、この入カゲートが停止されるので、入カゲートされた
最後の値はこのAOPが必要とするオペランド・アドレ
ス値である。回路C(A)について前記した構成及び動
作は、AOPの各々についても同様である。第10A図
の回路C25乃至C27は開始トリガC24及び使用中
トリガC20の状態を調べ、そして第9A図からの「A
OP開始」信号B3が活勢である場合には、どのAOP
が次のサイクルで開始さるべきかを決定する。
これらの回路の動作は、まずAOP−Aを調べそれが使
用可能であれば使用し、さもなければ次にAOP−Bを
調べそれが使用町能であれば使用するという手順を、A
OP−Fに至るまで順次に行う。回路C25乃至C27
はビツト0乃至2から成る3ビツトのID(識別子)を
供給し、これにより次に使用さるべきAOPを指示する
。簡単のために「次のIDlと呼ばれるこのIDはその
値2がAOP−Aを指示し、値3がAOP・「Bを指示
し、以下同様に値7がAOP−Fを指示する々目く符号
化されている。このようにして発生された「次のID」
は使用IDラツチC28に置かれ、該ラツチはこの「次
のID」を復号器C23へ戻す。こうすることにより、
「AOP開始」信号B3が受取られたとき、ォンに転ぜ
られるべき開始トリガ及び使用中トリガを決定すること
ができる。所与のAOPを識別するIDの符号化は、本
発明の実施態様を通して標準化されている。
復号器C23の出力A乃至Fは2進のIDコード010
乃至111(すなわち10進の2乃至7)にそれぞれ対
応する。この実施態様におけるすべての復号器及び符号
器には、これと同じ規則が適用される。第11図は、オ
ペランド取出ブロツクA9における仮想アドレスの処理
を示す。
そこにはAOPーA乃至AOP−Fにそれぞれ設けられ
た6個のOAR、すなわちOAR−A乃至0AR−Fが
図示されている。これらのOARは、第10A図及 3
び第10B図から加わる信号C7乃至C18の制御下で
、アドレス加算器ラツチD9又はアドレス増数器ラツチ
DlOから人カゲートされうる。オペランド取出ブロツ
クA9のアドレス加算器ラッチD9によつて受取られる
有効アドレスはア lドレス加算器出力線A4Aを介し
て命令復号ブロツクA11から供給され、該ブロツクは
命今が復号されたときその有効アドレスを計算する。と
いうのは、アドレス加算器D13は実際には命今復号ブ
ロツクA11の一部として設けられているからである。
アドレス加算器ラツチD9にあるアドレスはアドレス加
算器D13から与えられ、オペランド取出ブロツクA9
の内部におけるアドレスの処理を表わす。
オペランド取出ブロツクA9が適当なOAR中のアドレ
スによつて要求されるオペランドの再取出を必要とする
場合、アドレス増数器D11は該0ARからプロセツサ
・アドレス・ラツチD12へアドレスを与えるための通
路として使用される。この場合、信号F30は不在でこ
のアドレスには何も加算されr,また信号B1も不在で
あるからこのアドレスはプロセツサ・アドレス・ラツチ
D12へゲートされる。かくて、このアドレスは変更さ
れないでそのままPSCF A13へ再送される。この
目的は既に開始されたAOPについて取出を反復するこ
とにあるから、他のAOPは開始されない。アドレス増
数器Dllの他の目的は、ソース制御又は行先制御によ
つて、使用中でないAOPを開始させるためのアドレス
を供給することにある。この場合、ソース制御又は行先
制御によつて最後に開始されたAOP00ARはアドレ
ス増数器D11へゲートされ、さらにPSCF A13
へ新しい取出要求を供給するためにプロセツサ・アドレ
ス・ラツチD12へゲートされ、また次のAOPを開始
させるためにアドレス増数器ラツチDl0にもゲートさ
れる。ソース制御又は行先制御がこのようにしてアドレ
ス増数器D10を普通に使用している場合、信@F30
がオンとなつて(夕゛ブルワード中の8バイトを表つわ
す)8がアドレスヘ加算されるから、次の上位ダブルワ
ードから取出が行われることになる。
この例外は信号F30が不在となるような重複取出の場
合であり、ここでは同一ダブルワードが再び取出される
。既に説明した信岩B1はアドレス加算器D13をフ0
ロゼンサ・アドレス・ラ゛ンチD12へゲートするため
の信号であつて、該ラツチD12へのアドレスがアドレ
ス加算器D13又はアドレス増数器D11のいずれから
取られるのかを制御するとともに、アドレス加算器ラツ
チD9又はアドレス増数器ラツチD10のいずれがOA
Rヘ入カゲートされるのかを制御する。第12A図及び
第12B図の論理は、第11図のアドレス増数器Dll
へアドレスを出力ゲートすべきOARを制御する。
「0ARゲート」線E1乃至E6はOAR−A乃至0A
R−Fの出力ゲートへそれぞれ接絖され、そして優先回
路を構成するフアネル回路E10乃至E15へ接続され
たゲート制御トリガから信号をそれぞれ受取る。「AO
P再取出」信号J1乃至J6は第17B図から受取られ
、AOP−A乃至AOP−Fの各々に対する再取出動作
を指示する。これらの信号J1乃至J6のうち唯1つだ
けが一時にオンとなることが可能であり、そして或る信
号がオンとなつた場合には、これに応じて第12A図の
「0ARゲート」信号E1乃至E6のうち対応する信号
がオンに転じられ、またOR回路E9の出力がオンとな
つてフアネル回路E10乃至E15への他の全入力をデ
ゲートさせる。さらlこ再取出優先トリガE16もオン
とばり、線E8を介して当該サイクルの間にアドレス増
数器Dl1(第11図)が再取出のために使用されてい
ることを指示する。もし「AOP再取出」信号J1乃至
J6の或るものがオンでなければ、アドレス増数器D1
1をソース制御及び行先制御によつて使用することがで
きる。もしこれらの制御のうちいずれか一方がアドレス
増数器D11の使用を必要とすれば、該制御は第13B
図の「行先1D使用」信号F1、「ソースID使用」信
号F3又は[次の1D使用]信岩F4をオンに転ずる。
信号F1は行先制御が新しいAOP(7)開始を必要と
するときにオンに転じ、これにより第15図からの線G
6に「先行行先ID」を有するOARをアドレス増数器
Dllへゲートさせる。同様に、信号F3はソース制御
が新しいAOPの開始を必要とするときオンに転じ、こ
れにより第15図からの線G4に「先行ソースID」を
有するOARをアドレス増数器Dllへゲートさせる。
ソース制御だけが1サイクルの速度で新しいOARを開
始させることができるが、このためには特別の動作が必
要である。この場合、第10A図からの「次のID]信
号C19によつて識別されたAOPがアドレス増数器D
llへゲートされるように、ソース制御によつて(信号
F3のかわりに)信号F4が上昇される。信?19は開
始されんとしているAOPの■Dを含み、そしてこの「
久のID」は線G4上の「先行ソースID」のかわりに
使用される。というのは、1サイクルの速度で動作して
いる場合、先に開始されたAOP(7)IDが「先行ソ
ースID」信号G4を獲得するには十分な時間が無いか
らである。第12A図のソース/行先優先トリガE17
がオンに転ずると、これは当該サイクル中にソース制脚
又は行先制御によつてアドレス増数器Dllが使用され
ていることを指示する。このトリガE乏17がオンに転
ずるのは、「ソース/行先優先要求」信号F2が存在し
且つOR回路E9へ供給される「AOP再取出]信号J
1乃至J6が存在しない場合である。第13A図乃至第
13D図は、ソース制御及び2行先制御を示す。
これらの図面に示された主要な制御論理は、特定のフイ
ールドを取出すために1より多いAOPが必要であると
き、追加AOPの開始を制御する。「1より多い夕゛ブ
ルワード]信号B12が、主たる制御を与える。ソース
取出を3必要とする命令が復号された後のサイクルにこ
の信号B12が存在していれば、「ソース・フィールド
取出]信号B9はラツチF10及びトリガF11をセツ
トする。このラツチF10及びトリガFl1は、このソ
ース・フイールドの取出が継続3.する限り、オンに留
まる。また信号B9はソース・カウント・ラツチF12
を制御し、これにより当該オペランドについて取出すこ
とが必要な夕゛ブルワードの総数より1だけ小さい「夕
゛ブルワード・カウント」信号B11を該ラツチヘ入カ
ゲートさ 4fせる。次いで、この信号B11は各サイ
クルごとに加算器F13及びソース・カウント・トリガ
F14を通してソース・カウント・ラツチF12へ戻さ
れる。普通の場合、ラツチF12のカウン卜信号は加算
器F13によつては変更されない。しかし、もしソース
取出ラツチF21(第13D図)からの「ソース取出]
信号F8がオンとなつて新しいソース取出が開始された
ことを指示するならば、信号B11は加算器F13で1
だけ減数される。零検出器F15はソース・カウント・
ラツチF12のビツト23乃至27へ接続され、この信
号B11が1まで減数されたときその出力を供給し、よ
つて1回だけの取出が残つていることを指示する。この
取出が行われた場合、零検出器F15の出力と信号F8
の組合せによりAND回路F16から出力が生じ、ソー
ス・リセツト・トリガF17をオンに転じる。これによ
りソース制御のオペランド取出が終了したことが指示さ
れ、そしてソース活勢ラツチF10がリセットされる。
ソース・リセツトトリガF17がオンになると、これに
応じて「ソース/行先最終取出]信号F6が送られ、こ
のサイタルに開始されているOARが最終取出のための
ものであることを指示する。システム中のデツドロツク
を防止するには、ソース制御又は行先制御の一方により
割当てることができるAOPの数を制限して他方の制御
によるAOPの獲得をロツク・アウトしないようにする
ことが必要である。
この制限を実現するため、AOPの谷々についてステー
タス・ビツトを維持し、どのAOPがソース取出又は行
先取出のために使用されているかを記録することが行わ
れる。信号N5は2個のAOPがソースのために割当て
られることを指示し、信号N4は3個のAOPがソース
のために割当てられることを指示する。これらの信岩は
ソース取出ラツチF21からの信@F21と組合わされ
、ソース取出のために3個のOARが割当てられること
を指示するためにフアネル回路F32から出力を生ぜし
める。この出力は、行先活勢ラツチF30がオンである
とき、ソース制限トリガF20をオンに転ずる。行先制
御のための同様の論理は、3個以上の0ARが行先取出
のために割当てられるとき、行先制限トリガF19をオ
ンに転ずる。
この動作は、ソース活勢ラツチF10のオン状態によつ
ては条件付けられない。このように、この点における両
制御の動作が異なるのは、MVC命令やLM命令の如き
命令について行先制御が活勢でなくても、ソース制御は
ランすることがあるからである。逆に、行・先制御は、
ソース制御がランしていなければ、決してランしない。
制限トリガF19又はF20の一方がオンであれは、そ
れに関連するソース制御又は行先制御はそれ以上AOP
を開始させることができない。優先回路F22は、アド
レス増数器D11(第11図)を次に使用することがで
きるのがソース制御又は行先制御のどちらであるかを決
定する。
この回路によつて調べられるものには、ソース活勢トリ
ガF10及び行先活勢トリガF30、行先制限トリガF
19及びソース制限トリガF20、アドレス増数器トリ
ガF27、「ソース/行先優先」信岩E7並びに「PS
CF使用中]信岩A2Aがある。実現されたアルゴリズ
ムに従つて、もしソース制御及び行先制御の両者が使用
甲であれば、それらの制御は1つおきのサイクルごとに
動作することを許され、そしてどちらの制御も先行サイ
クルに動作しなかつたならば、行先制御に優先権が与え
られる。もし行先制御が活勢でなければ、ソース制御が
各サイクルごとに動作することを許される。もし行先制
御が後続サイクルにアドレス増数器Dl1を使用するの
であれば、優先回路F22の出力はラツチF23をオン
に転ずる。
もしソース制御が後絖サイクルにおいてアドレス増数器
D11を使用することになつており且つ該制御が現サイ
クル中にこのアドレス増数器D11を成功裡に使用しな
かつたならば、ラツチF24がオンに転ぜられる。もし
ソース制御がアドレス増数器Dl1を現サイクルで成功
裡に使用し且つ該増数器を仄のサイクルで再び使用する
のであれば、そのときにはラツチF25がオンに転ぜら
れる。これらのラツチから得られる信号F1、F3及び
F4は第12A図及び第12B図のゲート制御論理へ供
給されて適当なOARからアドレス増数器Dllへのゲ
ートを制御し、「ソース/″行先優先要求」信岩F2は
第12図のソース/行先優先トリガΣ17へ供給されて
ソース制御又は行先制御が優先権を必要としていること
を指示せしめる。もしラツチF24又はF25がオンに
なれば、ソース・アドレス増数器トリガF27はこれら
のラツチヘ接続されたOR回路の出力信号F26によつ
てオンに転じられる。
高優先順位の再取出動作が遂行されなかつた場合、この
トリガF27はアドレス増数器D11がソース・オペラ
ンドのために使用されていることを指示する。もしこの
トリガF27のオンと同時にソース・リセツl゛・卜リ
ガF17がオンとなるか、又は「PSCF使用甲」信岩
A2Aが受取られ、或いはもし[ソース/行先優先」信
号E7がオフであれば、このラツチF27の出力はAN
D回路F28で阻止される。もしこの出力が阻止されな
ければ、ソース・オぺランドのために或るAOPが開始
され、またソース取出ラツチF21がオンとなつてこの
ことを指示する。このラツチF21からの信号F8及び
該ラツチヘ接続されたソース取出卜リガからの「ソース
取出」信号F7は、この要求に関連するAOPを止常に
開始させるために使用される。ソース・オペランドの取
出について説明したものと同様の回路が、行先オペラン
ドの取出についても設けられ、それと同様の態様で使用
される。
両者が相違する処は、行先制御は1サイタルの速度では
動作することができず、しかも常に3個のAOPに制限
されるのに対し、ソース制御は1サイクルの速度で動作
町能であつて、行先制御が活勢でなければ6個のAOP
全部を使用することができるという点にある。第14図
において、行先1DトリガG10は、EF A15へ供
給さるべき次の行先データを有するAOP01D,すな
わち「次の行先1D」を保持する。
各命今の実行開始時に、「OP分岐取得」信号A5Aは
、ラツチG14から行先1D卜リガG10への入カゲー
トを行わしめる。もしこの命令について行先取出が遂行
されたならば、当該制御は、0P分岐取得サイクルの間
にチエーンにおける最初の行先AOPの■D、すなわち
「次の行先1D」を線M2に供給する。次いで、EFA
15が行先データの夕゛ブルワードを受取る準備を完了
すると、これは「Bレジスタへの主記憶オペランド」信
号A6Bを与える。この結果、行先IDトリガG10は
ゲートG11を介して出力ゲート制御ラツチG12へゲ
ートされ、そしてその「現に出力ゲートされるAOP0
1D」出力G3はこのIDによつて選択されたAOP中
のOPをEF A15のA及びBレジスタに至るバスヘ
ゲートさせる。もしこのデータが実際にPSCFA13
から再び受取られなかつたならば、ラツチG12への入
カゲートを制御する信号G15は後続サイクル中にEク
ロツクが停止される間このラツチの内容をそのまま保持
させるので、当該0PはそのデータをEF A15が受
取るまで継絖的に出力ゲートすることができる。またラ
ツチG12の出力信号G3はオペランド取出論理へ供給
され、該論理は行先チエーンにおける次のOPを決定す
るとともに、「次のID」信号P1を復帰させてそのデ
ータをEF A15へ送らせるようにする。この信号P
1は、「Bレジスタへの主記憶オペランド」信号A6B
により、行先1DトリガG10へ入カゲートされる。も
しEタロツクがAND回路G13によつて停止されてい
るならば、データが利用可能となるまで、行先1Dトリ
ガG10への入カゲートが禁止される。この動作の完了
時に、最初のOP,の行先データはEF A15へ供給
されており、また行先1DトリガG10もチエーンの次
のAOPをポイントするように更新されているので、E
F A15が他の入カゲートを通知するとき、EF A
15は行先チエーンにおける次のOpの内容を受取るこ
とになる。
ソースIDトリガG16も同様に動作するが、ただこの
トリガは当該命令について遂行されたソース取出のサー
ビスを与えるという点が異なる。この相違点の理由とし
ては、或る命今についてソース取出が遂行される場合、
オペランド取出論理は、EF A15からの明示的信号
を要することなく、その実行開始時にAレジスタへの最
初の入カゲートを自動的に遂行するということが挙げら
れる。このことは「0p分岐取得」信号A5Aによつて
生ぜられ、該信号は「欠のソースID」信号M1を出力
ゲート制御ラツチG12へ直接にゲートせしめるととも
に、この信号M1の値が零でなければラツチG19をオ
ンに転じて線G17に信号を生ぜしめ、これによつて当
該0PをEF A15中のAレジスタヘ出力ゲートさせ
る。行先オペランドについて説明したと同様に、出力ゲ
ート制御ラツチG12の出力信号G3はオペランド取出
論理へ加わり、該論理はチエーン中の「次のID」信号
P1を供給し、この信号はラツチG19によつてソース
IDトリガG16へ入カゲートされる。Eクロツクを停
止させる動作は行先オペランドのそれと同じであり、そ
してEF A15中にあるAレジスタへの後絖オペラン
ドの入カゲートは「Aレジスタへの主記憶オペランド」
信号A6Aによつて通知されるので、これにより行先1
Dのそれと同じ動作が行われる。
第15図において、行先ソース・ラツチG20及び先行
ソース・トリガG21は、ソース制御によつて現に生成
されている処のチエーンで最後に開始されたAOP(7
)IDを保持する。
普通の場合、「ソース取出」信号B7がなければ、この
先行AOP(7)IDはトリガG21からゲートG22
を通してラツチG20へ帰還されるので、このIDはこ
のラツチG20及びトリガG21で無限に保持される。
これに対し、「ソース取出]信号B7が生ずる場合は、
「最終取出」信号B5がオンでゲートG23を阻止させ
ない限り、この信号B7はゲートG23を作動させるの
で、線T2にある開始中八OP01D(C1 1D)が
ラツチG20へゲートされることになる。各AOPの制
御によつて保持されるステータス情報の内には、チエー
ンにおける先行AOP0)ID、すなわち「先行IDl
が含まれる。この「先行1D」は線G8を介してAOP
制御へ供給される。ソース制御については、これがチエ
ーンの最初の取出でない限り、従つて「第1取出」信号
B4がオンでゲートG24を阻止させない限り、この「
先行1D」は「ソース取出]信号B7の制御下でゲート
G24を通して線G8へゲートされる。かくて、チエー
ン中の最初のAOPは「先行1D」として零を有するの
に対し、チエーン中の他のAOPは先行AOPがどれで
あるかを指示する有意な「先行1D」を有する。光行行
先ラツチG26及び先行行先トリガG27も同様の態様
で勤作する。IBMシステム/370のアーキテクチヤ
がプロセツサの動作に課す制約には、命+6n″に対す
るすべてのオペランド取出が命◆4n+1゛に対する任
意のオペランド取出の前に遂行されねばならないという
ものと、複数の夕゛ブルワードにわたるオペランドを有
するような命令については、オペランドの取出は最ド位
から最上位へ順次に遂行されねばならないというものが
ある。
オペランド取出論理がこのように構成されていると、谷
オペランドを取出すために使用されるAOPはアーキテ
クチヤ的に正しい順序で開始されることになる。
しかし、或るデータは千ヤツシユから利用することがで
き、また他のデータは主記憶A16からの取出を必要と
することがあるので、谷ダブルワードのみかけの取出順
序はAOPの開始順序とは異なることがある。この理由
で、後述するように順序付け拒否と呼ばれる機構がオペ
ランド取出ブロツクA9に設けられる。それぞれの取出
が正しい順序で遂行されることを保証するには、諸AO
Pが最初はどのような順序で開始されたかを記憶するこ
とが必要である。第16A図乃至第16D図に示すLR
U(LeastRecentlyUsed)論理はこの
機能を遂行する。15個のラツチH13乃至H27の各
々はAOPの異なる対にそれぞれ対応する。
たとえば、ラツチH13について説明すると、これはA
OP−Bの開始時にセツトされ、そしてAOP−Aの開
始時にリセツトされる。もし任意の時間にラツチH13
がオンであれば、これはAOP−BがAOP−Aよりも
後に開始されたことを指示し、従つて再取出が遂行され
る場合には、AOP−AがAOP−Bよりも高い優先順
位を有することになる。これに対し、もしラツチH13
がオフであれば、事態は前記と全く反対である。フアネ
ル回路H28乃至H33の各々は、AOP−A乃至AO
P−Fの各々が再取出を必要としていることを指示する
第17B図からの「AOP再取出要求」信号J7乃至J
12をそれぞれ受取る。この再取出が必要となるのは、
前記したように順序を外れた取出があつたためか、又は
PSCF A13によつて取出が拒否されたためである
。フアネル回路H28の出力は、他のAOPが高い優先
順位を有していて再取出を必要としているために、AO
P−Aが現時点では再取出を許可されないことを指示す
る。
この状態が存在するのは、AOP−Bが再取出を必要と
し且つAOP−Aより高い優先順位を有していたり、又
はAOP−Cが再取出を必要とし且つAOP−Aより高
い優先順位を有している場合等である。フアネル回路H
29乃至H33は、AOP−B乃至AOP−Fについて
これと同じ機能を遂行する。第17A図及び第17B図
に示す論理の主たる目的は、再取出を必要とするAOP
のトラツタを維持することと、その再取出の正しい時間
になるとき適当な再取出信号を発生することである。
「C2 1P」信号T4は、PSCFのC2サイクjル
を有するAOPを識別する。
ここで、C2サイクルとは、ダブル・ノ一ドが送られて
いること又は取出要求が遅延若しくは拒否されたことを
PSCFA13が通知するような時間である。この信号
T4は復号器J13へ供給され、そこから前記AOPへ
の出力が生ぜられる。AOP−Aが「C2 1D]信号
T41ごよつて識別されるものとすると、C2サイクル
の間に線J14に信号が生ぜられる。もしこのC2サイ
クルの間に[遅延取出拒否」信号A2Cが存在するか又
はPSCF A13から「取出遅延」信号A2D力性ぜ
られる場合、或いはオペランド取出ブロツクA9で1順
序付け拒否」信号K7が発生される場合、0R回路J1
6はAND回路J15へ出力を与え、該AND回路はま
た線J14上の信岩を受取ってAOP−A再取出要求ラ
ツチJ17をオンに転rる。もしC2サイクルの間に「
取出遅延」信号A2Dが存在するか、又は「遅延取出進
行中」信号A2Eがオンである間に「遅延取出拒否」信
号A2Cが存在すれば、AND回路J18はAOP−A
拒否ラッチJ19をオンに転ずる。AOP−A再取出要
求ラツチJ17は、AOP−Aによつて必要とされた再
取出が実際に遂行されるまで、AOP−Aが再取出を必
要としていることを記憶する。AOP−A拒否ラツチJ
19は、AOP−Aの拒否理由が遅延取出にあることを
記憶し、そして「遅延取出進行中」信号A2Eが終了す
るまでこれを記憶する。ラツチJ17及びJ19の両者
がオンである場合、これは再取出が必要とされているけ
れども、拒否の原因となつた遅延取出がPSCFA13
でまだ完了していないために、この再取出がまだ遂行で
きないことを指示する。ラツチJ17がオンで且つラツ
チJ19がオフとなる場合、これはAOP−Aの再取出
が必要とされており且つ優先順位が与えられれば直ちに
遂行可能であることを指示する。[AOP−A再取出」
信号J1を上昇させることができるのは、ラツチJ17
がオン、ラツチJ19がオフで、しかも(優先順位の高
い或るAOPが再取出を待機していることを指示する)
信号H7がオフであるような場合である。
この信号J1は、AOP−Aの再取出を実施するに必要
な動作を生ぜしめる。特に、この信号J1はゲート制御
トリガヘ供給されてAOP−Aをアドレス増数器D11
(第11図)へゲートせしめ、さらにこの信号J1は符
号器J20へ供給され、該符号器から再取出1Dトリガ
J21へAOP−A(7)IDを送らしめる。このよう
にして再取出1DトリガJ21に非零の■Dが与えられ
ると、これは識別されたAOP−Aに対する再取出を遂
行するためにアドレス増数器D11がこの特定のサイク
ルで使用されていることを表わす。このID値は復号器
J22へ供給され、該復号器はAOP−Aについて線J
23に出力を発生してこれをAND回路J24へ与える
。AND回路J24は、「PSCF使用中」信号A2A
がオンでなけれは、AOP−A再取出要求ラツチJ17
をリセツトする。前記したように、もしAOP−Aから
の当初の取出要求が「取出遅延」信号A2Dを受取つた
ならば、これに応じてAOP−A拒否ラツチJ19及び
AOP−A再取出要求ラツチJ17がオンに転じられて
いる筈である。この状況では、データはPSCF A1
3によつて1ビツト遅れて復帰されるので、再取出を遂
行する必要はない。この特定の状況において、AOP−
Aに対するデータが復帰されんとするとき、「前進1D
]線U1を介して与えられる該AOP(7)IDが「P
SCF前進」信号A2Bによつて復号器J25へゲート
され、かくて該復号器から線J26に生ぜられる出力に
よつてAOP−A拒否ラツチJ17及びAOP−A再取
出要求ラツチJ19がリセツトされる。再取出を実際に
必要としていなかつたとしても、遅延された取出の際に
これらのラツチをオンに転ずるのは、優先順位の低い他
のAOPが再取出を遂行することを防止するためである
。これらの他のAOPは、AOP−Aに対するデータが
受取られるまで再取出を遂行することを許町されないか
らである。AOP−A拒否ラツチJ19は、「遅延取出
進行中」信号A2Eがオフになるまで、つまりPSCF
A13で遂行されている遅延された現在の取出が完了
したこと及びPSCF A13が今や遅延された他の取
出を遂行するために利用町能であることが通知されるま
で、オンに留まる。第19図のAOPリセツト・トリガ
K8乃至K13は、対応するAOPがその動作を完了し
てリセツトされ〜とするとき、オンに転じられる。この
状況が生ずるのは、対応するAOPについて取出された
データがEF A15へ成功裡に転送された場合である
。この状態は、データがA及びBレジスタヘ出力ゲート
されていることを指示する処の第14図の出力ゲート制
御ラツチから加わる「現に出力ゲ゛一卜されるAOP(
7)ID」信号G3の存在と、「Eクロツク停止」停止
信号S2の不在とによつて認識される。第18図の論理
は、「月旬茅付け拒否」信号K7を生成するためのもの
である。
この信号K7を受取るAOPはそのOPに保持された夕
゛ブルワードの再取出を行うように制御されるが、これ
は受取られた夕゛ブルワードが順序を外れているために
行われる。もし任意のAOPが再取出を必要としておれ
ば、OR回路K14は出力を発生し、そしてもしこの状
態が存在する間に「AOP開始」信号B3がオンならば
、AND回路K15から出力が生ぜられ、これによりト
リガK16、ラツチK17及びトリガK18が後続サイ
クルにおぃてそれぞれ1サイクルの間オンに転じられる
0この結果・当該AOPに関連する要求のC2サィクル
の間に、つまり該AOPが拒否信号を探索する間に、「
順序付け拒否」信岩K7が生ぜられる。信号H1乃至H
6は、AOP−A乃至AOP−Fについて、再取出を必
要としている高優先順位のAOPが存在することをそれ
ぞれ指示する。もしこれらのうち任意の信号がオンであ
り且つこのAOP(7)IDが「C1 1D]信号T1
又は「C2 1D」信号T4の形で与えられるならば、
フアネル回路K19又はK20から信号が生ぜられ、こ
れにより当該AOP0C2サイクル中に「順序付け拒否
]信号K7が生ぜられる。第20A図及び第20B図に
示す論理は、(1)特定の命今がその最初の実行サイク
ルを越えて進行することを許される前に或るAOP0I
)OPによつてデータが受取られたか否かに拘わりなく
、このAOPを復号中の該特定の命令と関連付けるよう
―こ動作し、さらに(2)EF A15によつて各AO
Pのデータが必要とされる時点を指示するように動作す
る。
命令復号ブロツクA11が「復号成功」信号A4Bを供
給し且つ「行先取出」信号A4D又は「ソース取出」信
号A4EIこよつて行先又はソース・オペランドが取出
されることが指示される場合、命令待ち行列ブロツクA
12からの「Q入カポインタ」信号A5Cが第20A図
のQ−1DバツフアL13.へ入カゲート8れる。この
信号A5Cは、この命令を受取るような命令待ち行列ブ
ロツクA12中の待ち行列位置を識別する。この待ち行
列位置の指標(Q−■D)は、命令復号ブロツクA11
によつて他の命今が復号されるまで、バツフアL13に
記憶される。かくて、この命令 5に関連するAOPが
開始されるまで、この[Q入カポインタ」信号A5Cが
保持される。Q−1DバツフアL13の出力は回路L(
A1)乃至L(F1)の各入カヘ接続される。AOP−
Aに対応する回路L(A1)は以下で詳述されるが、他
1の回路L(B1)乃至L(F1)の各々はそれぞれ
のAOPに対する開始及びリセツト信号を受取ることを
除けば回路L(A1)と同じように構成される。回路L
(A1)には、AOP−Aに関連して2ビツトのステー
タス・ラツチL14が設けられ、該ラツチはAOP−A
と現に関連してなる命令の「Q入カポインタ」信号A5
Cを記憶する。
ラツチL14は第10A図からの「AOP−A開始」信
号C1によつてバツフアL13にある「Q−1D1ニを
セツトされ、第19図から「AOP−Aリセツト」信号
K1が送られるとき零へリセツトされる。或る命今がE
F A15によつて実行される準備を完了している場合
、命今待ち行列ブロツタA12から回路L(A1)乃至
L(F1)の各々へ「Q出力ポインタ]信号^5Bが与
えられ、これにより実行さるべき次の命令の待ち行列位
置を指示する。この信号A5Bの値は比較器L7におい
℃ステータス・ラツチL14中の「Q−1D」と比較さ
れ、そして両者が一致するとき、すなわちこの待ち行列
位置が同じ命今に対するものであるとき、比較器L7か
ら一致出力L7が生ぜられる。第21A図から加わる「
AOP−Aソース・ステータス」信岩M3は、AOP−
Aがソース取出のために使用されており且つそれがチエ
ーン中の最初のものであるような状況を識別する。もし
[比較一致」信号L7が存在すると同時にこの信号M3
がオンであれば、トリガL15がオンとなり、かくて次
のOP分岐取得時にAOP−Aからのデ一夕がEF A
15によつて必要とされることを指示する。比較器L7
及びトリガL15の出力は回路L(A1)の出力を与え
、回路L(A2)の入カヘ接続される。
回路L(A2)は回路L(B2)乃至O堡L(F2)の
各々と同じであり、後者の回路は回路L(B1)乃至L
(F1)の出力へそれぞれ接絖される。
以下では回路L(A2)が他の回路L(B2)乃至L(
F2)を代表するものとして詳述される。トリガL15
が回路L(A2)へ信号を供給する場合、そのフアネル
回路L16が作勤されて出力L1を発生し、ラツチL1
7及びトリガL18をオンに転ずる。
もしAOP−Aでデータを利用することができなければ
、「Eクロック停止」信岩S2が供給される。Eクロツ
クが停止される限り、この信号S2はオンとなり、フア
ネル回路L16を通してラツチL17及びトリガL18
をオンに維持する。この伏況にあるラツチL17及びト
リガL18a,.AOP−A中のデータが現サイクルの
間にEF A15によつて必要とされること、そしてオ
ペランド取出ブロツタA9がPSCFA13からのこの
データを依然として待機している場合にはEクロツクが
停止されねばならないことを指示する。また、「ソース
ID」信号G1がソース入カゲートを受取るべき次のA
OPとしてAOP−Aを指定している間に、EF A1
5からの「Aレジスタへの主記憶オペランド」信号A6
Aが生じてEF A15がそのAレジスタのためにソー
ス・データのダブルワードを必要としていることを指示
する場合には、ラツチL17がオンに転じられる。この
ラツチL17は、行先データについて同様の「Bレジス
タへの主記憶オぺランド」信号A6B及び「行先1D」
信号G2が存在する場合にも、オンに転じられる。第2
1A図及び第21B図の諸回路は、特定のAOPがソー
ス又は行先AOPのチエーンにおける最初のものか否か
を記億する。
もしAOP−Aが開始されるサイクル中レこ[ソース取
出」信号B7及び「第1取出」信号B4がともにオンで
あれば、ステータス・ラツチM9Aiがセツトされる。
ラツチM9Aは、AOP−Aがソース取出のために使用
されており且つそれがチエーンにおける最初のAOPで
あることを指小ずる。M9Aがリセツトされるのは、A
OP−AがVAOP−Aリセツト]信号K1によつてリ
セツトされる場合である。AOP−Aが実行さるべき次
の命今と関連することを「比較一致」信号L7が指示す
る場合、AND回路M11Aから出力が発生され、これ
にJO応じて復号器M12からレジスタM13へAOP
−Aの■Dが供給される。
レジスタM13は「次のソースID」信号M1を供給し
、これにより実行さるべき欠の命今に対するソース取出
の第1ダブルワードに関連するAOPを指示する。他の
5個のAOPについても対応するラツチM9B乃至M9
Fが設けられ、対応するAOPが第1ソースAOP、す
なわち、ソース取出の第1ダブルワードに関連するAO
Pでのるか否かを記憶する。
また、AOPのそれぞれに対応する6個のラツチM10
A乃至M10FIが設けられ、対応するAOPが第1行
先AOP、すなわち行先取出の第1ダブルワードに関連
するAOPであるか否かを記憶する。任意の命◆につい
ては、第1ソースAOPと第1行先AOPが高々1個ず
つ存在しうるが、もし両者ともに存在するならば、それ
らのAOPは互いに別個のものでなければならない。第
22A図及び第22B図の諸回路は、各AOPのステー
タス、すなわち各AOPがソース又は行先取出のどちら
に関連するかを記憶する。ラツチN6A)は、AOP−
Aが行先取出のために割当てられているか否かを記録す
る。ラツチN6Aは、「AOP−A開始」信号C1が受
取られるときに「行先取出」信号B6がオンを指示する
ならば、ォンに転じられる。またラツチN6Aは、「A
OP−Aリセツト]信号K1が受取られるとき、リセツ
トされる。このほかに5個のラツチN6B乃至N6F1
があるが、これらは他の5個のAOPについてラツチN
6Aと同じ様式で機能する。回路N7は行先トリガN6
A乃至N6Fの状態を調べて2つの出力信号N1及びN
2を発生する。
信号N1は3個以上のAOPが所与の行先オペランドに
割当てられることを指示するのに対し、信号N2は2個
以上のAOPが所与の行先オペランドに割当てられるこ
とを指示する。前記と同様の1組のラツチN8A乃至N
8Fはソース取出のために割当てられるAOPを記憶し
、回路N7と同様の回路N9へ出力を与える。
回路N9の出力N4は3個以上のAOPが所与のソース
・オペランドヘ割当てられることを指示し、他・の出力
N5は2個以上のAOPが所与のソース・オペランドヘ
割当てられることを指示する。第23A図及び第23B
図の機構は、所与のオペランドを取出すために複数のA
OPが使用されねばならないとき、これらのAOPがど
のようにチエーンされるかを記憶する。AOP−A先行
IDラツチP4は3ビツトのラツチであつて、AOP一
Aに先行するチエーン中の任意のAOP0)ID1すな
わち「先行1D」を記憶する。AOP−Aが使用中でな
い場合、又はチエーン中でAOP−Aだけが使用中であ
る場合、AOP−Aに先行するAOPが存在しないこと
を指示するためにこのラツチP4中のID値は零へセツ
トされる。もしAOP−Aが使用中であつて、チエーン
の1部を構成するが該チエーンの最初のAOPでなけれ
ば、ラッチP4はAOP−Aに先行する(チエーン中の
)AOP01Dを保持する。ラツチP4は、「AOP−
A開始」信号C1が受取られる時間に、セツトされる。
ラツチP4へセットされる「先行ID」は、第15図の
線G8から到来する。この線G8は、ソース又は行先オ
ペランドのどちらが取出されるかに依存して、[先行ソ
ースID」又は[先行行先1D」を有する。このID代
AOP−Aの前に最後に開始されたチエーン中のAOP
を識別する。他の5個のAOPについても、これと同様
の先行1DラツチP5乃至P9が設けられる。かくて、
AOPの各々は、存在しうるチエーンで当該AOPに先
行するAOPを知ることができる。云いかえれば、チエ
ーンにおける上位AOPから下位AOPへのバツクポイ
ンタによつてチエーニングが達成される。オペランド取
出ブロツクA9では、或る場合には所与のAOPに先行
するAOPを知る必要があり、また他の場合にはチエー
ン中の後続AOPを知る必要がある。これらの先行AO
P及び後続AOPは、ラツチP4乃至P9の「先行1D
」を調べること二こよつて決定することができる。チエ
ーン中の後絖AOPは「先行1D]をラツチP4乃至P
9の内各と比較することによつて識別することができ、
そしてもし或るラツチの内容が一致すれば、該ラツチに
よつて表わされるAOPがチエーン中の次のAOPにな
る。ここで、或るチエーンからのグブルワードが任意の
AOPからEF A15中のA又はBレジスタヘ現に出
力ゲートされているような状況を考察する。
この状況が生ずると、第14図のソースIDトリガG1
6又は行先1DトリガG10を更新するために、現に出
力ゲ゛一卜されたAOPに後続5/するチエーン中のA
OPを決定することが必要である。
これは6個の比較器P10乃至P15のうち1つの出力
によつて達成され、該比較器は線G3上の先行1Dによ
つて識別されるAOP0)後続AOPを識別する。比較
器P10乃至P15の出力は、後続AOP(7)IDを
3ビツト信号へ符号化するために、符号器P1へ入力さ
れる。詳述すれば、A又はBレジスタヘ現に出力ゲー卜
されているAOP(7)IDは第14図の出力ゲー卜制
御ラツチG12に保持され、該ラツチはこのIDを線G
3に供給して対応する出力ゲートを制御する。
このIDは:比較器P10乃至P15の各々において、
ラツチP4乃至P9の先行1Dの各々と比較される。も
しチエーン中でこれに後続するAOPがあれぱ、完全な
一致を生ぜしめる先行1Dラツチの指定は現に出力ゲー
トされているAOPを指定する。因lこ、このAOPは
出力を生ずる特定の比較器によつて識別される。たとえ
ば、AOP−Bが現に出力ゲートされており、そしてチ
エーン中の次のAOPl)<AOPーEであると仮定す
る。
この場合、AOP−Eの先行■DラツチP8は011を
保持し、これによりチエーン中の先行AOPI:)<A
OP−Bであることを指示する。仮定によりAOP−B
が出力ゲートざれているから、そのIDである011が
線G3に現われて比較器P14から出力を生ぜしめる。
この出力は符号器P1の入カヘ接続され、該符号器はA
OP−E0I)IDである110を出力してこれが次の
AOPであることを指示する。かくて、AOP−Eがチ
エーン中の次のAOPであることが決定された。その後
、出力P1は第14図のソースIDトリガG16又は先
行1DトリガG10へ帰還される。今やAOP−Bのデ
ータがEFA15へ入カゲートされたから、AOP−B
はもはや必要ではなく、従つてこの入カゲートの完了時
にリセツトされる。この段階ではAOP−Eが残りのチ
エーンにおける最初のAOPとなり、これに先行する他
のAOPは存在しないので、AOP−Eの先行1Dラツ
チP8を零へリセツトすることが必要になる。これはA
ND回路P16Eを介して行われ、該回路は、比較器P
14からの比較一致信号、「EFへの入カゲート」信号
G25及び「Eクロツク停止」信号S2に応答してその
出力を発生する。この出力は、トリガ及びOR回路を介
して、ラツチP8へ零を入カゲートさせる。このラツチ
P8は、「AOP−Eリセツト]信号K5が受取られる
ときはいつでもリセツトされる。AOPの各々について
これと同様の回路が設けられることはもちろんである。
後続AOPを見出すことが必要となる他の状況は、PS
CF A13が複数の夕゛ブルワード■PPF A7へ
復帰させており且つそれらの夕゛ブルワードが割当て済
みの複数のOPを充満させうるような場合である。
この場合、各夕゛ブルワードが適当なAOPによつて受
取られる都度、チエーン中の次のAOPを見出してその
AOPへ次のダブルワードを置くようにすることが必要
である。これは、第30B図からの「前進1D」信号U
3を受取り且つチエーン中の次のAOP0)ID1すな
わち「次のID」を出力する如き比較器P17乃至P2
2並びに符号器P2によつて達成される。また、所与の
AOP01Dを与えられたとき、その先行AOPを見出
すことがしばしば必要となる。この操作が必要となるの
は、PSCF A13からデータが復帰しつつあり、し
かも零を除くシフト量によつて位置合せが遂行されてい
るような場合である。この状況では、BDBO上にある
夕゛ブルワードの左端からシフト・オフされ且つその右
端へ戻される諸バイトは、前記した如き様式で、先行す
るOPへ入カゲートされる。このことを達成するために
、「C1 1D」信号T3が復号器P23に与えられ、
該復号器はこの夕゛ブルワードが関連するAOPについ
て出力を供給し、かくてこのAOPに関連する「先行1
D」をOR回路P24へゲートしてその出力P3を生ぜ
しめる。この出力P3は[C1 1D」信岩T3によつ
て識別されるAOPに先行するAOP(7)IDであり
、前記バイトが入カゲートさるべきAOPを識別する。
第24A図及び第24B図の諸回路は、PSCFA13
から谷夕゛ブルワードが受取られるときそのシフト量を
記憶するとともに、諸AOP00Pへの入カゲートを制
御する。
それぞれのA0Pに対応して3ビツトの容量を有するシ
フト量ラツチQ10乃至Q15が設けられる。AOP−
Aに関連するシフト量ラツチQ10は、[AOP−A開
始」信号C1が生ずるとき「シフト量」信号B13をセ
ツトされ、よつて取出のために必要なシフト量を指示す
る。他のシフト量ラツチQ11乃至Q15もこれと同様
の様式で動作し、関連するAOPがリセツトされるまで
そのシフト量をそれぞれ保持する。特定のAOPに対す
るC1サイクルに到達する場合、「C1 1D]信号T
3は復号器Q16へ供給され、該復号器から選択された
AOPに対する出力を生ぜしめる。これに応じて該AO
Pのシフト量がOR回路Q17へ供給され、かくて該回
路の出力がBDBOシフト・レジスタQ18へ供給され
る。このようにして、選択されたAOPのC2サイクル
の間に該AOPに関連するシフト量がBDBOシフト・
レジスタQ18に現われ、線Q9を介してPSCF A
13へ供給され、そこで遂行されるシフト動作の量を制
御する。PSCF A13で行われるシフト動作は、ダ
ブルワードを左シフトするとともに、その左端からシフ
ト・オフされた任意のバイトをその右端に再挿入するよ
うなものである。第24A図及び第24B図にある残り
の諸回路は、このシフトされたデータを選択されたAO
PのOPへ入カゲートすることを制御する。
この目的は、左シフトされたけれども左端からシフト・
オフされなかつたバイトを当該取出を要求したAOP0
I)OPへ入カゲートするとともに、左端からシフト・
オフされ且つ右端へ循環されたバイトを先行AOP00
Pへ入カゲートすることである。諸AOPへの入カゲー
トを遂行するために、第24B図の入力、ゲート・レジ
スタQ1乃至Q8からこれらのAOPへ、それぞれ3ビ
ツトの長さを有する8個のIDが送られる。これらID
の各々は、選択されたOP中にある1バイト位置への入
カゲートを制御する。もし特定サイクルの間にこのID
の値が零であれば、これは入カゲートが生じないことを
指示する。もしIDの値が2乃至7であれば、これは当
該バイトの入カゲートがOPーA乃至0P−Fでそれぞ
れ遂行さるべきことを指示する。BDBOのバイトOに
与えられるデータは常に当該取出を遂行したAOPのO
Pへ入カゲートされるので、[C1 1D」信号T3は
その値を直接に人カゲート・レジスタQ1へ供給するに
すぎない。
他のバイトについては、人カゲートはこのAOPを対象
として、又は先行AOPを対象として行われる。かくて
、他のバイトの各々についてυUは、入カゲート・レジ
スタQ2乃至Q8は、この時間に先行1Dラツチから出
力ゲートされている[C1 1D」信号T3又は「先行
1D」信号P3の一方を供給されうる。
これら2個のIDのうちどちらのIDがゲートされるか
は、7個の信号Q19乃至Q25によつて制御される。
これらの信号はOR回路Q17のシフト量出力から復号
され、どのIDがバイト1乃至7のゲートを制御すべき
かをそれぞれ指示する。これらの信号の各々は関連する
AOPへバイトが入カゲートさるべき場合にオンとなり
、先行AOPへこのバイトが入カゲートさるべき場合に
オフとなる。もし先行AOPが存在しなければ、これは
零検出器Q26によつて認識され、該検出器はシフト量
の復号を無効にしてすべてのバイトを関連するAOPへ
入力ゲートさせる。第25A図及び第25B図はそれぞ
れのAOPに設けられる6個のOPを示す。
各0Pへの入力ゲートはバイト単位で制御されるので、
各0Pの各バイトは個別に表わされている。第25B図
のAレジスタR2及びBレジスタR3は、実際にはEF
A15の一部である。BDBOバスA2Fは、1ダブ
ルワードを構成する8個の個別的なバイトヘ分けて示さ
れている。第1バイトR10は0P−A乃至0P−Fの
第1バイトに相当するラッチR4乃至R9へそれぞれ供
給される。これらのバイトへの入カゲートは復号器R3
0の出力によつて制御され、該復号器は線Q1にIDを
供給しているOPの1つに対する信号を上昇させる。他
のOPの各バイトは、それ自体の復号器R31乃至R3
7と前記した入カゲート信号lこよつて制御される。諸
0PからAレジスタR2及びBレジスタR3への出力ゲ
ートは、復号器R37の出力によつて制御される。復号
器R37に加わる「現に出力ゲートされるAOP(7)
ID」信号G3は出カゲートさるべきOPを識別する3
ビツトの■Dであり、復号器R37の出力に適当な出力
ゲート信号を生ぜしめる。次いで、この出力によつて当
該0Pのすべてのバイトがゲートされ、そして該バイト
はOR回路R13乃至R20及びバスR1を介してA及
びBレジスタへそれぞれ供給される。A及びBレジスタ
への入カゲートは、既に説明した「Aレジスタへの入カ
ゲート」信号G17及び「Bレジスタへの入カゲート」
信号G18によつて制御される。第26A図及び第26
B図の諸回路は、PSCFA13からのデータを待機し
ているAOPを記憶する。
AOP−AがPSCF A13からデータを受取ること
を待機している場合、AOP−A待機中ラツチS3及び
トリガS4はオンである。これらは「AOP−A開始」
信号C1によつてオンに転じられ、そして「AOP−A
リセツト」信号K1が受取られるか又はデータを受取つ
たという適当な指示が与えられるまで、オンに留まる。
最も簡単な状況では第29図から加わる信号T5がォフ
であり、そしてこのような状況でトリガS4がリセツト
されるのは、「C2 1D」信号T4がAOP−Aを指
定して信号S5をオフに移行させ、しかも信号S6がオ
フでC2サイクル中に「取出遅延」信号A2D、「遅延
取出拒否」信号A2C及び「順序付け拒否」信号K7の
いずれも存在しなかつたことを指示する場合である。A
OP−Aがソース取出に関係する場合は、信号T5は常
にオンである。このソース取出は複数のダブルヮードを
含み、このAOPがチエーンにおける最後のAOPでな
ければ零を除くシフトを含む。この状況では、0P−A
へゲートされねばならない或るデータはチエーン中の次
のAOPがそのデータを受取るときに供給され、かくて
このデータがゲートされるまでEF A15はOP−A
を使用することができない。従つて、この状況では、次
のA0Pがそのデータを受取るまで、AOP−A待機中
ラツチS3をオフに転ずることは必要ない。欠のAOP
がそのデータを受取る際、このAOPに先行するAOP
−A(7)IDが線P3に供給されて信号S7をオフに
転じさせるとともに、信号T5の存在を条件としてAO
P−A待機中トリガS4をオフに転じさせる。AOP−
B乃至AOP−Fについても、これと同様の論埋が設け
られる。回路S8は、Eクロツクを停止することが必要
な時機を決定する。もし信号L1がオンでOP−Aから
のデータをEF A15が現に必要としていることを指
示し、そして信号S9がオンでオぺランド取出ブロツク
A9が依然としてPSCFA13からのデータを待機し
ていることを指示するならば、これに応じてEクロツク
が停止される。この状態は、PSCF A13からデー
タが受取られるまで、すべてのサイクルにわたつて持続
する。Eクロツクは、信号L1がオンで且つ信号T11
がオンである場合にも、停止される。但し、信号L1は
EF A15によつてデータが必要とされていることを
指示し、信号T11はAOP−Aがソース又は行先チエ
ーンで最後に開始されたAOPであること及びこのチエ
ーンには現に遂行されでいる取出が存在しないことを指
示する。諸AOPはこの取出に応じたデータを必ずしも
待機していないけれども、もしEF A15が進行する
ことを許容され且つこのデータを入カゲートすることを
許容されたならば、これによつてAOP−Aがリセツト
され、かくてAOP−A中のアドレスが失われることに
なろう。それゆえ、ソース又は行先論理がチエーン甲の
次のAOPを開始する準備を完了したとしても、このア
ドレスはそのために利用することができなくなる。従つ
て、このアドレスを保存するために、この状況でもE夕
ロツクが停止される。他の5個のAOPに対する同様の
状態も、Eクロックを停止させる。第27図の諸回路は
、PSCF A13からデータが復帰される時機を記憶
する。
新しいAOPが開始される場合、「AOP開始」信号B
3は開始されている次のAOP(7)IDを線C19か
らC1 1DトリガT21へゲートさせる。このトリガ
中の非零1Dは、所与のAOPが丁度開始されたばかり
であること並びにPSCF A13がこのAOPの取出
を処理するC1サイクル(第1キヤツシユ・サイクル)
にあることを指示する。通常の場合、このIDはC1
1DラツチT22へ供給され、後続サイクル中にそこか
らさらにC2IDトリガT23へ供給される。もし特定
のIDがこのトリガT23にある間に、「取出遅延」信
号A2D、「取出拒否」信号A2C又は「順序付け拒否
」信号K7が存在すれば、これは当該取出の処理を指示
し、かくて当該AOPの制御はこの取出を処理するべく
適当なアクシヨンを取らなければならない。もしこれら
の信号のどれもが受取られなければ、これは取出された
データがこのサイクルのラツチ時間にBDBOで利用で
きることを指示する。再取出を拒否された取出の時間が
到来する場合、この取出に関連するAOPの「再取出」
信号が線J1乃至J6のいずれかに現われる。
この信号は符岩器T24によつてこのAOPO)IDへ
符号化され、そしてこのIDは再取出1DトリガT25
に置かれ、そこからさらに再取出1DラツチT26へ置
かれる。非零1DがトリガT25に現われる場合、これ
はこの特定のAOPに対する再取出を遂行するためにア
ドレス増数器Dll(第11図)が使用されていること
を指示する。もしこのサイクルの間に「PSCF使用中
]信号A2Aが存在しなければ、PSCF A13はこ
の要求を受人れそれを処理することになるので、そのl
DはラツチT26から再取出C1 1DトリカT27へ
通過することを許され、かくてPSCF A13がこの
要求を処理するC1サイクルにあることを指示する。次
いで、OR回路はトリガT27及びT21からこのID
を受取り、その出力をラツチT22へ供給する。トリガ
T27及びT21は互いに排他的であつて、両者が非零
1Dを有することはないから、選択回路でなくOR回路
を使用することは何らの困難曲をも伴わない。所与の取
出が遅延される場合、この取出に関連するAOPのID
が前進1DラツチU8(第30B図)に記憶され、線U
3を介して与えられる。データが復帰される2サイクル
前に、PSCF A13は「PSCF前進]信号A2B
を供給し、該信岩はラツチされた後線U5を介して与え
られ、当該AOP0)IDを再取出C1 1Dトリガ゛
T27へゲ゛ートする。このIIXま、通常の通路を介
じC、トリガT23に到着する時間にデータを入カゲー
トさせる。第28図の諸回路は、所与のAOPがチエー
ン中の最後のAOPであるためにリセツトできないよう
な場合を決定する。
線G5に与えられるIDは、開始を必要とするAOPが
まだあれば、ソース・チエーンで開始された最後のAO
Pを識別する。もしこの最後に開始されたAOPがチエ
ーン中の最後のものであれば、この■Dには零が与えら
れる。線G7は、行先についてこれと同じ情報を供給す
る。かくて、もし復号器T17が副T19に信号を出力
すれば、これはAOP−Aがこのチエーンの最後のもの
であること及び他のAOPを開始する必要があることを
指示する。もしこの信号が存在しており且つ「ソース取
出」信号F7が存在していなくてソース・チエーンの新
しいAOPが開始されていることを指示するならば、信
号T11がオンとな・八かくてAOP−AがEFA15
によつて必要とされている場合には、それはこの時間に
その入カゲートを完了することを許容されないことを指
示する。これと同様に、復号器T18が信号T20を生
じてAOP−Aが行先チエーンで最後に開始されたAO
Pであることを指示し、しかも「行先取出」信岩F5が
存在しておらず、かくて行先のために新しいAOPが開
始されていることを指示する場合にも、信号T11がオ
ンに転ぜられる。第29図の諸論理回路は、所与のAO
Pがその待機中トリガをオフに転ずる前にそのプロセツ
サからの第2の入カゲートを必要としているか否かを記
憶する。
それぞれのAOPに対応する6個のステータス・ビツト
があるが、これらのビツトがセツトされるのは、「ソー
ス取出」信号B7がオンであり、「零シフト量」信号B
14がオフであり、しかも「最終取出]信号B5がオフ
である場合に、対応するAOPが開始されるような時間
である。これらのステータス・ビツトは、対応するAO
Pがリセツトされるときに、リセツトされる。第30A
図及び第30B図の諸論理回路は遅延された取出の処理
に関係しており、復帰されるデータが正しいOPへ向け
られることを保証する。前進■DトリガU7及びラツチ
U8は、遅延された取出によつて復帰されているデータ
を受取るべきOP0)IDを保持する。もし取出要求の
C2サィクルの間に「取出遅延」信号A2Dが受取られ
且つ「順序付け拒否」信号K7が存在しなければ、この
サイクルを使用しているAOPを識別する処の「C2
1D」信岩T4が第30B図のゲートU9を介して前進
1DラツチU8へゲートされる。通常の場合、この■D
はPSCF A13から「PSCF前進」信号A2Bが
受取られるまでトリガU7及びラツチU8に留まり、該
信号が受取られると前述の如く再取出C1 1Dトリガ
T27へゲートされる。前進1DラツチU8は前記した
如き「先行1D」のすべてと継続的に比較され、そして
これlこ応じて線P2にチエーン中の次のA0PのID
が復帰される。「PSCF前進」信号A2Bが受取られ
る場合、該次のAOP01DはゲートU10を弁してト
リガU7へゲートされる。欠いで、PSCF A13が
次の上位ダブルワードについて他の「PSCF前進]信
号A2Bを供給すれば、この信号を受取るべきAOP0
)IDは該信号が受取られる時間にトリガU7及びラツ
チU8に見出される。もしチエーン中に次のAOPが存
在しなければ、線P2を介して復帰されるIDは零であ
り、トリガU7及びラツチU8が零へリセツトされるの
で、!オペランド取出論理に関する限り顕著な遅延取出
がもはや存在しないことが指示される。
トリガU7及びラッチU8は、PSCF A13からの
「取出進行中」信号A2Eがなくなる場合にも、零へリ
セツトされる。これによつてカバーされる状1況とは、
PSCF A13によつて復帰されるダブルワードより
も多いチエーン化されたOPをIPPF A7が有する
場合である。重複取出が要求される状況では、以下に説
明するような複雑な事態が生じうる。
最初の取出はチ1エーン中の第1ダブルワードについて
遂行され、そしてPSCF A13中で「取出遅延」信
号A2Dに遭遇する。然る後、PSCF A13がデー
タを復帰させる場合、これは複数のダブルワードを復帰
させる。もし特別なことが何ら行われなニければ、最初
の取出に関連するAOPへ第1ダブルワードが入カゲー
トされ、次の夕゛ブルワード(アドレス+8)が次のA
OPへ入カゲートされ、以下同様に後続ダブルワードが
後続AOPへ順次に入カゲートされることになろう。し
かしながら、この場合には、前記した通り重複取出が行
われる。従つて、次のAOPは(アドレス+8ではなく
)同し位置から取出を行おうとしているので、この要求
に応答してアドレス+8にある夕゛ブルワードの内容を
受取ることは間違つている。この状況を処理するために
、第1重複1DトリガU12及びラツチU13と第2重
複1DトリガU14及びラツチU15が設けられる。
これらのトリガ及びラツチは、第1要求をなしたAOP
のIDとこの要求を重複させたAOP01Dそれぞ・れ
保持するために使用される。第1重複1DラツチU13
は、ソース・フイールドが存在することを1−ソース・
フイールド取出」信号B9が指示し且つ重複取出の状況
が存在することを「重複取出」信岩B10が指示すると
き、C1 1DトリガT2の内容によつてセツトされる
。このラツチU13は、フアネル回路U16が出力を発
生し当該1Dによつて指定されたAOPがリセット信号
を受取つたことを指示するまで、セツトされたままに留
まる。この時間には、第1重複1DトリガU12及びラ
ツチU13は零へリセツトされる。信号U18及びU1
9によつて指示されるように、「第1重複1D」力俳零
値へセツトされ且つ「第2重複1D」が依然として零で
あるような時間には、遂行さるべき次のソース取出が重
複取出でなければならないことが知られている。「ソー
ス取出]信号F8によつて指示されるようにこのソース
取出が生ずる場合、これに応じてAND回路U17から
出力が生ぜられるので、これにより信号C19によつて
開始されているAOP(7)IDが第2重複IDトリガ
U14へゲートされる。このIDは、「第1重複1D」
をリセツトするものと同じフアネル回路U16からの信
号によつてリセツトされるまで、そこに留まる。もし「
第1重複1D」が「前進1D」と等しければ、前記した
伏況が潜在的に存在することが比較器U20によつて認
識される。もしこのことが生じ且つそれと同時に信号U
21によつて指示される如く「第2重複1D」が零でな
ければ、これら2状態の論理積である信号U22によつ
て第2重複1DトリガU14が前進1DトリガU7へゲ
ートされる。かくて、この場合にぱ、次のことが生ずる
。重複取出の状況が存在し、第1取出が第1AOPによ
つて開始され、またこれに応じて遅延取出が生ぜられる
。第2の重複取出に関連するAOPが開始され、そのI
Dが第1のもののかわりに前進1DラツチU8へゲート
される。次いで、PSCF A13がデータを供給する
場合、第1AOPによつて最初に要求されたデータは事
実上第2AOPに属するものとみなされ、そして第10
Pは左端からシフト・オフされた諸バイトを先行AOP
へ入カゲートするという通常の機構によつてその必要と
するすべてのデータを受取る。PSCF A13によつ
て復帰されうる後続夕゛ブルワードは後続AOPへゲー
トされる。第31A図乃至第31C図のバイパス及びシ
フ夕制御は、第1図のPSCF A13に設けられる。
第31A図の取出アドレス・レジスタ(FAR)は、各
オペランドについて取出さるべき各ダブルワードごとに
、オペランド取出ブロツタA9中のプロセツサ・アドレ
ス・ラツチD12(第11図)から要求アドレスを受取
る。もしデータがキヤツシユに存在しなければ、或いは
変換アドレスが変換索引緩衝機構(図示せず)に存在し
なければ、この取出要求は主記憶A16に対して行われ
る。殆んどの取出要求については、データはキヤツシユ
に存在しているので、通常、キヤツシユ・ヒツト線は第
31B図のトリガV1をセツトしてAND回路V2を作
動させ、かくてキヤツシユ・アクセスによつて生ぜられ
た刻時されたC1取出信号を通過させる。その出力V3
6はキヤッシユからのデータをOR回路V28及びBD
BOラツチV29を介してバイト・シフタV32へゲー
卜する。バイト・シフタV32のシフト量はIPPFA
7からAND回路V38へ送られ、刻時された「取出前
進」信号によつてゲートされる。バイト・シフタV32
の出力は、選択されたOPのためにIPPF A7へ供
給される。キヤツシユ・ミスが生じて主記憶A16から
データを得ることが必要となれば、主記憶A16から1
ラインを構成する8ダブルワードが取出される。
このラインのダブルワードに関連する取出アドレス・レ
ジスタ(FAR)のアドレスは、夕゛ブルワ シード要
求の各々が線V4からの「取出優先]信号を受取る際、
3ビツトの増数器V20によって増数される。キヤツシ
ュ・ミスを生ぜしめた処の要求されたダブルワードで取
出が開始されると、この取出は2当該ラインの終端、す
なわちこのラインにある最上位アドレスの夕゛ブルワー
ドまで継続し、次いでこのラインの始端にゐる夕゛ブル
ワードに戻り、ライン・カウンタV5によつて決定され
るように合計8個の夕゛ブルワードが取出されるまで継
続的に3行われる。
主記憶A16から1ダブルワードを選択するために各要
求が優先順位を獲得すると、取出アドレス・レジスタ中
のアドレスは記憶アドレス・バス・イン(SAB■)を
介して主記憶A16へ送られる。
.5「取出優先」信号はAND
回路V6から生ぜられ、該回路は「IPPF取出要求」
信号の間にキヤツシユ・ミス信号と取出アドレス・レジ
スタの非使用中信号を受取る。次いで、AND回路V6
は「取出アドレス・レジスタ使用中」信号を供給4し、
これにより取出要求ラツチV15をセツトする。ラツチ
V15はこの要求を主記憶優先回路V3へ出力し、該回
路は取出優先線V4が付勢される時機を決定して取出さ
るべき各夕゛ブルワードごとに取出優先パルスを出力す
る。ライン・カウンタV5はAND回路V6から得られ
る「取出アドレス・レジスタ使用中」信号によってカウ
ント零へリセツトされ、そして線V4に「取出優先]信
号が与えられるたびに増数される。
カウント7に達すると、ライン・カウンタV5はAND
回路V7を付勢して取出要求トリガをリセツトさせると
ともに、次のIPPF取出要求まで線V4を介して他の
取出要求を停止させる。このラインに対する第1取出要
求は[第1取間信号V18としてAND回路V8からソ
ース/シンク・タイミング・チエーンV24へ供給され
る。このチエーンV24から得られるタイミングは、主
記憶制御信号と主記憶A16から取出データを得る際に
包含される時間遅延と同期させるために必要である。ま
た、「取出優先」信号V4は、当該要求が書込みではな
く取出しに対するものであることを指示するために、ソ
ース/シンク・タイミング・チエーンの他の通路に入る
この信号V4はチエーンV24からAND回路V9へ出
力され、該回路はそれと同時にチエーンV24からの第
1取出信号を受取つてラツチV10をセツトする。次い
で、一連の取出信号はラツチV11に加わり、そこでそ
れぞれ1/2サイクルずつ遅延された後、AND回路V
12へ加えられる。AND回路V12は、「取出前進」
信号V13をIPPFへ供給するために、3 1/2サ
イクルだけ遅延された取出信号を通過させる。またこの
「取出前進」信号は2サイクル以上の遅延を与えるラツ
チ及びトリガを通して線V33へ供給される。この線V
33はAND回路V38を付勢して「シフト量」信号を
バイト・シフタV32へ通過させるので、該シフタはこ
の制御の下に取出された8バイトの夕゛ブルワードをI
PPF A7及びEF A15の諸回路へ出力する。当
該ラインの終端にある夕゛ブルワードのための「取出前
進」信号V13が出力された後、この信号V13とバイ
ト・シフタV32からの夕゛ブルワードが終了する。

Claims (1)

    【特許請求の範囲】
  1. 1 命令前処理装置との通信を行う記憶制御装置を備え
    、該記憶制御装置は可変長オペランドのサブラインにつ
    いて前記命令前処理装置から取出要求を受取るとともに
    、該取出要求がキャッシュ・ミスを伴う取出要求であれ
    ば主記憶からキヤツシユへの取出を開始させる制御手段
    を有し、さらに主記憶からキヤツシユへ一度に1サブラ
    インずつ転送して1ラインを転送するように主記憶とキ
    ャシュの間に設けられた主記憶バスと、該主記憶バスを
    前記命令前処理装置へ接続するキャッシュ・バイパス・
    バスとを備え、キャッシュ・ミスを伴う取出要求によつ
    て要求されたラインの第1サブラインをキャッシュ及び
    前記命令前処理装置の両方へ転送するようにした可変長
    オペランドの取出制御機構であつて;前記可変長オペラ
    ンドの長さに応じて前記キャッシュ・ミスを伴う取出要
    求によつて要求されたラインの前記第1サブラインから
    該ラインの最終サブラインまでに対する取出要求アドレ
    ス及び該ラインの開始サブラインから前記第1サブライ
    ンまでに対する取出要求アドレスを順次に発生するとと
    もに、該アドレスを順次に主記憶へ転送する手段と、前
    記キャッシュ・ミスを伴う取出要求に応答して前記主記
    憶から前記第1サブラインが転送される時点を検出する
    第1検出手段と、前記主記憶から前記最終サブラインが
    転送される時点を検出する第2検出手段と、前記第1サ
    ブラインから前記最終サブラインまでの複数のサブライ
    ンを前記主記憶から前記キャッシュ・バイパス・バスを
    通して前記命令前処理装置へ逐次に転送するように、前
    記第1検出手段の出力に応答して作動され且つ前記第2
    検出手段の出力に応答して禁止されるバイパス・ゲート
    手段と、前記バイパス・ゲート手段から受取られた複数
    のサブラインを保持するように前記命令前処理装置に設
    けられたオペランド・サブライン・バッファ手段とを備
    えたことを特徴とする、可変長オペランドの取出制御機
    構。
JP54019898A 1978-03-16 1979-02-23 可変長オペランドの取出制御機構 Expired JPS5948472B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US000000887097 1978-03-16
US05/887,097 US4189770A (en) 1978-03-16 1978-03-16 Cache bypass control for operand fetches

Publications (2)

Publication Number Publication Date
JPS54127634A JPS54127634A (en) 1979-10-03
JPS5948472B2 true JPS5948472B2 (ja) 1984-11-27

Family

ID=25390450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54019898A Expired JPS5948472B2 (ja) 1978-03-16 1979-02-23 可変長オペランドの取出制御機構

Country Status (2)

Country Link
US (1) US4189770A (ja)
JP (1) JPS5948472B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
USRE36989E (en) * 1979-10-18 2000-12-12 Storage Technology Corporation Virtual storage system and method
US4433374A (en) * 1980-11-14 1984-02-21 Sperry Corporation Cache/disk subsystem with cache bypass
US4445172A (en) * 1980-12-31 1984-04-24 Honeywell Information Systems Inc. Data steering logic for the output of a cache memory having an odd/even bank structure
US4490782A (en) * 1981-06-05 1984-12-25 International Business Machines Corporation I/O Storage controller cache system with prefetch determined by requested record's position within data block
US4489378A (en) * 1981-06-05 1984-12-18 International Business Machines Corporation Automatic adjustment of the quantity of prefetch data in a disk cache operation
US4430701A (en) 1981-08-03 1984-02-07 International Business Machines Corporation Method and apparatus for a hierarchical paging storage system
US4571674A (en) * 1982-09-27 1986-02-18 International Business Machines Corporation Peripheral storage system having multiple data transfer rates
US4807110A (en) * 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
JPH0630075B2 (ja) * 1984-08-31 1994-04-20 株式会社日立製作所 キャッシュメモリを有するデータ処理装置
JPS62102344A (ja) * 1985-10-29 1987-05-12 Fujitsu Ltd バツフア・メモリ制御方式
JPH0721776B2 (ja) * 1987-10-20 1995-03-08 富士通株式会社 計算機システム
JP2965987B2 (ja) * 1988-02-22 1999-10-18 株式会社日立製作所 データ処理システム
JP2617974B2 (ja) * 1988-03-08 1997-06-11 富士通株式会社 データ処理装置
US5175826A (en) * 1988-05-26 1992-12-29 Ibm Corporation Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385
US4994962A (en) * 1988-10-28 1991-02-19 Apollo Computer Inc. Variable length cache fill
US5034880A (en) * 1988-12-22 1991-07-23 Wang Laboratories, Inc. Apparatus and method for executing a conditional branch instruction
DE69129872T2 (de) * 1990-03-27 1999-03-04 Philips Electronics N.V., Eindhoven Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
US5454093A (en) * 1991-02-25 1995-09-26 International Business Machines Corporation Buffer bypass for quick data access
US5423016A (en) * 1992-02-24 1995-06-06 Unisys Corporation Block buffer for instruction/operand caches
EP0612013A1 (en) * 1993-01-21 1994-08-24 Advanced Micro Devices, Inc. Combination prefetch buffer and instruction cache cross references to related applications
TW228580B (en) * 1993-10-01 1994-08-21 Ibm Information processing system and method of operation
GB2286910B (en) * 1994-02-24 1998-11-25 Intel Corp Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer
US5724533A (en) * 1995-11-17 1998-03-03 Unisys Corporation High performance instruction data path
US6094605A (en) * 1998-07-06 2000-07-25 Storage Technology Corporation Virtual automated cartridge system
JP3445535B2 (ja) * 1999-09-24 2003-09-08 株式会社東芝 バイパス制御回路
US6834324B1 (en) 2000-04-10 2004-12-21 Storage Technology Corporation System and method for virtual tape volumes
US20030126132A1 (en) * 2001-12-27 2003-07-03 Kavuri Ravi K. Virtual volume management system and method
US20060155961A1 (en) * 2005-01-06 2006-07-13 International Business Machines Corporation Apparatus and method for reformatting instructions before reaching a dispatch point in a superscalar processor
US8683139B2 (en) 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3496550A (en) * 1967-02-27 1970-02-17 Burroughs Corp Digital processor with variable field length operands using a first and second memory stack
US3569938A (en) * 1967-12-20 1971-03-09 Ibm Storage manager
US3588829A (en) * 1968-11-14 1971-06-28 Ibm Integrated memory system with block transfer to a buffer store
US3806888A (en) * 1972-12-04 1974-04-23 Ibm Hierarchial memory system
US3896419A (en) * 1974-01-17 1975-07-22 Honeywell Inf Systems Cache memory store in a processor of a data processing system

Also Published As

Publication number Publication date
JPS54127634A (en) 1979-10-03
US4189770A (en) 1980-02-19

Similar Documents

Publication Publication Date Title
JPS5948472B2 (ja) 可変長オペランドの取出制御機構
US4890220A (en) Vector processing apparatus for incrementing indices of vector operands of different length according to arithmetic operation results
EP0437044B1 (en) Data processing system with instruction tag apparatus
US4467419A (en) Data processing system with access to a buffer store during data block transfers
US5197138A (en) Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
US3728692A (en) Instruction selection in a two-program counter instruction unit
US4851993A (en) Cache move-in bypass
US4189768A (en) Operand fetch control improvement
US5060148A (en) Control system for vector processor with serialization instruction for memory accesses for pipeline operation
US11372646B2 (en) Exit history based branch prediction
EP0135844A2 (en) A data processor with a branch target instruction storage
JPH02206837A (ja) パイプライン方式のコンピューターシステムにおける色々な個数の潜在的メモリーアクセス矛盾を解決する方法及び装置
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
JPS5948473B2 (ja) 可変長オペランドの取出制御機構
US4713752A (en) Buffer storage system
US4287561A (en) Address formulation interlock mechanism
EP0772819B1 (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US5930491A (en) Identification of related instructions resulting from external to internal translation by use of common ID field for each group
EP0360553B1 (en) Buffer storage system
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
EP0159712B1 (en) Control means in a digital computer
JPS62102344A (ja) バツフア・メモリ制御方式
JPS6116335A (ja) 情報処理装置
EP0326164B1 (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
JP2765882B2 (ja) 並列計算機,ベクトルレジスタ間データフロー同期装置およびネットワークプリセット装置