JPH0666052B2 - メモリ内容を機械レジスタに自動的に写像する計算機 - Google Patents

メモリ内容を機械レジスタに自動的に写像する計算機

Info

Publication number
JPH0666052B2
JPH0666052B2 JP58501054A JP50105483A JPH0666052B2 JP H0666052 B2 JPH0666052 B2 JP H0666052B2 JP 58501054 A JP58501054 A JP 58501054A JP 50105483 A JP50105483 A JP 50105483A JP H0666052 B2 JPH0666052 B2 JP H0666052B2
Authority
JP
Japan
Prior art keywords
address
instruction
stack
registers
register
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
JP58501054A
Other languages
English (en)
Other versions
JPS59500241A (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.)
AT&T Corp
Original Assignee
AT&T Technologies 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 AT&T Technologies Inc filed Critical AT&T Technologies Inc
Publication of JPS59500241A publication Critical patent/JPS59500241A/ja
Publication of JPH0666052B2 publication Critical patent/JPH0666052B2/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/451Stack 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)

Description

【発明の詳細な説明】 本発明はデジタル計算機に関し、特に、機械レジスタの
自動的割り付けに関する。
デジタル計算機は、計算機蓄積装置の階層の最低位レベ
ルのものとしてレジスタを長年にわたつて使用して来
た。レジスタは主メモリよりも速くアクセスタイムを持
つが、そのコストのためには数は少い。一時は、レジス
タの使用は、機械言語によるプログラマによつて直接制
御された。現在では、レジスタの使用は、主として、他
の計算機プログラムであるコンパイラによつて制御され
る。コンパイラは、理解の容易な高レベル・ソース言語
を、機械の低レベル目的言語に変換する。このコンパイ
ラによつて行われる変換の仕事の一部は、現在有効なデ
ータ項目を可能な限りレジスタに入れることである。こ
の方法によつて主メモリへの参照を少くし、全体の能率
を高速化できる。この仕事はレジスタの割付けと呼ばれ
るが、コンパイラプログラムにとつてはめんどうなもの
で、コンパイラが大きく複雑になり、保守がやつかい
で、作成にもコストが高くつく。
計算機命令は、演算又は論理操作で用いられるデータオ
ペランドを、アドレスモードを使用して指定する。アド
レスとは、蓄積装置内で特定のデータ又は命令の位置を
指すのに用いられる用語である。アドレスモードは、た
とえば、データが、レジスタ内にあるのか、命令で指定
されたアドレスのところにあるのか、または、命令で指
定されたあるレジスタに蓄えられているアドレスのとこ
ろにあるのかを指定する。多くの計算機で使用され、
“相対アドレス”と呼ばれているアドレスモードは、レ
ジスタの内容を命令で指定された定数に加算することに
よつてアドレスを形成する。このアドレスモードは、ス
タツクデータ構造と呼ばれるものを実現する時に良く使
われる。このため、“スタツク相対アドレス”という用
語が良く用いられ、特定のレジスタをスタツクポインタ
レジスタと呼ぶ。
スタツク相対アドレスはコンパイラで良く使われ、計算
機のメモリの領域を局部プログラム変数、パラメータ、
及び一時記憶に割当てるためのスタツクと呼ばれるデー
タ構造に用いられる。スタツク上に領域を割当てる方法
は、領域割当ての非常に簡単で効率の良い方法として知
られている。このようなスタツクの詳細と、これがコン
パイラでどのように用いられるかについては、ここでは
触れない。その詳細は、コンパイラに関するほとんどの
教科書に記載されている。そのような本の1つとして、
エー.ブイ.アホ(A.V.Aho)及びシエイ.デイー.ア
ルマン(J.D.Ullman)著でアデイソン‐ベスレイパブリ
ツシング カンパニー(Addison-Wesley Publishing
Co)(1977)発行の“プリンシプル オブ コンパイラ
ー デザイン”(“Principles of Compiler Desig
n")がある。
手続きのための局部変数(すなわち、その手続き内のみ
で使用される変数)は、通常スタツク上に割当てられ
る。レジスタを持つ計算機では、計算機の速度を上げる
ために、可能なかぎり変数を主メモリからレジスタへ移
すのはコンパイラプログラムの仕事である。このような
レジスタの割付けは、コンパイラにとつて困難な仕事で
あり、レジスタの割付けを効率良く行うためには、しば
しば1パス以上ソースプログラムを読むことが要求され
る。さらに、1つの手続きが実行中で、これが他の手続
きを呼ぶ必要がある時、レジスタの数は限られているた
め、他の手続きを呼ぶ前にレジスタの内容を主メモリに
退避しなければならない。この処理をレジスタ退避と呼
ぶ。同様に、呼出し元の手続きに戻る時にレジスタを復
旧させねばならない。もしこのようなレジスタの割付け
が不必要になると、コンパイラプログラムの設計は極め
て簡単になる。
レジスタのない計算機もすでに存在し、メモリ−メモリ
形計算機と呼ばれる。しかし、レジスタのない計算機は
実行速度が遅いという欠点を持つ。
本発明の一実施例に従えば、レジスタ形計算機の速度の
利点と、メモリ−メモリ形計算機によるコンパイラの簡
略化との両方を持つものが単一の機械として実現され
た。これは実行中、メモリの内容が自動的に機械レジス
タに写像されるという機構によつて達成されている。こ
の処理は“結合”と呼ばれ、従来技術ではプログラムの
コンパイル中には行われていたが、実行中には行われて
いなかつた。
多くの場合、すべての局部変数がレジスタに割当てら
れ、従来技術のコンパイプログラムのように局部変数の
一部のみをレジスタに割当てるものに較べると、大幅に
改善されている。さらに、本発明では、手続き呼出しの
時に従来のレジスタ形計算機では必要としたレジスタの
退避と復旧を通常は必要としない。
より具体的に述べると、命令が計算機の主メモリから先
取りされる時、命令は命令キヤツシユに入れられる前に
部分的に復号される。この部分複号の時、スタツク相対
アドレスを持つオペランド、すなわちスタツクポインタ
の値と変位の和が作られて絶対メモリアドレスとなる。
このメモリアドレスは命令キヤツシユに蓄えられる。命
令キヤツシユ内のこれらのオペランドアドレスがチエツ
クされ、対応するデータが現在レジスタ群に入つている
かどうか調べられる。入つていれば、アドレスモードが
変えられて、アドレスはレジスタへの指標として使われ
る。このような方法により、レジスタは、従来のような
コンパイラによる方法ではなく、ハードウエアによつて
自動的に割当てられる。
本発明の主たる利点は、レジスタが循環バツフアの形に
なつていて、絶対メモリアドレスの下位ビツトがバツフ
ア内のレジスタアドレスとしても使える点にある。
第1図は本発明の説明に有用なデジタル計算機の関連す
る部分のブロツク図であり、 第2図は第1図に示したデジタル計算機の関連する部分
のより詳細なブロツク図であり、 第3図は第1図のデジタル計算機の主メモリのスタツク
フレームの図形表示である。
第1図は、本発明を実現するのに有用なデジタル計算機
の主要部分のブロツク図を示している。データ及び命令
は主メモリ1に蓄えられる。データオペランドは、実行
装置4の制御のもとでメモリ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に入れられているデータの最高位アド
レスを指している。
命令キヤツシユ3は、通常のキヤツシユメモリ装置であ
り、最も最近に使用された命令を保存する。命令キヤツ
シユ3は多くの命令を蓄えることができ、その各命令に
はいくつかのフイールドがある。すなわち、命令OPコー
ドフイールド16、左アドレスフイールド15、右アドレス
フイールド17、及び命令アドレスフイールド13と命令に
付随したスタツクポインタの値14とからなるタグがあ
る。左アドレスフイールド15及び右アドレスフイールド
はALU24のそれぞれ右及び左の入力に送られるオペラン
ドをアクセスするためのアドレスを含んでいる。各オペ
ランドのアドレスモード、例えば主メモリ1又はスタツ
クキヤツシユ18及び19のいずれかの選択、はキヤツシユ
の命令OPコードフイールド16に入れられている。キヤツ
シユを持つ多くの計算機では、先取り装置は主メモリ1
から命令を取り出して、これに変換を与えることなく直
接命令キヤツシユ3に入れる。しかし、本発明に従え
ば、先取り・復号装置2は、命令を命令キヤツシユ3に
入れる前にスタツク相対アドレスモードを復号する。こ
の方法は、後述するように、呼出しシーケンスと命令セ
ツトの構成により、レジスタ10内のスタツクポインタが
手続き呼出しと戻りとを除いて変化しないことが保証さ
れているために可能になつている。
スタツク相対アドレスモードを持つ命令が先取り・復号
装置2によつて取り出されると、レジスタ10内のスタツ
クポインタの値が、命令内で指定された変位値に加算さ
れ、オペランドの絶対メモリアドレスが形成される。こ
のように、オペランドの計算されたメモリアドレスを用
いるように変更された命令は、命令キヤツシユ3の左又
は右アドレスフイールド15又は17に置かれる。先取り・
復号装置2がスタツク相対アドレスを対応するメモリア
ドレスに変換するとき、このメモリアドレスは、データ
がスタツクキヤツシユレジスタ18及び19、又は主メモリ
1のいずれにあるかを調べるためのチエツクを受ける。
このチエツクは、比較器9において、メモリアドレスを
レジスタ10のスタツクポインタ及びレジスタ11の最大ス
タツクポインタと比較することによつて行われる。も
し、メモリアドレスが、レジスタ10内のスタツクポイン
タの値と最大スタツクポインタレジスタ11の値との間に
入つていれば、データはスタツクキヤツシユ18及び19内
にあり、この命令のアドレスモードはレジスタアドレス
モードに変えられる。メモリアドレスがスタツクポイン
タ10及び最大スタツクポインタ11のアドレスの間に入つ
ていなければ、データは主メモリ1内にあり、この命令
のアドレスモードは主メモリアドレスモードに変えられ
る。
プログラム可能論理配列等で構成された実行制御装置22
の制御の下で、命令キヤツシユからの命令は実行装置4
へ転送される。特に、演算論理装置24の左オペランド
は、バス25を介してメモリをアクセスすることによつて
得られる。左オペランドのアドレスモードが主メモリア
ドレスモードであると、バス25を介して送られるアドレ
スによつて、主メモリ1は要求されたオペランドをバス
32から左のALU入力へ送出する。左オペランドのアドレ
スモードがレジスタモードであると、バス25からの語部
分の下位ビツトがバス28を介してスタツクキヤツシユレ
ジスタ18に送られ、データがバス36に現れる。アドレス
の語部分はメモリ語内のバイトをアドレスするためのビ
ツトは含んでいない。バス25からのアドレスの語部分の
下位ビツトのためのバス28の回線の正確な数は、スタツ
クキヤツシユ18の数の、底を2とするlogで表わされ
る。レジスタ18及び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からレジ
スタ18及び19又は主メモリ1のいずれかに戻される。
実行制御装置22はプログラムカウンタ40の値及びバス26
に現れる命令に従つて動作する。命令キヤツシユ3から
の論理に順を成す命令がバス33を介して実行制御装置22
から要求される。
従来のキヤツシユと異り、スタツクキヤツシユ18及び19
内のレジスタは、メモリの連続する語を蓄えており、従
来のキヤツシユに較べると複雑さと回路密度の点で極め
て安価に実現できる。キヤツシユに入れられた命令の再
入性は、命令キヤツシユ3のタグ部として、スタツクポ
インタをフイールド14に、また命令アドレスをフイール
ド13に入れることによつて保証されている。
命令セツト スタツクキヤツシユレジスタ18及び19を維持するのに4
つのプログラム命令CALL,RETURN,ENTER,及びCATCHが用
いられる。すべての機械命令のなかで、ENTER及びRETUR
Nのみが、レジスタ10内のスタツクポインタを変更する
ことができる。
CALL命令は、通常プログラムカウンタ40の値を戻りアド
レスとして取り、これをスタツクに保存し、次いで目的
アドレスに分岐する。理解を容易にするために、本発明
で用いられているスタツクフレームが第3図に示されて
いる。
CALL命令の行先きはENTER命令である。ENTER命令は新し
い手続きのスタツクフレームのための領域を割当てるの
に用いられ、機械語内にある、新しいスタツクフレーム
の大きさを、レジスタ10内のスタツクポインタから減算
することによつてこれを行う。
RETURN命令は、そのオペランドをレジスタ10内のスタツ
クポインタに加算することによつて現在のスタツクフレ
ームの領域を返却し、次いでスタツク上の戻りアドレス
に分岐する。
CATCH命令は、常にRETURN命令に続いて実行される命令
であり、スタツクキヤツシユレジスタ18及び19に対し、
少くともCATCH命令のオペランドで指定された深さまで
置数されることを保証するために用いられる。
ENTER及びCATCH命令は、スタツクキヤツシユ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内のス
タツクポインタで指されているアドレスに最も近い新し
いフレームのみが、すなわち上位の内容のみがスタツク
キヤツシユ18及び19に入れられる。
手続きから戻つた時、手続きが呼び出されてからスタツ
クキヤツシユ18及び19のどれだけの内容がメモリ1へ戻
されたかはわからない。従つて、ある内容はメモリ1か
ら戻さねばならない。CATCH命令の引数は実行の流れが
再開される前にスタツクキヤツシユ18及び19内で使用で
きる内容の数を示している。
CATCH命令を用いることにより、スタツクキヤツシユへ
の参照がレジスタの数に限定することができ、データが
スタツクキヤツシユ18及び19に実際に入つているか否か
をチエツクすることなく従来のレジスタのようにアクセ
スすることができる。通常のキヤツシユと異り、スタツ
クキヤツシユの参照は、汎用レジスタの参照と同様に失
敗することがない。本発明の利点は、スタツクキヤツシ
ユレジスタ18及び19のアクセスタイムが汎用レジスタマ
シン(図示していない)のレジスタのアクセスタイムに
実質的に等しいことである。
以上で、循環バツフアレジスタ18及び19を指すのに用語
“スタツクキヤツシユ”を用いたのは、スタツク変位を
早く結合することと、レジスタ数を自動的に割付けるた
めである。任意の他のメモリをキヤツシユ化するのに、
同様の機械を使用することに何の制約もない。少数のレ
ジスタを広域変数に割当てることによつて大きな利点が
得られる。
すなわち、局部変数のために使われるスタツクキヤツシ
ユ18及び19内のレジスタに加えて、同様のレジスタ(図
示していない)を用いてメモリ1内の広域変数をコピー
することができる。これらのレジスタはメモリの静的領
域を写像するため、循環バツフアを用いる必要はない。
大きなプログラムでもわずかの広域スカラー変数しか使
用しない。このことから広域変数の動的使用の比率は小
さいといえる。
レジスタ18及び19を内部機械レジスタとすることによ
り、すなわちこれらをコンパイラから見えないようにす
ることによつて、いくつかの利点が得られた。目的プロ
グラムコードの発生は、レジスタ割付けが不要であるた
め、簡単になつた。前述のように、多くの場合におい
て、単一の1パスコンパイラで済んでしまう。局部変数
をレジスタに効率良く割付けるので、数パスの大きな最
適化コンパイラは不要になつた。1パスのコンパイラで
済むため、コンパイラは高速で動作する。コンパイラは
より小さく、より作りやすくなり、“虫”も少くなる。
超大規模集積回路(VLSI)のマイクロプロセツサ(図示
していない)に応用しても、チツプ外のメモリアクセス
タイムを減少させることができる。個々のトランジスタ
のスイツチング速度は増加しているが、チツプ外との速
度が一定であるために、多くの外部参照を行うプロセツ
サには逆効果を与えている。処理技術を改善するとその
ギヤツプが大きくなるばかりである。スタツクキヤツシ
ユ18及び19内のレジスタを用いることによつてメモリ参
照を減少させたことにより、特にVLSIプロセツサには効
果が大きい。レジスタはコンパイアからは見えないた
め、レジスタ数が異つたものであつても、コンパチビリ
テイは維持される。VLSI技術がさらに進めば、コンパイ
ラや命令セツトを変更することなく、スタツクキヤツシ
ユ18及び19により多くのレジスタを追加することができ
る。
フロントページの続き (72)発明者 マツクリラン・フバ−ト・ラエ・ジユニヤ アメリカ合衆国30067ジヨ−ジア・マリエ ツタ・サミツト・ドライヴ4201 (56)参考文献 特開 昭54−74651(JP,A) 特開 昭50−23944(JP,A) 特開 昭54−8427(JP,A) 特開 昭56−169280(JP,A) 特公 昭50−20417(JP,B1) 特公 昭55−43136(JP,B2)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】手続の変数を保持するためのスタックキャ
    ッシュ(例えば、18、19)と主記憶(例えば、1)とを
    有する計算機において、 実行するプログラムの途中に挿入されていて、サブルー
    チンへの移行に関連して実行される該スタックキャッシ
    ュに対する操作命令によって、少なくとも該スタックキ
    ャッシュに対する領域の割り当て、除去、及びスタック
    ポインタの変更を行う手段と、 該スタックキャッシュ(例えば、18、19)に現在蓄えら
    れているデータの最低位アドレスを蓄えるための第1の
    レジスタ(例えば、10)と、 該スタックキャッシュ(例えば、18、19)に現在蓄えら
    れているデータの最高位アドレスを蓄えるための第2の
    レジスタ(例えば、11)とを含み、ここで該最低位アド
    レス及び該最高位アドレスはアドレスの範囲を限定する
    ものであり、 さらに、アドレスを含む計算機命令に応動して命令に含
    まれるアドレスをアドレスの該範囲と比較し、該命令に
    含まれるアドレスが該範囲内にある場合には該命令に含
    まれるアドレスの下位ビットによって識別されるスタッ
    クキャッシュから、もしくは該命令に含まれるアドレス
    が該範囲内にない場合には該命令に含まれるアドレスに
    よって識別される主記憶(例えば、1)位置からオペラ
    ンドフェッチするための手段(例えば、2、3、9)を
    含むことを特徴とする計算機。
  2. 【請求項2】請求の範囲第1項に記載の計算機におい
    て、さらに 該スタックキャッシュが、循環バッファ(例えば、18、
    19)からなることを特徴とする計算機。
  3. 【請求項3】請求の範囲第2項に記載の計算機におい
    て、さらに 該循環バッファ(例えば、18、19)が、複数の計算機レ
    ジスタからなることを特徴とする計算機。
  4. 【請求項4】請求の範囲第1項に記載の計算機におい
    て、 該主記憶(例えば、1)から命令をフェッチし、該命令
    を部分的に復号するための結合手段(例えば、2)をさ
    らに含むことを特徴とする計算機。
JP58501054A 1982-02-24 1983-02-15 メモリ内容を機械レジスタに自動的に写像する計算機 Expired - Lifetime JPH0666052B2 (ja)

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 JPS59500241A (ja) 1984-02-16
JPH0666052B2 true 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)

* Cited by examiner, † Cited by third party
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
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
JPS5725069A (en) * 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
GB2115963B (en) 1985-10-30
JPS59500241A (ja) 1984-02-16
GB8304709D0 (en) 1983-03-23
EP0101718B1 (en) 1986-05-07
EP0101718A1 (en) 1984-03-07
DE3363340D1 (en) 1986-06-12
GB2115963A (en) 1983-09-14
WO1983003017A1 (en) 1983-09-01
CA1187200A (en) 1985-05-14

Similar Documents

Publication Publication Date Title
US5043870A (en) Computer with automatic mapping of memory contents into machine registers during program execution
KR100230105B1 (ko) 간략화된 명령 세트 프로세서의 성능 개선 방법 및 그 프로세서 시스템
EP0595880B1 (en) Memory management method
US5790825A (en) Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions
JP3533294B2 (ja) プロセッサ・システム
KR100218572B1 (ko) 고성능 프로세서의 번역버퍼에 대해 세분성 힌트를 이용하는 프로세서 동작 방법 및 장치
KR100231380B1 (ko) 감소된 명령 세트 프로세서 내부 레지스터의 데이타를 조작하는 방법 및 장치
US6523090B2 (en) Shared instruction cache for multiple processors
EP2542973B1 (en) Gpu support for garbage collection
US20050091468A1 (en) Processor for virtual machines and method therefor
US6513107B1 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
CA1172375A (en) Program call method
US5752273A (en) Apparatus and method for efficiently determining addresses for misaligned data stored in memory
KR100385495B1 (ko) 워드정렬브랜치타겟을가지는처리시스템
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
KR19990037571A (ko) 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법
Berenbaum et al. Architectural Innovations in the CRISP Microprocessor.
JPH0666052B2 (ja) メモリ内容を機械レジスタに自動的に写像する計算機
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation
US6012128A (en) Microcontroller having a page address mode
US6625720B1 (en) System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs
US6321319B2 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
JPS6032220B2 (ja) 情報処理装置
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction