JPH07234821A - ページング装置およびディスプレイコントローラ - Google Patents
ページング装置およびディスプレイコントローラInfo
- Publication number
- JPH07234821A JPH07234821A JP6269409A JP26940994A JPH07234821A JP H07234821 A JPH07234821 A JP H07234821A JP 6269409 A JP6269409 A JP 6269409A JP 26940994 A JP26940994 A JP 26940994A JP H07234821 A JPH07234821 A JP H07234821A
- Authority
- JP
- Japan
- Prior art keywords
- page
- bit
- address
- read
- page table
- 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.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】ページディレクトリ/ページテーブルに対する
ライトサイクルの実行回数を低減し、ディスプレイコン
トローラ内のコプロセッサの性能向上を図る。 【構成】ページディレクトリ141のリードアクセス時
に、そのリードされたページディレクトリエントリから
ページテーブルベースアドレスが読み取られると共に、
そのページディレクトリエントリに保持されているAビ
ットがレジスタ56にセットされる。Aビット=“1”
ならば、ページディレクトリ141のAビットを“1”
にセットするためのライトサイクルの実行は禁止され
る。また、リードしたページテーブルエントリに保持さ
れているAビット,Dビットが既に“1”ならば、それ
らビットを“1”に設定するためのページテーブル14
2に対するライトサイクルの実行も禁止される。
ライトサイクルの実行回数を低減し、ディスプレイコン
トローラ内のコプロセッサの性能向上を図る。 【構成】ページディレクトリ141のリードアクセス時
に、そのリードされたページディレクトリエントリから
ページテーブルベースアドレスが読み取られると共に、
そのページディレクトリエントリに保持されているAビ
ットがレジスタ56にセットされる。Aビット=“1”
ならば、ページディレクトリ141のAビットを“1”
にセットするためのライトサイクルの実行は禁止され
る。また、リードしたページテーブルエントリに保持さ
れているAビット,Dビットが既に“1”ならば、それ
らビットを“1”に設定するためのページテーブル14
2に対するライトサイクルの実行も禁止される。
Description
【0001】
【産業上の利用分野】この発明はコンピュータシステム
におけるページング装置に関し、特にディスプレイコン
トローラに組み込まれ、2レベルページングによって仮
想アドレスを実アドレスを変換するページング装置に関
する。
におけるページング装置に関し、特にディスプレイコン
トローラに組み込まれ、2レベルページングによって仮
想アドレスを実アドレスを変換するページング装置に関
する。
【0002】
【従来の技術】一般に、マルチタスクオペレーティング
システムが使用されるコンピュータシステムにおいて
は、仮想記憶を実現するための代表的な方法の1とし
て、2レベルページングが利用されている。この2レベ
ルページングは、仮想アドレスの仮想ページアドレスを
2つに分け、上位側をページディレクトリのインデック
スとしてページテーブルの位置を求め、さらに下位側を
インデックスとして実ページアドレスを求めるというペ
ージング方法であり、1レベルのものよりも、メモリ上
に存在するページテーブル数を削減する事ができる。
システムが使用されるコンピュータシステムにおいて
は、仮想記憶を実現するための代表的な方法の1とし
て、2レベルページングが利用されている。この2レベ
ルページングは、仮想アドレスの仮想ページアドレスを
2つに分け、上位側をページディレクトリのインデック
スとしてページテーブルの位置を求め、さらに下位側を
インデックスとして実ページアドレスを求めるというペ
ージング方法であり、1レベルのものよりも、メモリ上
に存在するページテーブル数を削減する事ができる。
【0003】また、ページングを高速に行うために、通
常はTLB(Translation Lookasi
de Buffer)と呼ばれるアドレス変換テーブル
をページング機構内に設け、メモリ上のページテーブル
を参照する回数を少なくする工夫がなされている。
常はTLB(Translation Lookasi
de Buffer)と呼ばれるアドレス変換テーブル
をページング機構内に設け、メモリ上のページテーブル
を参照する回数を少なくする工夫がなされている。
【0004】このようなページング処理は、CPUに内
蔵されたページングユニットによって次のように実行さ
れる。すなわち、ページング処理では、まず、TLBが
参照される。TLBヒットの場合には、そのTLBに保
持されている実ページアドレスを利用して実アドレスが
生成される。この場合、メモリ上のページディレクトリ
およびページテーブルは参照されない。
蔵されたページングユニットによって次のように実行さ
れる。すなわち、ページング処理では、まず、TLBが
参照される。TLBヒットの場合には、そのTLBに保
持されている実ページアドレスを利用して実アドレスが
生成される。この場合、メモリ上のページディレクトリ
およびページテーブルは参照されない。
【0005】一方、TLBがミスヒットすると、仮想ア
ドレスの上位ビットを用いてメモリ上のディレクトリが
リードアクセスされ、これによってページテーブルアド
レスが求められる。次いで、アクセスビット(Aビッ
ト)と称される管理情報をページディレクトリエントリ
にセットするためのメモリライトサイクルが行われ、A
ビットは“1”にセットされる。Aビット=“1”は、
そのページディレクトリエントリに対応するページ群が
使用されていることを示す。この後、ページテーブルア
ドレスを用いてメモリ上のページテーブルがリードアク
セスされ、そのページテーブルエントリから読み出され
た実ページアドレスを利用して実アドレスが求められ
る。そして、その実アドレスによってメモリ上のページ
がライトアクセスされると、Aビットとダーティービッ
ト(Dビット)をページテーブルエントリにセットする
ためのメモリライトサイクルが行われ、Aビットおよび
Dビットはそれぞれ“1”にセットされる。ここで、ペ
ージテーブルエントリのAビット=“1”は該当ページ
が使用されていることを示し、Dビット=“1”は該当
ページの内容更新がなされたことを示す。
ドレスの上位ビットを用いてメモリ上のディレクトリが
リードアクセスされ、これによってページテーブルアド
レスが求められる。次いで、アクセスビット(Aビッ
ト)と称される管理情報をページディレクトリエントリ
にセットするためのメモリライトサイクルが行われ、A
ビットは“1”にセットされる。Aビット=“1”は、
そのページディレクトリエントリに対応するページ群が
使用されていることを示す。この後、ページテーブルア
ドレスを用いてメモリ上のページテーブルがリードアク
セスされ、そのページテーブルエントリから読み出され
た実ページアドレスを利用して実アドレスが求められ
る。そして、その実アドレスによってメモリ上のページ
がライトアクセスされると、Aビットとダーティービッ
ト(Dビット)をページテーブルエントリにセットする
ためのメモリライトサイクルが行われ、Aビットおよび
Dビットはそれぞれ“1”にセットされる。ここで、ペ
ージテーブルエントリのAビット=“1”は該当ページ
が使用されていることを示し、Dビット=“1”は該当
ページの内容更新がなされたことを示す。
【0006】このように、TLBミスヒットの場合には
メモリリードサイクルだけでなく、AビットやDビット
をセットするためのメモリライトサイクルも必要とな
り、ページング処理に時間がかかる欠点があった。
メモリリードサイクルだけでなく、AビットやDビット
をセットするためのメモリライトサイクルも必要とな
り、ページング処理に時間がかかる欠点があった。
【0007】ところで、前述のAビットの値は、オペレ
ーティングシステム(OS)によって定期的に“0”に
リセットされる。これは、使用頻度が少ないにも拘ら
ず、一旦アクセスされるとそのページが使用状態(Aビ
ット=“1”)に維持されたままになるという不具合を
防止するためである。メモリ上に新たなページをロード
する際には、Aビット=“0”のページが探され、そこ
にページがロードされる。使用頻度の高いページは、O
SによってAビットがリセットされても、その後直ぐに
“1”にセットされる。このため、使用頻度の高いペー
ジは置き換えの対象とはならず、使用頻度の低いページ
だけが新ページに置き換えられる。したがって、OSに
よってAビットのリセットが行われるまでの期間に同一
ページのアクセスが連続した発生した場合には、2回目
以降のページアクセス時に実行されるAビットセットの
ためのメモリライトサイクルは、実際上意味のないもの
である。
ーティングシステム(OS)によって定期的に“0”に
リセットされる。これは、使用頻度が少ないにも拘ら
ず、一旦アクセスされるとそのページが使用状態(Aビ
ット=“1”)に維持されたままになるという不具合を
防止するためである。メモリ上に新たなページをロード
する際には、Aビット=“0”のページが探され、そこ
にページがロードされる。使用頻度の高いページは、O
SによってAビットがリセットされても、その後直ぐに
“1”にセットされる。このため、使用頻度の高いペー
ジは置き換えの対象とはならず、使用頻度の低いページ
だけが新ページに置き換えられる。したがって、OSに
よってAビットのリセットが行われるまでの期間に同一
ページのアクセスが連続した発生した場合には、2回目
以降のページアクセス時に実行されるAビットセットの
ためのメモリライトサイクルは、実際上意味のないもの
である。
【0008】同様に、前述のDビットセットのためのメ
モリライトサイクルも、もし該当するページディレクト
リエントリのDビットがすでに“1”にセットされてい
たならば、意味のないものとなる。
モリライトサイクルも、もし該当するページディレクト
リエントリのDビットがすでに“1”にセットされてい
たならば、意味のないものとなる。
【0009】以上のように、AビットおよびDビットの
セットは実際上必要でない場合もあるが、従来のページ
ング処理では、それに関係なくそれらAビットおよびD
ビットのセットのためのメモリライトサイクルが毎回行
われていた。
セットは実際上必要でない場合もあるが、従来のページ
ング処理では、それに関係なくそれらAビットおよびD
ビットのセットのためのメモリライトサイクルが毎回行
われていた。
【0010】
【発明が解決しようとする課題】従来では、TLBのミ
スヒット時における不必要なAビットおよびDビットの
セットのためのモリライトサイクルが発生し、これによ
ってページング処理全体に要する時間が増大し、システ
ムの性能が低下される問題があった。
スヒット時における不必要なAビットおよびDビットの
セットのためのモリライトサイクルが発生し、これによ
ってページング処理全体に要する時間が増大し、システ
ムの性能が低下される問題があった。
【0011】この発明はこのような点に鑑みてなされた
もので、AビットおよびDビットのセットのためのメモ
リライトサイクルの実行回数を低減できるようにし、シ
ステム性能を向上することができるページング装置を提
供することを目的とする。
もので、AビットおよびDビットのセットのためのメモ
リライトサイクルの実行回数を低減できるようにし、シ
ステム性能を向上することができるページング装置を提
供することを目的とする。
【0012】
【課題を解決するための手段および作用】この発明は、
ページングによって仮想アドレスを実アドレスに変換す
るページング装置において、複数のページテーブルエン
トリを有し、ページテーブルエントリ毎に対応するペー
ジの実ページアドレスおよびそのページの使用の有無を
示す参照ビットを保持するページテーブルと、前記仮想
アドレスの上位ビット部によって指定される前記ページ
テーブルのページテーブルエントリをリードするページ
テーブルリード手段と、前記リードしたページテーブル
エントリに含まれる実ページアドレスと前記仮想アドレ
スの下位ビット部とから前記仮想アドレスに対応する実
アドレスを生成する手段と、前記リードしたページテー
ブルエントリに含まれる前記参照ビットを参照し、前記
参照ビットが前記ページの未使用を示す時前記リードし
たページテーブルエントリにページ使用を示す参照ビッ
トをライトする手段とを具備することを特徴とする。
ページングによって仮想アドレスを実アドレスに変換す
るページング装置において、複数のページテーブルエン
トリを有し、ページテーブルエントリ毎に対応するペー
ジの実ページアドレスおよびそのページの使用の有無を
示す参照ビットを保持するページテーブルと、前記仮想
アドレスの上位ビット部によって指定される前記ページ
テーブルのページテーブルエントリをリードするページ
テーブルリード手段と、前記リードしたページテーブル
エントリに含まれる実ページアドレスと前記仮想アドレ
スの下位ビット部とから前記仮想アドレスに対応する実
アドレスを生成する手段と、前記リードしたページテー
ブルエントリに含まれる前記参照ビットを参照し、前記
参照ビットが前記ページの未使用を示す時前記リードし
たページテーブルエントリにページ使用を示す参照ビッ
トをライトする手段とを具備することを特徴とする。
【0013】このページング装置においては、ページテ
ーブルのリードアクセス時に、リードされたページテー
ブルエントリから実ページアドレスが読み取られると共
に、そのページテーブルエントリに保持されている参照
ビットが読み取られる。参照ビットがページ使用を示す
ならば、ページテーブルエントリの参照ビットをページ
使用を示す状態にセットするためのライトサイクルは実
行されない。従って、不必要な参照ビットセットのため
のメモリライトサイクルの発生が防止され、メモリライ
トサイクルの実行回数を低減できる。
ーブルのリードアクセス時に、リードされたページテー
ブルエントリから実ページアドレスが読み取られると共
に、そのページテーブルエントリに保持されている参照
ビットが読み取られる。参照ビットがページ使用を示す
ならば、ページテーブルエントリの参照ビットをページ
使用を示す状態にセットするためのライトサイクルは実
行されない。従って、不必要な参照ビットセットのため
のメモリライトサイクルの発生が防止され、メモリライ
トサイクルの実行回数を低減できる。
【0014】
【実施例】以下、図面を参照して、この発明の実施例を
説明する。図1にはこの発明の一実施例に係わる表示制
御システム全体の構成が示されている。この表示制御シ
ステム4は、例えば、1024×768ドット、256
色同時表示の表示モードを持つXGA( eXtended G
raphics Array)仕様の表示制御システムであり、ポ
ータブルコンピュータのシステムバス3に接続される。
この表示制御システム4は、ポータブルコンピュータ本
体に標準装備されるフラットパネルディスプレイ40お
よびオプション接続されるカラーCRTディスプレイ5
0双方に対する表示制御を行なう。
説明する。図1にはこの発明の一実施例に係わる表示制
御システム全体の構成が示されている。この表示制御シ
ステム4は、例えば、1024×768ドット、256
色同時表示の表示モードを持つXGA( eXtended G
raphics Array)仕様の表示制御システムであり、ポ
ータブルコンピュータのシステムバス3に接続される。
この表示制御システム4は、ポータブルコンピュータ本
体に標準装備されるフラットパネルディスプレイ40お
よびオプション接続されるカラーCRTディスプレイ5
0双方に対する表示制御を行なう。
【0015】表示制御システム4には、ディスプレイコ
ントローラ10、デュアルポート画像メモリ(VRA
M)30、およびDAC(D/Aコンバータ)35が設
けられている。これらディスプレイコントローラ10、
デュアルポート画像メモリ(VRAM)30、およびD
AC35は、図示しない回路基板上に搭載されている。
ントローラ10、デュアルポート画像メモリ(VRA
M)30、およびDAC(D/Aコンバータ)35が設
けられている。これらディスプレイコントローラ10、
デュアルポート画像メモリ(VRAM)30、およびD
AC35は、図示しない回路基板上に搭載されている。
【0016】ディスプレイコントローラ10はゲートア
レイによって実現されるLSIであり、この表示制御シ
ステム4の主要部を成す。このディスプレイコントロー
ラ10は、CPU1からの指示に従い、デュアルポート
画像メモリ(VRAM)30およびDAC35を利用し
て、フラットパネルディスプレイ40およびカラーCR
Tディスプレイ50に対する表示制御を実行する。ま
た、このディスプレイコントローラ10は、バスマスタ
として機能し、システムメモリ2を直接アクセスするこ
とができる。
レイによって実現されるLSIであり、この表示制御シ
ステム4の主要部を成す。このディスプレイコントロー
ラ10は、CPU1からの指示に従い、デュアルポート
画像メモリ(VRAM)30およびDAC35を利用し
て、フラットパネルディスプレイ40およびカラーCR
Tディスプレイ50に対する表示制御を実行する。ま
た、このディスプレイコントローラ10は、バスマスタ
として機能し、システムメモリ2を直接アクセスするこ
とができる。
【0017】デュアルポート画像メモリ(VRAM)3
0は、シリアルアクセスに使用されるシリアルポート
(シリアルDATA)とランダムアクセスのためのパラ
レルポート(DATA)を備えている。シリアルポート
(シリアルDATA)は表示画面リフレッシュのための
データ読み出しに使用され、またパラレルポート(DA
TA)は表示データの更新に使用される。このデュアル
ポート画像メモリ(VRAM)30は、複数のデュアル
ポートDRAMから構成されており、1Mバイト乃至4
Mバイトの記憶容量を有している。このデュアルポート
画像メモリ(VRAM)30には、フラットパネルディ
スプレイ40またはカラーCRTディスプレイ50に表
示するための表示データが描画される。
0は、シリアルアクセスに使用されるシリアルポート
(シリアルDATA)とランダムアクセスのためのパラ
レルポート(DATA)を備えている。シリアルポート
(シリアルDATA)は表示画面リフレッシュのための
データ読み出しに使用され、またパラレルポート(DA
TA)は表示データの更新に使用される。このデュアル
ポート画像メモリ(VRAM)30は、複数のデュアル
ポートDRAMから構成されており、1Mバイト乃至4
Mバイトの記憶容量を有している。このデュアルポート
画像メモリ(VRAM)30には、フラットパネルディ
スプレイ40またはカラーCRTディスプレイ50に表
示するための表示データが描画される。
【0018】この場合、XGA仕様に適合したアプリケ
ーションプログラム等で作成されたXGA仕様の描画デ
ータは、パックドピクセル方式によってデュアルポート
画像メモリ(VRAM)30に格納される。このパック
ドピクセル方式は、メモリ上の連続するビットで1画素
を表す色情報マッピング形式であり、例えば、1画素を
1,2,4,8,または16ビットで表す方式が採用さ
れている。一方、VGA仕様の描画データは、VGA仕
様に適合した従来のアプリケーションプログラム等で作
成されるものであり、メモリプレーン方式によってデュ
アルポート画像メモリ(VRAM)30に描画される。
このメモリプレーン方式は、メモリ領域を同一アドレス
で指定される複数のプレーンに分割し、これらプレーン
に各画素の色情報を割り当てる方式である。例えば、4
プレーンを持つ場合には、1画素は、各プレーン毎に1
ビットづつの合計4ビットのデータによって表現され
る。
ーションプログラム等で作成されたXGA仕様の描画デ
ータは、パックドピクセル方式によってデュアルポート
画像メモリ(VRAM)30に格納される。このパック
ドピクセル方式は、メモリ上の連続するビットで1画素
を表す色情報マッピング形式であり、例えば、1画素を
1,2,4,8,または16ビットで表す方式が採用さ
れている。一方、VGA仕様の描画データは、VGA仕
様に適合した従来のアプリケーションプログラム等で作
成されるものであり、メモリプレーン方式によってデュ
アルポート画像メモリ(VRAM)30に描画される。
このメモリプレーン方式は、メモリ領域を同一アドレス
で指定される複数のプレーンに分割し、これらプレーン
に各画素の色情報を割り当てる方式である。例えば、4
プレーンを持つ場合には、1画素は、各プレーン毎に1
ビットづつの合計4ビットのデータによって表現され
る。
【0019】また、デュアルポート画像メモリ(VRA
M)30には、テキストデータも格納される。1文字分
のテキストデータは、XGA、VGAのどちらの仕様に
おいても,8ビットのコードと8ビットのアトリビュー
トからなる合計2バイトのサイズを持つ。アトリビュー
トは、フォアグランドの色を指定する4ビットデータと
バックグランドの色を指定する4ビットデータから構成
されている。
M)30には、テキストデータも格納される。1文字分
のテキストデータは、XGA、VGAのどちらの仕様に
おいても,8ビットのコードと8ビットのアトリビュー
トからなる合計2バイトのサイズを持つ。アトリビュー
トは、フォアグランドの色を指定する4ビットデータと
バックグランドの色を指定する4ビットデータから構成
されている。
【0020】DAC35は、ディスプレイコントローラ
10によって生成されたCRTビデオデータをアナログ
R,G,B信号に変換してCRTディスプレイ50に供
給する。
10によって生成されたCRTビデオデータをアナログ
R,G,B信号に変換してCRTディスプレイ50に供
給する。
【0021】ディスプレイコントローラ10は、レジス
タ制御回路11、システムバスインターフェース12、
描画用のコプロセッサ13、メモリデータバス制御回路
14、CRTコントローラ(CRTC)15、メモリア
ドレスバス制御回路16、メモリ制御回路18、スプラ
イトメモリ19、シリアライザ20、ラッチ回路21、
フォアグランド/バックグランドマルチプレクサ22、
グラフィック/テキストマルチプレクサ23、カラーパ
レット24、スプライトカラーレジスタ25、CRTビ
デオマルチプレクサ26、スプライト制御回路27、お
よびフラットパネルエミュレーション回路28から構成
されている。
タ制御回路11、システムバスインターフェース12、
描画用のコプロセッサ13、メモリデータバス制御回路
14、CRTコントローラ(CRTC)15、メモリア
ドレスバス制御回路16、メモリ制御回路18、スプラ
イトメモリ19、シリアライザ20、ラッチ回路21、
フォアグランド/バックグランドマルチプレクサ22、
グラフィック/テキストマルチプレクサ23、カラーパ
レット24、スプライトカラーレジスタ25、CRTビ
デオマルチプレクサ26、スプライト制御回路27、お
よびフラットパネルエミュレーション回路28から構成
されている。
【0022】レジスタ制御回路11は、システムバスス
ンターフェース12を介してシステムバス3からのアド
レスおよびデータを受けとり、アドレスのデコード、お
よびそのデコード結果によって指定される各種レジスタ
に対するリード/ライト制御を行なう。システムバスイ
ンターフェース12は、システムバス3を介してホスト
システムとのインターフェース制御を行なうものであ
り、ISA、EISA、マイクロチャネル、ローカルバ
ス等の各種仕様に適合したバスインターフェースをサポ
ートする。
ンターフェース12を介してシステムバス3からのアド
レスおよびデータを受けとり、アドレスのデコード、お
よびそのデコード結果によって指定される各種レジスタ
に対するリード/ライト制御を行なう。システムバスイ
ンターフェース12は、システムバス3を介してホスト
システムとのインターフェース制御を行なうものであ
り、ISA、EISA、マイクロチャネル、ローカルバ
ス等の各種仕様に適合したバスインターフェースをサポ
ートする。
【0023】描画用コプロセッサ13は、CPU1から
の指示に応答して、デュアルポート画像メモリ(VRA
M)30中の描画データに対してさまざまな描画機能を
提供するものであり、画素のブロック転送、線描画、領
域の塗りつぶし、画素間の論理/算術演算、画面の切り
出し、マップのマスク、X−Y座標でのアドレッシン
グ、ページングによるメモリ管理機能等を有している。
この描画用コプロセッサ13には、VGA/XGA互換
のデータ演算回路131、2次元アドレス発生回路13
1、およびページングユニット133が設けられてい
る。
の指示に応答して、デュアルポート画像メモリ(VRA
M)30中の描画データに対してさまざまな描画機能を
提供するものであり、画素のブロック転送、線描画、領
域の塗りつぶし、画素間の論理/算術演算、画面の切り
出し、マップのマスク、X−Y座標でのアドレッシン
グ、ページングによるメモリ管理機能等を有している。
この描画用コプロセッサ13には、VGA/XGA互換
のデータ演算回路131、2次元アドレス発生回路13
1、およびページングユニット133が設けられてい
る。
【0024】データ演算回路131は、シフト、論理算
術演算、ビットマスク、カラー比較等のデータ演算を行
なうものであり、またVGA互換のBITBLT機能も
有している。2次元アドレス発生回路131は、矩形領
域アクセス等のためのX−Yの2次元アドレスを発生す
る。また、2次元アドレス発生回路131は、領域チェ
ックや、セグメンテーション等を利用したリニアアドレ
ス(実メモリアドレス)への変換処理も行なう。ページ
ングユニット133は、CPU1と同じ仮想記憶機構を
サポートするためのものであり、ページング有効時には
2次元アドレス発生回路131が作ったリニアアドレス
をページングによって実アドレスに変換する。また、ペ
ージング無効時にはリニアアドレスがそのまま実アドレ
スとなる。このページングユニット133は、ページン
グのためにTLBを備えている。
術演算、ビットマスク、カラー比較等のデータ演算を行
なうものであり、またVGA互換のBITBLT機能も
有している。2次元アドレス発生回路131は、矩形領
域アクセス等のためのX−Yの2次元アドレスを発生す
る。また、2次元アドレス発生回路131は、領域チェ
ックや、セグメンテーション等を利用したリニアアドレ
ス(実メモリアドレス)への変換処理も行なう。ページ
ングユニット133は、CPU1と同じ仮想記憶機構を
サポートするためのものであり、ページング有効時には
2次元アドレス発生回路131が作ったリニアアドレス
をページングによって実アドレスに変換する。また、ペ
ージング無効時にはリニアアドレスがそのまま実アドレ
スとなる。このページングユニット133は、ページン
グのためにTLBを備えている。
【0025】また、このページングユニット133は、
描画用コプロセサがシステムメモリ2をアクセスする時
とデュアルポート画像メモリ(VRAM)30をアクセ
スする時とで異なったページングを行なうように構成さ
れている。このようなページング機能はこの発明の特徴
とする部分であり、その詳細は図2および図9を参照し
て後述する。
描画用コプロセサがシステムメモリ2をアクセスする時
とデュアルポート画像メモリ(VRAM)30をアクセ
スする時とで異なったページングを行なうように構成さ
れている。このようなページング機能はこの発明の特徴
とする部分であり、その詳細は図2および図9を参照し
て後述する。
【0026】メモリデータバス制御回路14は、デュア
ルポート画像メモリ(VRAM)30のパラレルデータ
ポート(DATA)のデータバスを制御するためのもの
であり、ソース、パターン、マスク、デストの4マップ
のデータをページモードによってまとめてアクセスする
ためのバッファを備えている。このバッファは、ライト
データバッファの機能も兼ねる。
ルポート画像メモリ(VRAM)30のパラレルデータ
ポート(DATA)のデータバスを制御するためのもの
であり、ソース、パターン、マスク、デストの4マップ
のデータをページモードによってまとめてアクセスする
ためのバッファを備えている。このバッファは、ライト
データバッファの機能も兼ねる。
【0027】CRTコントローラ15は、XGA仕様に
合った高解像度(例えば、1024×768ドット)で
フラットパネルディスプレイ40またはCRTディスプ
レイ50に画面表示を行うための各種表示タイミング信
号(水平同期信号、垂直同期信号等)を発生するXGA
用のCRTCと、VGA仕様に合った中解像度(例え
ば、640×460ドット)でフラットパネルディスプ
レイ40またはCRTディスプレイ50に画面表示を行
うための各種表示タイミング信号(水平同期信号、垂直
同期信号等)を発生するVGA用のCRTCを備えてい
る。また、このCRTコントローラ15は、デュアルポ
ート画像メモリ(VRAM)30のシリアルポート(シ
リアルDATA)から画面表示すべき描画データを読み
出すための表示アドレスも発生する。
合った高解像度(例えば、1024×768ドット)で
フラットパネルディスプレイ40またはCRTディスプ
レイ50に画面表示を行うための各種表示タイミング信
号(水平同期信号、垂直同期信号等)を発生するXGA
用のCRTCと、VGA仕様に合った中解像度(例え
ば、640×460ドット)でフラットパネルディスプ
レイ40またはCRTディスプレイ50に画面表示を行
うための各種表示タイミング信号(水平同期信号、垂直
同期信号等)を発生するVGA用のCRTCを備えてい
る。また、このCRTコントローラ15は、デュアルポ
ート画像メモリ(VRAM)30のシリアルポート(シ
リアルDATA)から画面表示すべき描画データを読み
出すための表示アドレスも発生する。
【0028】メモリアドレスバス制御回路16は、シス
テムバスインターフェース12を介して供給されるCP
U1からのアドレス、描画用コプロセッサ13からのア
ドレス、CRTCコントローラからのアドレスを選択し
て、デュアルポート画像メモリ(VRAM)30に供給
する。メモリ制御回路18は、デュアルポート画像メモ
リ(VRAM)30をリード/ライトアクセスするため
の各種制御信号(Cont)、およびシリアルデータポ
ートからのデータ読み出しタイミングを制御するための
クロックSCK、出力イネーブル信号SOEを発生す
る。また、メモリ制御回路18は、スプライトメモリ1
9のアクセス制御と、スプライト表示タイミング制御を
行なう。
テムバスインターフェース12を介して供給されるCP
U1からのアドレス、描画用コプロセッサ13からのア
ドレス、CRTCコントローラからのアドレスを選択し
て、デュアルポート画像メモリ(VRAM)30に供給
する。メモリ制御回路18は、デュアルポート画像メモ
リ(VRAM)30をリード/ライトアクセスするため
の各種制御信号(Cont)、およびシリアルデータポ
ートからのデータ読み出しタイミングを制御するための
クロックSCK、出力イネーブル信号SOEを発生す
る。また、メモリ制御回路18は、スプライトメモリ1
9のアクセス制御と、スプライト表示タイミング制御を
行なう。
【0029】スプライトメモリ19には、グラフィック
モードではスプライトデータ、テキストモードではフォ
ントが書き込まれる。テキストモードでは、デュアルポ
ート画像メモリ(VRAM)30から読み出されたテキ
ストデータのコードがインデックとしてスプライトメモ
リ19に供給され、そのコードに対応するフォントが読
み出される。シリアライザ20は、複数画素分のパラレ
ルなピクセルデータをピクセル単位(シリアル)に変換
するパラレル/シリアル変換回路であり、グラフィック
モードではデュアルポート画像メモリ(VRAM)30
のシリアルデータポート(シリアルDATA)から読み
出されるメモリデータとスプライトメモリ19から読み
出されるスプライトデータをそれぞれパラレル/シリア
ル変換し、テキストモードではスプライトメモリ19か
ら読み出されるフォントデータをパラレル/シリアル変
換する。
モードではスプライトデータ、テキストモードではフォ
ントが書き込まれる。テキストモードでは、デュアルポ
ート画像メモリ(VRAM)30から読み出されたテキ
ストデータのコードがインデックとしてスプライトメモ
リ19に供給され、そのコードに対応するフォントが読
み出される。シリアライザ20は、複数画素分のパラレ
ルなピクセルデータをピクセル単位(シリアル)に変換
するパラレル/シリアル変換回路であり、グラフィック
モードではデュアルポート画像メモリ(VRAM)30
のシリアルデータポート(シリアルDATA)から読み
出されるメモリデータとスプライトメモリ19から読み
出されるスプライトデータをそれぞれパラレル/シリア
ル変換し、テキストモードではスプライトメモリ19か
ら読み出されるフォントデータをパラレル/シリアル変
換する。
【0030】ラッチ回路21は、コードデータからフォ
ントデータへの変換の遅れ時間だけアトリビュートの出
力タイミングを遅延させるためのものであり、テキスト
モードにおいてデュアルポート画像メモリ(VRAM)
30から読み出されるテキストデータのアトリビュート
を保持する。フォアグランド/バックグランドマルチプ
レクサ22は、テキストモードにおいてアトリビュート
のフォアグランド色(前面色)/バックグランド色(背
景色)の一方を選択する。この選択は、シリアライザ2
0から出力されるフォントデータの値“1”(フォアグ
ランド),“0”(バックグランド)によって制御され
る。グラフイック/テキストマルチプレクサ23は、グ
ラフイックモードとテキストモードの切替えを行なうた
めのものであり、グラフイックモードにおいてはシリア
ライザ20から出力されるメモリデータを選択し、テキ
ストモードにおいてはフォアグランド/バックグランド
マルチプレクサ22の出力を選択する。
ントデータへの変換の遅れ時間だけアトリビュートの出
力タイミングを遅延させるためのものであり、テキスト
モードにおいてデュアルポート画像メモリ(VRAM)
30から読み出されるテキストデータのアトリビュート
を保持する。フォアグランド/バックグランドマルチプ
レクサ22は、テキストモードにおいてアトリビュート
のフォアグランド色(前面色)/バックグランド色(背
景色)の一方を選択する。この選択は、シリアライザ2
0から出力されるフォントデータの値“1”(フォアグ
ランド),“0”(バックグランド)によって制御され
る。グラフイック/テキストマルチプレクサ23は、グ
ラフイックモードとテキストモードの切替えを行なうた
めのものであり、グラフイックモードにおいてはシリア
ライザ20から出力されるメモリデータを選択し、テキ
ストモードにおいてはフォアグランド/バックグランド
マルチプレクサ22の出力を選択する。
【0031】カラーパレット制御回路24は、グラフィ
ックまたはテキストデータの色変換を行なうためのもの
である。このカラーパレット制御回路24は、2段構成
のカラーパレットテーブルを備えている。第1のカラー
パレットテーブルは、16個のカラーパレットレジスタ
から構成されている。各カラーパレットレジスタには、
6ビットのカラーパレットデータが格納されている。第
2のカラーパレットテーブルは、256個のカラーパレ
ットレジスタから構成されている。各カラーパレットレ
ジスタには、R,G,Bそれぞれ6ビットから構成され
る18ビットのカラーデータが格納されている。
ックまたはテキストデータの色変換を行なうためのもの
である。このカラーパレット制御回路24は、2段構成
のカラーパレットテーブルを備えている。第1のカラー
パレットテーブルは、16個のカラーパレットレジスタ
から構成されている。各カラーパレットレジスタには、
6ビットのカラーパレットデータが格納されている。第
2のカラーパレットテーブルは、256個のカラーパレ
ットレジスタから構成されている。各カラーパレットレ
ジスタには、R,G,Bそれぞれ6ビットから構成され
る18ビットのカラーデータが格納されている。
【0032】グラフィックモードにおいては、8ビット
/ピクセルのXGA仕様のメモリデータは、第1のカラ
ーパレットテーブルを介さずに、第2のカラーパレット
テーブルに直接送られ、そこでR,G,Bそれぞれ6ビ
ットから構成されるカラーデータに変換される。また、
4ビット/ピクセルのVGA仕様のメモリデータは、ま
ず第1のカラーパレットテーブルに送られ、そこで6ビ
ットのカラーデータに変換されて出力される。そして、
この6ビットのカラーデータには、カラーパレット制御
回路19内蔵のカラー選択レジスタから出力される2ビ
ットデータが加えられ、これにより合計8ビットのカラ
ーデータとなる。この後、その8ビットのカラーデータ
は、第2のカラーパレットテーブルに送られ、そこで
R,G,Bそれぞれ6ビットから構成されるカラーデー
タに変換される。
/ピクセルのXGA仕様のメモリデータは、第1のカラ
ーパレットテーブルを介さずに、第2のカラーパレット
テーブルに直接送られ、そこでR,G,Bそれぞれ6ビ
ットから構成されるカラーデータに変換される。また、
4ビット/ピクセルのVGA仕様のメモリデータは、ま
ず第1のカラーパレットテーブルに送られ、そこで6ビ
ットのカラーデータに変換されて出力される。そして、
この6ビットのカラーデータには、カラーパレット制御
回路19内蔵のカラー選択レジスタから出力される2ビ
ットデータが加えられ、これにより合計8ビットのカラ
ーデータとなる。この後、その8ビットのカラーデータ
は、第2のカラーパレットテーブルに送られ、そこで
R,G,Bそれぞれ6ビットから構成されるカラーデー
タに変換される。
【0033】一方、テキストモードにおいては、XG
A,VGAどちらの仕様のテキストデータも、第1およ
び第2の2段のカラーパレットテーブルを介して、R,
G,Bそれぞれ6ビットから構成されるカラーデータに
変換される。
A,VGAどちらの仕様のテキストデータも、第1およ
び第2の2段のカラーパレットテーブルを介して、R,
G,Bそれぞれ6ビットから構成されるカラーデータに
変換される。
【0034】また、XGAのグラフィクスモードにおい
ては、1画素が16ビットから構成されるダイレクトカ
ラモードがあり、この場合には、その16ビット/ピク
セルのメモリデータは、カラーパレット制御回路24を
介さずに、CRTビデオマルチプレクサ26に直接供給
される。
ては、1画素が16ビットから構成されるダイレクトカ
ラモードがあり、この場合には、その16ビット/ピク
セルのメモリデータは、カラーパレット制御回路24を
介さずに、CRTビデオマルチプレクサ26に直接供給
される。
【0035】スプライトカラーレジスタ25は、スプラ
イト表示色を指定する。CRTビデオマルチプレクサ2
6は、CRTビデオ表示出力を選択するものであり、カ
ラーパレット制御回路24の出力、またはシリアライザ
20からのダイレクトカラー出力の選択、さらにはスプ
ライト表示のビデオ切替えを行なう。スプライト制御回
路27は、シリアライザ20によってパラレル/シリア
ル変換されたスプライトデータに従ってCRTビデオマ
ルチプレクサ26を制御し、スプライト表示時のビデオ
切替え制御を行なう。フラットパネルエミュレーション
回路28は、CRTビデオ出力を変換してフラットパネ
ルディスプレイ40用のフラットビデオデータを生成す
る。チプレクサ22の出力を選択する。
イト表示色を指定する。CRTビデオマルチプレクサ2
6は、CRTビデオ表示出力を選択するものであり、カ
ラーパレット制御回路24の出力、またはシリアライザ
20からのダイレクトカラー出力の選択、さらにはスプ
ライト表示のビデオ切替えを行なう。スプライト制御回
路27は、シリアライザ20によってパラレル/シリア
ル変換されたスプライトデータに従ってCRTビデオマ
ルチプレクサ26を制御し、スプライト表示時のビデオ
切替え制御を行なう。フラットパネルエミュレーション
回路28は、CRTビデオ出力を変換してフラットパネ
ルディスプレイ40用のフラットビデオデータを生成す
る。チプレクサ22の出力を選択する。
【0036】図2には、この発明の一実施例に係るペー
ジングユニットの構成が示されている。コプロセッサ1
3に組み込まれたページングユニット133は、MS−
WINDOWSやOS2などのマルチタスクOSをサポ
ートする仮想記憶機構を持つCPU1と基本的に同じ2
レベルページング機能をサポートするものであり、アド
レス発生回路132の仮想アドレス生成回路51によっ
て実行されるセグメンテーションによって作成されたリ
ニアアドレスをページングによって実アドレスに変換す
る。
ジングユニットの構成が示されている。コプロセッサ1
3に組み込まれたページングユニット133は、MS−
WINDOWSやOS2などのマルチタスクOSをサポ
ートする仮想記憶機構を持つCPU1と基本的に同じ2
レベルページング機能をサポートするものであり、アド
レス発生回路132の仮想アドレス生成回路51によっ
て実行されるセグメンテーションによって作成されたリ
ニアアドレスをページングによって実アドレスに変換す
る。
【0037】このページングユニット133は、図示の
ように、TLB52、メモリ制御回路53、第1および
第2のレジスタ55,56、セレクタ57を備えてい
る。仮想アドレス生成回路51は、ページングによるア
ドレス変換の対象となる仮想アドレスとしてセグメンテ
ーションの実行結果である32ビットのリニアアドレス
を発生する。また、仮想アドレス生成回路51は、メモ
リアクセス要求を発生する。発生されたリニアアドレス
は、TLB52に送られる。
ように、TLB52、メモリ制御回路53、第1および
第2のレジスタ55,56、セレクタ57を備えてい
る。仮想アドレス生成回路51は、ページングによるア
ドレス変換の対象となる仮想アドレスとしてセグメンテ
ーションの実行結果である32ビットのリニアアドレス
を発生する。また、仮想アドレス生成回路51は、メモ
リアクセス要求を発生する。発生されたリニアアドレス
は、TLB52に送られる。
【0038】TLB52はアドレス変換用のキャッシュ
であり、複数、例えば4つのエントリを有している。各
エントリには、タグ情報とページ変換後の実ページアド
レスとが登録されている。タグ情報は、ページ変換前の
仮想ページアドレス(リニアアドレスタグ)を示す。
であり、複数、例えば4つのエントリを有している。各
エントリには、タグ情報とページ変換後の実ページアド
レスとが登録されている。タグ情報は、ページ変換前の
仮想ページアドレス(リニアアドレスタグ)を示す。
【0039】ページ変換前の仮想ページアドレスに対応
する実ページアドレスがTLB52に存在する時、つま
りリニアアドレスタグがリニアアドレスの上位ビット
(b31〜b12)と一致した時はTLBヒットとな
り、TLB52から読み出される実ページアドレス(ペ
ージフレームアドレス)にリニアアドレスの下位ビット
部(オフセット)を加える事で実アドレスが生成され、
それがセレクタ57によって選択される。
する実ページアドレスがTLB52に存在する時、つま
りリニアアドレスタグがリニアアドレスの上位ビット
(b31〜b12)と一致した時はTLBヒットとな
り、TLB52から読み出される実ページアドレス(ペ
ージフレームアドレス)にリニアアドレスの下位ビット
部(オフセット)を加える事で実アドレスが生成され、
それがセレクタ57によって選択される。
【0040】一方、ページ変換前の仮想ページアドレス
に対応する実ページアドレスがTLB52に存在しない
時、つまりリニアアドレスタグがリニアアドレスの上位
ビット(b31〜b12)と一致しない時はTLBミス
ヒットとなり、システムメモリ2上のページディリクト
リ141およびページテーブル142を利用した2レベ
ルページングが実行される。
に対応する実ページアドレスがTLB52に存在しない
時、つまりリニアアドレスタグがリニアアドレスの上位
ビット(b31〜b12)と一致しない時はTLBミス
ヒットとなり、システムメモリ2上のページディリクト
リ141およびページテーブル142を利用した2レベ
ルページングが実行される。
【0041】メモリ制御回路53は、2レベルページン
グによるアドレス変換、およびシステムメモリ2に格納
されたページディリクトリ141およびページテーブル
142、およびVRAM30のリード/ライトアクセス
を制御する。
グによるアドレス変換、およびシステムメモリ2に格納
されたページディリクトリ141およびページテーブル
142、およびVRAM30のリード/ライトアクセス
を制御する。
【0042】メモリ制御回路53は、ページディリクト
リ141のディレクトリエントリをリードした時、その
ディレクトリエントリのAビット(アクセスビット)、
Dビット(ダーティービット)、Pビット(プレゼント
ビット)を含む属性情報をPDE(ページディレクトリ
エントリ)用のレジスタ56にロードする。このレジス
タ56にロードされた内容は、リードアクセスされたデ
ィレクトリエントリに対するライトサイクルを実行する
必要があるか否かを判断するために利用される。
リ141のディレクトリエントリをリードした時、その
ディレクトリエントリのAビット(アクセスビット)、
Dビット(ダーティービット)、Pビット(プレゼント
ビット)を含む属性情報をPDE(ページディレクトリ
エントリ)用のレジスタ56にロードする。このレジス
タ56にロードされた内容は、リードアクセスされたデ
ィレクトリエントリに対するライトサイクルを実行する
必要があるか否かを判断するために利用される。
【0043】また、メモリ制御回路53は、ページテー
ブル142のページテーブルエントリをリードした時、
そのページテーブルエントリのAビット(アクセスビッ
ト)、Dビット(ダーティービット)、Pビット(プレ
ゼントビット)を含む属性情報をページテーブルエント
リ(PTE)用のレジスタ55にロードする。このレジ
スタ55にロードされた内容は、ページテーブルエント
リに対するライトサイクルを実行する必要があるか否か
を判断するために利用される。
ブル142のページテーブルエントリをリードした時、
そのページテーブルエントリのAビット(アクセスビッ
ト)、Dビット(ダーティービット)、Pビット(プレ
ゼントビット)を含む属性情報をページテーブルエント
リ(PTE)用のレジスタ55にロードする。このレジ
スタ55にロードされた内容は、ページテーブルエント
リに対するライトサイクルを実行する必要があるか否か
を判断するために利用される。
【0044】ページディレクトリ141は、複数のペー
ジディレクトリエントリを持つ。各ページディレクトリ
エントリは、ページテーブルアドレスおよびそのページ
テーブルについての管理情報を格納する。管理情報に
は、前述のAビット、Dビット、Pビットを初め、U/
S(ユーザ/スーパバイザビット)ビットなどが含まれ
ている。
ジディレクトリエントリを持つ。各ページディレクトリ
エントリは、ページテーブルアドレスおよびそのページ
テーブルについての管理情報を格納する。管理情報に
は、前述のAビット、Dビット、Pビットを初め、U/
S(ユーザ/スーパバイザビット)ビットなどが含まれ
ている。
【0045】Aビットは、該当するページテーブルで管
理されているページ群に使用されているページ(リード
アクセスまたはライトアクセスされたページ)があるか
否かを示す。Aビット=“1”は使用されているページ
が存在することを示し、Aビット=“0”は使用されて
いるページが存在しないことを示す。Dビットは、該当
するページテーブルで管理されているページ群にデータ
が書き替えられたページ(ライトアクセスされたペー
ジ)があるか否かを示す。Dビット=“1”は書き替え
られたページが存在することを示し、Dビット=“0”
は書き替えられたページが存在しないことを示す。Pビ
ットは、該当するページテーブルがシステムメモリ2上
に存在するか否かを示す。Pビット=“1”は該当する
ページテーブルがシステムメモリ2上に存在する事を示
し、Pビット=“0”は該当するページテーブルがシス
テムメモリ2上に存在しない事を示す。U/Sビット=
“1”は、OSとアプリケーシションプログラムの双方
が該当するページ群をアクセスできることを示し、U/
Sビット=“0”は、OSのみがアクセスできることを
示す。
理されているページ群に使用されているページ(リード
アクセスまたはライトアクセスされたページ)があるか
否かを示す。Aビット=“1”は使用されているページ
が存在することを示し、Aビット=“0”は使用されて
いるページが存在しないことを示す。Dビットは、該当
するページテーブルで管理されているページ群にデータ
が書き替えられたページ(ライトアクセスされたペー
ジ)があるか否かを示す。Dビット=“1”は書き替え
られたページが存在することを示し、Dビット=“0”
は書き替えられたページが存在しないことを示す。Pビ
ットは、該当するページテーブルがシステムメモリ2上
に存在するか否かを示す。Pビット=“1”は該当する
ページテーブルがシステムメモリ2上に存在する事を示
し、Pビット=“0”は該当するページテーブルがシス
テムメモリ2上に存在しない事を示す。U/Sビット=
“1”は、OSとアプリケーシションプログラムの双方
が該当するページ群をアクセスできることを示し、U/
Sビット=“0”は、OSのみがアクセスできることを
示す。
【0046】ページテーブル142は、複数のページテ
ーブルエントリを持つ。各ページテーブルエントリは、
対応するページの実ページアドレスおよびそのページに
ついての管理情報を格納する。管理情報には、前述のA
ビット、Dビット、Pビット、U/Sビットなども含ま
れている。Aビットは、該当するページが使用されてい
るページ(リードアクセスまたはライトアクセスされた
ページ)であるか否かを示す。
ーブルエントリを持つ。各ページテーブルエントリは、
対応するページの実ページアドレスおよびそのページに
ついての管理情報を格納する。管理情報には、前述のA
ビット、Dビット、Pビット、U/Sビットなども含ま
れている。Aビットは、該当するページが使用されてい
るページ(リードアクセスまたはライトアクセスされた
ページ)であるか否かを示す。
【0047】Aビット=“1”は使用されているページ
であることを示し、Aビット=“0”は使用されてない
ページであることを示す。Dビットは、該当するページ
のデータが書き替えられたページ(ライトアクセスされ
たページ)であるか否かを示す。Dビット=“1”は書
き替えられたページであることを示し、Dビット=
“0”は書き替えらていないページであることを示す。
Pビットは、該当するページがメモリ2上に存在するか
否かを示す。Pビット=“1”は該当するページがメモ
リ2上に存在する事を示し、Pビット=“0”は該当す
るページがメモリ2上に存在しない事を示す。U/Sビ
ット=“1”は、OSとアプリケーシションプログラム
の双方が該当するページをアクセスできることを示し、
U/Sビット=“0”は、OSのみがアクセスできるこ
とを示す。
であることを示し、Aビット=“0”は使用されてない
ページであることを示す。Dビットは、該当するページ
のデータが書き替えられたページ(ライトアクセスされ
たページ)であるか否かを示す。Dビット=“1”は書
き替えられたページであることを示し、Dビット=
“0”は書き替えらていないページであることを示す。
Pビットは、該当するページがメモリ2上に存在するか
否かを示す。Pビット=“1”は該当するページがメモ
リ2上に存在する事を示し、Pビット=“0”は該当す
るページがメモリ2上に存在しない事を示す。U/Sビ
ット=“1”は、OSとアプリケーシションプログラム
の双方が該当するページをアクセスできることを示し、
U/Sビット=“0”は、OSのみがアクセスできるこ
とを示す。
【0048】ページディレクトリエントリのAビットお
よびページテーブルエントリのAビットは、OSによっ
て定期的に“0”にリセットされる。図3、図4には、
この実施例におけるページディレクトリ141およびペ
ージテーブル142それぞれに対するライトサイクルの
実行条件が示されている。
よびページテーブルエントリのAビットは、OSによっ
て定期的に“0”にリセットされる。図3、図4には、
この実施例におけるページディレクトリ141およびペ
ージテーブル142それぞれに対するライトサイクルの
実行条件が示されている。
【0049】図示のように、ページディレクトリ141
に対しては、Aビット=“1”の時には一切のページデ
ィレクトリエントリに対するライトサイクルは実行され
ない。また、ページテーブル142に対しては、Aビッ
ト=“1”、且つDビット=“1”の時には一切のペー
ジテーブルエントリに対するライトサイクルは実行され
ない。
に対しては、Aビット=“1”の時には一切のページデ
ィレクトリエントリに対するライトサイクルは実行され
ない。また、ページテーブル142に対しては、Aビッ
ト=“1”、且つDビット=“1”の時には一切のペー
ジテーブルエントリに対するライトサイクルは実行され
ない。
【0050】次に、図5を参照して、この実施例のペー
ジングユニット133によって実行される2レベルペ−
ジングを用いたアドレス変換動作の原理を説明する。T
LB52がミスヒットした場合、メモリ制御回路53
は、ページディレクトリ141をリードアクセスする。
この場合、仮想アドレス生成回路51によって生成され
た32ビットのリニアアドレスの上位10ビット(b3
1−b22)からなるページディレクトリインデックス
は、コプロセッサ13内のレジスタにセットされたペー
ジディレクトリベースアドレスによって指定されるペー
ジディレクトリ141から特定のページディレクトリを
読み出すためのオフセットアドレスとして使用される。
このコプロセッサ13内のレジスタにセットされている
ページディレクトリベースアドレスは、CPU1のレジ
スタに保持されているページディレクトリベースアドレ
スと常に同一の値に維持されている。
ジングユニット133によって実行される2レベルペ−
ジングを用いたアドレス変換動作の原理を説明する。T
LB52がミスヒットした場合、メモリ制御回路53
は、ページディレクトリ141をリードアクセスする。
この場合、仮想アドレス生成回路51によって生成され
た32ビットのリニアアドレスの上位10ビット(b3
1−b22)からなるページディレクトリインデックス
は、コプロセッサ13内のレジスタにセットされたペー
ジディレクトリベースアドレスによって指定されるペー
ジディレクトリ141から特定のページディレクトリを
読み出すためのオフセットアドレスとして使用される。
このコプロセッサ13内のレジスタにセットされている
ページディレクトリベースアドレスは、CPU1のレジ
スタに保持されているページディレクトリベースアドレ
スと常に同一の値に維持されている。
【0051】上位10ビット(b31−b22)のアド
レスによって指定されたページディレクトリエントリに
保持されているページテーブルベースアドレスおよび属
性情報は、メモリ制御回路53によって読み取られれ
る。また、この時、属性情報は、PDEレジスタ56に
ロードされる。
レスによって指定されたページディレクトリエントリに
保持されているページテーブルベースアドレスおよび属
性情報は、メモリ制御回路53によって読み取られれ
る。また、この時、属性情報は、PDEレジスタ56に
ロードされる。
【0052】P=“1”ならば、該当するページテーブ
ル142がシステムメモリ2上に存在するので、メモリ
制御回路53は、リードしたページテーブルベースアド
レスとリニアアドレスの中位10ビット(b21−b1
2)からなるページテーブルインデックス値を用いてペ
ージテーブル142をリードアクセスすると共に、それ
に続いて、ページディレクトリエントリにAビット=1
をセットするためのライトサイクルに移行する。このラ
イトサイクルでは、その実行に先立ってレジスタ56の
Aビットが参照され、Aビット=“1”か否かが検出さ
れる。Aビット=“1”ならばライトサイクルは禁止さ
れ、Aビット=“0”の時だけライトサイクルが行われ
る。
ル142がシステムメモリ2上に存在するので、メモリ
制御回路53は、リードしたページテーブルベースアド
レスとリニアアドレスの中位10ビット(b21−b1
2)からなるページテーブルインデックス値を用いてペ
ージテーブル142をリードアクセスすると共に、それ
に続いて、ページディレクトリエントリにAビット=1
をセットするためのライトサイクルに移行する。このラ
イトサイクルでは、その実行に先立ってレジスタ56の
Aビットが参照され、Aビット=“1”か否かが検出さ
れる。Aビット=“1”ならばライトサイクルは禁止さ
れ、Aビット=“0”の時だけライトサイクルが行われ
る。
【0053】ページテーブル142のリードアクセスに
おいては、リニアアドレスの中位10ビット(A21−
A52)のアドレスは、ページテーブル142から適切
なページテーブルエントリを指定するために利用され
る。その指定されたページテーブルエントリの実ページ
フレームアドレスおよび属性情報は、メモリ制御回路5
3によって読み取られれる。また、この時に、属性情報
はレジスタ55にロードされる。
おいては、リニアアドレスの中位10ビット(A21−
A52)のアドレスは、ページテーブル142から適切
なページテーブルエントリを指定するために利用され
る。その指定されたページテーブルエントリの実ページ
フレームアドレスおよび属性情報は、メモリ制御回路5
3によって読み取られれる。また、この時に、属性情報
はレジスタ55にロードされる。
【0054】P=“1”ならば、該当するページがシス
テムメモリ2上に存在するので、メモリ制御回路53
は、Aビット,Dビットをページテーブルエントリにセ
ットするためのライトサイクルに移行する。
テムメモリ2上に存在するので、メモリ制御回路53
は、Aビット,Dビットをページテーブルエントリにセ
ットするためのライトサイクルに移行する。
【0055】このライトサイクルでは、その実行に先立
ってレジスタ55のAビット、Dビットが参照され、A
ビット=“1”か否か、Dビット=“1”か否かが検出
される。Aビット=“1”、且つDビット=“1”であ
れば、ライトサイクルの実行は禁止され、AビットとD
ビットのいずれかが“0”の場合には、Aビット、Dビ
ットの必要な更新のために、ライトサイクルが実行され
る。この場合、Dビット=“1”のセットは、該当する
ページにライトアクセスを行う場合に行われる。この
後、メモリ制御回路は、TLB52に実ページアドレス
を登録する。
ってレジスタ55のAビット、Dビットが参照され、A
ビット=“1”か否か、Dビット=“1”か否かが検出
される。Aビット=“1”、且つDビット=“1”であ
れば、ライトサイクルの実行は禁止され、AビットとD
ビットのいずれかが“0”の場合には、Aビット、Dビ
ットの必要な更新のために、ライトサイクルが実行され
る。この場合、Dビット=“1”のセットは、該当する
ページにライトアクセスを行う場合に行われる。この
後、メモリ制御回路は、TLB52に実ページアドレス
を登録する。
【0056】一方、ページディレクトリエントリとペー
ジテーブルエントリのいずれかのPビットが“0”の場
合は、ページフォールトとなり、所定のページが2次記
憶などからシステムメモリ2に転送される。
ジテーブルエントリのいずれかのPビットが“0”の場
合は、ページフォールトとなり、所定のページが2次記
憶などからシステムメモリ2に転送される。
【0057】この場合、Pビット=“1”で、且つAビ
ット=“0”のページが探され、そこに新たなページが
ロードされる。使用頻度の高いページは、OSによって
Aビットがリセットされても、その後直ぐに前述のライ
トサイクルによって“1”にセットされる。このため、
使用頻度の高いページは置き換えの対象とはならず、使
用頻度の低いページだけが新ページに置き換えられる。
ット=“0”のページが探され、そこに新たなページが
ロードされる。使用頻度の高いページは、OSによって
Aビットがリセットされても、その後直ぐに前述のライ
トサイクルによって“1”にセットされる。このため、
使用頻度の高いページは置き換えの対象とはならず、使
用頻度の低いページだけが新ページに置き換えられる。
【0058】このように、この実施例のページングユニ
ットにおいては、リードしたページディレクトリ/テー
ブルエントリのAビットなどの管理情報をレジスタ5
5,56に保持しておき、それを参照することにより管
理情報更新のためのライトサイクルの実行を行うか否か
を決定している。したがって、不必要なAビットセット
のためのメモリライトサイクルの発生が防止され、メモ
リライトサイクルの実行回数を低減できる。
ットにおいては、リードしたページディレクトリ/テー
ブルエントリのAビットなどの管理情報をレジスタ5
5,56に保持しておき、それを参照することにより管
理情報更新のためのライトサイクルの実行を行うか否か
を決定している。したがって、不必要なAビットセット
のためのメモリライトサイクルの発生が防止され、メモ
リライトサイクルの実行回数を低減できる。
【0059】次に、図6および図7のフローチャートを
参照して、この実施例のページングユニット133によ
って実行されるアドレス変換動作全体の手順を詳細に説
明する。
参照して、この実施例のページングユニット133によ
って実行されるアドレス変換動作全体の手順を詳細に説
明する。
【0060】まず、仮想アドレス生成回路51によって
生成されたリニアアドレスが実アドレスであるか否か、
すなわちページングユニット133のページング機能を
実行するか否かを決定する(ステップS100)。リニ
アアドレスが実アドレスであれば、ステップS270に
進み、そこで、リニアアドレスがコプロセッサ13のア
ドレスレジスタ(以下、CPADと称する)にロードさ
れる。
生成されたリニアアドレスが実アドレスであるか否か、
すなわちページングユニット133のページング機能を
実行するか否かを決定する(ステップS100)。リニ
アアドレスが実アドレスであれば、ステップS270に
進み、そこで、リニアアドレスがコプロセッサ13のア
ドレスレジスタ(以下、CPADと称する)にロードさ
れる。
【0061】リニアアドレスが実アドレスでなければ、
ステップS110に進み、そこで、TLB52内の参照
されるリニアアドレスタグに対応したバリッドビットが
“1”か否かが調べられ、バリッドビットが“1”であ
れば、ステップS120に進む。
ステップS110に進み、そこで、TLB52内の参照
されるリニアアドレスタグに対応したバリッドビットが
“1”か否かが調べられ、バリッドビットが“1”であ
れば、ステップS120に進む。
【0062】ステップ120では、TLB52から読み
出されるリニアアドレスタグと発生されたリニアアドレ
スの上位ビット(b31−b12)が比較される。それ
らが一致した場合、つまりTLBヒットならば、ステッ
プS280に進む。ステップS280では、TLB52
から読み出される実ページアドレスに、発生されたリニ
アアドレスの下位12ビット(b11−b0)のオフセ
ット値が加算されて実アドレスが生成され、その実アド
レスがCPADにロードされる。
出されるリニアアドレスタグと発生されたリニアアドレ
スの上位ビット(b31−b12)が比較される。それ
らが一致した場合、つまりTLBヒットならば、ステッ
プS280に進む。ステップS280では、TLB52
から読み出される実ページアドレスに、発生されたリニ
アアドレスの下位12ビット(b11−b0)のオフセ
ット値が加算されて実アドレスが生成され、その実アド
レスがCPADにロードされる。
【0063】一方、TLB52から読み出されるリニア
アドレスタグと発生されたリニアアドレスの上位ビット
(b31−b12)が不一致であるか、あるいはバリッ
ドビットが“0”ならば、TLBミスヒットとなり、ス
テップS130に進む。ステップS130では、アドレ
ス変換のためにページディレクトリ141とページテー
ブル142のどちらを使用するサイクルであるかを示す
変換サイクル番号の値(以降、TRCYCと称する)が
クリアされ、初期化される。次いで、ステップS140
に進む。
アドレスタグと発生されたリニアアドレスの上位ビット
(b31−b12)が不一致であるか、あるいはバリッ
ドビットが“0”ならば、TLBミスヒットとなり、ス
テップS130に進む。ステップS130では、アドレ
ス変換のためにページディレクトリ141とページテー
ブル142のどちらを使用するサイクルであるかを示す
変換サイクル番号の値(以降、TRCYCと称する)が
クリアされ、初期化される。次いで、ステップS140
に進む。
【0064】ステップS140では、TRCYCの値が
参照され、その値に応じてページディレクトリ141ま
たはページテーブル142がリードアクセスされる(T
RCYC=“0”ならばページディレクトリ141、T
RCYC=“1”ならばページテーブル142)。この
時、ページディレクトリ141からPDEレジスタ5
6、またはページテーブル142からPTEレジスタ5
5に、リードアクセスされたエントリに保持されている
属性情報がロードされる。
参照され、その値に応じてページディレクトリ141ま
たはページテーブル142がリードアクセスされる(T
RCYC=“0”ならばページディレクトリ141、T
RCYC=“1”ならばページテーブル142)。この
時、ページディレクトリ141からPDEレジスタ5
6、またはページテーブル142からPTEレジスタ5
5に、リードアクセスされたエントリに保持されている
属性情報がロードされる。
【0065】この後、ステップS150に進み、そこ
で、ページディレクトリエントリまたはページテーブル
エントリからリードしたPビットが“1”か否かが調べ
られる。Pビット=“0”ならば、ページ不存在割り込
みが発生されてページフォルトとなり、処理が終了す
る。Pビット=“1”ならば、ステップS160に進
む。
で、ページディレクトリエントリまたはページテーブル
エントリからリードしたPビットが“1”か否かが調べ
られる。Pビット=“0”ならば、ページ不存在割り込
みが発生されてページフォルトとなり、処理が終了す
る。Pビット=“1”ならば、ステップS160に進
む。
【0066】ステップ160では、ページディレクトリ
エントリまたはページテーブルエントリからリードした
U/Sビットが“1”か否かが調べられる。U/Sビッ
トが“0”であれば、ステップS170に進み、そのペ
ージに対応するユーザのアクセスが特権レベルなどの機
構によって特別に許可されているか否かが調べられる。
ユーザのアクセスが許可されてないならば、ステップS
300に進み、保護違反割り込みが発生される。
エントリまたはページテーブルエントリからリードした
U/Sビットが“1”か否かが調べられる。U/Sビッ
トが“0”であれば、ステップS170に進み、そのペ
ージに対応するユーザのアクセスが特権レベルなどの機
構によって特別に許可されているか否かが調べられる。
ユーザのアクセスが許可されてないならば、ステップS
300に進み、保護違反割り込みが発生される。
【0067】U/Sビットが“1”であれば、ステップ
S180に進む。ステップS180では、その時のTR
CYCが“1”であるか否かが決定される。TRCYC
が“0”であればステップS190に進み、そこで、P
DEレジスタ56にロードされているAビットが“1”
であるか否かが調べられる。Aビットが“1”であるこ
とが検出された時は、リードアクセスされたページディ
レクトリエントリに対するメモリライトサイクルは発生
されずに、ステップS240に進む。一方、Aビットが
“0”であれば、ステップS230に進み、そこで、リ
ードアクセスされたページディレクトリエントリに対す
るメモリライトサイクルが発生されて、システムメモリ
2上のページディレクトリエントリのAビットが“1”
に設定されると共に、PDEレジスタ56のAビットも
“1”に設定される。そして、この後、ステップS24
0にて、TRCYCの値が“1”に変更される。
S180に進む。ステップS180では、その時のTR
CYCが“1”であるか否かが決定される。TRCYC
が“0”であればステップS190に進み、そこで、P
DEレジスタ56にロードされているAビットが“1”
であるか否かが調べられる。Aビットが“1”であるこ
とが検出された時は、リードアクセスされたページディ
レクトリエントリに対するメモリライトサイクルは発生
されずに、ステップS240に進む。一方、Aビットが
“0”であれば、ステップS230に進み、そこで、リ
ードアクセスされたページディレクトリエントリに対す
るメモリライトサイクルが発生されて、システムメモリ
2上のページディレクトリエントリのAビットが“1”
に設定されると共に、PDEレジスタ56のAビットも
“1”に設定される。そして、この後、ステップS24
0にて、TRCYCの値が“1”に変更される。
【0068】一方、ステップS180にてTRCYCが
“1”であることが検出された場合は、ステップS20
0に進み、そこで、PTEレジスタ55にロードされて
いるAビットが“1”であるか否かが調べられる。Aビ
ットが“1”であれば、ステップS210にて、PTE
レジスタ55にロードされているDビットが“1”であ
るか否かが調べられる。ステップS210にてDビット
が“1”であることが検出されると、リードアクセスさ
れたページテーブルエントリに対するメモリライトサイ
クルは発生されずに、ステップS240に進む。
“1”であることが検出された場合は、ステップS20
0に進み、そこで、PTEレジスタ55にロードされて
いるAビットが“1”であるか否かが調べられる。Aビ
ットが“1”であれば、ステップS210にて、PTE
レジスタ55にロードされているDビットが“1”であ
るか否かが調べられる。ステップS210にてDビット
が“1”であることが検出されると、リードアクセスさ
れたページテーブルエントリに対するメモリライトサイ
クルは発生されずに、ステップS240に進む。
【0069】一方、PTEレジスタ55にロードされて
いるAビットとDビットの少なくとも一方が“0”なら
ば、リードアクセスされたページテーブルエントリに対
するメモリライトサイクルが発生されて、システムメモ
リ2上のページテーブルエントリのAビットおよびDビ
ットが共に“1”に設定されると共に、PTEレジスタ
55のAビットおよびDビットも共に“1”に設定され
る。そして、この後、ステップS240にて、TRCY
Cの値が“0”に変更される。
いるAビットとDビットの少なくとも一方が“0”なら
ば、リードアクセスされたページテーブルエントリに対
するメモリライトサイクルが発生されて、システムメモ
リ2上のページテーブルエントリのAビットおよびDビ
ットが共に“1”に設定されると共に、PTEレジスタ
55のAビットおよびDビットも共に“1”に設定され
る。そして、この後、ステップS240にて、TRCY
Cの値が“0”に変更される。
【0070】次に、ステップS250に進み、その時の
TRCYCの値が“1”か否かが調べられ、TRCYC
の値が“1”であればステップS140の処理に戻り、
TRCYCの値が“0”であればステップS260に進
む。ステップS260では、コプロセッサ13によるV
RAM30の該当するページに対するリード/ライトア
クセスが実行される。
TRCYCの値が“1”か否かが調べられ、TRCYC
の値が“1”であればステップS140の処理に戻り、
TRCYCの値が“0”であればステップS260に進
む。ステップS260では、コプロセッサ13によるV
RAM30の該当するページに対するリード/ライトア
クセスが実行される。
【0071】次に、図8および図9を参照して、コプロ
セッサ13によって実行される描画演算動作を説明す
る。図8には、図1のフラットパネルディスプレイ40
の画面(1024×768画素)上に表示されている矩
形領域1内の表示データを矩形領域2の位置に転送する
様子が示されている。
セッサ13によって実行される描画演算動作を説明す
る。図8には、図1のフラットパネルディスプレイ40
の画面(1024×768画素)上に表示されている矩
形領域1内の表示データを矩形領域2の位置に転送する
様子が示されている。
【0072】この表示画面の先頭の2次元座標(0,
0)に対応するVRAM30の記憶位置を示すリニアア
ドレスの値は、FD800000hに設定されている。
フラットパネルディスプレイ40上の1画素は、VRA
M30の8ビットデータから構成されている。矩形領域
1から矩形領域2へのデータ転送は、コプロセッサ13
によるBitブロック転送(以下、BLTと称する)に
よって実行される。このBLT転送では、矩形領域1の
表示内容は、矩形領域2の位置にコピーされる。矩形領
域1の表示座標は(160,128)〜(412,25
6)であり、矩形領域2の表示座標は(512,38
4)〜(768,512)である。
0)に対応するVRAM30の記憶位置を示すリニアア
ドレスの値は、FD800000hに設定されている。
フラットパネルディスプレイ40上の1画素は、VRA
M30の8ビットデータから構成されている。矩形領域
1から矩形領域2へのデータ転送は、コプロセッサ13
によるBitブロック転送(以下、BLTと称する)に
よって実行される。このBLT転送では、矩形領域1の
表示内容は、矩形領域2の位置にコピーされる。矩形領
域1の表示座標は(160,128)〜(412,25
6)であり、矩形領域2の表示座標は(512,38
4)〜(768,512)である。
【0073】図9には、矩形領域1に対応するリニアア
ドレス(FD860220〜FD87FEE0)と、そ
のリニアアドレスとの比較結果に対応するTLBヒット
/ミスヒットとの関係が示されている。
ドレス(FD860220〜FD87FEE0)と、そ
のリニアアドレスとの比較結果に対応するTLBヒット
/ミスヒットとの関係が示されている。
【0074】以下、BLT転送動作を説明する。ここで
は、簡単のために、コプロセッサ13のBLT転送動作
の間、OSによるページディレクトリエントリおよびペ
ージテーブルエントリのAビットおよびDビットのリセ
ットは発生されない場合を想定する。
は、簡単のために、コプロセッサ13のBLT転送動作
の間、OSによるページディレクトリエントリおよびペ
ージテーブルエントリのAビットおよびDビットのリセ
ットは発生されない場合を想定する。
【0075】このBLT転送においては、図9から分か
るように、1024個のリニアアドレスがそれぞれVR
AM30上の矩形領域1の物理アドレスに変換される。
この仮想アドレス変換処理の実行回数は、矩形領域のサ
イズとBLT転送のデータ転送幅とによって決定される
ものである。矩形領域1に対応するアドレス変換処理に
おいては、TLBミスヒットが32回発生する。
るように、1024個のリニアアドレスがそれぞれVR
AM30上の矩形領域1の物理アドレスに変換される。
この仮想アドレス変換処理の実行回数は、矩形領域のサ
イズとBLT転送のデータ転送幅とによって決定される
ものである。矩形領域1に対応するアドレス変換処理に
おいては、TLBミスヒットが32回発生する。
【0076】TLBミスヒットが発生すると、ページン
グユニット133は、2レベルページング機能を利用し
た仮想アドレス変換を実行すると共に、新たな実ページ
アドレス(ページフレームベースアドレス)とリニアア
アドレスタグとをTLB52のエントリにロードする。
グユニット133は、2レベルページング機能を利用し
た仮想アドレス変換を実行すると共に、新たな実ページ
アドレス(ページフレームベースアドレス)とリニアア
アドレスタグとをTLB52のエントリにロードする。
【0077】TLBヒットの場合は、2レベルページン
グ機能は実行されないので、仮想アドレス変換は1メモ
リクロックで実行できる。メモリクロックが50MHz
であるとすると、仮想アドレス変換の時間は20nsと
なる。TLBミスヒットの場合は、仮想アドレス変換の
ために34メモリクロック(=680ns)要する。す
なわち、ページディレクトリリードに12メモリクロッ
ク、ページディレクトリライトに5メモリクロック、ペ
ージテーブルリードに12メモリクロック、ページテー
ブルライトに5メモリクロック必要とされる。したがっ
て、通常のBLT転送では、仮想アドレス変換に要する
時間は、1×992+34×32=2080メモリクロ
ック(=41.6μs)となる。
グ機能は実行されないので、仮想アドレス変換は1メモ
リクロックで実行できる。メモリクロックが50MHz
であるとすると、仮想アドレス変換の時間は20nsと
なる。TLBミスヒットの場合は、仮想アドレス変換の
ために34メモリクロック(=680ns)要する。す
なわち、ページディレクトリリードに12メモリクロッ
ク、ページディレクトリライトに5メモリクロック、ペ
ージテーブルリードに12メモリクロック、ページテー
ブルライトに5メモリクロック必要とされる。したがっ
て、通常のBLT転送では、仮想アドレス変換に要する
時間は、1×992+34×32=2080メモリクロ
ック(=41.6μs)となる。
【0078】しかしながら、この実施例におけるコプロ
セッサ13においては、ページディレクトリエントリの
Aビットが“1”の時は、ページディレクトリエントリ
に対するメモリライトサイクルの発生は禁止される。ま
た、ページテーブルエントリのAビットおよびDビット
が共に“1”の時においても、ページディレクトリエン
トリに対する一切のメモリライトサイクルの発生は禁止
される。よって、TLBミスヒットが発生される度に、
ページディレクトリエントリとページテーブルエントリ
に対するメモリライトサイクルがそれぞれ禁止される。
なぜなら、矩形領域1の表示データは既に画面表示され
ているものであるので、矩形領域1の表示データをVR
AM30に書き込む時に、対応するページディレクトリ
エントリとページテーブルエントリは既にリード/ライ
トアクセスされているためである。よって、Aビットお
よびDビットは共に“1”である。
セッサ13においては、ページディレクトリエントリの
Aビットが“1”の時は、ページディレクトリエントリ
に対するメモリライトサイクルの発生は禁止される。ま
た、ページテーブルエントリのAビットおよびDビット
が共に“1”の時においても、ページディレクトリエン
トリに対する一切のメモリライトサイクルの発生は禁止
される。よって、TLBミスヒットが発生される度に、
ページディレクトリエントリとページテーブルエントリ
に対するメモリライトサイクルがそれぞれ禁止される。
なぜなら、矩形領域1の表示データは既に画面表示され
ているものであるので、矩形領域1の表示データをVR
AM30に書き込む時に、対応するページディレクトリ
エントリとページテーブルエントリは既にリード/ライ
トアクセスされているためである。よって、Aビットお
よびDビットは共に“1”である。
【0079】したがって、この発明においては、BLT
転送における仮想アドレス変換に要する時間は、1×9
92+24×32=1760メモリクロック(=35.
2μs)で済む。通常のBLT転送と比較して、約1
6.4%の時間短縮を実現できる。矩形領域2の仮想ア
ドレス変換についても同様にして実行される。
転送における仮想アドレス変換に要する時間は、1×9
92+24×32=1760メモリクロック(=35.
2μs)で済む。通常のBLT転送と比較して、約1
6.4%の時間短縮を実現できる。矩形領域2の仮想ア
ドレス変換についても同様にして実行される。
【0080】なお、ここでは、2レベルページングにつ
いてのみ説明したが、1レベルのページングにおいても
同様にしてリードサイクルにおいて読み取ったAビット
などの情報を参照してメモリライトサイクルの必要性を
判断することにより、メモリライトサイクルの実行回数
を低減することができる。
いてのみ説明したが、1レベルのページングにおいても
同様にしてリードサイクルにおいて読み取ったAビット
などの情報を参照してメモリライトサイクルの必要性を
判断することにより、メモリライトサイクルの実行回数
を低減することができる。
【0081】
【発明の効果】以上のように、このこの発明によれば、
ページディレクトリ/テーブルエントリをリードした時
にAビットをレジスタにセットし、Aビットを参照して
ライトサイクルの実行が必要か否かを決定している。こ
のため、不必要な参照ビットセットのためのメモリライ
トサイクルの発生が防止され、メモリライトサイクルの
実行回数を低減する事ができる。
ページディレクトリ/テーブルエントリをリードした時
にAビットをレジスタにセットし、Aビットを参照して
ライトサイクルの実行が必要か否かを決定している。こ
のため、不必要な参照ビットセットのためのメモリライ
トサイクルの発生が防止され、メモリライトサイクルの
実行回数を低減する事ができる。
【図1】この発明の一実施例に係わるディスプレイコン
トローラの構成を示すブロック図。
トローラの構成を示すブロック図。
【図2】図1のディスプレイコントローラのコプロセッ
サ内に設けられたページングユニットの構成を示すブロ
ック図。
サ内に設けられたページングユニットの構成を示すブロ
ック図。
【図3】図2のページングユニットによるページディレ
クトリのライトサイクルの実行条件を示す図。
クトリのライトサイクルの実行条件を示す図。
【図4】図2のページングユニットによるページテーブ
ルのライトサイクルの実行条件を示す図。
ルのライトサイクルの実行条件を示す図。
【図5】図2のページングユニットによるアドレス変換
動作の原理を説明するための図。
動作の原理を説明するための図。
【図6】図2のページングユニットによって実行される
アドレス変換処理の手順の一部を説明するフローチャー
ト。
アドレス変換処理の手順の一部を説明するフローチャー
ト。
【図7】図2のページングユニットによって実行される
アドレス変換処理の手順の残り一部を説明するフローチ
ャート。
アドレス変換処理の手順の残り一部を説明するフローチ
ャート。
【図8】図1のディスプレイコントローラのコプロセッ
サによって実行されるBLT転送の一例を説明するため
の図。
サによって実行されるBLT転送の一例を説明するため
の図。
【図9】図8のBLT転送の転送元矩形領域を指定する
リニアアドレスの値とTLBヒット/ミスヒットとの関
係を示す図。
リニアアドレスの値とTLBヒット/ミスヒットとの関
係を示す図。
1…CPU、2…システムメモリ、10…ディスプレイ
コントローラ、13…コプロセッサ、30…VRAM、
51…仮想アドレス生成回路、52…TLB、53…メ
モリ制御回路、55…PTEレジスタ、56…PDEレ
ジスタ、133…ページングユニット、141…ページ
ディレクトリ、142…ページテーブル。
コントローラ、13…コプロセッサ、30…VRAM、
51…仮想アドレス生成回路、52…TLB、53…メ
モリ制御回路、55…PTEレジスタ、56…PDEレ
ジスタ、133…ページングユニット、141…ページ
ディレクトリ、142…ページテーブル。
Claims (21)
- 【請求項1】 ページングによって仮想アドレスを実ア
ドレスに変換するページング装置において、 複数のページテーブルエントリを有し、ページテーブル
エントリ毎に対応するページの実ページアドレスおよび
そのページの使用の有無を示す参照ビットを保持するペ
ージテーブルと、 前記仮想アドレスの上位ビット部によって指定される前
記ページテーブルのページテーブルエントリをリードす
るページテーブルリード手段と、 前記リードしたページテーブルエントリに含まれる実ペ
ージアドレスと前記仮想アドレスの下位ビット部とから
前記仮想アドレスに対応する実アドレスを生成する手段
と、 前記リードしたページテーブルエントリに含まれる前記
参照ビットを参照し、前記参照ビットが前記ページの未
使用を示す時前記リードしたページテーブルエントリに
ページ使用を示す参照ビットをライトする手段とを具備
することを特徴とするページング装置。 - 【請求項2】 前記ページテーブルリード手段は、前記
リードしたページテーブルのページテーブルエントリに
保持されている前記参照ビットをレジスタにセットする
手段を含み、 前記ライト手段は、前記リードしたページテーブルエン
トリにページ使用を示す参照ビットをライトするための
メモリライトサイクルを実行する手段と、前記レジスタ
の参照ビットを参照して前記参照ビットが前記ページの
未使用を示する否かを決定し、前記参照ビットがページ
の使用を示す時、前記参照ビットをセットするためのメ
モリライトサイクルの実行を禁止する手段とを含むこと
を特徴とする請求項1記載のページング装置。 - 【請求項3】 2レベルページングによッて仮想アドレ
スを実アドレスに変換するページング装置において、 複数のページテーブルエントリを有し、ページテーブル
エントリ毎に対応するページの実ページアドレスおよび
そのページの使用の有無を示す参照ビットを保持するペ
ージテーブルと、 複数のページディレクトリエントリを有し、ページディ
レクトリエントリ毎にページテーブルを参照するための
ページテーブルアドレスおよびそのページテーブルによ
って管理されているページ群の使用の有無を示す参照ビ
ットを保持するページディレクトリと、 前記仮想アドレスの上位ビット部によって指定されるペ
ージディレクトリのページディレクトリエントリをリー
ドし、そのリードしたページディレクトリエントリに保
持されている前記参照ビットを第1レジスタにセットす
るディレクトリリード手段と、 前記第1レジスタにセットされているアクセスビットを
参照し、前記参照ビットがページ群未使用を示す時前記
リードしたページディレクトリエントリにページ群使用
を示すアクセスビットをライトするディレクトリライト
手段と、 前記リードしたページディレクトリエントリのページテ
ーブルアドレスおよび前記仮想アドレスの中位ビット部
によって指定される前記ページテーブルのページテーブ
ルエントリをリードし、そのリードしたページディレク
トリエントリに保持されている前記参照ビットを第2レ
ジスタにセットするページテーブルリード手段と、 前記リードしたページテーブルエントリに含まれる実ペ
ージアドレスと前記仮想アドレスの下位ビット部とから
前記仮想アドレスに対応する実アドレスを生成する手段
と、 前記第2レジスタにセットされている参照ビットを参照
し、前記参照ビットがページ未使用を示す時前記リード
したページテーブルエントリにページ使用を示す参照ビ
ットをライトするページテーブルライト手段とを具備す
ることを特徴とするページング装置。 - 【請求項4】 2レベルページングによって仮想アドレ
スを実アドレスに変換するページング装置において、 複数のページテーブルエントリを有し、ページテーブル
エントリ毎に対応するページの実ページアドレス、その
ページのアクセスの有無を示すアクセスビット、および
そのページのデータ更新の有無を示すダーティービット
を保持するページテーブルと、 複数のページディレクトリエントリを有し、ページディ
レクトリエントリ毎にページテーブルを参照するための
ページテーブルアドレス、およびそのページテーブルに
よって管理されているページ群のアクセスの有無を示す
アクセスビットを保持するページディレクトリと、 前記仮想アドレスの上位ビット部によって指定されるペ
ージディレクトリのページディレクトリエントリをリー
ドし、そのリードしたページディレクトリエントリに保
持されている前記アクセスビットを第1レジスタにセッ
トするディレクトリリード手段と、 前記第1レジスタにセットされているアクセスビットを
参照し、前記アクセスビットがページの未アクセスを示
す時前記リードしたディレクトリエントリにページアク
セスを示すアクセスビットをライトするディレクトリラ
イト手段と、 前記リードしたページディレクトリエントリのページテ
ーブルアドレスおよび前記仮想アドレスの中位ビット部
によって指定される前記ページテーブルのページテーブ
ルエントリをリードし、そのリードしたページディレク
トリエントリに保持されている前記アクセスビットおよ
びダーティービットを第2レジスタにセットするページ
テーブルリード手段と、 前記リードしたページテーブルエントリに含まれる実ペ
ージアドレスと前記仮想アドレスの下位ビット部とから
前記仮想アドレスに対応する実アドレスを生成する手段
と、 前記第2レジスタにセットされているアクセスビットお
よびダーティービットを参照し、前記アクセスビットが
未アクセスを示し、且つ前記ダーティービットがデータ
未更新を示す時、前記リードしたページテーブルエント
リにページアクセスを示すアクセスビットおよびデータ
更新を示すダーティービットをライトするページテーブ
ルライト手段とを具備することを特徴とするページング
装置。 - 【請求項5】 CPUと、このCPUによって処理され
る命令およびデータを格納するシステムメモリと、表示
データを格納するビデオメモリと、ディスプレイモニタ
を制御し、前記ビデオメモリの表示データをディスプレ
イモニタに表示するディスプレイコントローラと、前記
CPUと前記システムメモリと前記ディスプレイコント
ローラとの間でデータを授受する通信手段とを含み、前
記システムメモリと前記ビデオメモリの各々が前記CP
Uおよび前記ディスプレイコントローラそれぞれの2レ
ベルページング機能によってリード/ライトアクセスさ
れるように構成されたコンピュータシステムにおけるデ
ィスプレイコントローラにおいて、 データ保持手段と、 前記ビデオメモリに対するアクセス要求が発行された
時、前記ビデオメモリが配置されているメモリアドレス
空間を示すリニアアドレスを発生する手段と、 ページディレクトリベースアドレスの値と前記リニアア
ドレスに含まれるページディスレクトリインデックスの
値とに基づいて、前記システムメモリ上のページディレ
クトリに含まれる所定のページディレクトリエントリを
リードアクセスするメモリアクセス手段と、 前記ページディレクトリエントリがリードアクセスされ
た時、そのアクセスされたページディレクトリエントリ
内の履歴情報を前記データ保持手段にロードするローデ
ィング手段と、 前記データ保持手段にロードされた前記履歴情報内の所
定ビットが、該当するページが既にアクセスされたこと
を示しているか否かを決定する手段と、 該当するページが既にアクセスされたことを示す時、前
記リードアクセスされたページディレクトリエントリの
属性情報を所定値にセットするために行われる前記ペー
ジディレクトリエントリに対するライトアクセスを、禁
止する禁止手段と、 前記ページディレクトリエントリからリードしたアドレ
スによって指定される前記システムメモリ上のページテ
ーブルエントリのページフレームアドレスと前記リニア
アドレスのオフセット値とに基づいて、前記ビデオメモ
リをリード/ライトアクセスする手段とを具備すること
を特徴とするディスプレイコントローラ。 - 【請求項6】 前記ローディング手段は、前記ページデ
ィレクトリエントリの属性情報に含まれるアクセスビッ
トを前記データ保持手段にロードすることを特徴とする
請求項5記載のディスプレイコントローラ。 - 【請求項7】 前記ページディレクトリエントリはペー
ジテーブルベースアドレスを含み、 前記メモリアクセス手段は、リードアクセスされたペー
ジディレクトリエントリのページテーブルベースアドレ
スと前記リニアアドレスのページテーブルインデックス
の値とに基づいて、前記システムメモリ上のページテー
ブルに含まれる所定のページテーブルエントリをリード
アクセスする手段を含むことを特徴とする請求項5記載
のディスプレイコントローラ。 - 【請求項8】 前記ローディング手段は、前記ページテ
ーブルエントリがリードアクセスされた時、そのアクセ
スされたページテーブルエントリ内の属性情報を前記デ
ータ保持手段にロードする手段を含むことを特徴とする
請求項7記載のディスプレイコントローラ。 - 【請求項9】 前記ローディング手段は、前記ページテ
ーブルエントリの属性情報の含まれるアクセスビットお
よびダーティービットを前記データ保持手段にロードす
ることを特徴とする請求項8記載のディスプレイコント
ローラ。 - 【請求項10】 前記禁止手段は、前記ロードされた属
性情報に基づいて、前記リードアクセスされた前記シス
テムメモリ上のページテーブルエントリに対するライト
サイクルの発生を禁止する手段を含むことを特徴とする
請求項9記載のディスプレイコントローラ。 - 【請求項11】 前記禁止手段は、前記リードアクセス
されたページテーブルエントリの属性情報を所定値にセ
ットするために行われる前記ページテーブルエントリに
対するライトアクセスを禁止する手段を含むことを特徴
とする請求項10記載のディスプレイコントローラ。 - 【請求項12】 前記禁止手段は、前記アクセスビット
が、該当するページが既にアクセスされたことを示し、
前記ダーティービットが、該当するページが既に更新さ
れていることを示す時、前記リードアクセスされたペー
ジテーブルエントリの属性情報を所定値にセットするた
めの前記ページテーブルエントリに対するライトアクセ
スを、禁止する手段を含むことを特徴とする請求項11
記載のディスプレイコントローラ。 - 【請求項13】 前記ページディレクトリが前記ディス
プレイコントローラによってリードアクセスされたか否
かを示すページ変換サイクル番号を格納するレジスタを
さらに含むことを特徴とする請求項5記載のディスプレ
イコントローラ。 - 【請求項14】 前記ページディレクトリがリードアク
セスされた後、前記レジスタのページ変換サイクル番号
に所定値を加算する手段をさらに含むことを特徴とする
請求項13記載のディスプレイコントローラ。 - 【請求項15】 ページディレクトリをアクセスするた
めのページディレクトリベースアドレスを格納する第2
レジスタをさらに含むことを特徴とする請求項5記載の
ディスプレイコントローラ。 - 【請求項16】 前記CPUは、ページディレクトリを
アクセスするためのページディレクトリベースアドレス
を格納する第3レジスタを含み、 前記ディスプレイコントローラの第2レジスタは、前記
CPUの第3レジスタと同一の値を保持することを特徴
とする請求項15記載のディスプレイコントローラ。 - 【請求項17】 前記リニアアドレスから物理アドレス
への変換処理を短縮するためのショートカット手段をさ
らに含むことを特徴とする請求項5記載のディスプレイ
コントローラ。 - 【請求項18】 前記ショートカット手段は、前記発生
されたリニアアドレスの上位ビット部と比較するための
実ページアドレスに対応したリニアアドレスタグを保持
し、前記リニアアドレスタグが前記リニアアドレスの上
位ビット部と一致した時、前記リニアアドレスタグに対
応する実ページアドレスを出力することを特徴とする請
求項17記載のディスプレイコントローラ。 - 【請求項19】 前記リニアアドレスタグが前記リニア
アドレスの上位ビット部と一致しない時、前記2レベル
ページング機能を実行する手段をさらに含むことを特徴
とする請求項18記載のディスプレイコントローラ。 - 【請求項20】 該当するページが前記システムメモリ
上に存在するか否かを示す前記リードアクセスされたペ
ージディレクトリエントリ内のプレゼントビットが所定
の値か否かを決定し、そのプレゼントビットが所定の値
で無い時、そのページのリードアクセスが行われないよ
うにページ不存在割り込み信号を発生する手段をさらに
含むことを特徴とする請求項5記載のディスプレイコン
トローラ。 - 【請求項21】 該当するページがアクセス可能か否か
を示す前記リードアクセスされたページディレクトリエ
ントリ内のユーザ/スーパバイザビットが所定の値か否
かを決定し、そのユーザ/スーパバイザビットが所定の
値で無い時、そのページのリードアクセスが行われない
ように保護違反割り込み信号を発生する手段をさらに含
むことを特徴とする請求項5記載のディスプレイコント
ローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6269409A JPH07234821A (ja) | 1993-12-27 | 1994-11-02 | ページング装置およびディスプレイコントローラ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33287993 | 1993-12-27 | ||
JP5-332879 | 1993-12-27 | ||
JP6269409A JPH07234821A (ja) | 1993-12-27 | 1994-11-02 | ページング装置およびディスプレイコントローラ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07234821A true JPH07234821A (ja) | 1995-09-05 |
Family
ID=26548758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6269409A Pending JPH07234821A (ja) | 1993-12-27 | 1994-11-02 | ページング装置およびディスプレイコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07234821A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252983A (ja) * | 2003-02-18 | 2004-09-09 | Microsoft Corp | コプロセッサの性能を強化するシステムおよび方法 |
JP2004272894A (ja) * | 2003-02-18 | 2004-09-30 | Microsoft Corp | グラフィックス処理ユニットのマルチスレッド式カーネル |
KR100988395B1 (ko) * | 2003-02-18 | 2010-10-18 | 마이크로소프트 코포레이션 | 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체 |
JP4814786B2 (ja) * | 2003-03-25 | 2011-11-16 | フリースケール セミコンダクター インコーポレイテッド | データ処理システムにおけるメモリ管理 |
-
1994
- 1994-11-02 JP JP6269409A patent/JPH07234821A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004252983A (ja) * | 2003-02-18 | 2004-09-09 | Microsoft Corp | コプロセッサの性能を強化するシステムおよび方法 |
JP2004272894A (ja) * | 2003-02-18 | 2004-09-30 | Microsoft Corp | グラフィックス処理ユニットのマルチスレッド式カーネル |
JP2010020803A (ja) * | 2003-02-18 | 2010-01-28 | Microsoft Corp | コプロセッサの性能を強化するシステムおよび方法 |
US7673304B2 (en) | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
KR100988395B1 (ko) * | 2003-02-18 | 2010-10-18 | 마이크로소프트 코포레이션 | 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체 |
JP2010287254A (ja) * | 2003-02-18 | 2010-12-24 | Microsoft Corp | タスクのスケジューリングを支援する装置 |
US8671411B2 (en) | 2003-02-18 | 2014-03-11 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US9298498B2 (en) | 2003-02-18 | 2016-03-29 | Microsoft Technology Licensing, Llc | Building a run list for a coprocessor based on rules when the coprocessor switches from one context to another context |
JP4814786B2 (ja) * | 2003-03-25 | 2011-11-16 | フリースケール セミコンダクター インコーポレイテッド | データ処理システムにおけるメモリ管理 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5559952A (en) | Display controller incorporating cache memory dedicated for VRAM | |
US5507026A (en) | Address-translatable graphic processor, data processor and drawing method with employment of the same | |
US5546553A (en) | Multifunctional access devices, systems and methods | |
KR100221028B1 (ko) | 그래픽 가속기 및 이를 이용한 메모리 프리패치 방법 | |
EP0568078B1 (en) | External interface for a high performance graphics adapter allowing for graphics compatibility | |
US5751979A (en) | Video hardware for protected, multiprocessing systems | |
US5696923A (en) | Graphics processor writing to shadow register at predetermined address simultaneously with writing to control register | |
WO1993020513A1 (en) | Method and apparatus for performing run length tagging for increased bandwidth in dynamic data repetitive memory systems | |
US5539428A (en) | Video font cache | |
EP0279225B1 (en) | Reconfigurable counters for addressing in graphics display systems | |
JP2548765B2 (ja) | 表示装置 | |
JPH08255107A (ja) | ディスプレイコントローラ | |
US5477242A (en) | Display adapter for virtual VGA support in XGA native mode | |
US5473348A (en) | Apparatus and method of controlling paging unit of coprocessor built in display control system | |
US6639603B1 (en) | Hardware portrait mode support | |
JPH07234821A (ja) | ページング装置およびディスプレイコントローラ | |
JP3313527B2 (ja) | グラフィックスコントローラおよびピクセルデータ転送システム | |
JP3017882B2 (ja) | 表示制御システム | |
JPH07234773A (ja) | 表示制御装置 | |
JPH06274410A (ja) | 表示制御システム | |
JP2576015B2 (ja) | 表示制御装置 | |
JPH08180012A (ja) | コンピュータシステム | |
JP2685601B2 (ja) | アドレス変換可能な図形処理装置及びそれを用いたデータ処理装置、並びに図形描画方法 | |
JPH0415885A (ja) | 描画装置 | |
JPH07199907A (ja) | 表示制御装置 |