(57)【特許請求の範囲】
【請求項１】
仮想アドレスを物理アドレスに変換するメモリ管理ユニットと、ロード／ストア命令を実行するロード／ストア命令実行部と、を備えたマイクロプロセッサは、
主記憶メモリのメモリマップに割り当てられないメモリ空間を有し、前記主記憶メモリをアクセスするための第１のアドレスの下位側の第２のアドレスを用いて前記ロード／ストア命令実行部によるデータの読み書きが可能なＲＡＭを備え、
前記メモリ管理ユニットは、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード／ストア命令実行部が前記ＲＡＭに対するアクセスを行うか否かを示す第１のフラグ情報を設定するフラグ情報設定部を有することを特徴とするマイクロプロセッサ。
【請求項２】
外部メモリから読み出したデータを一時的に格納するキャッシュメモリを備え、
前記メモリ管理ユニットは、前記第１のフラグ情報が所定の値の場合には、前記キャッシュメモリに対するキャッシュ・ヒット／ミス結果を確認することなく、前記ＲＡＭへのアクセスを許容することを特徴とする請求項１または２に記載のマイクロプロセッサ。
【請求項３】
前記メモリ管理ユニットは、仮想アドレスと、物理アドレスと、前記第１のフラグ情報との対応関係をページ単位で管理することを特徴とする請求項１または２のいずれかに記載のマイクロプロセッサ。
【請求項４】
前記フラグ情報設定部は、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード／ストア命令実行部がＩ／Ｏ領域に対するアクセスを行うか否かを示す第２のフラグ情報を設定することを特徴とする請求項１〜３のいずれかに記載のマイクロプロセッサ。
【請求項５】
前記メモリ管理ユニットは、前記第２のフラグ情報が所定の値の場合には、前記キャッシュメモリを無効にして、Ｉ／Ｏ領域をアクセスすることを特徴とする請求項４に記載のマイクロプロセッサ。
【請求項６】
前記ＲＡＭに格納すべきデータを、前記ＲＡＭに格納する前に一時的に格納するストアバッファを備え、
前記メモリ管理ユニットは、前記第２のフラグ情報に基づいてＩ／Ｏ領域にアクセスを行う場合であって、前記ロード／ストア命令実行部が前記ＲＡＭに対する有効なロード／ストア命令を保持しており、かつ、前記ストアバッファ中にまだ前記ＲＡＭに書き込まれていないデータが存在する場合には、前記ストアバッファ中のデータが前記ＲＡＭに書き込まれるまで、Ｉ／Ｏ領域へのアクセスを中断することを特徴とする請求項４または５に記載のマイクロプロセッサ。
【請求項７】
前記メモリ管理ユニットは、仮想アドレスと、物理アドレスと、前記第２のフラグ情報との対応関係をページ単位で管理することを特徴とする請求項４〜６のいずれかに記載のマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、外部メモリよりも高速にデータの読み書きが可能なＲＡＭを内蔵するマイクロプロセッサの内部構成に関する。
【０００２】
【従来の技術】
プロセッサがアクセスする外部デバイスとして従来知られているものは、メモリとＩ／Ｏデバイスである。メモリは、ほとんどのプロセッサに接続されるため、プロセッサのメモリマップに直接割り当てられることが多い。一方、Ｉ／Ｏデバイスは、メモリに比べると、必要とするアドレス範囲が狭いため、以下の二つの方法のいずれかで管理するのが一般的である。
【０００３】
(1)Ｉ／Ｏ領域を特殊なメモリ空間に割り当て、専用の命令でそのメモリ空間にアクセスする。例えば、Intel社のｘ８６プロセッサは、メモリとは別個のＩ／Ｏ空間を持っており、in/out命令で明示的にその空間へのアクセスを行う。
【０００４】
(2)通常の主記憶メモリマップ上にＩ／Ｏデバイスを割り当てる。例えば、MIPSアーキテクチャに基づくプロセッサは、通常のメモリ操作と同様の命令でＩ／Ｏデバイスをアクセスする。
【０００５】
最近のプロセッサは、上述した２つの方式のうち、（２）の方式を採用する例が多い。その理由は、通常のメモリアクセスと全く同じ命令が使えるので、命令セットが単純になり、プログラミングもしやすいためである。しかし、Ｉ／Ｏデバイスにアクセスする際は、▲１▼キャッシュメモリの使用を禁止する、▲２▼読み書きの順序を保証する等の必要があり、ソフトウェアもしくはハードウェアでこれに配慮しなくてはならない。
【０００６】
多くのプロセッサでは、同一のアドレスに対する読み書きの順序は保証されるが、一つのＩ／Ｏの複数のレジスタが複数のアドレスに割り当てられている場合などでは、読み書きの順序が保証されないおそれがある。
【０００７】
特に、命令の実行順序を入れ替えるout-of-order 実行を行うプロセッサは、特別に扱う必要がある。
【０００８】
また、これとは別に、近年の半導体の高集積化やＤＲＡＭ混載技術などの進展に伴い、キャッシュメモリ以外のメモリをプロセッサと同じチップ内に収容できるようになり、この種のメモリを主記憶メモリやキャッシュメモリと違う目的で使用することも可能になった。
【０００９】
【発明が解決しようとする課題】
しかしながら、この種のメモリを主記憶メモリと同じようにマッピングすると、その領域は、外部の主記憶メモリやＩ／Ｏに割り当てることができないため、メモリマップ割り当ての制限になる。
【００１０】
また、この種の外部メモリ上にあるデータは、キャッシュメモリにキャッシュされたデータと同様に高速に利用できるため、外部メモリのアクセスと同様にキャッシュしてしまうのは無駄であるばかりでなく、リフィルの際に外部メモリをキャッシュしているものを追い出す可能性があり、さらにこの種のメモリとキャッシュとの間にリフィルのためのデータパスを付加する必要がある。
【００１１】
また、キャッシュしない場合、この種のメモリの高速性を生かして、かつ、キャッシュの高速性を生かすためには、メモリ参照の際に、この種のメモリにアクセスしようとしているのか、あるいは、キャッシュメモリにアクセスしようとしているのかを自動判別しなければならない。
【００１２】
本発明は、上記の問題点を考慮に入れてなされたものであり、その目的は、キャッシュメモリ以外の目的で利用可能なＲＡＭを内蔵して、このＲＡＭに簡易かつ高速にアクセスできるようにしたマイクロプロセッサを提供することにある。
【００１３】
本発明の一態様によれば、仮想アドレスを物理アドレスに変換するメモリ管理ユニットと、ロード／ストア命令を実行するロード／ストア命令実行部と、を備えたマイクロプロセッサは、
主記憶メモリのメモリマップに割り当てられないメモリ空間を有し、前記主記憶メモリをアクセスするための第１のアドレスの下位側の第２のアドレスを用いて前記ロード／ストア命令実行部によるデータの読み書きが可能なＲＡＭを備え、
前記メモリ管理ユニットは、オペレーティングシステムが管理するページテーブルの情報に基づいて、前記ロード／ストア命令実行部が前記ＲＡＭに対するアクセスを行うか否かを示す第１のフラグ情報を設定するフラグ情報設定部を有することを特徴とするマイクロプロセッサが提供される。
【００１４】
本発明の一態様では、ＲＡＭに対するアクセスを行うか否かを、第１のフラグ情報にて設定できるようにしたため、ＲＡＭに対するアクセス制御をプログラマブルに切り替えることができる。
【００１５】
本発明の一態様では、第１のフラグ情報に基づいてＲＡＭにアクセスする場合は物理アドレスへの変換を行わないようにしたため、高速アクセスが可能になる。
【００１６】
本発明の一態様では、第１のフラグ情報に基づいてＲＡＭにアクセスする場合はキャッシュ・ヒット／ミス結果とは独立にＲＡＭへのアクセスを開始するようにしたため、キャッシュ・ヒット／ミス結果が得られない間にＲＡＭへのアクセスを開始できる。
【００１７】
本発明の一態様では、第１のフラグ情報が記録された変換テーブルを設けるため、各アドレス単位でＲＡＭに対するアクセスを行うか否かを設定できる。
【００１８】
本発明の一態様では、Ｉ／Ｏ領域へのアクセスを行うか否かを示す第２のフラグ情報を設けるため、Ｉ／Ｏ領域へのアクセスを許容するか否かをプログラマブルに設定変更できる。
【００１９】
本発明の一態様では、第２のフラグ情報に基づいてＩ／Ｏ領域にアクセスする場合はキャッシュ・ヒット／ミス結果を無視するようにしたため、キャッシュ・ヒット／ミス結果が得られない間にＩ／Ｏ領域へのアクセスを開始できる。
【００２０】
本発明の一態様では、第２のフラグ情報に基づいてＩ／Ｏ領域にアクセスを行う場合であって、ロード／ストア命令実行部がＲＡＭもしくはＩ／Ｏ領域に対する有効なロード／ストア命令を保持しており、かつ、ストアバッファ中にまだＲＡＭもしくはＩ／Ｏ領域に書き込まれていないデータが存在する場合には、ストアバッファ中のデータがＲＡＭもしくはＩ／Ｏ領域に書き込まれるまで、次のＩ／Ｏ領域へのアクセスを開始しないようにしたため、Ｉ／Ｏ領域への読み書きの順序をソフトウェアと完全に一致させることができる。
【００２１】
請求項８の発明では、第２のフラグ情報が記録された変換テーブルを設けるため、各アドレス単位でＩ／Ｏ領域に対するアクセスを行うか否かを設定できる。
【００２２】
【発明の実施の形態】
以下、本発明に係るマイクロプロセッサについて、図面を参照しながら具体的に説明する。
【００２３】
（第１の実施形態）
図１は本発明に係るマイクロプロセッサの一実施形態の内部構成を示すブロック図である。図１のマイクロプロセッサは、外部バスＢ１に接続されたバス・インタフェース・ユニット(Bus Interface Unit)１と、プロセッサが実行する命令のフェッチ（取り込み）を行うＩＦＵ(Instruction Fetch Unit)２と、仮想アドレスから物理アドレスへの変換を行うＭＭＵ(Memory Management Unit)３と、ロード／ストアに関連する命令を実行するＬＳＵ(Load Store Unit)４と、ロード／ストア以外の命令を実行する複数の実行ユニット５ａ，５ｂ，５ｃと、浮動小数点演算を行うＦＰＵ(Floating Point Unit)６ａ，６ｂと、プロセッサ各部の制御を行う制御論理部(Control Logic)７とを備える。
【００２４】
ＩＦＵ２は、分岐命令等の命令の分岐先を記憶するBTACを参照しつつＰＣ(Program Counter)を生成するPC PIPE２１と、命令を一時的に格納するICACHE(Instruction Cache Memory)２２と、命令の種類を判別してその命令を実行する実行ユニットを選択する命令発行＆ステージング部(Instruction issue & Staging block)２３とを有する。
【００２５】
ＭＭＵ３は、仮想アドレスから物理アドレスへの変換を行う３つのＴＬＢ(Translation Lookaside Buffer)を有する。ＯＳ(Operating System)が有するページ・テーブルの一部のうち、物理ページ番号や保護情報など、プロセッサが必要とするアドレス変換情報がＴＬＢに書き込まれており、これに基づいてＭＭＵ３は物理アドレスへの変換を行う。
【００２６】
ＭＭＵ３内の３つのＴＬＢは、JTLB(Joint Translation Lookaside Buffer)３１と、ITLB(Instruction Translation Lookaside Buffer)３２と、DTLB３３(Data Translation Lookaside Buffer)３３である。
【００２７】
ITLB３２とDTLB３３は、総称してマイクロＴＬＢと呼ばれる。ITLB３２は命令の仮想アドレスのデータパス(Datapath)に直接接続される専用のＴＬＢであり、DTLB３３はデータの仮想アドレスのデータパスに直列接続される専用のＴＬＢである。これらＴＬＢは、少数ではあるが、高速にアドレス変換を行う。JTLB３１は、命令／データの別に関係なく、ページをマッピングする。
【００２８】
これら３つのＴＬＢは、例えばソフトウエアによって制御される。プロセッサは、JTLB３１に変換テーブル１００が存在しない場合に例外を起こし、例外ハンドラのプログラムがＯＳのページテーブルから該当するページを探し出し、JTLB３１に変換テーブル１００の情報を書き込む。
【００２９】
ＬＳＵ４は、外部メモリに対する読み出し／書き込みデータを一時的に格納するDCACHE(Data Cache Memory)４１と、キャッシュ以外の特殊な用途に使用されるSPRAM(Scratch Pad RAM)４２と、DCACHE４１やSPRAM４２をアクセスするための仮想アドレスを生成するアドレス生成器(Virtual Address Computation)４３とを有する。
【００３０】
制御論理部７は、プロセッサ各部の制御を行い、その内部には制御レジスタ(Control Register)７１が設けられている。
【００３１】
次に、図１のマイクロプロセッサの動作を簡単に説明する。まず、PC PIPE２１で生成されたＰＣ(Program Counter)に基づいて、ＩＦＵ２は命令のフェッチを行う。なお、ＰＣは仮想アドレスである。
【００３２】
ITLB３２は、ＰＣを仮想アドレスから物理アドレスに変換する。物理アドレスは、ICACHE２２内のITAGにおける検索に利用され、ＰＣの指し示す命令がICACHE２２内に存在するか否かを調べる。ＰＣの指し示す命令がICACHE２２内に存在しない場合（キャッシュ・ミスのとき）には、物理アドレスによって不図示の外部メモリへのアクセスを行う。
【００３３】
具体的には、キャッシュミスすると、ICACHE２２を制御するＩＦＵ２の制御論理部からＢＩＵ１の制御論理部に対して、キャッシュミスが起きたことを示す情報と、アクセスを行うべき物理アドレス情報とが渡される。ＢＩＵ１は、これらの情報に基づいて外部メモリをアクセスし、アクセスが終了すると、データとキャッシュ・ラインの取得が終わった旨の信号とをＩＦＵ２に供給する。ＩＦＵ２は、アクセスしたデータをICACHE２２に書き込む。同時に、リフィルされたキャッシュラインのうち、ＰＣの指し示す命令と、場合によっては、ＰＣの指し示す命令の後に続くいくつかの命令を、命令発行＆ステージング部２３に供給する。
【００３４】
一方、ＰＣの指し示す命令がICACHE２２内に存在する場合には、該当するICACHE２２内の命令と、場合によってはＰＣの指し示す命令の後に続くいくつかの命令が命令発行＆ステージング部２３に供給される。
【００３５】
命令発行＆ステージング部２３は、命令の種類を判別し、命令を実際に実行する実行ユニット（例えば、ＬＳＵ４や他の実行ユニット）を決定する。この際、命令発行＆ステージング部２３は、各実行ユニットの空き具合を鑑みて動的に判断する。
【００３６】
例えば、判別された命令がロード／ストア命令の場合には、処理できる実行ユニットはＬＳＵ４だけなので、ＬＳＵ４に命令を供給できる状態になると、命令発行＆ステージング部２３はＬＳＵ４に命令を送る。
【００３７】
次に、SPRAM４２に対してロード／ストアを行う場合の動作を説明する。図２は、図１のＬＳＵ４内部の一部構成を図示したものであり、SPRAM４２に関係する部分を制御系(Control)８とデータパス(Datapath)に分けて図示している。
【００３８】
図２の制御系８は、命令の流れに応じて、データパスに与える制御信号を生成する。データパスは、制御系８からの制御信号に基づいてデータを流していく。これが命令の実行に相当する。
【００３９】
図２において、制御系８とデータパスとをつないでいる各線は制御信号を示している。通常、制御信号は制御系８からデータパスに供給される。なお、図２では省略しているが、データパスから制御系８に供給される制御信号も存在する。例えば、ICACHE２２がミスしてパイプライン処理を止める場合には、データパスの一部であるICACHE２２のＴＡＧからミス信号が制御系８に供給されてパイプライン処理を停止させる。
【００４０】
図２において、符号１０ａ〜１０ｊで示したブロックは、パイプライン処理を行う際にステージを区切るためのレジスタ構造を示している。これらブロックは、回路的には、フリップフロップやラッチで構成され、クロックに同期して、読み出しや書き込みを行う。以下では、これらブロックを総称してパイプラインレジスタと呼ぶ。
【００４１】
ＩＦＵ２は、ＩＦＵ制御論理部８１(IFU Control)の制御を受けて、フェッチされた命令をパイプラインレジスタ１０ａに格納する。命令はパイプラインレジスタ１０ａから命令デコーダ(Instruction Decoder)８２に送られる。命令デコーダ８２では、命令の識別や命令の処理に必要な中間的な制御信号を生成する。中間的な制御信号を生成する理由は、命令デコーダ８２でプロセッサのすべての制御信号を生成するのは量的および速度的に不可能なためであり、命令デコーダ８２は、命令よりも演算器の制御信号に近く、かつ、演算器の制御信号そのものよりも抽象的な信号を生成する。
【００４２】
フェッチされた命令がロード／ストア命令であることが命令デコーダ８２で分かった場合には、制御信号群が、関係する制御論理部に送られる。具体的には、制御信号群は、図２中のパイプライン制御論理部(Pipeline Control)８３、ＧＰＲ制御論理部(General Purpose Register Control)８４、およびＬＳＵ制御論理部(LSU Control)８５に送られる。
【００４３】
パイプライン制御論理部８３とＬＳＵ制御論理部８５では、データの流れのステージに同期する形で命令や制御信号が流れていく。このため、制御系８とデータパスの双方にパイプラインレジスタ１０ａ〜１０ｊが設けられている。
【００４４】
パイプライン制御論理部８３は、パイプラインレジスタ１０の中身の状況に応じて、パイプラインの進行の制御を行う。例えば、演算器上でリソースハザードが生じた場合には、パイプラインを停止するなどの処理を行う。
【００４５】
ＬＳＵ制御論理部８５は、ロード／ストア命令を実行するのに必要な制御信号を生成する。すなわち、ＧＰＲ制御論理部８４の制御によりレジスタファイル１１からパイプラインレジスタ１０に送られたデータは、アドレス生成器４３に送られてアドレスが生成される。アドレス生成器４３はアダー(Adder)制御論理部８６により制御され、アドレス生成器４３により生成されたアドレスは、次段のパイプラインレジスタ１０に送られる。
【００４６】
ＳＰＲ制御論理部(SPRAM Control)８７は、パイプライン制御論理部８３とＬＳＵ制御論理部８５からの信号を受けて、SPRAM４２へのアクセスを行う。その際、パイプラインレジスタ１０中のアドレスを使用する。このアドレスがロード命令であるときは、リード・イネーブル信号を有効にし、ライト・イネーブル信号を無効にする。そして、SPRAM４２からデータを読み出し、パイプラインレジスタ１０に格納する。格納されたデータは、次のステージでレジスタファイル１１に書き戻される。
【００４７】
一方、パイプラインレジスタ１０中のアドレスがストア命令であるときは、リード・イネーブル信号を無効にし、ライト・イネーブル信号を有効にする。そして、レジスタファイル１１からステージされてきたデータをSPRAM４２に書き込む。
【００４８】
一方、プロセッサ外のＤＭＡ(Direct Memory Access)コントローラ９は、図示のように、外部バスを介してプロセッサ内部のＢＩＵ制御論理部(BIU Control)８８に接続されている。ＤＭＡコントローラ９がＢＩＵ制御論理部８８に制御信号を送ってＤＭＡ処理を開始すると、ＢＩＵ制御論理部８８はＳＰＲ制御論理部８７に信号を送ってSPRAM４２をリード／ライトさせる。すなわち、ＳＰＲ制御論理部８７は、ＢＩＵ制御論理部８８を介して間接的にＤＭＡコントローラ９とも接続されている。
【００４９】
SPRAM４２に対するアクセス要求がＬＳＵ４とＢＩＵ１２（ＢＩＵ１２からのアクセス要求は元はＤＭＡコントローラ９からのものである）の双方から同時に発せられた場合は、ＳＰＲ制御論理部８７が両者を調停してイネーブル信号群を決定し、アドレス入力とデータ入力のセレクタを切り替える。
【００５０】
例えば、ＬＳＵ４とＢＩＵ１２によるSPRAM４２に対するアクセス要求の優先順位をプログラマブルに制御するには、ＳＰＲ制御論理部８７に図２に点線で示す制御レジスタ７１を接続し、この制御レジスタ７１の値を優先順位に応じてプログラマブルに変化させればよい。
【００５１】
図１および図２に示したSPRAM４２は、画像データ等の大量のデータをプロセッサで加工処理する際に、一時的なメモ・パッド領域として用いるのに適している。
【００５２】
図３はＭＭＵ３の内部の接続関係を示す図である。上述したように、ＭＭＵ３の内部には３つのＴＬＢが設けられるが、このうち、JTLB３１が本来のＴＬＢである。JTLB３１は例えば４８個のエントリーを有し、ページ単位で仮想アドレスをマッピングし、物理アドレスへの変換テーブル１００を生成する。
【００５３】
JTLB３１内に生成された変換テーブル１００は、必要に応じて、ITLB３２とDTLB３３にコピーされる。このように、ＴＬＢを３つに分けた理由は、JTLB３１はエントリー数が多いため、JTLB３１でアドレスの変換を行うと、変換処理に時間がかかることから、必要な分だけITLB３２やDTLB３３にコピーして高速に変換処理を行うようにしている。
【００５４】
図４はJTLB３１内の変換テーブル１００を模式的に示した図である。変換テーブル１００は、仮想アドレスのページ番号と、仮想アドレスに対応する物理アドレスと、フラグ情報とを対応づけたものである。
【００５５】
フラグ情報は、キャッシュが可能か否かを示すＣフラグと、メモリへの書き込みが可能か否かを示すＤフラグと、変換エントリーが有効か無効かを示すＶフラグと、SPRAM４２へのアクセスを行うか否かを示すＳフラグ（第１のフラグ情報）とを有する。
【００５６】
ＬＳＵ４は、Ｓフラグが立っていれば、無条件にSPRAM４２にアクセスに行く。具体的には、仮想アドレスの下位側のオフセットアドレスを用いてSPRAM４２にアクセスする。これにより、SPRAM４２を物理メモリのメモリマップに割り当てなくて済み、メモリマップの割り当てを簡易化できる。
【００５７】
また、Ｓフラグがセットされているときには、ICACHE２２やDCACHE４１のキャッシュ・ヒット／キャッシュ・ミス結果を無視して、SPRAM４２へのアクセスを行う。これにより、キャッシュ・ヒットしたか否かを確認することなくSPRAM４２にアクセスできるため、SPRAM４２に対する読み書きを高速に行うことができる。
【００５８】
なお、図４では、４種類のフラグを設ける例を説明したが、フラグの種類や数は特に限定されない。例えば、Ｉ／Ｏ領域へのアクセス用にフラグを設けてもよい。以下、このフラグを仮にＩ／Ｏフラグ（第２のフラグ情報）と呼ぶ。
【００５９】
Ｉ／Ｏ領域にアクセスする際には、キャッシュメモリの使用を禁止し、かつ、読み書きの順序を保証するのが望ましい。
【００６０】
図５は、Ｉ／Ｏ領域としてマップされたアドレスに対してロード／ストア命令を実行する際、その命令に先行するストア命令の完了を保証するシステムの一例を示す回路図である。図５のストアバッファ８０は、すべての書き込みデータを一時的に格納するのに用いられる。
【００６１】
Ｃフラグがセットされ、かつ、Ｉ／Ｏフラグがセットされていない場合には、図５のゲートＧ１から、ICACHE２２またはDCACHE４１の利用を許可するハイレベル信号(Cashed信号)がLSU制御論理部８５に供給される。
【００６２】
また、Ｉ／Ｏフラグがセットされ、かつ、ストアバッファ８０中にまだメモリに書き込まれていないデータが存在し、かつ、ＬＳＵ４中に有効なロード／ストア命令が存在する場合には、図５のゲートＧ２から、Ｉ／Ｏ領域アクセス用のロード／ストア命令をストールする旨のハイレベル信号(Stall_Request信号)がパイプライン制御論理部８３に供給される。
【００６３】
図５のような回路を設けることにより、ロード／ストアの実行順序が保証されないシステムであっても、最小限の回路付加により、Ｉ／Ｏ領域へのアクセス前に、先行するストア命令の完了を保証することができる。
【００６４】
このように、Ｉ／Ｏフラグを設けることにより、Ｉ／Ｏ領域を主記憶メモリのメモリマップに割り当てなくて済み、また、Ｉ／Ｏフラグがセットされていれば、強制的にキャッシュを無効にでき、かつソフトウェアが配慮することなく書き込み順序を保証できるため、簡易かつ迅速にＩ／Ｏ領域にアクセスすることができる。
【００６５】
上述した実施形態では、ＤＭＡ転送が可能なSPRAMの一例を説明したが、ＤＭＡ転送が可能であることは必ずしも必須の要件ではない。ＤＭＡ転送を行わないSPRAMは、例えば、プロセッサが連続的に生成するデータの一時保管場所として用いられる。
【００６６】
【発明の効果】
本発明によれば、ロード／ストア命令実行部によるデータの読み書きが可能で、かつ、外部メモリとの間でＤＭＡ転送可能なＲＡＭに対してアクセスを行うか否かを、第１のフラグ情報により判断するため、ＲＡＭへのアクセスを高速に行うことができる。すなわち、ＲＡＭにアクセスする際には、キャッシュ・ヒット／ミス結果を参照しなくて済むため、通常のメモリよりも迅速にアクセスを行える。
【００６７】
また、このようなフラグ情報を設けることで、通常のメモリアクセスと同様の命令を用いて上述したＲＡＭにアクセスできるようになり、命令セットを単純化でき、プログラム設計が容易になる。
【００６８】
同様に、Ｉ／Ｏ領域にアクセスするか否かを第２のフラグ情報に基づいて判断するため、Ｉ／Ｏ領域にアクセスするための特別な命令や、特別なメモリ割り当てが不要となる。
【図面の簡単な説明】
【図１】本発明に係るマイクロプロセッサの一実施形態の内部構成を示すブロック図。
【図２】図１のＬＳＵ内部の一部構成を図示した図。
【図３】ＭＭＵの内部の接続関係を示す図。
【図４】  JTLB内の変換テーブルを模式的に示した図。
【図５】Ｉ／Ｏ領域へのアクセスの際、その命令に先行するストア命令の完了を保証するシステムの一例を示す回路図。
【符号の説明】
１  ＢＩＵ
２  ＩＦＵ
３  ＭＭＵ
４  ＬＳＵ
５ａ，５ｂ，５ｃ  実行ユニット
６ａ，６ｂ，６ｃ  ＦＰＵ
７  制御論理部
２１  PC-pipe
２２  ICACHE
２３  命令発行＆ステージング部
３１  JTLB
３２  ITLB
３３  DTLB
４１  データキャッシュ
４２  SPRAM
【図１】
0004162825.tif 000002
【図２】
0004162825.tif 000003
【図３】
0004162825.tif 000004
【図４】
0004162825.tif 000005
【図５】
0004162825.tif 000006