JP3967921B2 - データ処理装置及びデータ処理システム - Google Patents
データ処理装置及びデータ処理システム Download PDFInfo
- Publication number
- JP3967921B2 JP3967921B2 JP2001539124A JP2001539124A JP3967921B2 JP 3967921 B2 JP3967921 B2 JP 3967921B2 JP 2001539124 A JP2001539124 A JP 2001539124A JP 2001539124 A JP2001539124 A JP 2001539124A JP 3967921 B2 JP3967921 B2 JP 3967921B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- burst
- data
- control unit
- 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
Links
- 230000015654 memory Effects 0.000 claims description 287
- 230000001360 synchronised effect Effects 0.000 claims description 99
- 230000004044 response Effects 0.000 claims description 13
- 239000004065 semiconductor Substances 0.000 claims description 8
- 239000000758 substrate Substances 0.000 claims description 6
- 238000000034 method Methods 0.000 description 21
- 239000000872 buffer Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
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)
Description
本発明は、キャッシュメモリを持つマイクロプロセッサやDSP(ディジタル信号処理プロセッサ)等のデータ処理装置、更にはそのようなデータ処理装置と共にバースト動作可能なメモリを有するデータ処理システムに関する。
背景技術
マイクロプロセッサ等のデータ処理装置を用いたデータ処理システムにおいて、高速のデータアクセス若しくは高いデータ転送性能を得る上で、使用するメモリとしてはシンクロナスDRAM(ダイナミック・ランダム・アクセス・メモリ)に代表されるバースト動作(バースト転送とも称する)をサポートしたメモリが好適とされる。すなわち、その種のメモリによると、メモリ内の内部アドレスカウンタのような回路を含む動作制御系によって、連続データを高速に読み出したり、高速に書き込んだりできることとなり、処理システムの高速、高性能化をすすめることが容易になる。
前記シンクロナスDRAMは、モードレジスタを持ち、かかるモードレジスタによってその動作モードが指定される。シンクロナスDRAMのためのバースト転送長ないしはブロック転送長とも称するバースト長情報を含むモード情報は、例えば処理システムのパワーオンリセット後に実行されるシステム初期化設定プログラムのような設定プログラムに従ってモードレジスタに設定される。バースト長情報のような情報の設定のためには、バースト動作とは異なる設定期間を要する。すなわち、モードレジスタにモード情報を設定するには比較的時間がかかる。このため、パワーオンリセットに伴って一旦設定されたようなバースト長情報は後から変更しないのが一般的となる。
ここで、バースト動作においては、前記バースト長を大きく設定すれば、大量のデータを転送する場合には一度のシンクロナスDRAMへのアクセスで転送できるデータ量が多くなり、高いデータ転送性能を得ることができる。しかしながら、設定したバースト長よりも少量のデータを転送すればよい場合には、設定されたバースト長でブロック転送を行なうために、無駄なデータ転送サイクルが増大し、データ転送性能が低下してしまう。
シンクロナスDRAMに代表されるバースト転送をサポートしたメモリにおいては、バースト転送の際に、バースト転送のバウンダリ間の任意のアドレスのデータから転送を開始することのできるラップアラウンド機能がサポートされる。バウンダリ間のロケーションアドレスは、アクセスするデータの先頭ロケーションが外部から指示され、その後続のロケーションアドレスはメモリ内部のカラムアドレスカウンタのような内部カウンタで生成される。SDRAMは、例えばアクセス単位が4バイトでバースト長が16バイトとされる。それにおいて、バイト単位のカラムアドレスがカラムアドレスカウンタにプリセットされ、このプリセットアドレスを基点に、その最下位から4ビット目までが順次3回カウンタ動作され、それによって連続的なアクセス動作が行われる。例えば、バースト動作のバウンダリ間の4バイト単位のデータロケーションをN+00番地(以下@00のように記す)、@04、@08、@12とするとき、バースト動作によりアクセスするデータの先頭ロケーションを@08とすれば、@08、@12、@00、@04の順にラップアラウンドして、データアクセスが行われる。
このラップアラウンド機能を活用することで、CPUが要求したデータをバースト転送の最初に外部メモリから取得することができる。これによって、例えば、キャッシュミスヒットの際、CPUがデータ待ちをするサイクル数を小さくすることができる。
シンクロナスDRAMに代表されるバーストアクセスをサポートしたメモリは、既に述べたようなバースト長に応じた特徴をもたらす。そこで、その種のメモリとしては、バースト長を大きく設定したい要求と、小さく設定したい要求の双方に適合できることが望ましい。そこで、本発明者等は、異なるバースト長でラップアラウンドを行なうメモリ、例えば、バースト長が32バイトのシンクロナスDRAMとバースト長が16バイトのシンクロナスDRAMとを併存させて利用する制御方式の有効性について検討した。
本発明者等は、検討によって以下事項を明らかにした。すなわち、バースト長が16バイトのシンクロナスDRAMを16バイトのカラムアドレスロケーションの中の8バイト目を基点にラップアラウンドでバースト動作させた場合と、バースト長が32バイトのシンクロナスDRAMを32バイトのカラムアドレスロケーションの中の8バイト目を基点にラップアラウンドでバースト動作させた場合とでは、シンクロナスDRAMからラップアラウンド動作にて返されるデータ順が、異なってくる。そこで、シンクロナスDRAMを制御するメモリ制御回路は、バースト長の相違によるデータ配置の不整合を認識し、或いはそれを解消するための手法をとるように構成される必要が生ずる。
そのための手法として例えば以下の2つを挙げることができる。
第1手法は、ブロック転送長が16バイトのメモリから返される16バイト2組みのデータを、バースト長が32バイトのラップアラウンド動作のデータ順と同じデータ順に統一するものである。この場合、メモリ制御回路とともに、バッファメモリ、及びデータ並べ替えのためのアライナが設定される。メモリ制御回路は、例えばバースト読み出し動作においては、16バイトでラップアラウンドしたデータ2組を32バイトのラップアラウンド動作で得られるデータ順に一致させるよう、メモリから出力されたデータを一旦バッファメモリにバッファリングさせ、その後で、アライナを用いてデータの並べ替えを行ってから、データを出力させるように制御動作を行う。この第1の手法による場合には、データの並べ替えを行う為のデータバッファリングに余計な待ち時間を費やすことになる。
第2の手法は、メモリアクセス開始アドレスに16バイトバウンダリ固定の制約を設け、データの返り順の不一致を発生させないようにするものである。これにより、16バイトのバースト長でバースト動作を2回行ったときのデータ順はバースト長32バイトで1回バースト動作を行ったときのデータ順に一致される。
しかしながら、本発明者等は、上記何れの手法もデータ処理性能の低下を伴うことに注目した。以下、これを説明する。
ここで、マイクロプロセッサはCPU、キャッシュメモリ、及び外部シンクロナスDRAMを含む外部メモリをアクセスするメモリ制御回路を含むものとされる。今、キャッシュメモリのキャッシュライン長が32バイトとされ、CPUによるメモリのN+08番地(Nは32の倍数)からのアクセス開始に対してキャッシュミスヒットとなり、それに応じて外部メモリアクセス行なわれ、キャッシュラインに対するキャッシュフィルが行われ、その後、CPUが続けて、N+12,N+16,N+20,N+24,N+28と連続したアドレスのデータを要求する場合を考える。なお、このような連続したアドレスへのアクセスは、命令アクセスの場合や連続した領域に配置されたデータの処理等で頻繁に発生するごく自然な例であると考えて良い。以下、N+08番地のデータを@08,N+12番地のデータを@12のように表記する。
この条件において、前記第1の手法では、16バイトのブロック転送長によるバースト動作でメモリから得られるデータ順は、例えば@08,@12,@00,@04,@24,@28,@16,@20とされる。これを32バイトのバースト長によるバースト動作の場合と同じデータ順に並べ替えてキャッシュメモリへ返すためにはいくつかのペナルティーサイクルが発生し、バス性能若しくはCPUのデータ処理性能を低下させてしまう。すなわち、そのデータ順の場合、32バイトのバースト動作に対応されるデータ順は、@08,@12,@16,@20,@24,@28,@00,@04の順となる。データをその順に替えてキャッシュメモリに返すには、32バイトのバースト動作に対応される第3番目に返す必要のあるデータ@16は16バイトのバースト動作ではメモリから第7番目にしか到着せず、少なくとも4サイクルのペナルティサイクルが発生することになる。
第2の手法では、CPUが最初に必要とするデータが@08であるときに対応する、外部メモリからのデータ順、キャッシュへのデータ順は、ともに、@00,@04,@08,@12,@16,@20,@24,@28となる。すなわち、CPUが最初に要求するデータ@08は第3番目のデータとなる。これに応じてCPUは、それが必要とする先頭のデータ到着を少なくとも2サイクル待つことになる。このように、第2の手法においてもCPU性能の低下を引き起こす。
尚、MICROPROCESSOR REPORT VOLUME10,NUMBRE2 FEBRUARY 12、1996の第9頁及びTable2.には、32ビットマイクロプロセッサにおいて、キャッシュメモリのミスワードを先頭とするようにキャッシュフィルの順番を制御する記載がある。しかし、これには、シンクロナスDRAMのバースト長とキャッシュフィルのデータ順との関係についての着眼はない。
本発明の目的は、キャッシュメモリのキャッシュライン長より短いサイズでバースト動作可能であってラップアラウンド機能を有するメモリを用いるときでもキャッシュミスに係るデータを獲得するまでのCPUの待ち時間を短縮でき、データ処理性能の向上に寄与できるデータ処理装置、更にはデータ処理システムを提供することにある。
本発明の別の目的は、ラップアラウンド機能を有し相互にバースト長の異なるメモリを複数個接続して利用しても、メモリアクセスにおけるペナルティーサイクルが少なく、バス性能およびCPU性能を向上させることができるデータ処理装置、更にはデータ処理システムを提供することにある。
本発明のその他の目的は、ラップアラウンド機能を有しバースト動作可能なメモリの多様な接続構成若しくは利用形態に対応することが可能なデータ処理装置を提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
発明の開示
〔1〕データ処理装置は、CPU、前記CPUによってアクセス可能なキャッシュメモリ、前記キャッシュメモリを制御するキャッシュ制御部、及び前記キャッシュメモリのキャッシュミスヒットに応答してメモリアクセスが可能なメモリ制御部を有する。前記メモリ制御部は、バースト動作可能なメモリをキャッシュミスヒットに応答してアクセスするとき、前記キャッシュメモリのキャッシュライン長に対する前記メモリのバースト長を示すための第1情報を形成し、前記第1情報に基いて前記キャッシュライン長に見合うデータ長を得るのに必要な単数又は複数回のバースト動作を制御可能である。前記キャッシュ制御部は、前記単数又は複数回のバースト動作で得られたデータを前記第1情報に基づいてラップアラウンドでキャッシュメモリにキャッシュフィルする動作を制御可能である。
上記手段によれば、前記第1情報によってキャッシュライン長に対するアクセス対象メモリのバースト長が明らかになり、これに基いてアクセス対象メモリに呼応したバースト動作回数が制御され、キャッシュライン長に応ずるブロックデータを前記メモリからバースト動作で得ることができる。得られたブロックデータは、第1情報から把握されるバースト長に合わせて、キャッシュ制御部がキャッシュメモリにラップアラウンド動作により転送されてくるブロックデータをキャッシュフィル可能にされる。そのためメモリから出力されるデータをアライナで並べ変えなくてもよく、また、バースト動作対象とされるデータブロックのバウンダリ先頭をアクセス開始アドレスに固定する制約を設けなくてもよい。したがって、キャッシュメモリのキャッシュライン長より短いサイズでバースト動作可能であってラップアラウンド機能を有するメモリを用いるときでもキャッシュミスに係るデータを獲得するまでのCPUの待ち時間を短縮でき、データ処理性能の向上に寄与できる。
前記キャッシュ制御部は、前記キャッシュフィル動作において、キャッシュミスヒットに係るアドレス情報、前記第1情報、及び前記メモリ制御部によるバースト動作で得られるデータの区切りに同期する同期信号を入力し、前記第1情報が意味するバースト長の範囲で前記アドレス情報を基点とするラップアラウンド制御を行って、前記同期信号に同期しながらキャッシュフィルのデータ順を決定するキャッシュフィルアドレスを生成するように構成してよい。
これにより、メモリ制御部がキャッシュミスヒットに応答してメモリからバースト動作でデータを順次読み出してくる動作に追従しながら、キャッシュフィル動作を進めることができ、メモリのバースト長に拘わらず高速なキャッシュフィル動作を保証することができる。
前記メモリ制御部は、キャッシュミスヒットに応答して複数回のバースト動作でメモリアクセスを行うとき、先頭のバースト動作ではキャッシュミスヒットに係るアドレスのデータ位置を基点にラップアラウンドでバースト動作を制御し、その後続のバースト動作では前記バースト長で規定されるデータブロックのバウンダリ先頭を基点にバースト動作を制御するように構成してよい。
プログラムやある種のデータは連続したアドレスに配置される場合が多いという事実に鑑みると、前述のように、バースト動作の複数回のアクセスのうち、最初のアクセス以外は、バースト長で規定されるバウンダリ先頭からメモリアクセスを行なえば、連続したデータアクセス時にCPUが先にアクセスすることになるデータを先にキャッシュメモリ又はCPUに到達させることになるから、データ処理性能の向上に役立つ。
以上のデータ処理装置によれば、キャッシュメモリのキャッシュライン長(例えば32バイト)よりも比較的短いバースト長(例えば16バイト)をメモリに設定しておくと、バーストアクセス動作を行うメモリからラップアラウンドに出力されるブロックデータを複数個結合してキャッシュメモリにキャッシュフィルすることができる。また、キャッシュメモリのキャッシュライトヒットに対する処理の一つとしてライトスルーを採用しているとき、書込みデータをキャッシュライン長よりも短い(例えば8バイト)ライトスルーバッファから前記メモリに書込むような場合には、前記比較的短いバースト長故にデータ転送サイクルの無駄が少ない。この時のバーストアクセス動作の後半の8バイトはデータマスクを行って実際のデータ書込み動作を抑止すればよい。
したがって、32バイトのような大容量のデータをキャッシュメモリ等に効率良く転送できる性能を損なわずに、8バイトのような比較的小さなデータの転送には無駄なサイクルを最小限に抑えることができ、データ処理性能を向上させることができる。
〔2〕データ処理システムは、CPU及びキャッシュメモリを有するデータ処理装置と、前記データ処理装置に接続され、バースト動作可能であって前記キャッシュメモリに対し主メモリを構成するメモリとを有する。前記メモリは単数であっても複数であっても良い。夫々のバースト長は相違しても、同一であってもよい。前記キャッシュメモリはLバイトのキャッシュライン長を有する。前記メモリは、前記Lの2のn乗分の1(nは自然数)バイトのバースト長の範囲でラップアラウンドでバースト動作が可能である。このとき、前記データ処理装置は、前記キャッシュメモリのキャッシュミスヒットに応答して、前記キャッシュメモリのキャッシュライン長に対する前記メモリのバースト長を示すための第1情報を形成し、前記第1情報に基いて前記キャッシュライン長に見合うデータ長を得るのに必要な単数又は複数回前記メモリをバースト動作させ、これによって得られる複数のブロック転送データを結合してキャッシュメモリへLバイトのデータを返す制御を行なうものである。
上記データ処理システムによれば、キャッシュメモリのキャッシュライン長(例えば32バイト)よりも比較的短いバースト長(例えば16バイト)を第1のメモリに設定しておくと、バーストアクセス動作を行うメモリからラップアラウンドに出力されるブロックデータを複数個結合してキャッシュメモリにキャッシュフィルすることができる。キャッシュライン長に等しいバースト長を設定した第2のメモリがデータ処理システムに含まれている場合、その第2のメモリを対象とするキャッシュミスヒットに対する処理では、当該第2のメモリのバースト長に応じたキャッシュフィル動作が可能にされる。
また、キャッシュメモリのキャッシュライトヒットに対する処理としてライトスルーを採用しているとき、書込みデータをキャッシュライン長よりも短い(例えば8バイト)ライトスルーバッファから前記第1のメモリに書込むような場合には、前記比較的短いバースト長故にデータ転送サイクルに無駄が少ない。この時のバーストアクセス動作の後半の8バイトはデータマスクを行って実際のデータ書込み動作を抑止すればよい。キャッシュライン長に等しいバースト長が設定される前記第2のメモリがライトスルーによる書込み対象になる場合は、書込みマスクを行っても第1のメモリに比べると無駄なサイクルは増える。そうであっても、第2のメモリを一時的にキャッシュの対象から外した状態では一度にアクセス若しくは転送できるデータ量を大きくすることが可能である。
したがって、32バイトのような大容量のデータをキャッシュメモリ等に効率良く転送できる性能を損なわずに、8バイトのような比較的小さなデータの転送には無駄なサイクルを極力抑えることができ、バースト長の異なるメモリを複数個有するようなメモリの多様な接続構成若しくは利用形態が実現され、データ処理システムにおけるデータ処理性能を向上させることができる。
前記データ処理システムにおいても、前記データ処理装置は、前記単数又は複数回のバースト動作で得られたデータを、前記第1情報に基づいて、ラップアラウンド動作で転送されてくるデータをキャッシュメモリにキャッシュフィルする制御を行うように構成してよい。この時も、前記データ処理装置は、前記キャッシュフィル動作において、前記バースト動作で前記メモリから得られるデータの区切りに同期する同期信号を生成し、前記第1情報が意味するバースト長の範囲で前記アドレス情報を基点とするラップアラウンド制御を行って、前記同期信号に同期しながらキャッシュフィルのデータ順を決定するキャッシュフィルアドレスを生成するように構成してよい。更に、前記データ処理装置は、キャッシュミスヒットに応答して複数回のバースト動作でメモリアクセスを行うとき、先頭のバースト動作ではキャッシュミスヒットに係るアドレスのデータ位置を基点にラップアラウンドでバースト動作を制御し、その後続のバース動作では前記バースト長で規定されるデータブロックのバウンダリ先頭を基点にバースト動作を制御するように構成してよい。
発明を実施するための最良の形態
第1図に本発明に係るデータ処理システムの一例が示される。同図に示されるデータ処理システムは、本発明に係るデータ処理装置の一例であるマイクロプロセッサ1、バースト動作可能な外部メモリの一例であるシンクロナスDRAM2、及びROM(リード・オンリ・メモリ)14を代表的に備えている。前記シンクロナスDRAM2及びROM14の他に別の周辺回路を備えてもよい。
マイクロプロセッサ1は、特に制限されないが、CPU3、キャッシュメモリ4、キャッシュ制御部5、及びメモリ制御部6を有し、例えば1個の半導体基板(半導体チップ)に形成されている。データバス8,9,10は、特に制限されないが、4バイト(32ビット)とされる。
前記CPU3は、図示を省略する制御部と実行部を有し、前記実行部は例えば汎用レジスタファイルと演算器を有し、前記制御部はフェッチした命令を解読して前記実行部の演算などを制御する。
前記キャッシュメモリ4は、所謂データアレイを有している。データアレイは、例えばSRAM(スタティック・ランダム・アクセス・メモリ)によって構成され、マトリクス配置されたメモリセルを有し、メモリセルの選択端子は例えば行毎にワード線に接続され、メモリセルのデータ入出力端子は列毎に相補ビット線に接続されている。データアレイにおいてワード線はキャッシュ制御部5から与えられるインデックスアドレスによって選択される。データアレイにおいてインデックスアドレスで選択される行毎の単位がキャッシュラインである。キャッシュラインは、特に制限されないが、32バイトのキャッシュライン長を有する。選択されたキャッシュラインに対しては、キャッシュ制御部5から与えられるロングワード選択信号によって4バイトの選択が行われる。前記インデックスアドレス及びロングワード選択信号はキャッシュアクセスアドレス信号7として図示されている。
キャッシュ制御部5は、所謂アドレスアレイとキャッシュ制御論理とを有する。アドレスアレイもデータアレイと同様にSRAMによって構成される。アドレスアレイには個々のキャッシュラインに1対1対応でタグフィールドを有する。タグフィールドには対応キャッシュラインのタグやキャッシュラインの有効性を示すバリッドビット等を保有する。タグフィールドも前記インデックスアドレスで選択される。キャッシュ制御論理は、キャッシュヒット・キャッシュミスヒットの判定、キャッシュミスヒット時におけるキャッシュフィル制御、等を行う。
メモリ制御部6は、CPU3及びキャッシュ制御部5の指示に従ってシンクロナスDRAM2やROM14をアクセスするためのバス制御を行う。メモリ制御部6は外部データバス10及び外部アドレスバス13等を介して、前記代表的に示されたシンクロナスDRAM2等に接続される。外部バスアクセス若しくは外部メモリアクセスのためのストローブ信号などの制御信号を伝達するコントロールバスは図示を省略してある。前記メモリ制御部6は所謂バスステートコントローラ、若しくはそれに含まれている一部のメモリコントローラとして把握してよい。
CPU3が出力する実効アドレス11の一部がインデックスアドレスとされ、前記アドレスアレイでインデックスされたタグフィールドのタグは、前記キャッシュ制御論理により、前記実効アドレス11の一部に含まれるタグアドレスと比較され、一致であれば、キャッシュヒット、不一致であればキャッシュミスヒットとされる。
CPU3のリードアクセスにおいて、キャッシュヒット(キャッシュリードヒット)であれば、インデックスされたキャッシュラインの対応する4バイトのデータがデータバス8を介してCPU3に供給される。リードアクセスにおいてキャッシュミスヒット(キャッシュリードミスヒット)のとき、キャッシュ制御部5は、メモリアクセスアドレス12を生成し、メモリ制御部6にメモリアクセスアドレス12と共にメモリアクセス要求MREQを与える。これによって、メモリ制御部6は、例えばシンクロナスDRAM2より1キャッシュライン分のデータを読み込み、読み込んだデータを、データバス9を介してキャッシュメモリ4に供給し、これに同期してキャッシュ制御部5は、キャッシュアクセスアドレス7を生成して、そのデータを所要のキャッシュラインにキャッシュフィルする。また、キャッシュ制御部5は、当該キャッシュラインに対応するタグフィールドにそのキャッシュラインのデータに応ずるタグを格納する。このとき、キャッシュミスに係るデータはデータバス8を介してCPU3に与えられる。
CPU3のライトアクセスにおいて、キャッシュヒット(キャッシュライトヒット)であれば、インデックスされたキャッシュラインの対応する4バイトにCPU3からデータバス8を介して書込みデータが供給される。ライトアクセスにおいてキャッシュミスヒット(キャッシュライトミスヒット)であれば、キャッシュ制御部5は、メモリアクセスアドレス12を生成し、メモリ制御部6にメモリアクセス要求MREQを与える。メモリ制御部6は、メモリアクセスアドレス12に従って例えばシンクロナスDRAM2より1キャッシュライン分のデータを読み込み、読み込んだデータをデータバス9を介してキャッシュメモリ4に与え、これに同期してキャッシュ制御部5はキャッシュラインにそのデータをフィルし、当該キャッシュラインに対応するタグフィールドにはそのキャッシュラインのデータに応ずるタグを格納する。
キャッシュメモリ4が保有するデータとシンクロナスDRAM2のような外部メモリが格納するデータとの間の整合を保つ手法として、例えばライトスルー方式を採用する。即ち、キャッシュメモリ4は、キャッシュライトヒット時の書込みデータを保持する図示を省略するライトスルーバッファを有する。キャッシュライトヒット時、キャッシュ制御部5はキャッシュライトヒットに係るライトデータをキャッシュメモリ4に書込むと、その後に、対応するシンクロナスDRAM2などの対応アドレスに書込む指示をメモリ制御部6に与える。これによって、メモリ制御部6は、ライトスルーバッファが保有するデータをシンクロナスDRAM2に書込み制御する。
前記シンクロナスDRAM2はダイナミック型メモリセルをマトリクス配置したメモリセルアレイを有し、情報記憶形式はDRAMと同様にストレージキャパシタを介してダイナミックに行われ、記憶情報のリフレッシュも必要とされる。DRAMとの大きな相違点は、動作が外部クロック信号に同期動作され、また、ラップアラウンドでバースト動作可能にされている点である。例えば、外部から供給されるカラムアドレス信号をラッチするカラムアドレスカウンタを有し、ロウアドレスによるワード線選択状態を保ったまま、カラムアドレスカウンタのプリセット値を基点に、順次カラムアドレスをカラムアドレスカウンタで更新して連続的なデータアクセス動作を能率的に行えるようになっている。連続データアクセス数をバースト長と称し、バースト長で規定される回数だけカラムアドレスカウンタをカウント動作する。例えば、アクセス単位が4バイトでバースト長が16バイトのシンクロナスDRAMにおいて、バイト単位のカラムアドレスをカラムアドレスカウンタにプリセットし、このプリセットアドレスを基点に、その最下位から4ビット目までを順次3回カウンタ動作させて、連続的なアクセス動作を行えばよい。したがって、16バイトのカラムデータロケーションにおいて4バイト単位のアクセスの基点が前記ロケーションのバウンダリでない場合には、カラムアドレスカウンタによるカウンタアドレスは、途中で次の16バイトカラムデータロケーションとのバウンダリから前の16バイトカラムデータロケーションとのバウンダリに戻ってアドレスカウントを行う。即ち、バースト動作のアクセス順は16バイトカラムデータロケーション内でラップアラウンドに行われる。
前記バースト長はシンクロナスDRAM2のモードレジスタに設定される。例えばパワーオンリセット処理でCPU3からメモリ制御部6に設定されるメモリ制御データ15の一部がバースト長を示すデータとしてCPU3から前記モードレジスタにも初期設定される。バースト長は、特に制限されないが、16,32バイトから選択して設定できる。
シンクロナスDRAM2の動作は、ロウアドレスストローブ(RAS)、カラムアドレスストローブ(CAS)、ライトイネーブル(WE)、データマスク(DM)、データストローブ(DQS)等の信号の状態によって指示される。前記信号はメモリ制御部6が生成する。前記信号の特定の状態毎にコマンドが規定されていて、シンクロナスDRAM2は、コマンドの指示に従って動作を行う。例えば、ロウアドレス信号を伴うアクティブコマンドによってワード線選択動作が指示される。カラムアドレス信号を伴うリードコマンドは、既にアクティブにされているワード線のメモリセルに対するリード動作を指示する。また、カラムアドレス信号を伴うライトコマンドは、既にアクティブにされているワード線のメモリセルに対するライト動作を指示する。前記リード動作及びライト動作は前記モードレジスタに設定されたバースト長により、ラップアラウンド可能なバーストアクセスで行われる。前記書込み動作において、前記データマスク(DM)信号がイネーブルにされているアクセスサイクルにおいては、アクセスサイクルだけが費やされ、実際のデータ書込みは抑止される。
次に、シンクロナスDRAM2のバースト長に応じたメモリ制御及びキャッシュフィル動作について説明する。
先ず第1図に基いてその概要を説明する。前記メモリ制御部6には、ブロック転送長判定部20と外部メモリアドレス生成部30が代表的に示されている。ブロック転送長判定部20は、キャッシュミスヒットによるキャッシュ制御部5からのメモリアクセス要求MREQに答えてシンクロナスDRAM2をアクセスするとき、前記キャッシュメモリ4のキャッシュライン長(32バイト)に対する前記シンクロナスDRAM2のバースト長を示すための第1情報であるラップアラウンド情報WRPAを形成する。外部メモリアドレス生成部30は、前記ラップアラウンド情報WRPAに基いて前記キャッシュライン長に見合うデータ長を得るのに必要な単数又は複数回のバースト動作を制御してシンクロナスDRAM2からデータをバーストリードする。バースト長が16バイトであればバーストアクセスを2回起動し、バースト長が32バイトであればバーストアクセスを1回起動すればよい。バーストリードの先頭はキャッシュミスに係るアドレスのデータである。前記キャッシュ制御部5は、バーストリードでメモリ制御部6がリードした32バイトのデータを4バイト毎にラップアラウンドでキャッシュメモリ4に書込むためのキャッシュフィルアドレスを生成する。この時の、ラップアラウンド動作のデータブロックはシンクロナスDRAM2のバースト長に対応させ、バースト長が16バイトであれば16バイトアドレス範囲毎にラップアラウンド動作させ、バースト長が32バイトであれば32バイトのアドレス範囲でラップアラウンド動作させる。ラップアラウンド動作のキャッシュフィルアドレスは前述のインデックスアドレス及びロングワード選択信号7であり、ロングワード選択信号は、バーストリードでメモリ制御部6がリードしてデータバス9に4バイト毎に出力するデータの区切りを示すデータレディー信号DRDYに同期される。
第2図にはブロック転送長判定部5の詳細な一例が示される。ブロック転送長判定部20は、アクセスリクエスト判定回路22、メモリコントロールレジスタ23、及びブロック転送長判定回路24を有する。前記メモリコントロールレジスタ23は、マイクロプロセッサ1の外部アドレスエリアに対するデータバス幅、アクセスサイクル数、バースト長などの外部メモリ情報15がCPU3によって初期設定される。CPU3によってシンクロナスDRAM2に設定されたバースト長を示すバースト長データも前記メモリコントロールレジスタ23に設定されている。
前記アクセスリクエスト判定回路22は、キャッシュ制御部5からのメモリアクセス要求MREQとメモリアクセスアドレス12とを入力し、アクセス対象が前記シンクロナスDRAM2であるとき、検出信号25を活性化する。尚、前記アクセスリクエスト判定回路22は、メモリアクセス要求MREQによってメモリアクセス要求を検出した後、メモリアクセスアドレス12をデコードし、アクセス対象エリアに応じてエリア選択をし、アクセスエリア選択信号(図示を省略する)を生成する。このエリア選択信号は例えば、メモリのチップ選択信号或いはメモリイネーブル信号などとして利用される。
ブロック転送長判定回路24は、前記検出信号25と、メモリコントロールレジスタ23に設定されたシンクロナスDRAM2のバースト長の情報26を入力して、ラップアラウンド情報WRPAを出力する。ここでは、シンクロナスDRAM2のバースト長は16バイト又は32バイトであり、キャッシュメモリ4のキャッシュライン長は32バイトであるから、ラップアラウンド情報WRPAは、特に制限されないが、1ビットの情報であり、例えば、その論理値“0”はバースト長16バイトを意味し、論理値“1”はバースト長32バイトを意味する。
第3図には前記外部メモリアドレス生成回路30の一例が示される。外部メモリアドレス生成部30は、アドレスバッファ31、後続アクセスアドレス生成回路31、及びセレクタ32を有する。外部メモリアドレス生成部30は、キャッシュ制御部5からのメモリアクセスアドレス12を受けると、これをアドレスバッファ31に保持する。次に、アドレスバッファ31に保持したアドレスをセレクタ33に選択させて外部メモリアドレス16として、アドレスバス13に出力させる。この時の前記リクエスト判定回路22によるエリア選択がシンクロナスDRAM2であるなら、シンクロナスDRAM2がチップ選択され、また、メモリ制御部6内の図示を省略するシンクロナスDRAM制御論理を介してリード、ライト等のコマンドが供給される。これによってシンクロナスDRAM2がバースト動作される。ラップアラウンド情報WRPAが論理値“1”であるなら、バースト動作は1回で終了される。ラップアラウンド情報WRPAが論理値“0”であるなら、シンクロナスDRAM2を2回バースト動作させるために、後続アクセスアドレス生成回路32は、後述のアドレス生成論理に従って、例えば、アドレスバッファ31のアドレス(バイトアドレス)に+16を行い、次のバースト動作の先頭アドレスを生成する。後続アクセスアドレスの生成論理について詳細は後述する。2回目のバースト動作では、その後続アクセスアドレス生成回路32の出力がセレクタ33で選択されてシンクロナスDRAM2に供給される。
第4図には後続アクセスアドレスの生成論理の規則が例示されている。ここでは、キャッシュライン長が32バイト、シンクロナスDRAMのバースト長が32バイト又は16バイト、データバス幅を4バイトとする場合を想定し、Nを32の倍数とし、アドレスNから4バイトのデータをD1、アドレスN+4から4バイトのデータをD2というように表現するものとする。
第4図において第1アクセスアドレスとは第1回目のバースト動作の開始アドレス、第2アクセスアドレスとは、バースト長が16バイトのときに必要となる第2回目のバースト動作の開始アドレスを意味する。第2回目のアクセスアドレスは第1回目のアクセスアドレスに対して一律に16バイトを加算した値とはしない。バースト長が16バイトのとき、第1アクセスアドレスがN+4、N+8,N+12の場合には第2回目のアクセスアドレスをN+16とする。したがって、第2回目のバーストアクセスではデータ出力はアドレス順になる。プログラムやある種のデータは連続したアドレスに配置される場合が多いという事実に鑑みると、前述のように、バースト動作の複数回のアクセスのうち、最初のアクセス以外は、バースト長で規定されるバウンダリの先頭からメモリアクセスを行なえば、連続したデータアクセス時にCPU3が先にアクセスすることになるデータが先にキャッシュメモリ4又はCPU3に到達するから、データ処理性能の向上に役立つ。これに合わせて、第1アクセスアドレスがN+20、N+24,N+28の場合も、第2回目のアクセスアドレスをN+0としている。
第5図には32バイトのバースト長を設定したシンクロナスDRAM2に対するバースト動作のタイミングチャートが例示される。ここでは、外部メモリアドレス生成部30から与えられる転送開始アドレスがN+8、ラップアラウンド情報が32バイトを意味している。この場合には、当然シンクロナスDRAMは第2回目のバーストアクセスを必要としない。第5図においてリードコマンドの前に図示を省略するバンクアクティブコマンドが発行されていて、既にワード選択動作は完了されているものと理解されたい。第5図から明らかなように、D3、D4,D5,D6,D7,D8,D1,D2の順にラップアラウンドで32バイトのバーストリードが行われる。
第6図には16バイトのバースト長を設定したシンクロナスDRAM2に対するバースト動作のタイミングチャートが例示される。ここでは、外部メモリアドレス生成部30から与えられる最初の転送開始アドレスがN+8、第2回目もバースト動作の転送開始アドレスが第4図に従ったN+16にされ、第6図において最初にリードコマンドの前には図示を省略するバンクアクティブコマンドが発行されていて、既にワード選択動作は完了されているものと理解されたい。第4図の論理より明らかなように、第1回目のバースト動作ではD3,D4,D1,D2の順にラップアラウンドでバーストリードされている。第2回目のバースト動作では、データブロックの先頭からD5,D6,D7,D8の順にバーストリードが行われる。
第7図にはキャッシュ制御部2におけるキャッシュアクセスアドレス及びメモリアクセスアドレス生成のための論理構成の一例が示される。キャッシュ制御部5は、アドレスバッファ40、メモリアクセスアドレス生成回路41、キャッシュフィルアドレス生成回路42、及びセレクタ43を有する。キャッシュ制御部5は、CPU3からの実効アドレス11を受けると、これをアドレスバッファ40に保持する。次に、アドレスバッファ30が保有するアドレスをセレクタ43で選択してキャッシュアクセスアドレス7としてキャッシュメモリ4に供給する。キャッシュアクセスアドレスに応答するキャッシュラインのキャッシュエントリがキャッシュミスヒットである場合、メモリアクセスアドレス生成回路41はこれに応答して、キャッシュミスヒットに係るメモリアクセスアドレス12を生成する。メモリアクセスアドレス12を用いたメモリ制御部6によるシンクロナスDRAM2のアクセス制御は前述の通りである。
前記キャッシュフィルアドレス生成回路42は、バーストリードでメモリ制御部6がシンクロナスDRAM2からリードした32バイトのデータを4バイト毎にラップアラウンドでキャッシュメモリ4に書込むためのキャッシュフィルアドレスを生成する。この時の、キャッシュフィルアドレス生成回路42はラップアラウンド動作のデータブロックをシンクロナスDRAM2のバースト長に対応可能なように、ラップアラウンド情報WRPAを入力し、バースト長が16バイトであれば16バイトアドレス範囲毎でラップアラウンド動作させ、バースト長が32バイトであれば32バイトのアドレス範囲でラップアラウンド動作させる。ラップアラウンド動作のキャッシュフィルアドレスの先頭アドレスは、アドレスバッファ40に保持されているキャッシュミスに係るアドレスである。ラップアラウンド動作のキャッシュフィルアドレスは前述のインデックスアドレス及びロングワード選択信号7である。バーストリードでメモリ制御部6はシンクロナスDRAM2からリードしたデータをデータバス9に4バイト毎に出力するとき、そのデータの区切りを示すデータレディー信号DRDYを出力する。キャッシュフィルアドレス生成回路42は、前記データレディー信号DRDYに同期して、キャッシュフィルアドレスの前記先頭アドレスを順次+4インクリメントして行く。
第8図にはキャッシュフィルアドレス生成回路42のアドレス生成論理が例示される。キャッシュフィルアドレスの先頭アドレスはキャッシュミスヒットに係る実効アドレスによって決るので、第8図ではキャッシュミスヒットに係る実効アドレス毎に、バースト長32バイト、16バイトの場合のキャッシュフィルアドレスとそれに対応するデータとを対で示してある。
第8図において、Nを32の倍数とし、アドレスNのデータをD1、アドレスN+4のデータをD2、アドレスN+28のデータをD8のように呼ぶものとする。このとき、例えばCPU3からの実効アドレスが、N+8であり、ラップアラウンド情報が16バイトを意味した場合、シンクロナスDRAM2から返されるデータの順序は、D3,D4,D1,D2,D5,D6,D7,D8である。これをキャッシュの正しい位置にフィルするために、キャッシュフィルアドレス生成回路42は、データの切り替わりと同期してメモリ制御部6より発行されるデータレディ信号DRDYにしたがって、キャッシュフィルアドレスを、N+8,N+12,N,N+4,N+16,N+20,N+24,N+28の順とするように、キャッシュアクセスアドレス7を生成する。
第9図には以上説明したマイクロプロセッサ1によるキャッシュフィル動作を比較例も含めて示してある。従来技術において、キャッシュミスヒットに係るアドレスをN+8とするとき、バースト長32バイトのシンクロナスDRAMからバースト動作で読み出されるデータは第9図の(A)に示されるように、@08、@12、@16、@20、@24、@28、@00、@04の順になる。バースト長16バイトのシンクロナスDRAMから2回のバースト動作で読み出されるデータは第9図の(B)に示されるように、@08、@12、@00、@04、@24、@28、@16、@20の順になる。このようにシンクロナスDRAMから読み出されるデータ順はバースト長によって相違される。この不整合のままキャッシュフィルされないように、キャッシュフィルの前に32バイトバースト動作時のデータ順に統一するデータアライナを設ける従来技術では、第9図の(C)のように、データ並び替えに伴うペナルティサイクルが4サイクル発生し、バス性能が低下する。一方、アクセス開始アドレスにバウンダリ固定の制約を付ける従来技術では、第9図の(D)に例示されるように、キャッシュミスヒットがアドレスN+8で生じたにもかかわらず、最初のデータはバウンダリ固定のアドレスN+0に固定されるため、CPUが最初に必要とするデータを最初に供給できず、2サイクルのペナルティーを生じ、CPU性能を低下させてしまう。それらに対して前記マイクロプロセッサ1では、バーストリードデータをバッファリングして並べ替える処理を行わなず、第9図の(E)のように、メモリ制御部がラップアラウンド情報に基づいて、バーストリードデータのバースト長に応じてキャッシュフィルアドレスを生成するから、第9図の(C)のようなペナルティーを生じない。また、第9図の(E)より明らかなように、バーストアクセスの開始アドレスにバウンダリ固定の制約を設けないから、第9図の(D)のようなペナルティーも生じない。更に、第9図の(E)のように第2回目のバーストアクセス先頭アドレスを第4図の論理に従ってバウンダリ先頭にするから、CPU3が連続データを要求する場合には、その要求に早く答えることが可能になる。
第9図を参照しながら更に具体的に作用を説明する。CPU3がN+08番地からアクセスを開始してキャッシュミスによるメモリアクセスが発生し、CPU3が続けて、N+12,N+16,N+20,N+24,N+28と連続したアドレスのデータを要求する場合に、第9図の(C)の手法では、シンクロナスDRAMからのデータ順は、@08,@12,@00,@04,@24,@28,@16,@20であり、CPUが第3番目に要求しているデータである@16がメモリから第7番目にしか到着せず、少なくとも4サイクルのペナルティーサイクルが発生する。これに対して、第9図の(E)の手法を用いれば、シンクロナスDRAM2からのデータ順は、@08,@12,@00,@04,@16,@20,@24,@28であり、CPU3が第3番目に要求しているデータ@16がシンクロナスDRAM2から第5番目に到着することができ、ペナルティーサイクルを2サイクルに軽減することができ、CPU3によるデータ処理性能の向上を実現できる。このような連続したアドレスへのアクセスは、命令アクセスの場合や連続したデータ処理等、極めて頻繁に発生するから、データ処理効率を向上させる上で、大きな効果を得ることができる。
また、キャッシュ制御部5が、このシンクロナスDRAM2からのデータと併せてラップアラウンド情報WRPAを受けることで、バースト長で規定されるデータブロックのバウンダリ先頭以外からのアクセスも開始することが可能になり、CPUによるデータ処理性能を向上することができる。具体的には、第9図の(D)では、CPUが最初に必要とするデータは@08であるにも拘わらず、メモリから返されるデータ順がメモリブロックの先頭を基点にする制限があるためにデータ@08からのメモリアクセスを行なうことができず、バースト転送開始アドレスがN+0になり、メモリから返されるデータ順は、@00,@04,@08,@12,@16,@20,@24,@28である。この結果、データ@08は第3番目となり、CPUが先頭のデータ到着を少なくとも2サイクル待つことになり、CPUのデータ処理性能の低下を引き起こす。これに対して、第9図の(E)に代表される制御手法を用いれば、バースト転送開始アドレスをN+8にすることができ、メモリからのデータ順は、@08,@12,@00,@04,@16,@20,@24,@28であり、CPU3が第1番目に要求しているデータ@08をシンクロナスDRAM2から第1番目に到着させることができ、CPU3のペナルティーサイクルを2サイクルに軽減することができ、CPU3のデータ処理性能の向上を実現できる。
更に第9図の(E)の処理は第8図のキャッシュフィルアドレス生成論理を適用しているから、同図に例示されるように、CPU3が第3番目に必要とするデータ@10を得るとき、第9図の(C)では4サイクル発生していたペナルティーサイクルを、2サイクルに抑えることができ、この点においても、CPUによるデータ処理性能を向上させることができる。
以上説明したマクロプロセッサ1によって得られる作用効果を整理して説明する。
マイクロプロセッサ1において、メモリ制御部6は、前記ラップアラウンド情報WRPAによってキャッシュライン長に対するアクセス対象メモリ(シンクロナスDRAM)2のバースト長を把握し、これに基いてアクセス対象メモリ2に呼応したバースト動作回数を制御して、キャッシュライン長に応ずるブロックデータを前記シンクロナスDRAM2からバースト動作で得ることができる。得られたブロックデータは、ラップアラウンド情報WRPAから把握されるバースト長に合わせてキャッシュ制御部5がキャッシュメモリ4にラップアラウンドでキャッシュフィル可能にされるから、シンクロナスDRAM2から出力されるデータをアライナで並べ変えなくてもよく、また、バースト動作されるデータブロックのバウンダリ先頭をアクセス開始アドレスに固定する制約を設けなくてもよい。したがって、キャッシュメモリのキャッシュライン長より短いサイズでバースト動作可能であってラップアラウンド機能を有するメモリを用いるときでもキャッシュミスに係るデータを獲得するまでのCPUの待ち時間を短縮でき、データ処理性能の向上に寄与することができる。
また、前記キャッシュ制御部5は、メモリ制御部6がキャッシュミスヒットに応答してシンクロナスDRAM2からバースト動作でデータを順次読み出してくる動作に追従しながら、キャッシュフィル動作を進めることができるから、高速なキャッシュフィル動作を保証することができる。
プログラムやある種のデータは連続したアドレスに配置される場合が多いという事実に鑑みると、前述のように、バースト動作の複数回のアクセスのうち、最初のアクセス以外は、バースト長で規定されるバウンダリ先頭からメモリアクセスを行なえば、連続したデータアクセス時にCPUが先にアクセスすることになるデータを先にキャッシュメモリ又はCPUに到達させることができるから、データ処理性能の向上に役立つ。
第1図に例示されるデータ処理システムでは、前記マイクロプロセッサ1に一つのシンクロナスDRAM2を接続している。前記キャッシュメモリ4のキャッシュライン長(例えば32バイト)よりも比較的短いバースト長(例えば16バイト)をシンクロナスDRAM2に設定しておくと、バーストアクセス動作を行うシンクロナスDRAM2からラップアラウンドに出力されるブロックデータを複数個結合してキャッシュメモリ4にキャッシュフィルすることができる。また、キャッシュメモリ4のキャッシュライトヒットに対する処理の一つとしてライトスルーを採用しているとき、書込みデータをキャッシュライン長よりも短い(例えば8バイト)ライトスルーバッファから前記シンクロナスDRAM2に書込むような場合には、前記比較的短いバースト長故にデータ転送サイクルの無駄が少ない。この時のバーストアクセス動作の後半の8バイトに対しては、前記データマスク信号DMによってデータマスクを行うことにより、実際のデータ書込み動作を抑止すればよい。
したがって、32バイトのような大容量のデータをキャッシュメモリ4等に効率良く転送できる性能を損なわず、更に、ライトスルーバッファのデータ書き戻し動作のような比較的小さなデータの転送では無駄なサイクルを最小限に抑えることができ、データ処理性能を向上させることができる。
第10図にはデータ処理装置の別の例が示される。同図に示されるデータ処理システムは、バースト動作をラップアラウンドに行なうことができるメモリ、例えば2個のシンクロナスDRAM2A,2Bを設けたものである。夫々のシンクロナスDRAM2A,2Bは前記シンクロナスDRAM2と同様の構成を有し、一方のシンクロナスDRAM2Aには16バイトのバースト長が設定され、他方のシンクロナスDRAM2Bには32バイトのバースト長が設定されるようになっている。それぞれのシンクロナスDRAM2A,2Bのバースト長は、パワーオンリセット後に、ソフトウェアにより個別にCPU3よりシンクロナスDRAM2A,2Bのモードレジスタに設定される。このとき、メモリ制御部6内のメモリコントロールレジスタ23には、シンクロナスDRAM2A,2B等の外部メモリのバースト長等のバス制御情報が設定される。その他の構成は第1図と同様であるので詳細な説明は省略する。
第10図の上記データ処理システムによれば、キャッシュメモリ4のキャッシュライン長(例えば32バイト)よりも比較的短いバースト長(例えば16バイト)をシンクロナスDRAM2Aに設定しておくと、シンクロナスDRAM2Aからラップアラウンドに出力されるブロックデータを複数個結合してキャッシュメモリ4にキャッシュフィルすることができる。キャッシュライン長に等しいバースト長を設定したシンクロナスDRAM2Bがデータ処理システムに含まれている場合、そのシンクロナスDRAM2Bを対象とするキャッシュミスヒットに対する処理では、当該シンクロナスDRAM2Bのバースト長に応じたキャッシュフィル動作も可能にされる。
また、キャッシュメモリ4のキャッシュライトヒットに対する処理としてライトスルーを採用しているとき、書込みデータをキャッシュライン長よりも短い(例えば8バイト)ライトスルーバッファから前記シンクロナスDRAM2Aに書込むような場合には、前記比較的短いバースト長故にデータ転送サイクルの無駄が少ない。この時のバーストアクセス動作の後半の12バイトは、前記データマスク信号DMによってデータマスクを行い、実際のデータ書込み動作を抑止すればよい。キャッシュライン長に等しいバースト長が設定される前記シンクロナスDRAM2Bがライトスルーによる書込み対象になる場合は、書込みマスクを行ってもシンクロナスDRAM2Aに比べると無駄なサイクルは増えるが、シンクロナスDRAM2Bを一時的にキャッシュの対象から外した状態では、シンクロナスDRAM2Bに対して一度にアクセス若しくは転送できるデータ量を大きくすることが可能になり、CPU3によるデータ処理性能の向上に寄与することができる。シンクロナスDRAM2Bを一時的にキャッシュの対象から外す制御は、マイクロプロセッサ1の動作モード、或いはキャッシュ制御部5の図示を省略するキャッシュ制御レジスタに対するCPU3による設定で行うことができる。
したがって、複数個のシンクロナスDRAMに異なるバースト長を設定した上記データ処理システムにおいては、32バイトのような大容量のデータをキャッシュメモリ等に効率良く転送できる性能を損なわずに、8バイトのような比較的小さなデータの転送には無駄なサイクルを極力抑えることができ、バースト長の異なるメモリを複数個有するようなメモリの多様な接続構成若しくは利用形態が実現される。
また、マイクロプロセッサ1で動作するプログラムの構成上、シンクロナスDRAM2Bには、プログラムコード及びキャッシュライン長と同じかそれ以上のサイズを有するデータを保持するようにし、シンクロナスDRAM2Aには、キャッシュライン長より小さなサイズを有するデータを保持するようにすることで、マイクロプロセッサ1の処理性能の向上を図ることも可能となる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、キャッシュメモリはプログラム格納用、或いはデータとプログラムを混在させて格納するものであってもよい。また、キャッシュメモリに、セットアソシアティブ、フルアソシアティブ或いはダイレクトマップ等の連想記憶形式を採用することができる。また、キャッシュメモリには前記ライトスルー方式に代えてライトバック方式を採用してもよい。
また、データ処理装置は、浮動小数点演算ユニットなどその他の演算ユニット、ダイレクトメモリアクセスコントローラのようなその他のバスマスタモジュール、タイマやRAMなどその他の周辺回路を内蔵してもよい。バースト動作可能なメモリはシンクロナスDRAMに限定されず、シンクロナスSRAMなどであってもよい。データ処理システムに含まれるバースト動作可能なメモリの数は適宜増やしてよい。
産業上の利用可能性
本発明は、バースト動作可能なメモリをアクセスすることができるデータ処理装置、そしてデータ処理システムに広く適用することができ、例えば、マイクロプロセッサ、マイクロコンピュータ、データプロセッサ、DSPなどと称される種々の半導体集積回路化されたデータ処理装置等に適用することができる。
【図面の簡単な説明】
第1図は本発明に係るデータ処理システムの一例を示すブロック図である。
第2図はブロック転送長判定部の詳細な一例を示すブロック図である。
第3図は外部メモリアドレス生成回路の一例を示すブロック図である。
第4図は後続アクセスアドレスの生成論理のアドレス生成規則を例示する説明図である。
第5図は32バイトのバースト長を設定したシンクロナスDRAMに対するバースト動作を例示するタイミングチャートである。
第6図は16バイトのバースト長を設定したシンクロナスDRAMに対するバースト動作を例示するタイミングチャートである。
第7図はキャッシュ制御部におけるキャッシュアクセスアドレス及びメモリアクセスアドレス生成のための論理構成の一例を示すブロック図である。
第8図はキャッシュフィルアドレス生成回路のアドレス生成論理を例示する説明図である。
第9図は第1図のマイクロプロセッサによるキャッシュフィル動作を比較例も含めて示したタイミングチャートである。
第10図は本発明に係るデータ処理システムの別の例を示すブロック図である。
Claims (11)
- キャッシュメモリと、前記キャッシュメモリを制御するキャッシュ制御部と、メモリにアクセスするためのメモリ制御部とを有し、
前記キャッシュ制御部は、キャッシュフィルアドレス生成回路を有し、
前記メモリ制御部は、前記メモリへの1回のバースト動作で得られるデータの個数であるバースト長を示すための第1情報を保持し、バースト動作可能なメモリをアクセスするとき、前記第1情報に基づいて前記キャッシュメモリのライン長に見合う個数のデータを得るに必要な回数のバースト動作を制御可能であり、前記バースト動作で得られるデータの区切りに対応する第1の制御信号と、前記バースト動作が前記第1情報が示すバースト長に基づくラップアラウンドであることを示す第2の制御信号を生成し、
前記キャッシュフィルアドレス生成回路は、前記第1及び第2の制御信号に基づいて、前記バースト動作で得られるデータ毎に、前記バースト動作で得られる順序に対応する順序で、格納すべき前記キャッシュメモリのキャッシュフィルアドレスを生成し、
前記キャッシュ制御部は、前記バースト動作で得られるデータを前記キャッシュメモリに、前記キャッシュフィルアドレスに従って順次格納するものであることを特徴とするデータ処理装置。 - 前記メモリ制御部は、キャッシュミスヒットに応答して複数回のバースト動作でメモリアクセスを行うとき、先頭のバースト動作ではキャッシュミスヒットに係るアドレスのデータ位置を基点にバースト動作を制御し、前記先頭のバースト動作の後続のバースト動作では前記バースト長で規定されるデータブロックのバウンダリの先頭アドレスのデータ位置を基点にバースト動作を制御するものであることを特徴とする請求項1記載のデータ処理装置。
- 前記キャッシュメモリと、前記キャッシュメモリを制御するキャッシュ制御部と、前記メモリ制御部とを同一半導体基板上に形成したことを特徴とする請求項1又は2記載のデータ処理装置。
- キャッシュメモリと、前記キャッシュメモリを制御するキャッシュ制御部と、バースト動作可能であって前記キャッシュメモリに対し主メモリを構成するメモリと、前記メモリにアクセスするためのメモリ制御部とを有し、
前記キャッシュ制御部は、キャッシュフィルアドレス生成回路を有し、
前記メモリ制御部は、前記メモリへの1回のバースト動作で得られるデータの個数であるバースト長を示すための第1情報を保持し、前記メモリをアクセスするとき、前記第1情報に基づいて前記キャッシュメモリのライン長に見合う個数のデータを得るに必要な回数のバースト動作を制御可能であり、前記バースト動作で得られるデータの区切りに対応する第1の制御信号と、前記バースト動作が前記第1情報が示すバースト長に基づくラップアラウンドであることを示す第2の制御信号を生成し、
前記キャッシュフィルアドレス生成回路は、前記第1及び第2の制御信号に基づいて、前記バースト動作で得られるデータ毎に、前記バースト動作で得られる順序に対応する順序で、格納すべき前記キャッシュメモリのキャッシュフィルアドレスを生成し、
前記キャッシュ制御部は、前記バースト動作で得られるデータを前記キャッシュメモリに、前記キャッシュフィルアドレスに従って順次格納するものであることを特徴とするデータ処理装置。 - キャッシュメモリと、前記キャッシュメモリを制御するキャッシュ制御部と、バースト動作可能であって前記キャッシュメモリに対し主メモリを構成する第1および第2のメモリと、前記第1および第2のメモリにアクセスするためのメモリ制御部とを有し、
前記キャッシュ制御部は、キャッシュフィルアドレス生成回路を有し、
前記メモリ制御部は、前記第1のメモリのバースト長を示すための第1情報と、前記第2のメモリのバースト長を示すための第2情報とを保持し、
前記キャッシュ制御部は、前記第1のメモリをアクセスするとき、前記アクセスの対象である前記メモリに対応する前記第1情報に基づいて前記キャッシュメモリのライン長に見合う個数のデータを得るに必要な第1の回数のバースト動作を制御可能であり、前記第2のメモリをアクセスするとき、前記アクセスの対象である前記メモリに対応する前記第2情報に基づいて前記キャッシュメモリのライン長に見合う個数のデータを得るに必要な第2の回数のバースト動作を制御可能であり、前記第1もしくは第2のメモリをアクセスする前記バースト動作で得られるデータの区切りに対応する第1の制御信号と、前記バースト動作が前記第1情報又は前記第2情報が示すバースト長に基づくラップアラウンドであることを示す第2の制御信号を生成し、
前記キャッシュフィルアドレス生成回路は、前記第1及び第2の制御信号に基づいて、前記バースト動作で得られるデータ毎に、前記バースト動作で得られる順序に対応する順序で、格納すべき前記キャッシュメモリのキャッシュフィルアドレスを生成し、
前記キャッシュ制御部は、前記バースト動作で得られるデータを前記キャッシュメモリに、前記キャッシュフィルアドレスに従って順次格納するものであることを特徴とするデータ処理装置。 - 前記データ処理装置は、キャッシュミスヒットに応答して複数回のバースト動作でメモリアクセスを行うとき、先頭のバースト動作ではキャッシュミスヒットに係るアドレスのデータ位置を基点にバースト動作を制御し、前記先頭のバースト動作の後続のバースト動作では前記バースト長で規定されるデータブロックのバウンダリの先頭アドレスのデータ位置を基点にバースト動作を制御するものであることを特徴とする請求項4又は5記載のデータ処理装置。
- 前記キャッシュメモリと、前記キャッシュ制御部と、前記メモリ制御部とを第1の半導体基板上に形成し、前記メモリを第1の半導体基板とは別の単数もしくは複数の半導体基板上に形成したことを特徴とする請求項4乃至6のうちいずれか1項記載のデータ処理装置。
- 前記メモリがシンクロナスDRAMであることを特徴とする請求項3乃至7のうちいずれか1項記載のデータ処理装置。
- キャッシュメモリと、前記キャッシュメモリを制御するキャッシュ制御部と、メモリにアクセスするためのメモリ制御部とを有し、
前記キャッシュ制御部は、キャッシュフィルアドレス生成回路を有し、
前記メモリ制御部は、前記メモリへの1回のバースト動作で得られるデータの個数であるバースト長n(nは自然数)を示すための第1情報を保持し、バースト動作可能なメモリをアクセスするとき、前記第1情報に基づいて前記キャッシュメモリのライン長L(Lは自然数)に見合う個数のデータを得るに必要な回数m(mは自然数)のバースト動作を制御可能であり、前記バースト動作で得られるデータの区切りに対応する第1の制御信号と、前記バースト動作が前記第1情報が示すバースト長に基づくラップアラウンドであることを示す第2の制御信号を生成し、
前記キャッシュフィルアドレス生成回路は、前記第1及び第2の制御信号に基づいて、前記m回のバースト動作で得られるn×m個のデータ毎に、前記m回のバースト動作で得られる順序と同一の順序で、格納すべき前記キャッシュメモリのn×m個のキャッシュフィルアドレスを生成し、
前記キャッシュ制御部は、前記バースト動作で得られるデータを前記キャッシュメモリに、前記キャッシュフィルアドレスに従って順次格納するものであることを特徴とするデータ処理装置。 - 前記メモリ制御部は、キャッシュミスヒットに応答して前記m回のバースト動作でメモリアクセスを行うとき、先頭のバースト動作ではキャッシュミスヒットに係るアドレスのデータ位置を基点にバースト動作を制御し、前記先頭のバースト動作の後続のバースト動作では前記バースト長で規定されるデータブロックのバウンダリの先頭アドレスのデータ位置を基点にバースト動作を制御するものであることを特徴とする請求項9記載のデータ処理装置。
- 前記キャッシュメモリと、前記キャッシュメモリを制御するキャッシュ制御部と、前記メモリ制御部とを同一半導体基板上に形成したことを特徴とする請求項9又は10記載のデータ処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1999/006371 WO2001037098A1 (fr) | 1999-11-16 | 1999-11-16 | Dispositif et systeme informatique |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3967921B2 true JP3967921B2 (ja) | 2007-08-29 |
Family
ID=14237286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001539124A Expired - Fee Related JP3967921B2 (ja) | 1999-11-16 | 1999-11-16 | データ処理装置及びデータ処理システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3967921B2 (ja) |
WO (1) | WO2001037098A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006172240A (ja) * | 2004-12-17 | 2006-06-29 | Nec Corp | データ処理システム及びそのメモリ制御方法 |
JP5452148B2 (ja) * | 2009-09-24 | 2014-03-26 | 三菱電機株式会社 | メモリ制御システム |
EP2722763A4 (en) | 2011-06-17 | 2014-12-31 | Fujitsu Ltd | ARITHMETIC PROCESSING UNIT, INFORMATION PROCESSING DEVICE AND CONTROL OF AN ARITHMETIC PROCESSING UNIT |
US9792049B2 (en) | 2014-02-24 | 2017-10-17 | Cypress Semiconductor Corporation | Memory subsystem with wrapped-to-continuous read |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6272041A (ja) * | 1985-09-25 | 1987-04-02 | Nec Corp | キヤツシユメモリ制御装置 |
JP2836321B2 (ja) * | 1991-11-05 | 1998-12-14 | 三菱電機株式会社 | データ処理装置 |
US5715476A (en) * | 1995-12-29 | 1998-02-03 | Intel Corporation | Method and apparatus for controlling linear and toggle mode burst access sequences using toggle mode increment logic |
-
1999
- 1999-11-16 JP JP2001539124A patent/JP3967921B2/ja not_active Expired - Fee Related
- 1999-11-16 WO PCT/JP1999/006371 patent/WO2001037098A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2001037098A1 (fr) | 2001-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6745309B2 (en) | Pipelined memory controller | |
US6295592B1 (en) | Method of processing memory requests in a pipelined memory controller | |
US6173356B1 (en) | Multi-port DRAM with integrated SRAM and systems and methods using the same | |
US6721864B2 (en) | Programmable memory controller | |
EP0407119B1 (en) | Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access | |
US5974514A (en) | Controlling SDRAM memory by using truncated burst read-modify-write memory operations | |
JP2909592B2 (ja) | コンピュータメモリシステム | |
JP2509766B2 (ja) | キャッシュメモリ交換プロトコル | |
JP4199658B2 (ja) | 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス | |
KR100637947B1 (ko) | 데이터의 순차적 니블 버스트 오더링메모리 장치 및 그 방법 | |
JP2003501747A (ja) | プログラマブルsram及びdramキャッシュ・インタフェース | |
US7707328B2 (en) | Memory access control circuit | |
JP4370063B2 (ja) | 半導体記憶装置の制御装置および半導体記憶装置の制御方法 | |
JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
JP3967921B2 (ja) | データ処理装置及びデータ処理システム | |
EP0694844B1 (en) | Reduced memory pin addressing for cache and main memory | |
JP3583844B2 (ja) | キャッシュメモリ方式 | |
US6400640B2 (en) | Method for memory addressing | |
KR100445913B1 (ko) | 버퍼 캐시를 이용한 페이지 모드 dram 가속기 | |
JP2004318500A (ja) | メモリ回路 | |
JPH06202982A (ja) | バス制御方法及びその装置並びに情報処理装置 | |
JPH0561769A (ja) | メモリ・アクセス方法 | |
JPH04199450A (ja) | ダイレクト・メモリ・アクセス制御回路 | |
JPH03198288A (ja) | メモリアクセス制御装置 | |
JPH06324940A (ja) | メモリ制御方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20030723 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040326 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040329 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040326 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040602 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070413 |
|
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: 20070508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070601 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |