JP2000231549A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JP2000231549A
JP2000231549A JP2000029153A JP2000029153A JP2000231549A JP 2000231549 A JP2000231549 A JP 2000231549A JP 2000029153 A JP2000029153 A JP 2000029153A JP 2000029153 A JP2000029153 A JP 2000029153A JP 2000231549 A JP2000231549 A JP 2000231549A
Authority
JP
Japan
Prior art keywords
ram
flag information
microprocessor
memory
access
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.)
Granted
Application number
JP2000029153A
Other languages
English (en)
Other versions
JP4162825B2 (ja
Inventor
Shoji Sasahara
原 正 司 笹
Malick Kamuran
カムラン、マリック
Agurawaru Rakisshu
ラキッシュ、アグラワル
Raamu Michael
マイケル、ラーム
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of JP2000231549A publication Critical patent/JP2000231549A/ja
Application granted granted Critical
Publication of JP4162825B2 publication Critical patent/JP4162825B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 キャッシュメモリ以外の目的で利用可能なR
AMを内蔵して、このRAMに簡易かつ高速にアクセス
できるようにしたマイクロプロセッサの提供。 【解決手段】 本発明に係るマイクロプロセッサは、仮
想アドレスから物理アドレスへの変換を行うMMU3
と、ロード/ストア命令の実行を制御するLSU4とを
備える。LSU4は、外部メモリに対する読み出し/書
き込みデータを一時的に格納するDCACHE41と、キャッ
シュ以外の特殊な用途に使用されるSPRAM42と、DCACH
EやSPRAMをアクセスするための仮想アドレスを生成する
アドレス生成器43とを有する。MMU3は、仮想/物
理アドレス変換を行う変換テーブルを生成する。この変
換テーブル内には、SPRAMへのアクセスを行うか否かを
示すフラグ情報が含まれている。LSUは、このフラグ
がセットされていれば、無条件にSPRAMにアクセスに行
くため、SPRAMを主記憶メモリのメモリマップに割り当
てる必要がなくなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、外部メモリよりも
高速にデータの読み書きが可能なRAMを内蔵するマイ
クロプロセッサの内部構成に関する。
【0002】
【従来の技術】プロセッサがアクセスする外部デバイス
として従来知られているものは、メモリとI/Oデバイ
スである。メモリは、ほとんどのプロセッサに接続され
るため、プロセッサのメモリマップに直接割り当てられ
ることが多い。一方、I/Oデバイスは、メモリに比べ
ると、必要とするアドレス範囲が狭いため、以下の二つ
の方法のいずれかで管理するのが一般的である。
【0003】(1)I/O領域を特殊なメモリ空間に割り
当て、専用の命令でそのメモリ空間にアクセスする。例
えば、Intel社のx86プロセッサは、メモリとは別個
のI/O空間を持っており、in/out命令で明示的にその
空間へのアクセスを行う。
【0004】(2)通常の主記憶メモリマップ上にI/O
デバイスを割り当てる。例えば、MIPSアーキテクチャに
基づくプロセッサは、通常のメモリ操作と同様の命令で
I/Oデバイスをアクセスする。
【0005】最近のプロセッサは、上述した2つの方式
のうち、(2)の方式を採用する例が多い。その理由
は、通常のメモリアクセスと全く同じ命令が使えるの
で、命令セットが単純になり、プログラミングもしやす
いためである。しかし、I/Oデバイスにアクセスする
際は、キャッシュメモリの使用を禁止する、読み書
きの順序を保証する等の必要があり、ソフトウェアもし
くはハードウェアでこれに配慮しなくてはならない。
【0006】多くのプロセッサでは、同一のアドレスに
対する読み書きの順序は保証されるが、一つのI/Oの
複数のレジスタが複数のアドレスに割り当てられている
場合などでは、読み書きの順序が保証されないおそれが
ある。
【0007】特に、命令の実行順序を入れ替えるout-of
-order 実行を行うプロセッサは、特別に扱う必要があ
る。
【0008】また、これとは別に、近年の半導体の高集
積化やDRAM混載技術などの進展に伴い、キャッシュ
メモリ以外のメモリをプロセッサと同じチップ内に収容
できるようになり、この種のメモリを主記憶メモリやキ
ャッシュメモリと違う目的で使用することも可能になっ
た。
【0009】
【発明が解決しようとする課題】しかしながら、この種
のメモリを主記憶メモリと同じようにマッピングする
と、その領域は、外部の主記憶メモリやI/Oに割り当
てることができないため、メモリマップ割り当ての制限
になる。
【0010】また、この種の外部メモリ上にあるデータ
は、キャッシュメモリにキャッシュされたデータと同様
に高速に利用できるため、外部メモリのアクセスと同様
にキャッシュしてしまうのは無駄であるばかりでなく、
リフィルの際に外部メモリをキャッシュしているものを
追い出す可能性があり、さらにこの種のメモリとキャッ
シュとの間にリフィルのためのデータパスを付加する必
要がある。
【0011】また、キャッシュしない場合、この種のメ
モリの高速性を生かして、かつ、キャッシュの高速性を
生かすためには、メモリ参照の際に、この種のメモリに
アクセスしようとしているのか、あるいは、キャッシュ
メモリにアクセスしようとしているのかを自動判別しな
ければならない。
【0012】本発明は、上記の問題点を考慮に入れてな
されたものであり、その目的は、キャッシュメモリ以外
の目的で利用可能なRAMを内蔵して、このRAMに簡
易かつ高速にアクセスできるようにしたマイクロプロセ
ッサを提供することにある。
【0013】
【課題を解決するための手段】上記の目的を達成するた
め、仮想アドレスを物理アドレスに変換するメモリ管理
ユニットと、ロード/ストア命令を実行するロード/ス
トア命令実行部と、を備えたマイクロプロセッサは、前
記ロード/ストア命令実行部によるデータの読み書きが
可能で、かつ、外部メモリとの間でデータをDMA(Dir
ect Memory Access)転送可能なRAMを備え、前記メモ
リ管理ユニットは、前記RAMに対するアクセスを行う
か否かを示す第1のフラグ情報を生成するフラグ情報生
成部を有する。
【0014】請求項1の発明では、RAMに対するアク
セスを行うか否かを、第1のフラグ情報にて設定できる
ようにしたため、RAMに対するアクセス制御をプログ
ラマブルに切り替えることができる。
【0015】請求項2の発明では、第1のフラグ情報に
基づいてRAMにアクセスする場合は物理アドレスへの
変換を行わないようにしたため、高速アクセスが可能に
なる。
【0016】請求項3の発明では、第1のフラグ情報に
基づいてRAMにアクセスする場合はキャッシュ・ヒッ
ト/ミス結果とは独立にRAMへのアクセスを開始する
ようにしたため、キャッシュ・ヒット/ミス結果が得ら
れない間にRAMへのアクセスを開始できる。
【0017】請求項4の発明では、第1のフラグ情報が
記録された変換テーブルを設けるため、各アドレス単位
でRAMに対するアクセスを行うか否かを設定できる。
【0018】請求項5の発明では、I/O領域へのアク
セスを行うか否かを示す第2のフラグ情報を設けるた
め、I/O領域へのアクセスを許容するか否かをプログ
ラマブルに設定変更できる。
【0019】請求項6の発明では、第2のフラグ情報に
基づいてI/O領域にアクセスする場合はキャッシュ・
ヒット/ミス結果を無視するようにしたため、キャッシ
ュ・ヒット/ミス結果が得られない間にI/O領域への
アクセスを開始できる。
【0020】請求項7の発明では、第2のフラグ情報に
基づいてI/O領域にアクセスを行う場合であって、ロ
ード/ストア命令実行部がRAMもしくはI/O領域に
対する有効なロード/ストア命令を保持しており、か
つ、ストアバッファ中にまだRAMもしくはI/O領域
に書き込まれていないデータが存在する場合には、スト
アバッファ中のデータがRAMもしくはI/O領域に書
き込まれるまで、次のI/O領域へのアクセスを開始し
ないようにしたため、I/O領域への読み書きの順序を
ソフトウェアと完全に一致させることができる。
【0021】請求項8の発明では、第2のフラグ情報が
記録された変換テーブルを設けるため、各アドレス単位
でI/O領域に対するアクセスを行うか否かを設定でき
る。
【0022】
【発明の実施の形態】以下、本発明に係るマイクロプロ
セッサについて、図面を参照しながら具体的に説明す
る。
【0023】(第1の実施形態)図1は本発明に係るマ
イクロプロセッサの一実施形態の内部構成を示すブロッ
ク図である。図1のマイクロプロセッサは、外部バスB
1に接続されたバス・インタフェース・ユニット(Bus I
nterface Unit)1と、プロセッサが実行する命令のフェ
ッチ(取り込み)を行うIFU(Instruction Fetch Uni
t)2と、仮想アドレスから物理アドレスへの変換を行う
MMU(Memory Management Unit)3と、ロード/ストア
に関連する命令を実行するLSU(Load Store Unit)4
と、ロード/ストア以外の命令を実行する複数の実行ユ
ニット5a,5b,5cと、浮動小数点演算を行うFP
U(Floating Point Unit)6a,6bと、プロセッサ各
部の制御を行う制御論理部(Control Logic)7とを備え
る。
【0024】IFU2は、分岐命令等の命令の分岐先を
記憶するBTACを参照しつつPC(Program Counter)を生
成するPC PIPE21と、命令を一時的に格納するICACHE
(Instruction Cache Memory)22と、命令の種類を判別
してその命令を実行する実行ユニットを選択する命令発
行&ステージング部(Instruction issue & Staging blo
ck)23とを有する。
【0025】MMU3は、仮想アドレスから物理アドレ
スへの変換を行う3つのTLB(Translation Lookaside
Buffer)を有する。OS(Operating System)が有するペ
ージ・テーブルの一部のうち、物理ページ番号や保護情
報など、プロセッサが必要とするアドレス変換情報がT
LBに書き込まれており、これに基づいてMMU3は物
理アドレスへの変換を行う。
【0026】MMU3内の3つのTLBは、JTLB(Joint
Translation Lookaside Buffer)31と、ITLB(Instruc
tion Translation Lookaside Buffer)32と、DTLB33
(Data Translation Lookaside Buffer)33である。
【0027】ITLB32とDTLB33は、総称してマイクロ
TLBと呼ばれる。ITLB32は命令の仮想アドレスのデ
ータパス(Datapath)に直接接続される専用のTLBであ
り、DTLB33はデータの仮想アドレスのデータパスに直
列接続される専用のTLBである。これらTLBは、少
数ではあるが、高速にアドレス変換を行う。JTLB31
は、命令/データの別に関係なく、ページをマッピング
する。
【0028】これら3つのTLBは、例えばソフトウエ
アによって制御される。プロセッサは、JTLB31に変換
テーブル100が存在しない場合に例外を起こし、例外
ハンドラのプログラムがOSのページテーブルから該当
するページを探し出し、JTLB31に変換テーブル100
の情報を書き込む。
【0029】LSU4は、外部メモリに対する読み出し
/書き込みデータを一時的に格納するDCACHE(Data Cach
e Memory)41と、キャッシュ以外の特殊な用途に使用
されるSPRAM(Scratch Pad RAM)42と、DCACHE41やSP
RAM42をアクセスするための仮想アドレスを生成する
アドレス生成器(Virtual Address Computation)43と
を有する。
【0030】制御論理部7は、プロセッサ各部の制御を
行い、その内部には制御レジスタ(Control Register)7
1が設けられている。
【0031】次に、図1のマイクロプロセッサの動作を
簡単に説明する。まず、PC PIPE21で生成されたPC
(Program Counter)に基づいて、IFU2は命令のフェ
ッチを行う。なお、PCは仮想アドレスである。
【0032】ITLB32は、PCを仮想アドレスから物理
アドレスに変換する。物理アドレスは、ICACHE22内の
ITAGにおける検索に利用され、PCの指し示す命令がIC
ACHE22内に存在するか否かを調べる。PCの指し示す
命令がICACHE22内に存在しない場合(キャッシュ・ミ
スのとき)には、物理アドレスによって不図示の外部メ
モリへのアクセスを行う。
【0033】具体的には、キャッシュミスすると、ICAC
HE22を制御するIFU2の制御論理部からBIU1の
制御論理部に対して、キャッシュミスが起きたことを示
す情報と、アクセスを行うべき物理アドレス情報とが渡
される。BIU1は、これらの情報に基づいて外部メモ
リをアクセスし、アクセスが終了すると、データとキャ
ッシュ・ラインの取得が終わった旨の信号とをIFU2
に供給する。IFU2は、アクセスしたデータをICACHE
22に書き込む。同時に、リフィルされたキャッシュラ
インのうち、PCの指し示す命令と、場合によっては、
PCの指し示す命令の後に続くいくつかの命令を、命令
発行&ステージング部23に供給する。
【0034】一方、PCの指し示す命令がICACHE22内
に存在する場合には、該当するICACHE22内の命令と、
場合によってはPCの指し示す命令の後に続くいくつか
の命令が命令発行&ステージング部23に供給される。
【0035】命令発行&ステージング部23は、命令の
種類を判別し、命令を実際に実行する実行ユニット(例
えば、LSU4や他の実行ユニット)を決定する。この
際、命令発行&ステージング部23は、各実行ユニット
の空き具合を鑑みて動的に判断する。
【0036】例えば、判別された命令がロード/ストア
命令の場合には、処理できる実行ユニットはLSU4だ
けなので、LSU4に命令を供給できる状態になると、
命令発行&ステージング部23はLSU4に命令を送
る。
【0037】次に、SPRAM42に対してロード/ストア
を行う場合の動作を説明する。図2は、図1のLSU4
内部の一部構成を図示したものであり、SPRAM42に関
係する部分を制御系(Control)8とデータパス(Datapat
h)に分けて図示している。
【0038】図2の制御系8は、命令の流れに応じて、
データパスに与える制御信号を生成する。データパス
は、制御系8からの制御信号に基づいてデータを流して
いく。これが命令の実行に相当する。
【0039】図2において、制御系8とデータパスとを
つないでいる各線は制御信号を示している。通常、制御
信号は制御系8からデータパスに供給される。なお、図
2では省略しているが、データパスから制御系8に供給
される制御信号も存在する。例えば、ICACHE22がミス
してパイプライン処理を止める場合には、データパスの
一部であるICACHE22のTAGからミス信号が制御系8
に供給されてパイプライン処理を停止させる。
【0040】図2において、符号10a〜10jで示し
たブロックは、パイプライン処理を行う際にステージを
区切るためのレジスタ構造を示している。これらブロッ
クは、回路的には、フリップフロップやラッチで構成さ
れ、クロックに同期して、読み出しや書き込みを行う。
以下では、これらブロックを総称してパイプラインレジ
スタと呼ぶ。
【0041】IFU2は、IFU制御論理部81(IFU C
ontrol)の制御を受けて、フェッチされた命令をパイプ
ラインレジスタ10aに格納する。命令はパイプライン
レジスタ10aから命令デコーダ(Instruction Decode
r)82に送られる。命令デコーダ82では、命令の識別
や命令の処理に必要な中間的な制御信号を生成する。中
間的な制御信号を生成する理由は、命令デコーダ82で
プロセッサのすべての制御信号を生成するのは量的およ
び速度的に不可能なためであり、命令デコーダ82は、
命令よりも演算器の制御信号に近く、かつ、演算器の制
御信号そのものよりも抽象的な信号を生成する。
【0042】フェッチされた命令がロード/ストア命令
であることが命令デコーダ82で分かった場合には、制
御信号群が、関係する制御論理部に送られる。具体的に
は、制御信号群は、図2中のパイプライン制御論理部(P
ipeline Control)83、GPR制御論理部(General Pur
pose Register Control)84、およびLSU制御論理部
(LSU Control)85に送られる。
【0043】パイプライン制御論理部83とLSU制御
論理部85では、データの流れのステージに同期する形
で命令や制御信号が流れていく。このため、制御系8と
データパスの双方にパイプラインレジスタ10a〜10
jが設けられている。
【0044】パイプライン制御論理部83は、パイプラ
インレジスタ10の中身の状況に応じて、パイプライン
の進行の制御を行う。例えば、演算器上でリソースハザ
ードが生じた場合には、パイプラインを停止するなどの
処理を行う。
【0045】LSU制御論理部85は、ロード/ストア
命令を実行するのに必要な制御信号を生成する。すなわ
ち、GPR制御論理部84の制御によりレジスタファイ
ル11からパイプラインレジスタ10に送られたデータ
は、アドレス生成器43に送られてアドレスが生成され
る。アドレス生成器43はアダー(Adder)制御論理部8
6により制御され、アドレス生成器43により生成され
たアドレスは、次段のパイプラインレジスタ10に送ら
れる。
【0046】SPR制御論理部(SPRAM Control)87
は、パイプライン制御論理部83とLSU制御論理部8
5からの信号を受けて、SPRAM42へのアクセスを行
う。その際、パイプラインレジスタ10中のアドレスを
使用する。このアドレスがロード命令であるときは、リ
ード・イネーブル信号を有効にし、ライト・イネーブル
信号を無効にする。そして、SPRAM42からデータを読
み出し、パイプラインレジスタ10に格納する。格納さ
れたデータは、次のステージでレジスタファイル11に
書き戻される。
【0047】一方、パイプラインレジスタ10中のアド
レスがストア命令であるときは、リード・イネーブル信
号を無効にし、ライト・イネーブル信号を有効にする。
そして、レジスタファイル11からステージされてきた
データをSPRAM42に書き込む。
【0048】一方、プロセッサ外のDMA(Direct Memo
ry Access)コントローラ9は、図示のように、外部バス
を介してプロセッサ内部のBIU制御論理部(BIU Contr
ol)88に接続されている。DMAコントローラ9がB
IU制御論理部88に制御信号を送ってDMA処理を開
始すると、BIU制御論理部88はSPR制御論理部8
7に信号を送ってSPRAM42をリード/ライトさせる。
すなわち、SPR制御論理部87は、BIU制御論理部
88を介して間接的にDMAコントローラ9とも接続さ
れている。
【0049】SPRAM42に対するアクセス要求がLSU
4とBIU12(BIU12からのアクセス要求は元は
DMAコントローラ9からのものである)の双方から同
時に発せられた場合は、SPR制御論理部87が両者を
調停してイネーブル信号群を決定し、アドレス入力とデ
ータ入力のセレクタを切り替える。
【0050】例えば、LSU4とBIU12によるSPRA
M42に対するアクセス要求の優先順位をプログラマブ
ルに制御するには、SPR制御論理部87に図2に点線
で示す制御レジスタ71を接続し、この制御レジスタ7
1の値を優先順位に応じてプログラマブルに変化させれ
ばよい。
【0051】図1および図2に示したSPRAM42は、画
像データ等の大量のデータをプロセッサで加工処理する
際に、一時的なメモ・パッド領域として用いるのに適し
ている。
【0052】図3はMMU3の内部の接続関係を示す図
である。上述したように、MMU3の内部には3つのT
LBが設けられるが、このうち、JTLB31が本来のTL
Bである。JTLB31は例えば48個のエントリーを有
し、ページ単位で仮想アドレスをマッピングし、物理ア
ドレスへの変換テーブル100を生成する。
【0053】JTLB31内に生成された変換テーブル10
0は、必要に応じて、ITLB32とDTLB33にコピーされ
る。このように、TLBを3つに分けた理由は、JTLB3
1はエントリー数が多いため、JTLB31でアドレスの変
換を行うと、変換処理に時間がかかることから、必要な
分だけITLB32やDTLB33にコピーして高速に変換処理
を行うようにしている。
【0054】図4はJTLB31内の変換テーブル100を
模式的に示した図である。変換テーブル100は、仮想
アドレスのページ番号と、仮想アドレスに対応する物理
アドレスと、フラグ情報とを対応づけたものである。
【0055】フラグ情報は、キャッシュが可能か否かを
示すCフラグと、メモリへの書き込みが可能か否かを示
すDフラグと、変換エントリーが有効か無効かを示すV
フラグと、SPRAM42へのアクセスを行うか否かを示す
Sフラグ(第1のフラグ情報)とを有する。
【0056】LSU4は、Sフラグが立っていれば、無
条件にSPRAM42にアクセスに行く。具体的には、仮想
アドレスの下位側のオフセットアドレスを用いてSPRAM
42にアクセスする。これにより、SPRAM42を物理メ
モリのメモリマップに割り当てなくて済み、メモリマッ
プの割り当てを簡易化できる。
【0057】また、Sフラグがセットされているときに
は、ICACHE22やDCACHE41のキャッシュ・ヒット/キ
ャッシュ・ミス結果を無視して、SPRAM42へのアクセ
スを行う。これにより、キャッシュ・ヒットしたか否か
を確認することなくSPRAM42にアクセスできるため、S
PRAM42に対する読み書きを高速に行うことができる。
【0058】なお、図4では、4種類のフラグを設ける
例を説明したが、フラグの種類や数は特に限定されな
い。例えば、I/O領域へのアクセス用にフラグを設け
てもよい。以下、このフラグを仮にI/Oフラグ(第2
のフラグ情報)と呼ぶ。
【0059】I/O領域にアクセスする際には、キャッ
シュメモリの使用を禁止し、かつ、読み書きの順序を保
証するのが望ましい。
【0060】図5は、I/O領域としてマップされたア
ドレスに対してロード/ストア命令を実行する際、その
命令に先行するストア命令の完了を保証するシステムの
一例を示す回路図である。図5のストアバッファ80
は、すべての書き込みデータを一時的に格納するのに用
いられる。
【0061】Cフラグがセットされ、かつ、I/Oフラ
グがセットされていない場合には、図5のゲートG1か
ら、ICACHE22またはDCACHE41の利用を許可するハイ
レベル信号(Cashed信号)がLSU制御論理部85に供給さ
れる。
【0062】また、I/Oフラグがセットされ、かつ、
ストアバッファ80中にまだメモリに書き込まれていな
いデータが存在し、かつ、LSU4中に有効なロード/
ストア命令が存在する場合には、図5のゲートG2か
ら、I/O領域アクセス用のロード/ストア命令をスト
ールする旨のハイレベル信号(Stall_Request信号)がパ
イプライン制御論理部83に供給される。
【0063】図5のような回路を設けることにより、ロ
ード/ストアの実行順序が保証されないシステムであっ
ても、最小限の回路付加により、I/O領域へのアクセ
ス前に、先行するストア命令の完了を保証することがで
きる。
【0064】このように、I/Oフラグを設けることに
より、I/O領域を主記憶メモリのメモリマップに割り
当てなくて済み、また、I/Oフラグがセットされてい
れば、強制的にキャッシュを無効にでき、かつソフトウ
ェアが配慮することなく書き込み順序を保証できるた
め、簡易かつ迅速にI/O領域にアクセスすることがで
きる。
【0065】上述した実施形態では、DMA転送が可能
なSPRAMの一例を説明したが、DMA転送が可能である
ことは必ずしも必須の要件ではない。DMA転送を行わ
ないSPRAMは、例えば、プロセッサが連続的に生成する
データの一時保管場所として用いられる。
【0066】
【発明の効果】本発明によれば、ロード/ストア命令実
行部によるデータの読み書きが可能で、かつ、外部メモ
リとの間でDMA転送可能なRAMに対してアクセスを
行うか否かを、第1のフラグ情報により判断するため、
RAMへのアクセスを高速に行うことができる。すなわ
ち、RAMにアクセスする際には、キャッシュ・ヒット
/ミス結果を参照しなくて済むため、通常のメモリより
も迅速にアクセスを行える。
【0067】また、このようなフラグ情報を設けること
で、通常のメモリアクセスと同様の命令を用いて上述し
たRAMにアクセスできるようになり、命令セットを単
純化でき、プログラム設計が容易になる。
【0068】同様に、I/O領域にアクセスするか否か
を第2のフラグ情報に基づいて判断するため、I/O領
域にアクセスするための特別な命令や、特別なメモリ割
り当てが不要となる。
【図面の簡単な説明】
【図1】本発明に係るマイクロプロセッサの一実施形態
の内部構成を示すブロック図。
【図2】図1のLSU内部の一部構成を図示した図。
【図3】MMUの内部の接続関係を示す図。
【図4】JTLB内の変換テーブルを模式的に示した図。
【図5】I/O領域へのアクセスの際、その命令に先行
するストア命令の完了を保証するシステムの一例を示す
回路図。
【符号の説明】
1 BIU 2 IFU 3 MMU 4 LSU 5a,5b,5c 実行ユニット 6a,6b,6c FPU 7 制御論理部 21 PC-pipe 22 ICACHE 23 命令発行&ステージング部 31 JTLB 32 ITLB 33 DTLB 41 データキャッシュ 42 SPRAM
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カムラン、マリック アメリカ合衆国カリフォルニア州、サンノ ゼ、リンコン、サークル、1060、トーシ バ、アメリカ、エレクトロニック、コンポ ーネンツ、インコーポレーテッド内 (72)発明者 ラキッシュ、アグラワル アメリカ合衆国カリフォルニア州、サンノ ゼ、リンコン、サークル、1060、トーシ バ、アメリカ、エレクトロニック、コンポ ーネンツ、インコーポレーテッド内 (72)発明者 マイケル、ラーム アメリカ合衆国カリフォルニア州、サンノ ゼ、リンコン、サークル、1060、トーシ バ、アメリカ、エレクトロニック、コンポ ーネンツ、インコーポレーテッド内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】仮想アドレスを物理アドレスに変換するメ
    モリ管理ユニットと、ロード/ストア命令を実行するロ
    ード/ストア命令実行部と、を備えたマイクロプロセッ
    サは、 前記ロード/ストア命令実行部によるデータの読み書き
    が可能なRAMを備え、 前記メモリ管理ユニットは、前記RAMに対するアクセ
    スを行うか否かを示す第1のフラグ情報を生成するフラ
    グ情報生成部を有することを特徴とするマイクロプロセ
    ッサ。
  2. 【請求項2】前記メモリ管理ユニットは、前記第1のフ
    ラグ情報に基づいて前記RAMにアクセスを行う場合に
    は、物理アドレスへの変換を行わずに仮想アドレス中の
    少なくとも一部のアドレス情報を用いて前記RAMにア
    クセスすることを特徴とする請求項1に記載のマイクロ
    プロセッサ。
  3. 【請求項3】外部メモリから読み出したデータを一時的
    に格納するキャッシュメモリを備え、 前記メモリ管理ユニットは、前記第1のフラグ情報に基
    づいて前記RAMにアクセスを行う場合には、前記キャ
    ッシュメモリに対するキャッシュ・ヒット/ミス結果に
    関係なく、前記RAMにアクセスすることを特徴とする
    請求項1または2に記載のマイクロプロセッサ。
  4. 【請求項4】前記メモリ管理ユニットは、仮想アドレス
    をページ単位で物理アドレスに変換する変換テーブルを
    生成するテーブル生成部を有し、 前記フラグ情報生成部は、仮想アドレスに対応する前記
    第1のフラグ情報をページ単位で前記変換テーブルに格
    納することを特徴とする請求項1〜3のいずれかに記載
    のマイクロプロセッサ。
  5. 【請求項5】前記フラグ情報格納部は、I/O領域への
    アクセスを行うか否かを示す第2のフラグ情報を生成す
    ることを特徴とする請求項1〜4のいずれかに記載のマ
    イクロプロセッサ。
  6. 【請求項6】前記メモリ管理ユニットは、前記第2のフ
    ラグ情報に基づいてI/O領域にアクセスを行う場合に
    は、前記キャッシュメモリに対するキャッシュ・ヒット
    /ミス結果を無視してI/O領域をアクセスすることを
    特徴とする請求項5に記載のマイクロプロセッサ。
  7. 【請求項7】前記RAMに格納すべきデータを、前記R
    AMに格納する前に一時的に格納するストアバッファを
    備え、 前記メモリ管理ユニットは、前記第2のフラグ情報に基
    づいてI/O領域にアクセスを行う場合であって、前記
    ロード/ストア命令実行部が前記RAMに対する有効な
    ロード/ストア命令を保持しており、かつ、前記ストア
    バッファ中にまだ前記RAMに書き込まれていないデー
    タが存在する場合には、前記ストアバッファ中のデータ
    が前記RAMに書き込まれるまで、I/O領域へのアク
    セスを中断することを特徴とする請求項5または6に記
    載のマイクロプロセッサ。
  8. 【請求項8】前記メモリ管理ユニットは、仮想アドレス
    をページ単位で物理アドレスに変換する変換テーブルを
    生成するテーブル生成部を有し、 前記フラグ情報生成部は、仮想アドレスに対応する前記
    第2のフラグ情報をページ単位で前記変換テーブルに格
    納することを特徴とする請求項5〜7のいずれかに記載
    のマイクロプロセッサ。
JP2000029153A 1999-02-08 2000-02-07 マイクロプロセッサ Expired - Fee Related JP4162825B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/246,407 US6412057B1 (en) 1999-02-08 1999-02-08 Microprocessor with virtual-to-physical address translation using flags
US09/246,407 1999-02-08

Publications (2)

Publication Number Publication Date
JP2000231549A true JP2000231549A (ja) 2000-08-22
JP4162825B2 JP4162825B2 (ja) 2008-10-08

Family

ID=22930544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000029153A Expired - Fee Related JP4162825B2 (ja) 1999-02-08 2000-02-07 マイクロプロセッサ

Country Status (2)

Country Link
US (1) US6412057B1 (ja)
JP (1) JP4162825B2 (ja)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003029967A (ja) * 2001-07-17 2003-01-31 Fujitsu Ltd マイクロプロセッサ
WO2003058454A2 (en) * 2001-12-28 2003-07-17 Intel Corporation Method for extending the local memory address space of a processor
WO2004031943A1 (ja) * 2002-09-30 2004-04-15 Renesas Technology Corp. データプロセッサ
JP2011065650A (ja) * 2009-09-18 2011-03-31 Intel Corp ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
WO2014014711A1 (en) * 2012-07-18 2014-01-23 Micron Technology, Inc Memory management for a hierarchical memory system
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10417236B2 (en) 2008-12-01 2019-09-17 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous DMA parallel processing of a single data stream by multiple devices
US10430210B2 (en) 2014-12-30 2019-10-01 Micron Technology, Inc. Systems and devices for accessing a state machine
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10684983B2 (en) 2009-12-15 2020-06-16 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
US10769099B2 (en) 2014-12-30 2020-09-08 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US11023758B2 (en) 2009-01-07 2021-06-01 Micron Technology, Inc. Buses for pattern-recognition processors
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
US11488645B2 (en) 2012-04-12 2022-11-01 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7864758B1 (en) * 2001-09-28 2011-01-04 Emc Corporation Virtualization in a storage system
US7496771B2 (en) * 2005-11-15 2009-02-24 Mips Technologies, Inc. Processor accessing a scratch pad on-demand to reduce power consumption
US8438003B2 (en) * 2007-04-12 2013-05-07 Cadence Design Systems, Inc. Methods for improved simulation of integrated circuit designs
US8291192B2 (en) * 2008-10-30 2012-10-16 Kyocera Document Solutions, Inc. Memory management system
US10409763B2 (en) * 2014-06-30 2019-09-10 Intel Corporation Apparatus and method for efficiently implementing a processor pipeline
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
CN110362509B (zh) * 2018-04-10 2024-04-12 北京忆恒创源科技股份有限公司 统一地址转换方法与统一地址空间
US11392380B2 (en) 2019-12-28 2022-07-19 Intel Corporation Apparatuses, methods, and systems to precisely monitor memory store accesses

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5924485A (ja) * 1982-07-30 1984-02-08 Toshiba Corp 入出力ペ−ジング機構
JP2774862B2 (ja) * 1990-07-16 1998-07-09 株式会社日立製作所 Dma制御装置および情報処理装置
GB2282471B (en) * 1993-09-29 1997-11-05 Advanced Risc Mach Ltd Cache storage
US5606683A (en) 1994-01-28 1997-02-25 Quantum Effect Design, Inc. Structure and method for virtual-to-physical address translation in a translation lookaside buffer
US5765194A (en) * 1996-05-01 1998-06-09 Hewlett-Packard Company Timing consistent dynamic compare with force miss circuit

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003029967A (ja) * 2001-07-17 2003-01-31 Fujitsu Ltd マイクロプロセッサ
WO2003058454A2 (en) * 2001-12-28 2003-07-17 Intel Corporation Method for extending the local memory address space of a processor
WO2003058454A3 (en) * 2001-12-28 2003-11-27 Intel Corp Method for extending the local memory address space of a processor
US7174429B2 (en) 2001-12-28 2007-02-06 Intel Corporation Method for extending the local memory address space of a processor
CN1299206C (zh) * 2001-12-28 2007-02-07 英特尔公司 扩展处理器的局部存储器地址空间的方法、设备和系统
WO2004031943A1 (ja) * 2002-09-30 2004-04-15 Renesas Technology Corp. データプロセッサ
US7415576B2 (en) 2002-09-30 2008-08-19 Renesas Technology Corp. Data processor with block transfer control
US10838966B2 (en) 2008-12-01 2020-11-17 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous DMA parallel processing of a single data stream by multiple devices
US10417236B2 (en) 2008-12-01 2019-09-17 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous DMA parallel processing of a single data stream by multiple devices
US11023758B2 (en) 2009-01-07 2021-06-01 Micron Technology, Inc. Buses for pattern-recognition processors
JP2013254524A (ja) * 2009-09-18 2013-12-19 Intel Corp ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
JP2011065650A (ja) * 2009-09-18 2011-03-31 Intel Corp ローカル物理メモリとリモート物理メモリとの間で共有されるバーチャルメモリのためのハードウェアサポートの提供
US9003164B2 (en) 2009-09-18 2015-04-07 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8719547B2 (en) 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US11768798B2 (en) 2009-12-15 2023-09-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US10684983B2 (en) 2009-12-15 2020-06-16 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US11226926B2 (en) 2009-12-15 2022-01-18 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US11488645B2 (en) 2012-04-12 2022-11-01 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select
US10831672B2 (en) 2012-07-18 2020-11-10 Micron Technology, Inc Memory management for a hierarchical memory system
WO2014014711A1 (en) * 2012-07-18 2014-01-23 Micron Technology, Inc Memory management for a hierarchical memory system
JP2015522886A (ja) * 2012-07-18 2015-08-06 マイクロン テクノロジー, インク. 階層メモリシステムのためのメモリ管理
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US10089242B2 (en) 2012-07-18 2018-10-02 Micron Technology, Inc. Memory management for a hierarchical memory system
US9747242B2 (en) 2013-03-15 2017-08-29 Micron Technology, Inc. Methods and apparatuses for providing data received by a plurality of state machine engines
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
US10372653B2 (en) 2013-03-15 2019-08-06 Micron Technology, Inc. Apparatuses for providing data received by a state machine engine
US11775320B2 (en) 2013-03-15 2023-10-03 Micron Technology, Inc. Overflow detection and correction in state machine engines
US11016790B2 (en) 2013-03-15 2021-05-25 Micron Technology, Inc. Overflow detection and correction in state machine engines
US10929154B2 (en) 2013-03-15 2021-02-23 Micron Technology, Inc. Overflow detection and correction in state machine engines
US10606787B2 (en) 2013-03-15 2020-03-31 Mircron Technology, Inc. Methods and apparatuses for providing data received by a state machine engine
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US10067901B2 (en) 2013-03-15 2018-09-04 Micron Technology, Inc. Methods and apparatuses for providing data received by a state machine engine
US10430210B2 (en) 2014-12-30 2019-10-01 Micron Technology, Inc. Systems and devices for accessing a state machine
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
US11947979B2 (en) 2014-12-30 2024-04-02 Micron Technology, Inc. Systems and devices for accessing a state machine
US11580055B2 (en) 2014-12-30 2023-02-14 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
US10769099B2 (en) 2014-12-30 2020-09-08 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
US11977902B2 (en) 2015-10-06 2024-05-07 Micron Technology, Inc. Methods and systems for event reporting
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US11816493B2 (en) 2015-10-06 2023-11-14 Micron Technology, Inc. Methods and systems for representing processing resources
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US10698697B2 (en) 2016-07-21 2020-06-30 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
US10402265B2 (en) 2016-09-29 2019-09-03 Micron Technology, Inc. Validation of a symbol response memory
US10339071B2 (en) 2016-09-29 2019-07-02 Micron Technology, Inc. System and method for individual addressing
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10521366B2 (en) 2016-09-29 2019-12-31 Micron Technology, Inc. System and method for individual addressing
US10949290B2 (en) 2016-09-29 2021-03-16 Micron Technology, Inc. Validation of a symbol response memory
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10789182B2 (en) 2016-09-29 2020-09-29 Micron Technology, Inc. System and method for individual addressing
US11194747B2 (en) 2016-10-20 2021-12-07 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US11829311B2 (en) 2016-10-20 2023-11-28 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices

Also Published As

Publication number Publication date
JP4162825B2 (ja) 2008-10-08
US6412057B1 (en) 2002-06-25

Similar Documents

Publication Publication Date Title
JP4162825B2 (ja) マイクロプロセッサ
US6549985B1 (en) Method and apparatus for resolving additional load misses and page table walks under orthogonal stalls in a single pipeline processor
US5510934A (en) Memory system including local and global caches for storing floating point and integer data
KR101467069B1 (ko) 일련의 페이지의 캐시 플러싱 및 일련의 엔트리의 tlb 무효화를 위한 시스템, 방법 및 장치
JP3285644B2 (ja) キャッシュメモリを有するデータプロセッサ
CN109240950B (zh) 处理器、区分系统管理模式条目的方法以及存储介质
US6138208A (en) Multiple level cache memory with overlapped L1 and L2 memory access
US9069690B2 (en) Concurrent page table walker control for TLB miss handling
EP3238074A1 (en) Cache accessed using virtual addresses
JP2008542948A (ja) コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ
US10552153B2 (en) Efficient range-based memory writeback to improve host to device communication for optimal power and performance
EP0664897B1 (en) High speed programmable logic controller
US11954044B2 (en) Translation lookaside buffer prewarming
KR20030010727A (ko) 변환 색인 버퍼 플러시 필터
JP2006302313A (ja) マイクロコード・キャッシュ・システム及び方法
JP3841810B2 (ja) データプロセッサ
JP3862959B2 (ja) マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法
JP4160228B2 (ja) マイクロプロセッサ
US6820254B2 (en) Method and system for optimizing code using an optimizing coprocessor
US6338128B1 (en) System and method for invalidating an entry in a translation unit
EP0726524A2 (en) Protocol and system for performing line-fill addressing during copy-back operation
US11080188B1 (en) Method to ensure forward progress of a processor in the presence of persistent external cache/TLB maintenance requests
JP2004272939A (ja) 1チップデータプロセッサ
JP3105110B2 (ja) 演算装置
TWI782754B (zh) 微處理器和在微處理器中實現的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080715

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080723

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees