(57)【特許請求の範囲】
【請求項１】
メモリバンクを共有するための多重ポートメモリ装置における方法であって、
複数のポートを有するメモリ装置内の複数のメモリバンクの１つにアクセスする要求を第１のポート上で受信する工程と、
複数のメモリバンクのうちの要求されたメモリバンクが使用可能かどうかを判断する工程であって、「優先度ベースの制御」、要求された前記メモリバンクへのアクセスを管理する外部調整を使用する「制御無し」、「構成による制御」を含むバンクアクセス制御に関する複数のオプションのどれが設定されているかの判断を含む当該工程と、
要求されたメモリバンクが使用可能な場合に、要求されたメモリバンクへのアクセスを第１のポートに許可する工程と、
前記第１のポートに対するアクセスが許可されると、要求されたメモリバンクが第１のポートにより予約されたという指示を他のポートに与える工程と、を含む方法。
【請求項２】
前記バンクアクセス制御が「構成による制御」に設定されているとき、前記要求されたメモリバンクが使用可能かどうかを判断する工程は、要求されたメモリバンクに関係する構成データを検査することを含み、
前記バンクアクセス制御が「優先度ベースの制御」に設定されているとき、要求されたメモリバンクが使用可能かどうかを判断する工程は、前記第１のポートの優先度を、多重ポートメモリ装置の他のポートと比較して決定することを含む、請求項１に記載の方法。
【請求項３】
前記構成データは、前記多重ポートメモリ装置における複数のポートの各ポートに対してバンクアクセス権限を割り当てる、請求項２に記載の方法。
【請求項４】
バイパスアクセス制御信号がこのバンクに設定されている場合、前記バンクアクセス制御は「制御無し」に設定され、
バイパスアクセス制御信号により、複数の構成要素が外部調整を使用して前記メモリバンクを共有できるようにする、請求項１に記載の方法。
【請求項５】
マスタ電子ヒューズが吹き飛ばされない場合、前記メモリバンクの構成データは、ソフトウェアでリセット可能なモード設定レジスタの状態が反映され、
前記マスタ電子ヒューズが吹き飛ばされる場合、前記メモリバンクの構成データは、前記マスタ電子ヒューズが吹き飛ばされた後ではリセット不可能な一組の電子ヒューズの状態が反映される、請求項１に記載の方法。
【請求項６】
メモリバンクが使用可能かどうかを判断する工程は、バンクリフレッシュ制御モジュールが関連するメモリバンクに対してリフレッシュ信号を生成するか否かを判断することを含み、リフレッシュサイクル中に前記多重ポートメモリ装置は前記要求されたメモリバンクにアクセスすることを避ける、請求項１に記載の方法。
【請求項７】
メモリバンクを解除する要求を第１のポート上で受信する工程をさらに含む、請求項１に記載の方法。
【請求項８】
メモリバンクを解除する第１のポート上の要求はＤＲＡＭプリチャージ要求である、請求項７に記載の方法。
【請求項９】
メモリバンクにアクセスする第１のポート上の要求はＤＲＡＭ起動要求である、請求項１に記載の方法。
【請求項１０】
前記要求されたメモリバンクが前記第１のポートによって保留されているという指示を他のポートに提供する工程は、バンク可用性信号を変更することを含む、請求項１に記載の方法。
【請求項１１】
１つまたは複数の構成要素装置に取り付けられたポート間でメモリバンクを共有するための多重ポートメモリ装置であって、
複数のメモリバンクと、
複数のメモリバンクに接続された複数のポートと、
複数のポートに接続されたバンクアクセス制御装置であって、構成要素からポート上で受信されたアクセス要求に基づき、複数のポートの１つに接続された構成要素が複数のメモリバンクの１つにアクセスできるかどうかを判断するように構成されたバンクアクセス制御装置とを含み、
前記バンクアクセス制御装置は、「優先度ベースの制御」、要求された前記メモリバンクへのアクセスを管理する外部調整を使用する「制御無し」、「構成による制御」を含むバンクアクセス制御に関する複数のオプションのうちの一つに設定され、さらに、前記バンクアクセス制御装置は、
「優先度ベースの制御」のためのポート間で優先度を決定する優先度エンコーダーと、
前記メモリバンクへのアクセスを無効化するアクセス無効化制御部と、
前記メモリバンクの「構成による制御」に関する構成データの設定に応答する外部アクセス制御部と、
を有することを特徴とする多重ポートメモリ装置。
【請求項１２】
バンクアクセス制御装置が「構成による制御」に設定されているとき、前記要求されたメモリバンクが使用可能かどうかを判断する前記バンクアクセス制御装置は、要求されたメモリバンクに関係する構成データを検査することを含み、
前記バンクアクセス制御装置が「優先度ベースの制御」に設定されているとき、要求されたメモリバンクが使用可能かどうかを判断する前記バンクアクセス制御装置は、前記第１のポートの優先度を、多重ポートメモリ装置の他のポートと比較して決定することを含む、請求項１１に記載の多重ポートメモリ装置。
【請求項１３】
前記構成データは、前記多重ポートメモリ装置における複数のポートの各ポートに対してバンクアクセス権限を割り当てる、請求項１２に記載の多重ポートメモリ装置。
【請求項１４】
前記バンクアクセス制御装置は、前記アクセス無効化制御部が前記バンクのために設定されている場合、前記メモリバンクへのアクセスを拒絶する、請求項１１に記載の多重ポートメモリ装置。
【請求項１５】
前記メモリバンクに関する、マスタ電子ヒューズと、一組の電子ヒューズと、モード設定レジスタとを更に含む、請求項１１に記載の多重ポートメモリ装置。
【請求項１６】
マスタ電子ヒューズがセットされていない場合、前記構成データは、ソフトウェアでリセット可能なモード設定レジスタの状態が反映され、
前記マスタ電子ヒューズがセットされている場合、前記構成データは、前記マスタ電子ヒューズが吹き飛ばされた後ではリセット不可能な一組の電子ヒューズの状態が反映される、請求項１５に記載の多重ポートメモリ装置。
【請求項１７】
複数のメモリバンクのそれぞれに関連するバンク可用性ピンであって、アクセス要求を送信する前に構成要素がバンク可用性ピンの値を確認する、バンク可用性ピンをさらに含む、請求項１１に記載の多重ポートメモリ装置。
【請求項１８】
複数のメモリバンクのそれぞれに関連するバンク可用性ピンを更に含み、
アクセス要求が前記バンクアクセス制御装置により受信された後、前記構成要素がバンク可用性ピンの値を確認することにより前記アクセス要求が成功したか否かを判断する、請求項１１に記載の多重ポートメモリ装置。
【請求項１９】
メモリ装置における共有メモリバンクへの１つまたは複数の構成要素によるアクセスを同期させる方法であって、
「優先度ベースの制御」、要求されたメモリバンクへのアクセスを管理する外部調整を使用する「制御無し」、「構成による制御」を含むバンクアクセス制御に関する複数のオプションのどれが設定されているかの判断を含む、当該共有メモリバンクが使用可能かどうかを前記共有メモリバンクにより判断する工程と、
前記共有メモリバンクは、当該共有メモリバンクが使用可能であることを示すバンク可用性信号を変更する工程と、
前記１つまたは複数の構成要素のうちの或る構成要素は、前記メモリ装置の前記共有メモリバンクが使用可能であることを前記バンク可用性信号が示しているかを判断する工程と、
前記共有メモリバンクが使用可能であることを前記バンク可用性信号が示す場合、前記或る構成要素は前記メモリ装置にバンク予約要求を送信する工程と、
前記バンク予約要求が成功したかどうかを判断するため、前記或る構成要素がバンク可用性信号を検査する工程と、
バンク予約要求が成功した場合、前記或る構成要素は前記共有メモリバンクにアクセスする工程と、を含む方法。
【請求項２０】
前記バンクアクセス制御が「構成による制御」に設定されているとき、前記共有メモリバンクが使用可能かどうかを判断する工程は、要求されたメモリバンクに関係する構成データを検査することを含み、
前記バンクアクセス制御が「優先度ベースの制御」に設定されているとき、前記共有メモリバンクが使用可能かどうかを判断する工程は、前記第１のポートの優先度を、多重ポートメモリ装置の他のポートと比較して決定することを含む、請求項１９に記載の方法。
【請求項２１】
前記構成データは、前記多重ポートメモリ装置における複数のポートの各ポートに対してバンクアクセス権限を割り当てる、請求項２０に記載の方法。
【請求項２２】
構成要素がメモリバンクを正常に予約した後、他の構成要素によるメモリバンクを予約するその後の要求は、メモリバンクが使用不能であるという指示を受信する、請求項１９に記載の方法。
【請求項２３】
バンク可用性信号は、１つまたは複数の構成要素によるアクセスを同期させるためのセマフォを提供する、請求項１９に記載の方法。
【請求項２４】
バンク可用性信号はメモリ装置の標準ピンを介し提供される、請求項１９に記載の方法。
【請求項２５】
前記共有メモリバンクが使用可能かどうかを判断する工程は、さらに、
前記要求されたメモリバンクがリフレッシュされているかどうかを判断する工程と、
メモリバンクがリフレッシュされている場合は当該メモリバンクにアクセスする要求を拒絶する工程と、を含む、請求項１９に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータハードウェアにおいて、共有メモリは通常、マルチプロセッサコンピュータシステムにおけるいくつかの異なる中央処理装置（ＣＰＵ）または他の構成要素によりアクセスすることができる大きなランダムアクセスメモリブロックを指す。例えば、携帯電話は、それぞれが共通メモリ領域を共有し得るベースバンド処理装置、メディア処理装置およびＬＣＤ制御装置を含むことが多い。マルチプロセッサシステムの構成要素は頻繁に情報を共有する必要がある。例えば、携帯電話のメディア処理装置は、電話をかけるためにベースバンド処理装置と相互作用するオペレーティングシステムを実行することができる。別の例として、メディア処理装置は、表示される画像を記述するＬＣＤ制御装置のフレームバッファ内に情報を書き込むことができる。構成要素間の情報共有は通常、様々な制御およびデータインターフェースを必要とする。制御およびデータインターフェースは、各構成要素間および構成要素と共有メモリ間で規定されてよい。また、共有メモリを使用する各構成要素間には共有メモリのアクセスを調整するための追加のインターフェースが存在してよい。
【０００２】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む通常のメモリ装置では、メモリにアクセスする構成要素はメモリ装置の使用を開始するための起動（ＡＣＴ）命令を送信する。メモリは通常、行と列アドレスを与えることによりアクセスされ、行アドレスはＡＣＴ命令を伴ってもよい。ＡＣＴ命令はバッファ内の指定された行のメモリがキャッシュされるようにし、その後の読み出し命令はメモリデータの様々な列にアクセス（例えば、読み出しと書き込み）することができる。構成要素が行内のデータのアクセスを終了すると、構成要素は通常、行データがメモリバンクに書き戻されるようにするプリチャージ（ＰＣＧ）命令を発行する。このサイクルは、構成要素がメモリデータの別の行にアクセスすると繰り返される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
共有メモリ装置に関する１つの問題は、マルチプロセッサアーキテクチャにおける構成要素が共有メモリ装置内のバンクを頻繁に共有する必要があるということである。例えば、１つのバンクは、タスクを完了する１つの構成要素に割り当てられ、そしてそのタスクが完了すると別の構成要素に割り当てられることがある。別の例として、構成要素は、構成要素間で情報を共有するためにバンクを使用することができる。構成要素は、メモリにアクセスすることが安全になったときを各構成要素が検知できるように調整する必要があると考えられる。２つの構成要素が同時にメモリに書き込もうとすると、１つの構成要素が他の構成要素により書き込まれた情報に上書きすることによりデータ破壊が発生し得る。同様に、１つの構成要素が別の構成要素と共有するための情報をメモリへ書き込み、他の構成要素がこのメモリからあまりにも早く読み出すと、この読み出す構成要素は古い情報を読み出すことになる。したがって、メモリバンクを共有する方法の改良が必要である。
【図面の簡単な説明】
【０００４】
【図１】多重ポートメモリ装置の構成要素を示すブロック線図である。
【図２】多重ポートメモリ装置のバンクアクセス制御装置の処理を示すフロー図である。
【図３Ａ】バンクリフレッシュ制御モジュールを示すブロック線図である。
【図３Ｂ】図３Ａのバンクリフレッシュ制御モジュールの状態を示す状態図である。
【発明を実施するための形態】
【０００５】
構成要素間でメモリバンクを共有するための方法およびシステムを提供する。多重ポートメモリ装置は、マルチプロセッサシステムの構成要素が取り付けられる複数のポートと、ポートのそれぞれにより共有される多重ポートメモリ装置内の１つまたは複数のメモリバンクとを含む。バンクは、バンクが使用可能かどうかを示す指示を各ポートに提供する。例えば、バンクは、バンクが特定ポートに対し使用可能な場合にシグナリングされバンクが使用不能な場合にシグナリングされないバンク可用性（ｂａｎｋ  ａｖａｉｌａｂｉｌｉｔｙ）ハードウェアピンを提供することができる。あるいは、バンクはメモリ装置の標準ピン（例えばデータピン）を介してバンク可用性指示を与えてもよい。ポートに取り付けられた構成要素がメモリバンクの使用を望む場合、構成要素はバンク可用性指示を検査することによりバンクが使用可能かどうかを判断する。バンクが使用可能であるということをバンク可用性指示が示す場合、構成要素は入力制御ピンなどを介しメモリバンクを予約する要求を送信する。例えば、ＤＲＡＭのバンクを予約する要求はＤＲＡＭ  ＡＣＴ命令に付属されてよい。バンクは、バンク予約要求を受信すると、各ポートのバンク可用性指示を変更する。予約要求を送信したポートに対しては、バンク可用性指示はバンクが使用可能であるということを示し続ける。しかしながら、他の各ポートに対しては、バンク可用性指示はバンクが使用中であるということ示し、これによりバンク予約要求を発行した構成要素の独占使用のためにバンクを効果的に予約する。このとき、バンク予約要求を発行した構成要素はメモリバンクに対し読み出し書き込みを行うことができる。構成要素は、メモリバンクの使用が終了すると、バンクの予約を放棄するバンク解除命令を送信する（例えば、入力制御ピンをシグナリングしないことにより）。例えば、バンクを解除する要求はＤＲＡＭ  ＰＣＧ命令に付随されてよい。次に、メモリバンクは、メモリバンクが任意のポートにより再度使用可能であることを示すためにバンク可用性指示を変更する。こうして、共有を支援する少量の追加ハードウェアのみで、多重ポートメモリ装置をいくつかの構成要素により同時に共有させることができる。
【０００６】
バンクアクセス制御
いくつかの実施形態では、多重ポートメモリ装置は、２つの構成要素がＡＣＴ命令を送信することによりバンクを同時に予約しようとするときに使用されるポート間の優先度を設定する。例えば、両方の構成要素は可用性ピンを検査してバンクが使用可能であるということを判断することができ、両方の構成要素はバンクを予約するＡＣＴ命令を送信することができる。多重ポートメモリ装置はより高い優先度を有するポートに対し予約を許可する。構成要素は、予約要求が成功したかどうかを判断するために可用性ピンを使用することができる。高い優先度を有する構成要素はバンク可用性ピンを１に設定し、一方、低い優先度（および他のポートのそれぞれ）を有する構成要素はバンク可用性ピンを０に設定する。
【０００７】
当業者は、バンク可用性ピンを使用することにより共通同期構成（相互排除（ｍｕｔｅｘｅ）およびセマフォ（ｓｅｍａｐｈｏｒｅ）など）を構築できるということを認識するであろう。構成要素は、バンクの可用性を楽観的に試験することによりＡＣＴ命令を発行する。バンクが使用可能な場合、ＡＣＴ命令は成功し、バンク可用性ピンは構成要素がメモリバンクにアクセスするための予約を有するということを示す。ＡＣＴ命令が失敗した（例えば、バンクが既に予約されているために）場合、バンク可用性ピンはバンクが使用可能でないということを示し、構成要素はバンクがいつ使用可能になるかを判断するために追加のＡＣＴ命令を送信することによりバンクを定期的にポーリングすることができる。一つの最適化として、構成要素はまた、追加のＡＣＴ命令を送信する前に、バンクがもはや予約されていないということをバンク可用性ピンが指示するのを待ってよい。
【０００８】
いくつかの実施形態では、多重ポートメモリ装置は、どの構成要素が各メモリバンクにアクセスすることができるかを判断するための電子ヒューズを提供する。電子ヒューズは、装置に電子信号を送信することにより吹き飛ばされるヒューズである。多くの電子ヒューズは一旦吹き飛ばされるとリセットすることができないので、ソフトウェアがハードウェア構成を改ざんするのを防ぐための効果的なツールとなる。例えば、いくつかの電子ヒューズを吹き飛ばすことにより、アプリケーションは、バンク可用性ピンが１つのポートに対する可用性を常に示しかつ他のポートに対する非可用性を常に示すように多重ポートメモリ装置を構成することができる。このような構成は、製造工程の一部として実行されてもよく、あるいはメモリ装置が特定のアプリケーションに組み込まれた後フィールドで実行されてもよい。いくつかのアプリケーションでは、構成要素間のハードウェアファイアウォールの形態を補強するために、他の構成要素により使用されるメモリバンクにいくつかの構成要素が確実にアクセスできないようにすることが望ましい。例えば、携帯電話は、携帯電話プロバイダーのネットワークで通信を行うベースバンド処理装置により使用されるメモリを、携帯電話使用者にユーザーインターフェースを提供するオペレーティングシステムを実行するメディア処理装置の誤った振る舞いから保護するように設計されることが多い。このタイプの設計は、無効データがプロバイダーのネットワーク上で送信されると発生し得るようなオペレーティングシステムソフトウェアのエラーがプロバイダーのネットワークに影響を及ぼすのを防ぐ。いくつかの電子ヒューズを吹き飛ばすことにより、ハードウェアにより、メディア処理装置がベースバンド処理装置により使用されるメモリバンクにアクセスするのを防ぐことができる。
【０００９】
いくつかの実施形態では、多重ポートメモリ装置は、アプリケーションがメモリバンクの可用性の構成を動的に変更するために使用できるモード設定レジスタ（ＭＲＳ）を提供する。一旦吹き飛ばされると通常はリセットすることができない電子ヒューズとは異なり、ＭＲＳは、多重ポートメモリ装置の構成を時間の経過とともに変更するためにソフトウェアにより繰り返し設定することができる。同じ装置内にハードウェアロック構成とリセット可能構成の両方を提供するために、マスタ電子ヒューズを使用して現在の構成がモード設定レジスタにより設定されるかあるいは他の電子ヒューズにより設定されるかを判断することができる。アプリケーションがハードウェアロック構成を必要とする場合、アプリケーションは他の電子ヒューズの構成が装置の構成を制御するようにマスタ電子ヒューズを吹き飛ばすことができ、ソフトウェアが構成に対し追加変更を行うことを防止することができる。アプリケーションがリセット可能構成を必要とする場合、マスタヒューズは吹き飛ばされず、ＭＲＳ内の構成データが装置の構成を制御する。
【００１０】
図１は、一実施形態における多重ポートメモリ装置１００の構成要素を示すブロック線図である。多重ポートメモリ装置１００は、１つまたは複数のメモリバンク１１０、１つまたは複数のシリアルポート１２０、メモリバンクのそれぞれに関連する１つまたは複数のバンクアクセス制御装置１３０、１つまたは複数の電子ヒューズ１４０、入力制御ピン１４５、および出力制御ピン１５０を含む。メモリバンク１１０は通常、そのサイズが異なってよいダイナミックランダムアクセスメモリ（ＤＲＡＭ）バンクであり、ポート１２０により共有される。ポート１２０は、ポートに接続される構成要素（図示せず）に対しデータを送受信できるようにするシリアルポートである。バンクアクセス制御装置１３０は、任意の特定の時間にどのポートがどのメモリバンクにアクセスできるかを判断する。いくつかの実施形態では、バンクアクセス制御装置１３０は各メモリバンク１１０に関連付けられ、各バンクのバンクアクセス要求を処理する。ポートに取り付けられた構成要素がメモリバンクの予約を望む場合、構成要素は入力制御ピン１４５全体にわたってバンク使用要求（例えばＡＣＴ命令）を送信する。特定のメモリバンクに関連するバンクアクセス制御装置１３０は、この要求にどのように応答するかを判断し、バンク使用許可または拒絶のいずれかにより出力制御ピン１５０を使用して応答する。
【００１１】
バンクアクセス制御装置１３０は、バンクアクセス制御の３つの選択肢：「制御無し」、「構成による制御」、および「優先度ベースの制御」を許容する。「制御無し」選択肢は、関連バンクへのアクセスがメモリ装置により規制されないことを意味する。「制御無し」選択肢は、複数の構成要素間またはバンクへのアクセスを管理するポートマスター間の外部調整に依存する。いくつかの実施形態では、「制御無し」選択肢はバイパスアクセス管理信号をアサートすることにより選択されてよい。「構成による制御」選択肢は、バンクへのアクセスがメモリ装置の構成に基づき制限されることを意味する。「構成による制御」は、バンクアクセス権を各ポートに割り当てるために電子ヒューズまたはモードレジスタのいずれかを使用する。割り当てがヒューズによりまたはモードレジスタにより発生するかを選択するために別のヒューズを使用してもよい。「優先度ベースの制御」選択肢は、競合するポート間に設定された優先度に基づき独占的使用権がポートに許可されることを意味する。
【００１２】
図１では、各バンクアクセス制御装置１３０は、バンク使用要求が関連バンクに対し許可されるかあるいは拒絶されるかを判断する内部ロジックを含む。具体的には、バンクアクセス制御は、（１）ポート間の優先度を判断する優先度エンコーダ１６０、（２）関連メモリバンクへのアクセスを無効にするアクセス無効化制御部（ｄｉｓａｂｌｅ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ）１７０、および（３）構成データの設定に応答する外部アクセス制御部１８０（例えば、モードレジスタセット（ＭＲＳ）および／または１つまたは複数の電子ヒューズ１４０）を含む。優先度エンコーダ１６０は、メモリバンクにアクセスする一斉要求を行う高い優先度構成要素が低い優先度構成要素に優先してアクセスを許可されるようにポート間の優先度を設定する。優先度エンコーダ動作は、高い番号のポート（例えばポート２、ポート３）に接続される低い優先度構成要素より低い番号のポート（例えばポート０、ポート１）に接続される高い優先度構成要素に依存する。アクセス無効化制御部は、対応するバンクが信号線１８５に印加される単一の無効化制御信号の印加により無効にできるようにする。外部アクセス制御部１８０は、いくつかのポートが対応するメモリバンクにアクセスすることを防止できるようにする。外部アクセス制御部の状態はアクセス制御部に印加される構成データに依存する。このような構成データは、ＭＲＳまたは１つまたは複数のヒューズ１４０の設定により発生させることができる。ＭＲＳまたはヒューズ１４０の状態は外部アクセス制御部を形成する論理に適用され、対応するバンクへのアクセスは、ＭＲＳまたはヒューズの状態が変更されるまで１つまたは複数のポートに対し拒絶される。例えば、本明細書に記載のように、１つの構成要素がハードウェアレベルで別の構成要素により使用されるメモリにアクセスすることを防ぐことはいくつかのアプリケーションでは望ましいかもしれない。ソフトウェアエラーが構成要素全体にわたってメモリ破壊を引き起こすのを防ぐためにこの構成を使用することができる。無効化信号およびＭＲＳまたはヒューズの状態だけでなく、バンクアクセス制御装置１３０に印加されるバンクアクセス要求の組み合わせもまた、バンクが制御およびデータインターフェース１５０上でアクセスするために使用可能か否かを判断する。いくつかの実施形態では、マスタ電子ヒューズ（図示せず）は、構成を判断するためにＭＲＳまたは電子ヒューズを使用するかどうかを判断する。
【００１３】
図２は、多重ポートメモリ装置のバンクアクセス制御装置１３０の１つの処理を示すフロー図である。ブロック２１０では、制御装置は、ポートの１つに取り付けられた構成要素から、多重ポートメモリ装置のバンクにアクセスする要求を受信する。ブロック２２０では、制御装置は、特定ポートに対し設定された優先度と構成を判断する。この判断は、現時点で要求ポートをメモリバンクにアクセスさせてよいかどうかを判断するために、優先度テーブルを検査する工程と、１つまたは複数の電子ヒューズの値を読み出す工程などを含んでもよい。判定ブロック２３０では、ポートをバンクにアクセスさせない場合、バンクアクセス制御装置はブロック２４０に進みアクセス要求を拒絶し、そうでなければ制御装置はブロック２５０に進む。ブロック２５０では、制御装置はアクセス要求を許可し、ポートに取り付けられた構成要素はメモリに対する読み出しおよび書き込みを開始することができる。ブロック２６０では、バンクアクセス制御装置は、バンクが予約され現在使用可能ではないという指示を他のポートに取り付けられた構成要素に与える。ブロック２６０の後、これらの工程は終了する。
【００１４】
使用されるアクセス制御方式に基づき、メモリバンクを使用しようとする構成要素のメモリバンクへのアクセスを拒絶することができる。構成要素のアクセスが拒絶されると、多重ポートメモリ装置は、アクセスが拒絶されたことを示すメッセージを構成要素に送信することができる。構成要素は、進行中の任意の読み出しバーストを完了し、その後、失敗した命令を再発行することにより、メッセージを処理することができる。例えば、構成要素は、命令が成功するまでバンクにアクセスする命令を再発行することによりバンクが使用可能になるまで特定のバンクを繰り返しポーリングすることができる。
【００１５】
リフレッシュタイミング
多重ポートメモリ装置１００に含まれるＤＲＡＭバンク１１０は通常、ＤＲＡＭにアクセスすることができる方法を規定する特定のタイミング要件を有する。例えば、ＤＲＡＭは以下のタイミングパラメータを有してよい。
【００１６】
【表１】
0005597546.tif 000002
【００１７】
多重ポートメモリ装置１００は、一貫したメモリ状態を保証するためにＤＲＡＭが必要とするいかなるタイミング要件も遵守しなければならない。メモリバンクが複数の構成要素間で共有されると、バンクを使用する１つの構成要素は別の構成要素がバンクに何をしたかを知らないことがある。これは、例えば、十分な「読み出しから書き込みまでの遅延」が経過したこと、あるいは十分なリフレッシュ間隔が維持されたことを保証することを困難にする可能性がある。さらに、構成要素は通常、いくつかの種類の命令の後に多重ポートメモリ装置のバンクをリフレッシュする自動リフレッシュ命令（ＲＥＦＡ）を送信する働きをする。しかしながら、複数の構成要素がメモリ装置を使用すると、１つのポート上で受信されたＲＥＦＡ命令は別のポートへのアクセスと競合する可能性がある。したがって、いくつかの実施形態では、多重ポートメモリ装置１００はそれ自身の自動または局所リフレッシュ方式（本明細書に記載の）を採用する。
【００１８】
図３Ａはバンクリフレッシュ制御モジュール３００を示すブロック線図である。多重ポートメモリ装置は、リフレッシュサイクル（以下では、「局所リフレッシュ」と呼ぶ）中のメモリバンクへのアクセスを一時的に防ぐためにバンクリフレッシュ制御モジュール３００を使用する。このモジュールは、バンクリフレッシュ制御装置３２０に接続されたリフレッシュタイマ３１０を含む。リフレッシュ制御装置３２０はＤＲＡＭメモリバンクに接続され、メモリが使用中でないときにメモリをリフレッシュするためにリフレッシュ信号を発行することができる。動作中、リフレッシュタイマ３１０は定期的にｒｅｆｒｅｓｈ＿ｔｉｃｋ信号を発行する。ｒｅｆｒｅｓｈ＿ｔｉｃｋ信号は、バンクリフレッシュを実行しなければならないということを示す。ｒｅｆｒｅｓｈ＿ｔｉｃｋ信号は、多重ポートメモリ装置内のすべてのバンクに対してグローバルに生成されてもよく、あるいは装置内のバンク毎に局所的に生成されてもよい。バンクリフレッシュ制御装置３２０はｒｅｆｒｅｓｈ＿ｔｉｃｋ信号を受信し、バンクアクセス制御装置１３０からのバンク使用許可信号との論理和をとることによりバンクが使用中であるかどうかを判断する。バンクが使用中でなければ、バンクリフレッシュ制御装置３２０は、バンクをリフレッシュするリフレッシュ信号を生成する。バンクリフレッシュ制御３２０はまた、論理「１」信号（ｉｎ＿ｒｅｆｒｅｓｈ）を生成する。論理「１」信号（ｉｎ＿ｒｅｆｒｅｓｈ）は、リフレッシュ動作が進行中であるときのメモリバンクへのアクセスを防ぐために反転され、バンクアクセス制御装置３３０のバンク使用許可信号と論理積により組み合わされる。リフレッシュ動作中のバンクにアクセスするいかなる試みも要求元構成要素へアクセス拒絶メッセージを送信させることになる。構成要素は通常、その後アクセスを再び試み、その後リフレッシュを完了することができる。リフレッシュ動作が完了すると、バンクリフレッシュ制御装置３２０はバンクアクセス制御装置１３０の正常な動作を可能にするためにｉｎ＿ｒｅｆｒｅｓｈ信号を論理「０」に設定する。バンクリフレッシュ制御装置３２０がｒｅｆｒｅｓｈ＿ｔｉｃｋ信号を受信したときにバンクが使用中である場合、バンクリフレッシュ制御装置は、リフレッシュ動作を完了するまで、バンクが使用されなくなるのを待つ。
【００１９】
図３Ｂは、図３Ａのバンクリフレッシュ制御モジュール３００の状態を示す状態図である。正常状態３７０では、ｒｅｆｒｅｓｈ＿ｔｉｃｋ、ｉｎ＿ｕｓｅおよびｉｎ＿ｒｅｆｒｅｓｈ線はシグナリングされず、正常なメモリ動作が許容される。ｒｅｆｒｅｓｈ＿ｔｉｃｋ線がシグナリングされ、かつ、メモリバンクが使用中でない場合、状態はリフレッシュ状態３９０に変わる。メモリバンクが使用中である場合、状態は待ち状態３８０に変わり、メモリバンクを使用する動作が完了しｉｎ＿ｕｓｅ線がシグナリングされなくなるのを待つ。このとき、状態はリフレッシュ状態３９０に変わる。リフレッシュ状態で、バンクリフレッシュ制御モジュールはリフレッシュ動作を完了させる。リフレッシュ動作が完了した後（ｔＲＣの経過により指示される）、状態は正常状態３７０に戻り、構成要素は再度、バンクを使用するメモリ操作を実行することができる。
【００２０】
いくつかの実施形態では、図３Ａのリフレッシュタイマ３１０は、バンクに対し発行された命令の種類に基づき、いつリフレッシュが必要かを自動的に判断する命令デコーダで置き換えられる。自動リフレッシュ方式と呼ばれるこの方式はより多くのハードウェアを必要とするが、構成要素がより短いリフレッシュ遅延でメモリバンクを使用できるようにする。
【００２１】
いくつかの実施形態では、多重ポートメモリ装置はＤＲＡＭにアクセスする各動作間に必要とされる時間を低減するように設計される。例えば、列幅はバンク起動のためのエネルギーを軽減するために制限されてもよい。多重ポートメモリ装置はまた、ｔＲＲＤ、ｔＦＡＷなどの制約条件を取り除くためにバンク毎に別個の電圧発生器を使用してもよい。当業者は、メモリバンクを共有する複数の構成要素間の競合を低減するためにこれらおよび他の設計を使用し得ることを認識するであろう。
【００２２】
結論
以上の説明から、多重ポートメモリ装置の特定の実施形態が例示のために本明細書に記載されたが、本発明の趣旨および範囲から逸脱することなく様々な変更がなされ得ることが理解されるであろう。例えば、処理構成要素はメモリを共有するための多重ポートメモリ装置に取り付けられるとして記載されたが、多重ポートメモリ装置には様々な構成要素を取り付けることができる。例えば、音声ハードウェア、ＬＣＤ画面、映像ハードウェア、制御装置モジュール、デジタル信号処理装置、および他の多くのタイプの構成要素は、本明細書に記載の多重ポートメモリ装置および方法を使用してメモリを共有することができる。別の例として、ＤＲＡＭについて記載したが、本明細書に記載の方法はスタティックランダムアクセスメモリ（ＳＲＡＭ）、フラッシュメモリなど他の種類のメモリと共に使用されてよい。したがって、本発明は添付の特許請求の範囲によってのみ限定される。
【図１】
0005597546.tif 000003
【図２】
0005597546.tif 000004
【図３Ａ】
0005597546.tif 000005
【図３Ｂ】
0005597546.tif 000006