CN111492351B - 用于片上系统的在线ecc功能 - Google Patents

用于片上系统的在线ecc功能 Download PDF

Info

Publication number
CN111492351B
CN111492351B CN201880081816.8A CN201880081816A CN111492351B CN 111492351 B CN111492351 B CN 111492351B CN 201880081816 A CN201880081816 A CN 201880081816A CN 111492351 B CN111492351 B CN 111492351B
Authority
CN
China
Prior art keywords
data
memory
transaction
network
error correction
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
CN201880081816.8A
Other languages
English (en)
Other versions
CN111492351A (zh
Inventor
Y·阿贝尔
I·A·斯瓦布里克
S·阿玛德
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 CN111492351A publication Critical patent/CN111492351A/zh
Application granted granted Critical
Publication of CN111492351B publication Critical patent/CN111492351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)
  • Memory System (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

一种示例集成电路(IC)包括片上网络(NoC)(106);耦合到NoC的主设备(302);耦合到NoC的存储器控制器(304),其被配置为控制耦合到IC的存储器;以及耦合到NoC的在线纠错码(ECC)电路(112)。ECC电路被配置为从主设备接收以存储器为目标的读取和写入事务,基于读取和写入事务计算ECC数据,以及将输出事务提供给存储器控制器。

Description

用于片上系统的在线ECC功能
技术领域
本公开的示例总体上涉及电子电路,并且特别地,涉及用于片上系统(SoC)的在线纠错码(ECC)功能。
背景技术
传统地,使用额外的“带外”数据位(例如,64位数据加8位奇偶校验)实施动态随机存取存储器(DRAM)的纠错码(ECC)保护。由于需要用于存储ECC数据的一个或多个DRAM组件和附加的接口输入/输出(IO)针脚,因此这种方法的成本很高。
另外,已经发现总线结构不适用于一些片上系统(SoC)集成电路(SoC)。随着电路集成度的增加,事务可能会被阻塞,并且容量增加可能产生信令问题。代替总线结构,片上网络(NoC)可以用于支持SoC的组件之间的数据通信。
NoC通常包括交换机的集合,交换机将分组从芯片上的源电路(“源”)路由到芯片上的目的地电路(“目的地”)。芯片中的交换机的布局支持从所需源到所需目的地的分组传输。在从源到目的地的传输中,分组可以穿过多个交换机。每个交换机都可以连接到网络中的一个或多个其他交换机,并且将输入分组路由到所连接的交换机中的一个交换机或路由到目的地。
发明内容
描述了用于片上系统(SoC)的在线纠错码(ECC)功能的技术。在一个示例中,一种集成电路(IC)包括:片上网络(NoC);耦合到NoC的主设备;耦合到NoC的存储器控制器,其被配置为控制耦合到IC的存储器;以及耦合到NoC的在线纠错码(ECC)电路,ECC电路被配置为:从主设备接收以存储器为目标的读取事务和写入事务,基于该读取事务和写入事务计算ECC数据,以及将输出事务提供给存储器控制器。
在另一示例中,一种在集成电路(IC)中的存储器管理的方法包括:通过片上网络(NoC),在在线纠错码(ECC)电路处从主设备接收事务,该事务以耦合到IC的存储器为目标;基于在在线ECC电路处的事务确定ECC数据;以及将一个或多个输出事务提供给耦合到NoC的存储器控制器,该存储器控制器被配置为控制该存储器。
在另一示例中,一种集成电路(IC)包括:处理系统;可编程逻辑区域;片上网络(NoC),耦合处理系统和可编程逻辑区域;耦合到NoC的主设备;耦合到NoC的存储器控制器,其被配置为控制耦合到IC的存储器;以及耦合到NoC的在线纠错码(ECC)电路,该ECC电路被配置为:从主设备接收以存储器为目标的读取事务和写入事务,基于该读取事务和写入事务计算ECC数据,以及将输出事务提供给存储器控制器。
参考以下详细描述,可以理解这些和其他方面。
附图说明
为了可以详细地理解上述特征的方式,可以通过参考示例实施方式来进行上面简要概述的更具体的描述,其中一些示例在附图中被图示。但是,应当注意,附图仅图示了通常的示例实施方式,因此不应当视为对其范围的限制。
图1是描绘根据一个示例的片上系统(SoC)的框图。
图2是描绘根据一个示例的片上网络(NoC)的框图。
图3是描绘根据一个示例的存储器系统的框图。
图4是根据一个示例的处理ECC写入事务的方法。
图5是描绘根据一个示例的处理读取事务的方法的流程图。
图6是描绘其中可以采用本文描述的技术的可编程集成电路(IC)的框图。
图7是描绘根据一个示例的可编程IC的片上系统(SoC)实施方式的框图。
图8是其中可以采用本文描述的技术的现场可编程门阵列(FPGA)架构的示意图。
为了便于理解,在可能的地方使用了相同的附图标记来指定图中共有的相同元件。可以预期,一个示例的元件可以被有益地并入在其他示例中。
具体实施方式
在下文中参考附图描述各种特征。应当注意,附图可以按比例绘制或可以不按比例绘制,并且贯穿附图,相似结构或功能的元件由相似的附图标记表示。应当注意,附图仅旨在有助于特征的描述。它们无意作为所要求保护的发明的详尽描述或对所要求保护的发明的范围的限制。另外,所说明的示例不必具有所示的所有方面或优点。结合特定示例描述的方面或优点不必限于该示例,并且可以在任何其他示例中被实践,即使未如此图示或未如此明确描述。
图1是描绘根据一个示例的片上系统(SoC)102的框图。SoC 102是集成电路(IC),其包括处理系统104、片上网络(NoC)106、在线纠错码(ECC)电路系统112以及一个或多个可编程区域108。SoC 102可以耦合到诸如非易失性存储器(NVM)110和动态随机存取存储器(DRAM)114的外部电路。在一个示例中,处理系统104包括用于控制NVM 110和/或DRAM 114的一个或多个存储器控制器118。在另一示例中,可编程逻辑区域108包括用于控制NVM 110和/或DRAM 114的一个或多个存储器控制器116,存储器控制器116被实施成硬化电路或可配置逻辑。在一些其他示例中,SoC 102包括存储器控制器118和存储器控制器116。
NVM 110可以存储可以被加载到SoC 102以用于配置SoC 102的数据,诸如配置NoC106和可编程逻辑区域108。DRAM 114可以存储由SoC 102中的各种电路(包括处理系统104和配置在可编程逻辑区域108中的任何电路)使用的数据。下面描述处理系统104、NoC 106和可编程逻辑区域108的示例。通常,处理系统104通过NoC 106连接到可编程逻辑区域108。
在线ECC电路系统112提供在线ECC功能,使得在DRAM 114上不需要附加的ECC组件。在一些技术中,在线ECC功能可以被实施成存储器控制器118和/或存储器控制器116的一部分。然而,在本文描述的示例中,在线ECC功能被实施成附接到NoC 106的分开的电路(在线ECC电路系统112)。这提供了模块化方法,该方法将复杂的DRAM控制器电路系统与在线ECC功能解耦。该技术可以与硬化的DRAM控制器、软DRAM控制器(例如,配置在可编程逻辑区域108中的DRAM控制器)以及其他类型的存储器(例如,静态RAM(SRAM))或任何其他类型一起使用。可以以最小的影响,将在线ECC电路系统112添加在SoC 102中使用的任何系统实施方式中或从中删除。在线ECC电路系统112还提供了关于存储ECC数据的位置和方式的更多灵活性。
图2是描绘根据一个示例的NoC 106的框图。NoC 106包括NoC主单元(NMU)202、NoC从单元(NSU)204、网络214、NoC外围互连(NPI)210和寄存器(Reg)212。每个NMU 202是将主端点连接到NoC 106的入口电路。每个NSU 204是将NoC 106连接到从端点的出口电路。NMU202通过网络214连接到NSU 204。在一个示例中,网络214包括NoC分组交换机206以及位于NoC分组交换机206之间的路由208。每个NoC分组交换机206执行NoC分组的交换。NoC分组交换机206通过路由208彼此连接并且连接到NMU 202和NSU 204,以实施多个物理信道。NoC分组交换机206还支持每个物理信道多个虚拟信道。NPI 210包括对NMU 202、NSU204和NoC分组交换机206进行编程的电路系统。例如,NMU 202、NSU 204和NoC分组交换机206可以包括确定其功能的寄存器212。NPI 210包括耦合到寄存器212的互连,以用于对其进行编程以设置功能。可以将用于NoC 106的配置数据存储在NVM 110中,并且将其提供给NPI 210以用于对NoC 106进行编程。
图3是描绘根据一个示例的存储器系统300的框图。存储器系统300包括一个或多个主设备302、NoC 106、一个或多个存储器控制器304、在线ECC电路系统112和存储器306。主设备302是SoC102中的电路,诸如是处理系统104中的电路或可编程逻辑区域108中的电路(例如,经硬化的电路或经配置的电路)。主设备302耦合到NoC 106中的NMU 202。存储器控制器304被布置在处理系统104和/或可编程逻辑区域108中。存储器控制器304被配置为控制存储器306。存储器306可以包括一个或多个存储器模块,诸如一个或多个DRAM模块、SRAM模块和/或其他类型的存储器模块。NoC106在主设备302与存储器控制器304之间路由存储器事务(例如,读取事务和写入事务)。
在操作中,可以将SoC 102的地址空间中的一个或多个地址范围选择为受ECC保护,而地址空间的其他部分可以保持未受保护。可以经由NoC 106,在主设备302和存储器控制器304之间直接将存储器事务路由到未受保护区域。经由在线ECC电路系统112,将存储器事务路由到受ECC保护的区域,在线ECC电路系统112以对主设备302和存储器控制器304(即,从设备)都透明的方式来管理ECC数据的生成和检查。
图4是根据一个示例的处理ECC写入事务的方法400。方法400开始于步骤402,其中在线ECC电路系统112从主设备302接收写入事务。该写入事务包括要写入存储器306中的所寻址的位置的数据。在步骤404处,在线ECC电路系统112基于要写入的数据(例如,ECC奇偶校验数据)计算ECC数据。在步骤406处,在线ECC电路系统112生成一个或多个输出事务,以将原始数据和ECC数据都写入到一个或多个目的地。在一个示例中,在步骤408处,在线ECC电路系统112将ECC数据与原始数据分散(intersperse,散布)在存储器306的相同存储器区域中。在这种情况下,在线ECC电路系统112可以生成单个输出事务。例如,如果以页面访问存储器306,则原始数据和ECC数据两者可以被存储在相同的页面中。
在另一示例中,在步骤410处,在线ECC电路系统112将ECC数据与原始数据存储在相同存储器的分开的存储器区域中,或存储在分开的存储器模块中。在这种情况下,在线ECC电路系统112生成用于原始数据的一个事务,并且生成写入ECC数据的另一事务。例如,分开的存储器区域可以是相同存储器中的分开的页面。如果使用了分开的存储器模块,则分开的存储器模块可以与用于存储原始数据的存储器模块具有相同的类型或不同的类型。
图5是描绘根据一个示例的处理读取事务的方法500的流程图。方法500开始于步骤502,其中在线ECC电路系统112从主设备302接收读取事务。读取事务包括存储器306中的要从其读取数据的地址。在步骤504处,在线ECC电路系统112生成一个或多个输出事务,以从它们相应的存储位置中读取原始数据和ECC数据两者。如上所述,ECC数据可以被存储在与原始数据相同的存储器区域中、不同的存储器区域中或不同的存储器模块中。在线ECC电路系统112生成一个或多个事务以读取原始数据和ECC数据两者。
在步骤506处,在线ECC电路系统112基于ECC数据和原始数据,计算用于检测和校正错误的ECC校正子。在步骤508处,ECC电路系统112基于所计算的ECC校正子来处理原始数据中的任何错误。在步骤510处,在线ECC电路系统112生成对读取事务的响应,该响应仅包括所请求的数据,并且将该响应发送到主设备302。ECC功能对主设备302和存储器控制器304是透明的。
图6是描绘根据一个示例的可编程IC 1的框图,其中可以使用本文描述的在线ECC电路系统112。可编程IC 1包括可编程逻辑3、配置逻辑25和配置存储器26。可编程IC 1可以耦合到外部电路,诸如非易失性存储器27、DRAM 28和其他电路29。可编程逻辑3包括逻辑单元30、支持电路31和可编程互连32。逻辑单元30包括可以被配置为实施多个输入的通用逻辑功能的电路。支持电路31包括专用电路,诸如收发器、输入/输出块、数字信号处理器、存储器等。逻辑单元和支持电路31可以使用可编程互连32互连。由配置逻辑25将用于对逻辑单元30进行编程、用于设置支持电路31的参数以及用于对可编程互连32进行编程的信息存储在配置存储器26中。配置逻辑25可以从非易失性存储器27或任何其他源(例如,DRAM 28或从其他电路29)获得配置数据。在一些示例中,可编程IC 1包括处理系统2。处理系统2可以包括微处理器、存储器、支持电路、IO电路等。
图7是描绘根据示例的可编程IC 1的片上系统(SoC)实施方式的框图。在该示例中,可编程IC 1包括处理系统2和可编程逻辑3。处理系统2包括各种处理单元,诸如实时处理单元(RPU)4、应用处理单元(APU)5、图形处理单元(GPU)6、配置和安全单元(CSU)12、平台管理单元(PMU)122等。处理系统2还包括各种支持电路,诸如片上存储器(OCM)14、收发器7、外围设备8、互连16、DMA电路9、存储器控制器10、外围设备15和多路复用IO(MIO)电路13。处理单元和支持电路通过互连16互连。PL 3也耦合到互连16。收发器7耦合到外部针脚24。PL3耦合到外部针脚23。存储器控制器10耦合到外部针脚22。MIO 13耦合到外部针脚20。PS2通常耦合到外部针脚21。APU 5可以包括CPU 17、存储器18和支持电路19。APU 5可以包括其他的电路系统,包括L1和L2高速缓存等。RPU 4可以包括附加的电路系统,诸如L1高速缓存等。互连16可以包括高速缓存一致性互连等。
参考PS 2,处理单元中的每个处理单元包括一个或多个中央处理单元(CPU)和相关联的电路,诸如存储器、中断控制器、直接存储器访问(DMA)控制器、存储器管理单元(MMU)、浮点单元(FPU)等。互连16包括各种开关、总线、通信链路等,其被配置为互连处理单元以及将PS 2中的其他组件互连到处理单元。
OCM 14包括一个或多个RAM模块,其可以分布在整个PS 2中。例如,OCM 14可以包括电池后备RAM(BBRAM)、紧密耦合存储器(TCM)等。存储器控制器10可以包括用于访问外部DRAM的DRAM接口。外围设备8、15可以包括向PS 2提供接口的一个或多个组件。例如,外围设备132可以包括图形处理单元(GPU)、显示接口(例如DisplayPort、高清多媒体接口(HDMI)端口等)、通用串行总线(USB)端口、以太网端口、通用异步收发器(UART)端口、串行外围设备接口(SPI)端口、通用IO(GPIO)端口、串行高级技术附件(SATA)端口、PCIe端口等。外围设备15可以耦合到MIO 13。外围设备8可以耦合到收发器7。收发器7可以包括串行器/解串器(SERDES)电路、MGT等。
图8图示了可编程IC 1的现场可编程门阵列(FPGA)实施方式,其包括大量不同的可编程区块,包括收发器37、可配置逻辑块(“CLB”)33、随机存取存储器块(“BRAM”)34、输入/输出块(“IOB”)36、配置和时钟逻辑(“CONFIG/CLOCKS”)42、数字信号处理块(“DSP”)35、专用输入/输出块(“I/O”)41(例如,配置端口和时钟端口)以及其他可编程逻辑39(诸如,数字时钟管理器、模数转换器、系统监控逻辑等)。FPGA还可以包括PCIe接口40、模数转换器(ADC)38等。
在一些FPGA中,每个可编程区块可以包括至少一个可编程互连元件(“INT”)43,其具有到相同区块内的可编程逻辑元件的输入和输出端子48的连接,如由图8的上部包括的示例所示的。每个可编程互连元件43还可以包括到相同区块或其他区块中的相邻可编程互连元件的互连段49的连接。每个可编程互连元件43还可以包括到逻辑块(未示出)之间的通用路由资源的互连段50的连接。通用路由资源可以包括逻辑块(未示出)之间的路由信道,逻辑块包括互连段(例如,互连段50)的轨道和用于连接互连段的开关块(未示出)。通用路由资源的互连段(例如,互连段50)可以跨越一个或多个逻辑块。可编程互连元件43与通用路由资源一起实现了用于所图示的FPGA的可编程互连结构(“可编程互连”)。
在示例实施方式中,CLB 33可以包括可配置逻辑元件(“CLE”)44,其可以被编程为实施用户逻辑以及单个可编程互连元件(“INT”)43。除了一个或多个可编程互连元件之外,BRAM 34还可以包括BRAM逻辑元件(“BRL”)45。通常,区块中包括的互连元件的数目取决于区块的高度。在图示的示例中,BRAM区块具有与五个CLB相同的高度,但是也可以使用其他数目(例如,四个)。除了适当数目的可编程互连元件之外,DSP区块35还可以包括DSP逻辑元件(“DSPL”)46。除了可编程互连元件43的一个实例之外,IOB 36还可以包括例如输入/输出逻辑元件(“IOL”)47的两个实例。本领域技术人员将清楚,例如,连接到I/O逻辑元件47的实际I/O垫通常不限于输入/输出逻辑元件47的区域。
在图示的示例中,靠近裸片的中心的水平区域(如图8中所示)用于配置、时钟和其他控制逻辑。从该水平区域或列延伸的垂直列51用于跨FPGA的宽度分配时钟和配置信号。
利用了图8中图示的架构的一些FPGA包括附加逻辑块,这些逻辑块破坏了构成FPGA很大一部分的规则柱状结构。附加逻辑块可以是可编程块和/或专用逻辑。
注意,图8仅旨在图示示例性FPGA架构。例如,在图8的上部包括的一行中的逻辑块的数目、行的相对宽度、行的数目和顺序、行中包括的逻辑块的类型、逻辑块的相对大小以及互连/逻辑实施方式纯粹是示例性的。例如,在实际的FPGA中,无论CLB出现在何处,通常都包括一个以上的相邻CLB行,以有助于用户逻辑的有效实施方式,但是相邻CLB行的数目随FPGA的整体大小而变化。
在一个示例中,可以提供集成IC。这种IC可以包括:片上网络(NoC);耦合到NoC的主设备;耦合到NoC的存储器控制器,其被配置为控制耦合到IC的存储器;以及耦合到NoC的在线纠错码(ECC)电路,该ECC电路被配置为:从主设备接收以存储器为目标的读取事务和写入事务,基于该读取事务和写入事务计算ECC数据,并且将输出事务提供给存储器控制器。
一些这种IC、在线ECC电路可以被配置为:从主设备接收写入事务;基于写入事务中的数据计算ECC数据;以及生成一个或多个输出事务,以将数据和ECC数据两者写入到存储器中的一个或多个目的地。
在一些这种IC中,一个或多个输出事务可以包括单个输出事务,以将数据和ECC数据两者写入到存储器的模块中的区域。
在一些这种IC中,一个或多个输出事务可以包括将数据写入到存储器的模块的第一区域的第一输出事务,并且包括将数据写入到存储器的模块的第二区域的第二输出事务。
在一些这种IC中,一个或多个输出事务可以包括将数据写入到存储器的第一模块的第一输出事务,并且包括将数据写入到存储器的第二模块的第二输出事务。
在一些这种IC中,在线ECC电路系统可以被配置为:从主设备接收读取事务;生成一个或多个输出事务,以从存储器中的相应存储位置读取数据和ECC数据两者;从ECC数据计算ECC校正子;以及生成对读取事务的响应,响应包括数据。
在一些这种IC中,在线ECC电路系统可以被配置为:使用ECC校正子处理数据中的一个或多个错误。
在另一个示例中,可以提供一种在IC中的存储器管理的方法。在这种集成电路(IC)中的存储器管理的方法中,包括:通过片上网络(NoC),在在线纠错码(ECC)电路处从主设备接收事务,事务以耦合到IC的存储器为目标;基于在在线ECC电路处的事务确定ECC数据;以及将一个或多个输出事务提供给耦合到NoC的存储器控制器,存储器控制器被配置为控制存储器。
在一些这种方法中,事务可以是写入事务,其中可以基于写入事务中的数据来确定ECC数据,并且其中一个或多个输出事务可以被配置为将数据和ECC数据两者写入到存储器中的一个或多个目的地。
在一些这种方法中,一个或多个输出事务可以包括单个输出事务,以将数据和ECC数据两者写入到存储器的模块中的区域。
在一些这种方法中,一个或多个输出事务可以包括将数据写入到存储器的模块的第一区域的第一输出事务,并且包括将数据写入到存储器的模块中的第二区域的第二输出事务。
在一些这种方法中,一个或多个输出事务可以包括将数据写入到存储器的第一模块的第一输出事务,并且包括将数据写入到存储器的第二模块的第二输出事务。
在一些这种方法中,事务可以是读取事务,并且其中一个或多个输出事务可以被配置为从存储器中的相应存储位置读取数据和ECC数据两者,并且其中方法还包括:从ECC数据计算ECC校正子;以及生成对读取事务的响应,响应包括该数据。
在一些这种方法中,方法还包括:使用ECC校正子处理数据中的一个或多个错误。
在又一个示例中,可以提供一种IC。这种IC可以包括:处理系统;可编程逻辑区域;片上网络(NoC),将处理系统和可编程逻辑区域耦合;耦合到NoC的主设备;耦合到NoC的存储器控制器,被配置为控制耦合到IC的存储器;以及耦合到NoC的在线纠错码(ECC)电路,该ECC电路被配置为:从主设备接收以存储器为目标的读取事务和写入事务,基于该读取事务和写入事务计算ECC数据,以及将输出事务提供给存储器控制器。
在这种IC中,主设备可以被布置在处理系统中。
在这种IC中,主设备可以被布置在可编程逻辑区域中。
在这种IC中,主设备可以被配置在可编程逻辑区域中。
在这种IC中,在线ECC电路可以被配置为:从主设备接收写入事务;基于写入事务中的数据计算ECC数据;以及生成一个或多个输出事务,以将数据和ECC数据两者写入到存储器中的一个或多个目的地。
在这种IC中,在线ECC电路系统可以被配置为:从主设备接收读取事务;生成一个或多个输出事务以从存储器中的相应存储位置读取数据和ECC数据两者;从ECC数据计算ECC校正子;以及生成对读取事务的响应,响应包括该数据。
尽管前述内容针对特定示例,但是在不脱离其基本范围的情况下可以设计另外的示例,并且其范围由所附权利要求确定。

Claims (14)

1.一种集成电路,包括:
片上网络,所述片上网络包括片上网络主单元、片上网络从单元以及将所述片上网络主单元连接到所述片上网络从单元的网络;
主设备,耦合到所述片上网络的片上网络主单元;
存储器控制器,耦合到所述片上网络的片上网络从单元,并且被配置为控制耦合到所述集成电路的存储器;以及
在线纠错码电路,耦合到所述片上网络,所述在线纠错码电路被配置为从耦合到所述主设备的片上网络主单元来接收以所述存储器为目标的读取和写入事务,基于所述读取和写入事务计算纠错码数据,以及向耦合到所述存储器控制器的片上网络从单元提供输出事务。
2.根据权利要求1所述的集成电路,其中所述在线纠错码电路被配置为:
从所述主设备接收写入事务;
基于所述写入事务中的数据,计算纠错码数据;以及
生成一个或多个输出事务,以将所述数据和所述纠错码数据都写入到所述存储器中的一个或多个目的地。
3.根据权利要求2所述的集成电路,其中所述一个或多个输出事务包括单个输出事务,以将所述数据和所述纠错码数据都写入到所述存储器的模块中的区域。
4.根据权利要求2所述的集成电路,其中所述一个或多个输出事务包括将所述数据写入到所述存储器的模块的第一区域的第一输出事务,以及将所述数据写入到所述存储器的所述模块中的第二区域的第二输出事务。
5.根据权利要求2所述的集成电路,其中所述一个或多个输出事务包括将所述数据写入到所述存储器的第一模块的第一输出事务,以及将所述数据写入到所述存储器的第二模块的第二输出事务。
6.根据权利要求1-5中任一项所述的集成电路,其中所述在线纠错码电路被配置为:
从所述主设备接收读取事务;
生成一个或多个输出事务,以从所述存储器中的相应存储位置读取数据和所述纠错码数据两者;
从所述纠错码数据计算纠错码校正子;以及
生成对所述读取事务的响应,所述响应包括所述数据。
7.根据权利要求6所述的集成电路,其中所述在线纠错码电路被配置为:
使用所述纠错码校正子处理所述数据中的一个或多个错误。
8.一种在具有片上网络的集成电路中的存储器管理的方法,所述片上网络包括片上网络主单元、片上网络从单元和将所述片上网络主单元连接到所述片上网络从单元的网络,所述方法包括:
通过所述片上网络的片上网络主单元,在在线纠错码电路处从主设备接收事务,所述事务以耦合到所述集成电路的存储器为目标;
基于在所述在线纠错码电路处的所述事务确定纠错码数据;以及
将一个或多个输出事务通过片上网络从单元提供给耦合到所述片上网络的存储器控制器,所述存储器控制器被配置为控制所述存储器。
9.根据权利要求8所述的方法,其中所述事务是写入事务,其中基于所述写入事务中的数据来确定所述纠错码数据,并且其中所述一个或多个输出事务被配置为将所述数据和所述纠错码数据都写入到所述存储器中的一个或多个目的地。
10.根据权利要求9所述的方法,其中所述一个或多个输出事务包括单个输出事务,以将所述数据和所述纠错码数据都写入到所述存储器的模块中的区域。
11.根据权利要求9所述的方法,其中所述一个或多个输出事务包括将所述数据写入到所述存储器的模块的第一区域的第一输出事务,以及将所述数据写入到所述存储器的所述模块中的第二区域的第二输出事务。
12.根据权利要求9所述的方法,其中所述一个或多个输出事务包括将所述数据写入到所述存储器的第一模块的第一输出事务,以及将所述数据写入到所述存储器的第二模块的第二输出事务。
13.根据权利要求8所述的方法,其中所述事务是读取事务,并且其中所述一个或多个输出事务被配置为从所述存储器中的相应存储位置读取数据和所述纠错码数据两者,并且其中所述方法还包括:
从所述纠错码数据计算纠错码校正子;以及
生成对所述读取事务的响应,所述响应包括所述数据。
14.根据权利要求13所述的方法,其中所述方法还包括:
使用所述纠错码校正子处理所述数据中的一个或多个错误。
CN201880081816.8A 2017-12-21 2018-10-09 用于片上系统的在线ecc功能 Active CN111492351B (zh)

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
CN111492351A CN111492351A (zh) 2020-08-04
CN111492351B true CN111492351B (zh) 2024-08-09

Family

ID=64110063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880081816.8A Active CN111492351B (zh) 2017-12-21 2018-10-09 用于片上系统的在线ecc功能

Country Status (6)

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

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
US10936525B2 (en) 2019-05-10 2021-03-02 Achronix Semiconductor Corporation Flexible routing of network data within a programmable integrated circuit
US10608640B1 (en) * 2019-05-10 2020-03-31 Achronix Semiconductor Corporation On-chip network in programmable integrated circuit
US11675660B2 (en) 2019-05-24 2023-06-13 Texas Instruments Incorporated Parallelized scrubbing transactions
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840359A (zh) * 2009-03-18 2010-09-22 三星电子株式会社 数据处理系统及其操作方法
CN102637451A (zh) * 2005-06-30 2012-08-15 英特尔公司 一种存储器集成电路以及存储器阵列

Family Cites Families (24)

* 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 삼성전자주식회사 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
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
US20100158005A1 (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
US20100191814A1 (en) * 2008-12-23 2010-07-29 Marco Heddes System-On-A-Chip Employing A Network Of Nodes That Utilize Receive Side Flow Control Over Channels For Messages Communicated Therebetween
US20100158023A1 (en) * 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
CN102754078B (zh) * 2009-09-30 2015-05-20 阿尔特拉公司 使用压缩和解压缩的增强型多处理器波形数据交换
EP2444903A1 (en) * 2010-09-29 2012-04-25 STMicroelectronics (Grenoble 2) SAS A transaction reordering arrangement
US8788904B2 (en) 2011-10-31 2014-07-22 Hewlett-Packard Development Company, L.P. Methods and apparatus to perform error detection and correction
EP2915045B1 (en) 2012-11-02 2019-01-02 Hewlett-Packard Enterprise Development LP Selective error correcting code and memory access granularity switching
US9417805B2 (en) 2013-11-19 2016-08-16 Emu Solutions, Inc. Exporting computational capabilities into a block-oriented disk memory
US9436546B2 (en) 2014-04-22 2016-09-06 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
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102637451A (zh) * 2005-06-30 2012-08-15 英特尔公司 一种存储器集成电路以及存储器阵列
CN101840359A (zh) * 2009-03-18 2010-09-22 三星电子株式会社 数据处理系统及其操作方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN111492351B (zh) 用于片上系统的在线ecc功能
US11263169B2 (en) Configurable network-on-chip for a programmable device
CN111183419B (zh) 可编程设备和处理系统在集成电路封装中的集成
KR20210143745A (ko) 적응형 통합 프로그래머블 디바이스 플랫폼
US9213866B1 (en) Circuits for and methods of preventing unauthorized access in an integrated circuit
US10824505B1 (en) ECC proxy extension and byte organization for multi-master systems
US20080294806A1 (en) Programmable system-on-chip hub
US9632869B1 (en) Error correction for interconnect circuits
JP7377811B2 (ja) 集積回路のためのデータ処理エンジンタイルアーキテクチャ
CN111512297B (zh) 数据中心中的可编程设备的安全性
JP7383645B2 (ja) システムオンチップにおけるプログラマブル論理マスタのためのハードウェアベースの仮想-物理アドレス変換
US10936486B1 (en) Address interleave support in a programmable device
US20160085449A1 (en) Managing memory in a multiprocessor system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant