JP2001290706A - Tlbキャッシュのためのプリフェッチ - Google Patents
TlbキャッシュのためのプリフェッチInfo
- Publication number
- JP2001290706A JP2001290706A JP2001100260A JP2001100260A JP2001290706A JP 2001290706 A JP2001290706 A JP 2001290706A JP 2001100260 A JP2001100260 A JP 2001100260A JP 2001100260 A JP2001100260 A JP 2001100260A JP 2001290706 A JP2001290706 A JP 2001290706A
- Authority
- JP
- Japan
- Prior art keywords
- address
- tlb
- prefetch
- processor
- dsp
- 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
- 230000015654 memory Effects 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 abstract description 15
- 230000007246 mechanism Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 238000013519 translation Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
ムおよびダイナミックメモリ管理をサポートするため
に、メモリ管理ユニットを提供する。 【解決手段】 デジタル信号プロセッサ(30)または
他の処理装置で使用されるメモリ管理ユニット(42)
に、プリフェッチコマンドに応答して仮想アドレスから
物理アドレスへの変換を実行する回路を設ける。プリフ
ェッチコマンドはダミーレジスタへの書き込みアクセス
を実行することによって開始される。プリフェッチコマ
ンドが検出されると、生成された仮想アドレスに関連す
る物理ベースアドレスがTLBに現在存在するか否かを
確認するためにTLBがチェックされる。存在しなけれ
ば、ウォーキングテーブルロジックは、変換結果を取得
するためにメインメモリ(34)のテーブルルックアッ
プを実行する。ウォーキングテーブルロジックの動作
は、DSPコア(36)による連続動作を妨げずに行わ
れる。
Description
に計算装置に関するものである。
するために、多くの新しい電子装置においてデジタル信
号プロセッサ(DSP)が利用される。DSP、MPU
(マイクロプロセッサユニット)および共有メモリを含
むマルチプロセッサ環境において、保護メカニズムとダ
イナミックメモリ管理をサポートするために、現在では
DSPはMPUに含まれる機能に似た完全なメモリ管理
ユニット(MMU)を持つ必要がある。装置によって
は、複数プロセッサの1つに動的にタスクをダウンロー
ドして、それにしたがってメモリを管理する必要があ
る。
タープロセッサによって管理される共有メモリプールか
ら空きメモリを予約する場合、いくらかのMMUハード
ウェアサポートをDSPに統合する必要が生じる。
ては、信号が処理中であることに起因して特定のリアル
タイムの制約がしばしば伴う。例えば、DSPは一般的
にビデオ・オーディオ処理と音声認識がサポートされる
装置で使用される。イベントの発生を待っている間DS
Pの処理動作を中断しなければならないと、これらの機
能はかなり損なわれるであろう。MMUを付加すれば、
ある程度の非決定性挙動が導入される。現在のアクセス
に対応する情報がTLB(translation l
ookaside buffer)キャッシュに存在し
ないとき(TLBミス)、情報はメインメモリ中のテー
ブルから検索する必要がある(「テーブルウォーキン
グ」table walking)。この動作は数十〜
数百のマイクロプロセッササイクルを要する。MMUに
よるテーブルウォーキング中、コアの動作は停止され、
DSPの機能が低下あるいは変動する。
測可能な(predictable)MMU設計が必要
である。
ロセッサ装置はメインメモリ、メインメモリに接続され
たマイクロプロセッサ、デジタル信号プロセッサを有す
る。デジタル信号プロセッサには、命令実行用プロセッ
サコアとメモリ管理ユニットを含む。メモリ管理ユニッ
トには、仮想ベースアドレスに関連するプリフェッチコ
マンドを検出するための回路と、プロセッサコアが命令
実行中にプリフェッチコマンドに応答してメインメモリ
から物理的ベースアドレスへの仮想ベースアドレス変換
を行うための回路とが含まれる。
る。仮想ベースアドレスのプリフェッチを可能にするこ
とにより、TLBミスによる待ち時間が排除または大幅
に減少する。メインメモリにおける物理アドレスのテー
ブルルックアップの実行中にDSPコアが命令実行を継
続することができるので、プリフェッチ命令に起因する
待ち時間は最小限に抑えられる。本発明およびその特長
を更に理解するために、以下の記述では付図を参照す
る。
を詳細に説明する。なお、付図において同等部材には同
一参照符号が使用される。
されるような最新技術のMMU10のブロック図であ
る。TLB(translation lookasi
debuffer)キャッシュ12には、RAM16と
結合されるCAM14が含まれる。RAM16は、TL
B12にキャッシュされた仮想アドレスに関連する物理
アドレスを求めて上位アドレスビット(ベースアドレ
ス)をキャッシュする。RAM16の各物理ベースアド
レスについて、対応するCAMアドレスにおける物理ベ
ースアドレスに関連する対応の仮想アドレスビットの上
位アドレスビットがCAM12に格納される。したがっ
て、CAM14のアドレス“01”に格納された仮想ベ
ースアドレスはRAM16のアドレス“01”における
物理ベースアドレスに対応する。
要求すると、CAM14に仮想ベースアドレスが格納さ
れているか否かを調べるためにTLBキャッシュ12が
チェックされる。格納されていれば(キャッシュヒッ
ト)、RAM16の対応位置から物理ベースアドレスが
検索される。物理ベースアドレスは、完全な物理アドレ
スを決定するために仮想アドレス(ページインデック
ス)の下位ビットと連結される。この物理アドレスはメ
モリ(以下、「メイン」メモリと呼ぶ)のアクセスに使
用される。RAM16には、物理ベースアドレスの他
に、各物理ベースアドレスのための保護ビット(AP)
も格納することができる。保護ビットは、対応するメモ
リページの使い方(例えば、書き込み禁止、実行のみ
等)を定義する。これらのビットはメモリアクセス中に
チェックされる。例えば、あるページが書き込み禁止に
されている場合にデータ書き込みでアクセスすると、C
PUに例外が返され、アドレスステータスレジスタは、
対応する違反タイプ、この場合の書き込みアクセス許可
違反で更新される。また、アドレスはデバッグあるいは
リカバリのために違反アドレスレジスタに格納される。
同様に、実行のみと定義されたページは、データアクセ
ス時に違反を生成する。
数の物理仮想ベースアドレスしか格納することができ
ず、一般に、その数は可能な仮想ベースアドレス数より
もはるかに少ない。したがって、コード実行時にマイク
ロプロセッサから要求される仮想アドレスがTLBキャ
ッシュで見つからないことがある。これをキャッシュ
「ミス」と呼ぶ。TLBキャッシュミスが生じると、複
数のアクションが取られる。まず、マイクロプロセッサ
コアから要求される仮想アドレスに対応する物理ベース
アドレスは、WTL(ウォーキングテーブルロジック)
20がメインメモリに格納されているテーブルを参照し
て決定する。テーブルウォーキング過程中、Ready
信号を無効にすることによって、プロセッサコアが待ち
状態に置かれる。
ックに関連して、仮想ベースアドレスから物理ベースア
ドレスを導くためのウォーキングテーブル過程を例示し
ている。ウォーキングテーブルロジック法は当該技術分
野でよく知られていて、図2はその過程の基本を示して
いる。ウォーキングテーブルロジック20のTTBレジ
スタ22は外部メモリ(図示せず)に格納された第1レ
ベルの記述子テーブルのベースを示すアドレスを保持す
る。処理コア12からの仮想アドレスには数個のインデ
ックスフィールドが含まれ、それらの数および位置は仮
想アドレスに関連するページタイプによって異なる。仮
想アドレスからの変換テーブルベース(TTBレジス
タ)アドレスおよびindex1は、第1レベルの記述
子テーブル内の位置を識別するために連結される。この
位置はウォーキングテーブルロジック20にベースアド
レスおよび「Pビット」を与えるもので、「Pビット」
は、ベースアドレスが仮想アドレスに関連する物理的な
メモリ位置を指すのか、または低位レベルの記述子テー
ブルを指すかのかをウォーキングテーブルロジックに知
らせる。図2において、この位置はメインメモリ24の
第2レベルの記述子テーブルへのベースアドレスを示し
ている。
index2と連結されて第2レベルの記述子テーブル
中の位置を指す。その位置はもう一つづつのベースアド
レスおよびPビットを与える。図では、Pビットは、関
連ベースアドレスが第3レベルの記述子テーブル内の位
置を指すことを示している。したがって、ベースアドレ
スは仮想アドレスからのindex3と連結され、第3
レベルの記述子テーブル内の位置を指す。この位置はベ
ースアドレスと関連Pビットを与え、ベースアドレスが
所望の物理アドレスに関連することを示す。また、位置
は物理アドレスに関連する許可ビットも含む。したがっ
て、ベースアドレスはメインメモリにアクセスするため
の仮想アドレスからのページインデックスと連結され
る。
レスを識別するのに3個の記述子テーブルを使用してい
るが、任意数のテーブルを使用することができる。物理
アドレスを決定するために使用されるテーブル数は、物
理アドレスに関連するページサイズによって変わる。
ベースアドレスと、許可ビットは、TLBキャッシュの
RAM部分にロードされる前に、ウォーキングテーブル
ロジック52のWTTレジスタ26に一時的に格納され
る。これは、許可ビット等の属性ビットが異なるレベル
のテーブルから検索される可能性があるからである。物
理ベースアドレスの先頭に要するすべての情報が常に最
後のテーブルに格納されるとは限らない。WTTレジス
タ26は、仮想ベースアドレスをCAM14にロードす
ると共に、関連物理ベースアドレスと、置換アドレス回
路(図示せず)で決定される位置における許可ビットと
をRAM16にロードするために使用される。置換アド
レス回路はランダムあるいは巡回的に置換アドレスを生
成することができる。
アドレス変換に費やされるかもしれない。一般に、これ
はシステム応答を遅くする。しかし、実時間処理が伴う
場合、例えばDSPを使用する多くの装置においては、
メモリ管理ユニットの非決定性挙動によって装置の性能
が著しく低下することがある。
Lアーキテクチャが知られており、それらは上記と比較
してかなり異なるかもしれない。
ユニット(MPU)32を使用する計算機装置28の基
本的ブロック図を示す。他の装置、例えばコプロセッ
サ、追加のDSP、マイクロプロセッサユニット等も計
算機装置28で使用することができる。メインメモリ3
4はバス39を介してDSP30およびMPU32と接
続される。
ローカルメモリ40に接続された複数のバス38とがD
SP30に含まれ、ローカルメモリは、例えばデータメ
モリ/キャッシュ、命令メモリ/キャッシュ、あるいは
一体化されたデータ・命令メモリ/キャッシュである。
メモリ管理ユニット(MMU)42はバス38に接続さ
れ、そしてバス39を介してメインメモリ34およびM
PU32に接続される。DSP30の動作はリアルタイ
ムのオペレーティングシステム44で制御される。
メモリ50に接続された処理コア46を含む。MPU3
2はオペレーティングシステム52によって制御され
る。
は任意に設計することができる。典型的には、DSPの
処理コアは高速乗算器アキュムレータ回路(通常MAC
と呼ばれる)を特徴とする。ローカルメモリ40には、
DSP動作に使用されるデータおよび命令が格納され
る。図の実施例では、高速アクセスのための仮想アドレ
ッシング時にダイレクトデコーディングを利用して、プ
ロセッサコア36によるローカルメモリへの直接アドレ
ッシングが可能である。このバス構造はローカルメモリ
40に対してプログラムおよびデータ情報を効率的に読
み書きできるように設計されているが、他の様々なバス
構造も使用可能である。代替的に、MMUを介してロー
カルメモリ40にアドレスすることも可能であるが、ロ
ーカルメモリアクセス速度が低下する。図3は単一のM
MU42を示しているが、各バスに別々のハードウェア
を設ければ、アクセスのコンフリクトを避けて性能の向
上を図ることができる。
スするためにDSP30の処理コア36による仮想アド
レシングの使用を可能にする。DSPは一般に、命令を
検索してオペランドを読み書きするために1命令サイク
ルごとに1回以上のアドレス計算を実行する1個以上の
アドレス生成ユニット(AGU)を含む。
DSPの能力が大幅に増加する。特に、DSPはタスク
によって保護された環境における独立タスクを処理する
ことができる。各タスクに直線的な(連続した)メモリ
スペースを割り当てることが可能であり、その場合、各
タスクがシステム内で処理されている唯一のタスクであ
るかのように見える。これは、ほとんどのソフトウェア
がサードパーティーによって書かれ、他のアプリケーシ
ョンのことを意識していないので、将来のシステムにお
いて重要になるだろう。
ステム54とMPU32の組み合わせにより、各プロセ
ッサまたはDSP上で実行中の異なるプロセスを管理し
てそれらにメモリを動的に割り当てる統合メモリ管理シ
ステムが実現され、保護された直線的メモリスペースが
すべてのアプリケーション(プロセス)に与えられる。
外部共有メモリ34における対応物理アドレスが非直線
的であるにもかかわらず、この統合メモリ管理ユニット
により、すべてのプロセスおよびすべてのプロセッサに
直線的メモリスペースが割り当てられる。また、統合メ
モリ管理システムは効率的でかつ周知の保護メカニズム
を提供する。
ロック図を示しており、これはマルチプロセッサシステ
ムにおいてDSPや他のプロセッサと組み合わせて使用
することができる。この実施例では、すべてのDSPバ
スが同じTLBを共有可能であるが、代替実施例では複
数のTLBを使用することができる。MMU42は、C
AM62とそれに関連するRAM64とを備えたTLB
60を含む。CAM62にはマルチプレクサ66を通し
て仮想ベースアドレスを供給することができる。マルチ
プレクサ66は4つのソース、すなわち、(1)MPU
データ(MPU32からの)、(2)DSP30からの
DSPデータ、(3)VPA(仮想プログラムアドレ
ス)/VDA(多重バスの仮想データアドレス)バス
(DSPコア36からのプログラムおよびデータアドレ
ス)、(4)Prefetch_addressレジス
タ86からのPrefetch_addressのうち
の1つを選択することができる。マルチプレクサ66は
制御回路68によって制御される。DSP入出力スペー
スに、デコードと記しただ円(decode bubb
le)70で表されるプリフェッチダミーレジスタが示
されている。マルチプレクサ72を介してランダムまた
は巡回カウンタ、あるいはMPU32から、CAM62
のエントリーを選択することができる。検索/書き込み
制御信号は、マルチプレクサ66からのデータがマルチ
プレクサ72からアドレスへの書き込みデータである
か、または対応する物理ベースアドレスをTLB60で
保持するかどうか決定するためにルックアップで使用さ
れるデータであるかを表す。マルチプレクサ74は、M
PU32からのデータか、TLB置換イベントにおいて
RAM64に書き込むためにウォーキングテーブルロジ
ック78のWTTレジスタ76から送られたデータかを
選択する。
をTLB内容にするために、DSPデータバスをマルチ
プレクサ(74)を介してRAM64に接続する必要が
ある。
WTTレジスタの他に状態・制御レジスタ80と、変換
テーブルの先頭アドレスを保持するTTB_DSPレジ
スタ82とが含まれる。状態・制御レジスタ80はWT
L_activeビットを含む。ウォーキングテーブル
ロジック78はTLB_prefetch信号とTLB
_miss制御信号を受け取り、Ready制御信号を
出力する。マルチプレクサ86はTLB_miss信号
によって制御され、ウォーキングテーブルロジック78
とTLB60の一方から物理ベースアドレスを選択す
る。プリフェッチアドレスレジスタ86はプリフェッチ
アドレスを格納する。
る物理ベースアドレスをTLB60にロードするため
に、MMU42はDSPコア36をブロックすることな
くプリフェッチ動作を実行することができる。また、D
SPは、置換カウンタを所望値に設定してビクティム
(victim)エントリーをプログラムすることによ
って、TLB60内の置換位置をモニターする。このよ
うに、コア動作をブロックすることなくプリフェッチ動
作を実行することにより、タスクに関連する他のリアル
タイム制約に影響しかねないTLBミス関連の非決定性
レイテンシが避けられる。
必要とすることが予想され、そのデータまたは命令に対
応する領域は仮想ベースアドレスとTLB60に格納さ
れた物理ベースアドレスとの間で対応する変換結果をも
たない場合、タスク途中の任意のところでプリフェッチ
コマンドを使用することが可能である。DSPコア36
からのアクセス要求の前に(変換結果がまだTLBに格
納されていなければ)、プリフェッチ命令によってTL
B60に変換結果が強制的に格納される。したがって、
タスクによるアクセス要求実行時にはTLB60に変換
結果が存在し、潜在的なTLBミスは避けられるだろ
う。
Oスペースにプリフェッチダミーレジスタが示される。
この入出力アドレスへの書き込みアクセスは制御回路6
8によって検出される。図の実施例では、書き込みアク
セスはプリフェッチ動作を開始するために制御回路68
に接続されたVDAバスを介して行われる。ダミーレジ
スタへの書き込みアクセスに応答して、TLB_pre
fetch制御信号は制御回路68によってイネーブル
にされる。同時に、プリフェッチ仮想ベースアドレスが
DSPデータバスに現れる。制御回路68はマルチプレ
クサ66を介してDSPデータバスを選択してプリフェ
ッチ仮想ベースアドレスをCAM62に送り、検索/書
き込み制御信号を検索に設定する。その結果、TLB6
0は、プリフェッチ仮想ベースアドレスがCAM62に
おいて現在有効であるか否かを単一サイクルの比較によ
って検出する。この検索でCAMヒットが得られると、
プリフェッチを続ける必要がなくなり、DSPの実行が
継続される。
よるCAMミスの場合、TLB_prefetchおよ
びTLB_miss制御信号(ウォーキングテーブルロ
ジック78のプリフェッチメカニズムを開始するために
は双方共にイネーブルでなければならない)に応答して
メインメモリ34から対応する物理ベースアドレスをフ
ェッチするためにウォーキングテーブルロジック78が
使用される。プリフェッチ仮想ベースアドレスの値はP
refetch_addressレジスタ86に格納さ
れる。WTBアクティブビットは、次のプリフェッチま
たは通常のTLBミス動作が現在のプリフェッチコマン
ドを妨害しないように設定される。プリフェッチ動作
中、ウォーキングテーブルロジック78はReady信
号をディスエーブルにしないので、DSPはTLB動作
と平行して後続のプリフェッチ命令を実行し続ける。
ブルウォーキング動作を一旦完了して、Prefetc
h_addressレジスタ86に格納された仮想ベー
スアドレスに対する変換を決定すると、対応する物理ベ
ースアドレスがTLB60に格納され、WTL_act
iveビットはディスエーブルになる。テーブルウォー
キング動作の結果をTLB60に格納するための置換策
には、いくつかの形式がある。TLB60に存在するエ
ントリーをランダムに置換するランダム置換スキームは
一般に好ましくない。それは、前にプリフェッチされた
変換結果がそのアドレスへの実際のアクセス以前に次の
TLBプリフェッチあるいはTLBミスによって置換さ
れてしまうからである。TLB60の非ロックアドレス
範囲での巡回(または、FIFO)置換策または、DS
Pコア36から供給され、DSPアドレスのレジスタに
格納されたビクティムアドレスをもつプログラマブル置
換策。巡回モードでは、TLB60に新しい変換結果が
ロードされたときだけ、ビクティムカウンタはインクリ
メントする。
ム置換策が提供される。DSPコア36が次に置換され
るエントリーのTLBアドレスを格納するビクティムカ
ウンタ(図示せず)に新しい値を書き込む度に、ビクテ
ィムカウンタは計数モードをランダムから巡回(FIF
O)に変更し、TLB上限に達するまでそれを続ける。
また、ステータス・制御レジスタ80のステータスビッ
トによってビクティムカウンタモードをランダムまたは
巡回的にプログラムすることができる。テーブルウォー
キング動作から得られるアドレス値がWTTレジスタに
ロードされた時にイネーブルになるEnd_prefe
tch制御信号に応答して、プリフェッチアドレス情報
はビクティムカウンタに格納されているアドレスにおけ
るRAM64とCAM62に格納される。
テーブルルックアップは1度に1回だけである。従っ
て、前のTLBプリフェッチ動作が完了する前に次のプ
リフェッチ動作が始まると、前のプリフェッチ動作が終
わるまでDSP30は(Ready制御信号をディスエ
ーブルにすることによって)待たされる。代替として、
Prefetch_addressレジスタ86の代わ
りに、プリフェッチ要求をキューに入れるためにレジス
タファイルまたはFIFOレジスタを使用することが可
能であり、そうすれば、ウォーキングテーブルロジック
78が受け取った順序で要求が処理される。
時にTLBミスがあると、DSP30は待ちになる。T
LBミスが一旦ウォーキングテーブルロジック78で処
理されれば、プリフェッチ動作は継続する。
6はプリフェッチ動作実行中に命令の実行を続ける場合
がある。一般に、コード中の適切な位置にプリフェッチ
命令を置くことによって、このような状態は両方とも排
除または軽減することができる。ここに記述されるプリ
フェッチメカニズムによって、プリフェッチ中のタスク
実行を遅らせことなくTLBミスは完全に回避され、ミ
スに関連する予測不能な待ち時間が排除される。
シャルタスクのデータを処理する。1つのタスクが終わ
ると、DSPはMPUからの割込みあるいはメッセージ
によって発生する次のタスクに備える。したがって、プ
リフェッチレジスタ86として使用されるキュー(例え
ば、レジスタファイルまたはFIFOレジスタ)は、次
のタスクに備えてTLBを準備するための多重プリフェ
ッチコマンドを保持するのに適切な構造である。その他
の手法、例えばメモリアクセスのためにコードを先読み
することによってプリフェッチコマンドを実行する手法
も使用することができる。
レスに変換するためにMMU42が設けられているが、
アドレス変換を行わないメモリ管理に使用することも可
能である。例えば、RAM64に保護ビットを格納し
て、コア36から発生する物理アドレスからのアクセス
に応答して、その保護ビットをチェックすることができ
る。物理アドレスがCAM62にキャッシュされていな
いとすれば、メモリアドレス変換に関して上述したよう
に、コア36が命令実行を継続している間に、ウォーキ
ングテーブルロジック78はTLB60におけるミスを
避けるためにメインメモリ34から保護ビットをプリフ
ェッチすることができる。
ス容量等について特定のアーキテクチャの特徴と詳細サ
イズを例示したが、特定のDSPを実施するための設計
は多様である。例えば、このTLB設計はマイクロプロ
セッサ設計に使用される多数のうちの一つである。
について述べたものであるが、この記述から当業者は上
記実施例の様々な変形や代替実施例のヒントを得ること
ができよう。本発明は特許請求の範囲の規定されるすべ
ての変更、代替実施例を包含する。
トとを有するプロセッサであって、前記メモリ管理ユニ
ットが、1セットのアドレスに関連する情報を格納する
キャッシュと、前記プロセッサコアからの指定アドレス
に関連するプリフェッチコマンドを検出する回路と、前
記プロセッサコアによる命令実行中に前記プリフェッチ
コマンドに応答して前記指定アドレスに関連する情報を
取得し、前記情報を前記キャッシュに格納するための回
路とを含む前記プロセッサ。 (2)前記アドレスの変換結果を取得するための回路が
前記情報取得回路に含まれる第1項記載のプロセッサ。 (3)前記プロセッサコアからの仮想アドレスを物理ア
ドレスに変換するための回路が前記変換取得回路に含ま
れる第2項記載のプロセッサ。 (4)ウォーキングテーブルロジックが前記情報取得回
路に含まれる第1項記載のプロセッサ。 (5)TLB(translation lokasi
de buffer)が前記キャッシュに含まれる第1
項記載のプロセッサ。 (6)前記指定アドレスに関連する前記情報が前記キャ
ッシュに存在するか否を表す信号に応答して、前記情報
取得回路がイネーブルにされる第1項記載のプロセッ
サ。 (7)所定アドレスへの書き込みアクセスを検出する回
路が前記検出回路に含まれる第1項記載のプロセッサ。 (8)入出力アドレス空間における所定アドレスへの書
き込みアクセスを検出する回路が前記検出回路に含まれ
る第7項記載のプロセッサ。 (9)前記キャッシュに前記指定アドレスを入れるため
の前記書き込みアクセスが検出された時に前記プロセッ
サコアからデータバスを選択するように前記検出回路に
よって制御されるマルチプレクサを有する第7項記載の
プロセッサ。 (10)前記指定アドレスを格納するレジスタが前記情
報取得回路に含まれる第1項記載のプロセッサ。 (11)前記情報取得回路が前の指定アドレスに対する
情報を現在取得中か否を表すステータスレジスタが前記
情報取得回路に含まれる第1項記載のプロセッサ。 (12)前記プロセッサコアをデジタル信号プロセッサ
コアとした第1項記載のプロセッサ。 (13)複数の仮想ベースアドレスを格納するキューが
前記レジスタに含まれる第12項記載のプロセッサ。
リに接続されたマイクロプロセッサと、命令実行用プロ
セッサコアおよびメモリ管理ユニットを含むデジタル信
号プロセッサとを有するマルチプルプロセッサ装置であ
って、前記メモリ管理ユニットに、各アドレスに関連す
る情報を格納するキャッシュと、指定アドレスに関連す
るプリフェッチコマンドを検出する回路と、前記プロセ
ッサコアによる命令実行中に前記プリフェッチコマンド
に応答して前記メインメモリから前記指定アドレスに関
連する情報を取得し、前記指定アドレスに関連する前記
情報を前記キャッシュに格納する回路とが含まれる前記
マルチプルプロセッサ装置。 (15)前記指定アドレスを仮想アドレスとし、前記仮
想アドレスから物理アドレスへの変換を取得する回路が
前記情報取得回路に含まれる第14項記載のマルチプル
プロセッサ装置。 (16)変換回路にウォーキングテーブルロジックが含
まれる第15項記載のマルチプルプロセッサ装置。 (17)前記キャッシュにTLBが含まれる第14項記
載のマルチプルプロセッサ装置。 (18)前記指定アドレスに関連する前記情報が前記キ
ャッシュに存在するか否かを決定する回路が前記取得回
路に含まれる第14項記載のマルチプルプロセッサ装
置。 (19)所定アドレスへの書き込みアクセスを検出する
回路が前記検出回路に含まれる第14項記載のマルチプ
ルプロセッサ装置。 (20)入出力アドレス空間における所定アドレスへの
書き込みアクセスを検出する回路が前記検出回路に含ま
れる第19項記載のマルチプルプロセッサ装置。 (21)前記仮想ベースアドレスを格納するレジスタが
前記取得回路に含まれる第14項記載のマルチプルプロ
セッサ装置。 (22)複数の仮想ベースアドレスを格納するキューが
前記レジスタに含まれる第21項記載のマルチプルプロ
セッサ装置。
方法であって、プロセッサコア内で命令を実行するステ
ップと、1セットのアドレスに関連する情報をキャッシ
ュに格納するステップと、前記プロセッサコアからの指
定アドレスに関連するプリフェッチコマンドを検出する
ステップと、前記プロセッサコアによる命令実行中に前
記プリフェッチコマンドに応答して前記指定アドレスに
関連する情報を取得し、前記指定アドレスに関連する前
記情報を前記キャッシュに格納するステップとを含む前
記方法。 (24)前記アドレスの変換を取得するステップが前記
情報取得ステップに含まれる第23項記載の方法。 (25)前記プロセッサコアからの仮想アドレスを物理
アドレスに変換するステップが前記変換取得ステップに
含まれる第24項記載の方法。 (26)ウォーキングテーブルロジックを用いた情報取
得ステップが前記情報取得ステップに含まれる第23項
記載の方法。 (27)情報をTLBに格納するステップが前記情報格
納ステップに含まれる第23項記載の方法。 (28)前記指定アドレスに関連する前記情報が前記キ
ャッシュに存在するか否かを表す信号に応答して、前記
情報取得ステップを開始する第23項記載の方法。 (29)所定アドレスへの書き込みアクセスを検出する
ステップが前記検出ステップに含まれる第23項記載の
方法。 (30)入出力アドレス空間における所定アドレスへの
書き込みアクセスを検出するステップが前記検出ステッ
プに含まれる第29項記載の方法。 (31)前記キャッシュに入れるための前記書き込みア
クセスが検出された時に前記プロセッサコアからのデー
タバスを選択するステップが前記指定アドレスに含まれ
る第29項記載の方法。 (32)前の指定アドレスに関する情報を現在取得中で
あるか否かを表す状態情報を生成するステップが前記情
報取得ステップに含まれる第23項記載の方法。
または他の処理装置で使用されるメモリ管理ユニット
(42)に、プリフェッチコマンドに応答して仮想アド
レスから物理アドレスへの変換を実行する回路を設け
る。プリフェッチコマンドはダミーレジスタへの書き込
みアクセスを実行することによって開始される。プリフ
ェッチコマンドが検出されると、生成された仮想アドレ
スに関連する物理ベースアドレスがTLBに現在存在す
るか否かを確認するためにTLBがチェックされる。存
在しなければ、ウォーキングテーブルロジックは、変換
結果を取得するためにメインメモリ(34)のテーブル
ルックアップを実行する。ウォーキングテーブルロジッ
クの動作は、DSPコア(36)による連続動作を妨げ
ずに行われる。
MUを示す図。
ックアップを示す図。
は他のプロセッサで使用されるMMUを示す図。
Claims (2)
- 【請求項1】 命令実行用プロセッサコアと、メモリ管
理ユニットとを有するプロセッサであって、前記メモリ
管理ユニットに、 1セットのアドレスに関連する情報を格納するキャッシ
ュと、 前記プロセッサコアからの指定アドレスに関連するプリ
フェッチコマンドを検出する回路と、 前記プロセッサコアによる命令実行中に前記プリフェッ
チコマンドに応答して前記指定アドレスに関連する情報
を取得し、前記情報を前記キャッシュに格納するための
回路とが含まれる前記プロセッサ。 - 【請求項2】 プロセッサ内におけるメモリ管理方法で
あって、 プロセッサコア内で命令を実行するステップと、 1セットのアドレスに関連する情報をキャッシュに格納
するステップと、 前記プロセッサコアからの指定アドレスに関連するプリ
フェッチコマンドを検出するステップと、 前記プロセッサコアによる命令実行中に前記プリフェッ
チコマンドに応答して前記指定アドレスに関連する情報
を取得し、前記指定アドレスに関連する前記情報を前記
キャッシュに格納するステップとを含む前記方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00400906.4 | 2000-03-31 | ||
EP00400906A EP1139222A1 (en) | 2000-03-31 | 2000-03-31 | Prefetch for TLB cache |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001290706A true JP2001290706A (ja) | 2001-10-19 |
Family
ID=8173627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001100260A Pending JP2001290706A (ja) | 2000-03-31 | 2001-03-30 | Tlbキャッシュのためのプリフェッチ |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP1139222A1 (ja) |
JP (1) | JP2001290706A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006048164A (ja) * | 2004-07-30 | 2006-02-16 | Fujitsu Ltd | 情報処理装置およびソフトウェアプリフェッチ制御方法 |
JP2006216012A (ja) * | 2005-02-04 | 2006-08-17 | Arm Ltd | メモリへのアクセスを制御するためのデータ処理装置および方法 |
WO2007052369A1 (ja) * | 2005-10-31 | 2007-05-10 | Fujitsu Limited | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
JP2007242003A (ja) * | 2006-02-07 | 2007-09-20 | Intel Corp | メモリ属性を用いるための技術 |
JPWO2008155825A1 (ja) * | 2007-06-19 | 2010-08-26 | 富士通株式会社 | 演算処理装置および演算処理方法 |
CN102163320A (zh) * | 2011-04-27 | 2011-08-24 | 福州瑞芯微电子有限公司 | 一种图像处理专用可配置的mmu电路 |
JP2014086092A (ja) * | 2012-10-26 | 2014-05-12 | Samsung Electronics Co Ltd | 保安コンテンツを処理するシステムオンチップ及びそれを含むモバイル装置 |
US9645934B2 (en) | 2013-09-13 | 2017-05-09 | Samsung Electronics Co., Ltd. | System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437536B2 (en) * | 2004-05-03 | 2008-10-14 | Sony Computer Entertainment Inc. | Systems and methods for task migration |
US7793067B2 (en) * | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an IOMMU |
US7930519B2 (en) * | 2008-12-17 | 2011-04-19 | Advanced Micro Devices, Inc. | Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit |
US8244978B2 (en) | 2010-02-17 | 2012-08-14 | Advanced Micro Devices, Inc. | IOMMU architected TLB support |
GB2479780B (en) | 2010-04-22 | 2018-04-04 | Advanced Risc Mach Ltd | Preload instruction control |
US8631212B2 (en) | 2011-09-25 | 2014-01-14 | Advanced Micro Devices, Inc. | Input/output memory management unit with protection mode for preventing memory access by I/O devices |
US9280492B2 (en) * | 2013-12-28 | 2016-03-08 | Intel Corporation | System and method for a load instruction with code conversion having access permissions to indicate failure of load content from registers |
US9792215B2 (en) | 2015-03-28 | 2017-10-17 | Qualcomm Incorporated | Command-driven translation pre-fetch for memory management units |
US10417140B2 (en) * | 2017-02-24 | 2019-09-17 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
CN111221465B (zh) | 2018-11-23 | 2023-11-17 | 中兴通讯股份有限公司 | Dsp处理器、***以及外部存储空间访问方法 |
US20220197821A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Device, system and method for selectively dropping software prefetch instructions |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613083A (en) * | 1994-09-30 | 1997-03-18 | Intel Corporation | Translation lookaside buffer that is non-blocking in response to a miss for use within a microprocessor capable of processing speculative instructions |
EP0752644A3 (en) * | 1995-07-07 | 2001-08-22 | Sun Microsystems, Inc. | Memory management unit incorporating prefetch control |
-
2000
- 2000-03-31 EP EP00400906A patent/EP1139222A1/en not_active Withdrawn
-
2001
- 2001-03-30 JP JP2001100260A patent/JP2001290706A/ja active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006048164A (ja) * | 2004-07-30 | 2006-02-16 | Fujitsu Ltd | 情報処理装置およびソフトウェアプリフェッチ制御方法 |
JP4520790B2 (ja) * | 2004-07-30 | 2010-08-11 | 富士通株式会社 | 情報処理装置およびソフトウェアプリフェッチ制御方法 |
JP2006216012A (ja) * | 2005-02-04 | 2006-08-17 | Arm Ltd | メモリへのアクセスを制御するためのデータ処理装置および方法 |
US7949835B2 (en) | 2005-02-04 | 2011-05-24 | Arm Limited | Data processing apparatus and method for controlling access to memory |
US7797494B2 (en) | 2005-10-31 | 2010-09-14 | Fujitsu Limited | Arithmetic processor, information processing apparatus and memory access method in arithmetic processor |
WO2007052369A1 (ja) * | 2005-10-31 | 2007-05-10 | Fujitsu Limited | 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法 |
JP2007242003A (ja) * | 2006-02-07 | 2007-09-20 | Intel Corp | メモリ属性を用いるための技術 |
JP4608011B2 (ja) * | 2007-06-19 | 2011-01-05 | 富士通株式会社 | 演算処理装置および演算処理方法 |
JPWO2008155825A1 (ja) * | 2007-06-19 | 2010-08-26 | 富士通株式会社 | 演算処理装置および演算処理方法 |
US8296518B2 (en) | 2007-06-19 | 2012-10-23 | Fujitsu Limited | Arithmetic processing apparatus and method |
CN102163320A (zh) * | 2011-04-27 | 2011-08-24 | 福州瑞芯微电子有限公司 | 一种图像处理专用可配置的mmu电路 |
JP2014086092A (ja) * | 2012-10-26 | 2014-05-12 | Samsung Electronics Co Ltd | 保安コンテンツを処理するシステムオンチップ及びそれを含むモバイル装置 |
US9645934B2 (en) | 2013-09-13 | 2017-05-09 | Samsung Electronics Co., Ltd. | System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer |
Also Published As
Publication number | Publication date |
---|---|
EP1139222A1 (en) | 2001-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789872B2 (en) | Slot/sub-slot prefetch architecture for multiple memory requestors | |
JP2001290706A (ja) | Tlbキャッシュのためのプリフェッチ | |
JP3816586B2 (ja) | 先取り命令を生成する方法とシステム | |
US5388247A (en) | History buffer control to reduce unnecessary allocations in a memory stream buffer | |
JP2554449B2 (ja) | キャッシュ・メモリを有するデータ処理システム | |
US6401192B1 (en) | Apparatus for software initiated prefetch and method therefor | |
JP4813485B2 (ja) | バーストリードライト動作による処理装置 | |
US5740406A (en) | Method and apparatus for providing fifo buffer input to an input/output device used in a computer system | |
JP4599172B2 (ja) | フリーバッファプールを使用することによるメモリの管理 | |
JP2000242558A (ja) | キャッシュシステム及びその操作方法 | |
JPH08263424A (ja) | コンピュータ装置 | |
US5696990A (en) | Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area | |
US5924126A (en) | Method and apparatus for providing address translations for input/output operations in a computer system | |
US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
JP2019096309A (ja) | メンテナンス動作の実行 | |
CN112416817A (zh) | 预取方法、信息处理装置、设备以及存储介质 | |
US5479629A (en) | Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address | |
US20080065855A1 (en) | DMAC Address Translation Miss Handling Mechanism | |
EP2562652B1 (en) | System and method for locking data in a cache memory | |
US5428759A (en) | Associative memory system having segment and page descriptor content-addressable memories | |
JP2007207249A (ja) | ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ | |
JP2001051958A (ja) | 多重プロセッサ多成分アーキテクチャのための統一メモリ管理システム | |
JP2010061220A (ja) | データ転送装置、データ転送方法およびプロセッサ | |
JP2008511882A (ja) | 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法 | |
Bae et al. | Ssdstreamer: Specializing i/o stack for large-scale machine learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080331 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080513 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080813 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080818 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081111 |