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