JPH02234248A - 仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法 - Google Patents
仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法Info
- Publication number
- JPH02234248A JPH02234248A JP2007008A JP700890A JPH02234248A JP H02234248 A JPH02234248 A JP H02234248A JP 2007008 A JP2007008 A JP 2007008A JP 700890 A JP700890 A JP 700890A JP H02234248 A JPH02234248 A JP H02234248A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- memory
- instruction
- memory access
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address 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)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、これと同時に出願された次のような米国特許
出願に開示されているコンピュータシステムの幾つかの
特徴を有するものである。
出願に開示されているコンピュータシステムの幾つかの
特徴を有するものである。
エバンス氏等の[デジタルコンピュータのシステム制御
ユニットとサービス処理ユニットとの間のインターフェ
イス(AN INTERFACT! BETWEE
N ASYSTEM CONTROL UNIT
AND A SERVICE PROCES
SrNGUNIT OF A DIGITAL COM
PUTER) J iアーノルド氏等の「システムの中
央処理ユニットとをインターフェイスする方法及び装l
( 1’lETHOD ANDAPPARATUS
FOR INTERFACING A SYSTEM
WITII THECENTRAL PROCESS
ING UNITS)J ;ガグリアード氏等の「マル
チプロセッサシステムのシステム制御ユニットをシステ
ムの主メモリとインターフエイスするための方法及び手
段(METIIOD AND MEANSFOR
INTERFACING A SYSTEM CONT
l?OL IINIT FOR AMULTIPROC
HSSOR SYSYTEM WITH TRESYS
YTEM MAINMEMORY) J . D.フィ
ット氏等の「パイプライン式コンピュータシステムにお
いて考えられる種々の数のメモリアクセス競合を分析す
る方法と装置( METHOD AND APPARA
TUS FOR RESOLVING AVARIAB
LE NUMBER OF POTENTIAL ME
MORY ACCESSCONFLICTS IN A
PIPELINED COMPtlTER SYSY
TE助J;D.フィット氏等の「可変長さの命令アーキ
テクチャにおいて多数の指定子をデコードする方法(
DECODING MULTIPLE SPECI
FIERS IN AVARIABLE LENG
TH fNsTRUcTION ARCHITECTU
RE)J ;D.フィット氏等の[仮想命令キャッシュ
リフィ/L, 7 7レゴリズム( VIRT[IAL
INSTRUCTION CACHEREFILL
ALGORITIIM)J .ハーマン氏等の[同
じ命令内のレジスタ及びレジスタ変更指定子のパイプラ
イン処理(PIPELINE PROGESSI)IG
OF REGISTERAND REGrSTER
MODIFYING SPECIFIERS
WITHIN THESAME INSTRUCTI
ON )J ;マーレイ氏等の「デジタルコンピュータ
においてデータ依存性を分析する多命令処理システム(
MULTIPLE INSTRUCTIONPRE
PROCESSING SYST[!M WITH
DATA OF!PENDENCYRESOLU
TION FOR DEGITAL COMPUTER
S )J ;フィット氏等の「パイプラインブロセソサ
において暗示された指定子を予め処理する方法( PR
IEPROCESSING IMPLIED SP
ECIFIERS IN APIPE!LINED
PROCESSER)j ; D,フィット氏等の
「ブランチ予想( BRANCII PREDICT
ION)j ;フォッサム氏等の[デジタルコンピュー
タのパイプライン式フローテイングポイント加算器(P
IPELINEDFLOATING POINT AD
DE!? FOR DIGITALCOMPIITER
) J ; グランドマン氏等の「自己計時式レジスタ
ファイノレ(SALF TIMED REGISTER
FILE)J :ベベン氏等の「パイプライン式コン
ピュータシステムにおいてエラーを検出して修正する方
法及び装置(METHOD AND APPARA
TLIS FOR DETECTING AND
CORRECTING ERRORS IN A PI
PELINED CO門PIJTERSYSTEM)
J ;フリン氏等の「マルチプロセッサシステムにお
いてシステム制御ユニ・7トを用いて通信要求を仲裁す
る方法及び装置( MET}IOD ANDMEA)
is FOR ARBITRATING COMMII
NICATION REQLIESTSUSING A
SYSYTEM CONTROL UNIT IN
A MIILTIPROCESSOR SYSTEM)
J + E.フィット氏等の「マイクロコード化実行
ユニットにおける並列動作式の制御多機能ユニット(
CONTROL MtlLTIPLt!FUNCTIO
N IIINTS WITH PARALLEL O
PERATION IN AMICROCODED
EXECURION UINT )J iヘザリントン
氏等の[デジタルコンピュータシステムにおいて仮想一
物理メモリアドレスの変換を制御する方法及び装置(
MET■(10 AND APPARATUS FOR
CONTROLLING T}IE CONVE
RSION OF VIRTUAL To P
IIYSICALMEMORY ADDRESSES
IN A DiGITAL CONP[IT
ERSYSYTEM) J iヘザリントン氏等の[エ
ラー修正機能を有するライトバックバッファ( WRI
TE BACKBUFFER WITH ERROR
CORRECTING CAPABILITIES)J
;フリン氏等の「マルチプロセッサシステムにおいて
システム制御ユニットを用いて通信要求を仲裁する方法
及び手段C METHOD AND MEANS FO
RARBITRATING COMMUNICATIO
N REQUESTS USING^SYSTEM
CONTROL UNIT IN A M[
lLTI−PROCESSORSl!STEM )J
;チナズワミー氏等の「マルチプロセッサシステムにお
いてシステムユニット間のデータトランザクションに対
するモジュール式クロスバー相互接続ネットワーク(M
ODULAR CROSSBARINTERCONNE
CTION NBTκORK FOR DATA TR
ANSACTIONS RET会EEN SYSTEM
UNITS IN A MIILTI−PROCESS
ORSYSTEM) J iボルジン氏等の[入力/出
力ユニットを有するマルチブロセソサシステムに対する
システムtl+1 iffllユニットをインターフェ
イスする方法及び装置( MET}1(10 AND
APPARATtlS FORINTHRFACIN
G A SYSYTEM CONTROL UNIT
FOR八MULTI−PROCESSOR SYSYT
EM 阿ITH INP[IT /O[ITP[IT
UNITS)J ;ガグリアード氏等の[システム主メ
モリを有するマルチプロセッサシステムのためのシステ
ム制111ユニットをインターフエイスする手段に用い
るメモリ構成(MEMORY CONI4GURATI
ON FORtlsI! WITtl ?IHANS
FOR INTER}’A CINGへSYSTENC
ONTROL UNIT FOR A MULTI−P
ROCESSOR SYST口引TFI THE SY
STEM M^IN MEMORY)J ;そしてガグ
リアード氏等の〔システムモジュール間のDRAM制御
信号のエラーチェックのための方法及び手段(METH
OD AND MEANS FOR ERROR C}
IE(JINGOF DRAM−CONTROL Sr
GNALS BETWEEN SYSTEMMODU
LES ) J 。
ユニットとサービス処理ユニットとの間のインターフェ
イス(AN INTERFACT! BETWEE
N ASYSTEM CONTROL UNIT
AND A SERVICE PROCES
SrNGUNIT OF A DIGITAL COM
PUTER) J iアーノルド氏等の「システムの中
央処理ユニットとをインターフェイスする方法及び装l
( 1’lETHOD ANDAPPARATUS
FOR INTERFACING A SYSTEM
WITII THECENTRAL PROCESS
ING UNITS)J ;ガグリアード氏等の「マル
チプロセッサシステムのシステム制御ユニットをシステ
ムの主メモリとインターフエイスするための方法及び手
段(METIIOD AND MEANSFOR
INTERFACING A SYSTEM CONT
l?OL IINIT FOR AMULTIPROC
HSSOR SYSYTEM WITH TRESYS
YTEM MAINMEMORY) J . D.フィ
ット氏等の「パイプライン式コンピュータシステムにお
いて考えられる種々の数のメモリアクセス競合を分析す
る方法と装置( METHOD AND APPARA
TUS FOR RESOLVING AVARIAB
LE NUMBER OF POTENTIAL ME
MORY ACCESSCONFLICTS IN A
PIPELINED COMPtlTER SYSY
TE助J;D.フィット氏等の「可変長さの命令アーキ
テクチャにおいて多数の指定子をデコードする方法(
DECODING MULTIPLE SPECI
FIERS IN AVARIABLE LENG
TH fNsTRUcTION ARCHITECTU
RE)J ;D.フィット氏等の[仮想命令キャッシュ
リフィ/L, 7 7レゴリズム( VIRT[IAL
INSTRUCTION CACHEREFILL
ALGORITIIM)J .ハーマン氏等の[同
じ命令内のレジスタ及びレジスタ変更指定子のパイプラ
イン処理(PIPELINE PROGESSI)IG
OF REGISTERAND REGrSTER
MODIFYING SPECIFIERS
WITHIN THESAME INSTRUCTI
ON )J ;マーレイ氏等の「デジタルコンピュータ
においてデータ依存性を分析する多命令処理システム(
MULTIPLE INSTRUCTIONPRE
PROCESSING SYST[!M WITH
DATA OF!PENDENCYRESOLU
TION FOR DEGITAL COMPUTER
S )J ;フィット氏等の「パイプラインブロセソサ
において暗示された指定子を予め処理する方法( PR
IEPROCESSING IMPLIED SP
ECIFIERS IN APIPE!LINED
PROCESSER)j ; D,フィット氏等の
「ブランチ予想( BRANCII PREDICT
ION)j ;フォッサム氏等の[デジタルコンピュー
タのパイプライン式フローテイングポイント加算器(P
IPELINEDFLOATING POINT AD
DE!? FOR DIGITALCOMPIITER
) J ; グランドマン氏等の「自己計時式レジスタ
ファイノレ(SALF TIMED REGISTER
FILE)J :ベベン氏等の「パイプライン式コン
ピュータシステムにおいてエラーを検出して修正する方
法及び装置(METHOD AND APPARA
TLIS FOR DETECTING AND
CORRECTING ERRORS IN A PI
PELINED CO門PIJTERSYSTEM)
J ;フリン氏等の「マルチプロセッサシステムにお
いてシステム制御ユニ・7トを用いて通信要求を仲裁す
る方法及び装置( MET}IOD ANDMEA)
is FOR ARBITRATING COMMII
NICATION REQLIESTSUSING A
SYSYTEM CONTROL UNIT IN
A MIILTIPROCESSOR SYSTEM)
J + E.フィット氏等の「マイクロコード化実行
ユニットにおける並列動作式の制御多機能ユニット(
CONTROL MtlLTIPLt!FUNCTIO
N IIINTS WITH PARALLEL O
PERATION IN AMICROCODED
EXECURION UINT )J iヘザリントン
氏等の[デジタルコンピュータシステムにおいて仮想一
物理メモリアドレスの変換を制御する方法及び装置(
MET■(10 AND APPARATUS FOR
CONTROLLING T}IE CONVE
RSION OF VIRTUAL To P
IIYSICALMEMORY ADDRESSES
IN A DiGITAL CONP[IT
ERSYSYTEM) J iヘザリントン氏等の[エ
ラー修正機能を有するライトバックバッファ( WRI
TE BACKBUFFER WITH ERROR
CORRECTING CAPABILITIES)J
;フリン氏等の「マルチプロセッサシステムにおいて
システム制御ユニットを用いて通信要求を仲裁する方法
及び手段C METHOD AND MEANS FO
RARBITRATING COMMUNICATIO
N REQUESTS USING^SYSTEM
CONTROL UNIT IN A M[
lLTI−PROCESSORSl!STEM )J
;チナズワミー氏等の「マルチプロセッサシステムにお
いてシステムユニット間のデータトランザクションに対
するモジュール式クロスバー相互接続ネットワーク(M
ODULAR CROSSBARINTERCONNE
CTION NBTκORK FOR DATA TR
ANSACTIONS RET会EEN SYSTEM
UNITS IN A MIILTI−PROCESS
ORSYSTEM) J iボルジン氏等の[入力/出
力ユニットを有するマルチブロセソサシステムに対する
システムtl+1 iffllユニットをインターフェ
イスする方法及び装置( MET}1(10 AND
APPARATtlS FORINTHRFACIN
G A SYSYTEM CONTROL UNIT
FOR八MULTI−PROCESSOR SYSYT
EM 阿ITH INP[IT /O[ITP[IT
UNITS)J ;ガグリアード氏等の[システム主メ
モリを有するマルチプロセッサシステムのためのシステ
ム制111ユニットをインターフエイスする手段に用い
るメモリ構成(MEMORY CONI4GURATI
ON FORtlsI! WITtl ?IHANS
FOR INTER}’A CINGへSYSTENC
ONTROL UNIT FOR A MULTI−P
ROCESSOR SYST口引TFI THE SY
STEM M^IN MEMORY)J ;そしてガグ
リアード氏等の〔システムモジュール間のDRAM制御
信号のエラーチェックのための方法及び手段(METH
OD AND MEANS FOR ERROR C}
IE(JINGOF DRAM−CONTROL Sr
GNALS BETWEEN SYSTEMMODU
LES ) J 。
本発明は、一般に、仮想メモリシステムをペースとする
デジタルコンピュータに係る。より詳細には、本発明は
、パイプライン式命令処理コンピュータシステムの命令
パイプライン内の予めフェッチした命令でメモリアクセ
ス例外を処理する技術に係る。
デジタルコンピュータに係る。より詳細には、本発明は
、パイプライン式命令処理コンピュータシステムの命令
パイプライン内の予めフェッチした命令でメモリアクセ
ス例外を処理する技術に係る。
従来の技術
仮想メモリを使用するコンピュータシステムは、仮想ア
ドレス空間内に定められた非常に多数のアドレス(32
ビントコンピュータの場合に4百万以上のアドレス)を
確認することができる。コンピュータの実際の物理的な
メインメモリは実質的に小型であるが、そのシステムは
アドレス空間全体にアドレスが分散されたデータを処理
することができる。このような能力は、精巧なメモリマ
ネージメント技術によって発揮され、この技術では、仮
想アドレス空間の大部分が実際に利用できるという仮定
のもとでプログラムを実行することができ、これにより
、実際よりも相当に多くのメインメモリアドレス空間を
利用できるという錯覚をユーザに与えることができる。
ドレス空間内に定められた非常に多数のアドレス(32
ビントコンピュータの場合に4百万以上のアドレス)を
確認することができる。コンピュータの実際の物理的な
メインメモリは実質的に小型であるが、そのシステムは
アドレス空間全体にアドレスが分散されたデータを処理
することができる。このような能力は、精巧なメモリマ
ネージメント技術によって発揮され、この技術では、仮
想アドレス空間の大部分が実際に利用できるという仮定
のもとでプログラムを実行することができ、これにより
、実際よりも相当に多くのメインメモリアドレス空間を
利用できるという錯覚をユーザに与えることができる。
メモリマソビング及び論理/物理アドレス変換を使用す
ることにより、仮想メモリシステムは、非隣接物理記憶
に基づく隣接論理メモリをコンピュータに与えるもので
ある。
ることにより、仮想メモリシステムは、非隣接物理記憶
に基づく隣接論理メモリをコンピュータに与えるもので
ある。
仮想メモリシステムは、一般に、メモリのリニアなアレ
イをそれより小さなメモリ領域に静的又は動的に仕切る
ことと、ブロソクアドレスマッピングシステムとの組合
せを使用してメモリをブロックに分けるという考え方に
基づくものであり、上記マソピングシステムにより、仮
想アドレスは、ブロック位置と、ブロック内の変位とに
変換される。仮想アドレスから物理アドレスへのマソビ
ングプロセスは、典型的に、ブロックマッピングテーブ
ルによって行なわれ、このテーブルは、各物理メモリブ
ロソクごとにメモリ内のブロソクアドレスを含む入力を
保持し、可変サイズブロソク式のメモリシステムの場合
は、メモリブロソクのサイズを保持する。このようなブ
ロソク式仮想メモリ機構においては、ブロソク位置の変
換を容易にするために全ての物理ブロックが同じサイズ
のものであり、メモリ内のいずれの物理ブロック位置に
も仮想メモリブロックを配置できるようになっている。
イをそれより小さなメモリ領域に静的又は動的に仕切る
ことと、ブロソクアドレスマッピングシステムとの組合
せを使用してメモリをブロックに分けるという考え方に
基づくものであり、上記マソピングシステムにより、仮
想アドレスは、ブロック位置と、ブロック内の変位とに
変換される。仮想アドレスから物理アドレスへのマソビ
ングプロセスは、典型的に、ブロックマッピングテーブ
ルによって行なわれ、このテーブルは、各物理メモリブ
ロソクごとにメモリ内のブロソクアドレスを含む入力を
保持し、可変サイズブロソク式のメモリシステムの場合
は、メモリブロソクのサイズを保持する。このようなブ
ロソク式仮想メモリ機構においては、ブロソク位置の変
換を容易にするために全ての物理ブロックが同じサイズ
のものであり、メモリ内のいずれの物理ブロック位置に
も仮想メモリブロックを配置できるようになっている。
各メモリブロックはメモリベージと称され、いかなると
きにも全ての仮想ページが一次メモリ内に存在するので
はない。むしろ、ある二次記憶手段、通常はディスクを
用いて、残りのページが保持される。
きにも全ての仮想ページが一次メモリ内に存在するので
はない。むしろ、ある二次記憶手段、通常はディスクを
用いて、残りのページが保持される。
ページ式メモリシステムにおける仮想アドレスから実(
物理)アドレスへのマッピング即ち変換は、実際に使用
される仮想アドレス空間の各主領域ごとにページテーブ
ルを使用することにより実行される。ページテーブルは
、ページテーブル入力の仮想連続アレイであり、各人力
は1つの仮想ページに対する物理的なマッピングを表わ
しているロングワードである。仮想アドレスから物理ア
ドレスへの変換は、単に仮想ページ数を所与のページテ
ーブルベースアドレスからページテーブルへのインデッ
クスとして使用するだけで実行もれる。とりわけ、ペー
ジテーブルは、メモリベージが一次メモリに物理的に位
置されているか二次メモリに位置されているかを表わす
フィールドを含んでいる。メモリマネージメント及び例
外論理回路は、プログラムの仮想アドレスを物理アドレ
スに変換し、プログラム及びそれに関連したデータを便
利な位置(メインメモリ又は補助メモリの)に記憶し、
そして必要なデータ又はプログラムセグメントをメイン
メモリに入れるために使用される。
物理)アドレスへのマッピング即ち変換は、実際に使用
される仮想アドレス空間の各主領域ごとにページテーブ
ルを使用することにより実行される。ページテーブルは
、ページテーブル入力の仮想連続アレイであり、各人力
は1つの仮想ページに対する物理的なマッピングを表わ
しているロングワードである。仮想アドレスから物理ア
ドレスへの変換は、単に仮想ページ数を所与のページテ
ーブルベースアドレスからページテーブルへのインデッ
クスとして使用するだけで実行もれる。とりわけ、ペー
ジテーブルは、メモリベージが一次メモリに物理的に位
置されているか二次メモリに位置されているかを表わす
フィールドを含んでいる。メモリマネージメント及び例
外論理回路は、プログラムの仮想アドレスを物理アドレ
スに変換し、プログラム及びそれに関連したデータを便
利な位置(メインメモリ又は補助メモリの)に記憶し、
そして必要なデータ又はプログラムセグメントをメイン
メモリに入れるために使用される。
上記形式の仮想メモリコンピュータシステムにおいては
、仮想アドレスが発生され、これら仮想アドレスがその
後に物理アドレスに変換され、物理アドレスの一部分を
使用してページテーブルをインデックスしそしてそれに
対応するページテーブル入力(PTE)をフェッチする
ことにより物理メモリ及び入力/出力( I /O)装
置がアクセスされる。PTEは、典型的に、アクセス特
権(ピリビレジ)に関する情報と、幾つかの物理アドレ
スと、アドレスの変更及び有効状態を表わすビントとを
含んでいる。又、PTEは、アドレスベージがメモリ内
に存在しないときに生じるようなアクセス例外をハンド
リングするためにシステムソフトウェアにより使用され
る状態ビットも含んでいる。従って、オペレーティング
システムは物理メモリのイメージを与え、これはメモリ
ソース位置を参照することなくユーザがアクセスできる
ものである。変換プロセスの結果として、オペレーティ
ングシステムは、その後、アクセスされたメモリセグメ
ントへのアクセスを許可するか又は拒絶する。メモリア
クセス要求が許可された場合には、それに対応するメモ
リオペレーションが完了まで行なわれる。一方、アクセ
ス要求が拒絶された場合には、プログラム実行プロセス
が停止され、例外ハンドラルーチンが実行される。
、仮想アドレスが発生され、これら仮想アドレスがその
後に物理アドレスに変換され、物理アドレスの一部分を
使用してページテーブルをインデックスしそしてそれに
対応するページテーブル入力(PTE)をフェッチする
ことにより物理メモリ及び入力/出力( I /O)装
置がアクセスされる。PTEは、典型的に、アクセス特
権(ピリビレジ)に関する情報と、幾つかの物理アドレ
スと、アドレスの変更及び有効状態を表わすビントとを
含んでいる。又、PTEは、アドレスベージがメモリ内
に存在しないときに生じるようなアクセス例外をハンド
リングするためにシステムソフトウェアにより使用され
る状態ビットも含んでいる。従って、オペレーティング
システムは物理メモリのイメージを与え、これはメモリ
ソース位置を参照することなくユーザがアクセスできる
ものである。変換プロセスの結果として、オペレーティ
ングシステムは、その後、アクセスされたメモリセグメ
ントへのアクセスを許可するか又は拒絶する。メモリア
クセス要求が許可された場合には、それに対応するメモ
リオペレーションが完了まで行なわれる。一方、アクセ
ス要求が拒絶された場合には、プログラム実行プロセス
が停止され、例外ハンドラルーチンが実行される。
命令を実行すべきときには、仮想メモリシステムのハー
ドウエアは、その命令に対応する仮想アドレスを発生し
、そしてそれを読み取り又は書き込みのようなメモリア
クセスオペレーションの要求と共にシステムメモリユニ
ットへ中継する。メモリユニット内に設けられた変換手
段は、仮想アドレスに対応する物理アドレスを計算し、
そして変換プロセスが首尾よく終ると、所要のメモリア
クセスオペレーションが実行される。仮想アドレスから
物理アドレスへの変換が何らかの理由で不首尾に終った
場合には、メモリユニットは命令プロセソサに信号を返
送し、プログラムの実行を続けるのではなく、メモリア
クセス例外を開始させる。
ドウエアは、その命令に対応する仮想アドレスを発生し
、そしてそれを読み取り又は書き込みのようなメモリア
クセスオペレーションの要求と共にシステムメモリユニ
ットへ中継する。メモリユニット内に設けられた変換手
段は、仮想アドレスに対応する物理アドレスを計算し、
そして変換プロセスが首尾よく終ると、所要のメモリア
クセスオペレーションが実行される。仮想アドレスから
物理アドレスへの変換が何らかの理由で不首尾に終った
場合には、メモリユニットは命令プロセソサに信号を返
送し、プログラムの実行を続けるのではなく、メモリア
クセス例外を開始させる。
アクセス例外の検出時にプログラムの実行を停止する技
術は考え方としては単純であるが、マルチブロセソシン
グ及びパイプライン式命令実行を典型的に使用する高性
能コンピュータに利用する場合には、著しく複雑で且つ
やっかいなものとなる。高性能コンピュータは、一般に
、複数の中央処理ユニットを用いて適当な問題分析によ
り所定のタスクを実行することによってシステムレヘル
でマルチプロセスを行なうという考え方に基づいている
。マルチプロセス動作は、パイプライン搬送のプロセス
によって更に複雑化され、コンビュータの命令が一連の
より小さなそしてより簡単なオペレーションに分割され
、これらのオペレーションは特定の目的に最も適した多
数の専用のファンクションユニットにより次々に実行さ
れる。このようなシステムでは、多数のI/Oバスを介
して大量記憶装置及び他の装置への並列路を使用するこ
とにより、高速で且つ広範囲な接続性及び冗長性が与え
られる。
術は考え方としては単純であるが、マルチブロセソシン
グ及びパイプライン式命令実行を典型的に使用する高性
能コンピュータに利用する場合には、著しく複雑で且つ
やっかいなものとなる。高性能コンピュータは、一般に
、複数の中央処理ユニットを用いて適当な問題分析によ
り所定のタスクを実行することによってシステムレヘル
でマルチプロセスを行なうという考え方に基づいている
。マルチプロセス動作は、パイプライン搬送のプロセス
によって更に複雑化され、コンビュータの命令が一連の
より小さなそしてより簡単なオペレーションに分割され
、これらのオペレーションは特定の目的に最も適した多
数の専用のファンクションユニットにより次々に実行さ
れる。このようなシステムでは、多数のI/Oバスを介
して大量記憶装置及び他の装置への並列路を使用するこ
とにより、高速で且つ広範囲な接続性及び冗長性が与え
られる。
高性能コンピュータシステムにおいては、命令を実行す
るに必要なオペレーションの全シーケンスがパイプライ
ン式であるために、メモリアクセス例外の検出及び処理
が複雑なものとなる。その典型的な例は、米国、マサチ
ューセッツ州、メイナード、111バワダーミルロード
のデジタル・イクイップメント社から入手できる″VA
X″ブランドファミリーのコンピュータである。VAX
86(10モデルのコンピュータに対する命令パイプラ
インが、1985年8月のrDigital Tech
nicalJourual J第1号の第8−23頁に
掲載されたフォサム氏等著のr V A X86(10
システムの概要(八n Overview Of
TheV A X 86(10 System)
J と題する論文に詳細に述べられている。この
論文に示されたように、高性能パイプラインは、命令の
実行に含まれるオペレーションの種々の各段階ごとに個
別のパイプライン段を使用している。これらのパイプラ
イン段は、典型的に、命令のフェッチ、命令のデコード
、オペランドアドレスの発生、・オペランドのフェッチ
、命令の実行及び結果の記憶を含む。メモリアクセス例
外の処理は、一度に多数の命令がアクティブとなるので
困難である。
るに必要なオペレーションの全シーケンスがパイプライ
ン式であるために、メモリアクセス例外の検出及び処理
が複雑なものとなる。その典型的な例は、米国、マサチ
ューセッツ州、メイナード、111バワダーミルロード
のデジタル・イクイップメント社から入手できる″VA
X″ブランドファミリーのコンピュータである。VAX
86(10モデルのコンピュータに対する命令パイプラ
インが、1985年8月のrDigital Tech
nicalJourual J第1号の第8−23頁に
掲載されたフォサム氏等著のr V A X86(10
システムの概要(八n Overview Of
TheV A X 86(10 System)
J と題する論文に詳細に述べられている。この
論文に示されたように、高性能パイプラインは、命令の
実行に含まれるオペレーションの種々の各段階ごとに個
別のパイプライン段を使用している。これらのパイプラ
イン段は、典型的に、命令のフェッチ、命令のデコード
、オペランドアドレスの発生、・オペランドのフェッチ
、命令の実行及び結果の記憶を含む。メモリアクセス例
外の処理は、一度に多数の命令がアクティブとなるので
困難である。
更に、各命令は、多数のメモリ参照、命令読み取り、オ
ペランド読み取り、オペランド書き込み、アドレス読み
取り及びストリング読み取りをアクティベートする。更
に、これらのオペレーションの各々は、命令パイプライ
ン内の種々の段において種々のハードウェアセグメント
によって実行されることか多い。
ペランド読み取り、オペランド書き込み、アドレス読み
取り及びストリング読み取りをアクティベートする。更
に、これらのオペレーションの各々は、命令パイプライ
ン内の種々の段において種々のハードウェアセグメント
によって実行されることか多い。
命令パイプラインに沿って命令を実行する動作の一部分
としてメモリ参照が行なわれるときには、命令により与
えられた仮想アドレスから物理アドレスを発生するため
にアドレス変換プロセスが行なわれる。これらの変換段
の各々においては、メモリアクセス例外が生じるおそれ
がある。次の命令段の実行に必要であると予想される命
令及びオペランドをコンピュータシステムが予めフエ・
冫チするようにされ、その間に特定の命令が作用される
ときには、複雑な問題が生じる。従って、例外が検出さ
れたときに全ての必要なアクセス例外が作用される場合
には、そこから生じるアクセス違反を分析するために相
互依存のオペレーション段が停止されたときにパイプラ
インが迅速に停止することになる。そこで、高速度のパ
イプライン式命令処理を達成することと、関連するメモ
リアクセス例外が同時に実行されるときに生じる比較的
低速度の逐次処理を達成することとの間には直接的な競
合が存在する。従って、パイプライン段内で生じるメモ
リ例外を、他のパイプライン段の妨害による命令パイプ
ラインの停止を回避するように取り扱うことが極めて重
要となる。例えば、VAXアーキテクチャでは、命令を
予めフェッチする動作の一部分としてメモリを読み取る
際に生じる例外がその前に発生された命令の実行を妨げ
ないようにするプロトコルによってこの問題に対処して
いる。
としてメモリ参照が行なわれるときには、命令により与
えられた仮想アドレスから物理アドレスを発生するため
にアドレス変換プロセスが行なわれる。これらの変換段
の各々においては、メモリアクセス例外が生じるおそれ
がある。次の命令段の実行に必要であると予想される命
令及びオペランドをコンピュータシステムが予めフエ・
冫チするようにされ、その間に特定の命令が作用される
ときには、複雑な問題が生じる。従って、例外が検出さ
れたときに全ての必要なアクセス例外が作用される場合
には、そこから生じるアクセス違反を分析するために相
互依存のオペレーション段が停止されたときにパイプラ
インが迅速に停止することになる。そこで、高速度のパ
イプライン式命令処理を達成することと、関連するメモ
リアクセス例外が同時に実行されるときに生じる比較的
低速度の逐次処理を達成することとの間には直接的な競
合が存在する。従って、パイプライン段内で生じるメモ
リ例外を、他のパイプライン段の妨害による命令パイプ
ラインの停止を回避するように取り扱うことが極めて重
要となる。例えば、VAXアーキテクチャでは、命令を
予めフェッチする動作の一部分としてメモリを読み取る
際に生じる例外がその前に発生された命令の実行を妨げ
ないようにするプロトコルによってこの問題に対処して
いる。
発明の構成
例外情仰を、実行されている命令の他の部分と共にパイ
プライン処理するという考え方に基づく例外取り扱い機
構が提供される。本発明の重要な特徴によれば、パイプ
ラインー段で発生された例外情報は、パイプラインに沿
って搬送され、そして命令がパイプラインの実行段に達
したときだけ作用される。従って、例外情報が有効であ
って実行段に存在することが分かった場合だけ例外ハン
ドリングルーチンを呼び出せばよい。例外が存在すると
分った命令実行パイプラインの各段において例外ハンド
リングルーチンに依存するという複雑で且つ時間浪費な
プロセスは排除される。このような機構から得られる主
な利点は、関連する例外に付随する命令が実行段に達す
る前に命令の流れが変えられる場合に、例外条件を残り
の命令と共に省けることである。
プライン処理するという考え方に基づく例外取り扱い機
構が提供される。本発明の重要な特徴によれば、パイプ
ラインー段で発生された例外情報は、パイプラインに沿
って搬送され、そして命令がパイプラインの実行段に達
したときだけ作用される。従って、例外情報が有効であ
って実行段に存在することが分かった場合だけ例外ハン
ドリングルーチンを呼び出せばよい。例外が存在すると
分った命令実行パイプラインの各段において例外ハンド
リングルーチンに依存するという複雑で且つ時間浪費な
プロセスは排除される。このような機構から得られる主
な利点は、関連する例外に付随する命令が実行段に達す
る前に命令の流れが変えられる場合に、例外条件を残り
の命令と共に省けることである。
本発明の好ましい実施例によれば、命令パイプラインの
各段から、仮想/物理変換を行なうメモリユニットの前
端へとポートで結ぶことにより、上記の機構が達成され
る。メモリユニットの後端は、その前端で発生された物
理アドレスを用いて、主メモリ又はキャッシュメモリ内
のアドレスされたデータをアクセスするように構成され
る.又、パイプライン段に対してメモリユニットの前端
に設けられた各ポートには、命令に付随する仮想アドレ
スを記憶する手段と、検出された例外に関連した“欠陥
”情報を記憶する手段とが設けられる.この例外情報は
、実行段のみにおいてシステムソフトウエアにより作用
される。メモリユニットの前端でメモリアクセス例外に
遭遇したときには、そこから発生された欠陥情報が記憶
段にロードされ、そしてポートはそれ以上の参照を受け
入れないよう阻止される.然し乍ら、他のパイプライン
段に対応するポートは、メモリ参照を受け入れるために
アクティブな状態に保持される。この構成では、命令の
流れの手前の段で生じた欠陥又は例外によって妨げられ
ることなく更に命令をパイプラインに沿って完了させる
ことができる。
各段から、仮想/物理変換を行なうメモリユニットの前
端へとポートで結ぶことにより、上記の機構が達成され
る。メモリユニットの後端は、その前端で発生された物
理アドレスを用いて、主メモリ又はキャッシュメモリ内
のアドレスされたデータをアクセスするように構成され
る.又、パイプライン段に対してメモリユニットの前端
に設けられた各ポートには、命令に付随する仮想アドレ
スを記憶する手段と、検出された例外に関連した“欠陥
”情報を記憶する手段とが設けられる.この例外情報は
、実行段のみにおいてシステムソフトウエアにより作用
される。メモリユニットの前端でメモリアクセス例外に
遭遇したときには、そこから発生された欠陥情報が記憶
段にロードされ、そしてポートはそれ以上の参照を受け
入れないよう阻止される.然し乍ら、他のパイプライン
段に対応するポートは、メモリ参照を受け入れるために
アクティブな状態に保持される。この構成では、命令の
流れの手前の段で生じた欠陥又は例外によって妨げられ
ることなく更に命令をパイプラインに沿って完了させる
ことができる。
本発明の別の特徴によれば、例外ハンドリングプロセス
を命令実行プロセスと同期させる手段が設けられる。命
令が発生段を通過する前にパイプライン段で発見された
欠陥は、命令の予めの処理及びオペランドの予めのフェ
ッチにより導出されたデータ及び制御ワードと共に(又
はそれに代って)パイプライン処理される。欠陥パイプ
ラインは、実行段で命令を発生するためにこのデータ及
び制御が必要とされる時点でチェソクされ、欠陥又は例
外が見つかった場合には、命令を発生するのではなく、
例外が開始される。このように、発生段に続くパイプラ
イン段に存在している全ての命令は、何の妨げもなく完
了することができる。
を命令実行プロセスと同期させる手段が設けられる。命
令が発生段を通過する前にパイプライン段で発見された
欠陥は、命令の予めの処理及びオペランドの予めのフェ
ッチにより導出されたデータ及び制御ワードと共に(又
はそれに代って)パイプライン処理される。欠陥パイプ
ラインは、実行段で命令を発生するためにこのデータ及
び制御が必要とされる時点でチェソクされ、欠陥又は例
外が見つかった場合には、命令を発生するのではなく、
例外が開始される。このように、発生段に続くパイプラ
イン段に存在している全ての命令は、何の妨げもなく完
了することができる。
本発明の別の重要な特徴によれば、メモリ書き込みオペ
レーションのための行先オペランドアドレスがパイプラ
インのオペランド処理ユニット段において計算され、そ
してその後、変換のためにメモリユニットへ通される。
レーションのための行先オペランドアドレスがパイプラ
インのオペランド処理ユニット段において計算され、そ
してその後、変換のためにメモリユニットへ通される。
データが実行段の後まで得られないので、それに対応す
る書き込みオペレーションは通常延期される。変換され
た行先アドレスは書き込み待ち行列に記憶され、そして
その後、実行段に続いて受け取った対応データと対にさ
れる。命令がリタイアされるときには、書き込まれるべ
きメモリの行先をその点に定めることが重要である。行
先アドレスは予め変換されているので、データ書き込み
待ち行列に対応する有効人力が存在する限り、実行段又
はそれに続いて命令を便利にリタイアすることが可能と
なる。
る書き込みオペレーションは通常延期される。変換され
た行先アドレスは書き込み待ち行列に記憶され、そして
その後、実行段に続いて受け取った対応データと対にさ
れる。命令がリタイアされるときには、書き込まれるべ
きメモリの行先をその点に定めることが重要である。行
先アドレスは予め変換されているので、データ書き込み
待ち行列に対応する有効人力が存在する限り、実行段又
はそれに続いて命令を便利にリタイアすることが可能と
なる。
要約すれば、パイプライン段は必要に応じてメモリ参照
を出力し、パイプラインによって実行されるべきタスク
は、そのメモリ参照に対応するアドレス変換が首尾よく
終った場合に通常の仕方で完了され、この場合、パイプ
ライン段に関連したデータを用いて命令が最終的に実行
段において実行される。然し乍ら、メモリ参照に対応す
るアドレス変換が不首尾に終った場合には、欠陥情報が
発生され、メモリユニット内のパイプライン段に対応す
るポートが閉状態として示される。メモリユニットによ
り発生された欠陥情報はパイプラインを経て伝幡され、
最終的に実行段において、欠陥又は例外情報に基づいて
欠陥ハンドラルーチンを呼び出すためのベースとして使
用される。
を出力し、パイプラインによって実行されるべきタスク
は、そのメモリ参照に対応するアドレス変換が首尾よく
終った場合に通常の仕方で完了され、この場合、パイプ
ライン段に関連したデータを用いて命令が最終的に実行
段において実行される。然し乍ら、メモリ参照に対応す
るアドレス変換が不首尾に終った場合には、欠陥情報が
発生され、メモリユニット内のパイプライン段に対応す
るポートが閉状態として示される。メモリユニットによ
り発生された欠陥情報はパイプラインを経て伝幡され、
最終的に実行段において、欠陥又は例外情報に基づいて
欠陥ハンドラルーチンを呼び出すためのベースとして使
用される。
本発明の他の目的及び効果は、添付図面を参照した以下
の詳細な説明から明らかとなろう。
の詳細な説明から明らかとなろう。
実施例
本発明は種々の形態で実施できるが、その特定の実施例
を一例として添付図面に示し、これについて以下に詳細
に説明する。然し乍ら、本発明はこれに限定されるもの
ではなく、特許請求の範囲に述べた本発明の精神及び範
囲から逸脱せずに種々の変更や修正がなされ得ることが
明らかであろう。
を一例として添付図面に示し、これについて以下に詳細
に説明する。然し乍ら、本発明はこれに限定されるもの
ではなく、特許請求の範囲に述べた本発明の精神及び範
囲から逸脱せずに種々の変更や修正がなされ得ることが
明らかであろう。
第1図は、パイプライン式仮想メモリベースのコンピュ
ータシステム10の最高レヘルブロック図である。この
コンピュータシステム10は、1つ以上の中央処理ユニ
ッ} (CPU)1 2を使用しており、全てのシステ
ムCPUがシステムに対して共通のメインメモリ14を
共通できるようにすることによりこれら全てのCPUを
同時に即ち並列に動作できるように構成されている。実
施例においては、メインメモリ14を効果的に共有する
ことにより4つまでのCPLIをこのシステムにおいて
同時に動作させることができる。パイプラインの考え方
により、CPU12は非均質(non−homogen
eous)プロセッサであり、個々の命令がその実行に
先立って分別された特定のタスクを専用に且つ最適に実
行するよう構成された1組の特殊目的のファンクション
ユニットを含んでいる。
ータシステム10の最高レヘルブロック図である。この
コンピュータシステム10は、1つ以上の中央処理ユニ
ッ} (CPU)1 2を使用しており、全てのシステ
ムCPUがシステムに対して共通のメインメモリ14を
共通できるようにすることによりこれら全てのCPUを
同時に即ち並列に動作できるように構成されている。実
施例においては、メインメモリ14を効果的に共有する
ことにより4つまでのCPLIをこのシステムにおいて
同時に動作させることができる。パイプラインの考え方
により、CPU12は非均質(non−homogen
eous)プロセッサであり、個々の命令がその実行に
先立って分別された特定のタスクを専用に且つ最適に実
行するよう構成された1組の特殊目的のファンクション
ユニットを含んでいる。
パイプライン技術によれば、各々の基本的なオペレーシ
ョン(加算、乗算等の)が多数の独立した段に分割され
、これは製造組立ラインをいがに編成するかに良く似て
いる。各段が動作の完了に“t”秒を要すると仮定すれ
ば、オペランド対は各段t秒で終了し、次いで、次の段
へ通され、新たなオペランド対を開始できるようになる
。例えば、4つの独立した段を必要とする命令の場合(
指数減算、仮数整列、仮数加算及び結果の正規化の4つ
の別々の段を必要とするフローティングポイント加算演
算の場合のような)、実行プロセスの開始から終了まで
に4L秒の時間周期が必要とされる。然し乍ら、重要な
ことは、t秒ごとに新たな結果を形成できることである
。換言すれば、各々の専用の段がそれに割り当てられた
タスクを実行するにつれて、当該命令が完了に近すいて
いく。パイプラインの最終段において、システムサイク
ルの通過に伴ないタスクが完了するたびに、命令の完了
を表わす新たな結果が発生される。このようなパイプラ
インは、一般に、1つのオペレーションを実行するのに
通常以上に長い時間を要するが、一連の同様のオペレー
ションを実行すべきである場合には、パイプラインは同
じ長さの時間内に相当に多数のオペレーションを実行す
ることができる。
ョン(加算、乗算等の)が多数の独立した段に分割され
、これは製造組立ラインをいがに編成するかに良く似て
いる。各段が動作の完了に“t”秒を要すると仮定すれ
ば、オペランド対は各段t秒で終了し、次いで、次の段
へ通され、新たなオペランド対を開始できるようになる
。例えば、4つの独立した段を必要とする命令の場合(
指数減算、仮数整列、仮数加算及び結果の正規化の4つ
の別々の段を必要とするフローティングポイント加算演
算の場合のような)、実行プロセスの開始から終了まで
に4L秒の時間周期が必要とされる。然し乍ら、重要な
ことは、t秒ごとに新たな結果を形成できることである
。換言すれば、各々の専用の段がそれに割り当てられた
タスクを実行するにつれて、当該命令が完了に近すいて
いく。パイプラインの最終段において、システムサイク
ルの通過に伴ないタスクが完了するたびに、命令の完了
を表わす新たな結果が発生される。このようなパイプラ
インは、一般に、1つのオペレーションを実行するのに
通常以上に長い時間を要するが、一連の同様のオペレー
ションを実行すべきである場合には、パイプラインは同
じ長さの時間内に相当に多数のオペレーションを実行す
ることができる。
一般に、命令の実行は次のような個々の段に分割される
。即ち、命令のフェッチ、命令のデコード、オペランド
のフェッチ、命令の実行そして結果の記憶。又、これら
の独立した段を或る形態でオーバーランプさせ、全命令
スループットを高めることもできる。この形式の考え方
によれば、各パイプライン段の結果が共通のシステムク
ロックに基づいて次の段へ転送される。例えば、第1の
クロックサイクル中に、命令フェッチを専用に行なうフ
ァンクションユニットによって命令がフェッチされる。
。即ち、命令のフェッチ、命令のデコード、オペランド
のフェッチ、命令の実行そして結果の記憶。又、これら
の独立した段を或る形態でオーバーランプさせ、全命令
スループットを高めることもできる。この形式の考え方
によれば、各パイプライン段の結果が共通のシステムク
ロックに基づいて次の段へ転送される。例えば、第1の
クロックサイクル中に、命令フェッチを専用に行なうフ
ァンクションユニットによって命令がフェッチされる。
第2のクロソクサイクル中に、そのフヱッチされた命令
が命令デコード段へ転送され、そこで専用のファンクシ
ョンユニットが命令をデコードし、それと同時に、命令
フェッチ段がアクティブな状態に保たれ、命令フェッチ
ユニットを介して次の命令をフェッチすることになる。
が命令デコード段へ転送され、そこで専用のファンクシ
ョンユニットが命令をデコードし、それと同時に、命令
フェッチ段がアクティブな状態に保たれ、命令フェッチ
ユニットを介して次の命令をフェッチすることになる。
次のクロ,クサイクル中には、各パイプライン段によっ
て発生された結果がパイプラインの次の段ヘシフトされ
、それと同時に、別の新たな命令がフエッチされる。こ
のプロセスは、パイプラインの最終段がアクティベート
されるまで続き、その点でパイプラインがいっぱいにな
る。その後、新たな命令が第1のパイプライン段により
フェッチされ続ける限り、各次々のクロソクサイクルの
終りに最終段によって命令が完了される。
て発生された結果がパイプラインの次の段ヘシフトされ
、それと同時に、別の新たな命令がフエッチされる。こ
のプロセスは、パイプラインの最終段がアクティベート
されるまで続き、その点でパイプラインがいっぱいにな
る。その後、新たな命令が第1のパイプライン段により
フェッチされ続ける限り、各次々のクロソクサイクルの
終りに最終段によって命令が完了される。
さて、第1図を参照すれば、各CPU12は、本質的に
、少なくとも3つの独立したファンクションユニット、
即ちメモリアクセスユニ・ノト16(Mユニット)、命
令ユニット18(r−L二・ント)及び実行ユニット2
0 (Eユニット)に仕切られる。
、少なくとも3つの独立したファンクションユニット、
即ちメモリアクセスユニ・ノト16(Mユニット)、命
令ユニット18(r−L二・ント)及び実行ユニット2
0 (Eユニット)に仕切られる。
Mユニット16は、メモリ、I/O及び他のCPUユニ
ットに対するCPUインターフエイスをなし、より詳細
には、仮想メモリ参照を受け入れ、これらの参照を物理
アドレスに変換しそして適当なインターフエイス手段を
介してメインメモ1月4内のメモリデータへのアクセス
を開始するか又はローカルキャッシュ内のメモリデータ
へのアクセスを開始するための手段として働く。
ットに対するCPUインターフエイスをなし、より詳細
には、仮想メモリ参照を受け入れ、これらの参照を物理
アドレスに変換しそして適当なインターフエイス手段を
介してメインメモ1月4内のメモリデータへのアクセス
を開始するか又はローカルキャッシュ内のメモリデータ
へのアクセスを開始するための手段として働く。
第1図に示されたシステムでは、Mユニット16はメイ
ンキャッシュ22を備えており、これは、命令及びEユ
ニット12及び工3がメインメモリ14の通常のアクセ
ス時間で許される以上の相当に速い速度でデータをアク
セスして処理できるようにするものである。このメイン
キャッシュは、プロセッサが現在オペレーションの実行
に必要としているデータ(典型的に、最も最近使用した
命令とデータ項目)を一時的に保持する。このキャッシ
ュは、所要のアドレス位置とキャッシュの内容との間の
対応を定める連想メモリマップを使用することによりメ
モリアドレスを解読する。
ンキャッシュ22を備えており、これは、命令及びEユ
ニット12及び工3がメインメモリ14の通常のアクセ
ス時間で許される以上の相当に速い速度でデータをアク
セスして処理できるようにするものである。このメイン
キャッシュは、プロセッサが現在オペレーションの実行
に必要としているデータ(典型的に、最も最近使用した
命令とデータ項目)を一時的に保持する。このキャッシ
ュは、所要のアドレス位置とキャッシュの内容との間の
対応を定める連想メモリマップを使用することによりメ
モリアドレスを解読する。
システムが動作して、所要のデータ項目がキャッシュ内
にあることが分かると、メインメモリへの要求を禁止す
ると共に、プロセッサにより要求されたデータをキャッ
シュから供給する。メインメモリl4は、所要のデータ
項目がキャッシュ18から得られないときだけアクセス
され、この場合、データはシステムメモリからフエンチ
されて、それを要求しているユニットへ送られる。手短
かに述べると、キャッシュ18は、プログラム内のロー
カリティの現象に基づいて動作し、システムのメインメ
モリにウインドウを形成すると共に、空間的及び一時的
なローカリティで参照データべの高速アクセスを行なえ
るようにするものである。
にあることが分かると、メインメモリへの要求を禁止す
ると共に、プロセッサにより要求されたデータをキャッ
シュから供給する。メインメモリl4は、所要のデータ
項目がキャッシュ18から得られないときだけアクセス
され、この場合、データはシステムメモリからフエンチ
されて、それを要求しているユニットへ送られる。手短
かに述べると、キャッシュ18は、プログラム内のロー
カリティの現象に基づいて動作し、システムのメインメ
モリにウインドウを形成すると共に、空間的及び一時的
なローカリティで参照データべの高速アクセスを行なえ
るようにするものである。
メインキャソシュ22は、データエレメントの選択され
た所定のブロックを記憶する手段と、指定のデータエレ
メントをアクセスするために変換バッファ24を経てメ
モリアクセス要求を受け取る手段と、指定のデータエレ
メン1−がキャソシュ内に記憶されたメモリのブロック
内に存在するかどうかをチェックする手段と、指定のデ
ータエレメントを含むブロソクに対するデータがキヤ・
ソシュ内にないときに、指定のデータプロ・ノクをメイ
ンメモリl4から検索しそしてそれをキヤ・ンシュ22
に記憶するように働く手段とを備えている。
た所定のブロックを記憶する手段と、指定のデータエレ
メントをアクセスするために変換バッファ24を経てメ
モリアクセス要求を受け取る手段と、指定のデータエレ
メン1−がキャソシュ内に記憶されたメモリのブロック
内に存在するかどうかをチェックする手段と、指定のデ
ータエレメントを含むブロソクに対するデータがキヤ・
ソシュ内にないときに、指定のデータプロ・ノクをメイ
ンメモリl4から検索しそしてそれをキヤ・ンシュ22
に記憶するように働く手段とを備えている。
所要のデータエレメントがキヤ・ノシュ22内に存在し
ないことが分かるたびに、データエレメントを含むデー
タの全ブロックがメインメモリ14から得られる。プロ
セッサのファンクションユニ・ノトがメモリからデータ
エレメントを次に要求するときに、ローカリティの原理
により、所要のデータエレメントは、その前にアドレス
されたデータエレメントを含むメモリブロソク内に見い
出される可能性が大きくなる。キャソシュ22はメイン
メモリ14よりも相当に高速度でアクセスされるので、
メインメモリは、システム性能を著しく低下することな
く、キャッシュよりも比例的にゆっくりとしたアクセス
時間をもつことができるようになる。従って、メインメ
モリ14は、低速で且つ安価なメモリエレメントで構成
される。
ないことが分かるたびに、データエレメントを含むデー
タの全ブロックがメインメモリ14から得られる。プロ
セッサのファンクションユニ・ノトがメモリからデータ
エレメントを次に要求するときに、ローカリティの原理
により、所要のデータエレメントは、その前にアドレス
されたデータエレメントを含むメモリブロソク内に見い
出される可能性が大きくなる。キャソシュ22はメイン
メモリ14よりも相当に高速度でアクセスされるので、
メインメモリは、システム性能を著しく低下することな
く、キャッシュよりも比例的にゆっくりとしたアクセス
時間をもつことができるようになる。従って、メインメ
モリ14は、低速で且つ安価なメモリエレメントで構成
される。
変換バッファ24は、最も最近使用された仮想/物理ア
ドレス変換を記憶する高速連想メモリである。ここで述
べる形式の仮想メモリシステムでは、1つの仮想アドレ
スを参照することにより、所望のメモリ情報が得られる
前に多数のメモリ参照を生じさせることができる。然し
乍ら、変換バッファ24は、仮想アドレスからそれに対
応する物理アドレスへの変換を単にバッファ内の“ヒッ
ト”を探索することに減少することにより、変換プロセ
スを簡単化することができる。
ドレス変換を記憶する高速連想メモリである。ここで述
べる形式の仮想メモリシステムでは、1つの仮想アドレ
スを参照することにより、所望のメモリ情報が得られる
前に多数のメモリ参照を生じさせることができる。然し
乍ら、変換バッファ24は、仮想アドレスからそれに対
応する物理アドレスへの変換を単にバッファ内の“ヒッ
ト”を探索することに減少することにより、変換プロセ
スを簡単化することができる。
コマンド及び入力データを第1図のコンピュータシステ
ムへ送信すると共に、システムからデータ出力を受け取
るために、I/Oバス25がメインメモリ14及びメイ
ンキャッシュ22にリンクされる。
ムへ送信すると共に、システムからデータ出力を受け取
るために、I/Oバス25がメインメモリ14及びメイ
ンキャッシュ22にリンクされる。
■ユニット18は、プログラムカウンタ26と、メイン
キャッシュ22からの命令をフェッチするための命令キ
.ヤソシュ28とを備えている。プログラムカウンタ2
6は、メインメモリl4及びキャッシュ22の物理メモ
リ位置ではなくて仮想メモリ位置をアドレスするのが好
ましい。従って、プログラムカウンタ26により出力さ
れた仮想アドレスは、所要の命令を検索できるようにな
る前に、メインメモリ14の対応する物理アドレスに変
換されることが必要である。この変換は、Mユニット1
6の変換バッファ24によって行なわれる。プログラム
カウンタ26の内容はMユニット1lへ転送され、そこ
で変換バッファ24がアドレス変換を実行する。その後
、所要の命令がキャッシュ22又はメインメモリl4内
の物理メモリ位置から検索され、データ戻りラインを経
て命令キャッシェ28へ送られる。キャソシュ22及び
変換バッファ24の構成及びオペレーションは、198
0年デジタル・イクィ・ノプメント社の「コンピュータ
プログラミング及びアーキテクチャ、VAX − 1
1 (Computer Programming
andArchitecture, The VA
X 1 1) Jの第351−368頁に掲載された
レビー及びアクホース二世著の第11章の論文の説明さ
れている。
キャッシュ22からの命令をフェッチするための命令キ
.ヤソシュ28とを備えている。プログラムカウンタ2
6は、メインメモリl4及びキャッシュ22の物理メモ
リ位置ではなくて仮想メモリ位置をアドレスするのが好
ましい。従って、プログラムカウンタ26により出力さ
れた仮想アドレスは、所要の命令を検索できるようにな
る前に、メインメモリ14の対応する物理アドレスに変
換されることが必要である。この変換は、Mユニット1
6の変換バッファ24によって行なわれる。プログラム
カウンタ26の内容はMユニット1lへ転送され、そこ
で変換バッファ24がアドレス変換を実行する。その後
、所要の命令がキャッシュ22又はメインメモリl4内
の物理メモリ位置から検索され、データ戻りラインを経
て命令キャッシェ28へ送られる。キャソシュ22及び
変換バッファ24の構成及びオペレーションは、198
0年デジタル・イクィ・ノプメント社の「コンピュータ
プログラミング及びアーキテクチャ、VAX − 1
1 (Computer Programming
andArchitecture, The VA
X 1 1) Jの第351−368頁に掲載された
レビー及びアクホース二世著の第11章の論文の説明さ
れている。
命令キャッシュ28は、一般に、プログラムヵウンタ2
6により指定されたアドレスに予め記憶された命令を有
している。キヤ・7シュ28は、多データバイトのブロ
ックで命令データを受け取ったり送信したりするように
構成され、これらブロソクに対するメモリアドレスがP
C26で与えられたアドレスの指定のビットによって指
定されるようになっているのが好ましい。アドレスされ
た命令は、次いで、命令バッファ( I −Bur)
3 0に転送するべく直ちに得ることができ、そしてこ
のバッファは、システムクロックのクロック動作に基づ
いて命令データを受け取るためのデータラッチとして本
質的に動作する。T−Buf30がらの命令は命令デコ
ード32へ送られ、このデコードは、命令に付随するオ
ペレーションコード(OPコード)及び指定子の両方を
デコードする。オペランド処理ユニット(OPU)33
は、オペランドに対するメモリ又はレジスタアドレスを
発生するか、或いはリテラルの場合には命令流からのオ
ペランドを直接評価する。レジスクアドレス及びリテラ
ルはEユニット20に送られる。OPU33により発生
されたアドレスは仮想アドレスであり、メモリソース.
(読み取り)及び行先(書き込み)オペランドに対する
仮想アドレスを表わしている。メモリ読み取りオペラン
ドの場合には、OPU3 3がこれらの仮想アドレスを
Mユニット16に供給し、物理アドレスに変換する。次
いで変換プロセスにより指定された物理メモリ位置がア
クセスされ、メモリソースオペランドとしてのオペラン
ドがフェッチされる。
6により指定されたアドレスに予め記憶された命令を有
している。キヤ・7シュ28は、多データバイトのブロ
ックで命令データを受け取ったり送信したりするように
構成され、これらブロソクに対するメモリアドレスがP
C26で与えられたアドレスの指定のビットによって指
定されるようになっているのが好ましい。アドレスされ
た命令は、次いで、命令バッファ( I −Bur)
3 0に転送するべく直ちに得ることができ、そしてこ
のバッファは、システムクロックのクロック動作に基づ
いて命令データを受け取るためのデータラッチとして本
質的に動作する。T−Buf30がらの命令は命令デコ
ード32へ送られ、このデコードは、命令に付随するオ
ペレーションコード(OPコード)及び指定子の両方を
デコードする。オペランド処理ユニット(OPU)33
は、オペランドに対するメモリ又はレジスタアドレスを
発生するか、或いはリテラルの場合には命令流からのオ
ペランドを直接評価する。レジスクアドレス及びリテラ
ルはEユニット20に送られる。OPU33により発生
されたアドレスは仮想アドレスであり、メモリソース.
(読み取り)及び行先(書き込み)オペランドに対する
仮想アドレスを表わしている。メモリ読み取りオペラン
ドの場合には、OPU3 3がこれらの仮想アドレスを
Mユニット16に供給し、物理アドレスに変換する。次
いで変換プロセスにより指定された物理メモリ位置がア
クセスされ、メモリソースオペランドとしてのオペラン
ドがフェッチされる。
メモリ書き込みオペランドの場合、書き込まれるべきデ
ータは、命令の実行が完了するまで得ることができず、
従って、書き込まれるべきデータが得られるまで書き込
みアドレスを記憶することが必要となる。然し乍ら、行
先の仮想アドレスからそれに対応する物理アドレスへの
変換は、命令の実行に要する時間中に終了させることが
できる。
ータは、命令の実行が完了するまで得ることができず、
従って、書き込まれるべきデータが得られるまで書き込
みアドレスを記憶することが必要となる。然し乍ら、行
先の仮想アドレスからそれに対応する物理アドレスへの
変換は、命令の実行に要する時間中に終了させることが
できる。
更に、OPU3 3は、命令が実行されている時間中に
多数の命令指定子を予め処理することにより命令の実行
速度を増加するという点で効果的に使用される。これら
のファクタを受け入れるために、Mユニット16には、
変換バッファ24とメインキャッシュ22との間に配置
された書き込み待ち行列構成体34かつ設けられる。こ
の書き込み待ち行列構成体34は、Eユニット20が命
令を完了するまでその変換されたアドレスを本質的に保
持し、そしてそれにより生じたデータをMユニット16
へ中継し、そこでこのデータは記憶された書き込みアド
レスと対にされ、その後に、その変換された物理アドレ
スで指定されたキャッシュ22内のメモリ位置に書き込
まれる。好ましい書き込み待ち行列構成体が、本発明の
譲受人の所有する「パイプライン式コンピュータシステ
ムにおいて可変数の潜在的なメモリアクセス競合を分析
する方法及び装置(Method and App
aratus ForResolving A V
ariable Number Of Poten
tialMemary Access Confl
icts In A PipelinedCom
puter System) Jと題する1989年
2月3日出願のD.ファイト氏等の米国特許出願第30
6,767号に詳細に開示されている。
多数の命令指定子を予め処理することにより命令の実行
速度を増加するという点で効果的に使用される。これら
のファクタを受け入れるために、Mユニット16には、
変換バッファ24とメインキャッシュ22との間に配置
された書き込み待ち行列構成体34かつ設けられる。こ
の書き込み待ち行列構成体34は、Eユニット20が命
令を完了するまでその変換されたアドレスを本質的に保
持し、そしてそれにより生じたデータをMユニット16
へ中継し、そこでこのデータは記憶された書き込みアド
レスと対にされ、その後に、その変換された物理アドレ
スで指定されたキャッシュ22内のメモリ位置に書き込
まれる。好ましい書き込み待ち行列構成体が、本発明の
譲受人の所有する「パイプライン式コンピュータシステ
ムにおいて可変数の潜在的なメモリアクセス競合を分析
する方法及び装置(Method and App
aratus ForResolving A V
ariable Number Of Poten
tialMemary Access Confl
icts In A PipelinedCom
puter System) Jと題する1989年
2月3日出願のD.ファイト氏等の米国特許出願第30
6,767号に詳細に開示されている。
メモリ読み取り動作を要求する命令の場合には、変換バ
ッファ24は、読み取り命令のオペランドに対する物理
アドレスを直接発生する。変換されたアドレスを記憶す
るための一時的な記憶手段36がMユニット16に設け
られており、この変換されたアドレスは、後でメインキ
ャッシュ22によって使用されて、識別されたメモリ位
置をアクセスすると共に、そこに記憶されたデータを適
当なデータ返送ラインを経てEユニット20へ供給する
。38及び40で各々示されたマルチブレクサ及びデマ
ルチプレクサユニットは、一時的な記憶ユニット36又
は書き込み待ち行列34のいずれかを選択してメインキ
ャッシュ22と変換バッファ24との間で変換されたア
ドレスを変換するためにメモリユニットl6に設けられ
ている。
ッファ24は、読み取り命令のオペランドに対する物理
アドレスを直接発生する。変換されたアドレスを記憶す
るための一時的な記憶手段36がMユニット16に設け
られており、この変換されたアドレスは、後でメインキ
ャッシュ22によって使用されて、識別されたメモリ位
置をアクセスすると共に、そこに記憶されたデータを適
当なデータ返送ラインを経てEユニット20へ供給する
。38及び40で各々示されたマルチブレクサ及びデマ
ルチプレクサユニットは、一時的な記憶ユニット36又
は書き込み待ち行列34のいずれかを選択してメインキ
ャッシュ22と変換バッファ24との間で変換されたア
ドレスを変換するためにメモリユニットl6に設けられ
ている。
各々の命令において、第1バイトはOPコードを含んで
おりそしてそれに続くバイトはデコードされるべきオペ
ランド指定子である。各指定子の第1バイトは、その指
定子のためのアドレスモードを指示する。このバイトは
通常半分に分割され、一方の半分はアドレスモードを指
定しそして他方の半分はアドレス動作に使用されるレジ
スタを指定する。命令は、可変長さであるのが好ましく
、種々の形式の指定子を同じOPコードと共に使用する
ことができる。この形式の典型的な構成が1980年1
2月23日付のストレッカー氏等の米国特許第4.24
1,397号に開示されている。
おりそしてそれに続くバイトはデコードされるべきオペ
ランド指定子である。各指定子の第1バイトは、その指
定子のためのアドレスモードを指示する。このバイトは
通常半分に分割され、一方の半分はアドレスモードを指
定しそして他方の半分はアドレス動作に使用されるレジ
スタを指定する。命令は、可変長さであるのが好ましく
、種々の形式の指定子を同じOPコードと共に使用する
ことができる。この形式の典型的な構成が1980年1
2月23日付のストレッカー氏等の米国特許第4.24
1,397号に開示されている。
命令を処理する第1の段階は、命令の”OPコード”を
デコードすることである。各命令の第1部分は、命令に
おいて実行されるべきオペレーション、指定子の数及び
各指定子の形式を指定するOPコードより成る。デコー
ド動作は、命令デコーダ32におけるテーブル・ルック
アップ技術を用いて行なわれる。命令デコーダは、ルッ
クアソプテーブルにおいて命令を実行するためのマイク
ロコードスタートアドレスを見い出し、そのスタートア
ドレスをEユニット20に通す。その後、Eユニットは
、指示されたスタートアドレスで始まる予め記憶された
マイクロコードを実行することにより指定のオペレーシ
ョンを実行する。又、デコーダは、ソースオペランド及
び先行オペランド指定子が命令内のどこに生じるかを決
定し、これらの指定子を命令実行前に予め処理するため
にOPU3 3に通す。
デコードすることである。各命令の第1部分は、命令に
おいて実行されるべきオペレーション、指定子の数及び
各指定子の形式を指定するOPコードより成る。デコー
ド動作は、命令デコーダ32におけるテーブル・ルック
アップ技術を用いて行なわれる。命令デコーダは、ルッ
クアソプテーブルにおいて命令を実行するためのマイク
ロコードスタートアドレスを見い出し、そのスタートア
ドレスをEユニット20に通す。その後、Eユニットは
、指示されたスタートアドレスで始まる予め記憶された
マイクロコードを実行することにより指定のオペレーシ
ョンを実行する。又、デコーダは、ソースオペランド及
び先行オペランド指定子が命令内のどこに生じるかを決
定し、これらの指定子を命令実行前に予め処理するため
にOPU3 3に通す。
ルックアップテーブルは、多数の人力を各々有する多ブ
ロックのアレイとして構成される。ルックアップテーブ
ルの各入力は、そのブロック及び入力インデックスによ
りアドレスすることができる。OPコードバイトはブロ
ックをアドレスし、実行点カウンタからのポインタ(命
令における現在指定子の位置を指示する)はブロソク内
の特定入力を選択する。選択された入力は、各指定子ご
とに、データコンテンクスト(バイト、ワード等)、デ
ータ形式(アドレス、整数等)及びアドレスモード(読
み取り、書き込み、変更等)を指定する。
ロックのアレイとして構成される。ルックアップテーブ
ルの各入力は、そのブロック及び入力インデックスによ
りアドレスすることができる。OPコードバイトはブロ
ックをアドレスし、実行点カウンタからのポインタ(命
令における現在指定子の位置を指示する)はブロソク内
の特定入力を選択する。選択された入力は、各指定子ご
とに、データコンテンクスト(バイト、ワード等)、デ
ータ形式(アドレス、整数等)及びアドレスモード(読
み取り、書き込み、変更等)を指定する。
命令がデコードされた後に、OPU33はオペランド指
定子を通し、それらの有効アドレスを計算する。このプ
ロセスは、GPRを読み取りそしておそらく自動増加又
は自動減少によってGPRの内容を変更することを含む
。次いで、オペランドがこれらの有効アドレスからフェ
ッチされてEユニッl−20へ通され、該ユニットは命
令を実行しそしてその結果を、その命令に対して先行ホ
インタで識別された先行へ書き込む。OPU3 3は、
各命令のOPコードに基づいて指定子信号も発生する。
定子を通し、それらの有効アドレスを計算する。このプ
ロセスは、GPRを読み取りそしておそらく自動増加又
は自動減少によってGPRの内容を変更することを含む
。次いで、オペランドがこれらの有効アドレスからフェ
ッチされてEユニッl−20へ通され、該ユニットは命
令を実行しそしてその結果を、その命令に対して先行ホ
インタで識別された先行へ書き込む。OPU3 3は、
各命令のOPコードに基づいて指定子信号も発生する。
命令がEユニットに通されるたびに、■ユニットはマイ
クロコードディスパソチアドレス及び1組のポインタを
送信するが、これは、(1)ソースオペランドを見出す
ことのできるEユニットレジスタファイル内の位置と、
(2)結果を記憶すべき位置とに対するものである。E
ユニット内において、1組のバッファベースの待ち行列
42は、マイクロコードディスバッチアドレスを記憶す
るためのフォーク待ち行列と、ソースオペランド位置を
記憶するためのソースポインタ待ち行列と、行先位置を
記憶するための先行ポインタ待ち行列とを備えている。
クロコードディスパソチアドレス及び1組のポインタを
送信するが、これは、(1)ソースオペランドを見出す
ことのできるEユニットレジスタファイル内の位置と、
(2)結果を記憶すべき位置とに対するものである。E
ユニット内において、1組のバッファベースの待ち行列
42は、マイクロコードディスバッチアドレスを記憶す
るためのフォーク待ち行列と、ソースオペランド位置を
記憶するためのソースポインタ待ち行列と、行先位置を
記憶するための先行ポインタ待ち行列とを備えている。
これら待ち行列の各々は、多数の命令に対してデータを
保持することのできるFIFOバッファである。
保持することのできるFIFOバッファである。
又、Eユニット20はソースオペランドリスト44も備
えており、これは、GPRのコピーを含むマルチポート
レジスタファイルに記憶される。
えており、これは、GPRのコピーを含むマルチポート
レジスタファイルに記憶される。
従って、ソースポインタ待ち行列の入力は、レジスタオ
ベランドに対するGPR位置を指すか、或いはメモリ及
びリテラルオペランドに対するソースリストを指す。M
ユニット16及びIユニット18はソースリスト44に
入力を書き込み、Eユニット20は必要に応じてソース
リストからオペランドを読み取って命令を実行する。命
令を実行するために、Eユニット20は、命令発生ユニ
ット46と、マイクロコード実行ユニット48と、演算
論理ユニフ} (ALU)50と、命令リタイヤユニッ
ト52とを備えている。
ベランドに対するGPR位置を指すか、或いはメモリ及
びリテラルオペランドに対するソースリストを指す。M
ユニット16及びIユニット18はソースリスト44に
入力を書き込み、Eユニット20は必要に応じてソース
リストからオペランドを読み取って命令を実行する。命
令を実行するために、Eユニット20は、命令発生ユニ
ット46と、マイクロコード実行ユニット48と、演算
論理ユニフ} (ALU)50と、命令リタイヤユニッ
ト52とを備えている。
本発明の重要な特徴によれば、各々のパイプライン段に
はMユニットの前端に向ってポートが設けられている。
はMユニットの前端に向ってポートが設けられている。
この構成では、Mユニットにより処理されるメモリアク
セス要求に、その要求を開始した特定のパイプライン段
に関して便利なようにフラグを立てることができる。従
って、例外を生じるメモリアクセス要求に関連したポー
トを容易に分離し、そしてそれを不作動化するか、或い
はその例外が適当に処理されるまでその関連パイプライ
ン段からそれ以上のメモリアクセス要求を受け入れない
よう阻止することができる。
セス要求に、その要求を開始した特定のパイプライン段
に関して便利なようにフラグを立てることができる。従
って、例外を生じるメモリアクセス要求に関連したポー
トを容易に分離し、そしてそれを不作動化するか、或い
はその例外が適当に処理されるまでその関連パイプライ
ン段からそれ以上のメモリアクセス要求を受け入れない
よう阻止することができる。
第1図において、前端は変換バッファ24によって表わ
されており、このバッファは、図示されたように、Iユ
ニット18及びEユニット20内に配置されたパイプラ
インの適当な段からメモリアクセス要求を受け取るため
のポートを有している。特に、■バフファ30は命令キ
ャッシュ28を経てMユニット16の対応する前端ポー
ト24Aに接続される。OPU3 3はそれに対応する
前端ボー}24Bに接続され、そしてEユニット段に対
して前端ポート24Cが設けられている。メモリアクセ
ス要求を発生するパイプラインの別々の段に対して他の
個別のポートを設けることができ、第1図に示されたポ
ートは単に説明のためのものであって、これらに限定さ
れるものでないことが理解されよう。
されており、このバッファは、図示されたように、Iユ
ニット18及びEユニット20内に配置されたパイプラ
インの適当な段からメモリアクセス要求を受け取るため
のポートを有している。特に、■バフファ30は命令キ
ャッシュ28を経てMユニット16の対応する前端ポー
ト24Aに接続される。OPU3 3はそれに対応する
前端ボー}24Bに接続され、そしてEユニット段に対
して前端ポート24Cが設けられている。メモリアクセ
ス要求を発生するパイプラインの別々の段に対して他の
個別のポートを設けることができ、第1図に示されたポ
ートは単に説明のためのものであって、これらに限定さ
れるものでないことが理解されよう。
典型的な命令の実行に含まれた種々のパイプライン段に
ついて、第2図を参照して以下に説明する。上記したよ
うに、.パイプライン式プロセノサにおいては、プロセ
ッサの命令フェッチハードウェアが1つの命令をフェッ
チする間に、他のハードウエアが第2命令のオペレーシ
ョンコードをデコードし、第3命令のオペランドをフェ
ッチし、第4命令を実行し、そして第5命令の処理済み
データを記憶する。第2図は、次のような典型的な命令
に対するパイプラインを示している。
ついて、第2図を参照して以下に説明する。上記したよ
うに、.パイプライン式プロセノサにおいては、プロセ
ッサの命令フェッチハードウェアが1つの命令をフェッ
チする間に、他のハードウエアが第2命令のオペレーシ
ョンコードをデコードし、第3命令のオペランドをフェ
ッチし、第4命令を実行し、そして第5命令の処理済み
データを記憶する。第2図は、次のような典型的な命令
に対するパイプラインを示している。
ADDL3 RO.BAl2 (Rl),R2これは
、変位モードアドレス動作を用いたロングワード加算で
ある。
、変位モードアドレス動作を用いたロングワード加算で
ある。
この命令のパイプライン実行の第1段においては、命令
のプログラムカウンタく第1図のPC26)が形成され
る。これは、通常、手前の命令からプログラムカウンタ
を増加するか、又は分岐命令のターゲットアドレスを使
用することによって達成される。次いで、PCを使用し
、パイプラインの第2段において命令キャソシュ28が
アクセスされる。
のプログラムカウンタく第1図のPC26)が形成され
る。これは、通常、手前の命令からプログラムカウンタ
を増加するか、又は分岐命令のターゲットアドレスを使
用することによって達成される。次いで、PCを使用し
、パイプラインの第2段において命令キャソシュ28が
アクセスされる。
パイプラインの第3段においては、命令データがキャッ
シュ22から得られ、これは命令デコーダ32によって
使用されるか或いは命令バッファ30ヘロードされる。
シュ22から得られ、これは命令デコーダ32によって
使用されるか或いは命令バッファ30ヘロードされる。
命令デコーダ32は、以下で詳細に述べるように、単一
のサイクルにおいてOPコード及び3つの指定子をデコ
ードする。オペランドアドレスRO及びR2はALUユ
ニット50へ送られ、そしてオペランドは、デコードサ
イクルの終りにバイト変位と共にOPU33R1へ送ら
れる。
のサイクルにおいてOPコード及び3つの指定子をデコ
ードする。オペランドアドレスRO及びR2はALUユ
ニット50へ送られ、そしてオペランドは、デコードサ
イクルの終りにバイト変位と共にOPU33R1へ送ら
れる。
段4において、オペランドユニット33は、位置R1に
あるGPRレジスタファイルの内容を読み取り、その値
を指定の変位(この場合、12)に加え、そしてそれに
より得られたアドレスをアドレス発生段階の終りにMユ
ニット16内の変換バッファ24へoP読み取り要求と
共に送信する。
あるGPRレジスタファイルの内容を読み取り、その値
を指定の変位(この場合、12)に加え、そしてそれに
より得られたアドレスをアドレス発生段階の終りにMユ
ニット16内の変換バッファ24へoP読み取り要求と
共に送信する。
段5において、Mユニット16は、段4で発生されたア
ドレスを実行のために選択する。変換バッファ24を使
用し、Mユニット16は、アドレス変換段階中に仮想ア
ドレスを物理アドレスに変換する。アドレス変換による
欠陥が検出されそしてそれに対応する欠陥情報が発生さ
れるのはこの段階である。本発明によれば、それにより
生じた欠陥情報は記憶装置に入れられ、欠陥情報の関連
セグメントが現在段で発生された結果と共にその後続段
で処理されるべく通される。欠陥情報の発生及びその最
終的な使い方は以下で詳細に説明する。次いで、物理ア
ドレスを用いてキャッシュ22がアドレスされ、これは
パイプラインの段6で読み取られる。
ドレスを実行のために選択する。変換バッファ24を使
用し、Mユニット16は、アドレス変換段階中に仮想ア
ドレスを物理アドレスに変換する。アドレス変換による
欠陥が検出されそしてそれに対応する欠陥情報が発生さ
れるのはこの段階である。本発明によれば、それにより
生じた欠陥情報は記憶装置に入れられ、欠陥情報の関連
セグメントが現在段で発生された結果と共にその後続段
で処理されるべく通される。欠陥情報の発生及びその最
終的な使い方は以下で詳細に説明する。次いで、物理ア
ドレスを用いてキャッシュ22がアドレスされ、これは
パイプラインの段6で読み取られる。
パイプラインの段7において、命令がA L LJ27
に発生され、ALU2 7は2つのオペランドを加算し
、その結果をリタイヤユニット28へ送る。段4の間に
、R1及びR2に対するレジスタ値と、メモリデータに
対するソースリスト位置を指すポインタとがEユニット
へ送られそしてポインタ待ち行列に記憶される。次いで
、キャッシュ読み取り段階中に、Eユニットはソースリ
ストにおいて2つのソースオペランドを探す。この特定
例においては、RO内のレジスタデー夕のみを見つけ゜
るが、この段の終りに、メモリデータが到達し、レジス
タファイルの無効化された読み出しと取り替えられる。
に発生され、ALU2 7は2つのオペランドを加算し
、その結果をリタイヤユニット28へ送る。段4の間に
、R1及びR2に対するレジスタ値と、メモリデータに
対するソースリスト位置を指すポインタとがEユニット
へ送られそしてポインタ待ち行列に記憶される。次いで
、キャッシュ読み取り段階中に、Eユニットはソースリ
ストにおいて2つのソースオペランドを探す。この特定
例においては、RO内のレジスタデー夕のみを見つけ゜
るが、この段の終りに、メモリデータが到達し、レジス
タファイルの無効化された読み出しと取り替えられる。
従って、命令実行段階中に両方のオペランドが得られる
。メモリの実行には、命令発生段階に続いて、指定のオ
ペランドを使用する実際の実行が本質的に含まれる。
。メモリの実行には、命令発生段階に続いて、指定のオ
ペランドを使用する実際の実行が本質的に含まれる。
本発明によれば、パイプラインの手前の段階の完了によ
り得られたデータは、実行段において欠陥情報の存在に
対してチェックされる。欠陥の指示が検出された場合に
は、その欠陥が最初に検出されたときに既に記憶された
更に別の欠陥情報が呼び出され、そして以下に述べるよ
うに、実行ハンドリングルーチンが呼び出される。
り得られたデータは、実行段において欠陥情報の存在に
対してチェックされる。欠陥の指示が検出された場合に
は、その欠陥が最初に検出されたときに既に記憶された
更に別の欠陥情報が呼び出され、そして以下に述べるよ
うに、実行ハンドリングルーチンが呼び出される。
パイプラインのりタイヤ段8において、得られたデータ
がリタイヤ待ち行列における次の入力と対にされる。多
数のファンクションEユニソ1−が同時にビジーになる
ことがあるが、1つのサイクル中には1つの命令しかり
タイヤできない。
がリタイヤ待ち行列における次の入力と対にされる。多
数のファンクションEユニソ1−が同時にビジーになる
ことがあるが、1つのサイクル中には1つの命令しかり
タイヤできない。
ここに示すパイプラインの最後の段9においては、Eユ
ニット20がIユニット18の両方のレジスタファイル
のGPR部分にデータが書き込まれる。
ニット20がIユニット18の両方のレジスタファイル
のGPR部分にデータが書き込まれる。
本発明によれば、メモリアクセス要求は、仮想/物理メ
モリアドレス変換を必要とする命令パイプライン内の段
により留められる。これらの要求は、Mユニットの前端
に設けられた対応するポートに留められる。この留めら
れたメモリアクセス要求に関連した仮想アドレスは、所
定の組のメモリアクセス違反の存在を決定するように処
理される。違反の存在が見つからない場合には、メモリ
アクセス要求が許可され、それに関連したメモリ動作が
通常の仕方で完了される。然し乍ら、違反の存在か見つ
かると、それに関連した仮想アドレスが、遭遇したアク
セス違反の特定形式を識別するコードと共に記憶される
。次いで、違反の存在を示す欠陥信号が発生され、そこ
に含まれた情報が、その後のパイプライン段に沿って送
られる得られたデータと共にEユニットヘ伝幡される。
モリアドレス変換を必要とする命令パイプライン内の段
により留められる。これらの要求は、Mユニットの前端
に設けられた対応するポートに留められる。この留めら
れたメモリアクセス要求に関連した仮想アドレスは、所
定の組のメモリアクセス違反の存在を決定するように処
理される。違反の存在が見つからない場合には、メモリ
アクセス要求が許可され、それに関連したメモリ動作が
通常の仕方で完了される。然し乍ら、違反の存在か見つ
かると、それに関連した仮想アドレスが、遭遇したアク
セス違反の特定形式を識別するコードと共に記憶される
。次いで、違反の存在を示す欠陥信号が発生され、そこ
に含まれた情報が、その後のパイプライン段に沿って送
られる得られたデータと共にEユニットヘ伝幡される。
命令を実行するためにこのデータがEユニットによって
要求されるときには、このデータが欠陥信号の存在を対
してEユニットによってチェックされる。この信号が存
在すると分った場合には、Mユニットに既に記憶された
欠陥アドレス及びコードが検索され、それに対応する所
定の例外ハンドリングルーチンが呼び出される。
要求されるときには、このデータが欠陥信号の存在を対
してEユニットによってチェックされる。この信号が存
在すると分った場合には、Mユニットに既に記憶された
欠陥アドレス及びコードが検索され、それに対応する所
定の例外ハンドリングルーチンが呼び出される。
留められたメモリアクセス要求に伴なう仮想アドレスは
、変換バッファ30 (第1図)が最近使用された仮想
/物理変換の局部的なキャッシュと共に動作するときに
はこの変換バッファ30の動作によって発生することが
でき、或いはその局部的な変換バッファキャッシュが所
要のアドレス変換を含まないときにはアドレス変換を取
り扱う当該変換バッファ固定(fix−up)ユニット
の動作によって発生することができる。変換バッファ3
0の機能構成部分、それに関連した固定ユニットの詳細
な説明、及びそれに関連した動作の説明は、参考として
ここに取り上げる本発明の譲受人の所有する「デジタル
コンピュータシステムにおいて仮想/物理メモリアドレ
ス変換を制御する方法及び装置(Method And
Apparatus For Controllin
gThe Conversfon Of Virtua
l To Physiacl MemoryAddre
sses In A Digital Compute
r System )Jと題する工989年2月3日付
の上記 ヘサリングトン氏の米国特許出願第306, 544号
に開示されている。本発明を容易に理解するため、第3
図及び第4図を参照して変換バッファ及び固定ユニット
の動作を簡単に説明する。
、変換バッファ30 (第1図)が最近使用された仮想
/物理変換の局部的なキャッシュと共に動作するときに
はこの変換バッファ30の動作によって発生することが
でき、或いはその局部的な変換バッファキャッシュが所
要のアドレス変換を含まないときにはアドレス変換を取
り扱う当該変換バッファ固定(fix−up)ユニット
の動作によって発生することができる。変換バッファ3
0の機能構成部分、それに関連した固定ユニットの詳細
な説明、及びそれに関連した動作の説明は、参考として
ここに取り上げる本発明の譲受人の所有する「デジタル
コンピュータシステムにおいて仮想/物理メモリアドレ
ス変換を制御する方法及び装置(Method And
Apparatus For Controllin
gThe Conversfon Of Virtua
l To Physiacl MemoryAddre
sses In A Digital Compute
r System )Jと題する工989年2月3日付
の上記 ヘサリングトン氏の米国特許出願第306, 544号
に開示されている。本発明を容易に理解するため、第3
図及び第4図を参照して変換バッファ及び固定ユニット
の動作を簡単に説明する。
第3図を参照し、変換バッファ24の動作について詳細
に説明する。変換バッファ24は、5つの種々のソース
から仮想アドレスを受け取るように接続される。これら
ソースのうちの3つはメモリアクセスユニット16の外
部にあり、以下、般に外部と称する。他の2つのソース
はメモリアクセスユニット16内から制御され、以下、
一般に内部と称する。これらの内部レジスタは、変換バ
ッファの“ミス”中に、メモリから仮想/物理変換を検
索しそしてそれを変換バッファ24に入れるのに使用さ
れる。
に説明する。変換バッファ24は、5つの種々のソース
から仮想アドレスを受け取るように接続される。これら
ソースのうちの3つはメモリアクセスユニット16の外
部にあり、以下、般に外部と称する。他の2つのソース
はメモリアクセスユニット16内から制御され、以下、
一般に内部と称する。これらの内部レジスタは、変換バ
ッファの“ミス”中に、メモリから仮想/物理変換を検
索しそしてそれを変換バッファ24に入れるのに使用さ
れる。
外部ソースは、1ユニット18の一部分であって命令の
ブリフェッチアドレスを与える役目を果たす■バッファ
30と、オペランドのブリフェッチアドレスを与えるO
PU3 3と、明確なオペランドアドレスを与えるEユ
ニット20とを備えている。変換バッファ24の動作は
、全てのアドレスが同一に処理されるので、処理されて
いる特定の外部アドレスとは独立したものである。
ブリフェッチアドレスを与える役目を果たす■バッファ
30と、オペランドのブリフェッチアドレスを与えるO
PU3 3と、明確なオペランドアドレスを与えるEユ
ニット20とを備えている。変換バッファ24の動作は
、全てのアドレスが同一に処理されるので、処理されて
いる特定の外部アドレスとは独立したものである。
これら外部ソースの各々はマルチプレクサ54の入力に
送られ、このマルチプレクサは、選択された入力を変換
バッファ24へ制御可能に与える。
送られ、このマルチプレクサは、選択された入力を変換
バッファ24へ制御可能に与える。
変換バンファ24は、受け取った仮想アドレスを、最近
使用した仮想/物理アドレス変換のキャッジュ55と比
較する。一致が得られた場合には、変換バッファ24は
それに対応する物理アドレスを選択し、それをキャソシ
ュ22へ供給する。仮想/物理変換をフェッチするため
にキャッシュ22をアクセスする必要がない。というの
は、この仮想/物理変換は、その手前の使用により変換
バッファキャッシュ55内に既に存在するからである。
使用した仮想/物理アドレス変換のキャッジュ55と比
較する。一致が得られた場合には、変換バッファ24は
それに対応する物理アドレスを選択し、それをキャソシ
ュ22へ供給する。仮想/物理変換をフェッチするため
にキャッシュ22をアクセスする必要がない。というの
は、この仮想/物理変換は、その手前の使用により変換
バッファキャッシュ55内に既に存在するからである。
この点について、変換バッファ24は、メモリへのアク
セス回数を減少することによりプロセソサの速度を相当
に高める。
セス回数を減少することによりプロセソサの速度を相当
に高める。
然し乍ら、変換バッファキャソシュ55は、少数の仮想
/物理変換しか含まない。従って、現在変換されている
仮想アドレスは変換バッファキャソシュ55内に存在し
ないことが考えられる。これが生じたときには、メモリ
から変換を検索しそしてそれを変換バッファキャッシュ
55に入れて、仮想/物理変換を完了できるようにする
ことが必要である。
/物理変換しか含まない。従って、現在変換されている
仮想アドレスは変換バッファキャソシュ55内に存在し
ないことが考えられる。これが生じたときには、メモリ
から変換を検索しそしてそれを変換バッファキャッシュ
55に入れて、仮想/物理変換を完了できるようにする
ことが必要である。
又、選択された外部ソースによって与えられた仮想アド
レスは、変換バッファの固定ユニット(TB Fixu
p) 5 6にも送られる。その名前が示すように、T
B Fixup 5 6は、主として、変換バッファ
キャッシュ51内に存在しないこれらの変換を検索して
それらを変換バッファ24に入れることのみを行なう。
レスは、変換バッファの固定ユニット(TB Fixu
p) 5 6にも送られる。その名前が示すように、T
B Fixup 5 6は、主として、変換バッファ
キャッシュ51内に存在しないこれらの変換を検索して
それらを変換バッファ24に入れることのみを行なう。
TB Fixup 56の特定の動作は、現在処理さ
れているメモリアクセスの形式によって制御される。こ
れを理解するためには、先ず、仮想メモリの構成を説明
することが必要である。
れているメモリアクセスの形式によって制御される。こ
れを理解するためには、先ず、仮想メモリの構成を説明
することが必要である。
仮想アドレス空間は、実際に、多数の機能領域即ちセグ
メントに分割される。先ず、仮想アドレス空間は、シス
テム空間及びプロセス空間と称する2つの半部分に分割
される。プロセス空間は、プログラム領域(PO)及び
制御領域(P1)に分割される。各領域は、そのメモリ
領域に対し全ての仮想/物理アドレス変換を集めたもの
を有している。これらの変換は全体的にページテーブル
と称され、一方個々の変換はページテーブル入力(PT
E)と称される.各領域はそれ自身のページテーブルを
有しており、2つのレジスタ、即ちページテーブルスタ
ートアドレスを含むペースレジスタと、そのテーブル内
のページテーブル入力の数を含む長さレジスタとによっ
て定められる.仮想アドレスは、32ビット長さの2進
数であり、2つの上位ビットがメモリの領域を定める。
メントに分割される。先ず、仮想アドレス空間は、シス
テム空間及びプロセス空間と称する2つの半部分に分割
される。プロセス空間は、プログラム領域(PO)及び
制御領域(P1)に分割される。各領域は、そのメモリ
領域に対し全ての仮想/物理アドレス変換を集めたもの
を有している。これらの変換は全体的にページテーブル
と称され、一方個々の変換はページテーブル入力(PT
E)と称される.各領域はそれ自身のページテーブルを
有しており、2つのレジスタ、即ちページテーブルスタ
ートアドレスを含むペースレジスタと、そのテーブル内
のページテーブル入力の数を含む長さレジスタとによっ
て定められる.仮想アドレスは、32ビット長さの2進
数であり、2つの上位ビットがメモリの領域を定める。
例えば、ビット31はシステム及びプロセス空間を定め
る。この位置が1つであることはシステム空間を指示し
、一方0であることはプロセス空間を指示する。更に、
ビット30は2つのプロセス領域(PO,PI)を定め
る。プロセス空間の上位アドレスの半分は制御領域(P
i)であり、一方下位アドレスの半分はプログラム頷域
(PO)によって占有される。
る。この位置が1つであることはシステム空間を指示し
、一方0であることはプロセス空間を指示する。更に、
ビット30は2つのプロセス領域(PO,PI)を定め
る。プロセス空間の上位アドレスの半分は制御領域(P
i)であり、一方下位アドレスの半分はプログラム頷域
(PO)によって占有される。
アドレス空間の上位アドレスの半部分は、システム内の
全てのプログラムによって共有されるのでシステム空間
と称され、オペレーティングシステムハこの領域内で動
作する。システム空間に対しては1つのページテーブル
しかなく、これは、全てのシステム空間参照を変換する
システムページテーブル(SPT)である。このSPT
は、2つのハードウェアレジスタ、即ちシステムベース
レジスタ(SBR)及びシステム長さレジスタ(SLR
)によって説明される。これらのレジスタは、オペレー
ティングシステムがブートされるときにソフトウェアに
よってロードされる。
全てのプログラムによって共有されるのでシステム空間
と称され、オペレーティングシステムハこの領域内で動
作する。システム空間に対しては1つのページテーブル
しかなく、これは、全てのシステム空間参照を変換する
システムページテーブル(SPT)である。このSPT
は、2つのハードウェアレジスタ、即ちシステムベース
レジスタ(SBR)及びシステム長さレジスタ(SLR
)によって説明される。これらのレジスタは、オペレー
ティングシステムがブートされるときにソフトウェアに
よってロードされる。
SPTは物理アドレスによって参照されねばならないこ
とに注意するのが重要である。というのは、ページテー
ブル自体のない仮想/物理アドレス変換はないからであ
る。例えば、変換プロセスを開始す゜るためには、少な
くともSPTの物理アドレスが既知となって仮想/物理
変換を検索するようになっていなければならない。
とに注意するのが重要である。というのは、ページテー
ブル自体のない仮想/物理アドレス変換はないからであ
る。例えば、変換プロセスを開始す゜るためには、少な
くともSPTの物理アドレスが既知となって仮想/物理
変換を検索するようになっていなければならない。
メモリの下位アドレスの半分は、システム空間とは異な
りシステム内の各プログラムに独特なものであるからプ
ロセス空間と称される。各プログラムは、そのプログラ
ム及び制御領域に対しそれ自身のページテーブルを有し
ており、これらはそれに対応するベース及び長さレジス
タ(P O B R,PIBR,POLR及びPILR
)によって定められる。例えば、同じプロセス空間の仮
想アドレスを参照する種々のプログラムが種々の物理メ
モリ位置をアクセスする。従って、プロセスページテー
ブルは、物理メモリアドレスではなくて仮想メモリアド
レスによって参照される。従って、プロセス空間仮想ア
ドレスの変換は、プロセスベージテーブルの物理メモリ
位置を先ず探索しなければならない。これらのアドレス
は、システムページテーブル(SPT)の物理メモリ位
置において得られる。システムメモリ参照の変換は1つ
の段階で行なうことができるが、プロセスメモリ参照は
2つの変換、即ち先ず第1にプロセスペースレジスタア
ドレスの変換と、そして第2に、仮想アドレス自体の変
換とを行なわねばならない。
りシステム内の各プログラムに独特なものであるからプ
ロセス空間と称される。各プログラムは、そのプログラ
ム及び制御領域に対しそれ自身のページテーブルを有し
ており、これらはそれに対応するベース及び長さレジス
タ(P O B R,PIBR,POLR及びPILR
)によって定められる。例えば、同じプロセス空間の仮
想アドレスを参照する種々のプログラムが種々の物理メ
モリ位置をアクセスする。従って、プロセスページテー
ブルは、物理メモリアドレスではなくて仮想メモリアド
レスによって参照される。従って、プロセス空間仮想ア
ドレスの変換は、プロセスベージテーブルの物理メモリ
位置を先ず探索しなければならない。これらのアドレス
は、システムページテーブル(SPT)の物理メモリ位
置において得られる。システムメモリ参照の変換は1つ
の段階で行なうことができるが、プロセスメモリ参照は
2つの変換、即ち先ず第1にプロセスペースレジスタア
ドレスの変換と、そして第2に、仮想アドレス自体の変
換とを行なわねばならない。
プログラム領域(PO)はユーザプログラムを含んでい
て、プログラムがロードされると予想されるゼロベース
の仮想アドレス空間を与えるようになっている。これに
対し、制御領域(P1)はプロセスのユーザモードスタ
ックを受け入れる。
て、プログラムがロードされると予想されるゼロベース
の仮想アドレス空間を与えるようになっている。これに
対し、制御領域(P1)はプロセスのユーザモードスタ
ックを受け入れる。
又、オペレーティングシステムは、保護されたプロセス
特有データ及びコードを含むと共により高いアクセスモ
ードに対してスタックを含むように制御領域を使用する
ことができる。
特有データ及びコードを含むと共により高いアクセスモ
ードに対してスタックを含むように制御領域を使用する
ことができる。
第3図を再び参照すると、TB Fixup 56は
、マルチプレクサ50からの仮想アドレスを受け取りそ
してビット30及び31を使用して、アクセスされてい
る仮想メモリ領域を決定する。指定された領域は、どの
ペースレジスタを使用して対応するページテーブルを検
索すべきかを決定するのに使用される。システムメモリ
参照の場合は、SBRから計算されたページテーブルア
ドレスが物理アドレスであり、これをメモリアクセスユ
ニットのキャッシュ22へ直接供給して、対応する仮想
/物理変換を記憶することができる。然し乍ら、“ミス
”が生じたときに変換バッファ24を固定するだけでよ
い。従って、変換バッファ24はミス信号をTB F
ix’up 5 6に供給し、計算したアドレスをキャ
ッシュ22に供給することができる。TB“ミス”の場
合には、変換がキャッシュ22から検索され、変換バッ
ファキャッシュ55に記憶される。従って、変換バッフ
ァキャッシュ55とペンディング中の仮想アドレスとの
直後の比較は当然“ヒット”を生じるはずである。
、マルチプレクサ50からの仮想アドレスを受け取りそ
してビット30及び31を使用して、アクセスされてい
る仮想メモリ領域を決定する。指定された領域は、どの
ペースレジスタを使用して対応するページテーブルを検
索すべきかを決定するのに使用される。システムメモリ
参照の場合は、SBRから計算されたページテーブルア
ドレスが物理アドレスであり、これをメモリアクセスユ
ニットのキャッシュ22へ直接供給して、対応する仮想
/物理変換を記憶することができる。然し乍ら、“ミス
”が生じたときに変換バッファ24を固定するだけでよ
い。従って、変換バッファ24はミス信号をTB F
ix’up 5 6に供給し、計算したアドレスをキャ
ッシュ22に供給することができる。TB“ミス”の場
合には、変換がキャッシュ22から検索され、変換バッ
ファキャッシュ55に記憶される。従って、変換バッフ
ァキャッシュ55とペンディング中の仮想アドレスとの
直後の比較は当然“ヒット”を生じるはずである。
それ故、TB Fixup 5 6は変換バッファ2
4を経て制御を一時的にアサー卜して変換バンファキャ
ッシュ55を更新し、これによりペンディング中の変換
が“ミス”から“ヒント”に変えられ、仮想/物理変換
が完了される。
4を経て制御を一時的にアサー卜して変換バンファキャ
ッシュ55を更新し、これによりペンディング中の変換
が“ミス”から“ヒント”に変えられ、仮想/物理変換
が完了される。
これに対し、アドレスされている仮想メモリ領域がプロ
セス領域に対応する場合には、プロセスペースレジスタ
POBR,PIBRのいずれかから計算したアドレスが
仮想アドレスである。この仮想アドレスはキャッシュ2
2に送られることはないが、先ず初めに物理アドレスに
変換されねばならない。もちろん、仮想/物理のアドレ
ス変換は通常は変換バッファ24によって行なわれる。
セス領域に対応する場合には、プロセスペースレジスタ
POBR,PIBRのいずれかから計算したアドレスが
仮想アドレスである。この仮想アドレスはキャッシュ2
2に送られることはないが、先ず初めに物理アドレスに
変換されねばならない。もちろん、仮想/物理のアドレ
ス変換は通常は変換バッファ24によって行なわれる。
変換バッファ24は現在ストールされていて、そのキャ
ッシュ5lを更新するためにT B Fixup56
を待期しているので、TB Fixup 5 6は変
換バッファを経て制御をアサー卜し、この仮想/物理変
換を実行することができる。TB Fixuρ56は
、プロセスベージテーブルの計算された仮想アドレスを
変換バッファ“ミス”に応答して内部レジスク57に供
給する。マルチブレクサ58は、内部レジスタ57の内
容をマルチブレクサ54の入力に与えるためにTB
Fixup 5 6によって選択される。又、TB
Fixup 56は、マルチプレクサ58の出力をマル
チブレクサ54への入力として選択するように動作する
。プロセスメモリ参照に対する変換バッファ1ミス”が
生じると、プロセスベージテーブルの計算された仮想ア
ドレスが仮想/物理変換のために変換バ・ノファ24に
送られるようになることが明らかであろう。
ッシュ5lを更新するためにT B Fixup56
を待期しているので、TB Fixup 5 6は変
換バッファを経て制御をアサー卜し、この仮想/物理変
換を実行することができる。TB Fixuρ56は
、プロセスベージテーブルの計算された仮想アドレスを
変換バッファ“ミス”に応答して内部レジスク57に供
給する。マルチブレクサ58は、内部レジスタ57の内
容をマルチブレクサ54の入力に与えるためにTB
Fixup 5 6によって選択される。又、TB
Fixup 56は、マルチプレクサ58の出力をマル
チブレクサ54への入力として選択するように動作する
。プロセスメモリ参照に対する変換バッファ1ミス”が
生じると、プロセスベージテーブルの計算された仮想ア
ドレスが仮想/物理変換のために変換バ・ノファ24に
送られるようになることが明らかであろう。
従って、この時に変換バッファ24に“ヒット”が生じ
ると、物理アドレスが変換バッファ24によってキャッ
シュ22へ直接送られる。
ると、物理アドレスが変換バッファ24によってキャッ
シュ22へ直接送られる。
又、第2の変換バッファの“ミス”が内部レジスタ56
に含まれたアドレスに対して生じることも考えられる。
に含まれたアドレスに対して生じることも考えられる。
又、TB Fixup 56はこの第2の“ミス”を
修正することもできる。固定(fixuρ)ルーチンは
、システム参照“ミス”に対してPTEを検索するのに
用いたものと同じである。
修正することもできる。固定(fixuρ)ルーチンは
、システム参照“ミス”に対してPTEを検索するのに
用いたものと同じである。
検索されたPTEは変換パソファキャッシュに記憶され
、これを用いて、変換バッファ24をその後に通過する
際に仮想/物理変換の物理アドレスを形成する。
、これを用いて、変換バッファ24をその後に通過する
際に仮想/物理変換の物理アドレスを形成する。
又、シーケンサ59は、内部レジスタ57と同じバスを
経てTB Fixup 56から入力を受け取る。シ
ーケンサ59は、メモリから多数の隣接ハイトを読み取
ることが必要な多数の高精度動作中に使用される。シー
ケンサ50はアドレスを増加し、それをマルチプレクサ
58に供給する。TBFixup 5 6は、シーケン
サの第1の内部レジスタアドレス及び第2の増加された
アドレスを連続的に供給するためにどのマルチブレクサ
入力が選択されるかを制御する。マルチバイトオペレー
ションの全てのバイトはこのようにアクセスされる。
経てTB Fixup 56から入力を受け取る。シ
ーケンサ59は、メモリから多数の隣接ハイトを読み取
ることが必要な多数の高精度動作中に使用される。シー
ケンサ50はアドレスを増加し、それをマルチプレクサ
58に供給する。TBFixup 5 6は、シーケン
サの第1の内部レジスタアドレス及び第2の増加された
アドレスを連続的に供給するためにどのマルチブレクサ
入力が選択されるかを制御する。マルチバイトオペレー
ションの全てのバイトはこのようにアクセスされる。
第4図は、変換バッファ24及びT B Fixup
56の詳細なブロック図である。変換バッファ24は、
最近使用されたPTEのキャッシュ55を保持する。3
2ビントの仮想アドレスは変換バッファ30によって受
け取られ、そしてビット31及び17:09はキャソシ
ュ55の1024個のメモリ位置に対するポインタとし
て使用される。
56の詳細なブロック図である。変換バッファ24は、
最近使用されたPTEのキャッシュ55を保持する。3
2ビントの仮想アドレスは変換バッファ30によって受
け取られ、そしてビット31及び17:09はキャソシ
ュ55の1024個のメモリ位置に対するポインタとし
て使用される。
キャッシュ55内の各メモリ位置は、仮想アドレスのビ
ソト30:18に対応する13ヒットタグを有している
。これらのタグはA.−A.。24と示されており、全
体的にページ変換ディレクトリと称される。下位の51
2個のタグはプロセスメモリ参照に対応しそして上位の
512個のタグはシステムメモリ参照に対応する。タグ
をプロセスタグとシステムタグとに分離する目的は、コ
ンテクストの切換が生じたときに現在プログラムに関連
したタグのみをオペレーティングシステムが迅速に無効
化できるようにするためである。例えば、別のプログラ
ムが実行を開始するときにこれらの入力が無効化されな
い場合には、この次のプログラムが、その手前のプログ
ラムにより予め変換されているプロセス仮想アドレスを
発生することにより間違った物理メモリ位置をアクセス
することがある。従って、変換・バッファ30が“ミス
”を検出するのではなく、手前のプログラムの仮想/物
理変換に基づいてタグの一致が生じる。
ソト30:18に対応する13ヒットタグを有している
。これらのタグはA.−A.。24と示されており、全
体的にページ変換ディレクトリと称される。下位の51
2個のタグはプロセスメモリ参照に対応しそして上位の
512個のタグはシステムメモリ参照に対応する。タグ
をプロセスタグとシステムタグとに分離する目的は、コ
ンテクストの切換が生じたときに現在プログラムに関連
したタグのみをオペレーティングシステムが迅速に無効
化できるようにするためである。例えば、別のプログラ
ムが実行を開始するときにこれらの入力が無効化されな
い場合には、この次のプログラムが、その手前のプログ
ラムにより予め変換されているプロセス仮想アドレスを
発生することにより間違った物理メモリ位置をアクセス
することがある。従って、変換・バッファ30が“ミス
”を検出するのではなく、手前のプログラムの仮想/物
理変換に基づいてタグの一致が生じる。
システムタグはコンテクストの切換の後に無効化される
必要がない。というのは、全てのプロセスがシステム空
間を共有しそして仮想/物理変換が各プロセスごとに同
じだからである。従って、いずれのプログラムからのシ
ステムメモリ参照も同じ物理メモリ位置をアクセスし、
システムタグをフラソシュする必要はない。ビソト31
はプロセスタグをシステムタグから分離する。
必要がない。というのは、全てのプロセスがシステム空
間を共有しそして仮想/物理変換が各プロセスごとに同
じだからである。従って、いずれのプログラムからのシ
ステムメモリ参照も同じ物理メモリ位置をアクセスし、
システムタグをフラソシュする必要はない。ビソト31
はプロセスタグをシステムタグから分離する。
タグA.−A,。24の各々に関連しているのは、B.
−B,。24と示された対応PTEを含む32ビソトの
データフィールドである。このPTEは、ビット24:
(10の物理ページフレーム数と、ビソト3lの有効ビ
ットと、ビント30 : 27の保護フィールドと、ビ
ット26の変更ビットとを含む。これらのPTEは全体
的にページ変換記憶装置と称される。
−B,。24と示された対応PTEを含む32ビソトの
データフィールドである。このPTEは、ビット24:
(10の物理ページフレーム数と、ビソト3lの有効ビ
ットと、ビント30 : 27の保護フィールドと、ビ
ット26の変更ビットとを含む。これらのPTEは全体
的にページ変換記憶装置と称される。
比較器60は、仮想アドレスのビット30:18と、ポ
インタに対応する13ビットタグとを受け取る。これら
のビット間の一致は、仮想アドレスに対応するPTEが
ページ変換記憶装置においてタグピットに対応する位置
に配置されることを示している。選択されたPTEのビ
ット29:09はレジスタ62の1つの人力に送られる
。レジスタ62の他方の入力は、仮想アドレスのビソト
08:(10から形成される。換言すれば、対応する物
理ページは、実際の物理アドレスを形成する仮想アドレ
スのバイトオフセットに添付される。
インタに対応する13ビットタグとを受け取る。これら
のビット間の一致は、仮想アドレスに対応するPTEが
ページ変換記憶装置においてタグピットに対応する位置
に配置されることを示している。選択されたPTEのビ
ット29:09はレジスタ62の1つの人力に送られる
。レジスタ62の他方の入力は、仮想アドレスのビソト
08:(10から形成される。換言すれば、対応する物
理ページは、実際の物理アドレスを形成する仮想アドレ
スのバイトオフセットに添付される。
この物理アドレスはレジスタ62に維持され、このレジ
スタは比較器60からの反転したパルスによってクロッ
クされる。従って、計算された物理アドレスは、ページ
変換ディレクトリに“ヒット”が見つかったことを比較
器60が指示する場合にのみキャッシュ22へ供給され
る。
スタは比較器60からの反転したパルスによってクロッ
クされる。従って、計算された物理アドレスは、ページ
変換ディレクトリに“ヒット”が見つかったことを比較
器60が指示する場合にのみキャッシュ22へ供給され
る。
同時に、VPN (ビット29:09)がTBFixu
p 5 6に送られる。状態マシン66は、比較器60
からの制御入力(TBミス〉と、仮想アドレスのビット
31730とに応答してT B Fixup56の動作
を制御する。状態マシン66は、TBミス信号に応答し
、所要のPTEのアドレスを計算する。一般に、PTE
は、VPN及びペースレジスタのアドレスを加算するこ
とにより決定される。
p 5 6に送られる。状態マシン66は、比較器60
からの制御入力(TBミス〉と、仮想アドレスのビット
31730とに応答してT B Fixup56の動作
を制御する。状態マシン66は、TBミス信号に応答し
、所要のPTEのアドレスを計算する。一般に、PTE
は、VPN及びペースレジスタのアドレスを加算するこ
とにより決定される。
ビソト3l:30の状態は、PTEを計算するのに用い
られる特定のペースレジスタを決定する。
られる特定のペースレジスタを決定する。
前記したように、3つの別々のメモリ領域があり、その
各々はそれ自身の独特のページテーブル及びベースアド
レスを有している。状態マシン66は、ビソト31:3
0を解読し、マルチプレクサ68の選択入力に制御信号
を供給して、適当なペースレジスタを選択できるように
する。マルチブレクサ68への入力は、各メモリ領域の
ベース及び長さレジスタを含む一連の6個のレジスタ7
0(POBR,PIBRSSBR,POLR,PIBR
及びSLR)に接続される。
各々はそれ自身の独特のページテーブル及びベースアド
レスを有している。状態マシン66は、ビソト31:3
0を解読し、マルチプレクサ68の選択入力に制御信号
を供給して、適当なペースレジスタを選択できるように
する。マルチブレクサ68への入力は、各メモリ領域の
ベース及び長さレジスタを含む一連の6個のレジスタ7
0(POBR,PIBRSSBR,POLR,PIBR
及びSLR)に接続される。
又、状態マシン66はマルチブレクサ72の選沢入力を
制御し、このマルチブレクサは、レジスタセット73を
形成している一連の3つのアドレスレジスタの出力に接
続され、そしてレジスタセット73は種々の形式のTB
“ミス1状態に対応する仮想アドレスを一時的に記憶す
るようにされる。より詳細には、プロセッサメモリ内の
第1の“ミス゛に対応する仮想アドレスを記憶するため
の“ポートミス”レジスタが設けられており、固定ユニ
ットから変換バッファを次々に参照することにより生じ
る“ミス”に対応する仮想アドレスを記憶するための“
固定ミス”レジスタが設けられており、そして遅延固定
動作を必要とする“ミス”に対応する仮想アドレスを記
憶するための“遅延ミス”レジスタが設けられている。
制御し、このマルチブレクサは、レジスタセット73を
形成している一連の3つのアドレスレジスタの出力に接
続され、そしてレジスタセット73は種々の形式のTB
“ミス1状態に対応する仮想アドレスを一時的に記憶す
るようにされる。より詳細には、プロセッサメモリ内の
第1の“ミス゛に対応する仮想アドレスを記憶するため
の“ポートミス”レジスタが設けられており、固定ユニ
ットから変換バッファを次々に参照することにより生じ
る“ミス”に対応する仮想アドレスを記憶するための“
固定ミス”レジスタが設けられており、そして遅延固定
動作を必要とする“ミス”に対応する仮想アドレスを記
憶するための“遅延ミス”レジスタが設けられている。
これらの記憶された仮想アドレスに対する固定ユニット
の応答は以下で説明する。システムメモリ内の“ミス”
又はプロセスメモリ内の第1″ミス”の間に、状態マシ
ン66は、仮想アドレスのビット21:2を含むマルチ
ブレクサ72へのポートミスアドレス入力を選択する。
の応答は以下で説明する。システムメモリ内の“ミス”
又はプロセスメモリ内の第1″ミス”の間に、状態マシ
ン66は、仮想アドレスのビット21:2を含むマルチ
ブレクサ72へのポートミスアドレス入力を選択する。
最も下位の2ビットは必要とされない。というのは、P
TEがロングワード整列(4バイト)でキャソシュ28
に記憶されているからである。マルチプレクサ68、7
2は、それらの出力を加算器74へ供給し、ここで合成
されてPTEのアドレスを形成する。このアドレスは仲
裁ユニット75又はキャソシュ22へ送られる。
TEがロングワード整列(4バイト)でキャソシュ28
に記憶されているからである。マルチプレクサ68、7
2は、それらの出力を加算器74へ供給し、ここで合成
されてPTEのアドレスを形成する。このアドレスは仲
裁ユニット75又はキャソシュ22へ送られる。
アドレスと共に、状態マシン66は、計算したアドレス
が物理アドレスであるか仮想アドレスであるかによって
仲裁ユニット75又はキャソシュ28のいずれかに要求
信号を供給する。要求信号は、仲裁ユニット75及びキ
ャッシュ22の一方をイネーブルするように働く。例え
ば、プロセスペースレジスタにより計算されたアドレス
は仮想アドレスであり、キャッシュ22に送ることはで
きず、変換バッファ24において仮想/物理変換を受け
ねばならない。従って、状態マシン66は仲裁ユニット
75に要求信号を供給する。仲裁ユニット75は第3図
に示されたマルチプレクサ54に対応し、優先順位機構
に基づいて外部レジスタ又は内部レジスタから信号を供
給するように働く。内部レジスタ、即ちシーケンサ59
及び内部レジスタ57は、最も高い優先順位を有してい
る。従って、状態マシン66が仲裁ユニット75に要求
信号を与えるときには、内部レジスタが外部レジスクに
対して選択され、外部レジスタからの競合を招くことな
<, ”[” BFixupルーチンを進めることがで
きる。
が物理アドレスであるか仮想アドレスであるかによって
仲裁ユニット75又はキャソシュ28のいずれかに要求
信号を供給する。要求信号は、仲裁ユニット75及びキ
ャッシュ22の一方をイネーブルするように働く。例え
ば、プロセスペースレジスタにより計算されたアドレス
は仮想アドレスであり、キャッシュ22に送ることはで
きず、変換バッファ24において仮想/物理変換を受け
ねばならない。従って、状態マシン66は仲裁ユニット
75に要求信号を供給する。仲裁ユニット75は第3図
に示されたマルチプレクサ54に対応し、優先順位機構
に基づいて外部レジスタ又は内部レジスタから信号を供
給するように働く。内部レジスタ、即ちシーケンサ59
及び内部レジスタ57は、最も高い優先順位を有してい
る。従って、状態マシン66が仲裁ユニット75に要求
信号を与えるときには、内部レジスタが外部レジスクに
対して選択され、外部レジスタからの競合を招くことな
<, ”[” BFixupルーチンを進めることがで
きる。
これに対し、システムベースレジスタから計算されたア
ドレスは物理アドレスであり、キャッシュ22へ直接送
って所望のPTEを検索することができる。PTEはメ
モリから検索されてレジスタ76へ送られる。それに対
応する仮想アドレスのビソト30:18はレジスタ78
に与えられる。
ドレスは物理アドレスであり、キャッシュ22へ直接送
って所望のPTEを検索することができる。PTEはメ
モリから検索されてレジスタ76へ送られる。それに対
応する仮想アドレスのビソト30:18はレジスタ78
に与えられる。
レジスタ76、78の内容は、ポインタにより指示され
た位置に記憶され、最も最近に使用された仮想/物理変
換で変換バッファキャッシュ5lが更新される。
た位置に記憶され、最も最近に使用された仮想/物理変
換で変換バッファキャッシュ5lが更新される。
プロセスメモリ“ミス”の間に変換ハッファ24を第2
回目に参照することによって“ミス”が生じることも考
えられる。TB Fixup 5 6はこの2重の“
ミス”を取り扱うことができる。状態マシン66は、第
2の連続する“ミス”信号を比較器60から受け取った
ときに2重ミス状態を確認する。状態マシン66は、マ
ルチプレクサ68を介してシステムベースレジスタを選
択すると共に、マルチプレクサ72を介して固定ミスア
ドレスを選択する。ポートミスアドレスレジスタには、
第1の“ミス”を生じた元の仮想アドレスがロードされ
たま\となる。加算器74はこれらの選択された信号を
合成し、プロセスペースレジスタの物理システムアドレ
スを得るようにする。
回目に参照することによって“ミス”が生じることも考
えられる。TB Fixup 5 6はこの2重の“
ミス”を取り扱うことができる。状態マシン66は、第
2の連続する“ミス”信号を比較器60から受け取った
ときに2重ミス状態を確認する。状態マシン66は、マ
ルチプレクサ68を介してシステムベースレジスタを選
択すると共に、マルチプレクサ72を介して固定ミスア
ドレスを選択する。ポートミスアドレスレジスタには、
第1の“ミス”を生じた元の仮想アドレスがロードされ
たま\となる。加算器74はこれらの選択された信号を
合成し、プロセスペースレジスタの物理システムアドレ
スを得るようにする。
これはシステムメモリ参照であるから、そのアドレスは
物理メモリ位置を識別し、これは、キャソシュイネーブ
ル信号と共にキャソシュ22へ直接送ることができる。
物理メモリ位置を識別し、これは、キャソシュイネーブ
ル信号と共にキャソシュ22へ直接送ることができる。
ここで、プロセスは元のシステムメモリ参照と実質的に
同じであり、キャッシュ22はそれに応答して、識別さ
れたアドレスに記憶されたPTEを変換バッファキャッ
シュ55に送る。従って、外部レジスタが仲裁ユニット
75によって再び選択されると、変換バッファ24は仮
想/物理変換に対して当然“ヒット”となる。
同じであり、キャッシュ22はそれに応答して、識別さ
れたアドレスに記憶されたPTEを変換バッファキャッ
シュ55に送る。従って、外部レジスタが仲裁ユニット
75によって再び選択されると、変換バッファ24は仮
想/物理変換に対して当然“ヒット”となる。
変換バッファ固定ルーチ・ンによれば、TB Fixu
p56がPTEアドレスを計算する前に、仮想アドレス
がページテーブルの長さパラメータに違反したかどうか
を判断するために欠陥チェックが行なわれる。より節単
に述べると、メモリの領域内で利用できるページの数が
既知であり、メモリ内のページ数より大きな仮想ページ
はシステムエラーにならねばならない。加算器74を用
いてこの比較が行なわれる。状態マシン66は、マルチ
プレクサ72からの入力を反転しそしてビットの桁上げ
をイネーブルすることにより2の補数の減算を行なうよ
うに加算器74を構成する。このため、計算には2つの
最下位ビットが必要であり、従って、ポートミスアドレ
ス入力を選択するのではなく、状態マシンはマルチブレ
クサ72への遅延ミスアドレス入力を選択し、仮想アド
レスのビット21:0を検索する。
p56がPTEアドレスを計算する前に、仮想アドレス
がページテーブルの長さパラメータに違反したかどうか
を判断するために欠陥チェックが行なわれる。より節単
に述べると、メモリの領域内で利用できるページの数が
既知であり、メモリ内のページ数より大きな仮想ページ
はシステムエラーにならねばならない。加算器74を用
いてこの比較が行なわれる。状態マシン66は、マルチ
プレクサ72からの入力を反転しそしてビットの桁上げ
をイネーブルすることにより2の補数の減算を行なうよ
うに加算器74を構成する。このため、計算には2つの
最下位ビットが必要であり、従って、ポートミスアドレ
ス入力を選択するのではなく、状態マシンはマルチブレ
クサ72への遅延ミスアドレス入力を選択し、仮想アド
レスのビット21:0を検索する。
又、状態マシン66は、変換されているメモリの命令に
対応する長さレジスタ70も選択する。
対応する長さレジスタ70も選択する。
従って、ページテーブルの既知の長さから仮想アドレス
を減算することにより、否定結果は、仮想アドレスが不
存在PTEをアクセスしようとしていることを指示する
。或いは又、肯定結果は、長さ違反が存在せず、固定プ
ロセスを進められることを指示する。
を減算することにより、否定結果は、仮想アドレスが不
存在PTEをアクセスしようとしていることを指示する
。或いは又、肯定結果は、長さ違反が存在せず、固定プ
ロセスを進められることを指示する。
状態マシン66は、加算器74の桁上げビットを介して
このプロセスを監視する。桁上げビットがアサートされ
た場合には、その結果が否定であり、欠陥コマンドがE
ユニット16にアサー卜される。
このプロセスを監視する。桁上げビットがアサートされ
た場合には、その結果が否定であり、欠陥コマンドがE
ユニット16にアサー卜される。
変換バッファ24における“ミス”を修正するのに加え
て、T B Fixup 5 6はマルチ高精度オペレ
ーション中にデータを検索する上で助成する。
て、T B Fixup 5 6はマルチ高精度オペレ
ーション中にデータを検索する上で助成する。
これらのマルチ高精度命令は、たとえ1つのメモリ位置
が命令において識別されたとしても多数のメモリ位置を
アクセスする必要がある。従って、第1のメモリ参照が
変換バッファ24へ通される間に、TB Fixup5
6は次に続《アドレスを計算しそしてそれをシーケン
サ59に供給する。仮想アドレスは、マルチブレクサ7
2のゼロ入力に送られ、状態マシン66によって選択さ
れる。同時に、値4の定数がマルチプレクサ68のゼロ
入力に配置され、状態マシン66によって選択される。
が命令において識別されたとしても多数のメモリ位置を
アクセスする必要がある。従って、第1のメモリ参照が
変換バッファ24へ通される間に、TB Fixup5
6は次に続《アドレスを計算しそしてそれをシーケン
サ59に供給する。仮想アドレスは、マルチブレクサ7
2のゼロ入力に送られ、状態マシン66によって選択さ
れる。同時に、値4の定数がマルチプレクサ68のゼロ
入力に配置され、状態マシン66によって選択される。
それ故、加算器74の出力は、マルチ高精度命令に必要
な次のロングワードの仮想アドレスである。
な次のロングワードの仮想アドレスである。
このアドレスは仲裁ユニット75へ送られ、そこで外部
レジスタより大きい優先順位をとり、変換バッファ24
によって物理アドレスに変換される。
レジスタより大きい優先順位をとり、変換バッファ24
によって物理アドレスに変換される。
更に、ベース及び長さレジスタ70をロードするプロセ
スは、CPUの初期化段階中にEユニット20によって
制御される。Eユニット20は、4ビットのタグアドレ
ス及びイネーブル信号をデコーダ80に供給する。デコ
ーダ80はそれに応答して対応するレジスタ70をイネ
ーブルし、仮想アドレスに存在するデータを人力する。
スは、CPUの初期化段階中にEユニット20によって
制御される。Eユニット20は、4ビットのタグアドレ
ス及びイネーブル信号をデコーダ80に供給する。デコ
ーダ80はそれに応答して対応するレジスタ70をイネ
ーブルし、仮想アドレスに存在するデータを人力する。
このプロセスは、全てのレジスタに適当なデータがロー
ドされるまでベース及び長さレジスタ70の各々に対し
て繰り返される。
ドされるまでベース及び長さレジスタ70の各々に対し
て繰り返される。
第5図は、本発明の例外ハンドリング機構に基づいて欠
陥情報を発生する好ましい構成体を示すブロック図であ
る。図示されたように、Mユニット(第1図の参照番号
16)の前端の個々のポートに受け取られたメモリアク
セス要求に関連した仮想アドレスは、OPU33 (
第1図)、■ユニット18及びEユニット20に各々対
応する通信リンク93、94及び95を介して仲裁ユニ
ット92によって受け入れられる。仲裁ユニット92は
、所定の優先順位構成をベースとしてMユニットに定め
られた3つの外部ポートのうちの1つに対応するアドレ
スを選択するようになっている。
陥情報を発生する好ましい構成体を示すブロック図であ
る。図示されたように、Mユニット(第1図の参照番号
16)の前端の個々のポートに受け取られたメモリアク
セス要求に関連した仮想アドレスは、OPU33 (
第1図)、■ユニット18及びEユニット20に各々対
応する通信リンク93、94及び95を介して仲裁ユニ
ット92によって受け入れられる。仲裁ユニット92は
、所定の優先順位構成をベースとしてMユニットに定め
られた3つの外部ポートのうちの1つに対応するアドレ
スを選択するようになっている。
変換バッファ及び変換バッファ固定ユニットの動作を参
照して上記したように、処理されている仮想アドレスは
、メモリへのアクセスを必要とする命令実行パイプライ
ン内の段によって発生された32ビットアドレスである
のが好ましい。入力ポートに受け取られた3つの仮想ア
ドレスの1つは、仲裁ユニット92により処理するよう
に選択され、,そしてメモリのアドレスセグメントをア
クセスするために後で使用される変換バ・/ファ要求ア
ドレスとして出力される。仲裁ユニット92は、本質的
に、外部ソースよりも高い優先順位を内部ソースに与え
る優先順位機構に基づいて内部又は外部の仮想アドレス
ソースから信号を中継するように機能する。
照して上記したように、処理されている仮想アドレスは
、メモリへのアクセスを必要とする命令実行パイプライ
ン内の段によって発生された32ビットアドレスである
のが好ましい。入力ポートに受け取られた3つの仮想ア
ドレスの1つは、仲裁ユニット92により処理するよう
に選択され、,そしてメモリのアドレスセグメントをア
クセスするために後で使用される変換バ・/ファ要求ア
ドレスとして出力される。仲裁ユニット92は、本質的
に、外部ソースよりも高い優先順位を内部ソースに与え
る優先順位機構に基づいて内部又は外部の仮想アドレス
ソースから信号を中継するように機能する。
仲裁ユニットに受け取られる仮想アドレスは、itaバ
ッファの“ヒソト”動作により外部ソースから直接発生
することもできるし、或いは仮想アドレスをシステムメ
モリにおける対応する物理アドレスに変換するプロセス
の間に“ミス”動作に続いて変換バンファ固定ユニット
の動作により内部ソースを介して発生することもできる
点に注意されたい。
ッファの“ヒソト”動作により外部ソースから直接発生
することもできるし、或いは仮想アドレスをシステムメ
モリにおける対応する物理アドレスに変換するプロセス
の間に“ミス”動作に続いて変換バンファ固定ユニット
の動作により内部ソースを介して発生することもできる
点に注意されたい。
仲裁ユニットにより選択された特定の仮想アドレスは保
護チェックユニット96へ送られ、該ユニットは、アク
セスされた仮想アドレスを処理し、所定の1組のメモリ
アクセス違反の存在を決定する。好ましい実施例によれ
ば、保護チェックユニット96は、以下の表Aにリスト
したメモリアクセス違反の少なくとも5つの形式の存在
を監視する。
護チェックユニット96へ送られ、該ユニットは、アク
セスされた仮想アドレスを処理し、所定の1組のメモリ
アクセス違反の存在を決定する。好ましい実施例によれ
ば、保護チェックユニット96は、以下の表Aにリスト
したメモリアクセス違反の少なくとも5つの形式の存在
を監視する。
表一一一一N
欠陥コートにおける
lξpλj乏l! アサートさ
hたビフトアクセスモード l 無効変換 2 長 さ
3無効PPTE 4 変更 5 問題とする仮想アドレスが所定のメモリアクセス違反の
1つに対応することが分った場合、違反の存在を表わす
欠陥信号96Aが発止される。この欠陥信号96Aは単
lビソトフラグの形態であるのが好ましく、これはその
後のパイプライン段に沿って送られるデータに加えられ
且つこれと共に送られ、最終的にEユニットの実行段に
達する。
hたビフトアクセスモード l 無効変換 2 長 さ
3無効PPTE 4 変更 5 問題とする仮想アドレスが所定のメモリアクセス違反の
1つに対応することが分った場合、違反の存在を表わす
欠陥信号96Aが発止される。この欠陥信号96Aは単
lビソトフラグの形態であるのが好ましく、これはその
後のパイプライン段に沿って送られるデータに加えられ
且つこれと共に送られ、最終的にEユニットの実行段に
達する。
保護チェックを行なうために、チェソクユニット96は
32ビットPTE9Bを受け取り、これは、処理されて
いる仮想アドレスに対応し、上記で詳細に述べた仮想/
吻理アドレス変換プロセスの結果として発生されたもの
である。PTEは、ビソト20:(10の物理ページフ
レーム数PFNと、ビソト31の“有効”ビットと、ビ
ット30:27より成る保護フィールドと、ビソト6の
“変更”ビットとを含むことを想起されたい。
32ビットPTE9Bを受け取り、これは、処理されて
いる仮想アドレスに対応し、上記で詳細に述べた仮想/
吻理アドレス変換プロセスの結果として発生されたもの
である。PTEは、ビソト20:(10の物理ページフ
レーム数PFNと、ビソト31の“有効”ビットと、ビ
ット30:27より成る保護フィールドと、ビソト6の
“変更”ビットとを含むことを想起されたい。
機能的には、保護チェックユニット96は、対応する所
定のメモリアクセス違反の存在を決定するために32ビ
ットPTE98内の指定のビットの状態をチェックする
状態マシンである。より詳細には、PTE98のビソト
31は、それがアサートされたかどうかについてチェソ
クされる。上記したように、ビソト31は、これがアサ
ー卜されると、それに対応するページ数がメモリ内に存
在することを表わす有効ビットを表わし、このビント3
1がアサートされないときには、そのPTEに対応する
有効アドレスはそれに対応する有効変換をもたない。P
TEのビット31がアサートされないことがチェックユ
ニット96によって分かると、アクセス違反の存在を指
示する欠陥信号96Aを発生する。
定のメモリアクセス違反の存在を決定するために32ビ
ットPTE98内の指定のビットの状態をチェックする
状態マシンである。より詳細には、PTE98のビソト
31は、それがアサートされたかどうかについてチェソ
クされる。上記したように、ビソト31は、これがアサ
ー卜されると、それに対応するページ数がメモリ内に存
在することを表わす有効ビットを表わし、このビント3
1がアサートされないときには、そのPTEに対応する
有効アドレスはそれに対応する有効変換をもたない。P
TEのビット31がアサートされないことがチェックユ
ニット96によって分かると、アクセス違反の存在を指
示する欠陥信号96Aを発生する。
又、保護チェックユニット96は、PTE98により表
わされたビット情報内の変更ビントもチェックする。こ
のビットがアサートされない場合には、PTEにより参
照されたメモリ内の特定のページが書き込みアクセスを
もたず、メモリアクセス違反の存在を表わすことを指示
する。
わされたビット情報内の変更ビントもチェックする。こ
のビットがアサートされない場合には、PTEにより参
照されたメモリ内の特定のページが書き込みアクセスを
もたず、メモリアクセス違反の存在を表わすことを指示
する。
又、チェックユニット96は、長さ違反についてもPT
E98を監視し、メモリアクセス要求に伴なう仮想アド
レスが第4図を参照して上記したように不存在のPTE
をアクセスしようとしているかどうか判断する。この場
合にも、長さ違反が存在すると分かると、欠陥信号96
Aが発生される。
E98を監視し、メモリアクセス要求に伴なう仮想アド
レスが第4図を参照して上記したように不存在のPTE
をアクセスしようとしているかどうか判断する。この場
合にも、長さ違反が存在すると分かると、欠陥信号96
Aが発生される。
同様に、無効入力がシステムメモリのプロセス部分に対
してページテーブルを参照しているかどうかを調べるた
めにもPTE98がチェソクされ、これは、プロセスP
TE又はPPTEが無効であることを意味する。その結
果が肯定であれば、欠陥信号96Aが発生される。
してページテーブルを参照しているかどうかを調べるた
めにもPTE98がチェソクされ、これは、プロセスP
TE又はPPTEが無効であることを意味する。その結
果が肯定であれば、欠陥信号96Aが発生される。
保護チェックユニット96によって確認されるメモリア
クセス違反の別の形式は、プロセッサユニットが動作し
ている現在モードを超えるメモリアクセス要求に基づく
モードアクセス違反である。
クセス違反の別の形式は、プロセッサユニットが動作し
ている現在モードを超えるメモリアクセス要求に基づく
モードアクセス違反である。
例えば、メモリアクセス要求は、ユーザモードにおいて
システムの動作中に発生し、そして監視モードにおいて
メモリセグメントをアドレスするが、このような要求を
アクセス違反として識別することが重要である。これを
行なうために、チェックユニット96には、保護チェッ
クが実行されるときにシステムが動作されるモードを表
わす2ビソトコード97が設けられる。
システムの動作中に発生し、そして監視モードにおいて
メモリセグメントをアドレスするが、このような要求を
アクセス違反として識別することが重要である。これを
行なうために、チェックユニット96には、保護チェッ
クが実行されるときにシステムが動作されるモードを表
わす2ビソトコード97が設けられる。
本発明によれば、所定のメモリアクセス違反の検出に続
いて、その検出された違反の特定形式を示す欠陥コード
が発生される。より詳細には、欠陥コードフィールドの
個別のビ7}が上記テーブルAにリストされた所定のア
クセス違反の各々に対して指定される。例えば、5ビッ
ト欠陥コードのビソト1は、モードアクセス違反が見つ
かった場合にセントされ、ビット2は、無効変換違反が
存在する場合にアサートされ、ビット3は、PPTE違
反が存在する場合にアサートされ、そしてビソト5は、
変更違反が検出された場合にアサートされる。5ビット
欠陥コードは外部仮想アドレスソースの各々に対して発
生されそして対応する5ビットレジスタに別々に記憶さ
れる。より詳細には、レジスタセソト1(10が設けら
れており、その中の5ビットレジスタ101は、Eユニ
ットから発生する仮想アドレスに対応して発生された欠
陥コードを記憶する。同様に、5ビットレジスタ102
は、OPUに対応する欠陥コードを記憶するために設け
られており、そして更に別の5ビットレジスタ103は
、■ユニットに対応する欠陥コードを記憶するために設
けられている。
いて、その検出された違反の特定形式を示す欠陥コード
が発生される。より詳細には、欠陥コードフィールドの
個別のビ7}が上記テーブルAにリストされた所定のア
クセス違反の各々に対して指定される。例えば、5ビッ
ト欠陥コードのビソト1は、モードアクセス違反が見つ
かった場合にセントされ、ビット2は、無効変換違反が
存在する場合にアサートされ、ビット3は、PPTE違
反が存在する場合にアサートされ、そしてビソト5は、
変更違反が検出された場合にアサートされる。5ビット
欠陥コードは外部仮想アドレスソースの各々に対して発
生されそして対応する5ビットレジスタに別々に記憶さ
れる。より詳細には、レジスタセソト1(10が設けら
れており、その中の5ビットレジスタ101は、Eユニ
ットから発生する仮想アドレスに対応して発生された欠
陥コードを記憶する。同様に、5ビットレジスタ102
は、OPUに対応する欠陥コードを記憶するために設け
られており、そして更に別の5ビットレジスタ103は
、■ユニットに対応する欠陥コードを記憶するために設
けられている。
アクセス違反が保護チェックユニット96によって検さ
れそしてそれに対応する欠陥信号96Aが発生されるの
と同時に、その違反に対応する仮想アドレスが変換バッ
ファ要求99として中継され、そしてその後、レジスタ
セット104の対応するレジスタに記憶される。レジス
タセットは、Eユニットによって発生されるメモリアク
セス違反を表わすものとしてチェックユニットにより決
定された仮想アドレスを記憶するための32ビットアド
レスレジスタ105を備えている。同様に、Iユニット
により発生された32ビット仮想アドレスを記憶するた
めのアドレスレジスタ106が設けられていると共に、
OPUに対応する仮想アドレスを記憶するための32ビ
ソトレジスタ107が設けられている。
れそしてそれに対応する欠陥信号96Aが発生されるの
と同時に、その違反に対応する仮想アドレスが変換バッ
ファ要求99として中継され、そしてその後、レジスタ
セット104の対応するレジスタに記憶される。レジス
タセットは、Eユニットによって発生されるメモリアク
セス違反を表わすものとしてチェックユニットにより決
定された仮想アドレスを記憶するための32ビットアド
レスレジスタ105を備えている。同様に、Iユニット
により発生された32ビット仮想アドレスを記憶するた
めのアドレスレジスタ106が設けられていると共に、
OPUに対応する仮想アドレスを記憶するための32ビ
ソトレジスタ107が設けられている。
レジスタ105−107に記憶された欠陥アドレス情報
はマルチプレクサ108へ送られる。このMUX 1
0 8には、欠陥優先順位信号109として示された選
択信号が与えられ、これは、記憶された欠陥情報がその
後に呼び出されるときに2つ以上の欠陥アドレスがアド
レスレジスタにおいてアクティブであると分った場合に
その記憶された欠陥アドレスをチャンネルから出す順序
を決定する。レジスタセット1(10及び104に記憶
された欠陥アドレス情報及び欠陥コード情報は、Eユニ
ットが欠陥パラメータの転送を要求するまでMユニット
内に保持される。このような要求は、命令が実行段にお
いてEユニットによって処理されそして1ビット欠陥信
号の存在に対するチx ツクが肯定であると分ったとき
に発生される。
はマルチプレクサ108へ送られる。このMUX 1
0 8には、欠陥優先順位信号109として示された選
択信号が与えられ、これは、記憶された欠陥情報がその
後に呼び出されるときに2つ以上の欠陥アドレスがアド
レスレジスタにおいてアクティブであると分った場合に
その記憶された欠陥アドレスをチャンネルから出す順序
を決定する。レジスタセット1(10及び104に記憶
された欠陥アドレス情報及び欠陥コード情報は、Eユニ
ットが欠陥パラメータの転送を要求するまでMユニット
内に保持される。このような要求は、命令が実行段にお
いてEユニットによって処理されそして1ビット欠陥信
号の存在に対するチx ツクが肯定であると分ったとき
に発生される。
本発明の特徴によれば、Eユニットにより開始されたメ
モリアクセス違反に応答して発生された欠陥情報は、O
PUにより発生された欠陥情報に対する手順をとるもの
として指定され、これは次いでIユニット欠陥よりも優
先順位が高いものとして指定される。実際に、欠陥は、
Eユニット内のパイプライン段により指示される実行順
序で処理される。欠陥優先順位機構においてEユニット
欠陥を最も高いレベルにおく理由は、現在命令を実行す
るためにはEユニットパイプライン段の動作を完了させ
ることが不可避だからである。これは、OPU段が予め
フエフチした命令を処理するためのもので且つオペラン
ドが現在命令の完了に重要でないというケースではない
。欠陥優先順位信号は、好ましくは2ビッ斗の制御信号
であり、これは、有効欠陥アドレスがEユニット及びI
ユニットのアドレスレジスタ各々105及び106に同
時に存在する場合にEユニットのアドレスレジスタデー
夕をMUX 1 0 4の出力として選択する。
モリアクセス違反に応答して発生された欠陥情報は、O
PUにより発生された欠陥情報に対する手順をとるもの
として指定され、これは次いでIユニット欠陥よりも優
先順位が高いものとして指定される。実際に、欠陥は、
Eユニット内のパイプライン段により指示される実行順
序で処理される。欠陥優先順位機構においてEユニット
欠陥を最も高いレベルにおく理由は、現在命令を実行す
るためにはEユニットパイプライン段の動作を完了させ
ることが不可避だからである。これは、OPU段が予め
フエフチした命令を処理するためのもので且つオペラン
ドが現在命令の完了に重要でないというケースではない
。欠陥優先順位信号は、好ましくは2ビッ斗の制御信号
であり、これは、有効欠陥アドレスがEユニット及びI
ユニットのアドレスレジスタ各々105及び106に同
時に存在する場合にEユニットのアドレスレジスタデー
夕をMUX 1 0 4の出力として選択する。
同様に、レジスタ101−103に記憶された欠陥コー
ド情報はMUX 1 1 0に送られ、これは、MUX
10Bに送られる同じ欠陥優先順位信号に基づいて、そ
れに入力される3つの5ビットコードの1つを表わす出
力111を発生する。MUX108から発生された32
ビット欠陥アドレスは、MUX 1 1 0により発生
された5ビット欠陥コードと第3のMUXIIIおいて
合成され、従って、実際には、欠陥アドレス及びそれに
対応する欠陥コードは、欠陥指示が実行段において検出
されたときにEユニットにより要求される欠陥パラメー
タとしてEユニットへ中継される欠陥データを構成する
。欠陥パラメータは、MユニットからEユニットへデー
タを転送するために通常使用される同じラインに沿って
中継される。
ド情報はMUX 1 1 0に送られ、これは、MUX
10Bに送られる同じ欠陥優先順位信号に基づいて、そ
れに入力される3つの5ビットコードの1つを表わす出
力111を発生する。MUX108から発生された32
ビット欠陥アドレスは、MUX 1 1 0により発生
された5ビット欠陥コードと第3のMUXIIIおいて
合成され、従って、実際には、欠陥アドレス及びそれに
対応する欠陥コードは、欠陥指示が実行段において検出
されたときにEユニットにより要求される欠陥パラメー
タとしてEユニットへ中継される欠陥データを構成する
。欠陥パラメータは、MユニットからEユニットへデー
タを転送するために通常使用される同じラインに沿って
中継される。
第6図は、メモリアクセス例外又は欠陥の識別及び発生
中にシステムにより行なわれる手順段階を実施するフロ
ーチャート120を示している。
中にシステムにより行なわれる手順段階を実施するフロ
ーチャート120を示している。
ステップ121において、Mユニットに与えられた外部
ソースポートの1つに対応するメモリアクセス要求が処
理のために選択される。その後、ステップ122におい
て、選択されたメモリアクセス要求に対応する仮想アド
レスが処理され、仮想/物理アドレス変換を受ける。
ソースポートの1つに対応するメモリアクセス要求が処
理のために選択される。その後、ステップ122におい
て、選択されたメモリアクセス要求に対応する仮想アド
レスが処理され、仮想/物理アドレス変換を受ける。
ステップ123において、変換プロセスの結果として発
生された情報(特に、PTE)に対して保護チェックが
実行される。このチェック手順では、所定の1組のメモ
リアクセス欠陥の存在が検出される。ステップ123A
では、メモリアクセス違反又は欠陥が存在するかどうか
についての判断がなされる。ステップ123Aの答えが
肯定である場合には、ステップ124がアクセスされる
。
生された情報(特に、PTE)に対して保護チェックが
実行される。このチェック手順では、所定の1組のメモ
リアクセス欠陥の存在が検出される。ステップ123A
では、メモリアクセス違反又は欠陥が存在するかどうか
についての判断がなされる。ステップ123Aの答えが
肯定である場合には、ステップ124がアクセスされる
。
ステップ123Aで行なわれたチェックに関してメモリ
アクセス違反が検出されない場合には、システムはステ
ップ131において他のメモリアクセス要求のパイプラ
イン処理を自動的に続ける。
アクセス違反が検出されない場合には、システムはステ
ップ131において他のメモリアクセス要求のパイプラ
イン処理を自動的に続ける。
次のステフプ124では、アクセス欠陥の特定形式が識
別され、それに対応する欠陥コードが保護チェックユニ
ットによって発生される。その後、ステップ125にお
いて、検出されたメモリアクセス違反を招く要求を発し
た外部ポートがMユニットにおいて不作動化される。次
いで、ステップ126において、要求されたメモリアク
セスが読み取り動作に対応するかどうかについての判断
がなされる。
別され、それに対応する欠陥コードが保護チェックユニ
ットによって発生される。その後、ステップ125にお
いて、検出されたメモリアクセス違反を招く要求を発し
た外部ポートがMユニットにおいて不作動化される。次
いで、ステップ126において、要求されたメモリアク
セスが読み取り動作に対応するかどうかについての判断
がなされる。
ステップ126の答えが肯定であると分った場合には、
ステップ127に達し、欠陥ビットをアサー卜すること
によりメモリアクセス違反の存在を表わす欠陥信号が発
生され、欠陥ビ7}は、メモリアクセス要求の結果と共
にパイプラインに沿って伝幡される。ステップ128に
おいて、保護チェックプロセスにより発生された仮想欠
陥アドレス及び欠陥コードを含む欠陥パラメータがMユ
ニットの対応するレジスタに記憶される。
ステップ127に達し、欠陥ビットをアサー卜すること
によりメモリアクセス違反の存在を表わす欠陥信号が発
生され、欠陥ビ7}は、メモリアクセス要求の結果と共
にパイプラインに沿って伝幡される。ステップ128に
おいて、保護チェックプロセスにより発生された仮想欠
陥アドレス及び欠陥コードを含む欠陥パラメータがMユ
ニットの対応するレジスタに記憶される。
次のステップ129においては、現在処理されている仮
想アドレスに対応する変換された物理アドレスに基づい
て読み取り動作が行なわれる。ステップ130において
、読み取られたデータは、次のパイプライン段に沿って
アサートされた欠陥ビットとの組合せで伝幡され、やが
てこのデータはEユニット内のソースリスト44(第1
図)内に記憶される。その後、ステソプ131において
、システムは、ステップ125で行なわれた不作動化の
影響を受けないMユニットの前端ポートに関連したメモ
リアクセス要求のパイプライン処理を続ける。
想アドレスに対応する変換された物理アドレスに基づい
て読み取り動作が行なわれる。ステップ130において
、読み取られたデータは、次のパイプライン段に沿って
アサートされた欠陥ビットとの組合せで伝幡され、やが
てこのデータはEユニット内のソースリスト44(第1
図)内に記憶される。その後、ステソプ131において
、システムは、ステップ125で行なわれた不作動化の
影響を受けないMユニットの前端ポートに関連したメモ
リアクセス要求のパイプライン処理を続ける。
ステップ126の答えが否定であると分った場合には、
メモリアクセス要求が書き込み動作に対応することが指
示され、ステップ132がアクセスされ、欠陥ビットを
7サー卜することにより欠陥信号が発生される。ステッ
プ133において、仮想欠陥アドレスを含む欠陥情報と
、要求を発したポートを識別する欠陥コードとが、後で
使用するために欠陥パラメータとして記憶される。ステ
ップ134において、変換された物理アドレスは、次の
パイプライン段に沿って伝幡されるのではなく、そのア
サー卜された欠陥ビットと共に書き込み待ち行列構成体
34(第1図)に記憶される。
メモリアクセス要求が書き込み動作に対応することが指
示され、ステップ132がアクセスされ、欠陥ビットを
7サー卜することにより欠陥信号が発生される。ステッ
プ133において、仮想欠陥アドレスを含む欠陥情報と
、要求を発したポートを識別する欠陥コードとが、後で
使用するために欠陥パラメータとして記憶される。ステ
ップ134において、変換された物理アドレスは、次の
パイプライン段に沿って伝幡されるのではなく、そのア
サー卜された欠陥ビットと共に書き込み待ち行列構成体
34(第1図)に記憶される。
実際の書き込み動作は、このように延期しなければなら
ない。というのは、書き込まれるべきデータは実行段階
の後まで得られないからである。
ない。というのは、書き込まれるべきデータは実行段階
の後まで得られないからである。
データが実際に得られるときには、書き込み待ち行列内
に記憶された変換された行先アドレスがEユニットから
受け取った対応データと対にされる。
に記憶された変換された行先アドレスがEユニットから
受け取った対応データと対にされる。
従って、命令は、Eユニットのデータをそれに対応する
予め変換された行先アドレスに書き込むことによって便
利にリタイヤされ、この点で仮想/物理アドレス変換を
行なうのに必要とされる時間が節約される。ステップ1
34の実行に続いて、システムはステップ131をアク
セスし、ステップ125で不作動化されなかったポート
からの他の顕著なメモリアクセス要求のパイプライン処
理が続けられる。
予め変換された行先アドレスに書き込むことによって便
利にリタイヤされ、この点で仮想/物理アドレス変換を
行なうのに必要とされる時間が節約される。ステップ1
34の実行に続いて、システムはステップ131をアク
セスし、ステップ125で不作動化されなかったポート
からの他の顕著なメモリアクセス要求のパイプライン処
理が続けられる。
第7図には、欠陥情報の存在を検出しそしてそれに応答
して行なわれる一連のオペレーションを示すフローチャ
ートが示されている。又、図示されたように、メモリ読
み取り動作の検出及び応答プロセスがステップ141で
開始される。ステンプ142において、ソースオペラン
ドを表わす読み取りデータがEユニット20のソースリ
スト44(第1図)から検索される。ステップ143に
おいて、記憶されたデータに関連した欠陥ビットが検査
され、そしてステップ144において欠陥ビットがアサ
ー卜されたかどうかについての判断がなされる。欠陥ビ
ットがアサートされないことが分かると、ステップ14
5がアクセスされ、読み取り動作のためのオペランドと
してソースリストから検索されたデータを用いて命令が
通常の形態で実行される。
して行なわれる一連のオペレーションを示すフローチャ
ートが示されている。又、図示されたように、メモリ読
み取り動作の検出及び応答プロセスがステップ141で
開始される。ステンプ142において、ソースオペラン
ドを表わす読み取りデータがEユニット20のソースリ
スト44(第1図)から検索される。ステップ143に
おいて、記憶されたデータに関連した欠陥ビットが検査
され、そしてステップ144において欠陥ビットがアサ
ー卜されたかどうかについての判断がなされる。欠陥ビ
ットがアサートされないことが分かると、ステップ14
5がアクセスされ、読み取り動作のためのオペランドと
してソースリストから検索されたデータを用いて命令が
通常の形態で実行される。
然し乍ら、ステップ144の答えが肯定であると分った
場合、即ち欠陥ビットが実際にアサー卜されたと分った
場合には、ステップ146がアクセスされ、システムの
マイクロエンジンがトラップされて、パイプライン命令
実行プロセスを制御するマイクロコードの実行が停止さ
れる。その後、ステップ147において、Eユニット2
0はMユニットl6をアクセスし、Mユニット内部の欠
陥アドレスレジスタ及び欠陥コードレジスタに記憶され
た対応する欠陥パラメータがEユニットへ送られるよう
に要求する。Mユニットから欠陥パラメータを受け取る
と、欠陥コードが通常のやり方でEユニットによってデ
コードされ、そして1組の所定のトラップルーチンの対
応する1つが呼び出され、検出されたメモリアクセス違
反の特定形式を処理する。過剰の違反を取り扱うための
このようなトラソブルーチンの定義は通常のものであり
、ここでは詳細に説明しない。
場合、即ち欠陥ビットが実際にアサー卜されたと分った
場合には、ステップ146がアクセスされ、システムの
マイクロエンジンがトラップされて、パイプライン命令
実行プロセスを制御するマイクロコードの実行が停止さ
れる。その後、ステップ147において、Eユニット2
0はMユニットl6をアクセスし、Mユニット内部の欠
陥アドレスレジスタ及び欠陥コードレジスタに記憶され
た対応する欠陥パラメータがEユニットへ送られるよう
に要求する。Mユニットから欠陥パラメータを受け取る
と、欠陥コードが通常のやり方でEユニットによってデ
コードされ、そして1組の所定のトラップルーチンの対
応する1つが呼び出され、検出されたメモリアクセス違
反の特定形式を処理する。過剰の違反を取り扱うための
このようなトラソブルーチンの定義は通常のものであり
、ここでは詳細に説明しない。
ステップ146におけるシステムマイクロエンジンのト
ラップ動作は、メモリアクセス違反を生じた命令がEユ
ニット内の実行段に到達しそしてそれに対応する読み取
り又は書き込みデータが命令の実行に絶対的に必要であ
る場合だけ生じることに注意されたい。従って、本発明
の実行処理機構は、違反が検出されたパイプライン段の
点においてアクセス違反に応答してトラップルーチンが
呼び出されるような従来の技術に勝る顕著な効果をもた
らす。このような機構では、次に続《全てのパイプライ
ン段の処理作用が妨害を受ける。更に、このような従来
の欠陥処理機構では相当の時間浪費を招く.というのは
、次のパイプライン段で生じる事象により命令の実行の
前に結局キャンセルされるようなオペレーションについ
てもトラップルーチンが呼び出されるからである。これ
らの問題は本発明によって解消される。というのは、命
令を実行する前にメモリアクセス例外を処理することが
重要なときしかトラップルーチンを呼び出さないように
、命令の最終的な実行時にしか記憶された欠陥パラメー
タが呼び出されないからである。
ラップ動作は、メモリアクセス違反を生じた命令がEユ
ニット内の実行段に到達しそしてそれに対応する読み取
り又は書き込みデータが命令の実行に絶対的に必要であ
る場合だけ生じることに注意されたい。従って、本発明
の実行処理機構は、違反が検出されたパイプライン段の
点においてアクセス違反に応答してトラップルーチンが
呼び出されるような従来の技術に勝る顕著な効果をもた
らす。このような機構では、次に続《全てのパイプライ
ン段の処理作用が妨害を受ける。更に、このような従来
の欠陥処理機構では相当の時間浪費を招く.というのは
、次のパイプライン段で生じる事象により命令の実行の
前に結局キャンセルされるようなオペレーションについ
てもトラップルーチンが呼び出されるからである。これ
らの問題は本発明によって解消される。というのは、命
令を実行する前にメモリアクセス例外を処理することが
重要なときしかトラップルーチンを呼び出さないように
、命令の最終的な実行時にしか記憶された欠陥パラメー
タが呼び出されないからである。
第7図のフローチャートにおいて、メモリ書き込み動作
の場合の欠陥情報の処理はステップ150で開始され、
その後、ステップtStにおいて、Eユニットにより発
生された書き込みデータが検索され、これは、Mユニッ
トにアドレスが既に記憶されているメモリのセグメント
に書き込まれなければならない。ステップ152におい
て、書き込み待ち行列構成体34(第1図)の対応する
アドレス入力がMユニットから検索される.その後、ス
テップ153において、書き込み待ち行列入力に関連し
て記憶された欠陥ビットも検査される.ステップ154
において、欠陥ビットがアサー卜されたかどうかについ
て判断がなされる。
の場合の欠陥情報の処理はステップ150で開始され、
その後、ステップtStにおいて、Eユニットにより発
生された書き込みデータが検索され、これは、Mユニッ
トにアドレスが既に記憶されているメモリのセグメント
に書き込まれなければならない。ステップ152におい
て、書き込み待ち行列構成体34(第1図)の対応する
アドレス入力がMユニットから検索される.その後、ス
テップ153において、書き込み待ち行列入力に関連し
て記憶された欠陥ビットも検査される.ステップ154
において、欠陥ビットがアサー卜されたかどうかについ
て判断がなされる。
その答えが否定であると分った場合には、システムはス
テップ155をアクセスし、書き込み待ち行列からの検
索されたアドレス入力を先行オペランドとして使用する
ことにより命令の実行が通常の形態で行なわれる。然し
乍ら、欠陥ビットが実際にステップ154においてアサ
ートされると分った場合には、システムは、メモリ読み
取り動作の処理で用いたものと同じやり方でステップ1
46、147、148及び149を実行する。
テップ155をアクセスし、書き込み待ち行列からの検
索されたアドレス入力を先行オペランドとして使用する
ことにより命令の実行が通常の形態で行なわれる。然し
乍ら、欠陥ビットが実際にステップ154においてアサ
ートされると分った場合には、システムは、メモリ読み
取り動作の処理で用いたものと同じやり方でステップ1
46、147、148及び149を実行する。
より詳細には、システムマイクロエンジンカトラップさ
れ、Mユニットに既に記憶された欠陥パラメータが呼び
出され、そこに含まれた欠陥コードがデコードされ、そ
してそれに対応するトラップルーチンが呼び出されて、
欠陥が処理される。
れ、Mユニットに既に記憶された欠陥パラメータが呼び
出され、そこに含まれた欠陥コードがデコードされ、そ
してそれに対応するトラップルーチンが呼び出されて、
欠陥が処理される。
上記した例外取り扱い構成は、命令が完了したときでも
(ベース、位置及びサイズオペランドで指定された可変
長さビットフィールドオペレーションを実行する場合の
ように)次の命令実行に必要とされてもされなくてもよ
いメモリ参照の処理中に遭遇する例外情報を効率的に取
り扱うのに特に適している。アドレス変換問題によりベ
ースアドレスについてのみ例外情報が発生するが、それ
に対応する真のフィールドアドレスにアクセス違反がな
い場合には、その例外に遭遇したべイブライン段に対応
するポートが不作動化されない。むしろ、実行情報が例
外段にパイプライン搬送され、真のフィールドの判断が
なされる。この点においてフィールドがアクティブでな
いと分った場合には、欠陥情報が捨てられ、真のフィー
ルドデータがフェッチされる。一方、この構成では、命
令の流れがその方向を変えないので流れの問題を生じる
ことなく他のオペランドデτタを予めフェッチすること
ができる。
(ベース、位置及びサイズオペランドで指定された可変
長さビットフィールドオペレーションを実行する場合の
ように)次の命令実行に必要とされてもされなくてもよ
いメモリ参照の処理中に遭遇する例外情報を効率的に取
り扱うのに特に適している。アドレス変換問題によりベ
ースアドレスについてのみ例外情報が発生するが、それ
に対応する真のフィールドアドレスにアクセス違反がな
い場合には、その例外に遭遇したべイブライン段に対応
するポートが不作動化されない。むしろ、実行情報が例
外段にパイプライン搬送され、真のフィールドの判断が
なされる。この点においてフィールドがアクティブでな
いと分った場合には、欠陥情報が捨てられ、真のフィー
ルドデータがフェッチされる。一方、この構成では、命
令の流れがその方向を変えないので流れの問題を生じる
ことなく他のオペランドデτタを予めフェッチすること
ができる。
第1図は、本発明によりメモリアクセス例外を処理する
機構に用いられるパイプライン式の仮想メモリベースの
コンピュータシステムを示ス簡単なブロック図、 第2図は、典型的な命令を実行するのに含まれる種々の
パイプライン段を示す図、 第3図は、第1図の変換バッファを用いて仮想/物理ア
ドレス変換を行なうのに含まれる機能ブロックを示すブ
ロック図、 第4図は、第3図に示された変換バッファ及び変換バフ
ファ固定ユニットの構成を示す詳細なブロック図、 第5図は、本発明の例外処理機構による欠陥情報の発生
を示すブロック図、 第6図は、欠陥情報及びそれに関連したコード及びパラ
メータの発生に伴なう一連のオペレーションを示す簡単
なフローチャート、そして第7図は、本発明により欠陥
情報を検出しそしてそれに応答する際に含まれるオペレ
ーションを示す簡単なフローチャートである。 10・・・・・・パイプライン式仮想メモリベースのコ
ンピュータシステム、 l2・・・・・・中央処理ユニット、 l4・・・・・・メインメモリ、 16・・・・・・メモリアクセスユニット(Mユニット
)、l8・・・・・・命令ユニント(Iユニット)、2
0・・・・・・実行ユニット(Eユニット)、22・・
・・・・メインキャッシュ、 24・・・・・・変換バフファ、 25・・・・・・I/Oバス、 26・・・・・・プログラムカウンタ、28・・・・・
・命令キャソシュ、 30・・・・・・命令バッファ( 1 −Buf)、3
2・・・・・・命令デコーダ、 33・・・・・・オペランド処理ユニット(○PU)、
34・・・・・・書き込み待ち行列構成体、36・・・
・・・一時的な記憶手段、 38・・・・・・マルチブレクサ、 40・・・・・・デマルチプレクサ、 44・・・・・・ソースオペランドリスト、46・・・
・・・命令発生ユニ,ト、 48・・・・・・マイクロコート実行ユニン50・・・
・・・演算論理ユニット、 52・・・・・・命令リタイヤユニット。 ト、
機構に用いられるパイプライン式の仮想メモリベースの
コンピュータシステムを示ス簡単なブロック図、 第2図は、典型的な命令を実行するのに含まれる種々の
パイプライン段を示す図、 第3図は、第1図の変換バッファを用いて仮想/物理ア
ドレス変換を行なうのに含まれる機能ブロックを示すブ
ロック図、 第4図は、第3図に示された変換バッファ及び変換バフ
ファ固定ユニットの構成を示す詳細なブロック図、 第5図は、本発明の例外処理機構による欠陥情報の発生
を示すブロック図、 第6図は、欠陥情報及びそれに関連したコード及びパラ
メータの発生に伴なう一連のオペレーションを示す簡単
なフローチャート、そして第7図は、本発明により欠陥
情報を検出しそしてそれに応答する際に含まれるオペレ
ーションを示す簡単なフローチャートである。 10・・・・・・パイプライン式仮想メモリベースのコ
ンピュータシステム、 l2・・・・・・中央処理ユニット、 l4・・・・・・メインメモリ、 16・・・・・・メモリアクセスユニット(Mユニット
)、l8・・・・・・命令ユニント(Iユニット)、2
0・・・・・・実行ユニット(Eユニット)、22・・
・・・・メインキャッシュ、 24・・・・・・変換バフファ、 25・・・・・・I/Oバス、 26・・・・・・プログラムカウンタ、28・・・・・
・命令キャソシュ、 30・・・・・・命令バッファ( 1 −Buf)、3
2・・・・・・命令デコーダ、 33・・・・・・オペランド処理ユニット(○PU)、
34・・・・・・書き込み待ち行列構成体、36・・・
・・・一時的な記憶手段、 38・・・・・・マルチブレクサ、 40・・・・・・デマルチプレクサ、 44・・・・・・ソースオペランドリスト、46・・・
・・・命令発生ユニ,ト、 48・・・・・・マイクロコート実行ユニン50・・・
・・・演算論理ユニット、 52・・・・・・命令リタイヤユニット。 ト、
Claims (11)
- (1)仮想メモリをベースとするコンピュータシステム
のパイプライン命令実行中に生じたメモリアクセス例外
を処理する方法において、上記命令の実行は複数のパイ
プライン段を用いることによって行なわれ、各段は、命
令が細分化された多数のタスクのうちの予め定めた1つ
を専用に実行するものであり、上記コンピュータは、命
令ユニット(Iユニット)と、実行ユニット(Eユニッ
ト)システムと、物理アドレスでインデックスされるシ
ステムメモリと、メモリユニット(Mユニット)とを具
備しており、このメモリユニットは、上記I及びEユニ
ットによって与えられた仮想アドレスをシステムメモリ
内の物理アドレスに変換するための変換バッファを備え
ており、上記方法は、 上記E及びIユニットのパイプライン段からメモリ読み
取り又は書き込み動作を含むメモリアクセス要求を受け
取り、これらは仮想/物理アドレス変換を必要とするも
のであり、 上記変換バッファを使用して、メモリアクセス要求に伴
なう仮想アドレスをそれに対応する物理アドレスに変換
し、 上記仮想アドレスと、上記アドレス変換の結果とをチェ
ックして、1つ以上の予め定められた組のメモリアクセ
ス違反の存在を判断し、メモリアクセス違反の検出に応
答して欠陥情報を発生し、 上記欠陥情報の選択されたセグメントを後続のパイプラ
イン段に沿ってパイプライン搬送し、そして 上記命令が実行段にあるときに欠陥情報の上記パイプラ
インセグメントの存在を検出し、そしてそれに応答して
、この検出された欠陥情報に関連したメモリアクセス違
反に対応する予め定められた例外ハンドラルーチンを呼
び出すという段階を具備することを特徴とする方法。 - (2)上記E及びIユニット内のパイプライン段からの
メモリアクセス要求は、上記パイプライン段に対応して
定められた個別のポートにおいてMユニットにより受け
入れられ、更に、メモリアクセス違反を生じたメモリア
クセス要求を開始したパイプライン段に対応するポート
は、それ以上のメモリアクセス要求を受け入れないよう
阻止される請求項1に記載の例外処理方法。 - (3)上記欠陥情報は、メモリアクセス違反の存在を表
わすフラグ情報と、検出されたメモリアクセス違反の形
式を識別する欠陥コードと、上記検出された違反に関連
した仮想アドレスに対応する欠陥アドレスとを含む請求
項2に記載の例外処理方法。 - (4)上記フラグ情報のみが後続のパイプライン段に沿
ってパイプライン搬送され、そして欠陥コード及び欠陥
アドレスが上記Mユニット内に記憶される請求項3に記
載の例外処理方法。 - (5)パイプライン式コンピュータシステムの動作中に
メモリアクセス例外を処理する方法において、上記コン
ピュータシステムは、メモリユニットと、命令ユニット
と、命令を処理するための命令パイプラインを形成する
ように相互接続された実行ユニットとを有しており、上
記命令ユニットは、オペレーションコードと、ソース及
び行先オペランド指定子とを得るように命令をフェッチ
し、デコードするための手段と、上記ソースオペランド
指定子によって指定されたソースオペランドをフェッチ
するための手段とを備えており、上記実行ユニットは、
上記ソースオペランドに基づいて上記オペレーションコ
ードにより指定されたオペレーションを実行するための
手段と、付加的なオペランドをフェッチするための手段
と、上記オペレーションの結果をリタイヤするための手
段とを備えており、上記メモリユニットは、仮想/物理
アドレス変換を行なう手段と、上記命令をフェッチする
手段に接続された第1ポートと、上記ソースオペランド
をフェッチする手段に接続された第2ポートと、上記付
加的なオペランドをフェッチする手段に接続された第3
ポートとを備えており、上記方法は、 a)上記フェッチ手段によるメモリアクセス要求がメモ
リアクセス違反を生じたときにそれを感知し、このメモ
リアクセス違反に応答して、欠陥情報を発生すると共に
、メモリアクセス違反を生じさせた各々のフェッチ手段
からの付加的なメモリ要求の処理を禁止し、 b)上記命令フェッチ手段により発生された欠陥に関す
る欠陥情報を上記メモリユニットから実行ユニットへパ
イプライン搬送する手段と、ソースオペランドをフェッ
チする手段とを備えていて、欠陥情報を命令パイプライ
ンと並列にパイプライン搬送し、上記実行ユニットは、
上記付加的なオペランドをフェッチする手段により発生
された欠陥に関する欠陥情報も受け取り、そして c)欠陥情報の受け取りに応答して、上記実行ユニット
は、その受け取った欠陥情報に関連したメモリアクセス
違反に対応する予め定められた例外ハンドリングルーチ
ンを呼び出すという段階を具備することを特徴とする方
法。 - (6)上記段階a)で発生された欠陥情報は、メモリア
クセス違反の存在を表わすフラグ情報と、その検出され
たメモリアクセス違反の形成を識別する欠陥コードと、
上記検出された違反に関連した仮想アドレスに対応する
欠陥アドレスとを含んでいる請求項5に記載の方法。 - (7)上記フラグ情報のみが上記段階b)において実行
ユニットへパイプライン搬送され即ち通され、そして欠
陥コード及び欠陥アドレスが上記メモリアクセスユニッ
ト内に記憶される請求項6に記載の方法。 - (8)上記実行ユニットは、上記段階c)において、欠
陥を生じた命令が欠陥の不存在中に発生されるような点
で上記実行ハンドリングルーチンを呼び出す請求項5に
記載の方法。 - (9)メモリユニットと、命令ユニットと、命令を処理
する命令パイプラインを形成するように相互接続された
実行ユニットとを備えたパイプライン式コンピュータシ
ステムにおいて、上記命令ユニットは、オペレーション
コードと、ソース及び行先オペランド指定子とを得るよ
うに命令をフェッチしてデコードするための手段と、上
記ソースオペランド指定子により指定されたソースオペ
ランドをフェッチするための手段とを備えており、上記
実行ユニットは、上記ソースオペランドに基づいて上記
オペレーションコードにより指定されたオペレーション
を実行するための手段と、付加的なオペランドをフェッ
チするための手段と、上記オペレーションの結果をリタ
イヤするための手段とを備えており、上記メモリユニッ
トは、仮想/物理アドレス変換を行なう手段と、上記命
令ユニットの命令をフェッチする上記手段に接続された
第1ポートと、上記命令ユニットのソースオペランドを
フェッチする上記手段に接続された第2ポートと、上記
実行ユニットの付加的なオペランドをフェッチする上記
手段に接続された第3ポートとを備えており、上記メモ
リユニットは、更に、上記フェッチ手段によるメモリア
クセス要求がメモリアクセス違反を生じたときにそれを
感知する手段と、メモリアクセス違反の感知に応答して
、欠陥情報を発生すると共に、メモリアクセス違反を生
じた各々のフェッチ手段からの付加的なメモリ要求の処
理を禁止する手段とを備えており、上記コンピュータシ
ステムは、更に、上記命令フェッチ手段により発生され
た欠陥に関する欠陥情報を上記メモリユニットから上記
実行ユニットへパイプライン搬送する手段と、ソースオ
ペランドをフェッチする手段とを備えており、欠陥情報
は命令パイプラインと並列にパイプライン搬送され、上
記メモリユニットは、付加的なオペランドをフェッチす
る上記ユニットにより発生された欠陥に関する欠陥情報
を通すために上記実行ユニットに接続され、そして上記
実行ユニットは、更に、上記受け取った欠陥情報に応答
して予め定めた例外ハンドリングルーチンを呼び出す手
段を備えていることを特徴とするコンピュータシステム
。 - (10)上記発生手段は、メモリアクセス違反の存在を
示すフラグ情報と、検出されたメモリアクセス違反の形
式を示す欠陥コードと、上記検出された違反に関連した
仮想アドレスに対応する欠陥アドレスとを発生するため
の手段を備えている請求項9に記載のコンピュータシス
テム。 - (11)上記メモリアクセスユニットは、上記欠陥コー
ド及び欠陥アドレスを記憶する手段を備え、そして上記
パイプライン手段は、上記フラグ情報をパイプライン搬
送する手段を備えている請求項10に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US306866 | 1989-02-03 | ||
| US07/306,866 US4985825A (en) | 1989-02-03 | 1989-02-03 | System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02234248A true JPH02234248A (ja) | 1990-09-17 |
| JPH0526219B2 JPH0526219B2 (ja) | 1993-04-15 |
Family
ID=23187213
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007008A Granted JPH02234248A (ja) | 1989-02-03 | 1990-01-16 | 仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法 |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4985825A (ja) |
| EP (1) | EP0381470B1 (ja) |
| JP (1) | JPH02234248A (ja) |
| AT (1) | ATE158423T1 (ja) |
| AU (1) | AU631420B2 (ja) |
| CA (1) | CA1323701C (ja) |
| DE (1) | DE69031433T2 (ja) |
Families Citing this family (61)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5297263A (en) * | 1987-07-17 | 1994-03-22 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor with pipeline system having exception processing features |
| US5197133A (en) * | 1988-12-19 | 1993-03-23 | Bull Hn Information Systems Inc. | Control store addressing from multiple sources |
| US5075844A (en) * | 1989-05-24 | 1991-12-24 | Tandem Computers Incorporated | Paired instruction processor precise exception handling mechanism |
| US5329629A (en) * | 1989-07-03 | 1994-07-12 | Tandem Computers Incorporated | Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access |
| JP2504235B2 (ja) * | 1989-11-16 | 1996-06-05 | 三菱電機株式会社 | デ―タ処理装置 |
| JPH03185530A (ja) * | 1989-12-14 | 1991-08-13 | Mitsubishi Electric Corp | データ処理装置 |
| US5546551A (en) * | 1990-02-14 | 1996-08-13 | Intel Corporation | Method and circuitry for saving and restoring status information in a pipelined computer |
| US5450564A (en) * | 1990-05-04 | 1995-09-12 | Unisys Corporation | Method and apparatus for cache memory access with separate fetch and store queues |
| JP2570466B2 (ja) * | 1990-05-18 | 1997-01-08 | 日本電気株式会社 | 情報処理装置 |
| US5251310A (en) * | 1990-06-29 | 1993-10-05 | Digital Equipment Corporation | Method and apparatus for exchanging blocks of information between a cache memory and a main memory |
| CA2045789A1 (en) * | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Granularity hint for translation buffer in high performance processor |
| GB9114513D0 (en) * | 1991-07-04 | 1991-08-21 | Univ Manchester | Condition detection in asynchronous pipelines |
| US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
| US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
| US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| WO1993020505A2 (en) * | 1992-03-31 | 1993-10-14 | Seiko Epson Corporation | Superscalar risc instruction scheduling |
| US5438668A (en) | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
| DE69308548T2 (de) * | 1992-05-01 | 1997-06-12 | Seiko Epson Corp | Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor. |
| JPH0667980A (ja) * | 1992-05-12 | 1994-03-11 | Unisys Corp | 4ブロックキャッシュメモリへのアクセスを最適化するためのキャッシュ論理システムおよびメインフレームコンピュータの高速キャッシュメモリへのアクセス時のダブルミスを防ぐ方法 |
| DE69329778T2 (de) * | 1992-09-29 | 2001-04-26 | Seiko Epson Corp., Tokio/Tokyo | System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor |
| US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| US5628021A (en) * | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
| EP0849665B1 (en) | 1992-12-31 | 2001-10-04 | Seiko Epson Corporation | System and method for register renaming |
| US5740398A (en) * | 1993-10-18 | 1998-04-14 | Cyrix Corporation | Program order sequencing of data in a microprocessor with write buffer |
| US5615402A (en) * | 1993-10-18 | 1997-03-25 | Cyrix Corporation | Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch |
| US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
| US5630149A (en) * | 1993-10-18 | 1997-05-13 | Cyrix Corporation | Pipelined processor with register renaming hardware to accommodate multiple size registers |
| US6219773B1 (en) | 1993-10-18 | 2001-04-17 | Via-Cyrix, Inc. | System and method of retiring misaligned write operands from a write buffer |
| GB2284493B (en) * | 1993-12-01 | 1998-04-01 | Intel Corp | Exception handling in a processor that performs speculative out-of-order instruction execution |
| DE4434895C2 (de) * | 1993-12-23 | 1998-12-24 | Hewlett Packard Co | Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen |
| US5555399A (en) * | 1994-07-07 | 1996-09-10 | International Business Machines Corporation | Dynamic idle list size processing in a virtual memory management operating system |
| US5640526A (en) * | 1994-12-21 | 1997-06-17 | International Business Machines Corporation | Superscaler instruction pipeline having boundary indentification logic for variable length instructions |
| US6643765B1 (en) | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
| US5933651A (en) * | 1995-09-29 | 1999-08-03 | Matsushita Electric Works, Ltd. | Programmable controller |
| US6101590A (en) | 1995-10-10 | 2000-08-08 | Micro Unity Systems Engineering, Inc. | Virtual memory system with local and global virtual address translation |
| US5778208A (en) * | 1995-12-18 | 1998-07-07 | International Business Machines Corporation | Flexible pipeline for interlock removal |
| US5802573A (en) * | 1996-02-26 | 1998-09-01 | International Business Machines Corp. | Method and system for detecting the issuance and completion of processor instructions |
| 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 |
| JP3849951B2 (ja) * | 1997-02-27 | 2006-11-22 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサ |
| US6219758B1 (en) * | 1998-03-24 | 2001-04-17 | International Business Machines Corporation | False exception for cancelled delayed requests |
| US6233668B1 (en) | 1999-10-27 | 2001-05-15 | Compaq Computer Corporation | Concurrent page tables |
| US6766440B1 (en) * | 2000-02-18 | 2004-07-20 | Texas Instruments Incorporated | Microprocessor with conditional cross path stall to minimize CPU cycle time length |
| US6754852B2 (en) * | 2000-03-02 | 2004-06-22 | Texas Instruments Incorporated | Debug trigger builder |
| JP4522548B2 (ja) * | 2000-03-10 | 2010-08-11 | 富士通フロンテック株式会社 | アクセス監視装置及びアクセス監視方法 |
| DE10108107A1 (de) * | 2001-02-21 | 2002-08-29 | Philips Corp Intellectual Pty | Schaltungsanordnung sowie Verfahren zum Erkennen einer Zugriffsverletzung bei einer Mikrokontrolleranordnung |
| US7310800B2 (en) * | 2001-02-28 | 2007-12-18 | Safenet, Inc. | Method and system for patching ROM code |
| US7684447B2 (en) * | 2004-12-23 | 2010-03-23 | Agilent Technologies, Inc. | Sequencer and method for sequencing |
| US7752427B2 (en) * | 2005-12-09 | 2010-07-06 | Atmel Corporation | Stack underflow debug with sticky base |
| US20080181210A1 (en) * | 2007-01-31 | 2008-07-31 | Finisar Corporation | Processing register values in multi-process chip architectures |
| US9507725B2 (en) * | 2012-12-28 | 2016-11-29 | Intel Corporation | Store forwarding for data caches |
| US20140189246A1 (en) * | 2012-12-31 | 2014-07-03 | Bin Xing | Measuring applications loaded in secure enclaves at runtime |
| KR101978984B1 (ko) * | 2013-05-14 | 2019-05-17 | 한국전자통신연구원 | 프로세서의 오류를 검출하는 장치 및 방법 |
| US10061675B2 (en) | 2013-07-15 | 2018-08-28 | Texas Instruments Incorporated | Streaming engine with deferred exception reporting |
| US9311508B2 (en) * | 2013-12-27 | 2016-04-12 | Intel Corporation | Processors, methods, systems, and instructions to change addresses of pages of secure enclaves |
| US9672354B2 (en) * | 2014-08-18 | 2017-06-06 | Bitdefender IPR Management Ltd. | Systems and methods for exposing a result of a current processor instruction upon exiting a virtual machine |
| US20160085695A1 (en) | 2014-09-24 | 2016-03-24 | Intel Corporation | Memory initialization in a protected region |
| US10528353B2 (en) | 2016-05-24 | 2020-01-07 | International Business Machines Corporation | Generating a mask vector for determining a processor instruction address using an instruction tag in a multi-slice processor |
| US10467008B2 (en) * | 2016-05-31 | 2019-11-05 | International Business Machines Corporation | Identifying an effective address (EA) using an interrupt instruction tag (ITAG) in a multi-slice processor |
| US10248555B2 (en) | 2016-05-31 | 2019-04-02 | International Business Machines Corporation | Managing an effective address table in a multi-slice processor |
| US10747679B1 (en) * | 2017-12-11 | 2020-08-18 | Amazon Technologies, Inc. | Indexing a memory region |
| US11860795B2 (en) * | 2020-02-18 | 2024-01-02 | Arm Limited | Device, system, and method of determining memory requirements and tracking memory usage |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1443777A (en) * | 1973-07-19 | 1976-07-28 | Int Computers Ltd | Data processing apparatus |
| JPS6028015B2 (ja) * | 1980-08-28 | 1985-07-02 | 日本電気株式会社 | 情報処理装置 |
| JPS57185545A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Information processor |
| US4710866A (en) * | 1983-09-12 | 1987-12-01 | Motorola, Inc. | Method and apparatus for validating prefetched instruction |
| US4757445A (en) * | 1983-09-12 | 1988-07-12 | Motorola, Inc. | Method and apparatus for validating prefetched instruction |
| ATE24784T1 (de) * | 1983-09-16 | 1987-01-15 | Ibm | Einrichtung im befehlswerk eines fliessbandprozessors zur befehlsunterbrechung und -wiederholung. |
| US5063497A (en) * | 1987-07-01 | 1991-11-05 | Digital Equipment Corporation | Apparatus and method for recovering from missing page faults in vector data processing operations |
| US4875160A (en) * | 1988-07-20 | 1989-10-17 | Digital Equipment Corporation | Method for implementing synchronous pipeline exception recovery |
-
1989
- 1989-02-03 US US07/306,866 patent/US4985825A/en not_active Expired - Lifetime
- 1989-09-19 CA CA000611918A patent/CA1323701C/en not_active Expired - Fee Related
-
1990
- 1990-01-16 JP JP2007008A patent/JPH02234248A/ja active Granted
- 1990-01-31 EP EP90301002A patent/EP0381470B1/en not_active Expired - Lifetime
- 1990-01-31 DE DE69031433T patent/DE69031433T2/de not_active Expired - Lifetime
- 1990-01-31 AT AT90301002T patent/ATE158423T1/de not_active IP Right Cessation
- 1990-04-27 AU AU53943/90A patent/AU631420B2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| CA1323701C (en) | 1993-10-26 |
| JPH0526219B2 (ja) | 1993-04-15 |
| DE69031433D1 (de) | 1997-10-23 |
| AU5394390A (en) | 1991-12-19 |
| EP0381470A2 (en) | 1990-08-08 |
| US4985825A (en) | 1991-01-15 |
| EP0381470A3 (en) | 1992-11-19 |
| ATE158423T1 (de) | 1997-10-15 |
| AU631420B2 (en) | 1992-11-26 |
| DE69031433T2 (de) | 1998-04-16 |
| EP0381470B1 (en) | 1997-09-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH02234248A (ja) | 仮想メモリシステムをベースとするデジタルコンピュータの命令パイプライン内の予めフェッチした命令でメモリアクセス例外を処理する方法 | |
| US5249286A (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
| CA1325288C (en) | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system | |
| US5125083A (en) | Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system | |
| EP2674856B1 (en) | Zero cycle load instruction | |
| US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
| CA1325285C (en) | Method and apparatus for ordering and queueing multiple memory requests | |
| US5517651A (en) | Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes | |
| US5113515A (en) | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer | |
| US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
| US7003629B1 (en) | System and method of identifying liveness groups within traces stored in a trace cache | |
| EP0884675A2 (en) | Byte-compare operation for high-performance processor | |
| EP0463978A2 (en) | Granularity hint for translation buffer in high performance processor | |
| KR100698493B1 (ko) | 좁은 피연산자들에서 계산을 수행하는 방법 및 장치 | |
| WO1996012227A1 (en) | An address queue capable of tracking memory dependencies | |
| CN113535236A (zh) | 基于指令集体系结构的和自动的加载跟踪的方法和装置 | |
| CN111133421A (zh) | 在无地址转换的情况下操作的加载存储单元中处理有效地址同义词 | |
| US6446189B1 (en) | Computer system including a novel address translation mechanism | |
| EP0459233A2 (en) | Selectively locking memory locations within a microprocessor's on-chip cache | |
| US6338128B1 (en) | System and method for invalidating an entry in a translation unit | |
| US6704854B1 (en) | Determination of execution resource allocation based on concurrently executable misaligned memory operations | |
| US7496734B1 (en) | System and method for handling register dependency in a stack-based pipelined processor | |
| EP0726524A2 (en) | Protocol and system for performing line-fill addressing during copy-back operation | |
| US5758141A (en) | Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register | |
| IE901525A1 (en) | Processing of memory access exceptions with pre-fetched¹instructions within the instruction pipeline of a memory¹system based digital computer |