(57)【要約】【課題】不揮発性メモリまたはフラッシュメモリを有する多重プロセッサデバイスのアクセス速度が不十分であるという問題に対して、著しい改善法を提供すること。【解決手段】本発明は、共用の不揮発性メモリと、このメモリのアクセス制御設計とを有する多重プロセッサ装置、特に、移動電話、ＰＤＡ、またはラップトップコンピュータに使用される回路（ＩＣ）に埋め込まれている、または集積化されているメモリに関する。電力消費を減らすために、プロセッサのクロックレートは、現在の性能要件に応じて、頻繁に変化する。メモリからデータを取り出す特定のマイクロプロセッサは、通常、データが使用可能になるまで停止してしまうため、後者の読み取りアクセス時間は、不揮発性メモリを共用するプロセッサの異なるクロックレートによって、相対的に長くなる。二重ポートまたは多重ポートの不揮発性メモリと多重の非同期クロックとを使用する場合、ポート間でクロックを同期化する必要があるため、アクセス時間は、更に長くなる。本発明は、各プロセッサに専用であることが好ましく、各々を、その関連するプロセッサと同期化させながらクロックすると有利な、複数の待ちタイマを設けることによって、この問題を解決する。これは、アクセス時間を著しく短縮させるため、電力を損なうことなく、全体的な性能を向上することが出来る。【選択図】図１
2004522235.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと少なくとも１つの共用の不揮発性メモリとを有する多重プロセッサデバイスであって、特に、２つ以上の当該プロセッサの共用メモリへのアクセスを制御するためのアクセスアービトレーション手段と同期化手段とを有する、集積回路に埋め込まれている不揮発性メモリを有する多重プロセッサデバイスにおいて、
その各々が、当該メモリを共用する当該プロセッサ専用の複数のタイマ手段、好ましくはカウンタ手段と、
各当該タイマ手段が、前記関連するプロセッサのシステムクロックとの同期性を有してクロックされること、
を特徴とする、多重プロセッサデバイス。
【請求項２】
前記アービトレーション手段の制御の下にある前記プロセッサの各々に対して、前記共用メモリへのアクセスを提供する多重化装置を更に有する、請求項１に記載の多重プロセッサデバイス。
【請求項３】
各プロセッサが、専用システムクロックを有し、かつ、
当該プロセッサに関連する少なくとも１つの専用タイマ手段が、当該プロセッサのシステムクロックによって、直接結合および／または直接駆動される、請求項１または請求項２に記載の多重プロセッサデバイス。
【請求項４】
前記アービトレーション手段が、当該メモリへの所望のアクセスに対する許可信号を提供すると直ちに、作動可能信号が、前記タイマ手段によって生成され、かつ前記関連するプロセッサに伝送される、前記請求項の何れかに記載の多重プロセッサデバイス。
【請求項５】
前記アクセスアービトレーション手段が、前記タイマ手段の各々に、直接または関連の同期化手段を介して結合されている、前記請求項の何れかに記載の多重プロセッサデバイス。
【請求項６】
クロック速度が異なる複数のマイクロプロセッサと、２つ以上の当該マイクロプロセッサによって共用されている１つ以上の不揮発性メモリとの間の前記同期化を最適化する方法であって、前記メモリアクセスが、アービトレーション手段によって制御される方法において、
各当該マイクロプロセッサに別々の待ちカウントを確実に提供し、
当該アービタからの許可信号によって各々の当該待ちカウントを起動し、かつ、
各当該マイクロプロセッサへの前記メモリアクセスを別々に同期化すること、
を特徴とする方法。
【請求項７】
前記メモリアクセスの同期化が、前記アービタからの前記許可信号と同時に始動するために、前記メモリアクセスの時間と重なり合う、請求項６に記載の方法。
【請求項８】
前記アービトレーションが、特定のメモリまたはメモリの特定ポートに対して許可されると直ちに前記待ちカウントが起動する、請求項６または請求項７に記載の方法。
【請求項９】
前記待ちカウントが、特定のメモリまたはメモリの特定のポートに対するアービトレーションの許可に基づいて、起動される前に、予め定められているｄ同期化遅延が、前記待ちカウントから差し引かれる、請求項８に記載の方法。
【請求項１０】
クロック速度が異なる複数のプロセッサのアクセスを、少なくとも一つの共用の不揮発性メモリに制御するための方法であって、前記メモリアクセスが、アービトレーション手段と同期化手段とによって制御される方法において、
各プロセッサ専用のアクセス制御カウンタを設け、
各当該専用カウンタを各当該ｄ専用プロセッサに同期化させ、
当該アービトレーション手段によって各当該カウンタを起動し、かつ、
各当該プロセッサの前記メモリアクセスを別々に同期化すること、
を特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的に、通常電池駆動であるので、低い電力消費で高い処理性能を提供する必要がある、移動電話、ＰＤＡ、またはラップトップコンピュータのような、携帯型マイクロプロセッサの適用に関する。必要な電力節約は、システムの現在の性能要件に応じてプロセッサのクロックレートを変化させることによって、達成させることが多い。この他に、このようなデバイスの性能は、多重プロセッサ、例えば、幾つかのマイクロコントローラおよび／またはＤＳＰを移動電話に設けることによって、向上することが多い。また、このような多重プロセッサを備えるデバイスは、プロセッサ間の、通信を行うための共用メモリと共用資源を使用することが多い。
【０００２】
【従来の技術】
不揮発性メモリ（例えば、フラッシュメモリ）を共用メモリとして使用する場合、メモリからデータを取り出す特定のマイクロプロセッサは、通常、データが使用可能になるまで停止してしまうため、メモリの相対的に長い読み取りアクセス時間（一般的には４０〜８０ ｎｓの範囲）により、多重プロセッサデバイス全体の稼動速度が決まってします。二重または多重−ポートの不揮発性メモリと多重非同期クロックとを有するシステムの場合、ポート間でクロックを同期化させる必要があるため、アクセス時間は更に長くなる。
【０００３】
従って、プロセッサ／メモリの同期化の最適化によって、これらのアクセス時間を短縮することにより、多重プロセッサを備えるデバイス全体の機能は、明らかに、向上させることが出来る。
【０００４】
しかしながら、このように不揮発性メモリを一つ以上のマイクロプロセッサに同期化させることを実現することは、決して容易ではなく、かつ、このような装置が期待される効果を示すことが可能となる前に、解決しなければならないいくつかの問題をもたらす。これらの問題の１つは、同期化が必要な場合には必ず、時間遅延が発生することである。これは、この時間遅延が、既知のコンポーネントと未知のコンポーネントからなるために、その遅延を決定することが出来ないという事実によって、より複雑になる。
【０００５】
Ｋｈａｎ外は、米国特許第５，３０２，４５２号で、異なる周波数で駆動される単一のマイクロプロセッサとバスコントローラとを有するパーソナルコンピュータシステムを説明している。しかしながら、多重マイクロプロセッサと、特に、不揮発性メモリまたはフラッシュメモリとを有する装置の取り扱い方法については、開示または言及していない。
【０００６】
関連性が明らかである他の機器が、Ｋａｄｌｅｃ外による米国特許第５，２４７，６４２号に開示されている。これは、待ち状態をゼロに下げるためにメモリアドレスのキャッシャビリティ（ｃａｃｈｅａｂｉｌｉｔｙ）を決定する方法を示している。キャッシュと、固く結合されている関連するその主メモリとを有する単一のマイクロプロセッサが、開示されている。外部の数値演算コプロセッサまたは主メモリのような、いわゆる「ゼロ−待ち−状態デバイス（ｚｅｒｏ−ｗａｉｔ−ｓｔａｔｅ ｄｅｖｉｃｅ）」との協調性を向上させるため、（アドレス指定されている）デバイスに応じて、キャッシュイネーブル信号（ｃａｃｈｅ ｅｎａｂｌｅ ｓｉｇｎａｌ）を選択的に生成する高速決定回路が、設けられている。Ｋａｄｌｅｃ外は、複数の（マイクロ−）プロセッサと１つの共通メモリとを有する装置を開示しているが、特定の限界がある不揮発性メモリまたはフラッシュメモリを含む装置の実現方法または取り扱い方法は、示していない。また、選択されている解決法、すなわちキャッシャビリティの決定は、非常に特有であるため、他の環境に適用することが出来ず、当然、不揮発性メモリまたはフラッシュメモリを含む多重プロセッサ装置には適していない。
【０００７】
【課題を解決するための手段】
本発明は、このため、不揮発性メモリまたはフラッシュメモリを有する多重プロセッサデバイスのアクセス速度が不十分であるという問題に対して、著しい改善法を提供する。以下、本発明と、本発明が上記で明らかにした問題の解決方法とを、特定の方法を冒頭に、実施例と図面によって説明する。
【０００８】
本発明は、原則として、本質的に、複数のマイクロプロセッサと、一つ以上の関連する不揮発性メモリまたはフラッシュメモリとの間の同期化を最適化することにより、所望の改善法を提供する。本発明により、メモリアクセスと同期化遅延とが、常に最適となり、かつ、対応するマイクロプロセッサのクロックレートから独立し、この結果、驚くべきことに、性能が平均３０ ％以上向上する。
【０００９】
【発明を実施するための形態】
図１は、ＣＰＵ ＡとＣＰＵ Ｂとを有する二重プロセッサシステムを示す。アービトレーションの後、両方のＣＰＵは、多重化装置を介して、不揮発性メモリ（本願明細書ではフラッシュメモリ）のアレーにアクセスする。図示されているように、この例の場合、ＣＰＵ Ｂとメモリアービタは、信号ＣＬＫ＿Ｂによってクロックされ、ＣＰＵ Ａは、ＣＬＫ＿Ａによってクロックされる。アービトレーションは、アービトレーションアルゴリズムに応じて、ＣＰＵ ＡまたはＣＰＵ Ｂの何れかへのアクセスを許可する、アクセスアビトレーション（Ａｃｃｅｓｓ Ａｒｂｉｔｒａｔｉｏｎ）という名称の同期化アクセスアービタによって行われる。待ちタイマは、メモリのデータが、その有効ポートでいつ使用可能になるかを決定する。これは、信号ＲＤＹ＿Ａまたは信号ＲＤＹ＿Ｂによって、各々、関連するＣＰＵに示される。ＣＰＵ Ａは、アクセスアービタとは別にクロックされるため、ＣＰＵ Ａに往来する信号は、処理可能になる前に、まず同期化しなければならない。この同期化は、一方は、同期化されるとＳＲＤＹ＿Ａになる上述の信号ＲＤＹ＿Ａに対し、かつ他方は、ＣＰＵ＿Ａからアクセスアービタに向かう信号に対し、ＳＹＮＣという名称の各方向に独立した同期化装置によって処理される。
【００１０】
図２は、図１の共用フラッシュメモリ内におけるアービトレーションと同期化処理とを示す。ＣＰＵ ＡのクロックＡ（信号ＣＬＫ＿Ａ）は、ＣＰＵ ＢのクロックＢ（信号ＣＬＫ＿Ｂ）より高いレートで動作すると仮定する。信号ＣＳ＿Ａは、ＣＰＵ Ａがフラッシュメモリへのアクセスを要求していることを示す。フラッシュメモリ上で他の活動が全くない場合、アービタは、このメモリへのアクセスをＣＰＵ Ａに許可する。ＧＮＴ＿Ａ信号が有効化されると直ちに、メモリアレーは、適切なＣＰＵ Ａのアドレスによってアドレス指定され、かつ時間ＴａｃｃＦｌａｓｈ後に、データが、ＣＰＵ Ａに提供される。Ｆｌａｓｈ＿ＤＡＴＡは、フラッシュメモリまたは不揮発性メモリから転送されるデータである。データが使用可能であることをＣＰＵ Ａに示すのはＲＤＹ＿Ａ信号で、これは、待ちタイマによって制御される。ＣＰＵ Ａがそのサイクルを継続することが可能となる前に、まず信号ＲＤＹ＿Ａを、信号ＣＬＫ＿Ａによって同期化しなければならない。これには同期化時間Ｔｓｙｎｃが必要である。この例の場合、待ちカウンタは、ＣＰＵ Ｂによってクロックされているため、必要な待ちサイクルの数は、
ＴａｃｃＦｌａｓｈ／Ｔｃｌｋｂ
となる。
【００１１】
従って、ＣＰＵ Ａのメモリアクセス時間の合計は、ＧＮＴ＿Ａの後に計算し、かつアービトレーションに必要な時間を含まない場合、
Ｔｓｙｎｃ ＋ ｗａｉｔｃｎｔ ＊ Ｔｃｌｋｂ
となる。
【００１２】
以下の式は、ＣＰＵ Ａの最小の時間遅延を決定する。
ｔａｃｃＣＰＵｍｉｎ ＝ Ｔｓｙｎｃｍｉｎ ＋ ｗａｉｔｃｎｔ ＊ Ｔｃｌｋｂ ＝ Ｔｃｌｋａ ＋ （ＴａｃｃＦｌａｓｈ／Ｔｃｌｋｂ） ＊ Ｔｃｌｋｂ．
【００１３】
最大の時間遅延は、以下の通りである。
ｔａｃｃＣＰＵｍａｘ ＝ Ｔｓｙｎｃｍａｘ ＋ ｗａｉｔｃｎｔ ＊ Ｔｃｌｋｂ ＝ ２Ｔｃｌｋａ ＋ （ＴａｃｃＦｌａｓｈ／Ｔｃｌｋｂ） ＊ Ｔｃｌｋｂ．
【００１４】
ＣＰＵアクセス時間の合計は、２つのＣＰＵのクロック速度（すなわち、ＣＬＫ＿ＡとＣＬＫ＿Ｂ）に依存するという結果になる。例えば、ＣＬＫ＿Ｂを、ＣＰＵ ＡのＣＬＫ＿Ａより非常に遅く設定すると（これは、ＣＰＵ Ｂの電力節約と言う点では意味があるが）、ＣＰＵ Ａの性能が損なわれてしまう。この逆も同様である。これは、フラッシュメモリの動作を低下させるため、全く望ましくない。
【００１５】
図２は、待ち状態が待ちカウンタによって決定されるまで、Ｔｓｙｎｃが始動しないため、ＣＰＵ Ａが更に遅延することも示している。
【００１６】
上述したシステムが、幾つかの望ましくない効果を示していることは、明らかである。
【００１７】
システムの性能は、クロックレートと、これらの関係または相互依存性とに大きく依存している。言い換えれば、１つのＣＰＵのクロックレートは、このＣＰＵが無効な場合でも、他のＣＰＵの、フラッシュメモリまたは他の不揮発性メモリへのアクセス時間に影響を与える。
【００１８】
両方のＣＰＵに対する待ち状態挿入分解（ｉｎｓｅｒｔｉｏｎ ｒｅｓｏｌｕｔｉｏｎ）は、常に、システム内で最も遅いクロックのそれとなる。
【００１９】
同期化が必要なために、「逆」クロック領域のプロセッサは、更に遅延を受ける。
【００２０】
二重または多重ポートの不揮発性メモリと多重非同期クロックとを有するシステムの場合、ポート間でクロックを同期化する必要があるため、アクセス時間は、更に長くなる。
【００２１】
本発明は、上記の全ての問題に対して、解決法を提供する。本発明による改良点は、本質的に、以下の主な方法の結果である。
【００２２】
各ＣＰＵが、それ独自の待ちタイマを有していること。この待ちタイマを、固有のＣＰＵクロックによってクロックすること。
【００２３】
待ちタイマは、アービトレーションが、ある特定のポートに対して許可されると、直ちに起動する。同期化は、許可信号に対して既に行われている。最小の同期化遅延は、システムに知られているため、待ちカウントから差し引くことが出来、この結果、時間を更に節約出来る。待ちタイマは、関連するプロセッサのクロック周期をカウントすることによって、待ち時間を生成する。同期化遅延の１つのコンポーネント、すなわち上述した「知られているコンポーネント」が知られているため、これを、待ち時間全体の一部として考慮することが出来、かつ、待ちカウントを、この知られている遅延の量分、短縮することが出来る。これにより、本発明による設計の機能が、更に向上する。
【００２４】
図４は、ここで、本発明による専用の待ちタイマを有する、共用の不揮発性メモリまたはフラッシュメモリのアービトレーションと同期化処理とを示す。図示されているように、クロックＡは、クロックＢのＣＬＫ＿Ｂより高いレートＣＬＫ＿Ａで動作すると仮定する。信号ＣＳ＿Ａは、ＣＰＵ Ａがメモリへのアクセスを要求していることを示している。メモリで他の活動が全くなければ、アービタは、ＣＰＵ Ａにこのアクセスを許可する。ＧＮＴ＿Ａ信号が有効になると直ちに、メモリは、ＣＰＵ Ａアドレスによってアドレス指定され、かつ時間ＴａｃｃＦｌａｓｈの後、データがＣＰＵ Ａに提供される。
【００２５】
信号ＧＮＴ＿Ａは、クロックＡ（すなわち信号ＣＬＫ＿Ａ）に同期化されていて、かつ、図３に示されている待ちタイマＡを起動する。同期化は、信号ＧＮＴ＿Ａの時点ですでに開始しているため、アクセス時間が同期化時間より長い場合、メモリアクセス時間と重なり合う。通常、アクセス時間は同期化時間より長い。待ちタイマＡは、ＣＬＫ＿Ａによってクロックされるため、直ちにＲＤＹ＿Ａ信号を使用して、ＣＰＵ Ａの実行制御にシグナルを送り、そのサイクルを継続することが出来る。
【００２６】
信号ＧＮＴ＿Ａを信号ＣＬＫ＿Ａによって同期化するためには、時間Ｔｓｙｎｃが必要である。最小の同期化遅延は、１つのＴｃｌｋａサイクルとして知られているため、この遅延を、直ちに差し引くことが出来る。従って、必要な待ちサイクルの数を、
（ＴａｃｃＦｌａｓｈ／Ｔｃｌｋａ） −１
と計算することが出来る。
【００２７】
ＣＰＵ Ａのメモリアクセス時間の合計は、以下の通りである。
（１ − ２） Ｔｃｌｋａ ＋ （ＴａｃｃＦｌａｓｈ −１） ＊ Ｔｃｌｋａ
（これは、信号ＧＮＴ＿Ａが有効になったために、アービトレーション時間が含まれていないと仮定して、計算されている。）
【００２８】
以下の式は、ＣＰＵ Ａに関する図４に示す実施例における最小の時間遅延を決定する。
ｔａｃｃＣＰＵｍｉｎ ＝ Ｔｓｙｎｃｍｉｎ ＋ ｗａｉｔｃｎｔ ＊ Ｔｃｌｋａ ＝ Ｔｃｌｋａ ＋ （ＴａｃｃＦｌａｓｈ／Ｔｃｌｋａ −１） ＊ Ｔｃｌｋａ
【００２９】
ＣＰＵ Ａの最大の時間遅延は、以下の通りである。
ｔａｃｃＣＰＵｍａｘ ＝ Ｔｓｙｎｃｍａｘ ＋ ｗａｉｔｃｎｔ ＊ Ｔｃｌｋａ ＝ ２Ｔｃｌｋａ ＋ （ＴａｃｃＦｌａｓｈ／Ｔｃｌｋａ） ＊ Ｔｃｌｋａ
【００３０】
この結果は、ＣＰＵ Ａへのアクセス時間の合計が、今や、クロックＢの信号ＣＬＫ＿Ｂに依存しないことを示している。このことから、結果的に以下の利点が得られる。
【００３１】
すなわち、他のクロック領域、すなわち「逆」クロック領域に対する同期化は、許可レベル、すなわちデータが使用可能となる前に、既に行われていること。同期化の最小の遅延は、システムに知られているため、開始時点すなわち待ちタイマで差し引くことが出来ること。
【００３２】
挿入された待ち状態のグリッドは、両方のプロセッサに同期しているため、クロック周波数が著しく異なっていても、時間が無駄になることは全くない。
【００３３】
メモリアクセスの性能は、何れのシステムクロックにも依存しない。
【００３４】
以下の表は、共用の待ちタイマを使用して挿入された待ち状態と、本発明による専用の待ちタイマを使用して挿入された待ち状態との比較表である。この新しい同期化方式の利点は、極めて明らかである。例えば、クロックＢ（信号ＣＬＫ＿Ｂ）が、１３ ＭＨｚ、２６ ＭＨｚ、または３９ ＭＨｚで動作するのに対して、クロックＡ（信号ＣＬＫ＿Ａ）には、２６ＭＨｚという１つの周波数が選択される。３つの列は、各々、埋め込まれている不揮発性メモリまたはフラッシュメモリへの、４０ｎｓ、６０ｎｓ、または８０ｎｓという典型的なアクセス時間を列挙したものである。これらのメモリアクセス時間は、通常、メモリの電源電圧に依存する。この表は、ＣＰＵ Ａが、メモリフェッチのために挿入しなければならない待ちサイクルの数を示している。２つの専用の待ちタイマを使用したこの新しい方法によって、ＣＰＵ Ａの少なくとも１つの待ち状態が節約されることが分かる。ＣＰＵ ＢがＣＰＵ Ａより低い周波数で動作し、かつ、メモリへのアクセス時間が長いと、利点は更に大きくなる。この場合、待ちサイクルを２つまたは３つも節約することが出来る。概して言えば、性能が平均３０％も向上するという結果が得られるため、更なるコメントは不要である。
【００３５】
以下の表は、クロックＡ（ＣＬＫ＿Ａ）の周波数を２６ＭＨｚに固定し、クロックＢの周波数と、Ｔｃｌｋａを単位とするメモリアクセス時間（すなわち、「３〜４」は「３〜４ Ｔｃｌｋａ」を表す）とを変化させて、共用の待ちタイマを適用した場合と、専用の待ちタイマを適用した場合とを比較したものである。
2004522235.tif 000003
【００３６】
本発明は、移動電話、ＰＤＡ（ｐｅｒｓｏｎａｌ ｄｉｇｉｔａｌ ａｓｓｉｓｔａｎｔｓ）、ＧＰＳシステム、カーナビゲーションデバイスのような、マイクロプロセッサによって不揮発性メモリを高度に集積化する必要がある装置に適用すると特に有益となる可能性があり、かつ、本発明は、一つの実施例でしか示されていないが、当業者は、本発明の要旨と添付されている請求の範囲の範囲とから逸脱することなく、上述した原理による修正態様と変更態様とを導入することが可能となるであろう。
【図面の簡単な説明】
【図１】２つのクロック領域内の２つのＣＰＵによって共用される不揮発性メモリまたはフラッシュメモリである。
【図２】共用の不揮発性メモリに対するアービトレーションと同期化である。
【図３】本発明による専用の待ちタイマを有する共用の不揮発性メモリシステムである。
【図４】本発明による専用の待ちタイマを有する共用メモリシステムのタイミングである。
【図１】
2004522235.tif 000004
【図２】
2004522235.tif 000005
【図３】
2004522235.tif 000006
【図４】
2004522235.tif 000007
【国際公開パンフレット】
2004522235.tif 000008
2004522235.tif 000009
2004522235.tif 000010
2004522235.tif 000011
2004522235.tif 000012
2004522235.tif 000013
2004522235.tif 000014
2004522235.tif 000015
2004522235.tif 000016
2004522235.tif 000017
2004522235.tif 000018
2004522235.tif 000019
2004522235.tif 000020
2004522235.tif 000021
【国際調査報告】
2004522235.tif 000022
2004522235.tif 000023