访存请求调度装置以及用该装置进行访存请求调度的方法

文档序号:6752228阅读:138来源:国知局
专利名称:访存请求调度装置以及用该装置进行访存请求调度的方法
技术领域
本发明涉及一种调度装置,特别是访存请求调度装置。还涉及用这种访存请求调度装置 进行访存请求调度的方法。
背景技术
文献l"专利号为US20070156946的美国专利"公开了一种存储器控制器电路。该装置针 对不同设备提供多个并行的Bank访问先进先出(FIFO)访存请求寄存器,仲裁器对这些Bank 访存请求进行切换,由于采用了 FIFO访存请求寄存器,对访存请求进行顺序组织,硬件实 现简单,但是,多核处理器中多个线程同时发出访存请求,这些访存请求之间的局部性较差, 会引起较多的行激活、预充电指令,由于上述指令的延迟非常大,会引起平均访存延迟的增 大,降低存储器吞吐率。
文献2"专利号为US20050246481的美国专利"公开了一种乱系访存请求调度的存储器控 制器。该装置利用之前的访存信息对访存请求进行调度,带有一定的猜测性,猜测成功的基 础是程序的行为比较固定,访存局部性较好。在多核处理器中,多个处理器核并行计算组成 的程序行为并不稳定,而且会产生局部性较差的访存请求。因此,该装置并不适合多核处理 器应用。
文献3"专利号为US20030033493的美国专利"公开了一种乱序访存请求调度的存储器控 制器。该装置采用状态机控制存储器指令的流失执行,命令调度器用于对存储器命令,比如 行激活指令、预充电指令的乱序调度,同时,该命令调度器还可以对读写请求进行乱序调度, 采用访存请求的乱系调度可以减小访存延迟,但是会造成某个局部性较差的请求被无限期推 后执行,造成线程饿死,降低了处理器的最低性能表现,影响计算实时性。因此,该处理器 无法解决多核处理器在实时流计算中的实时性需求。
参照图5,公知的共享存储器多核处理器中访存请求处理装置的组成包括分Bank的多个 访存请求寄存器堆、Bank调度器及DRAM调度器。访存请求寄存器堆用于保存处理器线程 发出的访存请求,Bank调度器用于从访存请求寄存器堆中选取某个请求发送给DRAM调度 器,DRAM调度器接收Bank调度器发出的访存请求,并选择一个访存请求发送到DRAM调 度器。其中,Bank调度器将地址范围集中的相同Bank、相同行访存请求优先调度,DRAM 调度器也将Bank调度器发送的相同Bank、相同行的访存请求优先调度。该装置存在以下问 题如果多核处理器中某个线程持续发出大量地址范围集中的访存请求,该线程的所有访存
请求将被优先执行,而其它线程发出的地址范围分散的访存请求将被无限期推后,导致线程饿死,降低了处理器的最低性能表现并影响程序执行的实时性。

发明内容
针对传统多核处理器内乱序访存调度装置影响线程处理实时性的问题,本发明提供一种 访存请求调度装置,在访存请求调度电路中构建了窗口约束电路,窗口约束电路保证Bank 调度器一次仅能对有限数量的访存请求进行调度,可以防止个别地址局部性较差的访存请求 被Bank调度器无限期延后调度,可以消除访存请求乱序调度造成的线程饿死,提高多核处理 器的最低处理能力。
本发明还提供利用这种访存请求调度装置进行访存请求调度的方法。首先对窗口约束电 路进行初始化,在窗口长度寄存器中设置一次调度中可见的访存请求数量;访存请求到来后, 如果访存请求对应的Bank访存请求寄存器堆不满,将该访存请求保存到请求寄存器堆中;窗 口约束模块从窗口长度寄存器中读取数值,并将Bank访存请求寄存器中相应数值的读请求设 置为可见,并将所有的写请求设置为可见。在Bank访存请求寄存器堆中,Bank调度器将可 见的访存请求发送到DRAM调度器,供DRAM调度器调度。
本发明解决其技术问题所采用的技术方案 一种访存请求调度装置,包括若干个Bank的 访存请求寄存器堆和若干个Bank调度器以及DRAM调度器,其特点是还包括若干个窗口约 束电路,窗口约束电路中包含一个访存请求计数器及窗口长度寄存器,访存请求寄存器将 Bank访存请求寄存器堆中的写请求设置为可见,访存请求计数器对进入访存请求寄存器堆的 可见读访存请求进行计数,当访存请求计数器数值小于窗口长度寄存器数值时,访存请求寄 存器中的不可见读请求设置为可见,访存请求计数值累计,当访存请求计数器数值等于窗口 长度寄存器且访存请求寄存器堆中的可见读访存请求都被执行时,访存请求计数器归零,窗 口约束电路将访存请求设置为Bank调度器可见,Bank调度器仅对可见的访存请求进行调度, DRAM调度器根据Bank调度器的结果向DRAM调度器发送存储器指令。
一种利用上述访存请求调度装置进行访存请求调度的方法,其特点是包括以下步骤
(a) 初始化窗口约束电路,设置访存请求计数器为零,窗口长度寄存器为预设值;
(b) 接收来自处理器的访存请求,当访存请求对应的Bank的访存请求寄存器堆不满时, 将该访存请求保存到对应的Bank的访存请求寄存器堆中;
(c) 窗口约束电路对访存请求寄存器堆中的访存请求进行设置,当访存请求为写请求时, 则将其设置为可见,当访存请求为读请求时,且访存请求计数器值小于窗口长度寄存器值, 则将其设置为可见,否则设置为不可见;
(d) Bank调度器对访存请求调度器中的可见请求进行调度,将同Bank同行的请求优先 发送到DRAM调度器;(e) DRAM调度器根据Bank调度器的访存请求向DRAM调度器发出存储器指令;
(f) 访存请求执行完毕后,将该访存请求在访存请求寄存器堆中的保存项设置为无效。 本发明的有益效果是由于在访存请求调度电路中构建了窗口约束电路,窗口约束电路
保证Bank调度器一次仅能对有限数量的访存请求进行调度,可以防止个别地址局部性较差的 访存请求被Bank调度器无限期延后调度,消除了访存请求乱序调度造成的线程饿死,提高了 多核处理器的最低处理能力。
下面结合附图和实施例对本发明做详细说明。


图1是本发明访存请求调度装置的结构框图。 图2是图1中访存请求寄存器堆的详图。 图3是图1中窗口约束电路的详细说明图。 图4是图1中Bank调度器的详图。 图5是公知的访存请求调度装置的结构框图。
具体实施例方式
参照图1~4,本发明在构造上采用了窗口约束的访存请求乱序调度装置。整个装置由分 Bank的访存请求寄存器堆、分Bank的窗口约束电路、Bank调度器及DRAM调度器四大部 分组成。访存请求寄存器堆用于保存处理器发出的访存请求,由多个访存请求寄存器组成, 图2给出了由四个访存请求寄存器组成的访存请求寄存器堆。每个访存请求寄存器由九项组 成,行地址项与列地址项用于保存访存请求的地址信息,数据项用于保存写请求的写入数据, 读/写项用于保存访存的请求类型,有效位用于标示该寄存器记录的信息是否有效,时间标记 保存请求的到达时间顺序,可见标记表明该寄存器保存的访存请求是否对Bank调度器可见, 由窗口约束电路操作,当前激活行表明该访存请求的行是否被激活,状态位跟踪访存请求的 执行情况。窗口约束电路用于控制访存请求寄存器堆中的访存请求是否对Bank调度器可见, 主要由访存请求计数器及窗口长度寄存器组成。Bank调度器对访存请求寄存器堆中可见的访 存请求进行调度。DRAM调度器对Bank调度器发出的访存请求进行集中调度。
整个电路的信息流向为处理器发出访存请求,访存请求调度器接收该访存请求并根据 地址信息将该访存请求保存到相应的访存请求寄存器堆中。窗口约束电路对访存请求寄存器 堆中到达的访存请求的可见标记进行操作,将访存请求标记为Bank调度器可见或者不可见。 Bank调度器从访存请求寄存器堆中选取一个到达最早的访存请求,将该访存请求的行做为激 活行保存在激活行寄存器中,并将行信息等于激活行寄存器的访存请求集中调度。Bank调度 器向DRAM调度器发出访存请求,DRAM调度器对多个访存请求同时响应 向DRAM调度器发出存储器命令。当访存请求执行完毕后,Bank调度器将该其有效位设置为无效。 访存请求调度装置进行访存请求调度的方法具体如下
(1) 访存请求调度装置初始化。
(2) 接收来自处理器的访存请求,将访存请求保存到访存请求寄存器堆中。访存请求的 可见标记设置为不可见。
(3) 如果访存请求寄存器堆满,则阻塞处理器发出访存请求。
(4) 窗口约束电路检査访存请求寄存器堆中是否有读访存请求的可见标记设置为不可 见,如有,如果访存请求计数器的数值小于窗口长度寄存器,则将该读请求设置为可见,窗 口约束电路将所有的写请求设置为可见。
(5) Bank调度器对访存请求寄存器堆中的可见访存请求进行调度,调度所采用的优先级 顺序为行信息等于激活行寄存器的可见读请求最高,行信息等于激活行的可见写请求其次, 行信息不等于激活行寄存器的可见行请求的优先级较弱,行信息不等于激活行寄存器的可见 写请求的优先级最低。
(6) Bank调度器将访存请求的状态位改为正在执行。
(7) DRAM调度器响应多个Bank调度器发出的访存请求,向DRAM调度器发出存储器 命令。
(8) 访存请求执行完成后,Bank调度器将访存请求的状态位改为已执行,将有效位改为 无效。
上述第(2)、 (3)步作为访存请求接收部分,第(4)步作为访存请求加窗部分,其余部 分作为访存请求调度部分,这三个部分的操作并行进行,并且各个部分的操作是循环进行的。
从执行流程上可以看出,该装置有以下几个特点首先,在进行访存请求调度之前对访 存请求的Bank调度器的可见性进行设置,在一个处理器发出的访存请求序列中,Bank调度 器仅能对其中一部分可见访存请求进行调度,只有当该部分可见访存请求都被发送到DRAM 调度器以后,窗口约束电路才将其它部分的访存请求设置为可见,Bank调度器也才能对其它 部分的访存请求进行调度。该加窗约束的访存请求调度策略保证访存请求不被Bank调度器无 限期推后调度,消除了由访存请求调度引起的线程饿死,提高了多核处理器的最低性能表现, 保证了计算的实时性需求。其次,访存调度采取了并行化的乱序调度,减少并掩盖了预充电 行激活时间,提高了访存带宽。
权利要求
1、一种访存请求调度装置,包括若干个Bank的访存请求寄存器堆和若干个Bank调度器以及DRAM调度器,其特征在于还包括若干个窗口约束电路,窗口约束电路中包含一个访存请求计数器及窗口长度寄存器,访存请求寄存器将Bank访存请求寄存器堆中的写请求设置为可见,访存请求计数器对进入访存请求寄存器堆的可见读访存请求进行计数,当访存请求计数器数值小于窗口长度寄存器数值时,访存请求寄存器中的不可见读请求设置为可见,访存请求计数值累计,当访存请求计数器数值等于窗口长度寄存器且访存请求寄存器堆中的可见读访存请求都被执行时,访存请求计数器归零,窗口约束电路将访存请求设置为Bank调度器可见,Bank调度器仅对可见的访存请求进行调度,DRAM调度器根据Bank调度器的结果向DRAM调度器发送存储器指令。
2、 一种利用权利要求1所述访存请求调度装置进行访存请求调度的方法,其特征在于包 括以下步骤(a) 初始化窗口约束电路,设置访存请求计数器为零,窗口长度寄存器为预设值;(b) 接收来自处理器的访存请求,当访存请求对应的Bank的访存请求寄存器堆不满时, 将该访存请求保存到对应的Bank的访存请求寄存器堆中;(c) 窗口约束电路对访存请求寄存器堆中的访存请求进行设置,当访存请求为写请求时, 则将其设置为可见,当访存请求为读请求时,且访存请求计数器值小于窗口长度寄存器值, 则将其设置为可见,否则设置为不可见;(d) Bank调度器对访存请求调度器中的可见请求进行调度,将同Bank同行的请求优先 发送到DRAM调度器;(e) DRAM调度器根据Bank调度器的访存请求向DRAM调度器发出存储器指令;(f) 访存请求执行完毕后,将该访存请求在访存请求寄存器堆中的保存项设置为无效。
全文摘要
本发明公开了一种访存请求调度装置以及用该装置进行访存请求调度的方法,装置包括若干个Bank的访存请求寄存器堆和若干个Bank调度器以及DRAM调度器,其特点是还包括若干个窗口约束电路,窗口约束电路中包含一个访存请求计数器及窗口长度寄存器。由于在访存请求调度电路中构建了窗口约束电路,窗口约束电路保证Bank调度器一次仅能对有限数量的访存请求进行调度,可以防止个别地址局部性较差的访存请求被Bank调度器无限期延后调度,消除了访存请求乱序调度造成的线程饿死,提高了多核处理器的最低处理能力。
文档编号G11C7/10GK101625887SQ20091002358
公开日2010年1月13日 申请日期2009年8月14日 优先权日2009年8月14日
发明者萌 张, 张盛兵, 樊晓桠, 王党辉, 田杭沛, 然 郑, 高德远, 魏廷存, 黄小平 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1