JPH02232753A - デジタルコンピュータシステムにおける仮想メモリーアドレスから物理的メモリーアドレスへの変換を制御する方法とその装置 - Google Patents

デジタルコンピュータシステムにおける仮想メモリーアドレスから物理的メモリーアドレスへの変換を制御する方法とその装置

Info

Publication number
JPH02232753A
JPH02232753A JP1257635A JP25763589A JPH02232753A JP H02232753 A JPH02232753 A JP H02232753A JP 1257635 A JP1257635 A JP 1257635A JP 25763589 A JP25763589 A JP 25763589A JP H02232753 A JPH02232753 A JP H02232753A
Authority
JP
Japan
Prior art keywords
address
memory
virtual
translation buffer
virtual 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
JP1257635A
Other languages
English (en)
Other versions
JPH0564815B2 (ja
Inventor
Ricky C Hetherington
リッキー シー ヒーザリングトン
Jr David A Webb
ディヴィッド エイ ウェッブ ジュニア
David B Fite
ディヴィッド ビー ファイト
John E Murray
ジョン イー マーリー
Tryggve Fossum
トリューグヴ フォッサム
Dwight P Manley
ドワイト ピー マンリー
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH02232753A publication Critical patent/JPH02232753A/ja
Publication of JPH0564815B2 publication Critical patent/JPH0564815B2/ja
Granted legal-status Critical Current

Links

Classifications

    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Image Input (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本出願は、本出願と同時に出願された次の米国特許出願
においてさらに詳しく説明されるコンピュータシステム
のいくつかの局面を開示する。
エバンス(Evans)その他による「デジタルコンピ
ューターのシステム制御装置とサービスプロセス装置間
のインターフェースJ  ( AN INTERFAC
EBETWEEN  A SYSTEM CONTRO
L UNIT AND A SERVICEPROCE
SSING UNIT OF A DIGITAL C
o河PUTER )、アーノルド(Arnold)その
他による「多重プロセッサシステムのシステム制御装置
と中央処理装置をインターフェースする方法とその装置
」(肝?}100 AND APPARATUS FO
R INTERFACING ASYSTEfl  C
ONTROL  UNIT  FOR  A  MUL
TT−PROCESSORSYSTf!M罰TH TI
IB CENTRAL PROCESSING UNI
TS )、ガクリヤード(Gagl iardo)その
他による「多重プロセッサシステムのシステム制御装置
とシステム主メモリーとをインターフェースする方法と
その手段J ( MET■00 AND MEANS 
POR INTERFAI,rNG ASYSTEM 
 CONTROL  UNIT  FOR  A  M
[ILTI−PR(10)I!SSORSYSTEM讐
ITH T}IE SYSTf!M M^IN MEM
ORY)  、デイ.フィテ(D. Fite)その他
による[パイプラインコンピュータシステムに相いれな
い不定数のポテンシャルメモリーアクセスを除く方法と
その装置」(  MET}100  AND  APP
ARATUS  POR  RESOLVING  A
VARIABLE   NUMBER  OF  PO
TENTIAL  MEMORY  ACCESSCO
NFLICTS  IN  A  PIPEIJNHD
  COMPUTER  SYSTEM  ) 、デイ
.フィテ(D. Fits)その他による「可変長の命
令構成内の多重規則子の解読J  ( DECODIN
GMULTIPLE SPECIFIERS IN A
 VARI^BLE LENGTI{IN STRtl
CTION ARCHTECTURE ”)、デイ.フ
ィテ(ロ, Pite )その他による「仮想命令キャ
ッシュ補充7)L/ゴリズムJ (VIRTUAL I
NSTRUCTION CACHEREFILL AL
GORITHM )、マレー(Murray)その他に
よる「レジスターと同命令範囲内で規則子を改良するレ
ジスターのバイブライン処理J ( PIPELINE
PROCESSING OF REGISTER AN
D REGISTERMODIFYING  SPEC
IFIERS阿ITHIN  TIIESAMEINS
TRUCTION ) 、マレー( Murray )
その他による「デジタルコンピューターのためのデータ
依存分解による多重命令前処理システムJ (MULT
IPLEINSTRUCTION PREPROCES
SING SYSTEM WITI{ DATADEP
BNDENCY RESOLtlTTON FOR D
IGITAL COMPUTERS)、デイ.フィテ(
D. Ffte)その他による「パイプラインプロセッ
サ内での暗示規則子の前処理」( PREPROCES
SING  IMPLIED SPECIFIERS 
IN APIPELINED PROCESSOR )
 、デイ.フィテ( D, Fite )その他による
「条件付き飛び越し予測J  (BLANCI{ PR
EDICTTON)、フォサム(Fossum)その他
による「デジタルコンピュータ用バイブライン浮動小数
点加算器J  ( PIPELINED FLOATI
NGPOINT ADDER POI? DrGITA
LCOMPUTER )、グルンドマン( Grund
mann )その他による[自己時間調整レジスターフ
ァイルJ ( SELF TrMEDREGTSTER
 FILE)、ビーブン( Beaven )その他に
よる「バイブラインコンピュータシステムのエラーを検
知及び補正する方法とその装置J ( METHODA
ND APPARATUS FOR DETECTIN
G AND CORRECTINGERRORS IN
 A PIPELINED COMPUTER ’)、
フリイン(Flynn)その他による「多重プロセッサ
システム内のシステム制御袋置を使用する通信要件を指
定する方法と手段J  ( ?IETHOD  AND
  肝AIJS  FOI?ARI′lITRATIN
G COMlIUNICATION REQtiEST
S IJSINGへSYSTEMCONTROLLIN
ITINAMU!,TI−PROCESSOIマSYS
TEM )、イー・フィテ( E. Fite )その
他による「マイクロコード化命令実行装置における平行
運転での多機能装置の制御J  ( CONTROL 
OF?ltlLTIPLE  l’tlNcflON 
tlNITs WITII PAl?ALLHLPOE
RATION  IN  A  MICROCOロED
  EXECUTTON  IJNIT  )、ウエ・
ンブ・ジュニア( Webb Jr. )その他による
「仮想メモリーシステムを基礎とするYジタルコンピュ
ータの命令バイブラインの範囲内での命令によるメモリ
ーアクセス例外の処理」 ( Pl?OCESSING OF列!:MORY  
ACCESS  EXCEPTIONSWIT}l  
Pl?EFET(JIED  7NSTI?υCTIO
NS  IJITliJN  TIIEINSTR[I
CTION PIPE[、IIJE OF A VIR
TUAL  MEMORYSYSTεM−BASED 
DIGITAL COMPtlTER )、ヘザーリン
トン(l{ethertngLon)その他による[エ
ラー修正可能ライトバックバッファJ (WRITEB
ACK BtlFl’El?誓ITH ERROR C
ORRECTINGC s P A旧LITTES )
、フリイン( Flynn )その他による、「多重プ
ロセッサシステム内のシステム制御装置を使用する通信
要件を決定する方法と千段ヨ( METIIOD  A
ND  MEANS  FOR  ARBITRATI
NGCOMMUNICATIOII  REQtlES
TS  tlsING  A  SYSTEMCONT
ROL UNIT IN A  M1l1,TI−Pl
?OCESSOl? SYSTEM )、チナスワミ−
( Chirinas葬a.my )その他による「多
重プロセッサシステム内でのシステム装置間のデータ交
換用モジュールの自動交換相互連1.!im」( MO
D[JLAR C!?OSSFlAI? IIJTER
CONIJBCTION NETIJORKFOR  
DATA  TI?ANSACTIONS   BF丁
響FEN  SYSTEM   ロNI’TSIN A
 MIJI,TI−PROCESSOI? SYSTE
M ) 、ボルジン( Polziri )その他によ
る「入/出力装置を有する多重ブロセソサシステム用シ
ステム制御装置をインターフェースする方法とその装置
J  ( ?IETIODANI)  APPAl?A
−TIIS  FOR  IN丁εI?FACING 
 A  SYSTEMCONTROL  tlNrT 
FOR  A MIJLTI−Pl?OCESSOR 
SYSTEM剖TH IMPUT/OLlTPiJT 
 UNITS )、ガグリャード( Gagliard
o )その他による「システム主メモリー装置を有する
多重プロセッサシステム用システム制御装置をインター
フェースする手段で使用するメモリー構成J ( ?l
IEMOJ?Y CONIIGtlRATION FO
RUSE WrTH MEANS FOR INTER
FArNG A SYSTE.MCONTROL UN
IT  FOR A M[ILTI  PROCESS
OR  SYSTBMWITI{ THE SYSTE
M  ?IAIN MEMO[lY) 、そして、ガリ
ャード(Gal iardo)その他による「システム
モジュール間のドラム制御信号のエラーチェソクを行な
う方法とソノ手段J  (MBTHOD AND ME
ANSFOJ? ERl?0!? CHE(JING 
OF DRAM−CONTROL SIGNALS8E
T同EN SYSTEM M01)tJLEs)。
(産業上の利用分野)) この発明は、一殻に仮想メモリープロセッサシステム内
で、仮想メモリーアドレスから物理的メモリーアドレス
への翻訳を制1nする装置、特に高速翻訳バッファ、及
び翻訳速度を速めるため、以前に使用された翻訳のキャ
ンシュを維持するための関連構成装置に関する。
(従来の技術) “命令取り出し一実行”サイクルに従ってデータを処理
する従来のデジタルコンピュータにおいて、命令はメモ
リー装置から取り出され、実行される。各サイクルは、
その特定な命令により、数多くの中間ステップ包含して
も良い。命令は、例えば、オペランドを指定し、それは
、命令が実行される前にメモリー装置から取り出されな
ければならない。
小型で、低速のコンピューターにおいては、命令取り出
し一実行サイクルが一度に一命令の割合で実行される。
例えば、次の命令の取り出しは、現在の命令が格納され
るまで、行なわれない。命令取り出し一実行サイクルに
おける各段階に充てられるハードウエアは対応する段階
中のみに使用され、後は次の命令に要されるまで休止状
態となる。
大型のコンピュータは、命令を先取りすることにより実
行時間を短縮するので、次の命令が、現在の命令の結果
が格納されるやいなや解読準備状態にある。これは“逐
次制御方式”の単純形であり、そこでは、最終段階で現
在の命令が実行されると同時に、サイクル内の第一段階
で次の命令が実行される。これはバイブラインの単純化
であり、命令を実行するのに要する合計時間を短縮する
最も進んだコンピュータは命令活動の全順序をパイプラ
イン化する。一つの好例としては、所在地111パウダ
ーミル通り、メイナード、MA、97154 − 14
18のデジタル イクイップメントコーポレーションで
製造、販売されているVAX8600である。VAX8
600の命令バイブラインについては、T,フォサムそ
の他による、DigitalTechnical Jo
urnal, No. 1 .  8月号、1985年
、8ページから23ページに記載された“An Ove
r−view of the V A X8600 s
ystem,  に説明されている。分離パイプライン
段階が、命令取り出し、命令デコード、オペランドアド
レス発生、オペランド取り出し、命令実行、そして結果
格納のために提供されている。パイプライン段階は通常
連続的な命令を処理するのに忙しく稼働するが、そのバ
イブラインを経由する動作は常に最高速で行なわれるわ
けではない。種々の段階が、前にアドレス指定されたデ
ータブロックを格納する高速キャソシュメモリの代わり
に、データを主メモリー装置から取り出さなければなら
ない時、あるいは乗除が命令実行段階を拘束する時は使
用されないでいる。
これらのプロセッサは典型的に仮想メモリーシステムを
採用しており、特に多様な使用者環境に適しているとい
うことが重要である。仮想メモリーシステムにおいて、
プログラムはメモリーロケーションを、恰も実際の物理
的メモリーロケーションであるかのように参照指示する
。稼働している他のプログラムも又、同時に稼働してい
るプログラムのメモリー活動に関わり無くメモリーロケ
ーションを参照指示する。もし各プログラムがとりわけ
物理的メモリーをアクセスしているならばメモリーが衝
突する可能性が大となる。別々のプログラムが同じ物理
的メモリーロケーシタンで読み書きしようとすると、完
全なデータを失うことになる。例えば、一つのプログラ
ムにより、メモリーロケーションに格納されたデータが
、第二のプログラムにより重ね書きされるかも知れない
ので、第一プログラムがそのロケーションに格納したデ
ータを検索するとき、誤ったデータを取り出すこととな
る。
従って、従来のコンピュータシステムは、各プログラム
が処理メモリーの全体にアクセスして稼働する唯一のプ
ログラムであるかのように作動し書き込ませる仮想メモ
リーシステムを採用している。この仮想メモリーシステ
ムを促進するために、如何に仮想メモリーが物理的メモ
リーに対応しているかのトラックを保つための責任がメ
モリーアクセス装置に任されている.仮想から物理的メ
モリーロケーションへの変換についての索引はプロセッ
サメモリー内に維持される。プログラムが仮想メモリー
の参照指示を行なう時、索引にアクセスすることにより
物理的メモリーロケーションに翻訳される. この処理は良好に働くが、バイブラインの目的はプロセ
ッサの処理速度を上昇させることである.明らかに、各
メモリーの参照指示についての変換により費やされる時
間は基本的なプロセッサ速度の負担となる。それゆえに
、従来のシステムは、以前に使用された変換のキャッシ
ュメモリーを維持することによりこれらの変換速度の増
加を行なっている。翻訳バッファは仮想一物理的メモリ
ー変換セットの小さな区分を維持している。このように
して、各メモリーの参照指示は、翻訳バッファにより以
前に使用された変換のセットと比較され、“ヒット”は
完了した変換処理の帰結となる。
メモリー変換を行なうためにアクセスする必要がないの
で、この方法はプロセッサ速度に大きな影響を与える。
しかしなから、翻訳バッファには仮想一物理的メモリー
変換セットの小部分しか含んでいないので、“ミス”が
発生する。′ミス”が発生した時には、正しい変換はメ
モリーから取り出されなければならない。通常、これは
マイクロコードあるいはソフトウエアーで行なわれてい
る。′ミス”発生時、トラップが必要なアドレス演算、
メモリー参照指示、及び妥当性チェックを行なうルーチ
ンへ取り込まれる。正しい変換が翻訳バッファにロード
され、制御がトラップルーチンからプログラムの元の流
れに復帰する。
この翻訳バッファ“ミス”の解決法は、マイクロコード
あるいはソフトウエアーが翻訳バッファに最適なデータ
通路を使用しないので、比較的緩慢な処理となる。故に
、トラップルー千ンへの出入りの時間がかなり長くなる
。さらに、バイブラ・インコンピュータにおいては、多
重メモリー動作での処理中いかなる時でも、その翻訳ハ
ッファ゛ミス”ルーチンは過度に複雑となる。そのルー
チンは、パイプラインの順番が保持され−,“ミスした
”メモリー参照指示がパイプラインの最後に挿入され、
そしてバイブラインがルーチンの最後で再スタートされ
ることを必要とする。最後に、翻訳バッファ準備ルーチ
ンの実行中、ソフトウエアー及びマイクロコードはそれ
らの正常命令実行を行なわない. マイクロコードレベルにおいてよりも、“ミス“発生時
における翻訳バフフプ内での“ミス”を修正、及びアク
セス妨害をチェックするため、デジタルコンピュータシ
ステムにおいて、メモリー管理プロセッサが仮想メモリ
ーアドレスの物理的メモリーアドレスへの変換を制御す
るために提供されている。デジタルコンビュータシステ
ムには、命令装置、実行装置、メモリー、そし7て以前
に変換された仮想アドレスのキャフシュメモリーを有す
る翻訳バッファが備わっている。翻訳バッファが、命令
及び実行装置により引き渡された仮想アドレスに一敗す
る物理的アドレスを引き渡すために適応されている。メ
モリー管理プロセッサは、仮想アドレスを受け取ると同
時に、受け取った仮想アドレスに対応する物理的メモリ
ーアドレスを含む物理的メモリーアドレスを演算する手
段を含む。翻訳バッファキャッシュメモリーにない仮想
アドレスに応じて、演算された物理的メモリーアドし・
スから、受け取った仮想アドレスに対応する物理的メモ
リーアドレスを回復する手段。翻訳バッファキャッシュ
メモリー内の回復された物理的メモリーアドレスを格納
する手段. 望ましくは、メモリー管理ブロセッザが、翻訳バ・ソフ
ァ“ミス″の修正中、アクセス妨害、ページ故障、長さ
妨害、そして変更故障をチェックする。これらの故障は
処理され、次のバイブライン段階へ命令パイプラインを
壊さずに進められる。
デジタルコンピュータを動作させる方法も又提供サれる
.デジタルコンピュータには、命令装置、実行装置、メ
モリー、命令及び実行装置により与えられた仮想アドレ
スをメモリー内の物理的アドレスに変換するためのの翻
訳バッファ、及びメモリー管理プロセッサを含む.その
方法は次の段階からなる。仮想アドレスを受け取る段階
、仮想アドレスを以前に変換された、翻訳バッファ内の
仮想アドレスのキャッシュメモリーと比較する段階、受
け取った仮想アドレスと以前に変換された仮想アドレス
間の釣り合いに応じて、以前に変換された仮想アドレス
に対応する翻訳された物理的アドレスを与える段階、受
け取った仮想アドレスと以前に変換された仮想アドレス
間の釣り合いの欠如に応じてミス信号を引き渡す段階、
ミス信号を受け取ることに先立って、受け取った仮已ア
ドレスに対応する物理的メモリーアドレスを含む物理的
メモリーアドレスを演算する段階、そしてミス信号を受
け取ることに応じて次の段階を経る、演算された物理的
メモリーアドレスから、受け取られた仮想アドレスに対
応する物理的メモリーアドレスを検索する段階、翻訳バ
ッファのキヤ・ノシュ内の検索された物理的メモリーア
ドレスを格納する段階。
発明の他の目的及び特長は次の詳細な説明及び添付図面
参照により明かとなろう。
(実施例) 本発明は種々変更及び改良態様が可能であり、特定な実
施例が図面での例で示され、詳細に説明される。それは
開示された特定な態様に本発明を制限するつもりは無い
ことを理解されよう。しかし、反して、本発明は、添付
された特許請求により明示された本発明の精神と範囲内
の改良、同等、変更等の全てを包含するものである。
第1図はパイプラインコンピュータシステム10の部分
についての上位ブロソク図である。システム10は、主
メモリー14へのアクセスを有する少なくとも一つの中
央処理装置(C P U)を含む。主メモリー14を共
有することにより追加のCPUが、そのようなシステム
で使用可能であることが理解される。例えば、四つまで
のCPUが主メモリー14を共有して同時に作動し、効
果的に作動させることも現実的なことである。
CPU12の内部で、個々の命令の実行が多数の小さな
仕事に分類される。これらの仕事は、その目的に最適に
、委ねられ、分離した、独立の機能的な装置で処理され
る。
各命令は最終的には異なった作業をするのだが、各命令
が分類された多くの小さな仕事は全命令に共通である。
一般に、次の処置が命令実行中行なわれる.命令取り出
し、命令解読、オペランド取り出し、実行、そして結果
格納。このように、委ねられたハードウエアーの使用段
階によって、処置は重なり、全体の命令処理能力を増加
させることが出来る。
パイプラインを通るデータ通路は、各パイプライン段階
の結果を次パイプライン段階へ転送するレジスターのそ
れぞれのセットを含む。これらの転送レジスターは共通
のシステムクロックに同期されている。例えば、第一ク
ロフクサイクルにおいて、第一命令は、命令取り出し専
用のハードウエアーにより取り出される。第二クロック
サイクルにおいて、取り出された命令は、命令解読ハー
ドウエアーにより転送され、解読されるが、同時に、次
の命令は命令取り出しハードウエアーにより取り出され
る。第三クロツクサイクルにおいては、各命令はパイプ
ラインの次の段階に移り、新しい命令が取り出される。
このようにして、バイブラインが満たされた後、命令が
各クロックサイクルの終わりで完全に実行される。
この処理は製造環境でのアワセンブリーラインに類似し
ている。各労働者は、彼あるいは彼女の責任工程を通過
する全製品における一つの作業を完遂することに専心し
ている.各作業が行なわれる時、製品は次第に完成品に
近づく。最終段階で、労働者が課せられた仕事を完遂す
る度に、完成品がテッセンブリーラインから取り出され
る。第1図に示されるように、各CPU (中央処理装
置)12は、少なくとも三つの、メモリーアクセス装置
16、命令装置18、実行装置20とがら成る機能装置
に分割される。
命令装置18は命令を先取りし、オペランドと結果規則
子を得るために演算コードを解読し、オペランドを取り
出し、そしてプログラムカウンターを更新する。命令装
置l8は、オペランド処理装置22、プログラムカウン
ター24と、そして命令デコーダ26から成る。プログ
ラムカウンター24は命令装置内に保持されているので
、正しい命令が、メモリーアクセス装置16内に保持さ
れている高速キャッシュメモリー28から検索される。
キャッシュメモリー28が、主メモリー14に格納され
ている情報の一部のコピーを格納して、メモリーアクセ
ス時間を短縮することにより処理速度を上げるために採
用されている。キャッシュメモリー28の動作はメモリ
ーアクセス装置1Gの説明に関連して詳細に説明される
プログラムカウンター24は望ましくは主メモリー14
やキャッシュ28の物理的メモリーロケーションよりも
仮想メモリーロケーションを利用する。故に、プログラ
ムカウンター24の仮想アドレスを主メモリー14の物
理的アドレスに翻訳しなければならなく、それから命令
を検索することが出来る.それゆえに、プログラムカウ
ンター24の内容はメモリーアクセス装置16に転送さ
れ、そこで翻訳バッファ30がアドレス変換を行なう。
その命令は、変換されたアドレスを使って、キャッシュ
メモリー28内のその物理的メモリーロケーションから
検索される。キャッシュメモリー28はその命令をデー
タ復{4kiA32を通って命令デコーダ26に引き渡
す.従来技術のキャッシュメモリーや翻訳バッファの構
成や動作について、レビーとエクハウス、Jrの11章
、コンピュータのプログラミングと構成、VAX−11
,デジタルエクイフブメントコーポレーション、ベージ
251から368まで(1 9 8 0)にさらに詳し
く説明されている。
ソノオペランド処理装置(OPU)22も又仮想アドレ
スを作る。特に、オベラン1・処理装置22は、,メモ
リー源(読み取り)及び行き先(書き込み)オペランド
のための仮想アドレスを作る。
少なくともメモリー読み取りオペランドのために、オペ
ランド処理装置22はこれらの仮想アドレスを、物理的
アドレスに翻訳するメモリーアクセス装置16へ引き渡
す。キャソシュメモリー28の物理的メモリーロう゛−
ションは、その時メモリー源命令用のオペランドを取り
出すためにアクセスされる。
本発明の好適な方法を実施するために、オペランド処理
装置22も又、メモリー行き先オペランドのために行き
先の仮想アドレスをメモリーアクセス装置16へ引き渡
す。仮想アドレスは、例えば、32ビット数である.3
2ビットの仮想アドレスを伝送するのに加えて、オペラ
ンド処理装置22も又、そのオペランドが読み取り、あ
るいは書き込み操作を指定するかどうかを示すために3
ビット制御フィールドを引き渡す。制御フィールドが読
み取めオベランドに対応する仮想アドレスを示す時には
、キャッシュメモリー28はその関連する物理的メモリ
ー口ケージョンからデータを検索し、それをデータ復帰
線34を通じて実行装置20へ与える。
反対に、書き込み操作のために、書き込みアドレスは、
書き込まれるそのデータが利用できる時まで格納される
。明らかに、MOVEあるいはADDのような命令に対
して、書き込まれるデータは、命令の実行が終了するま
で利用できない。
しかしながら、行き先の仮想アド1/スは、命令を実行
するの番ご要する時間中に、対応する物理的アドレスに
翻訳可能である。命令を軌行する総速度を上げるために
、その時間中に多数の命令規則子を前処理することは、
オペランド処理装置22にとって望ましいことである.
これらの目的のため、メモリーアクセス装置16には,
,′書き込み待ち行列”が、可変数書き込み操作の物理
的行き先アドレスを格納するために、翻訳バッファ30
とキャッシェメモリー28間の中間に従供されている。
書き込み待ち行列36は、実行装置20が命令を終了し
、データをメモリーアクセス装置16へ送るまでアドレ
スを維持する。そのデータは以前に格納された書き込み
アドレスと対にされ、メモリーロケーションのキャッシ
ュメモリー28に書き込まれる。
オペランド処理装122はメモリーオベランドでない命
令でも又作動する。例えば、オペランド処理装置22は
即値オベランド、ショートリテラル、そしてレジスター
オベランドをも処理する。
これらの命令のそれぞれのタイプにおいて、オペランド
22はその結果を直接的に実行装置20へ与える。
命令を処理する最初の段階は、命令の“演算コード”部
分を解読する事である。各命令の最初の区分はその演算
コードから成り、その命令で執行されるべき動作を指定
する。解読は命令デコーダ26内の基準テーブル索引を
使用して行なわれる.命令デコーダはテーブル索引内の
命令を実行するためのマイクロコード実行開始アドレス
を見付け、その実行開始アドレスを実行装置2oへ渡す
。その後実行装置は、事前記録されたマイクロコードを
実行することにより、指示された実行開始アドレスで始
まる、指定された操作を行なう。又、デコーダは、源や
行き先の規則子が命令のどこに生じるかを決定し、これ
らの源や行き先規則子を、命令の実行に先立って前処理
のためのオペランド処理装置22へ渡す。
メモリーアクセス装置16は、キャッシュメモリー28
、翻訳バッファ3o、書き込み待ち行列36、レジスタ
ー38、そしてマルチブレクサー40から成る。上記の
ように、キャッシュメモリー28は、主メモリー14内
に格納された情報の小部分のコピーを格納するために使
用される高速メモリーである。キャフシュメモリー28
は主メモリー14より高速にアクサス可能である。それ
ゆえに、その目的はメモリーアクセス(例えば、読み取
りあるいは書き込み)が執行されるために必要な平均時
間を低減することにある。キャッシュメモリー28は主
メモリーに格納されている情報の小部分しか格納しない
ので、時々キャッシュメモリー28内に格納されていな
いメモリーにアクセスしようと試みる命令がある。キャ
ッシュメモリー28はこれらの“ミス”が生じる時を認
識し、そして、これらの場合において、キャソシュメモ
リー28は主メモリー14から識別されたデータを検索
する。もちろん、これらの“ミス”が発生している間、
中央処理装置12の性能が影響を受けるが、その総メモ
リーアクセス速度は上昇する。
翻訳バッファ30は高速の、以前に使用された仮想一物
理的アドレス翻訳を格納する結合性のメモリーである。
仮想メモリーシステムにおいて、一つの仮想アドレスを
参照指示すると、望む情報が利用できる前に、幾つかの
メモリー参照指示を引き起こす事が出来る。しかしなが
ら、翻訳バッファ30が使用されるところでは、翻訳は
、単に翻訳バッファ30内の“ヒット”を見つける事に
縮小される。翻訳バッファ30を使用すると、メモリー
がアクセスしなければならない回数を低減し、それによ
り総プロセッサ速度を増加する。もちろん、メモリー参
照指示は翻訳バッファ30内に格納されているこれらの
翻訳上で時々“ミス”が生じる、“ミス”が生じた時に
は、正しい仮想−物理的アドレス翻訳がメモリーから検
索され、翻訳バッファ30内に格納される。二回目の比
較が試みられ、必然的に“ヒット”が生じる。この時に
は、メモリーは二つの分離された部分、プロセスメモリ
ーとシステムメモリーに分割されていることが分かる。
これらの二つの部分へのメモリー参照指示は、翻訳バソ
フ1が“ミス”している間、少し異なって扱われ、それ
については、第3図、第4図、そして第5図に関連して
詳細に説明される。
一度、仮想一物理的アドレス翻訳が終了すると、物理的
アドレスは書き込み待ち行列36あるいはレジスター3
8の何れかへ転送される。その名称が示すように、書き
込み待ち行列36は、対応する命令がメモリーへの書き
込みである時のみ、物理的アドレスを受け取る。書き込
み待ち行列36の目的は書き込み命令の物理的書き込み
アドレス用の一時的な格納場所を提供することにある。
中央処理装置l2のバイブライン的性質により、書き込
みアドレスは、データがそこに格納される前に利用でき
る。事実、データは、実行装置20内の命令実行後のみ
利用可能となる。さらに、パイプライン内の命令用の複
数の規則子を前処理することが望まれるため、それらの
対応するデータを待つ多数の物理的書き込みアドレスが
あるようである.それゆえに、書き込み待ち行列36は
、多数の物理的書き込みアドレスを収容するための複数
位置付け先入れ先出しバッファである。
逆に言えば、もし物理的アドレスに対応する命令が読み
出し命令であれば、その時翻訳バッファ30は、読み出
し命令のオペランド用物理的アドレスを提供する。読み
出しアドレスはレジスター38へ転送され、マルチブレ
クサー40で選択され、キャッシュメモリー28に与え
られる。キャッシュメモリー28は対応メモリーロケー
ションにアクセスし、そのロケーションに格納されたデ
ータをデータ復帰線34を通じて実行装置20へ与えら
れる。
読み出し用オペランドを取り出し中に、直ちにキャッシ
ュメモリー28へアクセスする中央処理装置12の能力
が、書き込み用命令の実行中は遅延されているが、パイ
プラインのタイミング障害を引き起こす。例えば、逐次
命令はしばしばメモリーロケーションを修正変更するた
めに最初の命令が必要となり、その間に次の命令が同じ
アドレスを読みだす。両命令が一連の小さな段階で実行
されているので、読み出し、書き込み操作が順番に並ん
でいなくても可能となる。たとえ書き込み命令用規則子
が、読み出し命令用規則子の前に処理されたとしても、
書き込み操作は読み出し操作の前に実行され、実行が遅
れると、書き込み操作の結果が格納される前に、取り出
される読み出し操作用の読み出しオペランドが一つ以上
入るかも知れない。それゆえに、読み出しオペランドの
取り出しの結果として、“ステール”データが実行装置
へ送り返されるかも知れない。
第2図は、”MOVL、MEM1、MP.M2’の4バ
・イト移動命会用命令バイブラインの動作を示し7、M
OVLは行なわれる操作を明示し、MEM1とMEM2
はそれぞれ源アドレスと行き先アドレスを指定するオペ
ランド規則子である。
第2図の対角線に沿って示されたボックスは、中央処理
装置12が動作命令を執行するために取る連続的行動を
示している。第2図の左から右へ、11の動作が連続的
に進む段階あるいは時間間隔(1)で行なわれる。第2
図の上方から下方へは、動作がパイプライ:/の程度(
X)に沿って10連続段階で行なわれる。
第一段階において、命令用プログラムカウンター (P
C)が位置201に提供されている。これは前命令用プ
ログラムカウンター(第1図の24)の値を増大するこ
と、あるいは分岐命令の目標アドレスを使用することに
よるかの何れかで行なわれる。第二段階において、20
2の位置で、命令装評はプログラムカウンターの仮想ア
ドレスで翻訳バッファ(第1図の30)にアクセスする
。翻訳バッファは仮想アドレスを物理的アドレス8L−
1換し、一塊のデータをメモリー装置キャソシュメモリ
ー28から命令装置内のバッファあるいはキャソシュメ
モリー(不図示)へダウンロードする。
第二段階は、命令装置内のバッファあるいはキャノシュ
メモリーがプログラムカウンター24により指示された
命令を保持していない時のみ動作する必要がある。キャ
ソシュメモリーは第三段階の位Ff203で読み出され
、プログラムカウンター24により指示された命令MO
VLを検索する。
位置2(14で、第四段階は、MOVL (Do)から
の演算コードで解読表にアクセスすることにより命令を
解読する。
その後は、第五段階において、位置205で、オペラン
ド仮想アドレスは第一引き数MEMiから作成される。
同様に、位置206の第五段階の後半で、行き先仮想ア
ドレスが第二引き数MEM2から作成される。第六段階
の同時間において、位置207で、オペランド処理装置
22は躬訳バッファ30にアクセスし、オペランド仮想
アドレスを物理的アドレスに変換する。同じく、第六バ
イブライン段階の後半で、位置208で、オペランド処
理装置は翻訳バッファ30にアドレスし、行き先仮想ア
ドレスを物理的アドレスに変換する。
もちろんMEM2に対する物理的アドレスへの書き込み
操作は、格納されるデータがMEM2の応答する物理的
アドレスにおいて読み出されるまで完了できない。故に
、MEM2アドレスは、データが利用できるようになる
まで書き込み待ち行列36内に格納される。位!209
の第七段階ではメモリーアクセス装置キャッシュメモリ
ー28を読み取り、そのデータを実行装置20へ与える
.第八段階において、位置210で、全オペランドデー
タ及び結果アドレスが使用でき、命令が実行される。第
九段階において、位置211で、データ及び書き込みフ
ラッグがメモリー装置16に引き渡され、書き込み待ち
行列アドレスが書き込み待ち行列から取り除かれ、そし
てキャッシュタグがキャッシュヒットを試験するために
アクセスされる。キャッシュヒットと仮定し、実際の書
き込みが第十及び最終段階、位置212で行なわれる。
第3図を参照すると、翻訳バッファ30の操作が詳細に
説明されている。翻訳バッファ30は五つの異なった源
から仮想アドレスを受け取るために接続されている。こ
れらの源の内三つはメモリーアクセス装置16の外部に
あり、以後、通常外部と呼ぶ。残りの二つの源はメモリ
ーアクセス装置16内から制御され、以後、通常内部と
呼ぶ.これらの内部レジスターが、翻訳バッファの“ミ
ス”の間使用され、メモリーから仮想一物理的翻訳を検
索し、それを翻訳バッファ30内に配置する。
外部源には、命令先取リアドレスを与える責任がある■
バッファ42と、オペランド先取リアドレスを与えるオ
ペランド処理装置22と、そして暗黙オペランドアドレ
スを与える実行装置20がある。翻訳バッファ30は、
全てが同等に扱われているので、どの外部アドレスが処
理されているかについての影響を受けない。
これらの各外部源は、選択された入力を翻訳バッファ3
0へ制御的に与えるマルチブレクサー50の入力へ与え
られる。翻訳バ7ファ30は受け取った仮想アドレスを
以前に使用された仮想一物理的アドレス変換の翻訳バッ
ファキャッシュメモIJ − 5 1と比較する。もし
一致が見つかれば、翻訳バッファ30は対応する物理的
アドレスを選択し、それをキャッシュメモリー28へ与
える。
その早期の使用により仮想一物理的翻訳はもうすでに翻
訳パフファキャッシュメモリー51内に存在するので、
それを取り出すためにキャッシュメモリー28にアクセ
スする必要がない。
これに関連して、その翻訳バッファ30は、メモリーへ
のアクセス回数を低減することにより、プロセッサ速度
を大きく向上させる. しかしながら、その翻訳パフファキャッシュメモリー5
1には少数の仮想一物理的翻訳しか保持できない.故に
、広く翻訳されている仮想アドレスはその翻訳バッファ
キャッシュメモリー51内に存在しないこともある.こ
れが発生する時、メモリーからその変換を検索し、それ
を翻訳バッファキャッシュメモリー51内に配置する必
要があり、それで、その仮想一物理的変換が完遂される
.選択された外部源により与えられた仮想アドレスも又
翻訳バッファ修正装置(TB修正)52へ与えられる。
その名称が示すように、翻訳バッファ修正52ば、本来
、酩訳バッファキャッシュメモリー51内に存在しない
これらの変換の検索を行ない、それらを翻訳バッファ3
0内に配置することが委ねられている。翻訳バッファ修
正(TB修正)52の特別動作は、広く処理されている
メモリーアクセスのタイプにより制御される。この違い
を理解するためには、仮想メモリーの構成を説明する必
要がある。
仮想アドレススペースは、実際幾つかの機能的な頷域あ
るいは区画からなる。まず最初、仮想アドレススペース
は、システムスペースとプロセススペースと呼ばれる二
つに等分される。プロセススペースは再びプログラム(
PO)6N域とコントロール(PI)Gff域に分割さ
れる。各領域は、メモリ一領域用の全仮想一物理的アド
レス翻訳の集合体を有する。これらの翻訳は集合的にペ
ージテーブルとして参照指示されく個々の翻訳はページ
テーブル項目(PTE)として参照指示される。
各領域はそれぞれのページテーブルを有し、二つのレジ
スター、ページテーブル開始アドレスを持つベースレジ
スターと、テーブル内に多数のページ項目を持つ長さレ
ジスターにより規定される。
仮想アドレスは二進数であり、メモリー領域を規定する
二つの高位ビットを有する長さ32ビ,トのものである
。例えば、ビット31はシステムスペースとプロセスス
ペースを規定する。この位置での1はシステムスペース
を示し、ゼロがプロセススペースを識別する.ビフト3
0はさらに二つのプロセス領域(PO、PI)を識別す
る。プロセススペースの半分、高アドレスはコントロー
ル領域であり(Pl)、残り半分の低アドレスはプログ
ラム領域(PO)により占有されている。
高アドレスである半分のアドレススペースは、システム
内の全プログラムにより共有され、そしてオペレーティ
ングシステムがこの領域で作動するので、システムスペ
ースと呼ばれる。システムスペース用ページテーブルが
一つだけあり、そのシステムページテーブル(SPT)
は全システムスペースの参照指示を翻訳する。そのシス
テムベージテーブル(SPT)は、その二つのハードウ
エアーレジスター、システムベースレジスター(S B
 R)とシステム長さレジスター(SLR)により説明
される。これらのレジスターは、オペレーティングシス
テムが起動されたとき、ソフトウエアーによりロードさ
れる。ページテーブルそのもの無しでは、仮想一物理的
アドレス変換がないので、システムベージテーブル(S
PT)は物理的アドレスにより参照指示されなければな
らないということが重要である。例えば、変換処理を始
めるには、少なくともシステムベージテーブル(SPT
)の物理的アドレスを、仮想一物理的変換を検索するた
めに知っていなければならない。
メモリーの半分である低アドレスは、システムスペース
と違って、システム内の各プログラムに対して特異であ
るので、プロセススペースと呼ばれる。各プログラムは
2,そのプログラム用のぺ一ジチーブルとコントロール
領域を有し、それらは対応するベースと長さレジスター
(P O B R,PIBR.、POLR、そしてPI
LR)により規定される.例えば、同しプロセススペー
ス仮想アドレスを参照指示する異なったプログラムは、
異な,った物理的メモリーロケーションにアクセスする
だろう。それゆえに、プロセスページテーブルは、物理
的メモリーアドレスよりはむしろ、仮想,4モリーアド
レスにより参照指示される。このように、プロセススペ
ース仮想アドレスのいかなる変換も、最初にプロセスベ
ージテーブルの物理的メモリー口ケーシタンを探さなけ
ればならない。
これらのアドレスはシステムページテーブル(SPT)
の物理的メモリーロケー・ション内にある。システムメ
モリー参照指示の変換が一つの段階で行なわれている間
に、プロセスメモリー参照指示が二つの変換、最初はプ
ロセススペースレジスターアドレスの変換と、第二が仮
想アドレスそれ自身の変換とが行なわなければならない
ことが分かる。プログラム領域(PO)はユーザープロ
グラムを包含し、それによりゼロベース仮想アドレスス
ペースを提供し、その中にプログラムがロードされる。
逆に、コントロール領域(P1)はその処理のユーザー
モードスタックを収容する。
オペレーティングシステムはコントロール領域も使用可
能で、より高いアクセスモード用のスタックと同じよう
に、保護された処理特定データ及びコードを包含する。
第3図において、翻訳バッファ修正52はマルチブレク
サー50から仮想アドレスを受け取り、ビット30及び
31を使用し、アクセスされている仮想メモリー領域を
決定する.指定領域が、対応するページテーブルを探す
のにどのベースレジスターを使用すべきかを決定するた
めに使用される。システムメモリー参照指示のために、
システムベースレジスター(SBR)からコンピュータ
処理されたページテーブルアドレスは物理的アドレスで
あり、対応する仮想一物理的変換が格納されるメモリー
アクセス装置キャッシュメモリー28へ直接与えられる
ことが可能である。しがしながら、翻訳パンファ30を
修正するのは、“ミス″が発生した時のみ必要である。
それで、翻訳バッファ30は翻訳バッファ修正52ヘミ
ス信号を送り、コンビエータ処理されたアドレスがキャ
ッシュメモリー28へ引き渡される.翻訳バッファ“ミ
ス′が発生した時には、変換がキャッシュメモリー28
から検索され、翻訳バッファキャッシ1メモリー51内
に格納される。このように、翻訳パフファキャソシュメ
モリー51の、未決定仮想アドレスに対する即時連続比
較は必ず“ヒソト”とならなければならない9それゆえ
に、翻訳バノファ修正52は一時的に翻訳バッファ30
を管理し、翻訳バッファキャッシュメモリー51を更新
し、それにより、未決定変換は“ミス“から“ヒット゛
に替わり、仮想一物理的翻訳が完了する。
逆に、アクセスされている仮想メモリー領域がプロセス
領域と一致するところでは、プロセスベースレジスター
P O B RあるいはPIBHの何れかからコンピュ
ータ処理されるアドレスは、仮想アドレスである.この
仮想アドレスはキャッシュメモリー28へ引き渡されな
いが、最初に物理的アドレスに変換されなければならな
い.もちろん、仮想から物理的アドレスへの変換は通常
翻訳バノファ30により行なわれる。翻訳バッファ30
は一般に機能停止しており、その翻訳バッファキャッシ
ュメモリー51を更新するために翻訳バッファ修正52
を待っているので、翻訳バッファ修正52は、仮想一物
理的変換を行なうために翻訳バッファを管理することが
出来る。翻訳バノファ修正52はプロセスベージテーブ
ルのコンピュータ処理された仮想アドレスを、翻訳バッ
ファ“ミス”に応じて内部レジスター54へ与える。マ
ルチブレクサ−56が翻訳バッファ修正52により選択
され、内部レジスター54の内容がマルチブレクサー5
0の入力へ与えられる。翻訳バッファ修正52も又、マ
ルチブレクサ−50への入力として、マルチブレクサー
56の出力を選択するために動作する。プロセスメモリ
ー参照指示上に翻訳バッファ“ミス”があると、仮想一
物理的変換のための翻訳バッファ30へ与えられている
プロセスベージテーブルのコンピュータ処理された仮想
アドレスとなる事が分かる。このように、その時翻訳バ
ッファ30内の“ヒット”は、翻訳バ,ファ30により
キャッシュメモリー28へ直接与えられる物理的アドレ
スとなる。
第二翻訳バッファ“ミス”は内部レジスター54内に含
まれるアドレス上に発生する。翻訳バフフプ修正52も
又この第二“ミス”を訂正することが出来る。この第二
“ミス”は物理的アドレスの1ミス”であることは注意
すべき点である。
このように、この修正ルーチンは、システム参照指示“
ミス”用のページテーブル項目(PTE)検索するため
に使用されたものと同様である。検索されたページテー
ブル項目は、翻訳バッファキャッシュメモリー内に格納
され、翻訳バッファ30を通る後の通路上に仮想一物理
的翻訳の物理的アドレスを形成するために使用される。
シーケンサ−58も又、内部レジスター54と同しバス
を通って、翻訳バッファ修正52から入力を受け取る。
そのシーケンサー58は、多倍情度操作あるいは、メモ
リーから多重隣接バイトを読みださなければならないよ
うな、線境界を横切る操作中に使用される。シーケンサ
ー58はアドレスを増加させ、それをマルチブレクサ−
56へ引き渡す。判定論理57は、最初、内部レジスタ
ーアドレス、そして第二に増加されたアドレスあるいは
シーケンサーのアドレスを、一貫して与えるためにどの
マルチプレクサ一人力が選択されるべきかを制御する。
多倍精度操作の全バイトあるいは不揃いのアドレスはこ
のようにアクセスされる。
第4図において、翻訳バッファ30と翻訳バッファ修正
52の詳細ブロック図が示されている。
翻訳バッファ30は以前に使用されたページテーブル項
目(PTEs)を保持する。32ビット仮想アドレスは
翻訳バッファ30によって受け取り、そしてビット31
と17:09は翻訳バッファキャッシュメモリー51の
1024ケ所のメモリーロケーション用ポインターとし
て使用される。
註釈パフファキャッシュメモリー51内の各メモリーロ
ケーションは、仮想アドレスのビット30:18に対応
する13ビットのタグを有する。
これらのタグは、AO−A1024で示され、集合的に
ページ翻訳ディレクトリ51aとして参照指示される。
下の512のタグはプロセスメモリー参照指示に対応し
、上の512のタグはシステムメモリー参照指示に対応
する。プロセスタグとシステムタグに分離する目的は、
オペレーティングシステムに、コンテキストスイッチ発
生時、一般のプログラムに関連するこれらのタグだけを
素早く無効にさせるためである.例えば、もしこれらの
項目が、もう一つのプログラムが実行し始める時に無効
にされなければ、この次のプログラムが、前のプログラ
ムによって以前に翻訳されているプロセス仮想アドレス
を発生させることによって誤った物理的メモリーロケー
ションにアクセスしてしまうだろう。このように、“ミ
ス”を検知する翻訳バッファよりもむしろ、タグの一致
が全プログラムの仮想一物理的翻訳を基礎とする結果と
なろう。
全プロセスがシステムスペースを共有しているので、コ
ンテキストの変化後、システムタグを無効にする必要が
ないし、仮想一物理的翻訳は各プロセス用と同様である
。その結果、どのプログラムからのシステムメモリー参
照指示も同じ物理的メモリーロケーションにアクセスす
るので、システムタグを無効にする必要がない。ビフト
30はプロセスタグをシステムタグから分離する。
各タグに関連してAOからA1024は32ビットデー
タフィールドであり、対応のページテーブル項目(PT
E)を包含し、BOからB1024で示される。ページ
テーブル項目(PTE)はビフト20:00で物理的ペ
ージフレーム番号PFN,ビット31で有効ビット、ビ
ット30:27で保護フィールド、そしてビット26で
変更ビットを含む。これらのページテーブル項目(PT
Es)は集合的にページ翻訳記憶装置5lbとして参照
指示される。コンパレーター60は仮想アドレスのビノ
ト30:1Bとポインターにill応する13ビットの
タグを受け取る。これらの値間の一致が、仮想アドレス
に対応するページテーブル項目(PTE)がタグビソト
に対応する場所においてページ翻訳記憶装置5lb内に
位置することを示す。選択されたページテーブル項目(
PTE)のビット29:09はレジスター62の一つの
入力に引き渡される。レジスター62の他の入力は仮想
アドレスのビットoa:ooから形成される。言い換え
れば、対応する物理的ページは仮想アドレスのバイトオ
フセントに追加され、実物理的アドレスを形成する。こ
の物理的アドレスは、インバータ61により反転される
コンバレータ60からのパルスで刻時されるレジスター
62内に保持される。このように、演算された物理的ア
ドレスは、コンバレータ60がページ翻訳ディレクトリ
5 1. a内に“ヒット゛が発見されたことを示す時
のみキャソシュメモリー28へ与えられる。
同時に、仮想ページ番号VPN (ビソト29:09)
は翻訳バッファ修正52へ引き渡される。
ステートマシン66はコンバレーター60(11バッフ
ァミス)からの制御入力に応じて翻訳バッファ修正52
の動作と仮想アドレスのビット31:30を制御する。
ステートマシン66は、所定のページテーブル項目(P
TE)のアドレスを演算することにより翻訳バッファミ
ス信号に応答する。一般に、ページテーブル項目(PT
E)は仮想ページ番号(V P N)とベースL/ジス
ターのアドレスを加えることにより決定される。
どのベースレジスターを使用するかを、ビフト31:3
0の状態から決定される。前述のように、メモリーには
三つに分離された部分があり、それぞれがその特定のペ
ージテーブルとベースアドレスを有する.ステートマシ
ン66はビット31:30を翻訳し、制御信号をマルチ
ブレクサ−68のi!f沢入力へ引き渡し、それにより
適切なベースレジスターが選択される。マルチプレクサ
−68への入力は、各メモリーのベース及び長さレジス
ター(POBR..PIBR,SBRSPOLR,PI
BR,そしてSLR)を包含する一連の6レジスター7
0に接続される。
ステートマシン66も又マルチブレクサー72の選択入
力を制御する。システムメモリー内のいかなる“ミス”
あるいはプロセスメモリー内の最初の“ミス”発生中、
ステートマシン66は、仮想アドレスのビフト21:2
を含むマルチブレクサー72に入力されるボートミスア
ドレスを選択する。このボートミスアドレスはレジスタ
ー73の一つに格納される.低位2ビットは、ページテ
ーブル項目(PTE)がロングワード整列(4バイト)
上のキャッシュメモリー23内に格納されるので、不必
要である.マルチブレクサー68、72は、それらの出
力を加算器74へ引き渡し、そこで結合され、ページテ
ーブル項目(PTE)のアドレスを形成する.アドレス
は仮想アドレス選択回路75内の判定論理(第3図の5
7)とキャッシュメモリー28へ与えられる。
アドレスと共に、ステートマシン6Gは要求信号を、演
算されたアドレスが物理的であるか仮想アドレスである
かにより、仮想アドレス選択回路75内の判定論理(第
3図の57)か、あるいはキャフシニメモリー28の何
れかへ与える。要求信号は判定論理(第3図の75)と
キャッシュメモリー28を使用可能にする。例えば、プ
ロセスペースレジスターからの演算されたアドレスは仮
想アドレスであり、キャッシュメモリー28へ引き渡さ
れないが、翻訳バッファ30内で仮想一物理的翻訳を経
なければならない。それで、ステートマシン66は要求
信号を仮想アドレス選択回路75内の判定論理(第3図
の57)へ与える。前に照会したように、判定論理は(
第3図の57)は、外部レジスターあるいは優先順位計
画を基本とする内部レジスターからの信号を与えるため
に、第3図のマルチブレクサ−50を作動させる。シー
ケンサー58と内部54の内部レジスターは高い優先順
位を持つ。それゆえに、ステートマシン66が要求信号
を判定論理(第3図の57)へ引き渡すと、内部レジス
ターが外部レジスターを越えて、外部レジスターと矛盾
しないで、翻訳バッファ修正ルーチンを進められるよう
に選択される.逆に、シーケンサーベースレジスターか
ら演算されたアドレスは物理的アドレスであり、キャッ
シュメモリー28へ直接与えることが可能で、所定のペ
ージテーブル項目(PTE)を検索する。
ページテーブル項目(P T E)はメモリーから検索
され、レジスター76へ引き渡される。対応する仮想ア
ドレスのビット30:18は、レジスター78へ引き渡
される。レfスター76、78の内容は、以前に使用さ
れた仮想一物理的翻訳で翻訳バッフ1キャッシュメモリ
ー51を更新するためにポインターで指示された場所に
格納される。
翻訳バッファ30への第二の参照指示も又、プロセスメ
モリーが1ミス1であるときには、′ミス”となる可能
性がある.翻訳バッファ修正52はこの二重“ミス”を
扱う事が出来る.ステートマシン66は、第二連続1ミ
ス”信号をコンバレータ60から受け取ると、二重ミス
状態を認識する.ステートマシン66は、マルチプレク
サー68を介してシステムベースレジスター及びマルチ
ブレクサ−72を介して修正ミスアドレスを選択する。
修正ミスアドレスは、レジスター群73内の各アドレス
レジスターから得られる。レジスター群73内のボート
ミスアドレスは、第一“ミス”となった元の仮想アドレ
スでロードされたままである。加算器74はこれらの選
択された信号がプロセスペースレジスターの物理的シス
テムアドレスに届くように結合する。これはシステムメ
モリー参照指示であるので、アドレスは物理的メモリー
ロケーションを識別し、キャッシュイネーブル信号と共
にキャッシュメモリー28へ直接引き渡される。ここで
のプロセスは、元のシステムメモリー参照指示と実質的
に同じであり、キャッシュメモリー28は識別されたア
ドレスに格納されたページテーブル項目(PTE)を引
き渡すことにより、躬訳バッファキャッシュメモリー5
1に応答する。このように、外部レジスターが再び判定
論理(第3図の57)により選択される時には、翻訳バ
ッファは仮想一物理的翻訳上で必ず“ヒット”するだろ
う. 翻訳バッファ修正52がページテーブル項目アドレスを
演算する前に、仮想アドレスがページテーブルの長さパ
ラメータを妨害しているかどうかを決定するための故障
チェックが行なわれる。つまり、メモリーの領域内の使
用可能ページ数は既知であり、メモリー内のページ数よ
り多い仮想べ一ジはシステムエラーの結果であるに違い
ない。
加算器74はこの比較を行なうために使用される.ステ
ートマシン66は、マルチプレクサー72からの入力を
変換し、ビットで桁上げ出来るようにすることにより2
の補数減算を行なうために加算器74を備えている。こ
の処理のために、二つの最低位ビットが演算のために必
要となるので、ボートミスアドレス入力を選択するより
も、むしろ仮想アドレスのビット21:Oを検索するた
めに、マルチブレクサー72への遅延ミスアドレス入力
を選択する。遅延ミスアドレスはレジスター群73の各
レジスターから得られる。
ステートマシン66は又翻訳されているメモリ一の領域
に対応する長さレジスター70を選択する。このように
、ページテーブルの既知長さから仮想アドレスを減じる
ことによって、仮想アドレスが不在ページテーブル項目
(PTE)にアクセスしようとしているという否定結果
が示される。
交互的に、長さ妨害が無いという肯定結果が示され、修
正処理が進められる. ステートマシン66は加算器74の実行ビットを介して
この処理をモニターする。もし実行ビットが表明される
と、その結果は否定となり、故障命令が実行装置16に
発せられる。
翻訳バッファ30内の“ミス”を訂正することに加えて
、翻訳バッファ修正52は又、多倍精度操作中のデータ
を検索するのを支援する。これらの多倍精度命令は、例
え一つのメモリーロケーションが命令内に認識されても
多重メモリーロケーションにアクセスする事を要求する
。それで、第一メモリー参照指示が翻訳バッファ30へ
送られる間、闘訳バッファ修正は次の連続アドレスを演
算し、それをシーケンサー58へ与える。仮想アドレス
はマルチブし・クサー72のゼロ入力へ引き渡され、ス
テートマシン66によって選択される.同時に、値4の
定数がマルチブレクサー68のゼロ入力に位置され、ス
テートマシン66によって選択される。それゆえに、加
算器74の出力は多倍精度命令に必要とされる次ロング
ワードの仮想アドレスとなる。このアドレスは仮想アド
レス選択回路75へ引き渡され、そこで外部レジスター
への優先順位が与えられ、翻訳バッファ30によって物
理的アドレスへ翻訳される、 最後に、ベースと長さレジスター70をロードするため
の処理は、中央処理装f(CPtJ)の初期化設定相時
に、実行装置16によって制御される。実行装置16は
、4ビットタグ信号とイネーブル信号をデコーダ80へ
提供する。デコーダ80は、対応レジスター70を使用
可能にすることにより仮想アドレスにあるデータを入力
するために応答する。その処理は、全レジスターが適切
なデータでロードされるまで、ベース及び長さレジスタ
ー70のそれぞれに対して反復される。第5図において
、第4図及び第5図で使用される可能論理経路の処理流
れ図が示されている。仮想一物理的翻訳が進むことが出
来る四つの経路がある.最初に、そして単純に、翻訳バ
ッファ30は、プロセスメモリー参照指示あるいはシス
テムメモリー参照指示の何れかのための所定の翻訳を含
み、そして変換された物理的アドレスは直接キャッシュ
メモリー28へ引き渡される。処理はマルチブレクサ−
50を制御する判定論理で段階90から始まり、源の、
Iバッファ42  (IBUF) 、オペランド処理装
置(OPU)、実行装置20、あるいは翻訳バノファ修
正52からの修正要求の内一つを選択する。仮想アドレ
スは翻訳バッファ30へ与えられ、そして段階92で選
択されたアドレスがページ翻訳ディレクトリ (第4図
の513)内のアドレスと比較される。段階94で同時
に、この選択されたアドレスに対応するページテーブル
項目(PTE)がページ『訳記憶装置(第4図の51b
)から検索される。一致が発見され、“ヒット”が決定
ブロック96をして信号をキャッシュメモリー28を示
している段階98へ与える。そこには有効物理的アドレ
スがあり、それで参照指示を行なう。段階94では、ペ
ージテーブル項目(PTE)保護ビットが又、アクセス
が許可されるということを確認するために検査される。
若しアクセスが許可されないと、アクセス妨害故障が設
定され、マイクロコードルーチンが故障を訂正するため
にプロセッサの制御を仮定する。要求が外部源から生じ
たと仮定すると、制御は段階100に移り、そこで処理
が、所定のデータを検索するためにキャッシュメモリー
28ヘアドレスを送ることによって完遂される。一方、
もし要求が翻訳バッファ修正52から生じたとすると、
その時制御経路は、第一例で説明したところから分岐す
るだろう。翻訳バッファ修正要求用の制御経路は下例に
より詳述されよう。
第二の可能論理経路が、システムメモリー参照指示が翻
訳バッファ内に存在しない時に生じる。
判断ブロック96で“ミス′があると、翻訳バノファ3
0は休止し、翻訳バッファ修正52が“ミス”を訂正す
るために働く。システムベージテーブルの物理的アドレ
スは演算されるので、ページテーブル項目はページテー
ブルから検索可能である。この物理的アドレスを演算す
るために、仮想ページ番号VPNが段階102で仮想ア
ドレスから抜き出される.(この抽出は、一般に第4図
内の103で明示されている、第4図内の他の構成部品
を仮想アドレスの仮想ページ番号VPN部分に対応する
アドレスビット用のアドレス線に接続するバス配線によ
って行なわれる。)段階1(14において、ページテー
ブル長さ及びベースレジスターは、仮想アドレスのビッ
ト31と30を使用して、システム長さレジスター(S
LR)とシステムベースレジスター(SBR)であるよ
うに選択される。システム長さレジスター(SLR)は
、長さ妨害故障が存在しないという事を確認するために
判断段階106において仮想ページ番号VPNと比較さ
れる.(即ち、マルチブレクサー68と72の選択入力
を設定し、加算器74を操作することにより所定の比較
を行ない、マルチブレクサ〜中の一つからの出力を他か
ら減じ、そして結果の符号ビットを見るために第4図の
翻訳バッファ修正ステートマシン66はビソト31及び
30に対応する仮想アドレスバス線103a及び103
bの状態をテストする。) 長さ妨害が無いと仮定すると、制御は段階108に移り
、所定のページテーブル項目(P T E)の物理的ア
ドレスが次の数式で演算される。
ADDR=PBR+ (VPN*4) ADDR :アドレス 逆に、もし長さ妨害が存在すると、制御は段階110に
移り、実行装置が故障を訂正するために信号が送られる
. この点を通じて、システムミス用の論理通路はプロセス
ミスと仮想的に同等であるが、ここで二つの分岐がある
、なぜならばシステムミス用に演算されたアドレスは物
理的アドレスであり、キャッシュメモリー28へ直接送
られるからである。
システム参照指示とプロセス参照指示を差別化するため
に、仮想アドレスのビット31は段階1(14で検査さ
れる。前述のように、仮想アドレスのビフト3l内の一
つはシステムメモリー参照を指示する。
システム参照指示に対して、制御は段階112へ移り、
翻訳バッファ修正52が物理的アドレスをキャッシュメ
モリー28へ送り、ページテーブル項目(PTE)が検
索される。ページテーブル項目(PTE)内の有効ビン
} (TNV)は判断ブロック114で検査され、アド
レス物理的ページがキャッシュメモリー28内に存在す
るかあるいは主メモリー14から検索しなければならな
いかを決定する。若し有効ビットが設定されていないと
、ページ故障フラッグが段階116で設定され、制御は
、その故障を処理するために、実行装置20に送られる
。さもないと、制御は段階118へ移り、ページテーブ
ル項目(PTE)は、ページ翻訳ディレクトリ (第4
図の51a)内の仮想アドレスロケーシジンに対応する
ロケーションのページ翻訳記憶装置(第4図の51b)
内に格納される。
新ページテーブル項目(PTE)で更新された翻訳バッ
ファキャッシュメモリーで、制御はルーチンの始めに戻
る。判定論理(第3図の57)は再び、マルチブレクサ
−50を介して段階90で外部源を選択し、翻訳バッフ
ァ処理がもう一度始まる.しかしながら、直前更新のた
め、翻訳バッファ30内に必ず“ヒット”が現在あるに
違いない.それゆえに、第一論理通路はこの通路上に続
き、変換された物理的アドレスはキャッシュメモリー2
8へ引き渡される. 第三及び第四可能論理通路が、プロセスメモリー参照指
示が翻訳バッファ内に現われるとき発生する.プロセス
メモリー参照指示中の翻訳バッファ30を訂正するには
、最初にプロセスベージテーブルを配置する必要がある
.しかしながら、そのプロセスベージテーブルアドレス
は又仮想メモリーアドレスであるので、物理的アドレス
に又変換されねばならない.それゆえに、段階96での
最初の“ミス”を辿る二つの可能論理通路があることが
分かる.例えば、仮想プロセスベージテーブルアドレス
の次の変換は次の翻訳バッファ30内の“ヒット”ある
いは“ミス”の何れかに帰する事が出来る。
最初に、プロセスメモリー参照指示“ミス”がプロセス
ベージテーブル“ヒット゜に伴われる第三の可能論理通
路を考えてみる。前述の論理通路のように、外部源によ
って引き渡された仮想アドレスの比較は翻訳バッファ3
0内の1ミス2を検知する段階96で起こり、その時、
翻訳バッファ30の動作は休止され、翻訳バッファ修正
52が翻訳バッファ30内の“ミス”を訂正する処理を
始める。プロセスベージテーブルの仮想ロケーションが
、第二可能論理通路に関連して述べられたシステムベー
ジテーブルの物理的ロケーションの演算とほとんど同じ
である段階120から124で演算される。二つの平行
した通路120aから124a,と120bから124
bが実際にあり、それらの一つだけが、アクセスされる
べきプロセスメモリーの領域に従い利用される、と言う
事が注目されるべきである。その二つの平行通路は、ベ
ース及び長さレジスター用に検索された値が無ければ同
じである。段階1(14において、プロセス長さ及びヘ
ースレジスターが、対応するシステムヘースや長さレニ
゛ジスターよりも、むしろ仮想アドレスのビソト31と
30を使用して選択される。
故に、段階122では、アドレスが演算され、内部レジ
スター54へ伝送される。マルチプレクサー(第3図の
50、56)が段階90の判定論理(第3図の57)に
よって選択され、仮想アドレスを翻訳バノファ30へ引
き渡す。
選択的に、翻訳バッファ30内でなされた比較が判断ブ
ロノク96で“ヒット゛になると仮定すると、この“ヒ
ット”は元の仮想アドレスに対応する最終の物理的アド
レスではないが、そのかわり、最終の物理的アドレスを
演算するために使用されたページテーブル項目(PTE
)の物理的アドレスであることを思い起こされよう。故
に、判断ブロック98は制御を段階112から118に
移り、翻訳バッファ30はこの物理的アドレスをキャッ
シュメモリー28に送り、ページテーブル項目(PTE
)を検索し、ページ故障をチヱノクし、そして翻訳バッ
ファ,メモリー内にページテーブル項目(PTE)を格
納する。制御はルーチンの最初に戻り、外部源が段階9
0で選択され、比較が翻訳バッファ30内で行なわれ、
゛ヒソト”が判断ブロック96をi■過中に必ず発生ず
る。そのページテーブル項目は検索され、物理的アドレ
スが演算されて、それにより、翻訳処理が完了する。四
つの論理通路のうちのどれかうまく完了したものは第一
論理通路を通過する最終のものである事が明らかであろ
う。
最後に、第四の可能論理通路は第三通路と同様であるが
、プロセスベージテーブルの仮想アドレスも又判断ブロ
ノク96における翻訳バフフ1比較で“ミス”する点に
おいて少し異なる。この論理通路において、翻訳バッフ
ァ修正52は二つの翻訳バッファの“ミス′を訂正しな
ければならない。
フ゜ロヤスページテーフ゛ノレのベージテーフ゛ノレ項
目(PTE)は物理的メモリー内に必ず位置する。
もしそうでなかったならば、仮想一物理的変換は完了さ
れなかったはずである。つまり、もしプロセスベージテ
ーブル用のページテーブル項目(PTE)が仮想メモリ
ー内に位置しなかったならば、仮想メモリーアドレスは
ページテーブル項目(PTE)無しでは分からなかった
であろうし、それも仮想アドレス無しでは分からなかっ
たであろう。これは明らかに、満足させるのは不可能な
条件である、それでプロセスベージテーブル用ページテ
ーブル項目(PTE)は物理的メモリー内に位置しなけ
ればならない。故に、■訳パッファ修正52によって、
段階120から124において演算されたアドレスは、
物理的アドレスであり、最終変換を完了するために必要
とされるページテーブル項目(PTE)を検索するキャ
ッシュメモU − 2 8へ引き渡される。
プロセスベージテーブル仮想アドレスの“ミス”発生後
、段階120から124で翻訳バッファ52に最終変換
のためにページテーブル項目(PTE)の物理的アドレ
スを演算させる。二度目の制御ルーチンの通過は必ず段
階96で“ヒフト゜となる。しかしながら、要求は外部
装置からよりも、むしろ翻訳バッファからであり、判断
ブロック98は制御を段階112から118へ進め、翻
訳バッファ修正52がアドレスをキャッシュメモリー2
8へ送る。そしてページテーブル項目(PTE)が検索
され、ページ翻訳記憶装置(第4図の51b)内に格納
する。その後、判定論理(第3図の57)が段階90で
外部源を選択し、変換が段階Aの始めに二度試みられ、
翻訳バッファ30内に格納される正しいページテーブル
項目(PTE)で第一論理通路を辿る。“ヒット”は必
ず、対応物理的アドレスの演算、とギャソシュメモリー
28へのアドレスの引き渡しで発生する.
【図面の簡単な説明】 第1図は中央処理装置と関連メモリーの部分についての
上位ブロック図、第2図はロングワードMOVEオベラ
ンドを処理するパイプラインの機能図、第3図は翻訳バ
ッファとブロセソサにインターフェイスされた翻訳バッ
ファ準備装置のブロフク図、第4図は翻訳バッファと翻
訳バッファ準備装置の詳細ブロック図、第5図は試験さ
れ、翻訳バッファから物理的メモリーアドレスを検索し
、アドレス“ミス”上の翻訳バッファの更新をするため
に取られる行動に対応する種々の条件が描かれている流
れ図である. 10システム、  12中央処理装置(C P U)、
14主メモリー  16メモリーアクセス装置、I8命
令装置、 20実行装置、 22オペランド処理装l(
OPU)、 24プログラムカウンター(PC)、 2
6命令デコーダ、 28高速キャッシュメモリー  3
0翻訳バッファ、32、34データ復帰線、 36書き
込み待ち行列、 421バッファ、 38、62、76
、78レジスター  40,50、56、68、72マ
ルチブレクサー  51翻訳バッファキャッシュメモリ
ー  51aページ翻訳ディレクトリ、 5lbページ
翻訳記憶装置、 52翻訳バッファ修正装置、 54内
部レジスター57判定論理、 58シーケンサ−  6
0コンバレータ、 6lインバータ、 66ステートマ
シン、  70ベース及び長さレジスター73レジスタ
ー群、  74加算器、 75仮想アドレス選択回路、
  96、114決定ブロック。

Claims (20)

    【特許請求の範囲】
  1. (1)命令装置、実行装置、メモリー、及び翻訳バッフ
    ァを有し、この翻訳バッファが以前に変換された仮想ア
    ドレス及び対応する物理アドレスのキャッシュメモリー
    を有し、そして前記命令装置及び実行装置によって与え
    られた仮想アドレスに対応する物理アドレスを与えるデ
    ジタルコンピュータシステムにおける仮想メモリーアド
    レスから物理的メモリーアドレスへの変換を制御するた
    めのメモリー管理プロセッサにおいて、 仮想アドレスを受け取る手段と物理的メモリーアドレス
    内に格納された前記受信仮想アドレスに対応する物理的
    メモリーアドレスを有する物理的メモリーアドレスを演
    算する手段、 翻訳バッファキャッシュメモリーに存在しない仮想アド
    レスに応えて演算された物理的メモリーアドレスから前
    記受信仮想アドレスに対応する物理的メモリーアドレス
    を検索する手段、そして 前記翻訳バッファキャッシュメモリー内に前記受信物理
    的メモリーアドレスを格納する手段を有することを特徴
    とするメモリー管理プロセッサ。
  2. (2)仮想アドレスを受け取り、仮想アドレスと以前に
    変換された仮想アドレスのキャッシュメモリーを比較し
    、前記仮想アドレスと以前に変換された仮想アドレスの
    前記キャッシュメモリーの一つとの間の一致についての
    在、不在の各検知に応じてミス及びヒット信号の一つを
    与えるための手段、前記ヒット信号の受信に応じて受信
    仮想アドレスに対応する物理的アドレスを与えるための
    手段とを備えた前記翻訳バッファ、そして前記ミス信号
    の受信に応じて前記物理的メモリーアドレスを演算する
    演算手段とを有することを特徴とする請求項(1)に記
    載のメモリー管理プロセッサ。
  3. (3)前記命令及び実行装置仮想アドレスを前記ミス信
    号の受信に応じて前記翻訳バッファへ与えることを防止
    する手段を有することを特徴とする請求項(2)に記載
    のメモリー管理プロセッサ。
  4. (4)前記翻訳バッファキャッシュメモリー内に格納さ
    れている前記の検索された物理的メモリーアドレスに応
    じて前記命令及び実行装置仮想アドレスを前記翻訳バッ
    ファへ引き渡させる前記防止手段を有することを特徴と
    する請求項(3)に記載のメモリー管理プロセッサ。
  5. (5)システム及びプロセスメモリー部を備えた前記メ
    モリー、システム仮想アドレスとプロセス仮想アドレス
    とを差別化する手段を備えた演算用前記手段、システム
    仮想アドレスの演算されたアドレスを前記メモリーへ与
    える手段とプロセス仮想アドレスの演算されたアドレス
    を前記翻訳バッファへ与える手段とを備えた前記検索手
    段を有することを特徴とする請求項(2)に記載のメモ
    リー管理プロセッサ。
  6. (6)システムアドレスを作り、そしてプロセス仮想ア
    ドレスの翻訳バッファへの引き渡し、及びミス信号の受
    信に応じてそのシステムアドレスを前記メモリーへ与え
    る前記演算手段を有することを特徴とする請求項(5)
    に記載のメモリー管理プロセッサ。
  7. (7)仮想アドレスの大きさと前記メモリー内の利用可
    能となるアドレスの大きさとを比較する手段と前記利用
    可能メモリーアドレスよりも大きい前記仮想アドレスに
    応じて故障信号を与える手段を備えた前記演算手段を有
    することを特徴とする請求項(2)に記載のメモリー管
    理プロセッサ。
  8. (8)ヒット信号に応じて多倍精度操作の次のシーケン
    シャルメモリーアドレスを作る手段と前記に次シーケン
    シャルメモリーアドレスを前記翻訳バッファへ与える手
    段とを備えた前記演算手段を有することを特徴とする請
    求項(2)に記載のメモリー管理プロセッサ。
  9. (9)前記翻訳バッファへ引き渡されている前記の次シ
    ーケンシャルメモリーアドレスに応じて前記命令と実行
    装置仮想アドレスを前記翻訳バッファへ与えることを防
    止する手段を有することを特徴とする請求項(8)に記
    載のメモリー管理プロセッサ。
  10. (10)命令装置、実行装置、プロセス及びシステム部
    を備えたメモリー、前記メモリー範囲内の物理的アドレ
    スへ前記命令及び実行装置によって与えられた仮想アド
    レスを変換する翻訳バッファ、そしてメモリー管理プロ
    セッサを有するデジタルコンピュータを操作する方法に
    おいて、前記仮想アドレスを受け取る段階、 前記仮想アドレスと前記翻訳バッファ内の以前に変換さ
    れた仮想アドレスのキャッシュメモリーとの比較段階、 前記の受け取った仮想アドレスと前記の以前に変換され
    た仮想アドレスとの間での一致に応じて前記の以前に変
    換された仮想アドレスに対応する翻訳された物理的アド
    レスを引き渡す段階、 前記の受け取った仮想アドレスと前記の以前変換された
    仮想アドレスとの間での不一致に応じてミス信号を引き
    渡す段階、 前記ミスアドレスの受信とシステム仮想アドレスである
    前記アドレスに応じて前記の受け取った仮想アドレスに
    対応する物理的メモリーアドレスを含む物理的メモリー
    アドレスを演算する段階、 演算された物理的メモリーアドレスから前記の受け取っ
    たシステム仮想アドレスに対応する物理的メモリーアド
    レスを検索する段階、 前記翻訳バッファのキャッシュ内に前記の検索された物
    理的メモリーアドレスを格納する段階、 前記ミス信号の受信とプロセス仮想アドレスである前記
    仮想アドレスに応じて前記の格納された受信仮想アドレ
    スに対応する物理的メモリーアドレスを有する仮想メモ
    リーアドレスを演算する段階、 演算された仮想メモリーアドレスを翻訳バッファへ与え
    る段階を有することを特徴とするデジタルコンピュータ
    を操作する方法。
  11. (11)前記ミス信号の受信に応じて前記命令及び実行
    装置仮想アドレスの前記翻訳バッファへの付与を防止す
    る段階、前記翻訳バッファキャッシュメモリー内に格納
    されている前記の検索された物理的メモリーアドレスに
    応じて前記命令及び実行装置仮想アドレスの前記翻訳バ
    ッファへの付与を許可する段階を有することを特徴とす
    る請求項(10)に記載のデジタルコンピュータを操作
    する方法。
  12. (12)プロセス仮想アドレスの前記翻訳バッファへの
    引き渡しとミス信号の受信とに応じてシステム物理的ア
    ドレスを作り、前記アドレスへ引き渡す段階を有するこ
    とを特徴とする請求項(10)に記載のデジタルコンピ
    ュータを操作する方法。
  13. (13)仮想アドレスの大きさと前記メモリー内の利用
    可能アドレスの大きさを比較し、前記利用可能メモリー
    アドレスよりも大きい前記仮想アドレスの大きさに応じ
    て故障信号を与える段階を有することを特徴とする請求
    項(10)に記載のデジタルコンピュータを操作する方
    法。
  14. (14)ヒット信号の受信に応じて多倍精度操作の次シ
    ーケンシャルメモリーアドレスを作る段階、そして前記
    次シーケンシャルメモリーアドレスを前記翻訳バッファ
    へ与える段階を有することを特徴とする請求項(10)
    に記載のデジタルコンピュータを操作する方法。
  15. (15)前記翻訳バッファに与えられている前記次シー
    ケンシャルメモリーアドレスに応じて前記命令と実行装
    置仮想アドレスの前記翻訳バッファへの付与を防止する
    段階を有することを特徴とする請求項(14)に記載の
    デジタルコンピュータを操作する方法。
  16. (16)デジタルコンピュータシステムの命令及び実行
    装置によってメモリーのアクセスを制御するメモリーア
    クセス装置、仮想アドレスを前記メモリーアクセス装置
    に提供する前記命令及び実行装置、そして対応物理的ア
    ドレスを前記メモリーに提供する前記メモリーアクセス
    装置において、 以前変換された仮想アクセスのキャッシュメモリーと対
    応物理的アドレス、そして現在仮想アドレスと以前変換
    された仮想アドレスのキャッシュメモリーを比較する手
    段、そして現在仮想アドレスと以前変換された仮想アド
    レスの前記キャッシュメモリーの一つとの間における一
    致の在及び不在をそれぞれの検知に応じてミス及びヒッ
    ト信号の一つを引き渡す手段、前記ヒット信号の受信に
    応じて受け取った仮想アドレスに対応する物理的アドレ
    スを与える手段、前記ミス信号の受信に応じて前記キャ
    ッシュメモリーを更新するためのメモリー管理プロセッ
    サ、前記の現在仮想アドレスに対応する物理的メモリー
    アドレスを含むメモリーロケーションの物理的メモリー
    アドレスを演算する手段、演算された物理的メモリーア
    ドレスを含むメモリーロケーションからの前記現在仮想
    アドレスに対応する物理的メモリーアドレスを検索する
    手段、そして前記翻訳バッファキャッシュメモリー内に
    前記の検索された物理的メモリーアドレスを格納する手
    段を備えた前記メモリー管理プロセッサを有することを
    特徴とするメモリーアクセス装置。
  17. (17)システム及びプロセスメモリー部を含む前記メ
    モリー、システム仮想アドレスとプロセス仮想アドレス
    とを差別化する手段を含む演算用前記手段、システム仮
    想アドレスの演算されたアドレスを前記メモリーへ引き
    渡し、そしてプロセス仮想アドレスの演算されたアドレ
    スを前記翻訳バッファへ与える手段を含む前記検索手段
    を有することを特徴とする請求項(16)に記載のメモ
    リー管理プロセッサ。
  18. (18)プロセス仮想アドレスの前記翻訳バッファへの
    付与から生じるミス信号の受信に応じてシステムアドレ
    スを作り、前記メモリーへ与える手段を含む演算手段を
    有することを特徴とする請求項(16)に記載のメモリ
    ー管理プロセッサ。
  19. (19)現在仮想アドレスの大きさと前記メモリー内の
    利用可能アドレスとの大きさを比較し、そして前記利用
    可能メモリーアドレスよりも大きい現在仮想アドレスの
    大きさに応じて故障信号を与える手段を含む前記演算手
    段を有することを特徴とする請求項(16)に記載のメ
    モリー管理プロセッサ。
  20. (20)ヒット信号の受信に応じて多倍精度操作の次の
    シーケンシャルメモリーアドレスを作り、前記次シーケ
    ンシャルメモリーアドレスを前記翻訳バッファへ与える
    手段を含む前記演算手段を有することを特徴とする請求
    項(16)に記載のメモリー管理プロセッサ。
JP1257635A 1989-02-03 1989-10-02 デジタルコンピュータシステムにおける仮想メモリーアドレスから物理的メモリーアドレスへの変換を制御する方法とその装置 Granted JPH02232753A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US30654489A 1989-02-03 1989-02-03
US306544 1989-02-03
AU53950/90A AU632558B2 (en) 1989-02-03 1990-04-27 Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system

Publications (2)

Publication Number Publication Date
JPH02232753A true JPH02232753A (ja) 1990-09-14
JPH0564815B2 JPH0564815B2 (ja) 1993-09-16

Family

ID=25630274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1257635A Granted JPH02232753A (ja) 1989-02-03 1989-10-02 デジタルコンピュータシステムにおける仮想メモリーアドレスから物理的メモリーアドレスへの変換を制御する方法とその装置

Country Status (7)

Country Link
US (1) US5349651A (ja)
EP (1) EP0381447B1 (ja)
JP (1) JPH02232753A (ja)
AT (1) ATE156609T1 (ja)
AU (1) AU632558B2 (ja)
CA (1) CA1325288C (ja)
DE (1) DE69031183T2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336180B1 (en) 1997-04-30 2002-01-01 Canon Kabushiki Kaisha Method, apparatus and system for managing virtual memory with virtual-physical mapping
US5423014A (en) * 1991-10-29 1995-06-06 Intel Corporation Instruction fetch unit with early instruction fetch mechanism
JPH0667980A (ja) * 1992-05-12 1994-03-11 Unisys Corp 4ブロックキャッシュメモリへのアクセスを最適化するためのキャッシュ論理システムおよびメインフレームコンピュータの高速キャッシュメモリへのアクセス時のダブルミスを防ぐ方法
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
WO1996038782A2 (en) * 1995-05-26 1996-12-05 National Semiconductor Corporation Apparatus and method for efficiently determining addresses for misaligned data stored in memory
US6061773A (en) * 1996-05-03 2000-05-09 Digital Equipment Corporation Virtual memory system with page table space separating a private space and a shared space in a virtual memory
US5960463A (en) * 1996-05-16 1999-09-28 Advanced Micro Devices, Inc. Cache controller with table walk logic tightly coupled to second level access logic
US6175906B1 (en) * 1996-12-06 2001-01-16 Advanced Micro Devices, Inc. Mechanism for fast revalidation of virtual tags
AUPO648397A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Improvements in multiprocessor architecture operation
US6311258B1 (en) 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
US6289138B1 (en) 1997-04-30 2001-09-11 Canon Kabushiki Kaisha General image processor
US6707463B1 (en) 1997-04-30 2004-03-16 Canon Kabushiki Kaisha Data normalization technique
US6259456B1 (en) 1997-04-30 2001-07-10 Canon Kabushiki Kaisha Data normalization techniques
US6272257B1 (en) 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
KR100231707B1 (ko) * 1997-08-04 2000-01-15 정선종 통신 장비의 디엠에이 처리 방법 및 그 장치
US6157986A (en) * 1997-12-16 2000-12-05 Advanced Micro Devices, Inc. Fast linear tag validation unit for use in microprocessor
US6263408B1 (en) * 1999-03-31 2001-07-17 International Business Machines Corporation Method and apparatus for implementing automatic cache variable update
US6233668B1 (en) 1999-10-27 2001-05-15 Compaq Computer Corporation Concurrent page tables
US6628294B1 (en) 1999-12-31 2003-09-30 Intel Corporation Prefetching of virtual-to-physical address translation for display data
US6615300B1 (en) * 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US9131899B2 (en) 2011-07-06 2015-09-15 Apple Inc. Efficient handling of misaligned loads and stores
US7404064B2 (en) * 2004-04-07 2008-07-22 Stmicroelectronics S.A. Method and device for calculating addresses of a segmented program memory
US9672019B2 (en) 2008-11-24 2017-06-06 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
US8775153B2 (en) * 2009-12-23 2014-07-08 Intel Corporation Transitioning from source instruction set architecture (ISA) code to translated code in a partial emulation environment
US9921967B2 (en) * 2011-07-26 2018-03-20 Intel Corporation Multi-core shared page miss handler
WO2013048468A1 (en) 2011-09-30 2013-04-04 Intel Corporation Instruction and logic to perform dynamic binary translation
US9292453B2 (en) 2013-02-01 2016-03-22 International Business Machines Corporation Storing a system-absolute address (SAA) in a first level translation look-aside buffer (TLB)
US9405551B2 (en) 2013-03-12 2016-08-02 Intel Corporation Creating an isolated execution environment in a co-designed processor
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
US9477611B2 (en) * 2013-10-21 2016-10-25 Marvell World Trade Ltd. Final level cache system and corresponding methods
CN117971719B (zh) * 2024-03-28 2024-06-28 北京微核芯科技有限公司 一种提前传递数据的方法及其装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4264953A (en) * 1979-03-30 1981-04-28 Honeywell Inc. Virtual cache
US4654777A (en) * 1982-05-25 1987-03-31 Tokyo Shibaura Denki Kabushiki Kaisha Segmented one and two level paging address translation system
US4525778A (en) * 1982-05-25 1985-06-25 Massachusetts Computer Corporation Computer memory control
US4586130A (en) * 1983-10-03 1986-04-29 Digital Equipment Corporation Central processing unit for a digital computer
US4587610A (en) * 1984-02-10 1986-05-06 Prime Computer, Inc. Address translation systems for high speed computer memories
US4731740A (en) * 1984-06-30 1988-03-15 Kabushiki Kaisha Toshiba Translation lookaside buffer control system in computer or virtual memory control scheme
US4991081A (en) * 1984-10-31 1991-02-05 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US4774653A (en) * 1985-08-07 1988-09-27 Hewlett-Packard Company Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers
US5241638A (en) * 1985-08-12 1993-08-31 Ceridian Corporation Dual cache memory
US4694395A (en) * 1985-11-25 1987-09-15 Ncr Corporation System for performing virtual look-ahead memory operations
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US5029072A (en) * 1985-12-23 1991-07-02 Motorola, Inc. Lock warning mechanism for a cache
US4727485A (en) * 1986-01-02 1988-02-23 Motorola, Inc. Paged memory management unit which locks translators in translation cache if lock specified in translation table
US4727486A (en) * 1986-05-02 1988-02-23 Honeywell Information Systems Inc. Hardware demand fetch cycle system interface
US5230045A (en) * 1986-11-12 1993-07-20 Xerox Corporation Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US4802085A (en) * 1987-01-22 1989-01-31 National Semiconductor Corporation Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor
US4851991A (en) * 1987-02-24 1989-07-25 Digital Equipment Corporation Central processor unit for digital data processing system including write buffer management mechanism
US4831520A (en) * 1987-02-24 1989-05-16 Digital Equipment Corporation Bus interface circuit for digital data processor
US4825412A (en) * 1988-04-01 1989-04-25 Digital Equipment Corporation Lockout registers
US5239635A (en) * 1988-06-06 1993-08-24 Digital Equipment Corporation Virtual address to physical address translation using page tables in virtual memory

Also Published As

Publication number Publication date
CA1325288C (en) 1993-12-14
ATE156609T1 (de) 1997-08-15
AU632558B2 (en) 1993-01-07
JPH0564815B2 (ja) 1993-09-16
DE69031183T2 (de) 1998-03-12
EP0381447A2 (en) 1990-08-08
EP0381447A3 (en) 1992-05-13
EP0381447B1 (en) 1997-08-06
US5349651A (en) 1994-09-20
DE69031183D1 (de) 1997-09-11
AU5395090A (en) 1991-12-19

Similar Documents

Publication Publication Date Title
JPH02232753A (ja) デジタルコンピュータシステムにおける仮想メモリーアドレスから物理的メモリーアドレスへの変換を制御する方法とその装置
US4985825A (en) System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
JP3187090B2 (ja) 高性能プロセッサのためのバイト比較操作方法
JP3055980B2 (ja) マルチプロセッサ又はパイプラインプロセッサシステムにおいてデータの完全性を確保する方法
JP2951064B2 (ja) パイプラインプロセッサを動作する方法及びパイプラインプロセッサ
US5142631A (en) System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
US4701844A (en) Dual cache for independent prefetch and execution units
JP3105960B2 (ja) 簡略命令セットプロセッサでレジスタ内データ操作を行なう方法
EP0391517B1 (en) Method and apparatus for ordering and queueing multiple memory access requests
JP2618175B2 (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
US4926323A (en) Streamlined instruction processor
US8332614B2 (en) System, method and computer program product for providing a programmable quiesce filtering register
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
US5930832A (en) Apparatus to guarantee TLB inclusion for store operations
JPH02260033A (ja) ブランチ予測
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
JPH0427573B2 (ja)
US8458438B2 (en) System, method and computer program product for providing quiesce filtering for shared memory
US6901540B1 (en) TLB parity error recovery
US5305458A (en) Multiple virtual storage system and address control apparatus having a designation table holding device and translation buffer
IE901528A1 (en) Method and apparatus for controlling the conversion of¹virtual to physical memory addresses in a digital computer¹system
IE901525A1 (en) Processing of memory access exceptions with pre-fetched¹instructions within the instruction pipeline of a memory¹system based digital computer
JPH05265859A (ja) バッファ記憶エラー処理方式
JPH06500417A (ja) Cpu実行方法