(57)【要約】【課題】動的ポート優先割当能力を有しているメモリコントローラーを提供すること。【解決手段】メモリにアクセスするように動作可能な集積回路であって、該集積回路は、メモリアクセスリクエストを生成するように動作可能なプログラマブルマスター回路と、メモリコントローラーであって、該メモリコントローラーは、該メモリアクセスリクエストを該プログラマブルマスター回路から第１および第２のポートにおいて受信するように動作可能であり、該メモリーコントローラーは、該メモリアクセスリクエストを実行するために、該メモリにアクセスするように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを順番に実行するように動作可能である、メモリコントローラーと、該メモリコントローラーが該メモリアクセスリクエストを実行する順番を制御するように動作可能である制御回路とを含む、集積回路。【選択図】図１
2012252700.tif 000002
【特許請求の範囲】
【請求項１】
メモリにアクセスするように動作可能な集積回路であって、
該集積回路は、
メモリアクセスリクエストを生成するように動作可能なプログラマブルマスター回路と、
メモリコントローラーであって、該メモリコントローラーは、該メモリアクセスリクエストを該プログラマブルマスター回路から第１および第２のポートにおいて受信するように動作可能であり、該メモリーコントローラーは、該メモリアクセスリクエストを実行するために、該メモリにアクセスするように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを順番に実行するように動作可能である、メモリコントローラーと、
該メモリコントローラーが該メモリアクセスリクエストを実行する順番を制御するように動作可能である制御回路と
を含む、集積回路。
【請求項２】
前記メモリコントローラーは、非プログラマブルメモリコントローラーを含む、請求項１に記載の集積回路。
【請求項３】
前記メモリコントローラーは、優先値に基づく順番で前記メモリにアクセスすることによって、前記メモリアクセスリクエストを実行するようにさらに動作可能であり、前記集積回路は、該優先値を格納するように動作可能な更新レジスタをさらに含む、請求項１に記載の集積回路。
【請求項４】
シフトレジスタ回路をさらに含み、該シフトレジスタ回路は、前記優先値を前記更新レジスタに提供する、請求項３に記載の集積回路。
【請求項５】
アドレス指定可能レジスタ回路をさらに含み、該アドレス指定可能レジスタ回路は、前記優先値を前記更新レジスタに提供する、請求項３に記載の集積回路。
【請求項６】
優先値供給源をさらに含み、該優先値供給源は、前記優先値を前記更新レジスタに供給する、請求項３に記載の集積回路。
【請求項７】
前記メモリアクセスリクエストの各々は、前記優先値のうちの１つに関連付けられており、前記集積回路は、少なくとも１つの優先値供給源をさらに含み、該少なくとも１つの優先値供給源は、前記更新レジスタに該優先値を供給するように動作可能であり、該少なくとも１つの優先値供給源は、前記メモリコントローラーの第１および第２のポートに該メモリアクセスリクエストを供給するようにさらに動作可能である、請求項６に記載の集積回路。
【請求項８】
前記少なくとも１つの優先値供給源は、少なくとも１つのマスター処理モジュールを含み、該少なくとも１つのマスター処理モジュールは、前記優先値を前記更新レジスタに動的に供給するように動作可能である、請求項７に記載の集積回路。
【請求項９】
前記少なくとも１つのマスター処理モジュールは、前記優先値を供給する間に、前記メモリコントローラーの第１および第２のポートに前記メモリアクセスリクエストをさらに供給する、請求項８に記載の集積回路。
【請求項１０】
メモリにアクセスするためのメモリアクセスリクエストを生成するように動作可能な処理回路と、
再構成不可能メモリコントローラーであって、該再構成不可能メモリコントローラーは、該メモリアクセスリクエストを複数のポートにおいて受信するように動作可能であり、該複数のポートの各々は、関連付けられた優先値を有している、再構成不可能メモリコントローラーと、
プログラマブル制御回路であって、該プログラマブル制御回路は、該複数のポートの各々に関連付けられている優先値を動的に調節するように動作可能である、プログラマブル制御回路と
を含み、該メモリコントローラーは、該優先値に基づく順番で該メモリにアクセスすることによって、該メモリアクセスリクエストを実行するようにさらに動作可能である、集積回路。
【請求項１１】
更新レジスタをさらに含み、該更新レジスタは、前記優先値を格納するように動作可能であり、該更新レジスタは、格納された優先値を前記メモリコントローラーに提供するようにさらに動作可能である、請求項１０に記載の集積回路。
【請求項１２】
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、前記優先値のうちの少なくとも１つを供給するように動作可能であり、前記プログラマブル制御回路は、マルチプレクサ回路を含み、該マルチプレクサ回路は、該優先値を該優先値供給源から前記更新レジスタまでルートするように動作可能である、請求項１１に記載の集積回路。
【請求項１３】
前記プログラマブル制御回路は、デコーダーをさらに含み、該デコーダーは、前記マルチプレクサ回路を制御することによって、前記優先値を前記更新レジスタにルートするように動作可能である、請求項１２に記載の集積回路。
【請求項１４】
前記デコーダーは、優先アドレス入力を含み、該優先アドレス入力は、優先アドレスを受信するように動作可能であり、該優先アドレスは、該デコーダーに制御信号を前記マルチプレクサ回路に発信するように指示することによって、該マルチプレクサ回路に信号を前記優先値供給源のうちの選択された１つから前記更新レジスタのうちの選択された１つまでルートするように指示する、請求項１３に記載の集積回路。
【請求項１５】
前記マルチプレクサ回路は、複数のマルチプレクサを含み、該複数のマルチプレクサの各々は、前記デコーダーにそれぞれの制御ラインによって結合され、該複数のマルチプレクサの各々は、信号を前記複数の優先値供給源から前記更新レジスタのうちのそれぞれの１つまで選択的にルートするように動作可能である、請求項１４に記載の集積回路。
【請求項１６】
前記処理回路は、少なくとも１つのメモリ素子および少なくとも１つのプログラマブルトランジスタを含み、該少なくとも１つのメモリ素子は、静的出力信号を作成するように動作可能であり、該少なくとも１つのプログラマブルトランジスタは、該静的出力信号を受信するように動作可能なゲートを有している、請求項１０に記載の集積回路。
【請求項１７】
前記複数のポートは、第１のポートおよび第２のポートを含み、前記処理回路は、第１のマスター処理回路および第２のマスター処理回路を含み、該第１のマスター処理回路は、メモリアクセスリクエストを該第１のポートに伝送するように動作可能であり、該第２のマスター処理回路は、メモリアクセスリクエストを該第２のポートに伝送するように動作可能であり、前記プログラマブル制御回路は、前記優先値を動的に調節することによって、サービスの質を該第１のマスター処理回路および該第２のマスター処理回路に提供するようにさらに動作可能である、請求項１０に記載の集積回路。
【請求項１８】
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、前記優先値のうちの少なくとも１つを供給するように動作可能であり、該優先値供給源は、マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択された少なくとも１つの優先値供給源を含む、請求項１０に記載の集積回路。
【請求項１９】
メモリコントローラーであって、該メモリコントローラーは、メモリアクセスリクエストを受信するように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを実行するために、メモリにアクセスするようにさらに動作可能である、メモリコントローラーと、
プログラマブル回路であって、該プログラマブル回路は、該メモリコントローラーに、該メモリアクセス優先情報に基づく順番でメモリアクセスリクエストを実行するように指示するために、該メモリアクセス優先情報を該メモリコントローラーに提供するように動作可能である、プログラマブル回路と
を含む、集積回路。
【請求項２０】
前記メモリアクセス優先情報は、複数のメモリアクセス優先値を含み、前記プログラマブル回路は、更新レジスタ回路を含み、該更新レジスタ回路は、前記メモリアクセス優先値のうちの少なくとも１つを格納するように動作可能である、請求項１９に記載の集積回路。
【請求項２１】
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、メモリアクセス優先値を供給するように動作可能であり、前記プログラマブル回路は、マルチプレクサ回路をさらに含み、該マルチプレクサ回路は、メモリアクセス優先値を該複数の優先値供給源のうちの選択された１つから前記更新レジスタ回路までルートするように動作可能である、請求項２０に記載の集積回路。
【請求項２２】
マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択されたメモリアクセス優先情報の少なくとも１つの供給源をさらに含み、前記プログラマブル回路は、少なくとも１つのプログラマブルトランジスタおよび少なくとも１つのメモリ素子を含み、該少なくとも１つのメモリ素子は、静的制御信号を該プログラマブルトランジスタに供給するように動作可能であり、該プログラマブル回路は、該メモリアクセス優先情報を該メモリアクセス優先情報の少なくとも１つの供給源から受信するように動作可能であり、該プログラマブル回路は、どのメモリアクセス優先情報が前記メモリコントローラーに提供されるかを選択するようにさらに動作可能である、請求項１９に記載の集積回路デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１１年６月１日に出願された米国特許出願第１３／１５１，１０１号の優先権を主張する。
【背景技術】
【０００２】
（背景）
プログラマブル集積回路は、ユーザーによって、カスタム論理機能を実装するように構成され得る１つのタイプの集積回路である。典型的なシナリオにおいて、論理設計者は、カスタム論理回路を設計するためにコンピュータ支援設計（ＣＡＤ）ツールを用いる。設計処理が完了すると、ＣＡＤツールは、構成データを生成する。構成データは、プログラマブル集積回路にロードされ、デバイスを所望の論理機能を行うように構成する。
【０００３】
典型的なシステムにおいて、プログラマブル集積回路は、システムメモリと通信するために用いられ得る。このタイプのプログラマブル集積回路は、しばしば、プログラマブル集積回路とシステムメモリとの間のインターフェースとして作用するメモリコントローラーを含む。プログラマブル集積回路は、メモリアクセスリクエストをメモリコントローラーに送信することによって（例えば、メモリコントローラーは、複数のポートを含み、各ポートは、メモリアクセスリクエストをプログラマブル集積回路内のそれぞれのモジュールから受信する）、システムメモリにアクセスするように構成されているモジュールも含む。
【０００４】
メモリコントローラーの各ポートは、対応する優先値を割り当てられる。メモリコントローラーは、異なるモジュールから受信されたメモリアクセスリクエストを実施する順番を決定（つまり、どのメモリアクセスリクエストが他のメモリアクセスリクエストに対して優先されるかを決定）するためにポート優先値を用いる。メモリコントローラーがメモリアクセスリクエストを受信し、実行している間、改変することができない所定のポート優先値がプログラマブル集積回路の従来のメモリコントローラーのポート優先値に割り当てられる。
【発明の概要】
【課題を解決するための手段】
【０００５】
（概要）
プログラマブル集積回路のような集積回路がシステムメモリと通信するために用いられ得る。プログラマブル集積回路は、複数のモジュールを形成するように構成され得る再構成可能回路を含む。複数のモジュールの各々は、システムメモリへのアクセスを必要とするタスクを行うように動作可能である。プログラマブル集積回路は、異なるモジュールとシステムメモリとの間のインターフェースとして作用するメモリコントローラーも含み得る。さまざまなモジュールがメモリコントローラーに結合され得、時に、本明細書において、「マスター」処理モジュールと呼ばれ得る。
【０００６】
メモリコントローラーは、メモリアクセスリクエストをマスター処理モジュールからポートを介して受信し得る。ポートは、関連付けられた優先値を有している。メモリコントローラーは、システムメモリをメモリアクセスリクエストに応答するように（例えば、所望の読み取り／書き込み動作を行うことによって）構成することによって、メモリアクセスリクエストを実行し得る。優先値更新モジュール（ポート優先更新回路と呼ばれることもある）がプログラマブル集積回路に提供され得る。優先値更新モジュールは、メモリコントローラーがメモリアクセスリクエストを受信および実行している間に、各メモリコントローラーポートに関連付けられた優先値を動的に改変するように構成されている。優先値更新モジュールは、更新信号をアサートすることと、（例として）システムクロック立ち上がりエッジを検出することとに応答して、新たな優先値を異なるメモリポートに提供し得る。
【０００７】
新たな優先値は、さまざまな供給源によって、優先値更新モジュールに提供され得る。例えば、優先値は、シフトレジスタ、メモリマップ化レジスタまたはマスター処理モジュールおよびメモリアクセスリクエストによって提供され得る。優先値更新モジュールは、優先アドレス信号および他の制御信号を受信し得、新たな優先値を所望の供給源から対応するメモリコントローラーポートまで、優先アドレスの値および制御信号に基づいて、選択的にルートするために用いられ得る。
【０００８】
本発明のさらなる特徴、その性質およびさまざまな利点は、添付の図面および以下の詳細な説明からより明らかとなる。
【０００９】
例えば、本発明は以下の項目を提供する。
（項目１）
メモリにアクセスするように動作可能な集積回路であって、
該集積回路は、
メモリアクセスリクエストを生成するように動作可能なプログラマブルマスター回路と、
メモリコントローラーであって、該メモリコントローラーは、該メモリアクセスリクエストを該プログラマブルマスター回路から第１および第２のポートにおいて受信するように動作可能であり、該メモリーコントローラーは、該メモリアクセスリクエストを実行するために、該メモリにアクセスするように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを順番に実行するように動作可能である、メモリコントローラーと、
該メモリコントローラーが該メモリアクセスリクエストを実行する順番を制御するように動作可能である制御回路と
を含む、集積回路。
（項目２）
上記メモリコントローラーは、非プログラマブルメモリコントローラーを含む、上記項目のいずれかに記載の集積回路。
（項目３）
上記メモリコントローラーは、優先値に基づく順番で上記メモリにアクセスすることによって、上記メモリアクセスリクエストを実行するようにさらに動作可能であり、上記集積回路は、該優先値を格納するように動作可能な更新レジスタをさらに含む、上記項目のいずれかに記載の集積回路。
（項目４）
シフトレジスタ回路をさらに含み、該シフトレジスタ回路は、上記優先値を上記更新レジスタに提供する、上記項目のいずれかに記載の集積回路。
（項目５）
アドレス指定可能レジスタ回路をさらに含み、該アドレス指定可能レジスタ回路は、上記優先値を上記更新レジスタに提供する、上記項目のいずれかに記載の集積回路。
（項目６）
優先値供給源をさらに含み、該優先値供給源は、上記優先値を上記更新レジスタに供給する、上記項目のいずれかに記載の集積回路。
（項目７）
上記メモリアクセスリクエストの各々は、上記優先値のうちの１つに関連付けられており、上記集積回路は、少なくとも１つの優先値供給源をさらに含み、該少なくとも１つの優先値供給源は、上記更新レジスタに該優先値を供給するように動作可能であり、該少なくとも１つの優先値供給源は、上記メモリコントローラーの第１および第２のポートに該メモリアクセスリクエストを供給するようにさらに動作可能である、上記項目のいずれかに記載の集積回路。
（項目８）
上記少なくとも１つの優先値供給源は、少なくとも１つのマスター処理モジュールを含み、該少なくとも１つのマスター処理モジュールは、上記優先値を上記更新レジスタに動的に供給するように動作可能である、上記項目のいずれかに記載の集積回路。
（項目９）
上記少なくとも１つのマスター処理モジュールは、上記優先値を供給する間に、上記メモリコントローラーの第１および第２のポートに上記メモリアクセスリクエストをさらに供給する、上記項目のいずれかに記載の集積回路。
（項目１０）
メモリにアクセスするためのメモリアクセスリクエストを生成するように動作可能な処理回路と、
再構成不可能メモリコントローラーであって、該再構成不可能メモリコントローラーは、該メモリアクセスリクエストを複数のポートにおいて受信するように動作可能であり、該複数のポートの各々は、関連付けられた優先値を有している、再構成不可能メモリコントローラーと、
プログラマブル制御回路であって、該プログラマブル制御回路は、該複数のポートの各々に関連付けられている優先値を動的に調節するように動作可能である、プログラマブル制御回路と
を含み、該メモリコントローラーは、該優先値に基づく順番で該メモリにアクセスすることによって、該メモリアクセスリクエストを実行するようにさらに動作可能である、集積回路。
（項目１１）
更新レジスタをさらに含み、該更新レジスタは、上記優先値を格納するように動作可能であり、該更新レジスタは、格納された優先値を上記メモリコントローラーに提供するようにさらに動作可能である、上記項目のいずれかに記載の集積回路。
（項目１２）
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、上記優先値のうちの少なくとも１つを供給するように動作可能であり、上記プログラマブル制御回路は、マルチプレクサ回路を含み、該マルチプレクサ回路は、該優先値を該優先値供給源から上記更新レジスタまでルートするように動作可能である、上記項目のいずれかに記載の集積回路。
（項目１３）
上記プログラマブル制御回路は、デコーダーをさらに含み、該デコーダーは、上記マルチプレクサ回路を制御することによって、上記優先値を上記更新レジスタにルートするように動作可能である、上記項目のいずれかに記載の集積回路。
（項目１４）
上記デコーダーは、優先アドレス入力を含み、該優先アドレス入力は、優先アドレスを受信するように動作可能であり、該優先アドレスは、該デコーダーに制御信号を上記マルチプレクサ回路に発信するように指示することによって、該マルチプレクサ回路に信号を上記優先値供給源のうちの選択された１つから上記更新レジスタのうちの選択された１つまでルートするように指示する、上記項目のいずれかに記載の集積回路。
（項目１５）
上記マルチプレクサ回路は、複数のマルチプレクサを含み、該複数のマルチプレクサの各々は、上記デコーダーにそれぞれの制御ラインによって結合され、該複数のマルチプレクサの各々は、信号を上記複数の優先値供給源から上記更新レジスタのうちのそれぞれの１つまで選択的にルートするように動作可能である、上記項目のいずれかに記載の集積回路。
（項目１６）
上記処理回路は、少なくとも１つのメモリ素子および少なくとも１つのプログラマブルトランジスタを含み、該少なくとも１つのメモリ素子は、静的出力信号を作成するように動作可能であり、該少なくとも１つのプログラマブルトランジスタは、該静的出力信号を受信するように動作可能なゲートを有している、上記項目のいずれかに記載の集積回路。
（項目１７）
上記複数のポートは、第１のポートおよび第２のポートを含み、上記処理回路は、第１のマスター処理回路および第２のマスター処理回路を含み、該第１のマスター処理回路は、メモリアクセスリクエストを該第１のポートに伝送するように動作可能であり、該第２のマスター処理回路は、メモリアクセスリクエストを該第２のポートに伝送するように動作可能であり、上記プログラマブル制御回路は、上記優先値を動的に調節することによって、サービスの質を該第１のマスター処理回路および該第２のマスター処理回路に提供するようにさらに動作可能である、上記項目のいずれかに記載の集積回路。
（項目１８）
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、上記優先値のうちの少なくとも１つを供給するように動作可能であり、該優先値供給源は、マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択された少なくとも１つの優先値供給源を含む、上記項目のいずれかに記載の集積回路。
（項目１９）
メモリコントローラーであって、該メモリコントローラーは、メモリアクセスリクエストを受信するように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを実行するために、メモリにアクセスするようにさらに動作可能である、メモリコントローラーと、
プログラマブル回路であって、該プログラマブル回路は、該メモリコントローラーに、該メモリアクセス優先情報に基づく順番でメモリアクセスリクエストを実行するように指示するために、該メモリアクセス優先情報を該メモリコントローラーに提供するように動作可能である、プログラマブル回路と
を含む、集積回路。
（項目２０）
上記メモリアクセス優先情報は、複数のメモリアクセス優先値を含み、上記プログラマブル回路は、更新レジスタ回路を含み、該更新レジスタ回路は、上記メモリアクセス優先値のうちの少なくとも１つを格納するように動作可能である、上記項目のいずれかに記載の集積回路。
（項目２１）
複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、メモリアクセス優先値を供給するように動作可能であり、上記プログラマブル回路は、マルチプレクサ回路をさらに含み、該マルチプレクサ回路は、メモリアクセス優先値を該複数の優先値供給源のうちの選択された１つから上記更新レジスタ回路までルートするように動作可能である、上記項目のいずれかに記載の集積回路。
（項目２２）
マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択されたメモリアクセス優先情報の少なくとも１つの供給源をさらに含み、上記プログラマブル回路は、少なくとも１つのプログラマブルトランジスタおよび少なくとも１つのメモリ素子を含み、該少なくとも１つのメモリ素子は、静的制御信号を該プログラマブルトランジスタに供給するように動作可能であり、該プログラマブル回路は、該メモリアクセス優先情報を該メモリアクセス優先情報の少なくとも１つの供給源から受信するように動作可能であり、該プログラマブル回路は、どのメモリアクセス優先情報が上記メモリコントローラーに提供されるかを選択するようにさらに動作可能である、上記項目のいずれかに記載の集積回路デバイス。
【００１０】
（摘要）
プログラマブル集積回路は、マスターモジュールとシステムメモリとの間にインターフェース接続するメモリコントローラーを有し得る。メモリコントローラーは、メモリアクセスリクエストをマスターからポートを介して受信し得る。ポートは、関連付けられている優先値を有しており、システムメモリをメモリアクセスリクエストに応答するように構成することによって、メモリアクセスリクエストを実行する。メモリコントローラーがメモリアクセスリクエストを受信および実行している間に、関連付けられた優先値を動的に改変するために、メモリコントローラーポートに対して優先値を動的に更新する優先値更新モジュールが提供され得る。優先値更新モジュールは、更新された優先値に、更新信号およびシステムクロックに基づいて更新された更新レジスタを提供し得る。優先値は、シフトレジスタ、メモリマップ化レジスタによって提供され得るか、またはマスターおよび各メモリアクセスリクエストによって提供され得る。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施形態に従うシステムメモリと通信するように動作可能な例示的プログラマブル集積回路の図である。
【図２】図２は、固定ポート優先値を受信するように構成されている従来のメモリコントローラーの図である。
【図３】図３は、提供された優先値を、本発明の実施形態に従うシフトレジスタを用いて、受信するように構成されているポート優先更新回路の図である。
【図４】図４は、提供された優先値を、本発明の実施形態に従うシフトレジスタおよびメモリマップ化レジスタを用いて、受信するように構成されているポート優先更新回路の図である。
【図５】図５は、提供された優先値を、本発明の実施形態に従うシフトレジスタ、メモリマップ化レジスタおよび関連付けられた処理モジュールを用いて、受信するように構成されているポート優先更新回路の図である。
【図６】図６は、提供された優先値を、本発明の実施形態に従うさまざまな再構成可能供給源を用いて、受信するように構成されているポート優先更新回路の図である。
【図７】図７は、本発明の実施形態に従う各メモリコントローラーポートに対して、所望の優先値を割り当てることに関する例示的ステップのフローチャートである。
【図８】図８は、本発明の実施形態に従うメモリコントローラーポート優先値を更新することに関する例示的ステップのフローチャートである。
【図９】図９は、本発明の実施形態に従う例示的プログラマブル集積回路の図である。
【図１０】図１０は、どのように構成データが論理設計システムによって作られ、プログラマブルデバイスにロードされることによって、本発明の実施形態に従うシステムにおける動作のためにデバイスを構成するかを示す図である。
【発明を実施するための形態】
【００１２】
（詳細な説明）
本発明の実施形態は、メモリコントローラーを含む集積回路に関する。集積回路、例えば、プログラマブル集積回路は、再構成可能回路（ときどき、本明細書においてソフトファブリックと呼ばれる）を含み得る。ユーザーは、汎用処理モジュールのような処理モジュール、または特別のタスクを行う処理モジュールを形成するために、再構成可能回路を構成し得る。処理モジュールは、（例えば、後の検索のためのデータを格納するために）、システムメモリへのアクセスを要求するタスクを行い得る。
【００１３】
集積回路、例えば、プログラマブル集積回路は、構成データを格納するために、プログラマブルメモリ素子を使用する。プログラマブル集積回路のプログラミングの間に、構成データは、メモリ素子内にロードされる。プログラマブル集積回路の動作の間に、各メモリ素子は、静的出力信号を提供する。メモリ素子によって供給される静的出力信号は、制御信号として作用する。これらの制御信号は、所望の論理機能を行うように、プログラマブル論理をカスタマイズするために、集積回路上のプログラマブル論理に適用される。
【００１４】
プログラマブル集積回路は、処理モジュールとシステムメモリとの間のインターフェースとして作用するメモリコントローラーを提供され得る。集積回路に使用されたメモリコントローラーは、再構成不可能な論理（ときどき、「ハード」メモリコントローラー、「ハードワイヤされた」メモリコントローラー、または「非プログラマブル」メモリコントローラーと呼ばれる）から形成され得る。ハードメモリコントローラーは、構成可能な論理（ときどき、「ソフト」論理と呼ばれる）以上の、向上された性能を提供し得る。
【００１５】
メモリコントローラーと通信する各処理モジュールは、ときどき、「マスター」処理モジュール（またはマスター）と呼ばれ得る。メモリコントローラーは、それぞれのマスター処理モジュールに結合されるポートを有し得る。
【００１６】
マスター処理モジュールが、システムメモリにアクセスする必要があるときに、マスター処理モジュールは、メモリコントローラーにアクセスリクエストを送信し得る。例えば、マスター処理モジュールは、メモリからデータを検索するために、メモリコントローラーに読み取りアクセスリクエストを送信し得る。メモリコントローラーは、読み取りアクセスリクエストを受信し、システムメモリに制御信号を提供することによって読み取りアクセスリクエストを実行し得る。（例えば、メモリコントローラーは、読み取りアクセスリクエストを受信し、システムメモリに、リクエストされたデータに応答するようにシステムメモリを構成する制御信号を提供する。）別の実施例として、マスター処理モジュールは、システムメモリ内にロードされるように、対応する書き込みデータと一緒に書き込みアクセスリクエストをメモリコントローラーに送信し得る。メモリコントローラーは、書き込みアクセスリクエストを受信し、指定されたアドレスにおいてシステムメモリを上書するために、システムメモリを構成することによって書き込みアクセスリクエストを実行し得る。
【００１７】
システムメモリの制限のために、メモリコントローラーは、所与の時間期間内に限定数のアクセスリクエストのみを実行し得る。例えば、システムメモリが、いくつかのメモリバンク（例えば、４個または８個のメモリバンク）から形成され得る。任意の所与の時間において、各メモリバンクは、１つのメモリアクセスリクエストのみを実行するように構成され得る。（すなわち、メモリバンクに対して、第１のメモリアクセスリクエストに続く第２のメモリアクセスリクエストは、メモリコントローラーが第１のメモリアクセスリクエストを実行することを終了するまでに遅延され得る。）
マスター処理モジュールの各々は、多量のメモリアクセスリクエストをメモリコントローラー内の対応するポートに送信し得る。システムメモリの制限のために、マスター処理モジュールからのメモリアクセスリクエストが、連続の順番で処理される。大量のメモリアクセスリクエストを処理するために、メモリコントローラーは、スケジューリング回路（ときどき、スケジューラーと呼ばれる）を提供され得、スケジューリング回路は、マスター処理モジュールからのメモリアクセスアクセスリクエストを並列に受信し、かつ一連の処理に対して所望の順番で（すなわち、所望の順番でマスターからのメモリアクセスリクエストを実行するために）メモリアクセスリクエストを配列する。
【００１８】
マスター処理モジュールの少なくともいくつかからのメモリアクセスリクエストを優先させることが望ましい場合もある。例えば、第１のマスターは、メモリからプログラム命令コードデータを検索するために、読み取りアクセスリクエストを送信する汎用処理回路（例えば、汎用処理タスクを行うように構成されている構成可能回路の一部分）であり得る。第２のマスターは、汎用処理回路から命令を受信する二次処理回路であり得る。（例えば、第２のマスターは、汎用処理回路から命令を受信するのに応じて、ビデオデータを復号するデジタル信号処理回路であり得る。）この実施例において、第２のマスターが、第１のマスターに対して補助である機能を行うので、第２のマスター（すなわち、デジタル信号処理回路）より、第１のマスター（すなわち、汎用処理回路）からのメモリアクセスリクエストを優先させることが望ましい場合もある。仲裁するユニット、例えば、スケジューラーは、より低い優先値を割り当てられたマスターからのメモリアクセスリクエストを実行する前に、より高い優先値を割り当てられたマスターからのメモリアクセスリクエストを実行するように使用され得る。
【００１９】
構成不可能な論理から形成されたメモリコントローラー（すなわち、「ハード」メモリコントローラー）は、メモリコントローラーにハードワイヤされているポート優先度を有する。（すなわち、ポート優先度が、「ハード」メモリコントローラーの通常動作の前に事前に決定され得る。）プログラマブル集積回路の「ハード」メモリコントローラーに動的ポート優先割当の能力を提供することが望ましい場合もある。例えば、第１のマスターは、最初に、第２のマスターの優先度より低い優先度を割り当てられ得る。第１のマスターによって行われるタスクが変化され得る。（例えば、第１のマスターは、遅延に敏感であり、かつ第１のマスターによって最初に行われる機能より高い優先度を要求する機能を行うように構成され得る。）このようなシナリオにおいて、（例えば、第１のマスターに第２のマスターの優先度より高い優先度を提供することによって）、第１のマスターからのメモリアクセスリクエストが実行される優先度を増大させることが望ましい場合もある。
【００２０】
プログラマブル論理集積回路１０は、図１に示され、メモリコントローラー１２と優先値更新モジュール３２とを含み、優先値更新モジュール３２は、メモリポート優先度の動的更新を支持する。優先値更新モジュール３２が、「ソフト」ファブリック（例えば、構成可能な論理）から形成され得る。メモリコントローラー１２は、集積回路１０とシステムメモリ１４との間のインターフェースとして作用し得る。システムメモリ１４は、二重データレート同期の動的ランダムアクセスメモリ（例えば、ＤＤＲ１、ＤＤＲ２、およびＤＤＲ３ＳＤＲＡＭ）または他の適切なタイプのメモリから形成され得る。メモリコントローラー１２は、パス４０を介してシステムメモリ１４に結合され得る。
【００２１】
プログラマブル論理集積回路１０は、メモリコントローラー１２に読み取りアクセスリクエストおよび書き込みアクセスリクエストを提供することによってシステムメモリ１４と通信するために、メモリコントローラー１２を使用し得る。メモリコントローラー１２は、メモリアクセスリクエストに応答するように、システムメモリ１４を構成することによってメモリアクセスリクエストを実行し得る。例えば、デバイス１０は、システムメモリ１４内の所望のアドレスからデータのワードを読み取るために、メモリコントローラー１２に読み取りアクセスリクエストを提供し得る。読み取りリクエストを受信するのに応じて、メモリコントローラー１２は、リクエストを処理し、対応する制御信号を生成し、そしてパス４０を介してシステムメモリ１４に制御信号を運搬する。メモリコントローラー１２によって生成された制御信号（例えば、システムクロック、メモリアドレス、およびコマンド信号）は、所望のアドレスに格納されたデータを用いて返答するように、システムメモリ１４を構成し得る。別の実施例として、デバイス１０は、システムメモリ１４内の所望のアドレスにデータのワードを書き込むために、メモリコントローラー１２に書き込むアクセスリクエストを提供し得る。書き込みリクエストを受信するのに応じて、メモリコントローラー１２は、制御信号（例えば、所望のアドレスにデータのワードを格納するようにシステムメモリ１４を構成する信号）を生成し、そしてパス４０を介してシステムメモリ１４に制御信号を運搬し得る。
【００２２】
プログラマブル論理集積回路１０は、構成可能回路、例えば、構成可能回路１６を含み得る。構成可能回路１６は、さまざまなタスクを行う複数の処理モジュールを形成するように構成され得る。例えば、第１のモジュール１８Ａは、汎用タスクを行うように構成され得（例えば、モジュール１８Ａが、汎用処理モジュールとして構成され得る）、第２のモジュール１８Ｂは、他のタスクを行うように構成され得る（例えば、モジュール１８Ｂが、ビデオ復号タスクを行うように構成され得る）。モジュール１８（例えば、モジュール１８Ａおよび１８Ｂ）は、あるタスクを行うときに、システムメモリ１４へのアクセスを要求し得る。例えば、ビデオ復号タスクを完成するために、モジュール１８Ｂは、システムメモリ１４内の指定されたアドレスからデータを読み取り、そして格納し得る。
【００２３】
モジュール１８は、メモリコントローラー１２のそれぞれのポート２０に結合され得る。例えば、モジュール１８Ａは、ポート２０Ａに結合され得、その一方で、モジュール１８Ｂは、ポート２０Ｂに結合され得る。メモリコントローラーポート２０（例えば、メモリコントローラーポート２０Ａおよび２０Ｂ）にそれぞれに結合されるモジュール１８Ａおよび１８Ｂが、本明細書において、マスター処理モジュールまたは簡単に「マスター」と呼ばれ得る。２つの処理モジュールを有する図１の実施例は、単に例示的であり、本発明の範囲を限定する意図がない。所望なら、０個のマスターモジュール、３つ以上のマスターモジュール、１０個以上のマスターモジュール、またはシステムメモリ１４へのアクセスを要求する他の処理回路が、構成可能回路１４を用いて形成され得る。さらに、図１の実施例は、プログラマブル論理から形成されたマスター１８を例示するが、他の実施形態において、マスターは、例えば、ＡＳＩＣに見つけられ得るように、ハード化された論理から形成され得る。
【００２４】
メモリコントローラー１２を介してシステムメモリ１４へのアクセスを要求する多くのマスター処理モジュールがあり得る。これらのマスターは、メモリアクセスリクエストを生成し、そしてメモリアクセスリクエストをメモリコントローラー１２に運搬し得る。メモリコントローラー１２は、それが受信する限定した数のメモリアクセスリクエストのみを実行し得る。例えば、現在未使用のメモリインターフェースプロトコルによって指定された制限のために、メモリコントローラー１２は、一度に１つのメモリアクセスリクエストを実行するように、システムメモリ１４を構成することのみが可能であり得る。（例えば、マスター１８Ａおよび１８Ｂが、メモリコントローラー１２にリクエストを並列に送信しても、マスター１８Ａおよび１８Ｂからのメモリアクセスリクエストが、同時に実行されない場合もある）。
【００２５】
別の処理モジュールに関連付けられたメモリアクセスリクエストに対して、１つのマスマスター処理モジュールに関連付けられたメモリアクセスリクエストを優先させることが望ましい場合もある。例えば、マスター処理モジュール１８Ｂによって行われるタスクは、マスター処理モジュール１８Ａによって行われるタスクより時間的敏感であり得る。このシナリオにおいて、モジュール１８Ａからのメモリアクセスリクエストが、モジュール１８Ｂからのメモリアクセスリクエストの前に、メモリコントローラー１２に提供されたとしても、モジュール１８Ｂに関連付けられたメモリアクセスリクエストは、モジュール１８Ａに関連付けられたメモリアクセスリクエストの前に実行され得る。各々がそれぞれの優先レベルを割り当てられる複数のマスター処理モジュールに関連付けられたメモリアクセスリクエストを収容するために、メモリコントローラー１２は、スケジューリングモジュール３０を含み得る。
【００２６】
スケジューリングモジュール３０は、それぞれのパスを介して各マスターモジュールからメモリアクセスリクエストを受信し得る。（例えば、スケジューラー３０は、マスター１８Ａに結合されている第１の端末と、マスター１８Ｂに結合されている第２の端末とを有し得る。）各メモリアクセスリクエストは、メモリアクセスリクエストのタイプに関する情報（例えば、読み取りアクセスリクエスト、書き込みアクセスリクエスト等）、メモリアクセスリクエストに関連付けられたデータ（例えば、システムメモリ１４に格納される書き込みデータ）、アドレスデータ（例えば、データを読み取り、または書き込むシステムメモリ１４の場所に対応するシステムメモリアドレス）、またはメモリアクセスリクエストに関連付けられた他の望ましい情報を含み得る。各マスター処理モジュールは、マスター処理モジュールが実行されるべきである優先度を表す、対応する優先値を割り当てられ得る。例えば、マスター処理モジュール１８Ａが、「０」の優先値を割り当てられ得、その一方で、マスター１８Ｂが、「１」の優先値を割り当てられ得る。優先値が、２進符号化を用いて表され得る。例えば、デバイス１０が、４つのマスター処理モジュールを用いて構成されている場合に、少なくとも２ビットが、マスター処理モジュールの各々を唯一に識別するように要求され、その一方で、デバイス１０が、８つのマスター処理モジュールを用いて構成されている場合に、少なくとも３ビットが、マスター処理モジュールの全部を唯一に識別するように要求される。
【００２７】
優先レベルが、３ビット信号を用いて符号化されるシナリオを考慮する。優先レベルは、例えば、０から７まで（例えば、「０００」、「００１」、「０１０」、「０１１」、「１００」、「１０１」、「１１０」、および「１１１」）の値を含み得る。優先値は、メモリアクセスリクエストが実行される優先度に反比例であり得る。例えば、「１」の優先値を有する第１のマスター処理モジュールは、５の優先値を有する第２のマスター処理モジュールより高い優先度を有する。（例えば、第１のマスター処理モジュールからのメモリアクセスリクエストが、第２のマスター処理モジュールからのメモリアクセスリクエストの前に実行され得る。）
プログラマブル集積回路に使用される従来のメモリコントローラーは、メモリコントローラーの各ポートに所定の優先度を割り当てられる。（すなわち、従来のメモリメモリコントローラーは、固定の優先値を受信するスケジューラーを含む。）図２に示されるように、従来のメモリコントローラー１００が、それぞれ、パス１０６および１０８を介してマスター１０２Ａおよび１０２Ｂに結合されており、マスター１０２Ａに関連付けられた第１のセットの優先入力１１０と、マスター１０２Ｂに関連付けられた第２のセットの優先入力１１２とを有する。入力１１０は、マスター１０２Ａに対する優先値を受信するように構成されており、その一方で、入力１１２は、マスター１０２Ｂに対する優先値を受信するように構成されている。それゆえに、入力１１０および１１２は、ときどき、優先値入力端末と呼ばれる。マスター１０２Ａに０の優先値を割り当てるために、スケジューラー１００が、供給電圧信号Ｖｓｓ（すなわち、グラウンド電源電圧）、Ｖｓｓ、および入力１１０へのＶｓｓを提供される。マスター１０２Ｂに１の優先値を割り当てるために、スケジューラー１００が、供給電圧信号Ｖｓｓ、Ｖｓｓ、および入力１１２でのＶｃｃ（すなわち、正の電源電圧）を提供される。この方法で電源レールまたはプリセットレジスタへ入力１１０および１１２をハードワイヤすることは、ここで、優先値が変えられることを可能にすると同時に、メモリコントローラーは、メモリアクセスリクエストを実行するために使用されている。
【００２８】
メモリコントローラー１２の電源をオフにすることなしに、各マスター１８（例えば、マスター１８Ａおよび１８Ｂ）に対する優先値を調整する能力をデバイス１０に提供するために、優先値更新モジュール３２は、図１に示されるようなパス３４および３６を介してメモリコントローラー１２に結合され得る。パス３４が、ポート２０Ａに結合され得、パス３６が、ポート２０Ｂに結合され得る。優先値更新モジュール３２は、メモリコントローラー１２に、パス３４および３６を介するポート２０Ａおよび２０Ｂに対する優先値を提供し得る。
【００２９】
１つの実施形態において、優先値更新モジュール３２は、シフトレジスタを含み得る。図３に示されるように、シフトレジスタおよび更新レジスタが、各マスター処理モジュールに対して形成され得る。例えば、マスター１８Ａは、対応するシフトレジスタ２００Ａおよび更新レジスタ２０２Ａを有し得、マスター１８Ｂは、対応するシフトレジスタ２００Ｂおよび更新レジスタ２０２Ｂを有し得る。図３からのわれわれの実施例のように、更新レジスタ２０２Ａおよび２０２Ｂは、パス３４および３６を介してスケジューリングモジュール３０に優先値を提供する。スケジューリングモジュール２００は、各々が対応するシフトレジスタおよび更新レジスタ（例えば、マスターがメモリアクセスリクエストを提供するポートに関連付けられているシフトレジスタおよび更新レジスタ）を有する多くのマスターからメモリアクセスリクエストを受信し得る。
【００３０】
各マスターに関連付けられた優先値を提供するために、シフトレジスタ２００（例えば、シフトレジスタ２００Ａおよび２００Ｂ）は、直列データパスＳ＿ｉｎを介して直列のやり方でロードされ得る。例えば、シフトレジスタ２００Ａに優先値「０」（すなわち、２進値「０００」）をロードし、かつシフトレジスタ２００Ｂに優先値「１」（すなわち、２進値「００１」）をロードするために、入力シーケンス「０００００１」が、データパスＳ＿ｉｎを通して運搬され得る。この場合において、入力シーケンスの最初の３ビットは、優先値「０」に対応し得、その一方で、入力シーケンスの最後の３ビットは、優先値「１」に対応し得る。
【００３１】
シフトレジスタ２００（例えば、シフトレジスタ２００Ａおよび２００Ｂ）は、システムクロックＣＬＫ（例えば、メモリコントローラー１２に関連付けられたシステムクロックＣＬＫ）を用いてシフトレジスタを制御することによって、同期のやり方でロードされ得る。システムクロックの各周期の始まりにおいて、入力パスＳ＿ｉｎ上に提供された入力ビットが、シフトレジスタ２００内にシフトされ得る。この方法において、優先値は、優先値のビットの全数と等しい数のクロックサイクルにおいて全部のマスターに割り当てられ得る。
【００３２】
各シフトレジスタが、対応する更新レジスタに結合され得る。(例えば、各シフトレジスタの出力が、対応する更新レジスタの入力に結合され得る。）更新レジスタの出力が、スケジューリングモジュール３０の優先値の入力に結合され得る。各シフトレジスタ２００に含まれる優先値をスケジューリングモジュール３０に同期に提供するために、更新レジスタ２０２が、システムクロック（ＣＬＫ）、および更新信号（ＵＰＤＡＴＥ）を用いて起動され得る。例えば、信号ＣＬＫおよびＵＰＤＡＴＥの両方がアサートされる場合に、更新レジスタが、起動され得る。システムクロックＣＬＫは、メモリコントローラー１２の動作周波数と等しい周波数を有し得る。
【００３３】
各シフトレジスタ２００Ａとスケジューリングモジュール３０との間に置かれる更新レジスタ２０２Ａを提供することは、ユーザーが、スケジューリングモジュール３０を停止し、またはその電源をオフにすることなしに、直列のやり方で優先値を更新することを可能にする。例えば、マスター１８Ａに関連付けられた優先値を更新するために、新たな優先値は、直列バスＳ＿ｉｎを通してシフトレジスタ２００Ａ内に連続してシフトされ得る。新たな優先値が、シフトレジスタ２００Ａ内にシフトされる場合に、マスター１８Ａに関連付けられた優先値を提供する更新レジスタ２０２Ａは、次のシステムクロック（ＣＬＫ）サイクルにおいて、更新信号のアサーションによって新たな優先値で構成され得る。（すなわち、新たな優先値は、更新信号のアサーションの後に、システムクロックサイクルにおいてメモリコントローラー１２に提供され得る。）
更新信号をシステムクロックＣＬＫ（例えば、メモリコントローラー１２の動作周波数と等しい動作周波数を有するシステムクロックＣＬＫ）と同期させることによって、優先値を更新することに関連付けられるグリッチが防げられ得る。例えば、メモリコントローラー１２は、非プログラマブル論理から形成され得、構成可能回路１６のクロック周波数より大きなクロック周波数で動作し得る。このシナリオにおいて、更新信号は、構成可能回路１６によって、更新レジスタ２０２に提供され得、メモリコントローラー１２と構成可能回路１６との間の動作クロック周波数における差異に起因するグリッチは、更新信号をシステムクロックＣＬＫと同期させるによって防げられ得る。
【００３４】
所望なら、優先値は、ユーザーによって、並列のやり方で優先値更新モジュール３２に提供され得る。図４のダイヤグラムにおいて、優先値は、マルチプレクサ２１４およびデータパス２１０を通して、並列に更新レジスタ２０２Ａに提供され得る。優先値は、集積回路１０の他の部品２１２（例えば、メモリマップ化レジスタ、バスインターフェース上にロードされたデバイス、または他の望ましい記憶部品）から提供され得る。
【００３５】
データパス２１０は、各マルチプレクサ２１４（例えば、マルチプレクサ２１４Ａおよびマルチプレクサ２１４Ｂ）に結合され得、任意の所与の時間において全部のマルチプレクサ２１４に単一の優先値を提供すし得る。（例えば、データビットの全部が単一の優先値に対応する。）データパス２１０は、並列のデータバス、または並列にデータビットを提供するのに適切な他のデータパスであり得る。部品２１２によって提供された優先値を用いて所与の更新レジスタ（例えば、マスター１８Ａに関連付けられた更新レジスタ２０２Ａ）を更新するために、ＳＥＬ＿ＭＭＲ信号および優先アドレスが提供され得る。優先アドレスは、関心の更新レジスタを識別し得、ＳＥＬ＿ＭＭＲ信号は、優先値が、部品２１２によって関心の更新レジスタに提供されることを識別し得る。デコーダーは、優先アドレスおよびＳＥＬ＿ＭＭＲ信号を受信し、パス２２２を介してマルチプレクサ２１４に適切な制御信号を提供し得る。制御信号は、部品２１２によって提供された優先値を所望の更新レジスタへルートするように、所望のマルチプレクサを指示し得る。
【００３６】
例えば、マスター１８Ａに関連付けられた優先値を更新するために、部品２１２（例えば、メモリマップ化レジスタ）は、新たな優先値を提供し得、システムは、デコーダー２２０に新たな優先アドレス（例えば、マスター１８Ａおよび更新レジスタ２０２Ａに対応する優先アドレス「１」）を提供し得る。デコーダーは、優先アドレスを受信し、（例えば、優先アドレスのビットを復号することによって）更新レジスタ２０２Ａが受信された優先アドレスに対応することを識別し得る。更新レジスタ２０２Ａを識別するのに応じて、デコーダー２２０は、部品２１２から更新レジスタ２０２Ａへ新たな優先値をルートするパス２２２Ａを介してマルチプレクサ２１４Ａに制御信号を伝送し得る。システムは、更新レジスタ２０２に更新信号を提供し得る。このシナリオにおいて、更新レジスタ２０２Ａのみが、部品２１２によって提供された優先値を用いて更新され得る。
【００３７】
この方法において、マスターに関連付けられた単一の優先値が、単一のクロックサイクル内に更新され得る。この並列のやり方で全部のマスター１８を更新するために要求されたシステムクロックサイクルの数は、マスターの数に対応し得る。例えば、優先アドレス「１」は、更新レジスタ１８Ａに対応し得、優先アドレス０は、更新レジスタ１８Ｂに対応し得る。マスター１８Ａに対する優先値を更新するために、優先アドレス１が、デコーダー２２０に提供され得、第１の更新信号が、更新レジスタに提供され得る。システムクロック信号の次のアサーションにおいて（例えば、次のシステムクロックサイクルの始まりにおいて）、更新レジスタ１８Ａは、（例えば、メモリマップ化レジスタ２１２から）パス２１０上に提供される第１の優先値を用いて更新され得る。マスター１８Ｂに対する優先値を更新するために、優先アドレス「０」が、デコーダー２２０に提供され得、第２の更新信号が、（例えば、更新レジスタ１８Ａが更新されるシステムクロックサイクルの間に）、更新レジスタに提供され得る。システムクロック信号の次のアサーションにおいて（例えば、更新レジスタ１８Ａが更新されたシステムクロックサイクルの次のシステムクロックサイクルの始まりにおいて）、更新レジスタ１８Ｂが、パス２１０上に提供された第２の優先値を用いて更新され得る。このシナリオにおいて、２つのシステムクロックサイクルが、マスター１８Ａおよびマスター１８Ｂの優先値を更新するために要求され得る。
【００３８】
マルチプレクサ２１４の使用は、優先値がさまざまな供給源から提供されることを可能にし得る。図４に示されるように、マルチプレクサ２１４Ａが、第１のシフトレジスタ（例えば、図３の配列からのシフトレジスタ２００Ａ）から、および部品２１２からの優先値を提供され得る。マルチプレクサ２１４Ｂが、第２のシフトレジスタ（例えば、図３の配列からのシフトレジスタ２００Ｂ）から、および部品２１２からの優先値を提供され得る。さまざまな供給源の間に選択するために、デコーダー２２０が、優先アドレス信号に加えてＳＥＬ＿ＭＭＲ信号のような制御信号を提供され得る。図４の実施例において、ＳＥＬ＿ＭＭＲ信号がアサートされ、かつ優先アドレスが提供される場合に、デコーダー２１２は、部品２１２から優先値を選択するように、提供された優先アドレスに対応するマルチプレクサを指示し得る。この場合において、デコーダーは、対応するシフトレジスタから優先値を選択するように、全部の他のマルチプレクサを指示し得る。（例えば、ＳＥＬ＿ＭＭＲがアサートされ、かつ更新レジスタ２０２Ａに対応する優先アドレス「１」が提供される場合に、マルチプレクサ２１４Ａが、部品２１２から提供された優先値をルートするように指示され得、マルチプレクサ２１４Ｂが、シフトレジスタから提供された優先値をルートするように指示され得。）
デコーダーは、任意の優先値の供給源を選択するために、デコーダー（すなわち、各識別されていないマルチプレクサ）に提供された優先アドレスによって識別されたマルチプレクサ以外のマルチプレクサを指示し得る。各識別されていないマルチプレクサによって選択された供給源は、更新信号がアサートされるたびに、デフォルト優先値を提供する供給源を反映し得る。この方法において、優先アドレスによって識別されていない更新レジスタは、更新信号がアサートされるときに、デフォルト優先値を保持し得る。例えば、マスター１８Ｂに関連付けられたポートに、関連付けられたシフトレジスタ２００Ｂに格納されたデフォルト優先値「２」を提供することが望ましい場合もある。マスター１８Ｂに２のデフォルト優先値を提供するために、デコーダー２２０は、マルチプレクサ２１４Ｂに対応しない優先アドレスがデコーダー２２０に提供されるたびに、シフトレジスタ２００Ｂから優先値を選択するように、マルチプレクサ２１４Ｂを指示し得る。（例えば、デコーダー２２０がｍｕｘ２１４Ｂに対応しない優先アドレス「１」を受信する場合に、デコーダー２２０は、シフトレジスタ２００Ｂに格納されたデフォルト優先値を選択するように、ｍｕｘ２１４Ｂを構成し得る。図４の実施形態が、アドレッシングスキームを通して単一のマスターに対する優先値を更新することを示すが、優先値の並列のローディングのための他の方法は、当業者にとって明白になる。これらの代替物は、全部のシフトレジスタ２００の同時のローディングと、更新レジスタ２０２内にそれらをラッチし、または多重化することとを含み得、または個々の更新レジスタ２０２内に優先値をロードするための他のアドレッシングスキームを含み得る。
【００３９】
別の実施形態において、各メモリアクセスリクエストに対して優先値を動的に更新することが望ましい場合もある。例えば、マスター１８Ａおよびマスター１８Ｂは、それらのそれぞれの優先値を動的に決定し得る。（例えば、マスター１８Ａは、そのメモリアクセスリクエストがどれほど時間的敏感であることに基づいてその優先値を決定し得る。）優先値を動的に更新するために、各マスターは、それぞれのメモリアクセスリクエストに対応する優先値を提供し得る。図５は、各マスター１８が、優先値更新モジュール３２に、対応するメモリアクセスリクエストに対する優先値を提供し得る配列を示す。
【００４０】
図５に示されるように、各マスターは、対応するマルチプレクサ２１４に結合され得る。例えば、マスター１８Ａは、パス２４０Ａを介してマルチプレクサ２１４Ａに結合され得、マスター１８Ｂは、パス２４０Ｂを介してマルチプレクサ２１４Ｂに結合され得る。各マルチプレクサ２１４は、対応するマスターおよび他の供給源、例えば、図３からのシフトレジスタ２００および図４の部分２１２から、優先値を提供され得る。各マスター１８は、対応するパス２４０を介して、対応するマルチプレクサ２１４に、マスターに関連付けられた優先値を提供し得る。
【００４１】
実施例として、マスター１８Ａは、時間的敏感なメモリアクセスリクエスト（例えば、システムメモリからプログラム命令を読み取るための読み取りアクセスリクエスト）を提供し得る。マスター１８Ａは、最初に、比較的に低い優先度（例えば、１０の優先値）を割り当てられ得る。マスター１８Ａは、時間的敏感なメモリアクセスリクエストが比較的に高い優先度（例えば、１の優先値）で実行されることを望み得る。マスター１８Ａは、遅延に敏感なメモリアクセスリクエストが、パス２２を介してスケジューリングモジュール３０に提供される時間の間または前に、パス２４０Ａを介してマルチプレクサ２１４Ａに１の所望の優先値を運搬し得る。
【００４２】
デコーダー２２０は、関心のマルチプレクサ２１４を識別する優先アドレスと、マルチプレクサ２１４が、マルチプレクサを通して、関連付けられたマスター１８によって提供された優先値をルートするように構成されるべきであるか否かを識別するＳＥＬ＿ＰＯＲＴ信号と、マルチプレクサが、他の供給源、例えば、部品２１２（示されていない）によって提供された優先値をルートするように構成されるべきであるか否かを識別するＳＥＬ＿ＭＭＲ信号とを提供され得る。例えば、デコーダー２２０は、マルチプレクサ２１４Ａに対応する優先アドレス「１」およびアサートされたＳＥＬ＿ＰＯＲＴ信号を提供され得る。優先アドレスおよびＳＥＬ＿ＰＯＲＴ信号を受信するのに応じて、デコーダー２２０は、パス２４０Ａ上にマスター１８Ａによって提供された優先値を更新レジスタ２０２Ａに通過するようにマルチプレクサ２１４Ａを構成し得る。
【００４３】
ＳＥＬ＿ＰＯＲＴ信号は、スケジューリングモジュール３０が、現在、メモリアクセスリクエストを受信しているマスター１８に基づいてアサートされ得る。例えば、マスター１８Ｂがスケジューリングモジュール３０にメモリアクセスリクエストを提供する場合に、ＳＥＬ＿ＰＯＲＴ信号がアサートされ得る（優先アドレスが、適切なマルチプレクサ２１４を選択する）。メモリアクセスリクエストを提供しているマスター１８に基づいてＳＥＬ＿ＰＯＲＴ信号をアサートすることによって、各マスターに関連付けられた優先値が、各提供されたメモリアクセスリクエストと共に動的に更新され得る。（例えば、マスターが、メモリアクセスリクエストおよび優先値を提供するたびに、ＳＥＬ＿ＰＯＲＴ信号がアサートされ得る。）
優先値の供給源の数と、図３、図４、および図５のマスターの数とが、さまざまなシナリオを収容するように選択され得る。図６に示されるように、多くのマスター（例えば、マスター１８Ａ〜１８Ｎ）が、スケジューリングモジュール３０のポートに結合され、かつ優先値更新モジュール３２に結合され得る。各ポートは、優先値の供給源２４０Ｃのうちの１つからポートへ優先値を提供する、対応する更新レジスタ２０２およびマルチプレクサ２１４を有し得る。例えば、ポート１は、対応するマルチプレクサ２１４Ａと、ポート１（および関連付けられたマスター１８Ａ）に対する優先値を識別する更新レジスタ２０２Ａを有し得る。各マルチプレクサ２１４が、さまざまな優先値の供給源に結合され得る。各マルチプレクサは、シフトレジスタ、バスインターフェース、部品、マスター、またはそのマルチプレクサに関連付けられているポートの優先値を更新するために、優先値を提供する他の供給源の任意の組み合わせに結合され得る。例えば、マルチプレクサ２１４Ａは、各メモリアクセスリクエストと共に優先値を動的に提供するマスター１８Ａ、デフォルト優先値を提供するシフトレジスタ、およびユーザー生成優先値を提供するメモリマップ化レジスタに結合され得る。
【００４４】
デコーダー２２０は、さまざまな優先値の供給源のうちの１つを選択するように各マルチプレクサを構成し得る。所与のポートの優先値を更新するために、デコーダー２２０は、どのマルチプレクサが構成されるべきであるかを識別する優先アドレスと、そのマルチプレクサのどの供給が、対応する更新レジスタ２０２に優先値を提供するために選択されるべきであるかを識別する制御信号とを提供され得る。ポート１の優先値を更新するために、デコーダー２２０は、マルチプレクサ２１４Ａに関連付けられた優先アドレスと、優先値を（実施例のような）更新レジスタ２０２Ａに優先値を提供するためのメモリマップ化レジスタを選択するようにマルチプレクサ２１４を構成するための制御信号（例えば、ＳＥＬ＿ＭＭＲ、ＳＥＬ＿ＰＯＲＴ、および他の適切な制御信号）とを提供され得る。
【００４５】
破線２５０によって例示されるように、優先値の供給源２４０Ｃは、所望なら、任意の中間に置かれたマルチプレクサを含まない通信パス２５０を用いて、更新レジスタ２０２に結合され得る。このタイプの構成は、例えば、単一の優先値の供給源のみを用いて、集積回路の配列に使用され得る。
【００４６】
いくつかの集積回路１０は、サービスの品質（ＱｏＳ）が、システムメモリ１４にアクセスするマスター１８に提供されることを要求し得る。サービスの品質を提供するために、メモリコントローラー１２は、任意の１つのマスターが、他のマスターがシステムメモリにアクセスすることを防止することを防止するために、リソースを動的に再割り当てることを要求され得る。例えば、第１のマスターは、第２のマスターより高い優先度を有し得る。第１のマスターが、多くのメモリアクセスリクエストをメモリコントローラー１２に提供する場合に、（すなわち、第１のマスターからのリクエストが、第２のマスターからのリクエストより高い優先度を与えられるので）、第２のマスターからのメモリアクセスリクエストが、決して実行されない場合もある。各マスターに関連付けられた優先値を更新する手段を提供することによって、メモリコントローラー１２は、メモリコントローラー１２に結合されるマスターの各々にサービスの品質を提供することが可能であり得る。例えば、他のマスターがシステムメモリにアクセスすることを防止するマスターの優先度は、他のマスターがシステムメモリにアクセスすることを可能にするために、減少され得る。
【００４７】
メモリコントローラー１２がメモリアクセスリクエストを実行している間に優先値を更新するために、優先値更新モジュール３２は、図７に示されるフローチャートの例示的ステップを行い得る。
【００４８】
ステップ３０２において、優先値更新モジュール３２は、優先アドレスおよび制御信号（例えば、ＳＥＬ＿ＭＭＲ信号およびＳＥＬ＿ＰＯＲＴ信号）を受信し得、優先アドレスに関連付けられているマルチプレクサを識別し得る。例えば、優先値更新モジュール３２は、優先アドレス「０」を受信し得、優先アドレス「０」がマルチプレクサ２１４Ｂに関連付けられていることを識別し得る。識別されたマルチプレクサは、対応するポートまたは対応するマスターに関連付けられ得る（例えば、マルチプレクサ２１４Ｂは、マスター１８Ｂまたはポート２に関連付けられ得る）。受信された制御信号に基づいて、優先値更新モジュール３２は、ステップ３０４、３０６または３０８の動作を行うか否かを決定し得る。ＳＥＬ＿ＰＯＲＴ信号がアサートされた場合、優先値更新モジュール３２は、ステップ３０４の動作を行い得る。ＳＥＬ＿ＭＭＲ信号がアサートされた場合、優先値更新モジュール３２は、ステップ３０６の動作を行い得る。ＳＥＬ＿ＰＲＯＴ信号とＳＥＬ＿ＭＭＲ信号との両方がアサートされなかった場合、優先値更新モジュール３２は、ステップ３０６の動作を行い得る。ＳＥＬ＿ＰＯＲＴ信号とＳＥＬ＿ＭＭＲ信号との両方がアサートされた場合、優先値更新モジュール３２は、制御信号を無視し得るか、もしくはステップ３０４、ステップ３０６またはステップ３０８のいずれかの動作を行い得る。
【００４９】
ステップ３０４において、優先値更新モジュール３２は、識別されたマルチプレクサに、識別されたマルチプレクサに関連付けられているマスター処理モジュール（例えば、優先値を、識別されたマルチプレクサに提供するマスター処理モジュール）から優先値を選択するように指示し得る。例えば、マルチプレクサ２１４Ａは、マスター処理モジュール１８Ａによってパス２４０Ａを介し、マルチプレクサ２１４Ａに提供された優先値を選択し得る。優先値を選択することによって、マルチプレクサ２１４Ａは、選択された優先値を対応する更新レジスタの入力に運搬し得る（例えば、マルチプレクサ２１４Ａは、マスター処理モジュール１８Ａによって提供された優先値を更新レジスタ２０２Ａの入力に運搬し得る）。
【００５０】
ステップ３０６において、優先値更新モジュール３２は、識別されたマルチプレクサに、メモリマップ化レジスタのような部品、データバスインターフェースに結合されたモジュール、または単一の優先値をマルチプレクサの全てに提供する他の部品から優先値を選択するように指示し得る（例えば、優先値は、メモリマップ化レジスタに結合された単一のデータバスを介して、マルチプレクサ２１４Ａ〜２１４Ｎの各々に提供され得る）。識別されたマルチプレクサは、選択された優先値を対応する更新レジスタの入力にし得る（例えば、マルチプレクサ２１４Ａは、メモリマップ化レジスタによって提供された優先値を更新レジスタ２０２Ａの入力に運搬し得る）。
【００５１】
ステップ３０８において、優先値更新モジュール３２は、識別されたマルチプレクサに、識別されたマルチプレクサに関連付けられたシフトレジスタ（または優先値更新モジュール３２内に配置された他の適切なレジスタ）から優先値を選択するように指示し得る。例えば、マルチプレクサ２１４Ａは、シフトレジスタ２００Ａによって提供された優先値を選択し得る。識別されたマルチプレクサは、優先値更新モジュール３２によって、選択された優先値を対応する更新レジスタの入力にするように構成され得る（例えば、マルチプレクサ２１４Ａは、シフトレジスタ２００Ａによって提供された優先値を更新レジスタ２０２Ａの入力に運搬し得る）。
【００５２】
ステップ３１０において、優先値更新モジュール３２は、受信された優先アドレスによっては識別されていないマルチプレクサ（つまり、残りのマルチプレクサ）に、デフォルトの供給源から優先値を選択するように指示し得る。デフォルトの供給源は、予め規定され得るか、またはステップ３０２〜３０８において、前に選択された供給源であり得る。例として、シフトレジスタ２０２がデフォルトの供給源（つまり、受信された優先アドレスによっては識別されていないマルチプレクサによって選択された供給源）として予め規定され得る。この場合、残りのマルチプレクサの各々は、対応するシフトレジスタを選択するように構成され得る（例えば、マルチプレクサ２１４Ｂは、受信された優先アドレスがマルチプレクサ２１４Ｂに関連付けられていない場合、対応するシフトレジスタ２１４Ｂを選択するように構成され得る）。別の例として、各マルチプレクサは、ステップ３０２〜３０８におけるマルチプレクサに対して、最も新しく選択された供給源を選択するように構成され得る。
【００５３】
ステップ３１０が並行して（例えば、ステップ３０４と同時に）行われ得る。例えば、第１のマルチプレクサ２１４Ａに対応する優先アドレスを受信する優先値更新モジュール３２は、並行して優先値供給源を第１のマルチプレクサおよび残りのマルチプレクサに対して選択し得る。
【００５４】
ステップ３１０の動作中に更新信号がアサートされた場合、優先値更新モジュール３２は、ステップ３１２の動作を行い得る。
【００５５】
ステップ３１２において、優先値更新モジュール３２は、選択された優先値の各々を、対応する更新レジスタ（例えば、更新レジスタ２０２）に、次のシステムクロックサイクルにおいて格納し得る。例えば、更新レジスタ２０２Ａは、マルチプレクサ２１４Ａによって選択された優先値を格納し得る。更新信号は、クロック信号と組合わせられ得ることによって、選択された優先値が次のクロックサイクルにおいて格納される（例えば、選択された優先値は、更新信号とクロック信号との両方がアサートされた場合に格納され得る）。次いで、処理は、ステップ３０２までループし得、戻る。
【００５６】
メモリコントローラーポートに関連付けられている優先値を更新することが望ましくあり得る。優先値をメモリコントローラーの特定のポートに対して更新するために、優先値更新モジュール３２は、図８に示されるフローチャートの例示的ステップを行い得る。
【００５７】
ステップ３５２において、メモリコントローラーは、優先アドレスおよび関連付けられた制御信号を受信し得る。優先アドレスおよび制御信号は、システムまたは集積回路１０の他のモジュールによって提供され得る。
【００５８】
ステップ３５４において、メモリコントローラーは、受信された優先アドレスに関連付けられているメモリコントローラーポートを識別し得る。例えば、優先値更新モジュール３２は、各々がＮ個の異なる優先アドレスのうちの１つに対応するＮ個の異なるメモリコントローラーポートのうちの１つを識別するために、受信された優先アドレスを用い得る。
【００５９】
ステップ３５６において、メモリコントローラーは、優先値供給源を制御信号に基づいて選択し得る。（図６に示されるように）さまざまな優先値供給源があり得、制御信号は、さまざまな優先値供給源のうちのどれが優先値を提供するために選択されるべきかを識別し得る。
【００６０】
ステップ３５８において、メモリコントローラーは、優先値供給源によって提供された優先値を、メモリコントローラーポートに関連付けられている更新レジスタに格納し得る。更新レジスタに格納された優先値は、更新レジスタに関連付けられているポートに提供されたメモリアクセスリクエストが実行され得る優先度を識別するために用いられ得る。
【００６１】
デバイス１０のメモリ素子は、多数の行および列を有しているアレイに組織化され得る。例えば、メモリアレイ回路は、数百および数千の行および列でプログラマブル論理デバイス集積回路上に形成され得る。図９のプログラマブル集積回路１０は、メモリアレイ回路が形成され得る例示的集積回路の例である。
【００６２】
図９に示されるように、プログラマブル集積回路１０は、信号をデバイス１０から駆動し出し、他のデバイスから入力−出力ピン４１４を介して信号を受信する入力−出力回路４１２を有し得る。全体的および局所的な垂直および水平の伝導ラインおよびバスのような相互接続リソース４１６は、信号をデバイス１０上でルートするために用いられ得る。相互接続リソース４１６は、固定相互接続（伝導ライン）およびプログラマブル相互接続（つまり、それぞれの固定相互接続の間のプログラマブル接続）を含む。プログラマブル論理４１８は、組合わせおよび順序論理回路を含み得る。プログラマブル論理１８は、カスタム論理機能を行うように構成され得る。
【００６３】
プログラマブル集積回路１０は、ピン４１４および入力−出力回路４１２を用いて、構成データ（プログラミングデータとも呼ばれる）をロードされ得るメモリ素子２０を含む。ロードされると、メモリ素子は、各々、プログラマブル論理４１８における関連付けられた論理部品の状態を制御する、対応する静的制御出力信号を提供する。典型的には、メモリ素子出力信号は、金属酸化物半導体（ＭＯＳ）トランジスタのゲートを制御するために用いられる。例えば、プログラマブル論理から形成されたポート優先更新モジュールは、静的制御出力信号をトランジスタのゲートを制御するために提供するメモリ素子を含み得る。このシナリオにおいて、ポート優先更新モジュールは、静的制御出力信号を変更するメモリ素子に値を格納することによって、構成またはプログラムされ得る。トランジスタの一部は、ｐチャネル金属酸化物半導体（ＰＭＯＳ）トランジスタであり得る。これらのトランジスタの多くは、マルチプレクサのようなプログラマブル部品におけるｎチャネル金属酸化物半導体（ＮＭＯＳ）パストランジスタであり得る。メモリ素子出力が高い場合、そのメモリ素子によって制御されたＮＭＯＳパストランジスタは、論理信号をその入力からその出力まで通過させるためにターンオンされる。メモリ素子出力が低い場合、パストランジスタはターンオフされ、論理信号を通過させない。
【００６４】
典型的なメモリ素子４２０は、クロスカップリングされた反転器を形成するように構成されている多数のトランジスタから形成される。他の配列（例えば、より分散された反転器のような回路を有しているセル）も用いられ得る。１つの適切なアプローチでは、相補型金属酸化物半導体（ＣＭＯＳ）集積回路技術がメモリ素子４２０を形成するために用いられるので、ＣＭＯＳベースのメモリ素子実装は、本明細書において、例として記載される。プログラマブル集積回路に関連して、メモリ素子は、構成データを格納し、そのため、構成ランダムアクセスメモリ（ＣＲＡＭ）セルと呼ばれることがある。
【００６５】
デバイス１０に対する例示的システム環境が図１０に示される。デバイス１０は、システム４３８におけるボード４３６上に搭載され得る。一般的に、プログラマブル論理デバイス１０は、構成データをプログラミング機器もしくは他の適切な機器またはデバイスから受信し得る。図１０の例において、プログラマブル論理デバイス１０は、構成データを関連付けられた集積回路４４０から受信する、あるタイプのプログラマブル論理デバイスである。このタイプの配列の場合、必要に応じて、回路４４０は、プログラマブル論理デバイス１０と同じボード４３６上に搭載され得る。回路４４０は、消去可能プログラマブルリードオンリーメモリ（ＥＰＲＯＭ）チップ、組込みメモリを有しているプログラマブル論理デバイス構成データローディングチップ（構成デバイスと呼ばれることもある）または他の適切なデバイスであり得る。システム４３８が起動した場合（または別の適切なときに）、プログラマブル論理デバイスを構成する構成データが、パス４４２によって概略的に示されるように、プログラマブル論理デバイスにデバイス４４０から供給され得る。プログラマブル論理デバイスに供給された構成データは、その構成ランダムアクセスメモリ素子４２０におけるプログラマブル論理デバイスに格納され得る。
【００６６】
システム４３８は、処理回路４４４、格納４４６（例えば、システムメモリ１４）、およびデバイス１０と通信する他のシステム部品４４８を含み得る。システム４３８の部品は、ボード４３６のような１つ以上のボード、もしくは他の適切な搭載構造またはハウジング上に配置され得、バスおよび他の電気パス４０によって相互接続され得る。
【００６７】
デバイス１０に対する構成データがパス４５２のようなパスを介して、構成デバイス４４０に供給され得る。構成デバイス４０は、例えば、構成データを構成データローディング機器４５４、またはこのデータを構成デバイス４４０に格納する他の適切な機器から受信し得る。デバイス４４０は、ボード４３６上にインストールされる前または後にデータをロードされ得る。
【００６８】
所望の論理回路をプログラマブル論理デバイスに設計および実装することは格別に大変な仕事であり得る。そのため、論理設計者は、一般的に、回路を設計する際に設計者を補助するコンピュータ支援設計（ＣＡＤ）ツールに基づく論理設計システムを用いる。論理設計システムは、論理設計者がシステムに対して複雑な回路を設計およびテストすることを助け得る。設計が完了すると、論理設計システムは、適切なプログラマブル論理デバイスを電気的にプログラムするための構成データを生成するために用いられ得る。
【００６９】
図１０に示されるように、論理設計システム４５６によって作成された構成データは、パス４５８のようなパスを介して、機器４５４に提供され得る。機器４５４は、構成データをデバイス４４０に提供し、デバイス４４０は、後に、この構成データをプログラマブル論理デバイス１０にパス４４２を介して提供し得る。システム４５６は、１つ以上のコンピュータおよび１つ以上のソフトウェアプログラムに基づき得る。一般的に、ソフトウェアおよびデータは、システム４５６における任意のコンピュータ読み取り可能媒体（記憶装置）上に格納され得、図１０の記憶装置４６０として概略的に示される。
【００７０】
典型的なシナリオにおいて、論理設計システム４５６は、カスタム回路設計を作るために、論理設計者によって用いられる。システム４５６は、構成デバイス４４０に提供される対応する構成データを作成する。電源がオンにされると、プログラマブル論理デバイス１０上の構成デバイス４４０およびデータローディング回路が構成データをデバイス１０のＣＲＡＭセル４２０にロードするために用いられる。次いで、デバイス１０がシステム４３８の通常の動作で用いられ得る。
【００７１】
（追加実施形態１）メモリにアクセスするように動作可能な集積回路であって、該集積回路は、メモリアクセスリクエストを生成するように動作可能なプログラマブルマスター回路と、メモリコントローラーであって、該メモリコントローラーは、該メモリアクセスリクエストを該プログラマブルマスター回路から第１および第２のポートにおいて受信するように動作可能であり、該メモリーコントローラーは、該メモリアクセスリクエストを実行するために、該メモリにアクセスするように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを順番に実行するように動作可能である、メモリコントローラーと、該メモリコントローラーが該メモリアクセスリクエストを実行する順番を制御するように動作可能である制御回路とを含む、集積回路。
【００７２】
（追加実施形態２）前記メモリコントローラーは、非プログラマブルメモリコントローラーを含む、追加実施形態１に記載の集積回路。
【００７３】
（追加実施形態３）前記メモリコントローラーは、優先値に基づく順番で前記メモリにアクセスすることによって、前記メモリアクセスリクエストを実行するようにさらに動作可能であり、前記集積回路は、該優先値を格納するように動作可能な更新レジスタをさらに含む、追加実施形態１に記載の集積回路。
【００７４】
（追加実施形態４）シフトレジスタ回路をさらに含み、該シフトレジスタ回路は、前記優先値を前記更新レジスタに提供する、追加実施形態３に記載の集積回路。
【００７５】
（追加実施形態５）アドレス指定可能レジスタ回路をさらに含み、該アドレス指定可能レジスタ回路は、前記優先値を前記更新レジスタに提供する、追加実施形態３に記載の集積回路。
【００７６】
（追加実施形態６）
優先値供給源をさらに含み、該優先値供給源は、前記優先値を前記更新レジスタに供給する、追加実施形態３に記載の集積回路。
【００７７】
（追加実施形態７）前記メモリアクセスリクエストの各々は、前記優先値のうちの１つに関連付けられており、前記集積回路は、少なくとも１つの優先値供給源をさらに含み、該少なくとも１つの優先値供給源は、前記更新レジスタに該優先値を供給するように動作可能であり、該少なくとも１つの優先値供給源は、前記メモリコントローラーの第１および第２のポートに該メモリアクセスリクエストを供給するようにさらに動作可能である、追加実施形態６に記載の集積回路。
【００７８】
（追加実施形態８）前記少なくとも１つの優先値供給源は、少なくとも１つのマスター処理モジュールを含み、該少なくとも１つのマスター処理モジュールは、前記優先値を前記更新レジスタに動的に供給するように動作可能である、追加実施形態７に記載の集積回路。
【００７９】
（追加実施形態９）前記少なくとも１つのマスター処理モジュールは、前記優先値を供給する間に、前記メモリコントローラーの第１および第２のポートに前記メモリアクセスリクエストをさらに供給する、追加実施形態８に記載の集積回路。
【００８０】
（追加実施形態１０）メモリにアクセスするためのメモリアクセスリクエストを生成するように動作可能な処理回路と、再構成不可能メモリコントローラーであって、該再構成不可能メモリコントローラーは、該メモリアクセスリクエストを複数のポートにおいて受信するように動作可能であり、該複数のポートの各々は、関連付けられた優先値を有している、再構成不可能メモリコントローラーと、プログラマブル制御回路であって、該プログラマブル制御回路は、該複数のポートの各々に関連付けられている優先値を動的に調節するように動作可能である、プログラマブル制御回路とを含み、該メモリコントローラーは、該優先値に基づく順番で該メモリにアクセスすることによって、該メモリアクセスリクエストを実行するようにさらに動作可能である、集積回路。
【００８１】
（追加実施形態１１）更新レジスタをさらに含み、該更新レジスタは、前記優先値を格納するように動作可能であり、該更新レジスタは、格納された優先値を前記メモリコントローラーに提供するようにさらに動作可能である、追加実施形態１０に記載の集積回路。
【００８２】
（追加実施形態１２）複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、前記優先値のうちの少なくとも１つを供給するように動作可能であり、前記プログラマブル制御回路は、マルチプレクサ回路を含み、該マルチプレクサ回路は、該優先値を該優先値供給源から前記更新レジスタまでルートするように動作可能である、追加実施形態１１に記載の集積回路。
【００８３】
（追加実施形態１３）前記プログラマブル制御回路は、デコーダーをさらに含み、該デコーダーは、前記マルチプレクサ回路を制御することによって、前記優先値を前記更新レジスタにルートするように動作可能である、追加実施形態１２に記載の集積回路。
【００８４】
（追加実施形態１４）前記デコーダーは、優先アドレス入力を含み、該優先アドレス入力は、優先アドレスを受信するように動作可能であり、該優先アドレスは、該デコーダーに制御信号を前記マルチプレクサ回路に発信するように指示することによって、該マルチプレクサ回路に信号を前記優先値供給源のうちの選択された１つから前記更新レジスタのうちの選択された１つまでルートするように指示する、追加実施形態１３に記載の集積回路。
【００８５】
（追加実施形態１５）前記マルチプレクサ回路は、複数のマルチプレクサを含み、該複数のマルチプレクサの各々は、前記デコーダーにそれぞれの制御ラインによって結合され、該複数のマルチプレクサの各々は、信号を前記複数の優先値供給源から前記更新レジスタのうちのそれぞれの１つまで選択的にルートするように動作可能である、追加実施形態１４に記載の集積回路。
【００８６】
（追加実施形態１６）前記処理回路は、少なくとも１つのメモリ素子および少なくとも１つのプログラマブルトランジスタを含み、該少なくとも１つのメモリ素子は、静的出力信号を作成するように動作可能であり、該少なくとも１つのプログラマブルトランジスタは、該静的出力信号を受信するように動作可能なゲートを有している、追加実施形態１０に記載の集積回路。
【００８７】
（追加実施形態１７）前記複数のポートは、第１のポートおよび第２のポートを含み、前記処理回路は、第１のマスター処理回路および第２のマスター処理回路を含み、該第１のマスター処理回路は、メモリアクセスリクエストを該第１のポートに伝送するように動作可能であり、該第２のマスター処理回路は、メモリアクセスリクエストを該第２のポートに伝送するように動作可能であり、前記プログラマブル制御回路は、前記優先値を動的に調節することによって、サービスの質を該第１のマスター処理回路および該第２のマスター処理回路に提供するようにさらに動作可能である、追加実施形態９に記載の集積回路。
【００８８】
（追加実施形態１８）複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、前記優先値のうちの少なくとも１つを供給するように動作可能であり、該優先値供給源は、マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択された少なくとも１つの優先値供給源を含む、追加実施形態１０に記載の集積回路。
【００８９】
（追加実施形態１９）メモリコントローラーであって、該メモリコントローラーは、メモリアクセスリクエストを受信するように動作可能であり、該メモリコントローラーは、該メモリアクセスリクエストを実行するために、メモリにアクセスするようにさらに動作可能である、メモリコントローラーと、プログラマブル回路であって、該プログラマブル回路は、該メモリコントローラーに、メモリアクセス優先情報に基づく順番で該メモリアクセスリクエストを実行するように指示するために、該メモリアクセス優先情報を該メモリコントローラーに提供するように動作可能である、プログラマブル回路とを含む、集積回路。
【００９０】
（追加実施形態２０）前記メモリアクセス優先情報は、複数のメモリアクセス優先値を含み、前記プログラマブル回路は、更新レジスタ回路を含み、該更新レジスタ回路は、前記メモリアクセス優先値のうちの少なくとも１つを格納するように動作可能である、追加実施形態１９に記載の集積回路。
【００９１】
（追加実施形態２１）複数の優先値供給源をさらに含み、該複数の優先値供給源の各々は、メモリアクセス優先値を供給するように動作可能であり、前記プログラマブル回路は、マルチプレクサ回路をさらに含み、該マルチプレクサ回路は、メモリアクセス優先値を該複数の優先値供給源のうちの選択された１つから前記更新レジスタ回路までルートするように動作可能である、追加実施形態２０に記載の集積回路。
【００９２】
（追加実施形態２２）マスター処理モジュール、シフトレジスタ、メモリマップ化レジスタおよびバスインターフェースからなる群から選択されたメモリアクセス優先情報の少なくとも１つの供給源をさらに含み、前記プログラマブル回路は、少なくとも１つのプログラマブルトランジスタおよび少なくとも１つのメモリ素子を含み、該少なくとも１つのメモリ素子は、静的制御信号を該プログラマブルトランジスタに供給するように動作可能であり、該プログラマブル回路は、該メモリアクセス優先情報を該メモリアクセス優先情報の少なくとも１つの供給源から受信するように動作可能であり、該プログラマブル回路は、どのメモリアクセス優先情報が前記メモリコントローラーに提供されるかを選択するようにさらに動作可能である、追加実施形態１９に記載の集積回路デバイス。
【００９３】
先述の事項は、本発明の原理を例示しているに過ぎず、さまざまな改変が発明の範囲および精神から逸脱することなく、当業者によってなされ得る。
【符号の説明】
【００９４】
１０  プログラマブル論理集積回路
１２  メモリコントローラー
１４  システムメモリ
１６  構成可能回路
１８Ａ、１８Ｂ  モジュール
２０Ａ、２０Ｂ  ポート
３２  優先値更新モジュール
４０  パス
【図１】
2012252700.tif 000003
【図２】
2012252700.tif 000004
【図３】
2012252700.tif 000005
【図４】
2012252700.tif 000006
【図５】
2012252700.tif 000007
【図６】
2012252700.tif 000008
【図７】
2012252700.tif 000009
【図８】
2012252700.tif 000010
【図９】
2012252700.tif 000011
【図１０】
2012252700.tif 000012