用于智能存储器接口的方法和设备

文档序号:1568623 发布日期:2020-01-24 浏览:9次 >En<

阅读说明:本技术 用于智能存储器接口的方法和设备 (Method and apparatus for intelligent memory interface ) 是由 C.H.郑 于 2017-05-26 设计创作,主要内容包括:本发明涉及用于智能存储器接口的方法和设备。一个实施例涉及一种存储器结构,包括存储体组和端口仿真电路模块。所述存储体组包括多个存储器存储体,每个存储器存储体具有一个读取端口和一个写入端口。所述端口仿真电路模块为所述存储体组提供组读取/写入端口和组读取端口。另一实施例涉及一种端口仿真电路模块。所述端口仿真电路模块包括:端口仿真控制电路,所述端口仿真控制电路接收包括针对组读取/写入端口的第一地址和针对组读取端口的第二地址的控制信号;针对所述组读取/写入端口的第一数据路径电路;以及针对所述组读取端口的第二数据路径电路,其中所述第二数据路径电路输出第二读取数据。也公开了其他实施例和特征。(The invention relates to a method and apparatus for an intelligent memory interface. One embodiment relates to a memory architecture including a bank group and a port emulation circuit module. The bank group includes a plurality of memory banks, each memory bank having a read port and a write port. The port emulation circuit module provides a group read/write port and a group read port for the bank group. Another embodiment relates to a port emulation circuit module. The port emulation circuit module includes: a port emulation control circuit that receives a control signal including a first address for a group read/write port and a second address for a group read port; a first data path circuit for the set of read/write ports; and a second data path circuit for the set of read ports, wherein the second data path circuit outputs second read data. Other embodiments and features are also disclosed.)

用于智能存储器接口的方法和设备

技术领域

本申请是申请号为:201710384433.5,发明名称为:用于智能存储器接口的方法和设备的分案申请。本公开一般地涉及用于与存储器设备进行通信的接口架构的技术领域。

背景技术

静态随机存取存储器(SRAM)通常被用在集成电路中。SRAM单元具有在无需刷新的情况下保持数据的有利特征。SRAM单元可以包括不同数量的晶体管,并且常常因此通过晶体管的数量来指代(例如,六晶体管(6T) SRAM、八晶体管(8T) SRAM等)。晶体管通常形成用于存储位的数据锁存器。可以添加附加晶体管以控制对晶体管的访问。SRAM单元通常被布置为具有行和列的阵列。通常,SRAM单元的每行连接到字线,所述字线确定当前SRAM单元是否被选择。SRAM单元的每列连接到位线,所述位线被用于将位存储到SRAM单元中或者从SRAM单元读取。

发明内容

一个实施例涉及一种存储器结构,所述存储器结构包括存储体(bank)组和端口仿真电路模块。所述存储体组包括多个存储器存储体,每个存储器存储体具有一个读取端口和一个写入端口。所述端口仿真电路模块为所述存储体组提供组读取/写入端口和组读取端口。

另一实施例涉及一种端口仿真电路模块。所述端口仿真电路模块包括:端口仿真控制电路,所述端口仿真控制电路接收包括针对组读取/写入端口的第一地址和针对组读取端口的第二地址的控制信号;针对所述组读取/写入端口的第一数据路径电路;以及针对所述组读取端口的第二数据路径电路,其中所述第二数据路径电路输出第二读取数据。

另一实施例涉及一种从存储器存储体组读取数据的方法。从所述存储器存储体组的读取/写入端口接收请求在指定的存储器存储体中的读取地址处的数据的数据读取。做出所述指定的存储器存储体具有来自所述存储器存储体组的读取端口的冲突数据读取的确定。从所述存储器存储体组中的所有其他存储器存储体中的所述读取地址读取数据。使用从所有其他存储器存储体中的所述读取地址读取的数据来重建在所述指定的存储器存储体中的所述读取地址处的所述数据。

另一实施例涉及一种向存储器存储体组写入数据的方法。接收请求新数据被写入到所述存储器存储体组中的指定的存储器存储体中的写入地址的数据写入。读取在所述指定的存储器存储体中的所述写入地址处的先前数据。计算更新的奇偶性,并且所述更新的奇偶性被写入到所述存储器存储体组的奇偶性存储器存储体中的所述写入地址。所述新数据被写入到所述指定的存储器存储体中的所述写入地址。

其他实施例和特征也被公开。

附图说明

图1描绘了依照本发明的实施例的被组织成多个存储器通道的示例性存储器架构,每个存储器通道包括多个存储体组,并且每个存储体组包括多个SRAM存储体。

图2描绘了依照本发明的实施例的示例性存储体组的进一步细节。

图3是依照本发明的实施例的图2中所描绘的存储体组的信号的示例性时序图。

图4描绘了依照本发明的实施例的示例性端口仿真控制电路的细节。

图5描绘了依照本发明的实施例的端口A写入和读取数据路径电路的细节。

图6是依照本发明的实施例的用于来自仿真1RW端口的冲突存储体内的条目的数据读取的方法的流程图。

图7是依照本发明的实施例的用于来自仿真1RW端口的存储体中的条目的数据写入的方法的流程图。

图8是可包括本发明的各方面的现场可编程门阵列(FPGA)的简化部分框图。

图9是可采用本发明的技术的示例性数字系统的框图。

具体实施方式

本公开提供用于智能存储器接口的电路结构和操作方法。智能存储器接口能够执行智能存储器功能并且可以从没有存储器访问限制的1R+1W(一个读取端口和一个写入端口)SRAM存储体的合集中提供仿真1R+1RW(一个读取端口和一个读取/写入端口)SRAM通道。智能存储器接口也可以被配置为使得1R+1W SRAM存储体的合集在不期望仿真1R+1RW SRAM通道的情况下用作大型1R+1W SRAM。所实现的配置可能取决于映射到集成电路的核心逻辑的应用。

“智能性”经由原子操作功能性被提供给1RW端口。原子操作功能性允许应用在不影响原始存储器带宽的情况下并且用低功率对SRAM存储器本身执行智能存储器操作。

智能存储器接口可以有利地减少常见读取-修改-写入操作所需要的应用功率和事务带宽。这通过去除将来自SRAM的读取数据以物理方式传送回到集成电路的核心逻辑(诸如,例如现场可编程门阵列的核心结构)以得到修改的需要并且将写入数据传送回以被写入到相同SRAM位置来完成。

智能存储器接口也可以有利地允许为存储并转发存储器应用而交换临时数据存储内容。这降低了应用的存储器容量、功率和带宽要求。

图1描绘了依照本发明的实施例的被组织成多个存储器通道的示例性存储器架构,每个存储器通道包括多个存储体组,并且每个存储体组包括多个SRAM存储体。如所描绘的,通道引导(steering)逻辑可以用于与L个存储器通道(存储器通道0、存储器通道1、存储器通道2、...、存储器通道L-2和存储器通道L-1)对接,并且通道引导逻辑可以与集成电路的核心逻辑(诸如FPGA的可编程结构)对接。

通道引导逻辑操作用于从来自核心逻辑的多个输入引导对和来自相应的存储器通道的访问(读取/写入命令和读取/写入数据)。可以存在来自核心逻辑的多个存储器通道访问端口,并且,在那种情况下,通道引导逻辑将访问从特定访问端口引导到正确的存储器通道。在一些实施例中,通道引导逻辑可用UIB-lite(其是通用接口总线的简化版本)代替。

针对存储器通道0的内部结构示出了扩展视图,并且相同的内部结构也将存在于其他L-1个存储器通道中。如所示,每个存储器通道包括M个存储体组(存储体组0、存储体组1、存储体组2、...、存储体组M-2和存储体组M-1)。

针对存储体组0的内部结构示出了扩展视图,并且相同的内部结构也将存在于其他M-1个存储体组中。如所示,每个存储体组包括N个SRAM存储体(存储体0、存储体1、存储体2、...、存储体N-2和存储体N-1)、端口仿真电路模块和通道逻辑。如所指示的,存储体N-1可以是存储体组的示例性实施方式中的奇偶性存储体。每个存储体组使用通道逻辑来与通道引导逻辑对接。通道逻辑使用将读取/写入命令解码到相应的存储体组并且使用如由端口仿真电路模块所提供的端口A和端口B来与存储器通道中的每个存储体组对接。端口A是组读取/写入端口,并且端口B是组读取端口。图2描绘了依照本发明的实施例的示例性存储体组的进一步细节。如所描绘的,可以使用N个1R+1W SRAM存储体(存储体0、存储体1、...、存储体N-2、存储体N-1)和端口仿真电路模块来形成存储体组。

存储体组中的1R+1W SRAM存储体中的一个是奇偶性存储体。在示例性实施方式中,存储体N-1是奇偶性存储体。每个1R+1W SRAM存储体具有一个读取端口(B)和一个写入端口(A)。更特别地,每个SRAM存储体n具有控制(MEA/MEB)端口、地址A(ADRA)端口、地址B(ADRB)端口、数据读取(QB)端口和数据写入(QA)端口。

端口仿真电路模块包括端口仿真控制电路、端口A写入和读取数据路径电路以及端口B读取数据路径电路。

端口仿真控制电路具有初始化(INIT)和请求命令(CMD)控制信号输入、端口A控制和地址(MEA和ADRA)输入、端口B控制和地址(MEB和ADRB)输入。端口仿真控制电路使用这些输入来生成各种控制和地址信号。

注意,术语“原子”操作可以指代与对相同的存储器位置的其他操作并行或同时执行的操作。许多系统避免对由于错误数据的可能创建而导致的原子操作的请求。

在示例性实施方式中,1RW端口(端口A)的请求命令(CMD)包括针对被映射到读取访问(针对仅要求存储器读取的操作)或写入访问(针对要求读取-修改-写入序列的操作)的期望的原子操作的编码。示例编码包括:二进制加法;布尔(Boolean)运算(与、与非、或非、或、异或);数据交换;以及算术比较(等于、大于、小于)。

端口仿真控制电路生成N个MEA/MEB控制信号(MEA[0]/MEB[0]、MEA[1]/MEB[1]、MEA[2]/MEB[2]、...、MEA[N-1]/MEB[N-2]、MEA[N-1]/MEB[N-1])。MEA[0]/MEB[0]控制被提供给SRAM存储体0。MEA[1]/MEB[1]控制被提供给SRAM存储体1。MEA[2]/MEB[2]控制被提供给SRAM存储体2。依此类推。

端口仿真控制电路也生成写入地址A(ADRAWRITE)、读取地址A(ADRAREAD)和读取地址B(ADRBREAD)以及N个选择(ASEL[0]、ASEL[1]、...、ASEL[N-2]、ASEL[N-1])信号。ADRAREAD和ADRBREAD信号被作为输入提供给N个选择器(S[0]、S[1]、...、S[N-2]、S[N-1])。选择器S[0]通过ASEL[0]来控制。选择器S[1]通过ASEL[1]来控制。选择器S[2]通过ASEL[2]来控制。依此类推。当ASEL[n]为0时,则选择器S[n]将ADRAREAD输出到SRAM存储体n的ADRB输入。另一方面,当ASEL[n]为1时,则选择器S[n]将ADRBREAD输出到SRAM存储体n的ADRB输入。

端口A写入和读取数据路径电路从N个SRAM存储体接收N个读取数据输出(QB0、QB1、…、QBN-2、QBN-1)并且从通道逻辑接收数据写入(DA)信号。端口A写入和读取数据路径电路也从端口仿真控制电路接收CMR_R、RDA_EN[N-1:0]、RFW_EN和RDA_FWD_EN控制信号。注意,CMR_R控制信号基于请求命令编码输送规则和原子命令。

使用各种输入信号,端口A写入和读取数据路径电路生成第一数据写入(DARAW)信号和第二数据写入信号(DAN-1)。第一数据写入(DARAW)信号被输出到SRAM存储体0至N-2的QA端口并且输出到端口B读取数据路径电路,以及第二数据写入信号(DAN-1)被输出到SRAM存储体N-1的QA端口。端口A写入和读取数据路径电路也生成被输出到通道逻辑的响应接口(RESP)信号和数据读取(QA)信号。

注意,在示例性实施方式中,端口A写入和读取数据路径电路包括针对用于写入序列的奇偶性计算的读取数据与写入数据之间的期望的原子操作的硬件电路。针对采取多个流水线级的操作,可以为了时序收敛按需流水线化硬件电路。

进一步注意,在示例性实施方式中,从端口A写入和读取数据路径电路输出的响应接口(RESP)信号可以将原子操作的结果输送到通道逻辑。例如,RESP信号可以提供算术比较运算(即,等于、大于或小于)的结果。

端口B读取数据路径电路从N个SRAM存储体的数据读取(QB)端口接收N个数据读取信号(QB0、QB1、…、QBN-2、QBN-1)。端口B读取数据路径电路也从端口A写入和读取数据路径电路接收第一数据写入(DARAW)信号。使用各种输入信号,端口B读取数据路径电路选择给通道逻辑的数据读取(QB)信号。

图3是依照本发明的实施例的图2中所描绘的存储体组的信号的示例性时序图。该时序图假定N=5,使得在存储体组中存在五个SRAM存储体。

CLK信号示出了标记为0至7的时钟周期。存储体组与通道逻辑之间的信号包括MEA、WEA、ADRA、DA、QA、MEB、ADRB和QB信号。在存储体组内部的信号包括MEA[4:0]、MEB[4:0]、ASEL[4:0]、ADRAWRITE、ADRAREAD、ADRBREAD、RDA_EN[4:0]、RFW_EN、RDA_FWD_EN、DARAW、DAN-1、RDB_EN[4:0]和RDB_FWD_EN信号。

在所示的示例中,在时钟周期1,MEA和MEB信号转变为逻辑1,端口A写入使能(WEA)信号是逻辑零(指示读取操作),在ADRA上接收读取地址A0_BK1(指示存储体1中的地址A0),并且在ADRB上接收读取地址B0_BK0(指示存储体0中的地址B0)。在时钟周期2,在满足前一个时钟周期的读取请求时,数据读取QA信号输出数据QA0_BK1(指示从存储体1中的地址A0读取的数据),并且数据读取QB信号输出数据QB0_BK0(指示从存储体0中的地址B0读取的数据)。

类似地,在时钟周期2,在ADRA上接收读取地址A1_BK0(指示存储体0中的地址A1),并且在ADRB上接收读取地址B1_BK0(指示存储体0中的地址B1)。在时钟周期3,在满足前一个时钟周期的读取请求时,数据读取QA信号输出数据QA1_BK0(指示从存储体0中的地址A1读取的数据)。此外,由于ASEL[4:0]被设置为逻辑一,数据读取QB信号输出数据QB1_BK0(指示从存储体0中的地址B1读取的数据)。

注意,不能从存储体0直接读取在时钟周期3中输出的数据QA1_BK0。这是因为由于两个读取地址都在存储体0中而在存储体0处存在访问冲突。因此,依照本公开的实施例,数据QA1_BK0使用关于图6在下面所描述的方法600来重建。在这种情况下,重建要求来自存储体1至4(而不是存储体0)的数据,所以在时钟周期3中RDA_EN[4:0] = 11110。

在时钟周期3,端口A写入使能(WEA)变成逻辑一以指示写入操作,在DA端口上接收写入数据DA2_BK0,在ADRA上接收写入地址A2_BK0(指示存储体0中的地址A2),并且在ADRB上接收读取地址B2_BK3(指示存储体3中的地址B2)。在时钟周期4,作为前一个周期中在端口A上的写入命令的结果,目标条目的先前数据被从存储体0中的地址A2直接读取,并且针对存储体4中的地址A2的时钟奇偶性被更新(所以在时钟周期4中RDA_EN[4:0] = 10001,ADAWRITE=A2,并且DAN-1= DA4=DA2(P))。此外,在满足前一个时钟周期中在端口B上的读取命令时,数据读取QB信号输出数据QB2_BK3(指示从存储体3中的地址B2读取的数据)。

在时钟周期4,在DA端口上接收写入数据DA3_BK2,在ADRA上接收写入地址A3_BK2(指示存储体2中的地址A3),并且在ADRB上接收读取地址B3_BK2(指示存储体2中的地址B3)。在时钟周期5,作为前一个周期中在端口A上的写入命令的结果,(由于存储体2处的读取冲突)针对存储体2中的地址A3重建目标条目的先前数据,并且针对存储体4中的地址A3的时钟奇偶性被更新(所以在时钟周期5中RDA_EN[4:0] = 11011,ADAWRITE=A3,并且DAN-1=DA4=DA3(P))。此外,在满足前一个时钟周期的读取请求时,数据读取QB信号输出数据QB3_BK2(指示从存储体2中的地址B3读取的数据)。

在时钟周期5,端口A写入使能(WEA)变成逻辑零以指示读取操作,在ADRA上接收读取地址A4_BK1(指示存储体1中的地址A4),并且在ADRB上接收读取地址B4_BK1(指示存储体1中的地址B4)。在时钟周期6,在满足前一个时钟周期的读取请求时,数据读取QA信号输出数据QA4_BK1(指示从存储体1中的地址A4读取的数据),并且数据读取QB信号输出数据QB4_BK1(指示从存储体1中的地址B4读取的数据)。

注意,不能从存储体1直接读取在时钟周期6中输出的数据QA4_BK1。这是因为由于两个读取地址都在存储体1中而在存储体1处存在访问冲突。因此,依照本公开的实施例,数据QA4_BK1使用关于图6在下面所描述的方法600来重建。在这种情况下,重建要求来自存储体0、2、3和4(而不是存储体1)的数据,所以在时钟周期6中RDA_EN[4:0] = 11101。

另外MEA和MEB信号在时钟周期6变成逻辑零。因此,在该时钟周期期间不接收读取或写入请求。

图4描绘了依照本发明的实施例的示例性端口仿真控制电路的细节。如所描绘的,该端口仿真控制电路具有初始化(INIT)和命令(CMD)输入、端口A控制和地址(MEA和ADRA)输入、端口B控制和地址(MEB和ADRB)输入。

INIT输入用于利用已知内容(例如,全零)对SRAM阵列进行初始化。当INIT被断言(asserted)时,用户逻辑从端口A循环通过所有地址位以将所有存储体中的所有内容写入为零。在示例性实施方式中,在使用智能存储器之前要求到全零的这种初始化。

端口仿真控制电路生成各种控制和地址信号。特别地,端口仿真控制电路生成N个MEA/MEB控制信号(MEA[0]/MEB[0]、MEA[1]/MEB[1]、MEA[2]/MEB[2]、...、MEA[N-1]/MEB[N-2]、MEA[N-1]/MEB[N-1])。端口仿真控制电路也生成写入地址A(ADRAWRITE)、读取地址A(ADRAREAD)和读取地址B(ADRBREAD)以及N个选择(ASEL[0]、ASEL[1]、...、ASEL[N-2]、ASEL[N-1])信号。最后,端口仿真控制电路生成控制CMR_R、RDA_EN[N-1:0]、RFW_EN和RDA_FWD_EN控制信号。

针对端口仿真控制电路示出了两个配置位。第一配置位是数据重建使能位。当数据重建使能位为逻辑一时,则读取重建被启用。当数据重建使能位为逻辑零时,则读取重建被禁用。在示例性实施方式中,数据重建使能允许通过再用相同的端口仿真机制来重建整个存储体的内容。例如,如果存储体0中的多个位由于单粒子翻转(SEU)或其他错误而被损坏,则用户逻辑可以启用数据重建并且从端口A对存储体0进行读取和写回。这使数据将被从存储体1、2、...、N-1重建(而不从存储体0读取)并且然后写回到存储体0。这校正了存储体0中的错误。

第二配置位是端口A读取使能位。当端口A读取使能位为逻辑一时,则端口A读取操作被启用。当端口A读取使能位为逻辑零时,则端口A读取操作被禁用。

注意,如图4中所示,端口仿真控制电路包括命令解码路径。该命令解码路径操作用于对原子操作进行解码。此外,流水线化命令(CMD_R)被提供给端口A写入和读取数据路径电路。流水线化命令可以用于标识待由端口A写入和读取数据路径电路对一个或多个操作数执行的原子操作。特别地,操作数可以包括可以从QB0至QBN-1获得或者重建的操作数1以及可以由DA提供的可选操作数2。

图5描绘了依照本发明的实施例的端口A写入和读取数据路径电路的细节。如所示,端口A写入和读取数据路径电路从N个SRAM存储体接收N个读取数据输出(QB0、QB1、...、QBN-2、QBN-1)并且从通道逻辑接收数据写入(DA)信号。端口A写入和读取数据路径电路也从端口仿真控制电路接收CMR_R、RDA_EN[N-1:0]、RFW_EN和RDA_FWD_EN控制信号。

使用各种输入信号,端口A写入和读取数据路径电路生成第一数据写入(DARAW)信号和第二数据写入信号(DAN-1)。端口A写入和读取数据路径电路也生成被输出到通道逻辑的响应(RESP)信号和数据读取(QA)信号。

如图5中所示,可以在端口A写入和读取数据路径电路中包括原子操作硬件电路。该原子操作硬件电路可以包括二进制加法器逻辑(ADD)、布尔运算逻辑(BOOL)(诸如与、与非、或、或非和异或逻辑)以及比较逻辑(CMP)。此外,可以包括控制电路以针对数据交换操作(SWAP)允许读取数据返回。多路复用器(MUX)可以用于选择要写回并且用于最终奇偶性计算的写入数据(修改的或原始写入数据)。可以经由仿真读取数据路径(QA)返回原始读取数据,并且响应接口(RESP)可以用于输送由比较逻辑(CMP)执行的算术比较运算的结果。

图6是依照本发明的实施例的用于来自存储体组的1RW端口的冲突存储体内的条目的数据读取的方法600的流程图。可以使用关于图1至图5上面所描述的示例性电路来实现方法600。

按照步骤602,从存储体组的1RW端口接收数据读取命令。在上面所描述的示例性电路中,端口A是存储体组的1RW端口,并且通过使MEA被启用并且使WEA被禁用以及在ADRA中接收读取地址和存储体号在1RW端口处接收数据读取命令。

按照步骤604,确定了数据读取是到具有来自存储体组的1R端口的冲突数据读取的存储体。在上面所描述的示例性电路中,端口B是存储体组的1R端口,并且通过使MEB被启用并且在ADRB中接收读取地址和存储体号在1R端口处接收数据读取命令。在上面关于图3的时序图讨论了来自1RW和1R端口的冲突数据读取的示例。注意,如果在存储体处不存在冲突,则数据读取可以直接继续进行,而不用重建,如上面关于图3的时序图所讨论的。

按照步骤606,为了满足来自1RW端口数据读取,数据被从存储体组中的所有其他存储体中的相同地址读取。所有其他存储体包括所有不冲突数据存储体和奇偶性存储体。例如,如果N=5,使得存储体号从0变成4,并且发生冲突的存储体号是3,则数据被从存储体0、1、2和4中的相同地址读取,其中存储体4可以是奇偶性存储体。

按照步骤608,用于满足来自1RW端口的数据读取的数据被重建。考虑其中N=5、发生冲突的存储体号是3并且其中奇偶性存储体(存储体4)保持偶奇偶性位的示例。在此示例中,如果存储体0、1、2和4中的对应位合计为奇数,则可以将存储体3中的对应位重建为逻辑1。另一方面,如果存储体0、1、2和4中的对应位合计为偶数,则可以将存储体3中的对应位重建为逻辑0。以这种方式,可以逐位重建用于满足来自1RW端口的数据读取的数据。

按照步骤610,经重建的数据经由存储体组的1RW端口输出。在上面所描述的示例性电路中,端口A是存储体组的1RW端口,并且在数据QA中从1RW端口输出经重建的数据。

图7是依照本发明的实施例的用于来自存储体组的仿真1RW端口的存储体中的条目的数据写入的方法700的流程图。可以使用关于图1至图5上面所描述的示例性电路来实现方法700。

按照步骤702,从存储体组的1RW端口接收数据写入命令。在上面所描述的示例性电路中,端口A是存储体组的1RW端口,并且通过使MEA和WEA两者被启用并且在ADRA中接收写入地址和存储体号在1RW端口处接收数据写入命令。

按照步骤704,存储在被写入的目标条目处的先前数据(即,在ADRA中接收的写入地址和存储体号处的数据)被读取。如关于图3的时序图上面所讨论的,可以在不存在读取存储体冲突的情况下直接读取先前数据,或者可以在存在读取存储体冲突的情况下重建先前数据。

按照步骤706,经更新的奇偶性数据(针对奇偶性存储体中的写入地址)被计算。如图3的时序图中所指示的,经更新的奇偶性数据被输出到DAN-1数据信号。

按照步骤708,新数据被写入到目标条目中,并且经更新的奇偶性数据被写入到奇偶性存储体中。如图3的时序图中所指示的,DARAW数据信号提供被写入到由MEA[N-2:0]所指示的存储体中的新数据。如图3的时序图中进一步指示的,DAN-1信号提供被在由ADRAWRITE所指示的地址处写入到存储体N-1中的经更新的奇偶性数据。

注意,关于图7上面所描述的写入序列是一种读取-修改-写入(RMW)序列。RMW序列的“修改”步骤是计算待写入到奇偶性存储体中的新奇偶性值的操作。

图8是可包括本发明的各方面的现场可编程门阵列(FPGA) 10的简化部分框图。应该理解的是,本发明的实施例可被用在诸如现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、复杂可编程逻辑设备(CPLD)、可编程逻辑阵列(PLA)、数字信号处理器(DSP)和专用集成电路(ASIC)之类的许多类型的集成电路中。

FPGA 10在其“核心”内包括通过变化长度和速度的列和行互连导体的网络而互连的可编程逻辑阵列块(或LAB) 12的二维阵列。LAB 12包括多个(例如,十个)逻辑元件(或LE)。

LE是提供用户定义的逻辑功能的高效实施方式的可编程逻辑块。FPGA具有可被配置成实现各种组合和顺序功能的许多逻辑元件。逻辑元件能够访问可编程互连结构。该可编程互连结构可被编程为按照几乎任何期望的配置互连逻辑元件。

FPGA 10也可以包括分布式存储器结构,所述分布式存储器结构包括遍及阵列提供的变化大小的随机存取存储器(RAM)块。RAM块包括例如块14、块16和块18。这些存储器块也可包括移位寄存器和FIFO缓冲器。

FPGA 10还可以包括可实现例如具有加或减特征的乘法器的数字信号处理(DSP)块20。在此示例中位于芯片***附近的输入/输出元件(IOE) 22支持许多单端和差分输入/输出标准。每个IOE 22耦合到FPGA 10的外部端子(即,引脚)。可以像所示的那样布置收发器(TX/RX)通道阵列,例如,其中每个TX/RX通道电路30耦合到数个LAB。

应当理解的是,在本文中仅出于说明性目的描述FPGA 10并且可在许多不同类型的PLD、FPGA和ASIC中实现本发明。

图9示出可具体实现本发明的技术的示例性数字系统50的框图。系统50可以是编程数字计算机系统、数字信号处理系统、专用数字交换网络或其他处理系统。而且,可针对诸如电信系统、汽车系统、控制系统、消费电子产品、个人计算机、互联网通信和联网等之类的各式各样的应用来设计此类系统。进一步,可以在单个板上、在多个板上或者在多个外壳内提供系统50。

系统50包括通过一条或多条总线互连在一起的处理单元52、存储器单元54和输入/输出(I/O)单元56。根据此示例性实施例,FPGA 58被具体实现在处理单元52中。FPGA 58可为系统50内的许多不同的目的服务。FPGA 58例如可以是处理单元52的支持其内部和外部操作的逻辑构件。FPGA 58被编程为实现在系统操作中参与其特定角色所必需的逻辑功能。FPGA 58可通过连接60特别耦合到存储器54并且通过连接62耦合到I/O单元56。

处理单元52可以将数据导向适当的系统组件以用于处理或存储,执行存储在存储器54中的程序,经由I/O单元接收和发送数据,或其他类似的功能。处理单元52可以是中央处理单元(CPU)、微处理器、浮点协处理器、图形协处理器、硬件控制器、微控制器、被编程以用作控制器的现场可编程门阵列、网络控制器,或任何类型的处理器或控制器。此外,在许多实施例中,常常不需要CPU。

例如,代替CPU,一个或多个FPGA 58可以控制系统的逻辑操作。作为另一示例,FPGA 58用作可以被按需重新编程以处理特定计算任务的可重构处理器。可替换地,FPGA58本身可以包括嵌入式微处理器。存储器单元54可以是随机存取存储器(RAM)、只读存储器(ROM)、硬盘或软盘介质、闪速存储器、磁带或任何其他存储装置,或这些存储装置的任何组合。

结论

在以上描述中,许多特定细节被给出以提供对本发明的实施例的彻底理解。然而,图示的本发明的实施例的以上描述不旨在为详尽无遗的或者将本发明限于所公开的精确形式。相关领域的技术人员将认识到,可在没有这些特定细节中的一个或多个的情况下或者利用其他方法、组件等实践本发明。

在其他实例中,未详细地示出或者描述众所周知的结构或操作以避免使本发明的各方面混淆。虽然在本文中出于说明性目的对本发明的特定实施例和针对本发明的示例进行了描述,但是如相关领域的技术人员将认识的那样,各种等效修改在本发明的范围内是可能的。可以鉴于以上详细描述对本发明做出这些修改。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:包括分布式写入驱动布置的半导体器件及其操作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!