存取缓冲器制造技术

技术编号:6007872 阅读:159 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于从连接到存取缓冲器的处理器接收的存储器写请求和存储器读请求来控制对一个或多个存储器器件的存取的存取缓冲器,其包括:许多写FIFO队列,被配置成存储一个或多个存储器器件的存储器地址和要写到存储器地址的数据,存储器地址和数据被包括在接收的写请求中;和被配置成接收包括存储器地址和属性的读请求的搜索单元,被配置成借助于存储器地址在写FIFO队列中搜索与读请求的存储器地址对应的存储器地址,并且如果找到对应的存储器地址,则搜索单元找到命中请求并且被配置成检索在其中找到地址的写FIFO队列中存储的数据并且取消存储器写请求,由此要读的所请求数据能够在不存取一个或多个存储器器件的情况下被读。

【技术实现步骤摘要】

本专利技术涉及用于对用于分组缓冲的诸如一个或多个动态随机存取存储器(DRAM) 之类的一个或多个存储器器件的存取进行控制的存取缓冲器。本专利技术也涉及包括这种存取 缓冲器的存储器控制器并且涉及包括该存储器控制器的数据处理系统。
技术介绍
因为动态随机存取存储器(DRAM)的低成本和低功率,所以往往使用动态随机存取 存储器(DRAM)来实施分组缓冲器,例如排队器件。然而,DRAM由于其长的等待时间以及其 对随机存取的约束而提出挑战。DRAM被成排(bank)地组织并且DRAM的物理性质对排存 取提出限制。例如,存取参数行循环时间tRC给出对DRAM排的两个连续存取之间的最小时 间。另一个存取参数滚动时间帧tFAW限制时间窗口内的行激活命令的数量,在所述滚动时 间帧tFAW中可以同时进行对相同DRAM器件的最大四行激活。行是排的一部分。在可以执 行对行内的地址的读或写之前,必须激活该行。DRAM的存储器控制器接收针对DRAM的不同排的读和写请求。由于就每时间单位 的存取而言DRAM带宽往往是瓶颈,所以DRAM的存储器控制器可以重新布置读和写请求的 顺序,使得最大化存储器接口的利用。一种优化是以固定的顺序循环地存取这些排,因而确保对任一 DRAM排的两个连 续存取之间的时间超过行循环时间tRC。另一种优化是重新布置读请求和写请求,使得多个读请求后面是多个写请求;例 如,把序列Sl = (Rl, W2, R3, W4)重新布置成S2 = (Rl, R3, W2, W4),其中R代表读,W 代表写并且数字指示其中存储器控制器接收请求的顺序。对于在对DRAM的读和写存取之 间的转向而言经常存在带宽惩罚,因此S2比Sl在更短的时间内完成。Bains的已公开美国申请US 2004/0236921 Al揭示了一种改进高速缓存数据总 线上的带宽使得可以更高效地使用诸如DRAM之类的高速缓存存储器的方法。在一个实施 例中,重新排序读或写存取以高效地利用数据总线上的带宽。Van Hook等人的美国专利US 6,564,304 Bl揭示了一种用于对图形处理系统中的 存储器进行存取的存储器处理系统,其中存储器控制器仲裁来自多个存储器请求器的存储 器存取请求。读被分组在一起并且写被分组在一起以避免模式切换。然而,例如,如果DRAM排中的地址在变成写之前被读,则诸如读和写存取之类的 存取的重新排序可能造成逻辑错误。例如,在上面提及的序列Sl = (Rl, W2, R3, W4)和 S2 = (Rl, R3, W2, W4)中,W2和R3可能存取相同的排地址。如果W2写数据结构(例如链 接表)的元素并且R3存取该数据结构的相同元素,则如果如以S2那样重新排序W2和R3, 将发生逻辑错误,原因在于这将使程序在地址被写完之前读该地址。即,重新排序将使解析 该链接表的程序使用陈旧的指针,造成程序故障。Laskshmanamurthy等人的已公开美国申请US 2007/0156946 Al揭示了一种利用 排分类(sort)和调度的存储器控制器。存储器控制器包括FIFO缓冲器、仲裁器、排FIFO集和排调度器。来自FIFO缓冲器的输出被馈送到把存储器请求分类到适当的排FIFO中的仲 裁器中,每个排FIFO被配置成存储读和写存储器请求。仲裁器可以使用循环仲裁方案来分 类和优先化输入请求流。排调度器接收来自排FIFO集的输出并且循环地处理这些请求。在 每个循环中,排调度器可以选择对读/写效率进行优化的业务,例如排调度器可以对读和/ 或写进行分组以最小化读写周转。在US 2007/0156946 Al中,如上面所描述的逻辑错误的问题由“无序”机构解决, 该“无序”机构确保从不违反支配对相同地址的读和写的业务排序规则,即地址在其被写完 之前不能被读。US 2007/0156946 Al的存储器控制器的缺点/问题在于其未提供存储器带宽的 加权公平共享。通过把读和写存储器请求存储在相同的排FIFO中,读和写之间的共享由请 求到达过程确定而不由存储器控制器调整。进一步,US 2007/0156946 Al的存储器控制器 具有确保例如在写请求之前不发出读请求(如果这些请求是针对相同地址的话)的仲裁器。 因而,尽管存在要在存储器控制器的内部储存器中读的数据,还发出对DRAM的读请求。这 意味着DRAM未被最优地利用并且读等待时间未被最小化。进一步,US 2007/0156946 Al的 存储器控制器没有装置来优先化需要低等待时间的请求,例如与控制信息有关的请求,使 得它们在容忍较长等待时间的请求(例如与分组数据有关的请求)之前被服务。
技术实现思路
本专利技术的目标是克服现有技术的问题和/或缺点。用于基于从连接到存取缓冲器的处理器接收的存储器写请求和存储器读请求来 控制对一个或多个存储器器件的存取的专利技术存取缓冲器的实施例包括一许多写FIFO队列,被配置成存储所述一个或多个存储器器件的存储器地址和要写 到所述存储器地址的数据,所述存储器地址和所述数据被包括在所接收的写请求中;以及一搜索单元,被配置成接收包括存储器地址和属性的读请求,所述搜索单元被配置成 借助于所述存储器地址在所述写FIFO队列中搜索与读请求的存储器地址对应的存储器地 址,并且如果找到对应的存储器地址,则所述搜索单元找到命中请求并且被配置成检索在 其中找到地址的写FIFO队列中存储的数据并且取消存储器写请求,由此要读的所请求数 据可以在不存取所述一个或多个存储器器件的情况下被读。在实施例中,搜索单元被配置成把读请求的属性以及具有与读请求对应的存储器 地址的写请求的数据存储在命中FIFO队列中,且其中所述存取缓冲器被配置成把存储的 属性和数据以先进先出的方式传达到重新排序器件。实施例进一步包括许多读FIFO队列,被配置成存储在所接收的读请求中包括的 存储器地址和属性;其中所述搜索单元被配置成如果所述搜索单元不能在写FIFO队列中 找到对应的存储器地址则把所述存储器地址和属性存储在读FIFO队列中。实施例进一步包括存取调度器,被配置成基于写FIFO队列和读FIFO队列中的信 息来选择写请求和读请求中的一个请求;以及命令生成器,被配置成基于一个选择的请求 来生成存储器命令并且把所述存储器命令传输到所述一个或多个存储器器件之一且把选 择的请求的请求类型和序列标识传输到重新排序器件。实施例进一步包括仲裁器,被配置成执行在由存取调度器选择的请求和由搜索单元找到的一个或多个命中请求之间的调度。 实施例进一步包括一个或多个可搜索地址储存器,被配置成存储所接收的存储 器请求的数据和/或属性。实施例进一步包括复用器,被配置成在从不同数据储存器可搜索地址储存器传 输的不同数据和/或属性之间选择。在实施例中,一个或多个FIFO队列被配有背压(backpressure)级别并且被配置 成如果FIFO队列的填充级别超过背压级别则把背压传达到处理器,由此所述处理器被配 置成阻止相同类型的进一步存取请求直到FIFO队列的填充级别返回到在背压级别之下的 级别为止。本专利技术也涉及一种存储器控制器,其用于基于从连接到所述存储器控制器的处理 器接收的存储器写请求和存储器读请求来控制对连接到所述存储器控制器的一个或多个 存储器器件的存取。存储器本文档来自技高网
...

【技术保护点】
1. 一种存取缓冲器(200),用于基于从连接到所述存取缓冲器(200)的处理器(102)接收的存储器写请求和存储器读请求来控制对一个或多个存储器器件(106)的存取,所述存取缓冲器(200)包括:-许多写FIFO队列(“Wr FIFO”),被配置成存储所述一个或多个存储器器件(106)的存储器地址和要写到所述存储器地址的数据,所述存储器地址和所述数据被包括在所接收的写请求中;以及-搜索单元(208),被配置成接收包括存储器地址和属性的读请求,所述搜索单元(208)被配置成借助于所述存储器地址在所述写FIFO队列(“Wr FIFO”)中搜索与所述读请求的存储器地址对应的存储器地址,并且如果找到对应的存储器地址,则所述搜索单元(208)找到了命中请求并且被配置成检索在其中找到地址的写FIFO队列(“Wr FIFO”)中存储的数据并且取消存储器写请求,由此要读的所请求的数据能够在不存取所述一个或多个存储器器件(106)的情况下被读。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:V·苏科尼克S·利夫内
申请(专利权)人:厄塞勒拉特公司
类型:发明
国别省市:SE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1