JP4162825B2 - マイクロプロセッサ - Google Patents
マイクロプロセッサ Download PDFInfo
- Publication number
- JP4162825B2 JP4162825B2 JP2000029153A JP2000029153A JP4162825B2 JP 4162825 B2 JP4162825 B2 JP 4162825B2 JP 2000029153 A JP2000029153 A JP 2000029153A JP 2000029153 A JP2000029153 A JP 2000029153A JP 4162825 B2 JP4162825 B2 JP 4162825B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- ram
- flag information
- load
- instruction
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address 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)
- Bus Control (AREA)
- Microcomputers (AREA)
Description
【発明の属する技術分野】
本発明は、外部メモリよりも高速にデータの読み書きが可能な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デバイスにアクセスする際は、▲1▼キャッシュメモリの使用を禁止する、▲2▼読み書きの順序を保証する等の必要があり、ソフトウェアもしくはハードウェアでこれに配慮しなくてはならない。
【0006】
多くのプロセッサでは、同一のアドレスに対する読み書きの順序は保証されるが、一つのI/Oの複数のレジスタが複数のアドレスに割り当てられている場合などでは、読み書きの順序が保証されないおそれがある。
【0007】
特に、命令の実行順序を入れ替えるout-of-order 実行を行うプロセッサは、特別に扱う必要がある。
【0008】
また、これとは別に、近年の半導体の高集積化やDRAM混載技術などの進展に伴い、キャッシュメモリ以外のメモリをプロセッサと同じチップ内に収容できるようになり、この種のメモリを主記憶メモリやキャッシュメモリと違う目的で使用することも可能になった。
【0009】
【発明が解決しようとする課題】
しかしながら、この種のメモリを主記憶メモリと同じようにマッピングすると、その領域は、外部の主記憶メモリやI/Oに割り当てることができないため、メモリマップ割り当ての制限になる。
【0010】
また、この種の外部メモリ上にあるデータは、キャッシュメモリにキャッシュされたデータと同様に高速に利用できるため、外部メモリのアクセスと同様にキャッシュしてしまうのは無駄であるばかりでなく、リフィルの際に外部メモリをキャッシュしているものを追い出す可能性があり、さらにこの種のメモリとキャッシュとの間にリフィルのためのデータパスを付加する必要がある。
【0011】
また、キャッシュしない場合、この種のメモリの高速性を生かして、かつ、キャッシュの高速性を生かすためには、メモリ参照の際に、この種のメモリにアクセスしようとしているのか、あるいは、キャッシュメモリにアクセスしようとしているのかを自動判別しなければならない。
【0012】
本発明は、上記の問題点を考慮に入れてなされたものであり、その目的は、キャッシュメモリ以外の目的で利用可能なRAMを内蔵して、このRAMに簡易かつ高速にアクセスできるようにしたマイクロプロセッサを提供することにある。
【0013】
本発明の一態様によれば、仮想アドレスを物理アドレスに変換するメモリ管理ユニットと、ロード/ストア命令を実行するロード/ストア命令実行部と、を備えたマイクロプロセッサは、
主記憶メモリのメモリマップに割り当てられないメモリ空間を有し、前記主記憶メモリをアクセスするための第1のアドレスの下位側の第2のアドレスを用いて前記ロード/ストア命令実行部によるデータの読み書きが可能なRAMを備え、
前記メモリ管理ユニットは、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード/ストア命令実行部が前記RAMに対するアクセスを行うか否かを示す第1のフラグ情報を設定するフラグ情報設定部を有することを特徴とするマイクロプロセッサが提供される。
【0014】
本発明の一態様では、RAMに対するアクセスを行うか否かを、第1のフラグ情報にて設定できるようにしたため、RAMに対するアクセス制御をプログラマブルに切り替えることができる。
【0015】
本発明の一態様では、第1のフラグ情報に基づいてRAMにアクセスする場合は物理アドレスへの変換を行わないようにしたため、高速アクセスが可能になる。
【0016】
本発明の一態様では、第1のフラグ情報に基づいてRAMにアクセスする場合はキャッシュ・ヒット/ミス結果とは独立にRAMへのアクセスを開始するようにしたため、キャッシュ・ヒット/ミス結果が得られない間にRAMへのアクセスを開始できる。
【0017】
本発明の一態様では、第1のフラグ情報が記録された変換テーブルを設けるため、各アドレス単位でRAMに対するアクセスを行うか否かを設定できる。
【0018】
本発明の一態様では、I/O領域へのアクセスを行うか否かを示す第2のフラグ情報を設けるため、I/O領域へのアクセスを許容するか否かをプログラマブルに設定変更できる。
【0019】
本発明の一態様では、第2のフラグ情報に基づいてI/O領域にアクセスする場合はキャッシュ・ヒット/ミス結果を無視するようにしたため、キャッシュ・ヒット/ミス結果が得られない間にI/O領域へのアクセスを開始できる。
【0020】
本発明の一態様では、第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のマイクロプロセッサは、外部バスB1に接続されたバス・インタフェース・ユニット(Bus Interface Unit)1と、プロセッサが実行する命令のフェッチ(取り込み)を行うIFU(Instruction Fetch Unit)2と、仮想アドレスから物理アドレスへの変換を行うMMU(Memory Management Unit)3と、ロード/ストアに関連する命令を実行するLSU(Load Store Unit)4と、ロード/ストア以外の命令を実行する複数の実行ユニット5a,5b,5cと、浮動小数点演算を行うFPU(Floating Point Unit)6a,6bと、プロセッサ各部の制御を行う制御論理部(Control Logic)7とを備える。
【0024】
IFU2は、分岐命令等の命令の分岐先を記憶するBTACを参照しつつPC(Program Counter)を生成するPC PIPE21と、命令を一時的に格納するICACHE(Instruction Cache Memory)22と、命令の種類を判別してその命令を実行する実行ユニットを選択する命令発行&ステージング部(Instruction issue & Staging block)23とを有する。
【0025】
MMU3は、仮想アドレスから物理アドレスへの変換を行う3つのTLB(Translation Lookaside Buffer)を有する。OS(Operating System)が有するページ・テーブルの一部のうち、物理ページ番号や保護情報など、プロセッサが必要とするアドレス変換情報がTLBに書き込まれており、これに基づいてMMU3は物理アドレスへの変換を行う。
【0026】
MMU3内の3つのTLBは、JTLB(Joint Translation Lookaside Buffer)31と、ITLB(Instruction 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 Cache Memory)41と、キャッシュ以外の特殊な用途に使用されるSPRAM(Scratch Pad RAM)42と、DCACHE41やSPRAM42をアクセスするための仮想アドレスを生成するアドレス生成器(Virtual Address Computation)43とを有する。
【0030】
制御論理部7は、プロセッサ各部の制御を行い、その内部には制御レジスタ(Control Register)71が設けられている。
【0031】
次に、図1のマイクロプロセッサの動作を簡単に説明する。まず、PC PIPE21で生成されたPC(Program Counter)に基づいて、IFU2は命令のフェッチを行う。なお、PCは仮想アドレスである。
【0032】
ITLB32は、PCを仮想アドレスから物理アドレスに変換する。物理アドレスは、ICACHE22内のITAGにおける検索に利用され、PCの指し示す命令がICACHE22内に存在するか否かを調べる。PCの指し示す命令がICACHE22内に存在しない場合(キャッシュ・ミスのとき)には、物理アドレスによって不図示の外部メモリへのアクセスを行う。
【0033】
具体的には、キャッシュミスすると、ICACHE22を制御するIFU2の制御論理部からBIU1の制御論理部に対して、キャッシュミスが起きたことを示す情報と、アクセスを行うべき物理アドレス情報とが渡される。BIU1は、これらの情報に基づいて外部メモリをアクセスし、アクセスが終了すると、データとキャッシュ・ラインの取得が終わった旨の信号とをIFU2に供給する。IFU2は、アクセスしたデータをICACHE22に書き込む。同時に、リフィルされたキャッシュラインのうち、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とデータパス(Datapath)に分けて図示している。
【0038】
図2の制御系8は、命令の流れに応じて、データパスに与える制御信号を生成する。データパスは、制御系8からの制御信号に基づいてデータを流していく。これが命令の実行に相当する。
【0039】
図2において、制御系8とデータパスとをつないでいる各線は制御信号を示している。通常、制御信号は制御系8からデータパスに供給される。なお、図2では省略しているが、データパスから制御系8に供給される制御信号も存在する。例えば、ICACHE22がミスしてパイプライン処理を止める場合には、データパスの一部であるICACHE22のTAGからミス信号が制御系8に供給されてパイプライン処理を停止させる。
【0040】
図2において、符号10a〜10jで示したブロックは、パイプライン処理を行う際にステージを区切るためのレジスタ構造を示している。これらブロックは、回路的には、フリップフロップやラッチで構成され、クロックに同期して、読み出しや書き込みを行う。以下では、これらブロックを総称してパイプラインレジスタと呼ぶ。
【0041】
IFU2は、IFU制御論理部81(IFU Control)の制御を受けて、フェッチされた命令をパイプラインレジスタ10aに格納する。命令はパイプラインレジスタ10aから命令デコーダ(Instruction Decoder)82に送られる。命令デコーダ82では、命令の識別や命令の処理に必要な中間的な制御信号を生成する。中間的な制御信号を生成する理由は、命令デコーダ82でプロセッサのすべての制御信号を生成するのは量的および速度的に不可能なためであり、命令デコーダ82は、命令よりも演算器の制御信号に近く、かつ、演算器の制御信号そのものよりも抽象的な信号を生成する。
【0042】
フェッチされた命令がロード/ストア命令であることが命令デコーダ82で分かった場合には、制御信号群が、関係する制御論理部に送られる。具体的には、制御信号群は、図2中のパイプライン制御論理部(Pipeline Control)83、GPR制御論理部(General Purpose Register Control)84、およびLSU制御論理部(LSU Control)85に送られる。
【0043】
パイプライン制御論理部83とLSU制御論理部85では、データの流れのステージに同期する形で命令や制御信号が流れていく。このため、制御系8とデータパスの双方にパイプラインレジスタ10a〜10jが設けられている。
【0044】
パイプライン制御論理部83は、パイプラインレジスタ10の中身の状況に応じて、パイプラインの進行の制御を行う。例えば、演算器上でリソースハザードが生じた場合には、パイプラインを停止するなどの処理を行う。
【0045】
LSU制御論理部85は、ロード/ストア命令を実行するのに必要な制御信号を生成する。すなわち、GPR制御論理部84の制御によりレジスタファイル11からパイプラインレジスタ10に送られたデータは、アドレス生成器43に送られてアドレスが生成される。アドレス生成器43はアダー(Adder)制御論理部86により制御され、アドレス生成器43により生成されたアドレスは、次段のパイプラインレジスタ10に送られる。
【0046】
SPR制御論理部(SPRAM Control)87は、パイプライン制御論理部83とLSU制御論理部85からの信号を受けて、SPRAM42へのアクセスを行う。その際、パイプラインレジスタ10中のアドレスを使用する。このアドレスがロード命令であるときは、リード・イネーブル信号を有効にし、ライト・イネーブル信号を無効にする。そして、SPRAM42からデータを読み出し、パイプラインレジスタ10に格納する。格納されたデータは、次のステージでレジスタファイル11に書き戻される。
【0047】
一方、パイプラインレジスタ10中のアドレスがストア命令であるときは、リード・イネーブル信号を無効にし、ライト・イネーブル信号を有効にする。そして、レジスタファイル11からステージされてきたデータをSPRAM42に書き込む。
【0048】
一方、プロセッサ外のDMA(Direct Memory Access)コントローラ9は、図示のように、外部バスを介してプロセッサ内部のBIU制御論理部(BIU Control)88に接続されている。DMAコントローラ9がBIU制御論理部88に制御信号を送ってDMA処理を開始すると、BIU制御論理部88はSPR制御論理部87に信号を送ってSPRAM42をリード/ライトさせる。すなわち、SPR制御論理部87は、BIU制御論理部88を介して間接的にDMAコントローラ9とも接続されている。
【0049】
SPRAM42に対するアクセス要求がLSU4とBIU12(BIU12からのアクセス要求は元はDMAコントローラ9からのものである)の双方から同時に発せられた場合は、SPR制御論理部87が両者を調停してイネーブル信号群を決定し、アドレス入力とデータ入力のセレクタを切り替える。
【0050】
例えば、LSU4とBIU12によるSPRAM42に対するアクセス要求の優先順位をプログラマブルに制御するには、SPR制御論理部87に図2に点線で示す制御レジスタ71を接続し、この制御レジスタ71の値を優先順位に応じてプログラマブルに変化させればよい。
【0051】
図1および図2に示したSPRAM42は、画像データ等の大量のデータをプロセッサで加工処理する際に、一時的なメモ・パッド領域として用いるのに適している。
【0052】
図3はMMU3の内部の接続関係を示す図である。上述したように、MMU3の内部には3つのTLBが設けられるが、このうち、JTLB31が本来のTLBである。JTLB31は例えば48個のエントリーを有し、ページ単位で仮想アドレスをマッピングし、物理アドレスへの変換テーブル100を生成する。
【0053】
JTLB31内に生成された変換テーブル100は、必要に応じて、ITLB32とDTLB33にコピーされる。このように、TLBを3つに分けた理由は、JTLB31はエントリー数が多いため、JTLB31でアドレスの変換を行うと、変換処理に時間がかかることから、必要な分だけITLB32やDTLB33にコピーして高速に変換処理を行うようにしている。
【0054】
図4はJTLB31内の変換テーブル100を模式的に示した図である。変換テーブル100は、仮想アドレスのページ番号と、仮想アドレスに対応する物理アドレスと、フラグ情報とを対応づけたものである。
【0055】
フラグ情報は、キャッシュが可能か否かを示すCフラグと、メモリへの書き込みが可能か否かを示すDフラグと、変換エントリーが有効か無効かを示すVフラグと、SPRAM42へのアクセスを行うか否かを示すSフラグ(第1のフラグ情報)とを有する。
【0056】
LSU4は、Sフラグが立っていれば、無条件にSPRAM42にアクセスに行く。具体的には、仮想アドレスの下位側のオフセットアドレスを用いてSPRAM42にアクセスする。これにより、SPRAM42を物理メモリのメモリマップに割り当てなくて済み、メモリマップの割り当てを簡易化できる。
【0057】
また、Sフラグがセットされているときには、ICACHE22やDCACHE41のキャッシュ・ヒット/キャッシュ・ミス結果を無視して、SPRAM42へのアクセスを行う。これにより、キャッシュ・ヒットしたか否かを確認することなくSPRAM42にアクセスできるため、SPRAM42に対する読み書きを高速に行うことができる。
【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
Claims (7)
- 仮想アドレスを物理アドレスに変換するメモリ管理ユニットと、ロード/ストア命令を実行するロード/ストア命令実行部と、を備えたマイクロプロセッサは、
主記憶メモリのメモリマップに割り当てられないメモリ空間を有し、前記主記憶メモリをアクセスするための第1のアドレスの下位側の第2のアドレスを用いて前記ロード/ストア命令実行部によるデータの読み書きが可能なRAMを備え、
前記メモリ管理ユニットは、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード/ストア命令実行部が前記RAMに対するアクセスを行うか否かを示す第1のフラグ情報を設定するフラグ情報設定部を有することを特徴とするマイクロプロセッサ。 - 外部メモリから読み出したデータを一時的に格納するキャッシュメモリを備え、
前記メモリ管理ユニットは、前記第1のフラグ情報が所定の値の場合には、前記キャッシュメモリに対するキャッシュ・ヒット/ミス結果を確認することなく、前記RAMへのアクセスを許容することを特徴とする請求項1または2に記載のマイクロプロセッサ。 - 前記メモリ管理ユニットは、仮想アドレスと、物理アドレスと、前記第1のフラグ情報との対応関係をページ単位で管理することを特徴とする請求項1または2のいずれかに記載のマイクロプロセッサ。
- 前記フラグ情報設定部は、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード/ストア命令実行部がI/O領域に対するアクセスを行うか否かを示す第2のフラグ情報を設定することを特徴とする請求項1〜3のいずれかに記載のマイクロプロセッサ。
- 前記メモリ管理ユニットは、前記第2のフラグ情報が所定の値の場合には、前記キャッシュメモリを無効にして、I/O領域をアクセスすることを特徴とする請求項4に記載のマイクロプロセッサ。
- 前記RAMに格納すべきデータを、前記RAMに格納する前に一時的に格納するストアバッファを備え、
前記メモリ管理ユニットは、前記第2のフラグ情報に基づいてI/O領域にアクセスを行う場合であって、前記ロード/ストア命令実行部が前記RAMに対する有効なロード/ストア命令を保持しており、かつ、前記ストアバッファ中にまだ前記RAMに書き込まれていないデータが存在する場合には、前記ストアバッファ中のデータが前記RAMに書き込まれるまで、I/O領域へのアクセスを中断することを特徴とする請求項4または5に記載のマイクロプロセッサ。 - 前記メモリ管理ユニットは、仮想アドレスと、物理アドレスと、前記第2のフラグ情報との対応関係をページ単位で管理することを特徴とする請求項4〜6のいずれかに記載のマイクロプロセッサ。
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 JP2000231549A (ja) | 2000-08-22 |
| JP4162825B2 true 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) |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003029967A (ja) * | 2001-07-17 | 2003-01-31 | Fujitsu Ltd | マイクロプロセッサ |
| US7864758B1 (en) * | 2001-09-28 | 2011-01-04 | Emc Corporation | Virtualization in a storage system |
| US7174429B2 (en) * | 2001-12-28 | 2007-02-06 | Intel Corporation | Method for extending the local memory address space of a processor |
| JP3841810B2 (ja) | 2002-09-30 | 2006-11-08 | 株式会社ルネサステクノロジ | データプロセッサ |
| 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 |
| US20100138575A1 (en) | 2008-12-01 | 2010-06-03 | Micron Technology, Inc. | Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices |
| US20100174887A1 (en) | 2009-01-07 | 2010-07-08 | Micron Technology Inc. | Buses for Pattern-Recognition Processors |
| US8719547B2 (en) | 2009-09-18 | 2014-05-06 | Intel Corporation | Providing hardware support for shared virtual memory between local and remote physical memory |
| US9323994B2 (en) | 2009-12-15 | 2016-04-26 | Micron Technology, Inc. | Multi-level hierarchical routing matrices for pattern-recognition processors |
| US20130275709A1 (en) | 2012-04-12 | 2013-10-17 | Micron Technology, Inc. | Methods for reading data from a storage buffer including delaying activation of a column select |
| US9524248B2 (en) * | 2012-07-18 | 2016-12-20 | 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 |
| US10409763B2 (en) * | 2014-06-30 | 2019-09-10 | Intel Corporation | Apparatus and method for efficiently implementing a processor pipeline |
| US11366675B2 (en) | 2014-12-30 | 2022-06-21 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
| WO2016109570A1 (en) | 2014-12-30 | 2016-07-07 | Micron Technology, Inc | Systems and devices for accessing a state machine |
| US10769099B2 (en) | 2014-12-30 | 2020-09-08 | Micron Technology, Inc. | Devices for time division multiplexing of state machine engine signals |
| US10007435B2 (en) | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
| US10846103B2 (en) | 2015-10-06 | 2020-11-24 | 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 |
| US10691964B2 (en) | 2015-10-06 | 2020-06-23 | Micron Technology, Inc. | Methods and systems for event reporting |
| 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 |
| US10019311B2 (en) | 2016-09-29 | 2018-07-10 | Micron Technology, Inc. | Validation of a symbol response memory |
| US12197510B2 (en) | 2016-10-20 | 2025-01-14 | Micron Technology, Inc. | Traversal of S portion of a graph problem to be solved using automata processor |
| US10929764B2 (en) | 2016-10-20 | 2021-02-23 | Micron Technology, Inc. | Boolean satisfiability |
| US10592450B2 (en) | 2016-10-20 | 2020-03-17 | Micron Technology, Inc. | Custom compute cores in integrated circuit devices |
| 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)
| 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 |
-
1999
- 1999-02-08 US US09/246,407 patent/US6412057B1/en not_active Expired - Fee Related
-
2000
- 2000-02-07 JP JP2000029153A patent/JP4162825B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000231549A (ja) | 2000-08-22 |
| 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 | |
| US4701844A (en) | Dual cache for independent prefetch and execution units | |
| US7073044B2 (en) | Method and apparatus for sharing TLB entries | |
| US8341379B2 (en) | R and C bit update handling | |
| JP3285644B2 (ja) | キャッシュメモリを有するデータプロセッサ | |
| US5379394A (en) | Microprocessor with two groups of internal buses | |
| JP2012530979A (ja) | 所与の範囲のページのキャッシュフラッシュおよび所与の範囲のエントリのtlb無効化を行なうシステム、方法、および装置 | |
| US12511240B2 (en) | Translation lookaside buffer prewarming | |
| JP2008542948A (ja) | コンフィギュラブルトランスレーションルックアサイドバッファを備えたマイクロプロセッサ | |
| US5860105A (en) | NDIRTY cache line lookahead | |
| JP3862959B2 (ja) | マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法 | |
| US5946718A (en) | Shadow translation look-aside buffer and method of operation | |
| JP3825974B2 (ja) | トランスレーション・ルックアサイド・バッファ回路 | |
| US6446189B1 (en) | Computer system including a novel address translation mechanism | |
| GB2378278A (en) | Memory snapshot as a background process allowing write requests | |
| JP4160228B2 (ja) | マイクロプロセッサ | |
| CN101371232B (zh) | 在用户级存储器中提供后备存储器 | |
| US6820254B2 (en) | Method and system for optimizing code using an optimizing coprocessor | |
| US8041930B2 (en) | Data processing apparatus and method for controlling thread access of register sets when selectively operating in secure and non-secure domains | |
| US6393523B1 (en) | Mechanism for invalidating instruction cache blocks in a pipeline processor | |
| US5687350A (en) | Protocol and system for performing line-fill address during copy-back operation | |
| US6209083B1 (en) | Processor having selectable exception handling modes | |
| JP3105110B2 (ja) | 演算装置 | |
| JP2002108702A (ja) | マイクロコンピュータ及びデータ処理装置 |
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 |