JP5668573B2 - マイクロプロセッサ、メモリアクセス方法 - Google Patents

マイクロプロセッサ、メモリアクセス方法 Download PDF

Info

Publication number
JP5668573B2
JP5668573B2 JP2011075138A JP2011075138A JP5668573B2 JP 5668573 B2 JP5668573 B2 JP 5668573B2 JP 2011075138 A JP2011075138 A JP 2011075138A JP 2011075138 A JP2011075138 A JP 2011075138A JP 5668573 B2 JP5668573 B2 JP 5668573B2
Authority
JP
Japan
Prior art keywords
memory
protocol
access request
output
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.)
Active
Application number
JP2011075138A
Other languages
English (en)
Other versions
JP2012208827A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011075138A priority Critical patent/JP5668573B2/ja
Priority to US13/407,316 priority patent/US9081673B2/en
Publication of JP2012208827A publication Critical patent/JP2012208827A/ja
Application granted granted Critical
Publication of JP5668573B2 publication Critical patent/JP5668573B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Description

本発明は、コンピュータシステムに用いられるマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法に関し、特に接続するメモリの接続自由度を向上させたマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法に関する。
近年、より柔軟性の高いコンピュータシステムを構築するために、マイクロプロセッサに接続される外部メモリの接続自由度を上げたり、外部メモリを複数の半導体装置で共有したりしたいといった要求が高まっている。
特許文献1には、複数の半導体装置でシステムバスを接続することなく外部メモリを共有するシステムが開示されている。当該システムは、外部メモリと複数の半導体装置から構成され、第1の半導体装置内には外部メモリのように振る舞うインタフェース部が別途設けられている。そして、当該インタフェース部は、第2の半導体装置内のメモリコントローラから出力されるメモリ制御信号を受信し、第1の半導体装置内のメモリコントローラに対して外部メモリへのアクセス要求を送信する。第1半導体装置内のメモリコントローラは、当該アクセス要求を入力するとメモリ制御信号を外部メモリに出力してデータのアクセスを行う。このようにシステムを構成することで、複数の半導体装置において外部メモリの共有が可能となり、半導体装置毎に外部メモリを備える必要がなくなるため、コストの低減が可能となる。
また、特許文献2には、メモリコントローラと外部メモリとの間に新たにデータ転送制御装置を設けることで、外部メモリが異なる転送方式を採用していても、メモリコントローラが外部メモリを制御できるメモリ制御システムが開示されている。当該データ転送制御装置が、SDR転送方式、DDR転送方式、バス幅倍増転送方式、といった転送方式の仕様の違いを吸収することで、メモリコントローラは、適切に外部メモリを制御することができる。
特開2006−293591号公報 特開2008−129616号公報
既存のDDR(Double Data Rate)方式で用いられるメモリインタフェースでは、メモリコントローラから外部メモリであるDRAM(Dynamic Random Access Memory)までのTAT(Turn Around Time)は既定遅延であることが要求されている。従って、マイクロプロセッサ内部に設置されたメモリコントローラから外部メモリの間に、その遅延を可変にする可能性のあるネットワークファブリックを挿入することは厳しいという制約が課せられている。
このことは、共有メモリシステムや分散メモリシステムをユーザに合わせて柔軟に構成したいというニーズや、搭載できるメモリの容量を大幅に増加させたいといったニーズに対して、既存のメモリインタフェースを用いて実現することは困難であることを意味している。すなわち、このようなニーズに対応するためには、マイクロプロセッサ内部に設けられたメモリコントローラの数や構成を変更する必要があるため、ユーザの要求に合わせて別途マイクロプロセッサ自体の設計を変更しなければならないという課題が生じる。このような課題に対しては、上記特許文献1及び特許文献2の技術を用いても解決することができず、新たな技術を開発する必要があった。
本発明は、上記課題に鑑み、マイクロプロセッサ自体の設計を変更することなく、接続する外部メモリの容量や構成を柔軟に変更できるマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法を提供することを目的とする。
本発明のマイクロプロセッサは、命令を実行してメモリに対するアクセス要求を第1のプロトコルに従って出力する命令実行手段と、前記第1のプロトコルに従うアクセス要求を、外部メモリに対するアクセス制御を行うための第2のプロトコルに従うアクセス要求に変換して出力するメモリ制御手段と、前記メモリ制御手段を使用して前記外部メモリにアクセスするかどうかを選択する選択手段と、前記選択手段における選択結果に基づいて、前記第1のプロトコルに従うアクセス要求又は前記第2のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段と、を具備する。
また、本発明のメモリアクセス方法は、外部メモリに対するアクセス制御を行うメモリ制御手段を有するマイクロプロセッサで使用されるメモリアクセス方法であって、前記メモリ制御手段を使用するかどうかを設定する設定ステップと、命令を実行してメモリに対するアクセス要求を第1のプロトコルに従って出力する命令実行ステップと、前記設定ステップで、前記メモリ制御手段を使用すると設定した場合には、前記第1のプロトコルに従う前記アクセス要求を外部メモリに対するアクセス制御を行うための第2のプロトコルに従うアクセス要求に変換し、前記メモリ制御手段を使用しないと設定した場合には、前記変換を行わない変換ステップと、前記第1のプロトコルに従うアクセス要求又は前記第2のプロトコルに従うアクセス要求のいずれか片方を選択して外部に出力する出力ステップと、を有する。
本発明の構成をとることにより、マイクロプロセッサ自体の設計を変更することなくマイクロプロセッサに接続する外部メモリの容量や構成を柔軟に変更できるマイクロプロセッサ及び当該マイクロプロセッサを用いたメモリアクセス方法を提供することができる。
実施の形態1にかかるマイクロプロセッサのブロック図である。 実施の形態1にかかるマイクロプロセッサの別の形態のブロック図である。 実施の形態1にかかるマイクロプロセッサの別の形態のブロック図である。 実施の形態1にかかるマイクロプロセッサの別の形態のブロック図である。 実施の形態2にかかる計算機システムのブロック図である。 実施の形態2にかかる計算機システムのブロック図である。 実施の形態2にかかる計算機システムのブロック図である。 実施の形態2にかかる計算機システムのブロック図である。
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態1に係るマイクロプロセッサ100の構成を示したブロック図である。
マイクロプロセッサ100は、一般的にCPU(Central Processing Unit)とも呼ばれるマイクロプロセッサであり、内部にコア110と、メモリコントローラ120と、選択部130と、メモリインタフェース140と、を有する。以下、各ブロックについて説明する。
コア110は、フェッチした命令をデコードし、命令内容に応じて各種の制御や演算処理を行う。例えば、コア110は、デコードした命令がロード命令であった場合は、メモリからデータを読み出すためのデータ読み出し要求を出力する。また、コア110は、デコードした命令がストア命令であった場合は、メモリへデータを書き込むためのデータ書き込み要求を出力する。以下、これらデータ読み出し要求とデータ書き込み要求を合わせてアクセス要求と称する。コア110は、ロード・ストア命令を実行することで、メモリに対するアクセス要求を第1のプロトコルに従って出力する。
メモリコントローラ120は、メモリインタフェース140に接続される外部メモリへのアクセス制御を所定のプロトコルに従って行う。メモリインタフェース140に接続される外部メモリは、例えばSDRAM(Synchronous Dynamic Random Access Memory)がある。メモリの規格としてはDDR、DDR2、DDR3、DDR4などがあるが、これに限定するものではない。今後標準化される様々な規格に則ったメモリを想定することができる。メモリコントローラ120は、コア110より出力されたアクセス要求を入力し、メモリインタフェース140に接続されている外部メモリに対応した所定のプロトコルに従ってアクセス要求を出力する。すなわち、メモリコントローラ120は、第1のプロトコルに従うアクセス要求を入力し、外部メモリに対するアクセス制御を行うための第2のプロトコルに従うアクセス要求に変換して出力する。
選択部130は、メモリコントローラ120を使用して外部メモリにアクセスするかどうかを選択する。選択部130は、コア110より出力された第1のプロトコルに従うアクセス要求又はメモリコントローラ120より出力された第2のプロトコルに従うアクセス要求のいずれか片方を選択してメモリインタフェース140に出力する。具体的には、選択部130は、メモリインタフェース140の接続先としてコア110かメモリコントローラ120のいずれかを選択する。すなわち、メモリコントローラ120を使用して外部メモリへのアクセスを行う場合は、選択部130は、メモリコントローラ120の入出力とメモリインタフェース140とを接続する。一方、メモリコントローラ120を使用せず、コア110から出力されるアクセス要求を直接外部へ出力する場合は、選択部130は、コア110の入出力とメモリインタフェース140とを接続する。なお、選択部130が、メモリインタフェース140とコア110とを接続する場合は、メモリインタフェース140にはメモリコントローラを備える中継装置等が接続されることになる。コア110より出力されたアクセス要求は、選択部130とメモリインタフェース140を通って中継装置内部のメモリコントローラに入力され、当該メモリコントローラが外部メモリへのアクセス制御を行う。
メモリインタフェース140は、マイクロプロセッサ100と外部メモリを接続するためのインタフェースであり、直接接続される外部メモリに従ってその仕様が規定される。接続される外部メモリがDDR方式を採用していれば、メモリインタフェース140は所謂DDRインタフェースである。メモリインタフェース140は、DDR、DDR2、DDR3、DDR4などの規格に従ってそれぞれ電気的に規定されている。メモリインタフェース140は、前記選択部130と接続されており、選択部130から入力した信号を外部へ出力し、外部より入力した信号を選択部130へ出力する。従って、メモリインタフェース140は、選択部130で選択された第1のプロトコルに従うアクセス要求又は第2のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する。
以上説明したように、本実施の形態に係るマイクロプロセッサによれば、内部に設置されたメモリコントローラを用いて外部メモリに直接アクセスするか、当該メモリコントローラを用いずに、所定の通信プロトコルに従ってアクセス要求を外部へ出力するかを選択できる。また、選択部が、メモリインタフェースの接続先を選択的に切り替えることにより、メモリコントローラを通って出力されるアクセス要求又はメモリコントローラを通らずに出力されるアクセス要求のいずれか片方を共通のメモリインタフェースを介して外部へ出力することができる。
換言すると、本実施の形態に係るマイクロプロセッサでは、まず、コアにおいてロード/ストア命令をフェッチし、デコードし、実行し、メモリに対するアクセス要求を出力という一連の動作が行われる。メモリコントローラは、この第1の手順に従うアクセス要求を入力すると、外部メモリに対するアクセス制御を行うため、第2の手順に従うアクセス要求に変換して出力する。第2の手順に従うアクセス要求は、外部メモリとメモリコントローラとの標準化を行うため、通常規格でその電気的仕様や動作手順が定められている。ここで、本発明のマイクロプロセッサは、上記メモリコントローラを使用して外部メモリにアクセスするかどうかを選択する選択部を備えている。当該選択部における選択結果に基づいて、上記第1の手順に従うアクセス要求又は第2の手順に従うアクセス要求のいずれか片方がインタフェース部を介して外部へ出力されることになる。以上の構成により、別途マイクロプロセッサ自体の設計を変更することなく、メモリ構成の変更が可能となる。
なお、図2に示すようにコア110とメモリコントローラ120との間にキャッシュ150を別途設けても良い。キャッシュ150は、コア110からアクセスされる頻度が高いデータを一時的に記憶しておくキャッシュメモリを有する。キャッシュ150内部のキャッシュ制御部は、入力したアクセス要求に基づいて、キャッシュヒット・ミス判定を行い、必要に応じて要求されているデータを上記キャッシュメモリから読み出す制御又はキャッシュメモリに書き込む制御を行う。キャッシュ制御部は、読み出したデータをコア110に出力する一方、キャッシュメモリに要求されているデータが記憶されていない場合は、アクセス要求をメモリコントローラ120及び選択部130へ出力する。このように構成されていても良い。ここでキャッシュ150は、L1キャッシュでもよいし、L2キャッシュでも良い。また、キャッシュ150は、更に高次のキャッシュでもよいし、階層化された複数のキャッシュで構成されていても良い。
また、図2に示すように設定部160が別途設けられていても良い。設定部160は、メモリコントローラ120を使用するかどうかに関する設定情報を参照して、メモリコントローラ120及び選択部130の設定を行う。例えば、上記設定情報の内容がメモリコントローラ120を使用しないことを示している場合は、設定部160は、メモリコントローラ120の機能を停止させる設定を行う。すなわち、設定部160は、メモリコントローラ120の機能を停止させる制御信号をメモリコントローラ120に出力する。メモリコントローラ120は、当該制御信号を入力すると、その機能を停止する。当該構成とすることで、消費電力を削減することができる。
また、設定部160は、選択部130に対して制御信号を出力する。選択部130は、入力した制御信号に基づいて、メモリコントローラ120又はキャッシュ150のいずれかをメモリインタフェース140に接続する。例えば、上記設定情報の内容がメモリコントローラ120を使用しないことを示している場合は、設定部160は、選択部130に対して、メモリインタフェース140とキャッシュ150とを接続させる設定を行う。すなわち、設定部160は、メモリインタフェース140とキャッシュ150を接続させる制御信号を選択部130に出力する。このように、設定部160からの制御信号に基づいて選択部130における接続先が選択的に切り替わる構成であっても良い。
また、設定部160は、上記制御信号をキャッシュ150に出力する構成であっても良い。キャッシュ150は、設定部160より入力した制御信号に基づいてアクセス要求をメモリコントローラ120又は選択部130のいずれか片方に出力する構成であっても良い。
また、図3に示すように、キャッシュ150とメモリコントローラ120との間に選択部170を配置する構成であっても良い。キャッシュ150から出力された第1のプロトコルに従うアクセス要求は、選択部170に入力される。選択部170は、設定部160が行う上述の設定に基づいて、入力した第1のプロトコルに従うアクセス要求をメモリコントローラ120又はメモリインタフェース140のいずれか片方に出力する。メモリコントローラ120は、選択部170より第1のプロトコルに従うアクセス要求を入力した場合は、外部メモリに対するアクセス制御を行うための第2のプロトコルに従うプロトコルに従うアクセス要求に変換してメモリインタフェース140に出力する。メモリインタフェースは、選択部170における選択結果に基づいて、選択部170より出力される第1のプロトコルに従うアクセス要求又はメモリコントローラ120より出力される第2のプロトコルに従うアクセス要求のいずれか片方を外部に出力する。このように構成されていても良い。
また、図4に示すように、キャッシュ150と選択部130の間に別途プロトコル変換部190を設けても良い。プロトコル変換部190は、キャッシュ150より出力された第1のプロトコルに従うアクセス要求を入力し、第3のプロトコルに従うアクセス要求に変換して選択部130へ出力する。ここで第3のプロトコルとは、メモリインタフェース140に接続される中継装置と通信するために規定される専用プロトコルとなる。プロトコル変換部190はマイクロプロセッサ103内部の通信で用いられるプロトコルに基づいてキャッシュ150より出力されたアクセス要求を、中継装置との通信で定められるプロトコルに変換して出力する。選択部130は、設定部160からの制御信号に基づいてメモリインタフェース140の接続先としてメモリコントローラ120又はプロトコル変換部190のいずれか片方を選択する。当該選択により選択部130から出力される第2のプロトコルに従うアクセス要求又は第3のプロトコルに従うアクセス要求のいずれか片方がメモリインタフェース140より外部へ出力される。このように構成されていても良い。選択部130がプロトコル変換部190とメモリインタフェース140を繋ぐ場合には、マイクロプロセッサと外部メモリの間に中継装置が配置される。当該中継装置は、第3のプロトコルに従うアクセス要求を入力し、中継装置内部に設置されたメモリコントローラが第2のプロトコルに従うアクセス要求に変換して外部メモリにアクセスすることになる。
また、設定部160は、メモリコントローラ120を使用するかどうかに関する設定情報に基づいて、メモリコントローラ120とプロトコル変換部190にそれぞれその機能を停止させるための制御信号を出力してもよい。設定部160より、当該制御信号を入力したメモリコントローラ120又はプロトコル変換部190は、その動作を停止する。また、当該プロトコル変換部190における変換機能をキャッシュ150内のキャッシュ制御部が備えていても良い。設定部160よりアクセス要求の出力先を選択部側に設定された場合は、キャッシュ制御部が第3のプロトコルに従ってアクセス要求を生成し、選択部130に出力する構成であっても良い。
(実施の形態2)
本実施の形態2に係る計算機システムは、当該システムに含まれるマイクロプロセッサが複数のコアを有し、複数のメモリコントローラと複数のメモリインタフェースを有するマルチプロセッサ構成をとる。以下図面を参照して本実施の形態2に係る計算機システムについて説明する。
図5は、本実施の形態2に係る計算機システムの構成を示したブロック図である。当該計算機システムは、複数のメモリインタフェースを有するマイクロプロセッサと、当該メモリインタフェースに接続される外部メモリ又は中継装置から構成される。なお、図5では、マイクロプロセッサ200が有する複数のメモリインタフェースには、すべて外部メモリが直接接続される場合について示している。また、マイクロプロセッサ200に接続される外部メモリはDDRメモリであり、マイクロプロセッサ200に備えられたメモリインタフェースはDDRインタフェースであるとして説明する。ここでDDRメモリとは、DDR(Double-Data-Rate)方式を用いたSDRAMを意味し、ここで述べるDDR方式には、DDR2以降の規格も含むものとする。またDDRインタフェースは、上記DDR方式のSDRAMとマイクロプロセッサを接続するためのインタフェースであり、DDRの規格で定められる電気的仕様を満たすインタフェースである。DDRメモリは、一般的なコンピュータでは、DIMMと呼ばれるパッケージで実装される。
マイクロプロセッサ200は、4つのコア(コア210〜213)と、L2キャッシュ220と、4つのメモリコントローラ(MC230〜233)と、4つの選択部(240〜243)と、4つのDDRインタフェース(DDRインタフェース250〜253)と、設定部260と、を備える。メモリコントローラと選択部とDDRインタフェースは、それぞれ組となって配置される。以下、メモリコントローラをMCと略記して記載する。また、実施の形態1と同一部分については一部説明を省略する。
コア210〜213は、それぞれフェッチした命令をデコードし、命令内容に応じて各種の制御や演算を行う。コア210〜213は、それぞれ、アクセス頻度の高い命令やデータを一時記憶する命令・データキャッシュ、パイプライン処理を行うための命令パイプライン、各種演算を行う演算器などを有する。なお、本実施の形態ではコアの数を4つとしているが、これに限定するものではない。現在ではマイクロプロセッサ内のコアの数は増加傾向にあり、コアの数は1つ以上であればいくつでも良い。
L2キャッシュ220は、コア210〜213が必要とするデータを一時的に保管する。L2キャッシュ220は、大きく分けてキャッシュメモリ221とキャッシュ制御部222とから構成される。キャッシュメモリ221は、コア210〜213からのアクセス頻度が高い命令やデータを一時記憶する一時記憶部である。キャッシュ制御部222は、入力したアクセス要求に基づいて要求されている命令やデータをキャッシュメモリ221から読み出す制御やキャッシュメモリ221に書き込む制御を行う。
また、キャッシュ制御部222は、MC230〜233あるいは選択部240〜243から返送されるデータを受け取り、キャッシュメモリ221に受け取ったデータを書き込む。なお、キャッシュメモリとしては一般的に内部で数バンクに分割され、かつセットアソシアティブ構成をとるものが多く、本発明においても同様のキャッシュメモリとすることができる。本構成においては、コア数が4つかつ4つのMCを持つことから4バンク以上、4ウェイセットアソシアティブ構成以上であることが望ましい。図5のL2キャッシュ220においては、キャッシュメモリ221が4バンクに分割され、4ウェイセットアソシアティブ構成であるとする。
MC230〜233は、DDRインタフェース250〜253に接続されるDDRメモリ800〜803に対するアクセス制御をDDR規格で定められたプロトコルに従って行う。なお、DDR規格としてはDDR、DDR2、DDR3、DDR4などが存在するが、各MCは、DDRの後継規格を含めその全てあるいは一部のDDRメモリを制御するためのコントローラ機能を持つ。すなわち、MC230〜233は、キャッシュ制御部222からアクセス要求を入力し、DDRインタフェース250〜253に接続されているDDRメモリ800〜803に対応するDDR規格で定められたプロトコルに従ってアクセス要求を出力する。MC230〜233は、DDRメモリから読み込んだデータを、要求元であるキャッシュ制御部222へ出力する。なお、図5では、マイクロプロセッサ200は、4つのメモリコントローラを有するが、これに限定するものではない。メモコントローラの数はメモリの必要なチャンネル数に応じて1以上の可変である。
選択部240〜243は、それぞれMC230〜233と対となるかたちで配置されており、MC230〜233を使用して外部メモリにアクセスするかどうかを選択する。すなわち、選択部240〜243は、それぞれキャッシュ制御部222より出力された第1のプロトコルに従うアクセス要求又はMC230〜233から出力された第2のプロトコルに従うアクセス要求のいずれか片方を選択してDDRインタフェース250〜253に出力する。具体的には、選択部240〜243は、DDRインタフェース250〜253の接続先としてキャッシュ制御部222かMC230〜233のいずれかを選択する。すなわち、MC230〜233を使用して外部メモリへのアクセスを行う場合は、選択部240〜243は、それぞれMC230〜233の入出力とメモリインタフェース250〜253とを接続する。一方、MC230〜233を使用せず、キャッシュ制御部222から出力されるアクセス要求を直接外部へ出力する場合は、選択部240〜243は、キャッシュ制御部222の入出力とDDRインタフェース250〜253とを接続する。なお、選択部240〜243が、DDRインタフェース250〜253とキャッシュ制御部222とを接続する場合は、DDRインタフェース250〜253には外部メモリコントローラを備える中継装置等が接続されることになる。
DDRインタフェース250〜253は、マイクロプロセッサ200とDDRメモリとを接続するためのインタフェースであり、接続されるDDRメモリの規格に従ってその仕様が規定される。DDRインタフェース250〜253は、DDR、DDR2、DDR3、DDR4などの電気的仕様の全てを満たしても良いし、一部を満たしても良い。また、DDR4以降の後継DDRインタフェースに関してもサポートされていても良い。DDRインタフェース250〜253は、それぞれ対応する選択部240〜243と接続されており、選択部240〜243から入力した信号を外部へ出力し、外部より入力した信号を選択部240〜243へ出力する。すなわち、メモリインタフェース250〜253は、選択部240〜243で選択された第1のプロトコルに従うアクセス要求又は第2のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する。なお、図5ではマイクロプロセッサ200が4つのDDRインタフェースを持つ場合について説明しているが、これに限定するものではない。DDRインタフェースの数はメモリ量やバンド幅の要求によって変化しうる。
設定部260は、MC230〜233を使用するかどうかについての設定が纏められた設定情報を参照して、キャッシュ制御部222及び選択部240〜243の設定を行う。すなわち、設定部260は、上記設定情報を参照し、その内容に応じた制御信号をキャッシュ制御部222及び選択部240〜243へ出力する。キャッシュ制御部222では、設定部260より入力した制御信号に基づいて、アクセス要求の出力先をメモリコントローラ又は選択部のいずれかに設定し、設定した出力先にアクセス要求を出力する。また、選択部240〜243は、設定部260より入力した制御信号に基づいて、それぞれ対応するDDRインタフェースの接続先をメモリコントローラ230〜233又はキャッシュ制御部222のいずれかから選択する。なお、設定部260が参照する設定情報は、マイクロプロセッサ200内部に格納されていても良いし、外部のROMなどに格納されていても良い。
次に、図5に示す計算機システムの動作について説明する。
まず、複数のコア210〜213のうち、コア210がL2キャッシュ220に対してアクセスし、L2キャッシュミスする場合について説明する。
コア210は、表1に示す命令を実行する。
Figure 0005668573
コア210は、MOV命令を実行することでコア210内のレジスタR2に128、レジスタR3を256にセットし、LD命令を実行することでR2とR3の値の和である384を番地とするアドレスからデータをロードしレジスタR1に読み出す。
コア210は、内部にデータキャッシュを有しており、当該内部データキャッシュにおけるキャッシュヒット・キャッシュミスの判定を行う。コア210は、キャッシュヒット時には内部データキャッシュから該当データを読み出す。一方、ミスヒット時には、コア210は、L2キャッシュ220に対して該当データの読み出すためのデータ読み出し要求を出力する。
L2キャッシュ220は、一般的なキャッシュメモリとしてヒット・ミスを判定する。L2キャッシュ220内のキャッシュ制御部222は、コア210からデータ読み出し要求を入力すると、該当データがキャッシュメモリ221内に格納されているかを判定する。キャッシュヒットした場合は、キャッシュ制御部222は、キャッシュメモリ221内に格納されたキャッシュデータを、キャッシュライン単位で読み出し、要求元のコア210に出力する。ここで、キャッシュラインはキャッシュメモリのデータ管理単位であり、一般的に64Byte〜256Byte程度の大きさである。一方、キャッシュミスした場合は、キャッシュ制御部222は、データ読み出し要求を出力する。読み出し要求の出力先は、設定部260より行われる設定及び予め定められているメモリインターリーブルールに基づいて決定される。
設定部260は、MC230〜233を使用するかどうかに関する設定が纏められた設定情報を参照してキャッシュ制御部222の出力先を設定する。当該設定情報を表2に示す。
Figure 0005668573
表2の場合では、MC230〜233すべてを使用する設定となっているため、キャッシュ制御部222はデータの読み出し要求を選択部240〜243ではなくMC230〜233に出力する。
次に、上記メモリインターリーブルールの一例を表3に示す。
Figure 0005668573
メモリアドレスは、表3に示すルールでキャッシュラインサイズである64Byte毎にインターリーブされる。換言すると、あるアドレスのデータは64Byte単位でMC230〜233のいずれかに接続されたDDRメモリ又は中継装置に接続されたDDRメモリに格納される。この例では、表1のLD命令はアドレス384番地に対するアクセスであり、256での除算剰余が128となるため、表3のルールに従ってMC232又は選択部242に対応する。一方上述の設定情報により、選択部242ではなくMC232を使用する設定になっているため、L2キャッシュ220で発生したアドレス384番地に対するキャッシュミスのリクエストであるデータ読み出し要求は、MC232に送られる。
表4に、L2キャッシュ制御部222からMC232に送られるパケットの一例を示す。
Figure 0005668573
パケットには、有効ビット、出し元コア番号、アクセスアドレス、コマンド、タグ番号が含まれる。有効ビットは、当該パケットが有効であるかどうかを示す1ビットの情報である。出し元コア番号は、キャッシュリクエストを出したコアを示す情報である。アクセスアドレスは、アクセスするデータの論理アドレスを示したアドレス情報である。コマンドは、アクセス要求の内容を示す情報である。タグ番号は、タグ管理用に割り当てられた情報である。また、L2キャッシュ制御部222は、必要に応じてマイクロプロセッサ200に接続されている可能性のある他のプロセッサに対してスヌープ要求を出力する。
MC232は、上記パケットを受け取り、対象のデータが格納されたDDRメモリを内部の表を用いて特定し、選択部242に対してDDRコマンドを送出する。
選択部242は、設定部260より行われる設定に基づいてMC232から出力されるメモリアクセス用のDDRコマンドをDDRインタフェース252に渡すか、あるいはキャッシュ制御部222からのコマンドを直接DDRインタフェース252に渡すかを選択する。表2では設定情報においてMC232を使用するという設定になっているため、MC232から出力されるDDRコマンドをDDRインタフェース252に渡す。即ち、メモリコントローラ232から出力されたパケットが選択部242及びDDRインタフェース252を介してDDRメモリ802に渡される。
DDRメモリ802はDDRインタフェース252から渡されたコマンドに対応して、自身が格納する64Byteのデータを、DDRインタフェース252へ返送する。返送データは一般的なDDRのリプライフォーマットを持つ。返送されたデータは、DDRインタフェース252、選択部242を通って、メモリコントローラ232に返送される。メモリコントローラ232は64Byteのデータを再構成し、キャッシュ制御部222に対して表5に示すパケットで送り返す。
Figure 0005668573
パケットには、有効ビット、戻り先コア番号、リターンデータ、コマンド、タグ番号が含まれる。有効ビットは、当該パケットが有効であるかどうかを示す1ビットの情報である。出し元コア番号は、元のキャッシュリクエストを出したコアを示す情報である。リターンデータは、メモリより読み出されたデータである。コマンドは、元のリクエストのコマンド内容を示す情報である。タグ番号は、タグ管理用に割り当てられた情報である。
キャッシュ制御部222は、返送されたパケットに含まれるデータ部分をキャッシュメモリ221に登録し、あるいは登録せずに、元のリクエストを出した出し元をパケットから判別する。この場合はパケットに示される戻り先コア番号が00であり、コア210を示しているため、コア210に対して当該データを返送する。キャッシュ制御部222は自身が発行したキャッシュリクエストのアドレスをタグ番号で管理し、リプライデータに含まれるタグ番号を参照することで、返送されたデータのアドレスを知ることができる。L2キャッシュ220から返送された64Byteのデータはコア210内のデータキャッシュに登録され、必要な384番地のアドレスのデータだけが取り出されてレジスタR1に格納される。上記一連の動作により、表1に示した命令列の動作が完了する。
なお、ストア動作に関しても、上記ロード動作と同様、キャッシュ制御部222、メモリコントローラ230〜233、選択部240〜243において、設定部260より行われる設定に基づいてコマンド・データの授受が適切に行われる。
次に、図6における構成において、表1に示した命令列の実行動作について説明する。図6ではマイクロプロセッサ200に対して中継装置900〜903を介してDDRメモリ800〜807が接続されている。各中継装置はメモリコントローラを備えており、当該メモリコントローラが、マイクロプロセッサ200にとって外部メモリコントローラとして作動する。従って、当該接続構成においては、マイクロプロセッサ200の内部に設けられているMC230〜233は使用されない。図6の接続構成における設定情報を表6に示す。
Figure 0005668573
表6の場合では、MC230〜233すべてを使用しない設定となっているため、データの読み出し要求は、MC230〜233ではなく選択部240〜243に出力される。
ここでは、上述の場合と同様、コア210がL2キャッシュ220に対してアクセスし、L2キャッシュミスする動作について説明する。
コア210は、表1に示す命令を実行する。
コア210は、MOV命令を実行することでコア210内のレジスタR2に128、レジスタR3を256にセットし、LD命令を実行することでR2とR3の値の和である384を番地とするアドレスからデータをロードしレジスタR1に読み出す。
コア210は、内部データキャッシュにおけるキャッシュヒット・キャッシュミスの判定を行い、キャッシュヒット時には内部データキャッシュから該当データを読み出す。一方、ミスヒット時には、コア210は、L2キャッシュ220に対して該当データの読み出すためのデータ読み出し要求を出力する。
L2キャッシュ220内のキャッシュ制御部222は、コア210からデータ読み出し要求を入力すると、該当データがキャッシュメモリ221内に格納されているかを判定する。キャッシュヒットした場合は、キャッシュ制御部222は、キャッシュメモリ221内に格納されたキャッシュデータを、キャッシュライン単位で読み出し、要求元のコア210に出力する。一方、キャッシュミスした場合は、キャッシュ制御部222は、キャッシュミスのリクエストであるデータ読み出し要求を、設定情報及びメモリインターリーブルールに基づいて、選択部242に出力する。
選択部242は、キャッシュ制御部222より入力したデータ読み出し要求を直接DDRインタフェース252に送るため、キャッシュ制御部222から出力されたデータ読み出し要求が、そのままDDRインタフェース252を通って中継装置902へ送られる。従って、キャッシュ制御部222は、DDRインタフェース252を直接使用できる形でコマンドパケットを生成して選択部242へ出力する。
中継装置902は、マイクロプロセッサ200とDDRメモリを接続するための中継手段であり、内部にメモリコントローラ924〜925、DDRインタフェース934〜935、中継制御部912を備える。なお、ここでは中継装置にメモリコントローラとDDRインタフェースがそれぞれ2つずつ配置される構成について説明するがこれに限るものではない。中継装置は、メモリコントローラとDDRインタフェースがそれぞれ1つずつ配置されてもよいし、さらに多くのメモリコントローラとDDRインタフェースが搭載されていても良い。
中継制御部912は、マイクロプロセッサ200のDDRインタフェース252から出力された上記コマンドパケットを図示せぬインタフェースを介して入力し、対象のデータが格納された外部メモリを接続するメモリコントローラを選択する。例えば、中継制御部912は、表7に示す管理テーブルを参照してコマンドパケットに含まれるアクセスアドレスから出力先のメモリコントローラを特定する。
Figure 0005668573
上記例では、コマンドパケットに含まれるアクセスアドレスが384であるため、表7の管理テーブルに従ってメモリコントローラ924側を選択し、当該コマンドパケットをメモリコントローラ924に送る。
メモリコントローラ924は、DDRインタフェース934に接続されるDDRメモリに対するアクセス制御を行う。メモリコントローラ924は、マイクロプロセッサ200からみて外部メモリコントローラとしての位置付けとなる。中継制御部912よりコマンドパケットを受け取ったメモリコントローラ924は、自身が有する管理テーブルを用いて当該コマンドパケットで要求されているデータを格納しているDRAMを特定し、その外部メモリに対してメモリ制御用のコマンドを送出する。
DDRメモリ804は、メモリコントローラ924よりDDRインタフェース934を介して渡されたコマンドに対応して、自身が格納する64Byteのデータを読み出し、メモリコントローラ924に返送する。メモリコントローラ924は、返送されたデータを表5で示すようなパケットにくみ上げ、マイクロプロセッサ200に返送する。当該パケットは、DDRインタフェース252、選択部242を通って、L2キャッシュ220に返送される。
L2キャッシュ220内のキャッシュ制御部222は、返送されたパケットをキャッシュメモリ221に登録し、あるいは登録せずに、元のリクエストを出した出し元をパケットから判別する。この場合は、パケットに含まれる出し元コア番号が00であるため、コア210に対してデータを返送する。
キャッシュ制御部222から返送された64Byteデータは、コア210内のデータキャッシュに登録され、必要な384番地のアドレスのデータだけが取り出されてレジスタR1に格納される。以上の動作により表1に示した命令列の動作が完了する。なお、ストア動作に関しても同様に実施可能である。
このように、本発明のマイクロプロセッサでは、設定情報の内容を変更することで、2種類以上のメモリ構成を柔軟にとった上で動作させることが可能となっている。
なお、上記説明では、マイクロプロセッサ200内のMC230〜233全てを使用する又は全てを使用しない場合について説明したがこれに限るものではない。図7に示すように、マイクロプロセッサ200が有するMCの一部を使用し、一部は使用しない構成とすることも可能である。このように、マイクロプロセッサ200に直接接続されることによりレイテンシの短い高速メモリ領域と、中継装置を介して接続されることによりレイテンシは長いが大容量のメモリ領域と、を組み合わせて使用することが可能となる。なお、図7の構成とした場合の設定情報は表8のようになる。
Figure 0005668573
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記説明では、マイクロプロセッサ内部に設定部160や設定部260が配置される構成を示したが、当該設定部はマイクロプロセッサ外部に配置されていても良い。このように、マイクロプロセッサ外部に配置された設定部からの制御信号を受けて、内蔵メモリコントローラを使用するかどうかの選択が適切に行われる構成であっても良い。
また、図8に示すように計算機システムを構成しても良い。当該計算機システムでは、上述したマイクロプロセッサと同一の構成をとる2つのマイクロプロセッサ300〜400が中継装置900〜901を共有する構成について示している。
マイクロプロセッサ300に関しては、DDRインタフェース350〜351に対応する内蔵MCを使用し、DDRインタフェース352〜353に対応する内蔵MCは使用しない設定となっている。また、マイクロプロセッサ400に関しては、DDRインタフェース450〜451に対応する内蔵MCは使用せず、DDRインタフェース452〜453に対応する内蔵MCを使用する設定となっている。その上でDDRインタフェース352とDDRインタフェース450が中継装置900に接続され、DDRインタフェース353とDDRインタフェース451が中継装置901に接続されている。これにより、中継装置900〜901にそれぞれ接続されたDDRメモリ803〜806はマイクロプロセッサ300〜400から共有することができる。すなわち、当該構成によれば、直接マイクロプロセッサに接続されることでレイテンシの短い高速ローカルメモリ領域と、中継手段を介して接続されることで、レイテンシは長いが大容量で他のプロセッサと共有できる大規模共有メモリ領域と、を組み合わせて使用するハイブリッド構成が可能となる。
その他、本発明によれば以下の構成を採ることができる。
(1)命令を実行してメモリに対するアクセス要求を第1のプロトコルに従って出力する命令実行手段と、前記第1のプロトコルに従うアクセス要求を、外部メモリに対するアクセス制御を行うための第2のプロトコルに従うアクセス要求に変換して出力するメモリ制御手段と、前記メモリ制御手段を使用して前記外部メモリにアクセスするかどうかを選択する選択手段と、前記選択手段における選択結果に基づいて、前記第1のプロトコルに従うアクセス要求又は前記第2のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段と、を具備するマイクロプロセッサ。
(2)前記選択手段は、前記命令実行手段より出力された前記第1のプロトコルに従うアクセス要求又は前記メモリ制御手段より出力された第2のプロトコルに従うアクセス要求のいずれか片方を選択して前記インタフェース手段に出力する、(1)に記載のマイクロプロセッサ。
(3)前記命令実行手段からのアクセス頻度が高いデータを一時記憶する一時記憶手段と、前記命令実行手段より入力したアクセス要求に基づいて、要求されているデータを前記一時記憶手段から読み出す制御又は前記一時記憶手段に書き込む制御を行うキャッシュ制御手段と、を更に具備し、 前記キャッシュ制御手段は、前記命令実行手段より入力したアクセス要求を第1のプロトコルに従って前記メモリ制御手段又は前記選択手段に出力する、(1)又は(2)に記載のマイクロプロセッサ。
(4)前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報を参照して、前記選択手段が行う前記選択を制御する設定手段を更に具備する、(3)に記載のマイクロプロセッサ。
(5)前記設定手段は、前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報を参照して、前記キャッシュ制御手段が第1のプロトコルに従って出力するアクセス要求の出力先を制御する、(4)に記載のマイクロプロセッサ。
(6)前記設定手段は、前記設定情報が前記メモリ制御手段を使用しない設定である場合は、前記メモリ制御手段の動作を停止させる制御を行う、(4)に記載のマイクロプロセッサ。
(7)前記命令実行手段と、前記メモリ制御手段と、前記選択手段と、前記インタフェース手段と、をそれぞれ複数備え、前記キャッシュ制御手段は、前記設定手段が行う前記制御及び前記命令実行手段から入力したアクセス要求に含まれるアドレス情報及び所定のメモリインターリーブルールに基づいて、前記第1のプロトコルに従って出力するアクセス要求の出力先を決定する、(5)に記載のマイクロプロセッサ。
(8)前記インタフェース手段は、DDR(Double-Data-Rate)方式のDRAM(Dynamic Random Access Memory)を接続するためのインタフェースであり、前記メモリ制御手段は、前記キャッシュ制御手段から出力されたアクセス要求に基づいて、前記DRAMに対するアクセス制御を行うためのアクセス要求をDDR方式で定められているプロトコルに従って出力する、(3)に記載のマイクロプロセッサ。
(9)前記キャッシュ制御手段より出力される前記第1のプロトコルに従うアクセス要求を入力して第3のプロトコルに従うアクセス要求を出力するプロトコル変換手段を更に具備し、前記選択手段は、前記メモリ制御手段より出力された第2のプロトコルに従うアクセス要求又は前記プロトコル変換手段より出力された第3のプロトコルのいずれか片方を選択して前記インタフェース手段に出力し、前記インタフェース手段は、前記選択手段における選択結果に基づいて、前記第2のプロトコルに従うアクセス要求又は前記第3のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する、(3)に記載のマイクロプロセッサ。
(10)外部メモリに対するアクセス制御を行うメモリ制御手段を有するマイクロプロセッサで使用されるメモリアクセス方法であって、前記メモリ制御手段を使用するかどうかを設定する設定ステップと、命令を実行してメモリに対するアクセス要求を第1のプロトコルに従って出力する命令実行ステップと、前記設定ステップで、前記メモリ制御手段を使用すると設定した場合には、前記第1のプロトコルに従う前記アクセス要求を外部メモリに対するアクセス制御を行うための第2のプロトコルに従うアクセス要求に変換し、前記メモリ制御手段を使用しないと設定した場合には、前記変換を行わない変換ステップと、前記第1のプロトコルに従うアクセス要求又は前記第2のプロトコルに従うアクセス要求のいずれか片方を選択して外部に出力する出力ステップと、を有するメモリアクセス方法。
100〜103 マイクロプロセッサ
110 コア
120 メモリコントローラ
130 選択部
140 メモリインタフェース
150 キャッシュ
160 設定部
170 選択部
190 プロトコル変換部
200 マイクロプロセッサ
210-213 コア
220 L2キャッシュ
221 キャッシュメモリ
222 キャッシュ制御部
230-233 メモリコントローラ
240-243 選択部
250-253 DDRインタフェース
300 マイクロプロセッサ
350-353 DDRインタフェース
400 マイクロプロセッサ
450-453 DDRインタフェース
800-807 DDRメモリ
900-903 中継装置
910-913 中継制御部
920-927 メモリコントローラ
930-937 DDRインタフェース

Claims (10)

  1. 命令を実行してメモリに対するアクセス要求を第1のプロトコルに従って出力する命令実行手段と、
    前記第1のプロトコルに従うアクセス要求を、外部メモリに対するアクセス制御を行うための第2のプロトコルに従うアクセス要求に変換して出力するメモリ制御手段と、
    前記メモリ制御手段を使用して前記外部メモリにアクセスするかどうかを選択する選択手段と、
    前記選択手段における選択結果に基づいて、前記第1のプロトコルに従うアクセス要求又は前記第2のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段と、
    前記命令実行手段からのアクセス頻度が高いデータを一時記憶する一時記憶手段と、
    前記命令実行手段より入力したアクセス要求に基づいて、要求されているデータを前記一時記憶手段から読み出す制御又は前記一時記憶手段に書き込む制御を行うキャッシュ制御手段と、を具備し、
    前記命令実行手段と、前記メモリ制御手段と、前記選択手段と、前記インタフェース手段と、をそれぞれ複数備え、
    複数の前記メモリ制御手段毎に、前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報が設定手段に設定され、
    前記キャッシュ制御手段は、前記アクセス要求に含まれるアドレス情報及び所定のメモリインターリーブルールに基づいて、前記第1のプロトコルに従って出力するアクセス要求の出力先を決定し、
    前記アクセス要求の出力先に対応する前記メモリ制御手段の前記設定情報に基づいて、前記選択手段が選択を行うマイクロプロセッサ。
  2. 前記選択手段は、前記命令実行手段より出力された前記第1のプロトコルに従うアクセス要求又は前記メモリ制御手段より出力された第2のプロトコルに従うアクセス要求のいずれか片方を選択して前記インタフェース手段に出力する、
    請求項1に記載のマイクロプロセッサ。
  3. 前記使用しない設定である前記メモリ制御手段の動作を停止させている請求項1、又は2に記載のマイクロプロセッサ。
  4. 前記インタフェース手段は、DDR(Double-Data-Rate)方式のDRAM(Dynamic Random Access Memory)を接続するためのインタフェースであり、
    前記メモリ制御手段は、前記キャッシュ制御手段から出力されたアクセス要求に基づいて、前記DRAMに対するアクセス制御を行うためのアクセス要求をDDR方式で定められているプロトコルに従って出力する、
    請求項1〜3のいずれか1項に記載のマイクロプロセッサ。
  5. 前記キャッシュ制御手段より出力される前記第1のプロトコルに従うアクセス要求を入力して第3のプロトコルに従うアクセス要求を出力するプロトコル変換手段を更に具備し、
    前記選択手段は、前記メモリ制御手段より出力された第2のプロトコルに従うアクセス要求又は前記プロトコル変換手段より出力された第3のプロトコルのいずれか片方を選択して前記インタフェース手段に出力し、
    前記インタフェース手段は、前記選択手段における選択結果に基づいて、前記第2のプロトコルに従うアクセス要求又は前記第3のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する、
    請求項1〜4のいずれか1項に記載のマイクロプロセッサ。
  6. 外部メモリに対するアクセス制御を行うメモリ制御手段を有するマイクロプロセッサで使用されるメモリアクセス方法であって、
    前記メモリ制御手段を使用するかどうかを設定する設定ステップと、
    命令を実行してメモリに対するアクセス要求を第1のプロトコルに従って出力する命令実行ステップと、
    前記設定ステップで、前記メモリ制御手段を使用すると設定した場合には、前記第1のプロトコルに従う前記アクセス要求を外部メモリに対するアクセス制御を行うための第2のプロトコルに従うアクセス要求に変換し、前記メモリ制御手段を使用しないと設定した場合には、前記変換を行わない変換ステップと、
    前記第1のプロトコルに従うアクセス要求又は前記第2のプロトコルに従うアクセス要求のいずれか片方を選択して外部に出力する出力ステップと、
    を有し、
    前記マイクロプロセッサが、
    アクセス頻度が高いデータを一時記憶する一時記憶手段と、
    前記アクセス要求に基づいて、要求されているデータを前記一時記憶手段から読み出す制御又は前記一時記憶手段に書き込む制御を行うキャッシュ制御手段と、を具備し、
    前記マイクロプロセッサが、前記メモリ制御手段を複数備え、
    複数の前記メモリ制御手段毎に、前記メモリ制御手段を使用するかどうかに関する設定が纏められた設定情報が設定され、
    前記キャッシュ制御手段は、前記アクセス要求に含まれるアドレス情報及び所定のメモリインターリーブルールに基づいて、前記第1のプロトコルに従って出力するアクセス要求の出力先を決定し、
    前記設定ステップでは、前記アクセス要求の出力先に対応する前記メモリ制御手段の前記設定情報に基づいて、設定が行われるメモリアクセス方法。
  7. 前記マイクロプロセッサは、前記第1のプロトコルに従うアクセス要求又は前記第2のプロトコルに従うアクセス要求のいずれか片方を外部へ出力するインタフェース手段を備え、
    前記出力ステップでは、前記第1のプロトコルに従うアクセス要求又は前記メモリ制御手段より出力された第2のプロトコルに従うアクセス要求のいずれか片方を選択して前記インタフェース手段に出力する、
    請求項6に記載のメモリアクセス方法。
  8. 前記インタフェース手段は、DDR(Double-Data-Rate)方式のDRAM(Dynamic Random Access Memory)を接続するためのインタフェースであり、
    前記メモリ制御手段は、前記キャッシュ制御手段から出力されたアクセス要求に基づいて、前記DRAMに対するアクセス制御を行うためのアクセス要求をDDR方式で定められているプロトコルに従って出力する、
    請求項7に記載のメモリアクセス方法。
  9. 前記マイクロプロセッサが、前記キャッシュ制御手段より出力される前記第1のプロトコルに従うアクセス要求を入力して第3のプロトコルに従うアクセス要求を出力するプロトコル変換手段を更に具備し、
    前記出力ステップでは、前記メモリ制御手段より出力された第2のプロトコルに従うアクセス要求又は前記プロトコル変換手段より出力された第3のプロトコルのいずれか片方を選択して前記インタフェース手段に出力し、
    前記インタフェース手段は、前記設定情報に基づいて、前記第2のプロトコルに従うアクセス要求又は前記第3のプロトコルに従うアクセス要求のいずれか片方を外部へ出力する、
    請求項7、又は8に記載のメモリアクセス方法。
  10. 前記使用しない設定である前記メモリ制御手段の動作を停止させている請求項6〜9のいずれか1項に記載のメモリアクセス方法。
JP2011075138A 2011-03-30 2011-03-30 マイクロプロセッサ、メモリアクセス方法 Active JP5668573B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011075138A JP5668573B2 (ja) 2011-03-30 2011-03-30 マイクロプロセッサ、メモリアクセス方法
US13/407,316 US9081673B2 (en) 2011-03-30 2012-02-28 Microprocessor and memory access method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011075138A JP5668573B2 (ja) 2011-03-30 2011-03-30 マイクロプロセッサ、メモリアクセス方法

Publications (2)

Publication Number Publication Date
JP2012208827A JP2012208827A (ja) 2012-10-25
JP5668573B2 true JP5668573B2 (ja) 2015-02-12

Family

ID=46928867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011075138A Active JP5668573B2 (ja) 2011-03-30 2011-03-30 マイクロプロセッサ、メモリアクセス方法

Country Status (2)

Country Link
US (1) US9081673B2 (ja)
JP (1) JP5668573B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710275B2 (en) * 2012-11-05 2017-07-18 Nvidia Corporation System and method for allocating memory of differing properties to shared data objects
US9971510B2 (en) 2016-10-16 2018-05-15 Mediatek Inc. Method for managing memory and associated microcontroller

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652521B2 (ja) * 1988-11-30 1994-07-06 株式会社日立製作所 情報処理システム
JPH05173938A (ja) * 1991-10-08 1993-07-13 Fujitsu Ltd 間欠dma制御方式
US6260101B1 (en) * 1997-03-07 2001-07-10 Advanced Micro Devices, Inc. Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices
JP2002366425A (ja) * 2001-06-05 2002-12-20 Hitachi Ltd アドレス変換回路を有するデータ処理装置
JP4453271B2 (ja) * 2003-04-25 2010-04-21 コニカミノルタホールディングス株式会社 コンピュータシステム及びメモリの接続方法
KR100604835B1 (ko) * 2004-02-24 2006-07-26 삼성전자주식회사 프로토콜 변환중재회로, 이를 구비하는 시스템과 신호변환중재방법
JP4288421B2 (ja) * 2004-03-12 2009-07-01 日本電気株式会社 Cpuとの対応を制御する主記憶システム及び主記憶装置
JP2006293591A (ja) 2005-04-08 2006-10-26 Hitachi Ltd 半導体システム及び半導体装置
US7562271B2 (en) * 2005-09-26 2009-07-14 Rambus Inc. Memory system topologies including a buffer device and an integrated circuit memory device
US7650469B2 (en) * 2006-09-06 2010-01-19 International Business Machines Corporation Determining whether a non-running processor has access to an address space
JP4979065B2 (ja) 2006-11-16 2012-07-18 キヤノン株式会社 メモリ装置
JP2009026269A (ja) * 2007-07-24 2009-02-05 Olympus Corp データ処理装置
JP2009086830A (ja) * 2007-09-28 2009-04-23 Toshiba Corp メモリコントローラ
JP5375441B2 (ja) * 2009-08-27 2013-12-25 株式会社リコー 半導体集積回路、記憶制御方法、記憶制御プログラム及び記録媒体
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture

Also Published As

Publication number Publication date
US20120254530A1 (en) 2012-10-04
JP2012208827A (ja) 2012-10-25
US9081673B2 (en) 2015-07-14

Similar Documents

Publication Publication Date Title
US9075744B2 (en) Performance and power improvement on DMA writes to level two combined cache/SRAM that is caused in level one data cache and line is valid and dirty
US5729714A (en) Shared memory access method and apparatus with address translation
US20090006756A1 (en) Cache memory having configurable associativity
EP2751698B1 (en) Computer system with processor local coherency for virtualized input/output
JP6254603B2 (ja) メッセージシグナル割込みの通信
JP2019536136A (ja) プラットフォームマージニング及びデバッグのためのソフトウェアモードレジスタアクセス
US7882327B2 (en) Communicating between partitions in a statically partitioned multiprocessing system
CN105095110A (zh) 可融合可重构缓存架构
JP4323241B2 (ja) バス帯域幅を増加させるためのメモリコントローラ、これを利用したデータ伝送方法及びこれを備えるコンピュータシステム
US8359419B2 (en) System LSI having plural buses
JP5668573B2 (ja) マイクロプロセッサ、メモリアクセス方法
JP2009187314A (ja) 二重化コントローラ・システム、cpuモジュール、そのプログラム
CN109840241B (zh) 一种异构双核处理器核间通讯电路
JP6127907B2 (ja) 演算処理装置及び演算処理装置の制御方法
EP2189909B1 (en) Information processing unit and method for controlling the same
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP2005107873A (ja) 半導体集積回路
US20090228659A1 (en) Processor and computing system
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
TW201337569A (zh) 輸出輸入控制裝置與其控制方法
JP2009098819A (ja) メモリシステム、メモリシステムの制御方法、及びコンピュータシステム
JPH05210590A (ja) 書き込みキャッシュメモリのための装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141023

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: 20141118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141201

R150 Certificate of patent or registration of utility model

Ref document number: 5668573

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150