[go: up one dir, main page]

JP2005275735A - Cpuと記憶装置の間に配置される制御装置及びチップセット - Google Patents

Cpuと記憶装置の間に配置される制御装置及びチップセット Download PDF

Info

Publication number
JP2005275735A
JP2005275735A JP2004087184A JP2004087184A JP2005275735A JP 2005275735 A JP2005275735 A JP 2005275735A JP 2004087184 A JP2004087184 A JP 2004087184A JP 2004087184 A JP2004087184 A JP 2004087184A JP 2005275735 A JP2005275735 A JP 2005275735A
Authority
JP
Japan
Prior art keywords
data
cpu
auxiliary memory
memory
storage device
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.)
Pending
Application number
JP2004087184A
Other languages
English (en)
Inventor
Noriaki Kawanishi
紀昭 川西
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.)
Advanet Inc
Original Assignee
Advanet Inc
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 Advanet Inc filed Critical Advanet Inc
Priority to JP2004087184A priority Critical patent/JP2005275735A/ja
Publication of JP2005275735A publication Critical patent/JP2005275735A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Abstract

【課題】 外部メモリ等の記憶装置に格納されたデータをCPUが取り込むまでの時間を速くすることでCPUシステム全体の性能を向上させることのできるCPUと記憶装置の間に配置される制御装置を提供すること。
【解決手段】 CPUからのデータ読み出し要求に従い、外部メモリ1に格納されているデータを読み出し(フェッチ)、これをCPUへ出力するためにCPUと記憶装置の間に配置されるメモリブリッジ2であって、CPUからのフェッチに基づき、外部メモリ1にアクセスする手段と、外部メモリからCPUの要求に係るデータと、当該データが格納されたアドレスに続くアドレスに格納されている後続データとを合わせて読み出す手段(プリフェッチ)と、要求に係るデータをCPUに出力するとともに、後続データを補助メモリ3内に保存する手段と、CPUからの次の読み出し要求に係るデータのアドレスが、補助メモリ3に格納されているデータのアドレスと一致する場合は、補助メモリ3に格納されているデータをCPUに出力する。
【選択図】 図1

Description

本発明は、CPUからのデータ読み出し要求に従い、記憶装置に格納されているデータを読み出し、これをCPUへ出力するためにCPUと記憶装置の間に配置される制御装置に関するものである。
パソコン、サーバー等のコンピュータに用いられているCPUシステムでは、CPUが記憶装置(メモリやハードディスク)に格納されているデータ(命令コード等)のやり取りを制御装置を介して行っている(図4の手順(A)(B)(C)(D)参照)。かかる制御装置は、チップセットとも呼ばれており、CPUとメモリの間のデータの入出力の調整を行う機能を有している。PC/AT互換機のように、チップセットがノースブリッジとサウスブリッジに機能分離されている場合、CPUとメモリと間の調整はノースブリッジにより行われている。
近年のCPUシステムでは、CPUの動作速度の高速化に伴い、外部メモリ(記憶装置)へのアクセス時間がボトルネックとなっており、外部メモリへのアクセス時間を速くする工夫が必要とされる。例えば、CPUの内部では分岐予測やアウトオブオーダー機能により、実際に使用するタイミングよりも早くデータ(命令コードやそれ以外のデータ)を取り出す工夫が行われている。
しかしながら、CPU内部の動作速度とメモリへのアクセス動作時間の差が大きくなるにつれて、これらの機能のみではメモリアクセス時間の遅さをカバーすることが困難な状況になってきている。CPUの外部メモリとして利用されているのは、メモリとしてはSDRAMが用いられており、クロック周波数に同期してクロック波形の山側又は谷側でデータの受け取り/送出を行うメモリである。これに対して、DDR−SDRAMは、上記動作を山側と谷側で行うため、クロック周波数の2倍でデータ転送を行うことができる。これにより、アクセス時間を速くすることはできる。しかし、一度のデータの読み取りを行うために多くのオーバーヘッドを必要とすることに変わりはなく、アクセス時間を速くできるにしても限界がある。
本発明は上記実情に鑑みてなされたものであり、その課題は、外部メモリ等の記憶装置に格納されたデータをCPUが取り込むまでの時間を速くすることでCPUシステム全体の性能を向上させることのできる、CPUと記憶装置の間に配置される制御装置を提供することである。
上記課題を解決するため本発明に係るCPUと記憶装置の間に配置される制御装置は、
CPUからのデータ読み出し要求に従い、記憶装置に格納されているデータを読み出し、これをCPUへ出力するためにCPUと記憶装置の間に配置される制御装置であって、
CPUからのデータ読み出し要求に基づき、記憶装置にアクセスする手段と、
CPUの要求に係るデータと、当該データが格納されたアドレスに続くアドレスに格納されている後続データとを合わせて記憶装置から読み出す手段と、
要求に係るデータをCPUに出力するとともに、前記後続データを補助メモリ内に保存する手段と、
CPUからの次の読み出し要求に係るデータのアドレスが、前記補助メモリに格納されているデータのアドレスと一致する場合は、補助メモリに格納されているデータをCPUに出力する手段とを備えていることを特徴とするものである。
かかる構成による制御装置の作用・効果を説明する。CPUからのデータ読み出し要求(フェッチ)が来ると、記憶装置(メモリやハードディスク等)にアクセスし、そのデータが格納されているアドレスから要求に係るデータを取り出す。取り出されたデータは、CPUに対して出力される。また、その要求に係るデータが格納されていたアドレスに後続するアドレスに格納されているデータも合わせて取り出す(プリフェッチ)。これは命令コード等のデータが、メモリ内の連続したアドレスに格納されていることに着目したものである。
後続するアドレスから読み出されたデータは、補助メモリ内(外部の記憶装置とは異なるメモリ)に保存される。CPUから次の読み出し要求が来た時に、その要求に係るデータのアドレスが、上記補助メモリ内に格納されているデータのアクセスと一致する場合は、その補助メモリに格納されているデータをCPUに出力する。従って、この場合は直接記憶装置に対してアクセスをしなくて良いので、データの取り出し時間を短縮することができる。また、命令コード等が連続したアドレスに格納されていることに鑑みると、高い確率で上記補助メモリからデータを取り出すことができる。その結果、外部メモリ等の記憶装置に格納されたデータをCPUが取り込むまでの時間を速くすることでCPUシステム全体の性能を向上させることのできるCPUと記憶装置の間に配置される制御装置を提供することができる。
上記課題を解決するため本発明に係る別のCPUと記憶装置の間に配置される制御装置は、
CPUからのデータ読み出し要求に従い、記憶装置に格納されているデータを読み出し、これをCPUへ出力するためにCPUと記憶装置の間に配置される制御装置であって、
CPUからのデータ読み出し要求に基づき、記憶装置にアクセスする手段と、
要求に係るデータをCPUに出力するとともに、当該データのデコードを行う手段と、
デコードにより、次にCPUから読み出し要求されるデータを予測して、予め記憶装置から読み出す手段と、
読み出されたデータを前記補助メモリ内に保存する手段と、
CPUからの次の読み出し要求に係るデータのアドレスが、前記補助メモリに格納されているデータのアドレスと一致する場合は、補助メモリに格納されているデータをCPUに出力する手段とを備えていることを特徴とするものである。
かかる構成による制御装置の作用・効果を説明する。CPUからのデータ読み出し要求が来ると、記憶装置(メモリやハードディスク等)にアクセスし、そのデータが格納されているアドレスから要求に係るデータを取り出す。取り出されたデータは、CPUに対して出力される。また、取り出されたデータのデコード(解析)を行う機能を備えさせ、このデコードにより、次に読み出されるべきデータの予測を行うことができる。例えば、データ(命令コード)が分岐命令である場合、命令コードのデコードも行い分岐先のアドレスに格納されているデータを予め取り出しておくことが可能になる。これにより、記憶装置から読み取る場合のオーバーヘッドをなくすことができる。従って、アドレスの順番通りにデータを取り出さない状態であったとしても、補助メモリ内からデータをCPUに出力させることができるので、更にアクセス時間の短縮化に寄与することができ、CPUシステム全体の性能を向上させることができる。
本発明において、デコード結果に基づいて、次にCPUから読み出されると予測されるデータが複数通り存在する場合、それらすべてのデータを記憶装置から読み出し前記補助メモリに保存する手段を備えていることが好ましい。
デコードの結果により、読み出されるべきデータをすべて補助メモリに保存させておくことで、さらに高い確率でデータを補助メモリ内から取り出すことが可能になる。
本発明において、前記データを補助メモリ内に保存する処理を行っている間に、補助メモリ内に保存されていないアドレスに対するCPUからのデータ読み出し要求が来た場合は、当該読み出し要求を優先的に行う手段を備えていることが好ましい。
補助メモリへのデータを取りこむ処理によりCPUからのアクセスが妨げられると、アクセス時間を早くするという本来の目的を達成できなくなる。そこで、補助メモリ内に保存されていないアドレスに対するCPUからの読み出し要求が来た場合は、補助メモリへのデータ取りこみは中止し、CPUからの要求を優先的に行う。これにより、アクセス時間の短縮化を図ることができる。
本発明において、CPUからの次の読み出し要求に係るデータが、前記補助メモリに格納されていない場合、補助メモリ内に格納されている全データを破棄する手段と、
後続データを補助メモリ内に保存する処理を改めて行う手段とを備えていることが好ましい。
CPUからの読み出し要求に係るデータが、補助メモリにない場合には、補助メモリ内のデータはその後も有効活用されない可能性が高い。そこで、かかる場合には補助メモリ内のデータを破棄し、改めて、補助メモリへのデータの取りこみを行うようにする。これにより、補助メモリの容量を有効活用することができる。
本発明において、補助メモリ内に保存されたデータが所定時間内に使用されなかった場合、当該データを破棄する手段を備えていることが好ましい。これにより、補助メモリの容量を有効に活用することができる。
本発明に係る機能を実現するための各手段は、ハードウェアにより構成することができる。
次に、本発明に係るCPUと記憶装置の間に配置される制御装置の好適な実施形態を図面を用いて説明する。図1は、第1実施形態に係る設定装置の構成を示す概念図である。
<第1実施形態>
制御装置は、CPUと記憶装置との間に配置されるものであり、いわゆるチップセットにより構成されるものである。また、記憶装置はメモリ(外部メモリあるいは主メモリ)あるいはハードディスクが対象となるが、説明の便宜上メモリ1を代表して説明するものとする。また、制御装置はCPUとメモリ1の間のブリッジ的な役割を果たし、CPU−メモリブリッジ2(以下、単にメモリブリッジという)と称することとする。メモリブリッジ2は、論理回路等のハードウェアにより構成される。メモリブリッジ2内には、本発明特有の補助メモリ3が設けられている。
本発明に係るCPUシステムのデータの取り出し手順を説明する。メモリ1には、予め読み出すべきデータが格納されている。ここで、データには、命令コードと命令コードではない単なるデータがあるが、これらを総称して「データ」と称することとする。
まずCPUからデータ読み出し命令(命令フェッチ)がなされる(A参照)。メモリブリッジ2は、この命令に基づいてメモリ1に対して読み取りアクセスを行う(B参照)。メモリ1内の、そのコードが格納されているアドレスからデータが読み出される(C参照)。更に、CPUからの読み出し要求に係るデータのみならず、上記アドレスの次のアドレスに格納されたデータも読み出される。
一方、CPUの読み出し要求に係るデータは、CPUへ出力される(D参照)。また、その出力されたデータの次のアドレスから読み出されたデータは補助メモリ3に格納される。このように、メモリブリッジ2は、次のアドレスのデータを順番に読み出していき、補助メモリ3に格納させる処理を行う。このような補助メモリ3へデータを格納していく処理をプリフェッチと称する。また、この補助メモリ3へデータを格納する場合に、そのアドレスデータも合わせて保存される。
次に、CPUからの次のフェッチ要求がされる(E参照)。この時、その要求に係るデータのアドレスが補助メモリ3の中のデータのアドレスと一致するか否かを判定し、一致する場合は、補助メモリ3に格納されているデータがCPUへと出力される。
このように補助メモリ3にあるデータが出力できる場合は、メモリ1に対してアクセスする必要がなくなる。従って、メモリ1にアクセスしてデータを読み取るためのオーバーヘッドをなくすことができ、アクセス時間を短縮することができる。
以上の構成において、補助メモリ3へのプリフェッチは、補助メモリ3内に保存されていないアドレスに対するフェッチが来るまで行われる。従って、プリフェッチを行っている間に、補助メモリ3内に保存されていないアドレスに対するCPUからの読み出し命令が来た場合には、プリフェッチを中止し、直ちにCPUからの命令フェッチを処理する。これにより、できるだけ多くのデータをプリフェッチできると共に、プリフェッチによるアクセス時間の低下も防止することができる。
さらに、プリフェッチされるデータは、CPUからの読み出し要求に係るデータのアドレスに続くデータである。これは、命令コード(データ)の多くが連続したアドレスから取り出されるというしくみを利用するものである。従って、かなり高い確率でプリフェッチされたデータをCPUに出力することができる。
また、CPUからの次のフェッチ要求がされた時(E参照)、その要求に係るデータのアドレスが補助メモリ3の中のデータのアドレスと一致しない場合、すなわち、 補助メモリ3の中にデータがプリフェッチされていない場合は、メモリ1にアクセスすることになるが、補助メモリ3内のプリフェッチされたデータは削除する。これは、データが補助メモリ3内になければ、補助メモリ3内のデータは今後もCPUへと出力される確率は低いと考えられる。従って、データは削除し、補助メモリ3の容量を有効活用する。補助メモリ3のデータを削除した場合は、再度プリフェッチをやり直すことになる。
なお、プリフェッチを行うためには、CPUからの要求に係るデータが命令コードであるのか単なるデータであるのかをメモリブリッジ2で判断できる必要がある。CPUが読み取り命令を出す時には、命令コードか単なるデータであるのかを区別する信号を使用することで、この信号に基づいて判断することができる。あるいは、命令コードと単なるデータにより読み取りサイズを変えることによっても、取り出されるデータが命令コードか否かを判断することができる。
更に追加される機能として、一定時間経過しても使用されなかったプリフェッチデータは破棄するようにしている。これにより、メモリブリッジ2内の補助メモリ3の容量を有効活用することができる。
<第2実施形態>
第1実施形態では、連続するアドレスに対応するデータをプリフェッチする構成を説明した。この場合、分岐命令が実行されると有効にプリフェッチ機能を動作させることができない。そこで、図2に示すように命令デコード手段4の機能を備えておき、命令コードをCPUに出力すると共に(D参照)、メモリブリッジ2内に設けた命令デコード手段4によるデコード(解析)を行う。このデコード機能は、CPU内に設けられている機能と同様である。従って、分岐命令であったとしても、先行してデータをプリフェッチすることができる。すなわち、 この機能により、次にCPUによりフェッチされるデータ(命令コード)をメモリブリッジ2の内部で予測することができる。この予測に基づいて、プリフェッチを行う。なお、分岐命令でなければ、連続するアドレスに対応するデータをプリフェッチすればよい。プリフェッチされたデータは、第1実施形態と同様に補助メモリ3に保存される。
次に、CPUからの次のフェッチ要求がされる(図3のG参照)。この時、その要求に係るデータのアドレスが補助メモリ3の中のデータのアドレスと一致するか否かを判定し、一致する場合は、補助メモリ3に格納されているデータがCPUへと出力される(図3のG参照)。CPUからの要求に係るデータが、補助メモリ3に格納されていない場合は、補助メモリ3内のデータは削除処理され、この点は図1と同様である。また、一定時間経過しても使用されなかったプリフェッチデータは破棄する点は先ほどと同じである。
さらに、命令デコード手段4によリデコードされた命令コードが条件付分岐命令の場合は、次にCPUによりフェッチされるデータが複数通り存在することがある。この場合は、予測される分岐先の命令をすべてメモリ1から取り出し、補助メモリ3にプリフェッチしておく。この場合、分岐先のデータの夫々を別々の補助メモリ3(補助メモリ3を複数設ける)に取り込むようにすること等で、プリフェッチ機能を複数設けることができる。
本発明に係る制御装置は、いわゆるチップセットに搭載することができ、ノースブリッジとサウスブリッジに機能が分かれている場合は、ノースブリッジにその機能を搭載することができる。また、図1に示した機能と第2,3に示した機能の両方を搭載することができる。すなわち、 CPUからの連続するアドレスに対するフェッチでは、図1に示す機能を使用し、分岐命令等の連続しないアドレスに対しては、図2,3に示す機能を使用することができる。以上のように、メモリ1に対するメモリアクセスのオーバーヘッドを解消することができ、メモリへのアクセス時間の短縮化を図ることができる。
第1実施形態に係るCPUシステムの構成を示す概念図 第2実施形態に係るCPUシステムの構成を示す概念図 第2実施形態に係るCPUシステムの構成を示す概念図 従来技術に係るCPUシステムの構成を示す概念図
符号の説明
1 メモリ
2 メモリブリッジ
3 補助メモリ
4 命令デコード手段

Claims (7)

  1. CPUからのデータ読み出し要求に従い、記憶装置に格納されているデータを読み出し、これをCPUへ出力するためにCPUと記憶装置の間に配置される制御装置であって、
    CPUからのデータ読み出し要求に基づき、記憶装置にアクセスする手段と、
    CPUの要求に係るデータと、当該データが格納されたアドレスに続くアドレスに格納されている後続データとを合わせて記憶装置から読み出す手段と、
    要求に係るデータをCPUに出力するとともに、前記後続データを補助メモリ内に保存する手段と、
    CPUからの次の読み出し要求に係るデータのアドレスが、前記補助メモリに格納されているデータのアドレスと一致する場合は、補助メモリに格納されているデータをCPUに出力する手段とを備えているCPUと記憶装置の間に配置される制御装置。
  2. CPUからのデータ読み出し要求に従い、記憶装置に格納されているデータを読み出し、これをCPUへ出力するためにCPUと記憶装置の間に配置される制御装置であって、
    CPUからのデータ読み出し要求に基づき、記憶装置にアクセスする手段と、
    要求に係るデータをCPUに出力するとともに、当該データのデコードを行う手段と、
    デコードにより、次にCPUから読み出し要求されるデータを予測して、予め記憶装置から読み出す手段と、
    読み出されたデータを前記補助メモリ内に保存する手段と、
    CPUからの次の読み出し要求に係るデータのアドレスが、前記補助メモリに格納されているデータのアドレスと一致する場合は、補助メモリに格納されているデータをCPUに出力する手段とを備えているCPUと記憶装置の間に配置される制御装置。
  3. デコード結果に基づいて、次にCPUから読み出されると予測されるデータが複数通り存在する場合、それらすべてのデータを記憶装置から読み出し前記補助メモリに保存する手段を備えている請求項2に記載の制御装置。
  4. 前記後続データを補助メモリ内に保存する処理を行っている間に、CPUからのデータ読み出し要求が来た場合は、当該読み出し要求を優先的に行う手段を備えている請求項1〜3のいずれか1項に記載の制御装置。
  5. CPUからの次の読み出し要求に係るデータが、前記補助メモリに格納されていない場合、補助メモリ内に格納されている全データを破棄する手段と、
    データを補助メモリ内に保存する処理を改めて行う手段とを備えている請求項1〜4のいずれか1項に記載の制御装置。
  6. 補助メモリ内に保存されたデータが所定時間内に使用されなかった場合、当該データを破棄する手段を備えている請求項1〜5のいずれか1項に記載の制御装置。
  7. 請求項1〜6のいずれか1項に記載の制御装置を搭載しているチップセット。
JP2004087184A 2004-03-24 2004-03-24 Cpuと記憶装置の間に配置される制御装置及びチップセット Pending JP2005275735A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004087184A JP2005275735A (ja) 2004-03-24 2004-03-24 Cpuと記憶装置の間に配置される制御装置及びチップセット

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004087184A JP2005275735A (ja) 2004-03-24 2004-03-24 Cpuと記憶装置の間に配置される制御装置及びチップセット

Publications (1)

Publication Number Publication Date
JP2005275735A true JP2005275735A (ja) 2005-10-06

Family

ID=35175357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004087184A Pending JP2005275735A (ja) 2004-03-24 2004-03-24 Cpuと記憶装置の間に配置される制御装置及びチップセット

Country Status (1)

Country Link
JP (1) JP2005275735A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012009048A (ja) * 2004-08-27 2012-01-12 Qualcomm Inc バス上のメモリプリフェッチコマンドを送信するための方法および装置
JP2015215833A (ja) * 2014-05-13 2015-12-03 三菱電機株式会社 データ読み出し装置
KR20170054633A (ko) * 2015-11-09 2017-05-18 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012009048A (ja) * 2004-08-27 2012-01-12 Qualcomm Inc バス上のメモリプリフェッチコマンドを送信するための方法および装置
JP2015215833A (ja) * 2014-05-13 2015-12-03 三菱電機株式会社 データ読み出し装置
KR20170054633A (ko) * 2015-11-09 2017-05-18 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법

Similar Documents

Publication Publication Date Title
JP5292978B2 (ja) 制御装置、情報処理装置、及びメモリモジュール認識方法
US7769954B2 (en) Data processing system and method for processing data
KR102807014B1 (ko) 동작 캐시 및 명령 캐시 인출과 디코딩 명령을 위한 낮은 레이턴시 동기화
JP2773471B2 (ja) 情報処理装置
JP2008186233A (ja) 命令キャッシュプリフェッチ制御方法及びその装置
US20070226382A1 (en) Method for improving direct memory access performance
KR100871575B1 (ko) 디코딩된 정보를 저장 및 제공하는 캐시를 갖는 장치 및이를 수행하는 방법
CN103019988B (zh) 电脑、嵌入式控制器及其方法
CN110825442A (zh) 一种指令预取方法及处理器
JP2010146084A (ja) キャッシュメモリ制御部を備えるデータ処理装置
JP2005275735A (ja) Cpuと記憶装置の間に配置される制御装置及びチップセット
US7574568B2 (en) Optionally pushing I/O data into a processor's cache
US7146469B2 (en) Method, apparatus, and system for improving memory access speed
US11762768B2 (en) Accessing circuit of memory device and operation method about reading data from memory device
US20130173862A1 (en) Method for cleaning cache of processor and associated processor
JP2008500626A (ja) マイクロプロセッサおよび命令整列の方法
US20080250211A1 (en) Cache control method, cache device, and microcomputer
JP4037806B2 (ja) キャッシュメモリ装置
US6922767B2 (en) System for allowing only a partial value prediction field/cache size
JP2005084999A (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
JP2008052518A (ja) Cpuシステム
JPH0540624A (ja) 集積回路マイクロプロセツサの命令フエツチ装置
US20210109850A1 (en) Processing system and execute in place control method
JPH04255995A (ja) 命令キャッシュ
JP3753368B2 (ja) データプロセッサ及びデータ処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080926

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090304