JP2638581B2 - 命令及びオペランドをプロセッサに提供する取り出し機構 - Google Patents

命令及びオペランドをプロセッサに提供する取り出し機構

Info

Publication number
JP2638581B2
JP2638581B2 JP7228454A JP22845495A JP2638581B2 JP 2638581 B2 JP2638581 B2 JP 2638581B2 JP 7228454 A JP7228454 A JP 7228454A JP 22845495 A JP22845495 A JP 22845495A JP 2638581 B2 JP2638581 B2 JP 2638581B2
Authority
JP
Japan
Prior art keywords
address
instruction
operand
bus
information
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
JP7228454A
Other languages
English (en)
Other versions
JPH0850547A (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.)
UONGU LAB Inc
Original Assignee
UONGU LAB Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by UONGU LAB Inc filed Critical UONGU LAB Inc
Publication of JPH0850547A publication Critical patent/JPH0850547A/ja
Application granted granted Critical
Publication of JP2638581B2 publication Critical patent/JP2638581B2/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/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/3802Instruction prefetching
    • 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

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理システムの性能
を向上させる装置と方法とに関し、より詳細にはデータ
の取出し、命令の取出しと実行および支援オペレーシヨ
ンの、実行の機能強化をする装置と方法とに関する。
【0002】
【従来の技術】情報処理システムの演算速度に対する第
一の制限は、情報、即ち命令およびデータを、メモリと
情報処理エレメントとの間で移動させるために要する時
間によつて課せられる。例えば、命令およびデータはそ
れらを処理する処理装置へメモリから移す必要があり、
その結果が処理装置からメモリへ移される。
【0003】従来技術では、メモリから処理装置へ命令
やデータを移す速度を増加させるためにキヤツシユや先
取り機構を用いてきたが、一般的にある種の関連した問
題を指向するものでなかつた。その問題の第1は命令や
データを取出す速度でなく、命令やデータを滑かに流す
ことに関している。即ち、命令やデータを取出す速度を
増加してみても命令やデータがなければ処理速度を増す
ことにならず、取出し演算が極めて高速であつても命令
やデータの取出し演算を行うために処理を停止させねば
ならない。第2の問題は、メモリへの情報書込み領域に
ある。即ち、キヤツシユを用いたシステムにおいては、
キヤツシユに入力した情報はメモリ内の情報に対応する
よう継続的に更新する必要がある。しかしながら、この
ためには一連の演算を必要とし、データ処理演算の円滑
な流れを阻害する。
【0004】命令の単に簡単な演算の機能が向上される
のみという点において「通常」の命令演算実行上別の問
題が発生する。しかしながら、ほとんどのシステムにお
いて、処理エレメントは命令の実行に関連するが、例え
ば、割込み、トラツプおよび分岐演算のように命令を直
接実行しない多くの演算を実行する必要がある。
【0005】最後の問題は、マイクロコードのロードや
診断オペレーシヨンのようなシステムの支援オペレーシ
ヨンが、システムの全体性能に影響する重要なデータ処
理関連オペレーシヨン群を構成することである。そのた
め前述の支援オペレーシヨンを実行する効率と所要電力
とがシステムパフオーマンスに関連するものの、ほとん
どのシステムにおいては二次的な処理に関係している。
以下に説明する本発明は従来技術の前記およびその他の
関連の問題を指向するものである。
【0006】
【発明の概要】本発明は、演算すべきデータと、当該シ
ステムの演算を命令する情報とを記憶するシステムメモ
リ手段と、該情報に対して演算する処理手段とを含む情
報処理システムに関する。本発明は第1の局面におい
て、システムメモリ手段に記憶された情報のサブセツト
のコピーを記憶し、そこから処理手段へ情報を提供する
キヤツシユ手段を含む。該キヤツシユ手段はシステムメ
モリ手段から処理手段へ接続され、サブセツトに含まれ
た情報のコピーを記憶し、かつ提供するキヤツシユメモ
リ手段と、処理手段からシステムメモリ手段へ情報を書
込む書込み−組合せ手段とを含む。書込み−組合せ手段
は処理手段とキヤツシユメモリ手段の情報出力側から接
続された第1と第2の入力部と、システムメモリ手段な
らびにキヤツシユメモリ手段の情報入力部とに接続され
た出力部とを含む。書込み−組合せ手段はキヤツシユメ
モリ手段に位、置するサブセツトのコピーに含まれた情
報に関するメモリ書込みアドレスに応答してキヤツシユ
メモリ手段からの対応する情報を読取り、システムメモ
リ手段に書込むべき情報とキヤツシユメモリ手段から読
取られる対応する情報とを組合わせ、組合わされた情報
をキヤツシユメモリ手段へ書込み、かつ組合わされた情
報をシステムメモリ手段へ供給する。
【0007】キヤツシユの別の特徴において、キヤツシ
ユメモリ読取り手段はさらに、サブセツトに含まれてい
ない情報に関する読取りアドレスに応答してアドレスさ
れた情報をシステムメモリ手段から読取り、かつシステ
ムメモリ手段から読取られた情報をキヤツシユメモリ手
段へ書込み、その中に含まれたサブセツトの一部とする
キヤツシユメモリ書込み手段を含む。キヤツシユメモリ
書込み手段はさらに、キヤツシユメモリ手段の情報入力
部からキヤツシユメモリ手段の情報出力部に接続され、
読取り情報をキヤツシユメモリ手段へ書込むのと同時に
システムメモリ手段から読取られた情報を処理手段へ供
給するキヤツシユメモリバイパス手段を含む。
【0008】本発明の別の特徴においては、処理装置は
命令やオペランド(演算数)を処理装置に滑かに流すた
めの取出し手段を含む。この取出し手段は、処理装置の
オペレーションに応答して、その各演算の最初に来る第
1のエツジ(edge)と、該処理装置の各演算の実行
の間に来る第2のエツジとを有する処理装置クロツク信
号を供給する手段を含む。アドレス手段は処理装置手段
のオペレーシヨンに応答して処理装置のクロツク信号の
第1のエツジにおいてメモリ手段に次のオペランドのア
ドレスを供給し、かつアドレス手段が次のオペランドの
アドレスを供給したとすれば処理装置のクロツク信号の
第1のエツジの後の一定間隔において、あるいはアドレ
ス手段が次のオペランドのアドレスを供給していないと
すれば処理装置のクロツク信号の第1のエツジにおいて
のいずれかで次の命令アドレスをメモリ手段に供給す
る。また処理手段は処理装置のクロツク信号に応答して
該信号の次に起る最初のエツジにおいて次のオペランド
をメモリ手段から受取り、かつ処理装置のクロツク信号
の次に起る第2のエツジにおいてメモリ手段から次の命
令を受取る手段を含む。
【0009】取出し機構の別の特徴において、処理手段
は、現在の命令に応答して次の論理命令アドレスを提供
する手段を含み、オペランドに対する演算を実行する中
央処理手段と、次の論理オペランドアドレスを発生させ
る手段を含み命令に対して演算を実行する命令処理手段
と、を含む。アドレス手段はさらに、次の論理命令アド
レスと、次の論理オペランドアドレスとに応答して対応
する次の命令アドレスと次のオペランドアドレスとを提
供するアドレス変換手段と、中央処理手段の演算に応答
して次の命令アドレスを記憶しかつ供給する次の命令の
レジスタ手段と、および命令処理手段の演算に応答して
次のオペランドのアドレスを記憶しかつ供給する次のオ
ペランドのレジスタ手段とを含む。
【0010】本発明のさらに別の特徴においては、処理
装置は命令に応答して処理手段の演算を制御するマイク
ロ命令を供給するマイクロ命令制御手段を含む。マイク
ロ命令制御手段はマイクロ命令アドレスに応答してマイ
クロ命令を記憶しかつ供給するマイクロ命令メモリ手段
と、命令に応答してマイクロ命令シーケンスの最初のア
ドレスを供給する第1のマイクロ命令アドレス手段と、
およびマイクロ命令に応答してマイクロ命令を順次選択
する第2のマイクロ命令アドレス手段とを含む。マイク
ロ命令制御手段はさらに、当該システムの決定されたオ
ペレーシヨン条件でテストを行い、かつそのテストの結
果の真偽を指示する出力を供給するテスト状況検出手段
をさらに含む。第2のマイクロ命令アドレス手段はテス
ト出力に応答して、もしテストが正しければ次のマイク
ロ命令アドレスを供給し、第1のマイクロ命令アドレス
手段はテスト出力に応答して、テスト結果が正しくなけ
れば新しい初期マイクロ命令アドレスを供給する。
【0011】当該システムは支援オペレーシヨンを行う
システム制御手段と、データ処理手段とマイクロコード
制御手段とを含む少なくとも1個のデータ処理エレメン
トと、システム制御手段から接続されシステム制御手段
とデータ処理エレメントとの間で情報を導く支援バス手
段とをさらに含む。前記の処理エレメントは、支援バス
手段から接続されエレメント支援手段と支援バス手段と
の間で指令ワードを転送する指令レジスタ手段を有する
支援手段を含み、情報を含む制御ワードを含む指令ワー
ドのあるものが処理エレメントのオペレーシヨンの現在
モードを導く。制御レジスタ手段は指令レジスタ手段か
ら接続され制御ワードを記憶し、かつ支援マイクロコー
ド手段は指令ワードと関連の制御ワードとに応答して支
援オペレーションを制御するマイクロルーチンを供給す
る。処理エレメントのマイクロコード制御手段は制御ワ
ードに応答して処理エレメントの制御ワードを支援マイ
クロコード手段へ転送する。
【0012】各指令ワードは、受取る側の処理エレメン
トを識別する目標フイールドと、目標の処理エレメント
によつて実行すべき支援オペレーシヨンを識別する命令
フイールドとを含む第1のセクシヨンと、制御ワードあ
るいは現在の支援オペレーシヨンの結果として通信すべ
き情報を含む情報フイールドのいずれかを含む第2のセ
クシヨンとを含む。情報フイールドは処理エレメントの
マイクロコード制御手段におけるマイクロ命令アドレス
と、処理エレメントのマイクロコード制御手段から読取
られたか、また書込むべきマイクロ命令あるいはデータ
処理手段から読取られたか、あるいはそこへ書込むべき
データと、を含む。各制御ワードは処理エレメントが指
令モードにおいて動作すべきことを示すビツトを含むモ
ードフイールドを含み、かつ処理エレメントのオペレー
シヨンは支援手段によつて制御される。
【0013】本発明のその他の目的、利点および特徴は
好適な実施例についての以下の詳細な説明と添付の図面
とを参照すれば当該技術分野の専門家には理解される。
【0014】
【実施例】以下の説明は、本発明の現在の好適な実施例
を含むコンピユータシステムの構成と動作とを記載す
る。以下の説明において、当該システムの全体の構成と
動作とは全体的なブロツク線図レベルでまず説明する。
次いで、例えばデータ、命令、アドレス、プロダラム制
御ワードおよび割込みの構成および操作のような当該シ
ステムの基本的な特徴ならびに動作原理について説明す
る。次いで、当該システムの説明を、さらに詳細なブロ
ツク線図レベルで続け、当該技術分野の専門家が本発明
をさらに理解しやすく、さらに詳細なレべルまで展開す
る。
【0015】当該システムの関連部分間の相互接続につ
いては2種類の方法のいずれかで指示することができ
る。まず、説明を判りやすくするには、当該システムの
関連部分の間の相互の接続を、配線あるいはバスを描く
のでなく、むしろ共通の符号あるいは参照番号で指示す
ればよい。第2の方法は、当該図面を構成する図面の頁
をその文字の示す順序で並置させて、一枚の大きい図を
つくるように複数の頁からなる図を作成すればよい。こ
の場合、ある種のバスや接続は図の頁の端で接続するよ
うにし、バスならびに接続が1枚以上の図の頁にわたつ
てつながるようにする数種の図に出てくるシステムエレ
メントについての参照番号は3桁あるいは4桁から構成
される。少なくとも2個(最右端)の桁が特定の図面に
おける特定のエレメントを示す。
【0016】最後に、かつ説明を判りやすくするため、
いずれのフイールド、ワードあるいは命令の最左端部分
は、以下の説明を通して最も重要な、即ち最高位のバイ
トあるいはビツトとして言及される。同様に、いずれか
のフイールド、ワードあるいは命令における最右側の部
分は、重要度の低い、即ち最低位のバイトあるいはビツ
トを示す。
【0017】A.ブロツク線図の構成とオペレーシヨン
(第1図) 第1図を参照すれば、本発明を組込れたシステム102
のブロツク線図が示されている。図に示すように、シス
テム102は処理ユニツト(PU)104、主メモリ
(MM)106、システム制御ユニツト(SCU)10
8、および1個以上のサテライト(satellit
e)処理ユニツト(SPU)112を備えたシステムバ
スインタフエース(SBI)110を含む。これらのエ
レメントはシステムバス(SB)114に双方向的に接
続され、かつ該バスにより相互に接続され、該システム
バス114は、双方向性システムアドレス(SA)バス
116、双方向性メモリ制御(MC)バス117、双方
向性システムデータ(SD)バス118およびシステム
バス制御(SBC)リンク119とから構成されてい
る。SAバス114とSDバス116とはそれぞれシス
テム102のエレメントの間でアドレスやデータを転送
するためのものであり、一方MCバス117はMM10
6の動作の制御を行う。SBCリンク119はSB11
4の各種のユーザ、例えばPU104、MM106、S
CU108およびSBI110によりSB114へのア
クセスを制御する機構を提供する。例えばPU104、
SCU108、MM106およびSBI110のような
システム102のある種のエレメントも支援リンク(S
L)バス120によりさらに相互に接続されている。以
下さらに下記するように、SLバス120はSCU10
8とシステム102のあるエレメントの内部オペレーシ
ヨンとの間でアクセスや通信を提供する。
【0018】まずPU104を参照すれば、PU104
は処理制御されて、即ちプログラムの実行の間受取られ
る命令によつて制御されてデータに対する演算を行う中
央処理ユニツト(CPU)122を含む。以下詳細に説
明するように、CPU122と、PU104の関連レメ
ントとは、CFU122がその各サイクル当り1個のマ
イクロ命令を、かつ1回に1個のマイクロ命令を実行す
るようにしてマイクロプログラムにより制御される。
【0019】CPU122は主として、2進および10
進法の整数演算ならびに論理演算を行い、以下に説明す
る種類の一般的な命令を実行する。またCPU122は
例えば命令アドレス関連の計算のようなアドレス生成ユ
ニツト(AGU)124を支援するある種のアドレス生
成演算を行う。さらに、CPU122はこれも以下詳し
く説明するシステムプログラム制御ワードを発生させ、
かつ持続する。またCPU122はマイクロ命令ブラン
チアドレスを発生させ、これも以下に詳しく説明するマ
イクロコードシーケンサから受取られたリテラルフイー
ルドを用いてリテラルフイールド常数の演算を行う。第
1図に示すように、CPU122はSLバス120に接
続されたシステム102のエレメントの中の1つであ
る。
【0020】CPU122にはアドレス生成ユニツト
(AGU)124が付属しており、該ユニツトは以下説
明のように、マイクロ命令先取りおよび待ち行列機構を
含む。AGU124は命令を取出し、命令のフイールド
から、該命令によつて演算すべきオペランドを示す仮想
アドレスを発生させ、これら命令を実行するためにマイ
クロ命令ルーチンを識別するアドレスを送る。AGU1
24はまた現在の命令フイールドから、実行すべき次の
命令の仮想アドレスを発生させる。
【0021】以下に詳しく説明するように、AGU12
4とCPU122とはそれぞれ命令演算および実行ユニ
ツトといえる。AGU124とCPU122とは個別
に、かつ同時に演算して、命令取出し、命令復号化、オ
ペランド取出しおよび命令の実行を重複して行い、PU
104の内部性能を向上させる。
【0022】CPU122およびAGU124にはアド
レス変換ユニツト/キヤツシユ(ATU/C)126が
付属しており、これはCPU122とAGU124とを
相互に連結させ、PU104とSB114との間のデー
タおよびアドレスパス(address path)と
して、PU104の内部データおよびアドレスパスによ
つてATU/C126への経路として作用する。前述の
ように、AGU124は仮想アドレス、即ちプロセスの
アドレス空間に対する命令およびオペランドのアドレス
を発生させ;該プロセスはコーザに対してプログラムを
実行する構成要素であつて、かつアドレス空間およびプ
ログラム実行の現在の状態によつて表わされる。ATU
/C126はAGU124に対して作用し、例えばMM
106から読取つたり、かつ書込むためにシステム10
2のアドレス空間内の対応する物理的アドレスに仮想ア
ドレスを変換する。またATU/C126、はCPU1
22に対するキヤツシユ機構として作用し、即ちCPU
122の演算に先立つてオペランドと命令を取出し、か
つ記憶する。ATU/C126もCPU122とAGU
124と共に同時に作用する。
【0023】PU104は、PU104の他の演算、例
えばCPU122と同時に浮動小数点演算を行う浮動小
数点ユニツト(FPU)128をさらに含む。FPU1
28はSLバス120から接続された、システム102
の別のエレメントである。
【0024】第1図に示すMM106を参照すれば、M
M106はデータや命令を記憶する1個以上のメモリユ
ニツト(MU)130と、MU130からの、あるいは
MU130へのデータや命令の読取り、書込みを制御す
るメモリ制御ユニツト(MCU)132とを含む。MC
UはSAバス116、MCバス117、SDバス118
およびSBCリンク119から接続され、SLバス12
0から接続されたシステム102のエレメントの中の1
つである。
【0025】SCU108は主として全体のシステム制
御および支援オペレーションを行う。第1図に示すよう
に、SCU108はシステムコンソールとして作用し、
マイクロコードをPU104にロードする例えばデイス
ケツトシステムを提供する。また、SCU108は局部
的な診断機能を行い、かつ遠隔診断装置用のリンクを提
供することができる。SCU108のその他の機能に
は、停電時の自動再開機能ならびにエラーロギングおよ
びシステムの作動モニタリングを含むことができる。
【0026】SBI110およびSPU112を参照す
れば、SPU112は周辺装置、例えばプリンタ、通信
リンク、ターミナルおよびデイスク駆動装置用のインテ
リジエント制御装置/インタフエースである。SPU1
12は入出/出力(IO)バス136を介してSBI1
10に接続されている。SBI110はSPU112と
協働して、IOバス136およびシステムバス114の
間の通信インタフエースとして作動し、周辺装置とシス
テム102のエレメントとの間で情報を転送する。
【0027】B。演算の基本的特徴と原理(第2図、第
3図、第4図、および第5図) 前述のように、以下、データ、命令、アドレス、プログ
ラム制御ワードを含むシステム102のある基本的特徴
および演算ならびに割込み構造と演算について述べる。
【0028】B.1.システム102の全体の構成(第
2図) 以下詳細に説明するように、処理ユニツト(PU)10
4は主メモリ(MM)106をアドレスする装置、情報
を取出し記憶する装置、データの演算および論理処理用
装置、希望する順序で命令を順序付けする装置およびM
M106と外部装置との間の通信を開始する装置とを含
む。
【0029】B.1.a汎用レジスタ PU104は、その内部演算と関連して16個の32ビ
ット汎用レジスタにおいて情報をアドレスする。汎用レ
ジスタはアドレス演算およびインデツクス作用において
インデツクスレジスタとして、かつ固定小数点の算術お
よび論理演算においてアキユムレータとして使用しう
る。汎用レジスタは0−15の数で識別し、かつ以下述
べるように命令フオーマツトにおいて4ビツトのRフイ
ールドにより規定される。ある種の命令により、数個の
Rフイールドを有することによつて多数の汎用レジスタ
をアドレスする。
【0030】B.1.b.制御レジスタ 制御のためにさらに16個の32ビツトレジスタが設け
られており、これらはアドレス可能の記憶装置の一部で
なく、即ち命令の実行においてアドレスしたり使用はで
きない。これらの制御レジスタはプログラム制御ワード
(PCW)の外部に存在する制御情報を保持し、かつ操
作する手段を提供し、該ワードは後述のようにシステム
102に位置しプログラムと命令の実行に関する情報を
含む8バイトのワードである。
【0031】DROからCR15までの16個の制御レ
ジスタの用途と構成とについては当該技術分野の専門家
には十分理解される。システム102において、制御レ
ジスタの役割は以下の通りである。
【0032】CRO 高範囲 CRI 保存領域バツクチエイン(Back C
hain) CR2 システムスタツクリミツトワード CR3 低範囲 CB4 修正割込みアドレス CB5 先行命令割込みアドレス CR6−11 予備 CR12−1 3時間、日付クロツク CR14−1 5クロツクコンパレータ
【0033】制御レジスタの全体構成について検討すれ
ば、制御レジスタ1はプログラム呼出しの保護されたバ
ツクチエインとスーパバイザサービス用入口(スーパバ
イザ呼出し)とを保持する。制御レジスタ2はスタツク
ハンドリング装置と関連し、システムスタツクリミツト
ワードと称される。制御レジスタ0および3−5はデバ
ツギングエイドと関連し、制御レジスタ12−15はク
ロツクと関連する。
【0034】B.1.c.メモリ リフアレンス、セグ
メントおよびページテーブル システム102は、それぞれ有効メモリセグメントと関
連した、1バイト入口の、多数のローカルページテーブ
ル(LPTS)を保持する。全てのメモリリフアレンス
は前記テーブルの1個を用いて仮想メモリアドレスの変
換を行う。
【0035】ページテーブルには1個以上のローカルペ
ージフレームテーウルが関連しており、該テーブルは物
理的メモリのページフレーム当り2ビツトの情報、即ち
1個の基準ビツトと1個の変動ビツトとを含んでいる。
機械語命令によりあるページフレームにおける何らかの
位置が引用されると常に、対応するローカルページのフ
レームテーブルエントリ(入口)の対応する基準ビツト
がセツトされてそのリフアレンスを指示する。このリフ
アレンスがメモリ位置の修正を含む場合には、ローカル
ページのフレームテーブルの入口における対応する変動
ピツトもセツトされ、その変動を示す。これらの入口が
テストされて、オペレーテイングシステム支援命令によ
りリセツトされる。
【0036】B.1.d.BU104による算術演算 以下詳細に説明するように、PU104の算術および論
理ユニツトは長さが固定の二進法整数、長さが可変の十
進法整数および長さが固定か可変かいずれかの論理情報
とを処理することができる。
【0037】PU104により実行される算術および論
理演算は以下の5種類に入る;即ち固定小数点算術演算
浮動小数点算術演算、十進法の算術演算、十進法の浮動
小数点算術演算および論理演算である。これらの種類は
使用するデータフオーマツト、使用レジスタ、提供され
る演算、およびフイールド長さを示す要領とによつて相
違する。
【0038】B.1.e.PU104とMM106との
間の情報転送とアドレス作用(第2図) MM106とPU104との間で伝達される情報とPU
104が演算する情報とは8個のビツト、即ちバイトあ
るいはその倍数を論理単位として構成される。第2図を
参照すれば、システム102によつて実行される情報フ
オーマツトが示されている。図示のように、ワードはそ
のアドレスが4の倍数である4個の連続したバイトのフ
イールドとして規定され、ダブルワードはそのアドレス
が8の倍数である2個の連続したワードのフイールドと
して規定され、ハーフワードはアドレスが2の倍数であ
る2個の連続したバイトのフイールドとして規定され
る。
【0039】以下さらに説明するが、システムデータ
(SD)バス118の幅は64ビツト、即ち8バイト即
ち1個のダブルワードであつて、MM106とPU10
4との間の全ての情報はダブルワードの形で転送され
る。
【0040】いずれの情報フオーマツト、あるいは以下
説明するいずれの固定長さのオペランドフオーマツトに
おいても、フオーマツトを構成するビツト、あるいはバ
イトは0から始まつて左方から右方へ連続的に番号が付
されている。メモリにおけるバイト位置は0から始まつ
て連続的に番号が付され、各番号は対応するバイトのア
ドレスと考えられる。メモリにおける一群のバイトは該
群の最左端のバイトによつてアドレスされ、該群におけ
るバイトの番号は演算により暗に示されるか明示され
る。以下さらに説明するように、システム102は拡張
可能の31ビツトである24ビツトの二進法アドレスを
使用する。所定の装置において、システム102の最大
のアドレス可能の記憶容量の一部のみが利用可能である
場合、利用可能な記憶は通常アドレス0から始まる一連
の範囲の物理的アドレスである。オペランドのいずれか
の部分が記憶装置の最大利用可能容量を越えて位置する
場合はアドレス例外が確認される。データが使用され、
プログラムに割込みが起るとアドレス例外が確認され
る。
【0041】B.2.命令フオーマツト(第3図のAか
らIまで) 後述するように、システム102は複数の命令フオーマ
ツトを実行し、その各々について下記する。しかしなが
ら、各命令は2個の主要部分から構成される;即ち、実
行すべき演算を規定する命令コードおよび該演算に参加
するオペランドの指示である。
【0042】B.2.a命令コード 各命令フオーマツトにおいて、命令の最も有意性のある
ハーフワードの最初の、即ち最も有意性のあるバイトは
命令コード(OPコード)フイールドを含む。OPコー
ドフイールド内で、最初の2個のビツトは以下示すよう
に命令の長さとフオーマツトとを規定する:
【0043】
【0044】OPコードフイールドの第2のバイトは2
個の4ビツトフイールドあるいは1個の8ビツトフイー
ルドのいずれかとして使用される。このバイトは以下の
情報を含むことができる。
【0045】4ビツトオペランドのレジスタ指足
(R,RまたはR);4ビツトのインデツクスレ
ジスタ指定(X);4ビツトのマスク(M);4ビ
ツトのオペランド長さ指定(LまたはL);8ビツ
トのオペランド長さ指定(L);8ビツトの即値データ
(I);または4ビツトのスタツクベクトル指定
(S)。
【0046】ある種の命令において、4ビツトフイール
ドあるいは最初のハーフワードの全体の第2のバイトは
無視しうることを注目すべきである。命令の第2、第3
および第4のハーフワードは後述のように、特定の命令
に応じてフオーマツトを変えることができる。
【0047】B.2.b.命令によるオペランドのリフ
アレンス システム102において、命令はそのフオーマツトに応
じて3個のオペランドまで参照することができる。オペ
ランドのリフアレンスはさらに3種類にまとめることが
できる:レジスタに位置するオペランド;即値オペラン
ド、および主メモリ(MM106)におけるオペラン
ド、であつて、かつ黙示あるいは明示ができる。
【0048】レジスタオペランドは一般的に浮動小数点
あるいは制御レジスタに位置することができ、かつ命令
において、Rフイールドと称される4ビツトのフイール
ドにおいてレジスタを識別することにより規定される。
ある種の命令に対してはオペランドは黙示されたレジス
タに位置する。
【0049】即値オペランドは命令内に含まれ、即値オ
ペランドを含む8ビツトのフイールドはIフイールドと
称される。
【0050】MM106におけるオペランドの長さは、
1ビツトのマスクにより黙示規定されるか、Lフイール
ドと称する4ビツトあるいは8ビツトの長さのパラメー
タにより規定されるMM106におけるオペランドのア
ドレスはアドレスの一部として全体的、即ちヘースレジ
スタの中味を用いるフオーマツトにより規定される。全
体レジスタにおけるアドレスはBフイールドと称され、
さらに移動したアドレス(0でもよい)はDフイールド
と称される。Xフイールドは、ベースレジスタアドレス
に追加されるアドレスをインデツクスレジスタにおいて
指示する。
【0051】命令実行を説明するために、オペランドを
第1、第2および第3のオペランドとして指示する。一
般的に、2個のオペランドが命令実行に参加し、その結
果第1のオペランドに代替する。しかしながら、ある命
令においては、結果として第2のオペランドに代替する
ことがある。最終結果を記憶することを除いて、演算の
アドレシングあるいは実行部分に関係する全てのレジス
タおよびメモリ位置の中味は不変のままである。
【0052】B.2.c.命令フオーマツト(第3図の
AからIまで) 後述のように、命令は長さが1、2、3、あるいは4個
のハーフワードであつて、MM106にお、一貫したハ
ーフワード境界に位置する必要がある。
【0053】第3A図から第3I図までを参照すれば、
9個の命令フオーマツトが示されている。9個の基本的
な命令フオーマツトはフオーマツトコード、RL、R
R,RRL,RX,RS、SI,S、SSおよびSSI
で指示され、それらは一般的に実行すべきオペレーシヨ
ンを示す。
【0054】RR レジスタからレジスタへのオペレー
シヨンを示す; RL レジスタからレジスタへの(相対的)オペレーシ
ヨンを示す; RX レジスタおよび割出された記憶のオペレーシヨン
を示す; RS レジスタおよび記憶のオベレーシヨンを示す; SI 記憶および即値オペランドのオペレーシヨンを示
す; S 黙示オペランドと記憶のオペレーシヨンを示す; SS 記憶から記憶へのオペレーシヨンを示す;および SSI 記憶と即値オペランドのオペレーシヨンを示
す;
【0055】B.3プログラム制御ワード(第4図) 前述のように、システム102は各プロセスに対して、
8バイトの長さで、適正なプログラム実行に必要な情報
を含むプログラム制御ワード(PCW)を保持する。P
CWは状態および制御情報、割込みコードおよび命令ア
ドレスとを含む。一般に、PCWは命令の順序付けを制
御し、現在実行されつつあるプログラムに対するシステ
ムの状態を指示するために使用される。
【0056】命令のシーケンスを実行するために、PU
104はPCWから命令のアドレスを取込み、その命令
を実行し、命令の長さによつてPCWの命令アドレスを
増加する。次いでPU104はPCWから新しい命令ア
ドレスを取入れ、割込みあるいはHALT(停止)I/
O命令が受取られるまでプロセスが継続する。
【0057】使用中即ち制御中のPCWは現在のPCW
と称される。現在のPCWの記憶を介して、PU104
の状態を次の検査のために残すことができる。新しいP
CW、即ちPCWの一部を装填することによりPU10
4の状態を変えることができる。
【0058】PCWは1バイトの割込みコード、3バイ
トの命令アドレス、2バイトの状態フイールドおよび1
バイトのプログラムマスクフイールドから構成され、1
バイトは他の目的に残しておく。
【0059】第4図を参照すれば、システム102PC
Wの構成が示されている。以下はPDWにおける各ビツ
トの機能の詳細説明である。
【0060】
【0061】PSW状態コードフイールド(BITS4
3−49)はその機能については以下詳細に説明する
が、セツトし、多くの命令によつてテストし、ある種の
命令によつて変更しうることに注目すべきである。
【0062】B.4.アドレシング(第5図のA、Bお
よびC) 前述のように、オペランドは3種類にグループ化でき
る。即ち、MM106において明示されてアドレスした
オペランド、MM106における命令の流れの一部とし
て位置した即値オペランドおよびレジスタに位置したオ
ペランドである。これらのオペランドはオペランドを参
照する命令に応じてベース(base)を変位した相対
的あるいは直接的なアドレス発生によりアドレスでき、
これらアドレシングモードの各々については所定の順序
で以下に説明する。
【0063】B.4aベース、変位アドレス生成 プログラムセグメントを簡単に移し換え、かつ入力、出
力および作業領域に対して弾力的な仕様を提供するため
に、MM106を参照する全ての命令は、前述し、かつ
システム102の以下の説明において詳述するが、完全
な24あるいは32ビツトのアドレスを採用することが
できる。
【0064】MM106を参照するために使用されるア
ドレスは以下の3種類の2進数字から発生する:
【0065】ベースアドレス(B)は命令のBフイール
ドにおいてプログラムにより規定される汎用レジスタに
含まれる24ビツト数である。Bフイールドは各アドレ
ス仕様に含まれている。ベースアドレスはプログラムお
よびデータの静的再配置手段として使用できる。アレイ
計算においてベースアドレスはアレイの位置を規定し、
記録処理においてはレコードを識別できる。ベースアド
レスは全てのメモリをアドレスする。またベースアドレ
スは索引用にも使用しうる。
【0066】インデックス(X)は命令のXフイールド
においてプログラムにより規定される汎用レジスタに含
まれる24ビツトの数である。これはPX命令フオーマ
ツトに規定されたアドレスのみに含まれる。RXフオー
マツト命令は二重索引を可能とし、即ちアレイ内でエレ
メントのアドレスを提供するために使用できる。
【0067】変位(D)即ちオフセツトは命令フオーマ
ツトに含まれる12ビツトの数である。これは各アドレ
ス計算に含まれる。変位はエレメント即ちベースアドレ
スを越えて4095バイトまでの相対アドレシングを提
供する。アレイの計算において、変位はエレメントと関
連した多くの項目の中の1個を規定するために使用でき
る。レコードの処理において、変位はレコード内の項目
の識別に使用できる。
【0068】ベース変位アドレスの形成において、ベー
スアドレスとインデツクスとは符号なしの24ビツト2
進整数として扱われる。変位も同様に符号なしの12ビ
ツト2進整数として処理される。オーバフローを無視し
てるが24ビツトの2進数字として追加される。各アド
レスはベースを含むので、総和は常に24ビツトの長さ
となる。
【0069】プログラムはベースアドレス、インデツク
スあるいは変位フイールドにおいて零の値を示す。零は
対応するアドレス成分のないことを示す。ベース、即ち
零のインデツクスは、零の値がアドレス形成に使用され
るべきであつて、汎用レジスタOの中味を参照しないこ
とを意味する。このように、レジスタOをベースレジス
タとして使用することにより必然的にプログラムの再配
置を不可能とする。零の変位は何ら特別な意義を有しな
い。ベースアドレスおよびインデツクスの開始、修正お
よびテストは固定小数点命令、あるいはある種の分岐命
令により達成することができる。
【0070】B.4.b.相対アドレス生成 相対的な命令フオーマツト(RLおよびRRL)のアド
レシングに対してはベースレジスタは不要である。現在
の命令アドレスは暗示されたベースアドレスであつて、
相対的なオフセツトが該ペースアドレスに追加され有効
アドレスを形成する。このフオーマツトの使用はある種
の分岐命令に限定される。
【0071】MM106を参照するために使用する相対
アドレスは以下の3個の2進整数から発生する:
【0072】現在の命令アドレスは暗示されたベースア
ドレスである。そのため、もし例えばXとLの値が零で
あれば、命令はそれ自体分岐する。
【0073】インデツクス(X)は命令中に規定される
とすれば、命令のXフイールドにおいてプログラムによ
り規定される汎用レジスタに含まれる24ビツトの数で
ある。
【0074】相対的オフセツト(L)は命令におけるビ
ツトの数から24ビツトの数まで伸ばされる。相対的ア
ドレスの形成において、前記3個の数字はオーバフロー
を無視した符号なしの24ビツト2進整数として追加さ
れる。さもなければ、相対アドレス生成に関する規則は
ベース変位アドレス生成規則と同じである。
【0075】B.4.c.直接アドレス生成 アドレスO−4095はベースアドレスあるいはインデ
ツクスが無くても生成可能である。この特性は例えば、
PCWおよび汎用レジスタの中味が保存され、かつプロ
グラムスイツチの間復帰する必要のある場合使用され
る。これらのアドレスはさらに、例えば古いPCWと新
しいPCWのような一定の目的に対してシステム102
が使用する全ての保存アドレスを含む。
【0076】B.4.a.アドレス変換(第5図のA、
BおよびC) アドレス変換は、ユーザの仮想アドレス空間内の位置、
即ちユーザのプログラムあるいはプロセス内のアドレス
空間内の位置を参照する仮想アドレスを、MM106の
位置を参照する物理的アドレスに変換するプロセスであ
る。
【0077】システム102用のMM106はページフ
レームへ局部的に論理的に組織され、かつ後述するよう
に31ビツトまで拡大し付加的なアドレシングスペース
を提供する24ビツトのアドレスによりスパンされる、
バイトでアドレス可能のランダムアクセスメモリ(RA
m)から構成される。
【0078】第5図のAを参照すれば、MM106はそ
れぞれ、MM106のアドレス空間内で特定のページフ
レームを識別する13ビツトのページフレーム番号フイ
ールドと、ページ内の位置を識別する11ビツトのバイ
トインデツクスフイールドとから構成される。本実施例
においては、各ページフレームは2Kバイトの情報を含
み、2Kバイトの境界に整合し、正確に1ページの情報
を含む。以下さらに説明するように、MM106は1、
2、4あるいは8バイトのバイト整合書込み操作ならび
に8バイトの二重ワードと整合した読取り操作を支援す
る。
【0079】例えばデイスク記憶装置に位置する仮想メ
モリ空間は論理的にページとセグメントとに分割され
る。第5図のBに示すように、仮想メモリアドレスはそ
れぞれ、仮想アドレス空間内で仮想ページを識別する1
3ビツトの仮想ページインデツクスフイールドと、仮想
ページ内の位置を識別する11ビツトのバイトインデツ
クスとから構成される。また、仮想ページのサイズは2
Kバイトであつて、2Kバイトの境界から開始する。物
理的には各ページは例えばデイスクプラツタの1セクタ
を占有する。セグメントの方は1メガ(M)バイトの境
界で始まるページのブロツクである。仮想メモリのペー
ジは必要に応じて、後述するように、MM106の使用
可能なページフレームにコピーすることができる。シス
テム102は、MM106において物理的に利用可能な
メモリの量より大きいデイスク記憶装置において命令お
よびデータについて、同時に1人以上のユーザに対して
仮想アドレス空間を提供することができる。しかしなが
ら、命令とデータとはMM106に介在する必要がある
ので、処理されている間に仮想メモリからMM106へ
必要に応じてコピーできる。仮想メモリからMM106
へ情報をコピーするプロセスはページンダと称され、2
Kバイトの単位、即ち1ページにおいて達成される。さ
らに、プログラム命令を実行可能な前に、アドレス変換
と称する変換をその中で規定された仮想アドレスに対し
て実施し、仮想アドレスを物理的アドレスに変換する必
要がある。
【0080】アドレス変換機構の一部は1個以上のペー
ジテーブルから構成され、各ユーザの作業あるいはプロ
セスに対してページテーブルがありかつ各ページテーブ
ルはMM106のページフレームに対して対応した作業
の仮想アドレス空間をマツピングさせる。ページテーブ
ルの各入口は例えば主メモリにページが存在するか、か
つ各ページに対して読取りおよび書込み保護が行われて
いるか否かとは関係なく仮想ページアドレスに関する情
報を含んでいる。
【0081】アドレス変換機構の第2の部分はセグメン
ト制御レジスタ(SCR)s、即ちタスクのMM106
ページテーブルのアドレスおよび対応するタスクが実行
される場合仮想メモリの所定セグメントに対してその他
の関連情報がロードされるPU104レジスタから構成
されている。
【0082】第5図のCを参照すれば、仮想アドレスを
物理的アドレスへ変換するプロセスが示されている。ア
ドレス変換の第1のステツプはMM106のページテー
ブルが仮想アドレスに対するページフレーム番号を含ん
でいるか否か検出することである。もし含んでおれば、
PU104がこの13ビツへの数を11ビツトの仮想バ
イトインデツクス(オフセツト)と連結して第5図のA
に示すように24ビツトの物理的アドレスを形成する。
次いで、PU104はこの物理的アドレスを用いてMM
106におけるデータにアクセスする。仮想アドレスに
対してページテーブルがページフレーム番号を含んでい
ないとすれば、PU104は仮想メモリから使用可能な
ページフレームへの仮想ぺージのコピーを開始し、タス
クのページテーブルにおいて選定したページフレームの
番号を記録する。次いでタスクが実行を再開できる。
【0083】B.5.割込み機構 最後に、システム102は入力/出力(I/O)装置、
即ちPU104において、システムに対する外部条件の
結果としてPU104が演算の状態を変えうるようにす
る割込み機構を含む。システム102の実現においては
5種類の割込み状況が確認される;即ちI/O、クロツ
ク、プログラム、スーパバイザ呼出しおよび機械チエツ
クである。
【0084】スーパバイザ呼出しを除く各種類の割込み
は永続的に指定されたMM106の位置において「新」
と「旧」の2個の関連したPCWsを有する。割込みは
情報を記憶し、割込みの原因を識別し、現在のPCWを
その古い位置において記憶し、PCWを新しい位置にお
いて現在のPCWにすることを含む。割込みのスーパバ
イザ呼出しは永続的に規定されたMM106の位置にお
いて新しいPCWのみを有する。しかしながら、スーパ
バイザの古いPCWの呼出しはシステムスタックの頂部
に記憶される。
【0085】古いPCWは割込みの時必要なPU10
4の状況情報を有する。もし、割込みによつて阻止され
るプログラムの結論において、割込みが実施され、古い
PCWを現在のPCWにした場合、PU104は割込み
の前の状態に戻され、割込まれたプログラムが継続す
る。
【0086】割込みは命令単位の間で、即ち一方の命令
の実行後で、かつ次の命令の開始の前に許容され、かつ
割込み可能命令に対しては割込み実行中に行われる。割
込みに先行する命令が完了する要領は割込みの原因によ
つて変りうる。命令は完了、停上、アボート(abor
t)、抑制、あるいは再開が可能である。
【0087】割込みの各種の種類を簡単に検討してみる
と;I/O割込みは、I/O装置からの信号にPU10
4が応答する手段を提供し;クロツク割込みはシステム
内にセツトされた調時状況にPU104が応答する手段
を提供し;プログラム割込みは命令やデータの使用が不
適正なために発生し;スーパバイザ呼出しの割込みはス
ーパバイザ呼出し命令の発生から発生し;および機械チ
エツク割込みは機械の故障の発生に起因する。
【0088】システム102の基本的特徴ならびに原理
のあるものについて説明してきたが、次にシステム10
2のエレメントの作動について説明する。
【0089】C.PU104の詳細説明(第6図、第1
0図、第8図および第12図) 第6図、第7図、第10図および第12図を参照すれ
ば、CPU122、AGU124およびATU/C12
6のそれぞれについての詳細ブロツク線図が示されてお
り、以下この順序で説明する。第6図、第10図および
第12図はその順序で左から右へ横に並べればよく、第
6図の下に第7図を置くと、PU104の部分の全体ブ
ロツク線図を構成することになる。第6図、第7図、第
10図および第12図を以下の説明のために並べること
が好ましい。前述のように、AGU124とCPU12
2とは個別に、かつATU/C126と同時に作動して
命令の取出し、命令の復号化、オペランドの取出しおよ
び命令の実行をオーバラツプさせる。以下はCPU12
2、AGU124およびATU/C126をその順序で
説明し、かつこれらエレメントの全体的および協働動作
を説明する。これらエレメントのあるものについての特
徴のあるものは説明の便宜上、これら3個のエレメント
の全ての動作を説明した後に説明する。
【0090】C.1CPU122(第6図および第7
図) まず第6図および第7図を参照すれば、前述のCPU1
22はプロセスの制御によつて、即ち、プログラムの実
行中受取られる命令の制御によつてデータに対して演算
する。以下詳しく説明するようにCPU122と、PU
104の関連エレメントとはマイクロプログラムにより
制御され、CPU122はCPUの各サイクル毎に1個
のマクロ命令と、一時に1個のマイクロ命令とを実行す
る。
【0091】CPU122は2進と10進の整数の算術
および論理演算を行い、かつ前述したタイプの一般的な
命令を実行する。また、CPU122はAGU124を
支援してある種のアドレス生成演算、例えば分岐命令ア
ドレス計算を行う。CPU122はさらに、これも前述
したシステムのプログラム制御ワードを発生し、かつ保
持する。また、CPU122はマイクロ命令分岐アドレ
スを生成させ、以下詳細に説明するマイクロコードシー
ケンサから受取つたリテラルフイールドを用いてリテラ
ルフイールドの一定演算を実施する。また前述のよう
に、CPU122はSLバス120と接続したシステム
102のエレメントの中の1個である。
【0092】第6図および第7図に示すように、CPU
122は中央処理装置(CP)602、マイクロコード
シーケンサ(MS)604およびCPU支援リンクバス
インタフエース(CPU−SLI)606とを含む。第
7図に示すMS604およびCPU−SLI606は、
CPU122、AGU124およびATU/C126を
説明した後に以下説明する。
【0093】CP602を参照すれば、CP602は、
例えばデータやアドレスに対して算術および論理演算を
実行するために、32ビツトの算術および論理ユニツト
(ALU)608と関連のALUシフタ(ALUS)6
10とを含む。
【0094】ALU608へのデータ入力は、それぞれ
32ビツトのAポート(AP)バス612および32ビ
ツトのBポート(BP)バス614から接続された32
ビツトのALUA入力ポートおよび32ビツトのALU
B入力ポートを介して提供される。第6図に示すよう
に、APバス612とBPバス614とには後述する複
数のデータ源と出力側とが設けられている。APバス6
12およびBPバス614に対する前述のデータ源の1
つはそれぞれレジスタフアイル(RF)616の32ビ
ツトのAおよびB出力側であつて、該フアイルは本発明
の実施例においては32ビツト幅で256ワードのレジ
スタフアイルである。
【0095】RF616に対する32ビツトのデータ入
力はレジスタフアイルのデータマルチプレクサ(RFD
M)618から提供され、該マルチプレクサは32ビツ
ト(1ワード)データB(DB)バス600からの第1
の32ビツト入力側と、32ビツトのGバス620から
の第2の32ビツトの入力側とを有する。AGU124
とATU/C126の以下の説明においてさらに説明す
るように、DBバス600はPU104の第1の内部デ
ータパスであつて、CPU122、AGU124および
ATU/C126とに連結される。
【0096】第6図に示すように、Cバス620はAL
US610の32ビツトの出力側から接続されている。
Cバス620からRFDm618へのパスは、ALU6
08とALUS610の演算による結果を、例えば繰返
し演算するためRF616のデータ入力側に戻すことが
できるように設けられている。
【0097】Cバス620からも32ビツトの作業用レ
ジスタA(WRA)622および32ビツトの作業用レ
ジスタB(WRB)624が接続されており、WRA6
22とSRB624の出力側はそれぞれAPバス612
とBPバス614とに接続されている。これらのデータ
パスによつて、ALU608とALUS610の演算の
結果がそれぞれAPバス612とBPバス614とへ、
例えばALU608のAおよびBポートの入力側あるい
は以下説明するプログラム制御ワードレジスタへ戻るこ
とができるようにする。
【0098】32ビツトの双方向性データパスが双方向
性のAポートトランシーバ(APX)を介してAPバス
612とDBバス600との間に設けられ、データがD
Bバス600とAPバス612との間で転送できるよう
にする。このパスは例えばALU608/ALUS61
0の演算結果をDBバス600へ転送あるいはDBバス
600からのデータをALU608のA入力ポートへ転
送するために使用しうる。
【0099】APバス612とBPバス614とにはさ
らにAポートマルチプレクサ(APm)628とBポー
トマルチプレクサ(BPM)630からのデータ源が設
けられており、それらは複数のデータソース(源)から
の情報をそれぞれAPバス612およびBPバス614
とへ選択的に転送しうる。次に以下説明するように、B
Pバス612に関連したデータ源は主として算術演算に
係り、部分的に上述のように、CP602とDBバス6
00との間のデータ転送、即ちデータに対するオペレー
シヨンに係る。APバス614に関連したデータ源は主
としてシステムプログラム制御ワード、および命令アド
レスの計算、即ちシステムオペレーシヨンの制御に係
る。
【0100】まずAPm628を参照すれば、APm6
28の第1の入力側は当該技術分野の専門家には周知の
ように、2進のALU608/ALUS610において
10進法の算術演算を実行するために使用される10進
の補正常数DCCから構成される。前記の第1の入力側
へのその他の接続には前述の制御レジスタからの入力側
CRと、アドレス計算に使用される変位フイールドDS
Pとを含むことができる。APM628の第2の入力側
は、これも当該技術分野において周知のように、MS6
04から提供される汎用マイクロ命令リテラルフイール
ドから構成されている。この経路は例えば、マイクロ命
令分岐アドレスを発生させ、あるいは以下に説明するプ
ログラム制御ワードレジスタである機械の内部レジスタ
を操作する上でリテラル常数を提供するために使用しう
る。第6図および第7図に示すように、APバス612
にはまた、CPU−SLI606に関する以下の説明に
おいて説明するCPU−SLI60からの双方向性接続
が設けられている。
【0101】BPM630を参照すれば第6図と第10
図とに示すように、BPM630への第1の入力は現在
実行されつつある命令を表わすAGU124からの32
ビツトの入力である。第2の入力は、64ビツトのPC
Wレジスタ(RCWR)632に位置する現在のプログ
ラム制御ワード(PCW)の64ビツトを32個組合せ
たものから構成され、これらの32ビツトは現在実行さ
れつつある命令を表わす、PCWの部分を構成する。第
6図にさらに示すように、PCWR632にはBPバス
614からの32ビツトの入力側が設けられ;このPC
WR632の入力側は、現在実行されつつある命令を表
わすPCWの部分を構成し、かつ一般的に、PCWR6
32からBFM630に掃供される32ビツトに対応す
る。CP602の経路はAGU124およびPCWR6
32からの現在の命令入力側と、PCWR632への現
在の命令の出力側とを含むことにより、CP602がP
CWならびに現在の命令を操作しうるための手段を提供
する。前述のように、これらのPCWと命令操作とはA
GU124を支援して、例えば命令アドレスに関連する
計算ならびに分岐アドレス演算のょうなアドレス生成演
算を含む。
【0102】第6図と第10図とに示すように、前述の
BPバス614の接続と演算とには、バツフアド(bu
flered)・レジスタ(BR)バス634を介して
AGU124の入力へALU608の出力側から提供さ
れる32ビツトの出力が関連している。この経路は、C
P602が例えばCP602によつて直接AGU124
へ計算されるブランチアドレスを提供することができ
る。
【0103】第6図に示すように、命令アドレスレジス
タ(IAR)636はBRバス634から、かつAPバ
ス612まで接続されている。IAR636は順番に接
続された2個のアドレスレジスタから構成されている。
第1のレジスタはその入力側をBRバス636から接続
している、次の命令のアドレスレジスタであつて、次に
実行すべき命令のアドレスを記憶する。次の命令アドレ
スレジスタは2乃至4のカウンタにより増分されて次の
命令アドレスを発生させ、この増分は現在実行されつつ
ある命令のサイズ、即ち32、48または64ビツトに
関するAGU124からの情報に応答してマイクロコー
ドルーチンにより制御される。
【0104】第2のIAB636レジスタはその入力を
次の命令アドレスレジスタの出力側から接続され、出力
がAPバス612に接続されている、現在実行されつつ
ある命令のアドレスを記憶する命令アドレス実行レジス
タである。以下説明のように、これらのレジスタ、かつ
特に次の命令アドレスレジスタはPDWの一部を構成
し、例えば命令の分岐演算に使用される。ATU/C1
26およびCPU122、AGU124およびATU/
C126の協働動作についての以下の説明で説明するよ
うに、ATU/C126による命令の通常の順序の実行
中、命令アドレスが生成される。
【0105】最後に、第6図と第10図に示すように、
フアイルデータ出力が、バツフアド・フアイルデータ
(BFD)バス638を介してCP602からAGU1
24が提供され、該バスはRFDM618の出力側から
接続されている。この軌道はデータが、RF616への
書込みと同様に以下説明のAGU124レジスタフアイ
ルへ書込みできるようにする。前記データの例としては
DBバス600からのデータおよび、前述した汎用レジ
スタおよびベースアドレスのようなCP602アドレス
計算の結果を含む。
【0106】CPU122について説明したので、次に
AGU124について以下説明する。
【0107】C.2.AGU124(第10図および第
11図) 前述のように、AGU124の機能は命令を取出し、命
令のフイールドから、該命令により演算すべきオペラン
ドについての仮想アドレスを生成させ、かつこれら命令
を実行するためのマイクロ命令ルーチンを識別するアド
レスを取出すことである。
【0108】第10図に示すように、AGU124の主
要なエレメントはCPU122による命令の実行に先立
つて命令を取出し、かつ記憶するための命令ラッチ(I
L)704を備えた命令待ち行列(IQ)702を含
む。以下説明するように、マイクロ命令ルーチンのアド
レスを取出すために使用する命令コード(OPコード)
フイールドならびにマイクロ命令ルーチンにより演算す
べきオペランドを識別するオペランド関連フイールドを
命令から抽出するに必要なロジツクを含む。
【0109】オペランドのアドレシングに関して、前述
のようにオペランドに関する情報を含む命令フイールド
は、オペランドを含むレジスタあるいはオペランドのア
ドレスの計算に使用しうるアドレス情報を含むレジスタ
を規定しうることに注目すべきである。典型的なオぺラ
ンドのアドレシング演算において、オペランドは特定化
されたベースアドレスに関して識別することができる。
この場合、命令の中オペランドに関連したフイールドは
ベースアドレスを含むレジスタを識別する第1のフイー
ルドと、ベースアドレスからのオフセツト、即ちベース
アドレスに対するオペランドの位置を含む第2のフイー
ルドを含むことができる。オペランドの実際のアドレス
は次いで、識別されたレジスタからベースアドレスを読
取り、かつオフセツトをベースアドレスに追加すること
により検出される。
【0110】以下詳細に説明のように、AGU124は
アドレスの計算に使用される情報を記憶するためのアド
レス生成レジスタフアイル(AGRF)706を含む。
AGRF706は例えばベースアドレスを記憶するよう
定められたレジスタを含むことができる。AGRF70
6にはAGRFセレクトロジツク(AGRFS)708
が関連しており、該論理はIQ702からのオペランド
アドレシングフイールドを受取り、対応するアドレス出
力をAGPF706と、オペランドアドレス計算におい
て算術演算を実行するために使用されるけた上げ合計伝
播加算器(CSPA)710とへ提供する。
【0111】最後に、AGU124は仮想アドレスマル
チプレクサ(VAM)712および仮想アドレスレジス
タ(VAR)714とを含む。さらに以下説明するよう
に、VAM712はATU/C126へのオペランドと
命令アドレスとの供給源であつて、このため、AGU1
24のオペランドアドレス出力側、即ちCSPA710
の出力側から、かつCPU122の次の命令アドレス出
力側、即ち、IAR636から、かつBRバス634を
介して提供される次の命令アドレスから接続されてい
る。以下説明するように、VAR714は、例えばメモ
リからメモリへの転送のょうな、ある種のアドレシング
操作に用いられるバツフアレジスタである。
【0112】C.2.a AGRF706およびAGU
124出力論理(第10図) 前述のように、AGRF706は現在実行している命令
のフイールドから、これら命令により演算すべきオペラ
ンドに関する仮想アドレスを発生させる情報を記憶する
レジスタフアイルである。前記情報の例としては、シス
テム102のアドレシング構造において前述したよう
に、ベースアドレス、インデツクスアドレス、変位およ
びオペランドレジスタアドレスとを含む。
【0113】本実施例において、AGRF706は32
ビツト幅で16ワードのレジスタフアイルであつて、該
フアイルはAGRFS708によりアドレスされ、かつ
BFDバス638を介してCP602からのデータ入力
を受取る。この点に関して、CP602が、例えば命令
分岐アドレスを発生する上でAGRF706に記憶され
る情報のあるものに対してアクセスする必要のある限り
においては、AGRF706の中味のコピーがその目的
に対してRF608に記憶されることに注目すべきであ
る。
【0114】前述のように、AGRF706の32ビツ
ト仮想アドレス出力側がCSPA710への1つの入力
側として設けられ、一方第2の出力側がIQ702から
設けられている。以下の説明のように、IQ702から
設けられたCSPA710入力側は,インデツクスの相
対アドレシング即ちエレメントに対するアドレスあるい
はAGRF706の出力として提供されるベースアドレ
スを生成させるために使用される。
【0115】CSPA710の出力側の方はVAM71
2への1つの入力側として提供される。BRバス634
からVAM712への第2の入力側が設けられており、
該バス634は前述のように、CP602のALU60
8の出力側から接続されている。前述のように、VAM
712への前記BRバス634の入力によつてCP60
2が例えば仮想分岐アドレスを直接生成かつ提供できる
ようにする。
【0116】VAM712への第3の入力はVAB71
4から提供され、VAR714は本実施例においてはV
AM712の仮想アドレス出力側から入力側が接続され
ている2個の並列の32ビツトレジスタで構成される。
VAR714は特にメモリからメモリへの演算、即ち一
方のアドレス位置から第2のアドレス位置へ情報を転送
するため連続した順序で1つ以上の読取りおよび書込み
が行われる演算において使用される。
【0117】第10図と第12図とに示すように、VA
M712の出力側は仮想アドレス(VA)バス700を
介してATU/C126に提供され;前述のように、A
GU124によつて提供される仮想アドレスはATU/
C126によつて物理的アドレスに変換される。VAM
712の出力側も前述のように、VAB714の入力側
へ、かつDBバス600へ接続される。
【0118】C.2.b.IQ702およびIL704
(第10図および第11図) 前述のように、IQ702は指令の実行のために下記す
るATU/C126のキヤツシユから命令を取出し、命
令フイールドを復号化して仮想アドレスを発生させ、か
つこれら命令を実行するためマイクロ命令ルーチンを識
別するデイスパツチアドレスを生成させる。前述のよう
に、AGU124とIQ702とは独立して、かつCP
U122およびATU/C126と協働して動作する。
AGU124とIQ702とには独立した制御機構、詳
しく有限状態機械が設けられる。前記制御機構の構造と
作動については特にIQ702の構造と動作についての
以下の説明を読めば当該技術分野の専門家には十分理解
されるので説明の都合上第10図には示していない。
【0119】システム102をまず参照すれば、IQ7
02により取出され、かつ復号化された命令は前述の命
令と同様本実施例においては長さが32ビツト(4バイ
ト)、48ビツト(6バイト)あるいは64ビツト(8
バイト)である。各命令の最初のバイトは実行すべき演
算を規定する命令コード(OPコード)フイールドから
構成されている。残りの命令バイトはオペランド関連の
フイールドを含み、それぞれ1個以上のバイトと命令に
より演算すべきオペランドに関する情報を含んでいる。
以下説明するょうに、この情報は主としてオペランドの
アドレシングに関する。
【0120】まず命令のオペランド関連フイールドにつ
いて検討する。これらフイールドの例としては前述のよ
うにオペランドを含むレジスタを規定するR、R
よびRフイールドと、即値オペランドを含むIフイー
ルドとを含む。BおよびBフイールドはベースアド
レスを含むレジスタを規定し、一方Dフイールドは変位
フイールドを含むレジスタを規定し、Xフイールドは
アドレシングインデツクスフイールドを含むレジスタを
規定する。前述のように、前記フイールドが関係するレ
ジスタはAGRF706に位置し、命令フイールドはA
GRFS708を介して前記命令フイールドに対応する
AGRFS708をアドレスするために使用しうる。そ
の他のオペランド関連フイールドはオペランドの長さを
規定するLフイールドと、スタツクベクトルを含むSフ
イールドと、マスクを含むMフイールドとを含み、また
これらフイールドのあるものはAGRFS708レジス
タに関し、かつ対応する。
【0121】前述のフイールドの中、R、R
、BおよびBならびにDおよびDフイール
ドを含むサブセツトは仮想アドレスを発生するために直
接使用され。このアドレシングサブセツトの中、R
、X,BおよびBフイールドは、それらの仮
想アドレスがAGRF706に位置するレジスタを規定
しそのためこれらフイールドはAGRF706へのアド
レス入力として提供される。R、RおよびXフイ
ールドはIQ702の出力側いAからAGRF706ア
ドレス入力側へ直接提供され、一方BおよびBフイ
ールドがIQ702の出力側BからAGRFS708を
介してAGRFアドレス入力側へ提供される。第7図に
示すように、AGRFS708にはBRバス634から
の別のアドレス入力側が設けられ、該入力側はALU6
08の出力側から接続されており;この経路はPCW関
連アドレシング、即ち命令分岐アドレシング用に用いら
れる。
【0122】最後に、前述のようにDおよびDフイ
ールドはエレメントに、即ちベースアドレスに関連する
アドレシングに対して変位、即ちオフセットを含む。そ
のため、DおよびDフイールドはRまたはBフイー
ルドアドレス入力に応答してAGRF706から提供さ
れる仮想アドレスに追加され、したがつてIQ702出
力側CからCSPA710への入力として提供される。
【0123】命令OPコードフイールドについて検討す
れば、前述のようにIQ702は、命令からOPコード
フイールドを抽出し、システム102の演算を制御する
ためマイクロコードルーチンを識別するデイスパツチア
ドレスを生成する際他の情報と共にこれらのフイールド
を用いる。
【0124】OPコードフイールドはIQ702の出力
側Dからデイスパツチアドレスゼネレータ(DAG)7
16の入力側へ提供される。DAG716はデイスパツ
チアドレスを生成させるのに必要なロジックを含み、か
つ前述し、かつ第6図と第10図とに示すように、以下
さらに述べるMS604へデイスパツチアドレス出力を
提供する。最も単純な状態において、DAG716はデ
イスパツチアドレス出力を介して直接OPコードをMS
604を通すことができ、OPコードフイールドはOP
コードフイールドにより指示される演算を実行するため
にマイクロコードルーチンを選定するため直接使用され
る。その他の状態においては、DAG716は例えば命
令を完成し、かつ命令を準備する状態、停電あるいはシ
ステム開始演算、クロツクおよびデパツグペンデイング
状態、ページ境界状態、命令モード状態、IQ702へ
の書込み状態あるいはデイスパツチ阻上状態に必要なデ
イスパツチアドレスを提供する。また、DAG716
は、例えば命令分岐演算においてアドレスの有効性をチ
エツクし、かつアドレスが無効になると対応するデイス
パツチアドレスを提供するアドレスコンパレータを含
む。DAG716は、DAG716が従来のものであ
り、かつ当該技術分野の専門家に十分理解される限り詳
しくは説明しない。
【0125】最後に、かつ前述し、かつ第6図と第10
図に示すように、AGU124は現在実行すべき命令を
表わす出力をCPU122に提供する。この32ビツト
の出力はOPコードフイールドと、オペランド関連の次
の一連の24ビツトを含み、IQ702の出力側Eから
命令レジスタの実行(IRE)718の入力側へ提供さ
れる。IRF718の出力側の方は前述し、かつ第6図
と第10図とに示すようにBPM630の入力側へ接続
される。
【0126】IQ702とIL704の外部接続および
演算について説明してきたが、次にIQ702とIL7
04の詳細構造とオペレーシヨンについて以下説明す
る。
【0127】再び、システム102のIQ702により
取出されかつ復号化された命令を参照すれば、前述のよ
うに長さが32ビツト、48ビツトあるいは64ビツト
である。即ち、命令は長さが整数倍数のハーフワードで
あつて、一方ワードについては32ビツト、ハーフワー
ドは16ビツトと定義ずみである。各命令の第1のバイ
ト(8ビツト)は実行すべき演算を規定する命令コード
(DPコード)から構成されている。残りの命令バイト
はオペランド関連フイールドを含み、該フイールドは1
個以上のバイトからなり、かつ命令により演算すべきオ
ペランドに関する情報を含む。
【0128】第11図を参照すれば、IQ702とIL
704の詳細構造が示されている。IL704は、DB
バス600から接続され、IQ704へ32ビツトの出
力を提供する32ビツトの入力側を有する32ビツト
(1ワード)のラツチとして示されている。本実施例に
おいて、IL704は、それぞれDBバス600から接
続されIQ702へ16ビツトの出力を提供する16ビ
ツトの入力側を有する、2個の並列16ビツト(ハーフ
ワード)のラツチとして実行される。一方のラツチはD
Bバス600に現われる32ビツトワードの高位ハーフ
ワードを受取り、かつ提供し、一方他方のラツチは低位
のハーフワードを受取りかつ提供する。
【0129】IQ702は、それぞれIR0 720,
IRI 722、IR2 724およびIB3 726
として指示される4個の16ビツト(ハーフワ−ド)の
命令レジスタ(IR)を含むものとして第11図に示さ
れている。IR3 726のデータ入力側はIL704
の高位のハーフワードから直接接続されている。IR2
724、IR1 722およびIR0 720のデー
タ入力側は、それぞれIMO728、IMI730およ
びIM2 732として指示される入力マルチプレクサ
を介して提供され、それらの入力側の方はIL704か
ら、かつ命令レジスタの他方のレジスタの出力側から接
続されている。第11図に示すように、IM2 732
の入力側、したがつてIR2 274の入力側はIL7
04の2個の16ビツトの出力側およびIR3 726
の16ビツトの出力側から接続されている。IMI73
0したがつてIR1 722の入力側はIL704の2
個の16ビツトの出力側、IR3 726の16ビツト
の出力側およびIR2 724の16ビツトの出力側か
ら接続されている。
【0130】そのため、IQ702は16ビツト、即ち
ハーフワードのセグメントに分割される64ビツトのレ
ジスタからなる。IQ702のセグメントは個々のセグ
メントあるいは1個以上のセグメントからなるブロツク
として、かつ1個以上のセグメントの倍数だけ順方向、
即ちIR3 726からIRO 720の方向にシフト
することができる。IL704は命令を記憶した別の3
2ビツト、即ち2個のセグメントを提供する。IL70
4の32ビツトは2個のセグメントブロツクとして1個
以上のセグメントの倍数だけIQ702へ順方向にシフ
トできる。
【0131】したがつて、 IQ702およびIL70
4からなる命令待ち行列の全体容量は96ビツト、即ち
4ワードまたは8ハーフワードのセグメントである。
【0132】可能なら64ビツトSSIフオーマツト指
令を除いて、命令の待ち行列はしたがつて常に少なくと
も2個の命令を含む。さらに、選定可能のセグメントの
整数倍だけセグメントあるいはセグメントのブロツクを
命令待ち行列がシフトできることによつて、その中に含
まれた命令が順方向にシフトできるようにして、現在復
号化されつつある命令の中の第1のセグメントがIRO
72に、第2のセグメントがIRI722に位置するよ
うにさせる。現在の命令に続く命令は同じ量によつて順
方向にシフトされ、そのため復号すべきIQ702を介
して命令が連続的に流れる。この点に関して、かつCP
U122、AGU124およびATU/C126につい
ての協働オペレーシヨンに関する以下の詳細に説明する
ように、IQ702は命令待ち行列制御機構は、IR2
724とIR3 726とが令になる毎にATU/C
126から命令の別の32ビツトを取出そうとする。
【0133】前述のように、IQ702は現在復号化さ
れつつある命令の第1のセグメント(ビツト0−15)
がIR0 720に位置し、第2のセグメント(ビツト
16−31)がIR1 722に、第3のセグメント
(ビツト32−47)がIR3732に位置する等のよ
うに演算する。まず、命令オペランドフイールドおよび
前述のIQ702の出力側A、BおよびCとを検討すれ
ば、第11図に示すように、前述のIQ702出力側A
(R、R、およびXフイールド)はIMI730
のビツト12−15から接続され;IQ702出力側B
(BおよびBフイールド)はIB1 722の出力
ビツト0−3から、かつIM730の出力ビツト0−3
から接続され、かつAGRFS708に位置するマルチ
プレクサによつてシングル4ビツト出力に組合わされ;
かつIQ702出力C(DおよびDフイールド)は
IRI722のビツト4−15から接続される。命令O
PコードフイールドおよびIQ702の出力側Dおよび
Eを検討すれば、第7A図に示すように、IQ702の
出力側D(DFコードフイールド)はIR0 720の
出力ビツト0−7からら接続され、32ビツトのIQ7
02の出力側E(現在実行されつつある命令)がIR0
720の出力ビツト0−15およびIR722の出力
ビート0−15から接続されている。これらIQ702
の出力と各種の命令フオーマツトの前述のフイールドと
を比較した結果、前述の命令フイールドは前述のIQ7
02の出力側に対して選択的に提供しうる。
【0134】AGU124の構造ならびに演算について
説明したので、ATU/C126の構造と動作とについ
て次に以下に説明する。
【0135】C.3.ATU/126(第12図) 前述のように、アドレス変換ユニツト/キヤツシユ(A
TU/C)126はPU104と、システム102のそ
の他のエレメントとの間のデータおよびアドレスパス
(経路)として動作する。特に、CPU122とAGU
124とは相互に、かつOBバス600とVAバス70
0とを介してATU/C126に連結され、ATU/C
126は前記エレメントとSAバス116およびSDバ
ス118との間の連結を形成する。ATU/C126
は、AGU124により提供される仮想アドレスを、シ
ステム102の物理的アドレス空間、例えばMM106
内の対応する物理的アドレスへ変換し、キヤツシユ機構
として動作し、CPU122の演算に先立つてオペラン
ドならびに命令を取出しかつ記憶する。この点に関し
て、かつ以下に説明するように、AGU124とCPU
122とはATU/C126と共に動作し、命令取出
し、命令復号化、オペランド取出しおよび命令実行をオ
ーバラツプさせる。
【0136】第12図に示すように、ATU/C126
はアドレス変換ユニツト(ATU)802とデータキヤ
ツシユ(DC)804とを含み、それらについてはその
順序で説明する。ATU802はVAバス700とSA
バス116との間のアドレス経路を含み、かつ仮想アド
レスを物理的アドレスに変換するキヤツシユ機構を部分
的に含む。DC804はDBバス600とSDバス11
8との間のデータ経路であつて、命令やオペランドを取
出し、かつ記憶するキヤツシユ機構を含む。キヤツシユ
機構が当該技術分野の専門家に周知である限り、ATU
802とDC804との従来のキヤツシユ機構の詳細に
ついては以下詳しく説明しないことに注目すべきであ
る。しかしながらATU802とDC804の本発明に
関連する特徴については詳細に説明する。
【0137】C.3.a.ATU802(第12図) 前述のように、ATU802は命令やオペランドに関す
る仮想アドレスをAGU124から受取り、これらの仮
想アドレスを、システム102の物理的アドレススペー
ス即ちDC804またはMM106における命令やオペ
ランドの対応する物理的アドレスに変換する。仮想アド
レス物理的アドレスへの変換操作についての前述の説明
について簡単に触れてみると、仮想アドレススペースが
情報を含む論理ページに分割され、仮想ページ内の情報
はバイトレベルまでアドレスしうることが示された。シ
ステム102の物理的アドレススペースはページフレー
ムに分割され、各ページフレームは情報の1個の仮想ペ
ージを含み、その中の情報もバイトレベルまでアドレス
可能である。特定のページフレームに位置する情報の特
定の仮想ページは、システム102によつて現在実行さ
れつつある演算に依存しており仮想ページはシステム1
02の物理的アドレススペース、即ちMM乃106と、
仮想メモリ例えば必要に応じてデイスクユニツトとの間
でスワツプされる。
【0138】仮想および物理的アドレスはそれぞれ24
のアドレスビツトから構成される。仮想アドレスはアド
レスされた情報を含む仮想ページを識別する13ビツト
の仮想ページ数フイールドと、仮想ページ内の特定バイ
トの情報の位置を確認する11ビツトのバイトインデツ
クスフイールドとから構成される。対応する物理的アド
レスも同様に、仮想アドレスのページ数フイールドに対
応する13ビツトのページフレーム番号フイールドと、
仮想アドレスのバイトインデツクスフイールドに対応す
る11ビツトのバイトインデツクスフイールドとから構
成されている。仮想ページと、該仮想ページを含むよう
定められた対応する物理的ページとの間で1対1でバイ
トアドレスが対応することに注目すべきである。即ち、
仮想ページと物理的ページフレームとの間に可変関係が
あり、該関係においてページフレームは対応するページ
やページフレームの内部構造に位置しない仮想ページを
保持するようにされている。そのため仮想アドレスの物
理的アドレスへの変換は本質的に仮想ページ番号フイー
ルドを対応するページフレーム番号フイールドへの変換
である。仮想アドレスのバイトインデツクスフイールド
は直接、即ち変換することなく対応する物理的アドレス
のバイトインデツクスフイールドとして用いることがで
きる。
【0139】さらに、プログラムの内部構造は一般的
に、命令のシーケンスおよびデータエレメントのグルー
プが一連のアドレス位置、即ち、順次隣接したアドレス
を占めるものであることに注目すべきである。そのた
め、所定のページ内で多数のアドレス変換が行われ;即
ち仮想アドレスおよび対応する物理的アドレスのバイト
インデツクスフイールドのみが、例えば命令シーケンス
の中の次の命令あるいはデータエレメントの群から次の
データエレメントを選定する上で変更可能である。しか
しながらページフレームフイールド変換に対するページ
エレメントは、ページとページフレームの境界を横切る
際に発生する。
【0140】さて第12図を参照し、かつATU802
の基本的キヤツシユ機構の構造を検討すれば、第12図
に示すように、ATU802は仮想ページ番号に対応す
る物理的ページフレームフイールドをキヤツシングする
アドレス変換記憶装置(ATS)806を含む。ATS
806にはタツダ記憶コンパレータ(TSC)810と
保護機構記憶装置(PHT)812とを付属した変換タ
グ記憶装置(TTS)808が付属している。
【0141】従来のキヤツシユ機構におけるように、T
TS808はATS806にキヤツシユされた物理的ペ
ージフレームフイールドを代表するタグを記憶する。第
8図に示すように、TTS808のアドレス入力側はV
Aバス700から接続され、該バスに出てくる仮想アド
レスのページ数フイールドを受取る。前記仮想ページ番
号はハツシユされ、ハツシユの結果はTTS808への
アドレス入力として用いられる。TTS808が前記ア
ドレス入力に対応するタグを含むとすればそのタグは出
力として提供され、そのためATS806が仮想ページ
番号に対応する、キヤツシユに入力された物理的ページ
フレーム番号を含むことができる。これらのタグはTS
C810により仮想アドレスのページ数フイールドに比
較され、TSC810は特定の仮想アドレスページ数フ
イールドに対応する物理的ページフレームフイールドが
ATS806に記憶されているとすれば対応する出力を
提供する。第12図に示すように、例えばTSC810
は、ATS806でキヤツシユされた対応する物理的ア
ドレスページフレーム番号フイールドを有さない仮想ア
ドレスページ番号フイールドが発生すればいつでも長い
アドレス変換(LAT)出力を提供する。次いで、この
出力は必要な仮想アドレスから物理的アドレスへの変換
を行うマイクロルーチンを開始する。
【0142】PRT812はシステム102の保護機
構、即ち現在実行されているプロセスにより記憶された
データとプロダラムへのアクセスに関する情報に関する
情報を記憶する。第8図に示すように、PRTはそのア
ドレス入力側をVAバス700から接続させており、V
Aバス700に出てくる各仮想アドレスに応答して、前
記アドレスに位置する情報に関する所定の演算が可能か
否かを指示する。アクセスが許容されないとすれば、適
当な保護マイクロルーチンが開始する。
【0143】再びATS806を参照すれば、ATS8
06には仮想アドレスハツシングバツフア(VAH)8
14と仮想アドレスバツフア(VAB)816とが付属
している。前記エレメントはATS806と共に仮想ア
ドレスから物理的アドレスへの変換機構を構成し、以下
説明のように、物理的アドレス出力をVAバ800に出
てくる仮想アドレスに応答して32ビツトのアドレス変
換ローヤル(ATL)バス818、物理的命令アドレス
レジスタ(PIAH)820および物理的アドレスレジ
スタ(PAR)822に供給する。
【0144】VAH814はVAバスアドレス700か
ら仮想アドレスページ番号フイールドあるいは仮想アド
レスを受取る。このアドレシング入力はATS806か
らキヤツシユに入力された物理的ページフレーム番号フ
イールドを読取り、かつ物理的ページフレーム番号フイ
ールドをATS806へ入力即ち書込むための双方に用
いられる。
【0145】VAB816はVAバス700に出てくる
アドレスを受取りかつ記憶するためにVAバス700か
ら接続されたバツフアレジスタである。第1の局面にお
いて、VAB816は物理的ページフレーム番号フイー
ルドをATS806へ入力即ち書込むデータ経路として
用いられ、この目的に対してATS806のデータ入力
側に第1の13ビツトの出力側を接続している。VAB
818もCPU122により直接発生する物理的アドレ
ス用のATU802のアドレス出力経路として用いら
れ、かつ32ビツトの出力側をATL818に接続しC
PU122により発生する物理的アドレスを直接ATL
バス818へ通す。
【0146】さて、仮想アドレスの物理的アドレスへの
変換について検討すれば、前述のように各物理的アドレ
スは物理的ページフレーム番号とバイトインデツクスフ
イールドとから構成されている。これらのフイールドは
それぞれ仮想ページ番号フイールドならびに仮想アドレ
スのバイトインデツクスフイールドとに対応する。また
前述のように、仮想アドレスのバイトインデツクスフイ
ールドは物理的アドレスのバイトインデツクスフイール
ドとして直接用いることができ、一方仮想ページ番号フ
イールドは対応する物理的ページフレーム番号フイール
ドに変換する必要がある。
【0147】VAB816は仮想アドレスから物理的ア
ドレスへの変換におけるバイトインデツクスフイールド
のソース(源)であり、かつこの目的のために、第3の
11ビツトのバイトインデツクスフイールド出力側を有
する。第12図に示し、かつ以下説明するように、VA
B818のバイトインデツクスフイールドの出力側はP
IAR820とPAR822の入力側に接続されてい
る。
【0148】ATS806は前述のように、仮想アドレ
スから物理的アドレスへの変換における物理的ページフ
レーム番号フイールドの源であり、この目的に対して、
ATLバス818に接続された13ビツトのページフレ
ーム番号フイールドを有する。第12図に示し、かつ後
述するように、PIAR820とPAR822とは、A
TLバス818から物理的アドレスのページフレーム番
号フイールドを受取るためにATLバス818から接続
された13ビツトのページフレーム番号フイールド入力
側を有する。
【0149】第12図にするように、ATU802には
ATS806とVAB816からの2個の物理的アドレ
ス出力経路が設けられ、第1の経路はATL818を通
りDBバス600まで、第2の経路はPIAR820と
PAR822を含む物理的アドレスレジスタを通つてお
り、かつ物理的アドレス(PA)バス800が設けられ
ている。まずATL818を検討すれば、ATL818
は32ビツトの双方向性物理的アドレスバツフア(PA
B)824を介してDBバス600に接続されており、
VAB816からの物理的アドレスとATS806から
の物理的アドレスページフレーム番号フイールドとがP
AB824を介してDBバス600に読取ることができ
る。同様に、DBバス600に出てくる、例えばCPU
122により発生した物理的アドレスはATLバス81
8に読取ることができる。
【0150】物理的アドレスレジスタを通りPAバス8
00までの物理的アドレス出力経路を検討すれば、AT
U802には命令およびデータ用の個別の物理的アドレ
スを備えている。即ち、PIAP820は命令用の物理
的アドレスを記憶しかつ提供し、一方PAP822はデ
ータ用の物理的アドレスを記憶し、かつ提供する。以下
詳しく説明するように、個別の命令およびデータアドレ
スレジスタを設けることによつて命令およびオペランド
の取出しを、即ちCPU122の1回における命令およ
びオペランドの双方の取出しを重ねることができる。
【0151】前述のように、物理的アドレスは24ビツ
トとするが、31ビツトに拡張してもよい。物理的アド
レスを拡張したアドレスフイールドはプログラム制御ワ
ードの一部として位置し、かつCPU122から、VA
バス700おょびVAB816を通してATLバス81
8まで読取ることができる。第12図に示すように、物
理的アドレスレジスタはさらに物理的アドレス拡張フイ
ールドを受取りかつ記憶するために入力側がATALバ
ス818から接続された物理的アドレス拡張レジスタ
(PAPX)828を含む。PAFX828の出力側は
以下説明するようにPAバス800に提供される。
【0152】第12図に示すように、再びPIAR82
0およびPAB822を参照すれば、PIAR820お
よびPAR822はそれぞれ、ATLバス818から物
理的なページフレーム番号フイールドを受取るためにA
TLバス818からの第1の13ビツト入力側が設けら
れている。前述のように、これらのページフレーム番号
フイールド源はATS806、あるいはVAB816を
介してCPU122およびVAバス700、ら転送され
た物理的アドレスのいずれかでよい。また、PIAR8
20とPAR822はそれぞれ、VAB816の対応す
る出力側からの第2の、11ビツトバイトインデツクス
フイールド入力側が設けられている。再び前述のよう
に、前記バイトインデツクスフイールド源はAGU12
4からVAB816によつて受取られる仮想アドレスあ
るいはCPU122からVAB816によつて受取られ
る物理的アドレスのいずれかでよい。
【0153】個別ページフレーム番号およびバイトイン
デツクスフイールド源およびPIAR820およびPA
R822用入力側とを設けることによつて、ある状況下
においては、仮想アドレスを物理的アドレスへの変換速
度を速める。前述のように、データシーケンスおよびプ
ロダラム内のデータエレメントの内部構造は所定のペー
ジ内で多くのアドレス変換が行えるようなものとされて
いる。前記アドレスのシーケンス、即ち1個のページ内
のアドレスのシーケンスが発生すると、アドレス変換は
各アドレスに対して新しい物理的ページフレーム番号フ
イールドを発生させる必要はない。即ち、物理的ページ
フレーム番号フイールドはシーケンスにおける各アドレ
スに対して残留し、バイトインデツクスフイールドのみ
が変化する。ページフレーム番号およびバイトインデツ
クスフイールド用にPIAR820およびPAR822
への個別の電源ならびに入力側を設けることによつてそ
の中に含まれるページフレーム番号フイールドが、VA
B816から新しいバイトインデツクスフイールドが装
填されている間一定になるようにできる。所定ページ内
のアドレスのシーケンスに対して仮想アドレスの物理的
アドレスへの変換は、ATU802のキヤツシユ機構が
ページ番号フイールドをページフレーム番号フイールド
へ変換しうる速度ではなく、むしろAGU124が新し
いバイトインデツクスフイールドを提供しうる速度で進
行することができる。そのため、仮想アドレスの物理的
アドレスへの変換速度は1個のページ内のアドレスリフ
アレンスに対して向上する。
【0154】前述のように、ATU802の基本的な物
理的アドレス出力経路は32ビツトの物理的アドレス
(PA)バス800を通る。
【0155】第12図に示すように、PIAR820と
PAR822の物理的アドレス出力側は物理的アドレス
マルチプレクサ(PAM)826を介してPAバス80
0に接続され、そのため命令あるいはオペランドのいず
れをアドレスすべきかによつて物理アドレスの現在の源
として選択しうる。PARX828のアドレス拡張フイ
ールド出力側はPAバス700に直接接続されることに
よつて必要に応じ31ビツトのアドレシングを提供す
る。
【0156】第12図に示すように、PAバス700は
MM106ならびにデータキヤツシユ(DC)804へ
直接読取りおよび書込むためにシステムアドレスドライ
バ(SAD)830を介してSAバス116へ物理的ア
ドレス出力を提供する。書込み命令待ち行列検出装置
(WIQD)832を説明した後DC804について次
に説明する。
【0157】前述のように、命令待ち行列はいずれかの
所定の時に少なくとも2個の命令を記憶することができ
る。そのため、例えば現在の命令の実行から発生する書
込み演算は命令待ち行列に現在位置し実行を待機してい
る、MM106またはDC804における命令のオリジ
ナルコピーをある点において修正することができる。例
えば自己修正モードにおけるように前述のようなことが
発生すれば、命令待ち行列に位置するコピーはもはや有
効ではなく、新しいオリジナルに代える必要がある。
【0158】第12図に示すように、WIQD832は
その第1のアドレス入力側をPIAR820から接続さ
せ、現在取出されつつある命令のアドレスを表わし、第
2のアドレス入力側をPAバス700から接続させ、例
えば、現在書込まれつつあるアドレスを表わす。WIQ
D832はPIAR832からの第1の入力から、現在
待ち行列に位置する命令のアドレス範囲を検出し、現在
の書込みアドレスを命令待ち行列のアドレス範囲と比較
することができる。命令待ち行列に現在位置するアドレ
ス範囲内で書込み操作が起きるとすれば、WIQD83
2がマイクロコードルーチンを開始させ命令待ち行列の
現在の中味を消去し、MM106またはDC804から
の命令待ち行列を再充填し、そのため待ち行列における
修正ずみの命令を命令の新しいオリジナルに取替える。
そのためWIQD832は、命令待ち行列が実行されつ
つあるコードの現在の有効なバージョンを常に含むよう
に保証する。
【0159】ATU/C126のATU802部分の構
造とオペレーシヨンとについて説明したので、DC80
4について次に説明する。
【0160】C.3.b.データキヤツシユ(DC)8
04(第12図) 前述のように、DC804はDBバス600とSDバス
118との間のデータ経路であつて、CPU122の演
算に先行して命令やオペランドを取出しかつ記憶するキ
ヤツシユ機構を含む。ここでも、キヤツシユ機構が当該
技術分野の専門家に対して周知のものである限り、DC
804の従来のキヤツシユ機構の特徴については以下に
詳細には説明しない。しかしながら、本発明に関連する
DC804の特徴については詳細に説明することとす
る。
【0161】第12図に示すように、DC804は、そ
のデータキヤツシユメモリ命令を構成するデータ記憶装
置(DS)834を含む。以下に説明するように、DS
834はSDバス118からDBバス600までの入力
経路を含み、即ちPU104に提供される全てのデータ
および命令がDS834からPU104の残りエレメン
トに提供される。また以下に説明するように、DBバス
600からSDバス118までの出力経路も同様にDS
834に関連したロジツクとバスエレメントとから構成
かれ、DS834はPU104からMM106へのデー
タの書込みに関係する。
【0162】前述のように、SDバス118は8バイ
ト、即ち64ビツトあるいは1個のダブルワードの幅を
有している。DC804とMM106との間の全ての情
報の転送はダブルワードで行われ、情報はダブルワード
でDS834に記憶され、DS834へ書込まれかつ読
取られる。情報は一時に1個のダブルワードの割合でD
S834から読取られるが、DS834は可変ブロツク
サイズのキヤツシユであり、情報は1個以上のダブルワ
ードを含むブロックの形でDS834へ書込むことがで
きる。
【0163】本実施例においては、DS834書込みブ
ロツクサイズはマイクロコードにより選択可能であつ
て、DS834へのブロツク書込みを実行する目的によ
つて1個、2個あるいは4個のダブルワードを含むこと
ができる。例えば、キヤツシユ取出しミスの場合、4個
のダブルワードのブロツク書込みが実行され、そのため
32バイトのデータあるいは命令をDS834へ転送す
る。プログラムの前述のロジツク構造、即ち一連のアド
レスにおいて前記シーケンスの命令および関連データエ
レメントが全体的に位置するため、4個のダブルワード
をブロツク転送することによつて、別のブロツク書込み
が必要とされる前に次の32バイトのキヤツシユヒツト
(cache hit)を提供することが多い。
【0164】DS834への情報の書込みおよびDS8
34からの情報の取出しはPAバス800を通してAT
U802から提供される物理的アドレスによつて制御さ
れる。第12図に示すように、DS834のアドレス入
力側はデータ記憶アドレスバツフア(DSAB)836
の出力側から接続され、DSAB836の方はPAバス
800から接続されている。
【0165】前述のように、DS834は部分的に、S
Dバス118からDBバス600への入力経路を構成
し、DS834キヤツシユ機構と関連したエレメントが
DBバス600からSDバス118での出力経路を構成
する。入力経路をまず検討すれば、第12図に示すよう
に、DC804は双方向性のシステムデータバストラン
シーバ(SDX)840を介してSDバス118から接
続されている。DCバス838の方はDS834のデー
タ入力側に接続され、そのためSDX840と共に、S
Dバス118からDS834へ情報が書込まれる経路を
構成する。以下説明するように、DCバス838および
SDX840もDBバス600からSDバス118まで
の出力経路の一部を構成する。
【0166】DS834の64ビツト(ダブルワード)
のデータ出力側は64ビツトのデータ記憶ラツチ(DS
L)842に接続され、DSL842の方は読出し伝送
再指令バツフア(RTRB)844に64ビツトの出力
を提供する。前述のように、情報はダブルワードの形で
DS834から読取られ、一方DBバス600は幅が単
一ワード(32ビツト)である。さらに、ほとんどのC
PU122の演算はダブルワード以下のデータエレメン
ト、即ち、バイト、ハーフワード(ダブルバイト)およ
びワードに対して実施され、CPU122によつて演算
するデータエレメントをダブルワードの境界に位置させ
なくてもよい。RTRB842は基本的に右/左のシフ
タで、かつDS834から読出されたダブルワードに対
してバイトシフトおよびワード当りの選択操作を実行す
るマルチプレクサであつて、そのためRTRB842は
DS834から読取られるダブルワードからバイト、ハ
ーフワードおよびワードが抽出され、DBバス600に
提供すべき単一の32ビツトワードにフオーマツト化で
きるようにする。
【0167】DS834を通る経路の他に、第12図に
示すように、DS834の出力側へ、即ちDSL842
の入力側へDCバス838からキヤツシユバイパス経路
が提供される。この経路はキヤツシユミスから発生する
DS834の装填の間必要とされる情報を提供するに要
する時間を減少するために使用できる。即ち、キヤツシ
ユミスを発生させるデータ即ち命令に対する要求がDS
834におけるブロツクの他の中味に加えて、必要とさ
れる情報をキヤツシユに入力するブロツクロードオペレ
ーシヨンを開始させる。ブロックロードが完了するのを
待機し、次いでDS834から必要とされる情報を読取
るのでなく、情報がDS834に書込まれると同時にバ
イパス経路を通して必要な情報をDSL842に提供す
ることができる。
【0168】第12図に示すように、RTRB842の
単一ワード(32ビツト)の出力側は双方向性の読取り
伝送(RT)バス846に接続されている。RTバス8
46の方は双方向性のDBバストランシーバ(DBX)
848を介してDBバス600に接続され、そのためD
S834から読取られた情報がDBバス600からCP
U122およびAGU124へ転送できるようにする。
次に下記するように、RTバス846およびDBX84
8もDBバス600からSDバス118までの出力経路
の一部を構成する。
【0169】さて、DBバス600からSDバス118
までの出力経路を検討する。まず物理的経路について説
明し、次いでMM106への情報の書込みに関して前記
経路とDS834の動作について説明する。
【0170】第12図に示し、かつ丁度前述したよう
に、DBバス600からSDバス118までの経路の第
1の部分は双方向性のバストランシーバDBX848と
双方向性のRTバス846とを含む。即ち、情報はDB
600から、DBX848を介してRTバス846へ、
32ビツトの単一のワードの形で読取ることができる。
【0171】第12図に示すように、単一ワード幅のR
Tバス846は書込み組合せ装置(WRTMRG)85
0の第1の入力側に接続され、以下説明するように、D
SL842のダブルワード幅の出力側がWRTMRG8
50の第2の入力側に接続されている。前述のように、
DCバス838がSDX840を介してSDバス118
に接続され、そのためWRTMRG850の出力側に出
てくるダブルワードがSDバス118、したがつてMM
106へ書込むことができる。
【0172】さて、MM106への情報の書込みに関し
てDS834と関連の論理の演算について検討する。M
M106への書込みを実行するDC804のオペレーシ
ヨンは、一般的な問題を以下説明した後での方がより理
解できる。
【0173】前述のように、DC804とMM106と
の間の情報の全ての転送はダブルワードであつて、情報
はダブルワードの形でMM106に記憶される。そのた
め、MM106に書込むべきバイト、ハーフワードある
いはワードはMM106へダブルワードで転送する必要
があり、かつ当該アドレス位置を含む記憶されたダブル
ワード内のアドレス位置へ書込む必要がある。
【0174】従来のシステムにおいては、前記演算は通
常システムメモリにおいて読取り−修正−書込み演算に
よつて実行される。即ち、書込むべき情報はダブルワー
ドにフオーマツト化され、ダブルワードの未使用ビツト
は例えば零で充填し、零を充填したダブルワードがメモ
リに転送される。メモリにおいて、情報を書込むべきア
ドレス位置を含むダブルワードがメモリから読取られ、
零を充填したダブルワードからの情報ビツトを含むよう
修正され、メモリへ書戻される。
【0175】システムメモリへの情報の書込みに関する
別の問題はシステムの演算に先立つて命令やデータを記
憶するキヤツシユを含むいずれのシステムにおいても発
生する。即ち、キヤツシユはMM106に記憶された情
報の中のあるもののコピーを含み、MM106への書込
みによつてその中に位置する情報のオリジナルバージヨ
ンを修正させ、そのためDS834における情報のキヤ
ツシユ化されたコピーはもはやMM106における新規
情報分には対応しなくなる。従来のシステムにおいて
は、この問題はメモリ内の情報を前述のように読取り−
修正−書込み操作によつて更新された後メモリからの修
正された情報をキヤツシユに入力することにより対処す
ることが多い。
【0176】CPU122からMM106への情報の書
込みについての一般的な問題について説明したので、前
述の書込みを実行するDC804のオペレーシヨンにつ
いて以下説明する。
【0177】前述のように、プログラムの内部論理構造
は、命令ならびにデータエレメントの群のシーケンスが
一連のアドレス位置、即ち順次の隣接する位置を極めて
頻繁に占処するようなものである。また、前述のょう
に、データあるいは命令を問わず、MM106からPU
104へ読取られる全ての情報は8から32バイト、即
ち1個から4個のダブルワードのブロツクの形でDS8
34においてキヤツシユされる。そのため、いずれかの
所定の書込み操作に対して書込みアドレスに位置する情
報エレメントがキヤツシユに入力され、そのためDS8
34で使用可能となる。
【0178】書込みアドレスに位置するエレメントがD
S834でキヤツシユに入力される、システム102の
CPU122からMM106への書込みにおいて、書込
み操作は、MM106によつて実行される読取り−修正
−書込み操作に続いてキヤツシユを再ロードすることに
より実行されるのではなく、DC804において書込み
−組合せ操作により実行される。書込み−組合せ操作に
おいては、書込みアドレスはDS834から、DSL8
42と、WRTMRG850の第2の、ダブルワード幅
の入力側でキヤツシユに入力された情報エレメントを読
取るために使用される。同時に、書込むべき清報を含む
ワードはCPU122およびDBバス600から、WR
TMRG850の第1の、単一ワード幅の入力側へ提供
される。この点に関して、前述のように、CPU122
の機能にはその中で発生した情報を、WRTMRGに8
50への書込み入力として使用すべき、単一の、32ビ
ツトのワードへフオーマツト化する機能力を含む。
【0179】WRTMRG850は基本的には、MM1
06へ書戻されるべき情報を、書込むべき情報に対応す
る、DS834から読取られたダブルワードの部分に代
替させるマルチプレクサである。次いで、WRTMRG
850は出力として、新しいダブルワードを提供し、そ
の新しいダブルワードはその中の適当なバイト位置にお
いて、メモリに書込むべき情報と、DS834から読取
られたダブルワードのオリジナルの未修正の部分とを含
む。次いで、前記の新しいダブルワードはDS834へ
書込まれ、その中に位置するオリジナルのダブルワード
を重複書込みし、かつ代替することによつて更新された
情報がDS834から直ちに得られるようになる。同時
に、新しいダブルワードはSDX840およびSDバス
118を介してMM106へ書込まれ、そこで中に位置
するオリジナルのダブルワードに重複して書込まれ、M
M106の中味を更新する。
【0180】このように、DS834はメモリ修正速度
およびキヤツシユ再充填速度ではなく、キヤツシユの動
作速度で更新され、MM106はメモリの読取り−修正
−書込み速度でなくメモリ書込み速度で更新される。こ
のように、キヤツシユをベースにした書込み、組合せ操
作はメモリへの書込み実行においてキヤツシユおよびシ
ステムメモリの演算速度を著しく向上させる。
【0181】メモリへの書込みの実施におけるDC80
4の演算についての別の例としては、メモリからメモリ
へのオペレーシヨンならびにストリング移動操作であ
る。メモリからメモリへの移動において、情報は第1
の、元々のメモリ位置から第2の行き先メモリ位置へ書
込まれる。ストリング移動は基本的にはメモリからメモ
リへの移動のシーケンスから構成され、データエレメン
トはアドレスの第1のシーケンスから順に読取られ、同
じシーケンスでアドレスの第2の対応するシーケンスに
書込まれる。まずメモリからメモリへの移動操作につい
て検討する。該操作の各々における最初のステツプは読
取りであつて、そのため移動すべき情報はDS834に
おいてキヤツシユに入力される。情報はブロツクベース
でキヤツシユに入力されるので、移動操作の行き先アド
レスもDS834においてキヤツシユされる。次いで、
DS834の元々のアドレスからDSL842およびR
TRB844を介して、WRTMRG850の第1の、
単一ワード幅の入力側まで移動すべき情報を読取ること
により前記移動が実行される。次いで行き先アドレスに
位置する情報はDS834から読取られ、WRTMRG
850の第2の、ダブルワード幅の入力側へ提供され、
元々の情報は行き先のダブルワードと組合されて新しい
行き先ダブルワードを発生する。前述のように、次いで
新しい行き先のダブルワードはDS834とMM106
とへ同時に書込まれ、その中に位置するオリジナルの行
き先ダブルワードと重複書込まれる。
【0182】ストリング移動も同様に行われ、即ち、前
述のように、ストリングが元々のアドレス位置の第1の
シーケンスから行き先アドレス位置の第2のシーケンス
まで移動してしまうまでメモリからメモリへの移動のシ
ーケンスとして実行される。前述のように、VAR71
4はAGU124に提供され、元々のおよび行き先アド
レスのシーケンスがストリング移動操作において発生し
うる速度を増加させることに注目すべきである。さら
に、特にストリンダ移動において、前述の移動は単一の
論理ページのアドレススペース、即ち単一の物理的ペー
ジフレーム内で発生することがほとんであることに注目
すべきである。そのため、元々のおよび行き先アドレス
の仮想アドレスを、元々および行き先アドレスの物理的
アドレスに変換する上で全てのアドレスを変換する必要
はない。即ち、前述のように、所足ページ内での仮想ア
ドレスから物理的アドレスの変換のシーケンスは各新ア
ドレスに対して新しいページフレーム番号を発生させる
必要はなく、単に新しいバイトインデツクスフイールド
を仮想アドレスから物理的アドレスへ変換するだけであ
る。したがつて、ストリング移動において実際の情報の
動きと、アドレス発生および変換のシーケンスとは最大
キヤツシユ速度において行いうる。
【0183】最後に、システム102の本実施例におい
ては、先の演算あるいはMM106への書込みから発生
する演算の一部のいずれかとして行き先アドレス情報が
DS834においてキヤツシユに入力されないとすれ
ば、MM106への書込みに対して書込み−組合せ操作
を使用しないことを注目すべきである。DS834にお
いて行き先アドレス情報がキヤツシユに入力されないよ
うな場合、システム102は前述した従来の、メモリ読
取り−修正−書込み操作を用いる。しかしながら、代替
の実施例においては、DS834において行き先アドレ
ス情報をキヤツシユに入力し、かつたとえ、特定の書込
み操作に対して特にキヤツシユに入力する必要があると
しても、MM106への全ての書込みに対して書込み−
組合せ操作を実行することが有利のこともある。入力お
よび出力経路および書込み−組合せ操作についてのDC
804のオペレーシヨンを説明したので、DS834に
関連するキヤツシユ機構のあるエレメントの構造とオペ
レーシヨンとについて次に以下説明する。
【0184】ほとんどの従来のキヤツシユ機構における
ように、DC804はDS834と関連して、DS83
4においてキヤツシユに入力された情報に関するパリテ
イ情報を記憶するメモリと、タグと、DS834入力に
関するタグ有効情報とを記憶するメモリとを含む。パリ
テイおよびタグ有効ビツトメモリとは第12図に示して
おらず、かつ当該技術分野の専門家には周知なので以下
詳しくは説明しない。しかしながら、タグ記憶メモリの
オペレーシヨンについてはDC804のオペレーシヨン
に係るので以下説明する。第12図に示すように、DS
834には、DS834でキヤッシユに入力されたダブ
ルワードの情報エレメントと関連するタダを記憶し、か
つ提供するデータタグ記憶装置(DTS)852が関連
している。DTS852の完全な構造体は第12図に示
されておらず、類似のタグ記憶装置(TTS808)の
構造と動作については前述したので、DTS852の演
算については詳細に説明しない。
【0185】前述のように、キヤツシユの中味が常にシ
ステムメモリの中味と確実に対応するようにする。上
で、キヤツシユ機構を組込んだいずれのシステムにおい
ても問題が介在する。PU104から発生するMM10
6の書込み操作に対してMM106およびDS834の
中味を対応させることに関するDC804のオペレーシ
ヨンについてはすでに前述した。しかしながら例えばP
U104から発生しない、SBI110からの書込みの
ようにMM106への書込みに関して別の問題がある。
【0186】第12図に示すように、DTS852のア
ドレス入力側はタグ記憶アドレスマルチプレクサ(TS
AM)854から接続されており、TSAM854の方
はDS834の通常のタダチエツクおよびアドレシング
に対してPAバス800から第1の入力側が接続されて
いる。また、TSAM854の第2の入力側が外部メモ
リアドレスラツチ(XMAL)856を介してSAバス
116から接続されており、PD104に対しては外部
の源から提供された全てのMM106の書込みアドレス
を受取り、即ちPU104から発生しないMM106の
全ての書込み操作を検出する。したがつて、外部からの
MM106書込み操作に対して、DTS852の中味が
アドレスされ、かつ検査され、DTS852が対応する
タグを含むか、したがつて、DS834が外部書込アド
レスに対応する入口を含むかを検出する。
【0187】DTS852からのタグとTSAM854
の出力とがタグ記憶パイプライン(TSPL)858の
入力側に提供され、該TSPL858はハツシユした外
部からの書込みアドレスと対応するDTS852とがあ
ればそれとを受取りかつ記憶する。TSPL858はP
U104および後述のMM106とパイプラインされた
演算の結果パイプラインされたレジスタとして提供され
る。ハツシユされた外部書込みアドレスと対応する。D
TS858から読取つたタグとは次いでタグ記憶コンパ
レータ(TSC)860に提供され、ハツシユした外部
書込みアドレスとタグとを比較して、DTS834が、
MM106への外部書込み操作の行き先アドレスに対応
する入口を含むか否か検出する。その通りであれば、マ
イクロルーチンが開始して再ロードし、DTS834の
対応する中味をMM106の修正された中味と対応する
よう更新する。
【0188】ATU/C126即ちATU802とDC
804の構造とオペレーシヨンについて説明したので、
それぞれAGU124およびCP602への命令とオペ
ランドのインタリーブされ、かつオーバラツプした取出
しを実行するCP602、AGU124,ATU802
およびDC804のオペレーシヨンを次に説明する。
【0189】C.3.c.命令およびオペランドの取出
し(第13図) 前述のように、DC804はPU104のオペレーシヨ
ンを予定してMM106から命令およびオペランドを取
出し、かつ記憶し、これら命令およびオペランドを必要
に応じてそれぞれAGU124とCPU122とへ供給
するよう操作する。DC804からAGU124、即ち
IQ702への命令の読取りはCP602とATU80
2のPIAR820の操作によつて供給される次の命令
アドレスに応答して実行される。
【0190】PU104および特にCPU122の演算
速度は部分的には命令およびオペランドをPC804か
らCPU122とAGU124とから転送しうる速度に
よつて決定され、CPU122の演算結果は次にMM1
06へ転送するようDC804へ転送される。この理由
により、CPU122、AGU124およびATU/C
126は、オーバラップされかつインダリーブされた命
令/オペランド読取り/書込みサイクルにおいて相互に
協働するよう構成されており、そのためPC804とC
P122との間で命令およびオペランドが効率的に連続
して流れる。
【0191】前記読取り/書込みサイクルを実行するP
U104、即ちCP122、AGU124、PAR82
2およびPIAR820を含むATU802およびDC
804の個々のエレメントのオペレーシヨンについて上
述してきた。DEバス600を介して命令およびオペラ
ンドの読取りおよび書込みをオーバラツプして行う前記
エレメントの協働のオペレーシヨンについて以下説明す
る。
【0192】第13図を参照すれば、AGU124およ
びCPU122への命令およびオペランドの重複取出し
ならびにCPU133からDC804へのオペランドの
書込みを示すタイミング線図が示されている。第13図
は、イベント、即ちプログラム実行中の命令おびよオペ
ランドの取出しおよびその結果の書戻しの連続したシー
ケンスが入るウインドウを示す。第13図に出てくるイ
ベントのシーケンスはプログラムの実行の間PU104
のエレメントによる命令とオペランドの取出しおよび書
込みにおいて発生しうる典型的なオペレーシヨンを示す
よう選定したものである。
【0193】以下の説明は各CPU122サイクルにお
ける「命令」の取出しに関するものであることを注目す
べきである。前述のように、DBバス600の幅は32
ビツトであり、そのため32ビツト即ち1ワードが各演
算においてDBバス600を介して取出される。しかし
ながら所定の命令の長さは16、32、48または64
ビツトでよい。そのため以下の説明において「命令」の
取出しは実際の命令の取出しでなく、1ワードとして3
2の命令ビツトの取出したものを参照するものとする。
即ち、取出された「命令」を構成する32の命令ビツト
は1個の命令、2個の命令、命令の一部あるいはそれら
の組合せを構成することができる。
【0194】第13図の最上部の線を参照すれば、そこ
から全てのPU104の動作のタイミングが得られるシ
ステムクロツク(SYSCLK)が示されている。シス
テム102の本実施例において、SYSCLKは6ナノ
秒(ns)の時間を有する。
【0195】一連のタイママーク、tからt20まで
がSYSCLKの上方に示され、各タイムマークはSY
SCLK時間の開始エツジ、即ち立上りエツジと一致し
て現われる。これらのタイムマークは以下の説明を通じ
て参照するタイムリフアレンススケールを提供する。こ
の点に関して、以下の説明はtからt20のウインド
ウ内で発生するイベントに関し、かつtの前で発生し
からt20のウインドウへあるいはウインドウの後
でオーバラツプするイベントは説明の都合上触れないこ
とに注意すべきである。しかしながら、tからt20
のウインドウで示し、かつ説明するイベントについては
連続したイベントのシーケンスの一部を示すものである
ことを想起すべきである。
【0196】第13図の第2の線はCPUクロツク(C
PUC)を示し、該クロツクはCPU122の演算によ
り発生し、基本的にCPU122の演算の実行状態を示
す。システム102の本実施例においては、CPUCサ
イクルは1回の演算、即ち1個の命令を実行するに要す
る時間である。第13図に示すように、命令実行の開始
はCPUCの立上りエツジにて指示され、CPUC時間
の終り、即ち次のCPUC時間の始まりは次の命令の実
行の開始を示すCPUCの次の立上りエツジにて指示さ
れる。第13図に示すように、CPUの基本的時間、即
ち1個の命令を実行するに要する時間は120nsであ
る。しかしながら、CPU時間は、例えばマイクロコー
ドの分岐の結果ある種の演算で必要に応じて、あるいは
DC804がMM106から要求されたオペランドある
いは命令を取出す必要がある場合SYSCLK時間にお
いて60ns増分させて延長することができる。
【0197】第13図の次の3本の線はそれぞれCPU
アドレス(CPUA)、CPUデータ(CPUA)およ
びCPUロード(CFUL)と名付ける。これらの線は
それぞれPAR822からDC804へのオペランドの
読取りあるいは書込みアドレスの提供、オペランドの読
取り、または書込みアドレスに応答してDBバス600
へのオペランドの出現、および読取り操作においてはC
PU122へのオペランドのロードあるいは書込み操作
においてはDC804へのオペランドのロードを示す。
【0198】最後の4本の線は部分的には、CPUの読
取りおよび書込み操作を示す3本の線に対応し、DBバ
ス600を通してDC804からの命令の取出し、およ
び前記命令のIL704とIQ702へのロードを表わ
す。IQアドレス(IQA)と名付けた線はPIAR8
20からDC804への命令アドレスの提供を示し、I
Qデータ(IQD)と名付けた線はDC804からDB
バス600とのアドレスされた命令の出現を示す。IL
ラツチ(ILL)と名付けた線はDBバス600からI
L704への命令のラツチングを示し、IQロード(I
QL)と名付けた線はIL704からIQ702への命
令のロードを示す。
【0199】説明の便宜上、第13図に示すよう選択し
たイベントのシーケンスは、DC804からCPU12
2へのオペランドの2回の読取り、CPU122からD
C804へのオペランドの書込み、DC804から、M
M106からDC804の充填を要するCPU122へ
のオペランド読取り、および最後にオペランドの読取
り、書込みのいずれも必要としない2回のCPU122
の演算の順である。以下に説明するように、CPUのサ
イクル毎に命令がIQ702へ取出され、オペランドの
読取り、書込みおよび命令の取出しをオーバラツプかつ
インタリーブすることによつて、CPUのサイクル毎に
命令の取出しおよびオペランドの読取りまたは書込みを
実行することができる。
【0200】第13図を参照すれば、tにおいてはオ
ペランドの読取りはペンデイングであり、かつCPUA
が指示するように、tで始まるCPUCの時間の開始
即ち立上りエツジにおいてPAR822からオペランド
アドレスがPAバス800に位置付けされる。
【0201】60ns後、即ちtにおいて、このCP
UCサイルに対する命令の取出しは、IQAで指示する
ように、PIAR822からPAバス800に命令アド
レスを位置させることにより開始される。命令アドレス
はtにおいてCPUCの立下りエツジにおいて発生す
るものとして示されているが、このイベントはCPUC
の立下りエツジによつて起動することはないことに注目
すべきである。即ち、所定のCPUCサイクルにおいて
オペランドの読取りあるいは書込みが行われつつある
際、オペランドの読取りあるいは書込みアドレスは常に
CPUCの立上りエツジにおいて発生し、命令アドレス
は常に60ns後、その時CPUCが立下りエツジを有
しているか否かには関係なく次のSYSCLKにおいて
常に発生する。
【0202】またtにおいて、かつCPUDが示すよ
うに、DC804は要求されたオペランドをDBバス6
00に位置させることによりtで提供されるオペラン
ド読取りアドレスに応答する。DC804へアドレスの
提供と、DC804からの対応する出力の発生との間で
の60ナノ秒(ns)、即ち1回のSYSCLK時間
は、要求されたオペランド即ち命令がキヤツシユに入力
される時のDC804の応答時間を示す。即ち、DC8
04は要求されたオペランドあるいは命令がDC804
においてキヤツシユに入力されるとすればアドレスを受
取つた後次のSYSCLKにおいてオペランドあるいは
命令アドレスに常に応答する。
【0203】tにおいて、次のCPUCサイクルの開
始と、次のCPU122の演算の実行の開始を示すCP
UCの別の立上りエツジが発生する。この時点で、次の
オペランドの読取り操作に対するオペランドの読取りア
ドレスが、CPUAで示すようにDC804へPAR8
20から提供され、前のオペランドの読取りアドレスの
結果CBバス600において出現したオペランドはCP
ULで示すようにCPU122へラツチされる。
【0204】またtにおいて、かつCPUDで示すよ
うに、tにおいて提供された命令アドレスの結果とし
てDC804から読取られた命令はDBバス600に現
われる。
【0205】tにおいて、CPUDで示すように、t
で提供されるオペランドの読取りアドレスにより要求
されるオペランドはDBバス600に現われる。t
おいて、IQAで示すように、第2回のCPUCサイク
ルでの命令の取出しはPIAR822からDC804へ
次の命令アドレスを提供することにより開始される。こ
の命令アドレスはtにおいて前記CPUCサイクルの
開始後60nsで現われる。
【0206】またtにおいて、かつILLで示すよう
に、tで提供された命令アドレスに応答してDBバス
600に現われた命令はIL704にラツチされる。D
Bバス600からIL704への命令のラツチングは対
応する命令アドレスがDC804に提供されたCPUC
サイクルの後次のCPUCサイクルで発生するCPUC
の立下りエツジによつて起動する。この例においては命
令がアドレスされた後CPUCサイクルにおけるCPU
Cの立上りエツジはtで発生した。
【0207】tにおいて、再び次のCPUCサイクル
の開始と、次のCPU122の演算を示すCPUCの立
上りエツジが再び発生する。この時点で、オペランドの
書込み操作用のオペランド書込みアドレスがCPUAで
示すように、PAR820からDC804へ提供され、
前のオペランドの読取りアドレスの結果DBバス600
に現われたオペランドはCPULで示すようにCPU1
22へラツチされる。
【0208】またtにおいて、かつCPUDで示すよ
うに、tで提供された命令アドレスの結果DC804
から読取られる命令はDBバス600で現われる。
【0209】tにおいて、かつIQLで示されるよう
に、tにおけるCPUCの立下りエツジによつてIL
704へラツチされた命令はIQ702へロードされ
る。
【0210】IL704からIQ702への命令のロー
ドはCPUの上下りエツジにより実行される、即ちCP
UCの立下りエツジでIL704へラツチされたいずれ
かの命令はCPUCの次に発生する立上りエツジにおい
てIQ702へロードしうることに注目すべきである。
この場合、CPUCの次の立上りエツジはtで発生ず
みである。
【0211】ここで、命令アドレスに応答してDBバス
600に現われる命令は、CPUCの次の立下りエツジ
においてIL704へ常にラツチされることに注目すべ
きである。しかしながら、命令はIQ702に必ずしも
ロードされるとは限らない;即ち、もしIQ702が一
杯であればIQ702はIL704から命令を受入れな
いからである。
【0212】CPUCサイクル毎の命令の取出しとラツ
チングならびにIQ704が一杯の場合のIQ704へ
の命令の非ロードとの間の矛盾は2つの理由で排除され
る。最初の理由は通常の演算において命令は各CPUサ
イクルで実行され、そのためIQ702は各CPUサイ
クルの終りにおいて新しい命令を受取る状態となる。即
ち、命令はそれらが実行されるにつれてIQ702の待
ち行列を移動し、そのためIL704から新しい命令を
受取るスペースが、先に行列化された命令が動く際各C
PUサイクルの終りにおいて待ち行列内で利用できるよ
うになる。
【0213】第2の理由は、PIAR822に位置する
命令アドレスは、先の命令が完了したときのみ新しい命
令を表示するよう変化することである。したがつて、命
令からの完了に1回以上のCPUCサイクルを要するい
ずれの場合においても、命令の完成の発生する各CPU
Cサイクルにおいて同じ命令アドレスがDC804に供
給される。その結果、命令を完了させるに要する各CP
UCサイクルにおいて同じ命令がDC804から読取ら
れ、かつIL704へラツチされる。したがつて、IL
704は命令が完了し、IQ702がIL704から新
しい命令を受取る状態となるまで、各コピーをその前の
コピーの上に書込ませて単に同じ命令のコピーを繰返し
受取る。
【0214】第13図に戻れば、tにおいて、t
提供されたオペランドの書込みアドレスに応答してDC
804に書込まれるべきオペランドは、CPUDの状態
が示すようにDBバス600に位置され、かつ取出すべ
き次の命令のアドレスはIQAの状態が示すように、D
C804に提供される。
【0215】またこの時点で、tで提供された命令ア
ドレスに応答してtにおいてDBバス600で現われ
る命令は、tで発生するCPUCの立下りエツジによ
りIL704へラツチされる。
【0216】tにおいて、次のCPUCサイクルの開
始と、次のCPU122の演算の実行の開始を示すCP
UCの立上りエツジが再び現われる。この時、次のオペ
ランドの読取り操作用のオペランド読取つアドレスがC
PUAで示すようにPAR820からDC804へ提供
される。前述のように、この読取り操作は本実施例にお
いては、要求されたオペランドがDC804でキヤツシ
ユに入力されず、MM106から取出す必要のある場合
オペランドと命令の取出し操作を示すために選んだもの
である。
【0217】またこの時点で、tで提供されるオペラ
ンドの書込みアドレスにより開始される書込み操作にお
いてCPU122によりDBバス600に位置付けされ
たオペランドは、CPULが示すように、CPUCの立
上りエツジによりDC804へラツチされる。
【0218】またtにおいて、tにおいて供給され
た命令アドレスの結果、DC804から読取られた命令
はIQDで示すようにDBバス600に現われ、IL7
04へラツチされた命令はIQLにより示されるよう
に、CPUCの立上りエツジによりIQ704へロード
される。
【0219】tにおいて、tで提供された命令アド
レスによつてtでDBバス600に現われた命令はC
PUCの立下りエツジによりIL704へラツチされ
る。
【0220】前述のように、tで開始されたオペラン
ド取出し操作はDC804がMM106から要求された
オペランドを取出す必要のある取出し操作を示すために
選択した。アドレスされたオペランドをMM106から
読取るに要する時間と、オペランドがDC804の出力
側に現われるための時間とは、オペランドアドレスがD
C804へ供給されるtと、CPUDが示すようにt
10においてDBバス600にオペランドが現われると
きとの間の遅れとして本図において示されている。
【0221】第13図、特にCPUCにより示されるよ
うに、CPU122の演算はこの時間有効に停止され、
即ち、tにおいてCPUCの立上りエツジで開始した
CPUCサイクルはt11まで延長される。t11にお
いて、次のCPU122はCPUCの立下りエツジで示
すように開始し、オペランドはCPUCの立下りエツジ
によりCPU122へラツチされる。tでアドレスさ
れ、CPUCの立下りエツジによりtでIL704へ
ラツチされた命令も、CPUCの立上りエツジによりt
11においてIQ702へロードされる。
【0222】要求されたオペランドがDC804でキヤ
ツシユに入力されない場合を前記イベントのシーケンス
は示したが、このイベントは命令をMM106から取出
す必要のある場合同様のシーケンスを辿ることに注目す
べきである。即ち、オペランド/命令の取出しシーケン
スは、DBバス600に命令が現われるまで停止され、
次いで前記時点で再開する。
【0223】前述のように、本実施例においては、オペ
ランドが何ら読取られたり書込まれないCPU122の
サイクルにおける命令の取出しを示すよう次の2回のC
PU122サイクルを選別した。これら2回のCPUサ
イクルはそれぞれt11およびt13で開始し、CPU
Aが示すように、CPUCの前記立上りエツジにおいて
はDC804にオペランドアドレスは何ら供給されな
い。
【0224】前記2回のCPUサイクルの開始時におい
てはオペランドの読取りあるいは書込みは何らペンデイ
ングではないので、命令アドレスはCPUCの立上りエ
ツジの後60nsで発生するのではなくt11およびt
13で発生する前記CPUCの立上りエツジにおいてD
C804に供給される。アドレスがDC804に供給さ
れた後60nsで、即ちIQDが示すようにt12とt
14とにおいてDBバス600で対応する命令が現われ
る。
【0225】前記命令はCPUCの次に発生する立下り
エツジにおいて、即ちILLが示すようにt12とt
14とにおいてそれぞれIL704にラツチされ、CP
UCの次に発生する立下りエツジにおいて、即ちIQL
が示すようにt13とt15においてIQ702にロー
ドされる。
【0226】本実施例に対して選定したオペレーシヨン
の典型的なシーケンスはt15で完了し、かつ第13図
で示すように、次のオペレーシヨンが、各CPUサイク
ルの間にオペランドの読取りあるいは書込み、および命
令の取出しが行われるオペレーシヨンのあるシーケンス
を再開する。
【0227】取出し/書込み機構についての前述のオペ
レーシヨンを要約すると、この機構はオーバラツプしか
つインタリーブした形で操作してDC804から命令を
取出し、かつCPU122とDC804の間でオペラン
ドの読取りおよび書込みを行う。CPUサイクルが命令
の実行により規定され、かつCPUクロツク(CPU
C)の一連のエツジによつて描かれるいずれかのCPU
サイクルにおいては、命令は取出され、かつオペランド
はDC804から読取られるか、あるいは書込むことが
できる。
【0228】各CPUサイクルの開始はCPUCの第1
の、即ち立上りエツジによつてマークされ、その後発生
するイベントのシーケンスは、オペランドの読取りある
いは書込みがペンデインダか否かによつて変る。もしオ
ペランドの読取りあるいは書込みがペンデイングであれ
ば、CPUCの最初のエツジ、即ちCPUサイクルを開
始するCPUCエツジにおいてDC804に供給され、
命令アドレスは、CPUの最初のエツジの後60ns、
即ちシステムクロツク(SYSCLK)の一回の時間の
後DC804に供給される。オペランドの読取りあるい
は書込みが何らペンデイングでなければ、命令アドレス
はCPUCの最初のエツジ、即ちCPUの時間の開始時
にDC804に供給される。
【0229】まず、オペランドの読取りおよび書込みに
ついて検討する。オペランドがDC804でキヤツシユ
されるオペランド読取りあるいはオペランドの書込みに
おいて、アドレスの後の次のSYSCLKにおいてオペ
ランドはDBバス600に現われ、かつCPUCの次に
発生する最初のエツジ、即ち次のCPUサイクルを開始
するCPUCのエツジにおいてそれぞれCPU122ま
たはDC804へラツチされる。オぺランドがDC80
4でキヤツシユされず、MM106から取出す必要のあ
るオペランド読取りの場合、アドレスの後オペランドは
SYSCLKの何回かの後DBバス600に現われ、C
PUCの次に発生する最初のエツジ、即ち次に発生する
CPUサイクルの開始時CPU122へ再びラツチされ
る。
【0230】即ち、オペランドの読取りあるいは書込み
を行うべきいずれかのCPUサイクルにおいて、そのC
PUサイクルを開始するCPUCのエツジにおいてオペ
ランドのアドレスがDC804に提供され、オペランド
は前記CPUCの開始後1回以上のSYSCLKSの後
DBバス600に現われ、CPUサイクルを開始させる
CPUCの次に発生するエツジにおいて、行き先、即ち
CPU122またはDC804のいずれかへラツチされ
る。
【0231】命令の取出しにおいて、アドレスされた命
令はアドレス後通常1回のSYSCLK時間の後DBバ
ス600に現われ、CPUCの次に発生する第2、即ち
立下りエツジにおいてIL704にラツチされ、かつも
しIQ702が命令を受入れるスペースがある場合CP
Uサイクルを開始させる、CPUCの次に発生するエツ
ジにおいてIQ702にロードされる。IQ702が命
令を受取ることができなければ、IQ702において命
令を受入れるスペースが得られるCPUCの最初のエツ
ジが発生するまで命令はIL704に保持される。
【0232】前述のオペレーシヨンにおけるPAR82
0、PIAR822およびIL704の役割を検討す
る。まず、PAR822およびPIAR820を設ける
ことにより120nsの一回のCPUサイクルにおいて
命令とオペランドの双方の取出しを促進し、かつ可能と
することに注目すべきである。即ち、120nsのCP
Uの一回のサイクル内でオペランドを読取りあるいは書
込み、かつDC804から命令を読取るには、DC80
4にはこの時間内において2個のアドレス、即ち命令用
に1個とオペランド用に1個のアドレスを設ける必要が
ある。
【0233】しかしながら、1個のアドレス源はいずれ
か所定の120ns時間において1個のアドレスのみを
供給しうる。即ち、システムにおいて論理演算を行いう
る速度は、60nsの時間を有するSYSCLKによつ
て決められる。1個のアドレス源はアドレスをDC80
4へ読取るために1回のSYSCLK時間と、該アドレ
スを増分したり、あるいは新しいアドレスをロードする
ために第2のSYSCLK時間を必要とする。そのた
め、1個のアドレス源の最大速度は120ns毎に1個
のアドレスとなる。
【0234】しかしながら、前述のようにATU802
は、2個のアドレスの流れ、即ちPIAR820からの
命令アドレスの流れと、PAB822からのオペランド
の読取り/書込みアドレスの流れとを供給する。前述の
ように、PIAR820とPAR822はそれぞれ、2
回のSYSCLK時間毎に1個のアドレスを供給でき
る。しかしながら、ATU802においては、PIAR
820とPAR822とは交互に読取りおよび増分、即
ち新しいアドレスをロードされ、即ち、他方が増分ある
いは再ロードされている間に一方が読取られるので、P
IAR820とPAR822とは一緒になつて60ns
毎に1個のアドレスをDC804に供給することがで
き、前記アドレスは交互に命令アドレスであつたり、オ
ペランドの読取り/書込みアドレスとなる。
【0235】IL704の役割について検討すれば、C
PU122はその演算の性格上、CPU122がオペラ
ンドを受取る状態となるまでDC804からのオペラン
ドの読取りを要求しない。即ちCPU122はそれがオ
ペランドを受取る入力側バツフアに余裕がなければオペ
ランドを受取らない。したがつて、CPU122はオペ
ランドが現われるや直ちオペランドをDBバス600か
ら常に動かすことができ、そのためDBバス600は、
通常次のSYSCLK時間において現われる命令を自由
に保持できる。
【0236】しかしながら、命令の場合については、C
PUの各サイクルにおいて新しい命令が取出されている
間、命令は均一速度でIQ702を通つて進行しない。
したがつて、いずれかの所定のCPUサイクルにおい
て、新しく取出された命令を受取るスペースがIQ70
2に無い可能性がある。しかしながら、IL704を設
けることによつて、IQ702にスペースができるまで
取出された命令をDBバス600から外しIL704に
保存できるようにし、そのため次のオペランドが現われ
たとしてもDBバス600を自由にしておくことができ
る。
【0237】PU104の基本的な命令およびデータ処
理エレメント、即ちCP602、AGU124、ATU
802およびDC804の構造ならびにオペレーシヨン
ならびにそれらの個々および協働状態の演算について説
明したので、次にMS604およびCPU−SLI60
6について以下説明する。
【0238】C.4.マイクロシーケンサ(MS)60
4(第7図) 前述のように、DU104はプロセス制御により、即ち
プログラムの実行の間受取られる命令の制御により演算
を実行するマイクロコード制御の機械である。このマイ
クロコード制御は、例えばAGU124のDAG716
から提供されるデイスパツチアドレスおよびPU104
の演算の間発生するある条件およびテストに応答してM
S604により提供される。
【0239】第7図を参照すれば、MS604のブロツ
ク線図が示されている。前述のように、第6図、第10
図および第12図はその順序で横に並べればPU104
の全体のブロツク線図を構成することができる。この全
体ブロツク線図を続けるには、CPU−SLI606を
含む第8図を第6図のすぐ下方に置き、MS604を含
む第7図を第8図のすぐ下方に位置させればMS60
4、CPU−SLI606、CP602、AGU124
およびATU/C126の間の接続ならびに関係をさら
に明瞭に示すことができる。
【0240】第7図に示すように、MB604はPU1
04の演算を制御するマイクロルーチンを記憶する、マ
イクロルーチン制御記憶装置(MCS)640を含む。
本実施例においては、MCS640はマイクロコード制
御記憶装置の2個のバンクから構成され、第1のバンク
は、永久的に存在するマイクロルーチンを記憶する読取
り専用メモリ(ROM)からなり、第2のバンクはロー
ド可能のマイクロコード用の読取り/書込みメモリであ
る。各バンク共本実施例においては8ビツト幅4Kワー
ドのメモリである。
【0241】MCS640の書込み可能バンクには以下
説明するCPU−SLI606の内部バスから接続され
た双方向性のデータ入力/出力側が設けられている。C
PU−SLI606、SLバス120およびSCU10
8と共にこの経路はマイクロコードがMCS640へ書
込み、あるいは読取られうる経路である。
【0242】また第7図に示すように、MCS640に
はマイクロ命令アドレス(MIA)バス642から接続
されたアドレス入力側が設けられている。以下説明する
ように、マイクロ命令アドレスはMIAバス642を介
して提供され、MCS640からの個々のマイクロ命令
を選別し、かつ読取りかつMCS640へのマイクロコ
ードの装填の間MCS640へのマイクロコードの書込
みを制御する。
【0243】MCS640のマイクロ命令出力側はマイ
クロ命令ゼネレータとレジスタ(MIGR)644の入
力側に接続されている。MIGR644は現在のマイク
ロ命令を記憶するレジスタと、現在のマイクロ命令を復
号化しマイクロ命令レジスタ(MIR)の出力であるマ
イクロ命令機械制御信号を提供する論理とを含む。MI
Rの方は制御のためにPU104の残りの部分に供給さ
れ、かつ前述のようにAPM628の入力側へのマイク
ロ命令のリテラル出力として供給される。MIGR64
4の制御出力の一部はMIGR644への入力として提
供され、その演算を部分的に制御する。MIGR644
は従来の内部構成のものであつて、当該技術分野の専門
家には周知のものなので詳細には説明しない。
【0244】マイクロ命令アドレスは、マイクロ命令ア
ドレス出力側がMIAバス642に接続されている2個
のアドレス源のいずれかからMIAバス642に提供す
ることができる。これらのアドレス源はそれぞれ、マイ
クロ命令アドレス制御装置0(MAC)646および
マイクロ命令制御装置1(MAC)648として指示
されている。
【0245】まずMAC 648を参照すれば、MA
648はマイクロルーチンにおけるマイクロ命令
の順次的選別、マイクロ命令スタツク演算およびマイク
ロ命令ループ演算を基本的に制御する。この目的に対し
て、MAC 648はマイクロ命令カウンタ、マイク
ロ命令スタツクおよびマイクロ命令ループカウンタと
を、関連のある種の制御機能と共に含む。MAC
48には制御入力側と、オペレーシヨンの必要に応じ
て、MCS640の出力側からのマイクロ命令分岐アド
レスおよびMIAバス642からのマイクロ命令アドレ
スとが設けられている。MAC 640はさらに、以
下説明するマイクロ命令アドレス選定おび制御装置(M
ASC)650からの制御入力側が設けられている。M
AC 648も従来の内部構成のものであるので詳細
には説明しない。
【0246】MAC 648のオペレーシヨンは基本
的にはMASC650によつて制御され、MASC65
0は例えばテストの結果を示す入力、サイクルの終り、
全体的なアドレス選択状況およびMIGR644の出力
側からの入力を受取る。MASC650にはテストマル
チプレクサ(TSTM)652が付属しており、TST
M652は状態ビツト入力を受取り、MASC650に
対して、状態関連テストの結果を示すテスト出力を供給
する。MASC650が発生する出力の中にはテスト状
況の結果、MS604の他のエレメントに対するある制
御信号およびあるシステムクロツク信号がある。
【0247】ATU/C126からの命令およびオペラ
ンドの取出しに関する以下の説明においてさらに説明さ
れるがMASC650により提供されるクロツク信号の
中にはシステムクロツク(SYSCLK)およびCPU
122クロツク(CPUC)がある。SYSCLKはP
U104のエレントの論理的演算に対する基本的なタイ
ミングを提供し、かつシステム102の本実施例におい
ては60ナノ秒(ns)の時間を有する。CPUCはC
PU122の演算に応答して発生し、基本的にはCPU
122の演算実行状態を示す。システム102の本実施
例においては、CPUCサイクルは1つの演算を行うに
要する時間、即ち1個の命令を実行するに要する時間で
ある。命令およびオペランドの取出しに関する以下の説
明において詳しく説明するが、命令の実行の開始はCP
UCの立上りエツジによつて示され、かつCPUC時間
の終り、即ち次のCPUC時間の始まりは次の命令の実
行の開示を示すCPUCの次の立上りエツジにより示さ
れる。CPUCの基本的時間、即ち1個の命令を実行す
るに要する時間は120nsである。しかしながら、C
PUC時間は、例えばマイクロコード分岐の結果として
ある種の演算に必要であるように、あるいはDC804
がMM106から要求されたオペランドあるいは命令を
取出す必要がある場合60ns増分、即ちSYSCLK
時間だけ延長することができる。
【0248】MAC 646を参照すれば、MAC
646はデイスパツチ時およびトラツプ状態あるいは
ケーステストの発生時マイクロ命令アドレスを供給す
る。MAC 646マイクロ命令アドレスはマイクロ
命令アドレスマルチプレクサ(MIAM)654の出力
側から供給され、MIAM654の方はマイクロ命令保
存/戻りレジスタ(SRR)656とケース/トラツプ
/デイスパツチゼネレータ(CTDG)658から入力
を受取る。
【0249】まずSRR656を検討すれば、SRR6
56はマイクロ命令アドレス保存および戻り機構を提供
し、トラツプ戻りレジスタ(TRA)660からの保存
/戻りマイクロ命令アドレスを備えている。TRA66
0の方は実行マイクロ命令アドレスレジスタ(XMI
A)652を介してMIAバス642に現われるマイク
ロ命令アドレスを受取りかつ保存し、前記レジスタは現
在実行すべきマイクロ命令のMIAバス642に現われ
るアドレスを捕捉し、かつ記憶する。CPU−SLI6
06に関する以下の説明でさらに詳しく説明するよう
に、SLバス120あるいは、CP602のいずれかか
らMCS640にマイクロ命令が提供されうる経路を提
供する。第7図に示すように、この経路はCPU−SL
I606の内部バス、CSI666からSRR656に
提供される入力側から構成され、例えばMCS640へ
のマイクロルーチンの直込みあるいは診断オペレーシヨ
ンに使用しうる。
【0250】CTDG658はデイスパツチ、ケースお
よびトラツプ状態になるとマイクロ命令アドレスを発生
させる。第7図に示すように、CTDG658のデイス
パツチアドレス入力がDAG716から供給される。マ
イクロ命令アドレスの発生の結果から発生するその他の
デイスパツチ演算は例えばDAG716による不当なア
ドレスの検出から発生するデイスパツチ例外、あるいは
特定のフアイルレジスタを選定する、あるいは浮動小数
点演算を実行する演算を含む。CPU−SLI606に
関して下記するように、CTDG656にもCPU−S
LI606から、特にCPU−SLI606のSCR6
74から入力が供給される。
【0251】トラツプベクトルマイクロ命令アドレスは
例えば、不当な有効アドレス、長いアドレスの変換、キ
ヤツシユブロツククロシング(crossing)、制
御例外、取出し操作、あるいはその他の一般的なトラツ
プ状態から発生しうる。マイクロ命令アドレスから発生
するケーステストは例えば、変数を正規化し浮動小数点
変数即ち浮動小数点指数差を比較し、命令待ち行列をマ
ツプし、ALUの結果あるいは一般制御除外を検査する
オペレーシヨンを含む。
【0252】第7図に示すように、CTGD658への
入力はマイクロ命令アドレスコンパレータ(MIAC)
664から供給される。MIAC664は、XMIA6
62から接続されかつ現在のマイクロ命令アドレスを示
す第1の入力側と、以下説明するCPU−SLI606
の内部バスから接続された第2の入力側とを有する。選
定されたマイクロ命令アドレスはCPU−SLI606
レジスタに記憶され、XMIA662の出力側に出てく
るそれぞれの現在のマイクロ命令アドレスに対してMI
AC664によつて比較できる。次いで、MIAC66
4は、現在のマイクロ命令が記憶されたマイクロ命令ア
ドレスと比較されるとCTDG658に出力を発生さ
せ、例えば選定可能なマイクロ命令アドレスにおいてト
リツプ(trip)点を提供する。この機能は例えば、
マイクロ命令を通して順次ステツピイングしたり、ある
いは選定したマイクロ命令においてMS604の動作を
停止させる診断オペレーシヨンで用いることができる。
【0253】前述のように、MAC 646はデイス
パツチ、ケースおよびトラツプ状態のためにマイクロ命
令アドレスを発生させ、一方MAC 648はマイク
ロルーチンにおけるマイクロ命令を順次選択するため、
マイクロ命令スタツク演算およびマイクロ命令ループ演
算のためのマイクロ命令アドレスを発生させる。MAC
646あるいはMAC 648のいずれかは所定
のマイクロ命令サイクルの間のマイクロ命令アドレス源
であつて、いずれかが1回のサイクル内において前述の
マイクロ命令アドレスを供給する。前述の2種類のマイ
クロ命令選択操作に対して2個の個別の並列したマイク
ロ命令アドレス源を設けることによつて、以下述べるよ
うに、1回のマイクロ命令サイクルにおいてマイクロ分
岐演算を実行することができる。
【0254】マイクロコード分岐は一般的に、規定され
た状態に対してテストを実施する結果発生する。もし例
えばテスト結果が正しいとすれば、現在のマイクロルー
チンは次のマイクロ命令アドレスに継続する。テストの
結果が間違つておれば、ブランチマイクロルーチン用の
マイクロ命令アドレスが発生し、次のマイクロ命令アド
レスとして使用する。
【0255】従来のマイクロ命令機械においては、第1
のマイクロ命令サイクルがテスト状態を発生するために
使用され、第2のマイクロ命令サイクルは、テストを実
行するため、かつ必要に応じマイクロ命令分岐を選定す
るために使用される。MS604においては、かつ並列
の現在演算中のアドレス源MAC 646とMAC
648とがあるために、テストが発生し、かつ1回の
マイクロ命令サイクルの間MAC 646によりテス
トが実施される。もしテスト条件が正しければ、MAC
648によりすでに発生しているアドレスがそのサ
イクルの間、次のマイクロ命令アドレスとして使用され
る。もしテスト条件が正しくなければ、マイクロ命令サ
イクルが延長され、MAC 646により発生したア
ドレスが次のマイクロ命令アドレスとして使用される。
テスト結果は、MS604の動作原理を変えることなく
分岐/非分岐決定に関し反転しうることに注目すべきで
ある。即ち、分岐において正しいテスト結果が得られ、
かつ非分岐に偽の結果が得られることが可能である。
【0256】分岐で発生するテストが延長したマイクロ
命令サイクルを使用する限りにおいては、MS604の
動作速度の全体的な増加は通常の演算において発生する
命令のパーセントによつて左右される。このパーセント
が低ければ低いほど、演算速度を増加することによる利
点は大きい。したがつて、マイクロコードの設計者は経
験あるいは試験によつてテスト条件を選定し正偽を問わ
ず非分岐決定において発生する、テスト結果のパーセン
トを最小にするようマイクロ命令ルーチンを構成すべき
である。
【0257】MS604の構造とオペレーシヨンについ
て説明したので、CPU−SLI606の構造とオペレ
ーシヨンとについて次に下記する。
【0258】C.5.CPUシステムリンクインタフエ
ース(CPU− SLI)606(第7図、第8図
および第9図) 前述のように、システム102のあるエレメント、例え
ば、PU104,SCU108、MM106およびSB
I110は、SCU108と、前記エレメントの内部オ
ペレーシヨンとの間でアクセスおよび通信を提供すべく
支援リンク(SL)バス120を介して相互に接続され
ている。このアクセスおよび通信は、以下の説明のよう
に、例えばマイクロコードの開始およびロードかつ診断
オペレーシヨンのように一般的に支援オペレーシヨンと
して分類されるものの実行を主として制御するために使
用される。例えばCPU−SLI606はCPU122
とSLバス120との間のリンクであつて、したがつて
SCU108とCPU122のエレメント、特にCP6
02とMS604との間でリンクを提供する。
【0259】以下の説明はCPU−SLI606による
例を中心としたものであるが、CPU−SLI606の
全体的な構造とオペレーシヨンとはシステム102の情
報処理エレメントの各々において提供されるシステムリ
ンクインタフエースを代表するものであることを想起す
べきである。即ち、例えばMCU132におけるシステ
ムリンクインタフエースは特定の情報処理エレメントの
特別のオペレーシヨンおよび制御要件に対して当該技術
分野の専門家には明らかなある種の適合を加えればCP
U−SLI606と類似である。
【0260】この点について、システム102の情報処
理エレメントは、それぞれが、情報の記憶手段、情報処
理手段と、前記情報記憶および処理手段との間で情報を
転送するバスと、MS604に類似のマイクロコード制
御「エンジン」を含む情報処理機能を含む点において類
似であることに注目すべきである。この点について、マ
イクロコード制御エンジンはマイクロルーチン、即ちマ
イクロ命令のシーケンスを記憶するメモリ手段と、マイ
クロコードメモリをアドレスする手段と、メモリとアド
レス手段とを接続するマイクロ命令バスを含む。
【0261】CP602とMS604とを、それぞれ情
報処理機能および、RF616とALU608がそれぞ
れ情報記憶および処理手段を提供するCPU122のマ
イクロコード制御エンジンとして上述してきた。別の例
において、MEM106の機能は、データとプログラム
とを含む情報を記憶し、システム102のエレメント間
で情報を転送することである。したがつて、MEM10
6はMS604に類似のマイクロコード制御エンジン、
MUS130の形態の記憶手段、および情報処理手段、
即ち例えばMCU132のパリテイチエツク論理のよう
にデータ経路、レジスタおよび処理機能の形態でMUS
130とシステム102のエレメントの間で情報を転送
する手段とを含む。
【0262】以下、まずCPU−SLI606の全体構
造とオペレーシヨンを説明し、次いでSLバス120、
該バスを通して通信される情報と命令およびこれらエレ
メントにより実行される支援オペレーシヨンを説明す
る。SLバス120と支援オペレーシヨンの説明の方は
CPU−SLI606のエレメントの機能とオペレーシ
ヨンとを詳細に説明する。SCU108は本実施例にお
いてはマサーチユセツツ州ローウエル(Lowell,
mA)のワンダラボラトリース会社(WangLabo
ratories,Inc.)製のプロフエツシヨナル
コンピユータである、市販されているマイクロプロセツ
サをベースとしたコンピユータであり、その構造および
演算ならびに本目的への適用については以下の説明を読
めば当該技術分野の専門家には十分理解されるので、S
CU108の構造とオペレーシヨンについては詳細に説
明しない。
【0263】第8図を参照すれば、CPU−SLI60
6のブロツク線図が示されている。以下CPU−SLI
606構造をまず説明し、次いでCPU−SLI606
の可能な演算についてのあるもの、およびCPU−SL
Iを通るデータ経路の可能な用途のあるものについて説
明する。前述のように、前記エレメントの特殊な機能や
オペレーシヨンについてはSLバス120と支援命令演
算の以下の説明において詳しく説明する。
【0264】第8図に示すように、CPU−SLI60
6は16ビツトのCPU支援リンクの内部(GSI)バ
ス666を含み、該バスは支援パケツトデータレジスタ
(SPDP)668を介してSLバス120に双方向的
に接続され、制御およびデータ情報がSLIバス120
とCSIバス666との間で通信できるようにする。以
下に説明するように、SPDR668は16ビツトのレ
ジスタであつて、該レジスタはCSIバス666への並
列の16ビツトの入力/出力側と、SLバス120のデ
ータバス部分への1個のビツト幅の直列の入力/出力接
続とを有する。即ち、情報はSPDR668とSCU1
08の間で連続した形で導かれ、かつSPDR668と
CSIバス666との間では16ビツトの並列の形態で
導かれる。
【0265】CSIバス666の方は前述のように、3
2ビツトの双方向性マイクロステート レジスタ/トラ
ンシーバ(MSRX)670を介してCP602のAP
バス612に双方向的に接続されている。第6B図に示
すように、MSRX670は、APバス612への32
ビツトの並列のインタフエースと、CSI666への1
6ビツトインタフエースを有し、そのため情報は、MS
RX670の32ビツトの高位および低位の16ビツト
の「ワード」の形態でCSI666とMSRX670と
の間で転送される。
【0266】CSI666はさらにMS604のある点
と相互に接続されている。第7図および第8図とに示す
ように、CSI666はマイクロ命令アドレスパツフア
(MIAB)672を介してMIAバス642から接続
されている。また前述のように、CSIバス666は双
方向性リンクによつてさらにMCS640のデータ入力
/出力側に接続され、かつMIAC664とSRR65
6のアドレス入力側に接続されている。
【0267】CPU−SLI606はさらに、入力側が
CSIバス666に、出力側がCSIバス666に接続
された、16ビツトの汎用支援命令レジスタ(SCR)
674を含む。SCR674は、CSIバス666に現
われる命令、アドレスまたはデータを記憶しCSIバス
666へ供給するために使用できる。この場合以下説明
するように、SCR674は支援オペレーシヨンの実行
において、CPU−SLI666およびMS604の動
作を制御する情報を記憶するために使用される。この点
に関し、第7図および第8図に示すように、SCR67
4はCTDG658へ制御信号出力を供給する。
【0268】最後に、CPU−SLI606は支援リン
ク制御装置(SLC)676として指示するマイクロ制
御「エンジン」を含み、該SLC676は以下説明する
ようにSLバス120の個々の支援リンク制御ラインに
接続され、かつCPU−SLI606とMB604へ支
援リンクインタフエース制御(SLIC)の制御出力を
供給する。SLC676は基本的に、以下説明する支援
オペレーシヨンを実行する上でCPU−SLI606と
MS604とを制御するに必要なマイクロルーチンと関
連の論理とを含む。CPU−SLI606の演算と支援
オペレーシヨンについての以下の説明を読めばSLC6
76の設計と構造については当該技術分野の専門家には
明らかであるので、SLC674については詳細には説
明しない。
【0269】CPU−SLI606の構造について説明
したので、CPU−SLI606の可能な演算のあるも
の、およびCPU−SLI606を通る情報のある可能
な用途については次に説明する。
【0270】まず、SPDR668、CSIバス666
およびMSRX670を通るSLバス120からAPバ
ス612までのリンクを検討すれば、この経路は例えば
CP602の診断オペレーシヨンに用いることができ
る。即ち、この軌道はSLバス120、したがつてSC
U108と、CP602の内部データおよびマイクロス
テートとの間で汎用アクセスを提供する。
【0271】CSIバス666と、MCS640のデー
タ入力/出力との間の双方向性経路は、マイクロルーチ
ンが通つてMCS640へ書込まれる経路である。ま
た、この経路は診断のためにマイクロルーチンがそれぞ
れSPDR668とMSRX670とを介してMCS6
40からSLバス120あるいはCP602へ読取るこ
とができるようにする。MCS640のデータ入力/出
力側からMSRX670を通る経路はまた、MIGRの
MIR出力側とAPバス612との間の経路に代替する
経路を提供することによつてマイクロ命令フイールドを
CP602へ読取ることができる。
【0272】CSIバスからSRR656のアドレス入
力側、したがつてMIAバス642への経路はCSIバ
ス666とMCS640との間の前述した入力/出力経
路と協働して使用しMCS640へアドレス入力を提供
しMCS640マイクロルーチンを書込み、かつMCS
640からマイクロルーチンを読取ることができる。マ
イクロ命令アドレスは、SPDR668を通してSLバ
ス120から、あるいはMSRX670を通してCP6
02からこの経路を通して提供しうる。この点に関し
て、MIAB67を通してMIAバス642からCSI
666までのアドレス経路は、MCS640のデータ入
力/出力側からCSIバス666までの経路と共にマイ
クロルーチンをモニタするために使用しうる。即ち、M
IAバス642に現われるマイクロ命令アドレスと、M
CS640から読取られる対応したマイクロ命令とはS
Lバス120あるいはCP602に読取ることができ
る。
【0273】最後に前述のように、MIAC664には
CSI666から接続されたアドレス入力側が設けられ
ている。選定されたマイクロ命令アドレスは例えばSC
R674に記憶され、CSIバス666とこのリンクを
介してMIAC664に供給しうる。このアドレス入力
は例えば、XMIA662の出力側でMIAバス642
に現われるマイクロ命令アドレスと比較しうる。MIA
C664は次いで、現在のマイクロ命令アドレスが記憶
されたマイクロ命令アドレスと比較され例えば選定可能
なマイクロ命令アドレスにおいてトリツプ点を提供する
とCTDG658に出力を発生させる。この機能は、マ
イクロ命令ルーチンを通して順次ステツピングしたり、
あるいは選定したマイクロ命令においてMS604の動
作を停上させるために使用しうる。
【0274】CPU−SLI606の基本構造とオペレ
ーシヨンについて説明したので、支援オペレーシヨンを
実行するCPU−SLI606、SLバス120および
MS604の機能とオペレーシヨンとについて次に説明
する。第9図を参照すれば、SLバス120と、該バス
を通して通信される情報および命令とを示す線図が示さ
れている。第9図の上部に示すように、SLバス120
は単−のビツトの一連の目標/命令/データ(TCD)
バス678から構成され、該バスはSCU108とシス
テム102の情報処理エレメントならびに複数の個々の
制御ラインの間で支援オペレーシヨン命令と情報とを通
信するために使用される。
【0275】個々の制御ラインは、支援オペレーシヨン
の実行を導く命令をSCU108から処理エレメントへ
伝送し、前記オペレーシヨンのあるものを実行すること
から発生する情報を処理エレメントからSCU108へ
伝送することを含み、SCU108とシステム102の
情報処理エレメントとの演算を調整する信号を通信する
ために使用される。個々の制御ラインは例えば割込要求
(IR)ライン680、支援制御ユニツトリセント(S
CUR)ライン682、支援命令確認(SCA)ライン
684、支援リンククロツク(SLC)ライン686、
支援データ伝送(TSD)ライン688および支援命令
(XSL)実行ライン690とを含む。
【0276】前述のように、TCDバス678はSCU
108とシステム102の情報処理エレメントとの間で
支援制御データおよび命令を通信するために使用され
る、この情報は32ビツトの目標/命令/データ(TC
D)ワードの形で通信される。前述のように、TCDバ
ス678は1ビツト幅の一連のバスで、SRDR668
は16ビツトのレジスタである。そのためTCDワード
は、それぞれ16ビツトの2個の一連の伝送としてSC
U108とSPDR668との間で通信される。以下に
説明するように、TCDワードは2個の16ビツトのセ
クシヨンに編成され、各セクシヨンが関連情報を含む。
【0277】第9図の中間部分を参照すれば、TCDワ
ードのフオーマツトが線図で示されている。指示のよう
に、TCDワードの最初の16ビツトのセクシヨンは演
算を実施する予定のシステムプロセツサのエレメント
と、実施すべき演算とを確認するフイールドを含む。例
えば、TCSワードの最初の10ビツトは1個以上の目
標識別(TI)フイールドを含むことができ、各TIフ
ーイールドは特定のTCDワードの予定受取先を識別す
る情報を含む。例えば、ビツト8−10は3ビツトのフ
イールドの中央処理ユニツト、即ちPU104の識別フ
イ−ルドを構成する。このフイールドはシステム102
が8個のPUS104まで構成できるようにし、SCU
108がシステム102の多数のCPU構成におけるC
PUSのいずれかを個々に選定し、かつ該CPUと通信
できるようにする。
【0278】本実施例においては、実施すべき演算を識
別する最初の16ビツトのセクシヨンのフイールドは5
ビツトの支援命令(SC)フイールドから構成される。
前述のように、SCフイールドはTIフイールドにより
識別さねるシステム102の受取りエレメントにより実
施される特定の支援オペレーシヨンを識別する支援命令
コードを含む。本実施例においては、CPU122に関
連する支援命令コード(SCS)は以下を含む;
【0279】SC00−SPDR668例えばSCU1
08へMCS640の書込み可能部分から16ビツトの
マイクロコードを読取る;特定の16ビツトはSC00
により識別される SC01−MSRX670からSPDR668の低位1
6ビツトへ16ビツトを読取る; SC02−MSBX670からSPDR618の高位1
6ビツトを読取る; SC03−MCS640からCSIバス666へ、書込
み可能制御記憶装置の84ビツト(1マイクロ命令)を
読取る;読取りアドレスはSRR656の中味により規
定される; SC04−SCR674の中味をSPDR668へ読取
る; SC05−現在のマイクロ命令アドレスをMSRX67
0へ読取る; SC06−SRR656の中味により規定されるマイク
ロ命令メモリの位置せSPDR668へ読取る; SC07−予備 SC08−SPDR668からのマイクロ命令の16ビ
ツトをMCS640の書込み可能部分へ書込む;位置は
現在のマイクロ命令アドレスとSCR674の中味によ
り規定される部分とによつて規定される; SC09−SPDR668からMSRX670へ低位1
6ビツトをロードする; SC0A−SPDR668からMSRY670へ高位1
6ビツトをロードする; SC0B−CSI666からMCS640の書込み可能
部分へ84ビツト(1マイクロ命令)をロードする;ア
ドレスはSRR656の中味により規定される; SC0C−SPDR668からSPR656をロードす
る SD0D−SPDR668からMIAC664をロード
する; SC0E−SPDR668からSCR674をロードす
る SC0F−SPDR668からマイクロ命令メモリをロ
ードする;アドレスはSRB656の中味により規定さ
れる; SC10−CP602をリセツトする; SC11−MCS640の書込み可能部分を入力として
MIGB644へ選定する; SC12−支援命令機能トラツプオペレーシヨンを実行
する; SC13−一時に1ステツプ(−マイクロ命令ステツ
プ)マイクロ命令を実行する; SC14−一時に1ステツプ(1マイクロ命令ステツ
プ)マイクロ命令を実行する; SC15−予備 SC16−予備および SC17−予備
【0280】注):SC18,SC19,SC1A、S
C1B、SC1C、SC1D、SC1EおよびSC1F
は本実施例のシステムにおいては、予備であるか、MC
U132に使用されるかSBI110の支援命令演算あ
るいは浮動小数点ユニツト(FPU)支援命令演算用に
用いられる。
【0281】最終的に、TCDワードの第2の16ビツ
トのセクシヨンは、例えば前述のようにデータあるいは
マイクロ命令を通信、あるいは16ビツトの支援命令レ
ジスタ(SCR)ワードを通信するために使用しうる情
報フイールドを構成する。支援命令ならびにその結果の
演算についての前記説明に示すように、SCRワードは
SCB674に位置し、現在の支援オペレーシヨンある
いは実行すべき演算に関する情報を含む。
【0282】本実施例におけるSCRワードフイールド
は以下を含む:
【0283】IRTR−情報転送源あるいは行き先とな
るべきCPU122の内部レジスタを識別するポインタ
を含む3ビツトフイールド;例えばレジスタの中味はS
CU108に読取りあるいはSCU108により書込ま
れる。 EMIC−MIAC664の演算を可能とする1ビツト
のフイールド; ECSP−MCS640の中味に関してパリテイ演算を
可能にする1ビツトのフイールド; CMDM−処理エレメント即ちCPU122が命令モー
ド、即ちSCU108に制御されていることを示す1ビ
ツトのフイールド;このビツトは前述のように、SLC
676にある支援オペレーシヨンへMS640のマイク
ロルーチンからCPU122の制御を転送するデイスパ
ツチ除外入力としてCTDG658に供給される;CM
DMがセツトされると、CTDG658へのCMDMビ
ツト入力はMS604がデイスパツチ例外ループへ入る
ようにし、そこでCPU−SLI606により供給され
るマイクロ命令アドレスにより識別されるマイクロ命令
あるいはマイクロルーチンを待機し、かつ実施する。 EMIS−一回のマイクロ命令ステップの演算を可能に
する1ビツトのフイールド、および INTR−SCU108への割込み要求がペンデイング
であることを示す1ビツトのフイールド。
【0284】TCDおよびSCRワードの構造および情
報について説明したのでSLバス120の個々の制御信
号の機能および演算について次に説明する。
【0285】前述のように、SLバス120と支援オペ
レーシヨンの個々の制御ラインと信号とは以下を含む:
【0286】INTR−割込み要求−SLバス120に
取付けられた処理エレメントにより発生し、該エレメン
トがサービス即ちSCU108による支援演算を要求し
ていることを示す割込み要求; SCUR−支援制御ユニツトリセツト−SCU108に
より発生し、SLバス120から接続された全てのユニ
ツトによりモニタされる;SCU108により表明され
ると全てのプロセツサエレメントをリセツト状態に保持
する; SLCA−支援リンク命令確認−TCDワードの受取り
先により発生し、エレメントがXSLC命令を受取つた
ことを確認する; SLCK−支援リンククロツク−SCU108により発
生し、SLバス120から接続された全てのエレメント
により使用されエレメントとSCU108との間の通信
および演算を調整する;例えば、TCDワードのビツト
をSPDR668へ、あるいはそこからクロツクするた
めに使用される; TSLD−伝送支援リンクデータ−SCU108により
発生しSLバス120から接続された全ての装置が情
報、例えばTCDワードをTCCバス120から受取る
ことができるように、する;表明されたTSLDはSC
U108が情報を全てのエレメントに伝送していること
を示す;および XSLC−実行支援リンク命令−SCU108により表
明され、SLバス120から接続された全てのエレメン
トによりモニタされる;SCU108により表明され、
TCSワードのターゲツトの受取り先がそのSCB67
4において命令を実行することを示す。
【0287】CPU−SLI606とSLバス120の
構造と演算を説明したので、支援オペレーシヨンのある
ものについて次に説明する。
【0288】システムの初期状態設定についてまず検討
する。まずシステムには何らマイクロコードあるいはプ
ログラムは介在していない。したがつて、システムの最
初の仕事はシステムマイクロコードをMS604にロー
ドし、例えばCPU122、AGU124およびATU
/C126のようなシステムの各種のエレメントの初期
状態を設定し、システムテストを行い最初のプログラム
をロードし開始することである。これらの演算はSLバ
ス120を介して演算しているSCU108により制御
され、かつ3ステツプで実施される;即ちSCU108
がシステムを制御し初期状態設定支援オペレーシヨンを
実行する命令モードを開始すること、システムのブーテ
イング、即ちマイクロコードをロードすることおよびプ
ログラム実行を可能とすることである。
【0289】最初のステツプ、即ち命令モードの開始に
おいては、SCU108はある種の自己テストおよび初
期設定開始操作を実行し、PU104が論理回路へのパ
ワーにより初期状態に設定される。次いで、SCU10
8は支援オペレーシヨンを行い、非マスク可能割込み
(NMI)デイスパツチ例外ハンドラをMCS640の
書込み可能部分へロードし、そのためSCU108が命
令モードのNMIデイスパツチ例外、CMDMを表明す
ると、MS604がNMIハンドラマイクロルーチンへ
分岐する。
【0290】次いで、SCU108はCMDM、即ちS
CR674でSCRワードでの命令モードデイスパツチ
例外ビツトをセツトし、論理へのパワーにより先にセツ
トされていたSCURをクリヤする。これらの演算の方
はCPU122のデイスパツチロジツク、即ち、AGU
124とCTDG658とを動作させ始め、該論理はプ
ログラムの最初のマイクロ命令を実行させ始めようとす
る。しかしながら、CMDMが表明されずみであると、
システムはMS604を命令モードのデイスパツチ例外
サービスループに残留させるようにして命令モードに留
つている。CPU122が命令モードのデイスパツチ例
外サービスループにある間、SCU108は全ての診断
ルーチンを行うことができ、これらのルーチンの終りに
おいて、AGU124およびATU/C126を含むC
PU122を直接の物理的アドレシング状態に置きCP
U122とMM106との間の直接経路を開放する。
【0291】第2のステツプにおいて、システムはブー
トする、即ちマイクロコードがロードされる。この演算
を行うには、SCU108はマイクロ命令ロードルーチ
ンをMCS640の書込み可能部分に装填し、「ブート
コード」ルーチンをシステムバス即ちSB114を介し
てMM106に書込み、SCU108が次いでマイクロ
命令ロードルーチンの実行を開始させ、該ルーチンの方
はブートロードルーチンをMCS640にロードし、ブ
ートロードルーチンが実行を開始する。
【0292】この時点において、システムは演算マイク
ロコードの制御を受けるが、MM106にプログラム、
即ちマイクロ命令がロードされるまで命令モードデイス
パツチ例外サービスループに留つている。さらに、SC
U108はAGU124とATU/C126とを開始さ
せてマイクロ命令を実行できるようにする。一旦、これ
が達成され、MM106にマイクロ命令がロードされる
と、SCU108はCMDMをリセツトあるいはクリヤ
する。SCB674においてCMDMをクリヤすること
により既知の開始アドレスに位置する第1のマイクロ命
令へのデイスパツチを可能とし、通常の動作モードでシ
ステムを始動させる。
【0293】SCU108を通してのシステム102の
初期状態設定および支援オペレーシヨンについて説明し
たので、基本的な支援演算命令のあるものについて次に
説明する。
【0294】まず、支援オペレーシヨンが、MCS64
0へ、かつそこからのマイクロ命令のロードおよび読取
り機能を提供する。この演算は例えば診断オペレーシヨ
ンにおいて、あるいは前述のようにCPU122の始動
において実施でき、MCS640が、CMDMによつて
表明される命令モードへ強制することを要求する。
【0295】MUS640の書込みを実行する演算の基
本的順序は以下から構成される:
【0296】SRR656に書込むべきMCS640の
アドレスをロードすること。これは、TCDワードの1
6ビツトの情報フイールドでアドレスを書込み、かつロ
ードSRR656の命令コードを発行することによつて
達成され、およびMCS640に書込むべきデータを、
16ビツトのセクシヨンでデータを含む一連のTCDワ
ードとロードWCSX命令コードとを通してSCU10
8からMCS640へ動かすことである。
【0297】MCS640の読取りを行う演算の基本的
シーケンスは以下から構成される;
【0298】読取るべきMCS640のアドレスを、ア
ドレスを含むTCDワードとロードSRMR命令コード
とを介してSRR656にロードすること、およびこれ
も16ビツトセクションで読取りWCSX命令コードと
データとを含むTCSワードのシーケンスを通してMC
S640からSCU108へデータを読取ること。
【0299】次に、支援オペレーシヨンは、マイクロ命
令を1回のステツプで実行できる能力を含むものとして
前述した。この操作は「パネルモード」即ちSCU10
8からの直接的なステツプバイステツプ制御により行わ
れるか、あるいは「プログラムモード」、即ち一時に1
個のマイクロ命令のマイクロルーチンを実行することに
より実行しうる。
【0300】前述のように、CPU122もCMDMを
セツテイングすることにより命令モードへ強制される必
要があり、かつMCS640は少なくともNMIハンド
ラを含む必要がある。その場合、パネルモードのマイク
ロ命令の1回のステツプによる実行は以下の演算シーケ
ンスにより達成しうる;
【0301】MCS640の書込み可能入力/出力レジ
スタを実行すべきマイクロ命令でロードし、およびマイ
クロ命令を含むレジスタをMIGR644への入力源と
して選定することである。
【0302】MIGR644への入力源としてMCS6
40レジスタを選足する命令が実行されるや、MIGR
644は1個のマイクロ命令でジヤムされ、そのためマ
イクロ命令が以前実行されていたか否かには無関係に実
行される。したがつて、マイクロ命令を1回のステツプ
で実行するためには、1ステツプされたマイクロ命令の
分岐フイールドはコード化されてNMIハンドラへ戻る
必要がある。最後のマイクロ命令をその分岐フイールド
を介してNMIハンドラへステツプすることにより全体
のマイクロルーチンを前記のように実行することができ
る。次いで、マイクロルーチンの1ステツプによる実施
に伴つて命令モードのNMIビツトCMDMをセツト
し、かつEMISおよびEMICをセツトさせNIAC
644が全てのマイクロ命令アドレスに対して比較でき
るようにする。このためCPU122が実行される各マ
イクロ命令に対して割込むようにする。割込みに対する
トラツプは、XMIA662に含まれたマイクロ命令ア
ドレスであると指定された現在のマイクロ命令を実際に
実行している間に発生することを注目すべきである。
【0303】この演算の間、SCU108が割込まれ、
かつSPDB668を読取つて、割込みの原因は一回ス
テツプの演算の結果によることを検出する。この演算が
可能とされている限り、CPU122は次のマイクロ命
令に対する割込みを発生させる。即ち、CPU122は
MIAC664のトラツプルーチンを1ステツプで実行
しており、トラツプルーチンはCPU122が命令モー
ドにあることをモニタする。SCU108が命令モード
を表明し続ける限り、トラツプルーチンはそれ自体でル
ーピングを継続する。一旦SCU108が命令モードを
クリヤすると、トラツプルーチンはトラツプの戻りを実
行し、該トラツプ戻りはトラツプマイクロ命令アドレス
をスタツクから「ポツプ(pop)」させ、実行すべき
マイクロ命令を指示する。
【0304】別の例において、支援オペレーシヨンは1
個のマイクロ命令を実行する機能を含むと前述した。こ
のオペレーシヨンはCPU122を命令モードに強制
し、1ステツプのマイクロ命令の命令コードを発するこ
とにより達成される。CMDMはNMIデイスパツチ例
外を起し、デイスパツチ除外によりCPU122、即ち
MS604の動作を次のマイクロ命令の境界で中断させ
る。次いで、SCU108は1回のマイクロ命令の命令
コードを発行し、この命令コードによりマイクロ命令の
1サイクル時間に対し命令モードNMIビツトCMDM
を有効に除外し、次のマイクロ命令の実行を可能とし、
次いでCMDMを再びセツトして次の追従するマイクロ
命令の実行を停上させる。
【0305】最後の例においては、支援オペレーシヨン
はMIAC664を介してマイクロ命令のプレークポイ
ント・オペレーシヨンを提供する。再び、CPU122
はCMDMの表明により命令モードとされ、MIAC6
64は前述のようにロードMIAC命令シーケンスを通
してロードされる。次いで、SCU108はCMDMを
クリヤーすることにより命令モードからCPU122を
解放することができ、MIAC664に対して開始され
る。MIAC664の中味と比較するマイクロ命令が発
生すれば常に、MIAC664は、ダイナミツクトラツ
プによりMC640をMIAC640のトラツプハンド
ラへ強制する。このトラツプハンドラはSCU108を
割込み、SCU108にプレークポイント状態を知らせ
る。
【0306】前述した発明は、その精神あるいは基本的
特徴から逸脱することなくさらに別の特別の形態で実施
しうる。したがつて、本実施例は全ての点において例示
的および非制限的であることを考えるべきで、本発明の
範囲は前述の説明でなく、特許請求の範囲によつて示さ
れるべきであり、特許請求の範囲の意義と、均等物の範
囲内に入る全ての変更は特許請求の範囲に包含すべきで
ある。
【図面の簡単な説明】
【図1】本発明を組込んだコンピユータシステムのブロ
ツク図である。
【図2】ある種の中央処理装置と主メモリ構造体とを線
図で示す図である。
【図3】AからIまではある種のシステム命令構造を線
図で示す図である。
【図4】プログラム制御ワードを線図で示す図である。
【図5】A、BおよびCは仮想アドレスから物理的アド
レスへの変換を線図で示す図である。
【図6】CPU122のブロツク線図である。
【図7】MS604のブロツク線図である。
【図8】CPU−SLI666のブロツク線図である。
【図9】SLバス120の線図である。
【図10】AGU124のブロツク線図である。
【図11】IQ702とIL704との線図である。
【図12】ATU/C126のブロツク線図である。
【図13】命令およびデータの取出しを示す図である。
【符号の説明】
102…システム 104…処理ユニツト 106…主メモリ 108…システム制御ユニツト 110…システムバスインタフエース 112…サテライト制御ユニツト 114…システム
バス 116…システムアドレス 117…主メモリ制御バ
ス 118…システムデータバス 120…支援リンクバ
ス 122…中央処理ユニツト 124…アドレス ゼネレータユニツト 126…アドレス変換ユニツト/キヤツシユ 128…浮動小数点ユニツト 130…メモリユニツ
ト 132…メモリ制御ユニツト

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令及びオペランドを記憶するメモリ
    と、前記命令に応答して前記オペランドにオペレーショ
    ンを行うプロセッサとを含む情報処理システムにおけ
    る、前記命令及びオペランドを前記プロセッサに提供す
    る取り出し機構であって、 (A)前記プロセッサのオペレーションに応答してプロ
    セッサクロック信号を発生するクロック発生装置であっ
    て、 前記プロセッサクロック信号の各サイクルは前記プロセ
    ッサの各オペレーションサイクルに対応し、前記プロセ
    ッサのオペレーションサイクルの開始時に現れる第1の
    エッジと、該オペレーションサイクルの間に現れる第2
    のエッジとを有する、 クロック発生装置と、 (B)アドレス発生装置であって、前記プロセッサのオ
    ペレーションに応答し、 (a)前記プロセッサがオペランドアドレスを必要とす
    るオペレーションを行うときに、前記プロセッサクロッ
    ク信号の第1のサイクルの第1のエッジでオペランドア
    ドレスを前記メモリに提供し、前記第1のエッジの後の
    固定の間隔で命令アドレスを前記メモリに提供し、 (b)前記プロセッサがオペランドアドレスを必要とし
    ないオペレーションを行うときに、前記プロセッサクロ
    ック信号の第1のサイクルの第1のエッジで命令アドレ
    スを前記メモリに提供する、 アドレス発生装置と、 (C)前記プロセッサクロック信号の前記第1のサイク
    ルで前記アドレス発生装置によって前記オペランドアド
    レスが提供されたときに、前記プロセッサクロック信号
    の第2のサイクルの第1のエッジに応答して、前記メモ
    リから前記オペランドを受信するプロセッサオペランド
    入力と、 (D)命令入力であって、 (a)前記プロセッサクロック信号の前記第1のサイク
    ルで前記アドレス発生装置によって前記オペランドアド
    レスが提供されたときに、前記プロセッサクロック信号
    の第2のサイクルの第2のエッジに応答して、前記メモ
    リから命令を受信し、 (b)前記プロセッサクロック信号の前記第1のサイク
    ルで前記アドレス発生装置によって前記オペランドアド
    レスが提供されなかったときに、前記プロセッサクロッ
    ク信号の第1のサイクルの第2のエッジに応答して、前
    記メモリから命令を受信する、 命令入力と、 (E)前記命令入力から接続された命令待ち行列であっ
    て、 (a)前記プロセッサクロック信号の前記第1のサイク
    ルで前記アドレス発生装置によって前記オペランドアド
    レスが提供されたときに、前記プロセッサクロック信号
    の第3のサイクルの第1のエッジに応答して、前記命令
    入力から命令を受信し、 (b)前記プロセッサクロック信号の前記第1のサイク
    ルで前記アドレス発生装置によって前記オペランドアド
    レスが提供されなかったときに、前記プロセッサクロッ
    ク信号の第2のサイクルの第1のエッジに応答して、前
    記命令入力から命令を受信する、 命令待ち行列と、 (F)前記命令待ち行列から接続され、前記命令待ち行
    列から前記プロセッサへ命令をディスパッチするディス
    パッチ装置であって、前記プロセッサはその命令のオペ
    レーションコードフィールドに応答して対応するオペレ
    ーションを開始する、ディスパッチ装置と、 を備え、 前記アドレス発生装置は、 命令のオペレーションコードフィールドに提供されたデ
    ータに応答して、前記命令に対応する論理命令アドレス
    を提供し、 前記命令のオペランドリファレンスフィールドに提供さ
    れたデータに応答して、前記命令によって要求されたオ
    ペランドに対応する論理オペランドアドレスを提供し、 前記論理命令アドレスに応答して対応する命令アドレス
    を生成し、それを前記メモリに提供し、 前記論理オペランドアドレスに応答して対応するオペラ
    ンドアドレスを生成し、それを前記メモリに提供する、 取り出し機構。
  2. 【請求項2】 請求項1に記載の取り出し機構におい
    て、 前記プロセッサは特定の命令に応答してオペランド書き
    込みオペレーションを行い、 前記アドレス手段は前記プロセッサのオペランド書き込
    みオペレーションに応答し、前記プロセッサクロック信
    号の前記第1のエッジでオペランド書き込みアドレスを
    提供し、 前記プロセッサは、書き込みオペレーションに応答し、
    前記プロセッサクロック信号の前記第1のエッジの後の
    決められた間隔において前記メモリに書き込まれるべき
    オペランドを提供し、 前記メモリは、前記オペランド書き込みアドレスに応答
    し、前記プロセッサクロック信号の次に発生する前記第
    1のエッジで前記オペランドを受信する、前記取り出し
    機構。
  3. 【請求項3】 請求項1に記載の取り出し機構におい
    て、 論理的な次の命令アドレス又は論理的な次のオペランド
    アドレスは、 プロセスの前記論理的アドレススペースの領域を表す情
    報のためのページ番号フィールドと、 前記ページ番号フィールドによって識別される前記諭理
    的アドレスの領域内の1バイトの情報の位置を表す情報
    のためのバイトインデックスフィールドとを備え、 次の命令アドレス又は次のオペランドアドレスは、 前記メモリの前記アドレススペースの領域を識別する情
    報のためのフレーム番号フィールドと、 前記フレーム番号フィールドによって識別される前記メ
    モリのアドレススペースの前記領域内の1バイトの情報
    の位置を識別する情報のためのバイトインデックスフィ
    ールドと、を備え、 次の命令アドレス又は次のオペランドアドレスの最初の
    表示の前記ページ番号フィールド及びバイトインデック
    スフィールドは、対応する次の命令アドレス又は次のオ
    ペランドアドレスの前記フレーム番号フィールド及びバ
    イトインデックスフィールドに、それぞれ、対応する、
    前記取り出し機構。
  4. 【請求項4】 請求項3に記載の取り出し機構におい
    て、 前記次の命令と次のオペランドのレジスタ手段は、それ
    ぞれが、フレーム番号領域及びバイトインデックス領域
    に構成され、 前記次の命令と次のオペランドのレジスタ手段のそれぞ
    れの前記フレーム番号領域及びバイトインデックス領域
    は別個に書き込み可能な入力を有し、 前記アドレス変換手段は、 前記論理的な次の命令及び次のオペランドのアドレスに
    応答し、対応する次の命令及び次のオペランドのアドレ
    スを記憶し且つ提供する、アドレス変換記憶手段であっ
    て、 前記アドレス変換記憶手段のアドレス出力は、前記次の
    命令と次のオペランドのレジスタ手段の前記書き込みフ
    レーム番号と書き込みバイトインデックスの入力にそれ
    ぞれ接続されたフレーム番号フィールド出力とバイトイ
    ンデックスフィールド出力とに構成される、アドレス変
    換記憶手段と、 前記プロセッサの前記論理的アドレス出力の前記バイト
    インデックスフィールド出力から且つ前記次の命令と次
    のオペランドのレジスタ手段の前記書き込みバイトイン
    デックス入力へ接続され、直接にバイトインデックスフ
    ィールドを前記次の命令と次のオペランドのレジスタ手
    段に書き込む、バイトインデックスバイパス手段と、を
    含む、前記取り出し機構。
JP7228454A 1985-05-06 1995-07-10 命令及びオペランドをプロセッサに提供する取り出し機構 Expired - Lifetime JP2638581B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US73097785A 1985-05-06 1985-05-06
US730977 1985-05-06

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP61103714A Division JPS61256455A (ja) 1985-05-06 1986-05-06 情報処理システム

Publications (2)

Publication Number Publication Date
JPH0850547A JPH0850547A (ja) 1996-02-20
JP2638581B2 true JP2638581B2 (ja) 1997-08-06

Family

ID=24937565

Family Applications (2)

Application Number Title Priority Date Filing Date
JP61103714A Pending JPS61256455A (ja) 1985-05-06 1986-05-06 情報処理システム
JP7228454A Expired - Lifetime JP2638581B2 (ja) 1985-05-06 1995-07-10 命令及びオペランドをプロセッサに提供する取り出し機構

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP61103714A Pending JPS61256455A (ja) 1985-05-06 1986-05-06 情報処理システム

Country Status (5)

Country Link
EP (2) EP0509558B1 (ja)
JP (2) JPS61256455A (ja)
AU (1) AU5634086A (ja)
CA (1) CA1267442A (ja)
DE (1) DE3650707T2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0400851A3 (en) * 1989-06-02 1992-10-21 Hewlett-Packard Company Efficient cache utilizing a store buffer
EP0795820B1 (en) * 1993-01-21 2000-03-01 Advanced Micro Devices Inc. Combined prefetch buffer and instructions cache memory system and method for providing instructions to a central processing unit utilizing said system.
EP2041645B1 (en) * 2006-07-11 2016-12-07 Freescale Semiconductor, Inc. Microprocessor and method for register addressing therein
US9110595B2 (en) 2012-02-28 2015-08-18 AVG Netherlands B.V. Systems and methods for enhancing performance of software applications
CN105094691B (zh) * 2014-05-21 2019-05-21 华为技术有限公司 一种数据操作的方法、设备和系统
KR102407128B1 (ko) * 2018-01-29 2022-06-10 마이크론 테크놀로지, 인크. 메모리 컨트롤러
CN112379928B (zh) * 2020-11-11 2023-04-07 海光信息技术股份有限公司 指令调度方法以及包括指令调度单元的处理器
CN112596790B (zh) * 2020-12-10 2022-11-22 海光信息技术股份有限公司 执行访存微指令的方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR129151A (ja) * 1974-02-09
JPS5411220B2 (ja) * 1974-04-19 1979-05-12
JPS5394133A (en) * 1977-01-28 1978-08-17 Hitachi Ltd Data converter
US4084234A (en) * 1977-02-17 1978-04-11 Honeywell Information Systems Inc. Cache write capacity
US4204252A (en) 1978-03-03 1980-05-20 Digital Equipment Corporation Writeable control store for use in a data processing system
US4298929A (en) * 1979-01-26 1981-11-03 International Business Machines Corporation Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability
AU540771B2 (en) * 1979-01-31 1984-12-06 Honeywell Information Systems Microprogrammed control system
JPS57106937A (en) * 1980-12-24 1982-07-03 Fujitsu Ltd Prefetch controller
SE445270B (sv) * 1981-01-07 1986-06-09 Wang Laboratories Dator med ett fickminne, vars arbetscykel er uppdelad i tva delcykler
JPS57200985A (en) * 1981-06-01 1982-12-09 Mitsubishi Electric Corp Buffer memory device
US4403287A (en) 1981-08-24 1983-09-06 Bell Telephone Laboratories, Incorporated Microprocessor architecture having internal access means
JPS60500187A (ja) * 1982-12-30 1985-02-07 インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン データ処理システム

Also Published As

Publication number Publication date
EP0509558A3 (en) 1993-01-20
JPS61256455A (ja) 1986-11-14
AU5634086A (en) 1986-11-13
EP0509558A2 (en) 1992-10-21
JPH0850547A (ja) 1996-02-20
DE3650707D1 (de) 1999-02-25
CA1267442A (en) 1990-04-03
EP0201848A3 (en) 1989-12-13
DE3650707T2 (de) 1999-08-19
EP0201848A2 (en) 1986-11-20
EP0509558B1 (en) 1999-01-13

Similar Documents

Publication Publication Date Title
US4926317A (en) Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
US4620275A (en) Computer system
US5291586A (en) Hardware implementation of complex data transfer instructions
JP2796590B2 (ja) メモリ装置及びそれを使用したデータ処理装置
US5438670A (en) Method of prechecking the validity of a write access request
EP0628184B1 (en) Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US4110822A (en) Instruction look ahead having prefetch concurrency and pipeline features
US6351804B1 (en) Control bit vector storage for a microprocessor
US5838897A (en) Debugging a processor using data output during idle bus cycles
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
US5289587A (en) Apparatus for and method of providing the program counter of a microprocessor external to the device
JPH02208729A (ja) マイクロコード式実行装置での並列動作による複数機能装置の制御
US5150468A (en) State controlled instruction logic management apparatus included in a pipelined processing unit
JPS59502159A (ja) 仮想マシンデ−タプロセツサ
GB2200484A (en) Detecting and handling memory-mapped i/o by a pipelined computer
US5263153A (en) Monitoring control flow in a microprocessor
JPH0578050B2 (ja)
US4812972A (en) Microcode computer having dispatch and main control stores for storing the first and the remaining microinstructions of machine instructions
JP2638581B2 (ja) 命令及びオペランドをプロセッサに提供する取り出し機構
US6477635B1 (en) Data processing system including load/store unit having a real address tag array and method for correcting effective address aliasing
GB2200482A (en) Monitoring control flow in a microprocessor
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
EP0371418A2 (en) Apparatus for and method of providing the program counter of a microprocessor external to the device
EP0156307A2 (en) Pipelined processor having dual cache memories