《访存调度方法、装置和系统.pdf》由会员分享,可在线阅读,更多相关《访存调度方法、装置和系统.pdf(16页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103559147 A (43)申请公布日 2014.02.05 CN 103559147 A (21)申请号 201310557156.5 (22)申请日 2013.11.11 G06F 12/08(2006.01) G06F 13/16(2006.01) (71)申请人 龙芯中科技术有限公司 地址 100190 北京市海淀区科学院南路 10 号 (72)发明人 刘苏 苏孟豪 吴龙 (74)专利代理机构 北京同立钧成知识产权代理 有限公司 11205 代理人 刘芳 (54) 发明名称 访存调度方法、 装置和系统 (57) 摘要 本发明提供一种访存调度方法、 装置和系。
2、统, 包括 : 接收与各访存模块对应的各访存窗口信 息 ; 根据各访存窗口信息, 确定各访存窗口在调 度周期内的启闭时间, 并在对应的启闭时间内开 启各访存窗口 ; 接收访存模块发送的访存请求, 所述访存请求中携带所述访存模块的标识 ; 根据 所述访存模块的标识, 确定与所述访存模块的标 识对应的访存窗口是否处于开启状态 ; 若所述访 存模块的标识对应的访存窗口处于开启状态, 则 对所述访存请求进行访存调度。通过在调度周期 对应的启闭时间内打开访存窗口, 并仅对访存窗 口开启的访存模块的访存请求进行访存调度, 降 低了多个访存模块同时进行访存请求, 访存带宽 发生冲突的概率, 同时提高了访存性。
3、能和访存服 务质量。 (51)Int.Cl. 权利要求书 3 页 说明书 8 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书8页 附图4页 (10)申请公布号 CN 103559147 A CN 103559147 A 1/3 页 2 1. 一种访存调度方法, 其特征在于, 包括 : 接收与各访存模块对应的各访存窗口信息, 所述各访存窗口信息包括各访存窗口的长 度, 所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长 ; 根据所述各访存窗口信息, 确定各访存窗口在调度周期内的启闭时间, 并在对应的启 闭时间内开启所述各访存窗口, 所。
4、述调度周期指所有访存窗口各执行一次访存调度所需的 时间 ; 接收访存模块发送的访存请求, 所述访存请求中携带访存模块标识 ; 根据所述访存模块标识, 确定与所述访存模块标识对应的访存窗口是否开启 ; 若所述访存模块标识对应的访存窗口已开启, 则对所述访存请求进行访存调度。 2. 根据权利要求 1 所述的方法, 其特征在于, 所述确定与所述访存模块标识对应的访 存窗口是否开启之后, 还包括 : 若所述访存模块标识对应的访存窗口关闭, 则阻塞所述访存请求, 直至确定所述访存 模块标识对应的访存窗口开启, 再对所述访存请求进行访存调度。 3. 根据权利要求 1 所述的方法, 其特征在于, 还包括 :。
5、 接收数据请求, 所述数据请求中携带访存模块标识 ; 判断所述数据请求的状态, 若所述数据请求为有效状态, 则开启与所述访存模块标识 对应的访存窗口, 且在所述数据请求变为无效状态时, 关闭与所述访存模块标识对应的访 存窗口。 4. 根据权利要求 1 所述的方法, 其特征在于, 所述访存模块为带宽敏感型访存模块, 所 述根据所述各访存窗口信息, 确定各访存窗口在调度周期内的启闭时间, 包括 : 根据所述访存窗口信息, 确定与所述访存模块对应的访存窗口在调度周期内独占的启 闭时间 ; 或者, 所述访存模块为延迟敏感型访存模块, 所述根据所述访存窗口信息, 确定各访存窗口 在调度周期内的启闭时间,。
6、 包括 : 在调度周期内一直开启与所述访存模块对应的访存窗口。 5.根据权利要求14任一所述的方法, 其特征在于, 所述确定各访存窗口在调度周期 内的启闭时间, 包括 : 根据所述各访存模块的优先级, 确定各访存窗口在调度周期内的启闭时间。 6. 根据权利要求 1 所述的方法, 其特征在于, 所述接收与各访存模块对应的各访存窗 口信息之前, 还包括 : 接收访存窗口的调整信息 ; 根据所述访存窗口的调整信息调整所述访存窗口, 确定所述访存窗口信息。 7. 根据权利要求 6 所述的方法, 其特征在于, 所述接收访存窗口的调整信息, 包括 : 接收数据请求, 所述数据请求中携带访存模块标识 ; 所。
7、述根据所述访存窗口的调整信息调整所述访存窗口, 包括 : 根据所述访存模块标识, 确定与所述访存模块标识对应的访存窗口 ; 查询本地存储的所述访存窗口所在访存总线的信息 ; 确定所述访存总线的空闲时间 ; 权 利 要 求 书 CN 103559147 A 2 2/3 页 3 根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访存总 线的时长。 8. 根据权利要求 6 所述的方法, 其特征在于, 所述接收访存窗口的调整信息, 包括 : 接收检测出的访存总线上各访存窗口的状态 ; 所述根据所述访存窗口的调整信息调整所述访存窗口, 包括 : 根据所述各访存窗口的状态确定包括空闲时间的。
8、访存窗口 ; 根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。 9. 一种访存调度装置, 其特征在于, 包括 : 第一接收单元, 用于接收与各访存模块对应的各访存窗口信息, 所述各访存窗口信息 包括各访存窗口的长度, 所述各访存窗口的长度代表对应的各访存模块占用访存总线的时 长 ; 第一确定单元, 用于根据所述各访存窗口信息, 确定各访存窗口在调度周期内的启闭 时间, 并在对应的启闭时间内开启所述各访存窗口, 所述调度周期指所有访存窗口各执行 一次访存调度所需的时间 ; 第二接收单元, 用于接收访存模块发送的访存请求, 所述访存请求中携带所述访存模 块标识 ; 第二确定单元, 用于根据。
9、所述访存模块标识, 确定与所述访存模块标识对应的访存窗 口是否开启 ; 处理单元, 用于若所述访存模块标识对应的访存窗口已开启, 则对所述访存请求进行 访存调度。 10. 根据权利要求 9 所述的访存调度装置, 其特征在于, 所述处理单元, 还用于 : 若所述访存模块标识对应的访存窗口关闭, 则阻塞所述访存请求, 直至确定所述访存 模块标识对应的访存窗口开启, 再对所述访存请求进行访存调度。 11. 根据权利要求 9 所述的访存调度装置, 其特征在于, 还包括 : 第三接收单元, 用于接收数据请求, 所述数据请求中携带访存模块标识 ; 判断单元, 用于判断所述数据请求的状态, 若所述数据请求为。
10、有效状态, 则开启与所述 访存模块标识对应的访存窗口, 且在所述数据请求变为无效状态时, 关闭与所述访存模块 标识对应的访存窗口。 12. 根据权利要求 9 所述的访存调度装置, 其特征在于, 所述访存模块为带宽敏感型访 存模块, 所述第一确定单元, 具体用于 : 根据所述访存窗口信息, 确定与所述访存模块对应的访存窗口在调度周期内独占的启 闭时间 ; 或者, 所述访存模块为延迟敏感型访存模块, 所述第一确定单元, 具体用于 : 确定在调度周期内一直开启与所述访存模块对应的访存窗口。 13. 根据权利要求 9 12 任一所述的访存调度装置, 其特征在于, 第一确定单元, 具体 用于 : 根据所。
11、述各访存模块的优先级, 确定各访存窗口在调度周期内的启闭时间。 14. 根据权利要求 9 所述的访存调度装置, 其特征在于, 所述访存调度器, 还包括 : 权 利 要 求 书 CN 103559147 A 3 3/3 页 4 第四接收单元, 用于接收访存窗口的调整信息 ; 第三确定单元, 用于根据所述访存窗口的调整信息调整所述访存窗口, 确定所述访存 窗口的信息。 15. 根据权利要求 14 所述的访存调度装置, 其特征在于, 所述第四接收单元, 具体用 于 : 接收数据请求, 所述数据请求中携带访存模块标识 ; 所述第三确定单元, 具体用于 : 根据所述访存模块标识, 确定与所述访存模块标识。
12、对应的访存窗口 ; 查询本地存储的所述访存窗口所在访存总线的信息 ; 确定所述访存总线的空闲时间 ; 根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访存总 线的时长。 16. 根据权利要求 14 所述的访存调度装置, 其特征在于, 所述第四接收单元, 具体用 于 : 接收检测出的访存总线上各访存窗口的状态 ; 所述第三确定单元, 具体用于 : 根据所述各访存窗口的状态确定包括空闲时间的访存窗口 ; 根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。 17. 一种访存调度系统, 其特征在于, 包括 : 访存模块和如权利要求 9 16 任一所述的 访存调度装置。 18. 。
13、根据权利要求 17 所述的访存调度系统, 其特征在于, 还包括 : 访存调度器, 与所述访存调度装置连接, 用于接收所述访存调度装置发送的访存请求, 并对收到的访存请求进行访存调度。 权 利 要 求 书 CN 103559147 A 4 1/8 页 5 访存调度方法、 装置和系统 技术领域 0001 本发明涉及集成电路逻辑设计领域, 尤其涉及一种访存调度方法、 装置和系统。 背景技术 0002 随着半导体技术的发展, 越来越多的功能模块被集成到同一块芯片中。芯片内功 能模块的增加使芯片的功能越来越强大, 这就导致了芯片的访存压力越来越大。 0003 通常, 访存调度器用来处理访存模块的访存调度。
14、请求。访存调度器将访存模块分 为带宽敏感型和延迟敏感型, 对带宽敏感型的访存模块采用配置足够带宽的调度策略, 对 延迟敏感型的访存模块采用配置高优先级的调度策略, 来保证各模块的访存服务质量。 0004 上述访存调度方法中, 随着访存压力的增大, 多个访存模块同时发送访存请求, 为 各访存模块分配的访存带宽发生冲突的概率逐渐增加, 访存的性能会逐渐降低, 从而也就 降低了访存的服务质量。 发明内容 0005 本发明提供一种访存调度方法、 装置和系统, 用于解决访存压力较大时, 访存带宽 发生冲突的概率增加, 访存性能和访存服务质量会降低的问题。 0006 本发明提供一种访存调度方法, 包括 :。
15、 0007 接收与各访存模块对应的各访存窗口信息, 所述各访存窗口信息包括 : 各访存窗 口的长度, 所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长 ; 0008 根据所述各访存窗口信息, 确定各访存窗口在调度周期内的启闭时间, 并在对应 的启闭时间内开启所述各访存窗口, 所述调度周期指所有访存窗口各执行一次访存调度所 需的时间 ; 0009 接收访存模块发送的访存请求, 所述访存请求中携带所述访存模块标识 ; 0010 根据所述访存模块标识, 确定与所述访存模块标识对应的访存窗口是否开启 ; 0011 若所述访存模块标识对应的访存窗口已开启, 则对所述访存请求进行访存调度。 00。
16、12 本发明提供一种访存调度装置, 包括 : 0013 第一接收单元, 接收与各访存模块对应的各访存窗口信息, 所述各访存窗口信息 包括各访存窗口的长度, 所述各访存窗口的长度代表对应的各访存模块占用访存总线的时 长 ; 0014 第一确定单元, 根据所述各访存窗口信息, 确定各访存窗口在调度周期内的启闭 时间, 并在对应的启闭时间内开启所述各访存窗口, 所述调度周期指所有访存窗口各执行 一次访存调度所需的时间 ; 0015 第二接收单元, 用于接收访存模块发送的访存请求, 所述访存请求中携带所述访 存模块标识 ; 0016 第二确定单元, 用于根据所述访存模块标识, 确定与所述访存模块标识对。
17、应的访 存窗口是否开启 ; 说 明 书 CN 103559147 A 5 2/8 页 6 0017 处理单元, 用于若所述访存模块标识对应的访存窗口已开启, 则对所述访存请求 进行访存调度。 0018 本发明提供一种访存调度系统, 包括 : 访存模块和如上所述的访存调度装置。 0019 本发明提供的访存调度方法、 装置和系统, 通过根据各访存模块对应的各访存窗 口信息, 在调度周期对应的启闭时间内打开访存窗口, 并仅对访存窗口开启的访存模块的 访存请求进行访存调度, 降低了多个访存模块同时进行访存请求, 访存带宽发生冲突的概 率, 优化了访存压力较大情况下的访存性能和服务质量。 附图说明 00。
18、20 图 1 为本发明实施例提供的访存调度方法实施例一的流程示意图 ; 0021 图 2 为本发明实施例提供的访存调度方法实施例二的流程示意图 ; 0022 图 3 为本发明提供的访存调度装置实施例一结构示意图 ; 0023 图 4 为本发明提供的访存调度装置实施例二结构示意图 ; 0024 图 5 为本发明提供的访存调度装置实施例三结构示意图 ; 0025 图 6 为本发明提供的访存调度系统实施例结构示意图。 具体实施方式 0026 本发明中, 为尽量减少访存调度占用的资源, 根据访存模块的实际功能, 为各访存 模块配置对应的访存窗口, 对属于同一访存模块的访存请求集中在该访存模块对应的访存。
19、 窗口开启时处理, 降低了多个访存模块同时进行访存请求, 带宽发生冲突的概率, 优化了访 存压力较大情况下的访存性能和服务质量。 0027 图 1 为本发明提供的一种访存调度方法流程示意图。如图 1 所示, 该方法包括 : 0028 S100, 接收与各访存模块对应的各访存窗口信息, 所述各访存窗口信息包括各访 存窗口的长度, 所述各访存窗口的长度代表对应的各访存模块占用访存总线的时长。 0029 本实施例访存调度方法是由本发明提供的访存调度装置中的仲裁模块执行的。 其 中, 接收的与各访存模块对应的各访存窗口信息可以初始化配置时由中央处理器 (Central Processing Unit,。
20、 CPU) 通过通信端口发送给该仲裁模块的, 也可以是该访存调度装置中自 适应模块返回给仲裁模块的各访存窗口信息, 本实施例对此不做限定。 0030 具体的, 在访存调度装置初始化时, 由 CPU 根据待处理的访存模块的访存需求, 结 合系统可提供的访存总线带宽为各访存模块配置对应的访存窗口, 各访存模块在对应的访 存窗口长度内可占用访存总线, 对内存进行读出或写入操作。 0031 其中, 访存窗口信息还包括 : 访存模块标识、 访存窗口标识。访存模块标识用来表 示不同的访存模块, 访存窗口标识用来表示不同的访存窗口, 访存模块标识与访存窗口标 识间一一对应, 举例来说, 若某系统中共有 10。
21、 个访存模块, 则与各访存模块对应的访存窗 口分别可用数字 1 10 进行标识, 或者可以用不同的字母表示不同的访存窗口, 或者可以 根据对应的各访存模块的特征为各访存窗口进行个性化的标识。 访存窗口的长度可以用时 间长度标识, 也可以利用系统的时钟周期标识, 本实施例对此不做限定。访存模块标识、 访 存窗口标识与访存窗口长度一一对应, 不同的访存窗口的访存窗口长度可能相同。 0032 S110, 根据所述访存窗口信息, 确定各访存窗口在调度周期内的启闭时间, 并在对 说 明 书 CN 103559147 A 6 3/8 页 7 应的启闭时间内开启各访存窗口, 所述调度周期指所有访存窗口各执行。
22、一次访存调度所需 的时间。 0033 具体地, 所述确定各访存窗口在调度周期内的启闭时间, 包括 : 0034 根据所述各访存模块的优先级, 确定各访存窗口在调度周期内的启闭时间。 0035 各访存模块间有一定的优先级顺序, 初始化时, CPU 将各访存模块对应的访存窗口 信息发给仲裁模块时, 可以将各访存模块的优先级顺序同时发给仲裁模块, 由仲裁模块依 据各访存模块的优先级顺序确定各访存窗口的启闭时间, 或者, CPU 直接按各访存模块的优 先级顺序将对应的各访存窗口信息依次发送给仲裁模块, 使仲裁模块根据收到的访存窗口 的先后顺序, 依次确定各访存窗口在调度周期内的启闭时间。 0036 其。
23、中, 调度周期反映了访存调度的粒度。由于每个访存模块在一个调度周期内的 访存请求集中于一个较短的窗口时间内, 该访存模块的缓存 (片内缓存或内存) 大小需要 保证其在调度周期内不产生数据饥饿。由于调度周期对所有访存模块都相同, 所以调度周 期确定时, 必须满足缓存忍耐程度最低的访存模块的访存需求。在片上系统 (System on a Chip, 简称 SoC) 设计中, 设计者可以对各访存模块的缓存大小进行调整, 使其在最坏状况下 的忍耐程序接近, 这样可以最大程度利用缓存空间。 0037 通常, 若调度周期以 Soc 内的时钟周期为单位进行划分, 各访存窗口的长度也以 时钟周期为单位, 对应。
24、的, 可用与 Soc 的时钟周期相同周期的第一计数器对各访存窗口的 开启时间进行计数, 假设某访存窗口的长度为 100 个时钟周期, 则第一计数器对开启的访 存窗口的开启时间进行计数, 并在第一计数器计数为 100 时, 关闭该访存窗口, 本实施例中 的第一计数器可以是加法计数器, 也可以是减法计数器, 本实施例对此不做限定。 或者调度 周期以时间为单位, 则访存窗口的长度也以时间为单位表示。 对应的, 用计时器对各访存窗 口的开启时间进行计时, 假设某访存窗口的长度为 100s, 则计时器对开启的访存窗口的开 启时间进行计时, 并在计时器计时为 100s 时, 关闭该访存窗口。 0038 S。
25、120, 接收访存模块发送的访存请求, 所述访存请求中携带所述访存模块标识。 0039 其中, 访存模块发送的访存请求, 可以是写入请求, 也可以是读取请求。 0040 S130, 根据所述访存模块标识, 确定与所述访存模块标识对应的访存窗口是否开 启。 0041 具体的, 仲裁模块中保存了各访存窗口的启闭状态, 在对应的开启时间开启该访 存窗口后, 将本地该访存窗口的启闭状态更新为开启, 在对应的关闭时间关闭该访存窗口 后, 将本地该访存窗口的启闭状态更新为关闭。 其中, 各访存窗台的状态信息可以用数字或 字符表示, 例如, 1 表示开启, 0 表示关闭, 或者 OP 表示开启, CL 表示。
26、关闭等等, 本实施例对 此不做限定。 0042 S140, 若所述访存模块标识对应的访存窗口开启, 则对所述访存请求进行访存调 度。 0043 具体的, 还可将进行访存调度之后的访存请求发送给后级访存调度器进行进一步 访存调度, 达到更细致的访存调度效果 ; 后级访存调度器可为通常使用的访存调度器, 例如 可以为轮转式访存调度器, 也可以是其它方式的调度器, 本实施例对此不做限定。 0044 相应地, 上述确定与所述访存模块标识对应的访存窗口是否开启之后, 还包括 : 0045 若所述访存模块标识对应的访存窗口关闭, 则阻塞所述访存请求, 直至确定所述 说 明 书 CN 103559147 A。
27、 7 4/8 页 8 访存模块标识对应的访存窗口开启, 再对所述访存请求进行访存调度。 0046 进一步地, 上述访存调度方法, 还包括 : 接收数据请求, 所述数据请求中携带访存 模块标识 ; 0047 判断所述数据请求的状态, 若所述数据请求为有效状态, 则开启与所述访存模块 标识对应的访存窗口, 且在所述数据请求变为无效状态时, 关闭与所述访存模块标识对应 的访存窗口。 0048 其中, 此处的数据请求是访存模块发送的。各访存模块的缓存区在该访存模块对 应的访存窗口期, 将从内存中读取的数据存入该缓存区, 或者将该缓存区的数据写入系统 内存中, 在该调度周期的其它时间内, 该访存模块利用。
28、其缓存区的数据进行数据处理。 各访 存模块可检测其缓存区数据的利用率, 当其出现数据饥饿时, 即可向访存调度器发起数据 请求, 仲裁模块收到访存模块发送的数据请求后, 表明该访存模块出现了数据饥饿, 仲裁模 块随即打开该访存模块对应的访存窗口, 使该访存模块可进行数据读取或写入。数据请求 的状态为预先设定的表明数据请求是否有效的状态, 举例来说, 若访存模块的数据请求的 状态为 “0” , 表明该数据请求无效, 若访存模块的数据请求的状态为 “1” , 表明该数据请求 有效, 仲裁模块实时监控各访存模块对应的数据请求的状态, 实时打开与数据请求有效状 态对应的访存窗口, 并在数据请求无效时, 。
29、实时关闭对应的访存窗口。 0049 具体地, 所述访存模块为带宽敏感型访存模块, 所述根据所述各访存窗口信息, 确 定各访存窗口在调度周期内的启闭时间, 包括 : 0050 根据所述访存窗口信息, 确定与所述访存模块对应的访存窗口在调度周期内独占 的启闭时间 ; 0051 或者, 所述访存模块为延迟敏感型访存模块, 所述根据所述访存窗口信息, 确定各 访存窗口在调度周期内的启闭时间, 包括 : 0052 在调度周期内一直开启与所述访存模块对应的访存窗口。 0053 其中, 根据访存模块的访存特点, 可将访存模块分为带宽敏感型和延迟敏感型。 对 带宽敏感型访存模块, 访存带宽是决定该访存模块访存。
30、质量和性能的主要因素, 对应延迟 敏感型访存模块, 访存延迟时间是决定该访存模块访存质量和性能的主要因素。 0054 本实施例中考虑不同类型访存模块的要求, 对不同的访存模块采用不同的访存窗 口分配方法。 对于带宽敏感型访存模块, 根据该访存模块的访存带宽需求, 结合访存系统的 总带宽, 为该类访存模块配置独占该访存系统带宽的访存窗口长度, 在该访存窗口内, 使该 访存模块独自占有访存系统带宽。举例来说, 若为该访存模块的带宽需求为 Bn, 访存系统 的带宽为 Bt, 调度周期为 Ts, 则为该访存模块配置的访存窗口的长度 Tw 可按 Tw=Ts(Bn/ Bt) 计算, 使该访存模块在调度周期。
31、 Ts 内独自占有访存系统带宽 Tw 的时间, 仲裁模块收到 该访存窗口的长度 Tw 后, 根据访存模块优先级顺序确定该访存窗口在调度周期 Ts 内的启 闭时间, 在确定的开启时间开启该访存窗口, 将该访存窗口的访存请求传送给后级访存调 度器处理, 经过 Tw 时间后, 关闭该访存窗口, 相应的打开另一访存窗口, 开始处理另一访存 窗口的访存请求。 0055 相应的, 对于延迟敏感性访存模块, 为保证该类访存模块的访存请求无延时, 配置 该类访存模块对应的访存窗口在整个调度周期都是开启状态, 使得该访存模块的访存请求 在整个调度周期内, 都可以无延时的直接传给后级访存调度器。 说 明 书 CN。
32、 103559147 A 8 5/8 页 9 0056 本实施例提供的访存调度方法, 通过根据访存模块对应的访存窗口信息, 在调度 周期对应的启闭时间内打开访存窗口, 并仅对访存窗口开启的访存请求进行访存调度, 降 低了多个访存模块同时进行访存请求时, 带宽发生冲突的概率, 访存性能和访存服务质量 同时得到了提高。 另外, 通过为带宽敏感型访存模块分配独占访存总线的访存窗口, 为延迟 敏感型访存模块分配占用整个调度周期的访存窗口, 使带宽敏感型和延迟敏感型访存模块 的访存性能和访存服务质量同时得到了保证。 0057 图 2 为本发明实施例提供的访存调度方法实施例二的流程示意图。如图 2 所示,。
33、 在实施例 1 的基础上, 该方法还包括 : 0058 S200, 接收访存窗口的调整信息 ; 0059 S210, 根据所述访存窗口的调整信息调整所述访存窗口, 确定所述访存窗口的信 息。 0060 本实施例提供的访存调度方法的执行主体为访存调度装置的回路反馈部分, 本实 施例称为自适应模块。 0061 在本实施例一种可能的实现方式中, 上述 200, 包括 : 0062 接收数据请求, 所述数据请求中携带访存模块标识 ; 0063 相应的, 上述 201 包括 : 0064 根据所述访存模块标识, 确定与所述访存模块标识对应的访存窗口 ; 0065 查询本地存储的所述访存窗口所在总线的信息。
34、 ; 0066 确定所述访存总线的空闲时间 ; 0067 根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访 存总线的时长。 0068 其中, 此处的数据请求是访存模块发送的。各访存模块的缓存区在该访存模块对 应的访存窗口时间内, 从内存中读取数据, 并存入本地, 或者将本地的数据写入系统内存 中, 在该调度周期的其它时间内, 该访存模块利用其缓存区的数据进行数据处理。 各访存模 块可检测其缓存区数据的利用率, 当其出现数据饥饿时, 即可向访存调度器发起数据请求, 相应的, 仲裁模块检测到该访存模块对应的数据请求为变为有效状态, 则即刻打开与发起 该数据请求的访存模块对应的访。
35、存窗口, 然后根据该访存窗口所在访存总线的空闲时间将 该访存模块对应的访存窗口的长度加长。 0069 相应的, 窗口自适应模块检测到有访存模块发来数据请求时, 根据数据请求中的 访存模块标识, 确定该访存模块对应的访存窗口。自适应模块中保存各访存窗口及各访存 窗口所在访存总线的信息, 自适应模块根据上述信息确定该访存总线的空闲时间, 然后根 据预设的第一规则, 将该空闲时间分配给发起数据请求的访存模块对应的访存窗口。举例 来说, 若自适应模块收到 2 个访存模块发来的数据请求, 对应的访存总线的空闲时间为 20 个时钟周期, 则可将该 20 个时钟周期平均分配给这两个访存模块, 或者, 可根据。
36、发起数据 请求的访存模块的优先级, 为优先级较高的访存模块分配 15 个时钟周期, 为优先级较低的 访存模块分配 5 个时钟周期等, 本实施例对此不做限定。 0070 在本实施例另一种可能的实现方式中, 上述, S200 包括 : 0071 接收检测出的访存总线上各访存窗口的状态。 0072 具体的, 自适应模块检测访存总线上各访存窗口的数据传输率确定该访存窗口是 说 明 书 CN 103559147 A 9 6/8 页 10 否包括空闲时间, 若发现某访存窗口的数据传输率明显低于其他访存窗口, 则确定该访存 窗口包括空闲时间 ; 或者自适应模块检测访存总线上各访存窗口的 “outstandi。
37、ng” 值, 若 在访存窗口关闭前该值已经等于 “0” , 则第二计数器开始计数, 直到该访存窗口关闭为止, 相应的, 第二计数器的计数值即为该访存窗口的空闲时间, 若该访存窗口关闭后, 更新的该 访存窗口的该值为 “0” , 则表示该访存窗口的长度合适。 0073 相应的, 上述 S210, 包括 : 0074 根据所述各访存窗口的状态确定包括空闲时间的访存窗口 ; 0075 根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。 0076 具体的, 自适应模块确定包括空闲时间的访存窗口后, 根据预设的第二规则缩小 该访存窗口的窗口长度, 所述预设的第二规则可以是按照空闲时间的一半进行缩小。
38、访存窗 口长度, 也可以是其他比例进行缩小。 举例来说, 若自适应模块检测到访存窗口包括的空闲 时间长度为 200 个时钟周期, 则可将下一调度周期内该访存窗口的长度缩小 100 个时钟周 期, 然后检测缩小访存窗口长度的下一调度周期内该访存窗口的状态, 若发现仍有 100 个 空闲时钟周期, 则再次将该访存窗口的长度缩小 50 个时钟周期, 直至确定到合适的访存窗 口长度, 或者, 按上述过程, 依此缩小该访存窗口空闲时间的 1/5、 1/4、 1/3 等, 本实施例对 此不做限定。 相应的, 若缩小后的访存窗口对应的访存模块出现数据饥饿, 则可再次为该访 存窗口增加窗口长度, 直至合适。优。
39、选的, 可以设定某一阈值, 通过判断该访存模块对应的 访存窗口的空闲时间与该阈值的比例, 适当的缩小访存窗口的长度。 0077 本实施例提供的访存调度方法, 通过根据各访存窗口的调整信息, 调整各访存窗 口, 提高了访存总线的带宽利用率, 减小了访存压力增大时, 访存带宽发生冲突的概率, 提 高了访存性能和访存服务质量。 0078 图3为本发明提供的访存调度装置实施例一的结构示意图。 如图3所示, 该访存调 度装置, 包括 : 第一接收单元300、 第一确定单元310、 第二接收单元320、 第二确定单元330、 处理单元 340, 其中, 第一接收单元 300, 用于接收与各访存模块对应的各。
40、访存窗口信息, 所 述各访存窗口信息包括各访存窗口的长度, 所述各访存窗口的长度代表对应的各访存模块 占用访存总线的时长 ; 0079 第一确定单元 310, 用于根据所述各访存窗口信息, 确定各访存窗口在调度周期内 的启闭时间, 并在对应的启闭时间内开启各访存窗口, 所述调度周期指所有访存窗口各执 行一次访存调度所需的时间 ; 0080 第二接收单元 320, 用于接收访存模块发送的访存请求, 所述访存请求中携带所述 访存模块标识 ; 0081 第二确定单元 330, 用于根据所述访存模块标识, 确定与所述访存模块标识对应的 访存窗口是否开启 ; 0082 处理单元 340, 用于若所述访存。
41、模块标识对应的访存窗口开启, 则对所述访存请求 进行访存调度。 0083 进一步地, 所述处理单元, 还用于 : 0084 若所述访存模块标识对应的访存窗口关闭, 则阻塞所述访存请求, 直至确定所述 访存模块标识对应的访存窗口开启, 再对所述访存请求进行访存调度。 0085 进一步地, 所述访存调度器, 还包括 : 说 明 书 CN 103559147 A 10 7/8 页 11 0086 第三接收单元, 用于接收数据请求, 所述数据请求中携带访存模块标识 ; 0087 判断单元, 用于判断所述数据请求的状态, 若所述数据请求为有效状态, 则开启与 所述访存模块标识对应的访存窗口, 且在所述数。
42、据请求变为无效状态时, 关闭与所述访存 模块标识对应的访存窗口。 0088 具体的, 所述访存模块为带宽敏感型访存模块, 所述第一确定单元, 具体用于 : 根 据所述访存窗口信息, 确定与所述访存模块对应的访存窗口在调度周期内独占的启闭时 间 ; 0089 或者, 所述访存模块为延迟敏感型访存模块, 所述第一确定单元, 具体用于 : 确定 在调度周期内一直开启与所述访存模块对应的访存窗口。 0090 进一步地, 上述第一确定单元, 具体用于 : 0091 根据所述各访存模块的优先级, 确定各访存窗口在调度周期内的启闭时间。 0092 本实施例提供的访存调度装置各单元的具体功能和实现方式, 可参。
43、照上述访存调 度方法实施例一的详细说明, 此处不再赘述。 0093 本实施例提供的访存调度装置, 通过根据各访存模块对应的访存窗口信息, 在调 度周期对应的启闭时间内打开访存窗口, 并仅对访存窗口开启的访存请求进行访存调度, 降低了多个访存模块同时进行访存请求时, 带宽发生冲突的概率, 使访存性能和访存服务 质量同时得到了提高。 另外, 通过为带宽敏感型访存模块分配独占访存总线的访存窗口, 为 延迟敏感型访存模块分配占用整个调度周期的访存窗口, 使带宽敏感型和延迟敏感型访存 模块的访存性能和访存服务质量都能得到保证。 0094 图4为本发明提供的访存调度装置实施例二结构示意图。 如图4所示, 。
44、在图3的基 础上, 该调度装置还包括 : 第四接收单元 400、 第三确定单元 410, 其中, 第四接收单元 400, 用于接收访存窗口的调整信息 ; 第三确定单元 410, 用于根据所述访存窗口的调整信息调 整所述访存窗口, 确定所述访存窗口的信息。 0095 在一种可能的实现方式中, 所述第四接收单元, 具体用于 : 0096 接收数据请求, 所述数据请求中携带访存模块标识 ; 0097 所述第三确定单元, 具体用于 : 0098 根据所述访存模块标识, 确定与所述访存模块标识对应的访存窗口 ; 0099 查询本地存储的所述访存窗口所在总线的信息 ; 0100 确定所述访存总线的空闲时间。
45、 ; 0101 根据预设的第一规则从所述访存总线的空闲时间中为所述访存窗口分配占用访 存总线的时长。 0102 在另一种可能的实现方式中, 所述第四接收单元, 具体用于 : 0103 接收检测的访存总线上访存窗口的状态 ; 0104 所述第三确定单元, 具体用于 : 0105 根据所述各访存窗口的状态确定包括空闲时间的访存窗口 ; 0106 根据预设的第二规则缩小所述包括空闲时间的访存窗口的长度。 0107 本实施例提供的访存调度装置各单元的具体功能和实现方式, 可参照上述访存调 度方法实施例二的详细说明, 此处不再赘述。 0108 本实施例提供的访存调度装置, 通过根据各访存窗口的状态信息,。
46、 调整各访存窗 说 明 书 CN 103559147 A 11 8/8 页 12 口的长度, 提高了访存总线的带宽利用率, 减小了访存压力增大时, 访存带宽发生冲突的概 率, 提高了访存性能和访存服务质量。 0109 图 5 为本发明提供的访存调度装置实施例三结构示意图。如图 5 所示, 该访存调 度装置包括, 计数器500, 调度周期寄存器510, 仲裁器520, 自适应模块530和总线状态监视 器 540 ; 0110 其中, 计数器 500, 用于记录当前开启的窗口的已开启时间 ; 0111 调度周期寄存器 510, 用于存储预设的调度周期 ; 0112 仲裁器 520, 用于执行如上述。
47、访存调度方法实施例一的访存调度方法 ; 0113 自适应模块 530 和总线状态监视器 540, 用于执行如上述访存调度方法实施例二 的访存调度方法。 0114 本实施例提供的访存调度装置, 根据各访存模块对应的各访存窗口的状态信息, 为各访存模块确定访存窗口的在调度周期内的启闭时间, 仅对访存窗口开启的访存请求进 行访存调度, 且根据各访存窗口的调整信息, 调整各访存窗口的长度, 提高了访存总线的带 宽利用率, 减小了访存压力增大时, 访存带宽发生冲突的概率, 提高了访存性能和访存服务 质量。 0115 图 6 为本发明提供的访存调度系统实施例结构示意图。如图 6 所示, 该访存调度 系统,。
48、 包括 : 访存模块600访存模块60n, 和访存调度装置610, 其中, 访存调度装置包括如 图 6 所示的, 由单元 300 单元 340 构成的仲裁模块 611, 由单元 400 单元 410 构成的自 适应模块 612。 0116 具体的, 仲裁模块 611, 执行上述访存调度方法实施例一提供的访存调度步骤, 自 适应模块 612, 执行上述访存调度方法实施例二提供的访存调度步骤。此处不再赘述。 0117 进一步地, 该系统还包括访存调度器 620, 与访存调度装置 610 连接, 用于接收所 述访存调度装置 610 发送的访存请求, 并对收到的访存请求进行访存调度。 0118 本实施。
49、例中的, 访存调度器 620 可为通常使用的访存调度器, 例如可以为轮转式 访存调度器, 也可以是其它方式的调度器, 本实施例对此不做限定。 0119 本实施例提供的访存调度系统, 访存调度装置根据各访存模块对应的各访存窗口 的状态信息, 为各访存模块确定访存窗口的在调度周期内的启闭时间, 仅对访存窗口开启 的访存请求进行访存调度, 且根据各访存窗口的调整信息, 调整各访存窗口的长度, 提高了 访存总线的带宽利用率, 减小了访存压力增大时, 访存带宽发生冲突的概率, 提高了访存性 能和访存服务质量。 0120 本领域普通技术人员可以理解 : 实现上述各方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程 序在执行时, 执行包括上述。