CN111198715A - 一种面向乱序高性能核的内存控制器命令调度方法及装置 - Google Patents

一种面向乱序高性能核的内存控制器命令调度方法及装置 Download PDF

Info

Publication number
CN111198715A
CN111198715A CN201911370661.2A CN201911370661A CN111198715A CN 111198715 A CN111198715 A CN 111198715A CN 201911370661 A CN201911370661 A CN 201911370661A CN 111198715 A CN111198715 A CN 111198715A
Authority
CN
China
Prior art keywords
access request
address
memory
request queue
bank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911370661.2A
Other languages
English (en)
Inventor
陈伟杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hexin Interconnect Technology Qingdao Co ltd
Original Assignee
Hexin Interconnect Technology Qingdao Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hexin Interconnect Technology Qingdao Co ltd filed Critical Hexin Interconnect Technology Qingdao Co ltd
Priority to CN201911370661.2A priority Critical patent/CN111198715A/zh
Publication of CN111198715A publication Critical patent/CN111198715A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种面向乱序高性能核的内存控制器命令调度方法及装置,该方法包括:片上系统批量获取若干个访存请求操作;判断所述访存请求操作中相邻访存请求的Bank Group是否相同;如果相同,则在Bank Group相同的相邻访存请求之间插入Bank Group不同的访存请求操作,直到所述访存请求操作中任意相邻访存请求信息的Bank Group均不相同,从而确定访存请求操作的重排序结果;将所述访存请求操作的重排序结果进行行列地址译码,以将地址序列转化为内存颗粒可识别的三维地址信息和片选信号,从而确定待发送访存请求队列;根据优先级高低,控制所述待发送访存请求队列中的访存请求读写操作,将相邻项的访存请求,调度为对不同Bank Group的访存操作,减少时序延迟,提升系统吞吐率。

Description

一种面向乱序高性能核的内存控制器命令调度方法及装置
技术领域
本发明涉及计算机处理器技术领域,具体涉及一种面向乱序高性能核的内 存控制器命令调度方法及装置。
背景技术
乱序高性能多核处理器的内存控制器往往是双通道内存系统,一般包含两 个内存控制器,每个内存控制器独立处理各自的命令和数据,分别连接多个内 存Rank。访存系统中的内存Rank越多,访存系统中的页命中率和Bank级 并行度越大,同时访存容量也增加。内存控制器的数目越多,整个访存系统的 命令处理能力必然越高,同时数据流的并行度也大大增加,从而缩短访存延迟。
高性能微处理器的内存控制器主要由五个单元构成,如图1所示:
1、流缓存单元。流缓存单元的主要作用就是进行预取操作,用于监测已 执行的读访存请求信息,判断是否存在数据流的读取操作行为,然后以Cache 行作为单位对数据流的读操作行为进行预取操作,并存储预取到的读数据流。
2、访存调度单元。用于对访存请求操作进行重排序,并将一维的系统地 址信息转换为DDR颗粒可识别的地址。
3、时序控制单元。用于将访存请求的相关操作按照时序规范进行处理之 后,将具有正确时序的访存请求及其数据发送给物理控制单元。相应地,从物 理控制单元读取数据。
4、物理控制单元。用于确保发送给内存芯片的命令和数据的正确性,同 时也将从内存颗粒读取到的数据发送给时序控制单元。
5、配置控制单元。DDR4 SDRAM的时序参数多数是可调的,通过可配 置的参数来保证内存控制器的兼容性。
访存调度单元是影响内存控制器性能的核心部件。该单元将一维系统地址 信息翻译为DDR4 SDRAM的三维地址,并将访存请求按照调度策略进行重 排序(Reorder)操作,以达到行命中率和Bank级并行度的最大化。同时, 它还需要合理地处理读写访存请求的分配,以减少读写切换带来的带宽损失。
如图2所示,访存命令在访存调度单元中经过以下三个步骤来完成重排 序:
1、进行地址映射处理,获得内存颗粒可识别的地址信息。
2、根据读写访存请求操作的类型,将访存请求分别放入各自的命令队列 中,在队列中进行重排序。
3、对访存请求操作进行读写裁决,并发送给时序控制单元。
除了传递访存请求命令和相应数据之外,访存调度单元还需要对访存请求 发出者进行请求反馈。只有接收到对应的反馈信息,处理器核才会认为该访存 请求已经完成。对写访存请求而言,是向访存请求者发出写响应信息。读访存 请求则是将读数据与其命令信息匹配后,一并发送给访存请求发出者。
一般需要采用合理的访存调度策略,才能访存性能达到最佳状态。访存调 度策略往往采用FR-FCFS(First-Ready First-Come-First-Serve,先来先服务) 的准则来设计访存命令队列,该策略虽然有一定程度的性能提升,但尚未充分 挖掘访存调度的潜力,其不足主要在于:
1、页局部性。没有合理进行地址映射,当应用程序访问连续的地址空间 时,很容易造成行冲突的情况,当访存命令的队列项数受到限制时,调度的作 用将大打折扣。
2、读写切换。采用一个队列来存放读写访存请求,不能非常精密地进行 读写切换。在行冲突与读写切换之间,两者的优先级必须灵活地进行转换,这 是一个非常大的挑战。
3、物理布局布线。访存调度队列中缓存的命令项数越多,整个内存控制 器的重排序的作用域越大,调度的效果越好。但是,过多的命令项数会加大物 理设计的难度,制约整个内存控制器的数据传输速率。
发明内容
为此,本发明提供一种面向乱序高性能核的内存控制器命令调度方法及装 置,解决上述的一个或多个技术问题。
为了实现上述目的,本发明提供如下技术方案:
第一方面,本发明提供一种面向乱序高性能核的内存控制器命令调度方 法,包括:
系统获取若干个访存请求信息;
判断所述访存请求操作中相邻访存请求信息的Bank Group是否相同;若 相同,则在Bank Group相同的相邻访存请求信息之间插入Bank Group不同的 访存请求信息,直到所述访存请求信息中任意相邻访存请求操作的Bank Group 均不相同,从而确定访存请求操作的重排序结果;
将所述访存请求操作的重排序结果进行行列地址译码,将地址信息转化为 内存颗粒可识别的三维地址信息和片选信号,从而确定待发送的访存请求队 列;
按照优先级高低,控制所述待发送访存请求队列中的访存请求进行相应的 读写操作。
优选地,将所述访存请求重排序结果进行行列地址译码,将地址信息转化 为内存颗粒可识别的三维地址信息,得到待发送访存请求队列,包括:
将行地址分割为行地址高位、行地址低位;将列地址分割为列地址高位、 列地址低位;
将所述待发送访存请中的地址按照预设规则翻译为对应的行地址高位、行 地址低位、列地址高位、列地址低位;
将行地址中的部分地址线与Bank地址进行异或,得到发送给内存颗粒 的Bank地址;
按照行地址高位、列地址高位、Bank地址、片选地址、行地址低位、列 地址低位的顺序排序得到待发送访存请求。
优选地,所述按照优先级控制所述待发送访存请求队列中的访存请求进行 相应的读写操作,包括:
将所述待发送访存请求队列分为读访存请求队列、写访存请求队列;
判断所述写访存请求队列中的请求数量与预设阈值的关系,得到判断结 果;
根据所述判断结果,控制所述读访存请求队列、所述写访存请求队列的优 先级顺序。
优选地,所述根据所述判断结果,控制所述读访存请求队列、所述写访存 请求队列的优先级顺序,包括:
如果所述写访存请求队列中的请求数量不大于预设阈值,则将所述读访存 请求队列的优先级设置为高于所述写访存请求队列的优先级;
如果所述写访存请求队列中的请求数量大于预设阈值,则将所述写访存请 求队列的优先级设置为高于所述读访存请求队列的优先级。
第二方面,本发明提供一种面向乱序高性能核的内存控制器命令调度装 置,包括:
访存信息获取模块,用于获取若干个访存请求信息;
重排序模块,用于判断所述访存请求信息中相邻访存请求信息的Bank Group是否相同;如果相同,则在Bank Group相同的相邻访存请求信息之间 插入Bank Group不同的访存请求信息,直到所述访存请求信息中任意相邻的 两个访存请求信息的Bank Group均不相同,从而确定访存请求操作的重排序 结果;
地址翻译模块,用于将所述访存请求重排序结果进行行列地址译码,将地 址信息转化为内存颗粒可识别的三维地址信息和片选信号,从而确定待发送访 存请求队列;
优先级控制模块,用于按照优先级控制所述待发送访存请求队列中的访存 请求进行相应的读写操作。
优选地,所述地址翻译模块包括:
地址分割单元,用于将行地址分割为行地址高位、行地址低位;将列地址 分割为列地址高位、列地址低位;
地址翻译单元,用于将所述待发送访存请中的地址按照预设规则翻译为对 应的行地址高位、行地址低位、列地址高位、列地址低位;
Bank地址处理单元,用于将行地址中的部分地址线与Bank地址进行异 或,从而确定内存颗粒的Bank地址;
地址排序单元,用于按照行地址高位、列地址高位、Bank地址、片选地 址、行地址低位、列地址低位的顺序排序得到待发送访存请求。
优选地,所述优先级控制模块包括:
读写分队单元,用于将所述待发送访存请求队列分为读访存请求队列、写 访存请求队列;
读队列数量判断单元,用于判断所述写访存请求队列中的请求数量与预设 阈值的关系,得到判断结果;
优先级控制单元,用于根据所述判断结果,控制所述读访存请求队列、所 述写访存请求队列的优先级顺序。
优选地,所述优先级控制单元包括:
第一优先级控制子单元,用于如果所述写访存请求队列中的请求数量不大 于预设阈值,则将所述读访存请求队列的优先级设置为高于所述写访存请求队 列的优先级;
第二优先级控制子单元,用于如果所述写访存请求队列中的请求数量大于 预设阈值,则将所述写访存请求队列的优先级设置为高于所述读访存请求队列 的优先级。
第三方面,本发明提供一种面向乱序高性能核的内存控制器命令调度设 备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述第一方面任一种所述面向 乱序高性能核的内存控制器命令调度方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其特征在于,所述计算 机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如 上述第一方面任一种所述面向乱序高性能核的内存控制器命令调度方法的步 骤。
本发明提供一种面向乱序高性能核的内存控制器命令调度方法,包括:系 统获取若干个访存请求信息;判断所述访存请求操作中相邻访存请求信息的 Bank Group是否相同;如果相同,则在Bank Group相同的相邻访存请求操作 之间插入Bank Group不同的访存请求信息,直到所述访存请求操作中任意相 邻的两个访存请求信息的Bank Group都不相同,从而确定访存请求操作的重 排序结果;将所述访存请求重排序结果进行行列地址译码,将地址信息转化为 内存颗粒可识别的三维地址信息和片选信号,从而确定待发送访存请求队列; 按照优先级高低,控制所述待发送访存请求队列中的访存请求进行相应的读写操作,将相邻项的访存请求行为,调度为对不同Bank Group的访存操作,减 少并压缩访存的时序延迟,提高内存控制器的工作效率。
本发明实施例提供的一种面向乱序高性能核的内存控制器命令调度方法 及装置具有相同的上述有益效果,在此不再一一赘述。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对 实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下 面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创 造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内 容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条 件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调 整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明 所揭示的技术内容得能涵盖的范围内。
图1为高性能微处理器的内存控制器的结构图;
图2为内存控制器的访存调度单元的结构图;
图3为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的流程图;
图4为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的DDR4 SDRAM内存颗粒结构图;
图5为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法中相同Bank Group和不同Bank Group的访问时序对比图;
图6为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的Bank Group对读操作的时序影响示意图;
图7为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的基于Bank Group的命令队列重排序实例图;
图8为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的地址译码流程图;
图9为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的行列地址交织的地址翻译图;
图10为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的优先级控制流程图;
图11为本发明实施例提供的一种面向乱序高性能核的内存控制器命令调 度方法的访存调度队列结构图;
图12为本发明实施例提供一种面向乱序高性能核的内存控制器命令调度 装置的组成示意图;
图13为本发明一种具体实施方式提供的面向乱序高性能核的内存控制器 命令调度设备的结构示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由 本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的 实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
请参考图3、图4、图5、图6、图7。其中,图3为本发明实施例提供的 一种面向乱序高性能核的内存控制器命令调度方法的流程图;图4为本发明实 施例提供的一种面向乱序高性能核的内存控制器命令调度方法的DDR4 SDRAM内存颗粒结构图;图5为本发明实施例提供的一种面向乱序高性能核 的内存控制器命令调度方法中相同Bank Group和不同BankGroup的访问时序 对比图;图6为本发明实施例提供的一种面向乱序高性能核的内存控制器命令 调度方法的Bank Group对读操作的时序影响示意图;图7为本发明实施例提 供的一种面向乱序高性能核的内存控制器命令调度方法的基于Bank Group 的命令队列重排序实例图。
在本发明一种具体实施方式中,本发明实施例提供一种面向乱序高性能核 的内存控制器命令调度方法,包括:
步骤S11:系统获取若干个访存请求信息;
步骤S12:判断所述访存请求操作中相邻访存请求信息的Bank Group是 否相同;如果相同,则在Bank Group相同的相邻访存请求操作之间插入Bank Group不同的访存请求信息,直到所述访存请求信息中任意相邻访存请求信息 的Bank Group均不相同,从而确定访存请求操作的重排序结果;
步骤S13:将所述访存请求重排序结果进行行列地址译码,将地址信息转 化为内存颗粒可识别的三维地址信息和片选信号,从而确定待发送访存请求队 列;
步骤S14:按照优先级控制所述待发送访存请求队列中的访存请求进行相 应的读写操作。
本发明实施例,以DDR4 SDRAM为例进行说明,DDR4 SDRAM采用预 取机制来提升性能,数据预取有利于DRAM的数据传输速率提高。此外, Bank Group可独立地对数据进行读写操作,所以若干个Bank Group相当于可 以并行操作,数据吞吐量有比较大的提升。另外,不同Bank Group之间读写 操作的延迟也较小。因此,访存调度策略需要考虑到Bank Group的特性。
体分组结构通过保证不同组之间的独立性,来提高数据传输的并行度。该 结构不仅影响内存芯片结构,也影响整个访存系统的时序规范。图5是相同 Bank组的访问和不同Bank组的访问时序上的区别。同一个Bank Group的 不同Bank之间的连续访存操作,需要的延迟比访问不同Bank Group要长。 因此,在DDR4 SDRAM存储系统中,访存调度不光要考虑页局部性、Bank级 命中和读写切换率,还需要高效地利用BankGroup结构特性。
图6是以读访存操作为例的时序的对比图,其中tCCD_S/L分别表示对不同 BankGroup的读操作和相同Bank Group之间的读操作延迟。访存系统不断 地访问同一个BankGroup,造成的延迟将远大于在不同Bank Group中切换的 访存行为,会对访存系统的性能带来负面影响。
本发明实施例针对DDR4 SDRAM的体分组结构,采用有效地重排序方 法,能够巧妙地将Bank Group带来的延迟最小化。
由于相同BankGroup之间的访存延迟相对较长,本发明采用BankGroup 交织的访存调度策略。具体如图7所示,原有的访存调度策略通常是图7左侧 所示的命令排列。经过BankGroup交织排序后,如图7右侧,将相邻项之间 的访存请求调度为对不同BankGroup的访存操作,使得所有的时序延迟取较 小值,访存延迟得到压缩。
本发明实施例中,访存请求进行地址映射处理获得内存颗粒可识别地址; 根据读写访存请求的类型,将访存请求分别放入各自的命令队列中,在队列中 按照排队规则进行重排序;对访存请求进行读写裁决,然后发送给时序控制单 元。除了传递访存请求命令和相应数据之外,访存调度单元还需要对访存请求 发出者进行请求反馈。只有接收到对应的反馈信息,处理器核才会认为该访存 请求已经完成。对写访存请求而言,是向访存请求者发出写响应信息。读访存 请求则是将读数据与其命令信息匹配后,一并发送给访存请求发出者。
请参考图8、图9,图8为本发明实施例提供的一种面向乱序高性能核的 内存控制器命令调度方法的地址译码流程图;图9为本发明实施例提供的一种 面向乱序高性能核的内存控制器命令调度方法的行列地址交织的地址翻译示 意图。
进一步地,为了将所述访存请求重排序结果进行行列地址译码,将地址信 息转化为内存颗粒可识别的三维地址信息,得到待发送访存请求队列,可以进 行以下步骤:
步骤S21:将行地址分割为行地址高位、行地址低位;将列地址分割为列 地址高位、列地址低位;
步骤S22:将所述待发送访存请中的地址按照预设规则翻译为对应的行地 址高位、行地址低位、列地址高位、列地址低位;
步骤S23:将行地址中的部分位与Bank地址进行异或,得到发送给内存 颗粒的Bank地址;
步骤S24:按照行地址高位、列地址高位、Bank地址、片选地址、行地 址低位、列地址低位的顺序排序得到待发送访存请求。
访存调度单元需要将一维地址信息映射为DDR4 SDRAM可识别的三维 地址信息,地址映射方式决定了体、行以及列地址的内容。每个内存控制器中 都包含多个Rank,Rank中并联了多个内存颗粒,实现数据访问的并行性, 加大了数据宽度。多个Bank组成的Rank结构,增加了Bank级并行度。片 选信号用来选通对应的Rank。综上可知,从访存调度单元传递到时序控制单 元的地址信息包含了4个因素:片选信号、体地址、行地址、列地址。
请参考图10、图11,图10为本发明实施例提供的一种面向乱序高性能核 的内存控制器命令调度方法的优先级控制流程图;图11为本发明实施例提供 的一种面向乱序高性能核的内存控制器命令调度方法的访存调度队列结构图。
优选地,所述按照优先级控制所述待发送访存请求队列中的访存请求进行 相应的读写操作,包括:
步骤S31:将所述待发送访存请求队列分为读访存请求队列、写访存请求 队列;
步骤S32:判断所述写访存请求队列中的请求数量与预设数量的关系,得 到判断结果;
步骤S33:根据所述判断结果,控制所述读访存请求队列、所述写访存请 求队列的优先级顺序。
本发明实施例中,访存调度策略通过将访存命令按照不同Bank来分组, 既减少行冲突,也提高Bank级并行度。但是,不能减少读写切换所带来的 带宽损失。该方案内存控制器摒弃了将所有访存请求存放在一个命令队列中进 行调度的方式,而是将读写访存请求分别放置在两个队列中,同时增加读写仲 裁单元对访存请求进行读写切换。该设计在保证页局部性和Bank级并行度 的基础上,减小了访存的读写切换率。另一方面,在访存请求中,读写行为各 有特点,两者的访存路径具有较大差异。读、写两个访存调度队列分别根据其访存行为的特点来设计,能够保证内存控制器的高性能。
访存调度策略中,读访存请求都具有较高的优先级,这一做法主要是为了 弥补读请求路径长对访存性能的影响。这种处理方式降低了设计的复杂度,却 不能减少读写切换行为,也不会提升访存性能。采用优先级可变的读写切换策 略,内存控制器可以根据读写命令队列中的访存请求信息灵活进行读写请求切 换,最大程度地减少读写切换带来的带宽损失。
如果所述写访存请求队列中的请求数量不大于预设数量,则将所述读访存 请求队列的优先级设置为高于所述写访存请求队列的优先级;如果所述写访存 请求队列中的请求数量大于预设数量,则将所述写访存请求队列的优先级设置 为高于所述读访存请求队列的优先级。
请参考图12,图12为本发明实施例提供一种面向乱序高性能核的内存控 制器命令调度装置的组成示意图。
本发明实施例提供一种面向乱序高性能核的内存控制器命令调度装置 1200,包括:
访存信息获取模块1210,用于获取若干个访存请求信息;
重排序模块1220,用于判断所述访存请求操作中相邻访存请求信息的 BankGroup是否相同;如果相同,则在Bank Group相同的相邻访存请求信息 之间插入BankGroup不同的访存请求信息,直到所述访存请求信息中任意相 邻的两个访存请求信息的Bank Group均不相同,从而确定访存请求操作的重 排序结果;
地址翻译模块1230,用于将所述访存请求重排序结果进行行列地址译码, 将地址信息转化为内存颗粒可识别的三维地址信息和片选信号,从而确定待发 送访存请求队列;
优先级控制模块1240,用于按照优先级高低,控制所述待发送访存请求 队列中的访存请求进行相应的读写操作。
优选地,所述地址翻译模块包括:
地址分割单元,用于将行地址分割为行地址高位、行地址低位;将列地址 分割为列地址高位、列地址低位;
地址翻译单元,用于将所述待发送访存请中的地址按照预设规则翻译为对 应的行地址高位、行地址低位、列地址高位、列地址低位;
Bank地址处理单元,用于将行地址中的部分地址线与Bank地址进行异 或,从而确定内存颗粒的Bank地址;
地址排序单元,用于按照行地址高位、列地址高位、Bank地址、片选地 址、行地址低位、列地址低位的顺序排序得到待发送访存请求。
优选地,所述优先级控制模块包括:
读写分队单元,用于将所述待发送访存请求队列分为读访存请求队列、写 访存请求队列;
读队列数量判断单元,用于判断所述写访存请求队列中的请求数量与预设 阈值的关系,得到判断结果;
优先级控制单元,用于根据所述判断结果,控制所述读访存请求队列、所 述写访存请求队列的优先级顺序。
优选地,所述优先级控制单元包括:
第一优先级控制子单元,用于如果所述写访存请求队列中的请求数量不大 于预设阈值,则将所述读访存请求队列的优先级设置为高于所述写访存请求队 列的优先级;
第二优先级控制子单元,用于如果所述写访存请求队列中的请求数量大于 预设阈值,则将所述写访存请求队列的优先级设置为高于所述读访存请求队列 的优先级。
请参考图13,图13为本发明一种具体实施方式提供的面向乱序高性能核的 内存控制器命令调度设备的结构示意图。
本发明实施例提供一种面向乱序高性能核的内存控制器命令调度设备 1300,包括:
存储器1310,用于存储计算机程序;
处理器1320,用于执行所述计算机程序时实现如上述任一种实施例所述的 面向乱序高性能核的内存控制器命令调度方法的步骤。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上 存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种实施例 所述的面向乱序高性能核的内存控制器命令调度方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或 计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或 结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中 包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储 器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产 品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入 式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算 机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一 个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中 的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个 流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使 得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处 理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个 流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输 出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储 器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM) 或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任 何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序 的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其 他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读 存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁 磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算 设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒 体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非 排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包 括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、 方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括 一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中 还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人 员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的 任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种面向乱序高性能核的内存控制器命令调度方法,其特征在于,包括:
片上系统批量获取若干个访存请求信息;
判断所述访存请求操作中相邻的两个访存请求信息的Bank Group是否相同;若相同,则在Bank Group相同的相邻访存请求操作之间插入Bank Group不同的访存请求信息,直到所述访存请求操作中任意相邻的两个访存请求信息的Bank Group均不相同,从而确定访存请求操作的重排序结果;
将所述访存请求操作的重排序结果进行行列地址译码,以将系统地址信息转化为内存颗粒可识别的三维地址信息和片选信号,从而确定待发送访存请求队列;
按优先级高低控制所述待发送访存请求队列中的访存请求,进行相应的读写操作。
2.根据权利要求1所述的内存控制器命令调度方法,其特征在于,
将所述访存请求操作的重排序结果进行行列地址译码,将系统地址信息转化为内存颗粒可识别的三维地址信息,从而确定待发送访存请求队列,包括:
将行地址分割为行地址高位、行地址低位;将列地址分割为列地址高位、列地址低位;
将所述待发送访存操作中的地址按照预设规则翻译为对应的行地址高位、行地址低位、列地址高位、列地址低位;
将行地址中的部分地址线与Bank地址进行异或,从而确定内存颗粒的Bank地址;
按照行地址高位、列地址高位、Bank地址、片选地址、行地址低位、列地址低位,重排序得到待发送访存请求。
3.根据权利要求1所述的内存控制器命令调度方法,其特征在于,
按照优先级高低控制所述待发送访存请求队列中的访存请求操作,进行相应的读写操作,包括:
将所述待发送访存请求队列分为读访存请求队列、写访存请求队列;
判断所述写访存请求队列中的请求数量与预设数量的关系,得到判断结果;
根据所述判断结果,控制所述读访存请求队列、所述写访存请求队列的优先级顺序。
4.根据权利要求3所述的内存控制器命令调度方法,其特征在于,
所述根据所述判断结果,控制所述读访存请求队列、所述写访存请求队列的优先级顺序,包括:
如果所述写访存请求队列中的请求数量不大于预设阈值,则将所述读访存请求队列的优先级设置为高于所述写访存请求队列的优先级;
如果所述写访存请求队列中的请求数量大于预设阈值,则将所述写访存请求队列的优先级设置为高于所述读访存请求队列的优先级。
5.一种面向乱序高性能核的内存控制器命令调度装置,其特征在于,包括:
访存信息获取模块,用于获取若干个访存请求操作;
重排序模块,用于判断所述访存请求操作中相邻的访存请求信息的Bank Group是否相同;若相同,则在Bank Group相同的相邻访存请求操作之间插入Bank Group不同的访存请求信息,直到所述访存请求操作中任意相邻的两个访存请求信息的Bank Group均不相同,从而确定访存请求操作的重排序结果;
地址翻译模块,用于将所述访存请求操作的重排序结果进行行列地址译码,将地址信息转化为内存颗粒可识别的三维地址信息和片选信号,从而确定待发送访存请求队列;
优先级控制模块,用于按照优先级高低,控制所述待发送访存请求队列中的访存请求进行相应的读写操作。
6.根据权利要求5所述的内存控制器命令调度装置,其特征在于,
所述地址翻译模块包括:
地址分割单元,用于将行地址分割为行地址高位、行地址低位,将列地址分割为列地址高位、列地址低位;
地址翻译单元,用于将所述待发送访存请求操作中的地址按照预设规则翻译为对应的行地址高位、行地址低位、列地址高位、列地址低位;
Bank地址处理单元,用于将行地址中的部分地址线与Bank地址进行异或,从而确定内存颗粒的Bank地址;
地址排序单元,用于按照行地址高位、列地址高位、Bank地址、片选地址、行地址低位、列地址低位的顺序排序得到待发送访存请求。
7.根据权利要求5所述的内存控制器命令调度装置,其特征在于,
所述优先级控制模块包括:
读写分队单元,用于将所述待发送访存请求队列分为读访存请求队列、写访存请求队列;
读队列数量判断单元,用于判断所述写访存请求队列中的请求数量与预设数量的关系,得到判断结果;
优先级控制单元,用于根据所述判断结果,控制所述读访存请求队列、所述写访存请求队列的优先级顺序。
8.根据权利要求7所述的内存控制器命令调度装置,其特征在于,
所述优先级控制单元包括:
第一优先级控制子单元,用于如果所述写访存请求队列中的请求数量不大于预设阈值,则将所述读访存请求队列的优先级设置为高于所述写访存请求队列的优先级;
第二优先级控制子单元,用于如果所述写访存请求队列中的请求数量大于预设阈值,则将所述写访存请求队列的优先级设置为高于所述读访存请求队列的优先级。
9.一种面向乱序高性能核的内存控制器命令调度设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述面向乱序高性能核的内存控制器命令调度方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述面向乱序高性能核的内存控制器命令调度方法的步骤。
CN201911370661.2A 2019-12-26 2019-12-26 一种面向乱序高性能核的内存控制器命令调度方法及装置 Pending CN111198715A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911370661.2A CN111198715A (zh) 2019-12-26 2019-12-26 一种面向乱序高性能核的内存控制器命令调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911370661.2A CN111198715A (zh) 2019-12-26 2019-12-26 一种面向乱序高性能核的内存控制器命令调度方法及装置

Publications (1)

Publication Number Publication Date
CN111198715A true CN111198715A (zh) 2020-05-26

Family

ID=70744388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911370661.2A Pending CN111198715A (zh) 2019-12-26 2019-12-26 一种面向乱序高性能核的内存控制器命令调度方法及装置

Country Status (1)

Country Link
CN (1) CN111198715A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099854A (zh) * 2020-11-10 2020-12-18 北京微核芯科技有限公司 调度乱序队列和判断队列取消项的方法和装置
CN113867682A (zh) * 2021-12-06 2021-12-31 广东省新一代通信与网络创新研究院 一种用于实现浮点数乱序转换的协处理器
CN114036085A (zh) * 2021-09-24 2022-02-11 北京无线电测量研究所 基于ddr4的多任务读写调度方法、计算机设备及存储介质
CN114819124A (zh) * 2022-04-13 2022-07-29 北京交通大学 一种深度神经网络推断处理器的访存性能提升方法
CN116841614A (zh) * 2023-05-29 2023-10-03 进迭时空(杭州)科技有限公司 乱序访存机制下的顺序向量调度方法
US11829768B2 (en) 2020-11-10 2023-11-28 Beijing Vcore Technology Co., Ltd. Method for scheduling out-of-order queue and electronic device items

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639817A (zh) * 2009-03-13 2010-02-03 青岛海信信芯科技有限公司 一种存储器的控制方法、存储器控制器和存储器控制系统
CN101923522A (zh) * 2009-06-11 2010-12-22 中兴通讯股份有限公司 存储控制器及数据操作命令的处理方法
US20110179200A1 (en) * 2010-01-18 2011-07-21 Xelerated Ab Access buffer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639817A (zh) * 2009-03-13 2010-02-03 青岛海信信芯科技有限公司 一种存储器的控制方法、存储器控制器和存储器控制系统
CN101923522A (zh) * 2009-06-11 2010-12-22 中兴通讯股份有限公司 存储控制器及数据操作命令的处理方法
US20110179200A1 (en) * 2010-01-18 2011-07-21 Xelerated Ab Access buffer

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴晓非等: "《微型计算机原理及接口技术》", 31 August 2015 *
夏军等: "一种高性能DDR2控制器的设计与实现", 《计算机工程与科学》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099854A (zh) * 2020-11-10 2020-12-18 北京微核芯科技有限公司 调度乱序队列和判断队列取消项的方法和装置
WO2022100054A1 (zh) * 2020-11-10 2022-05-19 北京微核芯科技有限公司 调度乱序队列和判断队列取消项的方法和装置
US11829768B2 (en) 2020-11-10 2023-11-28 Beijing Vcore Technology Co., Ltd. Method for scheduling out-of-order queue and electronic device items
CN114036085A (zh) * 2021-09-24 2022-02-11 北京无线电测量研究所 基于ddr4的多任务读写调度方法、计算机设备及存储介质
CN114036085B (zh) * 2021-09-24 2024-04-12 北京无线电测量研究所 基于ddr4的多任务读写调度方法、计算机设备及存储介质
CN113867682A (zh) * 2021-12-06 2021-12-31 广东省新一代通信与网络创新研究院 一种用于实现浮点数乱序转换的协处理器
CN114819124A (zh) * 2022-04-13 2022-07-29 北京交通大学 一种深度神经网络推断处理器的访存性能提升方法
CN116841614A (zh) * 2023-05-29 2023-10-03 进迭时空(杭州)科技有限公司 乱序访存机制下的顺序向量调度方法
CN116841614B (zh) * 2023-05-29 2024-03-15 进迭时空(杭州)科技有限公司 乱序访存机制下的顺序向量调度方法

Similar Documents

Publication Publication Date Title
CN111198715A (zh) 一种面向乱序高性能核的内存控制器命令调度方法及装置
US9690705B1 (en) Systems and methods for processing data sets according to an instructed order
US20150046642A1 (en) Memory command scheduler and memory command scheduling method
US11243694B2 (en) Grouping key value object IOs to improve IO performance for key-value storage devices
US20050091460A1 (en) Method and apparatus for out of order memory scheduling
US20160034406A1 (en) Memory controller and method for controlling a memory device to process access requests issued by at least one master device
KR20200131345A (ko) 판독 우선 순위를 가진 명령 선택 정책
WO2016068986A1 (en) Draining a write queue based on information from a read queue
CN107274926B (zh) 具有自适应预充电策略的dram控制器
CN113518970B (zh) 存储器存取命令的双阈值受控调度
US9098203B1 (en) Multi-input memory command prioritization
US11526306B1 (en) Command scheduling in a memory subsystem according to a selected scheduling ordering
US20240231704A1 (en) Memory sub-system for supporting deterministic and non-deterministic commands based on command expiration and the state of the intermediate command queue
US10275371B2 (en) Method and apparatus for controlling memory operation
KR20190128743A (ko) 프로그래밍 가능한 버퍼 및 캐시 크기의 메모리 프로토콜
US10157123B1 (en) Methods and apparatus for a scheduler for memory access
CN115083451A (zh) 多通道的数据处理方法、装置、设备及存储介质
US20230051103A1 (en) Data migration schedule prediction using machine learning
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
US8938583B1 (en) System and method for concurrently executing data access requests
JP5633562B2 (ja) メモリシステム及びメモリインターフェース装置
CN113190168B (zh) 完成对象输入输出的方法和系统
US9817767B2 (en) Semiconductor apparatus and operating method thereof
CN113076070A (zh) 数据处理方法和装置
KR102254715B1 (ko) 소프트웨어 프로그래밍을 위한 레지스터 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200526