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

マイクロプロセッサ Download PDF

Info

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
Application number
JP2000029153A
Other languages
English (en)
Other versions
JP2000231549A (ja
Inventor
原 正 司 笹
カムラン、マリック
ラキッシュ、アグラワル
マイケル、ラーム
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

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
  • Bus Control (AREA)
  • Microcomputers (AREA)

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デバイスにアクセスする際は、▲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. 仮想アドレスを物理アドレスに変換するメモリ管理ユニットと、ロード/ストア命令を実行するロード/ストア命令実行部と、を備えたマイクロプロセッサは、
    主記憶メモリのメモリマップに割り当てられないメモリ空間を有し、前記主記憶メモリをアクセスするための第1のアドレスの下位側の第2のアドレスを用いて前記ロード/ストア命令実行部によるデータの読み書きが可能なRAMを備え、
    前記メモリ管理ユニットは、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード/ストア命令実行部が前記RAMに対するアクセスを行うか否かを示す第1のフラグ情報を設定するフラグ情報設定部を有することを特徴とするマイクロプロセッサ。
  2. 外部メモリから読み出したデータを一時的に格納するキャッシュメモリを備え、
    前記メモリ管理ユニットは、前記第1のフラグ情報が所定の値の場合には、前記キャッシュメモリに対するキャッシュ・ヒット/ミス結果を確認することなく、前記RAMへのアクセスを許容することを特徴とする請求項1または2に記載のマイクロプロセッサ。
  3. 前記メモリ管理ユニットは、仮想アドレスと、物理アドレスと、前記第1のフラグ情報との対応関係をページ単位で管理することを特徴とする請求項1または2のいずれかに記載のマイクロプロセッサ。
  4. 前記フラグ情報設定部は、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード/ストア命令実行部がI/O領域に対するアクセスを行うか否かを示す第2のフラグ情報を設定することを特徴とする請求項1〜のいずれかに記載のマイクロプロセッサ。
  5. 前記メモリ管理ユニットは、前記第2のフラグ情報が所定の値の場合には、前記キャッシュメモリを無効にして、I/O領域をアクセスすることを特徴とする請求項に記載のマイクロプロセッサ。
  6. 前記RAMに格納すべきデータを、前記RAMに格納する前に一時的に格納するストアバッファを備え、
    前記メモリ管理ユニットは、前記第2のフラグ情報に基づいてI/O領域にアクセスを行う場合であって、前記ロード/ストア命令実行部が前記RAMに対する有効なロード/ストア命令を保持しており、かつ、前記ストアバッファ中にまだ前記RAMに書き込まれていないデータが存在する場合には、前記ストアバッファ中のデータが前記RAMに書き込まれるまで、I/O領域へのアクセスを中断することを特徴とする請求項4または5に記載のマイクロプロセッサ。
  7. 前記メモリ管理ユニットは、仮想アドレスと、物理アドレスと、前記第2のフラグ情報との対応関係をページ単位で管理することを特徴とする請求項4〜6のいずれかに記載のマイクロプロセッサ。
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 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)

* 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 マイクロプロセッサ
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)

* 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

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