JP2021509554A - システムオンチップのためのインラインecc機能 - Google Patents

システムオンチップのためのインラインecc機能 Download PDF

Info

Publication number
JP2021509554A
JP2021509554A JP2020533568A JP2020533568A JP2021509554A JP 2021509554 A JP2021509554 A JP 2021509554A JP 2020533568 A JP2020533568 A JP 2020533568A JP 2020533568 A JP2020533568 A JP 2020533568A JP 2021509554 A JP2021509554 A JP 2021509554A
Authority
JP
Japan
Prior art keywords
data
memory
ecc
transaction
outgoing
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.)
Granted
Application number
JP2020533568A
Other languages
English (en)
Other versions
JP7341142B2 (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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2021509554A publication Critical patent/JP2021509554A/ja
Application granted granted Critical
Publication of JP7341142B2 publication Critical patent/JP7341142B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Memory System (AREA)

Abstract

例示的な集積回路(IC)が、ネットワークオンチップ(NoC)(106)と、NoCに接続されたマスターデバイス(302)と、NoCに接続され、ICに接続されたメモリを制御するように構成されたメモリコントローラ(304)と、NoCに接続されたインライン誤り訂正符号(ECC)回路(112)と、を備える。ECC回路は、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてECCデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される。【選択図】図1

Description

本開示の例は、一般に、電子回路に関し、詳細には、システムオンチップ(SoC)のためのインライン誤り訂正符号(ECC)機能に関する。
ダイナミックランダムアクセスメモリ(DRAM)の誤り訂正符号(ECC)保護は、従来、追加の「帯域外」データビット(例えば、64ビットのデータに8ビットのパリティを付加)を使用して実装されている。この手法は、ECCデータを格納するための1つまたは複数のDRAMコンポーネントと追加のインターフェース入出力(IO)ピンとを必要とするため、コストがかかる。
加えて、バス構造が、いくつかのシステムオンチップ(SoC)集積回路(SoC)には不適切であることがわかっている。回路の集積度が高まるとトランザクションが詰まる可能性があり、容量が大きくなるとシグナリングの問題が発生する可能性がある。バス構造の代わりに、ネットワークオンチップ(NoC)を使用して、SoCのコンポーネント間のデータ通信を支援できる。
NoCには、一般に、パケットをチップ上の送信元回路(「送信元」)からチップ上の宛先回路(「宛先」)にルーティングする一群のスイッチが設けられる。チップにおけるスイッチのレイアウトが、所望の送信元から所望の宛先へのパケット送信を支援する。パケットは、送信元から宛先に送られる間に複数のスイッチを通過し得る。各スイッチは、ネットワーク内の1つまたは複数の他のスイッチに接続され、接続されたスイッチのうちの1つまたは宛先に、入力されたパケットをルーティングする。
システムオンチップ(SoC)のためのインライン誤り訂正符号(ECC)機能の技法について説明する。一例では、集積回路(IC)が、ネットワークオンチップ(NoC)と、NoCに接続されたマスターデバイスと、NoCに接続され、ICに接続されたメモリを制御するように構成されたメモリコントローラと、NoCに接続されたインライン誤り訂正符号(ECC)回路であって、ECC回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてECCデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインECC回路と、を備える。
別の例では、集積回路(IC)におけるメモリ管理の方法が、インライン誤り訂正符号(ECC)回路において、ネットワークオンチップ(NoC)を介してマスターデバイスからトランザクションを受信することであって、トランザクションが、ICに接続されたメモリを対象とする、トランザクションを受信することと、インラインECC回路において、トランザクションに基づいてECCデータを判定することと、NoCに接続され、メモリを制御するように構成されたメモリコントローラに、1つまたは複数の発信トランザクションを供給することと、を含む。
別の例では、集積回路(IC)が、処理システムと、プログラマブルロジック領域と、処理システムとプログラマブルロジック領域とを接続するネットワークオンチップ(NoC)と、NoCに接続されたマスターデバイスと、NoCに接続され、ICに接続されたメモリを制御するように構成されたメモリコントローラと、NoCに接続されたインライン誤り訂正符号(ECC)回路であって、ECC回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてECCデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインECC回路と、を備える。
これらおよび他の態様は、以下の詳細な説明を参照して理解され得る。
上記の特徴を詳細に理解できるように、上で簡単に要約した上記特徴のより具体的な説明が、例示的な実装形態を参照することにより得られ、そのいくつかは添付の図面に示されている。ただし、添付の図面は、本発明の典型的な例示的な実装形態のみを示しているに過ぎず、したがって、本発明の範囲を限定するものと見なされるべきではないことに留意されたい。
一例によるシステムオンチップ(SoC)を示すブロック図である。 一例によるネットワークオンチップ(NoC)を示すブロック図である。 一例によるメモリシステムを示すブロック図である。 一例による、ECC書き込みトランザクションを処理する方法である。 一例による、読み出しトランザクションを処理する方法を示す流れ図である。 本明細書に記載される技法が使用され得るプログラマブル集積回路(IC)を示すブロック図である。 一例による、プログラマブルICのシステムオンチップ(SoC)実装を示すブロック図である。 本明細書に記載される技法が使用され得るフィールドプログラマブルゲートアレイ(FPGA)アーキテクチャの概略図である。
理解を容易にするために、可能な場合、各図に共通する同一の要素を示すために同一の参照番号が使用されている。1つの例の要素は、他の例に好適に組み込むことができることが企図されている。
以下、図面を参照して様々な特徴を説明する。図面は、縮尺通りに描かれている場合も描かれていない場合もあり、同様の構造または機能の要素は、図面全体を通して同様の参照番号によって表されることに留意されたい。図面は、特徴の説明を容易にすることのみを目的としていることに留意されたい。特徴の説明は、特許請求の範囲において請求された発明の網羅的な説明として意図されているものでも、特許請求の範囲において請求された発明の範囲に対する限定として意図されているものでもない。加えて、例示される例は、示されているすべての態様または利点を有する必要はない。特定の例に関連して説明された態様または利点は、必ずしもその例に限定されず、そのように例示されていなくても、または明示的に説明されていなくても、他の任意の例で実施され得る。
図1は、一例によるシステムオンチップ(SoC)102を示すブロック図である。SoC102は、処理システム104と、ネットワークオンチップ(NoC)106と、インライン誤り訂正符号(ECC)回路112と、1つまたは複数のプログラマブル領域108とを備える集積回路(IC)である。SoC102は、不揮発性メモリ(NVM)110およびダイナミックランダムアクセスメモリ(DRAM)114などの外部回路に接続され得る。一例では、処理システム104は、NVM110および/またはDRAM114を制御するための1つまたは複数のメモリコントローラ118を備える。別の例では、プログラマブルロジック領域(複数可)108は、NVM110および/またはDRAM114を制御するための、ハードニングされた回路または構成可能なロジックとして実装される1つまたは複数のメモリコントローラ(複数可)116を備える。さらに他の例では、SoC102は、メモリコントローラ(複数可)118およびメモリコントローラ(複数可)116の両方を備える。
NVM110は、NoC106およびプログラマブルロジック領域(複数可)108を構成するなど、SoC102を構成するためにSoC102にロードされ得るデータを格納し得る。DRAM114は、処理システム104およびプログラマブルロジック領域108に構成された任意の回路を含む、SoC102内の様々な回路によって使用されるデータを格納し得る。処理システム104、NoC106、およびプログラマブルロジック領域(複数可)108の例を以下に説明する。一般に、処理システム104は、NoC106を介してプログラマブルロジック領域(複数可)108に接続される。
インラインECC回路112は、DRAM114上で追加のECCコンポーネントを必要としないようにインラインECC機能を提供する。いくつかの技法では、インラインECC機能は、メモリコントローラ(複数可)118および/またはメモリコントローラ(複数可)116の一部として実装され得る。しかしながら、本明細書で説明される例では、インラインECC機能は、NoC106に取り付けられた別個の回路(インラインECC回路112)として実装される。これにより、インラインECC機能から複雑なDRAMコントローラ回路を切り離すモジュール式手法が提供される。この技法は、ハードニングされたDRAMコントローラ、ソフトDRAMコントローラ(例えば、プログラマブルロジック領域(複数可)108に構成されたDRAMコントローラ)、および他のタイプのメモリ(例えば、スタティックRAM(SRAM)または任意の他のタイプのRAMと共に使用され得る。インラインECC回路112は、最小限の影響で、SoC102で使用される任意のシステム実装に追加または除去され得る。インラインECC回路112はまた、ECCデータがどこにどのように格納されるかに関してより多くの柔軟性を提供する。
図2は、一例によるNoC106を示すブロック図である。NoC106は、NoCマスターユニット(NMU)202と、NoCスレーブユニット(NSU)204と、ネットワーク214と、NoCペリフェラルインターコネクト(NPI)210と、レジスタ(Regs)212とを備える。各NMU202は、マスターエンドポイントをNoC106に接続する入口回路である。各NSU204は、NoC106をスレーブエンドポイントに接続する出口回路である。NMU202は、ネットワーク214を介してNSU204に接続される。一例では、ネットワーク214は、NoCパケットスイッチ206と、NoCパケットスイッチ206間のルーティング208とを備える。各NoCパケットスイッチ206は、NoCパケットのスイッチングを行う。NoCパケットスイッチ206は、複数の物理チャネルを実装するためにルーティング208を介して互いに接続され、またNMU202およびNSU204に接続される。NoCパケットスイッチ206はまた、物理チャネルごとに複数の仮想チャネルを支援する。NPI210は、NMU202、NSU204、およびNoCパケットスイッチ206をプログラムするための回路を備える。例えば、NMU202、NSU204、およびNoCパケットスイッチ206は、それらの機能を判定するレジスタ212を備え得る。NPI210は、機能を設定するようにNPIをプログラミングするためにレジスタ212に接続されたインターコネクトを備える。NoC106の構成データは、NVM110に格納され、NoC106をプログラミングするためにNPI210に供給され得る。
図3は、一例によるメモリシステム300を示すブロック図である。メモリシステム300は、1つまたは複数のマスターデバイス(複数可)302と、NoC106と、1つまたは複数のメモリコントローラ304と、インラインECC回路112と、メモリ306とを備える。マスターデバイス(複数可)302は、処理システム104内の回路またはプログラマブルロジック領域(複数可)108内の回路(例えば、ハードニングされた回路または構成された回路)などの、SoC102内の回路である。マスターデバイス(複数可)302は、NoC106内のNMU202に接続される。メモリコントローラ304(複数可)は、処理システム104および/またはプログラマブルロジック領域(複数可)108に配置される。メモリコントローラ(複数可)304は、メモリ306を制御するように構成される。メモリ306は、1つまたは複数のDRAMモジュール、SRAMモジュール、および/または他のタイプのメモリモジュールなどの1つまたは複数のメモリモジュールを含み得る。NoC106は、マスターデバイス(複数可)302とメモリコントローラ(複数可)304との間でメモリトランザクション(例えば、読み出しおよび書き込みトランザクション)をルーティングする。
動作中、SoC102のアドレス空間内の1つまたは複数のアドレス範囲は、ECC保護されるように選択され得るが、アドレス空間の他の部分は保護されないままであり得る。保護されていない領域へのメモリトランザクションは、NoC106を介してマスターデバイス(複数可)302とメモリコントローラ(複数可)304との間で直接ルーティングされ得る。ECC保護領域へのメモリトランザクションは、インラインECC回路112を介してルーティングされ、インラインECC回路112は、マスターデバイス(複数可)302およびメモリコントローラ(複数可)304(すなわち、スレーブデバイス)の両方に対して透過的にECCデータの生成およびチェックを管理する。
図4は、一例による、ECC書き込みトランザクションを処理する方法400である。方法400は、インラインECC回路112がマスターデバイス302から書き込みトランザクションを受信するステップ402において始まる。書き込みトランザクションは、メモリ306内のアドレス指定されたロケーションに書き込まれるデータを含む。ステップ404において、インラインECC回路112は、書き込まれるデータ(例えば、ECCパリティデータ)に基づいてECCデータを計算する。ステップ406において、インラインECC回路112は、元のデータおよびECCデータの両方を1つまたは複数の宛先に書き込むための1つまたは複数の発信トランザクションを生成する。一例では、ステップ408において、インラインECC回路112は、メモリ306の同じメモリ領域内で元のデータの間にECCデータを散在させる。このような場合、インラインECC回路112は、単一の発信トランザクションを生成し得る。例えば、メモリ306がページ単位でアクセスされる場合、元のデータおよびECCデータの両方が同じページ(複数可)に格納され得る。
別の例では、ステップ410において、インラインECC回路112は、同じメモリまたは別個のメモリモジュールの、元のデータとは別個のメモリ領域にECCデータを格納する。このような場合、インラインECC回路112は、元のデータのための1つのトランザクションと、ECCデータを書き込むための別のトランザクションとを生成する。例えば、別個のメモリ領域は、同じメモリ内の別個のページとすることができる。別個のメモリモジュールが使用される場合、別個のメモリモジュールは、元のデータの格納に使用されるメモリモジュールと同じタイプとすることも異なるタイプとすることもできる。
図5は、一例による、読み出しトランザクションを処理する方法500を示す流れ図である。方法500は、インラインECC回路112がマスターデバイス302から読み出しトランザクションを受信するステップ502において始まる。読み出しトランザクションは、データを読み出すための、メモリ306内のアドレスを含む。ステップ504において、ラインECC回路112は、元のデータおよびECCデータの両方をそれらのそれぞれのストレージロケーションから読み出すための1つまたは複数の発信トランザクションを生成する。上記のように、ECCデータは、元のデータと同じメモリ領域に格納されても、異なるメモリ領域に格納されても、異なるメモリモジュールに格納されてもよい。インラインECC回路112は、元のデータおよびECCデータの両方を読み出すための1つまたは複数のトランザクションを生成する。
ステップ506において、ラインECC回路112は、ECCデータおよび元のデータに基づいて誤りを検出および訂正するために使用されるECCシンドロームを計算する。ステップ508において、ECC回路112は、計算されたECCシンドロームに基づいて、元のデータの誤りがあればこれを処理する。ステップ510において、インラインECC回路112は、要求されたデータのみを含む、読み出しトランザクションに対する応答を生成し、その応答をマスターデバイス302に送信する。ECC機能は、マスターデバイス302およびメモリコントローラ304に対して透過的である。
図6は、本明細書で説明されるインラインECC回路112を使用することができる、一例によるプログラマブルIC1を示すブロック図である。プログラマブルIC1は、プログラマブルロジック3と、構成ロジック25と、構成メモリ26とを備える。プログラマブルIC1は、不揮発性メモリ27、DRAM28、および他の回路29などの外部回路に接続され得る。プログラマブルロジック3は、ロジックセル30と、支援回路31と、プログラマブルインターコネクト32とを備える。ロジックセル30は、複数の入力の一般的なロジック機能を実装するように構成され得る回路を含む。支援回路31は、送受信機、入出力ブロック、デジタルシグナルプロセッサ、メモリなどの専用回路を含む。ロジックセルと支援回路31とは、プログラマブルインターコネクト32を使用して相互接続され得る。ロジックセル30をプログラミングするため、支援回路31のパラメータを設定するため、およびプログラマブルインターコネクト32をプログラミングするための情報が、構成ロジック25によって構成メモリ26に格納される。構成ロジック25は、不揮発性メモリ27または任意の他の送信元(例えば、DRAM28または他の回路29)から構成データを取得し得る。いくつかの例では、プログラマブルIC1は、処理システム2を備える。処理システム2は、マイクロプロセッサ(複数可)、メモリ、支援回路、入出力回路などを備え得る。
図7は、一例による、プログラマブルIC1のシステムオンチップ(SoC)実装を示すブロック図である。この例では、プログラマブルIC1は、処理システム2とプログラマブルロジック3とを備える。処理システム2は、リアルタイム処理ユニット(RPU)4、アプリケーション処理ユニット(APU)5、グラフィック処理ユニット(GPU)6、構成およびセキュリティユニット(CSU)12、プラットフォーム管理ユニット(PMU)122などの様々な処理ユニットを備える。処理システム2はまた、オンチップメモリ(OCM)14、送受信機7、ペリフェラル8、インターコネクト16、DMA回路9、メモリコントローラ10、ペリフェラル15、および多重入出力(MIO)回路13などの様々な支援回路を備える。処理ユニットと支援回路とは、インターコネクト16によって相互接続される。PL3はまた、インターコネクト16に接続される。送受信機7は、外部ピン24に接続される。PL3は、外部ピン23に接続される。メモリコントローラ10は、外部ピン22に接続される。MIO13は、外部ピン20に接続される。PS2は、一般に、外部ピン21に接続される。APU5は、CPU17と、メモリ18と、支援回路19とを備え得る。APU5は、L1キャッシュおよびL2キャッシュなどを含む他の回路を備え得る。RPU4は、L1キャッシュなどの追加の回路を備え得る。インターコネクト16は、キャッシュコヒーレントインターコネクトなどを含み得る。
PS2を参照すると、処理ユニットのそれぞれが、1つまたは複数の中央処理ユニット(CPU)と、メモリ、割り込みコントローラ、ダイレクトメモリアクセス(DMA)コントローラ、メモリ管理ユニット(MMU)、浮動小数点ユニット(FPU)などの関連回路とを備える。インターコネクト16は、処理ユニットを相互接続するとともに、PS2内の他の構成要素を処理ユニットに相互接続するように構成された様々なスイッチ、バス、通信リンクなどを含む。
OCM14は、PS2全体に分散され得る1つまたは複数のRAMモジュールを備える。例えば、OCM14は、バッテリーバックアップされたRAM(BBRAM)、密結合メモリ(TCM)などを含み得る。メモリコントローラ10は、外部DRAMにアクセスするためのDRAMインターフェースを備え得る。ペリフェラル8、15は、PS2へのインターフェースを提供する1つまたは複数のコンポーネントを含み得る。例えば、ペリフェラル132は、グラフィック処理ユニット(GPU)、ディスプレイインターフェース(例えば、ディスプレイポート、高解像度マルチメディアインターフェース(HDMI)ポートなど)、ユニバーサルシリアルバス(USB)ポート、イーサネットポート、ユニバーサル非同期送受信機(UART)ポート、シリアルペリフェラルインターフェース(SPI)ポート、汎用入出力(GPIO)ポート、シリアルアドバンスド・テクノロジーアタッチメント(SATA)ポート、PCIeポートなどを含み得る。ペリフェラル15は、MIO13に接続され得る。ペリフェラル8は、送受信機7に接続され得る。送受信機7は、シリアライザ/デシリアライザ(SERDES)回路、MGTなどを備え得る。
図8は、送受信機37、構成可能な論理ブロック(「CLB」)33、ランダムアクセスメモリブロック(「BRAM」)34、入出力ブロック(「IOB」)36、構成およびクロッキングロジック(「構成/クロック」)42、デジタル信号処理ブロック(「DSP」)35、専用入出力ブロック(「入出力」)41(例えば、構成ポートおよびクロックポート)、ならびにデジタルクロックマネージャ、アナログ−デジタル変換器、システム監視ロジックなどの他のプログラマブルロジック39を含む多数の異なるプログラマブルタイルを備える、プログラマブルIC1のフィールドプログラマブルゲートアレイ(FPGA)実装を示している。FPGAはまた、PCIeインターフェース40、アナログ−デジタル変換器(ADC)38などを備え得る。
いくつかのFPGAでは、図8の上部に含まれる例によって示されるように、各プログラマブルタイルは、同じタイル内のプログラマブルロジックエレメントの入出力端子48への接続を有する少なくとも1つのプログラマブルインターコネクトエレメント(「INT」)43を含み得る。各プログラマブルインターコネクトエレメント43はまた、同じタイルまたは他のタイル(複数可)における隣接するプログラマブルインターコネクトエレメント(複数可)のインターコネクトセグメント49への接続を含み得る。各プログラマブルインターコネクトエレメント43はまた、論理ブロック(図示せず)間の一般的なルーティングリソースのインターコネクトセグメント50への接続を含み得る。一般的なルーティングリソースは、インターコネクトセグメント(例えば、インターコネクトセグメント50)のトラックを含む論理ブロック(図示せず)と、インターコネクトセグメントを接続するためのスイッチブロック(図示せず)との間のルーティングチャネルを含み得る。一般的なルーティングリソースのインターコネクトセグメント(例えば、インターコネクトセグメント50)は、1つまたは複数の論理ブロックにわたることができる。プログラマブルインターコネクトエレメント43は、一般的なルーティングリソースと共に、例示されたFPGAのためのプログラマブルインターコネクト構造(「プログラマブルインターコネクト」)を実装する。
例示的な実装形態では、CLB33は、ユーザロジックに加えて単一のプログラマブルインターコネクトエレメント(「INT」)43を実装するようにプログラムされ得る構成可能なロジックエレメント(「CLE」)44を含み得る。BRAM34は、1つまたは複数のプログラマブルインターコネクトエレメントに加えて、BRAMロジックエレメント(「BRL」)45を備え得る。通常、タイルに含まれるインターコネクトエレメントの数は、タイルの高さに依存する。図示の例では、BRAMタイルの高さは5つのCLBと同じであるが、他の数(例えば、4)も用いられ得る。DSPタイル35は、適切な数のプログラマブルインターコネクトエレメントに加えて、DSPロジックエレメント(「DSPL」)46を備え得る。IOB36は、例えば、プログラマブルインターコネクトエレメント43の1つのインスタンスに加えて、入出力ロジックエレメント(「IOL」)47の2つのインスタンスを備え得る。当業者には明らかであるように、例えば、入出力ロジックエレメント47に接続された実際の入出力パッドは、通常、入出力ロジックエレメント47の領域に限定されない。
図示の例では、(図8に示す)ダイの中心付近の水平領域が構成、クロック、および他の制御ロジックに使用されている。この水平領域または列から延びる垂直の列51は、FPGAの幅全体にクロックおよび構成信号を分配するために使用される。
図8に示すアーキテクチャを利用するいくつかのFPGAは、FPGAの大部分を構成する通常のカラム型構造を破壊する追加の論理ブロックを含む。追加の論理ブロックは、プログラマブルブロックおよび/または専用ロジックであり得る。
図8は、例示的なFPGAアーキテクチャを示すことのみを意図されていることに留意されたい。例えば、図8の上部に含まれている行内の論理ブロックの数、行の相対的な幅、行の数および順序、行に含まれる論理ブロックのタイプ、論理ブロックの相対的なサイズ、インターコネクト/ロジックの実装は単なる例である。例えば、実際のFPGAでは、ユーザロジックの効率的な実装を容易にするために、CLBが現れる場所にはどこでも、CLBの複数の隣接する行が通常含まれるが、隣接するCLB行の数はFPGAの全体的なサイズによって異なる。
一例では、集積ICが提供され得る。このようなICは、ネットワークオンチップ(NoC)と、NoCに接続されたマスターデバイスと、
NoCに接続され、ICに接続されたメモリを制御するように構成されたメモリコントローラと、インライン誤り訂正符号(ECC)回路であって、ECC回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてECCデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインECC回路と、を備え得る。
いくつかのこのようなICでは、インラインECC回路は、マスターデバイスから書き込みトランザクションを受信し、書き込みトランザクションのデータに基づいてECCデータを計算し、データおよびECCデータの両方をメモリ内の1つまたは複数の宛先に書き込むための1つまたは複数の発信トランザクションを生成するように構成され得る。
いくつかのこのようなICでは、1つまたは複数の発信トランザクションが、データおよびECCデータの両方をメモリのモジュール内の領域に書き込むための単一の発信トランザクションを含み得る。
いくつかのこのようなICでは、1つまたは複数の発信トランザクションが、データをメモリのモジュールの第1の領域に書き込むための第1の発信トランザクションと、データをメモリのモジュールの第2の領域に書き込むための第2の発信トランザクションとを含み得る。
いくつかのこのようなICでは、1つまたは複数の発信トランザクションが、データをメモリの第1のモジュールに書き込むための第1の発信トランザクションと、データをメモリの第2のモジュールに書き込むための第2の発信トランザクションとを含み得る。
このようないくつかのICでは、インラインECC回路は、マスターデバイスから読み出しトランザクションを受信し、データおよびECCデータの両方をメモリ内のそれぞれのストレージロケーションから読み出すための1つまたは複数の発信トランザクションを生成し、ECCデータからECCシンドロームを計算し、データを含む読み出しトランザクションに対する応答を生成するように構成され得る。
いくつかのこのようなICでは、インラインECC回路は、ECCシンドロームを使用して、データ内の1つまたは複数の誤りを処理するように構成され得る。
別の例では、ICにおけるメモリ管理の方法が提供され得る。このような集積回路(IC)におけるメモリ管理の方法は、インライン誤り訂正符号(ECC)回路において、ネットワークオンチップ(NoC)を介してマスターデバイスからトランザクションを受信することであって、トランザクションが、ICに接続されたメモリを対象とする、トランザクションを受信することと、インラインECC回路において、トランザクションに基づいてECCデータを判定することと、NoCに接続され、メモリを制御するように構成されたメモリコントローラに、1つまたは複数の発信トランザクションを供給することと、を含む。
いくつかのこのような方法では、トランザクションが書き込みトランザクションであり得、ECCデータが書き込みトランザクションのデータに基づいて判定され得、1つまたは複数の発信トランザクションがデータおよびECCデータの両方をメモリ内の1つまたは複数の宛先に書き込むように構成され得る。
いくつかのこのような方法では、1つまたは複数の発信トランザクションが、データおよびECCデータの両方をメモリのモジュール内の領域に書き込むための単一の発信トランザクションを含み得る。
いくつかのこのような方法では、1つまたは複数の発信トランザクションが、データをメモリのモジュールの第1の領域に書き込むための第1の発信トランザクションと、データをメモリのモジュールの第2の領域に書き込むための第2の発信トランザクションとを含み得る。
いくつかのこのような方法では、1つまたは複数の発信トランザクションが、データをメモリの第1のモジュールに書き込むための第1の発信トランザクションと、データをメモリの第2のモジュールに書き込むための第2の発信トランザクションとを含み得る。
いくつかのこのような方法では、トランザクションが読み出しトランザクションであり得、1つまたは複数の発信トランザクションがデータおよびECCデータの両方をメモリ内のそれぞれのストレージロケーションから読み出すように構成され得、本方法が、ECCデータからECCシンドロームを計算することと、
データを含み得る、読み出しトランザクションに対する応答を生成することと
をさらに含む。
いくつかのこのような方法では、本方法は、ECCシンドロームを使用して、データ内の1つまたは複数の誤りを処理することをさらに含む。
さらに別の例では、ICが提供され得る。このようなICは、処理システムと、プログラマブルロジック領域と、処理システムとプログラマブルロジック領域とを接続するネットワークオンチップ(NoC)と、NoCに接続されたマスターデバイスと、NoCに接続され、ICに接続されたメモリを制御するように構成されたメモリコントローラと、NoCに接続されたインライン誤り訂正符号(ECC)回路であって、ECC回路が、マスターデバイスからメモリを対象とする読み出しおよび書き込みトランザクションを受信し、読み出しおよび書き込みトランザクションに基づいてECCデータを計算し、発信トランザクションをメモリコントローラに供給するように構成される、インラインECC回路と、を備え得る。
このようなICでは、マスターデバイスは処理システムに配置され得る。
このようなICでは、マスターデバイスは、プログラマブルロジック領域に配置され得る。
このようなICでは、マスターデバイスは、プログラマブルロジック領域に構成され得る。
このようなICでは、インラインECC回路は、マスターデバイスから書き込みトランザクションを受信し、書き込みトランザクションのデータに基づいてECCデータを計算し、データおよびECCデータの両方をメモリ内の1つまたは複数の宛先に書き込むための1つまたは複数の発信トランザクションを生成するように構成され得る。
このようなICでは、インラインECC回路は、マスターデバイスから読み出しトランザクションを受信し、データおよびECCデータの両方をメモリ内のそれぞれのストレージロケーションから読み出すための1つまたは複数の発信トランザクションを生成し、ECCデータからECCシンドロームを計算し、データを含む読み出しトランザクションに対する応答を生成するように構成され得る。
以上は具体的な例を対象としているが、本開示の基本的な範囲から逸脱することなく、他のさらなる例を考案することができ、本開示の範囲は添付の特許請求の範囲によって決定される。

Claims (14)

  1. 集積回路(IC)であって、
    ネットワークオンチップ(NoC)と、
    前記NoCに接続されたマスターデバイスと、
    前記NoCに接続され、前記ICに接続されたメモリを制御するように構成されたメモリコントローラと、
    前記NoCに接続されたインライン誤り訂正符号(ECC)回路であって、前記ECC回路が、前記マスターデバイスから前記メモリを対象とする読み出しおよび書き込みトランザクションを受信し、前記読み出しおよび書き込みトランザクションに基づいてECCデータを計算し、発信トランザクションを前記メモリコントローラに供給するように構成される、インラインECC回路と、
    を備える、集積回路(IC)。
  2. 前記インラインECC回路が、
    前記マスターデバイスから書き込みトランザクションを受信し、
    前記書き込みトランザクションのデータに基づいてECCデータを計算し、
    前記データおよび前記ECCデータの両方を前記メモリ内の1つまたは複数の宛先に書き込むための1つまたは複数の発信トランザクションを生成する
    ように構成される、請求項1に記載のIC。
  3. 前記1つまたは複数の発信トランザクションが、前記データおよび前記ECCデータの両方を前記メモリのモジュール内の領域に書き込むための単一の発信トランザクションを含む、請求項2に記載のIC。
  4. 前記1つまたは複数の発信トランザクションが、前記データを前記メモリのモジュールの第1の領域に書き込むための第1の発信トランザクションと、前記データを前記メモリの前記モジュールの第2の領域に書き込むための第2の発信トランザクションとを含む、請求項2に記載のIC。
  5. 前記1つまたは複数の発信トランザクションが、前記データを前記メモリの第1のモジュールに書き込むための第1の発信トランザクションと、前記データを前記メモリの第2のモジュールに書き込むための第2の発信トランザクションとを含む、請求項2に記載のIC。
  6. 前記インラインECC回路が、
    前記マスターデバイスから読み出しトランザクションを受信し、
    前記メモリ内のそれぞれのストレージロケーションから前記データおよび前記ECCデータの両方を読み出すための1つまたは複数の発信トランザクションを生成し、
    前記ECCデータからECCシンドロームを計算し、
    前記データを含む前記読み出しトランザクションに対する応答を生成する
    ように構成される、請求項1から5のいずれか一項に記載のIC。
  7. 前記インラインECC回路が、
    前記ECCシンドロームを使用して、前記データ内の1つまたは複数の誤りを処理する
    ように構成される、請求項6に記載のIC。
  8. 集積回路(IC)におけるメモリ管理の方法であって、
    インライン誤り訂正符号(ECC)回路において、ネットワークオンチップ(NoC)を介してマスターデバイスからトランザクションを受信することであって、前記トランザクションが、前記ICに接続されたメモリを対象とする、トランザクションを受信することと、
    前記インラインECC回路において、前記トランザクションに基づいてECCデータを判定することと、
    前記NoCに接続され、前記メモリを制御するように構成されたメモリコントローラに、1つまたは複数の発信トランザクションを供給することと、
    を含む、方法。
  9. 前記トランザクションが書き込みトランザクションであり、前記ECCデータが前記書き込みトランザクションのデータに基づいて判定され、前記1つまたは複数の発信トランザクションが前記データおよび前記ECCデータの両方を前記メモリ内の1つまたは複数の宛先に書き込むように構成される、請求項8に記載の方法。
  10. 前記1つまたは複数の発信トランザクションが、前記データおよび前記ECCデータの両方を前記メモリのモジュール内の領域に書き込むための単一の発信トランザクションを含む、請求項9に記載の方法。
  11. 前記1つまたは複数の発信トランザクションが、前記データを前記メモリのモジュールの第1の領域に書き込むための第1の発信トランザクションと、前記データを前記メモリの前記モジュールの第2の領域に書き込むための第2の発信トランザクションとを含む、請求項9に記載の方法。
  12. 前記1つまたは複数の発信トランザクションが、前記データを前記メモリの第1のモジュールに書き込むための第1の発信トランザクションと、前記データを前記メモリの第2のモジュールに書き込むための第2の発信トランザクションとを含む、請求項9に記載の方法。
  13. 前記トランザクションが読み出しトランザクションであり、前記1つまたは複数の発信トランザクションが前記メモリ内のそれぞれのストレージロケーションから前記データおよび前記ECCデータの両方を読み出すように構成され、前記方法が、
    前記ECCデータからECCシンドロームを計算することと、
    前記データを含む前記読み出しトランザクションに対する応答を生成することと
    をさらに含む、請求項8に記載の方法。
  14. 前記方法が、
    前記ECCシンドロームを使用して、前記データ内の1つまたは複数の誤りを処理すること
    をさらに含む、請求項13に記載の方法。
JP2020533568A 2017-12-21 2018-10-09 システムオンチップのためのインラインecc機能 Active JP7341142B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/851,449 2017-12-21
US15/851,449 US10346346B1 (en) 2017-12-21 2017-12-21 Inline ECC function for system-on-chip
PCT/US2018/055068 WO2019125584A1 (en) 2017-12-21 2018-10-09 Inline ecc function for system-on-chip

Publications (2)

Publication Number Publication Date
JP2021509554A true JP2021509554A (ja) 2021-03-25
JP7341142B2 JP7341142B2 (ja) 2023-09-08

Family

ID=64110063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020533568A Active JP7341142B2 (ja) 2017-12-21 2018-10-09 システムオンチップのためのインラインecc機能

Country Status (6)

Country Link
US (1) US10346346B1 (ja)
EP (1) EP3707609A1 (ja)
JP (1) JP7341142B2 (ja)
KR (1) KR20200097337A (ja)
CN (1) CN111492351B (ja)
WO (1) WO2019125584A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10673439B1 (en) 2019-03-27 2020-06-02 Xilinx, Inc. Adaptive integrated programmable device platform
US11474826B1 (en) * 2019-04-18 2022-10-18 Xilinx, Inc. Boot image file having a global partition for data processing engines of a programmable device
US10970248B2 (en) 2019-05-10 2021-04-06 Achronix Semiconductor Corporation Processing of ethernet packets at a programmable integrated circuit
US10608640B1 (en) * 2019-05-10 2020-03-31 Achronix Semiconductor Corporation On-chip network in programmable integrated circuit
US10936525B2 (en) 2019-05-10 2021-03-02 Achronix Semiconductor Corporation Flexible routing of network data within a programmable integrated circuit
US11249842B2 (en) * 2019-05-24 2022-02-15 Texas Instruments Incorporated Error correcting codes for multi-master memory controller
WO2021035811A1 (zh) * 2019-08-27 2021-03-04 江苏华存电子科技有限公司 一种可变动码率与更正能力内存控制方法
US11580057B2 (en) 2019-10-28 2023-02-14 Xilinx, Inc. Subsystem for configuration, security, and management of an adaptive system
US11513893B2 (en) 2020-12-21 2022-11-29 Intel Corporation Concurrent compute and ECC for in-memory matrix vector operations
US11983133B2 (en) * 2022-08-22 2024-05-14 Xilinx, Inc. Adaptive integrated programmable data processing unit
CN115934629A (zh) * 2022-12-20 2023-04-07 成都芯海创芯科技有限公司 一种片上系统以及汽车

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111295A1 (en) * 2011-10-31 2013-05-02 Sheng Li Methods and apparatus to perform error detection and correction
US20150143036A1 (en) * 2013-11-19 2015-05-21 Emu Solutions, Inc. Exporting computational capabilities into a block-oriented disk memory
US20150278004A1 (en) * 2012-11-02 2015-10-01 Hewlett-Packard Development Company, L.P. Efficient and Reliable Memory Systems with Adaptive ECC and Granularity Switching
US20150301890A1 (en) * 2014-04-22 2015-10-22 Freescale Semiconductor, Inc. Apparatus for error detection in memory devices
US9632869B1 (en) * 2015-09-08 2017-04-25 Xilinx, Inc. Error correction for interconnect circuits

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7143332B1 (en) 2003-12-16 2006-11-28 Xilinx, Inc. Methods and structures for providing programmable width and error correction in memory arrays in programmable logic devices
KR100632952B1 (ko) * 2004-09-30 2006-10-11 삼성전자주식회사 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
US8032688B2 (en) * 2005-06-30 2011-10-04 Intel Corporation Micro-tile memory interfaces
US7380197B1 (en) 2005-07-12 2008-05-27 Xilinx, Inc. Circuit and method for error detection
US7620875B1 (en) 2006-03-07 2009-11-17 Xilinx, Inc. Error correction code memory system with a small footprint and byte write operation
US20100162265A1 (en) * 2008-12-23 2010-06-24 Marco Heddes System-On-A-Chip Employing A Network Of Nodes That Utilize Logical Channels And Logical Mux Channels For Communicating Messages Therebetween
US20100158023A1 (en) * 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
US20100161938A1 (en) * 2008-12-23 2010-06-24 Marco Heddes System-On-A-Chip Supporting A Networked Array Of Configurable Symmetric Multiprocessing Nodes
US20100191911A1 (en) * 2008-12-23 2010-07-29 Marco Heddes System-On-A-Chip Having an Array of Programmable Processing Elements Linked By an On-Chip Network with Distributed On-Chip Shared Memory and External Shared Memory
US20100158005A1 (en) * 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
US8631055B2 (en) * 2009-09-30 2014-01-14 Samplify Systems, Inc. Enhanced multi-processor waveform data exchange using compression and decompression
EP2444903A1 (en) * 2010-09-29 2012-04-25 STMicroelectronics (Grenoble 2) SAS A transaction reordering arrangement
US10331846B2 (en) * 2015-12-30 2019-06-25 Arteris, Inc. Dynamic link serialization in network-on-chip
US10387303B2 (en) * 2016-08-16 2019-08-20 Western Digital Technologies, Inc. Non-volatile storage system with compute engine to accelerate big data applications
US10459644B2 (en) * 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
US10565123B2 (en) * 2017-04-10 2020-02-18 Western Digital Technologies, Inc. Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module
US20180358989A1 (en) * 2017-06-09 2018-12-13 Western Digital Technologies, Inc. Non-volatile Storage Systems With Application-Aware Error-Correcting Codes
US10223216B1 (en) * 2017-10-30 2019-03-05 Western Digital Technologies, Inc. Non-volatile storage system that reclaims bad blocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130111295A1 (en) * 2011-10-31 2013-05-02 Sheng Li Methods and apparatus to perform error detection and correction
US20150278004A1 (en) * 2012-11-02 2015-10-01 Hewlett-Packard Development Company, L.P. Efficient and Reliable Memory Systems with Adaptive ECC and Granularity Switching
US20150143036A1 (en) * 2013-11-19 2015-05-21 Emu Solutions, Inc. Exporting computational capabilities into a block-oriented disk memory
US20150301890A1 (en) * 2014-04-22 2015-10-22 Freescale Semiconductor, Inc. Apparatus for error detection in memory devices
US9632869B1 (en) * 2015-09-08 2017-04-25 Xilinx, Inc. Error correction for interconnect circuits

Also Published As

Publication number Publication date
US20190196901A1 (en) 2019-06-27
JP7341142B2 (ja) 2023-09-08
EP3707609A1 (en) 2020-09-16
US10346346B1 (en) 2019-07-09
WO2019125584A1 (en) 2019-06-27
CN111492351B (zh) 2024-08-09
CN111492351A (zh) 2020-08-04
KR20200097337A (ko) 2020-08-18

Similar Documents

Publication Publication Date Title
JP7341142B2 (ja) システムオンチップのためのインラインecc機能
US8572297B2 (en) Programmable system-on-chip hub
JP7244497B2 (ja) 集積回路パッケージへのプログラマブルデバイスおよび処理システムの集積
JP2021530806A (ja) プログラマブルデバイスのためのコンフィギュラブル・ネットワーク・オン・チップ
US20050091432A1 (en) Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
CN108121672A (zh) 一种基于NandFlash存储器多通道的存储阵列控制方法与装置
US9632869B1 (en) Error correction for interconnect circuits
US10824505B1 (en) ECC proxy extension and byte organization for multi-master systems
US10977051B1 (en) Dynamic base address register (BAR) reconfiguration using a peripheral component interconnect express (PCIe) extended configuration space
JP2023505261A (ja) メモリと分散計算アレイとの間のデータ転送
JP7402798B2 (ja) データセンタにおけるプログラマブルデバイス向けのセキュリティ
US11327899B1 (en) Hardware-based virtual-to-physical address translation for programmable logic masters in a system on chip
KR20220091521A (ko) 프로그래밍가능 디바이스 구성 메모리 시스템
US10936486B1 (en) Address interleave support in a programmable device
US9990131B2 (en) Managing memory in a multiprocessor system
US20240193341A1 (en) Alignment of macros based on anchor locations

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20200817

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230410

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: 20230801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230829

R150 Certificate of patent or registration of utility model

Ref document number: 7341142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150