(57)【要約】本発明による集積回路は、プロセッサ（６０３）と、不揮発性メモリ（６０２）と、インタフェイス部（６０５）とを有し、前記インタフェイス部（６０５）は、第一のキャッシュメモリ（６０１．１）及び第二のキャッシュメモリ（６０１．２）を含むと共にプロセッサ（６０３）を不揮発性メモリ（６０２）に接続する。インタフェイス部（６０５）は、不揮発性メモリ（６０２）からデータを取得すると共に即座にそれらを前記第一の又は前記第二のキャッシュメモリ（６０１．１、６０１．２）に記憶し、要求されたデータがどこに記憶されるかに依存して、プロセッサ（６０３）に前記第一のキャッシュメモリ（６０１．１）又は前記第二のキャッシュメモリ（６０１．２）からのデータを供給する。
2005524170.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、不揮発性メモリと、前記プロセッサを前記不揮発性メモリに接続するインタフェイス部とを備える集積回路であって、前記インタフェイス部は、第一のキャッシュメモリ及び第二のキャッシュメモリを含み、前記第一及び／又は前記第二のキャッシュメモリは、前記不揮発性メモリの所定のアドレスに対応するデータを記憶するために備えられ、前記インタフェイス部は、前記プロセッサに前記第一のキャッシュメモリ又は前記第二のキャッシュメモリから選択的にデータをもたらすと共に次の所定のアドレスに対応する前記不揮発性メモリからのデータをフェッチする集積回路。
【請求項２】
前記インタフェイス部が、後続するアドレスになる前記次の所定のアドレスをもたらすアドレス予測器を含む請求項１に記載の集積回路。
【請求項３】
前記不揮発性メモリがフラッシュメモリである請求項１又は２に記載の集積回路。
【請求項４】
前記インタフェイス部が、前記プロセッサからアドレスを得ると共に当該アドレスを前記第一及び前記第二のキャッシュメモリに記憶される前記データに対応する二つのアドレスと比較するアドレス比較器を含む請求項１、２、又は３に記載の集積回路。
【請求項５】
前記アドレス比較器は、前記プロセッサからの前記アドレスが、前記第一のキャッシュメモリに記憶される前記データに対応する前記アドレスに等しくなるとき第一の出力信号をもたらし、前記プロセッサからの前記アドレスが、前記第二のキャッシュメモリに記憶される前記データに対応する前記アドレスに等しくなるとき第二の出力信号をもたらす固定アドレス比較器である請求項４に記載の集積回路。
【請求項６】
前記第一及び第二のキャッシュメモリに記憶される前記データに対応する前記二つのアドレスが第一及び第二のタグである請求項４又は５に記載の集積回路。
【請求項７】
前記データが前記第一又は前記第二のキャッシュメモリにバッファされないとき、前記インタフェイス部は前記不揮発性メモリから直接前記プロセッサに前記データをもたらす請求項１乃至６の何れか一項に記載の集積回路。
【請求項８】
前記第一及び前記第二のキャッシュメモリの各々の前記データワード幅が前記不揮発性メモリと同じデータワード幅を有する請求項１乃至７の何れか一項に記載の集積回路。
【請求項９】
前記不揮発性メモリが命令メモリとして使用される請求項１乃至７の何れか一項に記載の集積回路。
【請求項１０】
集積回路に組み込まれている不揮発性メモリからのデータをフェッチするための方法であって、
ａ）前記不揮発性メモリからの前記データの一部が、第一及び第二のタグアドレスのもとで二つのキャッシュメモリにバッファされるステップと、
ｂ）データが、要求手段によって前記不揮発性メモリから要求される場合、前記データに対応する前記アドレスは前記二つのタグアドレスと比較されるステップと、
ｃ）前記データアドレスが前記二つのタグアドレスのうちの一つに等しい場合、前記キャッシュメモリにおける前記データは前記要求手段にもたらされると共に前記他のキャッシュメモリにおける前記データは更新され、それ以外では、両方の前記キャッシュメモリが同時に更新されると共に前記要求されたデータが前記要求手段にもたらされるステップと
を有する方法。
【請求項１１】
前記データ更新は前記不揮発性メモリの予測読み出しによって行われる請求項１０に記載の方法。
【請求項１２】
前記キャッシュメモリは、前記後続するアドレスに対応する前記データで更新される請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路及び集積回路に組み込まれている不揮発性メモリからデータをフェッチするための方法に関する。
【背景技術】
【０００２】
この種の集積回路は、ポータブルデバイス、例えば無線モジュール（ｗｉｒｅｌｅｓｓ  ｍｏｄｕｌｅ）、ブルートゥースデバイス（Ｂｌｕｅｔｏｏｔｈ  ｄｅｖｉｃｅ）、モバイル電話（ｍｏｂｉｌｅ  ｐｈｏｎｅ）、ディジタルコードレスデバイス（ｄｉｇｉｔａｌ  ｃｏｒｄｌｅｓｓ  ｄｅｖｉｃｅ）、又は個人用携帯型情報端末（ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ））において広範に使用されている。この市場において、サイズ及び消費電力は決定的なファクタ（要因（ｆａｃｔｏｒ））となり、それ故に小さな面積ファクタが最も重要な要求となる。従ってベースバンド（基底帯域）システム（ｂａｓｅｂａｎｄ  ｓｙｓｔｅｍ）のメモリ制御ユニット（ＭＣＵ（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌ  ｕｎｉｔ））のダイ（ｄｉｅ）上に不揮発性メモリを集積させる可能性（ｃｈａｎｃｅ）は、低減されたコンポーネント数、低いピンの引き出し（ｐｉｎｏｕｔ）数、配線可能性（ルータビリティ（ｒｏｕｔａｂｉｌｉｔｙ））、及び低減されたシステム費用の点から最良の選択になると考えられる。
【０００３】
他方、いくつかの他の態様が、ベースバンドシステムオンチップ（ｂａｓｅｂａｎｄ  ＳＯＣ（ｓｙｓｔｅｍ  ｏｎ  ｃｈｉｐ））の動作性能／費用（ｐｅｒｆｏｒｍａｎｃｅ／ｃｏｓｔ）の比率を改善することに寄与している。
【０００４】
構造的な特徴にいくらか依存しているが、最も効果的な特徴のうちの一つは、適切に選択されたメモリ階層（ｍｅｍｏｒｙ  ｈｉｅｒａｒｃｙ）にある。異なるアクセス性能（ａｃｃｅｓｓ  ｃａｐａｂｉｌｉｔｙ）と異なる費用及びサイズを備える階層を介してメモリリソースを分散させることにより、システム動作特性の全体的な改善がもたらされる。
【０００５】
代表的ないわゆるハーバードアーキテクチャ（Ｈａｒｖａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）が図１に示されている。ブリッジ１０１が、３２ビットバス１０４を介して、高度システムバス（ＡＳＢ（ａｄｖａｎｃｅｄ  ｓｙｓｔｅｍ  ｂｕｓ））モジュール１０５、メモリ管理ユニット（ＭＭＵ（ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ））１０６、ＲＡＭ１０７、及びフラッシュメモリ１０２に接続されている。高度ＲＩＳＣマシン（ＡＲＭ（ａｄｖａｎｃｅｄ  ＲＩＳＣ  ｍａｃｈｉｎｅ））１０３が、ＭＭＵ１０６に接続されている。１６ビットバス１０８を介してブリッジ１０１が高度周辺バス（ＡＰＢ（ａｄｖａｎｃｅｄ  ｐｅｒｉｐｈｅｒａｌ  ｂｕｓ））モジュール１０９に接続されている。これらは例えばユニバーサルシリアルバス（ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ））モジュールに接続され得る。面積に関する主な犠牲がメモリ階層内にあることは明らかである。従って、必要とされる動作特性に厳格に依存している、メモリの型式及びサイズの賢明な選択は設計の成功の基礎となる。
【０００６】
アプリケーションがハーバードアーキテクチャ内のマイクロコントローラのためのソフトウエアのある層を必要とする場合、通常リードオンリメモリ（ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ））は命令メモリ（ＩＭＥＭ（ｉｎｓｔｒｕｃｔｉｏｎ  ｍｅｍｏｒｙ））に対して使用される一方、データメモリに対しては揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、例えばＤＲＡＭ又はＳＲＡＭが最良の選択となる。これの利点は、更に命令メモリとしてダイ（ｄｉｅ）上のブートコードメモリスペース（ｂｏｏｔｃｏｄｅ  ｍｅｍｏｒｙ  ｓｐａｃｅ）を使用する可能性（ｃｈａｎｃｅ）にあり、それ故にスペースが節減され、システムの安全性及びロバスト性（ｒｏｂｕｓｔｎｅｓｓ）が増大されることにある。利点は、基準プロセス（ｂａｓｅｌｉｎｅ  ｐｒｏｃｅｓｓ）で集積されるエンベデッドＲＯＭが特別な技術オプションを必要としていないことにある。
【０００７】
不都合なことにこのような解決策は、安定なソフトウエアを必要としており、それ故に最終的な製造の場合に対してしか適してない。他方で、ほとんどのアプリケーションはいくつかのソフトウエアの改良（ｓｏｆｔｗａｒｅ  ｒｅｆｉｎｅｍｅｎｔ）を必要としており、それによって、ＩＭＥＭに対するＲＯＭ解決策は好適とならない。従ってＩＭＥＭとして使用されるエンベデッドフラッシュメモリがサイズ及び動作特性の点で最良の解決策をもたらし得る。
2005524170.tif 000003
氏他による米国特許第５８０２５５４号公報において、フラッシュメモリからのブロック転送に並行してフラッシュメモリに対する精度の高い直接アクセス（ｆｉｎｅ  ｇｒａｉｎ  ｄｉｒｅｃｔ  ａｃｃｅｓｓ）をもたらすことによってメモリアクセスレイテンシ（ｍｅｍｏｒｙ  ａｃｃｅｓｓ  ｌａｔｅｎｃｙ）を低減するためのシステム及び方法が記載されている。メモリ管理ユニットは、第一のレベルのメモリ階層からのデータ、又は第二のレベルのメモリ階層からのデータの何れかを備えるキャッシュのコンテンツを制御する。しかしながらこの解決策はＩＭＥＭとしてフラッシュメモリを使用し得ない。    
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の第一の目的は、集積回路及び集積回路に組み込まれている不揮発性メモリからのデータをフェッチするための方法を提供することにある。当該集積回路及び方法によって、ミス（失敗）率（ミスレート（ｍｉｓｓ  ｒａｔｅ））は、特に当該ミスが予測され得る場合、低減され得る。例えばコードが規則正しい（ｒｅｇｕｌａｒ）場合にそうなる。このことは、コードが、離れたアドレスへのあまり多くの分岐（ｂｒａｎｃｈ）又はジャンプ（ｊｕｍｐ）を含まないが、命令メモリのスループットが制約になることを意味する。
【０００９】
本発明の他の目的は、高速アクセス期間を得ること、及び同時にシリコン面積を低減することにある。  
【課題を解決するための手段】
【００１０】
前記課題は、請求項１による特徴を備える集積回路によって、及び請求項９による特徴を備える集積回路に組み込まれている不揮発性メモリからデータをフェッチするための方法によって解決される。
【００１１】
本発明の利点は、不揮発性メモリが命令メモリとして使用され得ると共にＡＲＭ又は他のマイクロプロセッサによるサブシステム（ｓｕｂｓｙｓｔｅｍ）に適していることにある。
【００１２】
本発明による集積回路は、プロセッサと、不揮発性メモリと、第一のキャッシュメモリ及び第二のキャッシュメモリを含むと共に前記プロセッサを前記不揮発性メモリに接続するインタフェイス部とを有する。前記インタフェイス部は、前記不揮発性メモリから所定のアドレスに対応するデータを取得すると共に即座にそれらを第一の又は第二のキャッシュメモリに記憶する。前記インタフェイス部は、要求されたデータがどこに記憶されるか、及び次の所定のアドレスに対応する不揮発性メモリからのデータをどこに自発的にフェッチするかに依存して、前記プロセッサに第一のキャッシュ又は第二のキャッシュからのデータも供給する。
【００１３】
本発明による集積回路に組み込まれている不揮発性メモリからのデータをフェッチするための方法は複数のステップ、すなわち、
前記不揮発性メモリからのデータの一部が、第一及び第二のタグアドレス（ｔａｇ  ａｄｄｒｅｓｓ）のもとで（に従って）二つのキャッシュメモリにバッファされるステップと、
データが（要求手段によって）不揮発性メモリから要求される場合、前記データに対応するアドレスは二つのタグアドレスと比較されるステップと、
データアドレスが二つのタグアドレスのうちの一つに等しい場合、前記キャッシュメモリにおけるデータは要求手段にもたらされると共に他のキャッシュにおけるデータは更新されるステップと、
それ以外では、両方のキャッシュメモリが同時に更新されると共に要求されたデータが要求手段にもたらされるステップと  
を有している。
【発明を実施するための最良の形態】
【００１４】
本発明の有利な更なる展開が、従属請求項において特定される特徴及び特性からもたらされる。
【００１５】
有利なことに実現の簡単な態様のために、前記インタフェイス部（６０５）は、後続するアドレス（ｓｕｃｃｅｅｄｉｎｇ  ａｄｄｒｅｓｓ）となる次の所定のアドレスをもたらすアドレス予測器（ａｄｄｒｅｓｓ  ｐｒｅｄｉｃｔｏｒ）（６１０，６１１）を含む。
【００１６】
本発明の第一の実施例において、不揮発性メモリはフラッシュメモリである。
【００１７】
第二の実施例において前記インタフェイス部は、プロセッサからアドレスを取得し、そのアドレスを、第一及び第二のキャッシュメモリに記憶されるデータに対応する二つのアドレスと比較するアドレス比較器（ａｄｄｒｅｓｓ  ｃｏｍｐａｒａｔｏｒ）を含む。
【００１８】
有利なことに前記アドレス比較器は、プロセッサからのアドレスが、第一のキャッシュに記憶されるデータに対応するアドレスに等しくなるとき第一の出力信号をもたらし、プロセッサからのアドレスが、第二のキャッシュにおけるデータに対応するアドレスに等しくなるとき第二の出力信号をもたらす固定（永久）アドレス比較器（ｐｅｒｍａｎｅｎｔ  ａｄｄｒｅｓｓ  ｃｏｍｐａｒａｔｏｒ）となる。
【００１９】
第一及び第二のキャッシュメモリに記憶されるデータに対応する二つのアドレスが第一及び第二のタグとなる場合、アドレス間の比較は簡単な態様で行われ得る。
【００２０】
データがキャッシュメモリにバッファされない場合、前記インタフェイス部がデータを直接不揮発性メモリからプロセッサにもたらすことも可能である。これにより、キャッシュメモリのうちの一つにおけるいかなる中間記憶（ｉｎｔｅｒｍｅｄｉａｔｅ  ｓｔｏｒａｇｅ）も回避される。
【００２１】
有利なことに、第一及び第二のキャッシュメモリの各々におけるデータワード幅と不揮発性メモリにおけるデータワード幅とは同じになる。
【００２２】
本発明の更なる利点は、不揮発性メモリが命令メモリとしても使用され得ることにある。
【００２３】
本発明による方法の実施例において、データ更新は不揮発性メモリの予測読み出し（ｐｒｅｄｉｃｔｉｖｅ  ｒｅａｄｉｎｇ）によって行われる。
【００２４】
本発明による方法の更なる実施例において、前記キャッシュメモリは、後続するアドレスに対応するデータで更新される。
【００２５】
続いて本発明は１１個の図面で更に説明される。
【００２６】
マイクロプロセッサが集積されている同じダイ上にフラッシュメモリを集積させることは、技術的な観点から、例えば消費電力、リーク、又は性能（ｑｕａｌｉｆｉｃａｔｉｏｎ）のためにいくつかの問題をもたらすと共に、アーキテクチャの観点から、例えばテスタビリティ（ｔｅｓｔａｂｉｌｉｔｙ）又はシステムの書き込み動作（ｐｒｏｇｒａｍｍｉｎｇ  ｏｐｅｒａｔｉｏｎ）ためのインタフェイスのためにいくつかの問題をもたらす。更にフラッシュメモリがプロセッサのための直接ＩＭＥＭとして使用される場合、優れた動作特性を得る困難性が増大する。実際読み出しアクセスにおけるフラッシュメモリの絶対速度（ａｂｓｏｌｕｔｅ  ｓｐｅｅｄ）は、ＲＯＭ又はＲＡＭの読み出しアクセスにおける速度よりも遅くなる。このことは、適用例のクリティカルデータパスにおいてフラッシュメモリを使用することが全システムのボトルネックになることを示唆している。
【００２７】
前記のように、エンベデッドフラッシュメモリアクセス期間は、所要のプロセッサ動作特性を実現させるためにマイクロプロセッサのクロックレートに追従しなければならない。当該問題を解決するための解決策は、図２に示されているように、フラッシュメモリ２０２とプロセッサ２０３との間のメモリ階層における更なる揮発性メモリ層（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｌａｙｅｒ）にある。コントローラを備えるいわゆるラインキャッシュメモリ２０１が、フラッシュメモリ２０２を高速マイクロコントローラバスシステム２０４にインタフェイスさせている。当該サブシステムは、マルチプロセッサ、フラッシュメモリ以外のいくつかの揮発性キャッシュメモリ、及びいくつかのクロックドメインを備える複雑なシステム（ｃｏｍｐｌｅｘ  ｓｙｓｔｅｍ）を管理するのに非常に適しているが、メモリの読み出し動作特性に高い重点が置かれる場合ＩＭＥＭとしてフラッシュメモリしか備えていない通常の単一のプロセッサシステムにおいて当該システムは非効率となる。
【００２８】
図２において、代表的な高度ＲＩＳＣマシン（ＡＲＭ）によるバスサブシステム（ＡＭＢＡ  ｂｕｓ）が示されている。通常の用途において、システムクロック周期が達成可能なフラッシュメモリサイクル期間よりも短くなる場合、フラッシュメモリ２０２はＩＭＥＭとして使用されるにはあまりに低速である。この場合可能な解決策は、フラッシュメモリ２０２のデータワード幅を増大させると共に、キャッシュメモリとして中間データ記憶レジスタを使用することを可能にするアドレスタグレジスタをもたらす役割を果たすフラッシュメモリ２０２とインタフェイス部２０１を一体化することにある。このようなシステムは、いくつかのマスタ又はＡＲＭ２０３及びクロックドメインの間の調停（ａｒｂｉｔｒａｔｉｏｎ）の必要性のために、データスループットに対してフラッシュメモリ２０２と異なる、更なるボトルネックをもたらす。
【００２９】
当然のことながら、この場合ＩＭＥＭとして不揮発性メモリを使用することに利点はないはずなので、このような解決策がメモリ階層において完全に新たなレベル（ｎｅｗ  ｌｅｖｅｌ）としてもたらされるべきではない。その理由は、キャッシュメモリのサイズが、帯域幅とスループットとの両方の点から最良の特性を得るために可能な限り小さくされなければならないことにある。システムの動作特性は、最も可能性の高いレートでＩＭＥＭから命令をフェッチする能力（ａｂｉｌｉｔｙ）に極めて強く関係しているため、マイクロプロセッサとフラッシュメモリとの間の揮発性インタフェイス部（ｖｏｌａｔｉｌｅ  ｉｎｔｅｒｆａｃｅ）における全てのミスは動作特性の漏れ（ｌｅａｋ）を表している。通常のキャッシュメモリシステムにおいてミスの可能性は、主に
１．動作の開始時点における有効データ（ｖａｌｉｄ  ｄａｔａ）が使用可能でないことを意味するコールドスタート（ｃｏｌｄ  ｓｔａｒｔ）
２．キャッシュメモリスペースからのジャンプ  
３．非常に規則正しく且つシーケンシャルなコードに対しても不十分なキャッシュメモリ容量
に対するミスに分割される。
【００３０】
最初の二つの可能性の場合、プロセッサパイプライン制御ユニット（ｐｒｏｃｅｓｓｏｒ  ｐｉｐｅｌｉｎｅ  ｃｏｎｔｒｏｌ  ｕｎｉｔ）においてアーキテクチャ解決策が見つけられ得る。第三の可能性の場合、アプリケーションコードに関してまさにキャッシュメモリの効率的なサイジング（ｓｉｚｉｎｇ）の問題にはならない。前記メモリがＩＭＥＭの場合、前記特性はフラッシュメモリの制限された帯域幅及び遅いアクセス速度に常に起因する。
【００３１】
前記のように、この種のシステムの手法（ａｐｐｒｏａｃｈ）は、フラッシュメモリとプロセッサとの間にｎライン揮発性レジスタ（ｎ−ｌｉｎｅ  ｖｏｌａｔｉｌｅ  ｒｅｇｉｓｔｅｒ）とのインタフェイス部を組み込むことにある。当該レジスタからプロセッサは高いヒットのレートで命令をフェッチし得る。自身のレジスタにおけるデータのミス（ｍｉｓｓ）の間、インタフェイス部はフラッシュメモリ上で読み出し動作を開始し、プロセッサを待機状態（ｗａｉｔ  ｓｔａｔｅ）に保持し、レジスタを、すぐにフラッシュメモリから読み出され得る最大量のデータで満たす。このように、非常に規則正しいコード（レギュラコード（ｒｅｇｕｌａｒ  ｃｏｄｅ））の場合、マイクロプロセッサによってフェッチされる次の命令は、フラッシュメモリにおいてシリアル（直列）に位置され、それから最初のミス後、ラインキャッシュメモリにも既にもたらされているべきである。プロセッサが、キャッシュにもたらされている全てのワードを読み出したとき、ラインキャッシュメモリにおける制限された数のワードに起因する決定的なミス例（ｄｅｔｅｒｍｉｎｉｓｔｉｃ  ｍｉｓｓ  ｃａｓｅ）がもたらされるであろう。不都合なことに、キャッシュメモリサイズを拡張することは、一度にフラッシュメモリから読み出され得る固定された数のワードのために役立たない。そのためここでもこのようなシステムにおける主な制限はフラッシュメモリの帯域幅にある。更にｎラインキャッシュメモリがインタフェイス部に組み込まれる場合、ｎラインキャッシュメモリは、単一のフラッシュメモリ読み出しアクセスで達成され得るデータの最大値よりも大きな複数のデータで満たされ得ない。
【００３２】
以下、本発明によるアーキテクチャが記載される。
【００３３】
図３は、本発明によるアーキテクチャのブロック図を示している。
【００３４】
フラッシュメモリ６０２への第一のミスサイクルアクセス（ｍｉｓｓ  ｃｙｃｌｅ  ａｃｃｅｓｓ）の後、例えばｘワード（ｘ  ｗｏｒｄ）のようなある数のワード又は命令がキャッシュメモリ６０１．１及び６０１．２において使用可能になる。この時点で当該ワードを、それらが使用可能になるとすぐにマイクロプロセッサ６０３にもたらすことは必要となる。当該プロセッサは待機状態から出て、全てのクロックサイクルで新たな命令を照会（ｑｕｅｒｙ）し続けるであろう。インタフェイス部における第一のレベルの自動化（ａｕｔｏｍａｔｉｏｎ）は、第一のｘワードが使用可能になった後、フラッシュメモリ６０２を照会することをすぐに再開することにあり、アドレスが自発的にインクリメントされる。
【００３５】
問題は、システムクロック周波数について先験的に知られていないことに、ラインキャッシュメモリ６０１．１及び６０１．２から全てのｘ命令をフェッチするためにプロセッサ６０３によって必要とされる期間を予測することが不可能であることにある。このことは、前記期間がフラッシュメモリ６０２の他の非同期アクセス期間よりも長くなるか、又は短くなるかは予測不可能であることを意味する。実際フラッシュメモリ６０２への第二の自動的なアクセスが完了させられる前に、周波数が、キャッシュメモリ６０１．１及び６０１．２はワード毎に完全に読み出されるようにもたらされる場合、フラッシュメモリ６０２上の進行中の読み出し動作に加えてプロセッサミス要求がもたらされるため、競合（ｃｏｎｆｌｉｃｔ）が発生するであろう。更にキャッシュメモリ６０１．１及び６０１．２のコンテンツを無効化すると共に自発的な読み出しが進行している間にここでもミス要求を発生させる、第一のｘワードにおけるコードがジャンプを含む場合、同じ現象が発生するであろう。従っていわゆる予測手法はフラッシュメモリ６０２の読み出し動作を予測するための好ましい概念（ｗｉｎｎｉｎｇ  ｉｄｅａ）となるが、次のｘワードのためのフラッシュメモリ６０２を自発的に照会し始めるインタフェイス部に対しては直接的でない。前記システムに対する改善を得ると共に、前記競合及び読み出しレイテンシを増大させないため、前記制御において注意が払われなければならない。第一の考慮すべき点は、読み出し動作が、中止（ａｂｏｒｔ）することに適しているべきことにある。この場合、実際フラッシュメモリ６０２において、予測される新たな読み出しを自発的に開始させ、当該読み出しを最終的に中止させると共に、他のアドレス上で再開させることが動的に決定され得る。
【００３６】
図４ａ及び４ｂにおいて、図３に示されているアーキテクチャによって行われる動作の流れ図がもたらされている。この実施例において、以下両方ともフラッシュメモリの帯域幅（ｘワード）と同じサイズである、Ａラインキャッシュメモリ６０１．１及びＢラインキャッシュメモリ６０１．２と称される２ラインキャッシュメモリを使用することが仮定されている。
【００３７】
以下のように、本発明によるアルゴリズムが記載されている。
【００３８】
図３に示されているアーキテクチャによって行われる動作のシーケンスが、図４ａ及び図４ｂに示されている流れ図に記載されている。図の二つの部分が接続点I、II、及びIIIを介して互いに接続されている。
【００３９】
１．マイクロプロセッサ６０３からの要求が正常なキャッシュメモリにおいて開始させられると仮定されると、インタフェイス部６０５は比較器（コンパレータ）６０６でアドレスを二つのタグＴａｇ  Ａ及びＴａｇ  Ｂと比較するであろう。二つのライン、Ａラインキャッシュメモリ６０１．１又はＢラインキャッシュメモリ６０１．２のうちの一つの上でヒットが発生するときはいつでも、他のラインキャッシュメモリは予測読み出しを介して満たされるであろう。ラインキャッシュメモリ６０１．１と６０１．２との両方におけるミスの場合（これはＨｉｔ  Ａ＝０及びＨｉｔ  Ｂ＝０を意味する）、Ａラインキャッシュメモリ６０１．１を満たすためにフラッシュメモリ６０２における読み出し動作が開始させられる。
【００４０】
２．フラッシュメモリ６０２からｘワードを読み出した後、インタフェイス部６０５はＡラインキャッシュメモリ６０１．１を満たすと共に有効化し、プロセッサ６０３によって必要とされるワードをもたらす。これはいわゆる書き込みを介した手法（ライトスルーアプローチ（ｗｒｉｔｅ  ｔｈｒｏｕｇｈ  ａｐｐｒｏａｃｈ））である。
【００４１】
３．同時にインタフェイス部６０５は次の新たな予測読み出しを開始させる（これは、Ｂラインキャッシュメモリ６０１．２を満たすためのフラッシュメモリのｘ＋１アドレスを意味する）。
【００４２】
４．予測読み出しの間、インタフェイス部６０５はマイクロプロセッサ６０３からの要求を依然モニタしている。三つの例は、予測読み出しの終了前に可能となる。
【００４３】
ａ）プロセッサ６０３は内部動作を行っており、他の命令をフェッチすることを停止する。この場合、予測読み出しの終了の際にＢラインキャッシュメモリ６０１．２が満たされ、第二のタグＴａｇ  Ｂが有効化される。
【００４４】
ｂ）プロセッサ６０３はＡラインキャッシュメモリ６０１．１から他のワードを要求する（これは、Ｈｉｔ  Ａ＝１を意味する）。予測読み出しワードは終了まで進み、Ｂラインキャッシュメモリ６０１．２を満たし、第二のタグＴａｇ  Ｂを有効化する。
【００４５】
ｃ）プロセッサ６０３は、Ａラインキャッシュメモリ６０１．１にもたらされていないワードを要求する（これは、Ｈｉｔ  Ａ＝０を意味する）。プロセッサ６０３は既にＡラインキャッシュメモリ６０１．１に全ての命令をフェッチしているため、この例はジャンプに対して発生し得る。インタフェイス部６０５はこの場合、予測読み出しのアドレスが依然走っている間、要求されるアドレスを第二のタグＴａｇ  Ｂと比較するであろう。この場合二つの例が発生し得る。
【００４６】
ｃ．１）アドレスが等しくない。この場合、予測は正しくなかったことになる。ラインキャッシュメモリＡライン６０１．１とＢライン６０１．２との両方は有効にならず、実行されている読み出し動作は、正しいアドレスで新たな読み出しを開始するために中止させられなければならない。コールドスタートについては、新たな読み出しワードがＡラインキャッシュメモリ６０１．１を満たし、それからＢラインキャッシュメモリ６０１．２を満たす新たな予測読み出しが開始させられるであろう。
【００４７】
ｃ．２）アドレスが等しい。従ってＢライン６０１．２はまだ動作可能状態でない（準備されていない）ためそれが真のヒット（ｒｅａｌ  ｈｉｔ）でない場合も、予測は正しかったことになる。この場合大きな利点は、当該アドレス上の読み出しが既に開始させられており、これによりマイクロプロセッサ６０３に対する待機状態の数、及びそれからレイテンシが低減させられるであろうことにある。それ故に予測読み出し動作は効果的であり、自身の終了の際、新たな予測読み出しがＡラインキャッシュメモリ６０１．１を満たすために開始させられるであろう。
【００４８】
アドレスは第一の予測器（ｐｒｅｄｉｃｔｏｒ）６１０及び第二の予測器６１１によって増加させられる。第一の予測器６１０は、Ｔａｇ  Ｂを使用すると共に、それをある第一の値、例えば４でインクリメントする。第二の予測器６１１はＴａｇ  Ａを使用すると共にそれを、通常第一の値と同じ第二の値でインクリメントする。
【００４９】
図５、６、及び７において、主な動作のタイミング図が示されている。この例において、フラッシュメモリアクセス期間は、プロセッサクロック速度の約３倍と仮定され、読み出しモードにおけるフラッシュメモリのワード幅は二つのラインキャッシュ、Ａライン６０１．１及びＢライン６０１．２と同様４ワードと仮定される。
【００５０】
図５に示されている例において、ミスサイクルの後、キャッシュメモリＢライン６０１．２に対する予測読み出しにより、最初の４ワード後の無待機読み出し（ｎｏ−ｗａｉｔ  ｒｅａｄｉｎｇ）が可能になる。
【００５１】
図６に示されている例において、ミスサイクル及び更なるヒットサイクルの後、ジャンプが前記コードにおいて発生するが、ジャンプされたアドレスは予測されたアドレスと等しくなり、そのときミス読み出し動作は既に開始させられている。これにより、待機状態の数が２から１に低減させられ得る。この場合も、クロック速度がより速く、Ａラインキャッシュメモリ６０１．１がＢラインキャッシュメモリ６０１．２に対するフラッシュメモリ上の予測アクセス以外で完全に読み出されるであろう。
【００５２】
図７に示されている例において、ミスサイクル及び更なるヒットサイクルの後、ジャンプが前記コードにおいて発生するが、この場合ジャンプされたアドレスは予測された  アドレスと異なっており、そのときＢラインキャッシュメモリ６０１．２に対する予測読み出しは中止させられなければならず、新たなミス読み出しが開始させらなければならない。この場合、予測読み出し動作を通じた改善（ｇａｉｎ）はもたらされていないが、更なるレイテンシがコントローラによって追加されていない。
【００５３】
アーキテクチャの記載から、本発明のいくつかの利点が明らかとなる。インタフェイス部６０５は、制御論理部に対して更なる待機状態をもたらすことなく完全に明らかな態様で、ラインキャッシュメモリ６０１．１及び６０１．２においてミス率を低減させ得るか、又は予測されたミスに対して待機状態の数を低減させ得る。これらの結果は完全な連想キャッシュ（ａｓｓｏｃｉａｔｉｖｅ  ｃａｃｈｅ）として使用されるレジスタバンク（ｒｅｇｉｓｔｅｒ  ｂａｎｋ）を制御するための効率的なハードウエアアルゴリズムによって達成される。
【００５４】
新規性は、小さなキャッシュ容量のためにミス率を激減させることを目的とするハードウエアアルゴリズムにあり、規則的なシリアルコードを備える全てのこのような用途におけるシステム特性を改善するのに非常に適している。自身の構造的な実現を伴う本発明は、マスタとしての単一のマイクロプロセッサが、異なるワード幅を備える命令メモリとして低速アクセスエンベデッドフラッシュメモリを使用する全ての用途に非常に適している。この場合でも、命令毎のシステムサイクル（ＣＰＩ（ｃｙｃｌｅ  ｐｅｒ  ｉｎｓｔｒｕｃｔｉｏｎ））及び毎秒百万命令（ＭＩＰＳ（ｍｉｌｌｉｏｎ  ｉｎｓｔｒｕｃｔｉｏｎｓ  ｐｅｒ  ｓｅｃｏｎｄ））の演算性能はメモリのスループットに極めて依存している。従ってインタフェイス部がフラッシュメモリを照会することについてより高速になれば、性能はより高くなる。
【００５５】
本発明が二つのラインキャッシュメモリを備えるインタフェイス部に限定されることはない。キャッシュメモリに対するいくつのラインが選択されるべきかは技術目的に依存する。例えばときには三つ又は四つのラインキャッシュメモリが有用となり得る。  
【図面の簡単な説明】
【００５６】
【図１】最新技術によるエンベデッドフラッシュメモリを備える高度ＲＩＳＣマシンによるサブシステムを示す。
【図２】バス幅よりも広いフラッシュメモリワード幅を備えるフラッシュメモリとシステムバスとの間のラインキャッシュメモリを示す。
【図３】本発明によるアーキテクチャのブロック図を示す。
【図４ａ】メモリを読み出す際に本発明によるアーキテクチャによって行われる動作の流れ図の第一の部分を示す。
【図４ｂ】メモリを読み出す際に本発明によるアーキテクチャによって行われる動作の流れ図の第二の部分を示す。
【図５】本発明によるアーキテクチャでのジャンプなしで六つの命令をフェッチするための読み出し動作に含まれる主な信号のタイミング図を示す。
【図６】本発明によるアーキテクチャでのクローズワードへの一つのジャンプで五つの命令をフェッチするための読み出し動作に含まれる主な信号のタイミング図を示す。
【図７】本発明によるアーキテクチャでのミス命令への一つのジャンプで五つの命令をフェッチするための読み出し動作に含まれる主な信号のタイミング図を示す。
【図１】
2005524170.tif 000004
【図２】
2005524170.tif 000005
【図３】
2005524170.tif 000006
【図４ａ】
2005524170.tif 000007
【図４ｂ】
2005524170.tif 000008
【図５】
2005524170.tif 000009
【図６】
2005524170.tif 000010
【図７】
2005524170.tif 000011
【国際調査報告】
2005524170.tif 000012
2005524170.tif 000013
2005524170.tif 000014