JP2002251283A - メモリ管理機構及びメモリ管理方法 - Google Patents

メモリ管理機構及びメモリ管理方法

Info

Publication number
JP2002251283A
JP2002251283A JP2001046758A JP2001046758A JP2002251283A JP 2002251283 A JP2002251283 A JP 2002251283A JP 2001046758 A JP2001046758 A JP 2001046758A JP 2001046758 A JP2001046758 A JP 2001046758A JP 2002251283 A JP2002251283 A JP 2002251283A
Authority
JP
Japan
Prior art keywords
address
instruction
memory management
access
physical 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.)
Withdrawn
Application number
JP2001046758A
Other languages
English (en)
Inventor
Atsushi Mori
篤史 毛利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2001046758A priority Critical patent/JP2002251283A/ja
Publication of JP2002251283A publication Critical patent/JP2002251283A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 ロード/ストア命令に依存しないでデータM
MU例外検出を行う。 【解決手段】 パイプライン処理によって命令を実行す
るプロセッサに備えられ、アドレス変換バッファを用い
て、仮想アドレスを物理アドレスへ変換するメモリ管理
機構において、メモリ管理機構は仮想アドレスを入力
し、上記アドレス変換バッファに仮想アドレスと一致す
る物理アドレスが登録されているか否かを判定し、判定
した結果をヒット/ミス信号として出力するTAG21
と、上記ヒット/ミス信号を入力し、入力したヒット/
ミス信号を解析して、上記アドレス変換バッファに仮想
アドレスと一致する物理アドレスが登録されていない場
合は、上記メモリ管理例外信号を出力する例外チェック
部22と、上記例外チェック部からメモリ管理例外信号
を入力し、入力したメモリ管理例外信号を、次のクロッ
クサイクルにおいて出力するフリップフロップ30とを
備えることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、アウト・オブ・オ
ーダ完了機構を備えるマイクロプロセッサにおいて、ロ
ード/ストア処理パイプラインに非依存でデータMMU
例外検出を行うことにより、アウト・オブ・オーダ完了
機構を停止させることなく高性能を維持したメモリ管理
機構に関するものである。
【0002】
【従来の技術】メモリ管理機構(MMU)では、一般的
に仮想記憶方式によりメモリの管理を実施している。仮
想記憶とは、物理的に限られた容量しかないメモリを多
くのプロセスで分割使用する手段である(プロセッサ・
アーキテクチャpp437−456、コンピュータ・ア
ーキテクチャ(David A.Patterson,
John L.Hennessy著、富田眞治,村上和
彰,新實治男訳、日経BP社,1993年))。すなわ
ち、物理メモリを複数のブロックに分割し、そのブロッ
クを各プロセスに割り当てる方法である。この仮想記憶
という技術が考案される以前は、プログラムが物理メモ
リの容量を越えてしまった場合は、その容量の中でプロ
グラムを実行できるようにする全責任はプログラマにあ
った。すなわち、まずプログラムを小片に分割し互いに
排他的なものを見出す。そして、これらオーバレイ部分
をどういう順序で主記憶にロードするかを、全てユーザ
のプログラムで制御する。プログラマは、実行中に物理
メモリの制限を越えないように動作を保証しなければな
らない。こういうことが、プログラマの生産性を阻害す
る要因であった。このような苦労からプログラマを解放
する目的で考え出されたのが仮想記憶であり、プログラ
マに対しては実装する物理メモリよりも大容量で、かつ
連続する仮想のアドレス空間を提供する機構である。
【0003】図6に、従来から用いられている仮想記憶
方式における仮想アドレスの変換方式について示す。仮
想アドレス(800)は、仮想ページアドレスを示す上
位フィールド(801)とページ内オフセットを示す下
位フィールド(802)に分割される。仮想アドレス空
間と物理メモリ空間は、ページ内オフセット(802)
で示されるページサイズに分割される。仮想アドレス空
間には、仮想ページアドレス(801)で示される個数
だけのページが存在する。仮想アドレス空間中のどのペ
ージが、物理メモリ空間中のどのページに割り当てられ
るかは、ページ表(813)により管理される。このペ
ージ表の基点となるアドレスであるページ表ベース(8
11)と、表の大きさの値であるページ表限界(81
2)は、それぞれのシステムレジスタに格納されてい
る。
【0004】仮想アドレスから物理アドレスを生成する
ためには、仮想アドレスの仮想ページアドレス(80
1)とページ表ベース(811)を加算(815)し、
この値に基づいてページ表内の一つのページ表エントリ
(814)を特定する。この時に、加算器(815)の
出力がページ表限界(812)を超えないことを確認す
る(816)。この値を超えている場合は、エラーを検
知する。特定されたページ表エントリ(814)から物
理アドレス空間中の仮想ページアドレスを取り出し、仮
想アドレスのページ内オフセットと結合させて物理アド
レス(820)を生成する。そして、この物理アドレス
(820)により、主記憶等の物理メモリのアクセスを
行う。
【0005】この仮想記憶方式では、当然仮想アドレス
空間で扱うページ数よりも、物理メモリ空間で扱うペー
ジ数は少ない。そのため、物理メモリ上にない仮想アド
レス空間上のページをプログラムがアクセスした場合に
は、ページ・フォールトが発生する。ページ・フォール
トでは、新たにページ表エントリを追加したり、2次記
憶(ディスク等)から物理メモリにプログラムをロード
する処理が必要となる。ページフォールトに伴う一連の
処理等は、ユーザプログラムが意識する必要はなく、オ
ペレーティング・システムの管理下に置かれるのが一般
的である。
【0006】さらに、この仮想アドレスの変換を高速に
行うハードウェア機構として、図7に示すTLB(Tr
anslation Lookaside Buffe
r)がある。TLBとは、図6に示すページ表(81
3)のキャッシュメモリのようなものであり、プロセッ
サは仮想アドレスでページ表をアクセスする代わりに、
TLBをアクセスすることにより高速にアドレス変換を
行うことが可能である。以下に、図7に示すフルアソシ
アティブ方式(仮想アドレスの一部をデコードしてエン
トリ選択を実施せず、TLB内のエントリ毎に内蔵した
比較器のヒットミスによりエントリの選択を実施する構
成)のTLB(900)について説明する。TLB(9
00)は、0〜Nセットのページテーブルエントリ(P
TE)(903−0〜N)より構成されている。各PT
Eには、図6に示すページ表内のページ表エントリのコ
ピーを持つことが可能である。各PTEは、タグフィー
ルド(901)とデータフィールド(902)とアドレ
ス比較器(905)より構成されている。
【0007】タグフィールド(901)は、以下の2フ
ィールド(a)〜(b)より構成されている。 (a)VPA[31:12]:Virtual Pag
e Address(仮想ページアドレス) (b)ASID:Address Space ID
(アドレス空間ID) OSは、プロセス毎にASIDを管理することにより多
重仮想アドレス空間を実現する。
【0008】また、データフィールド(902)は、以
下の6フィールド(c)〜(h)より構成されている。 (c)PPA[31:12]:Physical Pa
ge Address(物理ページアドレス) 最小ページである4kBサイズに対応した物理ページア
ドレスを保持。PZフィールドで示されるページサイズ
に応じて、使用サイズが変更される。 4kBページ:PPA[31:12]全て使用 16kBページ:PPA[13:12]を不使用 64kBページ:PPA[15:12]を不使用 128kBページ:PPA[17:12]を不使用 (d)NC:Non Cachable Area b
it(ノンキャッシャブルビット) 0=キャッシング可能領域 1=キャッシング不可領域
【0009】(e)AC[2:0]:Access C
ontrol bits(アクセス制御ビット) AC[2]:0=リードアクセス可能、1=リードアク
セス不可 AC[1]:0=ライトアクセス可能、1=ライトアク
セス不可 AC[0]:0=実行可能、1=実行不可 (f)M:Modify bit(変更ビット) 0=ライトアクセス未発生 1=ライトアクセス発生 (g)G:Global Page bit(グローバ
ル・ページビット) 0=ローカル・ページ 1=グローバル・ページ (h)V:Entry Valid bit(有効ビッ
ト) 0=無効エントリ 1=有効エントリ
【0010】各PTE内のアドレス比較器(905)
は、プログラムで発生したメモリアクセス先の仮想ペー
ジに対するページ表エントリが、TLBに登録されてい
るかどうかをチェックするためのものである。アドレス
比較器(905)には、現在実行のプロセスに対するA
SIDと、このプロセスで発生したメモリアクセスに対
する仮想ページアドレスが径路850より入力されてい
る。さらに、タグフィールド(901)のVPA,AS
IDと、データフィールド(902)のG,Vが入力さ
れている。まず、径路850からの仮想ページアドレス
とタグフィールド(901)のVPAの比較1が実施さ
れる。また、径路850からのASIDとタグフィール
ド(901)のASIDの比較2はGビットが0の時の
み有効とする。これら比較1,2の結果はVビットが1
の時のみ有効であり、Vビットが0であれば無条件で比
較結果は不一致となる。
【0011】全てのPTEのアドレス比較器において比
較結果が一致しなかった場合(TLBミス)は、径路9
06によりTLBミスが発生したことが例外検出機構に
伝達される。例外検出機構では、TLBミスに伴う例外
処理が必要であることをプロセッサコアに伝達する。T
LBミスは、仮想ページに対するページ表エントリがT
LBに登録されていないことを意味する。そのため、こ
の例外処理ルーチンでは、TLBミスを起こしたページ
表エントリを径路908からTLBへ登録するための一
連の処理を行い、メモリアクセスを再実行するためにT
LBミスを発生した命令へ戻る処理を行う。
【0012】いずれかのPTEのアドレス比較器におい
て比較結果が一致した場合(TLBヒット)は、径路9
06によりTLBヒットしたことを出力制御部(90
7)へ伝達する。出力制御部(907)では、ヒットし
たPTE内のデータフィールドのPPAが出力(91
0)され、物理アドレスを生成するために使用される。
同時に、ヒットしたPTE内のデータフィールドのN
C,ACがメモリ管理部の制御部へ出力される。NCビ
ットがセット(=1)されていると、生成された物理ア
ドレスでアクセスしたデータをキャッシュメモリに登録
しないような処理が実行される。ACビットは、生成さ
れた物理アドレスを用いて実施されるアクセスに対する
例外を検出ために使用される。また、生成された物理ア
ドレスを用いて実施されるアクセスがライト処理である
場合には、物理ページが変更されたことを示しており、
この情報は径路(909)によりMビットをセットする
処理が実施される。通常OSは、物理ページを物理メモ
リからページアウトする場合に、Mビットがセットされ
ていれば物理ページの内容を2次記憶に書き戻す処理を
実施する。
【0013】図8に、従来のマイクロプロセッサのブロ
ック構成を示す。近年、マイクロプロセッサは、動作周
波数の向上を図るためにパイプライン処理により命令実
行が行われている。パイプライン処理とは複数の命令を
オーバラップさせて同時実行する技術である。1個の命
令の処理過程を複数の小さな処理過程(パイプライン・
ステージ)に分割する。各ステージが順に接続されて1
本のパイプラインを形成し、命令がパイプの一端から入
って複数のステージを進み最後にパイプのもう一方の端
から出て行く。このパイプラインの単位時間当りの処理
性能は、最も遅いステージの処理時間により決まる。そ
のため、通常は各ステージの処理時間が均一になるよう
に設計されている。Nステージからなるパイプライン処
理では、パイプライン処理されない場合に比較して、理
想的にはN倍の処理性能を達成することが可能である。
このようなパイプライン処理かされたマイクロプロセッ
サにおいて、TLBを用いた仮想記憶方式によるアドレ
ス変換処理は、プロセッサコアからは命令フェッチを行
うIFステージと、オペランドアクセスを行うMEMス
テージで発生する。
【0014】次に、図8に示す従来のマイクロプロセッ
サの基本的なパイプライン処理について説明する。この
マイクロプロセッサでは5段のステージより構成される
パイプライン処理が実行される。それらは、命令フェッ
チを行うIFステージと、命令デコードを行うDステー
ジ、命令実行及びアドレス計算を行うE/Aステージ
と、メモリアクセスを行うM(MEM)ステージと、実
行結果を汎用レジスタに書き戻すW(WB)ステージで
ある。IFステージでは、命令アドレスレジスタIA
(1000)の値により命令メモリI−MEM(101
0)がアクセスされる。命令アドレスレジスタIA(1
000)には、命令TLB(1020)により仮想から
物理へアドレス変換された物理アドレスが格納される。
この物理アドレスに対して、命令メモリI−MEM(1
010)から読み出された命令コードは、まず命令キュ
ーI−Q(1009)に転送されて、その後、IF及び
Dステージ間のフリップフロップ(1001)に転送さ
れる。また、IA(1000)の値は、次命令アクセス
を行うために、インクリメンタ(1011)により+4
されてマルチプレクサ(1018)を介して、命令TL
B(1020)を通して命令アドレスレジスタIA(1
000)に書き戻される。また、命令デコード部(10
12)では各種レジスタや演算器等の制御を行うための
制御信号を生成する。
【0015】Dステージでは、主に、命令のデコード
と、命令コード中のソースレジスタ指定子によりレジス
タファイル(1014)の読み出しと、命令コード中に
埋め込まれている即値の生成等が行われる。これら即値
やレジスタ値は、D及びE/Aステージ間のフリップフ
ロップ(1002,1003)に格納される。また、命
令コードがDステージに入力された段階でパイプライン
制御部が活性化され、順次パイプライン制御が実行され
る。E/Aステージでは、主に、命令実行とアドレス生
成が実行される。フリップフロップ(1002,100
3)の値は、演算部(1016)に転送され演算が実行
される。また、フリップフロップ(1002,100
3)の値は、アドレス生成部(1015)にも転送され
る。
【0016】分岐命令が実行された時には、このアドレ
ス生成部(1015)の値はマルチプレクサと命令TL
B(1020)を介して、命令アクセス用の物理アドレ
スとして命令アドレスレジスタIA(1000)に格納
される。また、ロード/ストア命令が実行された時に
は、このアドレス生成部(1015)の値はデータTL
B(1021)を介して、データメモリアクセス用の物
理アドレスとしてフリップフロップ(1004)に取り
込まれて、次ステージに転送される。そして、この物理
アドレスによりデータメモリD−MEM(1017)ア
クセスが実行される。
【0017】ストア処理の場合は、汎用レジスタより読
み出したフリップフロップ(1005)の値を、この物
理アドレスが示すデータメモリ(1017)のメモリ領
域へ格納する。演算部(1016)の演算結果は、ME
Mステージでそのまま転送されて、フリップフロップ
(1007)へ格納され、ロード命令により読み出され
たデータは、フリップフロップ(1006)に格納され
る。そして、これらフリップフロップ(1006,10
07)に格納されたデータは、Wステージでマルチプレ
クサ(1019)を介してレジスタファイル(101
4)に書き戻される。
【0018】図8に示す従来のマイクロプロセッサで
は、前述したように、5段のパイプライン処理で命令を
実行する。レジスタ間演算命令及びロード/ストア命令
では共に、命令フェッチ(IF)→命令デコード(D)
→オペランドアドレス生成(E/A)→メモリアクセス
(M)→ライトバック(W)の順に5ステージで命令実
行がなされる。また、分岐命令では、命令フェッチ(I
F)→命令デコード(D)→分岐先アドレス生成(E/
A)の順に3ステージで命令実行がなされる。そして、
パイプライン制御部(1030)では、これらパイプラ
イン制御を司っている。また、メモリ制御部(103
1)は、命令フェッチ及びオペランドアクセスの処理
と、各種例外処理を司っている。
【0019】図9に、図8の従来のマイクロプロセッサ
における以下の4連続命令のパイプライン処理の一例を
示す。これら4連続命令間には、データ干渉(先行命令
の実行結果を、後続命令が使用すること)は発生しない
ものとする。また、全ての命令フェッチは、1クロック
サイクルで完了し、ロード命令によるメモリアクセス
は、3クロックサイクルかかるものとする。すなわち、
全ての命令のIFステージは、1クロックサイクルのみ
使用し、ロード命令のMEMステージは、3クロックサ
イクル使用する。 1)LD R2,0(R1):第1のロード命令 2)LD R3,0(R1):第2のロード命令 3)ADD R4,R5,R6:加算命令 4)BEZ R7,LOOP:条件分岐命令
【0020】従来のマイクロプロセッサでは、先行する
命令があるステージで停止すると、これに後続するステ
ージも全て停止する。まず、第1のロード命令の実行
は、IF,D,Aステージと1クロックサイクルで終
え、MEMステージにC4〜C6の3クロックサイクル
かけた後に、C7でWBステージが完了する。第2のロ
ード命令は、IF,Dステージと1クロックサイクルで
終え、第1のロード命令がMEMステージで3クロック
かかっているC4〜C6の期間をAステージにかける。
そして、MEMステージにC7〜C9の3クロックサイ
クルかけた後に、C10でWBステージが完了する。第
3の加算命令は、IFステージを1クロックサイクルで
終え、先行する2つのロード命令がMEMステージでそ
れぞれ3クロックサイクルかかるため、D,E/Aステ
ージを3クロックずつかけた後に、MEM,WBステー
ジを1クロックサイクルで終える。第4の条件分岐命令
は、IF,Dステージをそれぞれ3クロックサイクルか
けた後に、E/Aステージを1クロックサイクルで終え
て、分岐処理を実行する。
【0021】第1のロード命令は、C3でアドレス変換
と同時にオペランドアクセス・リクエスト(Load
Request)の出力を開始する。このリクエストに
対して、C4でアクノリッジ(Load Acknow
ledge)が返され、第1のロード命令は、MEMス
テージに入りメモリアクセスを開始する。そして、C6
でエンド(Load End)が返されて、MEMステ
ージが終了する。第2のロード命令は、第1のロード命
令に対するアクノリッジがC4で返されると同時に、ア
ドレス計算を実施するAステージに入り、アドレス変換
と同時にオペランドアクセス・リクエスト(Load
Request)の出力を開始する。そして、C7で第
2のロード命令に対するアクノリッジ(Load Ac
knowledge)が返されるまで、リクエストの出
力とアドレス変換は継続される。C7のアクノリッジ
(Load Acknowledge)からC9のエン
ド(Load End)までが第2のロード命令のME
Mステージである。
【0022】図10に、図8の従来のマイクロプロセッ
サにおいて、2個のロード命令が連続し、第2のロード
命令でMMU関連の例外が発生する場合のパイプライン
処理の一例を示す。まず、第1のロード命令の実行は、
IF,D,Aステージと1クロックサイクルで終え、M
EMステージにC4〜C6の3クロックサイクルかけた
後に、C7でWBステージが完了する。第2のロード命
令は、IF,Dステージと1クロックサイクルで終え、
第1のロード命令がMEMステージで3クロックかかっ
ているC4〜C6の期間をAステージにかける。そし
て、Aステージの終了時に例外を検出し、C7〜C9で
EITベクタへの分岐処理を行う。C10からEITベ
クタ先の命令フェッチを開始する。
【0023】第1のロード命令は、C3でアドレス変換
と同時にオペランドアクセス・リクエスト(Load
Request)の出力を開始する。このリクエストに
対して、C4でアクノリッジ(Load Acknow
ledge)が返され、第1のロード命令は、MEMス
テージに入りメモリアクセスを開始する。そして、C6
でエンド(Load End)が返されて、MEMステ
ージが終了する。第2のロード命令は、第1のロード命
令に対するアクノリッジがC4で返されると同時に、ア
ドレス計算を実施するAステージに入り、アドレス変換
と同時にオペランドアクセス・リクエスト(Load
Request)の出力を開始する。そして、C6で第
1のロード命令に対するエンド(Load End)が
返されると同時に、第2のロード命令に対する例外を検
出し、第2のロード命令に対するオペランドリクエスト
をキャンセルする。これにより、第2のロード命令に対
するメモリアクセスは発生しない代わりに、C7〜C9
で例外処理ルーチンに入るためのEITベクタの分岐処
理を実施する。
【0024】
【発明が解決しようとする課題】このように、単一パイ
プラインでかつイン・オーダ処理の従来のマイクロプロ
セッサでは、2個のロード/ストア命令が連続し、第2
のロード/ストア命令が例外を発生する場合、第1のロ
ード/ストア命令のMEMステージの完了時点で例外検
出を行い、次クロックサイクルからEITベクタへの分
岐処理を開始する。これにより、従来のTLBでは、図
7に示すように、例外検出を行うための処理経路は、特
に高速化を図られているわけではなく、処理時間がかか
る構成となっている。すなわち、TLBミス例外は各ペ
ージテーブルエントリの比較器の出力が全て一致しなか
った場合に発生する。また、アクセス例外はアクセスビ
ットACを読み出し、オペランドアクセスの種類との照
合を行い、特定の条件が成立すれば発生する。
【0025】この発明は、ロード/ストア処理パイプラ
インに依頼することなく、データMMU例外検出を行う
メモリ管理機構及び方法を提供することを目的とする。
【0026】
【課題を解決するための手段】この発明に係るメモリ管
理機構は、一つの命令を複数の処理に分割して命令を実
行することによって複数の命令を順番に並行して実行す
る複数のパイプラインを備え、後続の非メモリアクセス
命令が先行のメモリアクセス命令よりも先に処理を完了
するプロセッサに備えられるメモリ管理機構において、
上記メモリ管理機構は、仮想アドレスと物理アドレスと
の対応を記憶するアドレス変換バッファを備え、仮想ア
ドレスを入力し、上記アドレス変換バッファに仮想アド
レスに対応する物理アドレスが登録されているか否かを
判定し、判定した結果、上記アドレス変換バッファに仮
想アドレスと一致する物理アドレスが登録されていなか
った場合に、実行中のメモリアクセス命令に後続する命
令を無効にするメモリ管理例外信号を出力することを特
徴とする。
【0027】上記アドレス変換バッファは、さらに、物
理アドレスのアクセス状態を示すアクセスビットを上記
物理アドレスに対応させて記憶し、上記メモリ管理機構
は、仮想アドレスと一致する物理アドレスが登録されて
いる場合、上記物理アドレスに対応するアクセスビット
を上記アドレス変換バッファから読み込み、読みこんだ
アクセスビットと、上記物理アドレスへアクセスする命
令とを照合し、照合した結果、アクセスできない場合
は、上記メモリ管理例外信号を出力することを特徴とす
る。
【0028】上記パイプライン処理は、一つの命令を、
複数のクロックサイクルで実施する複数の処理に分割
し、分割した複数の処理は、実行ステージと、実行ステ
ージの次のクロックサイクルに処理するメモリステージ
とを含み、上記メモリ管理機構は、パイプライン処理の
実行ステージにおいて、上記メモリ管理例外信号を出力
することを決定し、メモリステージにおいて、上記メモ
リ管理例外信号を出力することを特徴とする。
【0029】上記メモリ管理機構は、先行するパイプラ
イン処理がメモリステージを実行する期間に、実行待ち
となる後続する命令と、上記命令がアクセスするアドレ
スとを格納するオペランドアクセス・キューを実行ステ
ージに備え、上記メモリ管理機構は、上記後続する命令
に対する上記メモリ管理例外信号を出力するとともに、
上記オペランドアクセス・キューに保持する命令のリク
エストと、リクエスト・アドレスとを無効にすることを
特徴とする。
【0030】上記パイプライン処理は、一つの命令を、
複数のクロックサイクルで実施する複数の処理に分割
し、上記メモリ管理機構は、仮想アドレスを入力し、上
記アドレス変換バッファに仮想アドレスと一致する物理
アドレスが登録されているか否かを判定し、判定した結
果をヒット/ミス信号として出力するタグ部と、上記ヒ
ット/ミス信号を入力し、入力したヒット/ミス信号を
解析して、上記アドレス変換バッファに仮想アドレスと
一致する物理アドレスが登録されていない場合は、上記
メモリ管理例外信号を生成する例外チェック部と、上記
例外チェック部が生成したメモリ管理例外信号を入力
し、入力したメモリ管理例外信号を、上記例外チェック
部が上記メモリ管理例外信号を生成したクロックサイク
ルの次のクロックサイクルにおいて出力するフリップフ
ロップとを備えることを特徴とする。
【0031】上記アドレス変換バッファは、さらに、物
理アドレスのアクセス状態を示すアクセスビットを上記
物理アドレスに対応させて記憶し、上記メモリ管理機構
は、さらに、上記タグ部からヒット/ミス信号を入力
し、入力したヒット/ミス信号を解析し、解析した結
果、上記アドレス変換バッファに仮想アドレスと一致す
る物理アドレスが登録されている場合は、上記物理アド
レスに対応するアクセスビットを上記アドレス変換バッ
ファから読み込み、読みこんだアクセスビットを出力す
るアクセス部を備え、上記例外チェック部は、上記アク
セス部からアクセスビットを入力し、入力したアクセス
ビットと、上記物理アドレスへアクセスする命令とを照
合し、照合した結果、アクセスビットが上記命令を上記
物理アドレスへ実行することを許可していない場合は、
上記メモリ管理例外信号を出力することを特徴とする。
【0032】この発明に係るメモリ管理方法は、一つの
命令を複数の処理に分割して命令を実行することによっ
て複数の命令を順番に並行して実行する複数のパイプラ
インを備え、後続の非メモリアクセス命令が先行のメモ
リアクセス命令よりも先に処理を完了するプロセッサに
備えられ、仮想アドレスと物理アドレスとの対応を記憶
するアドレス変換バッファを用いて、仮想アドレスを物
理アドレスへ変換するメモリ管理方法において、上記メ
モリ管理方法は、仮想アドレスを入力し、上記アドレス
変換バッファに仮想アドレスと一致する物理アドレスが
登録されているか否かを判定し、判定した結果、上記ア
ドレス変換バッファに仮想アドレスと一致する物理アド
レスが登録されていなかった場合に、実行中のメモリア
クセス命令に後続するパイプライン処理によって実行す
る命令を無効にするメモリ管理例外信号を出力すること
を特徴とする。
【0033】
【発明の実施の形態】実施の形態1.本発明のアウト・
オブ・オーダ完了機構を備えるマイクロプロセッサにお
けるメモリ管理機構では、ロード/ストア命令のMEM
ステージに関係なく、オペランドリクエスト・ドリブン
で例外検出を実施し、例外が発生した場合には即座に後
続パイプラインのキャンセルを実施する。そのため、メ
モリ管理機構は例外検出処理の高速化が図られたものと
なっている。
【0034】図1に、本発明のアウト・オブ・オーダ機
構を備えるマイクロプロセッサの一例を示す。このマイ
クロプロセッサでは、5段のステージより構成されるパ
イプライン処理が実行される。それらは、命令フェッチ
を行うIFステージと、命令デコードを行うDステー
ジ、命令実行及びアドレス計算を行うE/Aステージ
と、メモリアクセスを行うMEM(M)ステージと、実
行結果を汎用レジスタに書き戻すWB(W)ステージで
ある。IFステージでは、命令アドレスレジスタIA
(1000)の値により命令メモリI−MEM(101
0)がアクセスされる。命令アドレスレジスタIA(1
000)には、命令TLB(I−TLB)(1020)
により仮想から物理へアドレス変換された物理アドレス
が格納される。
【0035】この物理アドレスに対して、命令メモリI
−MEM(1010)から読み出された命令コードは、
まず、命令キューI−Q(1009)に転送されて、そ
の後、IF及びDステージ間のフリップフロップ(10
01)に転送される。また、IA(1000)の値は、
次命令アクセスを行うために、インクリメンタ(101
1)により+4されてマルチプレクサ(1018)を介
して、命令TLB(1020)を通して命令アドレスレ
ジスタIA(1000)に書き戻される。また、命令デ
コード部(1012)では、各種レジスタや演算器等の
制御を行うための制御信号を生成する。
【0036】Dステージでは、主に、命令のデコード
と、命令コード中のソースレジスタ指定子によりレジス
タファイル(1014)の読み出しと、命令コード中に
埋め込まれている即値の生成等が行われる。これら即値
やレジスタ値は、D及びE/Aステージ間のフリップフ
ロップ(1002,1003)に格納される。また、命
令コードがDステージに入力された段階でパイプライン
制御部が活性化され、順次パイプライン制御が実行され
る。E/Aステージでは、主に、命令実行とアドレス生
成が実行される。フリップフロップ(1002,100
3)の値は、演算部(1016)に転送され演算が実行
される。また、フリップフロップ(1002,100
3)の値は、アドレス生成部(1015)にも転送され
る。
【0037】分岐命令が実行された時には、このアドレ
ス生成部(1015)の値は、マルチプレクサと命令T
LB(1020)を介して、命令アクセス用の物理アド
レスとして命令アドレスレジスタIA(1000)に格
納される。また、ロード/ストア命令が実行された時に
は、このアドレス生成部(1015)の値は、マルチプ
レクサ(3)から本発明のデータTLB(D−TLB)
(1)を介して、データメモリアクセス用の物理アドレ
スを生成する。
【0038】本発明のデータTLB(1)は、E/A,
MEMステージに跨っており、データTLBにフリップ
フロップを内蔵している。そして、この物理アドレスに
よりデータメモリD−MEM(1017)アクセスが実
行される。ストア処理の場合は、汎用レジスタより読み
出したフリップフロップ(1005)の値を、この物理
アドレスが示すデータメモリ(1017)のメモリ領域
へ格納する。演算部(1016)の演算結果は、フリッ
プフロップ(1005)へ格納され、次クロックサイク
ルでレジスタファイル(1014)に書き戻される。
【0039】また、ロード命令により読み出されたデー
タは、フリップフロップ(1006)に格納され、Wス
テージでレジスタファイル(1014)に書き戻され
る。このように、本発明のマイクロプロセッサでは、汎
用レジスタ(1014)は、ライトポートを2つ備えて
おり、演算部(1016)の実行結果と、ロード命令の
実行結果を、それぞれ経路4と経路5から同時に汎用レ
ジスタへ格納可能である。そのため、ロード/ストア命
令がMEMステージでメモリアクセスに複数クロックサ
イクルかかった場合でも、メモリアクセスのための物理
アドレスはデータTLB(1)に保持されるため、後続
のパイプラインを後続命令の処理に開放することが可能
である。
【0040】この場合に、後続のレジスタ間演算命令
は、演算実行部(1016)で所望の演算処理を実行し
た後、フリップフロップ(1005)と経路4を介し
て、実行結果を汎用レジスタ(1014)へ書き込む。
このような後続命令のレジスタ間演算命令の実行結果を
先行するロード/ストア命令よりも、先に汎用レジスタ
へ書き込む処理をアウト・オブ・オーダ完了機構とい
い、パイプライン制御部(10)で制御される。但し、
このようにアウト・オブ・オーダ完了機構が働くのは、
先行命令の実行結果を後続命令が使用しない場合(デー
タ干渉が発生しない場合)にのみ可能である。
【0041】さらに、E/Aステージは、アドレスキュ
ーAQ(2)を備えており、第1のロード/ストア命令
がMEMステージでメモリアクセス中に、後続の第2の
ロード/ストア命令は、E/Aステージのアドレスキュ
ーAQ(2)でウェイト状態に入ることが可能である。
この場合、第1のロード/ストア命令の物理アドレス
は、データTLB(1)に保持され、第2のロード/ス
トア命令の物理アドレスは、アドレスキューAQ(2)
に保持されている。第2のロード/ストア命令がアドレ
スキューAQ(2)に保持されていても、後続のレジス
タ間演算命令は演算実行部(1016)の結果をフリッ
プフロップ(1005)と経路4を介して汎用レジスタ
へ書き込むことが可能である。
【0042】このように、E/Aステージにアドレスキ
ューを備えることにより、ロード/ストア命令によるパ
イプラインのストールサイクル数を低減することが可能
となり、より性能向上を図ることが可能となる。
【0043】図2に、アウト・オブ・オーダ完了機構の
パイプライン処理を示す。命令フェッチを行うIFステ
ージ、命令デコードを行うDステージ、命令実行及びア
ドレス計算を行うE/Aステージまでは、単一パイプラ
インであり、イン・オーダに命令処理が実行される。そ
して、E/Aステージ以降は、レジスタ間演算命令(パ
イプライン1)とロード/ストア命令(パイプライン
2)とに分かれる。パイプライン1は、レジスタ間演算
命令を完了させるW1ステージである。W1ステージ
は、図1の経路4に相当する。パイプライン2は、ロー
ド/ストア命令を処理するメモリアクセスのMEMステ
ージから命令完了するW2ステージである。W2は、図
1の経路5に相当する。これにより、レジスタ間演算命
令は合計4ステージで命令処理が完了し、ロード/スト
ア命令は合計5ステージで命令処理が完了する。これら
レジスタ間演算命令とロード/ストア命令は、レジスタ
干渉が発生しない限りアウト・オブ・オーダに命令処理
を完了させることが可能である。
【0044】また、分岐命令は、E/Aステージまでに
完了し、ロード/ストア命令とレジスタ干渉がない限
り、分岐命令もロード/ストア命令を処理するパイプラ
イン2に関わらず、アウト・オブ・オーダに処理を完了
させることが可能である。さらに、E/Aステージは、
オペランドアクセスキューAQを備えており、第1のロ
ード/ストア命令がMEMステージでウェイト中に、第
2のロード/ストア命令をAQに保持することにより、
後続のレジスタ間演算命令や分岐命令を先に実行するこ
とが可能である。このオペランドアクセスキューによ
り、ロード/ストア命令により発生するパイプラインの
ストールサイクル数を低減させることが可能となる。
【0045】図3に、図1に示すこの実施の形態のマイ
クロプロセッサにおける以下の4連続命令のパイプライ
ン処理を示す。これら4連続命令間には、データ干渉
(先行命令の実行結果を、後続命令が使用すること)は
発生しないものとする。また、全ての命令フェッチは、
1クロックサイクルで完了し、ロード命令によるメモリ
アクセスは、3クロックサイクルかかるものとする。す
なわち、全ての命令のIFステージは、1クロックサイ
クルのみ使用し、ロード命令のMEMステージは3、ク
ロックサイクル使用する。 1)LD R2,0(R1):第1のロード命令 2)LD R3,0(R1):第2のロード命令 3)ADD R4,R5,R6:加算命令 4)BEZ R7,LOOP:条件分岐命令
【0046】まず、第1のロード命令の実行は、IF,
D,Aステージと1クロックサイクルで終え、MEMス
テージにC4〜C6の3クロックサイクルかけた後に、
C7でWBステージが完了する。第2のロード命令は、
IF,Dステージと1クロックサイクルで終える。そし
て、第1のロード命令がMEMステージで3クロックか
かっているC4〜C6の期間に、Aステージを1クロッ
クサイクルで終えた後、この第2のロード命令によるア
クセス処理は、オペランドアクセスキューAQに入る。
オペランドアクセスキューAQは、実行待ちとなる命令
(命令のリクエスト)と、上記命令がアクセスするアド
レス(リクエストアドレス)とを保持する。そして、第
1のロード命令のMEMステージが終わるや否や、第2
のロード命令はMEMステージに入り、C7〜C9の期
間に3クロックサイクルかけてメモリアクセスを終えた
後に、C10でWBステージが完了する。第3の加算命
令は、先行する第1及び第2のロード命令とレジスタ干
渉が発生しないため、IF,D,E/A,W1ステージ
を1クロックサイクルずつで終える。第4の条件分岐命
令も先行する第1及び第2のロード命令や加算命令とレ
ジスタ干渉が発生しないため、IF,D,E/Aステー
ジをそれぞれ1クロックサイクルで終えて、C7で分岐
先の命令フェッチを開始する。
【0047】第1のロード命令は、C3でアドレス変換
と同時にオペランドアクセス・リクエスト(Load
Request)の出力を開始する。このリクエストに
対して、C4でアクノリッジ(Load Acknow
ledge)が返され、第1のロード命令は、MEMス
テージに入りメモリアクセスを開始する。そして、C6
でエンド(Load End)が返されて、MEMステ
ージが終了する。第2のロード命令は、第1のロード命
令に対するアクノリッジがC4で返されると同時に、ア
ドレス計算を実施するAステージに入り、アドレス変換
と同時にオペランドアクセス・リクエスト(Load
Request)の出力を開始する。そして、C5でこ
れらアドレス変換とオペランドアクセス・リクエスト
は、オペランドアクセスキューAQに引継がれる。そし
て、C7で第2のロード命令に対するアクノリッジ(L
oad Acknowledge)が返されるまで、オ
ペランドアクセス・キューが、リクエストの出力とアド
レス変換を継続する。そして、C7のアクノリッジ(L
oad Acknowledge)からC9のエンド
(Load End)までが第2のロード命令のMEM
ステージである。
【0048】図4に、図1に示すこの実施の形態のマイ
クロプロセッサにおいて、2個のロード命令が連続し、
第2のロード命令でMMU関連の例外が発生する場合の
パイプライン処理を示す。まず、第1のロード命令の実
行は、IF,D,Aステージと1クロックサイクルで終
え、MEMステージにC4〜C6の3クロックサイクル
かけた後に、C7でWBステージが完了する。第2のロ
ード命令は、IF,Dステージと1クロックサイクルで
終え、第1のロード命令がMEMステージで3クロック
かかっているC4〜C6の期間に、C4の1クロックサ
イクルをAステージにかける。そして、AステージのC
4クロックサイクル期間中に例外を検出し、C5〜C7
でEITベクタへの分岐処理を行う。C7からEITベ
クタ先の命令フェッチを開始する。
【0049】第1のロード命令は、C3でアドレス変換
と同時にオペランドアクセス・リクエスト(Load
Request)の出力を開始する。このリクエストに
対して、C4でアクノリッジ(Load Acknow
ledge)が返され、第1のロード命令は、MEMス
テージに入りメモリアクセスを開始する。そして、C6
でエンド(Load End)が返されて、MEMステ
ージが終了する。
【0050】第2のロード命令は、第1のロード命令に
対するアクノリッジがC4で返されると同時に、アドレ
ス計算を実施するAステージに入り、アドレス変換と同
時にオペランドアクセス・リクエスト(Load Re
quest)の出力を開始する。そして、C4クロック
サイクル期間中に、第2のロード命令に対する例外を検
出する。そして、C5クロックサイクルで、例外信号を
出力すると共に、第2のロード命令に対するオペランド
リクエストをキャンセルする。これにより、第2のロー
ド命令に対するメモリアクセスは発生しない。そして、
C5〜C7で例外処理ルーチンに入るためのEITベク
タの分岐処理を実施する。このように、ロード/ストア
命令のオペランドアクセス時のMMU関連例外は、先行
のロード/ストア命令のパイプライン状態に関わらず、
オペランドリクエスト・ドリブンで完了する。すなわ
ち、先行するロード/ストア命令がMEMステージでウ
ェイト中でも、後続のロード/ストア命令のMMU関連
例外検出は実施し、例外が発生した場合には即座にEI
Tベクタへの分岐処理を実施する。
【0051】図5に、この実施の形態のマイクロプロセ
ッサで使用されるこの実施の形態のデータTLBのブロ
ック構成を示す。データTLB部は、アドレス計算を実
行するE/Aステージと、メモリアクセスを実行するM
EMステージに分割して構成されている。すなわち、例
外検出に関係のあるTLBの構成要素は、全てE/Aス
テージにあり、メモリアクセスに関係ある構成要素は、
全てMEMステージに構成している。E/Aステージに
構成された例外検出のための要素は、アドレス生成部と
一体化し、MEMステージに構成されたメモリアクセス
のための要素は、データキャッシュメモリやバスインタ
ーフェイス部と一体化している。
【0052】次に、図5に示す本発明のデータTLBの
動作について説明する。本データTLBは、16エント
リのフルアソシアティブ(各エントリ毎に比較器を備え
ている構成)構成をしている。アドレス生成部AG(1
015)で仮想アドレスが生成されると、仮想アドレス
は、TLBタグ部TAG(21)に入り、16個のエン
トリのタグと比較される。タグ部TAG(21)は、比
較した結果、仮想アドレスがTLB内に存在するか(ヒ
ット)、存在しないか(ミス)の判定結果を示すヒット
/ミス判定信号を出力する。データTLBは、仮想アド
レスと物理アドレスとの対応を記憶するアドレス変換バ
ッファをタグ部TAG(21)内に備える。タグ部TA
G(21)から出力されるヒット/ミス判定信号は、ア
クセスビット部ACC(20)からアクセスビットを読
み出すために、セレクタ(40)を制御する。セレクタ
(40)は、アクセスビットを読み出し、出力する。こ
れらタグ部からのヒット/ミス判定信号と、アクセスビ
ットは例外チェック部(22)にも転送される。
【0053】例外チェック部(22)は、ヒット/ミス
判定信号とアクセスビットとを判定する。例外チェック
部(22)は、16本のヒット/ミス判定信号を判定
し、ヒット/ミス判定信号が全てミスならばTLBミス
例外を発生させる。また、例外チェック部(22)は、
アクセスビットとオペランドアクセスの種類を照合し、
アクセス違反が発生していると判定すると、アクセス例
外を発生させる。この例外チェック部(22)で検出さ
れたオペランドアクセスのMMU関連例外(ミス例外、
アクセス例外)は、フリーランクロックのフリップフロ
ップFC(30)に入力されて、MEMステージでMM
U例外信号としてパイプライン制御部(10)及びメモ
リ管理制御部(11)に転送される。MMU例外信号が
パイプライン制御部(10)及びメモリ管理制御部(1
1)に出力される信号線は、図1では、矢印と記号Aを
用いて示している。このMMU例外信号を元に、オペラ
ンドアクセスキューの終了処理や後続パイプラインのキ
ャンセル処理等を実施する。また、MMU例外信号に基
づいて、オペランドアクセスキューに保持されていた命
令リクエストとリクエストアドレスとは無効になる。
【0054】さらに、タグ部(21)のヒット/ミス判
定信号は、ゲーティッド・クロックのフリップフロップ
GC(31)に入力される。MEMステージでは、この
ゲーティッド・クロックのフリップフロップGC(3
1)の値を元に、物理アドレスの生成等を開始する。す
なわち、このゲーティッド・クロックのフリップフロッ
プGC(31)の値は、TLBデータ部から物理アドレ
スを読み出すためにセレクタ(41)へ入力される。ま
た、ノンキャッシャブルビット部NC(24)からノン
キャッシャブルビット(NCビット)を読み出すために
セレクタ(42)へ入力される。読み出された物理アド
レスは、データメモリD−MEM(1017)へ出力さ
れ、データキャッシュメモリや外部メモリをアクセスす
るために使用する。また、ノンキャッシャブルビットが
有効である場合には、データキャッシュメモリのアクセ
スのキャンセル処理が実施される。ノンキャッシャブル
ビットは、パイプライン制御部(10)及びメモリ管理
制御部(11)に転送される。
【0055】このように、データTLBの例外検出はオ
ペランドアクセス・リクエストが発行される毎に必ず実
施し、MMU例外信号はこのリクエストの次クロックサ
イクルに必ず生成される。また、データTLBのアドレ
ス変換処理は、ヒット信号の生成までをE/Aステージ
までに終わらせる。そして、先行パイプラインがMEM
ステージを実施中のため、ウェイト中になる場合は、ヒ
ット/ミス判定結果をゲーティッド・クロックのフリッ
プフロップGC(31)で保持することにより物理アド
レスへの変換を継続する。
【0056】以上のように、実行ステージまでのパイプ
ラインAは単一で、レジスタ間演算命令を処理するパイ
プラインBとロード/ストア命令を処理するパイプライ
ンCに、該実行ステージ以降が分割されている複数パイ
プラインステージを備え、該パイプラインA,Cで処理
されるロード/ストア命令の実行結果を、後続する命令
であって、該パイプラインA,Bで処理されるレジスタ
間演算命令及び該パイプラインAで処理される分岐命令
が使用しない場合は、該ロード/ストア命令の該パイプ
ラインCでの処理状況に関わらず、後続の該レジスタ間
演算命令及び該分岐命令の処理が先に完了する機構を備
えるマイクロプロセッサにおいて、以下の特徴を有する
メモリ管理機構について説明した。
【0057】メモリ管理機構は、該ロード/ストア命令
においてデータメモリアクセスに関する例外処理が発生
した場合に、後続のパイプラインにある処理を未実行に
するために、該ロード/ストア命令のリクエストを出力
する該実行ステージ中に、メモリアクセス処理の仮想ア
ドレス計算と、TLBエントリのいずれかに該仮想アド
レスと一致するアドレスが登録されているかどうかを判
定するTLBヒット/ミス信号を出力し、次クロックサ
イクルから後続のパイプラインにある処理を無効にする
ためのTLBミス例外信号を出力する。
【0058】また、このメモリ管理機構は、前記ロード
/ストア命令のリクエストを出力する該実行ステージ中
に、メモリアクセス処理の仮想アドレス計算と、TLB
エントリのいずれかに該仮想アドレスと一致するアドレ
スが登録されているかどうかを判定するTLBヒット/
ミス信号の出力と、もしいずれかのTLBエントリがヒ
ットした場合に対応するTLBデータ部のアクセスビッ
トの読み出しと、該アクセスビットと該ロード/ストア
命令リクエストの照合を実施し、次クロックサイクルか
ら後続のパイプラインにある処理を無効にするためのア
クセス例外信号を出力する。
【0059】前記実行ステージに、ロード/ストア命令
のリクエストと、リクエスト・アドレスを保持するオペ
ランドアクセス・キューを備え、ロード/ストア命令1
とロード/ストア命令2とを実行する場合、ロード/ス
トア命令2が該実行ステージにあって、データメモリの
アクセス例外が検出された場合に、先行するロード/ス
トア命令1の該パイプラインCでの処理状況に関わら
ず、該ロード/ストア命令2を該オペランドアクセス・
キューで保持することなく無効にする。
【0060】
【発明の効果】この発明のメモリ管理機構によれば、ア
ウト・オブ・オーダ官僚機構を備えるマイクロプロセッ
サにおいて、メモリ管理例外を検出した場合に、実行中
のクロックサイクルの次のクロックサイクルにおいて、
実行中の命令に後続する命令を無効にすることができ
る。
【0061】また、このメモリ管理機構によれば、アド
レス変換とアクセスビットとに基づいて、上記メモリ管
理例外を検出することができる。
【0062】さらに、このメモリ管理機構によれば、ロ
ード/ストア処理パイプラインに依存することなく、上
記メモリ管理例外を検出することができる。
【図面の簡単な説明】
【図1】 本発明のアウト・オブ・オーダ機構を備える
マイクロプロセッサの一例を示す図。
【図2】 アウト・オブ・オーダ完了機構のパイプライ
ン処理を示す図。
【図3】 図1に示すこの実施の形態のマイクロプロセ
ッサにおける以下の4連続命令のパイプライン処理を示
す図。
【図4】 図1に示すこの実施の形態のマイクロプロセ
ッサにおいて、2個のロード命令が連続し、第2のロー
ド命令でMMU関連の例外が発生する場合のパイプライ
ン処理を示す図。
【図5】 この実施の形態のマイクロプロセッサで使用
されるこの実施の形態のデータTLBのブロック構成を
示す図。
【図6】 従来から用いられている仮想記憶方式におけ
る仮想アドレスの変換方式の一例を表す図。
【図7】 仮想アドレスの変換を高速に行うハードウェ
ア機構の一例を表す図。
【図8】 従来のマイクロプロセッサの基本的なパイプ
ライン処理の一例を表す図。
【図9】 図8の従来のマイクロプロセッサにおける以
下の4連続命令のパイプライン処理の一例を示す図。
【図10】 図8の従来のマイクロプロセッサにおい
て、2個のロード命令が連続し、第2のロード命令でM
MU関連の例外が発生する場合のパイプライン処理の一
例を示す図。
【符号の説明】
1 データTLB、2 アドレスキューAQ、10 パ
イプライン制御部、20 アクセスビット部ACC、2
1 TLBタグ部TAG、22 例外チェック部、24
ノンキャッシャブルビット部NC、30 フリーラン
クロックのフリップフロップ、31 ゲーティッド・ク
ロックのフリップフロップ、40,41,42 セレク
タ、1000 命令アドレスレジスタIA、1001,
1002,1003,1005 フリップフロップ、1
009 命令キューI−Q、1010 命令メモリI−
MEM、1011 インクリメンタ、1012 命令デ
コード部、1014 レジスタファイル、1015 ア
ドレス生成部AG、1016 演算部、1017 デー
タメモリD−MEM、1018 マルチプレクサ、10
20 命令TLB。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 一つの命令を複数の処理に分割して命令
    を実行することによって複数の命令を順番に並行して実
    行する複数のパイプラインを備え、後続の非メモリアク
    セス命令が先行のメモリアクセス命令よりも先に処理を
    完了するプロセッサに備えられるメモリ管理機構におい
    て、 上記メモリ管理機構は、仮想アドレスと物理アドレスと
    の対応を記憶するアドレス変換バッファを備え、仮想ア
    ドレスを入力し、上記アドレス変換バッファに仮想アド
    レスに対応する物理アドレスが登録されているか否かを
    判定し、判定した結果、上記アドレス変換バッファに仮
    想アドレスと一致する物理アドレスが登録されていなか
    った場合に、実行中のメモリアクセス命令に後続する命
    令を無効にするメモリ管理例外信号を出力することを特
    徴とするメモリ管理機構。
  2. 【請求項2】 上記アドレス変換バッファは、さらに、
    物理アドレスのアクセス状態を示すアクセスビットを上
    記物理アドレスに対応させて記憶し、 上記メモリ管理機構は、仮想アドレスと一致する物理ア
    ドレスが登録されている場合、上記物理アドレスに対応
    するアクセスビットを上記アドレス変換バッファから読
    み込み、読みこんだアクセスビットと、上記物理アドレ
    スへアクセスする命令とを照合し、照合した結果、アク
    セスできない場合は、上記メモリ管理例外信号を出力す
    ることを特徴とする請求項1記載のメモリ管理機構。
  3. 【請求項3】 上記パイプライン処理は、一つの命令
    を、複数のクロックサイクルで実施する複数の処理に分
    割し、分割した複数の処理は、実行ステージと、実行ス
    テージの次のクロックサイクルに処理するメモリステー
    ジとを含み、 上記メモリ管理機構は、パイプライン処理の実行ステー
    ジにおいて、上記メモリ管理例外信号を出力することを
    決定し、メモリステージにおいて、上記メモリ管理例外
    信号を出力することを特徴とする請求項1または2記載
    のメモリ管理機構。
  4. 【請求項4】 上記メモリ管理機構は、先行するパイプ
    ライン処理がメモリステージを実行する期間に、実行待
    ちとなる後続する命令と、上記命令がアクセスするアド
    レスとを格納するオペランドアクセス・キューを実行ス
    テージに備え、 上記メモリ管理機構は、上記後続する命令に対する上記
    メモリ管理例外信号を出力するとともに、上記オペラン
    ドアクセス・キューに保持する命令のリクエストと、リ
    クエスト・アドレスとを無効にすることを特徴とする請
    求項1から4いずれかに記載のメモリ管理機構。
  5. 【請求項5】 上記パイプライン処理は、一つの命令
    を、複数のクロックサイクルで実施する複数の処理に分
    割し、 上記メモリ管理機構は、 仮想アドレスを入力し、上記アドレス変換バッファに仮
    想アドレスと一致する物理アドレスが登録されているか
    否かを判定し、判定した結果をヒット/ミス信号として
    出力するタグ部と、 上記ヒット/ミス信号を入力し、入力したヒット/ミス
    信号を解析して、上記アドレス変換バッファに仮想アド
    レスと一致する物理アドレスが登録されていない場合
    は、上記メモリ管理例外信号を生成する例外チェック部
    と、 上記例外チェック部が生成したメモリ管理例外信号を入
    力し、入力したメモリ管理例外信号を、上記例外チェッ
    ク部が上記メモリ管理例外信号を生成したクロックサイ
    クルの次のクロックサイクルにおいて出力するフリップ
    フロップとを備えることを特徴とする請求項1記載のメ
    モリ管理機構。
  6. 【請求項6】 上記アドレス変換バッファは、さらに、
    物理アドレスのアクセス状態を示すアクセスビットを上
    記物理アドレスに対応させて記憶し、 上記メモリ管理機構は、さらに、上記タグ部からヒット
    /ミス信号を入力し、入力したヒット/ミス信号を解析
    し、解析した結果、上記アドレス変換バッファに仮想ア
    ドレスと一致する物理アドレスが登録されている場合
    は、上記物理アドレスに対応するアクセスビットを上記
    アドレス変換バッファから読み込み、読みこんだアクセ
    スビットを出力するアクセス部を備え、 上記例外チェック部は、上記アクセス部からアクセスビ
    ットを入力し、入力したアクセスビットと、上記物理ア
    ドレスへアクセスする命令とを照合し、照合した結果、
    アクセスビットが上記命令を上記物理アドレスへ実行す
    ることを許可していない場合は、上記メモリ管理例外信
    号を出力することを特徴とする請求項5記載のメモリ管
    理機構。
  7. 【請求項7】 一つの命令を複数の処理に分割して命令
    を実行することによって複数の命令を順番に並行して実
    行する複数のパイプラインを備え、後続の非メモリアク
    セス命令が先行のメモリアクセス命令よりも先に処理を
    完了するプロセッサに備えられ、仮想アドレスと物理ア
    ドレスとの対応を記憶するアドレス変換バッファを用い
    て、仮想アドレスを物理アドレスへ変換するメモリ管理
    方法において、 上記メモリ管理方法は、仮想アドレスを入力し、上記ア
    ドレス変換バッファに仮想アドレスと一致する物理アド
    レスが登録されているか否かを判定し、判定した結果、
    上記アドレス変換バッファに仮想アドレスと一致する物
    理アドレスが登録されていなかった場合に、実行中のメ
    モリアクセス命令に後続するパイプライン処理によって
    実行する命令を無効にするメモリ管理例外信号を出力す
    ることを特徴とするメモリ管理方法。
JP2001046758A 2001-02-22 2001-02-22 メモリ管理機構及びメモリ管理方法 Withdrawn JP2002251283A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001046758A JP2002251283A (ja) 2001-02-22 2001-02-22 メモリ管理機構及びメモリ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001046758A JP2002251283A (ja) 2001-02-22 2001-02-22 メモリ管理機構及びメモリ管理方法

Publications (1)

Publication Number Publication Date
JP2002251283A true JP2002251283A (ja) 2002-09-06

Family

ID=18908317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001046758A Withdrawn JP2002251283A (ja) 2001-02-22 2001-02-22 メモリ管理機構及びメモリ管理方法

Country Status (1)

Country Link
JP (1) JP2002251283A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210049725A (ko) * 2020-07-20 2021-05-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 명령 실행방법, 장치, 전자기기, 컴퓨터 판독 가능 저장매체 및 컴퓨터 프로그램

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210049725A (ko) * 2020-07-20 2021-05-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 명령 실행방법, 장치, 전자기기, 컴퓨터 판독 가능 저장매체 및 컴퓨터 프로그램
KR102543951B1 (ko) 2020-07-20 2023-06-14 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 명령 실행방법, 장치, 전자기기, 컴퓨터 판독 가능 저장매체 및 컴퓨터 프로그램
US11748108B2 (en) 2020-07-20 2023-09-05 Beijing Baidu Netcom Science And Technology Co., Ltd. Instruction executing method and apparatus, electronic device, and computer-readable storage medium

Similar Documents

Publication Publication Date Title
EP2674856B1 (en) Zero cycle load instruction
JP3644959B2 (ja) マイクロプロセッサシステム
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5664137A (en) Method and apparatus for executing and dispatching store operations in a computer system
JPH0526219B2 (ja)
JP2000231549A (ja) マイクロプロセッサ
JP2003519832A (ja) アントレーニングを備えるストア−ロード転送プレディクタ
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
US6820254B2 (en) Method and system for optimizing code using an optimizing coprocessor
JP2002251283A (ja) メモリ管理機構及びメモリ管理方法
CN113849222A (zh) 流水线化乱序页未命中处理程序

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051019

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080513