JP3735373B2 - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP3735373B2 JP3735373B2 JP53470696A JP53470696A JP3735373B2 JP 3735373 B2 JP3735373 B2 JP 3735373B2 JP 53470696 A JP53470696 A JP 53470696A JP 53470696 A JP53470696 A JP 53470696A JP 3735373 B2 JP3735373 B2 JP 3735373B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- access
- address
- memory
- bus
- 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 284
- 238000012545 processing Methods 0.000 claims description 73
- 239000004065 semiconductor Substances 0.000 claims description 11
- 239000000758 substrate Substances 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 description 59
- 238000010586 diagram Methods 0.000 description 46
- 238000006243 chemical reaction Methods 0.000 description 29
- 230000002093 peripheral effect Effects 0.000 description 14
- 238000000034 method Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000015556 catabolic process Effects 0.000 description 6
- 238000006731 degradation reaction Methods 0.000 description 6
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 229940002865 4-way Drugs 0.000 description 1
- 101100425949 Mus musculus Tnfrsf13c gene Proteins 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000001360 synchronised 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/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)
- Microcomputers (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明は、中央処理装置と共にメモリなどを内蔵したシングルチップ化されたマイクロコンピュータに係り、特に中央処理装置によるマイクロコンピュータ内外のメモリアクセス動作を高速化する技術に関し、例えば、中央処理装置がRISC(Reduced Instruction Set Computer)アーキテクチャを有するマイクロコンピュータに適用して有効な技術に関する。
背景技術
シングルチップマイクロコンピュータは、ROM(Read Only Memory)やRAM(Random Access Memory)がCPU(中央処理装置=Central Processing Unit)と共に単一半導体基板上に集積されているので、一般にその内蔵メモリをCPUがアクセスするのに要する時間は短く、命令やデータフェッチを高速化する上において有利である。特にRISCアーキテクチャを採るCPUを持つシングルチップマイクロコンピュータでは、パイプライン形式で命令を実行していくので、メモリのアクセススピードがそのままデータ処理性能に比例して効いてくるので、内蔵メモリをCPUの動作基準クロック信号の1クロックサイクルでアクセスできる形態を採るものがある。このとき外部メモリアクセスには通常複数クロックサイクルを要する。そのようなシングルチップマイクロコンピュータを製品化したものとしては、例えば、日経BP社発行の「日経エレクトロニクス 1992年11月23日号,no.568」第99頁乃至第112頁に記載のものがある。また、特開平2−187881号公報には、命令キャッシュメモリと該命令キャッシュメモリに命令がない場合にのみアクセスされる主記憶装置を中央処理装置と共に同一チップに搭載した半導体集積回路が示されている。
本発明者は中央処理装置と共にキャッシュメモリや内蔵メモリを搭載したシングルチップ化されたマイクロコンピュータによる内外のメモリアクセス動作を高速化することについて検討した。このとき、外部メモリアクセスによるデータ処理性能の低下と、マイクロコンピュータの動作周波数向上に対するデータ処理性能向上の飽和という2点に着目した。
前者の外部メモリアクセスという点については、内蔵メモリアクセスは1クロックサイクルで可能であるにもかかわらず、外部メモリアクセスは複数クロックサイクルを要するので、極力内部メモリアクセスを行うようにすることが得策であるが、プログラムサイズが大きく全てのプログラムコードを内蔵ROMに納めることができない場合は、外部メモリにプログラムを配置しなければならない。このとき、一旦外部メモリのプログラムを実行開始すると、命令フェッチなどに時間がかかり、データ処理性能は極めて低下してしまう。遅い外部メモリを利用する場合にもデータ処理性能を向上させるには、マイクロコンピュータにキャッシュメモリを内蔵させればよい。しかしながらシングルチップマイクロコンピュータにはチップ上に各種周辺機能やメモリ類を搭載する必要があり、あまり大きなサイズのキャッシュメモリを搭載することはできない。小さいサイズのキャッシュメモリではヒット率が低く、データ処理性能の向上はあまり期待できない。特に、マイクロコンピュータ内蔵メモリもキャッシュ対象とする場合、キャッシュメモリのアクセス速度と内蔵メモリのアクセス速度に大きな差がないときには、ヒット率が低ければ、キャッシュミスに係るデータをキャッシュメモリに追加する処理によって、結局キャッシュメモリ搭載の意義がなくなる場合のあることが明らかにされた。
動作周波数向上に対するデータ処理性能向上の飽和という点に関しては、例えばCPUの動作周波数が20MHzであるときCPUが内蔵EPROMまたは内蔵マスクROMを1クロックサイクルでアクセス可能であったとする。このとき、CPUの動作周波数がさらに向上してくると、大容量ROMやフラッシュメモリなどのように大きなワード線容量やビット線容量などによってアクセスタイムをあまり短縮できない内蔵ROMに対しては、そのアクセスに複数クロックサイクルを要するようになる。そうなると、特にメモリアクセス時間がそのまま性能に比例するRISCアーキテクチャーのマイクロコンピュータでは動作周波数を上げてもシステムのデータ処理性能が飽和してしまう。
本発明の目的は、内蔵メモリと共にキャッシュメモリを搭載するシングルチップのマイクロコンピュータにおける双方のメモリの動作をデータ処理性能向上のために最適に制御することにある。
また、本発明の別の目的は、キャッシュメモリを内蔵しない場合にも、マイクロコンピュータの内外に配置されたメモリのデータアクセスを向上させることができるマイクロコンピュータを提供することにある。
本発明のその他の目的は、外部にメモリを拡張したときや内蔵メモリが低速な場合にもデータ処理性能の低下を防ぐことができるマイクロコンピュータを提供することにある。
発明の開示
本発明において、1個の半導体基板に形成されたマイクロコンピュータ(MPU,MPU1)は、中央処理装置(1)と、該中央処理装置によってアクセスされる内蔵メモリ(9,10)と、前記中央処理装置に内部バス(6)で結合されたキャッシュメモリ(CACHE)と、前記中央処理装置をマイクロコンピュータの外部アドレス空間とインタフェースさせるインタフェース手段(11,12)と、前記外部アドレス空間を前記キャッシュメモリによるキャッシュの対象とし、前記内蔵メモリをキャッシュの非対象に制御する制御手段(2,72)とを含む。
このように、マイクロコンピュータ(MPU,MPU1)は、キャッシュメモリ(CACHE)と共に内蔵メモリ(9,10)を同一半導体基板に搭載し、当該内蔵メモリはキャッシュメモリにおけるキャッシュヒットの場合と同様に高速アクセス可能な内蔵メモリとされる。内蔵メモリ(9,10)をキャッシュ対象としないこと、換言すれば内蔵メモリ(9,10)をノンキャッシャブルエリアにマッピングする事により、どのような場合にも内蔵メモリアクセスをキャッシュヒットと同様に高速アクセスできることを保証する。すなわち、マイクロコンピュータ内蔵メモリもキャッシュの対象とした場合には、当該内蔵メモリのアクセスに際してキャッシュミスを生ずると、キャッシュミスに係るデータをキャッシュメモリに追加するための処理を行わなければならないが、上記手段においてはそのような事態を一切生じない。これにより、キャッシュメモリ(CACHE)自体の記憶容量が小さくキャッシュヒット率が低くても、高速にアクセス可能な内蔵メモリ(9,10)と組み合わせて利用されることで、中央処理装置によるマイクロコンピュータ(MPU,MPU1)の内外に対する総合的なヒット率を高めることができる。したがって、中央処理装置による動作プログラムの全体的な実行過程におけるメモリアクセスの高速化、ひいてはデータ処理性能を全体的に高めることができる。
マイクロコンピュータは一般的に割り込みなどのタスク切替えが頻繁に発生し、プログラムカウンタの値が大きく変化する場合が多いので、キャッシュメモリ(CACHE)のヒット率が低下する傾向が高い。このとき、内蔵メモリと共にキャッシュメモリを搭載している前記マイクロコンピュータ(MPU,MPU1)において、割り込みベクタと割り込み処理プログラムを内蔵メモリに入れるようにし、当該メモリをキャッシュの対象としないことにより、割り込みが頻出するプログラムでもキャッシュヒットの場合と同様に、割り込み処理プログラムへの遷移を高速化する事ができ、この点においてもデータ処理性能もしくはデータ処理速度を向上させることができる。
シングルチップ化されたマイクロコンピュータに搭載可能なキャッシュメモリ及びプログラム格納用ROMの容量には限りがあり、それをコスト及びデータ処理性能の両面から最適化するには、前記キャッシュメモリが2のべき乗数のウェイ数(way)を有し、ROMのデータ記憶容量をR[KB=Kilo-byte]とし、前述のキャッシュメモリのデータ記憶容量をC[B=byte]としたとき、前述のキャッシュメモリのウェイ数とキャッシュエントリのデータライン長に応じて定数a、bを、
8way以上/4バイトライン長:a=24.01、b=8194
8way以上/8バイトライン長:a=9.00、b=3328
8way以上/16バイトライン長:a=4.00、b=1280
8way以上/32バイトライン長:a=1.75、b=512
8way以上/64バイトライン長以上:a=0.75、b=256
4way/4バイトライン長:a=25.19、b=8804
4way/8バイトライン長:a=10.00、b=3584
4way/16バイトライン長:a=5.00、b=1536
4way/32バイトライン長:a=1.84、b=557
4way/64バイトライン長以上:a=0.79、b=276
2way/4バイトライン長:a=32.41、b=11112
2way/8バイトライン長:a=11.90、b=4328
2way/16バイトライン長:a=5.50、b=1792
2way/32バイトライン長:a=2.03、b=651
2way/64バイトライン長以上:a=0.87、b=316
1way/4バイトライン長:a=36.06、b=14361
1way/8バイトライン長:a=18.75、b=6591
1way/16バイトライン長:a=8.00、b=2816
1way/32バイトライン長:a=4.00、b=1280
1way/64バイトライン長以上:a=1.48、b=549
と定めたとき、C+aRがbを越えない関係を満足させるとよい。
キャッシュメモリのキャッシュヒット又はキャッシュミスの判定に要する一定期間、外部アドレス空間に対するアクセスサイクルの起動をウェイトさせることにより、キャッシュヒットになるとき、既に起動したバスサイクルを途中で停止させることによって外部メモリのデータが破壊される事態を防止することができる。しかしながら、そのようなウェイト期間は、キャッシュミスの場合における外部バスサイクル起動を遅らせることになる。一旦キャッシュミスが発生した場合、キャッシュミスの状態は複数回に亘って連続するという事情を考慮し、外部メモリアクセスを極力高速化するため、前記インタフェース手段は、外部アドレス空間に対するアクセスサイクルの起動を、キャッシュメモリのキャッシュヒット又はキャッシュミスの判定に要する一定期間ウェイトし、当該ウェイト動作を、キャッシュヒットの状態がキャッシュミスの状態に変化された次のアクセスサイクルから抑止し、抑止したウェイト動作を、キャッシュミスの状態がキャッシュヒットの状態に変化された次のアクセスサイクルから再開する。このとき、当該キャッシュミスの状態がキャッシュヒットの状態に変化されたとき、前記キャッシュメモリはヒットに係るデータの入出力動作を抑止し、前記インタフェース手段は外部アドレス空間に対するアクセスサイクルを起動する。
ダイレクトマップキャッシュメモリやウェイ数の少ないセットアソシアティブ形式のキャッシュメモリの場合には、一旦キャッシュミスするとしばらくその状態が連続する性質が顕著である。このとき、上記のように、キャッシャブルエリアに対するアクセスにおいては前回のキャッシャブルエリアに対するアクセスがキャッシュヒットである場合にだけ外部バスサイクルの起動にウェイトをかけ、キャッシャブルエリアに対するアクセスにおいて前回のキャッシャブルエリアに対するアクセスがキャッシュミスである場合には前記ウェイトを行わないようにする。これにより、キャッシュミス時のバスサイクルにアドレスヒット判定のための余分なウェイトサイクルが毎回入らないので、キャッシュミス時にけるメモリアクセスの性能低下を防ぐことができる。
上記マイクロコンピュータにおいてデータ処理性能を向上させる最適な形態は、前記中央処理装置はRISCアーキテクチャを有し、前記中央処理装置、内蔵メモリ、及びキャッシュメモリは内部バスを共有し、中央処理装置は当該内部バスをその動作基準クロック信号の1クロックサイクルを最高アクセス速度としてアクセスするものである。前記キャッシュメモリは、中央処理装置によるアクセスの開始から該中央処理装置の動作基準クロック信号の1クロックサイクルの期間を以てキャッシュヒットに係るデータを前記内部バスに出力するものであれば更によい。
別のマイクロコンピュータ(MPU2)は、前記キャッシュメモリに代えて、内蔵メモリ(202,203)よりもアクセス動作の速い高速RAM(201)を採用する。更に、中央処理装置(200)が特定(CTARの値)のアクセスを行なったことをトリガとし、中央処理装置からバス権を獲得して前記内蔵メモリ(202,203)又は前記外部アドレス空間の特定アドレス(208)から別の特定アドレスまでの内容を高速RAM(201)に転送し、転送後における中央処理装置のアクセスが前記転送元アドレスであるとき(CSAR≦アドレス≦CEAR)、当該アクセス対象を高速RAMに切換え制御する転送制御手段(205)を採用する。高速RAMへのデータ転送対象は、内蔵メモリ又は外部メモリの何れか一方に限定したり、或いは双方を対象とすることもできる。
このようにマイクロコンピュータ(MPU2)に内蔵された高速RAM(201)に事前にデータ若しくはプログラムを転送して利用可能にすることができる。例えば、アクセスタイムが遅い内蔵メモリのプログラムなどのうち、ある部分を予め高速RAM内に転送しておいて実行させるようにすることにより、その部分の実行を高速化できる。当然、内蔵メモリに収まりきれずにプログラムが外部メモリにはみ出しても、この外部メモリを内蔵メモリと同様に制御すれば性能低下を防ぐことができる。シングルチップ化されたマイクロコンピュータが対象にする主なアプリケーションでは、高速性が要求されるルーチンは割り込みサービスの部分など比較的そのアドレス範囲と実行タイミングが限定されており、あまり処理性能が必要でないメインルーチンなどのバックグランドルーチンを実行中に高速実行が必要な部分をあらかじめ高速RAMに転送しておくことができる。その結果、プログラム処理全体の性能が向上される。
更に別のマイクロコンピュータ(MPU3)は、前記キャッシュメモリに代えて、内蔵メモリ(402,403)よりもアクセス動作の速い高速RAM(401)を採用し、更に、中央処理装置(400)が内蔵メモリ(402,403)又は前記外部アドレス空間(408)をアクセスしたことをトリガとし、中央処理装置によるその内蔵メモリアクセス又は外部アドレス空間のアクセスに並行して当該アクセスデータを高速RAM(401)に転送する制御を所定のアドレス範囲(CSAR≦アドレス≦CEAR)に対して行い、所定のアドレス範囲の全てのアドレスに対する前記データ転送完了後における中央処理装置のアクセスが前記転送元データのアドレスであるとき当該アクセス対象を高速RAMに切換え制御する転送制御手段(405)を採用する。高速RAMへのデータ転送対象は、内蔵メモリ又は外部メモリの何れか一方に限定し、或いは双方を対象とすることもできる。
データ処理性能をあまり必要としないバックグランド処理が少ない場合には、高速化したい範囲の情報を予め転送するための時間を割きにくい。このため、上記のように、内蔵メモリの高速化したい範囲を中央処理装置がアクセスしたとき、それに並行して高速RAMへも転送するようにしておけば、その範囲を初めて実行する際は内蔵メモリのアクセスタイムに依存する性能しか出ないが、2回目以降の実行は高速RAMのアクセスとなるため高速化される。当然、内蔵メモリに収まりきれずにプログラムが外部メモリにはみ出しても、この外部メモリを内蔵メモリと同様に制御すれば性能低下を防ぐことができる。
その他のマイクロコンピュータ(MPU4)は、前記キャッシュメモリに代えて、内蔵メモリ(602,603)よりもアクセス動作の速い高速RAM(601)を採用し、更に、内蔵メモリ又は外部メモリ(608)から前記高速RAMへのデータ転送を行うデータ転送制御手段(612)と、前記高速RAMに転送されたデータの転送元アドレス(CSAR≦アドレス≦CEAR)に対する中央処理装置のアクセスを前記高速RAMへのアクセスに切換え制御するアクセス切換え制御手段(604)とを採用する。高速RAMへのデータ転送対象は、内蔵メモリ又は外部メモリの何れか一方に限定し、或いは双方を対象とすることもできる。
そのように、中央処理装置が内蔵メモリのある指定された範囲をアクセスしようとしたときに、無条件に高速RAMをアクセスするように構成すれば、ユーザがプログラムを初期設定する時などに予め、高速RAM内に内蔵メモリ内の高速化したいプログラムやデータを転送しておけば、データ処理性能を向上させることができる。Cコンパイラやアセンブラなどで完成されたプログラムのうち高速化すべきところがわかっていれば、上記構成にて簡単にデータ処理性能を向上できる。この手段によれば、キャッシュミスによるペナルティや、バックグランド処理中の高速化ルーチンの転送がなくなる。また、実行時間が、初回通過時とそれ以降も全く同じになり、タイミング設計がやり易い特長を持つ。当然、内蔵メモリに収まりきれずにプログラムが外部メモリにはみ出しても、この外部メモリを内蔵メモリと同様に制御すれば性能低下を防ぐことができる。
【図面の簡単な説明】
第1図は本発明の一実施例に係るシングルチップマイクロコンピュータの一実施例ブロック図である。
第2図は第1図に示されたマイクロコンピュータに含まれるバスコントローラと外部バスインタフェースの一例ブロック図である。
第3図は第1図に示されたマイクロコンピュータにおける内蔵ROM有効モードにおけるアドレスマッピング図である。
第4図は第1図に示されたマイクロコンピュータにおける内蔵ROM無効モードにおけるアドレスマッピング図である。
第5図はCPUが出力するアドレス信号の説明図である。
第6図はキャッシュメモリの一例ブロック図である。
第7図はノンキャッシャブルエリアに対するアクセスの一例としてCPUがRAM又はROMをリードアクセスするときのタイミングチャートである。
第8図はCPUによるキャッシャブルエリアに対するキャッシュヒット時のリードアクセスのタイミングチャートである。
第9図はCPUによるキャッシャブルエリアに対するキャッシュミス時のリードアクセスのタイミングチャートである。
第10図はキャッシュミス時に制御信号BECNOPがネゲートされる場合のタイミングチャートである。
第11図はキャッシュヒット時に制御信号BECNOPがネゲートされる場合のタイミングチャートである。
第12図は複数のバスアクセスサイクルにおけるキャッシュヒット時とキャッシュミス時の状態を示す説明図である。
第13図はキャッシュメモリを内蔵RAMと兼用する場合の構成説明図である。
第14図はキャッシュメモリを内蔵RAMと兼用する場合におけるアドレス信号とアドレスアレイのキャッシュタグアドレスとの説明図である。
第15図は本発明の別の実施例に係るシングルチップマイクロコンピュータのブロック図である。
第16図は第15図に示されるマイクロコンピュータにおけるバスコントローラと外部バスインタフェースの一例ブロック図である。
第17図は内蔵メモリにダイナミックなアクセス比率r、外部メモリアクセス時におけるキャッシュメモリのヒット率h及び総合ヒット率Hの関係を示す説明図である。
第18図は内蔵メモリにダイナミックなアクセス比率r、外部メモリアクセス時におけるキャッシュメモリのヒット率h及び総合ヒット率Hの関係を示す別の説明図である。
第19図は外部アクセスクロックサイクル数M=3のときにおける平均アクセスクロックサイクル数Saの説明図である。
第20図は外部アクセスクロックサイクル数M=3のときにおける平均アクセスクロックサイクル数Saの別の説明図である。
第21図は外部アクセスクロックサイクル数M=4のときにおける平均アクセスクロックサイクル数Saの説明図である。
第22図は外部アクセスクロックサイクル数M=4のときにおける平均アクセスクロックサイクル数Saの別の説明図である。
第23図はキャッシュの構成(way数、ライン長、容量)に対するミス率(1−h)を示す説明図である。
第24図は第23図に示される値から総合ヒット率H=r+h−rhが0.9になるrの値を算出して得られた説明図である。
第25図はPRG=512KBとしROM容量Rを計算して得られた説明図である。
第26図は第27図〜第30図に示される内蔵ROM容量とキャッシュメモリ容量との関係を式C+aR=bで近似したときのキャッシュメモリの構成に対応する定数a、bの説明図である。
第27図は第25図に示される結果に基づいてキャッシュ容量Cと内蔵ROM容量Rの関係をフルアソシアティブ(full)キャッシュメモリに関して得た説明図である。
第28図は第25図に示される結果に基づいてキャッシュ容量Cと内蔵ROM容量Rとの関係を4ウェイセットアソシアティブ(4way)キャッシュメモリに関して得た説明図である。
第29図は第25図に示される結果に基づいてキャッシュ容量Cと内蔵ROM容量Rとの関係を2ウェイセットアソシアティブ(2way)キャッシュメモリに関して得た説明図である。
第30図は第25図に示される結果に基づいてキャッシュ容量Cと内蔵ROM容量Rの関係をダイレクトマップ(direct)キャッシュメモリに関して得た説明図である。
第31図は高速RAMに事前にデータを転送して全体としてのメモリアクセスの高速化を図ったマイクロコンピュータの一実施例ブロック図である。
第32図は第31図に示されるマイクロコンピュータに含まれるRAM転送コントローラのブロック図である。
第33図はアドレス変換の説明図である。
第34図は高速RAM及びアドレス変換器のブロック図である。
第35図は高速RAMに同時にデータを転送してアクセスの高速化を図ったマイクロコンピュータの一実施例ブロック図である。
第36図は第35図に示されるマイクロコンピュータに含まれる高速RAMのブロック図である。
第37図はRAM転送コントローラのブロック図である。
第38図は高速RAMへの並列ライトタイミングの説明図である。
第39図はDMACなどによって低速メモリの情報をあらかじめ高速RAMに転送しておき当該低速メモリに対するアクセスアドレスを高速RAMのアドレスに置き換えてメモリアクセスの高速化を図ったマイクロコンピュータの一実施例ブロック図である。
第40図は第39図に示されるマイクロコンピュータに含まれるバスコントローラの一例ブロック図である。
第41図は高速RAM及びアドレス演算器のブロック図である。
発明を実施するための最良の形態
本発明の詳細な内容は、《1》〜《5》の項目に分けて順次説明されている。
《1.キャッシュメモリ内蔵シングルチップマイクロコンピュータ》
第1図には本発明の一実施例に係るシングルチップマイクロコンピュータの一実施例が示される。本実施例のシングルチップマイクロコンピュータ(単にマイクロコンピュータとも記す)MPUは、ROM(リード・オンリ・メモリ)9及びRAM(ランダム・アクセス・メモリ)10に加えてキャッシュメモリCACHEを一つの半導体基板に搭載し、ROM9及びRAM10はキャッシュメモリCACHEによるキャッシュの対象とはされず、CPU(中央処理装置)1が内蔵ROM9又はRAM10をアクセスする場合にはキャッシュメモリCACHEのアクセス動作を利用せずに直接内蔵ROM9又はRAM10がリード/ライトされる。
前記マイクロコンピュータMPUは、CPU1、キャッシュメモリCACHE、CPU1の動作プログラム又はデータが格納されるROM9、CPU1の作業領域若しくはデータの一時記憶領域とされるRAM10、乗算器(MULT)5、バスコントローラ7、周辺回路11、外部バスインタフェース12等を含み、単結晶シリコンのような1個の半導体基板に形成される。外部バスインタフェース12には外部バス14を介して外部メモリ13等が接続される。
本実施例のマイクロコンピュータMPUは、特に制限されないが、RISCアーキテクチャを有し、CPU1は、1命令あたりCPU1の動作基準クロック信号における1クロックサイクルで命令を実行し、バスアクセスの基本サイクル数を1クロックサイクルとするように、パイプライン動作によって命令フェッチ、命令デコード、命令実行、メモリアクセスなどのパイプラインステージを実行していく。CPU1が接続される内部バス(IBUS)6は、1クロックサイクルを最小動作周期とする高速内部バスであり、内部アドレスバスIAB、内部データバスIDB、内部制御バスICBから成る。当該内部バス6には前記キャッシュメモリCACHE、ROM9、RAM10、乗算命令実行用の乗算器(MULT)5、及びバスコントローラ7が接続される。バスコントローラ7は、内部バス6の制御及び周辺回路11のアクセス制御などを行う。
第2図にはバスコントローラ7と外部バスインタフェース12の一例ブロック図が示される。バスコントローラ7はバッファ71と制御論理回路72とに大別された回路ブロックを含む。外部バスインタフェース12はバッファ120とタイミング生成回路121とに大別された回路ブロックを有する。バッファ71は内部バス6を構成する内部データバスやアドレスバスなどに含まれる所定の信号を外部バスインタフェース12と周辺回路11に供給する。制御論理回路72は内部バス6から供給されるアドレス信号の上位側ビットに基づいてアクセス対象エリアの判定を行い、また内部バス6から供給されるバスコマンドなどを受け取ってリード/ライトやアクセスデータ幅等のアクセスの種別を判定する。それらの判定結果に従って内蔵ROM9の選択信号MSROM、RAM10の選択信号MSRAM、内蔵回路に対するリード/ライト信号MRW等を生成し、また、外部アクセスのためのチップ選択信号CS0〜CS3、リード信号RD、ライト信号WR、DRAM(ダイナミックRAM)アクセスのためのロウアドレスストローブ信号RAS、カラムアドレスストローブ信号CAS等をタイミング生成回路121から出力させるための制御信号などを出力する。外部バスアクセスのためのデータ入出力やアドレス信号の出力タイミングは、タイミング生成回路121が制御論理回路72からの制御信号に基づいてバッファ120を制御する事によって行う。
また、制御論理回路72にはキャッシュメモリCACHEにおけるキャッシュヒット/ミスがヒット信号109にて通知され、更に、制御信号BECNOPにて外部バスインタフェース12を介する外部バスアクセスの開始タイミング若しくは外部バスアクセス開始までのウェイトが通知される。そして制御論理回路72は、バスアクセス可能な状態を制御信号BUSRDYにてCPU1に通知する。制御信号BUSRDYはCPU1によるバスアクセスの区切りを規定することになる。
第3図には本実施例に係るマイクロコンピュータMPUにおける内蔵ROM有効モードにおけるアドレスマッピングの一例が示され、第4図には内蔵ROM無効モードにおけるアドレスマッピングの一例が示される。
本実施例のマイクロコンピュータMPUは、内蔵ROM9を有効とする内蔵ROM有効モードとそれを無効とする内蔵ROM無効モードを含み、それらの動作モードは図示しないモード端子の設定状態によって決定される。本実施例においてキャッシュメモリCACHEによるキャッシュ対象空間は、第3図及び第4図におけるCS0〜CS3空間及びDRAM空間とされ、ROM9及びRAM10はキャッシュの対象とはされない。CPU1が管理するアドレス信号は第5図に示されるように32ビット(A31〜A0)とされ、A31〜A24は前記アドレスマップに示される空間の選択に利用され、A23,A22はCS空間におけるチップ選択に利用される。外部バスインタフェース12を介して出力されるアドレス信号はA21〜A0の22ビットとされる。第2図に示される前記制御論理回路72は動作モードに応じて空間選択及びCS空間選択のためのアドレスデコード論理721を供え、当該アドレスデコード論理721に従って前記選択信号MSROM,MSRAMを生成すると共に、CS0〜CS3、RAS,CASをタイミング制御回路121から出力させるための制御信号を生成する。外部バスアクセスに際してのアクセスサイクル数は夫々のCS0〜CS3空間,DRAM空間毎にコントロールレジスタ720に設定されるウェイトステート数に従って制御論理回路72がタイミング制御回路121に通知する。尚、空間選択やCS空間選択のために実際にはA22よりも下位側のアドレスビットもデコード対象とされている。
第6図にはキャッシュメモリCACHEの一例ブロック図が示される。キャッシュメモリCACHEはアドレスアレイ(AA)3、データアレイ(DA)4、コンパレータ20、及びキャッシュコントローラ(CCONT)2などを備える。本実施例において、キャッシュメモリCACHEによるキャッシュ対象は命令のみ、データのみ、命令とデータの双方の、何れであってもよい。キャッシュメモリCACHEは、例えば一つのエントリを構成する1キャッシュラインの情報が外部記憶装置のどの位置(アドレス)に対応しているかを示す実効アドレス(仮想アドレスまたは物理アドレス)を記憶するキャッシュタグアドレス104、その実効アドレスを先頭とした連続する複数ワードの情報を記憶するデータライン106、そしてそのキャッシュラインに記憶している情報が有効であるかを示す有効ビット(V)105を備える。アドレスアレイ3はキャッシュタグアドレス104と有効ビット105を有し、データアレイ4はデータライン106を有する。尚、必要に応じてキャッシュメモリの内容が更新され外部大容量記憶装置の内容と異なることを示すダーティビットなどを設ける場合もある。これら以外にメモリ空間の種類を表わすフィールドが追加される場合もある。
中央処理装置CPU1から内部アドレスバスIABに供給されるアドレス信号100はタグアドレス101、エントリアドレス102、及びライン内バイトアドレス103とみなされる。ライン内バイトアドレス103はデータライン4に含まれるバイトデータを選択するための情報とされる。エントリアドレス102はデコーダ110にてデコードされ、アドレスアレイ3及びデータアレイ4からキャッシュラインを選択(インデックス)するために利用される。例えば128のキャッシュラインが存在する場合にはエントリアドレスは7ビットとされる。インデックスされたキャッシュラインのキャッシュタグアドレス104はコンパレータ20にてタグアドレス101と比較される。その比較結果と前記有効ビット105はキャッシュコントローラ2に供給される。
キャッシュコントローラ2はコンパレータ20による比較結果や有効ビット105を参照し、例えば、インデックスされたキャッシュラインが有効であって、当該キャッシュラインのキャッシュタグアドレス104がタグアドレス101に一致する場合、キャッシュヒット信号109にてバスコントローラ7にキャッシュヒットを通知する。これと共に、インデックスされたキャッシュラインのデータライン106からライン内バイトアドレス103にて所要のデータが選択されて内部データバスIDBへ読み出され、或いはキャッシュラインのデータライン106に対してライン内バイトアドレス103にて選択される位置に内部バスIDBのデータが書き込まれる。40はインデックスされたデータラインからライン内バイトアドレス103にてデータを選択して内部データバスIDBに出力するデータ出力回路、41はインデックスされたキャッシュラインの所定位置をライン内バイトアドレス103にて選択して内部データバスIDBからの書込みデータを供給するデータ入力回路である。
一方、インデックスされたキャッシュラインが無効である場合、又は、当該キャッシュラインのキャッシュタグ104がタグアドレス101に一致しない場合には、キャッシュヒット信号109にてバスコントローラ7にキャッシュミスが通知され、これによってバスコントローラ7は、そのときのアクセスアドレスに応ずるデータを含む1データライン分の情報を外部メモリ13から読込む制御を行い、キャッシュコントローラ2はそれによって読込まれたデータによってデータライン106の内容を置き換える(ラインフィル)。置き換え対象とされるキャッシュラインは公知のLRU(Least Recent Use)等の論理に従って決定することができる。データラインの置き換えに際しては、それに対応されるキャッシュアドレスタグ104が当該キャッシュラインに書き込まれ、且つ有効ビット105がセットされる。30はキャッシュタグアドレス104の入力ゲート、31はキャッシュタグアドレス104の出力ゲート、1050は有効ビット105の入力ゲート、1051は有効ビット105の出力ゲートである。前記データ出力回路40、データ入力回路41、出力ゲート31,1051、及び入力ゲート30,1050の動作は、インデックス動作、ラインフィル動作、CPU1によるライトアクセスかによってキャッシュコントローラ2が制御する。
第6図のアドレスアレイ3及びデータアレイ4は、ウェイ数が1のダイレクトマップ方式、ウェイ数が2の(2−way)セットアソシャアティブ又は4個(4−way)のセットアソシャアティブ形式などとされる場合がある。ウェイ数を増やせば、エントリアドレスでインデックスされるキャッシュラインの数が増えるのでキャッシュヒット率が増す。ウェイ数を増やす場合にはアドレスアレイ3とデータアレイ4もその数分だけ用意し、夫々のウェイにエントリアドレス102が共通に供給され、各ウェイでインデックスされたキャッシュタグアドレスは夫々のウェイ毎に設けられたコンパレータ20にてタグアドレスと比較される。何れか一つのコンパレータ20による比較結果が一致されてキャッシュヒットになれば、当該一致に係るウェイのデータアレイがリード/ライトの対象とされる。ラインフィルも何れか一つのウェイを対象として行われる。
CPU1によるアクセスアドレスエリアがキャッシュメモリCACHEによるキャッシュ対象エリアであるか否かの判定は、特に制限されないが、キャッシュコントローラ2のキャッシャブル制御回路21が行う。本実施例に従えば、キャッシュ対象空間はCS0〜CS3空間とDRAM空間とされ、それ以外の空間はキャッシュ非対象空間(ノンキャッシャブルエリア)とされる。これに応じ、前記キャッシャブル制御回路21は、内蔵ROM有効モードにおいてキャッシュ対象空間判定のために、H’00200000〜H’01FFFFFFのアクセスを判定する回路と、内蔵ROM無効モードにおいてキャッシュ対象空間判定のために、H’00000000〜H’01FFFFFFのアクセスを判定する回路とを有し、CPU1によるアクセスアドレスがノンキャッシャブルエリアか否かを判定する。尚、H’00200000〜H’01FFFFFFのアクセスを判定する回路は、特に制限されないが、アクセスアドレスの最上位ビットから11ビットが全ビット0でないことを検出する回路の出力とアクセスアドレスの最上位ビットから7ビットが全ビット0であることを検出する回路の出力との論理和信号にてそれを判定できる。同様に、H’00000000〜H’01FFFFFFのアクセスを判定する回路は、アクセスアドレスの最上位ビットから7ビットが全ビット0であることを検出する回路の出力にてそれを判定することができる。
制御信号発生回路23には、キャッシャブル制御回路21から判定結果信号が供給される。制御信号発生回路23には、キャッシャブル制御回路21から、CPU1によるアクセスアドレスエリアがキャッシュメモリCACHEによるキャッシュ対象エリアでないことを示す判定結果信号が供給されると、制御信号発生回路23はコンパレータ20、入力ゲート30,1050、出力ゲート31,1051、データ出力回路40、データ入力回路41、デコーダ110の各々に、その動作を止めるための動作停止信号を供給する。このとき、キャッシュメモリCACHEは非動作状態となる。また、制御回路23は、キャッシャブル制御回路21からCPU1によるアクセスアドレスエリアがキャッシュメモリCACHEによるキャッシュ対象エリアであることを示す判定結果信号が供給されると、制御信号発生回路23は、コンパレータ20、入力ゲート30,1050、出力ゲート31,1051、データ出力回路40、データ入力回路41、デコーダ110の各々に、その動作を開始させるための動作開始信号を供給する。このときキャッシュメモリCACHEは動作状態となる。
前記ノンキャッシャブルエリアに対するアクセスに対して、キャッシュコントローラ2は、少なくとも、前記内部バス6に対する読出し及び書込みのキャッシュ動作を行わず、キャッシュヒット信号109をキャッシュミスの状態に維持する。キャッシャブルエリアに対するアクセスに対しては、前記内部バス6に対する読出し及び書込みのキャッシュ動作を行い、ヒット信号109はキャッシュヒット/ミスの判定結果に応じて変化される。そして、キャッシャブルエリアに対するアクセスにおいてキャッシュコントローラ2は、CPU1のバスアクセスから1クロックサイクルの期間前記制御信号BECNOPをイネーブルレベルに変化させてバスコントローラ7に与えるか否かの制御を行う。
上記キャッシュメモリCACHEにおいてキャッシャブルエリアのアクセスに対応し、キャッシュラインをインデックスしてキャッシュタグアドレス104とアドレスタグ101を比較してキャッシュミス又はヒットを判定するまでには、1クロックサイクル費やされる。この間にバスコントローラ7が外部アクセスを開始してしまうと、それによってアクセスされる外部メモリ13のデータが破壊される虞がある。バスコントローラ7は、CPU1のバスアクセスから1クロックサイクルの期間、前記制御信号BECNOPがイネーブルレベルにされることにより、外部バスアクセス動作の開始を待つ。その間にキャッシュヒット信号109にてキャッシュヒットがバスコントローラ7に通知されれば、バスコントローラ7は外部バスアクセスを行わず、次のバスアクセス動作が可能な状態をバスレディー信号BUSRDYをアサートしてCPU1に通知する。
第7図にはノンキャッシャブルエリアに対するアクセスの一例として、CPU1がRAM10又はROM9をリードアクセスするときのタイミングチャートが示される。φ1,φ2はCPU1の動作基準クロック信号であり、ノンオーバラップ2相のクロック信号である。バスコマンドBCMDは、バスアクセス幅やリード/ライトを指示する情報を含み、CPU1によって内部コントロールバスICBに出力される。出力タイミングは内部アドレスバスIABへのアドレス出力に同期される。制御信号BUSRDYにて通知されるバスの区切りに同期してCPU1はアドレス信号を内部アドレスバスIABに供給する。キャッシュコントローラ2がそのアドレス信号にてRAM10又はROM9に対するアクセスであること、即ちノンキャッシャブルエリアに対するアクセスであることを、前記キャッシャブル制御回路21で判定すると、アドレスアレイ3及びデータアレイ4の動作が抑止されてキャッシュヒット信号109がキャッシュミスの状態に維持され、且つ制御信号BECNOPがネゲート状態にされる。これによってバスコントローラ7はそのときのアクセスアドレス信号をデコードして、ROM選択信号MSROM又はRAM選択信号MSRAMをアサートし、これによってクロック信号φ1の1クロックサイクルの期間に内部データバスIDBにROM又はRAMからのリードデータが与えられる。バスコントローラ7はクロック信号φ1の次の立ち上がりエッジに同期してバスレディー信号BUSRDYをアサートし、CPU1に次のバスアクセスが可能なことを通知する。
第8図にはCPU1によるキャッシャブルエリアに対するキャッシュヒット時のリードアクセスのタイミングチャートが示される。キャッシュブルエリアに対するアクセスであるから、キャッシュコントローラ2のキャッシャブル制御回路21はCPU1によるバスアクセスから1クロックサイクルの期間に制御信号BECNOPをアサートして、バスコントローラ7による外部アクセスの開始をその期間抑止させる。その間にキャッシュメモリCACHEではインデックス動作にてデータアレイ4とアドレスアレイ3がリードされ、そのリードデータに対してキャッシュミス/ヒットの判定が行われる。この例の場合にはキャッシュヒットが判定され、ヒットに係るリードデータが内部データバスIDBに供給され、且つ、キャッシュヒット信号109にてキャッシュヒットがバスコントローラ7に通知されることにより、バスコントローラ7はそのときのアクセスに従った外部バスアクセスを行わずにバスレディー信号BUSRDYをアサートして、次のバスアクセスが可能な状態をCPU1に通知する。
第9図にはCPU1によるキャッシャブルエリアに対するキャッシュミス時のリードアクセスのタイミングチャートが示される。キャッシュブルエリアに対するアクセスであるから、キャッシュコントローラ2のキャッシャブル制御回路21はCPU1によるバスアクセスから1クロックサイクルの期間に制御信号BECNOPをアサートしてバスコントローラ7による外部アクセスの開始をその期間抑止させる。その間にキャッシュメモリCACHEではインデックス動作にてデータアレイ4とアドレスアレイ3がリードされ、そのリードデータに対してキャッシュミス/ヒットの判定が行われる。この例の場合にはキャッシュミスが判定され、キャッシュヒット信号109にてキャッシュミスがバスコントローラ7に通知されると、バスコントローラ7はそのときのアクセスアドレスに従った外部バスアクセスを起動する。図の例はCS空間がアクセスされる場合を示している。図に示される/CSnは第2図のCS0〜CS3の何れかを意味する。/RDは第2図のRDに対応される。外部バスアクセスはT2ステートから開始され、T3ステートで外部メモリ13からのリードデータが内部バスIDBに読込まれる。キャッシュメモリCACHEにおいては、T2ステートで当該キャッシュミスに係るタグアドレスがキャッシュタグアドレスとして該当するキャッシュラインに書き込まれ、また、T3ステートにおいてCPU1がリードデータを取り込むのに並行して当該リードデータが該当するキャッシュラインに書き込まれる。同図から明らかなように、外部メモリ13を実際にアクセスする期間はT2,T3の2クロックサイクルであるが、制御信号BECNOPにて外部バスアクセスの起動が1クロックサイクルだけウェイトされているので、CPU1のリードアクセスには全部でT1〜T3の3クロックサイクルを要する。
第9図から明らかなように、内部アドレスバスIABの値が確定してからヒット信号109の状態が確定するまでには1クロックサイクルかかるので、その間にチップ選択信号CSやリード信号RDをアサートし外部バスサイクルを起動してからキャッシュヒットの状態が確定すると、一旦起動した外部バスサイクルの途中でチップ選択信号CSやリード信号RDをネゲートしなければならず、これによって外部メモリ13の内容が破壊する虞がある。そのため、キャッシャブルエリアに対するアクセスでは、制御信号BECNOPを外部バスサイクルの起動前にアサートして、チップ選択信号CSやリード信号RDのアサートタイミングを遅らせるように外部バスサイクルの起動にウェイトをかける。この時、キャッシュミスしていることが判定されれば、外部バスサイクルを起動して外部メモリ13をアクセスし、キャッシュミスに係るキャッシュタグアドレスの書換えとデータアレイ4のラインフィルが行われる。仮に外部メモリ13がノンキャッシャブルエリアとすると、制御信号BECNOPはアサートされず、CPU1は2クロックサイクルで所望のデータを外部メモリ13から読込むことができる。すなわち、ノンキャッシャブルエリアとして外部メモリ13をアクセスした方が、アクセスに要する時間は短くて済むことになる。
そこで、本実施例においては、キャッシュメモリの性質上、一旦キャッシュミスを生ずると、キャッシュミスの状態は比較的長く続くことに着目し、キャッシャブルエリアに対するアクセスにおいては前回のキャッシャブルエリアに対するアクセスがキャッシュヒットである場合にだけ前記制御信号BECNOPによるウェイトを行い、キャッシャブルエリアに対するアクセスにおいて前回のキャッシャブルエリアに対するアクセスがキャッシュミスである場合には前記制御信号BECNOPによるウェイトを行わないようにする。キャッシャブルエリアに対するキャッシュミスに続くキャッシュヒット時は、制御信号BECNOPによるウェイトが行われていないので、キャッシュヒットの状態はバスローラ7には与えず、キャッシュミスと同様の動作とする。
例えば上述の制御を行うために、ヒット信号生成回路22は、前回のキャッシュヒット/ミスの判定結果を保持するフラグFLGを有する。ヒット信号生成回路22はフラグFLGから把握される前回のキャッシュミス/ヒットの判定結果と今回のキャッシュミス/ヒットの判定結果とを比較し、前回キャッシュミスで今回キャッシュヒットである場合にはバスコントローラ7に供給されるキャッシュヒット信号109をキャッシュミスを指示するレベルに維持し、また、インデックスされたデータの内部バスIDBへの出力を抑制させる。また、キャッシャブル制御回路21はフラグFLGから前回のキャッシュミス/ヒットの判定結果を把握し、それがキャッシュミスを示している場合には、キャッシャブルエリアに対するアクセスを検出しても制御信号BECNOPをネゲート状態に維持する。これにより、外部メモリをキャッシュ対象とするとき、キャッシュヒットの次に生ずるキャッシュミスにおいては(あるバスサイクルにおいてそれまでヒットし続け次のバスサイクルでミスヒットする時)、そのミスヒットした際に生じるバスサイクルは、外部メモリ13をキャッシュ対象としない場合すなわちキャッシュ無効時よりも、ヒット/ミス判定のためのアドレス比較動作等によってアクセスサイクル数が延びるので(BECNOPによるウェイト)、その最初のミスヒットサイクルだけは延びたサイクルにしてキャッシュフィルにしても、それ以降のバスサイクルではキャッシュ無効時と同じサイクル数のバスサイクルで動作してキャッシュフィル動作を行うことができる。キャッシュミスが連続した後に、キャッシュヒットが生じる場合は、最初のヒットサイクルではキャッシュ無効時のバスサイクルと同様に動作されるが、それに続くキャッシュヒットに係るバスサイクルでは、キャッシュヒット時の高速なメモリアクセスが行われる。
第10図にはキャッシュミス時に制御信号BECNOPがネゲートされる場合(キャッシュミスが連続している状態)のタイミングチャートが示される。第9図と比較すれば明らかなように、制御信号BECNOPがネゲートされているため、外部バスアクセスの起動が1クロックサイクル分だけ早くされる。第11図にはキャッシュヒット時に制御信号BECNOPがネゲートされる場合(キャッシュミスに続いてキャッシュヒットとされる場合)のタイミングチャートが示される。この場合には実際にはキャッシュヒットであるが既にバスサイクルが起動されているため、キャッシュヒット信号109はネゲート状態にされ、且つデータアレイ4からの読み出しデータは内部データバスIDBへの供給が抑止される。そして実際にはキャッシュヒットであるからラインフィルも行われない。CPU1がデータを取り込むまでには、第8図に比べて1クロックサイクルだけアクセス動作が長くされる。第12図には複数のバスアクセスサイクルにおけるキャッシュヒット時とキャッシュミス時の状態が示される。第12図におけるAは第8図の状態、Bは第9図の状態、Cは第10図の状態、Dは第11図の状態に対応される。第12図から明らかなように、キャッシュヒットからキャッシュミスに切り替わったときは第2回目のキャッシュミスから外部バスアクセスのクロックサイクル数が1クロックサイクル分短くされ、キャッシュミスからキャッシュヒットに切り替わったときは切り替わり目の第1回目の外部バスアクセスのクロックサイクル数だけが1クロックサイクル分長くされる。したがって、キャッシャブルエリアに対するキャッシュミスのアクセスが3回以上続けば、全体としてのバスアクセスのクロックサイクル数はキャッシュヒット信号109と制御信号BECNOPを本実施例のように制御する方が短くされる。
第13図にはキャッシュメモリを内蔵RAMと兼用する場合の構成例が示される。例えば第3図及び第4図で説明したように内蔵RAM10に4KBのアドレスエリアが割り当てられるとき、当該内蔵RAM10は1モジュールあたり1KBの容量でデータバス幅32ビットとされ、全部で4モジュールにて4KBのRAMが構成されているものとする。このようなRAM10を内蔵するマイクロコンピュータMPUにおいてキャッシュメモリCACHEがデータアレイに1KBの記憶容量を有する場合、そのキャッシュメモリCACHEを、内蔵RAMを流用して構成することができる。その内、1モジュール1KBのRAMをキャッシュメモリCACHEのデータアレイ4とすると、データライン長を4バイトとして256ラインを格納できる。また別の1モジュール1KBのRAMをキャッシュのアドレスアレイ3に使い、256エントリ分のキャッシュタグアドレス104を格納する。このとき32ビットのアドレス信号は、第14図の(A)に示されるようにA1,A0はライン内バイトアドレス、A9〜A2はエントリアドレス、A24〜A10はタグアドレスとされる。これに応じてアドレスアレイ3のキャッシュタグアドレス104は第14図の(B)に示されるようにD24〜D10に割り当てることができる。アドレスアレイ3には空きビットが存在するので、その領域を活用するために、この例では前記有効ビット(V)105をアドレスアレイの最下位ビットD0に割り当ててある。但しその場合、キャッシュエントリを無効化するにはキャッシュライン毎に有効ビット105をリセット状態にしなければならず、全てのキャッシュラインを無効化してキャッシュメモリCACHEを初期化するには256回のアクセスを要する。キャッシュラインの無効化を効率的に行えるようにするには、有効ビット105をRAM以外のキャッシュコントローラ2の様な論理回路に格納することができる。例えば32バイト(32×8ビット)のレジスタをキャッシュコントローラ2に用意し、256本のキャッシュラインとの対応を採って当該レジスタに有効ビットを格納する。
第13図において、アドレスアレイ3に対するインデックスにはアドレス信号の所定8ビット(A9〜A2)が利用されるが、アドレスアレイ3を普通のRAMとして利用するときは、A9〜A0の10ビットがアドレシングに利用される。ラッチ23はタグアドレスを保持し、保持されたアドレスタグは、キャッシュヒット/ミス判定のためにコンパレータ20の一方の入力に供給され、また、ラインフィルに際してアドレスアレイ3に供給される。コンパレータ20の他方の入力にはアドレスアレイ3にてインデックスされたラインのキャッシュアドレスタグが供給される。アライナ26は、内部データバスIDBとデータアレイ4のデータ入出力端子との対応を決める回路であり、キャッシュコントローラ2にて制御される。入力回路24と出力回路25はアドレスアレイのデータ入出力端子とデータバスを選択的に接続する回路であり、アドレスアレイ3を普通のRAMとして利用する場合のデータ入出力経路を構成する。第13図において、アドレスアレイ3とデータアレイ4を普通のRAMとして(RAM10の一部として)利用するか否かは、キャッシュメモリCACHEの有効/無効に連動させることができる。そのような有効/無効の制御はマイクロコンピュータの動作モードによって決定することができる。
第15図及び第16図に示されるマイクロコンピュータMPU1はバスコントローラの配置の点で第1図及び第2図の実施例と相違される。第15図及び第16図においてバスコントローラ7及び周辺回路11は内部バス6を共有している。その他の点は第1図及び第2図の実施例と同じであるので詳細な説明は省略する。
次にキャッシュメモリと共に高速アクセスされる内蔵メモリを搭載したマイクロコンピュータにおける総合的なヒット率について説明する。ダイナミックな内蔵メモリアクセス比率(全メモリアクセス中の内蔵メモリアクセスの割合)をr、外部メモリアクセス時のキャッシュメモリのヒット率をhとするとき、全メモリアクセスに対する内蔵メモリアクセス及びキャッシュヒットとされる外部メモリアクセスの割合である総合的なヒット率、すなわち総合ヒット率Hを考えた場合、内蔵メモリアクセスとキャッシュヒットにされる外部メモリアクセスとは同時には起こらないので、当該総合ヒット率Hは、H=r+h−rh)となる。
また、外部メモリをアクセスするときのキャッシュヒットとキャッシュミスを考慮したときの平均アクセスクロックサイクル数(外部平均アクセスクロックサイクル数)Soは、So=h×1+(1−h)Mとされる。Mは外部メモリに対するアクセスクロックサイクル数であり、本実施例においてキャッシュメモリCACHEに対するアクセスクロックサイクル数は1とされる。そして、マイクロコンピュータMPU(MPU1)の内部メモリ(9,10)及び外部メモリ(13)全体に対するアクセスクロックサイクル数の平均(平均アクセスクロックサイクル数)Saは、
Sa=r×1+(1−r)×So
=r×1+(1−r)×{h×1+(1−h)M}
=(r+h−rh)×1+{1−(r+h−rh)}M
=H×1+(1−H)M
とされる。
第17図及び第18図には前記r、h、Hの関係が示される。第17図は第18図の内容に基づいて描かれている。第17図からも明らかなように、H=r+h−rhで表される総合ヒット率Hを考えれば、rやhの単独のヒット率よりも総合ヒット率Hの方が高くなっている。これは、キャッシュメモリCACHE自体の容量が小さくキャッシュヒット率が低くても、高速にアクセス可能な内蔵メモリ(9,10)と組み合わせることで、総合的なヒット率を高めることができるということを意味するものである。
第19図及び第20図には外部アクセスクロックサイクル数M=3のときにおける平均アクセスクロックサイクル数Sa(パラメータはh)を示し、第21図及び第22図には外部アクセスクロックサイクル数M=4のときにおける平均アクセスクロックサイクル数Sa(パラメータはh)を示する。第19図は第20図の内容に基づいて描かれ、第21図は第22図の内容に基づいて描かれている。
上記実施例によれば以下の作用効果を得る。
〔1〕本実施例のマイクロコンピュータMPU(MPU1)は、キャッシュメモリCACHEと共にROM9,RAM10を同一半導体基板に搭載し、当該RAM10,ROM9はキャッシュメモリCACHEにおけるキャッシュヒットの場合と同じ1クロックサイクルでアクセスされる高速アクセス可能な内蔵メモリとされる。さらにどのような場合にも内蔵メモリアクセスをキャッシュヒットと同様の1クロックサイクルで実現できることは、内蔵メモリ9,10をキャッシュ対象としないこと、換言すれば内蔵メモリ9,10をノンキャッシャブルエリアにマッピングする事によって保証している。これにより、キャッシュメモリCACHE自体の記憶容量が小さくキャッシュヒット率が低くても、高速にアクセス可能な内蔵メモリ9,10と組み合わせて利用されることで、CPU1によるマイクロコンピュータMPU(MPU1)の内外に対する総合的なヒット率を高めることができる。したがって、CPU1による動作プログラムの全体的な実行過程におけるメモリアクスの高速化、ひいてはデータ処理性能を全体的に高めることができる。
〔2〕マイクロコンピュータMPU(MPU1)では一般的に割り込みなどのタスク切替えが頻繁に発生し、プログラムカウンタの値が大きく変化する場合が多いので、キャッシュメモリCACHEのヒット率が低下する傾向が高い。このとき、ROM/RAMのような内蔵メモリと共にキャッシュメモリCACHEを搭載しているマイクロコンピュータMPU(MPU1)において、割り込みベクタと割り込みサービスルーチン(割り込み処理プログラム)を内蔵ROM/RAMに入れるようにし、当該ROM/RAMをキャッシュの対象としないことにより、割り込みが頻出するプログラムでもキャッシュヒットの場合と同様に、割り込み処理プログラムへの遷移を高速化する事ができ、この点においてもデータ処理性能もしくはデータ処理速度を向上させることができる。
〔3〕ダイレクトマップキャッシュメモリやウェイ数の少ないセットアソシアティブ形式のキャッシュメモリの場合には、一旦キャッシュミスするとしばらくその状態が連続する性質が顕著である。このとき、キャッシャブルエリアに対するアクセスにおいては前回のキャッシャブルエリアに対するアクセスがキャッシュヒットである場合にだけ制御信号BECNOPにて外部バスサイクルの起動にウェイトをかけ、キャッシャブルエリアに対するアクセスにおいて前回のキャッシャブルエリアに対するアクセスがキャッシュミスである場合には前記制御信号BECNOPによるウェイトを行わないようにする。これにより、キャッシュミス時のバスサイクルにアドレスヒット判定のための余分なウェイトサイクルが毎回入らないので、キャッシュミス時にけるメモリアクセスの性能低下を防ぐことができる。そのような制御が行われる場合には、キャッシャブルエリアに対するキャッシュミスに続くキャッシュヒット時は、制御信号BECNOPによるウェイトが行われていないので、キャッシュヒットの状態はバスコントローラ7には与えず、キャッシュミスと同様の動作が行われることになるが、そのような動作はキャッシュミスからヒットへの切り替わり時の1回のアクセスだけとされるから、キャッシュミスの状態が複数回のアクセスに亘って続くことが一般的であることを考慮すれば、システム全体としてのメモリアクセスを確実に高速化できる。
〔4〕キャッシュメモリを内蔵RAMと兼用することにより、コスト面からも有利である。さらにバリッドビット105をアドレスアレイ3から物理的に切り放してキャッシュコントローラ2などのレジスタに格納することにより、バリッドビット105のクリアを少ないアクセス回数でソフトウェア的に能率的に行うことも容易になる。この点においても、キャッシュメモリCACHEのハードウェア構成が減り、マイクロコンピュータMPU(MPU1)のコスト低減に寄与する。
《2.内蔵ROM記憶容量とキャッシュメモリ記憶容量との適正化》
次に上記実施例のようなROMとキャッシュメモリを内蔵するマイクロコンピュータにおける当該ROMの記憶容量とキャッシュメモリの記憶容量との最適化について説明する。
第23図はキャッシュの構成(way数、ライン長、容量)に対するミス率(1−h)を示している。本値は『Alan.J.Smith,「Line(block) Size Choice for CPU Caches」,IEEE Trans,Comput.,volC−36,no.9,pp1063−1075,Sept.,1987』の命令キャッシュミス率(Fig2)の値を元にしている。第23図の(A)〜(D)におけるCACHE SIZEと記された縦の欄はキャッシュメモリCACHEのデータアレイの記憶容量(バイト)を示し、Lineと記された横の欄はキャッシュメモリCACHEにおけるデータラインのバイト数を意味する。そして前記縦の欄の数値と横の欄の数値との交点位置に記された数値は、当該キャッシュサイズとライン長に対応されるミス率(1−h)とされる。第23図の(A)〜(D)は、キャッシュメモリCACHEの構成を、フルアソシアティブ(full)、4ウェイセットアソシアティブ(4way)、2ウェイセットアソシアティブ(2way)、1ウェイセットアソシアティブ即ちダイレクトマップ(direct)とした場合に対応される。
第24図は、第23図の値から総合ヒット率H=r+h−rhが0.9になるrの値を算出したものを示す。記述の仕方は第23図と同様である。第24図においてr≦0のところは、内蔵ROMがなくてもヒット率が0.9を超えるキャッシュ構成を意味している。
ここで仮定として、全プログラム容量がPRG[KB]ならば、内蔵ROM容量をR=r×PRGとする。実際は頻繁に実行されるルーチンは内蔵ROMに置くので、一般にR<r×PRGとなるが、ここではワースト条件を考え、R=r×PRGとする。さらに一般的な仮定として、PRG=512KBとし、ROM容量Rを計算すると第25図の結果を得る。第25図の記述の仕方は第23図と同様である。
第25図の結果に基づいてキャッシュ容量C[B]と内蔵ROM容量R[KB]の関係をプロットすると第27図〜第30図の結果を得る。キャッシュメモリの構成は、第27図がフルアソシアティブ(full)、第28図が4ウェイセットアソシアティブ(4way)、第29図が2ウェイセットアソシアティブ(2way)、第30図がダイレクトマップ(direct)であり、夫々はキャッシュメモリのデータライン長がパラメータとされている。例えば第27図においてデータライン長が8バイトのフルアソシアティブ形式のキャッシュメモリを採用する場合、キャッシュメモリの容量を2048バイトとするとき、ROM容量は85.33キロバイトであれば総合ヒット率が0.9になることを意味する。実際に上記の結果を用いて、必要な性能を得るには、前記CとRの容量があれば十分であることがわかる。
第26図は、第27図〜第30図に示される内蔵ROM容量とキャッシュメモリ容量との関係を式C+aR=bで近似したときの、キャッシュメモリの構成に対応する定数a、bが示される。本実施例のマイクロコンピュータにおいて内蔵ROM容量とキャッシュメモリ容量とを実際に決定する場合には、関係式:C+aR≦bを満足するように、コストと照らし合わせながらRとCの容量を決定すればよい。換言すれば、C+aR>bとなる範囲を少なくとも除くようにC,Rを決定する。これにより、キャッシュメモリ容量CとROM容量Rをむやみに(無駄に)大きくすることなく、コスト及び総合ヒット率の点においてマイクロコンピュータMPU(MPU1)内蔵のROM9の記憶容量とキャッシュメモリCACHEの記憶容量とを最適化することができる。前記定数a、bの値は第26図により以下に示される通りである。
8way以上/4バイトライン長:a=24.01、b=8194
8way以上/8バイトライン長:a=9.00、b=3328
8way以上/16バイトライン長:a=4.00、b=1280
8way以上/32バイトライン長:a=1.75、b=512
8way以上/64バイトライン長以上:a=0.75、b=256
4way/4バイトライン長:a=25.19、b=8804
4way/8バイトライン長:a=10.00、b=3584
4way/16バイトライン長:a=5.00、b=1536
4way/32バイトライン長:a=1.84、b=557
4way/64バイトライン長以上:a=0.79、b=276
2way/4バイトライン長:a=32.41、b=11112
2way/8バイトライン長:a=11.90、b=4328
2way/16バイトライン長:a=5.50、b=1792
2way/32バイトライン長:a=2.03、b=651
2way/64バイトライン長以上:a=0.87、b=316
1way/4バイトライン長:a=36.06、b=14361
1way/8バイトライン長:a=18.75、b=6591
1way/16バイトライン長:a=8.00、b=2816
1way/32バイトライン長:a=4.00、b=1280
1way/64バイトライン長以上:a=1.48、b=549
《3.事前転送形式RAMキャッシュ内蔵マイクロコンピュータ》
第31図には高速RAMに事前にデータを転送して、全体としてのメモリアクセスの高速化を図ったマイクロコンピュータ(事前転送形式RAMキャッシュ内蔵マイクロコンピュータ)の一実施例ブロック図が示される。
本実施例のシングルチップマイクロコンピュータ(単にマイクロコンピュータとも記す)MPU2は、CPU200、CPU200の動作プログラム又はデータが格納されるROM202、CPU200の作業領域若しくはデータの一時記憶領域とされるRAM203、乗算器(MULT)209、バスコントローラ204、周辺回路210、外部バスインタフェース207、高速RAM201、アドレス変換器2010、RAM転送コントローラ205等を含み、単結晶シリコンのような1個の半導体基板に形成される。外部バスインタフェース207には外部バス211を介して外部メモリ208等が接続される。
本実施例のマイクロコンピュータMPU2は、特に制限されないが、RISCアーキテクチャを有し、CPU200は、1命令あたりCPU200の動作基準クロック信号における1クロックサイクルで命令を実行し、バスアクセスの基本サイクル数を1クロックサイクルとするように、パイプライン動作によって命令フェッチ、命令デコード、命令実行、メモリアクセスなどのパイプラインステージを実行していく。CPU200が接続される内部バス206は、1クロックサイクルを最小動作周期とする高速内部バスであり、内部アドレスバスIAB、内部データバスIDB、内部制御バスICBから成る。当該内部バス206には前記夫々の回路モジュールが接続される。バスコントローラ204は、内部バス206の制御及び周辺回路210のアクセス制御などを行う。
バスコントローラ204は内部バス206から供給されるアドレス信号の上位側ビットに基づいてアクセス対象エリアの判定を行い、また内部バス206から供給されるバスコマンドなどを受け取ってリード/ライトやアクセスデータ幅等のアクセスの種別を判定する。それらの判定結果に従って内蔵ROM202、RAM203、高速RAM201等の動作選択を行い、また、外部アクセスのためのチップ選択やリード/ライトの指示を外部に対して行う。
本実施例において前記RAM203及びROM202はアクセスに2クロックサイクル以上必要な低速内蔵メモリとされる。これに対して前記高速RAM201は1クロックサイクルでアクセス可能とされ、事前転送形式のRAMキャッシュとして利用される。RAM転送コントローラ205は内蔵RAM203及びROM202の所要の情報を高速RAM201に転送する制御を行う。
第32図にはRAM転送コントローラ205のブロック図が示される。RAM転送コントローラ205は、キャシングトリガアドレス即ち高速RAM201へのデータ転送起動要因とされるアドレスを格納するレジスタ(CTAR)301、キャシングブロック開始アドレスレジスタ(CSAR)302、キャシングブロック終了アドレスレジスタ(CEAR)303、RAMキャッシュ先頭アドレスレジスタ(RCAR)304、コントロール/ステータスレジスタ(CSR)305の各レジスタと、データ転送制御を行う制御回路306を有する。CSR305はRAM転送コントローラ−205の動作設定ビットの他にバリッドフラグ(V)307を有する。
CTAR301、CSAR302、CEAR303、RCAR304の各レジスタにはCPU200が出力するアドレスと比較されるべき値が設定される。またCSR305はRAM転送コントローラ−205のコントロール用の設定データやバリッドフラグ307を含む値が格納される。それらレジスタ301〜305はCPU200によってリード/ライトアクセス可能とされ、制御回路306が内部アドレスバスIABの値をデコードして各レジスタを選択し、内部データバスIDBを介してそれらレジスタがリード/ライトされる。CSAR302及びCEAR303には前記ROM202及びRAM203のエリアの一部若しくは全部の範囲を指定するアドレス情報が設定されることになる。指定可能範囲の記憶容量は高速RAM201の記憶容量によって決まる。
比較回路311は内部アドレスバスIABの値とCTAR301の値とを比較して、その比較結果を制御回路306に与える。比較回路312は内部アドレスバスIABの値がCSAR302の値以上のアドレスかを判定して、その判定結果を制御回路306に与える。比較回路313は内部アドレスバスIABの値がCEAR302の値以下のアドレスかを判定して、その判定結果を制御回路306に与える。第33図も参照するに、制御回路306は、CPU200から内部アドレスバスIABに供給されるアドレス信号がCTAR301の値に一致することを検出すると、CPU200からバス権を取得して、CSAR302の値によって決まるアドレスからCEAR303の値によって決まるアドレスまでのデータを、RCAR304の値を先頭とする高速RAM201の所定領域に転送制御する。このとき、変換制御信号3140は非活性状態にされており、高速RAM201は、RAM転送コントローラ205が内部アドレスバスIABに出力するアドレス信号に従ってアクセスされる。当該転送を完了した後は、バリッドフラグ307を有効とし、バス権を放棄する。また、制御回路306は、バリッドフラグ307が有効にされているときは、比較回路312、313による判定結果を判定回路314で参照し、内部アドレスバスIABの値が、CSAR302の値によって決まるアドレスからCEAR303の値によって決まるアドレスの範囲に入っていることを検出すると、アドレス演算器315にてRCAR304の値からCSAR302の値を減算し(RCAR−CSAR)、減算された値をRAMアドレス変換情報316として、高速RAM201に供給し、且つ、変換制御信号310を活性化する。
第34図には高速RAM201及びアドレス変換器2010のブロック図が示される。前記変換制御信号3140が活性化されている状態において、アドレス変換器2010は、そのときの内部アドレスバスIABの値に、前記RAMアドレス変換情報316を加算し、これをアクセスアドレスとして高速RAM201に供給する。変換制御信号3140が非活性状態のときは、内部アドレスバスIABの値がそのまま高速RAM201に供給される。高速RAM201は、通常のRAMの構成を有すれば十分であるからその詳細な説明は省略する。したがって、バリッドフラグ307がリセット状態のとき、また、変換制御信号3140が非活性状態のとき、第33図に示されるように、RAM転送コントローラ205から内部アドレスバスIABに出力されるアドレス信号に従って、CSAR302〜CEAR303の範囲のデータが、RCAR304の値を先頭として、高速RAM210に転送される。バリッドフラグ307がセット状態のときは、CPU200がCSAR302の値によって決まるアドレスからCEAR303の値によって決まるアドレスの範囲内をアクセスすると、変換制御信号3140が活性化され、実際には、RCAR304を先頭とする高速RAM201の領域がアクセスされる。バスコントローラ204は、変換制御信号3140が活性化されているときは、ROM202、RAM203、外部メモリ208の動作選択に代えて、高速RAM201を動作選択する。
CPU200が内蔵ROM202、内蔵RAM203、又は外部メモリ208内にある命令やデータをアクセスしようとしたときの動作の一例を説明する。CPU200が内部バス206を介してアドレス信号250を出力する。アドレス信号250がRAM転送コントローラ−205に供給され、供給されたアドレス信号250がCTAR301の値と比較される。その比較結果が一致していれば、RAM転送コントローラ−205はバスコントローラ−204にバス権要求信号(RTCREQ)251をアサートする。バスコントローラ−204はバスアービタ220にてバス権を調停し、CPU200のバスサイクルの切れ目などで、バス権をRAM転送コントローラ−205に与える。これによって、CPUバス権アクノリッジ信号(CPUACK)253がネゲートされ、RAM転送コントローラバス権アクノリッジ信号(RTCACK)252がアサートされる。RTCACK252のアサートを受けて、RAM転送コントローラ−205がバス権を獲得すると、RAM転送コントローラ205は、前記CSAR302で指されるアドレスからCEAR303で指されるアドレスまでの範囲の例えば低速な内蔵ROM202、内蔵RAM203、又は外部メモリ208内にある命令又はデータを、前記RCAR304で指される高速RAM201内のアドレスから後のアドレスに転送制御する。転送が終了したら、制御回路306が、高速RAM内に命令又はデータが格納されていることを示すCSR305内のバリッドフラグ307をセット状態に反転する。そしてRAM転送コントローラ205はバス権を放棄する。
CPU200がRAM転送コントローラ−205からバス権を獲得してCPU200がバスアクセスを起動すると、CPU200が出力するアドレス信号250は、比較器312,313にて前記CSAR302,CEAR303の値と比較される。CSAR≦アドレス信号≦CEARであって、バリッドフラグ307がセット状態ならば、そのアドレス信号250の内容は、高速RAM201アクセス用に変換され、これにより、低速な内蔵ROM202/内蔵RAM203/外部メモリ208に代えて高速RAM201がアクセスされる。上記条件が成立していない場合には、通常通り、アドレス信号250によって低速な内蔵ROM202、内蔵RAM203、又は外部メモリ208などがアクセスされる。
上記条件が成立している場合の動作を更に詳述すれば、RAM転送コントローラ−205から高速RAM201へRAMアドレス変換情報316が供給され、またバスコントローラ204へはRAMアドレス変換情報316及び変換制御信号3141が与えられる。これによって高速RAM201は、CPUアクセスアドレス−CSAR+RCARで計算されたアクセスアドレスによってアクセス可能にされる。一方、バスコントローラ204は、RAMアドレス変換情報316及び変換制御信号3141にて高速RAM210を動作選択する。またバスコントローラ204は前記変換制御信号3140にて、そのときの内部アドレスバスIAB上のアドレス信号250に対応される、ROM202、RAM203、又は外部メモリ208に対する動作選択を抑止する。アドレス演算器315及びアドレス変換器2010による演算に無視し得ない時間がかかる場合には、高速RAM201のアクセスアドレスを、RCARの上位とアドレス250の下位を接続したものとしてもよい。この場合、CSAR302とCEAR303に設定可能な値は自ずと制限されることになる。或いはCEAR303を廃止し、アドレス250の上位とCSAR302の上位との一致比較を行うようにしてもよい。
尚、上記ROM202、RAM203の全て又は何れかが、或いは、各々の一部分が、アクセススピードが間に合えば、1サイクルアクセス可能な構成を採用することも可能である。この場合、内部バス206に接続された1サイクルアクセス可能なデバイスに対して前記RAMキャッシュの制御は不要とされ、通常通りのCPU200による1クロックサイクルアクセスが行われる。また、上記実施例における高速RAM210への事前転送の対象データは、内蔵ROM,RAMのデータに限定されず、外部メモリのデータだけを対象とし、或いは内蔵ROM及びRAMと外部メモリとの双方のデータを対象とすることができる。それらの場合にも上記実施例と同様の制御によって実現できる。
本実施例によれば、アクセスタイムが遅い内蔵ROM202又はRAM203に格納されているプログラムのうち、ある部分をあらかじめ高速RAM201に転送して、当該プログラムを実行させるようにすれば、その部分の実行を高速化できる。当然、内蔵ROM/RAMに収まりきれずにプログラムがアクセスタイムの遅い外部メモリ208にはみ出しても、この外部メモリ208を内蔵ROM/RAMと同様に制御すれば性能低下を防ぐことができる。シングルチップマイクロコンピュータが対象にする主なアプリケーションでは、高速性が要求されるルーチンは割り込み処理プログラムなどのように比較的そのアドレス範囲と実行タイミングが限定されており、あまり処理性能が必要でないバックグランドルーチン(例えばメインルーチン)を実行中に高速実行が必要な部分をあらかじめ高速RAM201に転送しておくことができる。その結果、プログラム処理全体の性能を向上させることができる。
《4.同時転送形式RAMキャッシュ内蔵マイクロコンピュータ》
第35図には高速RAMに同時にデータを転送してアクセスの高速化を図ったマイクロコンピュータ(同時転送形式RAMキャッシュ内蔵マイクロコンピュータ)の一実施例ブロック図が示される。
本実施例のシングルチップマイクロコンピュータ(単にマイクロコンピュータとも記す)MPU3は、CPU400、CPU400動作プログラム又はデータが格納されるROM402、CPU400の作業領域若しくはデータの一時記憶領域とされるRAM403、乗算器(MULT)409、バスコントローラ404、周辺回路410、外部バスインタフェース407、高速RAM401、アドレス変換器4010、及びRAM転送コントローラ405等を含み、単結晶シリコンのような1個の半導体基板に形成される。外部バスインタフェース407には外部バス411を介して外部メモリ408等が接続される。高速RAM401は第36図に示される。第34図で説明したものとの相違点は、アドレス変換器4010の動作が変換制御信号5140にて制御されずに、常に、内部アドレスバスIABの値にRAMアドレス変換情報516を加算して高速RAM401に供給する。
本実施例のマイクロコンピュータMPU3は、特に制限されないが、RISCアーキテクチャを有するもので、CPU400は、1命令あたりCPU400の動作基準クロック信号における1クロックサイクルで命令を実行し、バスアクセスの基本サイクル数を1クロックサイクルとするように、パイプライン動作によって命令フェッチ、命令デコード、命令実行、メモリアクセスなどのパイプラインステージを実行していく。CPU400が接続される内部バス406は、1クロックサイクルを最小動作周期とする高速内部バスであり、内部アドレスバスIAB、内部データバスIDB、内部制御バスICBから成る。当該内部バス406には前記夫々の回路モジュールが接続される。バスコントローラ404は、内部バス406の制御及び周辺回路410のアクセス制御などを行う。
バスコントローラ404は内部バス406から供給されるアドレス信号の上位側ビットに基づいてアクセス対象エリアの判定を行い、また内部バス406から供給されるバスコマンドなどを受け取ってリード/ライトやアクセスデータ幅等のアクセスの種別を判定する。それらの判定結果に従って内蔵ROM402やRAM403等の選択を行い、また、外部アクセスのためのチップ選択やリード/ライトの指示を外部バスインタフェースを介して外部に与える制御を行う。
本実施例において前記RAM403及びROM402はアクセスに2クロックサイクル以上必要な低速内蔵メモリとされる。これに対して前記高速RAM401は1クロックサイクルでアクセス可能とされ、同時転送形式のRAMキャッシュとして利用される。RAM転送コントローラ405は内蔵RAM403及びROM402の所要の情報を高速RAM401に転送する制御を行う。
第37図にはRAM転送コントローラ−405のブロック図が示される。RAM転送コントローラ405は、キャシングブロック開始アドレスレジスタ(CSAR)502、キャシングブロック終了アドレスレジスタ(CEAR)503、RAMキャッシュ先頭アドレスレジスタ(RCAR)504、コントロール/ステータスレジスタ(CSR)505の各レジスタと、データ転送制御を行う制御回路506を有する。CSR505はRAM転送コントローラ−405の動作設定ビットの他にバリッドフラグ(V)508を有する。
CSAR502、CEAR503、RCAR504にはCPU400が出力するアドレスと比較されるべき値が設定される。またCSR505はRAM転送コントローラ−405のコントロール用の設定データやバリッドフラグ508を含む値が格納される。それらレジスタ502〜505はCPU400によってリード/ライトアクセス可能とされ、制御回路506が内部アドレスバスIABの値をデコードして各レジスタを選択し、内部データバスIDBを介してそれらレジスタがリード/ライトされる。CSAR502及びCEAR503には前記ROM502及びRAM503のエリアの一部若しくは全部の範囲を指定するアドレス情報が設定されることになる。指定可能範囲の記憶容量は高速RAM501の記憶容量によって決まる。
比較回路512は内部アドレスバスIABの値がCSAR502の値以上のアドレスか、またCSAR502の値に等しいアドレスかを判定して、その判定結果を制御回路506に与える。比較回路513は内部アドレスバスIABの値がCEAR502の値以下のアドレスか、またCEAR502の値に等しいアドレスかを判定して、その判定結果を制御回路506に与える。
CPU400が内部バス406を介してアドレス信号450を出力すると、アドレス信号450がRAM転送コントローラ405に供給され、供給されたアドレス信号が比較器512,513にて前記CSAR502,CEAR503の値と比較される。比較結果は判定回路514に与えられる。判定回路514は、バリッドフラグ508が無効状態の時、アクセスアドレスがCSARの値に一致していることを検出すると、それ以降、アドレス信号450が前記CEAR503の値に一致するまでの間、或いはアドレス信号450がCSAR502の値からCEAR503の値の範囲に入っている間、CPU400が内蔵ROM402、内蔵RAM403、又は外部メモリ408内にある命令やデータをアクセスしたときに、同時に、このアクセス(リード又はライト)した命令やデータを高速RAM401にライトする。この時の高速RAM401のアクセスアドレスは前記実施例同様に、CPUアクセスアドレス−CSAR+RCAR、で計算される。即ち、演算器515が前記実施例同様にRAMアドレス変換情報(RCAR−CSAR)51を生成し、これを受ける高速RAM401の演算器4010が高速RAMアクセスアドレス(CPUアクセスアドレス−CSAR+RCAR)を生成する。ライトタイミングは、第38図に示されるように、内蔵ROM402、内蔵RAM403、又は外部メモリ408のアクセスに並行して行われる。そのような並列的な高速RAM401アクセスのための高速RAM401の動作選択は、変換制御情報5140をバスコントローラ404が受けることによって制御する。高速RAMアドレスのアドレス演算に時間がかかる場合には、高速RAM401のアクセスアドレスは、RCARの上位とアドレス信号450の下位を接続したものとしてもよい。この場合、CSAR502とCEAR503の設定可能な内容は制限を受ける。或いは、CEAR503を廃止し、アドレス信号450の上位とCSAR502の上位との一致比較を行うようにしてもよい。CSAR502の値からCEAR503までのアドレス範囲に対するデータの高速RAM401へのライト動作が終了されると、制御回路506はバリッドフラグ508をセット状態に転ずる。本実施例において制御回路506は、CSAR502の値からCEAR503までのアドレス範囲に対するデータの高速RAM401へのライト動作の終了を検出する手段を特に備えていない。即ち、CPU400によるアクセスアドレスが順番に変化されるアドレス範囲においてCSAR502とCEAR503の値を設定すればよいからである。特に制限されないが、CSAR502の値からCEAR503までのアドレス範囲における個々のアドレスに対するアクセスの有無を逐次検出して当該範囲の全てのアドレスに対するアクセスの完了を検出する回路を設けることも可能である。
制御回路506は、バリッドフラグ508がセットされている状態においては、CPU400のアクセスにおいて、CPUのアクセスアドレスが、CSAR≦アドレス≦CEARの範囲に入っていることを判定回路514で検出したときは、判定制御信号5140にて、内蔵ROM402、内蔵RAM403、又は外部メモリ408の動作選択をバスコントローラ404で抑止させる。それに代えて、バスコントローラ404に高速RAM401の動作を選択させ、高速RAM401にはRAMアドレス変換情報516を供給して、高速RAM401を1クロックサイクルで動作させる。これによってその範囲のアドレスアクセスを高速化することができる。高速RAM401のアクセスに利用されるアドレス信号は、前記実施例同様に、CPUアクセスアドレス−CSAR+RCAR、とされる。このアドレス演算に無視し得ない時間を要する場合には、前述の通り、高速RAM401のアクセスアドレスを、RCARの上位とアドレス450の下位を接続したものとすることができる。
尚、上記実施例における高速RAM210への同時転送の対象データは、内蔵ROM,RAMのデータに限定されず、外部メモリのデータだけを対象とし、或いは内蔵ROM及びRAMと外部メモリとの双方のデータを対象とすることができる。それらの場合にも上記実施例と同様の制御によって実現できる。
本実施例によれば、前記事前転送形式RAMキャッシュ内蔵マイクロコンピュータと同様に処理性能の向上を図ることができるが、性能をあまり必要としないバックグランド処理が少ない場合、高速化したい範囲を予め転送するための時間を割きにくい。このため、内蔵ROM/RAMの高速化したい範囲をCPU400がアクセスしたときに同時に高速RAM401へもアクセスデータをコピーするようにしておけば、その範囲を初めて実行する際は内蔵ROM/RAMのアクセスタイムに依存する性能しか出ないが、2回目以降の実行は高速RAM401のアクセスとなるため高速化される。当然、内蔵ROM/RAMに収まりきれずにプログラムがアクセスタイムの遅い外部メモリにはみ出しても、この外部メモリを内蔵ROM/RAMと同様に制御すれば性能低下を防ぐことができる。
《5.アドレス置換形式RAMキャッシュ内蔵マイクロコンピュータ》
第39図にはDMACなどによって低速メモリの情報をあらかじめ高速RAMに転送しておき、当該低速メモリに対するアクセスアドレスを高速RAMのアドレスに置き換えてメモリアクセスの高速化を図ったマイクロコンピュータ(アドレス置き換え形式RAMキャッシュ内蔵マイクロコンピュータ)の一実施例ブロック図が示される。
本実施例のシングルチップマイクロコンピュータ(単にマイクロコンピュータとも記す)MPU4は、CPU600、CPU600動作プログラム又はデータが格納されるROM602、CPU600の作業領域若しくはデータの一時記憶領域とされるRAM603、乗算器(MULT)609、バスコントローラ604、周辺回路610、外部バスインタフェース607、高速RAM601、アドレス変換器613、及びDMAコントローラ612等を含み、単結晶シリコンのような1個の半導体基板に形成される。外部バスインタフェース607には外部バス611を介して外部メモリ608等が接続される。
本実施例のマイクロコンピュータMPU4は、特に制限されないが、RISCアーキテクチャを有するものであって、CPU600は、1命令あたりCPU600の動作基準クロック信号における1クロックサイクルで命令を実行し、バスアクセスの基本サイクル数を1クロックサイクルとするように、パイプライン動作によって命令フェッチ、命令デコード、命令実行、メモリアクセスなどのパイプラインステージを実行していく。CPU600が接続される内部バス606は、1クロックサイクルを最小動作周期とする高速内部バスであり、内部アドレスバスIAB、内部データバスIDB、内部制御バスICBから成る。当該内部バス606には前記夫々の回路モジュールが接続される。バスコントローラ604は、内部バス606の制御及び周辺回路610のアクセス制御などを行う。
本実施例において前記RAM603及びROM602は、アクセスに2クロックサイクル以上必要な低速内蔵メモリとされる。これに対して前記高速RAM601は、1クロックサイクルでアクセス可能とされ、アドレス置き換え形式のRAMキャッシュとして利用される。DMAコントローラ612は、CPU600に代わって内蔵RAM603及びROM602などの所要の情報を高速RAM601に転送したりする制御を行う。DMAコントローラ612に対する動作の初期設定はCPU600が行う。DMAコントローラ612にて高速RAM601に転送されたデータを内蔵RAM603又はROM602などに代えてCPU600がアクセス可能にする制御は、特に制限されないが、バスコントローラ604が行う。
第40図にはバスコントローラ604の一例ブロック図が示される。バスコントローラ604は、内部バス606から供給されるアドレス信号の上位側ビットに基づいてアクセス対象エリアの判定を行って行い、また内部バス606から供給されるバスコマンドをなどを受け取ってリード/ライトやアクセスデータ幅等のアクセスの種別を判定する。それらの判定結果に従って内蔵ROM602やRAM603等の選択を行い、また、外部アクセスのためのチップ選択やリード/ライトの指示を外部バスインタフェース607を介して外部に行う。それらの制御は制御回路706が行う。バスコントローラ604は高速RAM601を制御するために、キャシングブロック開始アドレスレジスタ(CSAR)702、キャシングブロック終了アドレスレジスタ(CEAR)703、コントロール/ステータスレジスタ(CSR)705、RAM先頭アドレスレジスタ707、比較器712,713、判定回路715、及びアドレス演算器714を備える。CSR705はバリッドフラグ7051を供える。当該フラグ7051はDMAコントローラがCPUに代わって内蔵RAM603及びROM602の所要の情報を高速RAM601に転送した後、セット状態にされる。
CSAR702、CEAR703にはCPU600が出力するアドレスと比較されるべき値が設定される。RAM先頭アドレスレジスタ707には高速RAM601がマッピングされるアドレス領域の先頭アドレスが設定される。それらレジスタ702,703,705,707はCPU600によってリード/ライトアクセス可能とされ、制御回路706が内部アドレスバスIABの値をデコードして各レジスタを選択し、内部データバスIDBを介してそれらレジスタがリード/ライトされる。CSAR702及びCEAR703には前記DMAコントローラ612によって高速RAM601に転送されたROM602,RAM603のデータアドレスの範囲を指定するアドレス情報が設定されることになる。
比較回路712は内部アドレスバスIABの値がCSAR702の値以上のアドレスかを判定して、その判定結果を制御回路706に与える。比較回路713は内部アドレスバスIABの値がCEAR702の値以下のアドレスかを判定して、その判定結果を制御回路706に与える。それによって判定経路715は、CPU600から内部ドレスバスIABに供給されるアドレス信号が、CSAR≦アドレス≦CEARの範囲に入っていることを検出すると、バリッドフラグ7051がセット状態にされていることを条件に、アドレス演算器714にてRAM先頭アドレスレジスタ(RCAR)707の値からCSAR702の値を減算し(RCAR−CSAR)、減算された値をRAMアドレス変換情報716として、高速RAM601に供給し、更に、変換制御信号7150を活性化して高速RAM601に供給する。バリッドフラグ7051がリセット状態にされているときは、内部バスIABのアドレスの値に拘わらず、前記アドレス演算器714は動作されず、且つ、変換制御信号7150は非活性状態にされる。制御回路706は、変換制御信号7150を活性化するとき、アドレスバスIABの値が指定するROM602又はRAM603の動作選択を抑止し、それに代えて高速RAM601の動作を選択信号(メモリイネーブル信号)で選択する。
第41図には高速RAM601及びアドレス演算器613のブロック図が示される。アドレス演算器613は、変換制御信号7150が活性化されているとき、内部アドレスバスIABの値に、前記RAMアドレス変換情報716を加算し、これをアクセスアドレスとして高速RAM601に供給する。変換制御信号7150が非活性状態の場合には、アドレス演算器613は内部アドレスバスIABの値を直接高速RAM601に供給する。DMAコントローラ612にてROM602,RAM603のデータが高速RAM601に転送されるときは前記バリッドフラグ7051がリセット状態にされるので、DMAコントローラ604が出力するアドレス信号に従って高速RAM601がアクセスされる。
DMAコントローラ612による高速RAM601へのデータ転送が行われた後に、CPU600が内蔵ROM602、内蔵RAM603、又は外部メモリ608内にある命令やデータをアクセスしようとしたときの動作の一例を説明する。CPU600が内部バス606を介してアドレス信号650を出力する。アドレス信号650がバスコントローラ604に供給され、供給されたアドレス信号はCSAR702及びCEAR703の値とそれぞれ比較される。CSAR≦アドレス≦CEARであれば、変換制御信号7150が活性化され、且つアドレス演算器714にてCPU600のアクセスアドレスは高速RAM601のアドレスに変換される。これによって、CPU600は高速RAM601を高速アクセスすることによって、低速メモリ602、603又は608のデータをアクセスできる。このときの、CPUアクセスアドレス−CSAR+高速RAM先頭アドレス、というアドレス演算に無視し得ない時間がかかる場合には、高速RAM601のアクセスアドレスを、高速RAM601の先頭アドレスの上位とアドレス信号650の下位を接続したものとすればよい。或いはCEAR603を廃止し、アドレス信号650の上位とCSAR602の上位との一致比較を行うようにしてもよい。
尚、ROM602、RAM603の全て又は何れかが、或いは、各々の一部分が、アクセススピードが間に合えば、1サイクルアクセスが可能である構成も採れる。この場合、内部バス606に接続されたデバイスはもともと1サイクルアクセスできるので上記RAMキャッシュの制御は行わずに通常通りにCPU600がアクセスできる。また、上記実施例における高速RAM210へのアドレス置き換えによるデータ転送の対象は、内蔵ROM,RAMのデータに限定されず、外部メモリのデータだけを対象とし、或いは内蔵ROM及びRAMと外部メモリとの双方のデータを対象とすることができる。それらの場合にも上記実施例と同様の制御によって実現できる。
上記実施例のように、CPU600が内蔵ROM/RAMのある指定された範囲をアクセスしようとしたときに、無条件に内蔵の高速RAM601をアクセス可能にする構成によれば、ユーザがプログラムの初期設定時などにあらかじめDMACコントローラ−612などにより高速RAM601に内蔵ROM/RAM内の動作を高速化したいプログラムやデータを転送しておけば、処理の高速化を図ることができる。Cコンパイラやアセンブラなどで完成したプログラムのうち高速化すべきところがわかっていれば、本機能にて簡単に性能向上できる。この方式だと、キャッシュミスによるペナルティや、バックグランド処理中の高速化ルーチンの転送がなくなる。また、実行時間が、初回通過時とそれ以降も全く同じになり、タイミング設計がやりやすい特長をもつ。当然、内蔵ROM/RAMに収まりきれずにプログラムがアクセスタイムの遅い外部メモリにはみ出しても、この外部メモリを内蔵ROM/RAMと同様に制御すれば性能低下を防ぐことができる。
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、周辺回路11を内部バス6に直結せず、何らかの周辺機能専用バスに接続して、その周辺機能専用バスと内部6を別のインタフェース回路を介して接続することも可能である。キャッシュメモリCACHEと外部メモリ13との間のデータライト時のコヒーレンシについてはライトバックやライトスルー方式等によって保つことができる。また、キャッシュメモリの初期化などのために全バリッドビットを一括してクリアするパージ機構を別に設けておくことも可能である。更に、キャッシュメモリCACHEとしては、命令専用、データ専用、命令データ混合型の何れか、又はそれらを組み合わせの構成を採用することが可能である。前記制御信号BECNOPについてはバスコントローラがそのアクセスエリア判定機構を流用して生成してもよい。その場合には、キャッシュメモリからのキャッシュヒット/ミスの通知をラッチするフラグFLGをバスコントローラが備えて、前記制御信号BECNOPのアサート/ネゲートの制御を行わなければならない。更にそのような制御信号BECNOPの生成とアサート/ネゲートの制御を専用回路で行ってもよい。また、キャッシャブルエリア/ノンキャッシャブルエリアの判定は上記実施例のようにアクセスアドレスに基づいてキャッシュコントローラが行う構成に限定されない。例えば、バスコントローラが行ったり、或いは、キャッシュコントローラに設けられたキャッシュイネーブル/ディスエーブルを制御する制御ビットを、バスコントローラが判定したアクセスエリアがノンキャッシャブルエリアかキャッシャブルエリアかに応じて書換制御することで行ってもよい。
産業上の利用可能性
以上のように、本発明は、中央処理装置と共にROM,RAM,キャッシュメモリ等のメモリを内蔵したマイクロコンピュータ、そして外部メモリ等と一緒にマイクロコンピュータを搭載した各種データ処理システムに広く適用することができる。
Claims (6)
- 1個の半導体基板に形成されたマイクロコンピュータであって、中央処理装置と、該中央処理装置によってアクセスされる内蔵メモリと、前記中央処理装置に内部バスで結合されたキャッシュメモリと、前記中央処理装置をマイクロコンピュータの外部アドレス空間とインタフェースさせるインタフェース手段と、前記外部アドレス空間を前記キャッシュメモリによるキャッシュの対象とし、前記内蔵メモリをキャッシュの非対象に制御する制御手段と、を含み、
前記制御手段は前記中央処理装置によって出力されたアドレスにより前記キャッシュメモリにアクセスするか否かを判定する判定回路を含み、
前記インタフェース手段は、外部アドレス空間に対するアクセスサイクルの起動を、キャッシュメモリのキャッシュヒット又はキャッシュミスの判定に要する一定期間ウェイトし、当該ウェイト動作を、キャッシュヒットの状態がキャッシュミスの状態に変化された次のアクセスサイクルから抑止し、抑止したウェイト動作を、キャッシュミスの状態がキャッシュヒットの状態に変化された次のアクセスサイクルから再開するものであり、当該キャッシュミスの状態がキャッシュヒットの状態に変化されたとき前記キャッシュメモリはヒットに係るデータの入出力動作を抑止し、前記インタフェース手段は外部アドレス空間に対するアクセスサイクルを起動するものであることを特徴とするマイクロコンピュータ。 - 前記キャッシュメモリは2のべき乗数のウェイ数を有し、前記内蔵メモリは、前記中央処理装置の動作プログラムを格納するROMを含み、当該ROMのデータ記憶容量をRキロバイトとし、前述のキャッシュメモリのデータ記憶容量をCバイトとしたとき、前述のキャッシュメモリのウェイ数とキャッシュエントリのデータライン長に応じて定数a、bを、下記の通り、
8way以上/4バイトライン長:a=24.01、b=8194
8way以上/8バイトライン長:a=9.00、b=3328
8way以上/16バイトライン長:a=4.00、b=1280
8way以上/32バイトライン長:a=1.75、b=512
8way以上/64バイトライン長以上:a=0.75、b=256
4way/4バイトライン長:a=25.19、b=8804
4way/8バイトライン長:a=10.00、b=3584
4way/16バイトライン長:a=5.00、b=1536
4way/32バイトライン長:a=1.84、b=557
4way/64バイトライン長以上:a=0.79、b=276
2way/4バイトライン長:a=32.41、b=11112
2way/8バイトライン長:a=11.90、b=4328
2way/16バイトライン長:a=5.50、b=1792
2way/32バイトライン長:a=2.03、b=651
2way/64バイトライン長以上:a=0.87、b=316
1way/4バイトライン長:a=36.06、b=14361
1way/8バイトライン長:a=18.75、b=6591
1way/16バイトライン長:a=8.00、b=2816
1way/32バイトライン長:a=4.00、b=1280
1way/64バイトライン長以上:a=1.48、b=549
と定めたとき、C+aRはbを越えない関係を満足して成るものであることを特徴とする請求項1記載のマイクロコンピュータ。 - 前記中央処理装置はRISCアーキテクチャを有し、前記中央処理装置、内蔵メモリ、及びキャッシュメモリは内部バスを共有し、中央処理装置は当該内部バスをその動作基準クロック信号の1クロックサイクルを最高アクセス速度としてアクセスするものであることを特徴とする請求項1記載のマイクロコンピュータ。
- 前記中央処理装置はRISCアーキテクチャを有し、前記中央処理装置、内蔵メモリ、及びキャッシュメモリは内部バスを共有し、中央処理装置は当該内部バスをその動作基準クロック信号の1クロックサイクルを最高アクセス速度としてアクセスするものであることを特徴とする請求項2記載のマイクロコンピュータ。
- 前記キャッシュメモリは、中央処理装置によるアクセスの開始から該中央処理装置の動作基準クロック信号の1クロックサイクルの期間を以てキャッシュヒットに係るデータを前記内部バスに出力するものであることを特徴とする請求項3記載のマイクロコンピュータ。
- 前記キャッシュメモリは、中央処理装置によるアクセスの開始から該中央処理装置の動作基準クロック信号の1クロックサイクルの期間を以てキャッシュヒットに係るデータを前記内部バスに出力するものであることを特徴とする請求項4記載のマイクロコンピュータ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14555295 | 1995-05-19 | ||
PCT/JP1996/001308 WO1996036919A1 (fr) | 1995-05-19 | 1996-05-17 | Micro-ordinateur |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3735373B2 true JP3735373B2 (ja) | 2006-01-18 |
Family
ID=15387817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53470696A Expired - Fee Related JP3735373B2 (ja) | 1995-05-19 | 1996-05-17 | マイクロコンピュータ |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3735373B2 (ja) |
WO (1) | WO1996036919A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4034032B2 (ja) | 2000-08-07 | 2008-01-16 | Necエレクトロニクス株式会社 | キャッシュ内蔵マイクロコンピュータ |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61136145A (ja) * | 1984-12-07 | 1986-06-24 | Hitachi Ltd | キヤツシユメモリ制御回路 |
JPH0616303B2 (ja) * | 1985-07-29 | 1994-03-02 | 富士通テン株式会社 | 汎用高速プロセツサ |
JPH0195343A (ja) * | 1987-10-07 | 1989-04-13 | Matsushita Electric Ind Co Ltd | 記憶装置 |
JPH02187881A (ja) * | 1989-01-13 | 1990-07-24 | Mitsubishi Electric Corp | 半導体集積回路 |
JPH0528040A (ja) * | 1991-07-18 | 1993-02-05 | Oki Electric Ind Co Ltd | 高速メモリアクセス方式 |
JPH0535467A (ja) * | 1991-07-31 | 1993-02-12 | Nec Corp | マイクロプロセツサ |
EP0535701A1 (en) * | 1991-10-03 | 1993-04-07 | Standard Microsystems Corporation | Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM) |
-
1996
- 1996-05-17 WO PCT/JP1996/001308 patent/WO1996036919A1/ja active Application Filing
- 1996-05-17 JP JP53470696A patent/JP3735373B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
WO1996036919A1 (fr) | 1996-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5359723A (en) | Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only | |
US6725337B1 (en) | Method and system for speculatively invalidating lines in a cache | |
US5715428A (en) | Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system | |
JP3516963B2 (ja) | メモリアクセス制御装置 | |
US7539823B2 (en) | Multiprocessing apparatus having reduced cache miss occurrences | |
US8725987B2 (en) | Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data | |
US5751994A (en) | System and method for enhancing computer operation by prefetching data elements on a common bus without delaying bus access by multiple bus masters | |
EP2092429B1 (en) | Configurable cache for a microprocessor | |
US20020156962A1 (en) | Microprocessor having improved memory management unit and cache memory | |
US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
US20080320228A1 (en) | Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache | |
US12038840B2 (en) | Multi-level cache security | |
JPH0962572A (ja) | ストリーム・フィルタ装置及び方法 | |
JP2000242558A (ja) | キャッシュシステム及びその操作方法 | |
JPH0659976A (ja) | 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法 | |
US12001351B2 (en) | Multiple-requestor memory access pipeline and arbiter | |
JP3841810B2 (ja) | データプロセッサ | |
EP2495662B1 (en) | Configurable cache for a microprocessor | |
US5420994A (en) | Method for reading a multiple byte data element in a memory system with at least one cache and a main memory | |
EP0309995B1 (en) | System for fast selection of non-cacheable address ranges using programmed array logic | |
US7251710B1 (en) | Cache memory subsystem including a fixed latency R/W pipeline | |
JP3735373B2 (ja) | マイクロコンピュータ | |
JP2002236614A (ja) | キャッシュ制御方法及びキャッシュ制御回路 | |
JP3378270B2 (ja) | マルチプロセッサシステム | |
JP2002108702A (ja) | マイクロコンピュータ及びデータ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050831 |
|
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: 20051018 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051024 |
|
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: 20081028 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |