JPH06149680A - アドレス変換装置 - Google Patents

アドレス変換装置

Info

Publication number
JPH06149680A
JPH06149680A JP4302077A JP30207792A JPH06149680A JP H06149680 A JPH06149680 A JP H06149680A JP 4302077 A JP4302077 A JP 4302077A JP 30207792 A JP30207792 A JP 30207792A JP H06149680 A JPH06149680 A JP H06149680A
Authority
JP
Japan
Prior art keywords
address
memory
management unit
memory management
cpu
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
Application number
JP4302077A
Other languages
English (en)
Inventor
Hiroshi Katayama
博史 片山
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP4302077A priority Critical patent/JPH06149680A/ja
Publication of JPH06149680A publication Critical patent/JPH06149680A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】グラフィックス・プロセッサが、仮想記憶で管
理されるメイン・メモリに対し高速な描画を可能とす
る。 【構成】グラフィックス・プロセッサ内のMMUがミス
・ヒットした時に、当該アドレスに対するページ・エン
トリのみならず、その前後のページ・エントリ情報を一
括してTLBへ登録する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はアドレス変換装置に関
し、特にディスプレイやプリンタ等における図形を描画
するための図形描画装置とシステム・メモリとのインタ
フェースに関する。
【0002】
【従来の技術】ワークステーションやパーソナルコンピ
ュータ等においてディスプレイ上にグラフィックスを表
示するため、あるいはプリンタが印字イメージを生成す
るために、図形描画専用のLSI(以下、グラフィック
ス・プロセッサと呼ぶ)を利用する場合がある。
【0003】グラフィックス・プロセッサは、中央処理
装置(CPU)が自身で行うより高速に図形を描画する
ことができ、かつグラフィックス・プロセッサとCPU
が並列に処理を進められるために、CADシステムやマ
ルチウインドウ表示などのように、グラフィック描画の
速度が重要となる場面での利用価値が高い。
【0004】一般的な図形描画システムの形態を図2に
示す。図2において、CPU1がシステム・バス7を経
由してグラフィックス・プロセッサ3へ描画命令を指示
すると、グラフィックス・プロセッサ3はグラフィック
ス・バス8を経由してフレーム・バッファ4に描画を行
う。システム・バス7とグラフィックス・バス8は分離
したままの場合もあるが、バス・アービタ6を介してC
PU1が直接にフレーム・バッファ4をアクセスできる
ようにする場合もある。
【0005】このようはシステムにおいては、通常はグ
ラフィックス・プロセッサ3はフレーム・バッファ4へ
の描画しかできない。すなわち、メイン・メモリ2へ直
接に描画することができなくなっている。そのような必
要性がなかったからである。また、必要ならば、双方向
に動作するバス・アービタ6を用いて、システム・バス
7とグラフィックス・バス8とを相互接続し、メイン・
メモリ2への描画を可能とする事も不可能ではなかっ
た。
【0006】しかし、近年になってこの状況が逆になり
つつある。グラフィックス・プロセッサ3が、メイン・
メモリ2に対して描画する必要があるにもかかわらず、
それができないという状況である。
【0007】グラフィックス・プロセッサ3がメイン・
メモリ2に描画を求められる要因は、X−Window
を代表とするグラフィックスを多用するウインドウ・シ
ステムが広まってきたことである。これらの中には、フ
レーム・バッファ4とメイン・メモリ2へ同等に描画で
きることを要求するものがある。また、それぞれの間で
画像データを転送しあえることも必要である。すなわ
ち、フレーム・バッファ4とメイン・メモリ2の相違
は、その内容が表示装置5に表示されるか否かというこ
とのみで、描画に関しては対等であるということが求め
られている。
【0008】一方、グラフィックス・プロセッサ3が、
メイン・メモリ2に描画できない要因は、ウインドウ・
システムを実行するCPU1の多くがMMU(メモリ管
理ユニット)を内蔵し、仮想記憶によってメモリ管理を
実施していることである。仮想記憶によって管理される
メモリは、ベージと呼ばれる数キロバイトを単位として
論理アドレスと物理アドレスの対応付けがなされる。こ
の対応付けは、算術演算や論理演算等によって関連づけ
られるような対応でなく、オペレーティング・システム
(OS)がメモリの使用状況等によって動的に決定する
対応であるために、OS以外がこの対応関係を知ること
には困難がある。このことは、CPUの外部に位置する
ことになるグラフィックス・プロセッサにとって大きな
問題である。
【0009】一般にグラフィックス・プロセッサは、そ
の描画パラメータをXY座標系による座標値として受け
取る。そして内部でXY座標とアドレスの変換を行い、
変換されたアドレスを使用してメモリへアクセスする。
しかし、この変換によって得られるアドレスは論理アド
レスであり、実際にメモリをアクセスするためには、こ
の論理アドレスを物理アドレスに変換しなければならな
い。しかし、この変換にはプロセッサが内蔵するMMU
と同等のアドレス変換機構と、MMUが保持しているア
ドレス変換情報を必要とする。
【0010】MMUが行うアドレス変換について、図
5,図6を用いて簡単に説明する。図5の例では、アド
レス変換は2段のページ・テーブル54,55を用いて
行われる。まず、論理アドレス51を3つのフィールド
に分割し、ページ・テーブル・ベース52とインデック
ス1によって第1ページ・テーブル54からページ・テ
ーブル・エントリ(PTE1)の一つを選択する。次
に、選択されたPTE1の内容に示されるページ・フレ
ーム番号(PFN1)をベースとして、インデックス2
により第2ページ・テーブル55からページ・テーブル
・エントリ(PTE2)の一つを選択する。最後に、P
TE2の内容に示されるPFN2とオフセットを結合
し、物理アドレス53を得る。
【0011】ところで、前述した手続きでは2つのペー
ジ・テーブル54,55を参照するが、これらのページ
・テーブル54,55はメモリ上に配置されている。そ
のため、1回のメモリ・アクセスのたびに3回ものメモ
リ・アクセスが必要となる。
【0012】そこで実際のMMUでは、その内部にアド
レス変換バッファ(TLB)と呼ばれるキャッシュメモ
リを搭載し、一度論理アドレス61と物理アドレス64
の対応がとれたページに対しては、2度目からはTLB
がヒットすることによってページ・テーブルの検索が省
略できるようになっている。(図6)。
【0013】さて、次にグラフィックス・プロセッサ
が、プロセッサが内蔵するものと同等のMMU(GMM
U)を持ったときの動作について検討する。
【0014】グラフィックス・プロセッサが論理アドレ
スを出力し、それをGMMUに通して物理アドレスを得
る。GMMUのTLBがヒットする場合は、そのままG
MMUの出力を得るだけであるが、ミス・ヒットした場
合はメイン・メモリ上のページ・テーブルをアクセスし
て、論理アドレスとそれに対応するPFNをTLBに新
たに登録しなければならない。このとき、次の2つの方
法が考えられる。
【0015】第1の方法は、GMMUのミス・ヒット信
号によりCPUへ割り込みをかけ、ページ・テーブルを
辿ってPFNを読み出す処理をCPUにまかせる方法。
【0016】第2の方法は、あらかじめページ・テーブ
ル・ベースの値をGMMUに登録しておき、GMMU自
身がページ・テーブルを辿ってPFNを読み出す方法で
ある。
【0017】この2つの方法の得失は、第1の方法では
CPUが割り込み処理を行うためのオーバーヘッドが生
じ、第2の方法ではGMMUが完全にMMUと同等のメ
モリ管理(アクセス権のチェックや2次記憶装置とのペ
ージ・スワップ等)を必要とすることである。ただし、
どちらの方法も共通していることは、ミス・ヒット処理
を行う度に2つのページ・テーブルをアクセスし、PF
Nを読み出さなければならないことである。すなわち、
ミス・ヒットの場合には、1回の描画のためのメモリ・
アクセスの代わりに、3回のメモリ・アクセスが必要と
なる。
【0018】ところで、グラウィックス描画の特性とし
て、メモリ・アクセスの局所性が小さいということがあ
る。CPUのプログラムの場合は、ある処理を実行する
ためのコードは比較的小さな領域に固まって存在する場
合が多い。そのために、TLBを使用した場合にもヒッ
トする確率が高い、一方、グラフィックス描画の場合
は、直線の描画や矩形領域の塗りつぶしを考えるとわか
るように、一度描画を行った画素に対して、短時間の間
に再び描画が行われる可能性は非常に小さい。そのため
に、TLBがミス・ヒットする可能性は非常に高い。
【0019】
【発明が解決しようとする課題】前述したように、従来
のグラフィックス・プロセッサは、仮想記憶によって管
理されるメモリ領域に対して描画することができなかっ
た。また、仮に描画を可能にしたとしても、その動作速
度は極めて低速にならざるを得ない。これは、グラフィ
ックス・プロセッサが直接に出力できるアドレスが論理
アドレスのみであり、論理アドレスを物理アドレスに変
換するための情報を高速に取得できないからである。
【0020】仮に2分の1の確率でTLBがミス・ヒッ
トすると、1画素当りのメモリ・アクセスの回数は平均
で2回、すなわちTLBがヒットし続ける場合の2倍の
処理時間が必要になる。実際には、その他のオーバーヘ
ッドも生ずるので、さらに遅くなると考えられる。
【0021】本発明の目的は、前記欠点が解決され、処
理時間を短縮したアドレス変換装置を提供することにあ
る。
【0022】
【課題を解決するための手段】本発明の構成は、第1の
メモリ管理ユニットを内蔵するグラフィックス描画装置
が、CPUが第2のメモリ管理ユニットを使用して仮想
記憶方式によって管理するメモリ領域に対して、描画を
行うアドレス変換装置において、前記グラフィックス描
画装置が描画しようとするアドレスが、前記第1のメモ
リ管理ユニットが内蔵するアドレス変換バッファにミス
・ヒットした時には前記第1のメモリ管理ユニットは前
記CPUに対して、ミス・ヒットしたアドレスに対応す
るアドレス変換情報と共に、その周辺のアドレスに対す
る複数のアドレス変換情報をも一括して通知するように
要請する手段を有し、前記第1のメモリ管理ユニット
は、前記複数のアドレス変換情報を、前記第1のメモリ
管理ユニットが内蔵するアドレス変換バッファに登録す
る手段を有することを特徴とする。
【0023】
【実施例】図1は本発明の一実施例のグラフィックス・
プロセッサ内のメモリ管理ユニット(GMMU)を示す
ブロック図である。
【0024】図1において、図形描画回路10とメモリ
管理ユニット9とがある。メモリ管理ユニット(GMM
U)9は、フレーム・バッファ境界レジスタ11,アド
レス比較回路12,アドレス変換回路13,セレクタ1
4,制御回路19を有する。図形描画回路10からは、
論理アドレス15が、アドレス比較回路12,アドレス
変換回路13,セレクタ14に印加される。セレクタ1
4からは、物理アドレス17が出力される。アドレス変
換回路13からは、ミス・ヒット信号18が出力され
る。
【0025】グラフィックス・プロセッサ3は、CPU
1からシステム・バス7を通じて描画命令や描画パラメ
ータ等を受け取ると、グラフィックス・バス8を通した
メモリ・アクセスにより、描画を実行しようとする。こ
のとき、グラフィックス・プロセッサ3の内部では、描
画回路10が論理アドレス15を出力し、それをアドレ
ス比較器12とアドレス変換器13とへ入力する。
【0026】アドレス比較器12は、入力された論理ア
ドレス15とフレーム・バッファがマップされる領域を
示すフレーム・バッファ境界レジスタ11の値を比較
し、そのアクセスがフレーム・バッファ4に対するアク
セスか、それともメイン・メモリ2に対するアクセスか
を判定する。この判定の結果、フレーム・バッファ4へ
のアクセスであれば、物理アドレス17として論理アド
レス15の値をそのまま出力し、メイン・メモリ2への
アクセスであれば、アドレス変換器13の出力を物理ア
ドレスとする。
【0027】アドレス変換器13は、論理アドレス15
のインデックス部を内蔵するTLBへ入力し、TLB内
に一致するエントリがあれば、そのエントリを用いて物
理アドレスを生成する。TLB内に一致するエントリが
無ければ、ミス・ヒット信号18を発生して、CPU1
へ割り込みを発生し、グラフィックス・プロセッサ3は
CPU1による割り込み処理が終了するまで、その動作
を一時中断する。
【0028】図3は図2のGMMU9を使用するフロー
図である。図3において、GMMU9側の処理では、ス
テップ100でCPU1へ割り込みをかける。ステップ
101で、カウント>0であれば、次のステップ102
へ、なければステップ105へ飛ぶ。ステップ102で
は、論理ページ番号をPFNをTLBへ登録する。次
に、ステップ103で論理ページ番号をインクリメント
(デクリメント)する。次に、ステップ104で、カウ
ント値をデクリメントして、ステップ101へもどる。
ステップ105では、ミス・ヒットしたアクセスをリト
ライして、ミス・ヒット処理が終了する。
【0029】CPU1は、ミス・ヒット信号18による
割り込みで、図4に示すように、以下の動作を行う。
【0030】(1)ミス・ヒットの原因となった論理ア
ドレス15とその時点のステータスを、グラフィックス
・プロセッサ3から読みだす(ステップ110)。
【0031】(2)その論理アドレスに対する第2ペー
ジ・テーブルのページ・テーブル・エントリ(PTE
n)のアドレスを求める(ステップ111)。
【0032】(3)読みだしたステータスから、描画の
進行方法と登録カウント数を取り出し、(a)描画がメ
モリ・アドレスの増加する方向へ進行すらならば、PT
Enを起点としてエントリ番号が増加する方向に、登録
カウント数で示される数のページ・テーブル・エントリ
(PTEn,PTEn+1,PTEn+2,…)をグラ
フィックス・プロセッサのTLBに登録する(ステップ
112〜115)。
【0033】(b)描画がメモリ・アドレスの減少する
方向へ進行するたらば、PTEnを起点としてエントリ
番号が減少する方向に、登録カウント数で示される数の
ページ・テーブル・エントリ(PTEn,PTEn−
1,PTUn−2,…)をグラフィックス・プロセッサ
のTLBに登録する(ステップ112〜115)。
【0034】ここで、登録カウント数とは、GMMU9
が内蔵するTLBのエントリ数をNとしたときに、直線
描画であればN,矩形領域コピーであればN/2等と、
あらかじめ定めておく数である。直線描画であれば、T
LBの全てのエントリを一度に書き換えてもよいが、矩
形領域コピーであれば転送元と転送先の2つについて、
それぞれTLBへの登録を行う必要があるためである。
【0035】(4)TLBへの登録が終了したら、CP
Uは割り込み処理を終了し、GMMUはミス・ヒットに
よって中断していたメモリ・アクセスを再開して、処理
を継続する。
【0036】グラフィックス描画におけるメモリ・アク
セスは、連続するページに対して行われる確率が大きい
ので、前述したように一回のミスヒットで複数のページ
・エントリをTLBに登録すると、第1ページ・テーブ
ルをアクセスする回数を削減することができる。
【0037】以上説明したように、本実施例のアドレス
変換装置は、メモリ管理ユニット(GMMU)を内蔵す
るグラフィックス描画装置が、CPUがメモリ管理ユニ
ット(MMU)を使用して仮想記憶方式によって管理す
るメモリ領域に対して、描画を行おうとする場合におい
て、前記グラフィックス描画装置が描画しようとするア
ドレスが、前記GMMUが内蔵するアドレス変換バッフ
ァに、ミス・ヒットした時に、前記GMMUは前記CP
Uに対して、ミス・ヒットしたアドレスに対応するアド
レス変換情報と共に、その周辺のアドレスに対する複数
のアドレス変換情報をも一括して通知するように要請
し、前記GMMUは、前記複数のアドレス変換情報を、
前記GMMUが内蔵するアドレス変換バッファに登録す
る機能を有し、特に前記複数のアドレス変換情報が前記
ミス・ヒットしたアドレス,および描画が進行すること
によって近い将来にアクセスされると予測されるアドレ
スに対するアドレス変換情報であることを特徴とする。
【0038】
【発明の効果】前述したように、本発明によるアドレス
変換装置では、グラフィックス・プロセッサが仮想記憶
により管理されているメイン・メモリに対して実用的な
速度で描画が可能となる効果がある。
【0039】具体例を挙げて、その効果を説明する。縦
横それぞれ512画素で各画素が32ビットである領域
をメイン・メモリ上に設定し、描画する場合を考える。
1ページの大きさを4キロバイトとすると、この設定領
域を水平2ラインで1ページを構成することになる。従
って、この領域に対して垂直線を描画すると、2回に1
回はTLBがミス・ヒットすることになる。ミス・ヒッ
ト時に、CPUに割り込みをかけ、ページ・テーブルを
辿って対応するPFNを求め、TLBに登録し、ミス・
ヒットしたアクセスを再度行う、という操作を行うに
は、6〜8クロック程度は必要となる。即ち、一画素あ
たりの平均描画速度は4〜5クロックである。この場
合、CPUに割り込みをかけてからその割り込みが受け
付けられる時間の割合が大きい。
【0040】一方、本発明によれば、最初の一画素を描
画しようとしてTLBがミス・ヒットすると、ミス・ヒ
ットしたページと、近い将来アクセスされる可能性のあ
るページのPFNを一括してTLBに登録するが、この
ときの処理時間は、一括して登録エントリ数を8とする
と、18〜20クロック、平均描画速度は3.1クロッ
ク程度となる。即ち、25〜40%近く高速になること
がわかる。
【図面の簡単な説明】
【図1】本発明の一実施例のアドレス変換装置における
グラフィックス・プロセッサ内のメモリ管理ユニットを
示すブロック図である。
【図2】グラフィックス・プロセッサを使用する画像シ
ステムのブロック図である。
【図3】グラフィックス・プロセッサ内のTLBがミス
・ヒットしたときのGMMU側の処理を示すフロー図で
ある。
【図4】グラフィックス・プロセッサ内のTLBがミス
・ヒットしたときのCPU側の処理を示すフロー図であ
る。
【図5】メモリ管理ユニットの第1の動作を示す図であ
る。
【図6】メモリ管理ユニットの第2の動作を示す図であ
る。
【符号の説明】
1 CPU 2 メイン・メモリ 3 グラフィックス・プロセッサ 4 フレーム・バッファ 6 バス・アービタ 7 システム・バス 8 グラフィックス・バス 9 グラフィックスメモリ管理ユーニット(GMM
U) 10 図形描画回路 13 アドレス変換回路 15 論理アドレス 17 物理アドレス 18 ミス・ヒット信号

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 第1のメモリ管理ユニットを内蔵するグ
    ラフィックス描画装置が、CPUが第2のメモリ管理ユ
    ニットを使用して仮想記憶方式によって管理するメモリ
    領域に対して、描画を行うアドレス変換装置において、
    前記グラフィックス描画装置が描画しようとするアドレ
    スが、前記第1のメモリ管理ユニットが内蔵するアドレ
    ス変換バッファにミス・ヒットした時には前記第1のメ
    モリ管理ユニットは前記CPUに対して、ミス・ヒット
    したアドレスに対応するアドレス変換情報と共に、その
    周辺のアドレスに対する複数のアドレス変換情報をも一
    括して通知するように要請する手段を有し、前記第1の
    メモリ管理ユニットは、前記複数のアドレス変換情報
    を、前記第1のメモリ管理ユニットが内蔵するアドレス
    変換バッファに登録する手段を有することを特徴とする
    アドレス変換装置。
JP4302077A 1992-11-12 1992-11-12 アドレス変換装置 Pending JPH06149680A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4302077A JPH06149680A (ja) 1992-11-12 1992-11-12 アドレス変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4302077A JPH06149680A (ja) 1992-11-12 1992-11-12 アドレス変換装置

Publications (1)

Publication Number Publication Date
JPH06149680A true JPH06149680A (ja) 1994-05-31

Family

ID=17904647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4302077A Pending JPH06149680A (ja) 1992-11-12 1992-11-12 アドレス変換装置

Country Status (1)

Country Link
JP (1) JPH06149680A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012533135A (ja) * 2009-07-13 2012-12-20 アップル インコーポレイテッド Tlbプリフェッチング
KR20140111499A (ko) * 2013-03-11 2014-09-19 삼성전자주식회사 시스템 온 칩 및 그 동작방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012533135A (ja) * 2009-07-13 2012-12-20 アップル インコーポレイテッド Tlbプリフェッチング
KR20140111499A (ko) * 2013-03-11 2014-09-19 삼성전자주식회사 시스템 온 칩 및 그 동작방법
JP2014175017A (ja) * 2013-03-11 2014-09-22 Samsung Electronics Co Ltd システムオンチップ及びその動作方法

Similar Documents

Publication Publication Date Title
US20200242046A1 (en) Method, system, and apparatus for page sizing extension
US6750870B2 (en) Multi-mode graphics address remapping table for an accelerated graphics port device
US7296139B1 (en) In-memory table structure for virtual address translation system with translation units of variable range size
US7562205B1 (en) Virtual address translation system with caching of variable-range translation clusters
US7334108B1 (en) Multi-client virtual address translation system with translation units of variable-range size
JP4531890B2 (ja) 原子的更新処理を実行する方法
US7415575B1 (en) Shared cache with client-specific replacement policy
US5987582A (en) Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device
US5913923A (en) Multiple bus master computer system employing a shared address translation unit
US8347065B1 (en) System and method for concurrently managing memory access requests
EP0911737A1 (en) Cache memory with reduced access time
US20130179638A1 (en) Streaming Translation in Display Pipe
JPH0212523A (ja) コンピユータ・デイスプレイ・システム
US20210089470A1 (en) Address translation methods and systems
KR960001945B1 (ko) 우선변환참조버퍼에서 적중수를 증가시키기 위한 장치
JPH1083346A (ja) アドレス衝突検出回路
US8706975B1 (en) Memory access management block bind system and method
CN114238167A (zh) 信息预取方法、处理器、电子设备
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
US5473348A (en) Apparatus and method of controlling paging unit of coprocessor built in display control system
US7797492B2 (en) Method and apparatus for dedicating cache entries to certain streams for performance optimization
US8700865B1 (en) Compressed data access system and method
JPH06149680A (ja) アドレス変換装置
KR102491622B1 (ko) 가상 어드레스 생성기의 동작 방법과 이를 포함하는 시스템의 동작 방법
US11275707B2 (en) Multi-core processor and inter-core data forwarding method

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19991214