用于维持嵌入式存储器块中的存储器访问相干性的系统和方法

文档序号:9787107阅读:588来源:国知局
用于维持嵌入式存储器块中的存储器访问相干性的系统和方法
【技术领域】
[0001] 本公开内容涉及一种可编程集成电路,并且特别地涉及可编程集成电路设备(例 如,现场可编程门阵列(FPGA)或者其它可编程逻辑器件(PLD))中的嵌入式存储器块。更 特别地,本公开内容涉及一种维持在并行存储器读取与写入之间的相干性的增强的嵌入式 存储器块。
【背景技术】
[0002] 已经变得日益普遍地设计PLD以按照专用硬存储器块的形式和/或脱离软可配置 逻辑包括嵌入式存储器块。这样的嵌入式存储器块可以包括电路在已经被部分地或者完全 地硬接线以支持对数据的存储和取回的PLD上的集中。可以使用软逻辑资源(比如移位寄 存器或者配置存储器(CRAM)查找表掩码(LUT掩码))来实施嵌入式存储器块。具有变化 的尺寸、宽度、端口计数和单比对双端口和/或双时钟读取/写入功能的嵌入式存储器也可 以可用(或者可配置)。
[0003] 嵌入式存储器存储许多不同类型的数据并且支持多种功能。例如,它们被运用在 广泛范围的工业、有线和无线应用中,其中它们可以被用于高速缓存数据或者维持用于分 组数据、统计、指针等的加载/存储表。嵌入式存储器也经常用作按照变化的数据宽度和时 钟速度访问和提供数据的异步源和部件之间的临时先入先出(FIFO)存储。
[0004] 一般而言,为了从存储器取回数据,向存储器呈现读取地址和一些控制信号(例 如,时钟信号),并且在一个时钟周期以后输出位于指定的读取地址处的存储的数据。对于 写入事务,写入地址和写入数据连同有关的控制信号一起被呈现给存储器,并且在存储器 中、在指定的写入地址处存储写入数据。对于许多现有设备,两种事务可以在分离的端口上 并行。
[0005] 在一些应用中,从存储器读取的数据("读取数据")在被输出之前被流水线化一 个或者多个时钟周期。在这些实例中,必须向存储器及早地呈现读取地址,从而使得读取数 据在被预期时可用,即,在相同时钟周期期间,如果没有流水线化则读取数据将已经变得可 用。这例如在读取-修改-写入命令由流水线化的存储器电路处理时是必须的一一如果读 取数据未及早地变得可用,则非当前读取数据将被修改并且回写到存储器位置。及早地呈 现读取地址将读取和写入重新对准,从而使得在与向存储器提交对应写入数据相同的时钟 周期期间输出读取数据。
[0006] 然而,与此同时,向存储器及早地呈现读取地址提出了它自己的挑战。在一个时钟 周期期间向存储器写入的数据通常地仅在下一时钟周期期间变得可用。具体而言,向存储 器写入的数据必须截止时钟周期的结束而被提交以便该数据在下一时钟周期中可用于读 取。向存储器及早地呈现读取地址因此可能造成从指定的存储器位置读取非当前数据。具 体而言,读取数据将不包括在向存储器呈现读取地址的时钟周期期间或者之后向存储器位 置写入的任何数据。向存储器中引入的流水线化的数量越大,问题就越显著。

【发明内容】

[0007] 根据本公开内容的实施例,提供了一种维持在并行存储器读取与写入之间的相干 性的增强的存储器电路。这些存储器电路无论向存储器输入和/或输出应用的流水线化的 数量如何都可以维持数据相干性。另外,这些存储器电路可以被实施为FPGA或者其它PLD 中的专用硬电路以增加性能而减少对用户的设计负担。
[0008] 根据本公开内容的实施例,提供了一种用于维持存储器访问相干性的存储器电 路。该存储器电路包括多个寄存器、存储器、比较器电路和选择电路。寄存器被配置为在第 一时钟周期期间存储读取地址、第一写入地址和第一输入数据以及在第二时钟周期期间存 储第二写入地址和第二输入数据。存储器被配置为在第二时钟周期期间从与读取地址对应 的存储器位置读取数据,并且前述寄存器中的一个或者多个寄存器被配置为存储从存储器 读取的数据。存储器也被配置为在第二时钟周期期间向与第一写入地址对应的存储器位置 写入第一输入数据。同时,比较器电路被配置为确定(例如,在第二时钟周期期间)读取地 址是否与第一写入地址或者第二写入地址相同。选择电路被配置为接收从存储器读取的数 据、第一数据输入和第二数据输入,并且输出以下三个信号之一 :(i)在比较器电路确定读 取地址与第二写入地址相同时的输入的第二数据,(ii)在比较器电路确定读取地址与第一 写入地址而不是第二写入地址相同时的输入的第一数据,或者(iii)在比较器电路确定读 取地址不与第一写入地址或者第二写入地址相同时的从存储器读取的数据。
[0009] 根据本公开内容的附加实施例,比较器电路包括第一比较器、第二比较器和逻辑 门。第一比较器被配置为在第二时钟周期期间生成读取地址是否与第一写入地址相同的指 示。第二比较器被配置为在第二时钟周期期间生成读取地址是否与第二写入地址相同的指 示。逻辑门被配置为接收那些指示并且在第二时钟周期期间生成读取地址是否与第一写入 地址或者第二写入地址相同的指示。
[0010] 根据本公开内容的附加实施例,选择电路包括第一复用器和第二复用器。第一复 用器被配置为在第三时钟周期期间接收第一输入数据和第二输入数据,以及在第三时钟 周期期间输出以下两个信号之一 :(i)在读取地址不与第二写入地址相同时的第一输入数 据,或者(ii)在读取地址与第二写入地址相同时的第二输入数据。第二复用器被配置为在 第三时钟周期期间接收从存储器读取的数据和第一复用器的输出,以及在第三时钟周期期 间输出以下两个信号之一 :(i)在读取地址不与第一写入地址或者第二写入地址相同时的 从存储器读取的数据,或者(ii)在读取地址与第一写入地址或者第二写入地址相同时的 第一复用器的输出。
[0011] 根据本公开内容的附加实施例,多个寄存器、存储器、比较器电路和选择电路都被 实施在可编程逻辑器件(例如,FPGA)的专用硬逻辑中。
[0012] 根据本公开内容的一些实施例,提供了一种用于维持存储器访问相干性的系统。 该系统包括存储器电路,该存储器电路至少包括流水线寄存器、第一复用器和第二复用器 以及第一比较器和第二比较器。流水线寄存器耦合到输入数据寄存器并且被配置为存储输 入数据寄存器的输出。第一复用器耦合到输入数据寄存器和流水线寄存器,并且被配置为 基于第一比较器的输出提供输入数据寄存器的输出和流水线寄存器的输出之一。第二复用 器耦合到第一复用器和存储器输出寄存器,并且被配置为基于第一比较器和第二比较器的 输出提供存储器输出寄存器的输出和第一复用器的输出之一。
[0013] 根据本公开内容的附加实施例,第一比较器耦合到读取地址寄存器并且被配置为 比较读取地址寄存器的输出与传入写入地址。第二比较器耦合到读取地址寄存器和写入地 址寄存器,并且被配置为比较读取地址寄存器的输出与写入地址寄存器的输出。根据本公 开内容的更多附加实施例,存储器电路还包括两个附加寄存器:第一比较器寄存器,耦合到 第一比较器并且被配置为存储第一比较器的输出;以及第二比较器寄存器,耦合到第二比 较器并且被配置为存储第二比较器的输出。
[0014] 根据本公开内容的附加实施例,该系统还包括多个输入流水线寄存器和处理电 路。可以在FPGA的软逻辑中实施这些部件。输入流水线寄存器耦合到写入地址寄存器并且 被配置为将读取地址寄存器的输入流水线化例如两个时钟周期。处理电路耦合到存储器电 路并且被配置为处理第二复用器的输出。输入数据寄存器被配置为接收处理电路的输出。
[0015] 也提供了配置和操作以上描述的存储器电路和可编程集成电路设备的方法。
【附图说明】
[0016] 公开内容的更多特征、它的性质和各种优点将在考虑与附图结合进行的以下具体 描述时变得清楚,在附图中,相似标号全篇指代相似部分,并且在附图中:
[0017] 图IA至图ID是根据例示性实施例的存储器电路的框图;
[0018] 图2是根据例示性实施例的、在通过将值与当前存储的值相加来更新存储器位置 的应用中使用相干存储器的例示性电路的框图;
[0019] 图3是根据例示性实施例的、用附加外部转发扩充相干存储器的例示性电路的框 图;
[0020] 图4是根据例示性实施例的、组合相干存储器电路以支持64位处理的例示性电路 的框图;
[0021] 图5是根据例示性实施例的、包括用于控制相干性和流水线化的用户可配置逻辑 的存储器电路的框图;
[0022] 图6A和图6B是根据例示性实施例的、分别具有一级和三级流水线化的存储器电 路的框图;
[0023] 图7A至图7C描绘了根据各种例示性实施例的、存储器读取和写入的例示性时序 图;
[0024] 图8是根据例示性实施例的、使用相干2端口存储器和附加转发逻辑以实施全向 相干性的相干存储器的框图;以及
[0025] 图9是示出了根据例示性实施例的、用于维持存储器访问相干性的过程的流程 图;
[0026] 图10示出了可以用来实施本公开内容的一些实施例的例示性系统。
【具体实施方式】
[0027] 根据本公开内容的实施例,提供了一种维持在并行存储器读取与写入之间的相干 性的增强的存储器电路。这些存储器电路无论向存储器输入和/或输出应用的流水线化的 数量如何都可以维持数据相干性。另外,这些存储器电路可以被实施为例如FPGA或者其它 PLD中的硬电路以增加性能而减少对用户的设计负担。
[0028] 这里描述的嵌入式存储器电路和功能而不知道嵌入式存储器类型(例如,SRAM、 嵌入式DRAM等)、存储器元件容量、延时和带宽、存储器接口端口或者信道的数目和类型、 命令/地址/读取-写入控制协议、接口信令方法(例如,并行或者串行)和存储器元件物 理集成拓扑(例如,嵌入式单裸片、2. f5D多裸片、3D堆叠式TSV)。应当理解,尽管本公开内 容举例说明了如向FPGA设备架构内的嵌入式存储器元件应用的功能,但是这里描述的机 制绝不限于FPGA并且可以被实施在任何可编程集成电路中或者与任何可编程集成电路结 合使用。此外,这里描述的机制也可以与包括ASIC的非或者半可编程集成电路一起被使 用。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1