(57)【特許請求の範囲】
【請求項１】
第１のメモリ・アクセス・タイミング特性を有する第１のメモリと、第１のメモリ・アクセス・タイミング特性と異なる第２のメモリ・アクセス・タイミング特性を有する第２のメモリとを備える処理システムにおけるメモリ・アクセス・タイミングの制御方法において、
第１のメモリにアドレスを出力するアドレス出力工程と、
アドレスの一部を直接使用することによって、第１のメモリ・アクセス・タイミング特性を異なるメモリ・アクセス・タイミング特性に修正するメモリ・アクセス・タイミング特性修正工程とを含み、前記異なるメモリ・アクセス・タイミング特性は第２のメモリ・アクセス・タイミング特性である、方法。
【請求項２】
第１のメモリ・アクセス・タイミング特性を修正するために使用したアドレスの一部を、第１のメモリをアドレス指定するために必要なアドレス・ビットを超える追加のアドレス・ビットとして実装するアドレス実装工程と、異なるメモリ・アクセス・タイミング特性として実装され得るアクセス・タイミング特性の数は追加のアドレス・ビットの総数によって決定されることとをさらに含む請求項１に記載の方法。
【請求項３】
第１のメモリはフラッシュメモリであり、第２のメモリは静的ランダム・アクセス・メモリ（ＳＲＡＭ）であり、第２のメモリ・アクセス・タイミング特性は第１のメモリ・アクセス・タイミング特性より遅い、請求項１に記載の方法。
【請求項４】
バスと、
バスに接続されたバス・マスタと、
バスに接続され、かつ第１のメモリ・アクセス・タイミング特性を有する第１のメモリと、
第１のメモリはバス・マスタからアドレスを受信し、かつアドレスの一部を直接使用して第１のメモリ・アクセス・タイミング特性を第１のメモリ・アクセス・タイミング特性と異なる第２のメモリ・アクセス・タイミング特性に修正することと、第２のメモリ・アクセス・タイミング特性は第２のメモリに対するメモリ・アクセス・タイミング特性であることと、を含むデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ処理システムに関し、より詳細には、データ処理システムにおけるメモリ管理に関する。
【背景技術】
【０００２】
データ処理システムにおいて、一部が異なるタイミング指定を有し得る種々のメモリを備えることは稀でない。それらのメモリのうちの一部では、全メモリ・マップのうちの非常に小さな部分が用いられる場合がある。データ処理システムが実時間アプリケーション・システムにおいて使用される場合、開発中には、一時的にメモリからの値の取得をより容易であるように変更するために、よりプログラムが困難なメモリ（例えば、フラッシュＥＥＰＲＯＭ（電気的消去可能なプログラマブル・リード・オンリ・メモリ）またはＲＯＭ（リード・オンリ・メモリ））の一部の上に、プログラムが容易なメモリの小さなブロックを一時的にオーバレイすることが有用な場合がある。開発が完了すると、最終的な実時間システムでは、開発中に使用されたＳＲＡＭの代わりに、よりプログラムが困難なメモリが用いられる。多くの場合、よりプログラムが困難なメモリはデータ処理システムの他の部分と同じ集積回路に形成されるが、開発中に使用される、よりプログラムが容易なメモリは別個の集積回路上に形成される。
【発明を実施するための最良の形態】
【０００３】
類似の参照が類似の要素を表す添付の図面によって本発明を例示するが、本発明は添付の図面によって限定されない。
図面における要素は簡明かつ平易に示されており、必ずしも縮尺に応じて描かれていないことが当業者には認められる。例えば、本発明の実施態様の理解の向上を補助するために、図面における要素の一部の寸法は他の要素に比べて誇張されている場合がある。
【０００４】
実時間システム用のソフトウェアの開発では、システムのパラメータの調整および較正を補助するため、メモリの１つの領域からフェッチした値を迅速かつ簡単に修正可能であることが要求である場合が多い。実時間システムの動作を最適化するために、多くの異なるパラメータを開発中に調節することが必要な場合がある。多くのシステムでは、システムの開発が完了すると、システム・オン・チップ（ＳｏＣ）に大抵は埋め込まれている大きな不揮発性メモリに記憶された値に対して、調整プロセスの最終結果がコミットされる。
【０００５】
多くの場合、開発中に使用されるメモリ（例えば、オフチップ（ｏｆｆ−ｃｈｉｐ）のＳＲＡＭ）は、最終の実時間システムに使用されるメモリ（例えば、オン・チップのフラッシュＥＥＰＲＯＭ、ＲＯＭ）とは異なるタイミング特性を有する。自動制御システムなど一部の実時間システムでは、最終の実時間システムにおける故障の見込みを減少させるため、開発中に使用されたのと同じタイミング特性を有することを最終の実時間システムに要求することが妥当な場合がある。開発中に使用されるアクセス時間と一致させるために、メモリの一部に対するアクセス時間を意図的に遅らせることが必要な場合であっても、この要求は用いられ得る。一部の実時間システムでは、信頼性はシステムの速度性能よりも重要である。
【０００６】
なお、一部のデータ処理システムでは、開発中にオーバレイされているメモリの領域がメモリ・マップ全域に分散されている場合がある。結果として、タイミング指定を独立に制御することが所望されるメモリ・マップにおけるブロックの粒度は、非常に細かくなり得る。したがって、制御レジスタを用いてメモリ・タイミング指定を記憶するには、メモリの分散された領域を覆うことを可能にするために、非常に多数の制御レジスタが必要となる場合がある。メモリにおける多くの分散されたブロックのタイミング特性を独立に指定するために多数の制御レジスタを要求しないような、別のアプローチが必要である。
【０００７】
図１を参照すると一実施態様では、データ処理システム１０は、内部バス２２を経由して双方向性に接続されている、プロセッサ１２と、メモリ１８と、メモリ１９と、他の機能回路２０と、外部バス制御装置（ＥＢＣ）２４とを備える。内部バス２２は、制御信号２６、アドレス信号２７、およびデータ信号２８を含む。プロセッサ１２は、プロセッサ１２を制御信号２６、アドレス信号２７、およびデータ信号２８に双方向性に接続する、バス・インタフェース制御装置（ＢＩＣ）１３を備える。メモリ１８は、メモリ・アレイ３２とバス・インタフェース制御装置（ＢＩＣ）３０とを備える。ＢＩＣ３０は、メモリ１８を制御信号２６、アドレス信号２７、およびデータ信号２８に双方向性に接続する。メモリ１９は、メモリ・アレイ３３とバス・インタフェース制御装置（ＢＩＣ）３１とを備える。ＢＩＣ３１は、メモリ１９を制御信号２６、アドレス信号２７、およびデータ信号２８に双方向性に接続する。他の機能回路２０は、制御信号２６、アドレス信号２７、およびデータ信号２８に双方向性に接続されている。外部バス制御装置（ＥＢＣ）２４は、制御信号２６、アドレス信号２７、およびデータ信号２８に双方向性に接続されている。なお、本発明の別の実施態様では、プロセッサ１２、メモリ１８、メモリ１９、他の機能回路２０、およびＥＢＣ２４は、それらのブロックがそれぞれの機能を実行可能なように、内部バス２２の任意の所望の部分に接続されてよい。したがって、一部の実施態様では、必ずしもブロック１２，１８〜２０，２４の全てが内部バス２２の信号の全てに接続されている必要はない。なお、本発明の一部の実施態様では、制御信号２６，３６のうちの少なくとも一部は状態の情報を転送するために使用されてよい。
【０００８】
プロセッサ１２はアドレス生成回路１４を備える。プロセッサ１２の一部の実施態様はメモリ管理ユニット１６を備えてよい。メモリ管理ユニット１６はアドレス変換テーブル９を備えてよい。しかしながら、メモリ管理ユニット１６は随意であるので、アドレス変換テーブル９はデータ処理システム１０において適切な任意の場所に配置されてもよく、またはアドレス変換テーブル９自身が随意であってもよい。他の機能回路２０は任意の所望の機能を実行してよい。他の機能回路２０によって実行され得る機能の幾つかの例は、タイマ、入力／出力ポート、通信ポート（例えば、シリアル通信ポート、シリアル周辺インタフェースなど）、ドライバ（例えば、ＬＣＤドライバ）、アナログ−ディジタル・コンバータ、ディジタル−アナログ・コンバータ、追加のメモリ、ＤＭＡデバイス、または任意の他の所望の機能である。
【０００９】
外部バス制御装置（ＥＢＣ）２４は、内部バス２２と外部バス３５とを双方向性に接続するために用いられる。集積回路１１は外部バス３５を経由してメモリ３４に双方向性に接続されている。外部バス３５は、制御信号３６、アドレス信号３７、およびデータ信号３８を含む。メモリ３４は、メモリ・アレイ４２とバス・インタフェース制御装置（ＢＩＣ）４０とを備える。ＢＩＣ４０は、メモリ３４を制御信号３６、アドレス信号３７、およびデータ信号３８に双方向性に接続する。本発明の代替の実施態様では、メモリ３４および集積回路１１は異なる集積回路に実装されている。本発明のさらに他の実施態様では、データ処理システム１０の種々の部分は、異なる集積回路または同じ集積回路に実装されている。
【００１０】
データ処理システム１０がメモリ１８，１９，３４を有するように示したが、本発明の代替の実施態様では、集積回路１１に任意の所望の数のメモリ（例えば、メモリ１８，１９）が実装されるとともに、集積回路１１の外部に任意の所望の数のメモリ（例えば、メモリ３４）が実装される。さらに、メモリ１８、メモリ１９、およびメモリ３４は、静的ランダム・アクセス・メモリ（ＳＲＡＭ）、動的ランダム・アクセス・メモリ（ＤＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能なプログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭ）、電気的消去可能なプログラマブル・リード・オンリ・メモリ（ＥＥＰＲＯＭ）、磁気ランダム・アクセス・メモリ（ＭＲＡＭ）などを含むが、これらに限定されない、任意の種類のメモリであってよい。なお、メモリ１８，１９，３４は、同じ種類のメモリであってもよく、異なる種類のメモリであってもよい。
【００１１】
図２を参照すると、データ処理システム１０における任意のメモリ（例えば、１８，１９，３４）へアクセスするために、メモリ・アドレス５０が用いられ得る。メモリ・アドレス５０は、プロセッサ１２内のアドレス生成回路３４によって出力されてもよく、他の機能回路２０を含む、データ処理システム１０内の任意の他のアドレス生成源によって出力されてもよい。図示した例におけるメモリ・アドレス５０では、低位のＮビット［０〜２３］は、メモリ・アレイ３２，３３，４２のうちの１つにインデックスを与えるアレイ・インデックス・ビット５２として使用される。次に大きなＭビット［２４〜２８］は、メモリ・アレイ３２，３３，４２のうちの１つのタイミング・パラメータを指定するタイミング・ビット５４として使用される。
【００１２】
なお、一般にメモリ１８，１９，３４は、１つ以上の異なるタイミング・パラメータを有する。一例は、待機サイクルの数、すなわちメモリにアクセスするために必要な待機状態の数である。本発明の一部の実施態様では、タイミング・ビット５４には、第１の待機状態の数を指定するパラメータ５３［ビット２６〜２８］および第２の待機状態の数を指定するパラメータ５５［ビット２４〜２５］など、複数のタイミング・パラメータが含まれる。第１の待機状態は、アクセスのバーストにおける最初のアクセスの待機状態を表す。第２の待機状態は、アクセスのバーストにおける１つ以上の後続のアクセスの待機状態を表す。一般にバースト・アクセスでは、バースト転送の異なる部分に対して異なるタイミング・パラメータを要求する。本発明の代替の実施態様では、データ処理システム１０においてメモリの任意のタイミング・パラメータを指定するために、タイミング・ビット５４を用いてよい。なお、本発明の代替の実施態様では、アクセスされている回路における１つ以上の非タイミング・パラメータまたは属性を指定するために、アクセス・アドレスのうちの一部（例えば、ビット５４）を用いてもよい。図２に示したメモリ・アドレス５０では、最も大きなＬビット［２９〜３１］は、メモリ・アレイ３２，３３，４２のうちの１つを選択するためのデバイス選択ビット５６として使用される。なお、本発明の代替の実施態様では、メモリ・アドレス５０を、より少ない区分、より多い区分、または異なる区分に分割してもよく、各区分のビットの数も異なっていてよい。
【００１３】
なお、ここでは図２のメモリ・アドレス５０は、デバイス内でデバイス間またはストレージ位置間を区別するために使用されない部分（タイミング・ビット５４）を有する。代わりにそれらのビット（タイミング・ビット５４）は、デバイス選択ビット５６によって選択されるデバイスにおけるタイミング特性を指定するために使用される。これを実装するために本発明の一部の実施態様では、メモリ・アレイ（例えば、３２，３３，４２）がプロセッサ１２の物理メモリ・マップ７０に多重マッピングされ（図１，３を参照）、多重マッピングに関連するアドレス・ビット５４がメモリ・アレイ（例えば、３２，３３，４２）のタイミング・パラメータを直接制御するために使用され、制御レジスタへの間接アクセスは必要でない。これによって、任意の追加の制御ストレージのオーバヘッドを必要とすることなく、アクセス・バイ・アクセス基準（ａｃｃｅｓｓ  ｂｙ  ａｃｃｅｓｓ  ｂａｓｉｓ）で導かれる柔軟なタイミング指定が可能となる。
【００１４】
本発明の一部の実施態様では、典型的なデータ処理システム１０のアドレス空間は希薄であるため多重マッピングが使用され得るので、アクセス用のメモリ・アドレス５０の一部（例えば、タイミング・ビット５４）をタイミング指定子用に転用することが可能であるという事実を利用する。メモリの多重マッピングによって、メモリ内の同じ位置を選択するために、アドレス５０において幾つかの異なる値が使用され得る。タイミング・ビット５４は異なり、デバイス選択ビット５６の値は共通、且つアレイ・インデックス・ビット５２は共通であるような特定の値を、アドレス５０に対して選択することによって、タイミング・ビット５４に対応する１つ以上のタイミング・パラメータの異なる組を用いながら、メモリ内の同じ位置へのアクセスを生じる。続いてデータ処理システム１０のユーザは、メモリ・アドレス５０の適切な値を生成することによって、タイミング・ビット５４を直接制御し、メモリ・アレイ内の実際のデータ位置とは独立にタイミング属性の所望の組を選択してよい。
【００１５】
さらに、本発明では、システム条件（例えば、動作クロック周波数）の変更に従って、メモリ・タイミング・パラメータの指定がさらに効率的に変更される。システム条件の変更時に再プログラムするための、各メモリ（１８，１９，３４）に対する別個のバス・インタフェース制御装置（３０，３１，４０）は、本発明には要求されない。代わりに、データ処理システム１０のユーザが修正する必要があるのは、メモリ・アドレス５０のタイミング・ビット５４のみである。したがって、本発明によって、低動力システム動作に必要な、異なるクロック・モードへのより速い転換が可能となる。これによって低動力システムの効率は改良され、より小さなソフトウェア・オーバヘッドで低動力（低周波数）モードへの転換および低動力（低周波数）モードからの転換が実行可能であるので、モード変更が実際に有益であるような閾値を低下させる。ますます多くの電子機器がハンドヘルド・バッテリ動作用途で使用されているので、バッテリ動力消費を減少することが可能な改良は、いずれも重要である。
【００１６】
図３には、図１のメモリ・アレイ３２に対するメモリ・マップ７０の一実施態様を示す。示した実施態様では、メモリ・アレイ３２は、Ｎ個のアレイ・インデックス・ビット５２（図２を参照）によってアクセスされる。したがって、メモリ・アレイ３２は、０〜２Ｎ−１のアドレス位置を有する。メモリ・アレイ３２は、メモリ・ブロック７１，７２，７３のように、多重すなわち複数倍にメモリ・マップ７０にマッピングされることが可能である。図２を参照すると、アレイ・インデックス・ビット５２およびデバイス選択ビット５６は図３のブロック７１〜７３の各々に対して同じであるが、タイミング・ビット５４はブロック７１〜７３の各々に対して異なるか、または同じであることが可能である。例えば、ブロック７１はタイミング・ビット５４に対して６０の値を有するのに対して、ブロック７２はタイミング・ビット５４に対して６２の値を有し、ブロック７３はタイミング・ビット５４に対して６４の値を有することが可能である。６０，６２，６４の値により、メモリ・アレイ３２の多重マッピングのうちのいずれがアクセス中に使用されるかが決定される。また、ブロック７１〜７３のうちの任意の数のブロックがメモリ・アレイ３２にマッピングされてよい。示した実施態様ではブロック７１〜７３の各々は同じサイズであるが、しかしながら、各ブロックには、メモリ・マップ７０の異なる範囲のアドレス位置が含まれる。第１のブロックであるブロック７１は、アドレス位置０で開始し、アドレス位置２Ｎ−１で終了する。ブロック７２および全ての他の中間のブロック（図示せず）は、各々２Ｎのサイズである。最後のブロックであるブロック７３は２Ｎのサイズであり、アドレス位置２Ｎ＋Ｍ−１で終了する。ここで、Ｍはタイミング・ビット５４（図２を参照）に使用されるビット数である。
【００１７】
特定の例での数を用いると、メモリ１８（図１を参照）が１メガバイト（Ｍｂｙｔｅ）のサイズの場合、メモリ・アレイ３２内で１バイトのデータを選択するには、２０のアドレス列（Ｎ＝２０）が要求される。メモリ・アレイ３２がメモリ・マップにおいて４Ｍｂｙｔｅの領域を占有して見えるように４倍に多重マッピングする（したがって、２２のアドレス列をメモリ・アレイ３２に割り当てる）ことによって、これらの余分な２ビットはアクセス・バイ・アクセス基準でタイミング・パラメータを指定するためのタイミング・ビット５４として利用可能となる。アドレスのエイリアス化（ａｌｉａｓｉｎｇ）によって、データは４つの異なる仮想コピーに見えるので、これらの余分な２ビットは、タイミング・ビット５４として、メモリ・アレイ３２に記憶されたデータを選択するためには必要でない。代わりに、これらの高位の２ビットは、メモリ・アレイ３２内で特定のブロック（例えば、７１〜７３）に対して適用されるタイミング・パラメータ（例えば、アクセス時間）を直接示すために使用される。本発明の一部の実施態様では、タイミング・ビット５４が、メモリ・アレイ３２の異なるタイミング・パラメータを指定するために各々使用され得る複数の部分に分割されてもよい。さらに、タイミング・ビット５４のうちの１つ以上の部分によって、非タイミング関連パラメータが指定されてもよい。
【００１８】
図４には、メモリ管理ユニット（ＭＭＵ）１６のアドレス変換の一例を示す（図１を参照）。なお、ＭＭＵ１６は随意である。図４では、論理アドレスのページ９０には、ページ８０、ページ８２、およびページ８４が含まれる。なお、各論理アドレスのページ８０，８２，８４は、ＭＭＵ１６によって、対応する物理アドレスのページにマッピングされてよい。各論理ページは任意の物理ページにマッピングされ得るので、物理ページのアドレスを対応する論理ページのアドレスに割り当てる際に完全な柔軟性が与えられる。図４に示すように、物理アドレスのページ９２は、メモリ・アレイ３２に多重マッピングされており、「ａ」、「ｂ」、「ｃ」、「ｄ」の記された４つの異なるブロック（例えば、図３の７１〜７３などのブロック）に対応する。物理アドレスのページ８０ａ，８２ａ，８４ａでは、タイミング・ビット５４に対して１００の値が適用される。物理アドレスのページ８０ｂ，８２ｂ，８４ｂでは、タイミング・ビット５４に対して１０１の値が適用される。続いてブロック６０，６１，６２，６４は、次の物理アドレスのブロックを占有する。物理アドレスのページ８０ｃ，８２ｃ，８４ｃでは、タイミング・ビット５４に対して１０２の値が適用される。物理アドレスのページ８０ｄ，８２ｄ，８４ｄでは、タイミング・ビット５４に対して１０３の値が適用される。
【００１９】
なお、本発明の実施にはＭＭＵ１６は要求されないが、ＭＭＵ１６が利用される場合、本発明は実際に用いられ得る。ＭＭＵを利用することの１つの利点は、タイミング・ビット５４に対して異なる値を選択するために、論理アドレスのプログラムを修正することなく、図１のアドレス変換テーブル９に既に存在する性能を利用し、物理アドレスに対する論理アドレスのマッピングを使用して論理ページのマッピングを変更し得ることである。例えば、図４において論理ページ８４を物理ページ８４ａにマッピングすることによって、タイミング・ビット５４に対して１００の値が使用される。これに代えて、異なるタイミングの選択が必要な場合、論理ページ８４を物理ページ８４ｂにマッピングして、タイミング・ビット５４に対して１０１の値を選択してもよい。メモリ・アレイ３２は物理アドレス空間（物理アドレスのページ９２）において多重の位置に多重マッピングされており、各々の多重マッピングはタイミング・ビット５４に対する異なる値に対応するので、これらのマッピングのうちのいずれが使用されるかにかかわらず、メモリ・アレイ３２では同じ値がアクセスされる。
【００２０】
なお、本発明の代替の実施態様では、この多重マッピング技術をメモリ・アレイ以外の要素に利用してタイミング・パラメータを制御してよい。また、本発明の代替の実施態様では、データ処理システム１０のうちの１つ以上の部分の動作モードを制御するため、またはデータ処理システム１０のうちの１つ以上の要素からの応答を制御するためなど他の制御の目的で、多重マッピングに関連するタイミング・ビット５４を使用してもよい。
【００２１】
上述の記載では、特定の実施態様に関連して本発明を説明した。しかしながら、以下の特許請求の範囲に述べられている本発明の範囲から逸脱することなく、種々の修正および変更がなされ得ることが、当業者には認められる。したがって、明細書および図面は限定的な意味ではなく例示の意味に見なされるものであり、そのような修正は全て本発明の範囲の内に含まれることを意図するものである。
【００２２】
利点、他の長所、および課題に対する解決法を、特定の実施態様に関連して上述にて説明した。しかしながら、利点、長所、および課題に対する解決法と、任意の利点、長所、または解決法を生じ得る若しくはより顕著にし得る任意の要素は、任意または全ての請求項の必須、必要、または不可欠な特徴若しくは要素として構成されるものでない。本明細書で用いられる、「含む（ｃｏｍｐｒｉｓｅ）」、「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」、またはそれらの任意の他の変形は、一連の要素を含むプロセス、方法、物品、または装置が、それらの要素のみを含むのではなく、そのようなプロセス、方法、物品、または装置に対して他の明示的に挙げられない要素、すなわち固有の要素を含み得るような、非排他的な包含を覆うことを意図するものである。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施態様によるデータ処理システム１０のブロック図。
【図２】本発明の一実施態様によるメモリ・アドレス５０のブロック図。
【図３】本発明の一実施態様によるメモリ・マップ７０のブロック図。
【図４】本発明の一実施態様によるメモリ管理ユニット（ＭＭＵ）１６の変換の一例のブロック図。
【図１】
0004700604.tif 000002
【図２】
0004700604.tif 000003
【図３】
0004700604.tif 000004
【図４】
0004700604.tif 000005