(57)【要約】  例示的な集積回路（ＩＣ）が、ネットワークオンチップ（ＮｏＣ）（１０６）と、ＮｏＣに接続されたマスターデバイス（３０２）と、ＮｏＣに接続され、ＩＣに接続されたメモリを制御するように構成されたメモリコントローラ（３０４）と、ＮｏＣに接続されたインライン誤り訂正符号（ＥＣＣ）回路（１１２）と、を備える。ＥＣＣ回路は、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてＥＣＣデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される。【選択図】図１
2021509554.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）であって、
ネットワークオンチップ（ＮｏＣ）と、
前記ＮｏＣに接続されたマスターデバイスと、
前記ＮｏＣに接続され、前記ＩＣに接続されたメモリを制御するように構成されたメモリコントローラと、
前記ＮｏＣに接続されたインライン誤り訂正符号（ＥＣＣ）回路であって、前記ＥＣＣ回路が、前記マスターデバイスから前記メモリを対象とする読み出しおよび書き込みトランザクションを受信し、前記読み出しおよび書き込みトランザクションに基づいてＥＣＣデータを計算し、発信トランザクションを前記メモリコントローラに供給するように構成される、インラインＥＣＣ回路と、
を備える、集積回路（ＩＣ）。
【請求項２】
前記インラインＥＣＣ回路が、
前記マスターデバイスから書き込みトランザクションを受信し、
前記書き込みトランザクションのデータに基づいてＥＣＣデータを計算し、
前記データおよび前記ＥＣＣデータの両方を前記メモリ内の１つまたは複数の宛先に書き込むための１つまたは複数の発信トランザクションを生成する
ように構成される、請求項１に記載のＩＣ。
【請求項３】
前記１つまたは複数の発信トランザクションが、前記データおよび前記ＥＣＣデータの両方を前記メモリのモジュール内の領域に書き込むための単一の発信トランザクションを含む、請求項２に記載のＩＣ。
【請求項４】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリのモジュールの第１の領域に書き込むための第１の発信トランザクションと、前記データを前記メモリの前記モジュールの第２の領域に書き込むための第２の発信トランザクションとを含む、請求項２に記載のＩＣ。
【請求項５】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリの第１のモジュールに書き込むための第１の発信トランザクションと、前記データを前記メモリの第２のモジュールに書き込むための第２の発信トランザクションとを含む、請求項２に記載のＩＣ。
【請求項６】
前記インラインＥＣＣ回路が、
前記マスターデバイスから読み出しトランザクションを受信し、
前記メモリ内のそれぞれのストレージロケーションから前記データおよび前記ＥＣＣデータの両方を読み出すための１つまたは複数の発信トランザクションを生成し、
前記ＥＣＣデータからＥＣＣシンドロームを計算し、
前記データを含む前記読み出しトランザクションに対する応答を生成する
ように構成される、請求項１から５のいずれか一項に記載のＩＣ。
【請求項７】
前記インラインＥＣＣ回路が、
前記ＥＣＣシンドロームを使用して、前記データ内の１つまたは複数の誤りを処理する
ように構成される、請求項６に記載のＩＣ。
【請求項８】
集積回路（ＩＣ）におけるメモリ管理の方法であって、
インライン誤り訂正符号（ＥＣＣ）回路において、ネットワークオンチップ（ＮｏＣ）を介してマスターデバイスからトランザクションを受信することであって、前記トランザクションが、前記ＩＣに接続されたメモリを対象とする、トランザクションを受信することと、
前記インラインＥＣＣ回路において、前記トランザクションに基づいてＥＣＣデータを判定することと、
前記ＮｏＣに接続され、前記メモリを制御するように構成されたメモリコントローラに、１つまたは複数の発信トランザクションを供給することと、
を含む、方法。
【請求項９】
前記トランザクションが書き込みトランザクションであり、前記ＥＣＣデータが前記書き込みトランザクションのデータに基づいて判定され、前記１つまたは複数の発信トランザクションが前記データおよび前記ＥＣＣデータの両方を前記メモリ内の１つまたは複数の宛先に書き込むように構成される、請求項８に記載の方法。
【請求項１０】
前記１つまたは複数の発信トランザクションが、前記データおよび前記ＥＣＣデータの両方を前記メモリのモジュール内の領域に書き込むための単一の発信トランザクションを含む、請求項９に記載の方法。
【請求項１１】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリのモジュールの第１の領域に書き込むための第１の発信トランザクションと、前記データを前記メモリの前記モジュールの第２の領域に書き込むための第２の発信トランザクションとを含む、請求項９に記載の方法。
【請求項１２】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリの第１のモジュールに書き込むための第１の発信トランザクションと、前記データを前記メモリの第２のモジュールに書き込むための第２の発信トランザクションとを含む、請求項９に記載の方法。
【請求項１３】
前記トランザクションが読み出しトランザクションであり、前記１つまたは複数の発信トランザクションが前記メモリ内のそれぞれのストレージロケーションから前記データおよび前記ＥＣＣデータの両方を読み出すように構成され、前記方法が、
前記ＥＣＣデータからＥＣＣシンドロームを計算することと、
前記データを含む前記読み出しトランザクションに対する応答を生成することと
をさらに含む、請求項８に記載の方法。
【請求項１４】
前記方法が、
前記ＥＣＣシンドロームを使用して、前記データ内の１つまたは複数の誤りを処理すること
をさらに含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の例は、一般に、電子回路に関し、詳細には、システムオンチップ（ＳｏＣ）のためのインライン誤り訂正符号（ＥＣＣ）機能に関する。
【背景技術】
【０００２】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）の誤り訂正符号（ＥＣＣ）保護は、従来、追加の「帯域外」データビット（例えば、６４ビットのデータに８ビットのパリティを付加）を使用して実装されている。この手法は、ＥＣＣデータを格納するための１つまたは複数のＤＲＡＭコンポーネントと追加のインターフェース入出力（ＩＯ）ピンとを必要とするため、コストがかかる。
【０００３】
加えて、バス構造が、いくつかのシステムオンチップ（ＳｏＣ）集積回路（ＳｏＣ）には不適切であることがわかっている。回路の集積度が高まるとトランザクションが詰まる可能性があり、容量が大きくなるとシグナリングの問題が発生する可能性がある。バス構造の代わりに、ネットワークオンチップ（ＮｏＣ）を使用して、ＳｏＣのコンポーネント間のデータ通信を支援できる。
【０００４】
ＮｏＣには、一般に、パケットをチップ上の送信元回路（「送信元」）からチップ上の宛先回路（「宛先」）にルーティングする一群のスイッチが設けられる。チップにおけるスイッチのレイアウトが、所望の送信元から所望の宛先へのパケット送信を支援する。パケットは、送信元から宛先に送られる間に複数のスイッチを通過し得る。各スイッチは、ネットワーク内の１つまたは複数の他のスイッチに接続され、接続されたスイッチのうちの１つまたは宛先に、入力されたパケットをルーティングする。
【発明の概要】
【０００５】
システムオンチップ（ＳｏＣ）のためのインライン誤り訂正符号（ＥＣＣ）機能の技法について説明する。一例では、集積回路（ＩＣ）が、ネットワークオンチップ（ＮｏＣ）と、ＮｏＣに接続されたマスターデバイスと、ＮｏＣに接続され、ＩＣに接続されたメモリを制御するように構成されたメモリコントローラと、ＮｏＣに接続されたインライン誤り訂正符号（ＥＣＣ）回路であって、ＥＣＣ回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてＥＣＣデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインＥＣＣ回路と、を備える。
【０００６】
別の例では、集積回路（ＩＣ）におけるメモリ管理の方法が、インライン誤り訂正符号（ＥＣＣ）回路において、ネットワークオンチップ（ＮｏＣ）を介してマスターデバイスからトランザクションを受信することであって、トランザクションが、ＩＣに接続されたメモリを対象とする、トランザクションを受信することと、インラインＥＣＣ回路において、トランザクションに基づいてＥＣＣデータを判定することと、ＮｏＣに接続され、メモリを制御するように構成されたメモリコントローラに、１つまたは複数の発信トランザクションを供給することと、を含む。
【０００７】
別の例では、集積回路（ＩＣ）が、処理システムと、プログラマブルロジック領域と、処理システムとプログラマブルロジック領域とを接続するネットワークオンチップ（ＮｏＣ）と、ＮｏＣに接続されたマスターデバイスと、ＮｏＣに接続され、ＩＣに接続されたメモリを制御するように構成されたメモリコントローラと、ＮｏＣに接続されたインライン誤り訂正符号（ＥＣＣ）回路であって、ＥＣＣ回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてＥＣＣデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインＥＣＣ回路と、を備える。
【０００８】
これらおよび他の態様は、以下の詳細な説明を参照して理解され得る。
【０００９】
上記の特徴を詳細に理解できるように、上で簡単に要約した上記特徴のより具体的な説明が、例示的な実装形態を参照することにより得られ、そのいくつかは添付の図面に示されている。ただし、添付の図面は、本発明の典型的な例示的な実装形態のみを示しているに過ぎず、したがって、本発明の範囲を限定するものと見なされるべきではないことに留意されたい。
【図面の簡単な説明】
【００１０】
【図１】一例によるシステムオンチップ（ＳｏＣ）を示すブロック図である。
【図２】一例によるネットワークオンチップ（ＮｏＣ）を示すブロック図である。
【図３】一例によるメモリシステムを示すブロック図である。
【図４】一例による、ＥＣＣ書き込みトランザクションを処理する方法である。
【図５】一例による、読み出しトランザクションを処理する方法を示す流れ図である。
【図６】本明細書に記載される技法が使用され得るプログラマブル集積回路（ＩＣ）を示すブロック図である。
【図７】一例による、プログラマブルＩＣのシステムオンチップ（ＳｏＣ）実装を示すブロック図である。
【図８】本明細書に記載される技法が使用され得るフィールドプログラマブルゲートアレイ（ＦＰＧＡ）アーキテクチャの概略図である。
【００１１】
理解を容易にするために、可能な場合、各図に共通する同一の要素を示すために同一の参照番号が使用されている。１つの例の要素は、他の例に好適に組み込むことができることが企図されている。
【発明を実施するための形態】
【００１２】
以下、図面を参照して様々な特徴を説明する。図面は、縮尺通りに描かれている場合も描かれていない場合もあり、同様の構造または機能の要素は、図面全体を通して同様の参照番号によって表されることに留意されたい。図面は、特徴の説明を容易にすることのみを目的としていることに留意されたい。特徴の説明は、特許請求の範囲において請求された発明の網羅的な説明として意図されているものでも、特許請求の範囲において請求された発明の範囲に対する限定として意図されているものでもない。加えて、例示される例は、示されているすべての態様または利点を有する必要はない。特定の例に関連して説明された態様または利点は、必ずしもその例に限定されず、そのように例示されていなくても、または明示的に説明されていなくても、他の任意の例で実施され得る。
【００１３】
図１は、一例によるシステムオンチップ（ＳｏＣ）１０２を示すブロック図である。ＳｏＣ１０２は、処理システム１０４と、ネットワークオンチップ（ＮｏＣ）１０６と、インライン誤り訂正符号（ＥＣＣ）回路１１２と、１つまたは複数のプログラマブル領域１０８とを備える集積回路（ＩＣ）である。ＳｏＣ１０２は、不揮発性メモリ（ＮＶＭ）１１０およびダイナミックランダムアクセスメモリ（ＤＲＡＭ）１１４などの外部回路に接続され得る。一例では、処理システム１０４は、ＮＶＭ１１０および／またはＤＲＡＭ１１４を制御するための１つまたは複数のメモリコントローラ１１８を備える。別の例では、プログラマブルロジック領域（複数可）１０８は、ＮＶＭ１１０および／またはＤＲＡＭ１１４を制御するための、ハードニングされた回路または構成可能なロジックとして実装される１つまたは複数のメモリコントローラ（複数可）１１６を備える。さらに他の例では、ＳｏＣ１０２は、メモリコントローラ（複数可）１１８およびメモリコントローラ（複数可）１１６の両方を備える。
【００１４】
ＮＶＭ１１０は、ＮｏＣ１０６およびプログラマブルロジック領域（複数可）１０８を構成するなど、ＳｏＣ１０２を構成するためにＳｏＣ１０２にロードされ得るデータを格納し得る。ＤＲＡＭ１１４は、処理システム１０４およびプログラマブルロジック領域１０８に構成された任意の回路を含む、ＳｏＣ１０２内の様々な回路によって使用されるデータを格納し得る。処理システム１０４、ＮｏＣ１０６、およびプログラマブルロジック領域（複数可）１０８の例を以下に説明する。一般に、処理システム１０４は、ＮｏＣ１０６を介してプログラマブルロジック領域（複数可）１０８に接続される。
【００１５】
インラインＥＣＣ回路１１２は、ＤＲＡＭ１１４上で追加のＥＣＣコンポーネントを必要としないようにインラインＥＣＣ機能を提供する。いくつかの技法では、インラインＥＣＣ機能は、メモリコントローラ（複数可）１１８および／またはメモリコントローラ（複数可）１１６の一部として実装され得る。しかしながら、本明細書で説明される例では、インラインＥＣＣ機能は、ＮｏＣ１０６に取り付けられた別個の回路（インラインＥＣＣ回路１１２）として実装される。これにより、インラインＥＣＣ機能から複雑なＤＲＡＭコントローラ回路を切り離すモジュール式手法が提供される。この技法は、ハードニングされたＤＲＡＭコントローラ、ソフトＤＲＡＭコントローラ（例えば、プログラマブルロジック領域（複数可）１０８に構成されたＤＲＡＭコントローラ）、および他のタイプのメモリ（例えば、スタティックＲＡＭ（ＳＲＡＭ）または任意の他のタイプのＲＡＭと共に使用され得る。インラインＥＣＣ回路１１２は、最小限の影響で、ＳｏＣ１０２で使用される任意のシステム実装に追加または除去され得る。インラインＥＣＣ回路１１２はまた、ＥＣＣデータがどこにどのように格納されるかに関してより多くの柔軟性を提供する。
【００１６】
図２は、一例によるＮｏＣ１０６を示すブロック図である。ＮｏＣ１０６は、ＮｏＣマスターユニット（ＮＭＵ）２０２と、ＮｏＣスレーブユニット（ＮＳＵ）２０４と、ネットワーク２１４と、ＮｏＣペリフェラルインターコネクト（ＮＰＩ）２１０と、レジスタ（Ｒｅｇｓ）２１２とを備える。各ＮＭＵ２０２は、マスターエンドポイントをＮｏＣ１０６に接続する入口回路である。各ＮＳＵ２０４は、ＮｏＣ１０６をスレーブエンドポイントに接続する出口回路である。ＮＭＵ２０２は、ネットワーク２１４を介してＮＳＵ２０４に接続される。一例では、ネットワーク２１４は、ＮｏＣパケットスイッチ２０６と、ＮｏＣパケットスイッチ２０６間のルーティング２０８とを備える。各ＮｏＣパケットスイッチ２０６は、ＮｏＣパケットのスイッチングを行う。ＮｏＣパケットスイッチ２０６は、複数の物理チャネルを実装するためにルーティング２０８を介して互いに接続され、またＮＭＵ２０２およびＮＳＵ２０４に接続される。ＮｏＣパケットスイッチ２０６はまた、物理チャネルごとに複数の仮想チャネルを支援する。ＮＰＩ２１０は、ＮＭＵ２０２、ＮＳＵ２０４、およびＮｏＣパケットスイッチ２０６をプログラムするための回路を備える。例えば、ＮＭＵ２０２、ＮＳＵ２０４、およびＮｏＣパケットスイッチ２０６は、それらの機能を判定するレジスタ２１２を備え得る。ＮＰＩ２１０は、機能を設定するようにＮＰＩをプログラミングするためにレジスタ２１２に接続されたインターコネクトを備える。ＮｏＣ１０６の構成データは、ＮＶＭ１１０に格納され、ＮｏＣ１０６をプログラミングするためにＮＰＩ２１０に供給され得る。
【００１７】
図３は、一例によるメモリシステム３００を示すブロック図である。メモリシステム３００は、１つまたは複数のマスターデバイス（複数可）３０２と、ＮｏＣ１０６と、１つまたは複数のメモリコントローラ３０４と、インラインＥＣＣ回路１１２と、メモリ３０６とを備える。マスターデバイス（複数可）３０２は、処理システム１０４内の回路またはプログラマブルロジック領域（複数可）１０８内の回路（例えば、ハードニングされた回路または構成された回路）などの、ＳｏＣ１０２内の回路である。マスターデバイス（複数可）３０２は、ＮｏＣ１０６内のＮＭＵ２０２に接続される。メモリコントローラ３０４（複数可）は、処理システム１０４および／またはプログラマブルロジック領域（複数可）１０８に配置される。メモリコントローラ（複数可）３０４は、メモリ３０６を制御するように構成される。メモリ３０６は、１つまたは複数のＤＲＡＭモジュール、ＳＲＡＭモジュール、および／または他のタイプのメモリモジュールなどの１つまたは複数のメモリモジュールを含み得る。ＮｏＣ１０６は、マスターデバイス（複数可）３０２とメモリコントローラ（複数可）３０４との間でメモリトランザクション（例えば、読み出しおよび書き込みトランザクション）をルーティングする。
【００１８】
動作中、ＳｏＣ１０２のアドレス空間内の１つまたは複数のアドレス範囲は、ＥＣＣ保護されるように選択され得るが、アドレス空間の他の部分は保護されないままであり得る。保護されていない領域へのメモリトランザクションは、ＮｏＣ１０６を介してマスターデバイス（複数可）３０２とメモリコントローラ（複数可）３０４との間で直接ルーティングされ得る。ＥＣＣ保護領域へのメモリトランザクションは、インラインＥＣＣ回路１１２を介してルーティングされ、インラインＥＣＣ回路１１２は、マスターデバイス（複数可）３０２およびメモリコントローラ（複数可）３０４（すなわち、スレーブデバイス）の両方に対して透過的にＥＣＣデータの生成およびチェックを管理する。
【００１９】
図４は、一例による、ＥＣＣ書き込みトランザクションを処理する方法４００である。方法４００は、インラインＥＣＣ回路１１２がマスターデバイス３０２から書き込みトランザクションを受信するステップ４０２において始まる。書き込みトランザクションは、メモリ３０６内のアドレス指定されたロケーションに書き込まれるデータを含む。ステップ４０４において、インラインＥＣＣ回路１１２は、書き込まれるデータ（例えば、ＥＣＣパリティデータ）に基づいてＥＣＣデータを計算する。ステップ４０６において、インラインＥＣＣ回路１１２は、元のデータおよびＥＣＣデータの両方を１つまたは複数の宛先に書き込むための１つまたは複数の発信トランザクションを生成する。一例では、ステップ４０８において、インラインＥＣＣ回路１１２は、メモリ３０６の同じメモリ領域内で元のデータの間にＥＣＣデータを散在させる。このような場合、インラインＥＣＣ回路１１２は、単一の発信トランザクションを生成し得る。例えば、メモリ３０６がページ単位でアクセスされる場合、元のデータおよびＥＣＣデータの両方が同じページ（複数可）に格納され得る。
【００２０】
別の例では、ステップ４１０において、インラインＥＣＣ回路１１２は、同じメモリまたは別個のメモリモジュールの、元のデータとは別個のメモリ領域にＥＣＣデータを格納する。このような場合、インラインＥＣＣ回路１１２は、元のデータのための１つのトランザクションと、ＥＣＣデータを書き込むための別のトランザクションとを生成する。例えば、別個のメモリ領域は、同じメモリ内の別個のページとすることができる。別個のメモリモジュールが使用される場合、別個のメモリモジュールは、元のデータの格納に使用されるメモリモジュールと同じタイプとすることも異なるタイプとすることもできる。
【００２１】
図５は、一例による、読み出しトランザクションを処理する方法５００を示す流れ図である。方法５００は、インラインＥＣＣ回路１１２がマスターデバイス３０２から読み出しトランザクションを受信するステップ５０２において始まる。読み出しトランザクションは、データを読み出すための、メモリ３０６内のアドレスを含む。ステップ５０４において、ラインＥＣＣ回路１１２は、元のデータおよびＥＣＣデータの両方をそれらのそれぞれのストレージロケーションから読み出すための１つまたは複数の発信トランザクションを生成する。上記のように、ＥＣＣデータは、元のデータと同じメモリ領域に格納されても、異なるメモリ領域に格納されても、異なるメモリモジュールに格納されてもよい。インラインＥＣＣ回路１１２は、元のデータおよびＥＣＣデータの両方を読み出すための１つまたは複数のトランザクションを生成する。
【００２２】
ステップ５０６において、ラインＥＣＣ回路１１２は、ＥＣＣデータおよび元のデータに基づいて誤りを検出および訂正するために使用されるＥＣＣシンドロームを計算する。ステップ５０８において、ＥＣＣ回路１１２は、計算されたＥＣＣシンドロームに基づいて、元のデータの誤りがあればこれを処理する。ステップ５１０において、インラインＥＣＣ回路１１２は、要求されたデータのみを含む、読み出しトランザクションに対する応答を生成し、その応答をマスターデバイス３０２に送信する。ＥＣＣ機能は、マスターデバイス３０２およびメモリコントローラ３０４に対して透過的である。
【００２３】
図６は、本明細書で説明されるインラインＥＣＣ回路１１２を使用することができる、一例によるプログラマブルＩＣ１を示すブロック図である。プログラマブルＩＣ１は、プログラマブルロジック３と、構成ロジック２５と、構成メモリ２６とを備える。プログラマブルＩＣ１は、不揮発性メモリ２７、ＤＲＡＭ２８、および他の回路２９などの外部回路に接続され得る。プログラマブルロジック３は、ロジックセル３０と、支援回路３１と、プログラマブルインターコネクト３２とを備える。ロジックセル３０は、複数の入力の一般的なロジック機能を実装するように構成され得る回路を含む。支援回路３１は、送受信機、入出力ブロック、デジタルシグナルプロセッサ、メモリなどの専用回路を含む。ロジックセルと支援回路３１とは、プログラマブルインターコネクト３２を使用して相互接続され得る。ロジックセル３０をプログラミングするため、支援回路３１のパラメータを設定するため、およびプログラマブルインターコネクト３２をプログラミングするための情報が、構成ロジック２５によって構成メモリ２６に格納される。構成ロジック２５は、不揮発性メモリ２７または任意の他の送信元（例えば、ＤＲＡＭ２８または他の回路２９）から構成データを取得し得る。いくつかの例では、プログラマブルＩＣ１は、処理システム２を備える。処理システム２は、マイクロプロセッサ（複数可）、メモリ、支援回路、入出力回路などを備え得る。
【００２４】
図７は、一例による、プログラマブルＩＣ１のシステムオンチップ（ＳｏＣ）実装を示すブロック図である。この例では、プログラマブルＩＣ１は、処理システム２とプログラマブルロジック３とを備える。処理システム２は、リアルタイム処理ユニット（ＲＰＵ）４、アプリケーション処理ユニット（ＡＰＵ）５、グラフィック処理ユニット（ＧＰＵ）６、構成およびセキュリティユニット（ＣＳＵ）１２、プラットフォーム管理ユニット（ＰＭＵ）１２２などの様々な処理ユニットを備える。処理システム２はまた、オンチップメモリ（ＯＣＭ）１４、送受信機７、ペリフェラル８、インターコネクト１６、ＤＭＡ回路９、メモリコントローラ１０、ペリフェラル１５、および多重入出力（ＭＩＯ）回路１３などの様々な支援回路を備える。処理ユニットと支援回路とは、インターコネクト１６によって相互接続される。ＰＬ３はまた、インターコネクト１６に接続される。送受信機７は、外部ピン２４に接続される。ＰＬ３は、外部ピン２３に接続される。メモリコントローラ１０は、外部ピン２２に接続される。ＭＩＯ１３は、外部ピン２０に接続される。ＰＳ２は、一般に、外部ピン２１に接続される。ＡＰＵ５は、ＣＰＵ１７と、メモリ１８と、支援回路１９とを備え得る。ＡＰＵ５は、Ｌ１キャッシュおよびＬ２キャッシュなどを含む他の回路を備え得る。ＲＰＵ４は、Ｌ１キャッシュなどの追加の回路を備え得る。インターコネクト１６は、キャッシュコヒーレントインターコネクトなどを含み得る。
【００２５】
ＰＳ２を参照すると、処理ユニットのそれぞれが、１つまたは複数の中央処理ユニット（ＣＰＵ）と、メモリ、割り込みコントローラ、ダイレクトメモリアクセス（ＤＭＡ）コントローラ、メモリ管理ユニット（ＭＭＵ）、浮動小数点ユニット（ＦＰＵ）などの関連回路とを備える。インターコネクト１６は、処理ユニットを相互接続するとともに、ＰＳ２内の他の構成要素を処理ユニットに相互接続するように構成された様々なスイッチ、バス、通信リンクなどを含む。
【００２６】
ＯＣＭ１４は、ＰＳ２全体に分散され得る１つまたは複数のＲＡＭモジュールを備える。例えば、ＯＣＭ１４は、バッテリーバックアップされたＲＡＭ（ＢＢＲＡＭ）、密結合メモリ（ＴＣＭ）などを含み得る。メモリコントローラ１０は、外部ＤＲＡＭにアクセスするためのＤＲＡＭインターフェースを備え得る。ペリフェラル８、１５は、ＰＳ２へのインターフェースを提供する１つまたは複数のコンポーネントを含み得る。例えば、ペリフェラル１３２は、グラフィック処理ユニット（ＧＰＵ）、ディスプレイインターフェース（例えば、ディスプレイポート、高解像度マルチメディアインターフェース（ＨＤＭＩ）ポートなど）、ユニバーサルシリアルバス（ＵＳＢ）ポート、イーサネットポート、ユニバーサル非同期送受信機（ＵＡＲＴ）ポート、シリアルペリフェラルインターフェース（ＳＰＩ）ポート、汎用入出力（ＧＰＩＯ）ポート、シリアルアドバンスド・テクノロジーアタッチメント（ＳＡＴＡ）ポート、ＰＣＩｅポートなどを含み得る。ペリフェラル１５は、ＭＩＯ１３に接続され得る。ペリフェラル８は、送受信機７に接続され得る。送受信機７は、シリアライザ／デシリアライザ（ＳＥＲＤＥＳ）回路、ＭＧＴなどを備え得る。
【００２７】
図８は、送受信機３７、構成可能な論理ブロック（「ＣＬＢ」）３３、ランダムアクセスメモリブロック（「ＢＲＡＭ」）３４、入出力ブロック（「ＩＯＢ」）３６、構成およびクロッキングロジック（「構成／クロック」）４２、デジタル信号処理ブロック（「ＤＳＰ」）３５、専用入出力ブロック（「入出力」）４１（例えば、構成ポートおよびクロックポート）、ならびにデジタルクロックマネージャ、アナログ−デジタル変換器、システム監視ロジックなどの他のプログラマブルロジック３９を含む多数の異なるプログラマブルタイルを備える、プログラマブルＩＣ１のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）実装を示している。ＦＰＧＡはまた、ＰＣＩｅインターフェース４０、アナログ−デジタル変換器（ＡＤＣ）３８などを備え得る。
【００２８】
いくつかのＦＰＧＡでは、図８の上部に含まれる例によって示されるように、各プログラマブルタイルは、同じタイル内のプログラマブルロジックエレメントの入出力端子４８への接続を有する少なくとも１つのプログラマブルインターコネクトエレメント（「ＩＮＴ」）４３を含み得る。各プログラマブルインターコネクトエレメント４３はまた、同じタイルまたは他のタイル（複数可）における隣接するプログラマブルインターコネクトエレメント（複数可）のインターコネクトセグメント４９への接続を含み得る。各プログラマブルインターコネクトエレメント４３はまた、論理ブロック（図示せず）間の一般的なルーティングリソースのインターコネクトセグメント５０への接続を含み得る。一般的なルーティングリソースは、インターコネクトセグメント（例えば、インターコネクトセグメント５０）のトラックを含む論理ブロック（図示せず）と、インターコネクトセグメントを接続するためのスイッチブロック（図示せず）との間のルーティングチャネルを含み得る。一般的なルーティングリソースのインターコネクトセグメント（例えば、インターコネクトセグメント５０）は、１つまたは複数の論理ブロックにわたることができる。プログラマブルインターコネクトエレメント４３は、一般的なルーティングリソースと共に、例示されたＦＰＧＡのためのプログラマブルインターコネクト構造（「プログラマブルインターコネクト」）を実装する。
【００２９】
例示的な実装形態では、ＣＬＢ３３は、ユーザロジックに加えて単一のプログラマブルインターコネクトエレメント（「ＩＮＴ」）４３を実装するようにプログラムされ得る構成可能なロジックエレメント（「ＣＬＥ」）４４を含み得る。ＢＲＡＭ３４は、１つまたは複数のプログラマブルインターコネクトエレメントに加えて、ＢＲＡＭロジックエレメント（「ＢＲＬ」）４５を備え得る。通常、タイルに含まれるインターコネクトエレメントの数は、タイルの高さに依存する。図示の例では、ＢＲＡＭタイルの高さは５つのＣＬＢと同じであるが、他の数（例えば、４）も用いられ得る。ＤＳＰタイル３５は、適切な数のプログラマブルインターコネクトエレメントに加えて、ＤＳＰロジックエレメント（「ＤＳＰＬ」）４６を備え得る。ＩＯＢ３６は、例えば、プログラマブルインターコネクトエレメント４３の１つのインスタンスに加えて、入出力ロジックエレメント（「ＩＯＬ」）４７の２つのインスタンスを備え得る。当業者には明らかであるように、例えば、入出力ロジックエレメント４７に接続された実際の入出力パッドは、通常、入出力ロジックエレメント４７の領域に限定されない。
【００３０】
図示の例では、（図８に示す）ダイの中心付近の水平領域が構成、クロック、および他の制御ロジックに使用されている。この水平領域または列から延びる垂直の列５１は、ＦＰＧＡの幅全体にクロックおよび構成信号を分配するために使用される。
【００３１】
図８に示すアーキテクチャを利用するいくつかのＦＰＧＡは、ＦＰＧＡの大部分を構成する通常のカラム型構造を破壊する追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび／または専用ロジックであり得る。
【００３２】
図８は、例示的なＦＰＧＡアーキテクチャを示すことのみを意図されていることに留意されたい。例えば、図８の上部に含まれている行内の論理ブロックの数、行の相対的な幅、行の数および順序、行に含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、インターコネクト／ロジックの実装は単なる例である。例えば、実際のＦＰＧＡでは、ユーザロジックの効率的な実装を容易にするために、ＣＬＢが現れる場所にはどこでも、ＣＬＢの複数の隣接する行が通常含まれるが、隣接するＣＬＢ行の数はＦＰＧＡの全体的なサイズによって異なる。
【００３３】
一例では、集積ＩＣが提供され得る。このようなＩＣは、ネットワークオンチップ（ＮｏＣ）と、ＮｏＣに接続されたマスターデバイスと、
ＮｏＣに接続され、ＩＣに接続されたメモリを制御するように構成されたメモリコントローラと、インライン誤り訂正符号（ＥＣＣ）回路であって、ＥＣＣ回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてＥＣＣデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインＥＣＣ回路と、を備え得る。
【００３４】
いくつかのこのようなＩＣでは、インラインＥＣＣ回路は、マスターデバイスから書き込みトランザクションを受信し、書き込みトランザクションのデータに基づいてＥＣＣデータを計算し、データおよびＥＣＣデータの両方をメモリ内の１つまたは複数の宛先に書き込むための１つまたは複数の発信トランザクションを生成するように構成され得る。
【００３５】
いくつかのこのようなＩＣでは、１つまたは複数の発信トランザクションが、データおよびＥＣＣデータの両方をメモリのモジュール内の領域に書き込むための単一の発信トランザクションを含み得る。
【００３６】
いくつかのこのようなＩＣでは、１つまたは複数の発信トランザクションが、データをメモリのモジュールの第１の領域に書き込むための第１の発信トランザクションと、データをメモリのモジュールの第２の領域に書き込むための第２の発信トランザクションとを含み得る。
【００３７】
いくつかのこのようなＩＣでは、１つまたは複数の発信トランザクションが、データをメモリの第１のモジュールに書き込むための第１の発信トランザクションと、データをメモリの第２のモジュールに書き込むための第２の発信トランザクションとを含み得る。
【００３８】
このようないくつかのＩＣでは、インラインＥＣＣ回路は、マスターデバイスから読み出しトランザクションを受信し、データおよびＥＣＣデータの両方をメモリ内のそれぞれのストレージロケーションから読み出すための１つまたは複数の発信トランザクションを生成し、ＥＣＣデータからＥＣＣシンドロームを計算し、データを含む読み出しトランザクションに対する応答を生成するように構成され得る。
【００３９】
いくつかのこのようなＩＣでは、インラインＥＣＣ回路は、ＥＣＣシンドロームを使用して、データ内の１つまたは複数の誤りを処理するように構成され得る。
【００４０】
別の例では、ＩＣにおけるメモリ管理の方法が提供され得る。このような集積回路（ＩＣ）におけるメモリ管理の方法は、インライン誤り訂正符号（ＥＣＣ）回路において、ネットワークオンチップ（ＮｏＣ）を介してマスターデバイスからトランザクションを受信することであって、トランザクションが、ＩＣに接続されたメモリを対象とする、トランザクションを受信することと、インラインＥＣＣ回路において、トランザクションに基づいてＥＣＣデータを判定することと、ＮｏＣに接続され、メモリを制御するように構成されたメモリコントローラに、１つまたは複数の発信トランザクションを供給することと、を含む。
【００４１】
いくつかのこのような方法では、トランザクションが書き込みトランザクションであり得、ＥＣＣデータが書き込みトランザクションのデータに基づいて判定され得、１つまたは複数の発信トランザクションがデータおよびＥＣＣデータの両方をメモリ内の１つまたは複数の宛先に書き込むように構成され得る。
【００４２】
いくつかのこのような方法では、１つまたは複数の発信トランザクションが、データおよびＥＣＣデータの両方をメモリのモジュール内の領域に書き込むための単一の発信トランザクションを含み得る。
【００４３】
いくつかのこのような方法では、１つまたは複数の発信トランザクションが、データをメモリのモジュールの第１の領域に書き込むための第１の発信トランザクションと、データをメモリのモジュールの第２の領域に書き込むための第２の発信トランザクションとを含み得る。
【００４４】
いくつかのこのような方法では、１つまたは複数の発信トランザクションが、データをメモリの第１のモジュールに書き込むための第１の発信トランザクションと、データをメモリの第２のモジュールに書き込むための第２の発信トランザクションとを含み得る。
【００４５】
いくつかのこのような方法では、トランザクションが読み出しトランザクションであり得、１つまたは複数の発信トランザクションがデータおよびＥＣＣデータの両方をメモリ内のそれぞれのストレージロケーションから読み出すように構成され得、本方法が、ＥＣＣデータからＥＣＣシンドロームを計算することと、
データを含み得る、読み出しトランザクションに対する応答を生成することと
をさらに含む。
【００４６】
いくつかのこのような方法では、本方法は、ＥＣＣシンドロームを使用して、データ内の１つまたは複数の誤りを処理することをさらに含む。
【００４７】
さらに別の例では、ＩＣが提供され得る。このようなＩＣは、処理システムと、プログラマブルロジック領域と、処理システムとプログラマブルロジック領域とを接続するネットワークオンチップ（ＮｏＣ）と、ＮｏＣに接続されたマスターデバイスと、ＮｏＣに接続され、ＩＣに接続されたメモリを制御するように構成されたメモリコントローラと、ＮｏＣに接続されたインライン誤り訂正符号（ＥＣＣ）回路であって、ＥＣＣ回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてＥＣＣデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインＥＣＣ回路と、を備え得る。
【００４８】
このようなＩＣでは、マスターデバイスは処理システムに配置され得る。
【００４９】
このようなＩＣでは、マスターデバイスは、プログラマブルロジック領域に配置され得る。
【００５０】
このようなＩＣでは、マスターデバイスは、プログラマブルロジック領域に構成され得る。
【００５１】
このようなＩＣでは、インラインＥＣＣ回路は、マスターデバイスから書き込みトランザクションを受信し、書き込みトランザクションのデータに基づいてＥＣＣデータを計算し、データおよびＥＣＣデータの両方をメモリ内の１つまたは複数の宛先に書き込むための１つまたは複数の発信トランザクションを生成するように構成され得る。
【００５２】
このようなＩＣでは、インラインＥＣＣ回路は、マスターデバイスから読み出しトランザクションを受信し、データおよびＥＣＣデータの両方をメモリ内のそれぞれのストレージロケーションから読み出すための１つまたは複数の発信トランザクションを生成し、ＥＣＣデータからＥＣＣシンドロームを計算し、データを含む読み出しトランザクションに対する応答を生成するように構成され得る。
【００５３】
以上は具体的な例を対象としているが、本開示の基本的な範囲から逸脱することなく、他のさらなる例を考案することができ、本開示の範囲は添付の特許請求の範囲によって決定される。
【図１】
2021509554.tif 000003
【図２】
2021509554.tif 000004
【図３】
2021509554.tif 000005
【図４】
2021509554.tif 000006
【図５】
2021509554.tif 000007
【図６】
2021509554.tif 000008
【図７】
2021509554.tif 000009
【図８】
2021509554.tif 000010
【手続補正書】
【提出日】令和1年10月17日(2019.10.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）であって、
ネットワークオンチップ（ＮｏＣ）であって、前記ＮｏＣが、ＮｏＣマスターユニット、ＮｏＣスレーブユニット、および前記ＮｏＣマスターユニットを前記ＮｏＣスレーブユニットに接続するネットワークを備える、ネットワークオンチップ（ＮｏＣ）と、
前記ＮｏＣのＮｏＣマスターユニットに接続されたマスターデバイスと、
前記ＮｏＣのＮｏＣスレーブユニットに接続され、前記ＩＣに接続されたメモリを制御するように構成されたメモリコントローラと、
前記ＮｏＣに接続されたインライン誤り訂正符号（ＥＣＣ）回路であって、前記ＥＣＣ回路が、前記マスターデバイスに接続された前記ＮｏＣマスターユニットから前記メモリを対象とする読み出しおよび書き込みトランザクションを受信し、前記読み出しおよび書き込みトランザクションに基づいてＥＣＣデータを計算し、発信トランザクションを前記メモリコントローラに接続された前記ＮｏＣスレーブユニットに供給するように構成される、インラインＥＣＣ回路と、
を備える、集積回路（ＩＣ）。
【請求項２】
前記インラインＥＣＣ回路が、
前記マスターデバイスから書き込みトランザクションを受信し、
前記書き込みトランザクションのデータに基づいてＥＣＣデータを計算し、
前記データおよび前記ＥＣＣデータの両方を前記メモリ内の１つまたは複数の宛先に書き込むための１つまたは複数の発信トランザクションを生成する
ように構成される、請求項１に記載のＩＣ。
【請求項３】
前記１つまたは複数の発信トランザクションが、前記データおよび前記ＥＣＣデータの両方を前記メモリのモジュール内の領域に書き込むための単一の発信トランザクションを含む、請求項２に記載のＩＣ。
【請求項４】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリのモジュールの第１の領域に書き込むための第１の発信トランザクションと、前記データを前記メモリの前記モジュールの第２の領域に書き込むための第２の発信トランザクションとを含む、請求項２に記載のＩＣ。
【請求項５】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリの第１のモジュールに書き込むための第１の発信トランザクションと、前記データを前記メモリの第２のモジュールに書き込むための第２の発信トランザクションとを含む、請求項２に記載のＩＣ。
【請求項６】
前記インラインＥＣＣ回路が、
前記マスターデバイスから読み出しトランザクションを受信し、
前記メモリ内のそれぞれのストレージロケーションから前記データおよび前記ＥＣＣデータの両方を読み出すための１つまたは複数の発信トランザクションを生成し、
前記ＥＣＣデータからＥＣＣシンドロームを計算し、
前記データを含む前記読み出しトランザクションに対する応答を生成する
ように構成される、請求項１から５のいずれか一項に記載のＩＣ。
【請求項７】
前記インラインＥＣＣ回路が、
前記ＥＣＣシンドロームを使用して、前記データ内の１つまたは複数の誤りを処理する
ように構成される、請求項６に記載のＩＣ。
【請求項８】
ネットワークオンチップ（ＮｏＣ）を有する集積回路（ＩＣ）におけるメモリ管理の方法であって、前記ＮｏＣが、ＮｏＣマスターユニット、ＮｏＣスレーブユニット、および前記ＮｏＣマスターユニットを前記ＮｏＣスレーブユニットに接続するネットワークを備え、前記方法が、
インライン誤り訂正符号（ＥＣＣ）回路において、前記ＮｏＣのＮｏＣマスターユニットを介してマスターデバイスからトランザクションを受信することであって、前記トランザクションが、前記ＩＣに接続されたメモリを対象とする、トランザクションを受信することと、
前記インラインＥＣＣ回路において、前記トランザクションに基づいてＥＣＣデータを判定することと、
前記ＮｏＣにＮｏＣスレーブユニットを介して接続されたメモリコントローラに、１つまたは複数の発信トランザクションを供給することであって、前記メモリコントローラが前記メモリを制御するように構成される、１つまたは複数の発信トランザクションを供給することと、
を含む、方法。
【請求項９】
前記トランザクションが書き込みトランザクションであり、前記ＥＣＣデータが前記書き込みトランザクションのデータに基づいて判定され、前記１つまたは複数の発信トランザクションが前記データおよび前記ＥＣＣデータの両方を前記メモリ内の１つまたは複数の宛先に書き込むように構成される、請求項８に記載の方法。
【請求項１０】
前記１つまたは複数の発信トランザクションが、前記データおよび前記ＥＣＣデータの両方を前記メモリのモジュール内の領域に書き込むための単一の発信トランザクションを含む、請求項９に記載の方法。
【請求項１１】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリのモジュールの第１の領域に書き込むための第１の発信トランザクションと、前記データを前記メモリの前記モジュールの第２の領域に書き込むための第２の発信トランザクションとを含む、請求項９に記載の方法。
【請求項１２】
前記１つまたは複数の発信トランザクションが、前記データを前記メモリの第１のモジュールに書き込むための第１の発信トランザクションと、前記データを前記メモリの第２のモジュールに書き込むための第２の発信トランザクションとを含む、請求項９に記載の方法。
【請求項１３】
前記トランザクションが読み出しトランザクションであり、前記１つまたは複数の発信トランザクションが前記メモリ内のそれぞれのストレージロケーションから前記データおよび前記ＥＣＣデータの両方を読み出すように構成され、前記方法が、
前記ＥＣＣデータからＥＣＣシンドロームを計算することと、
前記データを含む前記読み出しトランザクションに対する応答を生成することと
をさらに含む、請求項８に記載の方法。
【請求項１４】
前記方法が、
前記ＥＣＣシンドロームを使用して、前記データ内の１つまたは複数の誤りを処理すること
をさらに含む、請求項１３に記載の方法。
【国際調査報告】
2021509554.tif 000011
2021509554.tif 000012
2021509554.tif 000013