JP4024247B2 - 半導体データプロセッサ - Google Patents
半導体データプロセッサ Download PDFInfo
- Publication number
- JP4024247B2 JP4024247B2 JP2004541170A JP2004541170A JP4024247B2 JP 4024247 B2 JP4024247 B2 JP 4024247B2 JP 2004541170 A JP2004541170 A JP 2004541170A JP 2004541170 A JP2004541170 A JP 2004541170A JP 4024247 B2 JP4024247 B2 JP 4024247B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- bus
- data
- access
- read
- 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
- 239000004065 semiconductor Substances 0.000 title claims description 22
- 230000015654 memory Effects 0.000 claims description 223
- 230000002093 peripheral effect Effects 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 10
- 239000000758 substrate Substances 0.000 claims description 2
- 238000011144 upstream manufacturing Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
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
前者の例では、データプロセッサにメモリを内蔵するだけでは性能向上は得られず、動作するプログラムにおいて頻繁に参照されるメモリ領域を予め調査して、その部分をデータプロセッサ内蔵メモリに割り付けることが必要である。要するにデータプロセッサで実行する動作プログラムに応じた内蔵メモリのアドレスマッピングの仕方がデータ処理性能に大きく影響する。
また、後者の例ではプログラムからのメモリアクセスの度に、メモリ領域のアクセス頻度を自動的に判断してキャッシュメモリに格納するため、頻繁に参照されるメモリ領域を予め調査する必要はないが、アクセス頻度を判定するアルゴリズムに応じて、性能向上が得られないアクセスパターンが存在する。即ち、キャッシュメモリは同じデータが複数回アクセスされる場合にメモリアクセス性能を向上させることができ、直列的に順次走査されるような画像データ等に対してはメモリアクセス性能を逆に低下させる場合がある。例えば、一般的なアルゴリズムでは、あるメモリ領域を開始アドレスから終了アドレスまで1回ずつ、シーケンシャルにメモリアクセス(シーケンシャルアクセス)するプログラムと、様々なアドレスをランダムにアクセス(ランダムアクセス)するプログラムを、時分割にて擬似的に同時に実行する状況においては、性能向上が得られないことがある。
本発明の目的は、内蔵メモリに対するアクセス性能を向上させることが容易な半導体データプロセッサを提供することにある。
本発明の別の目的は、内蔵メモリに対するランダムアクセスの性能を低下させることなくシーケンシャルアクセスを効率化することができる半導体データプロセッサを提供することにある。
本発明の更に別の目的は、内蔵メモリに対するシーケンシャルアクセスとランダムアクセスの双方に対してアクセス性能を向上させることが容易な半導体データプロセッサを提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
シーケンシャルアクセスのようにキャッシュメモリによるアクセス高速化の効果を期待し難い利用形態を想定する。キャッシュ非対象とされる第2メモリをシーケンシャルアクセスするとき、リードバッファからシーケンシャルアクセスに応答するデータを出力することにより、シーケンシャルリードアクセスを高速化することができる。上記シーケンシャルアクセスに際して第1メモリのキャッシュ動作は行なわれず、再アクセスの可能性の低いシーケンシャルアクセスデータによって第1メモリに保有されているキャッシュエントリデータが不所望に書換えられ若しくはリプレースされることもない。これにより、内蔵メモリに対するランダムアクセスの性能を低下させることなくシーケンシャルアクセスを効率化することができる。
本発明の一つの望ましい態様として、前記リードバッファは前記キャッシュ非対象として前記第2メモリがアクセスされたとき所定の当該アクセスデータとアドレスを一時的に保持する。例えば、前記第2メモリがアクセスされたときリードバッファがそのアクセスに応ずるデータを保有していないとき当該アクセスに応ずるデータとアドレスを新たに保持する。保持したデータが第2メモリのリードアクセスに代えてリードバッファから出力されるデータになる。要するに、リードバッファは直前のメモリアクセスの内容を含むデータを保持するように動作され、保持するデータと同じデータのアクセスを検出したときはこれに応答して、既に保持するデータを第2メモリのアクセスに代えて出力する。
本発明の一つの望ましい態様として、前記リードバッファはリード要求の上流側から第1バスに接続され、リード要求下流側から第2バスに接続される。第2バスは第1バスによる並列アクセスデータビット数以上の並列ビット数でデータを伝達可能なバスである。シーケンシャルアクセスされるデータを第2バスを経由してまとめてリードバッファに蓄えることができる。リードバッファは蓄えたデータを第2メモリへの何回分かのリードアクセスに応答して出力することができる。
本発明の一つの望ましい態様として、前記リードバッファは、前記第1メモリから前記第2バスを経由して伝達されるリードデータを保持するデータレジスタと、そのデータのアドレスを保持するアドレスレジスタと、アドレスレジスタに保持されたアドレスに一致するアドレスのリード要求に対して前記データレジスタのデータを第1バスに出力させる制御回路とを有する。
本発明の一つの望ましい態様として、前記第1バス及び第2バスはシーケンシャルアクセス専用バスとされる。また、前記キャッシュ対象として前記第2メモリをアクセスするとき第1及び第2バスによる径路と異なる径路で前記第1メモリを第2メモリに接続可能にする第3バスを有する。周辺バスインタフェースコントローラがある時はこれを前記第3バスに接続する。シーケンシャルアクセス専用バスとして専用化される第2バスに対するインタフェース制御は専用化されるが故にインタフェース制御がシンプルで高速アクセスに好都合である。
本発明の一つの望ましい態様として、前記第2バスと第3バスに接続され、前記第2メモリに対するアクセスインタフェース制御を行う内部メモリコントローラを有する。また、前記第3バスに、前記第2メモリを前記第1メモリに対する2次キャッシュメモリとして制御する2次キャッシュメモリコントローラを有する。前記2次キャッシュメモリコントローラは第1メモリのキャッシュ無効化を示す信号に応答して第2メモリをキャッシュ無効化する。1次キャッシュと2次キャッシュの記憶情報の整合を採るのに便利である。第2メモリに対する利用形態よりすれば前記内部メモリコントローラと前記2次キャッシュメモリコントローラは排他的に動作可能にされればよく、これを制御レジスタで設定するようにすればよい。
〔2〕半導体データプロセッサは、キャッシュメモリを構成する第1メモリと、前記第1メモリに対して2次キャッシュメモリ又はキャッシュメモリではないメモリとされることが可能な第2メモリと、前記第2メモリを2次キャッシュメモリ又はキャッシュメモリではないメモリの何れかに選択的に指定する指定手段とを有する。上記した手段によれば、第2メモリを2次キャッシュメモリとして用いるのがデータ処理上望ましいとされる場合、或いは第2メモリをCPUのアドレス空間に配置されたメモリとして用いるのがデータ処理上望ましいとされる場合、の何れに対しても適切に対応することが可能である。したがって、データプロセッサによるデータ処理形態に応じて内蔵第2メモリに対するアクセス性能を向上させることが容易である。
本発明の一つの望ましい態様として、前記第2メモリを前記第1メモリの2次キャッシュメモリとしてアクセスインタフェース制御を行う2次キャッシュメモリコントローラを有する。また、前記第2メモリに対しキャッシュメモリではないメモリとしてアクセスインタフェース制御を行う内部メモリコントローラを有する。キャッシュメモリではないメモリとされることが選択された第2メモリは第1メモリによるキャッシュの対象とされ又はキャッシュの非対象とされることが可能であってよい。前記キャッシュ非対象として前記第2メモリがリードアクセスされるときそのアクセスに応ずるデータの出力動作可能にされるリードバッファを有してよい。
第2図はリードバッファの詳細を例示する論理回路図である。
第3図はリードバッファを利用しない場合或いはリードバッファがない場合にシーケンシャルアクセス用のインタフェースバスからデータをリードする場合を比較例として示すタイミングチャートである。
第4図はリードバッファを利用してシーケンシャルアクセス用のインタフェースバスからデータをリードする動作を示すタイミングチャートである。
第5図はマイクロコンピュータの別の例を示すブロック図である。
第1図ではプロセッサコアと内蔵メモリとの間のインタフェース部分が代表的に示される。プロセッサコア2は、例えばCPU(中央処理装置)3、FPU(浮動小数点演算ユニット)4、1次キャッシュメモリコントローラ(L1CC)5、第1メモリとしての1次キャッシュメモリ(L1CM)6を有する。CPU3は命令制御部と実行部から成る。前記命令制御部は、命令をフェッチし、フェッチした命令を解読して、制御信号を生成する。前記実行部は汎用レジスタや算術論理演算器等を有し、その動作が前記制御信号で生成され、フェッチしたオペランド等を用いた演算を行う。FPU4は、特に制限されないが、CPU3が浮動小数点命令をフェッチしたとき、CPU3より浮動小数点演算コマンドを受け取り、CPU3がアクセスした演算オペランドを受け取って、浮動小数点演算を行う。
前記1次キャッシュメモリ6は、特に制限されないが、セットアソシアティブ形態の連想メモリ構造を有する。1次キャッシュメモリコントローラ5は、キャッシュブルエリア(キャッシュ対象領域)のアクセスがあると、1次キャッシュメモリ6を連想検索し、キャッシュヒットであれば1次キャッシュメモリ6をアクセスし、キャッシュミスであれば後述する内部メモリ20等の下位側のメモリアクセスを行って必要なデータや命令を取得し、1次キャッシュメモリ6に対するキャッシュフィル、必要な場合にはキャッシュエントリのリプレースを制御する。内部メモリ20は例えばSRAM(スタティック・ランダム・アクセス・メモリ)から成る。
下位側のメモリアクセス等に用いる経路として、1次キャッシュメモリコントローラ5には第1バスとしてのシーケンシャルアクセス用インターフェースバス11、第3バスとしてのランダムアクセス用インターフェースバス10が接続される。シーケンシャルアクセス用インターフェースバス11はリードバッファ12の一方のアクセスポートに接続され、リードバッファ12の他方のアクセスポートは第2バスとしてのインタフェースバス13に接続される。インタフェースバス10、11、13はアドレス、データ、及びアクセス制御信号の信号線を含む。インタフェースバス13の並列アクセスデータビット数はインタフェースバス11の並列アクセスデータビット数以上とされる。例えばインタフェースバス13の並列アクセスデータビット数は256ビット、インタフェースバス11の並列アクセスデータビット数は64ビットである。インタフェースバス10の並列アクセスデータビット数は64ビットである。
前記リードバッファ12は、インターフェースバス11からのアクセス要求がリード、かつアクセス要求アドレスがリードバッファ12内に格納されているアドレスと一致する場合に、リードバッファ12が保有するデータを1次キャッシュメモリコントローラ5に伝える。リード、かつアドレスが一致しない場合は、アクセス要求のデータ幅を置き換えて、例えば64ビットから256ビットに置き換えて、インタフェースバス13にインターフェース要求を発行する。また、ライトアクセスの場合はインターフェースバス11から伝達されるアクセス要求をそのままインターフェースバス13にインタフェース要求として出力する。
インターフェースバス13からのアクセス要求は内部メモリコントローラ(RAMC)14に伝達される。インターフェースバス10からのアクセス要求は周辺バスインタフェースコントローラ(PBIC)15に伝達され、そこから、周辺バス23を介して単数又は複数の周辺回路24に、第3バスとしてのインタフェースバス16を介して前記内部メモリコントローラ14に伝えられ、また、2次キャッシュメモリコントローラ21にも伝えられる。
内部メモリコントローラ14は前記内部メモリ20に対するアクセスインタフェース制御を行う。2次キャッシュメモリコントローラ21は前記内部メモリ20をキャッシュメモリ6に対する2次キャッシュメモリとして制御する。
周辺バスインタフェースコントローラ16は、周辺回路24及び内部メモリ20に対するアドレスマッピングの情報を有し、インタフェースバス10からのアクセス要求が周辺回路に対するものであれば周辺バス23にアクセス要求を出力し、内部メモリ20に対するものであればインタフェースバス15にアクセス要求を出力する。周辺回路24にはDMAC(ダイレクト・メモリ・アクセス・コントローラ)等のバスマスタモジュール、或いはタイマ・カウンタ、シリアルインタフェースなどのバススレーブモジュールを含むことがある。
内部メモリコントローラ14は、インターフェースバス13からのアクセス要求とインターフェースバス16からのアクセス要求とを調停し、バス17に内部メモリ20に対するアクセス制御信号を出力する。インタフェースバス13からのアクセス要求は前記内部メモリ20を1次キャッシュメモリ6によるキャッシュ非対象としてアクセスするときのアクセス要求である。これに対し10,16を介するアクセス要求は前記内部メモリ20を1次キャッシュメモリ6によるキャッシュ対象としてアクセスするときのアクセス要求である。内部メモリ20に対するアクセス要求が1次キャッシュメモリ6のキャッシュ対象であるか否かは1次キャッシュメモリコントローラ5がアクセスアドレスに基づいて判定する。内部メモリ20に対するキャッシュ対象(キャッシャブル)とキャッシュ非対象(ノンキャッシャブル)の指定は内部メモリ20がマッピングされるメモリ空間に対するキャッシュ対象又は非対象の指定によって決められる。その指定は例えばマイクロコンピュータ21の動作モードにより、或いはコントロールレジスタ(図示せず)に対する設定で行なわれる。
また、2次キャッシュメモリコントローラ21はインタフェースバス16からのアクセス要求に応答して、当該アクセス要求に含まれるアクセスアドレスのアドレスタグを2次キャッシュメモリコントローラ21内のキャッシュタグと比較し、キャッシュヒットであれば内部メモリ20をキャッシュメモリとして操作するためのキャッシュエントリ操作のアクセス制御信号をバス18に出力する。
バス17からのアクセス制御信号とバス18からのアクセス制御信号は、セレクタ19によりどちらか一方が内部メモリ20に伝達される。内部メモリ20は伝達されたアクセス制御信号によってアクセスされる。内部メモリ20に対するアクセス動作指示がリードアクセスである場合、内部メモリ20はその読み出しデータをバス26に出力し、内部メモリコントローラ14又は2次キャッシュメモリコントローラ21に伝達する。ライト動作の場合には書き込みデータが内部メモリコントローラ14又は2次キャッシュメモリコントローラ21からバス26を介してメモリ20に与えられる。尚、2次キャッシュメモリコントローラ21からバス26を介するメモリ20への書き込み指示は、2次キャッシュメモリのリードミスに伴うキャッシュフィル、ライトミスに伴うキャッシュフィル動作等に際して指示される。
前記セレクタ19による選択は、モード制御レジスタ22の設定値に従ってに決定される。また、内部メモリコントローラ14と、2次キャッシュメモリコントローラ21も該レジスタ22の設定値に従って動作のオン、オフが決まる。内部メモリコントローラ14の動作が選択される(有効である)場合には、2次キャッシュメモリコントローラ21は動作されず、内部メモリコントローラ14の出力がセレクタ19で選択される。逆に2次キャッシュメモリコントローラ21が有効である場合には、内部メモリコントローラ14は動作されず、2次キャッシュメモリコントローラ21の出力がセレクタ19で選択される。
内部メモリコントローラ14はインタフェースバス13又は16にに、アクセス要求に応答する結果を出力する。また、2次キャッシュメモリコントローラ21は、インタフェースバス16に、アクセス要求に応答する結果を出力する。
1次キャッシュメモリコントローラ5は1次キャッシュメモリ6に対す一括無効化が行われたとき、2次キャッシュメモリコントローラ21へのキャッシュエントリ一括無効化要求信号30を出力する。この信号30はCPU3が1次キャッシュメモリ6に対する一括無効化の操作命令を実行中にプログラムの指示によって生成される。一括無効化要求信号30は周辺バスインタフェースコントローラ15を介して、一括無効化要求信号31として2次キャッシュメモリコントローラ21に供給される。2次キャッシュメモリコントローラ21は信号31に応答して、2次キャッシュメモリコントローラ21内に保有するキャッシュタグの全キャッシュエントリの有効ビットを無効化し、内部メモリ20のキャッシュエントリのクリアを行う。
第2図には前記リードバッファ12の詳細が例示される。41〜45はインタフェースバス11を分割して示したものである。41はアクセス要求の種別を示し、リード要求、ライト要求、もしくはアクセス要求がないこと(NOP)を示す。42はアクセス要求のデータ幅を示し、1バイト、2バイト、4バイト、8バイト、32バイトの種類がある。43はアクセス要求のアドレスであり、22ビット幅である。44はアクセス要求がリード要求である場合に、読み出しデータを返す信号であり、64ビット幅(8バイト分)である。45はアクセス要求がライトの時に、ライトデータを渡す信号である。46および47は、アドレス43の上位17ビット分のアドレス信号である。
また、48〜50と、43及び45を組み合わせたものが前記バス13に対応される。48は41と、49は42と、50は44と同等である。
51は256ビット幅のデータレジスタであり、前回のアクセスのデータを保持する。52は17ビット幅のアドレスレジスタであり、前回のアクセスのアドレスの上位17ビット分を保持する。53は、1ビットのレジスタであり、レジスタ51およびレジスタ52に保持されている内容が有効である場合は”1”を、無効である場合は”0”を保持する。
54は比較器であり、信号41がリード要求である場合に”1”を出力する。55は比較器であり、信号47とアドレスレジスタ52に保持されている内容が一致する場合に”1”を出力する。56はNAND(ナンド)ゲートである。NANDゲート56の出力は、「信号41がリード要求、かつ信号47とレジスタ52に保持されている内容が一致、かつレジスタ53が有効を示す”1”である」場合に”0”となる。すなわち、NANDゲート56の出力が”0”の場合は、リードバッファ12のヒットを示す。57は比較器であり、信号41がライト要求である場合に”1”を出力する。
比較器54の出力が”1”、すなわち信号41がリード要求である場合、セレクタ60によって、信号49の出力は32バイトのアクセス要求に置き換えられる。比較器54の出力が”0”、すなわち信号41がリード要求でない場合には、信号42の入力がそのまま信号49に出力される。
NANDゲート56の出力が”0”、すなわちリードバッファ12がヒットの場合、セレクタ61によって、信号48の出力はNOPに置き換えられる。NANDゲート56の出力が”1”の場合は、信号41の出力がそのまま信号48に出力される。
また、NANDゲート56の出力が”0”の場合、セレクタ62によって、レジスタ51の出力がアライナ(ALGN)63に入力される。NANDゲート56の出力が”1”の場合は、信号50の入力がアライナ63に入力される。アライナ63は、信号42および信号43の内容にしたがって、入力データのビット位置の並び替えを行って信号44に出力する。
レジスタ51およびレジスタ52は、NANDゲート56の出力が”1”の場合に、それぞれ信号50、信号46の内容を取り込む。53の保持内容は、比較器57の出力が”1”の場合には”0”に変化する。ライトの時もリードバッファミスの場合と同様にレジスタ51及び52にデータ及びアドレスを入力するからである。また、比較器54の出力が”1”、かつNANDゲート56の出力が”1”の場合には、”1”に変化する。次のリード動作でレジスタ52のアドレス比較結果に従ってレジスタ51のデータを利用可能にするためである。
第3図はリードバッファ12を利用しない場合或いはリードバッファ12がない場合にシーケンシャルアクセス用のインタフェースバス11からデータをリードする場合のタイミングチャートを比較例として示す。第4図はリードバッファ12を利用してシーケンシャルアクセス用のインタフェースバス11からデータをリードする場合のタイミングチャートを示す。
ここでは、リードバッファ12とプロセッサコア2が同じ周波数で動作し、リードバッファ12の動作周波数と、内部メモリ20の動作周波数の比を2:1と想定し、プロセッサコア2からのシーケンシャルアクセスが8バイト(64ビット)毎のリードが連続する動作を考えている。
第3図において301はプロセッサコア2のクロック信号、302は内部メモリ20のクロック信号、303はプロセッサコア2からの信号41,42によるアクセス要求、304は内部メモリ20からバス44へのデータ出力、305は内部メモリ20および内部メモリコントローラ14の動作を示している。また、311〜320はプロセッサコア2のクロック周期を示している。
321はプロセッサコア2からの8バイトリード要求であり、内部メモリコントローラ14はこの要求に対して312〜313の期間に、322に示すようにリード動作を行い、314の期間にリードデータである323を出力する。331〜333、341〜343、351〜353も、321〜323と同様の動作であり、321、331、341、351の8バイトリード要求はアドレスが連続している。この場合、最初のリード要求321から、最後のデータ出力353まで、プロセッサコア2のクロックで10サイクルの動作期間が必要である。
第4図のリードバッファ12を設けた場合のタイミングチャートにおいて、401、402、403は301、302、303と同様である。404はリードバッファのヒット信号であり、第2図のNANDゲート56の出力に相当する。405はリードバッファ12からバス44へのデータ出力であり、406は内部メモリ20および内部メモリコントローラ14の動作を示す。また、411〜417はプロセッサコア2のクロック周期を示している。
421はプロセッサコア2からの8バイトリード要求である。これに対応する内蔵メモリの動作は422であるが、この動作はリードバッファ12にて要求の置き換えを行っており、8バイトリードではなく32バイトリードである。423はプロセッサコア2へのデータ出力であり、422の動作終了後414の期間に行われる。また、414の期間に2回目の8バイトリード要求である431がプロセッサコア2から発行されるが、1回目のリード要求421の際に32バイトリードを行っているため、リードバッファ12にヒットし、404の信号(NANDゲート56の出力信号)が“1”から“0”に変化する。431に対するデータ出力433は、期間415に行われる。3回目、4回目の8バイトリード要求である441、451に対してもリードバッファ12がヒットするため、それぞれ期間416、417にデータ出力443、453が行われる。
第5図にはマイクロコンピュータの別の例が示される。第5図に示されるマイクロコンピュータ33は、第1図の周辺バスインタフェースコントローラ15が省略され、プロセッサコア2は第3バスとしてのインタフェースバス34を介して直接前記内部メモリコントローラ14と2次キャッシュメモリコントローラ21に接続される。また、1次キャッシュメモリコントローラ5から出力される2次キャッシュメモリコントローラ21への一括無効化要求を示す信号30がそのまま2次キャッシュメモリコントローラ21に供給される。その他の第1図と同じ構成にはそれと同一符号を付してその詳細な説明を省略する。
第1図と第5図の構成の相違について比較する。第1図の例では周辺バスインタフェースコントローラ15は1次キャッシュメモリコントローラ5からのアクセス要求に対して、その要求先をアドレスから判定し、判定したアクセス要求先に対して必要なアクセス制御信号を出力する。或はDMAC等のバスマスタモジュールを構成する周辺回路24からのデータ転送要求に対しても同様にその要求先をアドレスから判定し、判定したアクセス要求先に対して必要なアクセス制御信号を出力する。したがって、インタフェースバス10,16は特定のメモリや周辺回路にに対する専用バスにはならない。これに対してインタフェースバス11,13はシーケンシャルアクセス専用バスとされる。したがって、メモリコントローラ14経由で同じ内部メモリ20をアクセスするためのアクセス径路をシーケンシャルアクセスとランダムアクセスで分けた構成を採用すれば、シーケンシャルアクセス用径路を専用化でき、特定のインタフェースプロトコルを実現すればよく、その他のメモリや周辺回路との汎用利用を考慮しなくてもよいよい分だけ、シーケンシャルアクセスのためのインタフェース動作の高速化を図るのに好都合である。第5図の構成ではインタフェースバス34には周辺バスインタフェースコントローラ15が配置されていないが、メモリコントローラ14と2次キャッシュメモリコントローラ21の双方に接続されるという意味で、双方の回路の入力容量の点でバス34の駆動負荷が比較的大きくなる。周辺バスインタフェースコントローラ15が配置されていない場合にも、その点で、シーケンシャルアクセスのためのバスをバス11,13によって専用化すりうことは、シーケンシャルアクセス動作の高速化を図るのに好都合である。
また、第1図の構成では、レジスタ22の設定により内部メモリ20を有効としている場合に、プロセッサコア2で実行中のプログラムが、シーケンシャルアクセス用のインターフェースバス11,13を通じて内部メモリ20をアクセスしながら、周辺バス(プロセッサバス)23側からの内部メモリアクセス要求もランダムアクセス用のインターフェースバス16を通じて受け付けることができる。
以上説明したマイクロコンピュータによれば、画像データや音楽データなど、内部メモリ20へのシーケンシャルアクセスが存在するプログラムでは、通常メモリモード(内部メモリコントローラ14を有効にする動作モード)を用いる。特に、シーケンシャルアクセス用のリードバッファ12による性能向上が期待できる。また、リードバッファ12は回路量が少なく、内部メモリ20よりも高い周波数での動作が期待できる。第1図に基づいて説明したように、リードバッファ12とプロセッサコア2が同じ周波数で動作し、リードバッファ12の動作周波数と、内部メモリ20の動作周波数の比を2:1である場合には、リードバッファ12が無い場合に最初のリード要求から最後のデータ出力まで、プロセッサコア2のクロックで10サイクル必要であるのに対し、リードバッファ12を設けた場合、7サイクルに短縮され、性能を向上できる。また、内部メモリ20のアクセス回数も4回から1回に減少する。
上記シーケンシャルアクセスに際して1次キャッシュメモリ6のキャッシュ動作は行なわれず、再アクセスの可能性の低い画像データなどのシーケンシャルアクセスデータによって1次キャッシュメモリ6に保有されているキャッシュエントリデータ不所望に書換えられることも無い。
また、内部メモリの制御を通常メモリモードと2次キャッシュモード(2次キャッシュメモリコントローラ21を有効にする動作モード)に切り替えることが可能であるから、プログラムの処理内容に応じて最適な形態で内部メモリ20を活用することが可能になり、データ処理性能の向上に寄与する。メモリ20へのランダムアクセスが多いプログラムでは、2次キャッシュモードを活用することにより、1次キャッシュミスのペナルティを減らすことができ、データ処理性能の向上に寄与する。
以上、本発明を具体的に説明したが、本発明はそれに限定されず、その要旨を逸脱しない範囲で種々の変形が可能である。例えば、プロセッサコアには論理アドレスを物理アドレスに変換するメモリ管理ユニットを設けてもよい。1次キャッシュメモリはデータと命令でそれぞれ別々に設けてもよい。その場合にリードバッファに接続されるのは専らデータキャッシュメモリに限定しても良い。また、1次キャッシュメモリコントローラ5から出力される2次キャッシュメモリコントローラ21への一括無効化要求は個別信号で指示する場合に限定されずインタフェエースバスを介してコマンドで指示を与えるようにしてもよい。第1図及び第5図の例ではマイクロコンピュータの外部とインタフェースされる外部入出力回路について図示を省略してあるが、実際には外部入出力回路が設けられていることは言うまでも無い。
Claims (8)
- キャッシュメモリを構成する第1メモリの制御を行うことが可能であって中央処理装置を有するプロセッサコアと、
キャッシュ対象及びキャッシュ非対象とされるデータを格納することが可能な第2メモリと、
前記第2メモリに格納された前記キャッシュ非対象とされるデータがリードアクセスされる場合に、そのアクセスに応ずるデータを出力可能とされ、所定のアクセスデータとアドレスを一時的に保存するためのリードバッファと、
前記第2メモリに格納された前記キャッシュ非対象とされるデータにアクセスされる場合に用いられ、前記リードバッファのリード要求の上流側に設けられる第1バスと、
前記第2メモリに格納された前記キャッシュ非対象とされるデータにアクセスされる場合に用いられ、前記リードバッファのリード要求の下流側に設けられる第2バスと、
前記第2メモリに格納された前記キャッシュ対象とされるデータにアクセスされる場合に用いられ、前記第1及び第2バスによる経路と異なる経路で前記第2メモリにアクセス可能にする第3バスとを有し、
前記第1及び第2メモリ、前記リードバッファ、前記第1、第2及び第3バスは1個の半導体基板上に形成され、
前記第3バスによる並列アクセスデータビット数は、前記第1バスによる並列アクセスデータビット数と等しく、
前記第2バスによる並列アクセスデータビット数は、前記第1バスによる並列アクセスデータビット数より多いことを特徴とする半導体データプロセッサ。 - 請求項1記載の半導体データプロセッサにおいて、
前記リードバッファは、前記第2メモリから前記第2バスを経由して伝達されるリードデータを保持するデータレジスタと、前記リードデータのアドレスを保持するアドレスレジスタと、前記アドレスレジスタに保持されたアドレスに一致するアドレスのリード要求に対して前記データレジスタのデータを前記第1バスに出力させる制御回路とを有することを特徴とする半導体データプロセッサ。 - 請求項1又は2記載の半導体データプロセッサにおいて、
前記第1及び第2バスはシーケンシャルアクセス専用バスとされ、前記第3バスはランダムアクセス専用バスとされることを特徴とする半導体データプロセッサ。 - 請求項1から3のいずれか一つに記載の半導体データプロセッサにおいて、
周辺回路と、
周辺バスと、
周辺バスインターフェースコントローラをさらに有し、
前記周辺バスインターフェースコントローラは、前記第3バスからのアクセス要求を、
前記周辺バスを介して前記周辺回路へと伝達することを特徴とする半導体データプロセッサ。 - 請求項1から4のいずれか一つに記載の半導体データプロセッサにおいて、
前記第2及び第3バスに接続され、前記第2メモリに対するアクセスインターフェース制御を行う内部メモリコントローラをさらに有することを特徴とする半導体データプロセッサ。 - 請求項5記載の半導体データプロセッサにおいて、
前記第3バスに接続され、前記第2メモリを前記第1メモリに対する2次キャッシュメモリとして制御するための2次キャッシュメモリコントローラをさらに有することを特徴とする半導体データプロセッサ。 - 請求項6記載の半導体データプロセッサにおいて、
前記2次キャッシュメモリコントローラは、前記第1メモリのキャッシュ無効化を示す信号に応答して前記第2メモリをキャッシュ無効化することを特徴とする半導体データプロセッサ。 - 請求項6又は7記載の半導体データプロセッサにおいて、
前記内部メモリコントローラと前記2次キャッシュメモリコントローラを排他的に動作可能に設定するための制御レジスタをさらに有することを特徴とする半導体データプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2002/010162 WO2004031963A1 (ja) | 2002-09-30 | 2002-09-30 | 半導体データプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2004031963A1 JPWO2004031963A1 (ja) | 2006-02-02 |
JP4024247B2 true JP4024247B2 (ja) | 2007-12-19 |
Family
ID=32051270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004541170A Expired - Fee Related JP4024247B2 (ja) | 2002-09-30 | 2002-09-30 | 半導体データプロセッサ |
Country Status (3)
Country | Link |
---|---|
US (1) | US7356649B2 (ja) |
JP (1) | JP4024247B2 (ja) |
WO (1) | WO2004031963A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8549226B2 (en) | 2004-05-14 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Providing an alternative caching scheme at the storage area network level |
WO2006109421A1 (ja) * | 2005-04-08 | 2006-10-19 | Matsushita Electric Industrial Co., Ltd. | キャッシュメモリ |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
TW201015579A (en) * | 2008-09-18 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system, and data readout method |
US20100191913A1 (en) * | 2009-01-26 | 2010-07-29 | Agere Systems Inc. | Reconfiguration of embedded memory having a multi-level cache |
US9841922B2 (en) * | 2016-02-03 | 2017-12-12 | SK Hynix Inc. | Memory system includes a memory controller |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01142844A (ja) | 1987-11-30 | 1989-06-05 | Toshiba Corp | 半導体集積回路 |
JP3171925B2 (ja) | 1992-04-30 | 2001-06-04 | 株式会社日立製作所 | データ処理装置 |
JP3164915B2 (ja) | 1992-09-21 | 2001-05-14 | 株式会社日立製作所 | データ処理装置及びそのデータ処理方法 |
US5410669A (en) | 1993-04-05 | 1995-04-25 | Motorola, Inc. | Data processor having a cache memory capable of being used as a linear ram bank |
JPH06348593A (ja) | 1993-06-03 | 1994-12-22 | Sumitomo Electric Ind Ltd | データ転送制御装置 |
US6678790B1 (en) * | 1997-06-09 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Microprocessor chip having a memory that is reconfigurable to function as on-chip main memory or an on-chip cache |
US6134641A (en) * | 1998-03-20 | 2000-10-17 | Vsli Technology, Inc. | Method of and system for allowing a computer system to access cacheable memory in a non-cacheable manner |
JP2000148584A (ja) | 1998-11-10 | 2000-05-30 | Matsushita Electric Ind Co Ltd | プリフェッチ方法および装置 |
JP2001256108A (ja) | 2000-03-10 | 2001-09-21 | Mitsubishi Electric Corp | メモリ内蔵マイクロプロセッサ |
JP2001282616A (ja) | 2000-04-03 | 2001-10-12 | Mitsubishi Electric Corp | メモリ管理方式 |
JP4034032B2 (ja) * | 2000-08-07 | 2008-01-16 | Necエレクトロニクス株式会社 | キャッシュ内蔵マイクロコンピュータ |
-
2002
- 2002-09-30 WO PCT/JP2002/010162 patent/WO2004031963A1/ja active Application Filing
- 2002-09-30 JP JP2004541170A patent/JP4024247B2/ja not_active Expired - Fee Related
- 2002-09-30 US US10/520,653 patent/US7356649B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO2004031963A1 (ja) | 2004-04-15 |
JPWO2004031963A1 (ja) | 2006-02-02 |
US20050257011A1 (en) | 2005-11-17 |
US7356649B2 (en) | 2008-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
US9575901B2 (en) | Programmable address-based write-through cache control | |
US6665774B2 (en) | Vector and scalar data cache for a vector multiprocessor | |
JP3934710B2 (ja) | マイクロプロセッサ | |
US6697916B2 (en) | Cache with block prefetch and DMA | |
US6754781B2 (en) | Cache with DMA and dirty bits | |
US20090164733A1 (en) | Apparatus and method for controlling the exclusivity mode of a level-two cache | |
US6968400B2 (en) | Local memory with indicator bits to support concurrent DMA and CPU access | |
US12038840B2 (en) | Multi-level cache security | |
US12001351B2 (en) | Multiple-requestor memory access pipeline and arbiter | |
US9965395B2 (en) | Memory attribute sharing between differing cache levels of multilevel cache | |
US12050914B2 (en) | Cache management operations using streaming engine | |
US6606684B1 (en) | Multi-tiered memory bank having different data buffer sizes with a programmable bank select | |
US6766431B1 (en) | Data processing system and method for a sector cache | |
JP4024247B2 (ja) | 半導体データプロセッサ | |
JPWO2006038258A1 (ja) | データプロセッサ | |
US7181575B2 (en) | Instruction cache using single-ported memories | |
JP2011154528A (ja) | データ処理装置 | |
US8560748B2 (en) | Information processing system including interrupt processing function | |
JP3735373B2 (ja) | マイクロコンピュータ | |
JP2002149488A (ja) | 集積回路装置およびキャッシュメモリの制御方法 | |
JP2002108702A (ja) | マイクロコンピュータ及びデータ処理装置 | |
JP4553622B2 (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070809 |
|
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: 20070918 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071002 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4024247 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101012 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111012 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111012 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: 20111012 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111012 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121012 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121012 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131012 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |