(57)【特許請求の範囲】
【請求項１】
命令を実行してメモリに対するアクセス要求を第１のプロトコルに従って出力する命令実行手段と、
前記第１のプロトコルに従うアクセス要求を、外部メモリに対するアクセス制御を行うための第２のプロトコルに従うアクセス要求に変換して出力するメモリ制御手段と、
前記メモリ制御手段を使用して前記外部メモリにアクセスするかどうかを選択する選択手段と、
前記選択手段における選択結果に基づいて、前記第１のプロトコルに従うアクセス要求又は前記第２のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段と、
前記命令実行手段からのアクセス頻度が高いデータを一時記憶する一時記憶手段と、
前記命令実行手段より入力したアクセス要求に基づいて、要求されているデータを前記一時記憶手段から読み出す制御又は前記一時記憶手段に書き込む制御を行うキャッシュ制御手段と、を具備し、
前記命令実行手段と、前記メモリ制御手段と、前記選択手段と、前記インタフェース手段と、をそれぞれ複数備え、
複数の前記メモリ制御手段毎に、前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報が設定手段に設定され、
前記キャッシュ制御手段は、前記アクセス要求に含まれるアドレス情報及び所定のメモリインターリーブルールに基づいて、前記第１のプロトコルに従って出力するアクセス要求の出力先を決定し、
前記アクセス要求の出力先に対応する前記メモリ制御手段の前記設定情報に基づいて、前記選択手段が選択を行うマイクロプロセッサ。
【請求項２】
前記選択手段は、前記命令実行手段より出力された前記第１のプロトコルに従うアクセス要求又は前記メモリ制御手段より出力された第２のプロトコルに従うアクセス要求のいずれか片方を選択して前記インタフェース手段に出力する、
請求項１に記載のマイクロプロセッサ。
【請求項３】
前記使用しない設定である前記メモリ制御手段の動作を停止させている請求項１、又は２に記載のマイクロプロセッサ。
【請求項４】
前記インタフェース手段は、ＤＤＲ（Double-Data-Rate）方式のＤＲＡＭ（Dynamic Random Access Memory）を接続するためのインタフェースであり、
前記メモリ制御手段は、前記キャッシュ制御手段から出力されたアクセス要求に基づいて、前記ＤＲＡＭに対するアクセス制御を行うためのアクセス要求をＤＤＲ方式で定められているプロトコルに従って出力する、
請求項１〜３のいずれか１項に記載のマイクロプロセッサ。
【請求項５】
前記キャッシュ制御手段より出力される前記第１のプロトコルに従うアクセス要求を入力して第３のプロトコルに従うアクセス要求を出力するプロトコル変換手段を更に具備し、
前記選択手段は、前記メモリ制御手段より出力された第２のプロトコルに従うアクセス要求又は前記プロトコル変換手段より出力された第３のプロトコルのいずれか片方を選択して前記インタフェース手段に出力し、
前記インタフェース手段は、前記選択手段における選択結果に基づいて、前記第２のプロトコルに従うアクセス要求又は前記第３のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する、
請求項１〜４のいずれか１項に記載のマイクロプロセッサ。
【請求項６】
外部メモリに対するアクセス制御を行うメモリ制御手段を有するマイクロプロセッサで使用されるメモリアクセス方法であって、
前記メモリ制御手段を使用するかどうかを設定する設定ステップと、
命令を実行してメモリに対するアクセス要求を第１のプロトコルに従って出力する命令実行ステップと、
前記設定ステップで、前記メモリ制御手段を使用すると設定した場合には、前記第１のプロトコルに従う前記アクセス要求を外部メモリに対するアクセス制御を行うための第２のプロトコルに従うアクセス要求に変換し、前記メモリ制御手段を使用しないと設定した場合には、前記変換を行わない変換ステップと、
前記第１のプロトコルに従うアクセス要求又は前記第２のプロトコルに従うアクセス要求のいずれか片方を選択して外部に出力する出力ステップと、
を有し、
前記マイクロプロセッサが、
アクセス頻度が高いデータを一時記憶する一時記憶手段と、
前記アクセス要求に基づいて、要求されているデータを前記一時記憶手段から読み出す制御又は前記一時記憶手段に書き込む制御を行うキャッシュ制御手段と、を具備し、
前記マイクロプロセッサが、前記メモリ制御手段を複数備え、
複数の前記メモリ制御手段毎に、前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報が設定され、
前記キャッシュ制御手段は、前記アクセス要求に含まれるアドレス情報及び所定のメモリインターリーブルールに基づいて、前記第１のプロトコルに従って出力するアクセス要求の出力先を決定し、
前記設定ステップでは、前記アクセス要求の出力先に対応する前記メモリ制御手段の前記設定情報に基づいて、設定が行われるメモリアクセス方法。
【請求項７】
前記マイクロプロセッサは、前記第１のプロトコルに従うアクセス要求又は前記第２のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段を備え、
前記出力ステップでは、前記第１のプロトコルに従うアクセス要求又は前記メモリ制御手段より出力された第２のプロトコルに従うアクセス要求のいずれか片方を選択して前記インタフェース手段に出力する、
請求項６に記載のメモリアクセス方法。
【請求項８】
前記インタフェース手段は、ＤＤＲ（Double-Data-Rate）方式のＤＲＡＭ（Dynamic Random Access Memory）を接続するためのインタフェースであり、
前記メモリ制御手段は、前記キャッシュ制御手段から出力されたアクセス要求に基づいて、前記ＤＲＡＭに対するアクセス制御を行うためのアクセス要求をＤＤＲ方式で定められているプロトコルに従って出力する、
請求項７に記載のメモリアクセス方法。
【請求項９】
前記マイクロプロセッサが、前記キャッシュ制御手段より出力される前記第１のプロトコルに従うアクセス要求を入力して第３のプロトコルに従うアクセス要求を出力するプロトコル変換手段を更に具備し、
前記出力ステップでは、前記メモリ制御手段より出力された第２のプロトコルに従うアクセス要求又は前記プロトコル変換手段より出力された第３のプロトコルのいずれか片方を選択して前記インタフェース手段に出力し、
前記インタフェース手段は、前記設定情報に基づいて、前記第２のプロトコルに従うアクセス要求又は前記第３のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する、
請求項７、又は８に記載のメモリアクセス方法。
【請求項１０】
前記使用しない設定である前記メモリ制御手段の動作を停止させている請求項６〜９のいずれか１項に記載のメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに用いられるマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法に関し、特に接続するメモリの接続自由度を向上させたマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法に関する。
【背景技術】
【０００２】
近年、より柔軟性の高いコンピュータシステムを構築するために、マイクロプロセッサに接続される外部メモリの接続自由度を上げたり、外部メモリを複数の半導体装置で共有したりしたいといった要求が高まっている。
【０００３】
特許文献１には、複数の半導体装置でシステムバスを接続することなく外部メモリを共有するシステムが開示されている。当該システムは、外部メモリと複数の半導体装置から構成され、第１の半導体装置内には外部メモリのように振る舞うインタフェース部が別途設けられている。そして、当該インタフェース部は、第２の半導体装置内のメモリコントローラから出力されるメモリ制御信号を受信し、第１の半導体装置内のメモリコントローラに対して外部メモリへのアクセス要求を送信する。第１半導体装置内のメモリコントローラは、当該アクセス要求を入力するとメモリ制御信号を外部メモリに出力してデータのアクセスを行う。このようにシステムを構成することで、複数の半導体装置において外部メモリの共有が可能となり、半導体装置毎に外部メモリを備える必要がなくなるため、コストの低減が可能となる。
【０００４】
また、特許文献２には、メモリコントローラと外部メモリとの間に新たにデータ転送制御装置を設けることで、外部メモリが異なる転送方式を採用していても、メモリコントローラが外部メモリを制御できるメモリ制御システムが開示されている。当該データ転送制御装置が、ＳＤＲ転送方式、ＤＤＲ転送方式、バス幅倍増転送方式、といった転送方式の仕様の違いを吸収することで、メモリコントローラは、適切に外部メモリを制御することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２９３５９１号公報
【特許文献２】特開２００８−１２９６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
既存のＤＤＲ(Double Data Rate)方式で用いられるメモリインタフェースでは、メモリコントローラから外部メモリであるＤＲＡＭ（Dynamic Random Access Memory）までのＴＡＴ（Turn Around Time）は既定遅延であることが要求されている。従って、マイクロプロセッサ内部に設置されたメモリコントローラから外部メモリの間に、その遅延を可変にする可能性のあるネットワークファブリックを挿入することは厳しいという制約が課せられている。
【０００７】
このことは、共有メモリシステムや分散メモリシステムをユーザに合わせて柔軟に構成したいというニーズや、搭載できるメモリの容量を大幅に増加させたいといったニーズに対して、既存のメモリインタフェースを用いて実現することは困難であることを意味している。すなわち、このようなニーズに対応するためには、マイクロプロセッサ内部に設けられたメモリコントローラの数や構成を変更する必要があるため、ユーザの要求に合わせて別途マイクロプロセッサ自体の設計を変更しなければならないという課題が生じる。このような課題に対しては、上記特許文献１及び特許文献２の技術を用いても解決することができず、新たな技術を開発する必要があった。
【０００８】
本発明は、上記課題に鑑み、マイクロプロセッサ自体の設計を変更することなく、接続する外部メモリの容量や構成を柔軟に変更できるマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のマイクロプロセッサは、命令を実行してメモリに対するアクセス要求を第１のプロトコルに従って出力する命令実行手段と、前記第１のプロトコルに従うアクセス要求を、外部メモリに対するアクセス制御を行うための第２のプロトコルに従うアクセス要求に変換して出力するメモリ制御手段と、前記メモリ制御手段を使用して前記外部メモリにアクセスするかどうかを選択する選択手段と、前記選択手段における選択結果に基づいて、前記第１のプロトコルに従うアクセス要求又は前記第２のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段と、を具備する。
【００１０】
また、本発明のメモリアクセス方法は、外部メモリに対するアクセス制御を行うメモリ制御手段を有するマイクロプロセッサで使用されるメモリアクセス方法であって、前記メモリ制御手段を使用するかどうかを設定する設定ステップと、命令を実行してメモリに対するアクセス要求を第１のプロトコルに従って出力する命令実行ステップと、前記設定ステップで、前記メモリ制御手段を使用すると設定した場合には、前記第１のプロトコルに従う前記アクセス要求を外部メモリに対するアクセス制御を行うための第２のプロトコルに従うアクセス要求に変換し、前記メモリ制御手段を使用しないと設定した場合には、前記変換を行わない変換ステップと、前記第１のプロトコルに従うアクセス要求又は前記第２のプロトコルに従うアクセス要求のいずれか片方を選択して外部に出力する出力ステップと、を有する。
【発明の効果】
【００１１】
本発明の構成をとることにより、マイクロプロセッサ自体の設計を変更することなくマイクロプロセッサに接続する外部メモリの容量や構成を柔軟に変更できるマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかるマイクロプロセッサのブロック図である。
【図２】実施の形態１にかかるマイクロプロセッサの別の形態のブロック図である。
【図３】実施の形態１にかかるマイクロプロセッサの別の形態のブロック図である。
【図４】実施の形態１にかかるマイクロプロセッサの別の形態のブロック図である。
【図５】実施の形態２にかかる計算機システムのブロック図である。
【図６】実施の形態２にかかる計算機システムのブロック図である。
【図７】実施の形態２にかかる計算機システムのブロック図である。
【図８】実施の形態２にかかる計算機システムのブロック図である。
【発明を実施するための形態】
【００１３】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態１に係るマイクロプロセッサ１００の構成を示したブロック図である。
【００１４】
マイクロプロセッサ１００は、一般的にＣＰＵ（Central Processing Unit）とも呼ばれるマイクロプロセッサであり、内部にコア１１０と、メモリコントローラ１２０と、選択部１３０と、メモリインタフェース１４０と、を有する。以下、各ブロックについて説明する。
【００１５】
コア１１０は、フェッチした命令をデコードし、命令内容に応じて各種の制御や演算処理を行う。例えば、コア１１０は、デコードした命令がロード命令であった場合は、メモリからデータを読み出すためのデータ読み出し要求を出力する。また、コア１１０は、デコードした命令がストア命令であった場合は、メモリへデータを書き込むためのデータ書き込み要求を出力する。以下、これらデータ読み出し要求とデータ書き込み要求を合わせてアクセス要求と称する。コア１１０は、ロード・ストア命令を実行することで、メモリに対するアクセス要求を第１のプロトコルに従って出力する。
【００１６】
メモリコントローラ１２０は、メモリインタフェース１４０に接続される外部メモリへのアクセス制御を所定のプロトコルに従って行う。メモリインタフェース１４０に接続される外部メモリは、例えばＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)がある。メモリの規格としてはＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４などがあるが、これに限定するものではない。今後標準化される様々な規格に則ったメモリを想定することができる。メモリコントローラ１２０は、コア１１０より出力されたアクセス要求を入力し、メモリインタフェース１４０に接続されている外部メモリに対応した所定のプロトコルに従ってアクセス要求を出力する。すなわち、メモリコントローラ１２０は、第１のプロトコルに従うアクセス要求を入力し、外部メモリに対するアクセス制御を行うための第２のプロトコルに従うアクセス要求に変換して出力する。
【００１７】
選択部１３０は、メモリコントローラ１２０を使用して外部メモリにアクセスするかどうかを選択する。選択部１３０は、コア１１０より出力された第１のプロトコルに従うアクセス要求又はメモリコントローラ１２０より出力された第２のプロトコルに従うアクセス要求のいずれか片方を選択してメモリインタフェース１４０に出力する。具体的には、選択部１３０は、メモリインタフェース１４０の接続先としてコア１１０かメモリコントローラ１２０のいずれかを選択する。すなわち、メモリコントローラ１２０を使用して外部メモリへのアクセスを行う場合は、選択部１３０は、メモリコントローラ１２０の入出力とメモリインタフェース１４０とを接続する。一方、メモリコントローラ１２０を使用せず、コア１１０から出力されるアクセス要求を直接外部へ出力する場合は、選択部１３０は、コア１１０の入出力とメモリインタフェース１４０とを接続する。なお、選択部１３０が、メモリインタフェース１４０とコア１１０とを接続する場合は、メモリインタフェース１４０にはメモリコントローラを備える中継装置等が接続されることになる。コア１１０より出力されたアクセス要求は、選択部１３０とメモリインタフェース１４０を通って中継装置内部のメモリコントローラに入力され、当該メモリコントローラが外部メモリへのアクセス制御を行う。
【００１８】
メモリインタフェース１４０は、マイクロプロセッサ１００と外部メモリを接続するためのインタフェースであり、直接接続される外部メモリに従ってその仕様が規定される。接続される外部メモリがＤＤＲ方式を採用していれば、メモリインタフェース１４０は所謂ＤＤＲインタフェースである。メモリインタフェース１４０は、ＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４などの規格に従ってそれぞれ電気的に規定されている。メモリインタフェース１４０は、前記選択部１３０と接続されており、選択部１３０から入力した信号を外部へ出力し、外部より入力した信号を選択部１３０へ出力する。従って、メモリインタフェース１４０は、選択部１３０で選択された第１のプロトコルに従うアクセス要求又は第２のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する。
【００１９】
以上説明したように、本実施の形態に係るマイクロプロセッサによれば、内部に設置されたメモリコントローラを用いて外部メモリに直接アクセスするか、当該メモリコントローラを用いずに、所定の通信プロトコルに従ってアクセス要求を外部へ出力するかを選択できる。また、選択部が、メモリインタフェースの接続先を選択的に切り替えることにより、メモリコントローラを通って出力されるアクセス要求又はメモリコントローラを通らずに出力されるアクセス要求のいずれか片方を共通のメモリインタフェースを介して外部へ出力することができる。
【００２０】
換言すると、本実施の形態に係るマイクロプロセッサでは、まず、コアにおいてロード／ストア命令をフェッチし、デコードし、実行し、メモリに対するアクセス要求を出力という一連の動作が行われる。メモリコントローラは、この第１の手順に従うアクセス要求を入力すると、外部メモリに対するアクセス制御を行うため、第２の手順に従うアクセス要求に変換して出力する。第２の手順に従うアクセス要求は、外部メモリとメモリコントローラとの標準化を行うため、通常規格でその電気的仕様や動作手順が定められている。ここで、本発明のマイクロプロセッサは、上記メモリコントローラを使用して外部メモリにアクセスするかどうかを選択する選択部を備えている。当該選択部における選択結果に基づいて、上記第１の手順に従うアクセス要求又は第２の手順に従うアクセス要求のいずれか片方がインタフェース部を介して外部へ出力されることになる。以上の構成により、別途マイクロプロセッサ自体の設計を変更することなく、メモリ構成の変更が可能となる。
【００２１】
なお、図２に示すようにコア１１０とメモリコントローラ１２０との間にキャッシュ１５０を別途設けても良い。キャッシュ１５０は、コア１１０からアクセスされる頻度が高いデータを一時的に記憶しておくキャッシュメモリを有する。キャッシュ１５０内部のキャッシュ制御部は、入力したアクセス要求に基づいて、キャッシュヒット・ミス判定を行い、必要に応じて要求されているデータを上記キャッシュメモリから読み出す制御又はキャッシュメモリに書き込む制御を行う。キャッシュ制御部は、読み出したデータをコア１１０に出力する一方、キャッシュメモリに要求されているデータが記憶されていない場合は、アクセス要求をメモリコントローラ１２０及び選択部１３０へ出力する。このように構成されていても良い。ここでキャッシュ１５０は、Ｌ１キャッシュでもよいし、Ｌ２キャッシュでも良い。また、キャッシュ１５０は、更に高次のキャッシュでもよいし、階層化された複数のキャッシュで構成されていても良い。
【００２２】
また、図２に示すように設定部１６０が別途設けられていても良い。設定部１６０は、メモリコントローラ１２０を使用するかどうかに関する設定情報を参照して、メモリコントローラ１２０及び選択部１３０の設定を行う。例えば、上記設定情報の内容がメモリコントローラ１２０を使用しないことを示している場合は、設定部１６０は、メモリコントローラ１２０の機能を停止させる設定を行う。すなわち、設定部１６０は、メモリコントローラ１２０の機能を停止させる制御信号をメモリコントローラ１２０に出力する。メモリコントローラ１２０は、当該制御信号を入力すると、その機能を停止する。当該構成とすることで、消費電力を削減することができる。
【００２３】
また、設定部１６０は、選択部１３０に対して制御信号を出力する。選択部１３０は、入力した制御信号に基づいて、メモリコントローラ１２０又はキャッシュ１５０のいずれかをメモリインタフェース１４０に接続する。例えば、上記設定情報の内容がメモリコントローラ１２０を使用しないことを示している場合は、設定部１６０は、選択部１３０に対して、メモリインタフェース１４０とキャッシュ１５０とを接続させる設定を行う。すなわち、設定部１６０は、メモリインタフェース１４０とキャッシュ１５０を接続させる制御信号を選択部１３０に出力する。このように、設定部１６０からの制御信号に基づいて選択部１３０における接続先が選択的に切り替わる構成であっても良い。
【００２４】
また、設定部１６０は、上記制御信号をキャッシュ１５０に出力する構成であっても良い。キャッシュ１５０は、設定部１６０より入力した制御信号に基づいてアクセス要求をメモリコントローラ１２０又は選択部１３０のいずれか片方に出力する構成であっても良い。
【００２５】
また、図３に示すように、キャッシュ１５０とメモリコントローラ１２０との間に選択部１７０を配置する構成であっても良い。キャッシュ１５０から出力された第１のプロトコルに従うアクセス要求は、選択部１７０に入力される。選択部１７０は、設定部１６０が行う上述の設定に基づいて、入力した第１のプロトコルに従うアクセス要求をメモリコントローラ１２０又はメモリインタフェース１４０のいずれか片方に出力する。メモリコントローラ１２０は、選択部１７０より第１のプロトコルに従うアクセス要求を入力した場合は、外部メモリに対するアクセス制御を行うための第２のプロトコルに従うプロトコルに従うアクセス要求に変換してメモリインタフェース１４０に出力する。メモリインタフェースは、選択部１７０における選択結果に基づいて、選択部１７０より出力される第１のプロトコルに従うアクセス要求又はメモリコントローラ１２０より出力される第２のプロトコルに従うアクセス要求のいずれか片方を外部に出力する。このように構成されていても良い。
【００２６】
また、図４に示すように、キャッシュ１５０と選択部１３０の間に別途プロトコル変換部１９０を設けても良い。プロトコル変換部１９０は、キャッシュ１５０より出力された第１のプロトコルに従うアクセス要求を入力し、第３のプロトコルに従うアクセス要求に変換して選択部１３０へ出力する。ここで第３のプロトコルとは、メモリインタフェース１４０に接続される中継装置と通信するために規定される専用プロトコルとなる。プロトコル変換部１９０はマイクロプロセッサ１０３内部の通信で用いられるプロトコルに基づいてキャッシュ１５０より出力されたアクセス要求を、中継装置との通信で定められるプロトコルに変換して出力する。選択部１３０は、設定部１６０からの制御信号に基づいてメモリインタフェース１４０の接続先としてメモリコントローラ１２０又はプロトコル変換部１９０のいずれか片方を選択する。当該選択により選択部１３０から出力される第２のプロトコルに従うアクセス要求又は第３のプロトコルに従うアクセス要求のいずれか片方がメモリインタフェース１４０より外部へ出力される。このように構成されていても良い。選択部１３０がプロトコル変換部１９０とメモリインタフェース１４０を繋ぐ場合には、マイクロプロセッサと外部メモリの間に中継装置が配置される。当該中継装置は、第３のプロトコルに従うアクセス要求を入力し、中継装置内部に設置されたメモリコントローラが第２のプロトコルに従うアクセス要求に変換して外部メモリにアクセスすることになる。
【００２７】
また、設定部１６０は、メモリコントローラ１２０を使用するかどうかに関する設定情報に基づいて、メモリコントローラ１２０とプロトコル変換部１９０にそれぞれその機能を停止させるための制御信号を出力してもよい。設定部１６０より、当該制御信号を入力したメモリコントローラ１２０又はプロトコル変換部１９０は、その動作を停止する。また、当該プロトコル変換部１９０における変換機能をキャッシュ１５０内のキャッシュ制御部が備えていても良い。設定部１６０よりアクセス要求の出力先を選択部側に設定された場合は、キャッシュ制御部が第３のプロトコルに従ってアクセス要求を生成し、選択部１３０に出力する構成であっても良い。
【００２８】
（実施の形態２）
本実施の形態２に係る計算機システムは、当該システムに含まれるマイクロプロセッサが複数のコアを有し、複数のメモリコントローラと複数のメモリインタフェースを有するマルチプロセッサ構成をとる。以下図面を参照して本実施の形態２に係る計算機システムについて説明する。
【００２９】
図５は、本実施の形態２に係る計算機システムの構成を示したブロック図である。当該計算機システムは、複数のメモリインタフェースを有するマイクロプロセッサと、当該メモリインタフェースに接続される外部メモリ又は中継装置から構成される。なお、図５では、マイクロプロセッサ２００が有する複数のメモリインタフェースには、すべて外部メモリが直接接続される場合について示している。また、マイクロプロセッサ２００に接続される外部メモリはＤＤＲメモリであり、マイクロプロセッサ２００に備えられたメモリインタフェースはＤＤＲインタフェースであるとして説明する。ここでＤＤＲメモリとは、ＤＤＲ（Double-Data-Rate）方式を用いたＳＤＲＡＭを意味し、ここで述べるＤＤＲ方式には、ＤＤＲ２以降の規格も含むものとする。またＤＤＲインタフェースは、上記ＤＤＲ方式のＳＤＲＡＭとマイクロプロセッサを接続するためのインタフェースであり、ＤＤＲの規格で定められる電気的仕様を満たすインタフェースである。ＤＤＲメモリは、一般的なコンピュータでは、ＤＩＭＭと呼ばれるパッケージで実装される。
【００３０】
マイクロプロセッサ２００は、４つのコア（コア２１０〜２１３）と、Ｌ２キャッシュ２２０と、４つのメモリコントローラ（ＭＣ２３０〜２３３）と、４つの選択部（２４０〜２４３）と、４つのＤＤＲインタフェース（ＤＤＲインタフェース２５０〜２５３）と、設定部２６０と、を備える。メモリコントローラと選択部とＤＤＲインタフェースは、それぞれ組となって配置される。以下、メモリコントローラをＭＣと略記して記載する。また、実施の形態１と同一部分については一部説明を省略する。
【００３１】
コア２１０〜２１３は、それぞれフェッチした命令をデコードし、命令内容に応じて各種の制御や演算を行う。コア２１０〜２１３は、それぞれ、アクセス頻度の高い命令やデータを一時記憶する命令・データキャッシュ、パイプライン処理を行うための命令パイプライン、各種演算を行う演算器などを有する。なお、本実施の形態ではコアの数を４つとしているが、これに限定するものではない。現在ではマイクロプロセッサ内のコアの数は増加傾向にあり、コアの数は１つ以上であればいくつでも良い。
【００３２】
Ｌ２キャッシュ２２０は、コア２１０〜２１３が必要とするデータを一時的に保管する。Ｌ２キャッシュ２２０は、大きく分けてキャッシュメモリ２２１とキャッシュ制御部２２２とから構成される。キャッシュメモリ２２１は、コア２１０〜２１３からのアクセス頻度が高い命令やデータを一時記憶する一時記憶部である。キャッシュ制御部２２２は、入力したアクセス要求に基づいて要求されている命令やデータをキャッシュメモリ２２１から読み出す制御やキャッシュメモリ２２１に書き込む制御を行う。
【００３３】
また、キャッシュ制御部２２２は、ＭＣ２３０〜２３３あるいは選択部２４０〜２４３から返送されるデータを受け取り、キャッシュメモリ２２１に受け取ったデータを書き込む。なお、キャッシュメモリとしては一般的に内部で数バンクに分割され、かつセットアソシアティブ構成をとるものが多く、本発明においても同様のキャッシュメモリとすることができる。本構成においては、コア数が４つかつ４つのＭＣを持つことから４バンク以上、４ウェイセットアソシアティブ構成以上であることが望ましい。図５のＬ２キャッシュ２２０においては、キャッシュメモリ２２１が４バンクに分割され、４ウェイセットアソシアティブ構成であるとする。
【００３４】
ＭＣ２３０〜２３３は、ＤＤＲインタフェース２５０〜２５３に接続されるＤＤＲメモリ８００〜８０３に対するアクセス制御をＤＤＲ規格で定められたプロトコルに従って行う。なお、ＤＤＲ規格としてはＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４などが存在するが、各ＭＣは、ＤＤＲの後継規格を含めその全てあるいは一部のＤＤＲメモリを制御するためのコントローラ機能を持つ。すなわち、ＭＣ２３０〜２３３は、キャッシュ制御部２２２からアクセス要求を入力し、ＤＤＲインタフェース２５０〜２５３に接続されているＤＤＲメモリ８００〜８０３に対応するＤＤＲ規格で定められたプロトコルに従ってアクセス要求を出力する。ＭＣ２３０〜２３３は、ＤＤＲメモリから読み込んだデータを、要求元であるキャッシュ制御部２２２へ出力する。なお、図５では、マイクロプロセッサ２００は、４つのメモリコントローラを有するが、これに限定するものではない。メモコントローラの数はメモリの必要なチャンネル数に応じて１以上の可変である。
【００３５】
選択部２４０〜２４３は、それぞれＭＣ２３０〜２３３と対となるかたちで配置されており、ＭＣ２３０〜２３３を使用して外部メモリにアクセスするかどうかを選択する。すなわち、選択部２４０〜２４３は、それぞれキャッシュ制御部２２２より出力された第１のプロトコルに従うアクセス要求又はＭＣ２３０〜２３３から出力された第２のプロトコルに従うアクセス要求のいずれか片方を選択してＤＤＲインタフェース２５０〜２５３に出力する。具体的には、選択部２４０〜２４３は、ＤＤＲインタフェース２５０〜２５３の接続先としてキャッシュ制御部２２２かＭＣ２３０〜２３３のいずれかを選択する。すなわち、ＭＣ２３０〜２３３を使用して外部メモリへのアクセスを行う場合は、選択部２４０〜２４３は、それぞれＭＣ２３０〜２３３の入出力とメモリインタフェース２５０〜２５３とを接続する。一方、ＭＣ２３０〜２３３を使用せず、キャッシュ制御部２２２から出力されるアクセス要求を直接外部へ出力する場合は、選択部２４０〜２４３は、キャッシュ制御部２２２の入出力とＤＤＲインタフェース２５０〜２５３とを接続する。なお、選択部２４０〜２４３が、ＤＤＲインタフェース２５０〜２５３とキャッシュ制御部２２２とを接続する場合は、ＤＤＲインタフェース２５０〜２５３には外部メモリコントローラを備える中継装置等が接続されることになる。
【００３６】
ＤＤＲインタフェース２５０〜２５３は、マイクロプロセッサ２００とＤＤＲメモリとを接続するためのインタフェースであり、接続されるＤＤＲメモリの規格に従ってその仕様が規定される。ＤＤＲインタフェース２５０〜２５３は、ＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＤＤＲ４などの電気的仕様の全てを満たしても良いし、一部を満たしても良い。また、ＤＤＲ４以降の後継ＤＤＲインタフェースに関してもサポートされていても良い。ＤＤＲインタフェース２５０〜２５３は、それぞれ対応する選択部２４０〜２４３と接続されており、選択部２４０〜２４３から入力した信号を外部へ出力し、外部より入力した信号を選択部２４０〜２４３へ出力する。すなわち、メモリインタフェース２５０〜２５３は、選択部２４０〜２４３で選択された第１のプロトコルに従うアクセス要求又は第２のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する。なお、図５ではマイクロプロセッサ２００が４つのＤＤＲインタフェースを持つ場合について説明しているが、これに限定するものではない。ＤＤＲインタフェースの数はメモリ量やバンド幅の要求によって変化しうる。
【００３７】
設定部２６０は、ＭＣ２３０〜２３３を使用するかどうかについての設定が纏められた設定情報を参照して、キャッシュ制御部２２２及び選択部２４０〜２４３の設定を行う。すなわち、設定部２６０は、上記設定情報を参照し、その内容に応じた制御信号をキャッシュ制御部２２２及び選択部２４０〜２４３へ出力する。キャッシュ制御部２２２では、設定部２６０より入力した制御信号に基づいて、アクセス要求の出力先をメモリコントローラ又は選択部のいずれかに設定し、設定した出力先にアクセス要求を出力する。また、選択部２４０〜２４３は、設定部２６０より入力した制御信号に基づいて、それぞれ対応するＤＤＲインタフェースの接続先をメモリコントローラ２３０〜２３３又はキャッシュ制御部２２２のいずれかから選択する。なお、設定部２６０が参照する設定情報は、マイクロプロセッサ２００内部に格納されていても良いし、外部のＲＯＭなどに格納されていても良い。
【００３８】
次に、図５に示す計算機システムの動作について説明する。
【００３９】
まず、複数のコア２１０〜２１３のうち、コア２１０がＬ２キャッシュ２２０に対してアクセスし、Ｌ２キャッシュミスする場合について説明する。
【００４０】
コア２１０は、表１に示す命令を実行する。
【表１】
0005668573.tif 000002
【００４１】
コア２１０は、ＭＯＶ命令を実行することでコア２１０内のレジスタＲ２に１２８、レジスタＲ３を２５６にセットし、ＬＤ命令を実行することでＲ２とＲ３の値の和である３８４を番地とするアドレスからデータをロードしレジスタＲ１に読み出す。
【００４２】
コア２１０は、内部にデータキャッシュを有しており、当該内部データキャッシュにおけるキャッシュヒット・キャッシュミスの判定を行う。コア２１０は、キャッシュヒット時には内部データキャッシュから該当データを読み出す。一方、ミスヒット時には、コア２１０は、Ｌ２キャッシュ２２０に対して該当データの読み出すためのデータ読み出し要求を出力する。
【００４３】
Ｌ２キャッシュ２２０は、一般的なキャッシュメモリとしてヒット・ミスを判定する。Ｌ２キャッシュ２２０内のキャッシュ制御部２２２は、コア２１０からデータ読み出し要求を入力すると、該当データがキャッシュメモリ２２１内に格納されているかを判定する。キャッシュヒットした場合は、キャッシュ制御部２２２は、キャッシュメモリ２２１内に格納されたキャッシュデータを、キャッシュライン単位で読み出し、要求元のコア２１０に出力する。ここで、キャッシュラインはキャッシュメモリのデータ管理単位であり、一般的に６４Ｂｙｔｅ〜２５６Ｂｙｔｅ程度の大きさである。一方、キャッシュミスした場合は、キャッシュ制御部２２２は、データ読み出し要求を出力する。読み出し要求の出力先は、設定部２６０より行われる設定及び予め定められているメモリインターリーブルールに基づいて決定される。
【００４４】
設定部２６０は、ＭＣ２３０〜２３３を使用するかどうかに関する設定が纏められた設定情報を参照してキャッシュ制御部２２２の出力先を設定する。当該設定情報を表２に示す。
【表２】
0005668573.tif 000003
【００４５】
表２の場合では、ＭＣ２３０〜２３３すべてを使用する設定となっているため、キャッシュ制御部２２２はデータの読み出し要求を選択部２４０〜２４３ではなくＭＣ２３０〜２３３に出力する。
【００４６】
次に、上記メモリインターリーブルールの一例を表３に示す。
【表３】
0005668573.tif 000004
【００４７】
メモリアドレスは、表３に示すルールでキャッシュラインサイズである６４Ｂｙｔｅ毎にインターリーブされる。換言すると、あるアドレスのデータは６４Ｂｙｔｅ単位でＭＣ２３０〜２３３のいずれかに接続されたＤＤＲメモリ又は中継装置に接続されたＤＤＲメモリに格納される。この例では、表１のＬＤ命令はアドレス３８４番地に対するアクセスであり、２５６での除算剰余が１２８となるため、表３のルールに従ってＭＣ２３２又は選択部２４２に対応する。一方上述の設定情報により、選択部２４２ではなくＭＣ２３２を使用する設定になっているため、Ｌ２キャッシュ２２０で発生したアドレス３８４番地に対するキャッシュミスのリクエストであるデータ読み出し要求は、ＭＣ２３２に送られる。
【００４８】
表４に、Ｌ２キャッシュ制御部２２２からＭＣ２３２に送られるパケットの一例を示す。
【表４】
0005668573.tif 000005
【００４９】
パケットには、有効ビット、出し元コア番号、アクセスアドレス、コマンド、タグ番号が含まれる。有効ビットは、当該パケットが有効であるかどうかを示す１ビットの情報である。出し元コア番号は、キャッシュリクエストを出したコアを示す情報である。アクセスアドレスは、アクセスするデータの論理アドレスを示したアドレス情報である。コマンドは、アクセス要求の内容を示す情報である。タグ番号は、タグ管理用に割り当てられた情報である。また、Ｌ２キャッシュ制御部２２２は、必要に応じてマイクロプロセッサ２００に接続されている可能性のある他のプロセッサに対してスヌープ要求を出力する。
【００５０】
ＭＣ２３２は、上記パケットを受け取り、対象のデータが格納されたＤＤＲメモリを内部の表を用いて特定し、選択部２４２に対してＤＤＲコマンドを送出する。
【００５１】
選択部２４２は、設定部２６０より行われる設定に基づいてＭＣ２３２から出力されるメモリアクセス用のＤＤＲコマンドをＤＤＲインタフェース２５２に渡すか、あるいはキャッシュ制御部２２２からのコマンドを直接ＤＤＲインタフェース２５２に渡すかを選択する。表２では設定情報においてＭＣ２３２を使用するという設定になっているため、ＭＣ２３２から出力されるＤＤＲコマンドをＤＤＲインタフェース２５２に渡す。即ち、メモリコントローラ２３２から出力されたパケットが選択部２４２及びＤＤＲインタフェース２５２を介してＤＤＲメモリ８０２に渡される。
【００５２】
ＤＤＲメモリ８０２はＤＤＲインタフェース２５２から渡されたコマンドに対応して、自身が格納する６４Ｂｙｔｅのデータを、ＤＤＲインタフェース２５２へ返送する。返送データは一般的なＤＤＲのリプライフォーマットを持つ。返送されたデータは、ＤＤＲインタフェース２５２、選択部２４２を通って、メモリコントローラ２３２に返送される。メモリコントローラ２３２は６４Ｂｙｔｅのデータを再構成し、キャッシュ制御部２２２に対して表５に示すパケットで送り返す。
【表５】
0005668573.tif 000006
【００５３】
パケットには、有効ビット、戻り先コア番号、リターンデータ、コマンド、タグ番号が含まれる。有効ビットは、当該パケットが有効であるかどうかを示す１ビットの情報である。出し元コア番号は、元のキャッシュリクエストを出したコアを示す情報である。リターンデータは、メモリより読み出されたデータである。コマンドは、元のリクエストのコマンド内容を示す情報である。タグ番号は、タグ管理用に割り当てられた情報である。
【００５４】
キャッシュ制御部２２２は、返送されたパケットに含まれるデータ部分をキャッシュメモリ２２１に登録し、あるいは登録せずに、元のリクエストを出した出し元をパケットから判別する。この場合はパケットに示される戻り先コア番号が００であり、コア２１０を示しているため、コア２１０に対して当該データを返送する。キャッシュ制御部２２２は自身が発行したキャッシュリクエストのアドレスをタグ番号で管理し、リプライデータに含まれるタグ番号を参照することで、返送されたデータのアドレスを知ることができる。Ｌ２キャッシュ２２０から返送された６４Ｂｙｔｅのデータはコア２１０内のデータキャッシュに登録され、必要な３８４番地のアドレスのデータだけが取り出されてレジスタＲ１に格納される。上記一連の動作により、表１に示した命令列の動作が完了する。
【００５５】
なお、ストア動作に関しても、上記ロード動作と同様、キャッシュ制御部２２２、メモリコントローラ２３０〜２３３、選択部２４０〜２４３において、設定部２６０より行われる設定に基づいてコマンド・データの授受が適切に行われる。
【００５６】
次に、図６における構成において、表１に示した命令列の実行動作について説明する。図６ではマイクロプロセッサ２００に対して中継装置９００〜９０３を介してＤＤＲメモリ８００〜８０７が接続されている。各中継装置はメモリコントローラを備えており、当該メモリコントローラが、マイクロプロセッサ２００にとって外部メモリコントローラとして作動する。従って、当該接続構成においては、マイクロプロセッサ２００の内部に設けられているＭＣ２３０〜２３３は使用されない。図６の接続構成における設定情報を表６に示す。
【表６】
0005668573.tif 000007
【００５７】
表６の場合では、ＭＣ２３０〜２３３すべてを使用しない設定となっているため、データの読み出し要求は、ＭＣ２３０〜２３３ではなく選択部２４０〜２４３に出力される。
【００５８】
ここでは、上述の場合と同様、コア２１０がＬ２キャッシュ２２０に対してアクセスし、Ｌ２キャッシュミスする動作について説明する。
【００５９】
コア２１０は、表１に示す命令を実行する。
【００６０】
コア２１０は、ＭＯＶ命令を実行することでコア２１０内のレジスタＲ２に１２８、レジスタＲ３を２５６にセットし、ＬＤ命令を実行することでＲ２とＲ３の値の和である３８４を番地とするアドレスからデータをロードしレジスタＲ１に読み出す。
【００６１】
コア２１０は、内部データキャッシュにおけるキャッシュヒット・キャッシュミスの判定を行い、キャッシュヒット時には内部データキャッシュから該当データを読み出す。一方、ミスヒット時には、コア２１０は、Ｌ２キャッシュ２２０に対して該当データの読み出すためのデータ読み出し要求を出力する。
【００６２】
Ｌ２キャッシュ２２０内のキャッシュ制御部２２２は、コア２１０からデータ読み出し要求を入力すると、該当データがキャッシュメモリ２２１内に格納されているかを判定する。キャッシュヒットした場合は、キャッシュ制御部２２２は、キャッシュメモリ２２１内に格納されたキャッシュデータを、キャッシュライン単位で読み出し、要求元のコア２１０に出力する。一方、キャッシュミスした場合は、キャッシュ制御部２２２は、キャッシュミスのリクエストであるデータ読み出し要求を、設定情報及びメモリインターリーブルールに基づいて、選択部２４２に出力する。
【００６３】
選択部２４２は、キャッシュ制御部２２２より入力したデータ読み出し要求を直接ＤＤＲインタフェース２５２に送るため、キャッシュ制御部２２２から出力されたデータ読み出し要求が、そのままＤＤＲインタフェース２５２を通って中継装置９０２へ送られる。従って、キャッシュ制御部２２２は、ＤＤＲインタフェース２５２を直接使用できる形でコマンドパケットを生成して選択部２４２へ出力する。
【００６４】
中継装置９０２は、マイクロプロセッサ２００とＤＤＲメモリを接続するための中継手段であり、内部にメモリコントローラ９２４〜９２５、ＤＤＲインタフェース９３４〜９３５、中継制御部９１２を備える。なお、ここでは中継装置にメモリコントローラとＤＤＲインタフェースがそれぞれ２つずつ配置される構成について説明するがこれに限るものではない。中継装置は、メモリコントローラとＤＤＲインタフェースがそれぞれ１つずつ配置されてもよいし、さらに多くのメモリコントローラとＤＤＲインタフェースが搭載されていても良い。
【００６５】
中継制御部９１２は、マイクロプロセッサ２００のＤＤＲインタフェース２５２から出力された上記コマンドパケットを図示せぬインタフェースを介して入力し、対象のデータが格納された外部メモリを接続するメモリコントローラを選択する。例えば、中継制御部９１２は、表７に示す管理テーブルを参照してコマンドパケットに含まれるアクセスアドレスから出力先のメモリコントローラを特定する。
【表７】
0005668573.tif 000008
【００６６】
上記例では、コマンドパケットに含まれるアクセスアドレスが３８４であるため、表７の管理テーブルに従ってメモリコントローラ９２４側を選択し、当該コマンドパケットをメモリコントローラ９２４に送る。
【００６７】
メモリコントローラ９２４は、ＤＤＲインタフェース９３４に接続されるＤＤＲメモリに対するアクセス制御を行う。メモリコントローラ９２４は、マイクロプロセッサ２００からみて外部メモリコントローラとしての位置付けとなる。中継制御部９１２よりコマンドパケットを受け取ったメモリコントローラ９２４は、自身が有する管理テーブルを用いて当該コマンドパケットで要求されているデータを格納しているＤＲＡＭを特定し、その外部メモリに対してメモリ制御用のコマンドを送出する。
【００６８】
ＤＤＲメモリ８０４は、メモリコントローラ９２４よりＤＤＲインタフェース９３４を介して渡されたコマンドに対応して、自身が格納する６４Ｂｙｔｅのデータを読み出し、メモリコントローラ９２４に返送する。メモリコントローラ９２４は、返送されたデータを表５で示すようなパケットにくみ上げ、マイクロプロセッサ２００に返送する。当該パケットは、ＤＤＲインタフェース２５２、選択部２４２を通って、Ｌ２キャッシュ２２０に返送される。
【００６９】
Ｌ２キャッシュ２２０内のキャッシュ制御部２２２は、返送されたパケットをキャッシュメモリ２２１に登録し、あるいは登録せずに、元のリクエストを出した出し元をパケットから判別する。この場合は、パケットに含まれる出し元コア番号が００であるため、コア２１０に対してデータを返送する。
【００７０】
キャッシュ制御部２２２から返送された６４Ｂｙｔｅデータは、コア２１０内のデータキャッシュに登録され、必要な３８４番地のアドレスのデータだけが取り出されてレジスタＲ１に格納される。以上の動作により表１に示した命令列の動作が完了する。なお、ストア動作に関しても同様に実施可能である。
【００７１】
このように、本発明のマイクロプロセッサでは、設定情報の内容を変更することで、２種類以上のメモリ構成を柔軟にとった上で動作させることが可能となっている。
【００７２】
なお、上記説明では、マイクロプロセッサ２００内のＭＣ２３０〜２３３全てを使用する又は全てを使用しない場合について説明したがこれに限るものではない。図７に示すように、マイクロプロセッサ２００が有するＭＣの一部を使用し、一部は使用しない構成とすることも可能である。このように、マイクロプロセッサ２００に直接接続されることによりレイテンシの短い高速メモリ領域と、中継装置を介して接続されることによりレイテンシは長いが大容量のメモリ領域と、を組み合わせて使用することが可能となる。なお、図７の構成とした場合の設定情報は表８のようになる。
【表８】
0005668573.tif 000009
【００７３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記説明では、マイクロプロセッサ内部に設定部１６０や設定部２６０が配置される構成を示したが、当該設定部はマイクロプロセッサ外部に配置されていても良い。このように、マイクロプロセッサ外部に配置された設定部からの制御信号を受けて、内蔵メモリコントローラを使用するかどうかの選択が適切に行われる構成であっても良い。
【００７４】
また、図８に示すように計算機システムを構成しても良い。当該計算機システムでは、上述したマイクロプロセッサと同一の構成をとる２つのマイクロプロセッサ３００〜４００が中継装置９００〜９０１を共有する構成について示している。
【００７５】
マイクロプロセッサ３００に関しては、ＤＤＲインタフェース３５０〜３５１に対応する内蔵ＭＣを使用し、ＤＤＲインタフェース３５２〜３５３に対応する内蔵ＭＣは使用しない設定となっている。また、マイクロプロセッサ４００に関しては、ＤＤＲインタフェース４５０〜４５１に対応する内蔵ＭＣは使用せず、ＤＤＲインタフェース４５２〜４５３に対応する内蔵ＭＣを使用する設定となっている。その上でＤＤＲインタフェース３５２とＤＤＲインタフェース４５０が中継装置９００に接続され、ＤＤＲインタフェース３５３とＤＤＲインタフェース４５１が中継装置９０１に接続されている。これにより、中継装置９００〜９０１にそれぞれ接続されたＤＤＲメモリ８０３〜８０６はマイクロプロセッサ３００〜４００から共有することができる。すなわち、当該構成によれば、直接マイクロプロセッサに接続されることでレイテンシの短い高速ローカルメモリ領域と、中継手段を介して接続されることで、レイテンシは長いが大容量で他のプロセッサと共有できる大規模共有メモリ領域と、を組み合わせて使用するハイブリッド構成が可能となる。
【００７６】
その他、本発明によれば以下の構成を採ることができる。
（１）命令を実行してメモリに対するアクセス要求を第１のプロトコルに従って出力する命令実行手段と、前記第１のプロトコルに従うアクセス要求を、外部メモリに対するアクセス制御を行うための第２のプロトコルに従うアクセス要求に変換して出力するメモリ制御手段と、前記メモリ制御手段を使用して前記外部メモリにアクセスするかどうかを選択する選択手段と、前記選択手段における選択結果に基づいて、前記第１のプロトコルに従うアクセス要求又は前記第２のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段と、を具備するマイクロプロセッサ。
（２）前記選択手段は、前記命令実行手段より出力された前記第１のプロトコルに従うアクセス要求又は前記メモリ制御手段より出力された第２のプロトコルに従うアクセス要求のいずれか片方を選択して前記インタフェース手段に出力する、（１）に記載のマイクロプロセッサ。
（３）前記命令実行手段からのアクセス頻度が高いデータを一時記憶する一時記憶手段と、前記命令実行手段より入力したアクセス要求に基づいて、要求されているデータを前記一時記憶手段から読み出す制御又は前記一時記憶手段に書き込む制御を行うキャッシュ制御手段と、を更に具備し、  前記キャッシュ制御手段は、前記命令実行手段より入力したアクセス要求を第１のプロトコルに従って前記メモリ制御手段又は前記選択手段に出力する、（１）又は（２）に記載のマイクロプロセッサ。
（４）前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報を参照して、前記選択手段が行う前記選択を制御する設定手段を更に具備する、（３）に記載のマイクロプロセッサ。
（５）前記設定手段は、前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報を参照して、前記キャッシュ制御手段が第１のプロトコルに従って出力するアクセス要求の出力先を制御する、（４）に記載のマイクロプロセッサ。
（６）前記設定手段は、前記設定情報が前記メモリ制御手段を使用しない設定である場合は、前記メモリ制御手段の動作を停止させる制御を行う、（４）に記載のマイクロプロセッサ。
（７）前記命令実行手段と、前記メモリ制御手段と、前記選択手段と、前記インタフェース手段と、をそれぞれ複数備え、前記キャッシュ制御手段は、前記設定手段が行う前記制御及び前記命令実行手段から入力したアクセス要求に含まれるアドレス情報及び所定のメモリインターリーブルールに基づいて、前記第１のプロトコルに従って出力するアクセス要求の出力先を決定する、（５）に記載のマイクロプロセッサ。
（８）前記インタフェース手段は、ＤＤＲ（Double-Data-Rate）方式のＤＲＡＭ（Dynamic Random Access Memory）を接続するためのインタフェースであり、前記メモリ制御手段は、前記キャッシュ制御手段から出力されたアクセス要求に基づいて、前記ＤＲＡＭに対するアクセス制御を行うためのアクセス要求をＤＤＲ方式で定められているプロトコルに従って出力する、（３）に記載のマイクロプロセッサ。
（９）前記キャッシュ制御手段より出力される前記第１のプロトコルに従うアクセス要求を入力して第３のプロトコルに従うアクセス要求を出力するプロトコル変換手段を更に具備し、前記選択手段は、前記メモリ制御手段より出力された第２のプロトコルに従うアクセス要求又は前記プロトコル変換手段より出力された第３のプロトコルのいずれか片方を選択して前記インタフェース手段に出力し、前記インタフェース手段は、前記選択手段における選択結果に基づいて、前記第２のプロトコルに従うアクセス要求又は前記第３のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する、（３）に記載のマイクロプロセッサ。
（１０）外部メモリに対するアクセス制御を行うメモリ制御手段を有するマイクロプロセッサで使用されるメモリアクセス方法であって、前記メモリ制御手段を使用するかどうかを設定する設定ステップと、命令を実行してメモリに対するアクセス要求を第１のプロトコルに従って出力する命令実行ステップと、前記設定ステップで、前記メモリ制御手段を使用すると設定した場合には、前記第１のプロトコルに従う前記アクセス要求を外部メモリに対するアクセス制御を行うための第２のプロトコルに従うアクセス要求に変換し、前記メモリ制御手段を使用しないと設定した場合には、前記変換を行わない変換ステップと、前記第１のプロトコルに従うアクセス要求又は前記第２のプロトコルに従うアクセス要求のいずれか片方を選択して外部に出力する出力ステップと、を有するメモリアクセス方法。
【符号の説明】
【００７７】
１００〜１０３      マイクロプロセッサ
１１０    コア
１２０    メモリコントローラ
１３０    選択部
１４０    メモリインタフェース
１５０    キャッシュ
１６０    設定部
１７０    選択部
１９０    プロトコル変換部
２００      マイクロプロセッサ
２１０-２１３    コア
２２０      Ｌ２キャッシュ
２２１      キャッシュメモリ
２２２      キャッシュ制御部
２３０-２３３    メモリコントローラ
２４０-２４３    選択部
２５０-２５３    ＤＤＲインタフェース
３００      マイクロプロセッサ
３５０-３５３    ＤＤＲインタフェース
４００      マイクロプロセッサ
４５０-４５３    ＤＤＲインタフェース
８００-８０７    ＤＤＲメモリ
９００-９０３    中継装置
９１０-９１３      中継制御部
９２０-９２７    メモリコントローラ
９３０-９３７    ＤＤＲインタフェース
【図１】
0005668573.tif 000010
【図２】
0005668573.tif 000011
【図３】
0005668573.tif 000012
【図４】
0005668573.tif 000013
【図５】
0005668573.tif 000014
【図６】
0005668573.tif 000015
【図７】
0005668573.tif 000016
【図８】
0005668573.tif 000017