(57)【要約】  電子システムの部品の間におけるメモリ再割り当ておよび共有が提供される。電子システムは、第１のバスを介した第１のプロセッサによるアクセスのために接続された第１のメモリ領域、および第２のバスを介した第２のプロセッサによるアクセスのために接続された第２のメモリ領域を含んでいる。例示のシステムは、第１のプロセッサとして中央処理装置、および第２のプロセッサとしてデジタル信号プロセッサを含んでいる。さらに電子システムは、第１のプロセッサによる第２のメモリ領域の共有されたアクセスをサポートするメモリの構成を含んでいる。共有されたアクセスを利用した場合、第１のプロセッサは、第１のバスを介して第２のメモリに直接的にアクセスすることができ、または第２のバスおよび第２のプロセッサを介して第２のメモリに間接的にアクセスすることができる。メモリの共有は、共有されるメモリへの直接的および間接的なアクセスを第１のプロセッサに同時に提供するための、共通されるメモリの分割を含んでいる。【選択図】  図１
2007513390.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのバスに接続された中央処理装置および少なくとも１つのコプロセッサと；
そのバスに接続されたメモリ・デバイスと；
そのバスに接続されており、システムの状態情報に応じてメモリ・デバイスの少なくとも１つの構成を制御する際に使用する情報を含む少なくとも１つのレジスタを備え、
第１の構成がコプロセッサによる独占的なメモリ・デバイスへの直接的なアクセスをサポートし、
第２の構成がコプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスおよび中央処理装置によるメモリ・デバイスの第２の領域への間接的なアクセスのうちの少なくとも一方をサポートし、
第３の構成がコプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスおよび中央処理装置によるメモリ・デバイスの第３の領域への直接的なアクセスのうちの少なくとも一方をサポートするデバイス。
【請求項２】
前記少なくとも１つのバスに接続された少なくとも１つのデコーダをさらに備え、
そのデコーダは、そのバス上のアドレス情報を利用してメモリ領域の１つを選択し、そのアドレス情報に対応するデータを受信させる、請求項１に記載のデバイス。
【請求項３】
前記コプロセッサと前記メモリ・デバイスを第１のバスに接続する少なくとも１つのブリッジ・ユニットをさらに備え、
中央処理装置によるメモリ・デバイスへの間接的なアクセスが、中央処理装置によるアクセスのための、そのブリッジ・ユニットを介した、メモリ・デバイスの少なくとも１セットのメモリ位置のマッピングを含む、請求項１に記載のデバイス。
【請求項４】
前記メモリ・デバイスを第１のバスに接続する少なくとも１つのメモリ・インターフェースをさらに備え、
中央処理装置によるメモリ・デバイスへの直接的なアクセスが、中央処理装置によるアクセスのための、メモリ・インターフェースを介した、メモリ・デバイスの少なくとも１セットのメモリ位置のマッピングを含む、請求項１に記載のデバイス。
【請求項５】
前記中央処理装置が第１の速度でクロック制御され、前記コプロセッサが第２の速度でクロック制御される、請求項１に記載のデバイス。
【請求項６】
前記少なくとも１つのバスが：
中央処理装置をブリッジ・ユニットに接続する第１のバスと；
ブリッジ・ユニットをコプロセッサおよびメモリ・デバイスに接続する第２のバスを含む、請求項１に記載のデバイス。
【請求項７】
携帯電話、携帯可能な位置追跡デバイス、位置追跡デバイスに接続された携帯電話のうちの少なくとも１つを含む、請求項１に記載のデバイス。
【請求項８】
第１のバスを介した第１のプロセッサによるアクセスのために接続された第１のメモリ領域と；
第２のバスを介した第２のプロセッサによるアクセスのために接続された第２のメモリ領域と；
第１のプロセッサによる第２のメモリ領域の共有されたアクセスをサポートする少なくとも１つのメモリの構成を備え、
その少なくとも１つの構成が、第１のバスを介した第２のメモリ領域の第１のメモリ位置のセットへの第１のプロセッサによるアクセスと、第２のバスを介した第２のメモリ領域の第２のメモリ位置のセットへの第１のプロセッサによるアクセスを含む、電子システム。
【請求項９】
前記第１のプロセッサが第１のクロック・ドメインにおいて動作する中央処理装置であり、前記第２のプロセッサが第２のクロック・ドメインにおいて動作するデジタル信号プロセッサ（ＤＳＰ）である、請求項８に記載のシステム。
【請求項１０】
前記第１のバス上の情報を受信するように接続された少なくとも１つのデコーダをさらに備え、そのデコーダが第１および第２のメモリ領域へのアクセスを選択するために、その情報の少なくとも１つのアドレスを利用する、請求項８に記載のシステム。
【請求項１１】
前記デコーダが、第１のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第１のメモリ領域を選択する、請求項１０に記載のシステム。
【請求項１２】
前記デコーダが、第２のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第２のメモリ領域の第２のメモリ位置のセットを選択する、請求項１１に記載のシステム。
【請求項１３】
前記デコーダが、第３のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第２のメモリ領域の第１のメモリ位置のセットを選択し、その第３のアドレス範囲が第２のアドレス範囲のアドレスの第１のサブセットである、請求項１１に記載のシステム。
【請求項１４】
前記デコーダが、第４のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第２のメモリ領域の第１のメモリ位置のセットを選択し、その第４のアドレス範囲が第２のアドレス範囲のアドレスの第２のサブセットである、請求項１１に記載のシステム。
【請求項１５】
少なくとも１つのメモリの構成を含む情報を記憶する少なくとも１つのコンフィグレーション・レジスタをさらに備える、請求項８に記載のシステム。
【請求項１６】
前記第１のメモリ位置のセットが、第１のプロセッサのクロック速度とほぼ同じ速度でクロック制御される少なくとも１つのメモリ・ブロックを含む、請求項８に記載のシステム。
【請求項１７】
前記第２のメモリ位置のセットが、第２のプロセッサのクロック速度とほぼ同じ速度でクロック制御される少なくとも１つのメモリ・ブロックを含む、請求項８に記載のシステム。
【請求項１８】
前記第１のバスと前記第２のバスを接続する少なくとも１つのブリッジ・ユニットをさらに備え、
第２のバスを介した第２のメモリ領域の第２のメモリ位置のセットへの第１のプロセッサによるアクセスが、ブリッジ・ユニットを介した第１のメモリ領域への第２のメモリ位置のセットのマッピングを含む、請求項８に記載のシステム。
【請求項１９】
前記第１のバスと前記第２のメモリ領域を接続する少なくとも１つのメモリ・インターフェースをさらに備え、
第１のバスを介した第２のメモリ領域の第１のメモリ位置のセットへの第１のプロセッサによるアクセスが、メモリ・インターフェースを介した第１のメモリ領域への第１のメモリ位置のセットのマッピングを含む、請求項８に記載のシステム。
【請求項２０】
携帯可能な通信デバイス、携帯可能な位置追跡デバイス、携帯電話、位置追跡デバイスに接続された携帯電話、位置追跡デバイスを有する携帯電話、モバイル電子デバイス、モバイル通信デバイス、携帯情報端末、プロセッサ・ベースのデバイスの少なくとも１つである、請求項８に記載のシステム。
【請求項２１】
中央処理装置と；
信号プロセッサと；
第１のバスを介した中央処理装置によるアクセスのために接続された第１のメモリ領域と；
第２のバスを介した信号プロセッサによるアクセスのために接続された第２のメモリ領域と；
中央処理装置による第２のメモリ領域への共有されたアクセスを制御する、中央処理装置に接続された少なくとも１つの部品を有し、
その共有されたアクセスが、信号プロセッサによるアクセスと、第２のバスを介した第２のメモリ領域の少なくとも１つのメモリ位置のセットへの中央処理装置による少なくとも１つの間接的なアクセスと、第１のバスを介した第２のメモリ領域のメモリ位置のセットへの中央処理装置による直接的なアクセスを含む、携帯可能な電子装置。
【請求項２２】
電子システムに関する状態情報を受信するステップと；
その状態情報に応じて少なくとも１つの構成を利用してメモリ・デバイスを設定するステップを備え、第１の構成がコプロセッサによる独占的なメモリ・デバイスへの直接的なアクセスをサポートし、第２の構成がコプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第２の領域への間接的なアクセスのうちの少なくとも一方をサポートし、第３の構成がコプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第３の領域への直接的なアクセスのうちの少なくとも１つサポートする、方法。
【請求項２３】
前記電子システムのデータに関するアドレス情報を受信するステップと；
そのアドレス情報をデコードするステップと；
そのデコードされたアドレス情報に応じて、そのデータを受信させるために、メモリ・デバイスの領域の１つを選択するステップとをさらに備える、請求項２２に記載の方法。
【請求項２４】
中央処理装置によるメモリ・デバイスへの間接的なアクセスを実現するために、第１のインター・フェースを介してメモリ・デバイスの少なくとも１つのメモリ位置のセットをマッピングするステップをさらに備える、請求項２２に記載の方法。
【請求項２５】
中央処理装置によるメモリ・デバイスへの直接的なアクセスを実現するために、第２のインター・フェースを介してメモリ・デバイスの少なくとも１つのメモリ位置のセットをマッピングするステップをさらに備える、請求項２２に記載の方法。
【請求項２６】
第１のクロック速度で前記直接的なアクセスをクロック制御するステップと；
第２のクロック速度で前記間接的なアクセスをクロック制御するステップをさらに備える、請求項２２に記載の方法。
【請求項２７】
メモリ領域への共有されたアクセスを実現する方法であって：
データおよび対応するアドレス情報を受信するステップと；
そのデータが第１のタイプであることをそのアドレス情報が示す場合に、第１のメモリ領域にアクセスするステップと；
そのデータが第２のタイプであることをそのアドレス情報が示す場合に、第２のメモリ領域の第１のブロックにアクセスするステップと；
そのデータが第１のタイプでありかつそのアドレスが少なくとも１つのアドレス範囲の境界を越えていることをそのアドレス情報が示す場合に、その第２のメモリ領域の第２のブロックの少なくとも１つのメモリ位置のセットにアクセスするステップを備える方法。
【請求項２８】
電子システムにおけるメモリへのアクセスを制御する方法であって：
その電子システムの状態情報を受信するステップと；
その状態情報に応じて第１のメモリ領域の少なくとも１つのアドレス・ブロックを自動的に再割り当てするステップと；
データおよび対応するアドレス情報を受信するステップと；
そのデータが第１のタイプであることをそのアドレス情報が示す場合に第２のメモリ領域にアクセスし、そのデータが第２のタイプであることをそのアドレス情報が示す場合に第１のメモリ領域にアクセスするステップと；
そのデータが第１のタイプでありかつそのアドレスが少なくとも１つのアドレス範囲の境界を越えていることをそのアドレス情報が示す場合に、第１のメモリ領域の少なくとも１つのアドレス・ブロックにアクセスするステップを備える方法。
【請求項２９】
データおよび対応するアドレス情報を受信する手段と；
そのデータが第１のタイプであることをそのアドレス情報が示す場合に、第１のメモリ領域にアクセスする手段と；
そのデータが第２のタイプであることをそのアドレス情報が示す場合に、第２のメモリ領域の第１のブロックにアクセスする手段と；
そのデータが第１のタイプでありかつそのアドレスが少なくとも１つのアドレス範囲の境界を越えていることをそのアドレス情報が示す場合に、第２のメモリ領域の第２のブロックの少なくとも１つのメモリ位置のセットにアクセスする手段を備える、プロセッサ・ベースのデバイス。
【請求項３０】
実行可能な命令を含んでおり、その命令が処理システムで実行された場合に、そのシステムに：
電子システムに関する状態情報を受信させ、
その状態情報に応じて少なくとも１つの構成を利用してメモリ・デバイスを設定させる、コンピュータが読み出し可能な媒体であって、第１の構成がコプロセッサによる独占的なメモリ・デバイスへの直接的なアクセスをサポートし、第２の構成がコプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第２の領域への間接的なアクセスのうちの少なくとも一方をサポートし、第３の構成がコプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第３の領域への直接的なアクセスのうちの少なくとも１つをサポートする、コンピュータが読み出し可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願）
本出願は、２００３年９月２日に出願されたアメリカ合衆国特許出願第６０／４９９，９６１号に基づく優先権を主張する。
【０００２】
（技術分野）
本明細書で開示される実施形態は、電子システムにおけるメモリの分割および共有に関する。
【背景技術】
【０００３】
（背景技術）
携帯可能なプロセッサ・ベースのデバイスは、世界中の地域で大変に普及してきている。携帯可能な電子デバイスの普及が進むにつれて、消費者もまたこれらのデバイスに依存するようになる。消費者は現在、たとえばリモート・インターネット・アクセスからコミュニケーションに至るまでありとあらゆる事について、パーソナル・コンピュータ、携帯電話および全地球的測位システム（ＧＰＳ）デバイスといった携帯可能な電子デバイスを頼りにしている。消費者は、ますます、１つの比較的小さなデバイスにおける多様なデータおよび音声の機能を求めている。製造業者は、データ、音声およびＧＰＳの複合的な機能を備えた携帯型のデバイスを製造することによって対応してきた。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
さまざまな機能やアプリケーションを実行するデバイスの例としては、電子メールを送受信することができ、テキスト・メッセージを送受信することができ、ＧＰＳの技術を用いてそれ自身の位置を特定することができる携帯電話がある。携帯情報端末（ＰＤＡ）も、利用者にますます多様なアプリケーションを提供している。各アプリケーションは、処理能力およびメモリを必要とし、それらのうちのいくつかはデバイスに常駐し、それらのうちのいくつかはリモート・ホストを利用する。種々の製造業者は、一般的には、デバイス上で特定の機能を実行するための部品やソフトウェアを製造する。種々の機能のためのこれらの部品および関連するソフトウェアは、一般的にはより大きなシステム内に組み込まれており、プロセッサ・サイクルおよびメモリを含むそのデバイス上で利用可能なリソースを効率的に利用するように通信し、共同して動作しなければならない。
【０００５】
半導体製造技術が進歩して、より小さなパッケージにおいてより多くの機能を実現するとはいえ、特に小さなデバイスにおいては、より多くの処理能力及びメモリが常に求められている。たとえば、メモリが効率的に利用されない場合、より多くの物理的なメモリの提供が必要となり、デバイスのサイズおよびコストの両方を増大させる。それゆえに、特別に設計されたハードウェアおよびソフトウェアは、そのデバイスのより大きなシステムに組み込まれる場合に、メモリのような限られたリソースを融通性をもって割り当てるように設定可能であることが望ましい。その特別に設計されたハードウェアおよびソフトウェアは、そのより大きなシステム内の他の部品に対して透過的に融通性をもってリソースを割り当てることがさらに望ましい。
【課題を解決するための手段】
【０００６】
（詳細な説明）
本明細書においては、電子システムの部品間でメモリを共有するために、電子システムの部品間で１つまたは複数のメモリ領域を動的に再割り当てする、透過的なメモリの共有が提供される。メモリ領域のあらかじめ指定されたメモリ・ブロックは、それらの部品の変化するメモリ要求に応答して、１つまたは複数の再割り当て方法を利用して、システムの部品間において動的に再割り当てされる。メモリの再割り当て／共有は、ホスト・システムのソフトウェアに対して透過的である。例えば、メモリ・ブロックとも称するメモリの位置またはアドレスのグループは、第１のプロセッサおよび第２のプロセッサによって共有することができる。第１のプロセッサは、たとえば第１のメモリ領域にアクセスするように構成された中央処理装置またはマイクロ・プロセッサを含んでいる。一方、第２のプロセッサは、第２のメモリ領域にアクセスするように構成されたデジタル信号プロセッサ（ＤＳＰ）を含んでいてもよい。メモリの共有は、以下に説明するように、第２のメモリ領域へのプロセッサの直接的なアクセス、間接的なアクセス、および直接的／間接的なアクセスの組み合わせを提供する。
【発明を実施するための最良の形態】
【０００７】
以下の説明において、上記のメモリの共有の実施形態の完全な理解と、それについての説明を提供するために多数の具体的な詳細な記述を紹介する。しかしながら、当業者は、上記のメモリの共有がその１つまたは複数の詳細な記述によらなくとも実施することができ、またはその他の部品、システム等を用いて実施することができることを認識するであろう。その他の例においては、上記のメモリの共有の態様を不明瞭にすることを避けるために、よく知られた構成または動作は示さず、または詳細に説明しない。
【実施例】
【０００８】
図１は、一実施例における、電子システム１００の部品間での共有のためのコア・メモリの再割り当てを示すブロック図である。一般に、電子システム１００は、例として第１のバス１０２に接続された第１のプロセッサ１１２および第１のメモリ領域１１４を有している。動作中、第１のプロセッサ１１２は、第１のメモリ領域１１４にプロセッサ・データを書き込み、第１のメモリ領域１１４から読み出しするために、第１のバス１０２を介して第１のメモリ領域１１４にアクセスする。
【０００９】
第２のプロセッサ１２２は、第２のバス１０４およびブリッジ・ユニット１３２の組み合わせを介して第１のバス１０２に接続されている。第２のプロセッサは、第２のメモリ領域１２４にも接続されている。動作中、第２のプロセッサ１２２は、第２のメモリ領域１２４に第２のプロセッサのデータを書き込み、第２のメモリ領域１２４から読み出しするために、第２のメモリ領域１２４に直接アクセスする。
【００１０】
ここに記載するコア・メモリの共有は、複数のメモリ再割り当て方法のうちのいずれかを利用して、第１のプロセッサ１１２のデータを記憶する際に利用するために、第１のプロセッサ１１２が第２のメモリ領域１２４のいくつかのブロックを動的に再割り当てすることを可能にする。本明細書でマッピング再割り当てと称する１つのメモリ再割り当て方法は、第２のバス１０４および第２のプロセッサ１２２を介した第１のプロセッサによるアクセスのために、ブリッジ・ユニット１３２を通して第２のメモリ領域１２４のあらかじめ指定されたメモリ位置１２４ａをマッピングする。本明細書でスイッチング再割り当てと称するメモリ再割り当ての別の方法は、第１のプロセッサ１１２に、第１のバス１０２を介して第２のメモリ領域１２４のあらかじめ指定されたメモリ位置１２４ａへ直接アクセスさせる。メモリ再割り当ての追加的な方法は、第２のメモリ領域１２４のメモリ位置のマッピング再割り当てとスイッチング再割り当てを同時にサポートする。これらのメモリ再割り当て方法およびこれらの対応するシステム構成は、後にさらに説明する。
【００１１】
プロセッサ１１２および１２２は、当該技術分野において周知のように、協同して動作する計算部品および計算デバイスの集合体を有している。プロセッサ１１２および１２２は、より大きなコンピュータシステムまたはネットワークの内部の部品またはサブシステムであってもよい。プロセッサ１１２および１２２は、たとえば他のバス、コントローラ、メモリ・デバイスおよびデータ入力／出力（Ｉ／Ｏ）デバイス等の、当該の技術分野において周知のいかなる部品（図示しない）と、いかなる組み合わせによって接続されていてもよい。
【００１２】
同様に、第１のメモリ領域１１４および第２のメモリ領域１２４は、当該の技術分野において周知のように、順に配置および／または分配された態様で協同して動作するメモリ・デバイスまたはメモリ・デバイスの一部の集合体を有している。メモリ領域１１４および１２４は、より大きなコンピュータシステムまたはネットワークの内部の部品またはサブシステムであってもよい。メモリ領域１１４および１２４は、たとえば他のバス、コントローラ、メモリ・デバイスおよびデータ入力／出力（Ｉ／Ｏ）デバイス等の、当該の技術分野において周知のいかなる部品（図示しない）と、いかなる組み合わせによって接続されていてもよい。
【００１３】
バス１０２および１０４は、処理システムや処理システムの部品の間でファイルを通信しまたは転送する、いかなる媒体を含んでいてもよい。従って、バス１０２および１０４によって表わされる経路は、無線接続、有線接続および／またはトレース接続、および無線／有線の複合接続を含んでいる。それらの経路は、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、占有ネットワークおよびオフィス間またはバックエンド・ネットワーク等の、別のシステムへの接続または接続も含んでいる。
【００１４】
また、電子システム１００は、第１のプロセッサ１１２が中央処理装置（ＣＰＵ）または同様なプロセッサ（たとえばＡＲＭマイクロ・プロセッサ（本明細書ではＡＲＭあるいはマイクロ・プロセッサと称する））を含むシステムの構成である。さらに、第２のプロセッサ１２２は、デジタル信号プロセッサ（ＤＳＰ）を有している。ただし、このように限定されているわけではない。この例の第１のメモリ領域１１４および第２のメモリ領域１２４は、ランダム・アクセス・メモリ（ＲＡＭ）の領域またはメモリ位置を含んでいるが、当該の技術分野において周知である他の多くのタイプのメモリ／メモリ・デバイスの領域を含んでいてもよい。第１および第２のメモリ領域は、本実施例では２つの分離した領域または２つの分離したデバイスとして示されているが、ここで説明したものと異なるメモリの共有の実施例は、あらゆる数／組み合わせのメモリ・デバイスの間で分配されたあらゆる数のメモリ位置を含んでいてもよい。説明は、このシステムの構成のプロセッサおよびＤＳＰの間におけるコア・メモリの共有に続く。
【００１５】
図２は、図１の実施例における、プロセッサ２１２およびＤＳＰ２２２のそれぞれに専用のメモリ領域２１４および２２４をそれぞれ有する電子システム２００のブロック図である。一実施例のプロセッサは、ＡＲＭプロセッサ２１２であるが、本実施例は、これに限定されているわけではなく、本システム２００においてあらゆるタイプのプロセッサ２１２を利用することができる。第１のデータ・バス２０２は、メモリ・コントローラＯｎＲＡＭ２５０を介してメモリ領域２１４にプロセッサ２１２を接続する。メモリ領域２１４は、本実施例では、プロセッサ・メモリ２１４またはそれに代えてＡＲＭランダム・アクセス・メモリ（ＲＡＭ）２１４と称する。本実施例でプロセッサ・バス２０２とも称する第１のデータ・バス２０２は、単一のクロック・サイクルでプロセッサ・バス２０２によって接続されたデバイスの間での情報またはデータの転送をサポートするが、このように限定されているわけではない。
【００１６】
さらにプロセッサ・バス２０２は、ブリッジ・ユニットＳＢＵ２ＭＯＤ２３２および第２のデータ・バス２０４を介してプロセッサ２１２をＤＳＰ２２２に接続する。ブリッジ・ユニットＳＢＵ２ＭＯＤ２３２は、本実施例ではＤＳＰブリッジ２３２とも称する。第２のデータ・バス２０４は、本実施例ではＤＳＰバス２０４とも称する。ＤＳＰ２２２はメモリ領域２２４に接続されている。本実施例では、メモリ領域２２４はＤＳＰメモリ２２４と称する。一実施例のプロセッサ・メモリ２１４およびＤＳＰメモリ２２４は、ＲＡＭデバイスであるが、このように限定されているわけではない。他の実施例は、あらゆるタイプのメモリ・デバイスおよび／またはあらゆる組み合わせのメモリ・デバイス／タイプを含むことができる。
【００１７】
ＤＳＰ２２２およびＤＳＰメモリ２２４は、プロセッサ２１２およびプロセッサ・バス２０２に接続されたデバイスの速度（プロセッサ・クロック・ドメインの速度）とは異なる速度（ＤＳＰクロック・ドメインの速度）でクロック制御される。一実施例においてＤＳＰ２２２およびＤＳＰメモリ２２４のクロック速度／ドメインは、プロセッサ２１２より低速であるが、このように限定されているわけではない。従って、ＤＳＰバス２０４を介してのＤＳＰブリッジ２３２からのデータの転送は、プロセッサ・バス２０２を介してのデータの転送に比べて相対的に低速である。さらに、プロセッサ・バス２０２に接続された部品とＤＳＰバス２０４に接続された部品との間におけるクロック速度の相違のため、一実施例のＤＳＰブリッジ２３２は非同期ブリッジであるが、このように限定されているわけではない。
【００１８】
他のさまざまな実施例では、あらゆるクロック速度／あらゆる組み合わせのクロック速度を利用してシステム２００の部品をクロック制御することができ、たとえば１つの実施例としては、プロセッサ２１２、ＤＳＰ２２２およびＤＳＰメモリ２２４をほぼ等しいクロック速度でクロック制御してもよい。一方、別の実施例としては、プロセッサ２１２をＤＳＰ２２２および／またはＤＳＰメモリ２２４よりも低い速度でクロック制御してもよい。
【００１９】
さらにシステム２００は、プロセッサ・バス２０２に接続された少なくとも１つのメモリ・コンフィグレーション・レジスタＲＡＭ Ｓｈａｒｅ２５２を含んでいる。本実施例においてコンフィグレーション・レジスタ２５２とも称するメモリ・コンフィグレーション・レジスタ２５２は、第２のブリッジ・ユニットＳＢＵＭＯＤ２３４を介してプロセッサ・バス２０２に接続されており、後に説明するように、ＤＳＰメモリ２２４の構成を制御または管理する際に、プロセッサ２１２、デコーダ２４２およびＤＳＰブリッジ２３２のうちの少なくとも１つによって利用される情報を記憶している。
【００２０】
デコーダ２４２は、プロセッサ・バス２０２、ＤＳＰブリッジ２３２およびメモリ・コントローラ２５０の間に接続されているが、このように限定されているわけではない。デコーダ２４２は、プロセッサ・バス２０２上のデータに関するアドレスを受信し、それに応じて、適当なメモリ領域へのデータの書き込み及びそこからのデータの読み出しを、メモリ・コンフィグレーション・レジスタ２５２の情報にしたがって制御または管理する。デコーダ２４２は、デコーダ２４２とメモリ・コントローラ２５０との間に接続された制御線２４３を介して、プロセッサ・メモリ２１４へのデータの読み出し／書き込みを制御する。デコーダ２４２は、必要に応じて、デコーダ２４２とＤＳＰブリッジ２３２との間に接続された制御線２４４および制御線２４５を介して、ＤＳＰメモリ２２４へのデータの読み出し／書き込みを制御する。
【００２１】
一般に、このシステム２００のＤＳＰメモリの共有は、プロセッサ・バス２０２上でのＤＳＰメモリ２２４への（プロセッサ・クロック・ドメインによる）直接的なアクセス及び／または、ＤＳＰバス２０４上での（ＤＳＰクロック・ドメインによる）ＤＳＰメモリ２２４への間接的なアクセスのいずれかを、プロセッサ２１２が実行できるようにする。直接的なアクセスは、ＤＳＰメモリ２２４の上側の３２ｋバイトを、ＤＳＰクロック・ドメインからプロセッサ・クロック・ドメインへスイッチングすることによって達成される。間接的なアクセスは、ＤＳＰブリッジ２３２を介してＤＳＰメモリ２２４の上側の部分からブロックをマッピングすることによって達成される。
【００２２】
ＤＳＰブリッジ２３２は、ＤＳＰメモリへのプロセッサ・ソフト・マッピング・アクセスとＤＳＰコア・アクセスとの調整を行なう。さらにＤＳＰブリッジ２３２は、アドレス０ｘＣ０００＿００００（プロセッサ・アドレスのソフト・マッピングなし）でプロセッサによるＤＳＰメモリへの間接的なアクセスをサポートする。ＤＳＰブリッジ２３２は、ソフト・マッピングを介した０ｘ６００１＿００００から０ｘ６００１＿ＦＦＦＦまでのアドレスの範囲におけるＤＳＰメモリの上側の６４ｋバイトのプロセッサによる間接的なアクセスもサポートする。加えて、ＤＳＰブリッジ２３２は、ＤＳＰメモリ共有制御ビットに基づいて、ＤＳＰメモリの読み出しまたは書き込みアクセス違反を検出し、必要に応じて違反状態ビットを生成し、読み出しまたは書き込みアクセス違反の間に実行可能であればプロセッサ異常終了サイクルを生成する。
【００２３】
メモリ・コンフィグレーション・レジスタ２５２の構成情報は、あらかじめ指定されたメモリ共有の構成の情報を有しているが、このように限定されているわけではない。ソフトウェアの制御によって動作しているプロセッサ２１２は、システム２００の状態に対して適切なメモリの構成を選択し、選択されたメモリの構成にしたがって、メモリ・コンフィグレーション・レジスタ２５２の少なくとも１つのレジスタのビットをセットする。一実施例においては、その構成情報はホスト電子システムの状態情報に対応しており、そのホスト・システムの異なった動作状態が異なったメモリ要求を有するときに、メモリがそのホスト・システムの異なった動作状態にしたがって再割り当てされ、共有されるようにする。従って、ホスト・システムの部品の間におけるメモリ領域の再割り当ては、ホスト・システムの動作状態の変化に応じて起こる。
【００２４】
上述のメモリの共有を利用する装置および／またはシステムの例としては、ホスト・システムが効率的なメモリ管理を必要とする１つまたは複数のプロセッサを含むシステムであってもよい。このような装置／システムの例としては、携帯可能な通信デバイス、携帯可能な位置追跡デバイス、携帯電話、位置追跡デバイスに接続され、かつ／または統合された携帯電話、モバイル電子デバイス、モバイル通信デバイス、携帯情報端末およびその他のプロセッサ・ベースのデバイスがあるが、これらに限定されているわけではない。
【００２５】
具体的な例として、全地球的測位システム（ＧＰＳ）受信機のような測位システムを含む携帯電話のようなモバイル通信デバイスを考慮されたい。このタイプのシステムにおいては、上記のプロセッサ２１２は、その通信デバイスの中央処理装置（ＣＰＵ）に相当し、一方ＤＳＰ２２２は、ＧＰＳ信号および受信機情報を処理する専用の信号プロセッサに相当する。ＧＰＳ受信機は、複数の動作モード（たとえばコールドスタート、ウォームスタート、ホットスタート等）を有し、これらのモードのすべては、非常に異なったメモリへの要求を有することがある。一実施例のメモリ再割り当ておよび共有は、ホスト・デバイスの動作状態に応じて適切に、デバイス・メモリの少なくとも１つの領域を、ＣＰＵとＤＳＰとの間での再割り当てを可能にすることによって、このような携帯可能なデバイスの限られたメモリの効率的な利用を可能にする。このメモリ再割り当てはホスト・デバイスのオペレーティング・システム・ソフトウェアに対して透過的であって、オペレーティング・システム・ソフトウェアはＣＰＵメモリ・マップおよびＤＳＰメモリ・マップを、ホスト・デバイスの状態に応じてメモリ・コンフィグレーション・レジスタ２５２によって構成されたものとして認識する。
【００２６】
図３は、図２の実施例における、電子システム２００のスタート／ブートアップ後のメモリの構成のブロック図３００である。ブートアップとも称するシステムのスタートの際には、プロセッサ・メモリ２１４は６４キロバイト（ｋバイト）のメモリを（プロセッサ・メモリ・マップによって構成されたものとして）有しており、他方、ＤＳＰメモリ２２４は１２８ｋバイトのメモリを（ＤＳＰメモリ・マップによって構成されたものとして）有している。プロセッサ２１２は、０ｘ６０００＿００００のベース・アドレスにおいてプロセッサ・メモリ２１４を認識する。しかし、他の実施例では、メモリ・タイプに対して適切であれば、プロセッサ・メモリ２１４にどのようなベース・アドレスを割り当ててもよい。同様にＤＳＰ２２２は、０ｘＣ０２０＿００００のベース・アドレスにおいてＤＳＰメモリ２２４を認識する。しかし、その代わりの実施例は、メモリ・タイプに対して適切であれば、ＤＳＰメモリ２２４にどのようなベース・アドレスを割り当ててもよい。
【００２７】
ここで説明するように、一実施例のメモリの共有は、プロセッサ２１２のＤＳＰメモリ２２４からの読み出しおよびＤＳＰメモリ２２４への書き込みをサポートする。その結果、プロセッサ２１２は、システムのブートアップの際に、ＤＳＰブリッジ２３２を介してＤＳＰメモリ２２４を認識することができる。プロセッサは、たとえば０ｘＣ０２０＿００００のベース・アドレスにおいてＤＳＰメモリ２２４を認識する。しかし、他の実施例としては、ＤＳＰメモリ２２４のためにあらゆるベース・アドレスを利用することができる。
【００２８】
一実施例のメモリは、プロセッサ２１２および／またはＤＳＰ２２２が、特定のメモリの構成に応じたアドレスの境界を越えて各メモリのメモリ位置へのアクセスを試みたときに、ホスト・システムに警告を発するメモリ保護機能を有している。メモリ保護機能には、割り込みアドレス境界Ｉｎｔ３６０を利用した割り込みの発生と、異常終了アドレス境界Ａ３６２を利用した異常終了の発生があるが、これに限定されているわけではない。メモリ保護機能は、メモリ再割り当ての例を参照しながら後に説明する。
【００２９】
動作時において、プロセッサ２１２がプロセッサ・データを記憶するために追加的なメモリを要求したとき、プロセッサ２１２は、プロセッサ・データを記憶する際に利用するために、ＤＳＰメモリ２２４のメモリ位置の少なくとも１つの領域またはセットを再割り当てすることができる。一般に、ＤＳＰメモリ２２４を再割り当てする２つの方法を利用することができる。第１の再割り当て方法は、少なくとも１つのメモリ・マップを利用して、ＤＳＰブリッジ２３２を介して、ＤＳＰメモリ・アドレス・スペースからプロセッサ・メモリ・アドレス・スペースにあらかじめ指定されたアドレスをマッピングする。この第１の再割り当て方法は、本実施例においてはマッピング再割り当て方法と称する。ＤＳＰブリッジ２３２を介したメモリのマッピングは、各ブロックが最大で約８ｋバイトを有する８ブロック程度のメモリの付加的な再割り当てをサポートする。しかし、実施例は、このように限定されているわけではない。プロセッサ２１２による再割り当てされたメモリへのアクセスは、ＤＳＰブリッジ２３２、ＤＳＰバス２０４およびＤＳＰ２２２の部品（図示せず）を介して行われる。
【００３０】
第２の再割り当て方法では、ＤＳＰバス２０４のＤＳＰメモリ・アドレス・スペースからプロセッサ・バス２０２へ、あらかじめ指定されたメモリ・アドレスをスイッチングする。この第２の再割り当て方法は、本実施例においてはスイッチング再割り当て方法と称する。スイッチング再割り当て方法は、メモリ・マッピングを利用して、連続するプロセッサ・メモリ・アドレス・スペース内への再割り当てしたメモリの配置も行う。しかしながら、後に説明するように、このマッピングは、プロセッサ・バス２０２に直接接続されたメモリ・インターフェース（図８および図１０を参照しながら後に説明する）を介して行われ、それによりマッピング再割り当て方法よりも相対的に速い再割り当てしたメモリへのアクセスをサポートする。スイッチング再割り当て方法は、最大で約３２ｋバイトを有するメモリのブロックの再割り当てをサポートする。しかし、実施例は、このように限定されているわけではない。
【００３１】
さらなる再割り当て方法および構成は、ここでの説明を利用したマッピング再割り当て方法およびスイッチング再割り当て方法の組み合わせによって実現することができる。例として、マッピング再割り当て方法およびスイッチング再割り当て方法の両方を利用したシステム構成について後に説明されているが、その代わりの実施例はこの構成に限定されるわけではない。
【００３２】
上述のように、一実施例のコア・メモリの共有は、マッピング再割り当てを利用して、プロセッサ２１２のデータを記憶する際に利用するために、プロセッサ２１２がＤＳＰメモリ２２４の一部を動的に再割り当てし、または再構成することを可能にする。マッピング再割り当ては、ＤＳＰバス２０４およびＤＳＰ２２２を介したプロセッサ２１２によるアクセスのために、ＤＳＰメモリ２２４のあらかじめ指定されたメモリ位置がＤＳＰブリッジ２３２を通してマッピングされるシステムの構成を有している。図４は、図２の実施例において、ＤＳＰブリッジ２３２およびＤＳＰバス２０４を介したプロセッサ２１２による利用のために、ＤＳＰメモリ４２４ｂのいくつかの部分を再割り当てする電子システムの構成４００のブロック図である。
【００３３】
一般に、システム４００は、ＤＳＰブリッジ２３２を通してＤＳＰメモリ・アドレス・スペース４２４からプロセッサ・メモリ・アドレス・スペース４１４にあらかじめ指定されたアドレスまたはブロック４２４ｂをマッピングするために、少なくとも１つのメモリ・マップを利用する。ＤＳＰメモリ４２４ｂの再割り当ては、後に説明するように、コンフィグレーション・レジスタ２５２の情報に応じて行なわれる。一実施例の再割り当ては、各ブロックが最大で約８ｋバイトのメモリを有する８ブロック程度のメモリの付加的な再割り当てをサポートする。しかし、実施例は、このように限定されているわけではない。図５Ａは、図４の実施例において、ブリッジ・ユニットを介してＤＳＰアドレス・スペース４２４からプロセッサ・アドレス・スペース４１４にＤＳＰメモリ４２４ｂのブロックを再割り当てするメモリ再割り当てのブロック図５００である。図６Ａは、図４の実施例において、ブリッジ・ユニットを介してＤＳＰアドレス・スペース４２４からプロセッサ・アドレス・スペース４１４に、ブロック数ｎ（この例においてはｎは８である）のメモリを有するＤＳＰメモリ４２４ｂのブロックを再割り当てするメモリ再割り当てのブロック図６００である。
【００３４】
図５Ａに関していうと、このマッピングの例は、ＤＳＰメモリ４２４からプロセッサ・メモリ４１４への８ｋバイトのメモリ・ブロック４２４ｂの再割り当てを示している。図３によれば、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ４２４および６４ｋバイトのプロセッサ・メモリ４１４を含んでいるが、どのような構成のメモリも、ここに説明するように再割り当てすることができる。再割り当ての際に、メモリ・ブロック４２４ｂ（８ｋバイト）がＤＳＰメモリ４２４の最上部から取り出されるので、ＤＳＰはほぼ１２０ｋバイト（１２８ｋバイト−８ｋバイト＝１２０ｋバイト）のサイズの連続するメモリのブロック４２４ａを認識する。再割り当てされたメモリ・ブロック４２４ｂはコア・プロセッサ・メモリ４１４に加えられ、プロセッサはほぼ７２ｋバイト（６４ｋバイト＋８ｋバイト＝７２ｋバイト）のサイズの連続するメモリのブロック５１４を認識する。図５Ｂは、図５Ａの実施例において、ＤＳＰアドレス・スペース４２４からプロセッサ・アドレス・スペース４１４にＤＳＰメモリの８ｋバイトのブロックを再割り当てした後におけるメモリの構成（メモリ・マップ）を示している。説明した実施例は、８ｋバイトのメモリ・ブロックを再割り当てしているが、他の実施例では、異なるサイズのメモリ・ブロック、または異なるサイズを有するメモリ・ブロックの組み合わせを再割り当てすることができる。
【００３５】
一実施例のメモリは、プロセッサおよび／またはＤＳＰが特定のメモリの構成に応じたアドレスの境界を越えて各メモリのメモリ位置にアクセスしようとしたときに、ホスト・システムに警告を発するメモリ保護機能を有している。メモリ保護機能は、異常終了および割り込みのフラグを有しているが、このように限定されているわけではない。従って、メモリ保護機能のためのアドレスの境界は、メモリ再割り当てをする間に調節される。
【００３６】
例として一実施例のシステムは、現在のメモリの構成に応じてあらかじめ指定された割り込みアドレス境界または限界を越えたメモリ位置にＤＳＰがアクセスした場合に、割り込みフラグを発生させる。このようにしてシステムは、メモリ再割り当てをする間に適切に、割り込みアドレス境界を調節する。図５Ａと図５Ｂを参照しながらすでに説明した例に戻れば、ＤＳＰメモリ４２４からのメモリ・ブロック４２４ｂの取り出しを反映して、割り込みアドレス境界Ｉｎｔ５６０はＤＳＰメモリ４２４内で徐々に低いアドレスに調節される。他の実施例では、ＤＳＰメモリ４２４内のより高いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に割り込みアドレス境界を調節することができる。
【００３７】
他の例として、一実施例のシステムは、現在のメモリの構成に応じてあらかじめ指定された異常終了アドレス境界を越えて、プロセッサがメモリ位置にアクセスした場合、異常終了を発生させる。このようにしてシステムは、メモリ再割り当てをする間に、適切に異常終了アドレス境界を調節する。図５Ａと図５Ｂを参照しながらすでに説明した例に戻れば、コア・プロセッサ・メモリ４１４へのメモリ・ブロック４２４ｂへの追加を反映して、異常終了アドレス境界Ａ５６２はプロセッサ・メモリ５１４内で徐々に高いアドレスに調節される。他の実施例では、メモリ内のより低いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に異常終了アドレス境界を調節することができる。
【００３８】
図６Ａを参照しながら、メモリ再割り当ての例を続ければ、メモリ再割り当ての他の一つの実施例は、８個の８ｋバイトのメモリ・ブロック６０１〜６０８（６４ｋバイト）を有するメモリ・ブロック４２４ｂを再割り当てする。図３によれば、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ４２４と６４ｋバイトのプロセッサ・メモリ４１４を有するが、説明したように、あらゆる構成のメモリを再割り当てすることができる。メモリ・ブロック４２４ｂが、ＤＳＰメモリ４２４の最上部から取り出され、コア・プロセッサ・メモリ４１４に再割り当てされるので、ＤＳＰは約６４ｋバイトのサイズ（１２８ｋバイト−６４ｋバイト＝６４ｋバイト）の連続するメモリのブロック４２４ａを認識する。再割り当てされたメモリ・ブロック４２４ｂはコア・プロセッサ・メモリ４１４に加えられ、プロセッサは約１２８ｋバイトのサイズ（６４ｋバイト＋６４ｋバイト＝１２８ｋバイト）の連続するメモリのブロック６１４を認識する。割り込みおよび異常終了アドレスの境界は、上述したように、メモリをアドレスする方式に対して適切に調節される。図６Ｂは、図６Ａの実施例において、ＤＳＰアドレス・スペース４２４からプロセッサ・アドレス・スペース４１４へ、ＤＳＰメモリの６４ｋバイトのブロックを再割り当てした後のメモリの構成（メモリ・マップ）を示している。上述の実施例は、合計で８個の８ｋバイトのメモリ・ブロックを再割り当てするが、他の実施例では、異なった個数のメモリ・ブロックを再割り当てしてもよく、メモリ・ブロックは、同じおよび／または異なったサイズであってもよい。
【００３９】
一実施例のメモリ・ブロックは、ＤＳＰメモリ４２４の最上部から取り出されたメモリがコア・プロセッサ・メモリ４１４の最上部に加えられるように、順番にマッピングされている。従って、ＤＳＰメモリ・アドレス・スペースは、上から下に向かって減少し、他方、プロセッサ・メモリのアドレス・スペースは、下から上に向かって増加する。しかし、他の実施例では、当該の技術分野において周知の他のマッピング方式を利用することができる。
【００４０】
メモリの再割り当ては、ＤＳＰブリッジ２３２、ＤＳＰバス２０４およびＤＳＰ２２２を介したプロセッサ２１２によるＤＳＰメモリ４２４ｂの再割り当てされた部分へのアクセスをサポートする。プロセッサ２１２の情報は、デコーダ２４２の制御を受けて、再割り当てされたＤＳＰメモリ４２４ｂに送られる。再び図４を参照すると、デコーダ２４２は、プロセッサ・バス２０２を介してプロセッサから情報を受信する。受信された情報は、たとえば関連するメモリのアドレスにともなう命令および／またはデータを含んでいる。デコーダは、プロセッサ・バス２０２上の関連する情報がＧＰＳデータであるかプロセッサ・データであるかを判定するために、アドレスの最初の４ビットを利用する。
【００４１】
バス２０２上の情報（データ）がＧＰＳデータであるとデコーダ２４２が判定すると、デコーダ２４２は、（制御線２４４を利用して）ＤＳＰブリッジ２３２がＧＰＳデータを読み出し／受信するように選択する。制御線２４４を介してデコーダ２４２によって選択される際には、ＤＳＰブリッジ２３２およびＤＳＰ２２２のいくつかの部品の組み合わせ（図示せず）によって、プロセッサ・バス２０２からＤＳＰメモリの適切なメモリ位置にＧＰＳデータが送られる。図７は、図４の実施例において、関連するメモリをロードする順序７０２および７０４にともなうメモリを再割り当てされたＤＳＰメモリのブロック図である。一実施例のＧＰＳデータは、ＧＰＳデータのロード順序７０２にしたがってＤＳＰメモリ４２４ａに書き込まれる。
【００４２】
受信した情報（データ）がプロセッサ・データであるとデコーダ２４２が判定した場合、デコーダ２４２は、メモリ・コントローラ２５０とＤＳＰブリッジ２３２のいずれかが、下記のアドレス・デコード方式にしたがって、それぞれ制御線２４３または制御線２４５を介して、プロセッサ・データを読み出し／受信するように選択する。アドレスが、６０００＿００００と６００１＿００００との間にあった場合、デコーダ２４２は、プロセッサ・メモリ４１４を（制御線２４３を利用して）選択し、プロセッサ・バス２０２およびメモリ・コントローラ２５０を介して関連する情報を受信させる。アドレスが、６００１＿００００と６００２＿００００との間にあった場合、デコーダ２４２は、ＤＳＰメモリの再割り当てされたブロック４２４ｂを（制御線２４５を利用して）選択し、ＤＳＰバス２０４、ＤＳＰブリッジ２３２とＤＳＰ２２２の部品の組み合わせ（図示せず）を介して関連する情報を受信させる。他のさまざまな実施例では、制御線２４４および２４５の代わりに、あらゆる信号伝達線／信号伝達技術を利用して、ＤＳＰブリッジ２３２および／またはメモリ・コントローラ２５０を選択することができる。
【００４３】
デコーダ２４２が、ＤＳＰメモリの再割り当てされたブロック４２４ｂがプロセッサ・バス２０２上の関連する情報（プロセッサ・データ）を受信することを選択すると、デコーダ２４２は、制御線２４５を利用してＤＳＰブリッジ２３２を選択し、プロセッサ・データを読み出し／受信させる。デコーダ２４２によって選択される際には、ＤＳＰブリッジ２３２は、プロセッサ・バス２０２から再割り当てされたＤＳＰメモリ４２４ｂの適切なメモリ位置にプロセッサ・データを処理して送る。ＤＳＰブリッジ２３２によるデータの処理は、たとえばデータのアドレスの反転を含むが、実施例は、このように限定されているわけではない。再び図７を参照して、一実施例のプロセッサ・データは、ＳＷアクセス・ロード順序７０４にしたがって、再割り当てされたＧＰＳメモリ４２４ｂに書き込まれる。
【００４４】
上述したように、一実施例のコア・メモリの共有は、スイッチング再割り当ても含んでいる。スイッチング再割り当ては、ＤＳＰバス２０４のＤＳＰメモリ・アドレス・スペースからプロセッサ・バス２０２へ、あらかじめ指定されたメモリ・アドレスをスイッチングする。この再割り当て方法は、再割り当てされたメモリを連続するプロセッサ・メモリ・アドレス・スペースに配置するために、メモリ・マッピングも使用する。しかしながらこのマッピングは、上述のＤＳＰブリッジ２３２を介したマッピングよりも高速な、再割り当てされたメモリへのアクセスを提供するメモリ・インターフェースを介したものである。
【００４５】
図８は、図２の実施例において、メモリ・インターフェース８０２およびプロセッサ・バス２０２を介した、スイッチング再割り当てを利用する、プロセッサ２１２による利用のために、ＤＳＰメモリ８２４の一部を再割り当てする電子システムの構成８００のブロック図である。システムの構成８００は、プロセッサ・バス２０２に接続されたメモリ・インターフェース８０２を有している。メモリ・インターフェース８０２は、少なくとも１つのメモリマップ（図示せず）をホストするが、このように限定されているわけではない。メモリ・インターフェース８０２の部品は、メモリ・マップを利用して、ＤＳＰメモリ・アドレス・スペース８２４からプロセッサ・メモリ・アドレス・スペース８１４にあらかじめ指定されたアドレスまたはブロック８２４ｂをスイッチングする。ＤＳＰメモリ８２４ｂの再割り当ては、後に説明するように、コンフィグレーション・レジスタ２５２の情報に応じて実行される。再割り当てされたメモリ８２４ｂは、ＤＳＰバス２０４およびＤＳＰ２２２を介したアクセスと比べて比較的小さいクロック・サイクルで、プロセッサ・バス２０２およびメモリ・インターフェース８０２を介してプロセッサによって直接的にアクセスされる。
【００４６】
一実施例の再割り当ては、最大で約３２ｋバイトのメモリを有するＤＳＰメモリのブロック８２４ｂの再割り当てをサポートする。しかし、実施例は、このように限定されているわけではない。他の実施例では、あらゆる数／組み合わせのメモリ位置を有するあらゆる数のブロックを再割り当てすることができる。図９Ａは、図８の実施例において、メモリ・インターフェースを介してＤＳＰアドレス・スペース８２４からプロセッサ・アドレス・スペース８１４に、ＤＳＰメモリのブロック８２４ｂが再割り当てされたメモリの構成のブロック図９００である。
【００４７】
図９Ａを参照すると、以下のマッピングの例は、３２ｋバイトのメモリ・ブロック８２４ｂの再割り当てを示している。図３によれば、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ８２４および６４ｋバイトのプロセッサ・メモリ８１４を含んでいるが、すでに説明したように、あらゆる構成のメモリを再割り当てすることができる。再割り当ての際に、メモリ・ブロック８２４ｂはＤＳＰメモリ８２４の最上部から取り出されるから、ＤＳＰは約９６ｋバイトのサイズ（１２８ｋバイト−３２ｋバイト＝９６ｋバイト）の連続するメモリのブロック８２４ａを認識する。再割り当てされたメモリ・ブロック８２４ｂは、コア・プロセッサ・メモリ８１４に加えられ、プロセッサは約９６ｋバイトのサイズ（６４ｋバイト＋３２ｋバイト＝９６ｋバイト）の連続するメモリのブロック９１４を認識する。図９Ｂは、図９Ａの実施例において、ＤＳＰアドレス・スペース８２４からプロセッサ・アドレス・スペース８１４へ、ＤＳＰメモリの３２ｋバイトのブロックの再割り当てをした後のメモリの構成（メモリ・マップ）を示している。上述の実施例では、３２ｋバイトのメモリ・ブロックを再割り当てしているが、他の実施例では、１または複数の異なるサイズのメモリ・ブロック及び／または異なるサイズを有するメモリ・ブロックの組み合わせを再割り当てしてもよい。
【００４８】
一実施例のメモリは、プロセッサおよび／またはＤＳＰが特定のメモリの構成に応じたアドレス境界を越えて各メモリのメモリ位置へのアクセスを試みた場合に、ホスト・システムに警告を発するメモリ保護機能を有している。メモリ保護機能は、異常終了および割り込みフラグを有しているが、このように限定されているわけではない。したがって、メモリ保護機能のためのアドレス境界は、メモリ再割り当て時に調節される。図５Ａ、図５Ｂ、図６Ａおよび図６Ｂを参照しながらすでに説明したように、ＤＳＰメモリ８２４からのメモリ・ブロック８２４ｂの取り出しを反映して、割り込みアドレス境界Ｉｎｔ９６０はＤＳＰメモリ８２４内において徐々に低いアドレスに調節される。他の実施例では、メモリ内のより高いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に割り込みアドレス境界９６０を調節することができる。同様に、コア・プロセッサ・メモリ８１４へのメモリ・ブロック８２４ｂの追加を反映して、異常終了アドレス境界Ａ９６２はプロセッサ・メモリ９１４内で徐々に高いアドレスに調節される。他の実施例では、メモリ内のより低いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に異常終了アドレス境界９６２を調節することができる。
【００４９】
上述したスイッチングおよび／またはマッピング再割り当て方法の組み合わせによって、多数の追加的な再割り当て方法および構成を実現することができる。たとえば、いくつかのシステム構成は、スイッチングおよびマッピング再割り当ての両方を組み合わせることによって、メモリを再割り当てすることができる。図１０は、図２，４および８の実施例において、スイッチング再割り当てを利用して１グループのＤＳＰメモリ・アドレス１０２４ｃを再割り当てし、マッピング再割り当てを利用して他のグループのＤＳＰメモリ・アドレス１０２４ｂを再割り当てするシステムの構成１０００の例のブロック図を示している。システム１０００の部品は、メモリ・インターフェース１００２およびプロセッサ・バス２０２を介したプロセッサ２１２による利用のためにＤＳＰメモリの第１の部分１０２４ｃを再割り当てし、ＤＳＰブリッジ２３２およびＤＳＰバス２０４を介したプロセッサ２１２による利用のためにＤＳＰメモリの第２の部分１０２４ｂを再割り当てする。しかし、このように限定されているわけではない。
【００５０】
まず、ＤＳＰメモリの第１のブロック１０２４ｃのスイッチング再割り当てに関していえば、システムの構成１０００は、プロセッサ・バス２０２に接続されたメモリ・インターフェース１００２を含んでいる。メモリ・インターフェース１００２は、少なくとも１つのメモリ・マップ（図示せず）をホストするが、このように限定されているわけではない。メモリ・インターフェース１００２の部品は、メモリ・マップを利用して、ＤＳＰメモリ１０２４からコア・プロセッサ・メモリ１０１４に、あらかじめ指定されたアドレスまたはブロック１０２４ｃをスイッチングする。ＤＳＰメモリの第１のブロック１０２４ｃの再割り当ては、各ブロックが最大で約８ｋバイトのメモリを有する４ブロック程度のメモリの再割り当てをサポートする。しかし、実施例がこのように限定されているわけではない。ＤＳＰメモリ１０２４ｃのスイッチング再割り当ては、後に説明するように、コンフィグレーション・レジスタ２５２の情報に応じて実行される。再割り当てされたメモリ１０２４ｃは、プロセッサ・バス２０２およびメモリ・インターフェース１００２を介してプロセッサ２１２によって直接的にアクセスされる。
【００５１】
次にＤＳＰメモリの第２のブロック１０２４ｂのマッピング再割り当てでは、システム構成１０００は、少なくとも１つのメモリ・マップを利用して、ＤＳＰブリッジ２３２を介してＤＳＰメモリ１０２４からコア・プロセッサ・メモリ１０１４にあらかじめ指定されたアドレスまたはブロック１０２４ｂをマッピングする。ＤＳＰメモリ１０２４ｂの再割り当ては、後に説明するように、コンフィグレーション・レジスタ２５２の情報に応じて実行される。ＤＳＰメモリの第２のブロック１０２４ｂの再割り当ては、第１のブロック１０２４ｃのスイッチング再割り当てと組み合わせて行なわれたときに、各ブロックが最大で約８ｋバイトのメモリを有する４ブロック程度のメモリの付加的な再割り当てをサポートする。しかし、実施例が、このように限定されているわけではない。
【００５２】
図１１Ａは、図１０の実施例において、メモリ・インターフェース１００２およびＤＳＰブリッジ２３２を介してＤＳＰアドレス・スペース１０２４からコア・プロセッサ・アドレス・スペース１０１４に、ＤＳＰメモリのブロック１０２４ｃおよび１０２４ｂがそれぞれ再割り当てされたメモリの構成のブロック図１１００である。図３のように、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ１０２４および６４ｋバイトのプロセッサ・メモリ１０１４を有しているが、すでに説明したように、あらゆる構成のメモリを再割り当てすることができる。
【００５３】
メモリ・インターフェース１００２およびプロセッサ・バス２０２を介したプロセッサ２１２による利用のためのＤＳＰメモリの第１の部分１０２４ｃの再割り当ては、３２ｋバイトのメモリ・ブロック１０２４ｃの再割り当てを含んでいる。再割り当ての際には、メモリ・ブロック１０２４ｃは、上述のように、メモリ・インターフェースの部品を介してメモリ・マッピングを利用することによって、ＤＳＰメモリ１０２４の最上部から取り出される。
【００５４】
同様に、ＤＳＰブリッジ２３２を介したプロセッサ２１２による利用のためのＤＳＰメモリの第２のブロック１０２４ｂの再割り当ては、４つの８ｋバイトのメモリ・ブロック１１０１〜１１０４（まとめて１０２４ｂ）の再割り当てを含んでいる。再割り当ての際には、メモリ・ブロック１０２４ｂは、上述のように、ＤＳＰブリッジ２３２およびＤＳＰ２２２の部品を介してメモリ・マッピングを利用することによって、ＤＳＰメモリ１０２４から取り出される。
【００５５】
ＤＳＰメモリの第１のブロック１０２４ｃおよび第２のブロック１０２４ｂの再割り当ての際には、まず、メモリ・ブロック１０２４ｃ（３２ｋバイト）が、コアＤＳＰメモリ１０２４の最上部から取り出され、コア・プロセッサ・メモリ１０１４の最上部に加えられる。次に、メモリ・ブロック１０２４ｂ（８ｋバイト×４ブロック＝３２ｋバイト）が、残っているコアＤＳＰメモリ１０２４の最上部から取り出され、メモリ・ブロック１０２４ｃの最上部に加えられる。これらの２つの再割り当て処理の後に、ＤＳＰ２２２は、約６４ｋバイト（１２８ｋバイト−３２ｋバイト−３２ｋバイト＝６４ｋバイト）のサイズの連続するメモリのブロック１０２４ａを認識する。再割り当てされたメモリ・ブロック１０２４ｃおよび１０２４ｂをコア・プロセッサ・メモリ１０１４へ加えた結果として、プロセッサは、約１２８ｋバイト（６４ｋバイト＋３２ｋバイト＋３２ｋバイト＝１２８ｋバイト）のサイズの連続するメモリのブロック１１１４を認識する。図１１Ｂは、図１１Ａの実施例において、ＤＳＰアドレス・スペース１０２４からプロセッサ・アドレス・スペース１０１４にＤＳＰメモリの第１および第２のブロックを再割り当てした後のメモリの構成（メモリ・マップ）を示している。他の実施例では、異なったサイズの複数のメモリ・ブロックまたは異なったサイズを有する複数のメモリ・ブロックの組み合わせを再割り当てしても良い。
【００５６】
ここで留意すべきは、ＤＳＰメモリを再割り当てするときに、ＤＳＰメモリの第１の部分１０２４ｃのスイッチングが、ＤＳＰメモリの第２の部分１０２４ｂのマッピングより優先するということであるが、実施例がこのように限定されるわけではない。したがって、スイッチングおよびマッピング方法を組み合わせて利用するときには、プロセッサ２１２がメモリ・ブロック１１０１〜１１０４のうち１つまたは複数をマッピングし、次にメモリ・ブロック１１０１〜１１０４のうち１つまたは複数をスイッチングする場合と、プロセッサ２１２がメモリ・ブロック１１０１〜１１０４のうち１つまたは複数をスイッチングし、次にメモリ・ブロック１１０１〜１１０４のうち１つまたは複数をマッピングする場合の２つの状況が発生し得る。これら２つの状況のどちらであっても、それまでのデータの順序は、マッピングおよびスイッチング再割り当て方法の間で処理されるときも保持される。また、プロセッサが、ＤＳＰブリッジ２３２を介して、コア・プロセッサ・メモリ１０１４に、ＤＳＰメモリの第１の部分１０２４ｃのブロック１１０１〜１１０４のうちの１つまたは複数を以前にマッピングしていた場合には、後にメモリ・インターフェースを介してコア・プロセッサ・メモリ１０１４にブロックをマッピングするときに、これらのブロック１１０１〜１１０４内に記憶されたあらゆるデータがそのまま同じアドレスに残っている。
【００５７】
図５Ａ，図５Ｂ，図６Ａ、図６Ｂ、図９Ａおよび図９Ｂを参照しながら既に説明したように、ＤＳＰメモリ１０２４からのメモリ・ブロック１０２４ｃおよび１０２４ｂの取り出しを反映して、割り込みアドレス境界Ｉｎｔ１１６０はＤＳＰメモリ１０２４内で徐々に低いアドレスとなるよう調節される。他の実施例では、メモリ内のより高いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に割り込みアドレス境界１１６０を調節することができる。同様に、コア・プロセッサ・メモリ１０１４へのメモリ・ブロック１０２４ｃおよび１０２４ｂの追加を反映して、異常終了アドレス境界Ａ１１６２はメモリ内で徐々に高いアドレスとなるよう調節される。他の実施例では、メモリ内のより低いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に異常終了アドレス境界１１６２を調節することができる。
【００５８】
メモリ・スイッチングおよびマッピング再割り当てを組み合わせたシステムの構成１０００は、プロセッサ２１２によるプロセッサ・バス２０２およびメモリ・インターフェース１００２を介したＤＳＰメモリのスイッチングされた部分１０２４ｃへのアクセスをサポートし、さらにＤＳＰブリッジ２３２、ＤＳＰバス２０４およびＤＳＰ２２２を介したＤＳＰメモリのマッピングされた部分１０２４ｂへのアクセスをサポートする。プロセッサ２１２の情報（データ）は、デコーダ２４２の制御によって適切なメモリ位置へ送られる。再度、図１０を参照すると、デコーダ２４２は、プロセッサ・バス２０２を介してプロセッサ２１２から情報（データ）を受信する。受信された情報は、たとえば関連するメモリ・アドレスにともなうデータおよび／または命令を含んでいる。デコーダ２４２は、関連する情報がＧＰＳデータであるかプロセッサ・データであるかを判定するために、アドレスの最初の４ビットを利用する。
【００５９】
情報（データ）がＧＰＳデータであるとデコーダ２４２が判定すると、デコーダ２４２は、（制御線２４４を利用して）ＤＳＰブリッジ２３２が、ＧＰＳデータを読み出し／受信するように選択する。制御線２４４を介してデコーダ２４２によって選択される際には、ＤＳＰブリッジ２３２およびＤＳＰ２２２のいくつかの部品の組み合わせ（図示せず）によって、プロセッサ・バス２０２からＤＳＰメモリの適切なメモリ位置１０２４ａにＧＰＳデータを送る。図１２は、図１０の実施例において、関連するメモリをロードする順序１２０２および１２０４にともなうメモリを再割り当てされたＤＳＰメモリのブロック図である。一実施例のＧＰＳデータは、ＧＰＳデータ・ロード順序１２０２にしたがって、ＧＰＳメモリ１０２４ａに書き込まれる。
【００６０】
受信した情報（データ）がプロセッサ・データであるとデコーダ２４２が判定すると、デコーダ２４２は、メモリ・コントローラ２５０、ＤＳＰブリッジ２３２、メモリ・インターフェース１００２のうちの１つが、下記のようなアドレス・デコード方式にしたがって、それぞれ制御線２４３または制御線２４５または制御線２４６を介して、プロセッサ・データを読み出し／受信するように選択する。アドレスが６０００＿００００と６００１＿８０００との間であり、メモリの構成がスイッチングされたメモリ１０２４ｃを有するときは、デコーダは、（制御線２４６を利用して）スイッチングされたメモリ１０２４ｃを選択し、プロセッサ・バス２０２およびメモリ・インターフェース１００２を介して関連する情報を受信させる。アドレスが６００１＿８０００と６００２＿００００との間であり、メモリの構成がスイッチングされたメモリ１０２４ｃを有するときは、デコーダは、（制御線２４５を利用して）ＤＳＰメモリ１０２４のマッピングされたブロック１０２４ｂを選択し、ＤＳＰバス２０４およびＤＳＰブリッジ２３２とＤＳＰ２２２のいくつかの部品の組み合わせ（図示せず）を介して関連する情報を受信させる。他のさまざまな実施例では、制御線２４３〜２４６の代わりに、プロセッサ・データを読み出し／受信するデバイスを選択するために、あらゆる数／タイプ／組み合わせの信号伝達方式を利用することができる。
【００６１】
デコーダ２４２がＤＳＰメモリのマッピングされたブロック１０２４ｂを選択して、プロセッサ・バス２０２上の関連する情報を受信させたときには、デコーダ２４２は制御線２４５を利用してＤＳＰブリッジ２３２を選択して、プロセッサ・データを読み出し／受信させる。デコーダ２４２によって選択された際には、ＤＳＰブリッジ２３２はプロセッサ・データを処理し、プロセッサ・バス２０２から再割り当てされたＤＳＰメモリ１１２４ｂの適切なメモリ位置に送る。ＤＳＰブリッジ２３２によるデータの処理は、たとえばデータのアドレスの反転を含むが、実施例がこのように限定されているわけではない。再度、図１２を参照すると、一実施例のプロセッサ・データは、ＳＷアクセス・ロード順序１２０４にしたがって、再割り当てされたＧＰＳメモリ１０２４ｂに書き込まれる。
【００６２】
上述したように、一実施例のメモリは、プロセッサ２１２および／またはＤＳＰ２２２が、特定のメモリの構成に応じたアドレスの境界を越えて各メモリのメモリ位置へのアクセスを試みたときに、ホスト・システムに警告を発するメモリ保護機能を有している。これらのメモリ保護機能は、たとえば異常終了および割り込みのフラグを有している。図１３は、図１０の実施例において、１グループのメモリ・アドレスをスイッチング再割り当てを利用して再割り当てし、他のグループのメモリ・アドレスをマッピング再割り当てを利用して再割り当てするシステムの構成１３００のブロック図である。さらにこのシステム１３００は、ＤＳＰブリッジ２３２と接続されたＳＷモニタ１３０２を含んでいるが、このように限定されているわけではない。ＳＷモニタ１３０２は、プロセッサ２１２が、上述したようにメモリの構成に関連するあらかじめ指定された異常終了アドレス境界を越えたメモリ位置にアクセスした場合に、異常終了１３０４を発生させる。システム１３００は、メモリの構成に対して適切に、少なくとも１つの異常終了アドレス境界を調節する。
【００６３】
システム１３００は、ＤＳＰ２２２およびＤＳＰメモリ１０２４のうちの少なくとも一方に接続されたＤＳＰモニタ１３０４を有している。実施例のＤＳＰモニタ１３０４は、ＤＳＰ２２２が、上述したようにメモリの構成に関連するあらかじめ指定された割り込みアドレス境界または限界を越えたメモリ位置にアクセスした場合に、割り込み１３１４を発生させる。システム１３００は、メモリの構成に対して適切に、少なくとも１つの割り込みアドレス境界を調節する。
【００６４】
図２，４，８および１０を参照しながら既に説明したシステムの構成は、ＤＳＰメモリにアクセスする際に利用するためのマルチ・プレクサを有することもできる。例えば、図１４は、図２，４，８および１０の実施例のいずれかにおいて、再割り当てされたメモリＸ２４およびマルチ・プレクサ１４０２を有する電子システム１４００のブロック図である。マルチ・プレクサ１４０２は、メモリＸ２４（“Ｘ”は対応する図／システムの番号を表わしており、図２では“メモリ２２４”、図４では“メモリ４２４”、図８では“メモリ８２４”、図１０では“メモリ１０２４”を表す）およびＤＳＰ２２２に接続されているが、このように限定されているわけではない。メモリＸ２４は、ＤＳＰメモリＸ２４ａおよび再割り当てされたメモリ・ブロックＸ２４ｂを有している。上述したように、再割り当てされたメモリ・ブロックＸ２４ｂは、プロセッサ２１２によって利用するために再割り当てされている（図２，４，８および１０参照）。
【００６５】
メモリＸ２４への書き込み処理の間に、ＤＳＰ２２２は、アドレスおよびメモリ・チップの選択情報（０，１，２または３）を含む情報をマルチ・プレクサ１４０２に転送する。他の実施例では、マルチ・プレクサ１４０２に追加的な情報を送ることができる。アドレスおよびチップの選択情報を利用して、マルチ・プレクサ１４０２は、書き込み処理のために、メモリ・ブロックＸ２４ａまたはＸ２４ｂのうちの１つのメモリ位置を選択する。
【００６６】
メモリ読み出し処理の間に、ＤＳＰ２２２は、すくなくともアドレス情報を含む情報をマルチ・プレクサ１４０２に送る。それに応答して、マルチ・プレクサ１４０２は、アドレス情報に応じた各メモリ・ブロックＸ２４ａ、Ｘ２４ｂのメモリ位置からデータを受信する。マルチ・プレクサは、アドレス情報を利用してメモリ・ブロックＸ２４ａから読み出された情報とメモリ・ブロックＸ２４ｂから読み出された情報のいずれかを選択し、ＤＳＰ２２２に選択された情報を送る。
【００６７】
上述したすべてのプロセッサ・メモリおよびＤＳＰメモリへのアクセスは、バイト・ライン書き込み制御によって、バイト、ハーフ・ワードおよびワードでのアクセスを可能にする。この特徴は、スイッチングされたメモリについても、ブリッジ・ユニットを介してマッピングされたメモリについてもあてはまる。ＤＳＰメモリのバイトの順序は、ＤＳＰのベース・アドレスの順序、またはプロセッサのベース・アドレスを利用するマッピングまたはスイッチングされたブロックの順序のいずれかと同じである。
【００６８】
前記のメモリの共有／再割り当ては、ホスト電子システムの複数の部品またはモジュールを含むことができる。図２〜図１４を参照しながら既に説明したシステムは、プロセッサ・バス２０２に接続された少なくとも１つのメモリ・コンフィグレーション・レジスタ２５２を有している。メモリ・コンフィグレーション・レジスタ２５２は、ブリッジ・ユニット２３４を介してプロセッサ・バス２０２に接続されており、メモリの構成を制御または管理する際に、プロセッサ２１２、デコーダ２４２、メモリ・インターフェース（図８では８０２、図１０では１００２）、ＤＳＰブリッジ２３２、マルチプレクサ（図１４の１４０２）のうちの少なくとも１つによって利用される情報を記憶するレジスタを含んでいる。単独でおよび／またはホスト電子システムの別の部品との組み合わせにおいて、メモリ・コンフィグレーション・レジスタ２５２は、一般に、１つまたは複数の後に説明するレジスタ／レジスタ・フィールドを含んでいる。
【００６９】
一実施例のコンフィグレーション・レジスタ２５２は、上述したように、マッピング再割り当てをサポートするためのレジスタ・フィールドの第１のセットを有している。このレジスタ・フィールドのセットは、ＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにメモリ・ブロックをマッピングする。このメモリ・ブロックは、最大８つの８ｋバイトのブロックを有しているが、他の実施例では、あらゆるサイズを組み合わせたあらゆる数のブロックを有していてもよい。それらのブロックは、ＤＳＰメモリの最上部から順にマッピングされる。一実施例のレジスタ・フィールドの第１のセットは、１つまたは複数のレジスタ・フィールドを有している。
【００７０】
一実施例のコンフィグレーション・レジスタ２５２は、上述したように、スイッチング再割り当てをサポートするためのレジスタ・フィールドの第２のセットを有している。このレジスタ・フィールドの第２のセットは、ＤＳＰバスからプロセッサ・バスへのＤＳＰメモリの最上部の３２ｋバイトのスイッチングをサポートする。その３２ｋバイトのブロックは、４つの８ｋバイトのブロックを有している。メモリの対応する４つの８ｋバイトのブロックのうち１つまたは複数が、マッピング再割り当てによって、既に再割り当てされているか、または後に再割り当てされる場合、スイッチ制御が優先される。最初の４つのマッピングされた８ｋバイトのブロックおよび単独でスイッチングされた３２ｋバイトのブロックのデータの内容は、どちらの再割り当て方法であっても、同一のオフセットおよびバイト順序になる。一実施例のレジスタ・フィールドの第２のセットは、１つまたは複数のレジスタ・フィールドを有している。
【００７１】
一実施例のコンフィグレーション・レジスタ２５２は、ＤＳＰメモリの読み出しおよび／または書き込みアクセス違反に対して、異常終了の発生を有効または無効にすることをサポートするレジスタ・フィールドの第３のセットを有している。これらの異常終了の発生は、読み出しおよび書き込みのアクセスに対し、独立して有効または無効にすることができる。割り込みに関しては、一実施例のシステムは、最初のＤＳＰメモリ違反およびその後の割り込みを引き起こしたアドレスの保存をサポートするレジスタ・フィールドの第４のセットを有している。一実施例のレジスタ・フィールドの第３のセットおよび第４のセットのそれぞれは、１つまたは複数のレジスタ・フィールドを有している。
【００７２】
図１５は、一実施例における、メモリの共有のための制御レジスタ１５００のブロック図である。コンフィグレーション・レジスタ２５２は、制御レジスタ１５００を有するが、他の実施例では、ホスト・システムの別の部品および／または部品の組み合わせ内に制御レジスタ１５００を有していても良い。このレジスタのビット０−１５の機能の説明は、次のとおりである。
ビット１５〜７：予備
ビット６：ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ：ロジック１＝プロセッサ・バスを介したＤＳＰメモリの上側の３２ｋバイトへのプロセッサによる直接的なアクセスを有効にする。
ビット５〜３：ＭＡＰ＿ＢＬＫ［２：０］：０００−１１１は、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝１のときに、プロセッサ・ソフト・マッピング・アクセスのためにＤＳＰメモリの上側の６４ｋバイトの１個目から８個目までの８ｋバイトのブロックを選択する。これらのビットは、次のようにプロセッサ・ソフトＭＡＰアドレスの境界を設定する。
０００：≧０ｘ６００１＿００００＜０ｘ６００１＿２０００または≧０ｘＣ０２１＿Ｅ０００＜０ｘＣ０２２＿００００
００１：≧０ｘ６００１＿００００＜０ｘ６００１＿４０００または≧０ｘＣ０２１＿Ｃ０００＜０ｘＣ０２２＿００００
０１０：≧０ｘ６００１＿００００＜０ｘ６００１＿６０００または≧０ｘＣ０２１＿Ａ０００＜０ｘＣ０２２＿００００
０１１：≧０ｘ６００１＿００００＜０ｘ６００１＿８０００または≧０ｘＣ０２１＿８０００＜０ｘＣ０２２＿００００
１００：≧０ｘ６００１＿００００＜０ｘ６００１＿Ａ０００または≧０ｘＣ０２１＿６０００＜０ｘＣ０２２＿００００
１０１：≧０ｘ６００１＿００００＜０ｘ６００１＿Ｃ０００または≧０ｘＣ０２１＿４０００＜０ｘＣ０２２＿００００
１１０：≧０ｘ６００１＿００００＜０ｘ６００１＿Ｅ０００または≧０ｘＣ０２１＿２０００＜０ｘＣ０２２＿００００
１１１：≧０ｘ６００１＿００００＜０ｘ６００２＿００００または≧０ｘＣ０２１＿００００＜０ｘＣ０２２＿００００
ビット２：ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ：ロジック１＝ＤＳＰバス・ブリッジを介して０ｘ６００１＿００００以上でかつ０ｘ６００２＿００００より小さいアドレスにおいて、ＤＳＰメモリの上側の６４ｋバイトの１個目から８個目までの８ｋバイトのブロックのプロセッサ・ソフト・マッピングを可能にする。
ビット１：ＥＮ＿ＣＰＵ＿ＷＡＢ：ロジック１＝プロセッサ書き込み違反における異常終了を有効にする。
ビット０：ＥＮ＿ＣＰＵ＿ＲＡＢ：ロジック１＝プロセッサ読み出し違反における異常終了を有効にする。
【００７３】
制御レジスタ１５００の制御ビットのさらに詳細な説明は次のとおりである。ＥＮ＿ＣＰＵ＿ＲＡＢビットは、プロセッサで利用するためにマッピングされているか、またはアクセスしたバス上に物理的に存在しないために、許可されていないアドレス範囲内でＤＳＰメモリから読み出ししようとした場合に、プロセッサ２１２にアクセスを異常終了させる。たとえばＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、プロセッサ２１２が０ｘ６００１＿Ｃ０００から０ｘ６００１＿ＦＦＦＦのアドレス範囲から読み出そうとした場合、異常終了が発生する。同様にＳＷＩ＿ＥＮＢ＝１であって、プロセッサ２１２が０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの範囲から読み出そうとした場合、異常終了が発生する。しかし、ここで留意すべきは、ＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、ＭＡＰ＿ＢＬＫが０００以上である場合には、０ｘ６００１＿００００から０ｘ６００１＿１ＦＦＦと０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの両方のアドレス範囲において、プロセッサ２１２はＤＳＰブリッジ２３２を介してブロック０から読み出してもよいということである。
【００７４】
ＥＮ＿ＣＰＵ＿ＷＡＢビットは、プロセッサで利用するために特定のアドレス範囲がマッピングされているか、またはアクセスしたバス上に物理的に存在しないために、許可されていないアドレス範囲内でＤＳＰメモリに書き込みをしようとした場合に、プロセッサ２１２にアクセスを異常終了させる。たとえばＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、プロセッサ２１２が０ｘ６００１＿Ｃ０００から０ｘ６００１＿ＦＦＦＦのアドレス範囲に書き込もうとした場合、異常終了が発生する。同様にＳＷＩ＿ＥＮＢ＝１であって、プロセッサ２１２が０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの範囲のアドレスに書き込もうとした場合、そのブロックはＤＳＰバス上に存在しないので、異常終了が発生する。しかし、ここで留意すべきは、ＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、ＭＡＰ＿ＢＬＫが０００以上である場合には、０ｘ６００１＿００００から０ｘ６００１＿１ＦＦＦおよび０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの両方のアドレス範囲において、プロセッサ２１２はＤＳＰブリッジ２３２を介してブロック０に書き込んでもよいということである。
【００７５】
ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢビットは、ＭＡＰ＿ＢＬＫ［２：０］に、ＤＳＰアドレス範囲からオンチップ・プロセッサ・メモリのすぐ上のアドレス範囲への８個の８ｋバイトのブロックのアドレス・マッピングを制御可能とさせる。このビットが無効とされている（ロジック“０”にセットされている）場合、マッピング・ビットであるＭＡＰ＿ＢＬＫ［２：０］は何の影響も及ぼさない。
【００７６】
ＭＡＰ＿ＢＬＫ［２：０］ビットは、ＤＳＰアドレス範囲からオンチップ・プロセッサ・メモリのすぐ上のアドレス範囲への８個の８ｋバイトのブロックのマッピングを制御する。それらのバイトは、ブロック０から始まりＭＡＰ＿ＢＬＫ［２：０］によって指定されたブロックで終了するようにマッピングされるが、このように限定されているわけではない。ブロック０は、ＤＳＰアドレス範囲の最上部であって、プロセッサ・メモリの上のマッピングされた範囲の最下部にマッピングされる。この逆の積み重ねは、上側のブロックが取り出されるときに、残りのＤＳＰメモリが連続するアドレス範囲となるように行われ、加えられたプロセッサ・メモリは、連続するアドレス範囲となるように、加えられたブロックそれぞれとともに上方に重ねられる。
【００７７】
ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢビットは、メモリ・ブロック０〜３をＤＳＰバスからプロセッサ・バスにスイッチングする。４つのブロックは、プロセッサ・アドレス範囲に、逆の順序で積み重ねられ、開始部であるブロック０が、ちょうどオンチップ・プロセッサ・メモリのすぐ上にマッピングされる。これと同じマッピングが、ＭＡＰ＿ＢＬＫ［２：０］がＤＳＰブリッジ２３２を介してブロックをマッピングするときに利用される。
【００７８】
図１６は、一実施例における、メモリの共有のための状態レジスタ１６００のブロック図である。コンフィグレーション・レジスタ２５２は、状態レジスタ１６００を有しているが、他の実施例では、ホスト・システムの別の部品および／または部品の組み合せが状態レジスタ１６００を有していてもよい。このレジスタのビット０−１５の機能の説明は次のとおりである。
ビット１５〜２：予備
ビット１：ＣＰＵＷ＿ＶＩＯ：読み出し処理の間は、ロジック１＝プロセッサの書き込み違反。書き込み処理の間は、ロジック１の書き込みによってビットがクリアされる。
ビット０：ＣＰＵＲ＿ＶＩＯ：読み出し処理の間は、ロジック１＝プロセッサの読み出し違反。書き込み処理の間は、ロジック１の書き込みによってビットがクリアされる。
【００７９】
状態レジスタ１６００の各制御ビットのより詳細な説明は次のとおりである。ＣＰＵＲ＿ＶＩＯビットは、プロセッサの読み出し違反が起こったときにセットされる。このビットは、ＥＮ＿ＣＰＵ＿ＲＡＢの状態に関係なくセットされる。ＣＰＵＲ＿ＶＩＯビットは、プロセッサがロジック“１”を書き直したときにクリアされる。
【００８０】
ＣＰＵＷ＿ＶＩＯビットは、プロセッサの書き込み違反が起こったときにセットされる。このビットは、ＥＮ＿ＣＰＵ＿ＷＡＢの状態に関係なくセットされる。ＣＰＵＷ＿ＶＩＯビットは、プロセッサがロジック“１”を書き直したときにクリアされる。
【００８１】
図１７は、一実施例における、メモリの共有のための書き込み／読み出し違反アドレス・レジスタ１７００のブロック図である。コンフィグレーション・レジスタ２５２は、違反アドレス・レジスタ１７００を有しているが、他の実施例では、ホスト・システムの別の部品および／または部品の組み合せが違反アドレス・レジスタ１７００を有していてもよい。このレジスタのビット０−１５の機能の説明は次のとおりである：
ビット１５〜０：ＤＳＰＷ＿ＩＮＴまたはＤＳＰＲ＿ＩＮＴパルスを初めに発生させたＤＳＰアドレス。
【００８２】
図１８Ａおよび１８Ｂは、一実施例における、メモリの共有のためのアドレス・マップ１８００を示している。コンフィグレーション・レジスタ２５２は、アドレス・マップ１８００を有しているが、他の実施例では、ホスト・システムの別の部品および／または部品の組み合せがアドレス・マップ１８００を含んでいてもよい。メモリの共有のためのアドレス・マッピングの例を下記にいくつか提示するが、実施例がこれらの例に限定されるわけではない。
【００８３】
第１の例においては、ブロック＝７、ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ＝Ｘ、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝０、ＭＡＰ＿ＢＬＫ［２：０］＝ＸＸＸである。ＤＳＰ２２２は、０ｘ０００１＿００００から０ｘ０００１＿ＦＦＦＦのＤＳＰアドレス範囲においてブロックにアクセスする。プロセッサ２１２は、０ｘＣ０２１＿００００から０ｘＣ０２１＿１ＦＦＦのＤＳＰ・ブリッジ・アドレスにおいてブロックにアクセスする。プロセッサ２１２は、プロセッサ・バス２０２においてこのブロックにアクセスすることはできない。
【００８４】
第２の例においては、ブロック＝７、ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ＝Ｘ、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝１、ＭＡＰ＿ＢＬＫ［２：０］＝１１０である。ＤＳＰ２２２は、０ｘ０００１＿００００から０ｘ０００１＿ＦＦＦＦのＤＳＰアドレス範囲においてブロックにアクセスする。プロセッサ２１２は、０ｘＣ０２１＿００００から０ｘＣ０２１＿ＦＦＦＦのＤＳＰブリッジ・アドレスまたは０ｘ６００１＿００００から０ｘ６００１＿５ＦＦＦのソフト・マップ・アドレスにおいてブロックにアクセスする。プロセッサ２１２は、プロセッサ・バス２０２においてこのブロックにアクセスすることはできない。
【００８５】
第３の例においては、ブロック＝７、ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ＝Ｘ、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝１、ＭＡＰ＿ＢＬＫ［２：０］＝１１１である。ＤＳＰ２２２は、一般的なＤＳＰアドレス範囲である０ｘ０００１＿００００から０ｘ０００１＿ＦＦＦＦの範囲においてブロックにアクセスする。プロセッサ２１２は、０ｘ６００１＿００００から０ｘ６００１＿７ＦＦＦのマッピングされたＤＳＰブリッジ・アドレスにおいてブロックにアクセスする。プロセッサ２１２は、プロセッサ・バス２０２においてこのブロックにアクセスしない。ＤＳＰ２２２がその一般的なＤＳＰバス・アドレス範囲においてこのブロックにアクセスしようとすると、適切なＤＳＰ読み出しまたは書き込み割り込みが発生する。
【００８６】
一実施例のメモリ共有／再割り当ては：少なくとも１つのバスに接続された中央処理装置および少なくとも１つのコプロセッサと；そのバスに接続されたメモリ・デバイスと；そのバスに接続されており、システムの状態の情報に応じてそのメモリ・デバイスの少なくとも１つの構成を制御する際に使用する情報を備える少なくとも１つのレジスタ、のうちの少なくとも１つを備えるデバイスを含んでおり、第１の構成は、コプロセッサによる独占的なメモリ・デバイスへの直接的なアクセスをサポートし、第２の構成は、コプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスおよび中央処理装置によるメモリ・デバイスの第２の領域への間接的なアクセスのうちの少なくとも一方をサポートし、第３の構成は、コプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスおよび中央処理装置によるメモリ・デバイスの第３の領域への直接的なアクセスのうちの少なくとも一方をサポートする。
【００８７】
一実施例のデバイスは、前記少なくとも１つのバスに接続された少なくとも１つのデコーダをさらに有し、そのデコーダは、バス上のアドレス情報を利用してメモリ領域の１つを選択し、アドレス情報に相当するデータを受信させる。
【００８８】
一実施例のデバイスは、コプロセッサとメモリ・デバイスを第１のバスに接続する少なくとも１つのブリッジ・ユニットをさらに有し、中央処理装置によるメモリ・デバイスへの間接的なアクセスが、中央処理装置によるアクセスのためのブリッジ・ユニットを介したメモリ・デバイスの少なくとも１セットのメモリ位置のマッピングを含んでいる。
【００８９】
一実施例のデバイスは、メモリ・デバイスを第１のバスに接続する少なくとも１つのメモリ・インターフェースをさらに有し、中央処理装置によるメモリ・デバイスへの直接的なアクセスが、中央処理装置によるアクセスのためのメモリ・インターフェースを介したメモリ・デバイスの少なくとも１セットのメモリ位置のマッピングを含んでいる。
【００９０】
一実施例の中央処理装置は第１の速度でクロック制御され、コプロセッサは第２の速度でクロック制御される。
【００９１】
一実施例のバスは、中央処理装置をブリッジ・ユニットに接続する第１のバスと、ブリッジ・ユニットをコプロセッサおよびメモリ・デバイスに接続する第２のバスを有する。
【００９２】
一実施例のデバイスは、携帯電話、携帯可能な位置追跡デバイス、位置追跡デバイスに接続された携帯電話のうちの少なくとも１つを有する。
【００９３】
一実施例のメモリの共有／再割り当ては：第１のバスを介した第１のプロセッサによるアクセスのために接続された第１のメモリ領域と；第２のバスを介した第２のプロセッサによるアクセスのために接続された第２のメモリ領域と；第１のプロセッサによる第２のメモリ領域の共有されたアクセスをサポートする少なくとも１つのメモリの構成を含み、その少なくとも１つの構成が、第１のバスを介した第２のメモリ領域のメモリ位置の第１のセットへの第１のプロセッサによるアクセスと、第２のバスを介した第２のメモリ領域のメモリ位置の第２のセットへの第１のプロセッサによるアクセスを含んでいる。
【００９４】
一実施例のシステムの第１のプロセッサは、第１のクロック・ドメインにおいて動作する中央処理装置であり、第２のプロセッサは、第２のクロック・ドメインにおいて動作するデジタル信号プロセッサ（ＤＳＰ）である。
【００９５】
一実施例のシステムは、第１のバス上の情報を受信するように接続された少なくとも１つのデコーダをさらに有し、そのデコーダは、第１および第２のメモリ領域へのアクセスを選択するために、その情報の少なくとも１つのアドレスを利用する。一実施例のデコーダは、第１のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第１のメモリ領域を選択する。一実施例のデコーダは、第２のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第２のメモリ領域の第２のメモリ位置のセットを選択する。一実施例のデコーダは、第３のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第２のメモリ領域の第１のメモリ位置のセットを選択しる。この場合において、第３のアドレス範囲は、第２のアドレス範囲のアドレスの第１のサブセットである。一実施例のデコーダは、第４のアドレス範囲におけるアドレスを有するデータによるアクセスのために、第２のメモリ領域の第１のメモリ位置のセットを選択する。この場合において、第４のアドレス範囲は、第２のアドレス範囲のアドレスの第２のサブセットである。
【００９６】
一実施例のシステムは、少なくとも１つのメモリの構成を含む情報を記憶する少なくとも１つのコンフィグレーション・レジスタをさらに有する。
【００９７】
一実施例の第１のメモリ位置のセットは、第１のプロセッサのクロック速度とほぼ同じ速度でクロック制御される少なくとも１つのメモリ・ブロックを有する。
【００９８】
一実施例の第２のメモリ位置のセットは、第２のプロセッサのクロック速度とほぼ同じ速度でクロック制御される少なくとも１つのメモリ・ブロックを有する。
【００９９】
一実施例のシステムは、第１のバスと第２のバスを接続する少なくとも１つのブリッジ・ユニットをさらに有し、第２のバスを介した第２のメモリ領域の第２のメモリ位置のセットへの第１のプロセッサによるアクセスが、ブリッジ・ユニットを介した第１のメモリ領域への第２のメモリ位置のセットのマッピングを含む。
【０１００】
一実施例のシステムは、第１のバスと第２のメモリ領域に接続する少なくとも１つのメモリ・インターフェースをさらに有し、第１のバスを介した第２のメモリ領域の第１のメモリ位置のセットへの第１のプロセッサによるアクセスが、メモリ・インターフェースを介した第１のメモリ領域への第１のメモリ位置のセットのマッピングを含む。
【０１０１】
一実施例の装置は、携帯可能な通信デバイス、携帯可能な位置追跡デバイス、携帯電話、位置追跡デバイスに接続された携帯電話、位置追跡デバイスを有する携帯電話、モバイル電子デバイス、モバイル通信デバイス、携帯情報端末、プロセッサ・ベースのデバイスの少なくとも１つである。
【０１０２】
一実施例のメモリ共有／再割り当ては：中央処理装置と；信号プロセッサと；第１のバスを介した中央処理装置によるアクセスのために接続された第１のメモリ領域と；第２のバスを介した信号プロセッサによるアクセスのために接続された第２のメモリ領域と；中央処理装置による第２のメモリ領域への共有されたアクセスを制御する中央処理装置に接続された少なくとも１つの部品を備えており、その共有されたアクセスが、信号プロセッサによるアクセスと、第２のバスを介した第２のメモリ領域の少なくとも１つのメモリ位置のセットへの中央処理装置による少なくとも１つの間接的なアクセスと、第１のバスを介した第２のメモリ領域のメモリ位置のセットへの中央処理装置による直接的なアクセスを含んでいる、携帯可能な電子装置を備えている。
【０１０３】
一実施例のメモリ共有／再割り当ては、電子システムに関する状態情報を受信するステップと、状態情報に応じて少なくとも１つの構成を利用してメモリ・デバイスを設定するステップの少なくとも１つを備える方法を含んでおり、第１の構成が、コプロッセサによる独占的なメモリ・デバイスへの直接的なアクセスをサポートし、第２の構成が、コプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第２の領域への間接的なアクセスのうちの少なくとも一方をサポートし、第３の構成が、コプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第３の領域への直接的なアクセスのうちの少なくとも１つサポートする。
【０１０４】
一実施例の方法は、電子システムのデータに関するアドレス情報を受信するステップと、アドレス情報をデコードするステップと、デコードされたアドレス情報に応じて、データを受信するメモリ・デバイスの領域の１つを選択するステップとをさらに備えている。
【０１０５】
一実施例の方法は、中央処理装置によるメモリ・デバイスへの間接的なアクセスを提供するために、第１のインター・フェースを介してメモリ・デバイスの少なくとも１つのメモリ位置のセットをマッピングするステップをさらに備えている。
【０１０６】
一実施例の方法は、中央処理装置によるメモリ・デバイスへの直接的なアクセスを提供するために、第２のインター・フェースを介してメモリ・デバイスの少なくとも１つのメモリ位置のセットをマッピングするステップをさらに備えている。
【０１０７】
一実施例の方法は、直接的なアクセスを第１のクロック速度でクロック制御するステップと、間接的なアクセスを第２のクロック速度でクロック制御するステップの少なくとも１つをさらに備えている。
【０１０８】
一実施例のメモリ共有／再割り当ては、データ及び対応するアドレス情報を受信するステップと、データが第１のタイプであることをアドレス情報が示す場合に、第１のメモリ領域にアクセスするステップと、データが第２のタイプであることをアドレス情報が示す場合に、第２のメモリ領域の第１のブロックにアクセスするステップと、データが第１のタイプでありかつアドレスが少なくとも１つのアドレス範囲の境界を越えることをアドレス情報が示す場合に、第２のメモリ領域の第２のブロックの少なくとも１つのメモリ位置のセットにアクセスするステップの少なくとも１つを備える、メモリ領域への共有されたアクセスを提供する方法を含んでいる。
【０１０９】
一実施例のメモリ共有／再割り当ては、電子システムの状態情報を受信するステップと、状態情報に応じて第１のメモリ領域の少なくとも１つのアドレス・ブロックを自動的に再割り当てするステップと、データ及び対応するアドレス情報を受信するステップと、データが第１のタイプであることをアドレス情報が示す場合に第２のメモリ領域にアクセスするステップと、データが第２のタイプであることをアドレス情報が示す場合に第１のメモリ領域にアクセスするステップと、データが第１のタイプでありかつアドレスが少なくとも１つのアドレス範囲の境界を越えていることをアドレス情報が示す場合に、第１のメモリ領域の少なくとも１つのアドレス・ブロックにアクセスするステップのうち少なくとも１つを備える電子システムにおけるメモリへのアクセスを制御する方法を含んでいる。
【０１１０】
一実施例のメモリ共有／再割り当ては、データおよび対応するアドレス情報を受信する手段と、データが第１のタイプであることをアドレス情報が示す場合に、第１のメモリ領域にアクセスする手段と、データが第２のタイプであることをアドレス情報が示す場合に、第２のメモリ領域の第１のブロックにアクセスする手段と、データが第１のタイプでありかつアドレスが少なくとも１つのアドレス範囲の境界を越えていることをアドレス情報が示す場合に、第２のメモリ領域の第２のブロックの少なくとも１つのメモリ位置のセットにアクセスする手段の少なくとも１つを備えるプロセッサ・ベースのデバイスを含んでいる。
【０１１１】
一実施例のメモリ共有／再割り当ては、実行可能な命令を含むコンピュータが読み出し可能な媒体を含んでおり、その実行可能な命令が処理システムによって実行されると、そのシステムは、電子システムに関する状態情報を受信し、状態情報に応じて少なくとも１つの構成を利用してメモリ・デバイスを設定する。この場合において、第１の構成が、コプロッセサによる独占的なメモリ・デバイスへの直接的なアクセスをサポートし、第２の構成が、コプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第２の領域への間接的なアクセスのうちの少なくとも一方をサポートし、第３の構成が、コプロセッサによるメモリ・デバイスの第１の領域への直接的なアクセスと、中央処理装置によるメモリ・デバイスの第３の領域への直接的なアクセスのうちの少なくとも１つサポートする。
【０１１２】
一実施例のメモリ共有／再割り当ての特徴は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラム可能アレイ論理（ＰＡＬ）デバイス、電気的にプログラム可能な論理およびメモリ・デバイス、および標準的なセル・ベースのデバイスといったプログラム可能論理回路（ＰＬＤ）や、特定用途向け集積回路（ＡＳＩＣ）を含む、あらゆる回路の中にプログラミングされた機能として実施することができる。一実施例のメモリの共有の構成を実施するための他のいくつかの可能性としては、メモリ付のマイクロ・コントローラ（例えば、電気的消去・プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ））や、埋め込み型マイクロ・プロセッサ、ファームウェア、ソフトウェア等がある。さらに一実施例のメモリの共有の特徴は、ソフトウェア・ベースの回路エミュレーション、（順次的かつ組み合わされた）個別論理素子、特注のデバイス、ファジー（またはニューラル）論理、量子素子および上記のあらゆるタイプのデバイスの組み合わせなどがある。もちろん基礎となるデバイス技術は、たとえば相補型金属酸化物半導体（ＣＭＯＳ）のような金属酸化物半導体電界効果トランジスタ（ＭＯＳＦＥＴ）技術、エミッタ結合型論理（ＥＣＬ）のようなバイポーラ技術、ポリマー技術（たとえばシリコン共役高分子および金属共役高分子金属構造）、アナログとデジタルの混合など、さまざまな部品のタイプにおいて提供することができる。
【０１１３】
文脈が明らかに別のことを要求していない限り、明細書および特許請求の範囲の全体を通して、“備える”、“備えている”およびそれに類する言葉は、排他的または網羅的な意味とは反対の包含的な意味として解釈されるべきである。すなわち“含んでいるが、限定されているわけではない”という意図として解釈されるべきである。単数形または複数形を利用する用語も、それぞれ複数形または単数形を含んでいる。さらに“ここで”、“ここにおいて”、“上述”、“後述”、および同様な意味の言葉は、本明細書では、この特許出願の全体に関してのものであり、この特許出願のいずれかの特定の部分に関するものではない。“または”という言葉が、２つまたはそれ以上の項目のリストを参照する際に使用された場合、この言葉は、後続のすべての説明を包含しており、リスト内のいずれかの項目、リスト内のすべての項目およびリスト内の項目のいずれかの組み合わせを包含している。
【０１１４】
メモリの共有の実施例の上述の説明は、排他的なものであるとする意図はなく、本発明を開示された具体的な形態に限定する意図もない。メモリ共有の特定の実施例をここに説明したが、当業者には明らかなように、本発明の範囲内においてさまざまな均等な変更が可能である。ここに提供したメモリの共有の説明は、上述の電子システムに限られず、他の電子システムに適用することができる。
【０１１５】
上述した種々の実施例の構成要素および作用を組み合わせることによって、他の実施例を提供することができる。上述の詳細な説明に基づく、一実施例のメモリの共有は、このような変更およびその他の変更が可能である。
【０１１６】
上述のすべての引用およびアメリカ合衆国特許およびアメリカ合衆国特許出願は、引用によってここに組み込まれる。ここに記載された実施例の構成は、必要な場合には、メモリの共有のさらに別の実施例を提供するために、上述のさまざまな特許および特許出願のシステム、機能および構想を利用するために変形することができる。
【０１１７】
一般に、特許請求の範囲において利用される用語は、本発明のメモリの共有を明細書および特許請求の範囲に開示された特定の実施例に限定するように解釈すべきではなく、本発明のメモリの共有を提供するために特許請求の範囲において取り扱われたあらゆる電子システムを含むように解釈するべきである。したがって、本発明のメモリの共有は、開示した内容によって限定されるのではなく、本発明のメモリの共有の範囲は、特許請求の範囲によって完全に決定されるべきものである。
【０１１８】
本発明のメモリの共有の明確な特徴は、添付する明確な特許請求の範囲の形式において提供されるが、本願の発明者等は、あらゆる特許請求の範囲の形式においてメモリ共有のさまざまな特徴を検討している。たとえば、本発明のメモリの共有の特徴をコンピュータが読み出し可能な媒体として具現化されるものを１つだけ挙げているが、別の特徴を同じようにコンピュータが読み出し可能な媒体として具現化することもできる。したがって、本願の発明者等は、本発明のメモリの共有の別の特徴のためのこのような追加的な特許請求の範囲の形式を追求するために、本出願を提出した後に、追加的な特許請求の範囲を加える権利を留保する。
【図面の簡単な説明】
【０１１９】
【図１】一実施例における、複数のプロセッサを含む部品の間におけるコア・メモリの分割および共有をサポートする電子システムのブロック図である。
【図２】図１の実施例における、中央処理装置およびデジタル信号プロセッサ（ＤＳＰ）のそれぞれに専用のメモリ領域を有する電子システムの構成のブロック図である。
【図３】図２の実施例における、ホスト電子システムのスタート／ブートアップ後のコア・メモリの構成のブロック図である。
【図４】図２の実施例における、中央処理装置とＤＳＰの間での共有のために分割されたメモリを有する電子システムのブロック図である。
【図５Ａ】図４の実施例における、マッピング再割り当てを利用してＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリの第１のブロックを再割り当てする際のメモリの構成のブロック図である。
【図５Ｂ】図５Ａの実施例において、ＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリの８ｋバイトのブロックを再割り当てした後のメモリの構成（メモリ・マップ）を示している。
【図６Ａ】図４の実施例において、マッピング再割り当てを利用してＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリのｎ個のメモリ・ブロックを再割り当てする際のメモリの構成のブロック図である。
【図６Ｂ】図６Ａの実施例において、ＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリの６４ｋバイトのブロックを再割り当てした後のメモリの構成（メモリ・マップ）を示している。
【図７】図４の実施例において、関連するメモリをロードする順序にともなう分割および再割り当ての後のメモリ領域のブロック図である。
【図８】一実施例における、スイッチング再割り当てを介したプロセッサによる利用のためにＤＳＰと関連したメモリの一部を再割り当てする電子システムの構成のブロック図である。
【図９Ａ】図８の実施例において、メモリ・インターフェースを介してＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリのブロックを再割り当てする際のメモリの構成のブロック図である。
【図９Ｂ】図９Ａの実施例において、ＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリの３２ｋバイトのブロックを再割り当てした後のメモリの構成（メモリ・マップ）である。
【図１０】図２，４および８の実施例において、スイッチング再割り当てを利用して１グループまたは１ブロックのメモリ・アドレスを再割り当てし、マッピング再割り当てを利用して他のグループのメモリ・アドレスを再割り当てするシステムの構成の例のブロック図である。
【図１１Ａ】図１０の実施例において、スイッチングおよびマッピング再割り当ての両方を利用して、ＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリのブロックを再割り当てする際のメモリの構成のブロック図である。
【図１１Ｂ】図１１Ａの実施例において、ＤＳＰアドレス・スペースからプロセッサ・アドレス・スペースにＤＳＰメモリの第１および第２のブロックの再割り当てした後のメモリの構成（メモリ・マップ）である。
【図１２】図１０の実施例において、関連するメモリをロードする順序にともなう分割および再割り当ての後のメモリ領域のブロック図である。
【図１３】図１０の他の実施例において、１グループのメモリ・アドレスをスイッチング再割り当てを利用して再割り当てし、他のグループのメモリ・アドレスをマッピング再割り当てを利用して再割り当てするシステム構成のブロック図である。
【図１４】図４，８および１０のいずれかの実施例において、再割り当てされたメモリおよびマルチ・プレクサを含む電子システムのブロック図である。
【図１５】一実施例において、メモリの共有をサポートする制御レジスタのブロック図である。
【図１６】一実施例において、メモリの共有をサポートする状態レジスタのブロック図である。
【図１７】一実施例において、メモリの共有をサポートする読み出し／書き込み違反アドレス・レジスタのブロック図である。
【図１８Ａ】一実施例において、メモリの共有をサポートするアドレス・マップである。
【図１８Ｂ】一実施例において、メモリの共有をサポートするアドレス・マップである。
【０１２０】
図面において同じ参照符号は、同一のまたは実質的に類似した要素または動作を表している。すべての要素または動作の説明を容易に識別するために、参照符号における最上位の数字は、その要素が最初に紹介された図面番号を示している（たとえば要素２３４は、図２で最初に紹介され議論されている）。
【符号の説明】
【０１２１】
１００  電子システム
１０２  第１のバス
１１２  第１のプロセッサ
１１４  第１のメモリ領域
１２２  第２のプロセッサ
１２４  第２のメモリ領域
１３２  ブリッジ・ユニット
２００  電子システム
２０２  データ・バス
２０４  データ・バス
２１２  プロセッサ
２１４  メモリ領域
２２２  ＤＳＰ
２２４  メモリ領域
２３２  ＤＳＰブリッジ
２３４  ブリッジ・ユニット
２４２  デコーダ
２４３  制御線
２４５  制御線
２４６  制御線
２５０  メモリ・コントローラ
２５２  メモリ・コンフィグレーション・レジスタ
３００  メモリの構成
４００  電子システム
４１４  プロセッサ・メモリ・アドレス・スペース
４２４  ＤＳＰメモリ・アドレス・スペース
５００  メモリ再配置
６００  メモリ再配置
８００  電子システム
８０２  メモリ・インターフェース
８１４  プロセッサ・メモリ・アドレス・スペース
８２４  ＤＳＰメモリ・アドレス・スペース
１０００  システム
１００２  メモリ・インターフェース
１０１４  プロセッサ・メモリ
１０２４  ＤＳＰメモリ
１３００  システム
１３０２  ＳＷモニタ
１３０４  ＤＳＰモニタ
１３１４  割り込み
１４００  電子システム
１４０２  マルチ・プレクサ
【図１】
2007513390.tif 000003
【図２】
2007513390.tif 000004
【図３】
2007513390.tif 000005
【図４】
2007513390.tif 000006
【図５Ａ】
2007513390.tif 000007
【図５Ｂ】
2007513390.tif 000008
【図６Ａ】
2007513390.tif 000009
【図６Ｂ】
2007513390.tif 000010
【図７】
2007513390.tif 000011
【図８】
2007513390.tif 000012
【図９Ａ】
2007513390.tif 000013
【図９Ｂ】
2007513390.tif 000014
【図１０】
2007513390.tif 000015
【図１１Ａ】
2007513390.tif 000016
【図１１Ｂ】
2007513390.tif 000017
【図１２】
2007513390.tif 000018
【図１３】
2007513390.tif 000019
【図１４】
2007513390.tif 000020
【図１５】
2007513390.tif 000021
【図１６】
2007513390.tif 000022
【図１７】
2007513390.tif 000023
【図１８Ａ】
2007513390.tif 000024
【図１８Ｂ】
2007513390.tif 000025