JPH0581119A - レジスタ間接モードを用いる汎用メモリ・アクセス方式 - Google Patents

レジスタ間接モードを用いる汎用メモリ・アクセス方式

Info

Publication number
JPH0581119A
JPH0581119A JP4020743A JP2074392A JPH0581119A JP H0581119 A JPH0581119 A JP H0581119A JP 4020743 A JP4020743 A JP 4020743A JP 2074392 A JP2074392 A JP 2074392A JP H0581119 A JPH0581119 A JP H0581119A
Authority
JP
Japan
Prior art keywords
register
memory
memory address
during
address
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.)
Granted
Application number
JP4020743A
Other languages
English (en)
Other versions
JPH0748187B2 (ja
Inventor
Chiao-Mei Chuang
チアオ−メイ・チアン
Kemal Ebcioglu
ケマル・エブシオグル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0581119A publication Critical patent/JPH0581119A/ja
Publication of JPH0748187B2 publication Critical patent/JPH0748187B2/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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • 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, look ahead
    • G06F9/3824Operand accessing

Abstract

(57)【要約】 【構成】メモリ・アドレス生成動作中に、演算論理装置
(ALU)は汎用レジスタ(GPR)にあるデータからメモリ・ア
ドレスを生成する。そして、メモリ・アドレスは GPR及
びメモリ・アドレス・レジスタ(MAR)に再書込みされ
る。メモリ・アクセス動作中に、メモリをアクセスする
ためにメモリ・アドレスについてMAR がアクセスされ
る。前記動作のために2つのアプローチが提供される。
第1のアプローチでは、メモリ・アクセス動作中のMAR
の使用は明白である。第2のアプローチでは、メモリ・
アクセス動作中のMAR の使用は透明である。第2のアプ
ローチに従って、メモリ・アクセス動作中にMAR を検証
する制御装置が設けられる。 【効果】メモリ・アドレス・レジスタ及びレジスタ間接
メモリ・アクセス・モードを用いるメモリ・アクセス方
式によって再書込み衝突及び長いサイクル・タイムが除
去され、システムの性能が高められる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にコンピュータ・シ
ステムのメモリ・アクセス方式に関し、より詳しくは、
メモリ・アドレス・レジスタ及びレジスタ間接メモリ・
アクセス・モードを用いて実現されるメモリ・アクセス
方式に関する。
【0002】
【従来の技術】従来の多くのコンピュータ・システムで
は、メモリ・アドレス生成はメモリ・ロード命令及びメ
モリ記憶命令のようにメモリ・アクセス命令の一部とし
て実行される。図1は多数の機能装置を備えて同時に複
数の動作を行う従来のコンピュータ・システムの例を示
す。即ち、図1はメモリ・アドレス生成がメモリ・アク
セス命令の一部として実行されるコンピュータ・サブシ
ステム102を示す。
【0003】コンピュータ・サブシステム102は処理装
置104及び記憶装置134 を含む。処理装置104は複数の汎
用レジスタ(GPR)106 を含み、その各々はアドレス生成
のための加算器108及び演算論理装置(ALU)110 に接続さ
れる。ALU 110からの出力126はライン142を介してGPR 1
06に転送(即ち再書込み、ライト・バック)される。加算
器108で生成されたアドレスは記憶装置134に含まれたメ
モリ136 に転送される。データは処理装置104の ALU 11
0側を介してGPR 106とメモリ136 の間で転送される。即
ち、データはメモリ136からバス112、(ALU 110に関連す
る)ALU出力レジスタ138 及びライン142を介してGPR 106
に転送される。
【0004】図2はコンピュータ・サブシステム102 の
パイプライン方式タイミング図を示し、メモリ・ロード
命令202は時刻t0で始まりレジスタ対レジスタ命令212は
時刻t1で始まる。
【0005】メモリ・ロード命令202は次のように動作
する。命令取出しサイクル204の後、復号/アドレス生
成サイクル206の間にメモリ・アドレスが加算器108で計
算される。メモリ・アドレスはメモリ136 に転送され
る。メモリ・アクセス・サイクル208の間に、メモリ136
はデータを(前記メモリ・アドレスによって)検索し、前
記データをALU出力レジスタ138に入れる。再書込みサイ
クル210の間に、ALU出力レジスタ138にある前記データ
はライン142を介してGPR 106 に再書込みされる。
【0006】レジスタ対レジスタ命令212は次のように
動作する。命令取出しサイクル214の後、GPR 106からの
データは復号/実行サイクル216の間にALU 110 で処理
されて演算/論理結果が得られる。再書込みサイクル21
8 の間に、前記演算/論理結果はライン142を介してGPR
106に再書みされる。
【0007】メモリ・ロード命令202はメモリ・アクセ
ス・サイクル208が余分に含まれるので、一様でないパ
イプラインが作られる。即ち、メモリ・ロード命令202
(そして一般にメモリ・アクセス命令)の実行はレジスタ
対レジスタ命令212の実行よりも1サイクル余分にかか
る。一様でないパイプラインの結果として、メモリ・ロ
ード命令202及びレジスタ対レジスタ命令212 はどちら
も、同じサイクル(即ち、t3で始まるサイクル)中にライ
ン142 を介してGPR 106への再書込みを試みる。よっ
て、メモリ・アクセス命令の一部としてメモリ・アドレ
ス生成が実行されるコンピュータ・システムでは "再書
込み" 衝突が起きる。前記再書込み衝突はプロセッサの
性能を低下させる。
【0008】再書込み衝突問題に関する従来の技術の第
1の解決方法では、レジスタ命令が1サイクル延長され
る。これは図3のタイミング図によって示される。図3
で、レジスタ対レジスタ命令302 は命令取出しサイクル
214、復号/実行サイクル216及び再書込みサイクル218
に加えて待ちサイクル304を含む。待ちサイクル304の付
加は一様でないパイプラインを除去することにより再書
込み衝突を除去する。しかしながら、待ちサイクル304
の付加によりパイプラインの不利点が大きくなる。よっ
て、この解決方法はシステムの性能を低下させる欠陥が
ある。
【0009】再書込み衝突問題に関する従来の技術の第
2の解決方法では、メモリ・アクセス命令は2サイクル
命令として実行される。これは図4のタイミング図によ
って示される。図4で、レジスタ対レジスタ命令402 は
1サイクルだけ遅延されてt2で始まる。この解決方法
は、再書込み衝突は除去するが、メモリ・アクセス命令
を1サイクルではなく2サイクルで実行させる。よっ
て、この解決方法はシステムの性能を低下させる欠陥が
ある。
【0010】再書込み衝突問題に関する従来の技術の第
3の解決方法では、再書込みサイクル中に用いるGPR書
込みポートが追加して付加される。図1で、追加のGPR
書込みポートが付加され、GPR 106とメモリ136の間に異
なる経路を設けることが容易になる。この異なる経路
は、ライン142 によって形成された既存の経路とともに
動作し、再書込み衝突を除去する。しかしながら、この
解決方法は多数の機能装置を備えたコンピュータ・シス
テムのハードウェア費用をかなり増大させる。すなわ
ち、もしシステムがN個の機能装置及びW個の書込みポ
ート/機能装置を有するならば、(GPR 106が分割され複
製される場合は)GPR 106にW*(Nの2乗)の入力ポート
が必要になる。従って、この解決方法はコンピュータ・
システムの費用を増大させる欠陥がある。
【0011】再書込み衝突問題に関する従来の技術の第
4の解決方法では、メモリ・アドレス生成は、メモリ・
アクセス命令のほかに、異なる命令で実行される。異な
る命令でのメモリ・アドレス生成の実行は、多数の機能
装置を備えたコンピュータ・システムのシステム性能に
不利な影響を与えない。図5のタイミング図は第4の解
決方法を示す。図5で、アドレス生成命令502は t0で始
まり、メモリ・ロード命令510はt1で始まり、そしてレ
ジスタ対レジスタ命令518はt2で始まる。
【0012】アドレス生成命令502及びレジスタ対レジ
スタ命令518の動作はレジスタ対レジスタ命令212の動作
に似ている。詳しくは、アドレス生成命令502は、復号
/実行サイクル506の間にアドレスを生成した後、再書
込みサイクル508の間に前記アドレスをGPR 106に再書込
みする。
【0013】メモリ・ロード命令510の動作はメモリ・
ロード命令202の動作に似ている。しかしながら、メモ
リ・ロード命令202と異なり、メモリ・ロード命令510は
アドレス生成を実行しない。代りに、メモリ・ロード命
令510はアドレス生成命令502によって生成されたアドレ
スについてGPR 106 をアクセスする。そしてメモリ・ロ
ード命令510は前記アドレスを用いてメモリ136をアクセ
スする。メモリ・ロード命令510は復号/メモリ・アク
セス(GPR)サイクル514 の間にこれらの2つの動作を実
行する("(GPR)"はアドレスがGPR 106から来ることを表
わす)。
【0014】アドレス生成はメモリ・アクセス命令510
で実行されないので、第4の解決方法は一様でないパイ
プラインを除去する、従って再書込み衝突を除去する。
【0015】しかしながら、復号/メモリ・アクセス(G
PR)サイクル514に関連した経路の長さは復号/実行サイ
クル522 に関連した経路の長さよりもずっと長いので、
第4の解決方法は不十分である。換言すれば、サイクル
によっては他のサイクルよりも実行するのにかなり長く
かかるので、第4の解決方法は不平衡なパイプライン分
割を行う。よって、第4の解決方法は(最も長いパイプ
ライン経路によってサイクル・タイムが決まるから)サ
イクル・タイムが結果的にずっと長くなる欠陥がある。
【0016】すなわち、復号/メモリ・アクセス(GPR)
サイクル514は、(1)GPR 106をアクセスし、アドレス生
成命令502 で生成されたアドレスを検索するための処理
時間、(2)アドレスをGPR 106からメモリ136 に送る伝播
遅延、(3)メモリ136の読取りに関連したメモリ読取り待
ち時間遅延、及び(4) データをメモリ136からALU出力レ
ジスタ138に送る伝播遅延を含む。
【0017】これに対して、復号/実行サイクル522
は、(1)GPR 106をアクセスし、レジスタ対レジスタ命令
518 のデータを検索するための処理時間、及び(2)ALU 1
10の処理時間しか含まない。
【0018】復号/メモリ・アクセス(GPR)サイクル514
と復号/実行サイクル522の間の処理時間の不均衡は、
処理装置104及び記憶装置134が異なるチップ又は回路基
板にある場合は更に大きくなる。もし処理装置104 が多
数の機能装置を含むならば、処理装置104及び記憶装置1
34はおそらく異なるチップ又は回路基板に配置されるで
あろう。
【0019】非常に長い命令語(VLIW)の計算機について
は一様でないパイプラインは更に問題が起きる。VLIW計
算機は多数の機能装置を含む。多数の機能装置は非常に
長い命令語に従って並列に且つロック・ステップで複数
の動作を実行する。全てのパイプライン・インタロック
及び並行取出しはコンパイラによって管理されるから、
コンパイラに提示される一様でないパイプライン又は長
いパイプラインはコンパイラのタスクをかなり複雑にす
る。
【0020】よつて、サイクル・タイムを増やさずに均
一のパイプラインを実現するメモリ・アクセス方式が要
求される。
【0021】
【発明が解決しようとする課題】本発明の目的は、メモ
リ・アドレス・レジスタ及びレジスタ間接メモリ・アク
セス・モードを用いて実現されるメモリ・アクセス方式
を提供し、短いサイクル・タイムを有する均一で且つ短
いパイプラインを実現し且つシステム性能を高めること
である。このメモリ・アクセス方式は汎用レジスタ (GP
R)、1以上のメモリ・アドレス・レジスタ(MAR)、1以
上の演算論理装置(ALU)及びメモリを具備するコンピュ
ータ・システムによって動作する。
【0022】
【課題を解決するための手段】本発明に従って、メモリ
・アドレス生成動作中に、ALUはそのGPRにあるデータか
らメモリ・アドレスを生成する。そして、GPR及びMARに
メモリ・アドレスが再書込みされる。
【0023】メモリ・アクセス動作中に、MAR はメモリ
・アドレスについてアクセスされ、メモリはMARからの
メモリ・アドレスを用いてアクセスする。
【0024】GPR及びALU は第1の回路基板に配置されM
AR及びメモリは第2の回路基板に配置されるかも知れな
い。
【0025】代りに、本発明のメモリ・アクセス方式は
汎用レジスタ (GPR)、1以上の演算論理装置 (ALU)、マ
ルチプレクサ、制御装置及びメモリを有するコンピュー
タ・システムによって動作する。
【0026】メモリ・アドレス生成動作中に、ALUはGPR
にあるデータからアドレスを生成し、生成されたメモリ
・アドレスはGPR及びMARに再書込みされる。
【0027】メモリ・アクセス動作中に、MAR はメモリ
・アドレスについてアクセスされ、メモリはMAR からの
メモリ・アドレスを用いてアクセスされる。また、制御
装置はMARにあるメモリ・アドレスも確認する。もしMAR
にあるメモリ・アドレスが有効であればメモリ・アクセ
スは有効である。
【0028】しかしながら、もしMAR にあるメモリ・ア
ドレスが有効でなければ、制御装置はGPRからマルチプ
レクサを介して有効なメモリ・アドレスをMARに転送す
る。そして、メモリはMAR にあるメモリ・アドレスを用
いて再びアクセスされる。
【0029】できれば、制御装置は (1)現在のメモリ・
アクセス動作のソース・レジスタをを識別し、(2) 直前
のメモリ・アドレス生成動作の宛先レジスタを識別し、
そして(3)ソース・レジスタと宛先レジスタを比較する
ことによってMARに含まれたメモリ・アドレスを確認す
ることが望ましい。もしソース・レジスタと宛先レジス
タが同じならば、MARは有効である。さもなければ、MAR
は無効である。
【0030】
【実施例】本発明はコンピュータ・システムでメモリを
アクセスするためのシステム及び方法を目標とする。特
に、本発明は、短いサイクル・タイムを有する均一で且
つ短いパイプラインが実現されてシステムの性能を高め
るように、メモリ・アドレス・レジスタ及びレジスタ間
接メモリ・アクセス・モードを用いて実現されるメモリ
・アクセス方式を目標とする。
【0031】本発明に従って、メモリ・アドレス生成
は、メモリ・アクセス動作のほかに、異なる動作で実行
される。メモリをアクセスするために、2つの動作が順
次に実行される。第1にメモリ・アドレス生成動作が実
行され、第2にメモリ・アクセス動作が実行される。
【0032】メモリ・アドレス生成動作中に、汎用レジ
スタ(GPR) からのアドレス・データを用いてメモリ・ア
ドレスが生成される。生成されたメモリ・アドレスは G
PRに再書込みされ、メモリ・アドレス・レジスタ(MAR)
にも書込まれる。MAR及びメモリは同じ回路基板に配置
される。MAR 及びメモリは同じチップ上に配置されるか
も知れない。
【0033】メモリ・アクセス動作中に、(もしMARに含
まれたメモリ・アドレスが正しくなければ、メモリ・ア
ドレスについてGPRがアクセスされるが)即時メモリ・ア
クセスについてはGPRはアクセスされない。代りに、MAR
がメモリ・アドレスについてアクセスされる。メモリ・
アドレスはメモリからの読取り又はメモリへの書込みに
用いられる。MAR及びGPRはメモリ・アドレスについてア
クセスされるので、本発明はレジスタ間接モードを用い
るメモリ・アクセス方式を実現する。
【0034】メモリ・アドレス生成は異なる動作で実行
されるので、本発明は一様でないパイプラインを除去す
る、従って再書込み衝突を回避する。メモリ・アクセス
動作中にGPRよりもむしろMARがメモリ・アドレスについ
てアクセスされるので、本発明は復号/実行サイクルと
復号/メモリ・アクセス・サイクルの間の一様でない経
路長を除去することにより均衡のとれたパイプライン分
割を実現し、それによって長いサイクル・タイムを防
ぐ。
【0035】次に本発明の構造及び動作について詳細に
説明する。
【0036】図6は本発明の第1の実施例の構造図を示
す。第1の実施例に従って、本発明の特徴及び利点は、
コンピュータ・ソフトウェアが体系的に理解できるメモ
リ・アドレス・レジスタ(MAR) を用いて実現される。従
って、本発明の第1の実施例は体系的な MAR実施例とも
呼ばれる。
【0037】本発明は図6に示すようなコンピュータ・
システムのサブシステム602 で実現される。本発明の良
好な実施例では、コンピュータ・システムはスーパース
カラ(superscalar)・コンピュータ又は非常に長い命令
語(VLIW) のコンピュータである。VLIWコンピュータは
多数の機能装置を含む。多数の機能装置は非常に長い命
令語によって並行して動作する。すなわち、非常に長い
命令語は多数の機能装置を制御するフィールドを含む。
従って、本発明の良好な実施例に関連した (図7、9及
び10に示す)タイミング図で、(図7の動作702、710及
び718 のような)動作は非常に長い命令語の一部を示す
にすぎない。
【0038】サブシステム602は処理装置604及び記憶装
置640を含む。処理装置604及び記憶装置640 は異なるチ
ップに配置されることもあり且つ(又は)異なる回路基板
に配置されることもある。
【0039】処理装置604は汎用レジスタ(GPR)606、偶
数演算論理装置 (ALU)608、奇数ALU610、偶数ALU出力レ
ジスタ612、バス632及び奇数ALU出力レジスタ614を含
む。図6に明白に示されてはいないが、処理装置604は
多数の偶数ALU 608、奇数ALU 610、偶数ALU出力レジス
タ612、バス632及び奇数ALU出力レジスタ614を具備する
ことができる。
【0040】GPR 606は多数のレジスタを含む。本発明
の良好な実施例では、GPR 606は 128個のレジスタを含
む。どの時点でも、汎用レジスタ(GPR)606のうちの2つ
はライン616、618を介して偶数ALU 608に接続できる。
同様に、GPR 606のうちの2つはライン620、622を介し
て奇数ALU 610に接続できる。
【0041】アドレス生成動作及びレジスタ対レジスタ
動作は偶数ALU 608 で実行される。偶数ALU 608の結果
は偶数ALU出力レジスタ612に記憶される。偶数ALU出力
レジスタからは、偶数ALU 608の結果がライン628 を介
してGPR 606の1つに再書込みされる。
【0042】奇数ALU 610の結果はバス632及びライン63
6を介して奇数ALU出力レジスタ 614に記憶される。奇数
ALU出力レジスタ614からは、奇数ALU 610の結果がライ
ン638を介してGPR 606の1つに再書込みされる。
【0043】記憶装置640はメモリ・アドレス・レジス
タ(MAR)642 及びメモリ646 を含む。MAR 642はメモリ64
6をアクセスするためにメモリ・アクセス動作で用いる
メモリ・アドレスを記憶する。メモリ・アドレス生成動
作の結果として、偶数 ALU 608からライン624を介して
メモリ・アドレスがMAR 642に送られる。
【0044】メモリ646はMAR 642からライン644 を介し
てメモリ・アドレスを受取る。メモリ記憶動作中に、メ
モリ646は奇数ALU 610からライン630、バス632及びライ
ン634を介してデータを受取る。メモリ・ロード動作中
に、メモリ646 はライン634、バス632及びライン636を
介して奇数ALU出力レジスタ614にデータを送る。メモリ
記憶動作及びメモリ・ロード動作のどちらでも、メモリ
646は同じようにMAR 642からメモリ・アドレスを受取
る。それらはシステム性能に大きな影響を直に与えない
から、MAR 642 の正しさが判定されるまで、メモリ記憶
動作は緩衝記憶することができる。従って、本発明の第
1の実施例の動作はメモリ・ロード動作に関連して説明
する。
【0045】図7のパイプライン方式タイミング図に関
連して本発明の第1の実施例の動作を説明する。図7の
タイミング図は t0で始まるメモリ・アドレス生成動作7
02、t1で始まるメモリ・ロード動作710、及びt2で始ま
るレジスタ対レジスタ動作718を示す。
【0046】最初にメモリ・アドレス生成動作702の動
作について説明する。
【0047】命令取出しサイクル704 の間に、命令記憶
領域(図6に図示せず)からメモリ・アドレス生成動作70
2が検索される。
【0048】復号/実行サイクル706の間に、アドレス
・データはGPR 606からライン616、618を介して偶数ALU
608に転送される。偶数ALU 608はメモリ・アドレス生
成動作702 によって指定された方法でアドレス・データ
を処理し、メモリ・アドレスを生成する。例えば、偶数
ALU 608 はアドレス・データの加算、乗算、論理積又は
シフトを行ってメモリ・アドレスを生成することができ
る。そして、メモリ・アドレスは偶数ALU出力レジスタ6
12に記憶される。更に、メモリ・アドレスはMAR642に記
憶される。
【0049】再書込みサイクル708の間に、偶数ALU出力
レジスタ612の中の結果は(もしメモリ・アドレス生成動
作702によって指定されれば) GPR 606の1つに再書込み
される。
【0050】R1、R2及びR3は GPR 606の汎用レジスタで
あると仮定する。また、R1及びR2はアドレス・データを
含み、アドレス・データは復号/実行サイクル706 の間
に合算されてメモリ・アドレスを生成すると仮定する。
更に、メモリ・アドレスは再書込みサイクル708 の間に
R3に再書込みされると仮定する。前記仮定により、メモ
リ・アドレス生成動作702 の間の本発明の動作は下記の
命令で表わすことができる。ここで、MAR 642は明白に
記述される。 MAR,R3 <-- R1 + R2 (ステートメント 1)
【0051】メモリ・アドレス生成動作702はロードMAR
動作702とも呼ばれる。ロードMAR動作702は新たな動作
として実現することができる。さもなければ、ロードMA
R動作702は、レジスタ対レジスタ動作形式にMARフラグ
・ビットを付加することによって、レジスタ対レジスタ
動作として実現することができる。MAR フラグ・ビット
は復号/実行サイクル706の終りにメモリ・アドレスをM
AR 642に記憶すべきかどうかを表わす。
【0052】次にメモリ・ロード動作710の動作につい
て説明する。
【0053】命令取出しサイクル712の間に、動作記憶
領域からメモリ・ロード動作710が検索される。
【0054】メモリ・アクセス(MAR)サイクル714 の始
めに、MAR 642がメモリ・アドレスについてアクセスさ
れる。アクセスされたメモリ・アドレスはメモリ・アド
レス生成動作702の復号/実行サイクル706の終りにMAR
642に取込まれる。次にMAR 642からのメモリ・アドレス
を用いてメモリ646 からデータをアクセスし検索する。
そして、アクセスされたデータはメモリ646からライン6
34、バス632及びライン636を介して奇数ALU出力レジス
タ614に転送される。
【0055】再書込みサイクル716の間に、奇数ALU出力
レジスタ614 にあるデータは、メモリ・ロード動作710
によって指定されると、ライン638を介してGPR 606 の
1つに再書込みされる。
【0056】R4はGPR 606 の汎用レジスタであると仮定
する。更に、データは再書込みサイクル716中に R4に再
書込みされると仮定する。前記仮定により、メモリ・ロ
ード動作710 中の本発明の動作を下記の命令によって表
わすことができる。ここで、MAR 642は明白に記述され
る。 R4 <-- (MAR) (ステートメント 2)
【0057】次にレジスタ対レジスタ動作718の動作に
ついて説明する。
【0058】命令取出しサイクル720の間に、命令記憶
領域からレジスタ対レジスタ動作718が検索される。
【0059】復号/実行サイクル722の間に、もしレジ
スタ対レジスタ動作718によって指定されれば、データ
はGPR 606から偶数ALU 608又は奇数ALU 610 に転送され
る。適切なALU 608、610はレジスタ対レジスタ動作718
によって指定されたようにデータを処理し、結果が生成
される。例えば、適切なALU 608、610はデータの加算、
乗算、論理積又はシフトを行って前記結果が生成され
る。そして、前記結果は適切なALU出力レジスタ612、61
4に記憶される(もしレジスタ対レジスタ動作としてロー
ドMAR動作が実行されれば、レジスタ対レジスタ動作718
で MARフラグ・ビットがセットされ、前記結果は MAR 6
42に記憶されるべきではないことを表わすであろう)。
【0060】再書込みサイクル724の間に、適切なALU出
力レジスタ612、614にある結果は、レジスタ対レジスタ
動作718によって指定されると、GPR 606の1つに再書込
みされる。
【0061】前述のように、メモリ・アドレス生成動作
702 は明らかにメモリ・アドレスをMAR 642に記憶す
る。メモリ・ロード動作710は明らかにメモリ・アドレ
スについてMAR 642 をアクセスする。コンピュータ・ソ
フトウェアは明らかにMAR 642 とともに動作せねばなら
ないから、本発明の第1の実施例はコンピュータ・ソフ
トウェアにとって構造的に理解できることが明白であ
る。
【0062】図7のタイミング図で明らかなように、本
発明は、異なる動作(即ち、ロードMAR動作702)でアド
レス生成を実行することにより、一様でないパイプライ
ンを除去する(従って再書込み衝突を除去する)。
【0063】また、本発明は、メモリ・アクセス動作中
にメモリ・アドレスについて(GPR 606よりもむしろ)MAR
642をアクセスすることにより、長いサイクル・タイム
を回避する。このようにMAR 642を用いることは、メモ
リ・ロード動作710の復号/メモリ・アクセス(MAR)サイ
クル714が終了するのに要する時間はロードMAR動作702
の復号/実行サイクル706の場合とほぼ同じであること
を保証する。
【0064】すなわち、復号/メモリ・アクセス(MAR)
サイクル714は(1)MAR 642でメモリ・アドレスを検索す
るための処理時間、(2) メモリ・アドレスに従ってメモ
リ646からのデータ読取りに関連したメモリ読取り待ち
遅延時間、及び (3)前記データをメモリ646からライン6
34、バス632及びライン636 を介して奇数ALU出力レジス
タ614に送るための伝播遅延を含む。
【0065】復号/実行サイクル706は (1)GPR 606をア
クセスしてロードMAR動作702についてのデータを検索す
るための処理時間、(2)偶数ALU 608の処理時間、及び
(3)メモリ・アドレスを偶数ALU 608からライン624を介
してMAR 642 に送るための伝播遅延を含む。
【0066】実際には、復号/メモリ・アクセス(MAR)
サイクル714と復号/実行サイクル706の両者の処理時間
はほぼ同じである。
【0067】復号/メモリ・アクセス(MAR)サイクル714
と復号/実行サイクル706 の両者の処理時間はほぼ同じ
であるので、本発明の第1の実施例はサイクル・タイム
を増さずに均一のパイプラインを提供する。
【0068】本発明の第1の実施例はMAR読取り動作を
含むことができる。MAR読取り動作はMAR 642 にあるメ
モリ・アドレスをGPR 606の1つに転送するために用い
る。MAR読取り動作はコンピュータ・サブシステム602
の状態を保管するのに役立つ。例えば、MAR 読取り動作
は割込みサービス・ルーチンを実行する直前に実行する
ことができる。
【0069】本発明の第1の実施例の動作は下記の例に
より更に詳細に説明する。左の列は偶数ALU 608によっ
て実行される動作を表わし、右の列は奇数ALU 610によ
って実行される動作を表わす。 偶数ALU 608 奇数ALU 610 =============================================== i1: MAR, R3 <-- R1 + R2 i2: MAR, R10 <-- R11 + R12 R4 <-- (MAR) i3: MAR, R21 <-- R22 + R23 R10 <-- (MAR)
【0070】i2 の間に、R1 + R2 の結果がメモリ646を
アクセスするメモリ・アドレスとして用いられる。同様
に、i3 の間に、R11 + R12 の結果がメモリ646をアクセ
スするメモリ・アドレスとして用いられる。
【0071】図8は本発明の第2の実施例の構造図を示
す。第2の実施例に従って、本発明の特徴及び利点は、
コンピュータ・ソフトウェアに透明なメモリ・アドレス
・レジスタ(MAR) を用いて実現される。従って、本発明
の第2の実施例は透明な MAR実施例とも呼ばれる。
【0072】本発明は図8に示すようなコンピュータ・
システムのサブシステム802 を表わす。本発明の良好な
実施例では、コンピュータ・システムはスーパースカラ
・コンピュータ又は非常に長い命令語(VLIW) のコンピ
ュータである。
【0073】サブシステム802は処理装置804、記憶装置
640及び制御装置808を含む。処理装置804及び記憶装置6
40は異なるチップ及び(又は)異なる回路基板に配置さ
れるかも知れない。
【0074】処理装置804は汎用レジスタ(GPR)606、偶
数ALU(演算論理装置) 608、奇数ALU610、偶数ALU出力レ
ジスタ612、バス632及び奇数ALU出力レジスタ614を備え
る。処理装置804はMUX(マルチプレクサ) 810も含む。図
8に明白に示されてはいないけれども、処理装置804は
多数の偶数ALU 608、奇数ALU 610、偶数ALU出力レジス
タ612、バス632及び奇数ALU出力レジスタ614を含むこと
ができる。
【0075】GPR 606は多数のレジスタを含む。本発明
の良好な実施例では、GPR 606は 128個のレジスタを含
む。いつでも、汎用レジスタ(GPR)606のうちの2つはラ
イン616、618を介して偶数ALU 608に接続できる。同様
に、GPR 606のうちの2つはライン812、622を介して奇
数ALU 610に接続できる。
【0076】アドレス生成動作及びレジスタ対レジスタ
動作は偶数ALU 608 で実行される。偶数ALU 608からの
結果は偶数ALU出力レジスタ612に記憶される。偶数ALU
出力レジスタ612から、偶数ALU 608からの結果がライン
628を介してGPR 606の1つに再書込みされる。
【0077】奇数ALU 610からの結果はバス632及びライ
ン636を介して奇数ALU出力レジスタ614に記憶される。
奇数ALU出力レジスタ614から、奇数ALU 610からの結果
がライン638を介してGPR 606の1つに再書込みされる。
【0078】MUX 810はスイッチとして動作する。すな
わち、MUX 810は記憶装置640 がメモリ・アドレスを偶
数ALU 608から受取るかGPR 606から受取るかを決定す
る。
【0079】記憶装置640はMAR(メモリ・アドレス・レ
ジスタ)642及びメモリ646を含む。MAR 642はメモリ646
をアクセスするメモリ・アクセス動作で用いるメモリ・
アドレスを記憶する。MAR 642は、MUX 810による決定に
従って、メモリ・アドレスを、偶数ALU 608から(ライン
624、MUX 810及びライン820を介して)受取るか又はGPR6
06から(ライン812、814、MUX 810及びライン820を介し
て)受取る。
【0080】メモリ646はMAR 642からライン644 を介し
てメモリ・アドレスを受取る。メモリ記憶動作中に、メ
モリ646は奇数ALU 610からライン630、バス632及びライ
ン634を介してデータを受取る。メモリ・ロード動作中
に、メモリ646はデータをライン634、バス632及びライ
ン636を介して奇数ALU出力レジスタ614 に送る。メモリ
記憶動作及びメモリ・ロード動作のどちらの場合にも、
メモリ646 はメモリ・アドレスをMAR 642 から同じ方法
で受取る。それらはシステムの性能に直に影響しないか
ら、MAR 642 の正しさが判定されるまで、メモリ記憶動
作は緩衝記憶することができる。従って、本発明の第2
の実施例の動作はメモリ・ロード動作に関連して説明す
る。
【0081】制御装置808は少なくともGPR 606及び MUX
810との制御リンク816、818を維持する。制御リンク81
6、818によってメッセージの送受信することにより、制
御装置808 はMAR 642の内容を、有効なメモリ・アドレ
スがMAR642に含まれるように管理する。
【0082】ここで、本発明の第2の実施例の動作を図
9及び図10のパイプライン方式タイミング図に関連し
て説明する。最初に、図9のタイミング図は、t0で始ま
るメモリ・アドレス生成動作902、t1で始まるメモリ・
ロード動作910、及びt2で始まるレジスタ対レジスタ動
作918を示す。
【0083】次に、メモリ・アドレス生成動作902の動
作について説明する。
【0084】命令取出しサイクル904の間に、命令記憶
領域 (図8に図示せず)からメモリ・アドレス生成動作9
02が検索される。
【0085】復号/実行サイクル906の間に、GPR 606か
らライン616、618を介して偶数ALU608にアドレス・デー
タが転送される。偶数ALU 608はメモリ・アドレス生成
動作902 によって指定されたようにアドレス・データを
処理してメモリ・アドレスを生成する。例えば、偶数AL
U 608 はアドレス・データの加算、乗算、論理積又はシ
フトを行ってメモリ・アドレスを生成することができ
る。そして、メモリ・アドレスは偶数ALU出力レジスタ6
12に記憶される。更に、制御装置808はMUX 810を切換え
てMAR 642にメモリ・アドレスが記憶されるようにす
る。
【0086】再書込みサイクル908の間に、偶数ALU出力
レジスタ612 にあるメモリ・アドレスは、メモリ・アド
レス生成動作902によって指定されると、GPR 606の1つ
に再書込みされる。
【0087】R1、R2及びR3は GPR 606の汎用レジスタで
あると仮定する。また、R1及びR2はアドレス・データを
含み、アドレス・データは復号/実行サイクル906 の間
に合算されてメモリ・アドレスを生成すると仮定する。
更に、R3は目標レジスタである、即ちメモリ・アドレス
は再書込みサイクル908 の間にR3に再書込みされると仮
定する。前記仮定により、メモリ・アドレス生成動作90
2 の間の本発明の動作は下記の命令で表わすことができ
る。 R3 <-- R1 + R2 (ステートメント 3)
【0088】前記命令(ステートメント 3)ではMAR 642
は明白に記述されない。制御装置808はメモリ・アドレ
スがMAR 642 に記憶されることを保証する。従って、本
発明の第2の実施例によって、コンピュータ・プログラ
ムはメモリ・アドレスをMAR 642に記憶するためにMAR 6
42 を明白に記述することは必要ではない。MAR642はコ
ンピュータ・プログラムに対して透明である。
【0089】次に、メモリ・ロード動作910の動作につ
いて説明する。
【0090】命令取出しサイクル912の間に、命令記憶
領域からメモリ・ロード動作910が検索される。
【0091】復号/メモリ・アクセス/比較サイクル91
4の始めに、MAR 642がメモリ・アドレスについてアクセ
スされる。そして、MAR642 からのメモリ・アドレスは
メモリ646をアクセスしてメモリ646からデータを検索す
るために用いられる。通常、アクセスされたデータはメ
モリ646からライン634、バス632及びライン636を介して
奇数ALU出力レジスタ614に転送される。もしメモリ・ア
ドレスが無効であれば、アクセスされたデータは奇数AL
U出力レジスタ614に転送されない。メモリ・アドレスの
有効性を判定するプロセスは後に説明する。
【0092】もしメモリ・アドレスが有効であれば、従
って復号/メモリ・アクセス/比較サイクル914の間に
アクセスされたデータが奇数ALU出力レジスタ614に転送
されたならば、再書込みサイクル916が実行される。再
書込みサイクル916の間に、奇数ALU出力レジスタ614に
あるデータは、メモリ・ロード動作910 によって指定さ
れると、ライン638を介してGPR 606の1つに再書込みさ
れる。
【0093】R4はGPR 606の汎用レジスタであると仮定
する。更に、データはサイクル916の間にR4に再書込み
されると仮定する。前記仮定により、メモリ・ロード動
作 910中の本発明の動作は下記の命令によって表わすこ
とができる。 R4 <-- (R3) (ステートメント 4)
【0094】MAR 642よりはむしろ、R3がメモリ・ロー
ド動作910におけるソース・レジスタとして記述され
る。本発明の第2の実施例に従って、コンピュータ・サ
ブシステム802は、たとえメモリ・アクセス動作自身がM
AR 642を明白に記述しなくても、メモリ・アクセス動作
中にメモリ・アドレスについてMAR 642 がアクセスされ
ることを保証する。従って、コンピュータ・プログラム
はメモリ・アドレスについてMAR 642をアクセスするた
めにMAR 642を明白に記述することは必要ではない。MAR
642はコンピュータ・プログラムに対して透明である。
【0095】復号/メモリ・アクセス/比較サイクル91
4 の間に、制御装置808はMAR 642にあるメモリ・アドレ
スを確認する。MAR 642 にあるメモリ・アドレスは幾つ
かの理由のために無効であるかも知れない。例えば、メ
モリ・アドレス生成動作 902とメモリ・ロード動作910
の間に割込みが起き、割込みサービス・ルーチンから戻
った後に、MAR 642はメモリ・アドレス生成動作902によ
って生成されるメモリ・アドレスを含まないことがあ
る。
【0096】メモリ・アドレスを確認するために、制御
装置808 は現在のメモリ・アクセス動作のソース・レジ
スタと直前のメモリ・アドレス生成動作の宛先レジスタ
を比較する。図9のタイミング図において、現在のメモ
リ・アクセス動作はメモリ・ロード動作910 であり、直
前のメモリ・アドレス生成動作はメモリ・アドレス生成
動作902 である。もし前記ソース・レジスタと宛先レジ
スタの内容が同じであれば、MAR 642にあるメモリ・ア
ドレスは有効である。もしMAR 642にあるメモリ・アド
レスが有効であれば、メモリ・ロード動作910 の動作は
前述のように続行する。
【0097】ステートメント3及びステートメント4に
関する前述の例で、現在のメモリ・アクセス動作(即
ち、メモリ・ロード動作910)のソース・レジスタは R3
である。直前のメモリ・アドレス生成動作(即ち、メモ
リ・アドレス生成動作902) の宛先レジスタもR3であ
る。ソース・レジスタと宛先レジスタは内容が同じであ
るから、MAR 642にあるメモリ・アドレスは有効であ
る。
【0098】レジスタ対レジスタ動作918の動作はレジ
スタ対レジスタ動作718の動作に似ている。
【0099】本発明の第2の実施例の動作について更に
下記の例によって説明する。左の列は偶数ALU 608によ
って実行される動作を表わし、右の列は奇数ALU 610に
よって実行される動作を表わす。 偶数ALU 608 奇数ALU 610 =============================================== i1: R3 <-- R1 + R2 i2: R10 <-- R11 + R12 R4 <-- (R3) i3: R20 <-- R21 + R22 R5 <-- (R10)
【0100】i2の間に、R3の内容がメモリ646 をアクセ
スするメモリ・アドレスとして用いられる。同様に、i3
の間に、R10の内容がメモリ646をアクセスするメモリ・
アドレスとして用いられる。
【0101】図9のタイミング図で明らかなように、本
発明は一様でないパイプライン、従って異なる動作(即
ち、メモリ・アドレス生成動作902) でアドレス生成を
実行することによる再書込み衝突を除去する。
【0102】また、本発明はメモリ・ロード動作中にメ
モリ・アドレスのために GPR 606よりはむしろMAR 642
をアクセスすることによって長いサイクル・タイムを回
避する。このようにMAR 642の使用は、メモリ・ロード
動作910の復号/メモリ・アクセス/比較サイクル914が
メモリ・アドレス生成動作902の復号/実行サイクル906
の場合とほぼ同じ時間で終了することを保証する。
【0103】すなわち、復号/メモリ・アクセス/比較
サイクル914は(1) MAR 642でメモリ・アドレス(メモリ
・アドレスはアドレス生成動作902 の間にMAR 642に入
れられた)を検索するための処理時間、(2) メモリ・ア
ドレスに従ってメモリ646からのデータ読取りに関連し
たメモリ読取り待ち遅延時間、及び (3)前記データをメ
モリ646からライン634、バス632及びライン636を介して
奇数ALU出力レジスタ614に送るための伝播遅延を含む。
制御装置808 によって実行されるメモリ・アドレス確認
プロセスは、メモリ646 のアクセス中に実行されるか
ら、復号/メモリ・アクセス/比較サイクル914の処理
時間を増やさない。
【0104】復号/実行サイクル906は、(1)GPR 606を
アクセスしてアドレス生成動作902のためのデータを検
索するための処理時間、(2)偶数ALU 608の処理時間、及
び (3)偶数ALU 608からライン624、MUX 810及びライン8
20を介してMAR 642にメモリ・アドレスを送るための伝
播遅延を含む。
【0105】実際には、復号/メモリ・アクセス/比較
サイクル914 及び復号/実行サイクル906のは処理時間
がほぼ同じである。これは、レジスタ対レジスタ動作90
2がメモリ・アドレス生成動作として又は動作918 のよ
うにレジスタ対レジスタ動作そのものとして動作するか
どうかに関係なく成立つ。
【0106】復号/メモリ・アクセス/比較サイクル91
4及び復号/実行サイクル906の処理時間はほぼ同じであ
るので、サイクル・タイムは、特に長いパイプライン段
階が1つもない均衡のとれたパイプライン分割によって
最適化される。従って、本発明の第2の実施例は再書込
み衝突及び長いサイクル・タイムを除去する。
【0107】次に、MAR 642 にあるメモリ・アドレスが
無効であるときのコンピュータ・サブシステム802 の動
作について図10のパイプライン方式タイミング図によ
って説明する。図10のタイミング図は、t0で始まるメ
モリ・アドレス生成動作1002、t1で始まるメモリ・ロー
ド動作1010、及びt3で始まるレジスタ対レジスタ動作10
20を示す。
【0108】メモリ・アドレス生成動作1002の動作はメ
モリ・アドレス生成動作902 の動作に似ている。
【0109】メモリ・ロード動作1010の動作はメモリ・
ロード動作910 の動作に似ている。しかしながら、もし
復号/メモリ・アクセス/比較サイクル1014の間に制御
装置808がMAR 642にあるメモリ・アドレスが無効である
と判定すれば、データはメモリ646から奇数ALU出力レジ
スタ614 に転送されない(あるいは、データは奇数ALU出
力レジスタ614に転送されるが後に破棄される)。
【0110】代りに、制御装置808 はメモリ・ロード動
作1010のための正しいメモリ・アドレスをMAR 642にロ
ードする。制御装置808は、この動作を、メモリ・ロー
ド動作1010によって指定されると正しいメモリ・アドレ
スについてGPR 606 をアクセスことによって実行する。
そして制御装置808は、MUX 810をライン814 に切換える
ことによって、メモリ・アドレスをGPR 606からライン8
12、814及び820を介してMAR 642に転送する。
【0111】図10に示すように、MAR 642 にあるメモ
リ・アドレスが無効であるとき、制御装置808は復号/
メモリ・アクセス/比較サイクル1014の間にMAR 642を
ロードする。MAR 642のロードはメモリ646 のアクセス
中に実行されるから、MAR 642にロードしても復号/メ
モリ・アクセス/比較サイクル1014の処理時間はあまり
増えない。
【0112】MAR 642にあるメモリ・アドレスが無効で
あるとき、メモリ・ロード動作 1010はメモリ646 をア
クセスする追加のサイクルを必要とする。図10で、こ
の追加のサイクルはメモリ・アクセス・サイクル1016と
して示される。メモリ・アクセス・サイクル1016の間
に、MAR 642にあるメモリ・アドレスはメモリ646をアク
セスしてメモリ646からデータを検索するために用いら
れる。データはライン634、バス632及びライン636を介
して奇数ALU出力レジスタ614に転送される。
【0113】再書込みサイクル1018の間に、奇数ALU出
力レジスタ614にあるデータは、メモリ・ロード動作101
0によって指定されると、ライン638を介してGPR 606の
1つに再書込みされる。
【0114】前記動作は追加のサイクルを必要とするの
で、メモリ・ロード動作1010は拡張サイクル動作と呼ば
れる。コンピュータ・サブシステム802 は拡張サイクル
動作を用いるときは拡張動作モードである。同様の理由
により、メモリ・ロード動作910は通常サイクル動作と
呼ばれる。コンピュータ・サブシステム802は通常サイ
クル動作を用いるときは通常動作モードである。前述の
ように、コンピュータ・サブシステム802はMAR642にあ
るメモリ・アドレスが有効であるときは通常動作モード
で動作する。コンピュータ・サブシステム802はMAR 642
にあるメモリ・アドレスが無効であるときは拡張動作モ
ードで動作する。
【0115】レジスタ対レジスタ動作1020の動作はレジ
スタ対レジスタ動作918 の動作に似ている。しかしなが
ら、図10に示すように、レジスタ対レジスタ動作1020
はメモリ・ロード動作1010の後に(1サイクルの代りに)
2サイクルで開始する。状態計算機(図8に明白には図
示せず)は拡張サイクル動作の後にレジスタ対レジスタ
動作が2サイクルで開始するように動作の呼出しを制御
する。状態計算機は制御装置808の一部とすることがで
きる。
【0116】図10のタイミング図で明らかなように、
本発明は、メモリ・ロード動作中にメモリ・アドレスに
ついてMAR 642 をアクセスすることによって再書込み衝
突を除去し、長いサイクル・タイムを回避する。このよ
うにMAR 642 の使用は、復号/メモリ・アクセス/比較
サイクル1014、メモリ・アクセス・サイクル1016及び復
号/実行サイクル1024が処理する時間がほぼ同じである
ことを保証する(復号/メモリ・アクセス/比較サイク
ル914及び復号/実行サイクル906の処理時間に関する前
述の説明は一般にこれらのサイクルについてあてはま
る)。これらの3つのサイクルについて処理時間はほぼ
同じであるので、パイプライン分割は均衡している。従
って、本発明の第2の実施例は再書込み衝突を除去し且
つ長いサイクル・タイムを回避する。
【0117】図10に示すように、拡張サイクル動作は
動作に2サイクルを要する。従って、本発明の第2の実
施例は、拡張動作モードよりも通常動作モードにおい
て、より効率的である。しかしながら、(もしコンパイ
ラーがメモリ・ロード動作の直前にアドレス生成動作を
置くことによって正しくスケジュールし且つ適切な機能
装置を用いるならば)コンピュータ・サブシステム 802
は、拡張動作モードよりも通常動作モードで、より頻繁
に動作する。従って、本発明の第2の実施例はシステム
全体の性能を低下させずに再書込み衝突を除去する。
【図面の簡単な説明】
【図1】メモリ・アクセス命令の一部としてメモリ・ア
ドレス生成が実行されるコンピュータ・サブシステムを
示す図である。
【図2】図1に示すコンピュータ・サブシステムの第1
のパイプライン方式タイミング図である。
【図3】図1に示すコンピュータ・サブシステムの第2
のパイプライン方式タイミング図である。
【図4】図1に示すコンピュータ・サブシステムの第3
のパイプライン方式タイミング図である。
【図5】図1に示すコンピュータ・サブシステムの第4
のパイプライン方式タイミング図である。
【図6】本発明の第1の実施例の構造図である。
【図7】本発明の第1の実施例のパイプライン方式タイ
ミング図である。
【図8】本発明の第2の実施例の構造図である。
【図9】本発明の第2の実施例の第1のパイプライン方
式タイミング図である。
【図10】本発明の第2の実施例の第2のパイプライン
方式タイミング図である。
【符号の説明】
102 コンピュータ・サブシステム 104 処理装置 134 記憶装置 106 GPR 108 加算器 110 ALU 134 記憶装置 136 メモリ 112 バス 138 ALU出力レジスタ 602 コンピュータ・サブシステム 604 処理装置 606 GPR 608 偶数ALU 610 奇数ALU 612 偶数ALU出力レジスタ 614 奇数ALU出力レジスタ 632 バス 640 記憶装置 642 MAR 646 メモリ 802 コンピュータ・サブシステム 804 処理装置 808 制御装置 810 MUX
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケマル・エブシオグル アメリカ合衆国10589、ニユーヨーク州ソ マース、クリスタル・ドライブ 38番地

Claims (40)

    【特許請求の範囲】
  1. 【請求項1】(1) データを記憶する第1のレジスタ、 (2) メモリ・アドレスを記憶する第2のレジスタ、 (3) 前記第1のレジスタに結合され、メモリ・アドレス
    生成動作中に前記データから前記メモリ・アドレスを生
    成する演算論理手段、及び (4) 前記演算論理手段に結合され、前記メモリ・アドレ
    ス生成動作中に前記メモリ・アドレスを前記第1のレジ
    スタ及び第2のレジスタに再書込みする手段を含むコン
    ピュータ・システム。
  2. 【請求項2】(5) 前記第2のレジスタに結合されたメモ
    リ、 (6) メモリ・アクセス動作中に前記第2のレジスタから
    前記メモリ・アドレスを検索する手段、及び (7) 前記メモリ・アクセス動作中に前記検索されたメモ
    リ・アドレスを用いて前記メモリをアクセスする手段を
    更に含む請求項1のコンピュータ・システム。
  3. 【請求項3】前記第1のレジスタ及び演算論理手段は第
    1の回路基板に配置され且つ前記第2のレジスタ及びメ
    モリは第2の回路基板に配置される請求項2のコンピュ
    ータ・システム。
  4. 【請求項4】(5) 前記第2のレジスタにある前記メモリ
    ・アドレスを前記第1のレジスタに転送して計算機状態
    を保管する手段を更に含む請求項1のコンピュータ・シ
    ステム。
  5. 【請求項5】前記第1のレジスタの出力は前記演算論理
    手段の入力に結合され、前記第2のレジスタの出力は前
    記演算論理手段の前記入力には結合されない請求項1の
    コンピュータ・システム。
  6. 【請求項6】コンピュータに基づいてメモリをアクセス
    する方法であって、 (a) メモリ・アドレス生成動作中にメモリ・アドレスを
    生成するステップ、 (b) 前記メモリ・アドレス生成動作中に前記メモリ・ア
    ドレスを第1のレジスタ及び第2のレジスタに再書込み
    するステップを含むメモリ・アクセス方法。
  7. 【請求項7】(c) メモリ・アクセス動作中に前記第2の
    レジスタから前記メモリ・アドレスを検索するステッ
    プ、及び (d) 前記メモリ・アクセス動作中に前記検索されたメモ
    リ・アドレスを用いて前記メモリをアクセスするステッ
    プを更に含む請求項6のメモリ・アクセス方法。
  8. 【請求項8】前記第2のレジスタにある前記メモリ・ア
    ドレスを前記第1のレジスタに転送することによって計
    算機状態を保管するステップを更に含む請求項6のメモ
    リ・アクセス方法。
  9. 【請求項9】前記第1のレジスタは第1の回路基板に配
    置され且つ前記第2のレジスタ及びメモリは第2の回路
    基板に配置される請求項6のメモリ・アクセス方法。
  10. 【請求項10】(1) データ及びメモリ・アドレスを記憶
    する第1のレジスタ、 (2) 前記メモリ・アドレスを記憶する第2のレジスタ、 (3) 前記第1のレジスタに結合され、メモリ・アドレス
    生成動作中に前記データから前記メモリ・アドレスを生
    成する演算論理手段、 (4) 前記演算論理手段に結合され、前記メモリ・アドレ
    ス生成動作中に前記メモリ・アドレスを前記第1のレジ
    スタ及び第2のレジスタに再書込みする手段、及び (5) メモリ・アクセス動作の間に前記第2のレジスタを
    検証する制御手段を含むコンピュータ・システム。
  11. 【請求項11】(6) 前記第2のレジスタに結合され、前
    記データを記憶するメモリ、 (7) 前記メモリ・アクセス動作中に前記第2のレジスタ
    から前記メモリ・アドレスを検索する手段、及び (8) 前記メモリ・アクセス動作中に前記検索されたメモ
    リ・アドレスを用いて前記メモリをアクセスする手段を
    更に含む請求項10のコンピュータ・システム。
  12. 【請求項12】前記メモリ・アクセス動作中に前記検索
    されたメモリ・アドレスを用いて前記メモリをアクセス
    する前記手段は前記メモリから前記データを検索する手
    段を含む請求項11のコンピュータ・システム。
  13. 【請求項13】もし前記第2のレジスタが有効であれば
    前記メモリ・アクセス動作中に前記検索されたデータを
    前記第1のレジスタに再書込みする手段を更に含む請求
    項12のコンピュータ・システム。
  14. 【請求項14】前記第1のレジスタ及び演算論理手段は
    第1の回路基板に配置され且つ前記第2のレジスタ及び
    メモリは第2の回路基板に配置される請求項11のコン
    ピュータ・システム。
  15. 【請求項15】(6) 前記第1のレジスタ、第2のレジス
    タ及び演算論理手段に結合され、もし前記第2のレジス
    タが無効であれば前記メモリ・アクセス動作中に前記メ
    モリ・アドレスを前記第1のレジスタから前記第2のレ
    ジスタに転送するにマルチプレクサを更に含む請求項1
    0のコンピュータ・システム。
  16. 【請求項16】前記制御手段は前記メモリ・アクセス動
    作中に前記第2のレジスタがメモリをアクセスする有効
    なメモリ・アドレスを含むかどうかを判定する手段を含
    む請求項15のコンピュータ・システム。
  17. 【請求項17】前記判定する手段は現在のメモリ・アク
    セス動作のソース・レジスタ識別を決定する手段、 直前のメモリ・アドレス生成動作の宛先レジスタ識別を
    決定する手段、及び前記ソース・レジスタ識別と宛先レ
    ジスタ識別を比較し前記第2のレジスタが有効であるか
    どうかを判定する、すなわち、もし前記ソース・レジス
    タ識別及び宛先レジスタ識別が等しければ前記第2のレ
    ジスタは有効であると判定する手段を含む請求項16の
    コンピュータ・システム。
  18. 【請求項18】前記第1のレジスタは前記ソース・レジ
    スタ及び宛先レジスタを含む請求項17のコンピュータ
    ・システム。
  19. 【請求項19】前記第1のレジスタの出力は前記演算論
    理手段の入力に結合され、前記第2のレジスタの出力は
    前記演算論理手段の前記入力には結合されない請求項1
    0のコンピュータ・システム。
  20. 【請求項20】コンピュータに基づいてメモリをアクセ
    スする方法であって、 (a) メモリ・アドレス生成動作中にメモリ・アドレスを
    生成するステップ、 (b) 前記メモリ・アドレス生成動作中に前記メモリ・ア
    ドレスを第1のレジスタ及び第2のレジスタに再書込み
    するステップ、及び (c) メモリ・アクセス動作中に前記第2のレジスタを検
    証するステップを含むメモリ・アクセス方法。
  21. 【請求項21】(d) 前記メモリ・アクセス動作中に前記
    第2のレジスタから前記メモリ・アドレスを検索するス
    テップ、及び (e) 前記メモリ・アクセス動作中に前記検索されたメモ
    リ・アドレスを用いて前記メモリをアクセスするステッ
    プを含む請求項20のメモリ・アクセス方法。
  22. 【請求項22】ステップ(e) は前記メモリからデータを
    検索するステップを含む請求項21のメモリ・アクセス
    方法。
  23. 【請求項23】もし前記第2のレジスタが有効であれば
    前記メモリ・アクセス動作中に前記検索されたデータを
    前記第1のレジスタに再書込みするステップを更に含む
    請求項22のメモリ・アクセス方法。
  24. 【請求項24】ステップ(c) はもし前記第2のレジスタ
    が前記メモリ・アクセス動作中にメモリをアクセスする
    有効なメモリ・アドレスを含むかどうかを判定するステ
    ップを含む請求項20のメモリ・アクセス方法。
  25. 【請求項25】前記判定するステップは現在のメモリ・
    アクセス動作のソース・レジスタ識別を判定するステッ
    プ、 直前のメモリ・アドレス生成動作の宛先レジスタ識別を
    判定するステップ、 前記第2のレジスタが有効であるかどうかを判定するた
    めに前記ソース・レジスタ識別と宛先レジスタ識別を比
    較する、すなわち、もし前記ソース・レジスタ識別と宛
    先レジスタ識別が等しければ前記第2のレジスタは有効
    であると判定するステップ、及びもし前記第2のレジス
    タが無効であれば前記第1のレジスタに含まれた有効な
    メモリ・アドレスを前記第2のレジスタに転送するステ
    ップを含む請求項24のメモリ・アクセス方法。
  26. 【請求項26】前記第1のレジスタは前記ソース・レジ
    スタ及び宛先レジスタを含む請求項25のメモリ・アク
    セス方法。
  27. 【請求項27】前記第1のレジスタは第1の回路基板に
    配置され且つ前記第2のレジスタ及びメモリは第2の回
    路基板に配置される請求項20のメモリ・アクセス方
    法。
  28. 【請求項28】前記第1のレジスタ及び第2のレジスタ
    は構造的に異なる請求項20のメモリ・アクセス方法。
  29. 【請求項29】(1) データ及びメモリ・アドレスを記憶
    する第1のレジスタ、 (2) 前記メモリ・アドレスを記憶する第2のレジスタ、 (3) 前記第2のレジスタに結合され、データを記憶する
    メモリ、 (4) 前記第1のレジスタに結合され、メモリ・アドレス
    生成動作中に前記データから前記メモリ・アドレスを生
    成する演算論理手段、 (5) 前記演算論理手段に結合され、前記メモリ・アドレ
    ス生成動作の間に前記メモリ・アドレスを前記第1のレ
    ジスタおよび第2のレジスタに再書込みする手段、 (6) 前記第2のレジスタがメモリ・アクセス動作中に前
    記メモリをアクセスする有効なメモリ・アドレスを含む
    かどうかを判定する手段を含み、前記手段は (a) 現在のメモリ・アクセス動作のソース・レジスタ識
    別を判定する手段、 (b) 直前のメモリ・アドレス生成動作の宛先レジスタ識
    別を判定する手段、及び (c) 前記ソース・レジスタ識別と宛先レジスタ識別を比
    較し、前記第2のレジスタが有効であるかどうかを判定
    する、すなわち、もし前記ソース・レジスタ識別と宛先
    レジスタ識別が等しければ前記第2のレジスタは有効で
    あると判定する手段を含む前記メモリ・アクセス動作中
    に前記第2のレジスタを検証する制御手段、 (7) 前記第1のレジスタ、第2のレジスタ及び演算論理
    手段に結合され、もし前記第2のレジスタが無効であれ
    ば前記メモリ・アクセス動作中に前記メモリ・アドレス
    を前記第1のレジスタから前記第2のレジスタに転送す
    るマルチプレクサ、 (8) 前記メモリ・アクセス動作中に前記第2のレジスタ
    から前記メモリ・アドレスを検索する手段、及び (9) 前記メモリ・アクセス動作中に前記検索されたメモ
    リ・アドレスを用いて前記メモリをアクセスする手段を
    含むコンピュータ・システム。
  30. 【請求項30】前記メモリ・アクセス動作中に前記検索
    されたメモリ・アドレスを用いて前記メモリをアクセス
    する前記手段は前記メモリから前記データを検索する手
    段を含む請求項29のコンピュータ・システム。
  31. 【請求項31】もし前記第2のレジスタが有効であれば
    前記検索されたデータを前記第1のレジスタに再書込み
    する手段を更に含む請求項30のコンピュータ・システ
    ム。
  32. 【請求項32】前記第1のレジスタ及び演算論理手段は
    第1の回路基板に配置され且つ前記第2のレジスタ及び
    メモリは第2の回路基板に配置される請求項29のコン
    ピュータ・システム。
  33. 【請求項33】前記第1のレジスタは前記ソース・レジ
    スタ及び宛先レジスタを含む請求項29のコンピュータ
    ・システム。
  34. 【請求項34】前記第1のレジスタの出力は前記演算論
    理手段の入力に結合され、前記第2のレジスタの出力は
    前記演算論理手段の前記入力には結合されない請求項2
    9のコンピュータ・システム。
  35. 【請求項35】データを含むメモリをコンピュータに基
    づいてアクセスする方法であって、 (a) メモリ・アドレス生成動作中にメモリ・アドレスを
    生成するステップ、 (b) 前記メモリ・アドレス生成動作中に前記メモリ・ア
    ドレスを第1のレジスタ及び第2のレジスタに再書込み
    するステップ、 (c) 前記第2のレジスタが前記メモリ・アクセス動作中
    に前記メモリをアクセスする有効なメモリ・アドレスを
    含むかどうかを判定するステップを含み、前記判定する
    ステップは (1) 現在のメモリ・アクセス動作のソース・レジスタ識
    別を判定するステップ、 (2) 直前のメモリ・アドレス生成動作の宛先レジスタ識
    別を判定するステップ、 (3) 前記ソース・レジスタ識別と宛先レジスタ識別を比
    較し、前記第2のレジスタが有効であるかどうかを判定
    する、すなわち、もし前記ソース・レジスタ識別と宛先
    レジスタ識別が等しければ前記第2のレジスタは有効で
    あると判定するステップ、及び (4) もし前記第2のレジスタが無効であれば前記第1の
    レジスタに含まれた有効なメモリ・アドレスを前記第2
    のレジスタに転送するステップを含む前記メモリ・アク
    セス動作中に前記第2のレジスタを検証するステップ、 (d) 前記メモリ・アクセス動作中に前記第2のレジスタ
    から前記メモリ・アドレスを検索するステップ、及び (e) 前記メモリ・アクセス動作中に前記検索されたメモ
    リ・アドレスを用いて前記メモリをアクセスするステッ
    プを含むメモリ・アクセス方法。
  36. 【請求項36】ステップ(e) は前記メモリから前記デー
    タを検索するステップを含む請求項35のメモリ・アク
    セス方法。
  37. 【請求項37】もし前記第2のレジスタが有効であれば
    前記メモリ・アクセス動作中に前記検索されたデータを
    前記第1のレジスタに再書込みするステップを更に含む
    請求項36のメモリ・アクセス方法。
  38. 【請求項38】前記第1のレジスタは前記ソース・レジ
    スタ及び宛先レジスタを含む請求項35のメモリ・アク
    セス方法。
  39. 【請求項39】前記第1のレジスタは第1の回路基板に
    配置され且つ前記第2のレジスタ及びメモリは第2の回
    路基板に配置される請求項35のメモリ・アクセス方
    法。
  40. 【請求項40】前記第1のレジスタ及び第2のレジスタ
    は構造的に異なる請求項35のメモリ・アクセス方法。
JP4020743A 1991-02-20 1992-01-10 レジスタ間接モードを用いる汎用メモリ・アクセス方法およびコンピュータ・システム Expired - Lifetime JPH0748187B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/659,717 US5367648A (en) 1991-02-20 1991-02-20 General purpose memory access scheme using register-indirect mode
US659717 1991-02-20

Publications (2)

Publication Number Publication Date
JPH0581119A true JPH0581119A (ja) 1993-04-02
JPH0748187B2 JPH0748187B2 (ja) 1995-05-24

Family

ID=24646534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4020743A Expired - Lifetime JPH0748187B2 (ja) 1991-02-20 1992-01-10 レジスタ間接モードを用いる汎用メモリ・アクセス方法およびコンピュータ・システム

Country Status (4)

Country Link
US (1) US5367648A (ja)
EP (1) EP0499853A3 (ja)
JP (1) JPH0748187B2 (ja)
CA (1) CA2059923A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876996A (ja) * 1994-08-31 1996-03-22 Matsushita Electric Works Ltd プログラマブルコントローラ
US8186563B2 (en) 2009-01-27 2012-05-29 Senju Metal Industry Co., Ltd. Automatic soldering device and carrier device

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966514A (en) 1995-05-31 1999-10-12 Matsushita Electric Industrial Co., Ltd. Microprocessor for supporting reduction of program codes in size
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
US5968166A (en) * 1996-03-22 1999-10-19 Matsushita Electric Industrial Co., Ltd. Information processing apparatus and method, and scheduling device for reducing inactivity due to wait state
US5987583A (en) * 1997-10-07 1999-11-16 Microchip Technology Inc. Processor architecture scheme and instruction set for maximizing available opcodes and address selection modes
US6075935A (en) * 1997-12-01 2000-06-13 Improv Systems, Inc. Method of generating application specific integrated circuits using a programmable hardware architecture
US6256784B1 (en) * 1998-08-14 2001-07-03 Ati International Srl Interpreter with reduced memory access and improved jump-through-register handling
US6401172B1 (en) * 1998-12-18 2002-06-04 Intel Corp. Recycle mechanism for a processing agent
US20050166031A1 (en) * 2002-04-26 2005-07-28 Holmberg Anders P. Memory access register file
DE102005048808A1 (de) 2005-10-10 2007-04-12 Basf Ag Beschichtete Schlacke
US10956157B1 (en) 2018-03-06 2021-03-23 Advanced Micro Devices, Inc. Taint protection during speculative execution

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5136037A (ja) * 1974-09-21 1976-03-26 Hitachi Ltd Memoriseigyohoshiki
JPH0281134A (ja) * 1988-09-19 1990-03-22 Nec Corp アドレス生成装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
CH613540A5 (ja) * 1975-02-26 1979-09-28 Siemens Ag
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
DE2846495C2 (de) * 1977-10-25 1993-10-21 Digital Equipment Corp Zentraleinheit
US4339796A (en) * 1978-06-30 1982-07-13 International Business Machines Corporation System for generating a plurality of different addresses for a working memory of a microcontroller during execution of certain instructions
US4245304A (en) * 1978-12-11 1981-01-13 Honeywell Information Systems Inc. Cache arrangement utilizing a split cycle mode of operation
US4208716A (en) * 1978-12-11 1980-06-17 Honeywell Information Systems Inc. Cache arrangement for performing simultaneous read/write operations
US4403284A (en) * 1980-11-24 1983-09-06 Texas Instruments Incorporated Microprocessor which detects leading 1 bit of instruction to obtain microcode entry point address
US4532587A (en) * 1981-08-26 1985-07-30 Texas Instruments Incorporated Single chip processor connected to an external memory chip
US4758978A (en) * 1983-04-18 1988-07-19 Motorola, Inc. Method and apparatus for selectively evaluating an effective address for a coprocessor
USRE34052E (en) * 1984-05-31 1992-09-01 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
EP0211487A1 (en) * 1985-06-28 1987-02-25 Hewlett-Packard Company Conditional operations in computers
US4935867A (en) * 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US4912636A (en) * 1987-03-13 1990-03-27 Magar Surendar S Data processing device with multiple on chip memory buses
JPH0760388B2 (ja) * 1987-06-09 1995-06-28 三菱電機株式会社 パイプライン制御回路
JPH01205339A (ja) * 1988-02-12 1989-08-17 Nec Corp マイクロコンピュータシステム
US5131086A (en) * 1988-08-25 1992-07-14 Edgcore Technology, Inc. Method and system for executing pipelined three operand construct
US5050068A (en) * 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
JP2655191B2 (ja) * 1989-07-05 1997-09-17 三菱電機株式会社 演算処理装置
US5175863A (en) * 1989-10-23 1992-12-29 International Business Machines Corporation Signal data processing system having independently, simultaneously operable alu and macu
US5222240A (en) * 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5136037A (ja) * 1974-09-21 1976-03-26 Hitachi Ltd Memoriseigyohoshiki
JPH0281134A (ja) * 1988-09-19 1990-03-22 Nec Corp アドレス生成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876996A (ja) * 1994-08-31 1996-03-22 Matsushita Electric Works Ltd プログラマブルコントローラ
US8186563B2 (en) 2009-01-27 2012-05-29 Senju Metal Industry Co., Ltd. Automatic soldering device and carrier device

Also Published As

Publication number Publication date
CA2059923A1 (en) 1992-08-21
EP0499853A3 (en) 1993-11-18
US5367648A (en) 1994-11-22
JPH0748187B2 (ja) 1995-05-24
EP0499853A2 (en) 1992-08-26

Similar Documents

Publication Publication Date Title
EP1047989B1 (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
JP2539199B2 (ja) デジタルプロセッサ制御装置
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
US6725357B1 (en) Making available instructions in double slot FIFO queue coupled to execution units to third execution unit at substantially the same time
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US6963962B2 (en) Memory system for supporting multiple parallel accesses at very high frequencies
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
JPH0581119A (ja) レジスタ間接モードを用いる汎用メモリ・アクセス方式
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
US7360023B2 (en) Method and system for reducing power consumption in a cache memory
US20030196072A1 (en) Digital signal processor architecture for high computation speed
US20070300042A1 (en) Method and apparatus for interfacing a processor and coprocessor
US6725355B1 (en) Arithmetic processing architecture having a portion of general-purpose registers directly coupled to a plurality of memory banks
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
EP0181462B1 (en) Microcode control of a parallel architecture microprocessor
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
US5930521A (en) Reorder buffer architecture for accessing partial word operands
JP3461887B2 (ja) 可変長パイプライン制御装置
JP2883465B2 (ja) 電子計算機
JP3325309B2 (ja) サブルーチンリターン命令処理装置
JP3668643B2 (ja) 情報処理装置
EP1442362A1 (en) An arrangement and a method in processor technology
JP3743155B2 (ja) パイプライン制御型計算機
WO2000065452A1 (en) Pipelined access to single ported cache