JP6113964B2 - 動的ポート優先割当能力を有しているメモリコントローラー - Google Patents

動的ポート優先割当能力を有しているメモリコントローラー Download PDF

Info

Publication number
JP6113964B2
JP6113964B2 JP2012121896A JP2012121896A JP6113964B2 JP 6113964 B2 JP6113964 B2 JP 6113964B2 JP 2012121896 A JP2012121896 A JP 2012121896A JP 2012121896 A JP2012121896 A JP 2012121896A JP 6113964 B2 JP6113964 B2 JP 6113964B2
Authority
JP
Japan
Prior art keywords
priority value
memory
circuit
priority
memory controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012121896A
Other languages
English (en)
Other versions
JP2012252700A (ja
Inventor
エイチ. エム. チュー マイケル
エイチ. エム. チュー マイケル
シュルツ ジェフリー
シュルツ ジェフリー
サン チアカン
サン チアカン
カパシ ラビッシュ
カパシ ラビッシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of JP2012252700A publication Critical patent/JP2012252700A/ja
Application granted granted Critical
Publication of JP6113964B2 publication Critical patent/JP6113964B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

本願は、2011年6月1日に出願された米国特許出願第13/151,101号の優先権を主張する。
(背景)
プログラマブル集積回路は、ユーザーによって、カスタム論理機能を実装するように構成され得る1つのタイプの集積回路である。典型的なシナリオにおいて、論理設計者は、カスタム論理回路を設計するためにコンピュータ支援設計(CAD)ツールを用いる。設計処理が完了すると、CADツールは、構成データを生成する。構成データは、プログラマブル集積回路にロードされ、デバイスを所望の論理機能を行うように構成する。
典型的なシステムにおいて、プログラマブル集積回路は、システムメモリと通信するために用いられ得る。このタイプのプログラマブル集積回路は、しばしば、プログラマブル集積回路とシステムメモリとの間のインターフェースとして作用するメモリコントローラーを含む。プログラマブル集積回路は、メモリアクセスリクエストをメモリコントローラーに送信することによって(例えば、メモリコントローラーは、複数のポートを含み、各ポートは、メモリアクセスリクエストをプログラマブル集積回路内のそれぞれのモジュールから受信する)、システムメモリにアクセスするように構成されているモジュールも含む。
メモリコントローラーの各ポートは、対応する優先値を割り当てられる。メモリコントローラーは、異なるモジュールから受信されたメモリアクセスリクエストを実施する順番を決定(つまり、どのメモリアクセスリクエストが他のメモリアクセスリクエストに対して優先されるかを決定)するためにポート優先値を用いる。メモリコントローラーがメモリアクセスリクエストを受信し、実行している間、改変することができない所定のポート優先値がプログラマブル集積回路の従来のメモリコントローラーのポート優先値に割り当てられる。
(概要)
プログラマブル集積回路のような集積回路がシステムメモリと通信するために用いられ得る。プログラマブル集積回路は、複数のモジュールを形成するように構成され得る再構成可能回路を含む。複数のモジュールの各々は、システムメモリへのアクセスを必要とするタスクを行うように動作可能である。プログラマブル集積回路は、異なるモジュールとシステムメモリとの間のインターフェースとして作用するメモリコントローラーも含み得る。さまざまなモジュールがメモリコントローラーに結合され得、時に、本明細書において、「マスター」処理モジュールと呼ばれ得る。
メモリコントローラーは、メモリアクセスリクエストをマスター処理モジュールからポートを介して受信し得る。ポートは、関連付けられた優先値を有している。メモリコントローラーは、システムメモリをメモリアクセスリクエストに応答するように(例えば、所望の読み取り/書き込み動作を行うことによって)構成することによって、メモリアクセスリクエストを実行し得る。優先値更新モジュール(ポート優先更新回路と呼ばれることもある)がプログラマブル集積回路に提供され得る。優先値更新モジュールは、メモリコントローラーがメモリアクセスリクエストを受信および実行している間に、各メモリコントローラーポートに関連付けられた優先値を動的に改変するように構成されている。優先値更新モジュールは、更新信号をアサートすることと、(例として)システムクロック立ち上がりエッジを検出することとに応答して、新たな優先値を異なるメモリポートに提供し得る。
新たな優先値は、さまざまな供給源によって、優先値更新モジュールに提供され得る。例えば、優先値は、シフトレジスタ、メモリマップ化レジスタまたはマスター処理モジュールおよびメモリアクセスリクエストによって提供され得る。優先値更新モジュールは、優先アドレス信号および他の制御信号を受信し得、新たな優先値を所望の供給源から対応するメモリコントローラーポートまで、優先アドレスの値および制御信号に基づいて、選択的にルートするために用いられ得る。
本発明のさらなる特徴、その性質およびさまざまな利点は、添付の図面および以下の詳細な説明からより明らかとなる。
例えば、本発明は以下の項目を提供する。
(項目1)
メモリにアクセスするように動作可能な集積回路であって、
該集積回路は、
メモリアクセスリクエストを生成するように動作可能なプログラマブルマスター回路と、
メモリコントローラーであって、該メモリコントローラーは、該メモリアクセスリクエストを該プログラマブルマスター回路から第1および第2のポートにおいて受信するように動作可能であり、該メモリーコントローラーは、該メモリアクセスリクエストを実行するために、該メモリにアクセスするように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを順番に実行するように動作可能である、メモリコントローラーと、
該メモリコントローラーが該メモリアクセスリクエストを実行する順番を制御するように動作可能である制御回路と
を含む、集積回路。
(項目2)
上記メモリコントローラーは、非プログラマブルメモリコントローラーを含む、上記項目のいずれかに記載の集積回路。
(項目3)
上記メモリコントローラーは、優先値に基づく順番で上記メモリにアクセスすることによって、上記メモリアクセスリクエストを実行するようにさらに動作可能であり、上記集積回路は、該優先値を格納するように動作可能な更新レジスタをさらに含む、上記項目のいずれかに記載の集積回路。
(項目4)
シフトレジスタ回路をさらに含み、該シフトレジスタ回路は、上記優先値を上記更新レジスタに提供する、上記項目のいずれかに記載の集積回路。
(項目5)
アドレス指定可能レジスタ回路をさらに含み、該アドレス指定可能レジスタ回路は、上記優先値を上記更新レジスタに提供する、上記項目のいずれかに記載の集積回路。
(項目6)
優先値供給源をさらに含み、該優先値供給源は、上記優先値を上記更新レジスタに供給する、上記項目のいずれかに記載の集積回路。
(項目7)
上記メモリアクセスリクエストの各々は、上記優先値のうちの1つに関連付けられており、上記集積回路は、少なくとも1つの優先値供給源をさらに含み、該少なくとも1つの優先値供給源は、上記更新レジスタに該優先値を供給するように動作可能であり、該少なくとも1つの優先値供給源は、上記メモリコントローラーの第1および第2のポートに該メモリアクセスリクエストを供給するようにさらに動作可能である、上記項目のいずれかに記載の集積回路。
(項目8)
上記少なくとも1つの優先値供給源は、少なくとも1つのマスター処理モジュールを含み、該少なくとも1つのマスター処理モジュールは、上記優先値を上記更新レジスタに動的に供給するように動作可能である、上記項目のいずれかに記載の集積回路。
(項目9)
上記少なくとも1つのマスター処理モジュールは、上記優先値を供給する間に、上記メモリコントローラーの第1および第2のポートに上記メモリアクセスリクエストをさらに供給する、上記項目のいずれかに記載の集積回路。
(項目10)
メモリにアクセスするためのメモリアクセスリクエストを生成するように動作可能な処理回路と、
再構成不可能メモリコントローラーであって、該再構成不可能メモリコントローラーは、該メモリアクセスリクエストを複数のポートにおいて受信するように動作可能であり、該複数のポートの各々は、関連付けられた優先値を有している、再構成不可能メモリコントローラーと、
プログラマブル制御回路であって、該プログラマブル制御回路は、該複数のポートの各々に関連付けられている優先値を動的に調節するように動作可能である、プログラマブル制御回路と
を含み、該メモリコントローラーは、該優先値に基づく順番で該メモリにアクセスすることによって、該メモリアクセスリクエストを実行するようにさらに動作可能である、集積回路。
(項目11)
更新レジスタをさらに含み、該更新レジスタは、上記優先値を格納するように動作可能であり、該更新レジスタは、格納された優先値を上記メモリコントローラーに提供するようにさらに動作可能である、上記項目のいずれかに記載の集積回路。
(項目12)
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、上記優先値のうちの少なくとも1つを供給するように動作可能であり、上記プログラマブル制御回路は、マルチプレクサ回路を含み、該マルチプレクサ回路は、該優先値を該優先値供給源から上記更新レジスタまでルートするように動作可能である、上記項目のいずれかに記載の集積回路。
(項目13)
上記プログラマブル制御回路は、デコーダーをさらに含み、該デコーダーは、上記マルチプレクサ回路を制御することによって、上記優先値を上記更新レジスタにルートするように動作可能である、上記項目のいずれかに記載の集積回路。
(項目14)
上記デコーダーは、優先アドレス入力を含み、該優先アドレス入力は、優先アドレスを受信するように動作可能であり、該優先アドレスは、該デコーダーに制御信号を上記マルチプレクサ回路に発信するように指示することによって、該マルチプレクサ回路に信号を上記優先値供給源のうちの選択された1つから上記更新レジスタのうちの選択された1つまでルートするように指示する、上記項目のいずれかに記載の集積回路。
(項目15)
上記マルチプレクサ回路は、複数のマルチプレクサを含み、該複数のマルチプレクサの各々は、上記デコーダーにそれぞれの制御ラインによって結合され、該複数のマルチプレクサの各々は、信号を上記複数の優先値供給源から上記更新レジスタのうちのそれぞれの1つまで選択的にルートするように動作可能である、上記項目のいずれかに記載の集積回路。
(項目16)
上記処理回路は、少なくとも1つのメモリ素子および少なくとも1つのプログラマブルトランジスタを含み、該少なくとも1つのメモリ素子は、静的出力信号を作成するように動作可能であり、該少なくとも1つのプログラマブルトランジスタは、該静的出力信号を受信するように動作可能なゲートを有している、上記項目のいずれかに記載の集積回路。
(項目17)
上記複数のポートは、第1のポートおよび第2のポートを含み、上記処理回路は、第1のマスター処理回路および第2のマスター処理回路を含み、該第1のマスター処理回路は、メモリアクセスリクエストを該第1のポートに伝送するように動作可能であり、該第2のマスター処理回路は、メモリアクセスリクエストを該第2のポートに伝送するように動作可能であり、上記プログラマブル制御回路は、上記優先値を動的に調節することによって、サービスの質を該第1のマスター処理回路および該第2のマスター処理回路に提供するようにさらに動作可能である、上記項目のいずれかに記載の集積回路。
(項目18)
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、上記優先値のうちの少なくとも1つを供給するように動作可能であり、該優先値供給源は、マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択された少なくとも1つの優先値供給源を含む、上記項目のいずれかに記載の集積回路。
(項目19)
メモリコントローラーであって、該メモリコントローラーは、メモリアクセスリクエストを受信するように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを実行するために、メモリにアクセスするようにさらに動作可能である、メモリコントローラーと、
プログラマブル回路であって、該プログラマブル回路は、該メモリコントローラーに、該メモリアクセス優先情報に基づく順番でメモリアクセスリクエストを実行するように指示するために、該メモリアクセス優先情報を該メモリコントローラーに提供するように動作可能である、プログラマブル回路と
を含む、集積回路。
(項目20)
上記メモリアクセス優先情報は、複数のメモリアクセス優先値を含み、上記プログラマブル回路は、更新レジスタ回路を含み、該更新レジスタ回路は、上記メモリアクセス優先値のうちの少なくとも1つを格納するように動作可能である、上記項目のいずれかに記載の集積回路。
(項目21)
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、メモリアクセス優先値を供給するように動作可能であり、上記プログラマブル回路は、マルチプレクサ回路をさらに含み、該マルチプレクサ回路は、メモリアクセス優先値を該複数の優先値供給源のうちの選択された1つから上記更新レジスタ回路までルートするように動作可能である、上記項目のいずれかに記載の集積回路。
(項目22)
マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択されたメモリアクセス優先情報の少なくとも1つの供給源をさらに含み、上記プログラマブル回路は、少なくとも1つのプログラマブルトランジスタおよび少なくとも1つのメモリ素子を含み、該少なくとも1つのメモリ素子は、静的制御信号を該プログラマブルトランジスタに供給するように動作可能であり、該プログラマブル回路は、該メモリアクセス優先情報を該メモリアクセス優先情報の少なくとも1つの供給源から受信するように動作可能であり、該プログラマブル回路は、どのメモリアクセス優先情報が上記メモリコントローラーに提供されるかを選択するようにさらに動作可能である、上記項目のいずれかに記載の集積回路デバイス。
(摘要)
プログラマブル集積回路は、マスターモジュールとシステムメモリとの間にインターフェース接続するメモリコントローラーを有し得る。メモリコントローラーは、メモリアクセスリクエストをマスターからポートを介して受信し得る。ポートは、関連付けられている優先値を有しており、システムメモリをメモリアクセスリクエストに応答するように構成することによって、メモリアクセスリクエストを実行する。メモリコントローラーがメモリアクセスリクエストを受信および実行している間に、関連付けられた優先値を動的に改変するために、メモリコントローラーポートに対して優先値を動的に更新する優先値更新モジュールが提供され得る。優先値更新モジュールは、更新された優先値に、更新信号およびシステムクロックに基づいて更新された更新レジスタを提供し得る。優先値は、シフトレジスタ、メモリマップ化レジスタによって提供され得るか、またはマスターおよび各メモリアクセスリクエストによって提供され得る。
図1は、本発明の実施形態に従うシステムメモリと通信するように動作可能な例示的プログラマブル集積回路の図である。 図2は、固定ポート優先値を受信するように構成されている従来のメモリコントローラーの図である。 図3は、提供された優先値を、本発明の実施形態に従うシフトレジスタを用いて、受信するように構成されているポート優先更新回路の図である。 図4は、提供された優先値を、本発明の実施形態に従うシフトレジスタおよびメモリマップ化レジスタを用いて、受信するように構成されているポート優先更新回路の図である。 図5は、提供された優先値を、本発明の実施形態に従うシフトレジスタ、メモリマップ化レジスタおよび関連付けられた処理モジュールを用いて、受信するように構成されているポート優先更新回路の図である。 図6は、提供された優先値を、本発明の実施形態に従うさまざまな再構成可能供給源を用いて、受信するように構成されているポート優先更新回路の図である。 図7は、本発明の実施形態に従う各メモリコントローラーポートに対して、所望の優先値を割り当てることに関する例示的ステップのフローチャートである。 図8は、本発明の実施形態に従うメモリコントローラーポート優先値を更新することに関する例示的ステップのフローチャートである。 図9は、本発明の実施形態に従う例示的プログラマブル集積回路の図である。 図10は、どのように構成データが論理設計システムによって作られ、プログラマブルデバイスにロードされることによって、本発明の実施形態に従うシステムにおける動作のためにデバイスを構成するかを示す図である。
(詳細な説明)
本発明の実施形態は、メモリコントローラーを含む集積回路に関する。集積回路、例えば、プログラマブル集積回路は、再構成可能回路(ときどき、本明細書においてソフトファブリックと呼ばれる)を含み得る。ユーザーは、汎用処理モジュールのような処理モジュール、または特別のタスクを行う処理モジュールを形成するために、再構成可能回路を構成し得る。処理モジュールは、(例えば、後の検索のためのデータを格納するために)、システムメモリへのアクセスを要求するタスクを行い得る。
集積回路、例えば、プログラマブル集積回路は、構成データを格納するために、プログラマブルメモリ素子を使用する。プログラマブル集積回路のプログラミングの間に、構成データは、メモリ素子内にロードされる。プログラマブル集積回路の動作の間に、各メモリ素子は、静的出力信号を提供する。メモリ素子によって供給される静的出力信号は、制御信号として作用する。これらの制御信号は、所望の論理機能を行うように、プログラマブル論理をカスタマイズするために、集積回路上のプログラマブル論理に適用される。
プログラマブル集積回路は、処理モジュールとシステムメモリとの間のインターフェースとして作用するメモリコントローラーを提供され得る。集積回路に使用されたメモリコントローラーは、再構成不可能な論理(ときどき、「ハード」メモリコントローラー、「ハードワイヤされた」メモリコントローラー、または「非プログラマブル」メモリコントローラーと呼ばれる)から形成され得る。ハードメモリコントローラーは、構成可能な論理(ときどき、「ソフト」論理と呼ばれる)以上の、向上された性能を提供し得る。
メモリコントローラーと通信する各処理モジュールは、ときどき、「マスター」処理モジュール(またはマスター)と呼ばれ得る。メモリコントローラーは、それぞれのマスター処理モジュールに結合されるポートを有し得る。
マスター処理モジュールが、システムメモリにアクセスする必要があるときに、マスター処理モジュールは、メモリコントローラーにアクセスリクエストを送信し得る。例えば、マスター処理モジュールは、メモリからデータを検索するために、メモリコントローラーに読み取りアクセスリクエストを送信し得る。メモリコントローラーは、読み取りアクセスリクエストを受信し、システムメモリに制御信号を提供することによって読み取りアクセスリクエストを実行し得る。(例えば、メモリコントローラーは、読み取りアクセスリクエストを受信し、システムメモリに、リクエストされたデータに応答するようにシステムメモリを構成する制御信号を提供する。)別の実施例として、マスター処理モジュールは、システムメモリ内にロードされるように、対応する書き込みデータと一緒に書き込みアクセスリクエストをメモリコントローラーに送信し得る。メモリコントローラーは、書き込みアクセスリクエストを受信し、指定されたアドレスにおいてシステムメモリを上書するために、システムメモリを構成することによって書き込みアクセスリクエストを実行し得る。
システムメモリの制限のために、メモリコントローラーは、所与の時間期間内に限定数のアクセスリクエストのみを実行し得る。例えば、システムメモリが、いくつかのメモリバンク(例えば、4個または8個のメモリバンク)から形成され得る。任意の所与の時間において、各メモリバンクは、1つのメモリアクセスリクエストのみを実行するように構成され得る。(すなわち、メモリバンクに対して、第1のメモリアクセスリクエストに続く第2のメモリアクセスリクエストは、メモリコントローラーが第1のメモリアクセスリクエストを実行することを終了するまでに遅延され得る。)
マスター処理モジュールの各々は、多量のメモリアクセスリクエストをメモリコントローラー内の対応するポートに送信し得る。システムメモリの制限のために、マスター処理モジュールからのメモリアクセスリクエストが、連続の順番で処理される。大量のメモリアクセスリクエストを処理するために、メモリコントローラーは、スケジューリング回路(ときどき、スケジューラーと呼ばれる)を提供され得、スケジューリング回路は、マスター処理モジュールからのメモリアクセスアクセスリクエストを並列に受信し、かつ一連の処理に対して所望の順番で(すなわち、所望の順番でマスターからのメモリアクセスリクエストを実行するために)メモリアクセスリクエストを配列する。
マスター処理モジュールの少なくともいくつかからのメモリアクセスリクエストを優先させることが望ましい場合もある。例えば、第1のマスターは、メモリからプログラム命令コードデータを検索するために、読み取りアクセスリクエストを送信する汎用処理回路(例えば、汎用処理タスクを行うように構成されている構成可能回路の一部分)であり得る。第2のマスターは、汎用処理回路から命令を受信する二次処理回路であり得る。(例えば、第2のマスターは、汎用処理回路から命令を受信するのに応じて、ビデオデータを復号するデジタル信号処理回路であり得る。)この実施例において、第2のマスターが、第1のマスターに対して補助である機能を行うので、第2のマスター(すなわち、デジタル信号処理回路)より、第1のマスター(すなわち、汎用処理回路)からのメモリアクセスリクエストを優先させることが望ましい場合もある。仲裁するユニット、例えば、スケジューラーは、より低い優先値を割り当てられたマスターからのメモリアクセスリクエストを実行する前に、より高い優先値を割り当てられたマスターからのメモリアクセスリクエストを実行するように使用され得る。
構成不可能な論理から形成されたメモリコントローラー(すなわち、「ハード」メモリコントローラー)は、メモリコントローラーにハードワイヤされているポート優先度を有する。(すなわち、ポート優先度が、「ハード」メモリコントローラーの通常動作の前に事前に決定され得る。)プログラマブル集積回路の「ハード」メモリコントローラーに動的ポート優先割当の能力を提供することが望ましい場合もある。例えば、第1のマスターは、最初に、第2のマスターの優先度より低い優先度を割り当てられ得る。第1のマスターによって行われるタスクが変化され得る。(例えば、第1のマスターは、遅延に敏感であり、かつ第1のマスターによって最初に行われる機能より高い優先度を要求する機能を行うように構成され得る。)このようなシナリオにおいて、(例えば、第1のマスターに第2のマスターの優先度より高い優先度を提供することによって)、第1のマスターからのメモリアクセスリクエストが実行される優先度を増大させることが望ましい場合もある。
プログラマブル論理集積回路10は、図1に示され、メモリコントローラー12と優先値更新モジュール32とを含み、優先値更新モジュール32は、メモリポート優先度の動的更新を支持する。優先値更新モジュール32が、「ソフト」ファブリック(例えば、構成可能な論理)から形成され得る。メモリコントローラー12は、集積回路10とシステムメモリ14との間のインターフェースとして作用し得る。システムメモリ14は、二重データレート同期の動的ランダムアクセスメモリ(例えば、DDR1、DDR2、およびDDR3SDRAM)または他の適切なタイプのメモリから形成され得る。メモリコントローラー12は、パス40を介してシステムメモリ14に結合され得る。
プログラマブル論理集積回路10は、メモリコントローラー12に読み取りアクセスリクエストおよび書き込みアクセスリクエストを提供することによってシステムメモリ14と通信するために、メモリコントローラー12を使用し得る。メモリコントローラー12は、メモリアクセスリクエストに応答するように、システムメモリ14を構成することによってメモリアクセスリクエストを実行し得る。例えば、デバイス10は、システムメモリ14内の所望のアドレスからデータのワードを読み取るために、メモリコントローラー12に読み取りアクセスリクエストを提供し得る。読み取りリクエストを受信するのに応じて、メモリコントローラー12は、リクエストを処理し、対応する制御信号を生成し、そしてパス40を介してシステムメモリ14に制御信号を運搬する。メモリコントローラー12によって生成された制御信号(例えば、システムクロック、メモリアドレス、およびコマンド信号)は、所望のアドレスに格納されたデータを用いて返答するように、システムメモリ14を構成し得る。別の実施例として、デバイス10は、システムメモリ14内の所望のアドレスにデータのワードを書き込むために、メモリコントローラー12に書き込むアクセスリクエストを提供し得る。書き込みリクエストを受信するのに応じて、メモリコントローラー12は、制御信号(例えば、所望のアドレスにデータのワードを格納するようにシステムメモリ14を構成する信号)を生成し、そしてパス40を介してシステムメモリ14に制御信号を運搬し得る。
プログラマブル論理集積回路10は、構成可能回路、例えば、構成可能回路16を含み得る。構成可能回路16は、さまざまなタスクを行う複数の処理モジュールを形成するように構成され得る。例えば、第1のモジュール18Aは、汎用タスクを行うように構成され得(例えば、モジュール18Aが、汎用処理モジュールとして構成され得る)、第2のモジュール18Bは、他のタスクを行うように構成され得る(例えば、モジュール18Bが、ビデオ復号タスクを行うように構成され得る)。モジュール18(例えば、モジュール18Aおよび18B)は、あるタスクを行うときに、システムメモリ14へのアクセスを要求し得る。例えば、ビデオ復号タスクを完成するために、モジュール18Bは、システムメモリ14内の指定されたアドレスからデータを読み取り、そして格納し得る。
モジュール18は、メモリコントローラー12のそれぞれのポート20に結合され得る。例えば、モジュール18Aは、ポート20Aに結合され得、その一方で、モジュール18Bは、ポート20Bに結合され得る。メモリコントローラーポート20(例えば、メモリコントローラーポート20Aおよび20B)にそれぞれに結合されるモジュール18Aおよび18Bが、本明細書において、マスター処理モジュールまたは簡単に「マスター」と呼ばれ得る。2つの処理モジュールを有する図1の実施例は、単に例示的であり、本発明の範囲を限定する意図がない。所望なら、0個のマスターモジュール、3つ以上のマスターモジュール、10個以上のマスターモジュール、またはシステムメモリ14へのアクセスを要求する他の処理回路が、構成可能回路14を用いて形成され得る。さらに、図1の実施例は、プログラマブル論理から形成されたマスター18を例示するが、他の実施形態において、マスターは、例えば、ASICに見つけられ得るように、ハード化された論理から形成され得る。
メモリコントローラー12を介してシステムメモリ14へのアクセスを要求する多くのマスター処理モジュールがあり得る。これらのマスターは、メモリアクセスリクエストを生成し、そしてメモリアクセスリクエストをメモリコントローラー12に運搬し得る。メモリコントローラー12は、それが受信する限定した数のメモリアクセスリクエストのみを実行し得る。例えば、現在未使用のメモリインターフェースプロトコルによって指定された制限のために、メモリコントローラー12は、一度に1つのメモリアクセスリクエストを実行するように、システムメモリ14を構成することのみが可能であり得る。(例えば、マスター18Aおよび18Bが、メモリコントローラー12にリクエストを並列に送信しても、マスター18Aおよび18Bからのメモリアクセスリクエストが、同時に実行されない場合もある)。
別の処理モジュールに関連付けられたメモリアクセスリクエストに対して、1つのマスマスター処理モジュールに関連付けられたメモリアクセスリクエストを優先させることが望ましい場合もある。例えば、マスター処理モジュール18Bによって行われるタスクは、マスター処理モジュール18Aによって行われるタスクより時間的敏感であり得る。このシナリオにおいて、モジュール18Aからのメモリアクセスリクエストが、モジュール18Bからのメモリアクセスリクエストの前に、メモリコントローラー12に提供されたとしても、モジュール18Bに関連付けられたメモリアクセスリクエストは、モジュール18Aに関連付けられたメモリアクセスリクエストの前に実行され得る。各々がそれぞれの優先レベルを割り当てられる複数のマスター処理モジュールに関連付けられたメモリアクセスリクエストを収容するために、メモリコントローラー12は、スケジューリングモジュール30を含み得る。
スケジューリングモジュール30は、それぞれのパスを介して各マスターモジュールからメモリアクセスリクエストを受信し得る。(例えば、スケジューラー30は、マスター18Aに結合されている第1の端末と、マスター18Bに結合されている第2の端末とを有し得る。)各メモリアクセスリクエストは、メモリアクセスリクエストのタイプに関する情報(例えば、読み取りアクセスリクエスト、書き込みアクセスリクエスト等)、メモリアクセスリクエストに関連付けられたデータ(例えば、システムメモリ14に格納される書き込みデータ)、アドレスデータ(例えば、データを読み取り、または書き込むシステムメモリ14の場所に対応するシステムメモリアドレス)、またはメモリアクセスリクエストに関連付けられた他の望ましい情報を含み得る。各マスター処理モジュールは、マスター処理モジュールが実行されるべきである優先度を表す、対応する優先値を割り当てられ得る。例えば、マスター処理モジュール18Aが、「0」の優先値を割り当てられ得、その一方で、マスター18Bが、「1」の優先値を割り当てられ得る。優先値が、2進符号化を用いて表され得る。例えば、デバイス10が、4つのマスター処理モジュールを用いて構成されている場合に、少なくとも2ビットが、マスター処理モジュールの各々を唯一に識別するように要求され、その一方で、デバイス10が、8つのマスター処理モジュールを用いて構成されている場合に、少なくとも3ビットが、マスター処理モジュールの全部を唯一に識別するように要求される。
優先レベルが、3ビット信号を用いて符号化されるシナリオを考慮する。優先レベルは、例えば、0から7まで(例えば、「000」、「001」、「010」、「011」、「100」、「101」、「110」、および「111」)の値を含み得る。優先値は、メモリアクセスリクエストが実行される優先度に反比例であり得る。例えば、「1」の優先値を有する第1のマスター処理モジュールは、5の優先値を有する第2のマスター処理モジュールより高い優先度を有する。(例えば、第1のマスター処理モジュールからのメモリアクセスリクエストが、第2のマスター処理モジュールからのメモリアクセスリクエストの前に実行され得る。)
プログラマブル集積回路に使用される従来のメモリコントローラーは、メモリコントローラーの各ポートに所定の優先度を割り当てられる。(すなわち、従来のメモリメモリコントローラーは、固定の優先値を受信するスケジューラーを含む。)図2に示されるように、従来のメモリコントローラー100が、それぞれ、パス106および108を介してマスター102Aおよび102Bに結合されており、マスター102Aに関連付けられた第1のセットの優先入力110と、マスター102Bに関連付けられた第2のセットの優先入力112とを有する。入力110は、マスター102Aに対する優先値を受信するように構成されており、その一方で、入力112は、マスター102Bに対する優先値を受信するように構成されている。それゆえに、入力110および112は、ときどき、優先値入力端末と呼ばれる。マスター102Aに0の優先値を割り当てるために、スケジューラー100が、供給電圧信号Vss(すなわち、グラウンド電源電圧)、Vss、および入力110へのVssを提供される。マスター102Bに1の優先値を割り当てるために、スケジューラー100が、供給電圧信号Vss、Vss、および入力112でのVcc(すなわち、正の電源電圧)を提供される。この方法で電源レールまたはプリセットレジスタへ入力110および112をハードワイヤすることは、ここで、優先値が変えられることを可能にすると同時に、メモリコントローラーは、メモリアクセスリクエストを実行するために使用されている。
メモリコントローラー12の電源をオフにすることなしに、各マスター18(例えば、マスター18Aおよび18B)に対する優先値を調整する能力をデバイス10に提供するために、優先値更新モジュール32は、図1に示されるようなパス34および36を介してメモリコントローラー12に結合され得る。パス34が、ポート20Aに結合され得、パス36が、ポート20Bに結合され得る。優先値更新モジュール32は、メモリコントローラー12に、パス34および36を介するポート20Aおよび20Bに対する優先値を提供し得る。
1つの実施形態において、優先値更新モジュール32は、シフトレジスタを含み得る。図3に示されるように、シフトレジスタおよび更新レジスタが、各マスター処理モジュールに対して形成され得る。例えば、マスター18Aは、対応するシフトレジスタ200Aおよび更新レジスタ202Aを有し得、マスター18Bは、対応するシフトレジスタ200Bおよび更新レジスタ202Bを有し得る。図3からのわれわれの実施例のように、更新レジスタ202Aおよび202Bは、パス34および36を介してスケジューリングモジュール30に優先値を提供する。スケジューリングモジュール200は、各々が対応するシフトレジスタおよび更新レジスタ(例えば、マスターがメモリアクセスリクエストを提供するポートに関連付けられているシフトレジスタおよび更新レジスタ)を有する多くのマスターからメモリアクセスリクエストを受信し得る。
各マスターに関連付けられた優先値を提供するために、シフトレジスタ200(例えば、シフトレジスタ200Aおよび200B)は、直列データパスS_inを介して直列のやり方でロードされ得る。例えば、シフトレジスタ200Aに優先値「0」(すなわち、2進値「000」)をロードし、かつシフトレジスタ200Bに優先値「1」(すなわち、2進値「001」)をロードするために、入力シーケンス「000001」が、データパスS_inを通して運搬され得る。この場合において、入力シーケンスの最初の3ビットは、優先値「0」に対応し得、その一方で、入力シーケンスの最後の3ビットは、優先値「1」に対応し得る。
シフトレジスタ200(例えば、シフトレジスタ200Aおよび200B)は、システムクロックCLK(例えば、メモリコントローラー12に関連付けられたシステムクロックCLK)を用いてシフトレジスタを制御することによって、同期のやり方でロードされ得る。システムクロックの各周期の始まりにおいて、入力パスS_in上に提供された入力ビットが、シフトレジスタ200内にシフトされ得る。この方法において、優先値は、優先値のビットの全数と等しい数のクロックサイクルにおいて全部のマスターに割り当てられ得る。
各シフトレジスタが、対応する更新レジスタに結合され得る。(例えば、各シフトレジスタの出力が、対応する更新レジスタの入力に結合され得る。)更新レジスタの出力が、スケジューリングモジュール30の優先値の入力に結合され得る。各シフトレジスタ200に含まれる優先値をスケジューリングモジュール30に同期に提供するために、更新レジスタ202が、システムクロック(CLK)、および更新信号(UPDATE)を用いて起動され得る。例えば、信号CLKおよびUPDATEの両方がアサートされる場合に、更新レジスタが、起動され得る。システムクロックCLKは、メモリコントローラー12の動作周波数と等しい周波数を有し得る。
各シフトレジスタ200Aとスケジューリングモジュール30との間に置かれる更新レジスタ202Aを提供することは、ユーザーが、スケジューリングモジュール30を停止し、またはその電源をオフにすることなしに、直列のやり方で優先値を更新することを可能にする。例えば、マスター18Aに関連付けられた優先値を更新するために、新たな優先値は、直列バスS_inを通してシフトレジスタ200A内に連続してシフトされ得る。新たな優先値が、シフトレジスタ200A内にシフトされる場合に、マスター18Aに関連付けられた優先値を提供する更新レジスタ202Aは、次のシステムクロック(CLK)サイクルにおいて、更新信号のアサーションによって新たな優先値で構成され得る。(すなわち、新たな優先値は、更新信号のアサーションの後に、システムクロックサイクルにおいてメモリコントローラー12に提供され得る。)
更新信号をシステムクロックCLK(例えば、メモリコントローラー12の動作周波数と等しい動作周波数を有するシステムクロックCLK)と同期させることによって、優先値を更新することに関連付けられるグリッチが防げられ得る。例えば、メモリコントローラー12は、非プログラマブル論理から形成され得、構成可能回路16のクロック周波数より大きなクロック周波数で動作し得る。このシナリオにおいて、更新信号は、構成可能回路16によって、更新レジスタ202に提供され得、メモリコントローラー12と構成可能回路16との間の動作クロック周波数における差異に起因するグリッチは、更新信号をシステムクロックCLKと同期させるによって防げられ得る。
所望なら、優先値は、ユーザーによって、並列のやり方で優先値更新モジュール32に提供され得る。図4のダイヤグラムにおいて、優先値は、マルチプレクサ214およびデータパス210を通して、並列に更新レジスタ202Aに提供され得る。優先値は、集積回路10の他の部品212(例えば、メモリマップ化レジスタ、バスインターフェース上にロードされたデバイス、または他の望ましい記憶部品)から提供され得る。
データパス210は、各マルチプレクサ214(例えば、マルチプレクサ214Aおよびマルチプレクサ214B)に結合され得、任意の所与の時間において全部のマルチプレクサ214に単一の優先値を提供すし得る。(例えば、データビットの全部が単一の優先値に対応する。)データパス210は、並列のデータバス、または並列にデータビットを提供するのに適切な他のデータパスであり得る。部品212によって提供された優先値を用いて所与の更新レジスタ(例えば、マスター18Aに関連付けられた更新レジスタ202A)を更新するために、SEL_MMR信号および優先アドレスが提供され得る。優先アドレスは、関心の更新レジスタを識別し得、SEL_MMR信号は、優先値が、部品212によって関心の更新レジスタに提供されることを識別し得る。デコーダーは、優先アドレスおよびSEL_MMR信号を受信し、パス222を介してマルチプレクサ214に適切な制御信号を提供し得る。制御信号は、部品212によって提供された優先値を所望の更新レジスタへルートするように、所望のマルチプレクサを指示し得る。
例えば、マスター18Aに関連付けられた優先値を更新するために、部品212(例えば、メモリマップ化レジスタ)は、新たな優先値を提供し得、システムは、デコーダー220に新たな優先アドレス(例えば、マスター18Aおよび更新レジスタ202Aに対応する優先アドレス「1」)を提供し得る。デコーダーは、優先アドレスを受信し、(例えば、優先アドレスのビットを復号することによって)更新レジスタ202Aが受信された優先アドレスに対応することを識別し得る。更新レジスタ202Aを識別するのに応じて、デコーダー220は、部品212から更新レジスタ202Aへ新たな優先値をルートするパス222Aを介してマルチプレクサ214Aに制御信号を伝送し得る。システムは、更新レジスタ202に更新信号を提供し得る。このシナリオにおいて、更新レジスタ202Aのみが、部品212によって提供された優先値を用いて更新され得る。
この方法において、マスターに関連付けられた単一の優先値が、単一のクロックサイクル内に更新され得る。この並列のやり方で全部のマスター18を更新するために要求されたシステムクロックサイクルの数は、マスターの数に対応し得る。例えば、優先アドレス「1」は、更新レジスタ18Aに対応し得、優先アドレス0は、更新レジスタ18Bに対応し得る。マスター18Aに対する優先値を更新するために、優先アドレス1が、デコーダー220に提供され得、第1の更新信号が、更新レジスタに提供され得る。システムクロック信号の次のアサーションにおいて(例えば、次のシステムクロックサイクルの始まりにおいて)、更新レジスタ18Aは、(例えば、メモリマップ化レジスタ212から)パス210上に提供される第1の優先値を用いて更新され得る。マスター18Bに対する優先値を更新するために、優先アドレス「0」が、デコーダー220に提供され得、第2の更新信号が、(例えば、更新レジスタ18Aが更新されるシステムクロックサイクルの間に)、更新レジスタに提供され得る。システムクロック信号の次のアサーションにおいて(例えば、更新レジスタ18Aが更新されたシステムクロックサイクルの次のシステムクロックサイクルの始まりにおいて)、更新レジスタ18Bが、パス210上に提供された第2の優先値を用いて更新され得る。このシナリオにおいて、2つのシステムクロックサイクルが、マスター18Aおよびマスター18Bの優先値を更新するために要求され得る。
マルチプレクサ214の使用は、優先値がさまざまな供給源から提供されることを可能にし得る。図4に示されるように、マルチプレクサ214Aが、第1のシフトレジスタ(例えば、図3の配列からのシフトレジスタ200A)から、および部品212からの優先値を提供され得る。マルチプレクサ214Bが、第2のシフトレジスタ(例えば、図3の配列からのシフトレジスタ200B)から、および部品212からの優先値を提供され得る。さまざまな供給源の間に選択するために、デコーダー220が、優先アドレス信号に加えてSEL_MMR信号のような制御信号を提供され得る。図4の実施例において、SEL_MMR信号がアサートされ、かつ優先アドレスが提供される場合に、デコーダー212は、部品212から優先値を選択するように、提供された優先アドレスに対応するマルチプレクサを指示し得る。この場合において、デコーダーは、対応するシフトレジスタから優先値を選択するように、全部の他のマルチプレクサを指示し得る。(例えば、SEL_MMRがアサートされ、かつ更新レジスタ202Aに対応する優先アドレス「1」が提供される場合に、マルチプレクサ214Aが、部品212から提供された優先値をルートするように指示され得、マルチプレクサ214Bが、シフトレジスタから提供された優先値をルートするように指示され得。)
デコーダーは、任意の優先値の供給源を選択するために、デコーダー(すなわち、各識別されていないマルチプレクサ)に提供された優先アドレスによって識別されたマルチプレクサ以外のマルチプレクサを指示し得る。各識別されていないマルチプレクサによって選択された供給源は、更新信号がアサートされるたびに、デフォルト優先値を提供する供給源を反映し得る。この方法において、優先アドレスによって識別されていない更新レジスタは、更新信号がアサートされるときに、デフォルト優先値を保持し得る。例えば、マスター18Bに関連付けられたポートに、関連付けられたシフトレジスタ200Bに格納されたデフォルト優先値「2」を提供することが望ましい場合もある。マスター18Bに2のデフォルト優先値を提供するために、デコーダー220は、マルチプレクサ214Bに対応しない優先アドレスがデコーダー220に提供されるたびに、シフトレジスタ200Bから優先値を選択するように、マルチプレクサ214Bを指示し得る。(例えば、デコーダー220がmux214Bに対応しない優先アドレス「1」を受信する場合に、デコーダー220は、シフトレジスタ200Bに格納されたデフォルト優先値を選択するように、mux214Bを構成し得る。図4の実施形態が、アドレッシングスキームを通して単一のマスターに対する優先値を更新することを示すが、優先値の並列のローディングのための他の方法は、当業者にとって明白になる。これらの代替物は、全部のシフトレジスタ200の同時のローディングと、更新レジスタ202内にそれらをラッチし、または多重化することとを含み得、または個々の更新レジスタ202内に優先値をロードするための他のアドレッシングスキームを含み得る。
別の実施形態において、各メモリアクセスリクエストに対して優先値を動的に更新することが望ましい場合もある。例えば、マスター18Aおよびマスター18Bは、それらのそれぞれの優先値を動的に決定し得る。(例えば、マスター18Aは、そのメモリアクセスリクエストがどれほど時間的敏感であることに基づいてその優先値を決定し得る。)優先値を動的に更新するために、各マスターは、それぞれのメモリアクセスリクエストに対応する優先値を提供し得る。図5は、各マスター18が、優先値更新モジュール32に、対応するメモリアクセスリクエストに対する優先値を提供し得る配列を示す。
図5に示されるように、各マスターは、対応するマルチプレクサ214に結合され得る。例えば、マスター18Aは、パス240Aを介してマルチプレクサ214Aに結合され得、マスター18Bは、パス240Bを介してマルチプレクサ214Bに結合され得る。各マルチプレクサ214は、対応するマスターおよび他の供給源、例えば、図3からのシフトレジスタ200および図4の部分212から、優先値を提供され得る。各マスター18は、対応するパス240を介して、対応するマルチプレクサ214に、マスターに関連付けられた優先値を提供し得る。
実施例として、マスター18Aは、時間的敏感なメモリアクセスリクエスト(例えば、システムメモリからプログラム命令を読み取るための読み取りアクセスリクエスト)を提供し得る。マスター18Aは、最初に、比較的に低い優先度(例えば、10の優先値)を割り当てられ得る。マスター18Aは、時間的敏感なメモリアクセスリクエストが比較的に高い優先度(例えば、1の優先値)で実行されることを望み得る。マスター18Aは、遅延に敏感なメモリアクセスリクエストが、パス22を介してスケジューリングモジュール30に提供される時間の間または前に、パス240Aを介してマルチプレクサ214Aに1の所望の優先値を運搬し得る。
デコーダー220は、関心のマルチプレクサ214を識別する優先アドレスと、マルチプレクサ214が、マルチプレクサを通して、関連付けられたマスター18によって提供された優先値をルートするように構成されるべきであるか否かを識別するSEL_PORT信号と、マルチプレクサが、他の供給源、例えば、部品212(示されていない)によって提供された優先値をルートするように構成されるべきであるか否かを識別するSEL_MMR信号とを提供され得る。例えば、デコーダー220は、マルチプレクサ214Aに対応する優先アドレス「1」およびアサートされたSEL_PORT信号を提供され得る。優先アドレスおよびSEL_PORT信号を受信するのに応じて、デコーダー220は、パス240A上にマスター18Aによって提供された優先値を更新レジスタ202Aに通過するようにマルチプレクサ214Aを構成し得る。
SEL_PORT信号は、スケジューリングモジュール30が、現在、メモリアクセスリクエストを受信しているマスター18に基づいてアサートされ得る。例えば、マスター18Bがスケジューリングモジュール30にメモリアクセスリクエストを提供する場合に、SEL_PORT信号がアサートされ得る(優先アドレスが、適切なマルチプレクサ214を選択する)。メモリアクセスリクエストを提供しているマスター18に基づいてSEL_PORT信号をアサートすることによって、各マスターに関連付けられた優先値が、各提供されたメモリアクセスリクエストと共に動的に更新され得る。(例えば、マスターが、メモリアクセスリクエストおよび優先値を提供するたびに、SEL_PORT信号がアサートされ得る。)
優先値の供給源の数と、図3、図4、および図5のマスターの数とが、さまざまなシナリオを収容するように選択され得る。図6に示されるように、多くのマスター(例えば、マスター18A〜18N)が、スケジューリングモジュール30のポートに結合され、かつ優先値更新モジュール32に結合され得る。各ポートは、優先値の供給源240Cのうちの1つからポートへ優先値を提供する、対応する更新レジスタ202およびマルチプレクサ214を有し得る。例えば、ポート1は、対応するマルチプレクサ214Aと、ポート1(および関連付けられたマスター18A)に対する優先値を識別する更新レジスタ202Aを有し得る。各マルチプレクサ214が、さまざまな優先値の供給源に結合され得る。各マルチプレクサは、シフトレジスタ、バスインターフェース、部品、マスター、またはそのマルチプレクサに関連付けられているポートの優先値を更新するために、優先値を提供する他の供給源の任意の組み合わせに結合され得る。例えば、マルチプレクサ214Aは、各メモリアクセスリクエストと共に優先値を動的に提供するマスター18A、デフォルト優先値を提供するシフトレジスタ、およびユーザー生成優先値を提供するメモリマップ化レジスタに結合され得る。
デコーダー220は、さまざまな優先値の供給源のうちの1つを選択するように各マルチプレクサを構成し得る。所与のポートの優先値を更新するために、デコーダー220は、どのマルチプレクサが構成されるべきであるかを識別する優先アドレスと、そのマルチプレクサのどの供給が、対応する更新レジスタ202に優先値を提供するために選択されるべきであるかを識別する制御信号とを提供され得る。ポート1の優先値を更新するために、デコーダー220は、マルチプレクサ214Aに関連付けられた優先アドレスと、優先値を(実施例のような)更新レジスタ202Aに優先値を提供するためのメモリマップ化レジスタを選択するようにマルチプレクサ214を構成するための制御信号(例えば、SEL_MMR、SEL_PORT、および他の適切な制御信号)とを提供され得る。
破線250によって例示されるように、優先値の供給源240Cは、所望なら、任意の中間に置かれたマルチプレクサを含まない通信パス250を用いて、更新レジスタ202に結合され得る。このタイプの構成は、例えば、単一の優先値の供給源のみを用いて、集積回路の配列に使用され得る。
いくつかの集積回路10は、サービスの品質(QoS)が、システムメモリ14にアクセスするマスター18に提供されることを要求し得る。サービスの品質を提供するために、メモリコントローラー12は、任意の1つのマスターが、他のマスターがシステムメモリにアクセスすることを防止することを防止するために、リソースを動的に再割り当てることを要求され得る。例えば、第1のマスターは、第2のマスターより高い優先度を有し得る。第1のマスターが、多くのメモリアクセスリクエストをメモリコントローラー12に提供する場合に、(すなわち、第1のマスターからのリクエストが、第2のマスターからのリクエストより高い優先度を与えられるので)、第2のマスターからのメモリアクセスリクエストが、決して実行されない場合もある。各マスターに関連付けられた優先値を更新する手段を提供することによって、メモリコントローラー12は、メモリコントローラー12に結合されるマスターの各々にサービスの品質を提供することが可能であり得る。例えば、他のマスターがシステムメモリにアクセスすることを防止するマスターの優先度は、他のマスターがシステムメモリにアクセスすることを可能にするために、減少され得る。
メモリコントローラー12がメモリアクセスリクエストを実行している間に優先値を更新するために、優先値更新モジュール32は、図7に示されるフローチャートの例示的ステップを行い得る。
ステップ302において、優先値更新モジュール32は、優先アドレスおよび制御信号(例えば、SEL_MMR信号およびSEL_PORT信号)を受信し得、優先アドレスに関連付けられているマルチプレクサを識別し得る。例えば、優先値更新モジュール32は、優先アドレス「0」を受信し得、優先アドレス「0」がマルチプレクサ214Bに関連付けられていることを識別し得る。識別されたマルチプレクサは、対応するポートまたは対応するマスターに関連付けられ得る(例えば、マルチプレクサ214Bは、マスター18Bまたはポート2に関連付けられ得る)。受信された制御信号に基づいて、優先値更新モジュール32は、ステップ304、306または308の動作を行うか否かを決定し得る。SEL_PORT信号がアサートされた場合、優先値更新モジュール32は、ステップ304の動作を行い得る。SEL_MMR信号がアサートされた場合、優先値更新モジュール32は、ステップ306の動作を行い得る。SEL_PROT信号とSEL_MMR信号との両方がアサートされなかった場合、優先値更新モジュール32は、ステップ306の動作を行い得る。SEL_PORT信号とSEL_MMR信号との両方がアサートされた場合、優先値更新モジュール32は、制御信号を無視し得るか、もしくはステップ304、ステップ306またはステップ308のいずれかの動作を行い得る。
ステップ304において、優先値更新モジュール32は、識別されたマルチプレクサに、識別されたマルチプレクサに関連付けられているマスター処理モジュール(例えば、優先値を、識別されたマルチプレクサに提供するマスター処理モジュール)から優先値を選択するように指示し得る。例えば、マルチプレクサ214Aは、マスター処理モジュール18Aによってパス240Aを介し、マルチプレクサ214Aに提供された優先値を選択し得る。優先値を選択することによって、マルチプレクサ214Aは、選択された優先値を対応する更新レジスタの入力に運搬し得る(例えば、マルチプレクサ214Aは、マスター処理モジュール18Aによって提供された優先値を更新レジスタ202Aの入力に運搬し得る)。
ステップ306において、優先値更新モジュール32は、識別されたマルチプレクサに、メモリマップ化レジスタのような部品、データバスインターフェースに結合されたモジュール、または単一の優先値をマルチプレクサの全てに提供する他の部品から優先値を選択するように指示し得る(例えば、優先値は、メモリマップ化レジスタに結合された単一のデータバスを介して、マルチプレクサ214A〜214Nの各々に提供され得る)。識別されたマルチプレクサは、選択された優先値を対応する更新レジスタの入力にし得る(例えば、マルチプレクサ214Aは、メモリマップ化レジスタによって提供された優先値を更新レジスタ202Aの入力に運搬し得る)。
ステップ308において、優先値更新モジュール32は、識別されたマルチプレクサに、識別されたマルチプレクサに関連付けられたシフトレジスタ(または優先値更新モジュール32内に配置された他の適切なレジスタ)から優先値を選択するように指示し得る。例えば、マルチプレクサ214Aは、シフトレジスタ200Aによって提供された優先値を選択し得る。識別されたマルチプレクサは、優先値更新モジュール32によって、選択された優先値を対応する更新レジスタの入力にするように構成され得る(例えば、マルチプレクサ214Aは、シフトレジスタ200Aによって提供された優先値を更新レジスタ202Aの入力に運搬し得る)。
ステップ310において、優先値更新モジュール32は、受信された優先アドレスによっては識別されていないマルチプレクサ(つまり、残りのマルチプレクサ)に、デフォルトの供給源から優先値を選択するように指示し得る。デフォルトの供給源は、予め規定され得るか、またはステップ302〜308において、前に選択された供給源であり得る。例として、シフトレジスタ202がデフォルトの供給源(つまり、受信された優先アドレスによっては識別されていないマルチプレクサによって選択された供給源)として予め規定され得る。この場合、残りのマルチプレクサの各々は、対応するシフトレジスタを選択するように構成され得る(例えば、マルチプレクサ214Bは、受信された優先アドレスがマルチプレクサ214Bに関連付けられていない場合、対応するシフトレジスタ214Bを選択するように構成され得る)。別の例として、各マルチプレクサは、ステップ302〜308におけるマルチプレクサに対して、最も新しく選択された供給源を選択するように構成され得る。
ステップ310が並行して(例えば、ステップ304と同時に)行われ得る。例えば、第1のマルチプレクサ214Aに対応する優先アドレスを受信する優先値更新モジュール32は、並行して優先値供給源を第1のマルチプレクサおよび残りのマルチプレクサに対して選択し得る。
ステップ310の動作中に更新信号がアサートされた場合、優先値更新モジュール32は、ステップ312の動作を行い得る。
ステップ312において、優先値更新モジュール32は、選択された優先値の各々を、対応する更新レジスタ(例えば、更新レジスタ202)に、次のシステムクロックサイクルにおいて格納し得る。例えば、更新レジスタ202Aは、マルチプレクサ214Aによって選択された優先値を格納し得る。更新信号は、クロック信号と組合わせられ得ることによって、選択された優先値が次のクロックサイクルにおいて格納される(例えば、選択された優先値は、更新信号とクロック信号との両方がアサートされた場合に格納され得る)。次いで、処理は、ステップ302までループし得、戻る。
メモリコントローラーポートに関連付けられている優先値を更新することが望ましくあり得る。優先値をメモリコントローラーの特定のポートに対して更新するために、優先値更新モジュール32は、図8に示されるフローチャートの例示的ステップを行い得る。
ステップ352において、メモリコントローラーは、優先アドレスおよび関連付けられた制御信号を受信し得る。優先アドレスおよび制御信号は、システムまたは集積回路10の他のモジュールによって提供され得る。
ステップ354において、メモリコントローラーは、受信された優先アドレスに関連付けられているメモリコントローラーポートを識別し得る。例えば、優先値更新モジュール32は、各々がN個の異なる優先アドレスのうちの1つに対応するN個の異なるメモリコントローラーポートのうちの1つを識別するために、受信された優先アドレスを用い得る。
ステップ356において、メモリコントローラーは、優先値供給源を制御信号に基づいて選択し得る。(図6に示されるように)さまざまな優先値供給源があり得、制御信号は、さまざまな優先値供給源のうちのどれが優先値を提供するために選択されるべきかを識別し得る。
ステップ358において、メモリコントローラーは、優先値供給源によって提供された優先値を、メモリコントローラーポートに関連付けられている更新レジスタに格納し得る。更新レジスタに格納された優先値は、更新レジスタに関連付けられているポートに提供されたメモリアクセスリクエストが実行され得る優先度を識別するために用いられ得る。
デバイス10のメモリ素子は、多数の行および列を有しているアレイに組織化され得る。例えば、メモリアレイ回路は、数百および数千の行および列でプログラマブル論理デバイス集積回路上に形成され得る。図9のプログラマブル集積回路10は、メモリアレイ回路が形成され得る例示的集積回路の例である。
図9に示されるように、プログラマブル集積回路10は、信号をデバイス10から駆動し出し、他のデバイスから入力−出力ピン414を介して信号を受信する入力−出力回路412を有し得る。全体的および局所的な垂直および水平の伝導ラインおよびバスのような相互接続リソース416は、信号をデバイス10上でルートするために用いられ得る。相互接続リソース416は、固定相互接続(伝導ライン)およびプログラマブル相互接続(つまり、それぞれの固定相互接続の間のプログラマブル接続)を含む。プログラマブル論理418は、組合わせおよび順序論理回路を含み得る。プログラマブル論理18は、カスタム論理機能を行うように構成され得る。
プログラマブル集積回路10は、ピン414および入力−出力回路412を用いて、構成データ(プログラミングデータとも呼ばれる)をロードされ得るメモリ素子20を含む。ロードされると、メモリ素子は、各々、プログラマブル論理418における関連付けられた論理部品の状態を制御する、対応する静的制御出力信号を提供する。典型的には、メモリ素子出力信号は、金属酸化物半導体(MOS)トランジスタのゲートを制御するために用いられる。例えば、プログラマブル論理から形成されたポート優先更新モジュールは、静的制御出力信号をトランジスタのゲートを制御するために提供するメモリ素子を含み得る。このシナリオにおいて、ポート優先更新モジュールは、静的制御出力信号を変更するメモリ素子に値を格納することによって、構成またはプログラムされ得る。トランジスタの一部は、pチャネル金属酸化物半導体(PMOS)トランジスタであり得る。これらのトランジスタの多くは、マルチプレクサのようなプログラマブル部品におけるnチャネル金属酸化物半導体(NMOS)パストランジスタであり得る。メモリ素子出力が高い場合、そのメモリ素子によって制御されたNMOSパストランジスタは、論理信号をその入力からその出力まで通過させるためにターンオンされる。メモリ素子出力が低い場合、パストランジスタはターンオフされ、論理信号を通過させない。
典型的なメモリ素子420は、クロスカップリングされた反転器を形成するように構成されている多数のトランジスタから形成される。他の配列(例えば、より分散された反転器のような回路を有しているセル)も用いられ得る。1つの適切なアプローチでは、相補型金属酸化物半導体(CMOS)集積回路技術がメモリ素子420を形成するために用いられるので、CMOSベースのメモリ素子実装は、本明細書において、例として記載される。プログラマブル集積回路に関連して、メモリ素子は、構成データを格納し、そのため、構成ランダムアクセスメモリ(CRAM)セルと呼ばれることがある。
デバイス10に対する例示的システム環境が図10に示される。デバイス10は、システム438におけるボード436上に搭載され得る。一般的に、プログラマブル論理デバイス10は、構成データをプログラミング機器もしくは他の適切な機器またはデバイスから受信し得る。図10の例において、プログラマブル論理デバイス10は、構成データを関連付けられた集積回路440から受信する、あるタイプのプログラマブル論理デバイスである。このタイプの配列の場合、必要に応じて、回路440は、プログラマブル論理デバイス10と同じボード436上に搭載され得る。回路440は、消去可能プログラマブルリードオンリーメモリ(EPROM)チップ、組込みメモリを有しているプログラマブル論理デバイス構成データローディングチップ(構成デバイスと呼ばれることもある)または他の適切なデバイスであり得る。システム438が起動した場合(または別の適切なときに)、プログラマブル論理デバイスを構成する構成データが、パス442によって概略的に示されるように、プログラマブル論理デバイスにデバイス440から供給され得る。プログラマブル論理デバイスに供給された構成データは、その構成ランダムアクセスメモリ素子420におけるプログラマブル論理デバイスに格納され得る。
システム438は、処理回路444、格納446(例えば、システムメモリ14)、およびデバイス10と通信する他のシステム部品448を含み得る。システム438の部品は、ボード436のような1つ以上のボード、もしくは他の適切な搭載構造またはハウジング上に配置され得、バスおよび他の電気パス40によって相互接続され得る。
デバイス10に対する構成データがパス452のようなパスを介して、構成デバイス440に供給され得る。構成デバイス40は、例えば、構成データを構成データローディング機器454、またはこのデータを構成デバイス440に格納する他の適切な機器から受信し得る。デバイス440は、ボード436上にインストールされる前または後にデータをロードされ得る。
所望の論理回路をプログラマブル論理デバイスに設計および実装することは格別に大変な仕事であり得る。そのため、論理設計者は、一般的に、回路を設計する際に設計者を補助するコンピュータ支援設計(CAD)ツールに基づく論理設計システムを用いる。論理設計システムは、論理設計者がシステムに対して複雑な回路を設計およびテストすることを助け得る。設計が完了すると、論理設計システムは、適切なプログラマブル論理デバイスを電気的にプログラムするための構成データを生成するために用いられ得る。
図10に示されるように、論理設計システム456によって作成された構成データは、パス458のようなパスを介して、機器454に提供され得る。機器454は、構成データをデバイス440に提供し、デバイス440は、後に、この構成データをプログラマブル論理デバイス10にパス442を介して提供し得る。システム456は、1つ以上のコンピュータおよび1つ以上のソフトウェアプログラムに基づき得る。一般的に、ソフトウェアおよびデータは、システム456における任意のコンピュータ読み取り可能媒体(記憶装置)上に格納され得、図10の記憶装置460として概略的に示される。
典型的なシナリオにおいて、論理設計システム456は、カスタム回路設計を作るために、論理設計者によって用いられる。システム456は、構成デバイス440に提供される対応する構成データを作成する。電源がオンにされると、プログラマブル論理デバイス10上の構成デバイス440およびデータローディング回路が構成データをデバイス10のCRAMセル420にロードするために用いられる。次いで、デバイス10がシステム438の通常の動作で用いられ得る。
(追加実施形態1)メモリにアクセスするように動作可能な集積回路であって、該集積回路は、メモリアクセスリクエストを生成するように動作可能なプログラマブルマスター回路と、メモリコントローラーであって、該メモリコントローラーは、該メモリアクセスリクエストを該プログラマブルマスター回路から第1および第2のポートにおいて受信するように動作可能であり、該メモリーコントローラーは、該メモリアクセスリクエストを実行するために、該メモリにアクセスするように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを順番に実行するように動作可能である、メモリコントローラーと、該メモリコントローラーが該メモリアクセスリクエストを実行する順番を制御するように動作可能である制御回路とを含む、集積回路。
(追加実施形態2)前記メモリコントローラーは、非プログラマブルメモリコントローラーを含む、追加実施形態1に記載の集積回路。
(追加実施形態3)前記メモリコントローラーは、優先値に基づく順番で前記メモリにアクセスすることによって、前記メモリアクセスリクエストを実行するようにさらに動作可能であり、前記集積回路は、該優先値を格納するように動作可能な更新レジスタをさらに含む、追加実施形態1に記載の集積回路。
(追加実施形態4)シフトレジスタ回路をさらに含み、該シフトレジスタ回路は、前記優先値を前記更新レジスタに提供する、追加実施形態3に記載の集積回路。
(追加実施形態5)アドレス指定可能レジスタ回路をさらに含み、該アドレス指定可能レジスタ回路は、前記優先値を前記更新レジスタに提供する、追加実施形態3に記載の集積回路。
(追加実施形態6)
優先値供給源をさらに含み、該優先値供給源は、前記優先値を前記更新レジスタに供給する、追加実施形態3に記載の集積回路。
(追加実施形態7)前記メモリアクセスリクエストの各々は、前記優先値のうちの1つに関連付けられており、前記集積回路は、少なくとも1つの優先値供給源をさらに含み、該少なくとも1つの優先値供給源は、前記更新レジスタに該優先値を供給するように動作可能であり、該少なくとも1つの優先値供給源は、前記メモリコントローラーの第1および第2のポートに該メモリアクセスリクエストを供給するようにさらに動作可能である、追加実施形態6に記載の集積回路。
(追加実施形態8)前記少なくとも1つの優先値供給源は、少なくとも1つのマスター処理モジュールを含み、該少なくとも1つのマスター処理モジュールは、前記優先値を前記更新レジスタに動的に供給するように動作可能である、追加実施形態7に記載の集積回路。
(追加実施形態9)前記少なくとも1つのマスター処理モジュールは、前記優先値を供給する間に、前記メモリコントローラーの第1および第2のポートに前記メモリアクセスリクエストをさらに供給する、追加実施形態8に記載の集積回路。
(追加実施形態10)メモリにアクセスするためのメモリアクセスリクエストを生成するように動作可能な処理回路と、再構成不可能メモリコントローラーであって、該再構成不可能メモリコントローラーは、該メモリアクセスリクエストを複数のポートにおいて受信するように動作可能であり、該複数のポートの各々は、関連付けられた優先値を有している、再構成不可能メモリコントローラーと、プログラマブル制御回路であって、該プログラマブル制御回路は、該複数のポートの各々に関連付けられている優先値を動的に調節するように動作可能である、プログラマブル制御回路とを含み、該メモリコントローラーは、該優先値に基づく順番で該メモリにアクセスすることによって、該メモリアクセスリクエストを実行するようにさらに動作可能である、集積回路。
(追加実施形態11)更新レジスタをさらに含み、該更新レジスタは、前記優先値を格納するように動作可能であり、該更新レジスタは、格納された優先値を前記メモリコントローラーに提供するようにさらに動作可能である、追加実施形態10に記載の集積回路。
(追加実施形態12)複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、前記優先値のうちの少なくとも1つを供給するように動作可能であり、前記プログラマブル制御回路は、マルチプレクサ回路を含み、該マルチプレクサ回路は、該優先値を該優先値供給源から前記更新レジスタまでルートするように動作可能である、追加実施形態11に記載の集積回路。
(追加実施形態13)前記プログラマブル制御回路は、デコーダーをさらに含み、該デコーダーは、前記マルチプレクサ回路を制御することによって、前記優先値を前記更新レジスタにルートするように動作可能である、追加実施形態12に記載の集積回路。
(追加実施形態14)前記デコーダーは、優先アドレス入力を含み、該優先アドレス入力は、優先アドレスを受信するように動作可能であり、該優先アドレスは、該デコーダーに制御信号を前記マルチプレクサ回路に発信するように指示することによって、該マルチプレクサ回路に信号を前記優先値供給源のうちの選択された1つから前記更新レジスタのうちの選択された1つまでルートするように指示する、追加実施形態13に記載の集積回路。
(追加実施形態15)前記マルチプレクサ回路は、複数のマルチプレクサを含み、該複数のマルチプレクサの各々は、前記デコーダーにそれぞれの制御ラインによって結合され、該複数のマルチプレクサの各々は、信号を前記複数の優先値供給源から前記更新レジスタのうちのそれぞれの1つまで選択的にルートするように動作可能である、追加実施形態14に記載の集積回路。
(追加実施形態16)前記処理回路は、少なくとも1つのメモリ素子および少なくとも1つのプログラマブルトランジスタを含み、該少なくとも1つのメモリ素子は、静的出力信号を作成するように動作可能であり、該少なくとも1つのプログラマブルトランジスタは、該静的出力信号を受信するように動作可能なゲートを有している、追加実施形態10に記載の集積回路。
(追加実施形態17)前記複数のポートは、第1のポートおよび第2のポートを含み、前記処理回路は、第1のマスター処理回路および第2のマスター処理回路を含み、該第1のマスター処理回路は、メモリアクセスリクエストを該第1のポートに伝送するように動作可能であり、該第2のマスター処理回路は、メモリアクセスリクエストを該第2のポートに伝送するように動作可能であり、前記プログラマブル制御回路は、前記優先値を動的に調節することによって、サービスの質を該第1のマスター処理回路および該第2のマスター処理回路に提供するようにさらに動作可能である、追加実施形態9に記載の集積回路。
(追加実施形態18)複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、前記優先値のうちの少なくとも1つを供給するように動作可能であり、該優先値供給源は、マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択された少なくとも1つの優先値供給源を含む、追加実施形態10に記載の集積回路。
(追加実施形態19)メモリコントローラーであって、該メモリコントローラーは、メモリアクセスリクエストを受信するように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを実行するために、メモリにアクセスするようにさらに動作可能である、メモリコントローラーと、プログラマブル回路であって、該プログラマブル回路は、該メモリコントローラーに、メモリアクセス優先情報に基づく順番で該メモリアクセスリクエストを実行するように指示するために、該メモリアクセス優先情報を該メモリコントローラーに提供するように動作可能である、プログラマブル回路とを含む、集積回路。
(追加実施形態20)前記メモリアクセス優先情報は、複数のメモリアクセス優先値を含み、前記プログラマブル回路は、更新レジスタ回路を含み、該更新レジスタ回路は、前記メモリアクセス優先値のうちの少なくとも1つを格納するように動作可能である、追加実施形態19に記載の集積回路。
(追加実施形態21)複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、メモリアクセス優先値を供給するように動作可能であり、前記プログラマブル回路は、マルチプレクサ回路をさらに含み、該マルチプレクサ回路は、メモリアクセス優先値を該複数の優先値供給源のうちの選択された1つから前記更新レジスタ回路までルートするように動作可能である、追加実施形態20に記載の集積回路。
(追加実施形態22)マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択されたメモリアクセス優先情報の少なくとも1つの供給源をさらに含み、前記プログラマブル回路は、少なくとも1つのプログラマブルトランジスタおよび少なくとも1つのメモリ素子を含み、該少なくとも1つのメモリ素子は、静的制御信号を該プログラマブルトランジスタに供給するように動作可能であり、該プログラマブル回路は、該メモリアクセス優先情報を該メモリアクセス優先情報の少なくとも1つの供給源から受信するように動作可能であり、該プログラマブル回路は、どのメモリアクセス優先情報が前記メモリコントローラーに提供されるかを選択するようにさらに動作可能である、追加実施形態19に記載の集積回路デバイス。
先述の事項は、本発明の原理を例示しているに過ぎず、さまざまな改変が発明の範囲および精神から逸脱することなく、当業者によってなされ得る。
10 プログラマブル論理集積回路
12 メモリコントローラー
14 システムメモリ
16 構成可能回路
18A、18B モジュール
20A、20B ポート
32 優先値更新モジュール
40 パス

Claims (15)

  1. メモリにアクセスする集積回路であって、
    該集積回路は、
    メモリアクセスリクエストを生成するプログラマブルマスター回路と、
    メモリコントローラーであって、該メモリコントローラーは、該メモリアクセスリクエストを該プログラマブルマスター回路から第1および第2のポートにおいて受信し、該メモリコントローラーは、該メモリアクセスリクエストを実行するために、該メモリにアクセスし、該メモリコントローラーは、該メモリアクセスリクエストを順番に実行し、該メモリコントローラーは、該第1および第2のポートに対するポート優先値に対応する優先値に基づく順番で該メモリにアクセスすることによって、該メモリアクセスリクエストを実行する、メモリコントローラーと、
    該メモリコントローラーが該メモリアクセスリクエストを実行する順番を制御する制御回路と、
    該ポート優先値を格納する更新レジスタと
    を含み、
    該優先値は、該更新レジスタのうちのそれぞれのレジスタに格納され、連続するクロックサイクル中に更新される、集積回路。
  2. 前記メモリコントローラーは、非プログラマブルメモリコントローラーを含む、請求項1に記載の集積回路。
  3. シフトレジスタ回路をさらに含み、該シフトレジスタ回路は、前記優先値を前記更新レジスタに提供する、請求項1に記載の集積回路。
  4. アドレス指定可能レジスタ回路をさらに含み、該アドレス指定可能レジスタ回路は、前記優先値を前記更新レジスタに提供する、請求項1に記載の集積回路。
  5. 優先値供給源をさらに含み、該優先値供給源は、前記優先値を前記更新レジスタに供給する、請求項1に記載の集積回路。
  6. 前記メモリアクセスリクエストの各々は、前記優先値のうちの1つに関連付けられており、前記集積回路は、少なくとも1つの優先値供給源をさらに含み、該少なくとも1つの優先値供給源は、前記更新レジスタに該優先値を供給し、該少なくとも1つの優先値供給源は、さらに、前記メモリコントローラーの第1および第2のポートに該メモリアクセスリクエストを供給する、請求項5に記載の集積回路。
  7. 前記少なくとも1つの優先値供給源は、少なくとも1つのマスター処理モジュールを含み、該少なくとも1つのマスター処理モジュールは、前記優先値を前記更新レジスタに動的に供給する、請求項6に記載の集積回路。
  8. 前記少なくとも1つのマスター処理モジュールは、さらに、前記優先値を供給する間に、前記メモリコントローラーの第1および第2のポートに前記メモリアクセスリクエストを供給する、請求項7に記載の集積回路。
  9. メモリにアクセスするためのメモリアクセスリクエストを生成する処理回路と、
    再構成不可能メモリコントローラーであって、該再構成不可能メモリコントローラーは、該メモリアクセスリクエストを複数のポートにおいて受信し、該複数のポートの各々は、関連付けられた優先値を有している、再構成不可能メモリコントローラーと、
    複数の優先値供給源であって、該複数の優先値供給源の各々は、該優先値のうちの少なくとも1つを供給するように動作可能である、複数の優先値供給源と、
    プログラマブル制御回路であって、該プログラマブル制御回路は、該複数のポートの各々に関連付けられている優先値を動的に調節し、該メモリコントローラーは、さらに、該優先値に基づく順番で該メモリにアクセスすることによって、該メモリアクセスリクエストを実行する、プログラマブル制御回路と、
    更新レジスタであって、該更新レジスタは、該優先値を格納し、該更新レジスタは、さらに、該格納された優先値を該再構成不可能メモリコントローラーに提供する、更新レジスタと
    を含み、
    該プログラマブル制御回路は、
    該更新レジスタと該複数の優先値供給源との間に結合されたマルチプレクサ回路と、
    デコーダーであって、該デコーダーは、該マルチプレクサ回路を制御することによって、該優先値を、選択された優先値供給源から、該更新レジスタのうちの該再構成不可能メモリコントローラーの選択されたポートに関連付けられた更新レジスタにルートし、該デコーダーは、該メモリコントローラーの選択されていないポートに対するデフォルト優先値供給源から該優先値を選択する、デコーダーと
    を含む、集積回路。
  10. 前記デコーダーは、優先アドレス入力を含み、該優先アドレス入力は、優先アドレスを受信し、該優先アドレスは、該デコーダーに制御信号を前記マルチプレクサ回路に発信するように指示することによって、該マルチプレクサ回路に信号を前記優先値供給源のうちの選択された1つから前記更新レジスタのうちの選択された1つまでルートするように指示する、請求項9に記載の集積回路。
  11. 前記マルチプレクサ回路は、複数のマルチプレクサを含み、該複数のマルチプレクサの各々は、前記デコーダーにそれぞれの制御ラインによって結合され、該複数のマルチプレクサの各々は、信号を前記複数の優先値供給源から前記更新レジスタのうちのそれぞれの1つまで選択的にルートする、請求項10に記載の集積回路。
  12. 前記処理回路は、少なくとも1つのメモリ素子および少なくとも1つのプログラマブルトランジスタを含み、該少なくとも1つのメモリ素子は、静的出力信号を作成し、該少なくとも1つのプログラマブルトランジスタは、該静的出力信号を受信するゲートを有している、請求項9に記載の集積回路。
  13. 前記複数のポートは、第1のポートおよび第2のポートを含み、前記処理回路は、第1のマスター処理回路および第2のマスター処理回路を含み、該第1のマスター処理回路は、メモリアクセスリクエストを該第1のポートに伝送し、該第2のマスター処理回路は、メモリアクセスリクエストを該第2のポートに伝送し、前記プログラマブル制御回路は、さらに、前記優先値を動的に調節することによって、サービスの質を該第1のマスター処理回路および該第2のマスター処理回路に提供する、請求項9に記載の集積回路。
  14. 複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、前記優先値のうちの少なくとも1つを供給し、該優先値供給源は、マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択された少なくとも1つの優先値供給源を含む、請求項9に記載の集積回路。
  15. 集積回路であって、該集積回路は、
    メモリアクセスリクエストを生成する複数の処理モジュールと、
    メモリコントローラーであって、該メモリコントローラーは、メモリアクセスリクエストを受信し、該メモリコントローラーは、さらに、メモリアクセス優先情報に基づく順番で該メモリアクセスリクエストを実行するために、メモリにアクセスし、該メモリアクセス優先情報は、該複数の処理モジュールの各々に対応するそれぞれの値を含み、該それぞれの値のうちの少なくとも2つの値は、該メモリコントローラーの電源をオフにすることなしに、同期して調節することができる、メモリコントローラーと、
    プログラマブル回路であって、該プログラマブル回路は、該プログラマブル回路内のプログラマブルメモリ素子によって格納された構成データに基づいて、該メモリアクセス優先情報を該メモリコントローラーに提供する、プログラマブル回路と
    を含み、
    該メモリアクセス優先情報は、複数のメモリアクセス優先値を含み、該プログラマブル回路は、更新レジスタ回路を含み、該更新レジスタ回路は、該メモリアクセス優先値のうちの少なくとも1つを格納し、
    該集積回路は、
    複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、メモリアクセス優先値を供給し、プログラマブル回路は、マルチプレクサ回路をさらに含み、該マルチプレクサ回路は、メモリアクセス優先値を該複数の優先値供給源のうちの選択された1つから更新レジスタ回路までルートする集積回路。
JP2012121896A 2011-06-01 2012-05-29 動的ポート優先割当能力を有しているメモリコントローラー Active JP6113964B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/151,101 2011-06-01
US13/151,101 US9208109B2 (en) 2011-06-01 2011-06-01 Memory controllers with dynamic port priority assignment capabilities

Publications (2)

Publication Number Publication Date
JP2012252700A JP2012252700A (ja) 2012-12-20
JP6113964B2 true JP6113964B2 (ja) 2017-04-12

Family

ID=46545236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012121896A Active JP6113964B2 (ja) 2011-06-01 2012-05-29 動的ポート優先割当能力を有しているメモリコントローラー

Country Status (4)

Country Link
US (1) US9208109B2 (ja)
EP (1) EP2530600A3 (ja)
JP (1) JP6113964B2 (ja)
CN (1) CN102810082B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9354989B1 (en) * 2011-10-03 2016-05-31 Netapp, Inc Region based admission/eviction control in hybrid aggregates
US9251103B2 (en) * 2012-08-08 2016-02-02 Vmware, Inc. Memory-access-resource management
US9342402B1 (en) * 2014-01-28 2016-05-17 Altera Corporation Memory interface with hybrid error detection circuitry for modular designs
US9928183B2 (en) * 2014-09-26 2018-03-27 Ampere Computing Llc Priority framework for a computing device
KR20170060300A (ko) * 2015-11-24 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
CN107340973B (zh) * 2017-07-05 2021-04-13 郑州云海信息技术有限公司 一种访问异步逻辑单元的方法及系统
US10909046B2 (en) * 2018-06-15 2021-02-02 Micron Technology, Inc. Memory access determination
CN110348253B (zh) * 2018-08-20 2020-10-13 广州知弘科技有限公司 基于大数据的信息安全系统的延时处理电路和方法
US10909292B1 (en) * 2019-02-14 2021-02-02 Xilinx, Inc. Implementing circuit designs on multi-die programmable devices
EP4208796A1 (en) * 2020-11-05 2023-07-12 Google LLC Memory-request priority up-leveling
CN114554126B (zh) * 2022-01-29 2023-08-25 山东云海国创云计算装备产业创新中心有限公司 一种基板管理控制芯片、视频数据传输方法及服务器
CN115118677A (zh) * 2022-06-24 2022-09-27 无锡中微亿芯有限公司 一种fpga中的片上网络的路由节点调度方法

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4006466A (en) 1975-03-26 1977-02-01 Honeywell Information Systems, Inc. Programmable interface apparatus and method
JPS5839343B2 (ja) * 1975-12-04 1983-08-29 株式会社東芝 マルチプロセツサシステム ノ ユウセンセイギヨホウシキ
US4400771A (en) * 1975-12-04 1983-08-23 Tokyo Shibaura Electric Co., Ltd. Multi-processor system with programmable memory-access priority control
JPS5839344B2 (ja) * 1975-12-04 1983-08-29 株式会社東芝 マルチプロセツサシステム ノ セイギヨホウシキ
US4488218A (en) * 1982-01-07 1984-12-11 At&T Bell Laboratories Dynamic priority queue occupancy scheme for access to a demand-shared bus
US4814974A (en) 1982-07-02 1989-03-21 American Telephone And Telegraph Company, At&T Bell Laboratories Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements
US4493036A (en) 1982-12-14 1985-01-08 Honeywell Information Systems Inc. Priority resolver having dynamically adjustable priority levels
US5025370A (en) * 1986-09-02 1991-06-18 Koegel Robert J Circuit for preventing lock-out of high priority requests to a system controller
JPS63238630A (ja) * 1987-03-26 1988-10-04 Toshiba Corp マイクロプロセツサの割込み制御装置
US5440752A (en) 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US5420985A (en) * 1992-07-28 1995-05-30 Texas Instruments Inc. Bus arbiter system and method utilizing hardware and software which is capable of operation in distributed mode or central mode
US5832304A (en) 1995-03-15 1998-11-03 Unisys Corporation Memory queue with adjustable priority and conflict detection
US5729495A (en) * 1995-09-29 1998-03-17 Altera Corporation Dynamic nonvolatile memory cell
US6157210A (en) * 1997-10-16 2000-12-05 Altera Corporation Programmable logic device with circuitry for observing programmable logic circuit signals and for preloading programmable logic circuits
US6700899B1 (en) * 1998-02-03 2004-03-02 Broadcom Corporation Bit slice arbiter
US6381673B1 (en) * 1998-07-06 2002-04-30 Netlogic Microsystems, Inc. Method and apparatus for performing a read next highest priority match instruction in a content addressable memory device
US6253262B1 (en) * 1998-09-11 2001-06-26 Advanced Micro Devices, Inc. Arbitrating FIFO implementation which positions input request in a buffer according to its status
US6563506B1 (en) * 1998-12-14 2003-05-13 Ati International Srl Method and apparatus for memory bandwith allocation and control in a video graphics system
JP3319723B2 (ja) * 1999-04-02 2002-09-03 日本電気株式会社 スイッチ及びそのスケジューラ並びにスイッチスケジューリング方法
US6661733B1 (en) * 2000-06-15 2003-12-09 Altera Corporation Dual-port SRAM in a programmable logic device
DE10211054A1 (de) * 2002-03-13 2003-10-09 Advanced Micro Devices Inc USB-Hostcontroller
US6799304B2 (en) 2002-10-01 2004-09-28 Lsi Logic Corporation Arbitration within a multiport AMBA slave
JP4266619B2 (ja) * 2002-11-25 2009-05-20 株式会社ルネサステクノロジ 調停回路
JP2005092630A (ja) * 2003-09-18 2005-04-07 Sony Corp メモリ制御装置及び制御方法
JP4305378B2 (ja) * 2004-12-13 2009-07-29 ソニー株式会社 データ処理システム、アクセス制御方法、その装置およびそのプログラム
US7797467B2 (en) 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US7430148B2 (en) * 2005-11-17 2008-09-30 Altera Corporation Volatile memory elements with boosted output voltages for programmable logic device integrated circuits
US7330049B2 (en) * 2006-03-06 2008-02-12 Altera Corporation Adjustable transistor body bias generation circuitry with latch-up prevention
US7917676B2 (en) * 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
US7463057B1 (en) * 2006-03-29 2008-12-09 Altera Corporation Integrated circuits with adjustable memory element power supplies
US7475315B1 (en) * 2007-01-10 2009-01-06 Altera Corporation Configurable built in self test circuitry for testing memory arrays
US7908440B2 (en) 2007-08-09 2011-03-15 Intel Corporation Simultaneous personal sensing and data storage
US7589556B1 (en) * 2007-10-26 2009-09-15 Altera Corporation Dynamic control of memory interface timing
JP5233360B2 (ja) * 2008-03-27 2013-07-10 富士通株式会社 メモリ制御装置,メモリ制御装置の制御方法および情報処理装置
US7793025B2 (en) * 2008-03-28 2010-09-07 Freescale Semiconductor, Inc. Hardware managed context sensitive interrupt priority level control
US7872512B2 (en) * 2008-04-01 2011-01-18 Altera Corporation Robust time borrowing pulse latches
US20100162065A1 (en) * 2008-12-19 2010-06-24 Unity Semiconductor Corporation Protecting integrity of data in multi-layered memory with data redundancy
US7920410B1 (en) * 2009-02-23 2011-04-05 Altera Corporation Memory elements with increased write margin and soft error upset immunity
JP2010282405A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp データ処理システム
EP2296091A1 (en) * 2009-09-14 2011-03-16 Nxp B.V. Servicing low-latency requests ahead of best-effort requests
US9135215B1 (en) * 2009-09-21 2015-09-15 Tilera Corporation Route prediction in packet switched networks
US8438326B2 (en) * 2010-06-07 2013-05-07 Xilinx, Inc. Scalable memory interface system

Also Published As

Publication number Publication date
EP2530600A2 (en) 2012-12-05
CN102810082B (zh) 2017-06-27
CN102810082A (zh) 2012-12-05
EP2530600A3 (en) 2013-11-27
US9208109B2 (en) 2015-12-08
US20120311277A1 (en) 2012-12-06
JP2012252700A (ja) 2012-12-20

Similar Documents

Publication Publication Date Title
JP6113964B2 (ja) 動的ポート優先割当能力を有しているメモリコントローラー
US20190018063A1 (en) Programmable integrated circuits with in-operation reconfiguration capability
US10268392B2 (en) Memory controller architecture with improved memory scheduling efficiency
US10482934B2 (en) Memory controller architecture with improved memory scheduling efficiency
JP5969284B2 (ja) 電子回路網の信頼性を向上させるための装置および関連する方法
US8897083B1 (en) Memory interface circuitry with data strobe signal sharing capabilities
JP2004056716A (ja) 半導体装置
JP2017038247A (ja) 再構成可能な半導体装置
US9330218B1 (en) Integrated circuits having input-output circuits with dedicated memory controller circuitry
JPH0784863A (ja) 情報処理装置およびそれに適した半導体記憶装置
US8519740B2 (en) Integrated circuits with shared interconnect buses
US9984734B2 (en) Programmable integrated circuits with in-operation reconfiguration capability
US9503096B1 (en) Multiple-layer configuration storage for runtime reconfigurable systems
US11016742B2 (en) Channel sizing for inter-kernel communication
US7444613B1 (en) Systems and methods for mapping arbitrary logic functions into synchronous embedded memories
US9244867B1 (en) Memory controller interface with adjustable port widths
JP5336398B2 (ja) 半導体集積回路、半導体集積回路の構成変更方法
US9733855B1 (en) System and methods for adjusting memory command placement
US9367450B1 (en) Address arithmetic on block RAMs
US10509757B2 (en) Integrated circuits having expandable processor memory
US9570134B1 (en) Reducing transactional latency in address decoding
JP2008293226A (ja) 半導体装置
WO2017118417A1 (en) Multiple-layer configuration storage for runtime reconfigurable systems
JP6493044B2 (ja) マルチプロセッサシステム
US8861283B1 (en) Systems and methods for reducing leakage current in memory arrays

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170127

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170316

R150 Certificate of patent or registration of utility model

Ref document number: 6113964

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250