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
Application number
JP2001100260A
Other languages
English (en)
Inventor
Gerard Chauvel
ショベル ジェラール
Serge Lassere
ラサール セルジュ
Inverno Dominique Benoit Jacques D
ベノワ ジャック ダンベルノ ドミニク
Ferguson Edward
ファーガソン エドワード
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2001290706A publication Critical patent/JP2001290706A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-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

(57)【要約】 【課題】 マルチプロセッサ環境において保護メカニズ
ムおよびダイナミックメモリ管理をサポートするため
に、メモリ管理ユニットを提供する。 【解決手段】 デジタル信号プロセッサ(30)または
他の処理装置で使用されるメモリ管理ユニット(42)
に、プリフェッチコマンドに応答して仮想アドレスから
物理アドレスへの変換を実行する回路を設ける。プリフ
ェッチコマンドはダミーレジスタへの書き込みアクセス
を実行することによって開始される。プリフェッチコマ
ンドが検出されると、生成された仮想アドレスに関連す
る物理ベースアドレスがTLBに現在存在するか否かを
確認するためにTLBがチェックされる。存在しなけれ
ば、ウォーキングテーブルロジックは、変換結果を取得
するためにメインメモリ(34)のテーブルルックアッ
プを実行する。ウォーキングテーブルロジックの動作
は、DSPコア(36)による連続動作を妨げずに行わ
れる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に電子回路、特
に計算装置に関するものである。
【0002】
【発明が解決しようとする課題】計算志向タスクを実行
するために、多くの新しい電子装置においてデジタル信
号プロセッサ(DSP)が利用される。DSP、MPU
(マイクロプロセッサユニット)および共有メモリを含
むマルチプロセッサ環境において、保護メカニズムとダ
イナミックメモリ管理をサポートするために、現在では
DSPはMPUに含まれる機能に似た完全なメモリ管理
ユニット(MMU)を持つ必要がある。装置によって
は、複数プロセッサの1つに動的にタスクをダウンロー
ドして、それにしたがってメモリを管理する必要があ
る。
【0003】従って、DSP上で実行中のタスクがマス
タープロセッサによって管理される共有メモリプールか
ら空きメモリを予約する場合、いくらかのMMUハード
ウェアサポートをDSPに統合する必要が生じる。
【0004】DSPで実行されるタスクのタイプによっ
ては、信号が処理中であることに起因して特定のリアル
タイムの制約がしばしば伴う。例えば、DSPは一般的
にビデオ・オーディオ処理と音声認識がサポートされる
装置で使用される。イベントの発生を待っている間DS
Pの処理動作を中断しなければならないと、これらの機
能はかなり損なわれるであろう。MMUを付加すれば、
ある程度の非決定性挙動が導入される。現在のアクセス
に対応する情報がTLB(translation l
ookaside buffer)キャッシュに存在し
ないとき(TLBミス)、情報はメインメモリ中のテー
ブルから検索する必要がある(「テーブルウォーキン
グ」table walking)。この動作は数十〜
数百のマイクロプロセッササイクルを要する。MMUに
よるテーブルウォーキング中、コアの動作は停止され、
DSPの機能が低下あるいは変動する。
【0005】したがって、DSPや他の処理装置用の予
測可能な(predictable)MMU設計が必要
である。
【0006】
【課題を解決するための手段】本発明によれば、多重プ
ロセッサ装置はメインメモリ、メインメモリに接続され
たマイクロプロセッサ、デジタル信号プロセッサを有す
る。デジタル信号プロセッサには、命令実行用プロセッ
サコアとメモリ管理ユニットを含む。メモリ管理ユニッ
トには、仮想ベースアドレスに関連するプリフェッチコ
マンドを検出するための回路と、プロセッサコアが命令
実行中にプリフェッチコマンドに応答してメインメモリ
から物理的ベースアドレスへの仮想ベースアドレス変換
を行うための回路とが含まれる。
【0007】本発明は従来技術より優れた利点を提供す
る。仮想ベースアドレスのプリフェッチを可能にするこ
とにより、TLBミスによる待ち時間が排除または大幅
に減少する。メインメモリにおける物理アドレスのテー
ブルルックアップの実行中にDSPコアが命令実行を継
続することができるので、プリフェッチ命令に起因する
待ち時間は最小限に抑えられる。本発明およびその特長
を更に理解するために、以下の記述では付図を参照す
る。
【0008】
【発明の実施の形態】付図1〜図4にしたがって本発明
を詳細に説明する。なお、付図において同等部材には同
一参照符号が使用される。
【0009】図1はマイクロプロセッサユニットで使用
されるような最新技術のMMU10のブロック図であ
る。TLB(translation lookasi
debuffer)キャッシュ12には、RAM16と
結合されるCAM14が含まれる。RAM16は、TL
B12にキャッシュされた仮想アドレスに関連する物理
アドレスを求めて上位アドレスビット(ベースアドレ
ス)をキャッシュする。RAM16の各物理ベースアド
レスについて、対応するCAMアドレスにおける物理ベ
ースアドレスに関連する対応の仮想アドレスビットの上
位アドレスビットがCAM12に格納される。したがっ
て、CAM14のアドレス“01”に格納された仮想ベ
ースアドレスはRAM16のアドレス“01”における
物理ベースアドレスに対応する。
【0010】マイクロプロセッサコアが仮想アドレスを
要求すると、CAM14に仮想ベースアドレスが格納さ
れているか否かを調べるためにTLBキャッシュ12が
チェックされる。格納されていれば(キャッシュヒッ
ト)、RAM16の対応位置から物理ベースアドレスが
検索される。物理ベースアドレスは、完全な物理アドレ
スを決定するために仮想アドレス(ページインデック
ス)の下位ビットと連結される。この物理アドレスはメ
モリ(以下、「メイン」メモリと呼ぶ)のアクセスに使
用される。RAM16には、物理ベースアドレスの他
に、各物理ベースアドレスのための保護ビット(AP)
も格納することができる。保護ビットは、対応するメモ
リページの使い方(例えば、書き込み禁止、実行のみ
等)を定義する。これらのビットはメモリアクセス中に
チェックされる。例えば、あるページが書き込み禁止に
されている場合にデータ書き込みでアクセスすると、C
PUに例外が返され、アドレスステータスレジスタは、
対応する違反タイプ、この場合の書き込みアクセス許可
違反で更新される。また、アドレスはデバッグあるいは
リカバリのために違反アドレスレジスタに格納される。
同様に、実行のみと定義されたページは、データアクセ
ス時に違反を生成する。
【0011】しかし、TLBキャッシュ12は限られた
数の物理仮想ベースアドレスしか格納することができ
ず、一般に、その数は可能な仮想ベースアドレス数より
もはるかに少ない。したがって、コード実行時にマイク
ロプロセッサから要求される仮想アドレスがTLBキャ
ッシュで見つからないことがある。これをキャッシュ
「ミス」と呼ぶ。TLBキャッシュミスが生じると、複
数のアクションが取られる。まず、マイクロプロセッサ
コアから要求される仮想アドレスに対応する物理ベース
アドレスは、WTL(ウォーキングテーブルロジック)
20がメインメモリに格納されているテーブルを参照し
て決定する。テーブルウォーキング過程中、Ready
信号を無効にすることによって、プロセッサコアが待ち
状態に置かれる。
【0012】図2は、図1のウォーキングテーブルロジ
ックに関連して、仮想ベースアドレスから物理ベースア
ドレスを導くためのウォーキングテーブル過程を例示し
ている。ウォーキングテーブルロジック法は当該技術分
野でよく知られていて、図2はその過程の基本を示して
いる。ウォーキングテーブルロジック20のTTBレジ
スタ22は外部メモリ(図示せず)に格納された第1レ
ベルの記述子テーブルのベースを示すアドレスを保持す
る。処理コア12からの仮想アドレスには数個のインデ
ックスフィールドが含まれ、それらの数および位置は仮
想アドレスに関連するページタイプによって異なる。仮
想アドレスからの変換テーブルベース(TTBレジス
タ)アドレスおよびindex1は、第1レベルの記述
子テーブル内の位置を識別するために連結される。この
位置はウォーキングテーブルロジック20にベースアド
レスおよび「Pビット」を与えるもので、「Pビット」
は、ベースアドレスが仮想アドレスに関連する物理的な
メモリ位置を指すのか、または低位レベルの記述子テー
ブルを指すかのかをウォーキングテーブルロジックに知
らせる。図2において、この位置はメインメモリ24の
第2レベルの記述子テーブルへのベースアドレスを示し
ている。
【0013】このベースアドレスは仮想アドレスからの
index2と連結されて第2レベルの記述子テーブル
中の位置を指す。その位置はもう一つづつのベースアド
レスおよびPビットを与える。図では、Pビットは、関
連ベースアドレスが第3レベルの記述子テーブル内の位
置を指すことを示している。したがって、ベースアドレ
スは仮想アドレスからのindex3と連結され、第3
レベルの記述子テーブル内の位置を指す。この位置はベ
ースアドレスと関連Pビットを与え、ベースアドレスが
所望の物理アドレスに関連することを示す。また、位置
は物理アドレスに関連する許可ビットも含む。したがっ
て、ベースアドレスはメインメモリにアクセスするため
の仮想アドレスからのページインデックスと連結され
る。
【0014】この例では所望物理アドレスのベースアド
レスを識別するのに3個の記述子テーブルを使用してい
るが、任意数のテーブルを使用することができる。物理
アドレスを決定するために使用されるテーブル数は、物
理アドレスに関連するページサイズによって変わる。
【0015】物理アドレスを形成するために使用される
ベースアドレスと、許可ビットは、TLBキャッシュの
RAM部分にロードされる前に、ウォーキングテーブル
ロジック52のWTTレジスタ26に一時的に格納され
る。これは、許可ビット等の属性ビットが異なるレベル
のテーブルから検索される可能性があるからである。物
理ベースアドレスの先頭に要するすべての情報が常に最
後のテーブルに格納されるとは限らない。WTTレジス
タ26は、仮想ベースアドレスをCAM14にロードす
ると共に、関連物理ベースアドレスと、置換アドレス回
路(図示せず)で決定される位置における許可ビットと
をRAM16にロードするために使用される。置換アド
レス回路はランダムあるいは巡回的に置換アドレスを生
成することができる。
【0016】キャッシュミスの場合、何百サイクルかが
アドレス変換に費やされるかもしれない。一般に、これ
はシステム応答を遅くする。しかし、実時間処理が伴う
場合、例えばDSPを使用する多くの装置においては、
メモリ管理ユニットの非決定性挙動によって装置の性能
が著しく低下することがある。
【0017】当該技術分野では様々なTLBおよびWT
Lアーキテクチャが知られており、それらは上記と比較
してかなり異なるかもしれない。
【0018】図3は、DSP30とマイクロプロセッサ
ユニット(MPU)32を使用する計算機装置28の基
本的ブロック図を示す。他の装置、例えばコプロセッ
サ、追加のDSP、マイクロプロセッサユニット等も計
算機装置28で使用することができる。メインメモリ3
4はバス39を介してDSP30およびMPU32と接
続される。
【0019】図3の基本図において、処理コア36と、
ローカルメモリ40に接続された複数のバス38とがD
SP30に含まれ、ローカルメモリは、例えばデータメ
モリ/キャッシュ、命令メモリ/キャッシュ、あるいは
一体化されたデータ・命令メモリ/キャッシュである。
メモリ管理ユニット(MMU)42はバス38に接続さ
れ、そしてバス39を介してメインメモリ34およびM
PU32に接続される。DSP30の動作はリアルタイ
ムのオペレーティングシステム44で制御される。
【0020】MPUはMPU48および内部キャッシュ
メモリ50に接続された処理コア46を含む。MPU3
2はオペレーティングシステム52によって制御され
る。
【0021】動作に関して、DSP30の処理コア36
は任意に設計することができる。典型的には、DSPの
処理コアは高速乗算器アキュムレータ回路(通常MAC
と呼ばれる)を特徴とする。ローカルメモリ40には、
DSP動作に使用されるデータおよび命令が格納され
る。図の実施例では、高速アクセスのための仮想アドレ
ッシング時にダイレクトデコーディングを利用して、プ
ロセッサコア36によるローカルメモリへの直接アドレ
ッシングが可能である。このバス構造はローカルメモリ
40に対してプログラムおよびデータ情報を効率的に読
み書きできるように設計されているが、他の様々なバス
構造も使用可能である。代替的に、MMUを介してロー
カルメモリ40にアドレスすることも可能であるが、ロ
ーカルメモリアクセス速度が低下する。図3は単一のM
MU42を示しているが、各バスに別々のハードウェア
を設ければ、アクセスのコンフリクトを避けて性能の向
上を図ることができる。
【0022】MMU42は、メインメモリ34にアクセ
スするためにDSP30の処理コア36による仮想アド
レシングの使用を可能にする。DSPは一般に、命令を
検索してオペランドを読み書きするために1命令サイク
ルごとに1回以上のアドレス計算を実行する1個以上の
アドレス生成ユニット(AGU)を含む。
【0023】仮想アドレシングを使用することにより、
DSPの能力が大幅に増加する。特に、DSPはタスク
によって保護された環境における独立タスクを処理する
ことができる。各タスクに直線的な(連続した)メモリ
スペースを割り当てることが可能であり、その場合、各
タスクがシステム内で処理されている唯一のタスクであ
るかのように見える。これは、ほとんどのソフトウェア
がサードパーティーによって書かれ、他のアプリケーシ
ョンのことを意識していないので、将来のシステムにお
いて重要になるだろう。
【0024】図の実施例において、オペレーティングシ
ステム54とMPU32の組み合わせにより、各プロセ
ッサまたはDSP上で実行中の異なるプロセスを管理し
てそれらにメモリを動的に割り当てる統合メモリ管理シ
ステムが実現され、保護された直線的メモリスペースが
すべてのアプリケーション(プロセス)に与えられる。
外部共有メモリ34における対応物理アドレスが非直線
的であるにもかかわらず、この統合メモリ管理ユニット
により、すべてのプロセスおよびすべてのプロセッサに
直線的メモリスペースが割り当てられる。また、統合メ
モリ管理システムは効率的でかつ周知の保護メカニズム
を提供する。
【0025】図4はプリフェッチ機能付きのMMUのブ
ロック図を示しており、これはマルチプロセッサシステ
ムにおいて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から送られたデータかを
選択する。
【0026】DSPマスターの場合、DSPプログラム
をTLB内容にするために、DSPデータバスをマルチ
プレクサ(74)を介してRAM64に接続する必要が
ある。
【0027】ウォーキングテーブルロジック78には、
WTTレジスタの他に状態・制御レジスタ80と、変換
テーブルの先頭アドレスを保持するTTB_DSPレジ
スタ82とが含まれる。状態・制御レジスタ80はWT
L_activeビットを含む。ウォーキングテーブル
ロジック78はTLB_prefetch信号とTLB
_miss制御信号を受け取り、Ready制御信号を
出力する。マルチプレクサ86はTLB_miss信号
によって制御され、ウォーキングテーブルロジック78
とTLB60の一方から物理ベースアドレスを選択す
る。プリフェッチアドレスレジスタ86はプリフェッチ
アドレスを格納する。
【0028】動作中、仮想ベースアドレスおよび対応す
る物理ベースアドレスをTLB60にロードするため
に、MMU42はDSPコア36をブロックすることな
くプリフェッチ動作を実行することができる。また、D
SPは、置換カウンタを所望値に設定してビクティム
(victim)エントリーをプログラムすることによ
って、TLB60内の置換位置をモニターする。このよ
うに、コア動作をブロックすることなくプリフェッチ動
作を実行することにより、タスクに関連する他のリアル
タイム制約に影響しかねないTLBミス関連の非決定性
レイテンシが避けられる。
【0029】タスクがデータまたは命令へのアクセスを
必要とすることが予想され、そのデータまたは命令に対
応する領域は仮想ベースアドレスとTLB60に格納さ
れた物理ベースアドレスとの間で対応する変換結果をも
たない場合、タスク途中の任意のところでプリフェッチ
コマンドを使用することが可能である。DSPコア36
からのアクセス要求の前に(変換結果がまだTLBに格
納されていなければ)、プリフェッチ命令によってTL
B60に変換結果が強制的に格納される。したがって、
タスクによるアクセス要求実行時にはTLB60に変換
結果が存在し、潜在的なTLBミスは避けられるだろ
う。
【0030】図4に示される実施例では、DSPのI/
Oスペースにプリフェッチダミーレジスタが示される。
この入出力アドレスへの書き込みアクセスは制御回路6
8によって検出される。図の実施例では、書き込みアク
セスはプリフェッチ動作を開始するために制御回路68
に接続されたVDAバスを介して行われる。ダミーレジ
スタへの書き込みアクセスに応答して、TLB_pre
fetch制御信号は制御回路68によってイネーブル
にされる。同時に、プリフェッチ仮想ベースアドレスが
DSPデータバスに現れる。制御回路68はマルチプレ
クサ66を介してDSPデータバスを選択してプリフェ
ッチ仮想ベースアドレスをCAM62に送り、検索/書
き込み制御信号を検索に設定する。その結果、TLB6
0は、プリフェッチ仮想ベースアドレスがCAM62に
おいて現在有効であるか否かを単一サイクルの比較によ
って検出する。この検索でCAMヒットが得られると、
プリフェッチを続ける必要がなくなり、DSPの実行が
継続される。
【0031】プリフェッチ仮想ベースアドレスの検索に
よるCAMミスの場合、TLB_prefetchおよ
びTLB_miss制御信号(ウォーキングテーブルロ
ジック78のプリフェッチメカニズムを開始するために
は双方共にイネーブルでなければならない)に応答して
メインメモリ34から対応する物理ベースアドレスをフ
ェッチするためにウォーキングテーブルロジック78が
使用される。プリフェッチ仮想ベースアドレスの値はP
refetch_addressレジスタ86に格納さ
れる。WTBアクティブビットは、次のプリフェッチま
たは通常のTLBミス動作が現在のプリフェッチコマン
ドを妨害しないように設定される。プリフェッチ動作
中、ウォーキングテーブルロジック78はReady信
号をディスエーブルにしないので、DSPはTLB動作
と平行して後続のプリフェッチ命令を実行し続ける。
【0032】ウォーキングテーブルロジック78がテー
ブルウォーキング動作を一旦完了して、Prefetc
h_addressレジスタ86に格納された仮想ベー
スアドレスに対する変換を決定すると、対応する物理ベ
ースアドレスがTLB60に格納され、WTL_act
iveビットはディスエーブルになる。テーブルウォー
キング動作の結果をTLB60に格納するための置換策
には、いくつかの形式がある。TLB60に存在するエ
ントリーをランダムに置換するランダム置換スキームは
一般に好ましくない。それは、前にプリフェッチされた
変換結果がそのアドレスへの実際のアクセス以前に次の
TLBプリフェッチあるいはTLBミスによって置換さ
れてしまうからである。TLB60の非ロックアドレス
範囲での巡回(または、FIFO)置換策または、DS
Pコア36から供給され、DSPアドレスのレジスタに
格納されたビクティムアドレスをもつプログラマブル置
換策。巡回モードでは、TLB60に新しい変換結果が
ロードされたときだけ、ビクティムカウンタはインクリ
メントする。
【0033】一実施例では、プログラマブル巡回ランダ
ム置換策が提供される。DSPコア36が次に置換され
るエントリーのTLBアドレスを格納するビクティムカ
ウンタ(図示せず)に新しい値を書き込む度に、ビクテ
ィムカウンタは計数モードをランダムから巡回(FIF
O)に変更し、TLB上限に達するまでそれを続ける。
また、ステータス・制御レジスタ80のステータスビッ
トによってビクティムカウンタモードをランダムまたは
巡回的にプログラムすることができる。テーブルウォー
キング動作から得られるアドレス値がWTTレジスタに
ロードされた時にイネーブルになるEnd_prefe
tch制御信号に応答して、プリフェッチアドレス情報
はビクティムカウンタに格納されているアドレスにおけ
るRAM64とCAM62に格納される。
【0034】ウォーキングテーブルロジック78による
テーブルルックアップは1度に1回だけである。従っ
て、前のTLBプリフェッチ動作が完了する前に次のプ
リフェッチ動作が始まると、前のプリフェッチ動作が終
わるまでDSP30は(Ready制御信号をディスエ
ーブルにすることによって)待たされる。代替として、
Prefetch_addressレジスタ86の代わ
りに、プリフェッチ要求をキューに入れるためにレジス
タファイルまたはFIFOレジスタを使用することが可
能であり、そうすれば、ウォーキングテーブルロジック
78が受け取った順序で要求が処理される。
【0035】同様に、メインメモリへのDSPアクセス
時にTLBミスがあると、DSP30は待ちになる。T
LBミスが一旦ウォーキングテーブルロジック78で処
理されれば、プリフェッチ動作は継続する。
【0036】上述の2つの状況以外でも、DSPコア3
6はプリフェッチ動作実行中に命令の実行を続ける場合
がある。一般に、コード中の適切な位置にプリフェッチ
命令を置くことによって、このような状態は両方とも排
除または軽減することができる。ここに記述されるプリ
フェッチメカニズムによって、プリフェッチ中のタスク
実行を遅らせことなくTLBミスは完全に回避され、ミ
スに関連する予測不能な待ち時間が排除される。
【0037】通常、DSPは与えられた期間にシーケン
シャルタスクのデータを処理する。1つのタスクが終わ
ると、DSPはMPUからの割込みあるいはメッセージ
によって発生する次のタスクに備える。したがって、プ
リフェッチレジスタ86として使用されるキュー(例え
ば、レジスタファイルまたはFIFOレジスタ)は、次
のタスクに備えてTLBを準備するための多重プリフェ
ッチコマンドを保持するのに適切な構造である。その他
の手法、例えばメモリアクセスのためにコードを先読み
することによってプリフェッチコマンドを実行する手法
も使用することができる。
【0038】また、実施例では仮想アドレスを物理アド
レスに変換するためにMMU42が設けられているが、
アドレス変換を行わないメモリ管理に使用することも可
能である。例えば、RAM64に保護ビットを格納し
て、コア36から発生する物理アドレスからのアクセス
に応答して、その保護ビットをチェックすることができ
る。物理アドレスがCAM62にキャッシュされていな
いとすれば、メモリアドレス変換に関して上述したよう
に、コア36が命令実行を継続している間に、ウォーキ
ングテーブルロジック78はTLB60におけるミスを
避けるためにメインメモリ34から保護ビットをプリフ
ェッチすることができる。
【0039】明細書全般にわたって、様々なメモリ、バ
ス容量等について特定のアーキテクチャの特徴と詳細サ
イズを例示したが、特定のDSPを実施するための設計
は多様である。例えば、このTLB設計はマイクロプロ
セッサ設計に使用される多数のうちの一つである。
【0040】発明の詳細説明はいくつかの代表的実施例
について述べたものであるが、この記述から当業者は上
記実施例の様々な変形や代替実施例のヒントを得ること
ができよう。本発明は特許請求の範囲の規定されるすべ
ての変更、代替実施例を包含する。
【0041】以上の説明に関して以下の項を開示する。 (1)命令実行用プロセッサコアと、メモリ管理ユニッ
トとを有するプロセッサであって、前記メモリ管理ユニ
ットが、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項記載のプロセッサ。
【0042】(14)メインメモリと、前記メインメモ
リに接続されたマイクロプロセッサと、命令実行用プロ
セッサコアおよびメモリ管理ユニットを含むデジタル信
号プロセッサとを有するマルチプルプロセッサ装置であ
って、前記メモリ管理ユニットに、各アドレスに関連す
る情報を格納するキャッシュと、指定アドレスに関連す
るプリフェッチコマンドを検出する回路と、前記プロセ
ッサコアによる命令実行中に前記プリフェッチコマンド
に応答して前記メインメモリから前記指定アドレスに関
連する情報を取得し、前記指定アドレスに関連する前記
情報を前記キャッシュに格納する回路とが含まれる前記
マルチプルプロセッサ装置。 (15)前記指定アドレスを仮想アドレスとし、前記仮
想アドレスから物理アドレスへの変換を取得する回路が
前記情報取得回路に含まれる第14項記載のマルチプル
プロセッサ装置。 (16)変換回路にウォーキングテーブルロジックが含
まれる第15項記載のマルチプルプロセッサ装置。 (17)前記キャッシュにTLBが含まれる第14項記
載のマルチプルプロセッサ装置。 (18)前記指定アドレスに関連する前記情報が前記キ
ャッシュに存在するか否かを決定する回路が前記取得回
路に含まれる第14項記載のマルチプルプロセッサ装
置。 (19)所定アドレスへの書き込みアクセスを検出する
回路が前記検出回路に含まれる第14項記載のマルチプ
ルプロセッサ装置。 (20)入出力アドレス空間における所定アドレスへの
書き込みアクセスを検出する回路が前記検出回路に含ま
れる第19項記載のマルチプルプロセッサ装置。 (21)前記仮想ベースアドレスを格納するレジスタが
前記取得回路に含まれる第14項記載のマルチプルプロ
セッサ装置。 (22)複数の仮想ベースアドレスを格納するキューが
前記レジスタに含まれる第21項記載のマルチプルプロ
セッサ装置。
【0043】(23)プロセッサ内におけるメモリ管理
方法であって、プロセッサコア内で命令を実行するステ
ップと、1セットのアドレスに関連する情報をキャッシ
ュに格納するステップと、前記プロセッサコアからの指
定アドレスに関連するプリフェッチコマンドを検出する
ステップと、前記プロセッサコアによる命令実行中に前
記プリフェッチコマンドに応答して前記指定アドレスに
関連する情報を取得し、前記指定アドレスに関連する前
記情報を前記キャッシュに格納するステップとを含む前
記方法。 (24)前記アドレスの変換を取得するステップが前記
情報取得ステップに含まれる第23項記載の方法。 (25)前記プロセッサコアからの仮想アドレスを物理
アドレスに変換するステップが前記変換取得ステップに
含まれる第24項記載の方法。 (26)ウォーキングテーブルロジックを用いた情報取
得ステップが前記情報取得ステップに含まれる第23項
記載の方法。 (27)情報をTLBに格納するステップが前記情報格
納ステップに含まれる第23項記載の方法。 (28)前記指定アドレスに関連する前記情報が前記キ
ャッシュに存在するか否かを表す信号に応答して、前記
情報取得ステップを開始する第23項記載の方法。 (29)所定アドレスへの書き込みアクセスを検出する
ステップが前記検出ステップに含まれる第23項記載の
方法。 (30)入出力アドレス空間における所定アドレスへの
書き込みアクセスを検出するステップが前記検出ステッ
プに含まれる第29項記載の方法。 (31)前記キャッシュに入れるための前記書き込みア
クセスが検出された時に前記プロセッサコアからのデー
タバスを選択するステップが前記指定アドレスに含まれ
る第29項記載の方法。 (32)前の指定アドレスに関する情報を現在取得中で
あるか否かを表す状態情報を生成するステップが前記情
報取得ステップに含まれる第23項記載の方法。
【0044】(33)デジタル信号プロセッサ(30)
または他の処理装置で使用されるメモリ管理ユニット
(42)に、プリフェッチコマンドに応答して仮想アド
レスから物理アドレスへの変換を実行する回路を設け
る。プリフェッチコマンドはダミーレジスタへの書き込
みアクセスを実行することによって開始される。プリフ
ェッチコマンドが検出されると、生成された仮想アドレ
スに関連する物理ベースアドレスがTLBに現在存在す
るか否かを確認するためにTLBがチェックされる。存
在しなければ、ウォーキングテーブルロジックは、変換
結果を取得するためにメインメモリ(34)のテーブル
ルックアップを実行する。ウォーキングテーブルロジッ
クの動作は、DSPコア(36)による連続動作を妨げ
ずに行われる。
【図面の簡単な説明】
【図1】マイクロプロセッサに使用される従来技術のM
MUを示す図。
【図2】テーブルウォーキングによる物理アドレスのル
ックアップを示す図。
【図3】マルチプロセッサシステムのブロック図。
【図4】マルチプロセッサシステムにおいてDSPまた
は他のプロセッサで使用されるMMUを示す図。
【符号の説明】
10 MMU 12 TLBキャッシュ 14 CAM 16 RAM 30 DSP 32 MPU 34 メインメモリ 39 バス 36 処理コア 40 ローカルメモリ 42 MMU 46 コア 48 MMU 50 キャッシュ 54 OS
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/08 519 G06F 12/08 519Z 561 561 (72)発明者 セルジュ ラサール フランス国 フルジュ、リウディ サン ジャン ド カンヌ、 リュ デュ マル ソー 278 (72)発明者 ドミニク ベノワ ジャック ダンベルノ フランス国 ビヤヌーブ ルーベ、ジヌス ティエール、シュマン デ バス、47 (72)発明者 エドワード ファーガソン アメリカ合衆国 テキサス、プラノ、クロ ストン ドライブ 1544

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 命令実行用プロセッサコアと、メモリ管
    理ユニットとを有するプロセッサであって、前記メモリ
    管理ユニットに、 1セットのアドレスに関連する情報を格納するキャッシ
    ュと、 前記プロセッサコアからの指定アドレスに関連するプリ
    フェッチコマンドを検出する回路と、 前記プロセッサコアによる命令実行中に前記プリフェッ
    チコマンドに応答して前記指定アドレスに関連する情報
    を取得し、前記情報を前記キャッシュに格納するための
    回路とが含まれる前記プロセッサ。
  2. 【請求項2】 プロセッサ内におけるメモリ管理方法で
    あって、 プロセッサコア内で命令を実行するステップと、 1セットのアドレスに関連する情報をキャッシュに格納
    するステップと、 前記プロセッサコアからの指定アドレスに関連するプリ
    フェッチコマンドを検出するステップと、 前記プロセッサコアによる命令実行中に前記プリフェッ
    チコマンドに応答して前記指定アドレスに関連する情報
    を取得し、前記指定アドレスに関連する前記情報を前記
    キャッシュに格納するステップとを含む前記方法。
JP2001100260A 2000-03-31 2001-03-30 Tlbキャッシュのためのプリフェッチ Pending JP2001290706A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (13)

* Cited by examiner, † Cited by third party
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