(57)【特許請求の範囲】
【請求項１】
第１のポートと第２のポートとを有するメモリを動作させる方法であって、前記方法は、
前記第１のポートにおいて第１のメモリアクセス要求を受信することと、
前記第２のポートにおいて、第２のメモリアクセス要求と、関連付けられたクロック信号とを受信することと、
制御回路を用いて、前記第２のポートにおいて前記クロック信号のクロックエッジを検出することと、
前記クロックエッジを検出することに応答して、前記制御回路を使用することにより、追加のクロック信号を生成することと、
前記追加のクロック信号を使用して前記第１のメモリアクセス要求をサンプリングすることと
を含む、方法。
【請求項２】
前記追加のクロック信号を使用することにより、前記第１のメモリアクセス要求をラッチすることをさらに含む、請求項１に記載の方法。
【請求項３】
前記クロック信号のクロックエッジを検出することは、前記第２のポートにおいて前記クロック信号の立ち上りクロックエッジを検出することを含む、請求項１に記載の方法。
【請求項４】
前記第１のポートにおいて、前記第１のメモリアクセス要求と関連付けられている別のクロック信号を受信することをさらに含む、請求項１に記載の方法。
【請求項５】
前記クロックエッジを検出することに応答して、すぐに前記第２のメモリアクセス要求にサービスを提供することをさらに含む、請求項１に記載の方法。
【請求項６】
前記追加のクロック信号を使用することにより、前記第１のメモリアクセス要求をラッチすることは、前記追加のクロック信号の立ち上りおよび立ち下りクロックエッジの時に前記第１のメモリアクセス要求をサンプリングすることを含む、請求項２に記載の方法。
【請求項７】
前記メモリは、単一ポートメモリ要素のアレイを備える、請求項１に記載の方法。
【請求項８】
回路網であって、前記回路網は、
複数のメモリ要素と、
第１のメモリアクセス要求を受信する第１のポートと、
第２のメモリアクセス要求を受信する第２のポートと、
前記第１のメモリアクセス要求に基づいて制御信号を生成する制御回路であって、前記制御信号は、前記第１のメモリアクセス要求および前記第２のメモリアクセス要求のうちのいずれが、前記複数のメモリ要素における遂行のために選択されるべきであるかを決定する、制御回路と、
前記第１のポートから前記第１のメモリアクセス要求を受信する第１の入力と、前記第２のポートから前記第２のメモリアクセス要求を受信する第２の入力と、前記制御信号を受信する制御入力とを有する多重化回路と
を備える、回路網。
【請求項９】
前記複数のメモリは、複数の単一ポートメモリ要素を備える、請求項８に記載の回路網。
【請求項１０】
前記第１のポートはまた、第１のクロック信号を受信し、前記第２のポートはまた、前記第１のクロック信号と異なる第２のクロック信号を受信する、請求項８に記載の回路網。
【請求項１１】
前記制御回路は、前記第１のクロック信号を受信せず、前記第２のクロック信号を受信するように構成されている、請求項１０に記載の回路網。
【請求項１２】
前記制御回路は、前記第２のクロック信号のクロックエッジを検出することに応答して追加のクロック信号を生成するように構成されている、請求項１０に記載の回路網。
【請求項１３】
前記第１のクロック信号によってクロックされ、かつ前記第１のメモリアクセス要求をラッチする、第１の入力ラッチと、
前記第２のクロック信号によってクロックされ、かつ前記第２のメモリアクセス要求をラッチする、第２の入力ラッチと
をさらに備える、請求項１０に記載の回路網。
【請求項１４】
第１のポートと第２のポートとを有するメモリ回路網を動作させる方法であって、前記方法は、
前記第１のポートにおいて第１のメモリアクセス要求を受信することと、
前記第２のポートにおいて、第２のメモリアクセス要求と、関連付けられたクロック信号とを受信することと、
制御回路を用いて、前記クロック信号のクロックエッジを検出することに応答して前記第２のメモリアクセス要求にサービスを提供することと、
バッファーを用いて、前記第１のメモリアクセス要求を一時に格納し、前記バッファーが空であるか否かを示す出力有効信号を生成することと
を含む、方法。
【請求項１５】
前記バッファーを用いて前記出力有効信号を生成することは、前記バッファーが空である場合、前記出力有効信号をデアサートすることと、前記バッファーが空ではない場合、前記出力有効信号をアサートすることとを含む、請求項１４に記載の方法。
【請求項１６】
要求同期器を用いて、前記出力有効信号を受信し、かつ、対応する同期信号を前記制御回路に出力することをさらに含む、請求項１４に記載の方法。
【請求項１７】
前記第２のメモリアクセス要求が遂行されるとき、前記同期信号がアサートされる場合のみ前記第１のメモリアクセス要求を処理することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記制御信号を用いて、前記クロックエッジを検出することに応答して追加のクロック信号を生成することをさらに含む、請求項１６に記載の方法。
【請求項１９】
前記追加のクロック信号を用いて前記要求同期器を制御することをさらに含む、請求項１８に記載の方法。
【請求項２０】
前記第１のメモリアクセス要求および前記第２のメモリアクセス要求は、前記メモリ回路網中の単一ポートメモリ要素のアレイにアクセスする、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１１年１０月２８日に出願された米国特許出願第１３／２８４，７２１に対して優先権を主張する。上記文献は、全体として本明細書において参照することによって援用される。
【背景技術】
【０００２】
（背景）
集積回路（例えば、プログラマブル集積回路）は、しばしば、静的ランダムアクセスメモリ（ＳＲＡＭ）セルの形態の揮発性メモリ要素を含む。揮発性メモリ要素（例えば、ＳＲＡＭセル）は、典型的に、交差連結されたインバータ（すなわち、ラッチ）に基づく。メモリ要素は、アレイで配列される。典型的アレイにおいて、データラインは、メモリ要素内にデータを書き込み、メモリ要素からデータを読み取るために使用される。アドレスラインは、どのメモリ要素がアクセスされるかを選択するために使用される。
【０００３】
あるアプリケーションは、メモリ要素がデュアルポート能力を有する（すなわち、メモリ要素が２つのポートを含み、２つのポートの各々は、読み取りまたは書き込み動作を実行するために使用される）ことを要求する。デュアルポート動作をサポートするために、メモリ要素は、典型的に、８トランジスタ構成において形成される。例えば、従来のデュアルポートメモリ要素は、２つの交差連結されたインバータ、並びに第１および第２の対のアクセストランジスタを含む。第１の対のアクセストランジスタは、第１の読み取り／書き込みポートとして機能するために、交差連結されたインバータに連結され、その一方で、第２の対のアクセストランジスタは、第２の読み取り／書き込みポートとして機能するために、交差連結されたインバータに連結される。しかしながら、このように配列された従来の８トランジスタ（８Ｔ）デュアルポートメモリセルは、従来の６トランジスタ（６Ｔ）単一ポートメモリセルの面積の２倍より多くの面積を占用する。
【０００４】
デュアルポートメモリ回路網の面積を低減するために、同期デュアルポート機能を提供する（すなわち、両方のポートが単一クロックを用いて制御される）ことにおいて６Ｔメモリ要素の使用を可能にする技術が開発された。例えば、ダブルクロッキング技術は、（第１のポートに関連付けられた要求を遂行するために）高いクロック位相の間、および（第２のポートに関連付けられた要求を遂行するために）低いクロック位相の間にメモリ要素にアクセスことを含む。しかしながら、ダブルクロッキングメモリアクセスは、メモリの性能を制限し、非同期デュアルポート動作（すなわち、２つのポートを制御するために、異なるクロック周波数および／または位相を有する２つの別個のクロック信号を使用することを含む動作）をサポートするために使用されることができない。
【発明の概要】
【課題を解決するための手段】
【０００５】
（要約）
メモリ要素回路網を有する集積回路が提供される。メモリ要素は、アレイで配列された単一ポートメモリ要素を含み得る。メモリ要素は、多重ポートメモリ機能を提供する周辺メモリ制御回路網とインターフェースでつなぐように構成され得る。
【０００６】
メモリ回路網は、同期ポートおよび非同期ポートからメモリアクセス要求を受信するように構成された制御回路（ときには、シーケンス回路と呼ばれる）を含み得る。同期ポートに関連付けられた要求は、同期ポートクロックを用いて制御され得、その一方で、非同期ポートに関連付けられた要求は、非同期ポートクロックを用いて制御され得る。第１および第２のクロック信号は、異なるクロック周波数／位相を示し得る。同期ポートに到達するメモリアクセス要求は、それらが受信されるとすぐに遂行され得、その一方で、非同期ポートに到達するメモリアクセス要求は、ファーストインファーストアウト（ＦＩＦＯ）回路を用いてバッファーされ、準安定性同期器を用いて内部メモリクロックに同期され得る。
【０００７】
例えば、同期ポートクロックの立ち上りエッジを検出することに応答して、ＦＩＦＯが空ではない場合に、制御回路は、ＦＩＦＯから存在する未処理の非同期ポート要求をサンプリングし得る（例えば、同期器は、未処理の非同期ポート要求をラッチするために使用され得る）。同期アクセスがこの時間においてサービスを提供される必要がある場合に、制御回路は、すぐにその要求を遂行するようにメモリ回路網を指示する。
【０００８】
同期アクセスの完了の際に、サンプリングされた非同期ポート要求が同期器を用いてラッチされたので、その要求は、ＦＩＦＯから削除され得る。次に、制御回路は、同期器によって現在ラッチされているサンプリングされた非同期ポート要求を処理し、現在の同期クロックサイクルの残りにおいて任意の追加の未処理または後に到達する非同期ポート要求を遂行するように進め得る。非同期要求が完了するときにＦＩＦＯが空である場合に、制御回路は、同期ポートクロックの次のクロックサイクルまで、任意の後に到達する非同期要求を遅延させ得る。
【０００９】
前述の半同期シーケンス回路に加えて、メモリ回路網は、仲裁回路を含み得、仲裁回路は、同期および非同期ポートからメモリアクセス要求を受信し、同期および非同期ポートに関連付けられたメモリアクセス要求が実行される順序を扱うように構成されている。例えば、仲裁回路は、非同期モード（すなわち、同期および非同期ポートからの要求が、異なる周波数および／または位相を有する第１および第２のクロック信号を用いて制御されるモード）で動作可能であり得る。非同期モードにおいて、仲裁回路は、メモリアクセス要求が受信されるとすぐに、メモリアクセス要求を実行する。例えば、仲裁回路が、同期ポートにおいて所与のメモリ要求を検出する場合に、仲裁回路は、所与のメモリ要求を実行するように制御回路に指示する。第２のメモリ要求が、所与のメモリが遂行される前に非同期ポートにおいて受信される場合に、第２のメモリ要求は、所与のメモリ要求が完了されるまで保留され得る。仲裁回路が、所与のメモリ要求が遂行されたことを検出した場合に、仲裁回路は、第２のメモリ要求を実行するように制御回路に指示する。
【００１０】
例えば、本発明は以下の項目を提供する。
（項目１）
第１のポートと第２のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、
該第１のポートにおいて、第１のメモリアクセス要求と、関連付けられた第１のクロック信号とを受信することと、
該第２のポートにおいて、第２のメモリアクセス要求と、関連付けられた第２のクロック信号とを受信することと、
制御回路を用いて該第２のクロック信号の立ち上りクロックエッジを検出することに応答して、第３のクロック信号を生成し、かつ該第２のメモリアクセス要求にサービスを提供することと、
該第２のメモリアクセス要求がサービスを提供されている間に、該第３のクロック信号を用いて該第１のメモリアクセス要求をサンプリングすることと
を含む、方法。
（項目２）
上記第３のクロック信号を用いて上記第１のメモリアクセス要求をサンプリングすることは、少なくとも２つの直列接続されたラッチを用いて該第３のクロック信号の立ち上りおよび立ち下りクロックエッジの時に該第１のメモリアクセス要求をサンプリングすることを含む、上記項目に記載の方法。
（項目３）
上記第１のメモリアクセス要求をバッファー回路内に格納することをさらに含み、該バッファー回路は、上記少なくとも２つの直列接続されたラッチから制御信号を受信するように動作可能である、上記項目のいずれかに記載の方法。
（項目４）
上記バッファー回路を用いて上記第３のクロック信号を受信することをさらに含む、上記項目のいずれかに記載の方法。
（項目５）
上記デュアルポートメモリは、多重化回路を含み、該多重化回路は、上記少なくとも２つの直列接続されたラッチを介して上記第１のメモリアクセス要求を受信するように動作可能な第１の入力と、上記第２のメモリアクセス要求を受信するように動作可能な第２の入力と、上記制御回路から制御信号を受信するように動作可能な制御入力とを有する、上記項目のいずれかに記載の方法。
（項目６）
上記第１のメモリアクセス要求をバッファー回路内に格納することをさらに含む、上記項目のいずれかに記載の方法。
（項目７）
上記制御回路を用いて上記第２のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記単一ポートメモリ要素のアレイへのアクセスを制御するための第４のクロック信号を生成することをさらに含む、上記項目のいずれかに記載の方法。
（項目８）
上記第２のメモリアクセス要求が遂行されることに応答して、上記制御回路を用いて該第２のメモリアクセス要求の完了を表す制御信号を受信することと、
該制御回路を用いて該制御信号を受信することに応答して、上記第１のメモリアクセス要求にサービスを提供することと
をさらに含む、上記項目のいずれかに記載の方法。
（項目９）
第１のポートと第２のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、
該第１のポートにおいて、第１のメモリアクセス要求と、関連付けられた第１のクロック信号とを受信することと、
該第２のポートにおいて、第２のメモリアクセス要求と、関連付けられた第２のクロック信号とを受信することと、
該第１のクロック信号のクロックが上昇することに応答して、該第１のメモリアクセス要求をバッファー内に一時的に格納することと、
制御回路を用いて該第２のクロック信号の立ち上りクロックエッジを検出することに応答して、該第１のメモリアクセス要求が該バッファー内に格納されている間に、該第２のメモリアクセス要求にサービスを提供することと
を含む、方法。
（項目１０）
上記第２のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記制御回路を用いて第３のクロック信号をトリガーすることをさらに含む、上記項目のいずれかに記載の方法。
（項目１１）
同期化回路を用いて上記第３のクロック信号を受信することであって、該同期化回路は、少なくとも２つのラッチを含む、ことと、
上記バッファーを用いて該第３のクロック信号を受信することと
をさらに含む、上記項目のいずれかに記載の方法。
（項目１２）
上記少なくとも２つのラッチは、上記第３のクロック信号の立ち上りクロックエッジの時にデータをラッチするように構成された正エッジトリガー型ラッチと、該第３のクロック信号の立ち下りクロックエッジの時にデータをラッチするように構成された負エッジトリガー型ラッチと含む、上記項目のいずれかに記載の方法。
（項目１３）
上記バッファーを用いて上記同期化回路から制御信号を受信することをさらに含む、上記項目のいずれかに記載の方法。
（項目１４）
上記同期化回路を用いて上記第１のメモリアクセス要求をラッチすることと、
該第１のメモリアクセス要求が該同期化回路を用いてラッチされた後に、該第１のメモリアクセス要求を上記バッファーから除去することと
をさらに含む、上記項目のいずれかに記載の方法。
（項目１５）
上記バッファーは、ファーストインファーストアウト回路を含む、上記項目のいずれかに記載の方法。
（項目１６）
第１のポートと第２のポートとを有するデュアルポートメモリであって、該デュアルポートメモリは、
単一ポートメモリ要素のアレイと、
第１のメモリアクセス要求と、該第１のポートに関連付けられた第１のクロック信号とを受信するように動作可能な第１の入力ラッチと、
第２のメモリアクセス要求と、該第２のポートに関連付けられた第２のクロック信号とを受信するように動作可能な第２の入力ラッチであって、該第２のクロック信号は、該第１のクロック信号と異なる、第２の入力ラッチと、
該第１のクロック信号を受信せず、該第２のクロック信号を受信するように動作可能な制御回路と
を含み、
該制御回路は、該第１のメモリアクセス要求および該第２のメモリアクセス要求のうちのいずれが遂行のために選択されるべきであるかを決定する制御信号を生成するようにさらに動作可能である、デュアルポートメモリ。
（項目１７）
上記第１の入力ラッチから上記第１のメモリアクセス要求を受信するように動作可能な第１の入力と、上記第２の入力ラッチから上記第２のメモリアクセス要求を受信するように動作可能な第２の入力と、上記制御回路から上記制御信号を受信するように動作可能な制御入力とを有する多重化回路をさらに含む、上記項目のいずれかに記載のデュアルポートメモリ。
（項目１８）
上記第１の入力ラッチと上記多重化回路の上記第１の入力との間に連結されたバッファーをさらに含む、上記項目のいずれかに記載のデュアルポートメモリ。
（項目１９）
上記バッファーと上記多重化回路の上記第１の入力との間に連結された正エッジトリガー型ラッチおよび負エッジトリガー型ラッチをさらに含む、上記項目のいずれかに記載のデュアルポートメモリ。
（項目２０）
上記バッファーは、ファーストインファーストアウト回路を含む、上記項目のいずれかに記載のデュアルポートメモリ。
【００１１】
（摘要）
単一ポートメモリ要素を有する集積回路が提供され得る。単一ポートメモリ要素は、多重ポート機能をエミュレートするために、制御回路を用いて制御され得る。１つの適切な実施形態において、制御回路は、仲裁回路であり得、仲裁回路は、メモリ要求が仲裁回路によって受信されるとすぐにメモリ要求を実行するように構成されている。現在のメモリアクセスが実行されている間に受信される要求は、現在のメモリアクセスが完了するまで保留され得る。別の適切な実施形態において、制御回路は、同期ポートおよび非同期ポートからのメモリアクセス要求にサービスを提供するように構成されたシーケンス回路であり得る。同期ポートにおいて受信されたメモリアクセス要求は、すぐにサービスを提供され得、その一方で、非同期ポートにおいて受信されたメモリアクセス要求は、内部メモリクロック信号に同調され得、同期ポートに関連付けられた前のメモリアクセス要求がサービスを提供された後にサービスを提供され得る。
【００１２】
本発明のさらなる特徴、本発明の本質およびさまざまな利点は、添付の図面および以下の詳細な説明からより明白になる。
【図面の簡単な説明】
【００１３】
【図１】図１は、仲裁回路を有する例示的な多重ポートメモリ回路網のダイヤグラムである。
【図２】図２は、図１の多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
【図３】図３は、図１の多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
【図４】図４は、本発明の実施形態に従う例示的な半同期多重ポートメモリ回路網のダイヤグラムである。
【図５】図５は、本発明の実施形態に従う例示的なメモリ要素のダイヤグラムである。
【図６】図６は、本発明の実施形態に従う図４において示されるタイプの半同期多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
【図７】図７は、本発明の実施形態に従う図４において示されるタイプの半同期多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
【図８】図８は、本発明の実施形態に従う図４において示されるタイプの多重ポートメモリ回路網を用いてメモリアクセス要求を遂行することに伴う例示的なステップのフローチャートである。
【発明を実施するための形態】
【００１４】
本発明の実施形態は、静的ランダムアクセスメモリ回路網に関連する。本発明のメモリ回路網は、任意の適切な集積回路内に使用され得る。例えば、メモリ回路網は、集積回路メモリデバイス（例えば、特定用途の集積回路（ＡＳＩＣ）、プログラマブル集積回路、または他のタイプの集積回路）内において使用され得る。
【００１５】
図１は、単一ポートメモリ要素のみを用いて同期および非同期の多重ポートメモリ動作を提供するように構成された仲裁回路を有するメモリ回路網を含む集積回路１０のダイヤグラムである。デバイス１０は、少なくとも１つのメモリアレイ１４を含み得る。図１に示されるように、メモリアレイ１４は、行および列に配列されたメモリ要素（ときには、メモリセルと呼ばれる）１００を含み得る。メモリセル１００は、単一ポートメモリセルであり得る。一例として、メモリセル１００は、６つのトランジスタを有する単一ポート差動メモリセル（例えば、メモリセルに対して単一ポートとして機能する一対のアクセストランジスタを有するメモリセル）であり得る。デュアルポートメモリ機能を提供するために単一ポートメモリセルを使用することは、ダイ歩留まりを増大させることを助け、低減された最小要求電源電圧（すなわち、低減された電力消費）を提供し、集積回路の実際の所有面積を節約し得る。
【００１６】
メモリアレイ１４は、行および列の制御回路網（例えば、行および列制御回路網１２）に連結され得る。制御回路網１２は、行アドレシング回路網、列多重化回路網、書き込みドライバー回路網、読み取り感知回路網、データレジスタ回路網等を含み得る。制御回路網１２は、経路（例えば、経路１６および１８）を介してアレイ１４内のメモリセル１００に対して所望の時間変動および／または固定の信号を生成するために使用され得る。メモリ要素１００に供給される信号は、ときには、まとめて制御信号と呼ばれ得る。特定の内容において、これらの信号の一部は、電力信号、クリア信号、データ信号、アドレス信号等と呼ばれ得る。
【００１７】
電源信号は、グローバルメモリ電力ラインを介して同時にアレイ１４内のすべてのセルに配分され得る。メモリ電力ラインは、垂直に配向されることにより、各経路１８においてメモリ電力ラインのうちの１つの分岐があり得、メモリ電力は、水平に配向にされることにより、各経路１６においてメモリ電力ラインのうちの１つの分岐があり得る。一例として、正の電源電圧Ｖｃｃは、共用の水平または垂直コンダクタのパターンを用いて各セル１００に並列に供給され得る。同様に、グラウンド電圧Ｖｓｓは、共用の水平または垂直ラインのパターンを用いてセル１００に並列に供給され得る。制御ライン（例えば、アドレスラインおよびデータライン）は、一般的に互いに対して直交である（例えば、アドレスラインは、水平であるが、データラインは、垂直であり、またはその逆の場合もある）。
【００１８】
正の電源電圧Ｖｃｃは、正の電源ラインを介して提供され得る。グラウンド電圧Ｖｓｓは、グラウンド電源ラインを介して提供され得る。任意の適切な値が、正の電源電圧Ｖｃｃおよびグラウンド電圧Ｖｓｓに対して使用され得る。例えば、正の電源電圧Ｖｃｃは、１．２ボルト、１．１ボルト、１．０ボルト、０．９ボルト、０．９ボルトより低いボルト、または他の任意の適切なボルトであり得る。グラウンド電圧Ｖｓｓは、（一例として）０ボルトであり得る。典型的な配列において、電源電圧Ｖｃｃは、１．０ボルトであり得、Ｖｓｓは０ボルトであり得、アドレス信号、データ信号、およびクリア信号に対する信号レベルは、（低い場合）０ボルトから（高い場合）１．０ボルトまでの範囲を有し得る。Ｖｃｃが時間の関数として変動し、Ｖｓｓが０ボルトより低く、および制御信号がオーバードライブされる（すなわち、制御信号がＶｃｃ−Ｖｓｓより大きな信号強度を有する）配列も使用され得る。
【００１９】
概して、経路１６および１８に関連付けられた伝導ラインの適切な数が任意であり得る。例えば、アレイ１４の各々の行は、経路１６のうちのそれぞれの１つに関連付けられたアドレスラインを含み得、その一方で、アレイ１４の各々の列は、経路１８のそれぞれの関連付けられたデータライン（例えば、真および補数データライン）を含み得る。用語「行」および「列」は、メモリアレイ１４内のセル１００の特定のグループを指す１つの方法を示すに過ぎず、ときには相互交換可能に使用され得る。必要に応じて、他のパターンのラインは、経路１６および１８において使用され得る。例えば、異なる数の電源信号、アドレス信号、およびデータ信号が使用され得る。
【００２０】
アドレスライン１６のうちの１つは、メモリセル１００のうちの１つ行がアクセスされるように選択するために、アサートされたアドレス信号を供給し得る。選択されたアドレス信号以外のアドレスライン１６上のアドレス信号がデアサートのままであり得る間に、選択された行がアクセスされている。各列のデータラインは、読み取り動作の間に、正の電源電圧Ｖｃｃに事前にチャージされ得、その一方で、各列のデータラインは、書き込み動作の間に、選択されたセル１００の少なくとも一部内に所望の書き込みデータを書き込むために、適切な電圧レベルに駆動され得る。一般の動作の間に、（一例として）すべてのアドレス信号がデアサートのままであり得る間に、すべてのデータラインがＶｃｃに事前にチャージされ得る。
【００２１】
アレイ１４の単一ポートメモリセル１００は、周辺メモリ回路網の使用を介してデュアルポート機能を提供し得る。行および列制御回路網１２は、多重化回路（または多重器）２４から制御信号を受信し得る。多重化回路２４は、第１のメモリポート（ポートＡ）に関連付けられたメモリアクセス要求（例えば、データおよびアドレシング信号）を受信するように構成された第１の入力と、第２のメモリポート（ポートＢ）に関連付けられたメモリアクセス要求を受信するように構成された第２の入力と、回路網１２に連結された出力と、経路２６を介して仲裁回路２２からポート選択信号ＰＯＲＴＳＥＬを受信するように構成された制御入力とを有し得る。
【００２２】
仲裁回路２２は、ポートＡからのメモリアクセス要求、ポートＢからのメモリアクセス要求、ポートＡに関連付けられる第１のクロック信号Ａｃｌｋ、およびポートＢに関連付けられる第２のクロック信号Ｂｃｌｋを受信するように構成され得る。仲裁回路２２は、ポートＡおよびポートＢから受信されたメモリアクセス要求を処理する順序を決定するために機能し得る。メモリ回路網が、異なるクロック信号Ａｃｌｋおよび／またはＢｃｌｋを用いて各々が制御である少なくとも２つのポートからの読み取りおよび書き込み要求を扱うことが可能である（例えば、仲裁回路２２が、真デュアルポート動作をエミュレートすることが可能であり得る）ので、メモリ回路網は、ＡｃｌｋおよびＢｃｌｋの参照ポイントからのデュアルポートメモリとして機能するようにみえる。
【００２３】
仲裁回路２２は、（一例として）多重器２４を用いてポートＡから行および列制御回路網１２へデータおよびアドレシング信号を選択的にルーティングさせるために、ＰＯＲＴＳＥＬを低に駆動し得、多重器２４を用いてポートＢから行および列制御回路網１２へデータおよびアドレシング信号を選択的にルーティングさせるために、ＰＯＲＴＳＥＬを高に駆動し得る。仲裁回路２２が要求を実行することを決定する場合に、仲裁回路２２は、経路３４を介して提供される信号ＳＴＡＲＴを一時的にアサートすることにより、所望の読み取り／書き込み動作ができるように制御回路２０を指示する。仲裁回路２２からアサートされたＳＴＡＲＴを受信することに応答して、制御回路２０は、（例えば、経路３６を介して制御回路２０からの読み取り／書き込みイネーブル信号を回路網１２に提供することによって）、書き込み動作の間にアサートされた書き込みドライバーイネーブル信号を回路網１２に提供し得、読み取り動作の間にアサートされた感知増幅器イネーブル信号を提供し得る。
【００２４】
読み取り動作中、回路網１２の感知増幅器回路を用いて生成された読み取り信号は、出力ラッチ２８および３０に供給され得る。出力ラッチ２８は、回路２０から経路３２を介して提供されたポートＡ出力信号Ａｏｕｔｃｌｋを用いて制御され得、その一方で、出力ラッチ３０は、回路２０から経路３３を介して提供されたポートＢ出力信号Ｂｏｕｔｃｌｋを用いて制御され得る。第１のメモリポートに関連付けられたラッチされた出力データ信号（例えば、データ信号Ａｏｕｔ）と、第２のメモリポートに関連付けられたラッチされた出力データ信号（例えば、データ信号Ｂｏｕｔ）とは、さらなる処理のために、デバイス１０上の他のデジタルまたは論理回路網に提供され得る。
【００２５】
現在のメモリ要求が遂行された場合（すなわち、所望のメモリ位置においてメモリアレイ１４内の読み取り／書き込み動作を完了した際）、仲裁回路２２は、制御回路２０からアサートされた信号ＤＯＮＥを受信され得る。アサートＤＯＮＥを検出することに応答して、仲裁回路２２は、連続する未処理メモリアクセス要求を処理するように進め得る。
【００２６】
仲裁回路２２は、同期モードおよび非同期モードで動作可能であり得る。同期モードにおいて、複数のポートからの要求は、共用のクロック供給源を用いて制御され得る。結果として、複数のポートからのメモリアクセス要求は、同時に共用のクロック信号の立ち上りエッジに到達し得る。同期モードにおいて、仲裁回路２２は、例えば、複数のポートのうちのいずれが選択されるかを決定し得る。
【００２７】
２つのポートのうちの１つのみにおいて未処理の要求があるシナリオにおいて、未処理の要求に関連付けられたポートは、処理のために選択され得る。１つのポートが書き込み要求を受信し、かつもう１つのポートが読み取り要求を受信するシナリオにおいて、読み取り要求を受信するポートが、処理のために選択され得る（すなわち、仲裁回路２２は、読み取りポートを優先して実装するように構成され得る）。必要に応じて、仲裁回路２２はまた、書き込みポートを優先して実装するように構成され得る（すなわち、書き込み要求を受信するポートが、処理のために選択され得る）。両方のポートが書き込み要求を受信し、または両方のポートが読み取り要求受信するシナリオにおいて、第２のポートが優先度を与えられ得る（すなわち、ポートＢでの要求が、ポートＡでの要求の前に処理される）。必要に応じて、両方のポートが同じタイプのメモリ要求を受信した場合に、仲裁回路２２はまた、ポートＡを優先して実装するように構成され得る（すなわち、ポートＡおよびＢの両方が読み取り要求を受信し、またはポートＡおよびＢの両方が書き込み要求を受信する場合に、ポートＡでの要求が、ポートＢでの要求の前に処理される）。
【００２８】
図１に関連して説明されたメモリ構造は、単なる例示に過ぎず、本発明の範囲を限定するものではない。必要に応じて、仲裁回路２２は、３ポートメモリモード、４ポートメモリモード等をサポートするために、任意の所望の数のポートからのメモリ要求を扱うように構成され得る。
【００２９】
別の適切な配列において、仲裁回路２２は、非同期モード（例えば、複数のポートからの要求が異なる位相および／または周波数のクロックを用いて制御されるモード）で動作するように構成され得る。非同期デュアルポート動作において、異なるメモリポートからの要求は、しばしば、異なる時間に到達し得る。結果として、仲裁回路２２は、第１の到達するメモリ要求が回路２２によって受信されるとすぐに処理されることと、第１の到達メモリ要求が遂行されたときに第２の（後に）到達するメモリ要求が処理されることとを行うように構成され得る。
【００３０】
図２および図３は、図１に関連して説明されたタイプのメモリ回路網の非同期モード動作を例示するタイミングダイヤグラムである。図２は、ポートＡメモリアクセス要求およびポートＢメモリアクセス要求が異なる時間で受信されるシナリオを例示する。時間ｔ１において、仲裁回路２２は、ポートＡから（Ａｃｌｋの立ち上りクロックエッジによってトリガーされた）第１のメモリアクセス要求を受信し得る。この例において、仲裁回路２２は、現在どんなメモリアクセス要求も扱っていないので、仲裁回路２２は、すぐに第１のメモリアクセス要求を遂行するように進める（例えば、信号ＰＯＲＴＳＥＬは、第１のメモリアクセス要求に関連付けられたデータおよびアドレシング信号を行および列制御回路網１２に渡すために、低に駆動される）。
【００３１】
時間ｔ２において、仲裁回路２２は、ポートＢから（Ｂｃｌｋの立ち上りクロックエッジによってトリガーされた）第２のメモリアクセス要求を受信し得る。仲裁回路２２は、第１のメモリアクセス要求が遂行されるまで第２のメモリアクセス要求を保留する。
【００３２】
時間ｔ３において、信号ＤＯＮＥは、第１のメモリアクセス要求が完了したことを示すようにパルスの高レベルにする。メモリアクセス要求を実行するのにかかる時間の量（例えば、Ａｃｌｋの立ち上りクロックエッジからＤＯＮＥの立ち上りエッジまでの期間）は、ときには、アクセス時間またはクロック−出力時間Ｔｃｏと呼ばれ得る。読み取り動作に関連付けられたＴｃｏが書き込み動作に関連付けられたＴｃｏより長い場合に、メモリ回路の性能は、読み取り動作に対するアクセス時間Ｔｃｏに依存し得る。この時間（すなわち、時間ｔ３）において、仲裁回路２２は、第２のメモリアクセス要求に関連付けられたデータおよびアドレシング信号を制御回路網１２に渡すためのＰＯＲＴＳＥＬを上げることによって、かつ回路網１２において所望の読み取り／書き込み回路網をイネーブルするように制御回路２０を指示することによって第２のメモリアクセス要求を処理するように進め得る。
【００３３】
時間ｔ４において、信号ＤＯＮＥは、第２のメモリアクセス要求が完了したことを示すようにパルスの高レベルにする。第２のメモリアクセス要求を実行するのにかかる時間の量（例えば、ＤＯＮＥの前の立ち上りクロックエッジからＤＯＮＥの現在の立ち上りエッジまでの期間）は、アクセス時間Ｔｃｏと等しい場合がある。従って、（ＡｃｌｋおよびＢｃｌｋの立ち上りエッジが互いに対してオフセットされることを仮定して）２つの連続したメモリアクセス要求を実行するときの全待ち時間は、２×Ｔｃｏと等しい場合がある。
【００３４】
図３は、第１のメモリアクセス要求（例えば、ポートＡメモリアクセス要求）および第２のメモリアクセス要求（例えば、ポートＢメモリアクセス要求）が同じ時間で受信される（ＡｃｌｋおよびＢｃｌｋが同時に高である）シナリオを例示する。時間ｔ１において、仲裁回路２２は、並列に、ポートＡから第１のメモリアクセス要求を受信し、ポートＢから第２のメモリアクセス要求を受信し得る。仲裁回路２２が同じ時間において両方の要求を受信する場合、仲裁回路２２は、準安定性を解決ための（すなわち、第１のおよび第２のメモリアクセス要求うちのいずれが先に処理されるべきであるかを決定するための）期間Ｔｍｅｔを必要とし得る。
【００３５】
時間ｔ２（例えば、ｔ１の後の期間Ｔｍｅｔ）において、（一例として）、仲裁回路２２は、ＰＯＲＴＳＥＬを低に駆動することによって第１のメモリアクセス要求を遂行することを決定し得る。時間ｔ２において仲裁回路２２が処理のために第２のメモリアクセス要求を選ぶことも可能である。時間ｔ３において、信号ＤＯＮＥは、第１のメモリアクセス要求の完了を示すためにパルスの高レベルにされ得る。この時間において、第２のメモリアクセス要求が遂行され得る（例えば、ＰＯＲＴＳＥＬが高に駆動され得る）。時間ｔ４において、信号ＤＯＮＥは、第２のメモリアクセス要求の完了を示すために再びパルスの高レベルにされ得る。従って、（ＡｃｌｋおよびＢｃｌｋの立ち上りエッジが整列される場合に）２つの同時に到達するメモリアクセス要求を実行するための全待ち時間は、Ｔｍｅｔと２×Ｔｃｏとの合計と等しい場合がある。図３の例は、単なる例示に過ぎず、本発明の範囲を限定するように機能しない。
【００３６】
本発明の１つの適切な配列において、デバイス１０は、メモリアクセスが異なるメモリポートのうちの選択された１つ（ときには、「同期」ポートと呼ばれる）に関連付けられるクロック信号に同期される半同期アプローチを用いて多重ポート機能を提供し得る。従って、このクロック信号は、本明細書において同期ポートクロックまたは同期クロック信号と呼ばれ得る。行および列制御（またはメモリアレイ制御）回路網１２は、同期ポートクロックに同期的に関連する内部メモリクロック信号を用いて制御され得る（例えば、内部メモリクロック信号は、同期ポートに関連付けられるクロック信号によってトリガーされ得る）。
【００３７】
メモリアクセスを複数のメモリポートのうちの１つのみに同期させることは、同期ポート上の準安定性解決に対して要求される時間を効率的に排除する。同期ポートは、このポートにおいて受信されたメモリアクセス要求が多くても１つのＴｃｏの最小待ち時間を示すように、優先度を与えられる。もう１つのポート（ときには、「非同期」ポートと呼ばれる）において受信されたメモリアクセス要求は、内部メモリクロック信号に同期される。非同期ポート上のメモリアクセスは、依然準安定性解決のための遅延を受け得るが、これは、同期ポート上のアクセスと同時に発生する。この方法でメモリアクセス要求を処理することは、半同期時間分割多重化された（ＴＤＭ）多重ポートメモリ制御と呼ばれ得る。
【００３８】
デュアルポートメモリが専用の読み取りポートと専用の書き込みポートとを有するシナリオを考える。読み取りアクセスがより高い優先度を与えられる場合、読み取りポートは、同期ポートとして構成され、その一方で、書き込みポートは、非同期ポートとして構成され得る。書き込みアクセスがより高い優先度を与えられる場合、書き込みポートは、同期ポートとして構成され、その一方で、読み取りポートは、非同期ポートとして構成され得る。
【００３９】
デュアルポートメモリが、第１のクロック信号を用いて制御された第１のポートと、第２のクロック信号を用いて制御された第２のポートとを有し、第２のクロック信号が第１のクロック信号の周波数より高い周波数を示す別のシナリオを考える。このシナリオにおいて、より臨界クロックドメインに関連付けられたポートは、同期ポートとして構成され得る。例えば、より早いクロック信号に関連付けられたポートは、同期ポートとして構成され得る（例えば、内部メモリクロックは、第２のクロック信号に同期され得る）。必要に応じて、より遅いクロックドメインに関連付けられたポートは、代わりに同期ポートとして構成され得る（例えば、内部メモリはまた、第１のクロック信号に同期され得る）。
【００４０】
概して、内部メモリクロック信号は、異なるポートクロックのうちの任意の１つによってトリガーされ得る。内部メモリクロックがトリガーされる場合、同期ポート上のメモリアクセスはすぐに開始され得る。同期ポートのメモリアクセスが遂行されている間に、非同期ポートからのメモリアクセスは、内部メモリクロックを用いて再同期され得る。メモリアクセス要求が同期ポートにおいて受信される場合、同期ポートアクセスがすぐに開始されるので、非同期ポートの準安定性解決は、同期ポートのアクセスと同時に発生し、それによってＴｍｅｔを減少させる。結果として、同期ポートアクセスは、Ｔｃｏの待ち時間を体験し得、その一方で、非同期ポートアクセスは、同期ポートの最大１つのクロックサイクル、並びに非同期ポートによって事前に受信された、および同時に受信される他の待機された（未処理の）アクセスの待ち時間を体験し得る。
【００４１】
図４は、半同期デュアルポートメモリの例示的な実装のダイヤグラムである。図４の例において、ポートＢは、同期ポートとして構成され得、その一方で、ポートＡは、非同期ポートとして構成され得る。ポートＡに到達するデータおよびアドレス信号は、（非同期クロックと呼ばれた）Ａｃｌｋを用いて制御され得、その一方で、ポートＢに到達するデータおよびアドレス信号は、（同期クロックと呼ばれた）Ｂｃｌｋを用いて制御され得る。信号ＡｃｌｋおよびＢｃｌｋは、異なるクロック周波数／位相を有し得る。
【００４２】
図４に示されるように、同期ポート（すなわち、ポートＢ）からの信号は、ラッチ１０４を用いて受信され得る。ラッチ１０４は、Ｂｃｌｋを受信するように構成されたクロック制御入力と、多重化回路１０２の第１の入力に連結される出力とを有し得る。同期クロックＢｃｌｋは、制御回路１０１に供給され得る。制御回路１０１は、内部メモリクロック信号を生成するために使用され得、入ってくるメモリアクセス要求を遂行する順序を決定するように動作可能なシーケンス回路として機能し得る。特に、制御回路は、経路１０８を介して内部メモリクロックＭｃｌｋを、経路１２４を介して同期化クロックＡｒｃｌｋを、経路１０９を介してポートＡ出力クロックＡｏｕｔｃｌｋを、経路１１１を介して出力制御クロックＢｏｕｔｃｌｋを、および経路１１３を介して多重器制御信号ＰＯＲＴＳＥＬを生成するために使用され得る。
【００４３】
非同期ポート（すなわち、ポートＡ）からの信号は、ラッチ１１２を用いて受信され得る。ラッチ１１２は、Ａｃｌｋを受信するように構成されたクロック制御入力と、非同期ファーストインファーストアウト（ＦＩＦＯ）回路１１４に連結される出力とを有し得る。ＦＩＦＯ１１４は、ときには、バッファー回路と呼ばれ得る。非同期ＦＩＦＯ１１４は、ポートＢからの要求が処理されている間に、ポートＡ上の入ってくる要求をバッファーするために使用され得る。ＦＩＦＯ１１４は、準安定性同期器（例えば、要求同期器１１６）に連結された出力を有し得る。特に、ＦＩＦＯ１１４は、現在の未処理の要求に関連付けられたデータおよびアドレス信号が提供される第１の出力と、信号Ａａｓｙｎｃが提供される第２の出力とを有し得る。
【００４４】
要求同期器１１６は、正エッジトリガー型ラッチ１１８と、負エッジトリガー型ラッチ１２０とを含み得る。正エッジトリガー型ラッチ１１８は、ＦＩＦＯ１１４の第２の出力から信号Ａａｓｙｎｃを受信する入力と、経路１２４に連結された制御入力と、信号Ａｒｅｑが提供される出力とを有し得る。負エッジトリガー型ラッチ１２０は、ＦＩＦＯ１１４の第１の出力から現在未処理の要求に関連付けられたデータおよびアドレス信号を受信する第１の入力と、ラッチ１１８の出力から信号Ａｒｅｑを受信する第２の入力と、経路１２４に連結された制御入力と、多重器１０２の第２の入力に連結される第１の出力と、信号Ａｒｅｑｓｙｎが提供される第２の出力とを有し得る。信号Ａｒｅｑｓｙｎは、経路１２２を介して制御回路１０１に供給され得る。多重器１０２は、ポートＡおよびＢのうちの１つからのメモリアクセス要求信号をその出力へ選択的にルーティングさせるために、制御回路１０１から生成された信号ＰＯＲＴＳＥＬを用いて制御され得る。
【００４５】
メモリ行および列制御回路網（ときには、メモリアレイ制御回路網と呼ばれる）１２は、多重器１０２の出力からデータおよびアドレシング信号を受信し得る。回路網１２は、制御回路１０１から経路１０８を介して運搬された内部メモリクロックＭｃｌｋを用いて制御され得る。回路網１２はまた、現在サービスを提供されているメモリアクセス要求の完了を示すために、経路１１０を介して制御回路１０１に対して信号ＤＯＮＥを生成し得る。制御回路１０１を用いて生成された信号Ａｒｃｌｋは、経路１２４を介してラッチ１１８および１２０の制御入力に供給され得る。ＦＩＦＯ１１４はまた、ラッチ１１８出力からフィードバックされる信号Ａｒｅｑと、信号Ａｒｃｌｋを受信するように構成され得る。
【００４６】
読み取り動作の間にメモリアレイ１４から読み取られたデータ信号は、ポートＢ出力ラッチ１３０とポートＡ出力ラッチ１３２とに供給され得る。ポートＡ出力ラッチ１３２は、Ａｏｕｔｃｌｋを用いて制御され得、その一方で、ポートＢ出力ラッチ１３０は、Ｂｏｕｔｃｌｋを用いて制御され得る。信号ＡｏｕｔｃｌｋおよびＢｏｕｔｃｌｋは、制御回路１０１を用いて生成され得る。ポートＢ出力ラッチ１３０は、ポートＢ出力信号Ｂｏｕｔが提供される出力を有し得る。ポートＡ出力ラッチ１３２は、出力非同期ＦＩＦＯ１３４に連結された出力を有し得る。入力ＦＩＦＯ１１４に類似して、出力非同期ＦＩＦＯ１３４は、ポートＡ出力データ信号をバッファーするように機能し得る。次に、ポートＡ出力データ信号は、正エッジトリガー型ラッチ１３６および負エッジトリガー型ラッチ１３８を通過され得る。ＦＩＦＯ１３４、並びにラッチ１３６および１３８は、信号Ａｃｌｋを用いてクロックされ得る。ラッチ１３８は、ポートＡ出力信号Ａｏｕｔが提供される第１の出力と、ポートＡ出力確認信号Ａｃｋが提供される第２の出力とを有し得る。信号Ａｃｋは、経路１４０を介して非同期ＦＩＦＯ１３４にフィードバックされ得る。ＦＩＦＯ１３４において受信されるアサートされたＡｃｋは、データのワードが出力においてうまくラッチされたことを示し得、その内容をシフトするようにＦＩＦＯ１３４を指示し得る。
【００４７】
図５は、メモリアレイ１４内に形成され得る例示的な単一ポートメモリセル１００の回路ダイヤグラムである。図５に示されるように、セル１００は、少なくとも１対の交差連結されたインバータ１４２および１４４を含み得、インバータ１４２および１４４は、各々、入力および出力を有する。インバータ１４２の入力は、インバータ１４４の出力に連結され得、その一方で、インバータ１４４の入力は、インバータ１４２の出力に連結され得る。インバータ１４４の出力は、セル１００に対して第１の内部データストレージノードとして機能し得、その一方で、インバータ１４２の出力は、セル１００に対して第２の内部データストレージノードとして機能し得る。この方法で交差連結されたインバータ１４２および１４４は、単一ビットのデータを格納するように機能し得（例えば、データビットの真バージョンが第１のデータストレージノード上に格納され得、その一方で、データビットの逆バージョンが第２のデータストレージノード上に格納され得る）、ときには、双安定要素と呼ばれ得る。
【００４８】
第１のアクセストランジスタ１４６は、第１のデータストレージノードと第１のデータライン１８−１との間に連結され得る。第２のアクセストランジスタ１４８は、第２のデータストレージノードと第２のデータライン１８−２との間に連結され得る。データライン１８−１および１８−２は、ときには、真および補数ビットライン対と呼ばれ得る。データライン１８−１および１８−２は、書き込み動作の間にデータをセル１００内に書き込むために適切な値に駆動され得、読み取り動作の間に電源電圧レベルに事前にチャージされ得る。
【００４９】
アクセストランジスタ１４６および１４８（ときには、アドレストランジスタと呼ばれる）は、ワードライン１６を介して提供されるワードライン信号ＷＬによって制御され得る。信号ＷＬは、アクセスされるべきアレイ１４内のメモリセル１００のうちの１行を選択するようにアサートされ得る。残りの未選択の行の信号ＷＬは、デアサートのままであり得る。図５の単一ポートメモリセルは、単なる例示に過ぎず、本発明の範囲を限定するものではない。必要に応じて、メモリセル１００は、３つ以上の交差連結された反転回路を含み得、読み取りバッファー回路を含み得、単一端部構造等を有し得る。
【００５０】
図４に関連して説明されたＴＤＭメモリ回路網の動作は、以下のようであり得る。一連のメモリアクセス要求は、同期ポートクロック（すなわち、ポートＢ）において立ち上りクロックエッジを検出することに応答してトリガーされ得る。内部メモリクロックＭｃｌｋは、同期クロックＢｃｌｋの立ち上りエッジでアサートするようにトリガーされ得、ＤＯＮＥの立ち上りエッジでネゲートする（すなわち、デアサートする）ようにトリガーされ得る。必要に応じて、Ｍｃｌｋは、ＤＯＮＥの立ち下りエッジでネゲートするようにトリガーされ得る。
【００５１】
立ち上りＭｃｌｋエッジを検出することに応答して、ポートＢアクセスがすぐに実行されることにより、ポートＢアクセス時間は、真デュアルポートメモリと同じぐらい速い（すなわち、デュアルポートメモリセルを用いて実装されたデュアルポートメモリが８個のメモリセルトランジスタを有する）。ＤＯＮＥがアサートされる場合に、Ｂｏｕｔｃｌｋは、出力データ信号Ｂｏｕｔをラッチするためにパルスの高レベルにされ得る。
【００５２】
前述のように、ポートＡ入力非同期ＦＩＦＯ１１４は、入ってくるポートＡメモリアクセス要求をバッファーするために使用され得る。信号Ａｒｃｌｋは、ポートＡメモリアクセス要求を同期させるために使用され得る。Ｍｃｌｋをトリガーすることに加えて、立ち上りＢｃｌｋエッジは、所定の期間に対してパルスの高レベルにされているように信号Ａｒｃｌｋをトリガーし得る。信号Ａａｓｙｎｃは、概して、ＦＩＦＯ１１４が少なくとも１つの未処理のポートＡ要求を含む場合にアサートされ得る。ポートＢ要求が立ち上りＢｃｌｋエッジの直後に処理されている間に、Ａａｓｙｎｃは、ラッチ１１８を用いてＡｒｅｑを生成するために、Ａｒｃｌｋの第１の半サイクルの間にサンプリングされ（例えば、ＡａｓｙｎｃがＡｒｃｌｋの正のクロックエッジでサンプリングされる）、その一方で、Ａｒｅｑは、ラッチ１２０を用いてＡｒｅｑｓｙｎを生成するために、Ａｒｃｌｋの第２の半サイクルの間にサンプリングされる（例えば、Ａｒｅｑｓｙｎが、Ａｒｃｌｋの負のクロックエッジでサンプリングされる）。次に、同期されたポートＡ要求信号Ａｒｅｑｓｙｎは、ポートＡ要求が現在のＢｃｌｋサイクルの間に依然遂行されていないことを示すために、制御回路１０１に供給され得る。この方法で未処理のポートＡ要求をサンプリングし、かつ再サンプリングすることは、ポートＡ要求を内部メモリクロックＭｃｌｋに同期させるように機能し得る。
【００５３】
信号ＡｒｅｑおよびＡｒｃｌｋは、確認の形として非同期ＦＩＦＯ１１４にフィードバックされ得る。ＦＩＦＯ１１４が、Ａｃｌｋにおいて負のエッジを検出し、かつ信号Ａｒｅｑがアサートされる場合に、Ａａｓｙｎｃは、未処理の要求がサンプリングされたことを示す（例えば、ＦＩＦＯ１１４からその未処理の要求を削除する）ようにネゲートされ得る。その後に、非同期ＦＩＦＯ１１４は、その内容をシフトし得、ＦＩＦＯ１１４が、サービスを提供される必要がある追加の未処理の要求を含む場合に、Ａａｓｙｎｃは、非同期的にアサートされる。
【００５４】
図６は、同期ポートクロックが非同期ポートクロックより早い場合（例えば、Ｂｃｌｋが、Ａｃｌｋの周波数より高い周波数を有する場合）の半同期ＴＤＭメモリ回路網の動作を例示するタイミングダイヤグラムである。図６の例は、非同期ＦＩＦＯ１１４が、時間ｔ１の前に未処理の要求を含まないと仮定する。信号ＰＯＲＴＳＥＬは、処理のためにポートＢ要求を選択するデフォルトによって高であり得る。時間ｔ１において、信号Ａｃｌｋは、高をクロックし得、ポートＡ要求は、ＦＩＦＯ１１４に進入し得る。新しいポートＡ要求のこの追加は、ｔ１のしばらく後に（例えば、時間ｔ２において）、信号Ａａｓｙｎｃが非同期的にアサートされるようにし得る。
【００５５】
時間ｔ３において、信号Ｂｃｌｋは、高をクロックし得、Ｂポート要求は、ラッチ１０４の出力において存在し得る（例えば、図４を参照）。Ｂｃｌｋのこの立ち上りエッジは、Ｍｃｌｋがアサートされるようにトリガーし得、ＡｒｃｌｋがＰＷの所定のパルス幅に対してパルスの高レベルにされているようにトリガーし得る。Ａｒｅｑが、Ａａｓｙｎｃと同じ値を有する（例えば、Ａａｓｙｎｃが時間ｔ３において高であるので、Ａｒｃｌｋの立ち上りエッジは、Ａｒｅｑに高に立ち上らせる）ように、Ａｒｃｌｋの立ち上りクロックエッジは、ラッチ１１８にＡａｓｙｎｃをサンプリングさせ得る。
【００５６】
時間ｔ４において、Ａｒｃｌｋがデアサートされ得る。Ａｒｃｌｋの立ち下りクロックエッジは、Ａａｓｙｎｃにネゲートさせられ得（Ａｒｅｑが高である場合のみ）、Ａｒｅｑｓｙｎが、Ａｒｅｑと同じ値を有するように、ラッチ１２０にＡｒｅｑをサンプリングさせ得る。この時間において、時間ｔ１において到達したポートＡ要求が、要求同期器１１６によって既にラッチされたので、ポートＡ要求は、ＦＩＦＯ１１４から削除され得る。この例において、Ａｒｅｑが時間ｔ４において高であるので、Ａｒｃｋの立ち下りエッジは、Ａｒｅｑｓｙｎに高に立ち上らせる。ポートＡからの追加のメモリアクセス要求がないので、信号Ａａｓｙｎｃは、ネゲートされたままであり得る。
【００５７】
時間ｔ５において、ポートＢメモリアクセス要求が遂行され、信号ＤＯＮＥがパルスの高レベルにされ、それによってＭｃｌｋがデアサートされ、Ｂｏｕｔｃｌｋがパルスの高レベルにされるようにする。ポートＢメモリアクセスの完了に応答して、信号Ｂｏｕｔｃｌｋが、パルスの高レベルにされるのみであり得る。ポートＢメモリアクセス要求の開始から対応する信号ＤＯＮＥがアサートされているまでの時間は、アクセス時間Ｔｃｏと等しい場合がある。（アサートされたＡｒｅｑｓｙｎによって示されるように）未処理のポートＡメモリ要求があるので、制御回路１０１は、ポートＡメモリ要求がサービスを提供され得るように、一時的にＰＯＲＴＳＥＬを反転し得る。
【００５８】
時間ｔ６において、ＤＯＮＥがデアサートされ得る。ＤＯＮＥが低である場合に、後のポートＡメモリアクセスがサービスを提供され得る。未処理のポートＡメモリ要求が存在するので、ポートＡメモリアクセスの開始を表すために、Ｍｃｌｋが高に立ち上げられ得、Ａｒｃｌｋがパルスの高レベルにされ得る。時間ｔ６において、（低Ａａｓｙｎｃによって示されるように）新しく到達するポートＡ要求がないので、Ａｒｅｑは、低に立ち下り得る。
【００５９】
時間ｔ７において、Ａｒｃｌｋがデアサートされ得る。Ａｒｃｌｋの立ち下りクロックエッジがＡｒｅｑをサンプリングし得、それによって、Ａｒｅｑが時間ｔ７において低であるので、Ａｒｅｑｓｙｎに低に立ち下らせる。低Ａｒｅｑｓｙｎは、未処理のポートＡメモリアクセス要求がないことを示し得る。時間ｔ８において、信号ＤＯＮＥは、パルスの高レベルにされ、Ｍｃｌｋがデアサートされ、Ａｏｕｔｃｌｋがパルスの高レベルにされるようにする。ポートＡメモリアクセスの完了に応答して、信号Ａｏｕｔｃｌｋが、パルスの高レベルにされるのみであり得る。この時間において、サービスを提供されるべきポートＡまたはポートＢからのさらなるメモリアクセス要求がない。時間ｔ９において、Ｂｃｌｋは、高をクロックし得、第２のポートＢメモリアクセス要求がサービスを提供され得る。時間ｔ１０において、Ｂｃｌｋは、高をクロックし得、第３のポートＢメモリアクセス要求がサービスを提供され得る。
【００６０】
ＢｃｌｋがＡｃｌｋより早いこのシナリオにおいて、ポートＡアクセスの待ち時間は、多くても１つのポートＢサイクル分のみ増加され、これは、真デュアルポートエミュレーションにおいて許容可能であり得る。ＢｃｌｋがＡｃｌｋよりさらに早い場合（例えば、Ｂｃｌｋが、Ａｃｌｋより少なくとも３倍、少なくとも５倍、または少なくとも１０倍早い場合）、ポートＡアクセスは、Ａｃｌｋの小数の範囲内に完了されると保証され得る。
【００６１】
図７は、非同期ポートクロックが同期ポートクロックより早い場合（例えば、Ｂｃｌｋは、Ａｃｌｋの周波数より低い周波数を有する場合）、半同期ＴＤＭメモリ回路網の動作を例示するタイミングダイヤグラムである。図７の例は、非同期ＦＩＦＯ１１４が、（時間ｔ１の前にアサートされたＡａｓｙｎｃによって示されるように）時間ｔ１の前に少なくとも１つの未処理の要求を含むと仮定する。信号ＰＯＲＴＳＥＬは、処理のためにポートＢ要求を選択するデフォルトによって高であり得る。
【００６２】
時間ｔ１において、信号ＡｃｌｋおよびＢｃｌｋは、同時に高をクロックし得る（例えば、新しいポートＡメモリアクセス要求および新しいポートＢメモリアクセス要求は、並列に到達し得る）。（Ａａｓｙｎｃが時間ｔ１において高であるので）立ち上りＢｃｌｋは、ＡｒｃｌｋおよびＭｃｌｋが高をクロックし、Ａｒｅｑが立ち上るようにトリガーする。同期ポートアクセス（すなわち、ポートＢメモリアクセス）は、すぐに開始され得る。時間ｔ２において、Ａｒｃｌｋは、低をクロックし得、Ａａｓｙｎｃにネゲートさせ（例えば、時間ｔ１の前にＦＩＦＯ１１４内に格納された未処理のメモリアクセス要求が既に要求同調器１１６によってラッチされたので、未処理のメモリアクセス要求がＦＩＦＯ１１４から削除され得る）、（Ａｒｅｑが時間ｔ２において高であるので）Ａｒｅｑｓｙｎに高に立ち上らせる。時間ｔ３において、信号ＤＯＮＥは、ポートＢメモリアクセスの完了を示すために一時的にアサートされ得、それによってＭｃｌｋが低をクロックするようにトリガーする。この時間において、高Ａｒｅｑｓｙｎによって示されるように、サービスを提供される必要がある少なくとも１つの未処理のポートＡ要求（すなわち、現在に同調器１１６内に格納されているサービスを提供されていないポートＡ要求）があるので、ＰＯＲＴＳＥＬは、サービスを提供するために、ポートＡを選択するように低に駆動され得る。時間ｔ３の直後、ＦＩＦＯ１１４が、依然、時間ｔ１において到達した待機のポートＢメモリアクセスを含むので、信号Ａａｓｙｎｃがアサートされ得る。
【００６３】
時間ｔ４において、ＤＯＮＥは、デアサートされ得、時間ｔ１の前にＦＩＦＯ１１４内に格納された未処理のポートＢメモリアクセスがサービスを提供され得る。この時間において、制御回路１０１は、ＡｒｃｌｋおよびＭｃｌｋを高に駆動し得る。信号Ａａｓｙｎｃがラッチ１１８の間にサンプリングされ得るが、Ａａｓｙｎｃが時間ｔ４において高であるので、Ａｒｅｑは、高のままであり得る。時間ｔ５において、Ａｒｃｌｋは、低をクロックし得、Ａａｓｙｎｃにネゲートさせる（例えば、時間ｔ１において到達した未処理のメモリアクセス要求が要求同調器１１６によってラッチされたので、未処理のメモリアクセス要求が削除され得る）。信号Ａｒｅｑは、ラッチ１２０を用いてサンプリングされ得るが、Ａｒｅｑが時間ｔ５において高であるので、Ａｒｅｑｓｙｎは高のままである。時間ｔ６において、信号ＤＯＮＥは、待機のポートＡメモリアクセスの完了を示すために一時的にアサートされ得、それによってＭｃｌｋが低をクロックするようにトリガーする。依然サービスを提供されるポートＡメモリアクセス要求があるので、信号ＰＯＲＴＳＥＬは低のままであり得る。時間ｔ６の周辺において、Ａｃｌｋは、高をクロックし得、第１の追加のポートＡメモリアクセス要求は、ＦＩＦＯ１１４に進入し得る。時間ｔ６の直後に、ＦＩＦＯ１１４が、依然、時間ｔ６において到達した第１の追加のポートＡメモリアクセスを含むので、信号Ａａｓｙｎｃがアサートされ得る。
【００６４】
時間ｔ７において、ＤＯＮＥがデアサートされ得、時間ｔ１において到達した（かつ現在同期器１１６内に格納されている）未処理のポートＡメモリアクセスがサービスを提供され得る。この時間において、制御回路１０１は、ＡｒｃｌｋおよびＭｃｌｋを高に駆動し得る。信号Ａａｓｙｎｃは、ラッチ１１８を用いてサンプリングされ得、Ａａｓｙｎｃが時間ｔ７において高であるので、Ａｒｅｑは高のままである。時間ｔ８において、Ａｒｃｌｋは、低をクロックし得、Ａａｓｙｎｃにネゲートさせる（例えば、時間ｔ６において到達した第１の追加のポートＡメモリアクセス要求が削除され得る。信号Ａｒｅｑは、ラッチ２２０を用いてサンプリングされ得、Ａｒｅｑが時間ｔ８において高であるので、Ａｒｅｑｓｙｎは高のままである。時間ｔ９において、信号ＤＯＮＥは、現在のポートＡメモリアクセスの完了を示すために一時的にアサートされ得、それによってＭｃｌｋが低をクロックするようにトリガーする。依然サービスを提供される第１の追加のポートＡメモリアクセス要求があるので、信号ＰＯＲＴＳＥＬは低のままであり得る。この時間においてＦＩＦＯ１１４内に追加の待機の要求がないので、信号Ａａｓｙｎｃは、ネゲートされたままであり得る。
【００６５】
時間ｔ１０において、ＤＯＮＥがデアサートされ得、時間ｔ６において第１の追加のポートＡメモリアクセス要求がサービスを提供され得る。この時間において、制御回路１０１は、ＡｒｃｌｋおよびＭｃｌｋを高に駆動し得る。信号Ａａｓｙｎｃは、ラッチ１１８を用いてサンプリングされ得、Ａａｓｙｎｃが時間ｔ１０において低であるので、Ａｒｅｑに低に立ち下らせる。時間ｔ１１において、Ａｃｌｋは、高をクロックし得、第２の追加のポートＡメモリアクセス要求は、ＦＩＦＯ１１４に進入し得、Ａａｓｙｎｃに高に立ち上らせる。時間ｔ１２において、Ａｒｃｌｋは低をクロックし得る。Ａｒｅｑが低であるので、ＦＩＦＯ１１４から削除される必要がある要求がない（例えば、ＦＩＦＯ１１４は、Ａｒｅｑが高である場合およびその場合のみ、Ａｒｃｌｋの立ち下りクロックエッジにおいて要求を削除するように構成されるのみであり得る）。信号Ａｒｅｑは、ラッチ１２０を用いてサンプリングされ得、Ａｒｅｑが時間ｔ１２において高であるので、Ａｒｅｑｓｙｎに低に立ち下らせる。時間ｔ１３において、信号ＤＯＮＥは、第１の追加のポートＡメモリアクセスの完了を示すために一時的にアサートされ得、それによって、Ｍｃｌｋが低をクロックするようにトリガーする。Ａｒｅｑが低である場合、信号ＰＯＲＴＳＥＬは、高に戻るように駆動され得る。現在のＢｃｌｋサイクルの残りに対してサービスを提供される追加のポートＡ要求がないので、信号Ａａｓｙｎｃは、高のままである。時間ｔ１４において、新しいポートＡメモリ要求は、少なくともＢｃｌｋの立ち上りエッジまで到達し、そしてＦＩＦＯ１１４内に格納され得る。
【００６６】
ＡｃｌｋがＢｃｌｋより早いこのシナリオにおいて、ＦＩＦＯ１１４の深さは、ポートＢクロックサイクルにおいて発生し得るポートＡ要求の数を収容するのに十分に深いように構成され得る。必要に応じて、図１に関連して説明された非同期仲裁多重ポートエミュレーションアプローチは、ＡｃｌｋがＢｃｌｋより早い場合に使用され得る。
【００６７】
図８は、図４において示されるタイプの半同期ＴＤＭ多重ポートメモリ回路網を用いてメモリアクセス要求を遂行することに伴う例示的なステップのフローチャートである。ステップ３００において、制御回路１０１は、Ｂｃｌｋ立ち上りエッジを待ち得る。信号ＰＯＲＴＳＥＬは、そのデフォルト値（１）に（すなわち、同期ポートＢ要求をメモリアレイ制御回路網１２に選択的にルーティングさせるように）設定され得る。入力ＦＩＦＯ１１４が空ではない場合、信号Ａａｓｙｎｃは、１に非同期的に設定され得る（ステップ３０２）。
【００６８】
立ち上りＢｃｌｋエッジを検出することに応答して、制御回路１０１は、内部メモリクロックＭｃｌｋを立ち上らせ、Ａｒｃｌｋをパルスの高レベルにし得る（ステップ３０４）。ステップ３０６において、Ａａｓｙｎｃは、ラッチ１１８を用いてサンプリングされ得る（例えば、ＡｒｅｑがＡａｓｙｎｃのサンプリングされた値に設定される）。サービスを提供されるポートＢメモリアクセスがある場合に、処理は、ステップ３１０に進み得る。ポートＢ要求が存在しない場合に、Ａｒｃｌｋがネゲートされた後に、処理は、ステップ３１８に進み得る。
【００６９】
ステップ３１０において、所望のポートＢ読み取り／書き込みメモリアクセスが実行され得る。ステップ３１２に示されるように、立ち下りＡｒｃｌｋエッジを検出することに応答して、Ａｒｅｑは、ラッチ１２０を用いてサンプリングされ得る（例えば、Ａｒｅｑｓｙｎは、Ａｒｅｑのサンプリングされた値に設定される）。Ａｒｅｑが高である場合に、ＦＩＦＯ１１４の出力がラッチされ、それによって、Ａａｓｙｎｃにネゲートさせられ、最も古いポートＡメモリアクセス要求（すなわち、現在ＦＩＦＯ内に格納された任意の他の要求の前に到達したポートＡメモリアクセス要求）は、ＦＩＦＯ１１４から削除され得る。ステップ３１４において、ＤＯＮＥは、パルスの高レベルにされ得、それによってＭｃｌｋが低をクロックし、Ｂｏｕｔｃｌｋがパルスの高レベルにするようにトリガーする。
【００７０】
ステップ３１６において、ＦＩＦＯ１１４が少なくとも１つのサービスを提供されていない要求を含む場合に、Ａａｓｙｎｃがアサートされ得る。経路３１７によって示されるように、次に、処理は、ステップ３１８へ進み得る。ステップ３１８において、制御回路１０１は、Ａｒｅｑｓｙｎが高であるか低であるかをチェックし得る。Ａｒｅｑｓｙｎが低である場合、処理は、経路３２０によって示されるように、ステップ３００に戻るようにループし得る（例えば、制御回路１０１は、現在のＢｃｌｋサイクルの残りに対して任意のポートＡ要求を遅延させ得る。Ａｒｅｑｓｙｎが高である場合、処理は、ステップ３２０へ進み得る。
【００７１】
ステップ３２０において、信号ＰＯＲＴＳＥＬが、０に（すなわち、非同期ポートＡ要求をメモリアレイ制御回路網１２に選択的にルーティングさせるように）設定され得る。信号ＤＯＮＥが低に立ち下ることを検出することに応答して、信号Ｍｃｌｋが高をクロックされ得、Ａｒｃｌｋがパルスの高レベルにされ得る（ステップ３２２）。ステップ３２４において、Ａａｓｙｎｃは、ラッチ１１８を用いてサンプリングされ得る（例えば、Ａｒｅｑが、Ａａｓｙｎｃのサンプリングされた値に設定される）。ステップ３２６において、所望のポートＡ読み取り／書き込みメモリアクセスが実行され得る。ステップ３２８において示されるように、立ち下りＡｒｃｌｋエッジの検出に応答して、Ａｒｅｑは、ラッチ１２０を用いてサンプリングされ得る（例えば、ＡｒｅｑｓｙｎがＡｒｅｑのサンプリングされた値に設定される）。Ａｒｅｑが高である場合、Ａａｓｙｎｃがネゲートされ得る（例えば、現在ＦＩＦＯ１１４内に格納された最も古いポートＡメモリアクセス要求が除去され得る）。ステップ３３０において、ＤＯＮＥがパルスの高レベルにされ得、それによって、Ｍｃｌｋが低をクロックし、かつＡｏｕｔｃｌｋがパルスの高レベルにするようにトリガーする。経路３３２によって示されるように、（存在するなら）処理は追加のＡポート要求を処理するために、ステップ３１６に戻るようにループし得る。
【００７２】
図１の仲裁回路２２を有するメモリ回路網と、図４の半同期ＴＤＭシーケンス回路１０１を有するメモリ回路網とのデュアルポート実装は、単なる例示に過ぎず、本発明の範囲を限定するように機能しない。必要に応じて、本明細書において説明された非同期および半同期デュアルポートエミュレーション技術は、３ポートメモリ動作、４ポートメモリ動作等をエミュレートするために適用され得る。
【００７３】
追加の実施形態：
追加の実施形態１：第１のポートと第２のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、該第１のポートにおいて、第１のメモリアクセス要求と、関連付けられた第１のクロック信号とを受信することと、該第２のポートにおいて、第２のメモリアクセス要求と、関連付けられた第２のクロック信号とを受信することと、制御回路を用いて該第２のクロック信号の立ち上りクロックエッジを検出することに応答して、第３のクロック信号を生成し、かつ該第２のメモリアクセス要求にサービスを提供することと、該第２のメモリアクセス要求がサービスを提供されている間に、該第３のクロック信号を用いて該第１のメモリアクセス要求をサンプリングすることとを含む、方法。
【００７４】
追加の実施形態２：上記第３のクロック信号を用いて上記第１のメモリアクセス要求をサンプリングすることは、少なくとも２つの直列接続されたラッチを用いて該第３のクロック信号の立ち上りおよび立ち下りクロックエッジの時に該第１のメモリアクセス要求をサンプリングすることを含む、追加の実施形態１の方法。
【００７５】
追加の実施形態３：上記第１のメモリアクセス要求をバッファー回路内に格納することをさらに含み、該バッファー回路は、上記少なくとも２つの直列接続されたラッチから制御信号を受信するように動作可能である、追加の実施形態２の方法。
【００７６】
追加の実施形態４：上記バッファー回路を用いて上記第３のクロック信号を受信することをさらに含む、追加の実施形態３の方法。
【００７７】
追加の実施形態５：上記デュアルポートメモリは、多重化回路を含み、該多重化回路は、上記少なくとも２つの直列接続されたラッチを介して上記第１のメモリアクセス要求を受信するように動作可能な第１の入力と、上記第２のメモリアクセス要求を受信するように動作可能な第２の入力と、上記制御回路から制御信号を受信するように動作可能な制御入力とを有する、追加の実施形態２の方法。
【００７８】
追加の実施形態６：上記第１のメモリアクセス要求をバッファー回路内に格納することをさらに含む、追加の実施形態１の方法。
【００７９】
追加の実施形態７：上記制御回路を用いて上記第２のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記単一ポートメモリ要素のアレイへのアクセスを制御するための第４のクロック信号を生成することをさらに含む、追加の実施形態１の方法。
【００８０】
追加の実施形態８：上記第２のメモリアクセス要求が遂行されることに応答して、上記制御回路を用いて該第２のメモリアクセス要求の完了を表す制御信号を受信することと、該制御回路を用いて該制御信号を受信することに応答して、上記第１のメモリアクセス要求にサービスを提供することとをさらに含む、追加の実施形態１の方法。
【００８１】
追加の実施形態９：第１のポートと第２のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、該第１のポートにおいて、第１のメモリアクセス要求と、関連付けられた第１のクロック信号とを受信することと、該第２のポートにおいて、第２のメモリアクセス要求と、関連付けられた第２のクロック信号とを受信することと、該第１のクロック信号のクロックが上昇することに応答して、該第１のメモリアクセス要求をバッファー内に一時的に格納することと、制御回路を用いて該第２のクロック信号の立ち上りクロックエッジを検出することに応答して、該第１のメモリアクセス要求が該バッファー内に格納されている間に、該第２のメモリアクセス要求にサービスを提供することとを含む、方法。
【００８２】
追加の実施形態１０：上記第２のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記制御回路を用いて第３のクロック信号をトリガーすることをさらに含む、追加の実施形態９の方法。
【００８３】
追加の実施形態１１：同期化回路を用いて上記第３のクロック信号を受信することであって、該同期化回路は、少なくとも２つのラッチを含む、ことと、上記バッファーを用いて該第３のクロック信号を受信することとをさらに含む、追加の実施形態１０の方法。
【００８４】
追加の実施形態１２：上記少なくとも２つのラッチは、上記第３のクロック信号の立ち上りクロックエッジの時にデータをラッチするように構成された正エッジトリガー型ラッチと、該第３のクロック信号の立ち下りクロックエッジの時にデータをラッチするように構成された負エッジトリガー型ラッチと含む、追加の実施形態１１の方法。
【００８５】
追加の実施形態１３：上記バッファーを用いて上記同期化回路から制御信号を受信することをさらに含む、追加の実施形態１１の方法。
【００８６】
追加の実施形態１４：上記同期化回路を用いて上記第１のメモリアクセス要求をラッチすることと、該第１のメモリアクセス要求が該同期化回路を用いてラッチされた後に、該第１のメモリアクセス要求を上記バッファーから除去することとをさらに含む、追加の実施形態１１の方法。
【００８７】
追加の実施形態１５：上記バッファーは、ファーストインファーストアウト回路を含む、追加の実施形態９の方法。
【００８８】
追加の実施形態１６：第１のポートと第２のポートとを有するデュアルポートメモリであって、該デュアルポートメモリは、単一ポートメモリ要素のアレイと、第１のメモリアクセス要求と、該第１のポートに関連付けられた第１のクロック信号とを受信するように動作可能な第１の入力ラッチと、第２のメモリアクセス要求と、該第２のポートに関連付けられた第２のクロック信号とを受信するように動作可能な第２の入力ラッチであって、該第２のクロック信号は、該第１のクロック信号と異なる、第２の入力ラッチと、該第１のクロック信号を受信せず、該第２のクロック信号を受信するように動作可能な制御回路とを含み、該制御回路は、該第１のメモリアクセス要求および該第２のメモリアクセス要求のうちのいずれが遂行のために選択されるべきであるかを決定する制御信号を生成するようにさらに動作可能である、デュアルポートメモリ。
【００８９】
追加の実施形態１７：上記第１の入力ラッチから上記第１のメモリアクセス要求を受信するように動作可能な第１の入力と、上記第２の入力ラッチから上記第２のメモリアクセス要求を受信するように動作可能な第２の入力と、上記制御回路から上記制御信号を受信するように動作可能な制御入力とを有する多重化回路をさらに含む、追加の実施形態１６の方法。
【００９０】
追加の実施形態１８：上記第１の入力ラッチと上記多重化回路の上記第１の入力との間に連結されたバッファーをさらに含む、追加の実施形態１７の方法。
【００９１】
追加の実施形態１９：上記バッファーと上記多重化回路の上記第１の入力との間に連結された正エッジトリガー型ラッチおよび負エッジトリガー型ラッチをさらに含む、追加の実施形態１８の方法。
【００９２】
追加の実施形態２０：上記バッファーは、ファーストインファーストアウト回路を含む、追加の実施形態１８の方法。
【００９３】
上記の内容は、単なる本発明の原理の例示に過ぎず、さまざまな改変が、本発明の範囲および精神から逸脱することなしに、当業者によって加えられ得る。上記実施形態は、単独も任意の組み合わせでも実装され得る。
【図１】
0006293322.tif 000002
【図２】
0006293322.tif 000003
【図３】
0006293322.tif 000004
【図４】
0006293322.tif 000005
【図５】
0006293322.tif 000006
【図６】
0006293322.tif 000007
【図７】
0006293322.tif 000008
【図８】
0006293322.tif 000009