特許第6293322号(P6293322)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルテラ コーポレイションの特許一覧

<>
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000002
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000003
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000004
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000005
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000006
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000007
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000008
  • 特許6293322-時間分割多重化された多重ポートメモリ 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6293322
(24)【登録日】2018年2月23日
(45)【発行日】2018年3月14日
(54)【発明の名称】時間分割多重化された多重ポートメモリ
(51)【国際特許分類】
   G06F 12/00 20060101AFI20180305BHJP
【FI】
   G06F12/00 570C
【請求項の数】20
【全頁数】24
(21)【出願番号】特願2017-18597(P2017-18597)
(22)【出願日】2017年2月3日
(62)【分割の表示】特願2012-232813(P2012-232813)の分割
【原出願日】2012年10月22日
(65)【公開番号】特開2017-91577(P2017-91577A)
(43)【公開日】2017年5月25日
【審査請求日】2017年2月3日
(31)【優先権主張番号】13/284,721
(32)【優先日】2011年10月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】597154922
【氏名又は名称】アルテラ コーポレイション
【氏名又は名称原語表記】Altera Corporation
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】デイビッド ルイス
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特開2006−252656(JP,A)
【文献】 特開2007−141427(JP,A)
【文献】 特開昭63−285648(JP,A)
【文献】 特開平09−044395(JP,A)
【文献】 特開2009−238351(JP,A)
【文献】 特開2010−044821(JP,A)
【文献】 特開2000−030460(JP,A)
【文献】 特開2008−004218(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
第1のポートと第2のポートとを有するメモリを動作させる方法であって、前記方法は、
前記第1のポートにおいて第1のメモリアクセス要求を受信することと、
前記第2のポートにおいて、第2のメモリアクセス要求と、関連付けられたクロック信号とを受信することと、
制御回路を用いて、前記第2のポートにおいて前記クロック信号のクロックエッジを検出することと、
前記クロックエッジを検出することに応答して、前記制御回路を使用することにより、追加のクロック信号を生成することと、
前記追加のクロック信号を使用して前記第1のメモリアクセス要求をサンプリングすることと
を含む、方法。
【請求項2】
前記追加のクロック信号を使用することにより、前記第1のメモリアクセス要求をラッチすることをさらに含む、請求項1に記載の方法。
【請求項3】
前記クロック信号のクロックエッジを検出することは、前記第2のポートにおいて前記クロック信号の立ち上りクロックエッジを検出することを含む、請求項1に記載の方法。
【請求項4】
前記第1のポートにおいて、前記第1のメモリアクセス要求と関連付けられている別のクロック信号を受信することをさらに含む、請求項1に記載の方法。
【請求項5】
前記クロックエッジを検出することに応答して、すぐに前記第2のメモリアクセス要求にサービスを提供することをさらに含む、請求項1に記載の方法。
【請求項6】
前記追加のクロック信号を使用することにより、前記第1のメモリアクセス要求をラッチすることは、前記追加のクロック信号の立ち上りおよび立ち下りクロックエッジの時に前記第1のメモリアクセス要求をサンプリングすることを含む、請求項2に記載の方法。
【請求項7】
前記メモリは、単一ポートメモリ要素のアレイを備える、請求項1に記載の方法。
【請求項8】
回路網であって、前記回路網は、
複数のメモリ要素と、
第1のメモリアクセス要求を受信する第1のポートと、
第2のメモリアクセス要求を受信する第2のポートと、
前記第1のメモリアクセス要求に基づいて制御信号を生成する制御回路であって、前記制御信号は、前記第1のメモリアクセス要求および前記第2のメモリアクセス要求のうちのいずれが、前記複数のメモリ要素における遂行のために選択されるべきであるかを決定する、制御回路と、
前記第1のポートから前記第1のメモリアクセス要求を受信する第1の入力と、前記第2のポートから前記第2のメモリアクセス要求を受信する第2の入力と、前記制御信号を受信する制御入力とを有する多重化回路と
を備える、回路網。
【請求項9】
前記複数のメモリは、複数の単一ポートメモリ要素を備える、請求項8に記載の回路網。
【請求項10】
前記第1のポートはまた、第1のクロック信号を受信し、前記第2のポートはまた、前記第1のクロック信号と異なる第2のクロック信号を受信する、請求項8に記載の回路網。
【請求項11】
前記制御回路は、前記第1のクロック信号を受信せず、前記第2のクロック信号を受信するように構成されている、請求項10に記載の回路網。
【請求項12】
前記制御回路は、前記第2のクロック信号のクロックエッジを検出することに応答して追加のクロック信号を生成するように構成されている、請求項10に記載の回路網。
【請求項13】
前記第1のクロック信号によってクロックされ、かつ前記第1のメモリアクセス要求をラッチする、第1の入力ラッチと、
前記第2のクロック信号によってクロックされ、かつ前記第2のメモリアクセス要求をラッチする、第2の入力ラッチと
をさらに備える、請求項10に記載の回路網。
【請求項14】
第1のポートと第2のポートとを有するメモリ回路網を動作させる方法であって、前記方法は、
前記第1のポートにおいて第1のメモリアクセス要求を受信することと、
前記第2のポートにおいて、第2のメモリアクセス要求と、関連付けられたクロック信号とを受信することと、
制御回路を用いて、前記クロック信号のクロックエッジを検出することに応答して前記第2のメモリアクセス要求にサービスを提供することと、
バッファーを用いて、前記第1のメモリアクセス要求を一時に格納し、前記バッファーが空であるか否かを示す出力有効信号を生成することと
を含む、方法。
【請求項15】
前記バッファーを用いて前記出力有効信号を生成することは、前記バッファーが空である場合、前記出力有効信号をデアサートすることと、前記バッファーが空ではない場合、前記出力有効信号をアサートすることとを含む、請求項14に記載の方法。
【請求項16】
要求同期器を用いて、前記出力有効信号を受信し、かつ、対応する同期信号を前記制御回路に出力することをさらに含む、請求項14に記載の方法。
【請求項17】
前記第2のメモリアクセス要求が遂行されるとき、前記同期信号がアサートされる場合のみ前記第1のメモリアクセス要求を処理することをさらに含む、請求項16に記載の方法。
【請求項18】
前記制御信号を用いて、前記クロックエッジを検出することに応答して追加のクロック信号を生成することをさらに含む、請求項16に記載の方法。
【請求項19】
前記追加のクロック信号を用いて前記要求同期器を制御することをさらに含む、請求項18に記載の方法。
【請求項20】
前記第1のメモリアクセス要求および前記第2のメモリアクセス要求は、前記メモリ回路網中の単一ポートメモリ要素のアレイにアクセスする、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
この出願は、2011年10月28日に出願された米国特許出願第13/284,721に対して優先権を主張する。上記文献は、全体として本明細書において参照することによって援用される。
【背景技術】
【0002】
(背景)
集積回路(例えば、プログラマブル集積回路)は、しばしば、静的ランダムアクセスメモリ(SRAM)セルの形態の揮発性メモリ要素を含む。揮発性メモリ要素(例えば、SRAMセル)は、典型的に、交差連結されたインバータ(すなわち、ラッチ)に基づく。メモリ要素は、アレイで配列される。典型的アレイにおいて、データラインは、メモリ要素内にデータを書き込み、メモリ要素からデータを読み取るために使用される。アドレスラインは、どのメモリ要素がアクセスされるかを選択するために使用される。
【0003】
あるアプリケーションは、メモリ要素がデュアルポート能力を有する(すなわち、メモリ要素が2つのポートを含み、2つのポートの各々は、読み取りまたは書き込み動作を実行するために使用される)ことを要求する。デュアルポート動作をサポートするために、メモリ要素は、典型的に、8トランジスタ構成において形成される。例えば、従来のデュアルポートメモリ要素は、2つの交差連結されたインバータ、並びに第1および第2の対のアクセストランジスタを含む。第1の対のアクセストランジスタは、第1の読み取り/書き込みポートとして機能するために、交差連結されたインバータに連結され、その一方で、第2の対のアクセストランジスタは、第2の読み取り/書き込みポートとして機能するために、交差連結されたインバータに連結される。しかしながら、このように配列された従来の8トランジスタ(8T)デュアルポートメモリセルは、従来の6トランジスタ(6T)単一ポートメモリセルの面積の2倍より多くの面積を占用する。
【0004】
デュアルポートメモリ回路網の面積を低減するために、同期デュアルポート機能を提供する(すなわち、両方のポートが単一クロックを用いて制御される)ことにおいて6Tメモリ要素の使用を可能にする技術が開発された。例えば、ダブルクロッキング技術は、(第1のポートに関連付けられた要求を遂行するために)高いクロック位相の間、および(第2のポートに関連付けられた要求を遂行するために)低いクロック位相の間にメモリ要素にアクセスことを含む。しかしながら、ダブルクロッキングメモリアクセスは、メモリの性能を制限し、非同期デュアルポート動作(すなわち、2つのポートを制御するために、異なるクロック周波数および/または位相を有する2つの別個のクロック信号を使用することを含む動作)をサポートするために使用されることができない。
【発明の概要】
【課題を解決するための手段】
【0005】
(要約)
メモリ要素回路網を有する集積回路が提供される。メモリ要素は、アレイで配列された単一ポートメモリ要素を含み得る。メモリ要素は、多重ポートメモリ機能を提供する周辺メモリ制御回路網とインターフェースでつなぐように構成され得る。
【0006】
メモリ回路網は、同期ポートおよび非同期ポートからメモリアクセス要求を受信するように構成された制御回路(ときには、シーケンス回路と呼ばれる)を含み得る。同期ポートに関連付けられた要求は、同期ポートクロックを用いて制御され得、その一方で、非同期ポートに関連付けられた要求は、非同期ポートクロックを用いて制御され得る。第1および第2のクロック信号は、異なるクロック周波数/位相を示し得る。同期ポートに到達するメモリアクセス要求は、それらが受信されるとすぐに遂行され得、その一方で、非同期ポートに到達するメモリアクセス要求は、ファーストインファーストアウト(FIFO)回路を用いてバッファーされ、準安定性同期器を用いて内部メモリクロックに同期され得る。
【0007】
例えば、同期ポートクロックの立ち上りエッジを検出することに応答して、FIFOが空ではない場合に、制御回路は、FIFOから存在する未処理の非同期ポート要求をサンプリングし得る(例えば、同期器は、未処理の非同期ポート要求をラッチするために使用され得る)。同期アクセスがこの時間においてサービスを提供される必要がある場合に、制御回路は、すぐにその要求を遂行するようにメモリ回路網を指示する。
【0008】
同期アクセスの完了の際に、サンプリングされた非同期ポート要求が同期器を用いてラッチされたので、その要求は、FIFOから削除され得る。次に、制御回路は、同期器によって現在ラッチされているサンプリングされた非同期ポート要求を処理し、現在の同期クロックサイクルの残りにおいて任意の追加の未処理または後に到達する非同期ポート要求を遂行するように進め得る。非同期要求が完了するときにFIFOが空である場合に、制御回路は、同期ポートクロックの次のクロックサイクルまで、任意の後に到達する非同期要求を遅延させ得る。
【0009】
前述の半同期シーケンス回路に加えて、メモリ回路網は、仲裁回路を含み得、仲裁回路は、同期および非同期ポートからメモリアクセス要求を受信し、同期および非同期ポートに関連付けられたメモリアクセス要求が実行される順序を扱うように構成されている。例えば、仲裁回路は、非同期モード(すなわち、同期および非同期ポートからの要求が、異なる周波数および/または位相を有する第1および第2のクロック信号を用いて制御されるモード)で動作可能であり得る。非同期モードにおいて、仲裁回路は、メモリアクセス要求が受信されるとすぐに、メモリアクセス要求を実行する。例えば、仲裁回路が、同期ポートにおいて所与のメモリ要求を検出する場合に、仲裁回路は、所与のメモリ要求を実行するように制御回路に指示する。第2のメモリ要求が、所与のメモリが遂行される前に非同期ポートにおいて受信される場合に、第2のメモリ要求は、所与のメモリ要求が完了されるまで保留され得る。仲裁回路が、所与のメモリ要求が遂行されたことを検出した場合に、仲裁回路は、第2のメモリ要求を実行するように制御回路に指示する。
【0010】
例えば、本発明は以下の項目を提供する。
(項目1)
第1のポートと第2のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、
該第1のポートにおいて、第1のメモリアクセス要求と、関連付けられた第1のクロック信号とを受信することと、
該第2のポートにおいて、第2のメモリアクセス要求と、関連付けられた第2のクロック信号とを受信することと、
制御回路を用いて該第2のクロック信号の立ち上りクロックエッジを検出することに応答して、第3のクロック信号を生成し、かつ該第2のメモリアクセス要求にサービスを提供することと、
該第2のメモリアクセス要求がサービスを提供されている間に、該第3のクロック信号を用いて該第1のメモリアクセス要求をサンプリングすることと
を含む、方法。
(項目2)
上記第3のクロック信号を用いて上記第1のメモリアクセス要求をサンプリングすることは、少なくとも2つの直列接続されたラッチを用いて該第3のクロック信号の立ち上りおよび立ち下りクロックエッジの時に該第1のメモリアクセス要求をサンプリングすることを含む、上記項目に記載の方法。
(項目3)
上記第1のメモリアクセス要求をバッファー回路内に格納することをさらに含み、該バッファー回路は、上記少なくとも2つの直列接続されたラッチから制御信号を受信するように動作可能である、上記項目のいずれかに記載の方法。
(項目4)
上記バッファー回路を用いて上記第3のクロック信号を受信することをさらに含む、上記項目のいずれかに記載の方法。
(項目5)
上記デュアルポートメモリは、多重化回路を含み、該多重化回路は、上記少なくとも2つの直列接続されたラッチを介して上記第1のメモリアクセス要求を受信するように動作可能な第1の入力と、上記第2のメモリアクセス要求を受信するように動作可能な第2の入力と、上記制御回路から制御信号を受信するように動作可能な制御入力とを有する、上記項目のいずれかに記載の方法。
(項目6)
上記第1のメモリアクセス要求をバッファー回路内に格納することをさらに含む、上記項目のいずれかに記載の方法。
(項目7)
上記制御回路を用いて上記第2のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記単一ポートメモリ要素のアレイへのアクセスを制御するための第4のクロック信号を生成することをさらに含む、上記項目のいずれかに記載の方法。
(項目8)
上記第2のメモリアクセス要求が遂行されることに応答して、上記制御回路を用いて該第2のメモリアクセス要求の完了を表す制御信号を受信することと、
該制御回路を用いて該制御信号を受信することに応答して、上記第1のメモリアクセス要求にサービスを提供することと
をさらに含む、上記項目のいずれかに記載の方法。
(項目9)
第1のポートと第2のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、
該第1のポートにおいて、第1のメモリアクセス要求と、関連付けられた第1のクロック信号とを受信することと、
該第2のポートにおいて、第2のメモリアクセス要求と、関連付けられた第2のクロック信号とを受信することと、
該第1のクロック信号のクロックが上昇することに応答して、該第1のメモリアクセス要求をバッファー内に一時的に格納することと、
制御回路を用いて該第2のクロック信号の立ち上りクロックエッジを検出することに応答して、該第1のメモリアクセス要求が該バッファー内に格納されている間に、該第2のメモリアクセス要求にサービスを提供することと
を含む、方法。
(項目10)
上記第2のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記制御回路を用いて第3のクロック信号をトリガーすることをさらに含む、上記項目のいずれかに記載の方法。
(項目11)
同期化回路を用いて上記第3のクロック信号を受信することであって、該同期化回路は、少なくとも2つのラッチを含む、ことと、
上記バッファーを用いて該第3のクロック信号を受信することと
をさらに含む、上記項目のいずれかに記載の方法。
(項目12)
上記少なくとも2つのラッチは、上記第3のクロック信号の立ち上りクロックエッジの時にデータをラッチするように構成された正エッジトリガー型ラッチと、該第3のクロック信号の立ち下りクロックエッジの時にデータをラッチするように構成された負エッジトリガー型ラッチと含む、上記項目のいずれかに記載の方法。
(項目13)
上記バッファーを用いて上記同期化回路から制御信号を受信することをさらに含む、上記項目のいずれかに記載の方法。
(項目14)
上記同期化回路を用いて上記第1のメモリアクセス要求をラッチすることと、
該第1のメモリアクセス要求が該同期化回路を用いてラッチされた後に、該第1のメモリアクセス要求を上記バッファーから除去することと
をさらに含む、上記項目のいずれかに記載の方法。
(項目15)
上記バッファーは、ファーストインファーストアウト回路を含む、上記項目のいずれかに記載の方法。
(項目16)
第1のポートと第2のポートとを有するデュアルポートメモリであって、該デュアルポートメモリは、
単一ポートメモリ要素のアレイと、
第1のメモリアクセス要求と、該第1のポートに関連付けられた第1のクロック信号とを受信するように動作可能な第1の入力ラッチと、
第2のメモリアクセス要求と、該第2のポートに関連付けられた第2のクロック信号とを受信するように動作可能な第2の入力ラッチであって、該第2のクロック信号は、該第1のクロック信号と異なる、第2の入力ラッチと、
該第1のクロック信号を受信せず、該第2のクロック信号を受信するように動作可能な制御回路と
を含み、
該制御回路は、該第1のメモリアクセス要求および該第2のメモリアクセス要求のうちのいずれが遂行のために選択されるべきであるかを決定する制御信号を生成するようにさらに動作可能である、デュアルポートメモリ。
(項目17)
上記第1の入力ラッチから上記第1のメモリアクセス要求を受信するように動作可能な第1の入力と、上記第2の入力ラッチから上記第2のメモリアクセス要求を受信するように動作可能な第2の入力と、上記制御回路から上記制御信号を受信するように動作可能な制御入力とを有する多重化回路をさらに含む、上記項目のいずれかに記載のデュアルポートメモリ。
(項目18)
上記第1の入力ラッチと上記多重化回路の上記第1の入力との間に連結されたバッファーをさらに含む、上記項目のいずれかに記載のデュアルポートメモリ。
(項目19)
上記バッファーと上記多重化回路の上記第1の入力との間に連結された正エッジトリガー型ラッチおよび負エッジトリガー型ラッチをさらに含む、上記項目のいずれかに記載のデュアルポートメモリ。
(項目20)
上記バッファーは、ファーストインファーストアウト回路を含む、上記項目のいずれかに記載のデュアルポートメモリ。
【0011】
(摘要)
単一ポートメモリ要素を有する集積回路が提供され得る。単一ポートメモリ要素は、多重ポート機能をエミュレートするために、制御回路を用いて制御され得る。1つの適切な実施形態において、制御回路は、仲裁回路であり得、仲裁回路は、メモリ要求が仲裁回路によって受信されるとすぐにメモリ要求を実行するように構成されている。現在のメモリアクセスが実行されている間に受信される要求は、現在のメモリアクセスが完了するまで保留され得る。別の適切な実施形態において、制御回路は、同期ポートおよび非同期ポートからのメモリアクセス要求にサービスを提供するように構成されたシーケンス回路であり得る。同期ポートにおいて受信されたメモリアクセス要求は、すぐにサービスを提供され得、その一方で、非同期ポートにおいて受信されたメモリアクセス要求は、内部メモリクロック信号に同調され得、同期ポートに関連付けられた前のメモリアクセス要求がサービスを提供された後にサービスを提供され得る。
【0012】
本発明のさらなる特徴、本発明の本質およびさまざまな利点は、添付の図面および以下の詳細な説明からより明白になる。
【図面の簡単な説明】
【0013】
図1図1は、仲裁回路を有する例示的な多重ポートメモリ回路網のダイヤグラムである。
図2図2は、図1の多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
図3図3は、図1の多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
図4図4は、本発明の実施形態に従う例示的な半同期多重ポートメモリ回路網のダイヤグラムである。
図5図5は、本発明の実施形態に従う例示的なメモリ要素のダイヤグラムである。
図6図6は、本発明の実施形態に従う図4において示されるタイプの半同期多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
図7図7は、本発明の実施形態に従う図4において示されるタイプの半同期多重ポートメモリ回路網の動作を例示するタイミングダイヤグラムである。
図8図8は、本発明の実施形態に従う図4において示されるタイプの多重ポートメモリ回路網を用いてメモリアクセス要求を遂行することに伴う例示的なステップのフローチャートである。
【発明を実施するための形態】
【0014】
本発明の実施形態は、静的ランダムアクセスメモリ回路網に関連する。本発明のメモリ回路網は、任意の適切な集積回路内に使用され得る。例えば、メモリ回路網は、集積回路メモリデバイス(例えば、特定用途の集積回路(ASIC)、プログラマブル集積回路、または他のタイプの集積回路)内において使用され得る。
【0015】
図1は、単一ポートメモリ要素のみを用いて同期および非同期の多重ポートメモリ動作を提供するように構成された仲裁回路を有するメモリ回路網を含む集積回路10のダイヤグラムである。デバイス10は、少なくとも1つのメモリアレイ14を含み得る。図1に示されるように、メモリアレイ14は、行および列に配列されたメモリ要素(ときには、メモリセルと呼ばれる)100を含み得る。メモリセル100は、単一ポートメモリセルであり得る。一例として、メモリセル100は、6つのトランジスタを有する単一ポート差動メモリセル(例えば、メモリセルに対して単一ポートとして機能する一対のアクセストランジスタを有するメモリセル)であり得る。デュアルポートメモリ機能を提供するために単一ポートメモリセルを使用することは、ダイ歩留まりを増大させることを助け、低減された最小要求電源電圧(すなわち、低減された電力消費)を提供し、集積回路の実際の所有面積を節約し得る。
【0016】
メモリアレイ14は、行および列の制御回路網(例えば、行および列制御回路網12)に連結され得る。制御回路網12は、行アドレシング回路網、列多重化回路網、書き込みドライバー回路網、読み取り感知回路網、データレジスタ回路網等を含み得る。制御回路網12は、経路(例えば、経路16および18)を介してアレイ14内のメモリセル100に対して所望の時間変動および/または固定の信号を生成するために使用され得る。メモリ要素100に供給される信号は、ときには、まとめて制御信号と呼ばれ得る。特定の内容において、これらの信号の一部は、電力信号、クリア信号、データ信号、アドレス信号等と呼ばれ得る。
【0017】
電源信号は、グローバルメモリ電力ラインを介して同時にアレイ14内のすべてのセルに配分され得る。メモリ電力ラインは、垂直に配向されることにより、各経路18においてメモリ電力ラインのうちの1つの分岐があり得、メモリ電力は、水平に配向にされることにより、各経路16においてメモリ電力ラインのうちの1つの分岐があり得る。一例として、正の電源電圧Vccは、共用の水平または垂直コンダクタのパターンを用いて各セル100に並列に供給され得る。同様に、グラウンド電圧Vssは、共用の水平または垂直ラインのパターンを用いてセル100に並列に供給され得る。制御ライン(例えば、アドレスラインおよびデータライン)は、一般的に互いに対して直交である(例えば、アドレスラインは、水平であるが、データラインは、垂直であり、またはその逆の場合もある)。
【0018】
正の電源電圧Vccは、正の電源ラインを介して提供され得る。グラウンド電圧Vssは、グラウンド電源ラインを介して提供され得る。任意の適切な値が、正の電源電圧Vccおよびグラウンド電圧Vssに対して使用され得る。例えば、正の電源電圧Vccは、1.2ボルト、1.1ボルト、1.0ボルト、0.9ボルト、0.9ボルトより低いボルト、または他の任意の適切なボルトであり得る。グラウンド電圧Vssは、(一例として)0ボルトであり得る。典型的な配列において、電源電圧Vccは、1.0ボルトであり得、Vssは0ボルトであり得、アドレス信号、データ信号、およびクリア信号に対する信号レベルは、(低い場合)0ボルトから(高い場合)1.0ボルトまでの範囲を有し得る。Vccが時間の関数として変動し、Vssが0ボルトより低く、および制御信号がオーバードライブされる(すなわち、制御信号がVcc−Vssより大きな信号強度を有する)配列も使用され得る。
【0019】
概して、経路16および18に関連付けられた伝導ラインの適切な数が任意であり得る。例えば、アレイ14の各々の行は、経路16のうちのそれぞれの1つに関連付けられたアドレスラインを含み得、その一方で、アレイ14の各々の列は、経路18のそれぞれの関連付けられたデータライン(例えば、真および補数データライン)を含み得る。用語「行」および「列」は、メモリアレイ14内のセル100の特定のグループを指す1つの方法を示すに過ぎず、ときには相互交換可能に使用され得る。必要に応じて、他のパターンのラインは、経路16および18において使用され得る。例えば、異なる数の電源信号、アドレス信号、およびデータ信号が使用され得る。
【0020】
アドレスライン16のうちの1つは、メモリセル100のうちの1つ行がアクセスされるように選択するために、アサートされたアドレス信号を供給し得る。選択されたアドレス信号以外のアドレスライン16上のアドレス信号がデアサートのままであり得る間に、選択された行がアクセスされている。各列のデータラインは、読み取り動作の間に、正の電源電圧Vccに事前にチャージされ得、その一方で、各列のデータラインは、書き込み動作の間に、選択されたセル100の少なくとも一部内に所望の書き込みデータを書き込むために、適切な電圧レベルに駆動され得る。一般の動作の間に、(一例として)すべてのアドレス信号がデアサートのままであり得る間に、すべてのデータラインがVccに事前にチャージされ得る。
【0021】
アレイ14の単一ポートメモリセル100は、周辺メモリ回路網の使用を介してデュアルポート機能を提供し得る。行および列制御回路網12は、多重化回路(または多重器)24から制御信号を受信し得る。多重化回路24は、第1のメモリポート(ポートA)に関連付けられたメモリアクセス要求(例えば、データおよびアドレシング信号)を受信するように構成された第1の入力と、第2のメモリポート(ポートB)に関連付けられたメモリアクセス要求を受信するように構成された第2の入力と、回路網12に連結された出力と、経路26を介して仲裁回路22からポート選択信号PORTSELを受信するように構成された制御入力とを有し得る。
【0022】
仲裁回路22は、ポートAからのメモリアクセス要求、ポートBからのメモリアクセス要求、ポートAに関連付けられる第1のクロック信号Aclk、およびポートBに関連付けられる第2のクロック信号Bclkを受信するように構成され得る。仲裁回路22は、ポートAおよびポートBから受信されたメモリアクセス要求を処理する順序を決定するために機能し得る。メモリ回路網が、異なるクロック信号Aclkおよび/またはBclkを用いて各々が制御である少なくとも2つのポートからの読み取りおよび書き込み要求を扱うことが可能である(例えば、仲裁回路22が、真デュアルポート動作をエミュレートすることが可能であり得る)ので、メモリ回路網は、AclkおよびBclkの参照ポイントからのデュアルポートメモリとして機能するようにみえる。
【0023】
仲裁回路22は、(一例として)多重器24を用いてポートAから行および列制御回路網12へデータおよびアドレシング信号を選択的にルーティングさせるために、PORTSELを低に駆動し得、多重器24を用いてポートBから行および列制御回路網12へデータおよびアドレシング信号を選択的にルーティングさせるために、PORTSELを高に駆動し得る。仲裁回路22が要求を実行することを決定する場合に、仲裁回路22は、経路34を介して提供される信号STARTを一時的にアサートすることにより、所望の読み取り/書き込み動作ができるように制御回路20を指示する。仲裁回路22からアサートされたSTARTを受信することに応答して、制御回路20は、(例えば、経路36を介して制御回路20からの読み取り/書き込みイネーブル信号を回路網12に提供することによって)、書き込み動作の間にアサートされた書き込みドライバーイネーブル信号を回路網12に提供し得、読み取り動作の間にアサートされた感知増幅器イネーブル信号を提供し得る。
【0024】
読み取り動作中、回路網12の感知増幅器回路を用いて生成された読み取り信号は、出力ラッチ28および30に供給され得る。出力ラッチ28は、回路20から経路32を介して提供されたポートA出力信号Aoutclkを用いて制御され得、その一方で、出力ラッチ30は、回路20から経路33を介して提供されたポートB出力信号Boutclkを用いて制御され得る。第1のメモリポートに関連付けられたラッチされた出力データ信号(例えば、データ信号Aout)と、第2のメモリポートに関連付けられたラッチされた出力データ信号(例えば、データ信号Bout)とは、さらなる処理のために、デバイス10上の他のデジタルまたは論理回路網に提供され得る。
【0025】
現在のメモリ要求が遂行された場合(すなわち、所望のメモリ位置においてメモリアレイ14内の読み取り/書き込み動作を完了した際)、仲裁回路22は、制御回路20からアサートされた信号DONEを受信され得る。アサートDONEを検出することに応答して、仲裁回路22は、連続する未処理メモリアクセス要求を処理するように進め得る。
【0026】
仲裁回路22は、同期モードおよび非同期モードで動作可能であり得る。同期モードにおいて、複数のポートからの要求は、共用のクロック供給源を用いて制御され得る。結果として、複数のポートからのメモリアクセス要求は、同時に共用のクロック信号の立ち上りエッジに到達し得る。同期モードにおいて、仲裁回路22は、例えば、複数のポートのうちのいずれが選択されるかを決定し得る。
【0027】
2つのポートのうちの1つのみにおいて未処理の要求があるシナリオにおいて、未処理の要求に関連付けられたポートは、処理のために選択され得る。1つのポートが書き込み要求を受信し、かつもう1つのポートが読み取り要求を受信するシナリオにおいて、読み取り要求を受信するポートが、処理のために選択され得る(すなわち、仲裁回路22は、読み取りポートを優先して実装するように構成され得る)。必要に応じて、仲裁回路22はまた、書き込みポートを優先して実装するように構成され得る(すなわち、書き込み要求を受信するポートが、処理のために選択され得る)。両方のポートが書き込み要求を受信し、または両方のポートが読み取り要求受信するシナリオにおいて、第2のポートが優先度を与えられ得る(すなわち、ポートBでの要求が、ポートAでの要求の前に処理される)。必要に応じて、両方のポートが同じタイプのメモリ要求を受信した場合に、仲裁回路22はまた、ポートAを優先して実装するように構成され得る(すなわち、ポートAおよびBの両方が読み取り要求を受信し、またはポートAおよびBの両方が書き込み要求を受信する場合に、ポートAでの要求が、ポートBでの要求の前に処理される)。
【0028】
図1に関連して説明されたメモリ構造は、単なる例示に過ぎず、本発明の範囲を限定するものではない。必要に応じて、仲裁回路22は、3ポートメモリモード、4ポートメモリモード等をサポートするために、任意の所望の数のポートからのメモリ要求を扱うように構成され得る。
【0029】
別の適切な配列において、仲裁回路22は、非同期モード(例えば、複数のポートからの要求が異なる位相および/または周波数のクロックを用いて制御されるモード)で動作するように構成され得る。非同期デュアルポート動作において、異なるメモリポートからの要求は、しばしば、異なる時間に到達し得る。結果として、仲裁回路22は、第1の到達するメモリ要求が回路22によって受信されるとすぐに処理されることと、第1の到達メモリ要求が遂行されたときに第2の(後に)到達するメモリ要求が処理されることとを行うように構成され得る。
【0030】
図2および図3は、図1に関連して説明されたタイプのメモリ回路網の非同期モード動作を例示するタイミングダイヤグラムである。図2は、ポートAメモリアクセス要求およびポートBメモリアクセス要求が異なる時間で受信されるシナリオを例示する。時間t1において、仲裁回路22は、ポートAから(Aclkの立ち上りクロックエッジによってトリガーされた)第1のメモリアクセス要求を受信し得る。この例において、仲裁回路22は、現在どんなメモリアクセス要求も扱っていないので、仲裁回路22は、すぐに第1のメモリアクセス要求を遂行するように進める(例えば、信号PORTSELは、第1のメモリアクセス要求に関連付けられたデータおよびアドレシング信号を行および列制御回路網12に渡すために、低に駆動される)。
【0031】
時間t2において、仲裁回路22は、ポートBから(Bclkの立ち上りクロックエッジによってトリガーされた)第2のメモリアクセス要求を受信し得る。仲裁回路22は、第1のメモリアクセス要求が遂行されるまで第2のメモリアクセス要求を保留する。
【0032】
時間t3において、信号DONEは、第1のメモリアクセス要求が完了したことを示すようにパルスの高レベルにする。メモリアクセス要求を実行するのにかかる時間の量(例えば、Aclkの立ち上りクロックエッジからDONEの立ち上りエッジまでの期間)は、ときには、アクセス時間またはクロック−出力時間Tcoと呼ばれ得る。読み取り動作に関連付けられたTcoが書き込み動作に関連付けられたTcoより長い場合に、メモリ回路の性能は、読み取り動作に対するアクセス時間Tcoに依存し得る。この時間(すなわち、時間t3)において、仲裁回路22は、第2のメモリアクセス要求に関連付けられたデータおよびアドレシング信号を制御回路網12に渡すためのPORTSELを上げることによって、かつ回路網12において所望の読み取り/書き込み回路網をイネーブルするように制御回路20を指示することによって第2のメモリアクセス要求を処理するように進め得る。
【0033】
時間t4において、信号DONEは、第2のメモリアクセス要求が完了したことを示すようにパルスの高レベルにする。第2のメモリアクセス要求を実行するのにかかる時間の量(例えば、DONEの前の立ち上りクロックエッジからDONEの現在の立ち上りエッジまでの期間)は、アクセス時間Tcoと等しい場合がある。従って、(AclkおよびBclkの立ち上りエッジが互いに対してオフセットされることを仮定して)2つの連続したメモリアクセス要求を実行するときの全待ち時間は、2×Tcoと等しい場合がある。
【0034】
図3は、第1のメモリアクセス要求(例えば、ポートAメモリアクセス要求)および第2のメモリアクセス要求(例えば、ポートBメモリアクセス要求)が同じ時間で受信される(AclkおよびBclkが同時に高である)シナリオを例示する。時間t1において、仲裁回路22は、並列に、ポートAから第1のメモリアクセス要求を受信し、ポートBから第2のメモリアクセス要求を受信し得る。仲裁回路22が同じ時間において両方の要求を受信する場合、仲裁回路22は、準安定性を解決ための(すなわち、第1のおよび第2のメモリアクセス要求うちのいずれが先に処理されるべきであるかを決定するための)期間Tmetを必要とし得る。
【0035】
時間t2(例えば、t1の後の期間Tmet)において、(一例として)、仲裁回路22は、PORTSELを低に駆動することによって第1のメモリアクセス要求を遂行することを決定し得る。時間t2において仲裁回路22が処理のために第2のメモリアクセス要求を選ぶことも可能である。時間t3において、信号DONEは、第1のメモリアクセス要求の完了を示すためにパルスの高レベルにされ得る。この時間において、第2のメモリアクセス要求が遂行され得る(例えば、PORTSELが高に駆動され得る)。時間t4において、信号DONEは、第2のメモリアクセス要求の完了を示すために再びパルスの高レベルにされ得る。従って、(AclkおよびBclkの立ち上りエッジが整列される場合に)2つの同時に到達するメモリアクセス要求を実行するための全待ち時間は、Tmetと2×Tcoとの合計と等しい場合がある。図3の例は、単なる例示に過ぎず、本発明の範囲を限定するように機能しない。
【0036】
本発明の1つの適切な配列において、デバイス10は、メモリアクセスが異なるメモリポートのうちの選択された1つ(ときには、「同期」ポートと呼ばれる)に関連付けられるクロック信号に同期される半同期アプローチを用いて多重ポート機能を提供し得る。従って、このクロック信号は、本明細書において同期ポートクロックまたは同期クロック信号と呼ばれ得る。行および列制御(またはメモリアレイ制御)回路網12は、同期ポートクロックに同期的に関連する内部メモリクロック信号を用いて制御され得る(例えば、内部メモリクロック信号は、同期ポートに関連付けられるクロック信号によってトリガーされ得る)。
【0037】
メモリアクセスを複数のメモリポートのうちの1つのみに同期させることは、同期ポート上の準安定性解決に対して要求される時間を効率的に排除する。同期ポートは、このポートにおいて受信されたメモリアクセス要求が多くても1つのTcoの最小待ち時間を示すように、優先度を与えられる。もう1つのポート(ときには、「非同期」ポートと呼ばれる)において受信されたメモリアクセス要求は、内部メモリクロック信号に同期される。非同期ポート上のメモリアクセスは、依然準安定性解決のための遅延を受け得るが、これは、同期ポート上のアクセスと同時に発生する。この方法でメモリアクセス要求を処理することは、半同期時間分割多重化された(TDM)多重ポートメモリ制御と呼ばれ得る。
【0038】
デュアルポートメモリが専用の読み取りポートと専用の書き込みポートとを有するシナリオを考える。読み取りアクセスがより高い優先度を与えられる場合、読み取りポートは、同期ポートとして構成され、その一方で、書き込みポートは、非同期ポートとして構成され得る。書き込みアクセスがより高い優先度を与えられる場合、書き込みポートは、同期ポートとして構成され、その一方で、読み取りポートは、非同期ポートとして構成され得る。
【0039】
デュアルポートメモリが、第1のクロック信号を用いて制御された第1のポートと、第2のクロック信号を用いて制御された第2のポートとを有し、第2のクロック信号が第1のクロック信号の周波数より高い周波数を示す別のシナリオを考える。このシナリオにおいて、より臨界クロックドメインに関連付けられたポートは、同期ポートとして構成され得る。例えば、より早いクロック信号に関連付けられたポートは、同期ポートとして構成され得る(例えば、内部メモリクロックは、第2のクロック信号に同期され得る)。必要に応じて、より遅いクロックドメインに関連付けられたポートは、代わりに同期ポートとして構成され得る(例えば、内部メモリはまた、第1のクロック信号に同期され得る)。
【0040】
概して、内部メモリクロック信号は、異なるポートクロックのうちの任意の1つによってトリガーされ得る。内部メモリクロックがトリガーされる場合、同期ポート上のメモリアクセスはすぐに開始され得る。同期ポートのメモリアクセスが遂行されている間に、非同期ポートからのメモリアクセスは、内部メモリクロックを用いて再同期され得る。メモリアクセス要求が同期ポートにおいて受信される場合、同期ポートアクセスがすぐに開始されるので、非同期ポートの準安定性解決は、同期ポートのアクセスと同時に発生し、それによってTmetを減少させる。結果として、同期ポートアクセスは、Tcoの待ち時間を体験し得、その一方で、非同期ポートアクセスは、同期ポートの最大1つのクロックサイクル、並びに非同期ポートによって事前に受信された、および同時に受信される他の待機された(未処理の)アクセスの待ち時間を体験し得る。
【0041】
図4は、半同期デュアルポートメモリの例示的な実装のダイヤグラムである。図4の例において、ポートBは、同期ポートとして構成され得、その一方で、ポートAは、非同期ポートとして構成され得る。ポートAに到達するデータおよびアドレス信号は、(非同期クロックと呼ばれた)Aclkを用いて制御され得、その一方で、ポートBに到達するデータおよびアドレス信号は、(同期クロックと呼ばれた)Bclkを用いて制御され得る。信号AclkおよびBclkは、異なるクロック周波数/位相を有し得る。
【0042】
図4に示されるように、同期ポート(すなわち、ポートB)からの信号は、ラッチ104を用いて受信され得る。ラッチ104は、Bclkを受信するように構成されたクロック制御入力と、多重化回路102の第1の入力に連結される出力とを有し得る。同期クロックBclkは、制御回路101に供給され得る。制御回路101は、内部メモリクロック信号を生成するために使用され得、入ってくるメモリアクセス要求を遂行する順序を決定するように動作可能なシーケンス回路として機能し得る。特に、制御回路は、経路108を介して内部メモリクロックMclkを、経路124を介して同期化クロックArclkを、経路109を介してポートA出力クロックAoutclkを、経路111を介して出力制御クロックBoutclkを、および経路113を介して多重器制御信号PORTSELを生成するために使用され得る。
【0043】
非同期ポート(すなわち、ポートA)からの信号は、ラッチ112を用いて受信され得る。ラッチ112は、Aclkを受信するように構成されたクロック制御入力と、非同期ファーストインファーストアウト(FIFO)回路114に連結される出力とを有し得る。FIFO114は、ときには、バッファー回路と呼ばれ得る。非同期FIFO114は、ポートBからの要求が処理されている間に、ポートA上の入ってくる要求をバッファーするために使用され得る。FIFO114は、準安定性同期器(例えば、要求同期器116)に連結された出力を有し得る。特に、FIFO114は、現在の未処理の要求に関連付けられたデータおよびアドレス信号が提供される第1の出力と、信号Aasyncが提供される第2の出力とを有し得る。
【0044】
要求同期器116は、正エッジトリガー型ラッチ118と、負エッジトリガー型ラッチ120とを含み得る。正エッジトリガー型ラッチ118は、FIFO114の第2の出力から信号Aasyncを受信する入力と、経路124に連結された制御入力と、信号Areqが提供される出力とを有し得る。負エッジトリガー型ラッチ120は、FIFO114の第1の出力から現在未処理の要求に関連付けられたデータおよびアドレス信号を受信する第1の入力と、ラッチ118の出力から信号Areqを受信する第2の入力と、経路124に連結された制御入力と、多重器102の第2の入力に連結される第1の出力と、信号Areqsynが提供される第2の出力とを有し得る。信号Areqsynは、経路122を介して制御回路101に供給され得る。多重器102は、ポートAおよびBのうちの1つからのメモリアクセス要求信号をその出力へ選択的にルーティングさせるために、制御回路101から生成された信号PORTSELを用いて制御され得る。
【0045】
メモリ行および列制御回路網(ときには、メモリアレイ制御回路網と呼ばれる)12は、多重器102の出力からデータおよびアドレシング信号を受信し得る。回路網12は、制御回路101から経路108を介して運搬された内部メモリクロックMclkを用いて制御され得る。回路網12はまた、現在サービスを提供されているメモリアクセス要求の完了を示すために、経路110を介して制御回路101に対して信号DONEを生成し得る。制御回路101を用いて生成された信号Arclkは、経路124を介してラッチ118および120の制御入力に供給され得る。FIFO114はまた、ラッチ118出力からフィードバックされる信号Areqと、信号Arclkを受信するように構成され得る。
【0046】
読み取り動作の間にメモリアレイ14から読み取られたデータ信号は、ポートB出力ラッチ130とポートA出力ラッチ132とに供給され得る。ポートA出力ラッチ132は、Aoutclkを用いて制御され得、その一方で、ポートB出力ラッチ130は、Boutclkを用いて制御され得る。信号AoutclkおよびBoutclkは、制御回路101を用いて生成され得る。ポートB出力ラッチ130は、ポートB出力信号Boutが提供される出力を有し得る。ポートA出力ラッチ132は、出力非同期FIFO134に連結された出力を有し得る。入力FIFO114に類似して、出力非同期FIFO134は、ポートA出力データ信号をバッファーするように機能し得る。次に、ポートA出力データ信号は、正エッジトリガー型ラッチ136および負エッジトリガー型ラッチ138を通過され得る。FIFO134、並びにラッチ136および138は、信号Aclkを用いてクロックされ得る。ラッチ138は、ポートA出力信号Aoutが提供される第1の出力と、ポートA出力確認信号Ackが提供される第2の出力とを有し得る。信号Ackは、経路140を介して非同期FIFO134にフィードバックされ得る。FIFO134において受信されるアサートされたAckは、データのワードが出力においてうまくラッチされたことを示し得、その内容をシフトするようにFIFO134を指示し得る。
【0047】
図5は、メモリアレイ14内に形成され得る例示的な単一ポートメモリセル100の回路ダイヤグラムである。図5に示されるように、セル100は、少なくとも1対の交差連結されたインバータ142および144を含み得、インバータ142および144は、各々、入力および出力を有する。インバータ142の入力は、インバータ144の出力に連結され得、その一方で、インバータ144の入力は、インバータ142の出力に連結され得る。インバータ144の出力は、セル100に対して第1の内部データストレージノードとして機能し得、その一方で、インバータ142の出力は、セル100に対して第2の内部データストレージノードとして機能し得る。この方法で交差連結されたインバータ142および144は、単一ビットのデータを格納するように機能し得(例えば、データビットの真バージョンが第1のデータストレージノード上に格納され得、その一方で、データビットの逆バージョンが第2のデータストレージノード上に格納され得る)、ときには、双安定要素と呼ばれ得る。
【0048】
第1のアクセストランジスタ146は、第1のデータストレージノードと第1のデータライン18−1との間に連結され得る。第2のアクセストランジスタ148は、第2のデータストレージノードと第2のデータライン18−2との間に連結され得る。データライン18−1および18−2は、ときには、真および補数ビットライン対と呼ばれ得る。データライン18−1および18−2は、書き込み動作の間にデータをセル100内に書き込むために適切な値に駆動され得、読み取り動作の間に電源電圧レベルに事前にチャージされ得る。
【0049】
アクセストランジスタ146および148(ときには、アドレストランジスタと呼ばれる)は、ワードライン16を介して提供されるワードライン信号WLによって制御され得る。信号WLは、アクセスされるべきアレイ14内のメモリセル100のうちの1行を選択するようにアサートされ得る。残りの未選択の行の信号WLは、デアサートのままであり得る。図5の単一ポートメモリセルは、単なる例示に過ぎず、本発明の範囲を限定するものではない。必要に応じて、メモリセル100は、3つ以上の交差連結された反転回路を含み得、読み取りバッファー回路を含み得、単一端部構造等を有し得る。
【0050】
図4に関連して説明されたTDMメモリ回路網の動作は、以下のようであり得る。一連のメモリアクセス要求は、同期ポートクロック(すなわち、ポートB)において立ち上りクロックエッジを検出することに応答してトリガーされ得る。内部メモリクロックMclkは、同期クロックBclkの立ち上りエッジでアサートするようにトリガーされ得、DONEの立ち上りエッジでネゲートする(すなわち、デアサートする)ようにトリガーされ得る。必要に応じて、Mclkは、DONEの立ち下りエッジでネゲートするようにトリガーされ得る。
【0051】
立ち上りMclkエッジを検出することに応答して、ポートBアクセスがすぐに実行されることにより、ポートBアクセス時間は、真デュアルポートメモリと同じぐらい速い(すなわち、デュアルポートメモリセルを用いて実装されたデュアルポートメモリが8個のメモリセルトランジスタを有する)。DONEがアサートされる場合に、Boutclkは、出力データ信号Boutをラッチするためにパルスの高レベルにされ得る。
【0052】
前述のように、ポートA入力非同期FIFO114は、入ってくるポートAメモリアクセス要求をバッファーするために使用され得る。信号Arclkは、ポートAメモリアクセス要求を同期させるために使用され得る。Mclkをトリガーすることに加えて、立ち上りBclkエッジは、所定の期間に対してパルスの高レベルにされているように信号Arclkをトリガーし得る。信号Aasyncは、概して、FIFO114が少なくとも1つの未処理のポートA要求を含む場合にアサートされ得る。ポートB要求が立ち上りBclkエッジの直後に処理されている間に、Aasyncは、ラッチ118を用いてAreqを生成するために、Arclkの第1の半サイクルの間にサンプリングされ(例えば、AasyncがArclkの正のクロックエッジでサンプリングされる)、その一方で、Areqは、ラッチ120を用いてAreqsynを生成するために、Arclkの第2の半サイクルの間にサンプリングされる(例えば、Areqsynが、Arclkの負のクロックエッジでサンプリングされる)。次に、同期されたポートA要求信号Areqsynは、ポートA要求が現在のBclkサイクルの間に依然遂行されていないことを示すために、制御回路101に供給され得る。この方法で未処理のポートA要求をサンプリングし、かつ再サンプリングすることは、ポートA要求を内部メモリクロックMclkに同期させるように機能し得る。
【0053】
信号AreqおよびArclkは、確認の形として非同期FIFO114にフィードバックされ得る。FIFO114が、Aclkにおいて負のエッジを検出し、かつ信号Areqがアサートされる場合に、Aasyncは、未処理の要求がサンプリングされたことを示す(例えば、FIFO114からその未処理の要求を削除する)ようにネゲートされ得る。その後に、非同期FIFO114は、その内容をシフトし得、FIFO114が、サービスを提供される必要がある追加の未処理の要求を含む場合に、Aasyncは、非同期的にアサートされる。
【0054】
図6は、同期ポートクロックが非同期ポートクロックより早い場合(例えば、Bclkが、Aclkの周波数より高い周波数を有する場合)の半同期TDMメモリ回路網の動作を例示するタイミングダイヤグラムである。図6の例は、非同期FIFO114が、時間t1の前に未処理の要求を含まないと仮定する。信号PORTSELは、処理のためにポートB要求を選択するデフォルトによって高であり得る。時間t1において、信号Aclkは、高をクロックし得、ポートA要求は、FIFO114に進入し得る。新しいポートA要求のこの追加は、t1のしばらく後に(例えば、時間t2において)、信号Aasyncが非同期的にアサートされるようにし得る。
【0055】
時間t3において、信号Bclkは、高をクロックし得、Bポート要求は、ラッチ104の出力において存在し得る(例えば、図4を参照)。Bclkのこの立ち上りエッジは、Mclkがアサートされるようにトリガーし得、ArclkがPWの所定のパルス幅に対してパルスの高レベルにされているようにトリガーし得る。Areqが、Aasyncと同じ値を有する(例えば、Aasyncが時間t3において高であるので、Arclkの立ち上りエッジは、Areqに高に立ち上らせる)ように、Arclkの立ち上りクロックエッジは、ラッチ118にAasyncをサンプリングさせ得る。
【0056】
時間t4において、Arclkがデアサートされ得る。Arclkの立ち下りクロックエッジは、Aasyncにネゲートさせられ得(Areqが高である場合のみ)、Areqsynが、Areqと同じ値を有するように、ラッチ120にAreqをサンプリングさせ得る。この時間において、時間t1において到達したポートA要求が、要求同期器116によって既にラッチされたので、ポートA要求は、FIFO114から削除され得る。この例において、Areqが時間t4において高であるので、Arckの立ち下りエッジは、Areqsynに高に立ち上らせる。ポートAからの追加のメモリアクセス要求がないので、信号Aasyncは、ネゲートされたままであり得る。
【0057】
時間t5において、ポートBメモリアクセス要求が遂行され、信号DONEがパルスの高レベルにされ、それによってMclkがデアサートされ、Boutclkがパルスの高レベルにされるようにする。ポートBメモリアクセスの完了に応答して、信号Boutclkが、パルスの高レベルにされるのみであり得る。ポートBメモリアクセス要求の開始から対応する信号DONEがアサートされているまでの時間は、アクセス時間Tcoと等しい場合がある。(アサートされたAreqsynによって示されるように)未処理のポートAメモリ要求があるので、制御回路101は、ポートAメモリ要求がサービスを提供され得るように、一時的にPORTSELを反転し得る。
【0058】
時間t6において、DONEがデアサートされ得る。DONEが低である場合に、後のポートAメモリアクセスがサービスを提供され得る。未処理のポートAメモリ要求が存在するので、ポートAメモリアクセスの開始を表すために、Mclkが高に立ち上げられ得、Arclkがパルスの高レベルにされ得る。時間t6において、(低Aasyncによって示されるように)新しく到達するポートA要求がないので、Areqは、低に立ち下り得る。
【0059】
時間t7において、Arclkがデアサートされ得る。Arclkの立ち下りクロックエッジがAreqをサンプリングし得、それによって、Areqが時間t7において低であるので、Areqsynに低に立ち下らせる。低Areqsynは、未処理のポートAメモリアクセス要求がないことを示し得る。時間t8において、信号DONEは、パルスの高レベルにされ、Mclkがデアサートされ、Aoutclkがパルスの高レベルにされるようにする。ポートAメモリアクセスの完了に応答して、信号Aoutclkが、パルスの高レベルにされるのみであり得る。この時間において、サービスを提供されるべきポートAまたはポートBからのさらなるメモリアクセス要求がない。時間t9において、Bclkは、高をクロックし得、第2のポートBメモリアクセス要求がサービスを提供され得る。時間t10において、Bclkは、高をクロックし得、第3のポートBメモリアクセス要求がサービスを提供され得る。
【0060】
BclkがAclkより早いこのシナリオにおいて、ポートAアクセスの待ち時間は、多くても1つのポートBサイクル分のみ増加され、これは、真デュアルポートエミュレーションにおいて許容可能であり得る。BclkがAclkよりさらに早い場合(例えば、Bclkが、Aclkより少なくとも3倍、少なくとも5倍、または少なくとも10倍早い場合)、ポートAアクセスは、Aclkの小数の範囲内に完了されると保証され得る。
【0061】
図7は、非同期ポートクロックが同期ポートクロックより早い場合(例えば、Bclkは、Aclkの周波数より低い周波数を有する場合)、半同期TDMメモリ回路網の動作を例示するタイミングダイヤグラムである。図7の例は、非同期FIFO114が、(時間t1の前にアサートされたAasyncによって示されるように)時間t1の前に少なくとも1つの未処理の要求を含むと仮定する。信号PORTSELは、処理のためにポートB要求を選択するデフォルトによって高であり得る。
【0062】
時間t1において、信号AclkおよびBclkは、同時に高をクロックし得る(例えば、新しいポートAメモリアクセス要求および新しいポートBメモリアクセス要求は、並列に到達し得る)。(Aasyncが時間t1において高であるので)立ち上りBclkは、ArclkおよびMclkが高をクロックし、Areqが立ち上るようにトリガーする。同期ポートアクセス(すなわち、ポートBメモリアクセス)は、すぐに開始され得る。時間t2において、Arclkは、低をクロックし得、Aasyncにネゲートさせ(例えば、時間t1の前にFIFO114内に格納された未処理のメモリアクセス要求が既に要求同調器116によってラッチされたので、未処理のメモリアクセス要求がFIFO114から削除され得る)、(Areqが時間t2において高であるので)Areqsynに高に立ち上らせる。時間t3において、信号DONEは、ポートBメモリアクセスの完了を示すために一時的にアサートされ得、それによってMclkが低をクロックするようにトリガーする。この時間において、高Areqsynによって示されるように、サービスを提供される必要がある少なくとも1つの未処理のポートA要求(すなわち、現在に同調器116内に格納されているサービスを提供されていないポートA要求)があるので、PORTSELは、サービスを提供するために、ポートAを選択するように低に駆動され得る。時間t3の直後、FIFO114が、依然、時間t1において到達した待機のポートBメモリアクセスを含むので、信号Aasyncがアサートされ得る。
【0063】
時間t4において、DONEは、デアサートされ得、時間t1の前にFIFO114内に格納された未処理のポートBメモリアクセスがサービスを提供され得る。この時間において、制御回路101は、ArclkおよびMclkを高に駆動し得る。信号Aasyncがラッチ118の間にサンプリングされ得るが、Aasyncが時間t4において高であるので、Areqは、高のままであり得る。時間t5において、Arclkは、低をクロックし得、Aasyncにネゲートさせる(例えば、時間t1において到達した未処理のメモリアクセス要求が要求同調器116によってラッチされたので、未処理のメモリアクセス要求が削除され得る)。信号Areqは、ラッチ120を用いてサンプリングされ得るが、Areqが時間t5において高であるので、Areqsynは高のままである。時間t6において、信号DONEは、待機のポートAメモリアクセスの完了を示すために一時的にアサートされ得、それによってMclkが低をクロックするようにトリガーする。依然サービスを提供されるポートAメモリアクセス要求があるので、信号PORTSELは低のままであり得る。時間t6の周辺において、Aclkは、高をクロックし得、第1の追加のポートAメモリアクセス要求は、FIFO114に進入し得る。時間t6の直後に、FIFO114が、依然、時間t6において到達した第1の追加のポートAメモリアクセスを含むので、信号Aasyncがアサートされ得る。
【0064】
時間t7において、DONEがデアサートされ得、時間t1において到達した(かつ現在同期器116内に格納されている)未処理のポートAメモリアクセスがサービスを提供され得る。この時間において、制御回路101は、ArclkおよびMclkを高に駆動し得る。信号Aasyncは、ラッチ118を用いてサンプリングされ得、Aasyncが時間t7において高であるので、Areqは高のままである。時間t8において、Arclkは、低をクロックし得、Aasyncにネゲートさせる(例えば、時間t6において到達した第1の追加のポートAメモリアクセス要求が削除され得る。信号Areqは、ラッチ220を用いてサンプリングされ得、Areqが時間t8において高であるので、Areqsynは高のままである。時間t9において、信号DONEは、現在のポートAメモリアクセスの完了を示すために一時的にアサートされ得、それによってMclkが低をクロックするようにトリガーする。依然サービスを提供される第1の追加のポートAメモリアクセス要求があるので、信号PORTSELは低のままであり得る。この時間においてFIFO114内に追加の待機の要求がないので、信号Aasyncは、ネゲートされたままであり得る。
【0065】
時間t10において、DONEがデアサートされ得、時間t6において第1の追加のポートAメモリアクセス要求がサービスを提供され得る。この時間において、制御回路101は、ArclkおよびMclkを高に駆動し得る。信号Aasyncは、ラッチ118を用いてサンプリングされ得、Aasyncが時間t10において低であるので、Areqに低に立ち下らせる。時間t11において、Aclkは、高をクロックし得、第2の追加のポートAメモリアクセス要求は、FIFO114に進入し得、Aasyncに高に立ち上らせる。時間t12において、Arclkは低をクロックし得る。Areqが低であるので、FIFO114から削除される必要がある要求がない(例えば、FIFO114は、Areqが高である場合およびその場合のみ、Arclkの立ち下りクロックエッジにおいて要求を削除するように構成されるのみであり得る)。信号Areqは、ラッチ120を用いてサンプリングされ得、Areqが時間t12において高であるので、Areqsynに低に立ち下らせる。時間t13において、信号DONEは、第1の追加のポートAメモリアクセスの完了を示すために一時的にアサートされ得、それによって、Mclkが低をクロックするようにトリガーする。Areqが低である場合、信号PORTSELは、高に戻るように駆動され得る。現在のBclkサイクルの残りに対してサービスを提供される追加のポートA要求がないので、信号Aasyncは、高のままである。時間t14において、新しいポートAメモリ要求は、少なくともBclkの立ち上りエッジまで到達し、そしてFIFO114内に格納され得る。
【0066】
AclkがBclkより早いこのシナリオにおいて、FIFO114の深さは、ポートBクロックサイクルにおいて発生し得るポートA要求の数を収容するのに十分に深いように構成され得る。必要に応じて、図1に関連して説明された非同期仲裁多重ポートエミュレーションアプローチは、AclkがBclkより早い場合に使用され得る。
【0067】
図8は、図4において示されるタイプの半同期TDM多重ポートメモリ回路網を用いてメモリアクセス要求を遂行することに伴う例示的なステップのフローチャートである。ステップ300において、制御回路101は、Bclk立ち上りエッジを待ち得る。信号PORTSELは、そのデフォルト値(1)に(すなわち、同期ポートB要求をメモリアレイ制御回路網12に選択的にルーティングさせるように)設定され得る。入力FIFO114が空ではない場合、信号Aasyncは、1に非同期的に設定され得る(ステップ302)。
【0068】
立ち上りBclkエッジを検出することに応答して、制御回路101は、内部メモリクロックMclkを立ち上らせ、Arclkをパルスの高レベルにし得る(ステップ304)。ステップ306において、Aasyncは、ラッチ118を用いてサンプリングされ得る(例えば、AreqがAasyncのサンプリングされた値に設定される)。サービスを提供されるポートBメモリアクセスがある場合に、処理は、ステップ310に進み得る。ポートB要求が存在しない場合に、Arclkがネゲートされた後に、処理は、ステップ318に進み得る。
【0069】
ステップ310において、所望のポートB読み取り/書き込みメモリアクセスが実行され得る。ステップ312に示されるように、立ち下りArclkエッジを検出することに応答して、Areqは、ラッチ120を用いてサンプリングされ得る(例えば、Areqsynは、Areqのサンプリングされた値に設定される)。Areqが高である場合に、FIFO114の出力がラッチされ、それによって、Aasyncにネゲートさせられ、最も古いポートAメモリアクセス要求(すなわち、現在FIFO内に格納された任意の他の要求の前に到達したポートAメモリアクセス要求)は、FIFO114から削除され得る。ステップ314において、DONEは、パルスの高レベルにされ得、それによってMclkが低をクロックし、Boutclkがパルスの高レベルにするようにトリガーする。
【0070】
ステップ316において、FIFO114が少なくとも1つのサービスを提供されていない要求を含む場合に、Aasyncがアサートされ得る。経路317によって示されるように、次に、処理は、ステップ318へ進み得る。ステップ318において、制御回路101は、Areqsynが高であるか低であるかをチェックし得る。Areqsynが低である場合、処理は、経路320によって示されるように、ステップ300に戻るようにループし得る(例えば、制御回路101は、現在のBclkサイクルの残りに対して任意のポートA要求を遅延させ得る。Areqsynが高である場合、処理は、ステップ320へ進み得る。
【0071】
ステップ320において、信号PORTSELが、0に(すなわち、非同期ポートA要求をメモリアレイ制御回路網12に選択的にルーティングさせるように)設定され得る。信号DONEが低に立ち下ることを検出することに応答して、信号Mclkが高をクロックされ得、Arclkがパルスの高レベルにされ得る(ステップ322)。ステップ324において、Aasyncは、ラッチ118を用いてサンプリングされ得る(例えば、Areqが、Aasyncのサンプリングされた値に設定される)。ステップ326において、所望のポートA読み取り/書き込みメモリアクセスが実行され得る。ステップ328において示されるように、立ち下りArclkエッジの検出に応答して、Areqは、ラッチ120を用いてサンプリングされ得る(例えば、AreqsynがAreqのサンプリングされた値に設定される)。Areqが高である場合、Aasyncがネゲートされ得る(例えば、現在FIFO114内に格納された最も古いポートAメモリアクセス要求が除去され得る)。ステップ330において、DONEがパルスの高レベルにされ得、それによって、Mclkが低をクロックし、かつAoutclkがパルスの高レベルにするようにトリガーする。経路332によって示されるように、(存在するなら)処理は追加のAポート要求を処理するために、ステップ316に戻るようにループし得る。
【0072】
図1の仲裁回路22を有するメモリ回路網と、図4の半同期TDMシーケンス回路101を有するメモリ回路網とのデュアルポート実装は、単なる例示に過ぎず、本発明の範囲を限定するように機能しない。必要に応じて、本明細書において説明された非同期および半同期デュアルポートエミュレーション技術は、3ポートメモリ動作、4ポートメモリ動作等をエミュレートするために適用され得る。
【0073】
追加の実施形態:
追加の実施形態1:第1のポートと第2のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、該第1のポートにおいて、第1のメモリアクセス要求と、関連付けられた第1のクロック信号とを受信することと、該第2のポートにおいて、第2のメモリアクセス要求と、関連付けられた第2のクロック信号とを受信することと、制御回路を用いて該第2のクロック信号の立ち上りクロックエッジを検出することに応答して、第3のクロック信号を生成し、かつ該第2のメモリアクセス要求にサービスを提供することと、該第2のメモリアクセス要求がサービスを提供されている間に、該第3のクロック信号を用いて該第1のメモリアクセス要求をサンプリングすることとを含む、方法。
【0074】
追加の実施形態2:上記第3のクロック信号を用いて上記第1のメモリアクセス要求をサンプリングすることは、少なくとも2つの直列接続されたラッチを用いて該第3のクロック信号の立ち上りおよび立ち下りクロックエッジの時に該第1のメモリアクセス要求をサンプリングすることを含む、追加の実施形態1の方法。
【0075】
追加の実施形態3:上記第1のメモリアクセス要求をバッファー回路内に格納することをさらに含み、該バッファー回路は、上記少なくとも2つの直列接続されたラッチから制御信号を受信するように動作可能である、追加の実施形態2の方法。
【0076】
追加の実施形態4:上記バッファー回路を用いて上記第3のクロック信号を受信することをさらに含む、追加の実施形態3の方法。
【0077】
追加の実施形態5:上記デュアルポートメモリは、多重化回路を含み、該多重化回路は、上記少なくとも2つの直列接続されたラッチを介して上記第1のメモリアクセス要求を受信するように動作可能な第1の入力と、上記第2のメモリアクセス要求を受信するように動作可能な第2の入力と、上記制御回路から制御信号を受信するように動作可能な制御入力とを有する、追加の実施形態2の方法。
【0078】
追加の実施形態6:上記第1のメモリアクセス要求をバッファー回路内に格納することをさらに含む、追加の実施形態1の方法。
【0079】
追加の実施形態7:上記制御回路を用いて上記第2のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記単一ポートメモリ要素のアレイへのアクセスを制御するための第4のクロック信号を生成することをさらに含む、追加の実施形態1の方法。
【0080】
追加の実施形態8:上記第2のメモリアクセス要求が遂行されることに応答して、上記制御回路を用いて該第2のメモリアクセス要求の完了を表す制御信号を受信することと、該制御回路を用いて該制御信号を受信することに応答して、上記第1のメモリアクセス要求にサービスを提供することとをさらに含む、追加の実施形態1の方法。
【0081】
追加の実施形態9:第1のポートと第2のポートとを有するデュアルポートメモリを動作させる方法であって、該デュアルポートメモリは、単一ポートメモリ要素のアレイを含み、該方法は、該第1のポートにおいて、第1のメモリアクセス要求と、関連付けられた第1のクロック信号とを受信することと、該第2のポートにおいて、第2のメモリアクセス要求と、関連付けられた第2のクロック信号とを受信することと、該第1のクロック信号のクロックが上昇することに応答して、該第1のメモリアクセス要求をバッファー内に一時的に格納することと、制御回路を用いて該第2のクロック信号の立ち上りクロックエッジを検出することに応答して、該第1のメモリアクセス要求が該バッファー内に格納されている間に、該第2のメモリアクセス要求にサービスを提供することとを含む、方法。
【0082】
追加の実施形態10:上記第2のクロック信号の上記立ち上りクロックエッジを検出することに応答して、上記制御回路を用いて第3のクロック信号をトリガーすることをさらに含む、追加の実施形態9の方法。
【0083】
追加の実施形態11:同期化回路を用いて上記第3のクロック信号を受信することであって、該同期化回路は、少なくとも2つのラッチを含む、ことと、上記バッファーを用いて該第3のクロック信号を受信することとをさらに含む、追加の実施形態10の方法。
【0084】
追加の実施形態12:上記少なくとも2つのラッチは、上記第3のクロック信号の立ち上りクロックエッジの時にデータをラッチするように構成された正エッジトリガー型ラッチと、該第3のクロック信号の立ち下りクロックエッジの時にデータをラッチするように構成された負エッジトリガー型ラッチと含む、追加の実施形態11の方法。
【0085】
追加の実施形態13:上記バッファーを用いて上記同期化回路から制御信号を受信することをさらに含む、追加の実施形態11の方法。
【0086】
追加の実施形態14:上記同期化回路を用いて上記第1のメモリアクセス要求をラッチすることと、該第1のメモリアクセス要求が該同期化回路を用いてラッチされた後に、該第1のメモリアクセス要求を上記バッファーから除去することとをさらに含む、追加の実施形態11の方法。
【0087】
追加の実施形態15:上記バッファーは、ファーストインファーストアウト回路を含む、追加の実施形態9の方法。
【0088】
追加の実施形態16:第1のポートと第2のポートとを有するデュアルポートメモリであって、該デュアルポートメモリは、単一ポートメモリ要素のアレイと、第1のメモリアクセス要求と、該第1のポートに関連付けられた第1のクロック信号とを受信するように動作可能な第1の入力ラッチと、第2のメモリアクセス要求と、該第2のポートに関連付けられた第2のクロック信号とを受信するように動作可能な第2の入力ラッチであって、該第2のクロック信号は、該第1のクロック信号と異なる、第2の入力ラッチと、該第1のクロック信号を受信せず、該第2のクロック信号を受信するように動作可能な制御回路とを含み、該制御回路は、該第1のメモリアクセス要求および該第2のメモリアクセス要求のうちのいずれが遂行のために選択されるべきであるかを決定する制御信号を生成するようにさらに動作可能である、デュアルポートメモリ。
【0089】
追加の実施形態17:上記第1の入力ラッチから上記第1のメモリアクセス要求を受信するように動作可能な第1の入力と、上記第2の入力ラッチから上記第2のメモリアクセス要求を受信するように動作可能な第2の入力と、上記制御回路から上記制御信号を受信するように動作可能な制御入力とを有する多重化回路をさらに含む、追加の実施形態16の方法。
【0090】
追加の実施形態18:上記第1の入力ラッチと上記多重化回路の上記第1の入力との間に連結されたバッファーをさらに含む、追加の実施形態17の方法。
【0091】
追加の実施形態19:上記バッファーと上記多重化回路の上記第1の入力との間に連結された正エッジトリガー型ラッチおよび負エッジトリガー型ラッチをさらに含む、追加の実施形態18の方法。
【0092】
追加の実施形態20:上記バッファーは、ファーストインファーストアウト回路を含む、追加の実施形態18の方法。
【0093】
上記の内容は、単なる本発明の原理の例示に過ぎず、さまざまな改変が、本発明の範囲および精神から逸脱することなしに、当業者によって加えられ得る。上記実施形態は、単独も任意の組み合わせでも実装され得る。
図1
図2
図3
図4
図5
図6
図7
図8