(57)【要約】  マルチポート・メモリ・デバイスを用いるインターポート通信のための方法及びシステムである。メモリ・デバイスは、割り込みレジスタと、割り込み信号インターフェース（例えば専用ピン）と、割り込みマスクと、各ポートと関連する１つ又はそれ以上のメッセージ・バッファとを含む。メモリ・デバイスの第１のポートと結合された第１のコンポーネントが、メモリ・デバイスの第２のポートと結合された第２のコンポーネントと通信したいとき、第１のコンポーネントは、第２のポートと関連するメッセージ・バッファに、メッセージを書き込む。第２のポートの入力レジスタにおける割り込みは、新しいメッセージが使用可能であることを、第２のポートに結合された第２のコンポーネントに通知するように設定される。割り込みを受信すると、第２のコンポーネントは割り込みレジスタを読み取り、割り込みの性質を判断する。第２のコンポーネントは次いで、メッセージ・バッファからメッセージを読み取る。
2009532782.tif 000002
【特許請求の範囲】
【請求項１】
マルチポート・メモリ・デバイスの第１のポートに結合された第１のコンポーネントと、前記デバイスの第２のポートに結合された第２のコンポーネントとの間のメモリを共有する方法であって、
イベントの発生に関連するマルチポート・メモリ・デバイスの第１のポートで、第１のコンポーネントからのデータを受信し、
前記イベントの発生を第２のポートに通知するために、前記マルチポート・メモリ・デバイスの前記第２のポートに関連する割り込みレジスタ及び割り込み信号を設定し、
前記第２のポートに結合した第２のコンポーネントによって前記割り込み信号を検知した後で、該第２のポートと関連する前記割り込みレジスタの内容を、前記第２のコンポーネントに送信し、
前記割り込みレジスタの内容によって指定された割り込みに基づいて、前記第２のコンポーネントで割り込み処理手順を実行する、
ステップを含むことを特徴とする方法。
【請求項２】
前記第２のポートと関連する割り込み信号を設定するステップは、前記割り込みについて前記第２のコンポーネントに通知するステップを含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記割り込みレジスタの内容が割り込みマスクと適合するかどうか判断し、該内容が前記割り込みマスクと適合しない場合には、前記割り込み信号を設定しないステップを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記第２のポートで前記第２のコンポーネントから応答データを受信するステップと、
前記受け取った応答データを、前記マルチポート・メモリ・デバイスの前記第１のポートと関連するバッファに書き込むステップと、
該第１のポートに該マルチポート・メモリ・デバイスの該第１のポートと関連する割り込みレジスタ及び割り込み信号を設定するステップと、を含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記割り込みは、前記割り込みレジスタ内の１組のビットによって指定されることを特徴とする、請求項１に記載の方法。
【請求項６】
前記１組のビットは、前記マルチポート・メモリ・デバイスの互いのポートに対して、少なくとも１ビットを含むことを特徴とする、請求項５に記載の方法。
【請求項７】
特定ポートのための前記割り込みレジスタは、前記マルチポート・メモリ・デバイスの互いのポートに対して、応答メッセージを受信するためのビットを含むことを特徴とする、請求項５に記載の方法。
【請求項８】
前記割り込みレジスタは、デバッギング目的のために確保された少なくとも１ビットを含むことを特徴とする、請求項５に記載の方法。
【請求項９】
前記割り込みレジスタの前記内容を送信するステップは、試験及び設定命令に応じるステップを含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
前期割り込みレジスタ及び前記割り込み信号を設定するステップは、受信したデータが前記第２のポートと関連する前記バッファ内で検知されたときに、前記割り込みレジスタ及び前記割り込み信号を自動的に設定するステップを含むことを特徴とする、請求項１に記載の方法。
【請求項１１】
前記割り込みレジスタは前記マルチポート・メモリ・デバイス内のメモリ位置に格納されることを特徴とする、請求項１に記載の方法。
【請求項１２】
前記ポートはシリアル・ポートであることを特徴とする、請求項１に記載の方法。
【請求項１３】
前記割り込みレジスタの前記内容を送信するために用いられるデータ経路は、前記マルチポート・メモリ・デバイス内の前記メモリに及びそこからデータを転送するために用いられる前記データ経路と同じであることを特徴とする、請求項１に記載の方法。
【請求項１４】
マルチポート・メモリ・システムに取り付けられたコンポーネント間で情報を共有するシステムであって、
前記マルチポート・メモリ・システムの１つ又はそれ以上のポートによってアクセス可能な情報を格納するための、１つ又はそれ以上の共有メモリ・バンクと、
イベントが発生したときに、前記１つ又はそれ以上のポートに結合したコンポーネントに指示する割り込みレジスタと、
前記割り込みレジスタの内容に基づいて、割り込み処理手順を実施する割り込み処理コンポーネントと、を含むシステム。
【請求項１５】
前記割り込みレジスタは複数のビットから成り、前記ビットの設定はイベントの前記タイプを示すことを特徴とする、請求項１４に記載のシステム。
【請求項１６】
イベントの特定タイプを識別するために、前記入力レジスタと比較される割り込みマスクを含むことを特徴とする、請求項１５に記載のシステム。
【請求項１７】
前記割り込みレジスタの前記内容を反映する信号を提供する割り込みピンを含むことを特徴とする、請求項１４に記載のシステム。
【請求項１８】
前記割り込みレジスタによって示される前記イベントについての情報を含むメッセージ・バッファを含み、前記メッセージ・バッファは、発信メッセージを格納するための出力メッセージ・バッファと、受信したメッセージの応答を格納するための入力メッセージ・バッファとを含むことを特徴とする、請求項１４に記載のシステム。
【請求項１９】
前記共有メモリ・バンクとは別にランダム・アクセス・メモリをさらに含み、前記割り込みレジスタは前記ランダム・アクセス・メモリに格納されることを特徴とする、請求項１４に記載のシステム。
【請求項２０】
前記ランダム・アクセス・メモリは、前記共有メモリ・バンクより高速のメモリであることを特徴とする、請求項１９に記載のシステム。
【請求項２１】
第１のコンポーネントからメモリ・バンクにアクセスするリクエストを受信し、
前記メモリ・バンクが現在使用中であるかどうか判断し、
前記メモリ・バンクが現在使用中でない場合には、前記第１のコンポーネントの該メモリ・バンクへのアクセスを許可し、
第２のコンポーネントから前記メモリ・バンクにアクセスするリクエストを受信し、
前記第１のコンポーネントによる前記メモリ・バンクの前記アクセスが完了したかどうか判断し、
前記第１のコンポーネントによる前記メモリ・バンクへの前記アクセスの完了の際に、前記第２のコンポーネントの該メモリ・バンクへのアクセスを許可する、
ステップを含む方法によって、多数のコンポーネント間でメモリ・バンクを共有するように、メモリ・デバイスを制御するための命令を含むことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２２】
第１のコンポーネントからリクエストを受信するステップは、試験及び設定命令を受信するステップを含むことを特徴とする、請求項２１に記載のコンピュータ読み取り可能な記録媒体。
【請求項２３】
前記メモリ・バンクが現在使用中かどうか判断するステップは、割り込みレジスタのビットを検査するステップを含むことを特徴とする、請求項２１に記載のコンピュータ読み取り可能な記録媒体。
【請求項２４】
前記メモリ・バンクへのアクセスを許可するステップは、割り込みレジスタのビットを設定するステップを含むことを特徴とする、請求項２１に記載のコンピュータ読み取り可能な記録媒体。
【請求項２５】
前記第１のコンポーネントは、１つ又はそれ以上の他のポート・マスタのためのメモリ・バンクへのアクセスを制御する監視ポート・マスタであることを特徴とする、請求項２１に記載のコンピュータ読み取り可能な記録媒体。
【請求項２６】
前記メモリ・バンクを判断するステップは、該メモリ・バンクの現在の状態を判断するのにメモリ位置にアクセスするステップを含むことを特徴とする、請求項２１に記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連出願の相互参照）
本出願は、２００６年３月３０日に出願され、引用によりここに組み入れられる、「ＩＮＴＥＧＲＡＴＥＤ  ＭＵＬＴＩ−ＰＯＲＴ  ＳＥＲＩＡＬ  ＭＥＭＯＲＹ  ＡＮＤ  ＩＮＴＥＲ−ＰＲＯＣＥＳＳＯＲ  ＣＯＭＭＵＮＩＣＡＴＩＯＮ」という名称の米国仮特許出願第６０／７８８，４０１号（代理人明細書第５９４７２−８８２６．ＵＳ００）に基づく優先権を主張する。
【０００２】
コンピュータ・ハードウェアでは、共有メモリは、典型的には、幾つかの異なる中央演算処理装置、又はマルチプロセッサ・コンピュータ・システム内の他のコンポーネントによってアクセス可能なランダム・アクセス・メモリの大きなブロックを指す。例えば携帯電話は多くの場合、ベースバンド・プロセッサ、メディア・プロセッサ、及びＬＣＤコントローラを内蔵することができ、その各々は、共通のメモリ領域を共有する。マルチプロセッサ・システムのコンポーネントは多くの場合、情報を共有する必要がある。例えば、携帯電話のメディア・プロセッサは、電話をかけるためにベースバンド・プロセッサと相互作用するオペレーティング・システムを実行することがある。
別の例としてメディア・プロセッサは、表示される画像を記述する情報をＬＣＤコントローラのフレーム・バッファに書き込むことができる。コンポーネント間で共有される情報は、典型的には、多くの異なった制御及びデータ・インターフェースを要する。制御及びデータ・インターフェースは、コンポーネントの各々の間、及びコンポーネントと共有メモリとの間で、定義することができる。さらに、共有メモリのアクセスを調整するために共有メモリを用いる各コンポーネント間で、付加的なインターフェースがあり得る。
【発明の開示】
【０００３】
マルチプロセッサ・アーキテクチャの結果、多様なインターフェースを処理するための各コンポーネント内の複雑さが増し、コンポーネント間に必要な通信を支援するのに不可欠な相互接続部の数が増した。相互接続は費用がかかり、使用するのに各コンポーネントに追加の仕事を要する。別のコンポーネントと正確に相互運用しないために、望ましいコンポーネントが使用できないことも多い。例えば、特定のＬＣＤコントローラは、特定のメディア・プロセッサに必要な速度で通信する能力がないことがあるため、より高額なＬＣＤコントローラを選択しなくてはならない。インターフェース要件は、システム全体の複雑性を増すだけでなく、費用も増加させる。従って、システム内のコンポーネントによって管理されなくてはならない通信諸経費を最小限にする様式で、マルチプロセッサ・システム内で通信する改良された方法の必要性がある。
【発明を実施するための最良の形態】
【０００４】
マルチポート・メモリ・デバイスを用いるインターポート通信のための方法及びシステムが提供される。マルチポート・メモリ・デバイスは、マルチプロセッサ・システムのコンポーネントが接続できるマルチポートを含む。ポートの各々に接続されたコンポーネント間のメッセージの通信は、共有メモリ内のレジスタ・ファイルを用いることによって可能になる。マルチポート・メモリ・デバイスの各ポートについては、メモリ・デバイスは、割り込みレジスタと、割り込み信号インターフェース（例えば専用ピン）と、割り込みマスクと、１つ又はそれ以上のメッセージ・バッファとを含む。メモリ・デバイスの第１のポートに結合された第１のコンポーネントが、メモリ・デバイスの第２のポートに結合された第２のコンポーネントと通信したいとき、第１のコンポーネントは、第２のポートと関連するメッセージ・バッファにメッセージを書き込む。第２のポートの入力レジスタでの割り込みは、第２のポートに結合された第２のコンポーネントに、新しいメッセージが使用可能であることを通知するように設定される。割り込みを受信すると、第２のコンポーネントは、割り込みの性質を判断するのに割り込みレジスタを読み取る。第２のコンポーネントは次いで、メッセージ・バッファからのメッセージを読み取る。第２のコンポーネントは、第２のコンポーネントがメッセージの処理を完了したことを第１のコンポーネントに信号通知するように、第１のポートと関連する割り込みレジスタに割り込みを設定することができる。従って、マルチポート・メモリ・デバイスは、外部通信ハードウェア、又は、共有メモリの読み込み及びこれへの書き込み以外の付加的なパラダイムの理解なしで、メモリを共有するコンポーネントが通信できるようにする。
【０００５】
通信チャンネルとしてのマルチポート・メモリ・デバイスの使用の多様な例が、ここで説明される。以下の説明は、これらの例を全体的に理解し、その説明を可能にするための具体的な詳細を提供する。しかしながら、当業者であれば、これらの多くの詳細な説明なしで本技術を実施可能であることを理解するであろう。加えて、種々の例と関連した説明を不必要に分かりにくくするのを避けるために、幾つかの周知の構造又は機能を詳細に図示せず又は説明しないことがある。以下に与えられる説明に用いられる専門用語は、本技術の特定の例の詳細な説明と併せて用いられるが、最も広義の妥当な方法で解釈されることを意図している。下記に特定の用語がさらに強調され得るが、制限された方法で解釈されることが意図されるいずれの専門用語も、この詳細な説明の部分などにおいて明白かつ具体的に定義されるであろう。
【０００６】
Ｉ．システム・アーキテクチャ
図１は、マルチプロセッサ環境で多くのコンポーネントに結合されたマルチポート・メモリ・デバイス・アーキテクチャを図解するブロック図である。マルチポート・メモリ・デバイス１００は、１つ又はそれ以上のメモリ・バンク１１０と、２つ又はそれ以上のポート１２０と、レジスタ・ファイル１３０とを含む。メモリ、ポート、及びレジスタ・ファイルは全て、あらゆるメモリ・バンク又はレジスタ・ファイルが、あらゆるポートによってアクセスできるようにするバス１４０によって結合される。１つ又はそれ以上のメモリ・バンク１１０は、ポートを介してアクセスできるデータを格納する。メモリ・バンク１１０は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）又はメモリ・デバイスの他の共通のタイプから構成されることができる。２つはそれ以上のポート１２０の各々は、対応するポート・マスタ（ＰＭ）１５０に接続されることができる。ポート・マスタ１５０は、ベースバンド・プロセッサ、メディア・プロセッサ、又はＬＣＤコントローラといった、共有メモリを用いるどのようなタイプのシステム・コンポーネントでもよい。ここに付加的に詳細が説明されるように、マルチポート・メモリ・デバイスは、マルチプロセッサ環境で、コンポーネント間のデータ通信を可能にするように、通信チャンネルとして用いることができる。
【０００７】
図２は、幾つかの実施形態でのレジスタ・ファイル１３０の構成を図解するブロック図である。レジスタ・ファイルは、特定のポートのための通信の有無を示す共通の信号通知インターフェースとして動作することによって、マルチプロセッサ環境でのコンポーネント間通信を可能にする。マルチポート・メモリの各ポートについては、レジスタ・ファイル１３０は、割り込みレジスタ２１０と、割り込みピン２２０といった割り込み信号インターフェースと、割り込みマスク・バッファ２３０と、１つ又はそれ以上のメッセージ・バッファ２４０ａ、２４０ｂ，．．．２４０ｎとを含む。割り込みレジスタ２１０は、マルチポート・メモリ内の特定のポートに発生する可能性があるイベントの多様なタイプを信号通知する多くのビットを含む。割り込みレジスタのビットの各々は、異なるイベントと関連することができる。イベントは、アプリケーション特有のものであり、マルチポート・メモリの異なるユーザによって、異なって定義されることができる。アプリケーションは、新メッセージはポートが使用可能であることを信号通知するように、各ポートの割り込みレジスタ内ビットを、マルチポート・メモリの他のポートの各々のために確保することができる。アプリケーションはまた、メッセージの処理が完了したことを信号通知するように、各ポートの割り込みレジスタ内ビットを、他のポートの各々のために確保することもできる。例えば、図２に示されたレジスタ・ファイルの実施形態は、３つのポート、ポートＡ、ポートＢ、及びポートＣのために構成することができる。各ポートは、４ビットを備えた関連割り込みレジスタ２１０を有する（図では、ポートＡ割り込みレジスタとポートＡバッファのみを示す）。割り込みレジスタの１ビットは新しいメッセージを表すのに用いられ、１ビットは２つの他のポートの各々に応答するメッセージを表すのに用いられる。したがって、ポートＡのための割り込みレジスタ・ビットは、ポートＢからの新しいメッセージ、ポートＢからの応答、ポートＣからの新しいメッセージ、及びポートＣからの応答を表す。「１」の値は、割り込みが設定されたことを示す。例えば図２では、ポートＣからの新しいメッセージを示すビットが設定されている。メッセージ・バッファがマルチポート・メモリ・デバイスのメールボックスである場合には、割り込みレジスタは、新しいメッセージが使用可能なときに信号通知するメールボックスのそばにある赤いフラグのようなものである。レジスタ・ファイルに適切なビットを設定すること又は除去することによって、そのポートの通信状態は、システム・コンポーネントに伝達されることができる。
【０００８】
幾つかの実施形態では、マルチポート・メモリ・デバイスは、ファスト・スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）に割り込みレジスタ２１０を格納する。割り込みレジスタのビットは、スペースを節約して、ビットの試験及び設定の速度を増すために、標準的なフリップ・フロップでよい。代替的に又は付加的には、マルチポート・メモリ・デバイスは、共有メモリ自体の特定位置に、割り込みレジスタを格納することができる。例えば、共有メモリの上位バイトは、割り込みレジスタを格納するために、アプリケーションによって確保されることができる。割り込みレジスタは、ポート間に割り当てられるシングル・レジスタ（例えば１６ビット）、又はそれぞれが異なるポートと関連するマルチプル・レジスタでよい。
【０００９】
幾つかの実施形態では、マルチポート・メモリは、デバッギング及び試験目的のために、割り込みレジスタの１又はそれ以上のビットを確保する。例えば、１６ビット割り込みレジスタを有する３ポート・デバイスでは、マルチポート・メモリは、割り込みが除去されるまでさらなる処理を中断するように特定のポートに取り付けられたコンポーネントに命令する停止命令のためにビット１５を確保することができる。ブレイクポイントは、ブレイクポイントが適用するメモリ・アドレスがメッセージ・バッファに格納されることを信号通知するように、割り込みレジスタのビットを用いて実施することができる。例えば、デバッギング・アプリケーションは、メモリ・アドレス０ｘ０１００にブレイクポイントを設定することができ、各ポートの割り込みレジスタにブレイクポイント・ビットを設定する。
【００１０】
ポートの割り込みレジスタ・ビットの状態は、そのポートと関連する割り込みピン２２０を介して、システム・コンポーネントと通信される。割り込みピン２２０上での割り込み信号の存在は、新しい割り込みが設定されたことを、取り付けられたコンポーネントに伝達する。割り込み信号は、論理ゲート２５０を用いて割り込みレジスタ・ビットの値を論理的に「ＯＲｉｎｇ」することによって生成される（幾つかの実施形態では、以下に検討されるマスキング関数が使用できる）。割り込みピン上での割り込み信号は、割り込みレジスタのいずれかのビットが設定されればいつでも生成される。従って、割り込み信号は、割り込みレジスタのサマリとして動作し、コンポーネントは割り込みの性質に関してさらに問い合わせるべきであることを、ポートに取り付けられたコンポーネントに通知するための単一機構を提供する。当業者であれば、割り込み信号は、ここに開示される割り込みピンの専用使用の他の方法でも生成されることができることを理解するであろう。
【００１１】
幾つかの実施形態では、割り込みマスクは、コンポーネントが、割り込みレジスタ２１０内の特定のビットの状態を読み取ることを可能にするように、レジスタ・ファイル１３０で用いることができる。マスク特徴を実施するのに、多くの論理ＡＮＤゲート２６０が提供される。各ＡＮＤゲートへの１つの入力は、割り込みレジスタ２１０のビット値である。各ＡＮＤゲートへの他の入力は、割り込みマスク・レジスタ２３０内に格納される割り込みマスクのビット値である。論理ＡＮＤの動作によって、割り込みマスク内で「１」に設定された対応ビットを有する割り込みレジスタ・ビットのみが、論理ゲート２５０に適用される。結果として、割り込みピン２２０上の割り込み信号は、割り込みマスク値に基づいた割り込みレジスタで１又はそれ以上のビットのビット値を選択的に表す。監視ポート・マスタ（ＳＰＭ）は、マルチポート・メモリ・デバイスの起動中、構成段階の一部として、各ポートに代わり、割り込みマスクを設定することができる。割り込みマスクは、共有メモリ内部の既定位置に格納されることができるため、コンポーネントは、既定位置に書き込みをすることによって、割り込みマスクを更新することができる。
【００１２】
割り込みマスクは、アプリケーションによって一定の割り込みを無視するのに用いることができる。例えば、マルチポート・メモリ・デバイスを用いた携帯電話では、ベースバンド・プロセッサは、マルチポート・メモリ・デバイスに取り付けられたＬＣＤコントローラから割り込みを受けなくともよい。従って、ベースバンド・プロセッサは、これが取り付けられたポートの割り込みマスクを、ＬＣＤコントローラが取り付けられたポートからの割り込みをマスクするように設定することができる。割り込みマスクに基づいて、割り込みマスクによってマスクされない割り込みが設定されない限り、割り込み信号は、割り込みピン上に生成されない。加えて、マルチポート・メモリ・デバイスは、ＴＡＳ命令に応答して送り返されたビットをマスクして、割り込みレジスタの無視されたビットが含まれないようにすることができる。
【００１３】
ポートに取り付けられたコンポーネントによって割り込みが検知された場合には、コンポーネントは、「テスト（試験）及びセット（設定）:test-and-set」（ＴＡＳ）命令を発行して、割り込みレジスタ２１０の内容を読み取る。幾つかの実施形態では、マルチポート・メモリ・デバイスは、ＴＡＳ命令を提供して、割り込みレジスタの値を自動的に試験及び設定する。ＴＡＳ命令は、システム・コンポーネントに必要とされるメモリ・デバイスのアクセスの数を減少させて、割り込みの読み取り及び除去を同時にできるようにすることによって割り込みを処理し、命令の原子的性質はレース状態を避ける。当業者であれば、相互排除及びセマフォといった共通の同期構造(common synchronization constructs)が、ＴＡＳ命令を用いて構成できることを認識するであろう。コンポーネントは、レジスタの現在値を試験することに対する試験値、及び現在値と試験値が一致する場合にはレジスタを設定する設定値を提供することによって、ＴＡＳ命令を発行する。典型的には、試験値は、いずれかのビットが設定された場合には試験し、設定値は全ビットを除去する。従って、ＴＡＳ命令を発行することは、どの割り込みビットが割り込みレジスタに設定されたかをコンポーネントに通知して同時に何らかの設定ビットを除去する。コンポーネントは次いで、設定すべきと判ったビットによって表された割り込みを処理することができる。
【００１４】
幾つかの実施形態では、レジスタ・ファイル１３０は、割り込みをもたらすイベントの付加的な詳細を格納するのに用いることができるメッセージ・バッファ２４０ａ、２４０ｂ，．．．２４０ｎを含む。各ポートは、関連する入力メッセージ・バッファ（ＩＭＢ）と出力メッセージ・バッファ（ＯＭＢ）とを有することができる。ＩＭＢはポートに結合された第１のコンポーネントによって、別のポートに結合された第２のコンポーネントにデータを提供するのに用いることができ、ＯＭＢは、第１のコンポーネントに、第２のコンポーネントから応答データを伝達することができる。例えば、ポートＡに結合されたコンポーネントは、発生したイベントを記述する情報を、ポートＢのＩＭＢに書き込むことができる。ポートＢの割り込みレジスタ内の割り込みビットは、次いで、新しいメッセージが使用可能であることをポートＢに通知するように設定することができる。ポートＢに結合されたコンポーネントは、次いで、割り込みを処理した後でメッセージ・バッファの内容を取り出すことができる。図２に示された例では、ポートＣからの新しいメッセージを示す割り込みレジスタ・ビット２が設定されているため、ポートＡに取り付けられたコンポーネントはポートＣの出力メッセージ・バッファ２４０ｃを読み取り、ポートＣからのメッセージの内容を判断する。コンポーネントは、ポートＣの入力メッセージ・バッファ２４０ｄにメッセージを書き込み、ポートＣの適切な割り込みを設定することによって応答できる。
【００１５】
図２には３つのポートと４つの割り込みビットだけが表されているが、マルチポート・メモリ・デバイスは、あらゆる数のポート及び割り込みをサポートすることができる。各ポートと割り込みの目的は、そのアプリケーションに最も適切な使用のために、各アプリケーションによってカスタマイズされることができる。レジスタ・ファイル１３０に位置されるのではなく、メッセージ・バッファ２４０ａ、２４０ｂ．．．２４０ｎは共有メモリ内に位置されることができ、各メッセージ・バッファのアドレスはマルチポート・メモリ・デバイスの起動中に設定されることができる。
【００１６】
幾つかの実施形態では、マルチポート・メモリ・デバイスは、新しいイベントがレジスタ・ファイルに加えられたときに、自動的に割り込みを設定する。例えば、１つのコンポーネントがメッセージ・バッファにイベント情報を加えた場合には、マルチポート・メモリ・デバイスは新しい情報を検知して、受信側ポートの割り込みレジスタ内に正確な割り込みを自動的に設定する。自動設定割り込みは、１つのポートに取り付けられたコンポーネントが、別のポートの割り込みレジスタ内にビットを間違って設定することによってエラーが引き起こされる可能性を減らす。
【００１７】
図３は、幾つかの実施形態で、マルチポート・メモリ・デバイス・アーキテクチャが、コンポーネント間の相互接続をどのように簡素化するかを図解するブロック図である。システム３００は、各コンポーネントがインターフェース３１０を通して共有メモリ３０５に接続される多数のコンポーネントを含む。各コンポーネントはまた、他のコンポーネントとの幾多の直接相互接続３２０も有する。相互接続は、コンポーネントが多様なインターフェース・プロトコルを用いて他のコンポーネントと通信することを要するため、システムに複雑性を加える。相互接続は、さらに、付加的なルーティング経路及びタイミング制御を要するため、複雑性を加える。ここに開示されるようにマルチポート・メモリ・デバイスに基づくシステム３５０はまた、インターフェース３６０を通して共有メモリと接続される多数のコンポーネントも含む。しかしながら、システム３５０は、コンポーネント間の直接相互接続を含まない。むしろ、各コンポーネントは、割り込みピン３７０を介して共有メモリ３５５に接続される。ここに述べられたように、割り込みピン３７０上の割り込み信号は、別のコンポーネントが共有メモリ３５５を通じて通信したいときに、コンポーネントに通知する。システムにおけるコンポーネント間の直接相互接続の除外は、タイミング及びインターフェース課題を大きく簡略化する。
【００１８】
図４は、幾つかの実施形態においてコンポーネント間でメッセージを通信するときに、マルチポート・メモリ・デバイスの処理を図解するフロー図である。ブロック４１０では、ポート・マスタ（ＰＭ）Ａは、ＰＭ  Ｂに用いられるポートのＯＭＢにメッセージを書き込む。ブロック４２０では、ＰＭ  Ａは、ＰＭ  Ｂに接続されたポートの割り込みレジスタを設定し、新しいメッセージが使用可能であることをＰＭ  Ｂに通知する（代替的には、割り込みは、新しいメッセージがＰＭ  ＢのＯＭＢに書き込まれたときに自動的に設定されることができる）。ＰＭ  Ｂの割り込みレジスタの内容に基づいて、ＰＭ  Ｂによって用いられるポートの割り込みピンも設定される。ブロック４３０では、ＰＭ  Ｂは割り込みピンが設定されることを検知し、ＴＡＳ命令を発行して、割り込みレジスタの内容を読み取って割り込みを除去する。ブロック４４０では、ＰＭ  Ｂは、ＰＭ  ＡによってＯＭＢに書込まれたメッセージを読み取り、メッセージを処理する。ブロック４５０では、ＰＭ  Ｂは、ＰＭ  Ａによって用いられるポートのＩＭＢに応答メッセージを書き込む。ブロック４６０では、ＰＭ  Ｂは、メッセージが処理され、応答が可能であることをＰＭ  Ａに通知するよう、ＰＭ  Ａによって用いられるポートの割り込みレジスタを設定する。ＰＭ  Ａの割り込みレジスタの内容に基づいて、ポートの割り込みピンもまた設定される。ブロック４７０では、ＰＭ  Ａは、割り込みピンが設定されていることを検知して、割り込みレジスタの内容を読み取り、割り込みを除去するよう、ＴＡＳ命令を発行する。ブロック４８０では、ＰＭ  Ａは、ＰＭ  ＢによってＩＭＢに書込まれた応答メッセージを読み取り、応答を処理する。判断ブロック４９０では、さらにメッセージがあれば、ＰＭ  Ａはブロック４１０にループして別のメッセージを送信し、そうでなければプロセスを完了する。
【００１９】
ＩＩ．レジスタ・ファイル使用法
以下は、コンポーネント間で情報を調整及び共有するのに、レジスタ・ファイルが異なるアプリケーションによってどのように用いられることができるかの幾つかの例である。
【００２０】
格納アプリケーションは多くの場合、メモリ・デバイスを共有する１つ又はそれ以上のポート・マスタを含む。ポート・マスタ（ＰＭ）は、プロセッサ、他の格納デバイス（例えばハード・ドライブ）、及びメモリ・デバイスに取り付けられた他のハードウェア・コンポーネントを表すことができる。１つのポート・マスタは多くの場合、監視ポート・マスタ（ＳＰＭ）を指定される。ＳＰＭは典型的には、他のポート・マスタの行動を監視する。例えば、起動中、ＳＰＭは取り付けられたフラッシュ・メモリから構成情報を収集し、他方のＰＭに対して、メモリ・デバイスのポートの各々を構成することができる。ＳＰＭは、マルチポート・メモリ・デバイスの各ポートに、ポート速度、ポート向けのメッセージ・バッファのロケーション、割り込みマスクのロケーション、割り込みレジスタ内の各割り込みビットの意味、及びその他といった他の構成情報を提供することができる。ＳＰＭはまた、アプリケーションの必要性に基づいて、各ポートを有効及び無効にすることもできる。例えば、ＳＰＭは、システムの他のコンポーネントが充電を完了して動作準備ができるまで、ポートの割り込みレジスタ内のビットを設定することによって、無効のままでいるようにポートに命令することができる。ＳＰＭはまた、幾つかのポートに、システムの現在の所要電力に基づいて、又は特定デバイスの不活動性に基づいて（例えば携帯電話のＬＣＤディスプレイを暗くするような）、それ自体を無効にするよう命令することもできる。
【００２１】
レジスタ・ファイルの使用の別の例は、メモリ・デバイスに取り付けられた幾つかのコンポーネントによる、メモリ・バンクの共有である。最も単純なケースでは、各コンポーネントはそれ自体のメモリ・バンクを割り当てられており、共有を必要としない。しかしながら、アプリケーションは多くの場合、バンクが共有されることを要し、より多くの使用可能メモリをシステムの電流負荷に基づいて特定の使用に向けることができる。例えば携帯電話では、ベースバンド・プロセッサは電話をかけているときにより多くのメモリを要し、メディア・プロセッサはゲームをしているときにより多くのメモリを要する。システムのコンポーネントはまた、情報を共有することも必要とすることがあり、メモリ・バンクを共有することによって、それを行うことができる。１つのコンポーネントがメモリに書き込むことができ、別のコンポーネントがメモリから読み取ることができ、コンポーネント間の情報を共有する。
【００２２】
メモリ・バンクへのアクセスが共有される場合、バンクへのアクセスの調整は、データが破損していないことを保証するのに重要である。レジスタ・ファイルは、メモリ・バンクへのアクセスを調整するのに、アプリケーションによって使用されることができる。例えば、割り込みは、使用するメモリ・バンクを確保するために定めることができる。コンポーネントがメモリ・バンクを使用したいときには、コンポーネントは、使用するメモリ・バンクを確保しようとするのに、ＴＡＳ命令を発行する。現在バンクが使用されていなければ、ＴＡＳ命令は次いで、バンクが使用可能であることを示し、コンポーネントはＴＡＳ命令の一部として使用するバンクを同時に確保する。バンクが確保されると、コンポーネントは、ポートを通じてメモリに読み取り及び書き込みができる。コンポーネントがバンクを用いて通じているとき、別のＴＡＳ命令を発行することによって、バンクの確保を除去することができる。別のコンポーネントがメモリを使用したいとき、処理は繰り返される。コンポーネントは、メモリが既に使用中であることを理解し、その場合ＴＡＳ命令はバンクが既に確保されたことを示し、コンポーネントは、ＴＡＳ命令を用いて割り込みレジスタをポーリングすることによって、バンクが確保されなくなるまで待つことができる。
【００２３】
幾つかの実施形態では、マルチポート・メモリは、バンクを確保するのに、次の順番のものに別の割り込みビットを提供することができるので、コンポーネントが現在バンクを使用中でも、バンクを使用したい次のコンポーネントは、その関心を登録することができる。故に、第２のポートは、第１のポートが接続されているコンポーネントがバンクを用いて通じているときに、第１のポートによって通知されることができ、第２のポートは、バンクが使用可能になるのを待つ間、ポーリングする必要がない。
【００２４】
ＩＩＩ．結論
以下に他に説明がない限り、本発明の様態は、従来のシステムと共に実施することができる。従って、図示される種々のブロックの構成及び動作は、従来の設計のものとすることができ、そうしたブロックは当業者には理解されるので、本発明を作製し、用いるために、それらをここでさらに詳細に説明する必要はない。システムの様態は、１つ又はそれ以上のコンピュータ又は他のデバイスによって実行される、プログラム・モジュールなどのコンピュータ実行可能命令を用いて実施することができる。一般に、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。典型的には、種々の実施形態において、プログラム・モジュールの機能を所望のように組み合わせる又は分配することができる。
【００２５】
上記から、マルチポート・メモリの特定の実施形態が、例証のためにここに説明されたこと、しかしながら、本発明の精神及び範囲から逸脱することなく種々の変更をなし得ることが理解されるであろう。従って、本発明は、添付の特許請求の範囲による以外に制限されるものではない。
【図面の簡単な説明】
【００２６】
【図１】通信チャンネルとして用いられるマルチポート・メモリ・デバイスのアーキテクチャを図解するブロック図である。
【図２】マルチポート・メモリ・デバイスにおけるレジスタ・ファイルの構成を図解するブロック図である。
【図３】通信チャンネルとしてのマルチポート・メモリ・デバイスの使用が、コンポーネント間の相互接続をどのように簡素化するかを図解するブロック図である。
【図４】コンポーネント間で通信メッセージを伝達するときに、マルチポート・メモリ・デバイスの処理を図解するフロー図である。
【図１】
2009532782.tif 000003
【図２】
2009532782.tif 000004
【図３】
2009532782.tif 000005
【図４】
2009532782.tif 000006
【国際調査報告】
2009532782.tif 000007
2009532782.tif 000008
2009532782.tif 000009
2009532782.tif 000010
2009532782.tif 000011