JPS59500241A - メモリ内容を機械レジスタに自動的に写像する計算機 - Google Patents
メモリ内容を機械レジスタに自動的に写像する計算機Info
- Publication number
- JPS59500241A JPS59500241A JP58501054A JP50105483A JPS59500241A JP S59500241 A JPS59500241 A JP S59500241A JP 58501054 A JP58501054 A JP 58501054A JP 50105483 A JP50105483 A JP 50105483A JP S59500241 A JPS59500241 A JP S59500241A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- register
- cache
- instruction
- 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
Links
- 238000000034 method Methods 0.000 claims description 26
- 238000006073 displacement reaction Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000013507 mapping Methods 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 230000008901 benefit Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 241000238631 Hexapoda Species 0.000 description 1
- 241000287462 Phalacrocorax carbo Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/451—Stack data
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
メモリ内容を機械レジスタ
に自動的に写像する計算機
本発明はデジタル計算機に関し、特に、機械レジスタの自動的割り付けに関する
。
デジタル計算機は、記算機蓄積装置の階層の最低位レベルのものとしてレジスタ
を長年にわたって使用して来た。レジスタは主メモリよりも速いアクセスタイム
を持つが、そのコストのために数は少い。一時は、レジスタの使用は、機械言語
によるプログラマによって直接制御された。現在では、レジスタの使用は、主と
して、他の計算機プログラムであるコンパイラによって制御される。
コンパイラは、理解の容易な高レベル・ソース言語を、機械の低レベル目的言語
に変換する。このコンパイラによって行われる変換の仕事の一部は、現在有効な
データ項目を可能な限りレジスタに入れることである。この方法によって主メモ
リへの参照を少くし、全体の能率を高速化できる。この仕事はレジスタの割付け
と呼ばれるが、コンパイラプログラムにとってはめんどうなもので、コンパイラ
が大きく複雑になり、保守がやっかいで、作成にもコストが高くつく。
計算機命令は、演算又は論理操作で用いられるデータオペランドを、アドレスモ
ードを使用して指定する。アドレスとは、蓄積装置内で特定のデータ又は命令の
位置を指すのに用いられる用語である。アドレスモートは、たとえばζデータが
、レジスタ内にあるのか、命令で指定されたアドレスのところにあるのか、また
は、命令で指定されたあるレジスタf蓄えられているアドレスのところにあるの
かを指定する。多くの計算機で使用され、°“相対アドレス″ と呼ばれている
アドレスモードは、レジスタの内容を命令で指定された定数に加算することによ
ってアドレスを形成する。このアドレスモードは、スタックデータ構造と呼ばれ
るものを実現する時に良く使われる。このため、 “スタック相対アドレス″
という用語が良く用いられ、特定のレジスタをスタックポインタレジスタと呼ぶ
。
スタック相対アドレスはコンパイラで良く使われ、計算機のメモリの領域を局部
プログラム変数、パラメータ、及び一時記憶に割当てるためのスタックと呼ばれ
るデータ構造に用いられる。スタック上に領域を割当てる方法は、領域割当ての
非常に簡単で効率の良い方法として知られている。このようなスタックの詳細と
、これがコンパイラでどのように用いられるかについては、ここでは触れない。
その詳細は、コンパイラに関するほとんどの教科書に記載されている。そのよう
な本の1つとして、ニー、ブイ、アホ(A、’V、 Aho ) 及びジエイ、
ディー。
アルマン(J、 D、 Uliman )著でアデイソンーベスレイパフ゛ゝリ
ッシング カンパニ(Addison−Wesley Publishing
Co ) (1977) 発行の″プリンシプル オブ コンパイラ−デザイン
” (”’Pr1nciples of CompilerDesign”γが
ある。
手続きのだめの局部変数(すなわち、その手続き内のみで使用される変数)は、
通常スタック上に割当てられる。レジスタを持つ計算機では、計算機の速度を上
げるために、可能なかぎり変数を主メモリからレジスタへ移すのはコンパイラプ
ログラムの仕事である。このようなレジスタの割付けは、コンパイラにとって困
難な仕事であシ、レジスタの割付けを効率良く行うためには、しばしば1パス以
上ソースプログラムを読むことが要求される。さらに、1つの手続きが実行中で
、これが他の手続きを呼ぶ必要がある時、レジスタの数は限られているため、他
の手続きを呼ぶ前にレジスタの内容を主メモリに退避しなければならない。この
処理をレジスタ退避と呼ぶ。同様に、呼出し元の手続きに戻る時にレジスタを復
旧させねばならない。もしこのようなレジスタの割付けが不必要になると、コン
パイラプログラムの設計は極めて簡単になる。
レジスタのない計算機もすでに存在し、メモリーメモリ形計算機と呼ばれる。し
かし、レジスタのない計算機は実行速度が遅いという欠点を持つ。
本発明の一実施例に従えば、レジスタ形計算機の速度の利点と、メモリーメモリ
形計算機によるコンパイラの簡略化との両方を持つものが単一の機械として実現
された。これは実行中、メモリの内容が自動的に機械レジスタに写像されるとい
う機構によって達成されている。この処理は゛結合”と呼ばれ、従来技術ではプ
ログラムのコンパイル中には行われていたが、実行中には行われていなかった。
多くの場合、すべての局部変数がレジスタに割当てられ、従来技術のコンパイラ
プログラムのように局部変数の一部のみをレジスタに割当てるものに較べると、
大幅に改善・されている。さらに、本発明では、手続き呼出しの時に従来のレジ
スタ形計算機では必要としたレジスタの退避と復旧を通常は必要としない。
よシ具体的に述べると、命令が計算機の主メモリから赤毛シ、される時、命令は
命令キャッシュに入れられる前に部分的に復号される。この部分復号の時、スタ
ック相対アドレスを持つオペランド、すなわちスタックポインタの値と変位の和
が作られて絶対メモリアドレスとなる。
このメモリアドレスは命令キャッシュに蓄えられる。命令キャッシュ内のこれら
のオペランドアドレスがチェックされ、対応するデータが現在レジスタ群に入っ
ているかどうかが調べられる。入っていれば、アドレスモードが変えられて、ア
ドレスはレジスタへの指標として使われる。このような方法によシ、レジスタは
、従来のようなコンパイラによる方法ではなく、ハードウェアによって自動的に
割当てられる。
本発明の主たる利点は、レジスタが循環バッファの形になっていて、絶対メモリ
アドレスの下位ビットがバッファ内のレジスタアドレスとしても使える点にある
。
第1図は本発明の説明に有用なデジタル計算機の関連する部分のブロック図であ
シ、
第2図は第1図に示したデジタル計算機の関連する部分のよシ詳細なブロック図
であシ、
第3図は第1図のデジタル計算機の主メモリのスタックフレームの図形表示であ
る。
第1図は、本発明を実現するのに有用なデジタル計算機の主要部分のブロック図
を示している。データ及び命令は主メモリ1に蓄えられる。データオペランドは
、実行装置ヰの制御のもとでメモリ1からバス8を介して取シ出され、実行装置
4内に蓄えられるが、これについては後述する。命令は命令先取シ・復号装置2
によってメモリ1からバス5を介して取シ出される。後述するように、本発明に
従えば命令は先取シ復号装置2内で部分的に復号される。部分的に復号された命
令はバス6から命令キャッシュ3に入れられる。部分的に復号された命令は実行
装置4によって命令キャッシュ3からバス7を介して読出される。この命令は実
行装置4において、前述のオペランドを用いて実行される。
第2図は、第1図の関連する部分をよシ詳細に示している。命令は、命令先取シ
・復号制御装置12と命令先取シ・復号装置2の制御のもとで、主メモリ1がら
バス5を介して取シ込まれる。スタックポインタレジスタ10は、プログラム変
数の割っけにおける空きスペースと使用済みスペースとの間の境界を指定する働
きをする。
スタックポインタレジスタ10と最大スタックポインタレジスタ11は、それぞ
れ先頭及び末端ポインタとしても使われ、スタックの先頭データ要素を含む通常
の循環バッファを実現できる。循環バッファのデータはスタックキャッシュ18
及び19に入れられておシ、これらのスタックキャッシュはメモリレジスタ装置
であ゛る。レジスタ10のスタックポインタは現在スタックキャッシュ18及び
19に入れられているデータの最低位アドレスを指している。レジスタ11の最
大スタックポインタは、現在スタックキャッシュ18及び19に入れられている
データの最高位アドレスを指している。
命令キャッシュ3id、通常のキャッシュメモリ装置であシ、最も最近に使用さ
れた命令を保存する。命令キャッシュ3は多くの命令を蓄えることができ、その
各命令にはいくつかのフィールドがある。すなわち、命令OPコードフィールド
16、左アドレスフィールド15、右アドレスフィールド17、及び命令アドレ
スフィールド13と命令に付随したスタックポインタの値14とからなるタグが
ある。左アドレスフィールド15及び右アドレスフィールドはALUg4のそれ
ぞ孔右及び左の入力に送られるオペランドをアクセスするためのアドレスを含ん
でいる。各オペランドのアドレスモード、例えば主メモリ1又はスタックキャッ
シュ18及び19のいずれかの選択、はキャッシュの命令OPコードフ゛イール
ド16に入れられている。キャッシュを持つ多くの計算機では、先取り装置は主
メモリ1から命令を取シ出して、これに変換を与えることなく直接命令キャッシ
ュ3に入れる。しかし、本発明に従えば、先取シ・復号装置2は、命令を命令キ
ャッシュ3に入れる前にスタック相対アドレスモードを復号する。この方法は、
後述するように、呼出しシーケンスと命令セットの構成によシ、レジスタ10内
のスタックポインタが手続き呼出しと戻シとを除いて変化しないことが保証され
ているために可能になっている。
スタック相対アドレスモードを持つ命令が先取シ・復号装置2によって取シ出さ
れると、レジスタ10内のスタックポインタの値が、命令内で指定された変位値
に加算され、オペランドの絶対メモリアドレスが形成される。
このように、オペランドの計算されたメモリアドレスを用いるように変更された
命令は、命令キャッシュ3の左又は右アドレスフィールド15又は17に置かれ
る。先取シ・復号装置2がスタック相対アドレスを対応するメモリアドレスに変
換するとき、このメモリアドレスは、データがスタックキャッシュレジスタ18
及び19、又は主メモリ1のいずれにあるかを調べるためのチェックを受ける。
このチェックは、比較器9において、メモリアドレスをレジスタ10のスタック
ポインタ及びレジスタ11の最大スタックポインタと比較することによって行わ
れる。もし、メモリアドレスが、レジスタ10内のスタックポインタの値と最大
スタックポインタレジスタ8
11の値との間に入っていれば、データはスタックキャッシュ18及び19内に
あり、この命令のアドレスモードはレジスタアドレスモードに変えられる。メモ
リアドレスがスタックポインター0及び最大スタックポインター1(7)−アド
レスの間に入っていなければ、データは主ノモリ1内にあシ、この命令のアドレ
スモードは主メモリアドレスモードに変えられる。
プログラム可能論理配列等で構成された実行制御装置22の制御の下で、命令キ
ャッシュからの命令は実行装置4へ転送される。特に、演算論理装置24の左オ
ペランドハ、−ハス25を介してメモリをアクセスすることによって得られる。
左オペランドのアドレスモードが主メモリアドレスモードであると、バス25を
介して送られるアドレスによって、主メモリーは要求されたオペランドをバス3
2から左のALU入力へ送出する。左オペランドのアドレスモードがレジスタモ
ードであると、バス25からの語部分の下位ビットがバス28を介してスタック
キャッシュレジスター8に送られ、デ、−夕がバス36に現れる。アドレスの語
部分はメモリ胎内のバイトをアドレスするためのビットは含んでいない。バス2
5からのアドレスの語部分の下位ビットのためのバス28の回線の正確な数は、
スタックキャッシュ18の数の、底を2とするlogで表わされる。レジスター
8及び19の数は2のべき乗とすべきである。たとえば、1024個のレジスタ
が用意されると、バス28は10本の信号線を含むことになる。
本発明はスタックキャッシュ18及び19と主メモリ1とについて同じアドレス
を用いることにより、効率を下げる中間変換が必要でないという利点を持ってい
る。
本発明に従えば、バス28上のアドレスは、レジスタ18に対して自動的に計算
されるレジスタアドレスとなる。例えば4バイト語長に対するバイトアドレスを
行う時は、バス25からのバイトアドレスの下位2ビツトをバス29からマルチ
プレクサ20に送出する。この方法によシ、1語、半語又はバイト単位で読むこ
とができ、1語及び半語は語境界になくとも良い。マルチプレクサ20は、バイ
トアドレスを行う際に必要なオペランドの整合と符号拡張を行う。
レジスタモードアドレスに従い、データはバス38から左ALU入カへ供給され
る。同様に、右オペランドは、左オペランドと対称性を持ってレジスタ19、マ
ルチプレクサ21、バス30及び31で作られる。レジスタ18及び19、マル
チプレクサ20及び21を2つずつ設けることによシ、左及び右のALUオペラ
ンドが並列に、高速でアクセスできる。ALU24の計算が終了すると、その結
果は、行先きとして指定されたアドレスモードに従い、バス32からレジスタ1
8及び19又は主メモリ1のいずれかに戻される。
実行制御装置22はプログラムカウンタ40の値及びバス26に現れる裾今に従
って動作する。命令キャッシュ3からの論理に順を成す命令がバス33を介して
実行制御装置22から要求される。
従来のキャッシュと異り、□スタックキャッシュ18及−び19内のレジスタは
、メモリの連続する語を蓄えておシ、従来のキャッシュに較べると複雑さと回路
密度の点で極めて安価に実現できる。キャッシュに入れられた命令の再入性は、
命令キャッシュ3のタグ部として、スタックポインタをフィールド14に、また
命令アドレスをフィールド13に入れることによって保証されている。
命令セット
ス・タックキャッシュレジスタ18及び19を維持するのに4つのプログラム命
令CALL、RETURN、 ENTER。
及びCATCHが用いられる。すべての機械命令のなかで、ENTER及びRE
TURNのみが、レジスタ10内のスタックポインタを変更することができる。
CALL命令は、通常プログラムカウンタ40の値を戻りアドレスとして取シ、
これをスタックに保存し、次いで目的アドレスに分岐する。理解を容易にするた
めに、本発明で用いられているスタックフレームが第3図に示されている。
CALL命令の行先きはENTIDR命令である。 ENTER命、令は新しい
手続きのスタックフレームのための領域を割当てるのに用いられ、機械語内にあ
る、新しいスタックフレームの大きさを、レジスタ10内のスタックポインタか
ら減算することによってこれを行う。
RETURN 命令は、そのオペランドをレジスタ1 ’0内のスタックポイン
タに加算することによって現在のスタックフレームの領域を返却し、次いでスタ
ック上の戻シアドレスに分岐する。
CATCH命令は、常にRETURN 命令に続いて実行される命令であり、ス
タックキャッシュレジスタ18及び19に対し、少くともCATCH命令のオペ
ランドで指定された深さまで置数されることを保証するために用いられる。
ENTER及びCATCI(命令は、スタックキャッシュ18及び19のレジス
タがスタック全体を保持するのに十分な大きさを持たない場合を取扱うためにも
用いられる。
手続きに入った時、ENTER命令は、新しいスタックフレームの大きさに等し
い、スタックキャッシュ18及び19内のレジスタの新しい群を割当てようと試
みる。新しいスタックフレーム全体に・対してスタックキャッシュ18及び19
内の空きレジスタ領域が存在すれば、やるべきことは、レジスタ10内のスタッ
クポインタを変更することだけである。
新しいスタック全体を保持するに足る空き領域が存在しないと、スタックキャッ
シュ18及び19において、レジスタ11内の最大スタックポインタで指されて
いるアドレスに最も近い内容がスタックキャッシュ゛制御装置23の制御の下で
バス32からメモリ1へ返される。新しいスタックフレームの大きさが、スタッ
クキャッシュ18及び19の大きさよシ小さければ、新しいスタックフレームの
大きさから空き領域を減算した数のみがメモリ1へ返される。新しいスタックフ
レームの大きさがスタックキャッシュ18及び19の全体の大きさよシ大きいと
、それまでにスタックキャッシュレジスタ18及び19に存在したすべての内容
が、スタックキャッシュ制御装置23の制御の下でバス32からメモリ1へ返さ
れる。さらに、レジスタ10内のスタックポインタで指されているアドレスに最
も近い新しいフレームのみが、すなわち上位の内容のみがスタックキャッシュ1
8及び19に入れられる。
手続きから戻った時、手続きが呼び出されてからスタックキャッシュ18及び1
9のどれだけの内容がメモリ1へ戻されたかはわからない。従って、ある内容は
メモリ1から戻さねばならない。CATCH命令の引数は実行の流れが再開され
る前にスタックキャッシュ18及び19内で使用できる内容の数を示している。
CATCH命令を用いることによシ、スタックキャッシュへの参照がレジスタの
数に限定することができ、データがスタックキャッシュ18及び19に実際に入
っているか否かをチェックすることな〈従来めレジスタのようにアクセスするこ
とができる。通常のキャッシュと異シ、スタックキャッシュの参照は、汎用レジ
スタの参照と同様に失敗することがない。本発明の利点は、スタックキャッシュ
レジスタ18及び19のアクセスタイムが汎用レジスタマシン(図示していない
)のレジスタのアクセスタイムに実質的に等しいことである。
以上で、循環バッファレジスタ18及び19を指すのに用語“スタックキャッシ
ュ″を用いたのは、スタック変位を早く結合することと、レジスタ数を自動的に
割付けるためである。任意の他のメモリをキャッシュ化するのに、同様の機構を
使用することに何の制約もない。少数のレジスタを広域変数に割当てることによ
って大きな利点が得られる。
すなわち、局部変数のために使われるスタックキャッシュ18及び19内のレジ
スタに加えて、同様のレジスタ(図示していない)を用いてメモリ1内の広域変
数をコピーすることができる。これらのレジスタはメモリの静的領域を写像する
ため、循環バッファを用いる必要はない。大きなプログラムでもわずかの広域ス
カラー変数しか使用しない。このことから広域変数の動的使用の比率は小さいと
いえる。
レジスタ18及び19を内部機械レジスタとすることによシ、すなわちこれらを
コンパイラから見えないようにすることによって、いくつかの利点が得られた。
目的プログラムコードの発生は、レジスタ割付けが不要であるため、簡単になっ
た。前述のように、多くの場合において、単一の1バスコンパイラで済んでしま
う。局部変数をレジスタに効率良く割付けるのに、数パスの大きな最適化コンパ
イラは不要になった。1パスのコンパイラで済むため、コンパイラは高速で動作
する。コンノ(イラはより小さく、より作りやすくなシ、 “虫” も少くなる
。
超大規模集積回路(VLSI)のマイクロブロセ゛ンサ(図示していない)に応
用しても、チップ外のメモリアクセスタイムを減少させることができる。個々の
トランジスタのスイッチング速度は増加しているが、チ゛ノブ外との速度が一定
であるために、多くの外部参照を行うプロセッサには逆効果を与えている。処理
技術を改善するとそのギャップが大きくなるばかりである。スタックキャッシュ
18及び19内のレジスタを用いることによってメモリ参照を減少させたことに
より、特にVLSIプロセッサには効果が大きい。レジスタはコンIくイラ75
−らは見えないため、レジスタ数が異ったものであっても、コンパチビリティは
維持される。VLSI技術がさらに進めば、コンパイラや命令セットを変更する
ことなく、スタックキャッシュ18及び19によシ多くのレジスタを追加するこ
とができる。
主メモリのスタックフレームの配置
国際調査報告
Claims (1)
- 1. 手続きの変数を保持するためのスタックキャッジ該主記憶からの該変数を 該スタックキャッシュに自動的に結合する手段とを特徴とする計算機。 2、 上記第1項に従った計算機において、該スタックキャッシュが循環バッフ ァを含むことを特徴とする計算機。 該循環バッファが複数個の機械レジスタを含むことを特徴とする計算機。 4、 上記第1項に従った計算機において、該結合手段が、該主記憶から命令を 取シ出しかつ該命令を部分的に復号する手段を含んでいることを特徴とする計算 機。 5、 上記第4項に従った計算機において、該取出し・復号手段がさらに、 スタックポインタ(sp)レジスタと、最大スタックポインタ、(M S P )レジスタとを含み、該spレジスタ及び該MSPレジスタがsp及びMSPを 蓄えるために用いられ、該SP及び該MSPが該命令を部分的に復号するためと 該スタックキャッシュ内の該手続き変数のそれぞれ下限と上限とを指定するため とに用いられることを特徴とする計算機。 6、 上記第5項に従った計算機において、該スタックキャッシュのアドレスが 該主記憶のアドレスの下位ビットから成ることを特徴とする計算機。 7、上記第5項に従った計算機において、該手続き変数に必要な蓄積領域が該ス タックキャッシュで使用可能な蓄積容量よシも大きくなったことに応動して、複 数個の該変数を該スタックキャッシュから該主記憶に戻す手段を特徴とする計算 機。 8、上記第5項に従った計算機において、該命令を蓄えるための命令キャッシュ を特徴とする計算機。 9、上記第8項に従った計算機において、該手続き変数を該主記憶から該スタッ クキャッシュに対して自動的に写像する手段を特徴とする計算機。 10、手続き変数を蓄えるために機械レジスタを用いる方法において、 1)目的プログラムの実行中に該手続き変数を該主記憶と該機械レジスタとの間 で自動的に転送する工程と、2)該循環バッファ内の蓄積位置の下限及び上限を 限定するのにスタックポインタ(sp)及び最大スタックポインタ(MSP)と を用いる工程と、3)該spに対して変位を加算することによって命令を部分的 に復号する工程と、 4)該手続き変数が該主記憶又は該機械レジスタのいずれに蓄えられているかを 決定するために該部分的に17 復号された命令を使用する工程とを特徴とする方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US35165682A | 1982-02-24 | 1982-02-24 | |
US351656 | 1982-02-24 | ||
US351656DKFR | 1982-02-24 | ||
PCT/US1983/000193 WO1983003017A1 (en) | 1982-02-24 | 1983-02-15 | Computer with automatic mapping of memory contents into machine registers |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59500241A true JPS59500241A (ja) | 1984-02-16 |
JPH0666052B2 JPH0666052B2 (ja) | 1994-08-24 |
Family
ID=23381779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP58501054A Expired - Lifetime JPH0666052B2 (ja) | 1982-02-24 | 1983-02-15 | メモリ内容を機械レジスタに自動的に写像する計算機 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0101718B1 (ja) |
JP (1) | JPH0666052B2 (ja) |
CA (1) | CA1187200A (ja) |
DE (1) | DE3363340D1 (ja) |
GB (1) | GB2115963B (ja) |
WO (1) | WO1983003017A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4811208A (en) * | 1986-05-16 | 1989-03-07 | Intel Corporation | Stack frame cache on a microprocessor chip |
DE3726192A1 (de) * | 1987-08-06 | 1989-02-16 | Otto Mueller | Stacksteuerung |
CN102141905B (zh) * | 2010-01-29 | 2015-02-25 | 上海芯豪微电子有限公司 | 一种处理器体系结构 |
GB2622286A (en) * | 2022-09-02 | 2024-03-13 | Advanced Risc Mach Ltd | Synchronization of load/store operations |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3736566A (en) * | 1971-08-18 | 1973-05-29 | Ibm | Central processing unit with hardware controlled checkpoint and retry facilities |
JPS5474651A (en) * | 1977-11-28 | 1979-06-14 | Toshiba Corp | Stack control system |
JPS5543136A (en) * | 1978-09-20 | 1980-03-26 | Hikari Hodo Kk | Production of asphalten mixture for pavement |
JPS5725069A (en) * | 1980-07-21 | 1982-02-09 | Hitachi Ltd | Vector data processing equipment |
-
1983
- 1983-02-10 CA CA000421276A patent/CA1187200A/en not_active Expired
- 1983-02-15 DE DE8383901027T patent/DE3363340D1/de not_active Expired
- 1983-02-15 WO PCT/US1983/000193 patent/WO1983003017A1/en active IP Right Grant
- 1983-02-15 JP JP58501054A patent/JPH0666052B2/ja not_active Expired - Lifetime
- 1983-02-15 EP EP83901027A patent/EP0101718B1/en not_active Expired
- 1983-02-21 GB GB08304709A patent/GB2115963B/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
EP0101718B1 (en) | 1986-05-07 |
GB2115963B (en) | 1985-10-30 |
GB2115963A (en) | 1983-09-14 |
WO1983003017A1 (en) | 1983-09-01 |
CA1187200A (en) | 1985-05-14 |
EP0101718A1 (en) | 1984-03-07 |
GB8304709D0 (en) | 1983-03-23 |
JPH0666052B2 (ja) | 1994-08-24 |
DE3363340D1 (en) | 1986-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5043870A (en) | Computer with automatic mapping of memory contents into machine registers during program execution | |
US11422837B2 (en) | Virtual machine coprocessor for accelerating software execution | |
KR100230105B1 (ko) | 간략화된 명령 세트 프로세서의 성능 개선 방법 및 그 프로세서 시스템 | |
KR100218572B1 (ko) | 고성능 프로세서의 번역버퍼에 대해 세분성 힌트를 이용하는 프로세서 동작 방법 및 장치 | |
KR100231380B1 (ko) | 감소된 명령 세트 프로세서 내부 레지스터의 데이타를 조작하는 방법 및 장치 | |
US5819063A (en) | Method and data processing system for emulating a program | |
KR100230643B1 (ko) | 고성능 프로세서의 브랜치 예상 동작 방법 및 장치 | |
US7930689B2 (en) | Method and system for accessing indirect memories | |
KR0185988B1 (ko) | 멀티프로세서 또는 파이프 라인식 프로세서 시스템에서 데이타의 보존을 확실히 하는 방법 | |
US5430850A (en) | Data processing system with synchronization coprocessor for multiple threads | |
JP3533294B2 (ja) | プロセッサ・システム | |
US5956751A (en) | Computer memory management system using physical segmentation space allocation | |
JP2000515270A (ja) | ネットワークまたはローカルメモリから受け取った命令セットの実行のための二重命令セットプロセッサ | |
US5339417A (en) | Computer system with two levels of guests | |
CA1172375A (en) | Program call method | |
US7269825B1 (en) | Method and system for relative address translation | |
CN102566970A (zh) | 用于处理具有高速缓存旁路的修饰指令的数据处理器 | |
US5590358A (en) | Processor with word-aligned branch target in a byte-oriented instruction set | |
US6591359B1 (en) | Speculative renaming of data-processor registers | |
JPH06236353A (ja) | マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム | |
JPS59500241A (ja) | メモリ内容を機械レジスタに自動的に写像する計算機 | |
Berenbaum et al. | Architectural Innovations in the CRISP Microprocessor. | |
JPS6136264B2 (ja) | ||
JPS6032220B2 (ja) | 情報処理装置 | |
JP2924708B2 (ja) | 情報処理装置 |