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

文档序号:9787107阅读:来源:国知局
[0029] 图IA示出了根据例示性实施例的维持2级流水线化的存储器中的相干性的例示 性存储器电路100。存储器电路100包括输入寄存器110、112、114、116 ;存储器输出寄存器 122 ;以及流水线寄存器170。存储器电路100也包括存储器120 ;由(至少)复用器140和 160组成的选择电路;以及由(至少)比较器130和150、逻辑门132以及寄存器134和152 组成的比较器电路。
[0030] 如所示,存储器120耦合到分别向存储器提供输入数据、写入地址、写入使能信号 和读取地址的输入寄存器110、112、114、116中的每个输入寄存器。也耦合到输出寄存器 122的存储器120向寄存器122提供从与例如在相同时钟周期期间向存储器呈现的读取地 址对应的存储器位置读取的数据。寄存器110还耦合到流水线寄存器170和复用器160并 且向它们各自提供向存储器并行地呈现的输入数据。流水线寄存器170同样耦合到复用器 160并且向复用器160提供在先前时钟周期期间由寄存器110提供的输入数据。复用器160 转而耦合到复用器140,后者还耦合到输出寄存器122。
[0031] 因此,在任何给定的时钟周期期间,复用器160从寄存器110接收一次流水线化的 输入数据并且从寄存器170接收两次流水线化的输入数据并且基于选择信号输出二者之 一。在相同时钟周期期间,复用器140接收由复用器160输出的数据和由寄存器122输出 的数据(即,从存储器读取的一次流水线化的数据)并且基于另一选择信号输出二者之一。 两个选择信号由确定传入写入地址和/或一次流水线化的写入地址是否与一次流水线化 的读取地址匹配的比较器电路生成。
[0032] 比较器电路包括耦合到逻辑门132的比较器130,该比较器130比较一次流水线化 的读取地址(由寄存器116输出)与一次流水线化的写入地址(由寄存器112输出)以确 定两个地址是否相同。比较器电路也包括耦合到逻辑门132和寄存器152的比较器150, 该比较器150比较一次流水线化的读取地址(由寄存器116输出)与传入写入地址以确定 两个地址是否相同。向可以是OR门的逻辑门132提供两个比较的结果。并行地,向寄存器 152提供由比较器150执行的比较的结果,其在该寄存器152处被流水线化一个时钟周期。 同样地,逻辑门132向寄存器134提供输出信号,其在该寄存器134处被流水线化一个时钟 周期。在寄存器134中存储的信号因此是一次流水线化的读取地址是否与传入写入地址、 一次流水线化的写入地址或者二者相同的指示;并且在寄存器152中存储的信号是一次流 水线化的读取地址是否与传入写入地址相同的指示。
[0033] 在下一时钟周期期间,复用器160和140分别根据在寄存器152和134中存储的 信号输出从存储器读取的一次流水线化的输入数据、两次流水线化的输入数据和一次流水 线化的数据之一。特别地,在比较器电路确定一次流水线化的读取地址与传入写入地址相 同时输出一次流水线化的输入数据一一即,由寄存器152输出的信号使得复用器160输出 当前由寄存器110提供的数据,而由寄存器134输出的信号使得复用器140输出当前由复 用器160提供的数据。在另一方面,在比较器电路确定一次流水线化的地址与一次流水线 化的写入地址相同时输出两次流水线化的输入数据一一即,由寄存器152输出的信号使得 复用器160输出当前由寄存器170提供的数据,而由寄存器134输出的信号使得复用器140 输出当前由复用器160提供的数据。最后,在比较器电路确定一次流水线化的读取地址与 一次流水线化的写入地址和传入写入地址均不相同时输出从存储器读取的一次流水线化 的数据一一即,由寄存器134输出的信号使得复用器140输出当前由输出寄存器122提供 的数据。
[0034] 在存储器需要写入使能信号时,比较器电路考虑与传入写入地址和一次流水线化 的写入地址中的每个写入地址伴随的写入使能信号。特别地,如所示,比较器150可以仅在 传入写入使能信号活跃时指示一次流水线化的读取地址与传入写入地址匹配。相似地,比 较器130可以仅在一次流水线化的写入使能信号(在寄存器112中存储)活跃时指示一次 流水线化的读取地址与一次流水线化的写入地址匹配。
[0035] 在图7A中提供了与图IA的存储器电路100对应的例示性时序图。在图7A中,每 个竖线代表一个时钟周期的结束和下一时钟周期的开始。符号表示W#、R#和D#指示在读 取、写入和输出数据之间的对应性。具体而言,D#是由对应读取R#返回的并且必须在对应 写入W#之前变得可用的数据。例如,D3是与读取R3对应的数据;W3是可以依赖于D3的写 入。在无流水线化的存储器中,将通常地在相同时钟周期期间执行R3和D3。然而,在引入 流水线化时,必须向存储器及早地呈现读取地址,即,读取必须被前移与流水线化级相同数 目的时钟周期。
[0036] 在及早地呈现读取地址时,存储器必须保证在相同时钟周期期间和在以后时钟周 期中向存储器写入的数据如必须的那样可用于读取操作。例如,2级流水线化的存储器要求 提前两个时钟周期呈现读取地址。这样,在该相同时钟周期期间和在下一时钟周期期间呈 现的写入数据必须变得可用于读取。图IA通过根据读取地址是否与在与读取地址相同的 时钟周期期间呈现的写入地址或者在下一时钟周期期间呈现的写入地址相同提供三个输 入数据值中的任何一个来实现如以上描述的这一功能。在图7A中图示了这一时序要求:在 呈现读取R3时,写入Wl和W2即使它们尚未被提交到存储器也仍然变得可用于R3。
[0037] 虽然前文讨论使用具有2个端口的存储器的示例,其中可以并行地执行读取和写 入,但是应当理解,相同相干性机制可适用于仅具有一个端口的存储器,并且可以在每个时 钟周期期间执行仅一个读取或者写入。在这一情况下,相干性逻辑更简单,因为仅一个写入 可以在读取数据由存储器输出之前出现。相干性也应用于具有多于两个端口的存储器,只 要端口都在相同时钟上操作。这些存储器可以提供用于每时钟周期执行多于两个读取/写 入操作的能力。这里描述的相干性支持可以同样地好地应用于这些多端口存储器。
[0038] 图7B示出了用于具有两个读取端口和两个写入端口的4端口存储器的存储器痕 迹。箭头730示出了在每对端口 710和720内在写入操作与读取操作之间的数据依赖性。 箭头740示出了跨两个端口、在写入操作与读取操作之间的附加数据依赖性。与2端口实 施例比较,每个读取访问具有两个更多依赖性待校验。也就是说,影响读取数据输出的四个 不同写入可能自从读取被发起就已经出现,并且必须比对读取地址校验四个写入地址中的 每个写入地址。在一个布置中,八个比较器与在读取地址和写入地址匹配时选择适当写入 数据值的复用器一起是执行这些比较而必须的。
[0039] 在一些实施例中,在两个写入并行地以相同地址为目标时,向一个写入端口给予 较另一写入端口而言的优先级。为两个读取端口维持这一相同优先级指派以使得存储器读 取返回一致数据。备选地,在其它实施例中,向相同地址的这样的同时写入视为非法,并且 存储器可以向指定的位置写入任意数据。
[0040] 在一些实施例中,通过倍增抽运2端口存储器来模拟4端口存储器,其中每个周期 被分解成2个半周期,其中在第一半周期上完成一对读取/写入并且在第二半周期上完成 另一对。由于写入被串行化,所以可以向一个端口给予较另一端口而言的静态优先级,但是 如果写入被重新排序则动态优先级也是可能的。
[0041] 图7C示出了用于模拟4端口存储器的相干2端口存储器的时序图,其中虚竖线界 定2端口存储器的2x时钟速率。第一端口的读取和写入输入760必须相对于第二端口被延 迟半个周期,并且第二端口的读取数据输出750必须相对于第一端口被延迟半个周期。箭 头770示出了相干2端口存储器内部实施的数据转发。箭头780示出了由于串行化的读取 和写入而自动地出现的数据转发。箭头790示出了为了使得4端口存储器相干而必须添加 的其余三个转发数据路径。
[0042] 回顾图1A,寄存器110-116捕获读取和写入地址以及在每个时钟周期开始时的数 据。从存储器读取的数据在时钟周期结束时可用并且在输出寄存器120中被捕获。附加 地,正向存储器写入的数据截至时钟周期的结束被存储到存储器阵列中。两个比较器130 和150如以上描述的那样比较读取地址与两个不同写入地址。具体而言,参照图7A,比较器 130执行R3与Wl的比较,而比较器150比较R3与W2。如果这些比较均未匹配,则存储器 输出是从存储器读取的数据。如果比较器150匹配写入W2与读取R3,则复用器160无论比 较器130的结果如何都从寄存器110选择由W2写入的数据,因为写入W2比Wl更新近。否 贝1J,选择在寄存器170中存储的由Wl写入的数据以用于输出。
[0043] 应当理解,存储器电路100是相干性逻辑的一个实现。实施相同功能的寄存器和 复用器的其它布置是可能的,并且每个布置可以具有不同成本和延迟特性。对特定布置的 选择可以例如依赖于用来实施逻辑功能的电路技术。一些可能实现方式的示例在以下描述 的图IB至图ID中出现。
[0044] 如果读取地址和两个写入地址中的任一写入地址相同,则由存储器读取的数据是 "不在意",因为它将在输出处被正被写入的数据替换。这一特性可以去除对增加性能的存 储器设计的约束。例如,如果读取和写入对相同地址同时地出现,则存储器设计可以使得读 取数据不可预测。这里描述的相干性机制使设计者免于应对这样的不可预测的输出。
[0045] 由图IA的电路执行的逻辑功能可以由下式表达:
[0046]
[0048] 其中N表示信号在时钟周期N处的值,并且N+1表示信号在时钟周期N+1处(也 就是在N之后的周期)的值。应当理解,尽管ReadDataN是与ReadAddrN关联的值,但是它 在周期N+2上在存储器电路的输出处变得可用,因为存储器具有两级流水线化。
[0049] 图IB示出了根据例示性实施例的具有在转发电路中实施的附加逻辑的图IA的例 示性存储器电路100。特别地
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1