CN106919520B - 访存命令调度方法、装置和系统 - Google Patents

访存命令调度方法、装置和系统 Download PDF

Info

Publication number
CN106919520B
CN106919520B CN201511001603.4A CN201511001603A CN106919520B CN 106919520 B CN106919520 B CN 106919520B CN 201511001603 A CN201511001603 A CN 201511001603A CN 106919520 B CN106919520 B CN 106919520B
Authority
CN
China
Prior art keywords
memory access
access order
order
dispatched
scheduling queue
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.)
Active
Application number
CN201511001603.4A
Other languages
English (en)
Other versions
CN106919520A (zh
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.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp 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 Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201511001603.4A priority Critical patent/CN106919520B/zh
Publication of CN106919520A publication Critical patent/CN106919520A/zh
Application granted granted Critical
Publication of CN106919520B publication Critical patent/CN106919520B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种访存命令调度方法、装置和系统。该方法包括:内存控制器接收访存设备发送的待调度访存命令,待调度访存命令中包含待调度访存命令的原始优先级,内存控制器根据调度队列中已有访存命令之间的关系、待调度访存命令与调度队列中已有访存命令之间的关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中,从而,能够满足不同的访存设备的访存带宽和访存延迟,提高了计算机系统的运行稳定性,减少了计算机系统的内存总线的空闲率,增加了带宽利用率,减少了平均访存延迟。

Description

访存命令调度方法、装置和系统
技术领域
本发明涉及计算机技术,尤其涉及一种访存命令调度方法、装置和系统。
背景技术
计算机体系中的存储系统,多采用双倍速率同步动态随机存储器(Double DataRate Synchronous Dynamic Random Access Memory;简称:DDR SDRAM)设备作为主存(也就是内存),主存与中央处理器(Central Processing Unit;简称:CPU)、显卡和千兆以太网卡等访存设备之间通过内存控制器连接。内存控制器接收来自访存设备的访存命令,然后将其转换成对内存的操作命令,并针对读命令返回数据或针对写命令返回响应给请求来源。所有对内存的操作都需要遵守严格的时序规范,读写内存的操作为满足时序规范带来的延迟制约了整个计算机系统的访存性能。为了匹配多核处理器的高性能需求,内存控制器需要对访存命令进行调度。
内存由多个内存块(Rank)组成,每个内存块由多个内存颗粒并联组成,通过片选(Chip Select;简称:CS)信号选择不同的内存块。每个内存块一般是包含8个体(Bank),每个体包括存储阵列和行缓存。对内存颗粒的任何读写操作都只能在行缓存中进行,因此,需要被读写的存储单元的数据所在的行的数据都会被放到行缓存中。对一个内存单元进行读写操作,包括下面三个步骤:1、页打开:从存储阵列中找到需要进行读操作或者写操作的行,然后将该行中存储的数据写到行缓存中;2、对行缓存中的数据进行读操作或者写操作;3、页预充电:将行缓存中的数据写回存储阵列中的对应的行。如果两个访存命令是对同一个片选信号下的内存块的同一个体的同一行的操作,则称为行命中;如果两个访存命令是对同一个片选信号下的内存块的同一个体的不同行的操作,则称为行冲突。
现有技术中,内存控制器对访存命令进行调度时,主要从已有命令之间的行命中或行冲突关系、待调度命令与已有命令之间的行命中或行冲突关系两方面进行考虑来对待调度命令进行调度。
但是,上述技术中在进行访存命令调度时考虑并不全面,无法保证某些访存设备对访存带宽和访存延时的需求,会导致计算机系统出现无法正常工作的现象。
发明内容
本发明提供一种访存命令调度方法、装置和系统,以提高计算机系统的运行稳定性和减少平均访存延迟。
本发明提供一种访存命令调度方法,包括:
内存控制器接收访存设备发送的待调度访存命令,其中,所述待调度访存命令中包含所述待调度访存命令的原始优先级;
所述内存控制器根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中。
进一步地,所述内存控制器根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中。
进一步地,所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
若调度队列中已有访存命令之间具有行冲突和/或行命中关系,则根据所述行冲突和/或行命中关系确定第一候选位置,根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置;若所述第一候选位置之前的位置与所述优先级候选位置有第一交集,将所述待调度访存命令插入所述第一交集中距离队头最近的位置;若所述第一候选位置之前的位置与所述优先级候选位置没有交集,所述第一候选位置与所述优先级候选位置有第二交集,将所述待调度访存命令插入所述第二交集中距离队头最近的位置;若所述第一候选位置与所述优先级候选位置没有交集,则将所述待调度访存命令插入所述第一候选位置中距离队头最近的位置。
进一步地,所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
若调度队列中已有访存命令之间没有行冲突和/或行命中关系,所述待调度访存命令与所述调度队列中已有访存命令之间具有行冲突和/或行命中关系,则根据所述待调度访存命令与所述调度队列中已有访存命令之间行冲突和/或行命中关系确定第二候选位置,以及根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系确定优先级候选位置,若所述第二候选位置与所述优先级候选位置有第三交集,则将所述待调度访存命令插入所述第三交集中距离队头最近的位置,若所述第二候选位置与所述优先级候选位置没有交集,则将所述待调度访存命令插入第二候选位置中距离队头最近的位置。
进一步地,所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
若调度队列中已有访存命令之间没有行冲突和/或行命中关系,所述待调度访存命令与所述调度队列中已有访存命令之间没有行冲突和/或行命中关系,则根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,将所述待调度访存命令插入距离队头最近的优先级候选位置。
进一步地,所述根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,包括:
所述内存控制器比较所述待调度访存命令的原始优先级和所述调度队列中已有访存命令的当前优先级;
所述内存控制器确定所述调度队列中距离队头最远的已有访存命令的当前优先级大于所述待调度访存命令的原始优先级的已有访存命令之后的所有位置为所述优先级候选位置。
进一步地,所述方法还包括:
根据所述已有访存命令的原始优先级、所述已有访存命令在所述调度队列中的等待时间、预设参数及访存命令优先级的上限获取所述调度队列中已有访存命令的当前优先级。
进一步地,所述根据所述已有访存命令的原始优先级、所述已有访存命令在所述调度队列中的等待时间、预设参数及访存命令优先级的上限获取所述调度队列中已有访存命令的当前优先级,包括:
根据公式获取所述调度队列中已有访存命令的当 前优先级,其中,P0是所述已有访存命令的原始优先级,Td是所述已有访存命令在调度队列 中的等待时间,K是预设参数,表示在等待K个周期后,优先级加1,N是访存命令优先级的上 限,Td/K向下取整。
进一步地,所述内存控制器根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
所述内存控制器确定所述待调度访存命令为读命令或写命令;
若所述内存控制器确定所述待调度访存命令为读命令,内存控制器根据读命令调度队列中已有访存命令之间的关系、读命令待调度访存命令与所述读命令调度队列中已有访存命令之间的关系,以及所述读命令待调度访存命令的原始优先级与所述读命令调度队列中已有的访存命令的当前优先级之间的关系,将所述读命令待调度访存命令插入到所述读命令调度队列中;
若所述内存控制器确定所述待调度访存命令为写命令,内存控制器根据写命令调度队列中已有访存命令之间的关系、写命令待调度访存命令与所述写命令调度队列中已有访存命令之间的关系,以及所述写命令待调度访存命令的原始优先级与所述写命令调度队列中已有的访存命令的当前优先级之间的关系,将所述写命令待调度访存命令插入到所述写命令调度队列中。
本发明还提供一种访存命令调度装置,包括:
接收模块,用于接收访存设备发送的待调度访存命令,其中,所述待调度访存命令中包含所述待调度访存命令的原始优先级;
插入模块,用于根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中。
进一步地,所述插入模块具体用于:
根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中。
进一步地,所述装置还包括:
获取模块,用于根据所述已有访存命令的原始优先级、所述已有访存命令在所述调度队列中的等待时间、预设参数及访存命令优先级的上限获取所述调度队列中已有访存命令的当前优先级。
进一步地,所述插入模块还用于:
确定所述待调度访存命令为读命令或写命令;
若所述待调度访存命令为读命令,根据读命令调度队列中已有访存命令之间的关系、读命令待调度访存命令与所述读命令调度队列中已有访存命令之间的关系,以及所述读命令待调度访存命令的原始优先级与所述读命令调度队列中已有的访存命令的当前优先级之间的关系,将所述读命令待调度访存命令插入到所述读命令调度队列中;
若所述待调度访存命令为写命令,根据写命令调度队列中已有访存命令之间的关系、写命令待调度访存命令与所述写命令调度队列中已有访存命令之间的关系,以及所述写命令待调度访存命令的原始优先级与所述写命令调度队列中已有的访存命令的当前优先级之间的关系,将所述写命令待调度访存命令插入到所述写命令调度队列中。
本发明还提供一种访存命令调度系统,包括访存设备和如上所述的访存命令调度装置。
本发明提供的访存命令调度方法、装置和系统,通过内存控制器接收访存设备发送的待调度访存命令,待调度访存命令中包含待调度访存命令的原始优先级,内存控制器根据调度队列中已有访存命令之间的关系、待调度访存命令与调度队列中已有访存命令之间的关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中,可见,本实施例在进行访存命令调度时,考虑到了访存命令的原始优先级与调度队列中已有访存命令的当前优先级的关系以确定待调度访存命令的插入位置,从而,能够满足不同的访存设备的访存带宽和访存延迟,提高了计算机系统的运行稳定性,减少了计算机系统的内存总线的空闲率,增加了带宽利用率,减少了平均访存延迟。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明访存命令调度方法的应用场景的结构示意图;
图2为本发明访存命令调度方法实施例一的流程示意图;
图3为本发明访存命令调度方法实施例二的流程示意图;
图4为本发明访存命令调度装置实施例的结构示意图;
图5为本发明访存命令调度系统实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明访存命令调度方法的应用场景的结构示意图。如图1所示,本实施例提供的访存命令调度方法可以应用在计算机的存储系统中。在多核计算机体系中,多个处理器101、显卡102、千兆以太网卡103、串行外设接口(Serial Peripheral Interface;简称:SPI)106和硬盘107等访存设备通过内存控制器104访问内存芯片105。处理器101、显卡102及千兆以太网卡103对访存带宽和访存延时的要求高;SPI 106和硬盘107对访存带宽和访存延时的要求相对较低。本实施例提供的访存命令调度方法通过内存控制器执行,以保证不同的访存设备对访存带宽和访存延时的需求,提高计算机系统运行的稳定性。
图2为本发明访存命令调度方法实施例一的流程示意图。如图2所示,本实施例提供的访存命令调度方法包括:
S201:内存控制器接收访存设备发送的待调度访存命令。
其中,待调度访存命令中包含待调度访存命令的原始优先级。
具体地,不同的访存设备对访存带宽和访存延时有着不同的要求,体现在其访存命令需要有不同的优先级。访存命令的原始优先级体现了访存设备的不同要求。例如,显卡需要较高的访存命令优先级,这意味着来自显卡的访存命令到达内存控制器后,内存控制器需要对该访存命令进行快速的响应,以免计算机系统出现黑屏。而硬盘作为外部存储设备,对访存要求较低,其访存命令的响应可以暂缓,因此为了保证显卡等访存要求高的设备的性能,可以给硬盘较低的访存命令优先级。
内存控制器中已经有一个调度队列,调度队列中已有访存命令的排序是已经经过调度的,现内存控制器接收到一个访存设备上发送的访存命令,需要对该访存命令进行调度,确定其需要插入在调度队列中已有访存命令的哪个位置才能提高整个计算机系统的运行效率,将该新接收的访存命令称为待调度访存命令。内存控制器接收待调度访存命令时其携带的优先级为待调度访存命令的原始优先级。本实施例提供的访存命令调度方法中,计算机系统中的访存命令的优先级可以分为N个。N表示优先级的上限。待调度访存命令的原始优先级可以由发起该待调度访存命令的访存设备根据自身对访存带宽和访存延时的需求设置在待调度访存命令中,也可以是由CPU分配给各个访存设备的,访存设备在发起访存命令时将原始优先级携带在待调度访存命令中。举例来说,假设N为5,由于硬盘对访存性能要求较低,CPU分配给硬盘发起的访存命令的原始优先级可以为1;显卡对访存性能要求较高,CPU分配给显卡发起的访存命令的原始优先级可以为4。
S202:内存控制器根据调度队列中已有访存命令之间的关系、待调度访存命令与调度队列中已有访存命令之间的关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中。
具体地,需要说明的是,调度队列中已有访存命令的当前优先级指的是已有访存命令在调度队列中等待一段时间后、当内存控制器接收到待调度访存命令时的实际的优先级。在一种实现方式中,可以根据已有访存命令的原始优先级、已有访存命令在调度队列中的等待时间、预设参数及访存命令的优先级的上限获取调度队列中已有访存命令的当前优先级。
在一种实现方式中,内存控制器可以根据调度队列中已有访存命令之间的第一关系、待调度访存命令与调度队列中已有访存命令之间的第二关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中。其中,第一关系为行冲突和/或行命中关系,所述第二关系为行冲突和/或行命中关系。
需要说明的是,第一关系为行冲突和/或行命中关系意味着:可以只考虑调度队列中已有访存命令之间的行冲突关系,或者,只考虑调度队列中已有访存命令之间的行命中关系,或者,同时考虑调度队列中已有访存命令之间的行冲突和行命中关系。第二关系为行冲突和/或行命中关系意味着:可以只考虑待调度访存命令与调度队列中已有访存命令之间的行冲突关系,或者,只考虑待调度访存命令与调度队列中已有访存命令之间的行命中关系,或者,同时考虑待调度访存命令与调度队列中已有访存命令之间的行冲突和行命中关系。因此,内存控制器在进行调度时,在根据调度队列中已有访存命令之间的第一关系、待调度访存命令与调度队列中已有访存命令之间的第二关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系时,共有9种情况。举例来说,在一种实现方式中,内存控制器可以只根据调度队列中已有访存命令之间的行冲突关系、待调度访存命令与调度队列中已有访存命令之间的行冲突关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中。或者,在另外一种实现方式中,内存控制器可以只根据调度队列中已有访存命令之间的行命中关系、待调度访存命令与调度队列中已有访存命令之间的行冲突关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中。
根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到当前优先级比它大的已有访存命令和当前优先级比它小的已有访存命令之间则可以保证待调度访存命令的访问优先级,保证发起待调度访存命令的访存设备的正常运行。调度队列中已有访存命令的当前优先级可以根据其的原始优先级来确定,例如,可以根据其在调度队列中等待的时间和原始优先级来确定。
结合上述三个方面的关系,确定待调度访存命令的插入到调度队列中的位置,相较于只考虑已有命令之间的行命中或行冲突的关系、待调度命令与已有命令之间的行命中或行冲突关系的技术,能保证不同的访存设备对访存带宽和访存延时的需求。
本实施例提供的访存命令调度方法,通过内存控制器接收访存设备发送的待调度访存命令,待调度访存命令中包含待调度访存命令的原始优先级,内存控制器根据调度队列中已有访存命令之间的关系、待调度访存命令与调度队列中已有访存命令之间的关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中,可见,本实施例在进行访存命令调度时,考虑到了访存命令的原始优先级与调度队列中已有访存命令的当前优先级的关系以确定待调度访存命令的插入位置,从而,能够满足不同的访存设备的访存带宽和访存延迟,提高了计算机系统的运行稳定性,减少了计算机系统的内存总线的空闲率,增加了带宽利用率,减少了平均访存延迟。
图3为本发明访存命令调度方法实施例二的流程示意图。如图3所示,本实施例提供的访存命令调度方法在实施例一的基础上,S202具体包括:
S2021:判断调度队列中已有访存命令之间是否具有第一关系。
若调度队列中已有访存命令之间具有第一关系,则执行:
S2022:根据第一关系确定第一候选位置。
具体地,在一种实现方式中,这里的第一关系可以为行冲突关系。可以依次比较调度队列中已有访存命令之间的行冲突关系,例如,可以比较调度队列中相邻的两个已有访存命令,如果这两个已有访存命令存在行冲突关系,则可以将距离队头较远的一个访存命令的位置作为一个第一候选位置。其中,队头指的是调度队列中访存命令从队列中发送出去的位置。当然,也可以采用其他的方式确定第一候选位置,例如,可以依次比较位于队头位置的已有访存命令与其他访存命令的行冲突关系,确定第一候选位置,本实施例对比不做限制。这样得到的第一候选位置是一个位置集合。
举例来说,假设访存控制器的调度队列中已有访存命令(1,2,3,4,5)5个命令,根据第一关系得到第一候选位置为(2,3,4),第一候选位置中2表示1和2之间可以插入待调度访存命令,3表示2和3之间可以插入待调度访存命令,4表示3和4之间可以插入待调度访存命令。
S2023:根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置。
在一种具体的实现方式中,可以根据公式获取调度 队列中已有访存命令的当前优先级,其中,P0是已有访存命令的原始优先级,Td是已有访存 命令在调度队列中的等待时间,K是预设参数,表示在等待K个周期后,优先级加1,N是访存 命令优先级的上限。这样,调度队列中已有访存命令是处于动态优先级的状态,即其优先级 是随着时间动态更新的。需要说明的是,Td/K向下取整,以使访存命令的当前优先级为整 数,举例来说,当Td/K=3.5时,取Td/K为3。
在确定优先级候选位置的一种具体的实现方式中,内存控制器可以比较待调度访存命令的原始优先级和调度队列中已有访存命令的当前优先级。确定调度队列中距离队头最远的已有访存命令的当前优先级大于待调度访存命令的原始优先级的已有访存命令之后的所有位置为优先级候选位置。举例来说,假设内存控制器中可以容纳5个访存命令,现有的内存控制器的调度队列中已有4个命令(1,2,3,4),其中1为队头位置,1、2、3和4表示命令的位置,为表述方便,现以命令的位置表示命令本身。1命令的当前优先级为4,2命令的当前优先级为3,3命令的当前优先级为1,4命令的当前优先级为1,现有第5个命令需要进行队列中,其初始优先级为3,则距离队头最远的已有访存命令的当前优先级大于待调度访存命令的初始优先级的命令为1命令,则1之后所有的位置为优先级候选位置,其中包括了还没有放置命令的位置5,即优先级候选位置为(2,3,4,5)。
S2024:判断第一候选位置之前的位置与优先级候选位置是否有第一交集。
需要说明的是,第一候选位置之前的位置指的是从第一候选位置距离队头最近的位置之前的位置开始的至队头的位置。判断第一候选位置之前的位置与优先级候选位置是否有第一交集是判断第一候选位置之前的位置与优先级候选位置是否有相同的元素。第一候选位置与优先级候选位置有相同的元素则确定有交集;第一候选位置与优先级候选位置没有相同的元素则没有交集。
若第一候选位置之前的位置与优先级候选位置有第一交集,则执行:
S2025:将待调度访存命令插入第一交集中距离队头最近的位置。
若第一候选位置之前的位置与优先级候选位置没有交集,则执行:
S2026:判断第一候选位置与优先级候选位置是否有第二交集。
若第一候选位置与优先级候选位置有第二交集,则执行:
S2027:将待调度访存命令插入第二交集中距离队头最近的位置。
若第一候选位置与优先级候选位置没有交集,则执行:
S2028:将待调度访存命令插入第一候选位置中距离队头最近的位置。
若调度队列中已有访存命令之间没有第一关系,则执行:
S2029:判断待调度访存命令与调度队列中已有访存命令之间是否具有第二关系。
若待调度访存命令与调度队列中已有访存命令之间具有第二关系,则执行:
S2030:根据第二关系确定第二候选位置。
具体地,在一种实现方式中,这里的第二关系可以为行冲突和行命中关系,根据待调度访存命令与调度队列中已有访存命令之间行冲突和行命中关系,确定第二候选位置,可以依次比较待调度访存命令与调度队列中已有访存命令的行冲突和行命中关系,确定第二候选位置。
举例来说,假设访存控制器的调度队列中已有访存命令(1,2,3,4,5)5个命令,根据第二关系得到第二候选位置为(3,4),第二候选位置中3表示2和3之间可以插入待调度访存命令,4表示3和4之间可以插入待调度访存命令。
S2031:根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置。
本步骤与S2023的实现原理类似,此处不再赘述。
S2032:判断第二候选位置与优先级候选位置是否有第三交集。
若第二候选位置与优先级候选位置有第三交集,则执行:
S2033:将待调度访存命令插入第三交集中距离队头最近的位置。
若第二候选位置与优先级候选位置没有交集,则执行:
S2034:将待调度访存命令插入第二候选位置中距离队头最近的位置。
若调度队列中已有访存命令之间没有第一关系,待调度访存命令与调度队列中已有访存命令之间没有第二关系,则执行:
S2035:根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置。
本步骤与S2023的实现原理类似,此处不再赘述。
S2036:将待调度访存命令插入距离队头最近的优先级候选位置。
需要说明的是,在一种实现方式中S202具体包括:
内存控制器确定待调度访存命令为读命令或写命令。
若内存控制器确定待调度访存命令为读命令,内存控制器根据读命令调度队列中已有访存命令之间的关系、读命令待调度访存命令与调度队列中已有访存命令之间的关系,以及读命令待调度访存命令的原始优先级与读命令调度队列中已有的访存命令的当前优先级之间的关系,将读命令待调度访存命令插入到读命令调度队列中。
若内存控制器确定待调度访存命令为写命令,内存控制器根据写命令调度队列中已有访存命令之间的关系、写命令待调度访存命令与写命令调度队列中已有访存命令之间的关系,以及写命令待调度访存命令的原始优先级与写命令调度队列中已有的访存命令的当前优先级之间的关系,将写命令待调度访存命令插入到写命令调度队列中。此实现方式减少了读写切换率,进一步增加了带宽利用率。
本实施例提供的访存命令调度方法,通过判断调度队列中已有访存命令之间是否具有第一关系,如果有,则根据第一关系确定第一候选位置,根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,判断第一候选位置之前的位置与优先级候选位置是否有第一交集,如果有交集,将待调度访存命令插入第一交集中距离队头最近的位置,如没有交集,判断第一候选位置与优先级候选位置是否有第二交集,如果有交集,将待调度访存命令插入第二交集中距离队头最近的位置,如没有交集,将待调度访存命令插入到第一候选位置中距离队头最近的位置,如果调度队列中已有访存命令之间没有第一关系,则判断待调度访存命令与调度队列中已有访存命令之间是否具有第二关系,如果有,则根据待调度访存命令与调度队列中已有访存命令之间的第二关系确定第二候选位置,根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,判断第二候选位置与优先级候选位置是否有第三交集,如有交集,则将待调度访存命令插入第三交集中距离队头最近的位置,如第二候选位置与优先级候选位置没有交集,则将待调度访存命令插入距离队头最近的第二候选位置,如果调度队列中已有访存命令之间没有第一关系,待调度访存命令与调度队列中已有访存命令之间没有第二关系,则根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,将待调度访存命令插入距离队头最近的优先级候选位置,调度队列中已有访存命令的当前优先级处于动态更新状态,在考虑到调度队列中已有访存命令的第一关系、待调度访存命令与调度队列中已有访存命令的第二关系之外,还考虑到待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,通过牺牲对访存命令优先级要求不高的访存设备的访存请求的性能,最大化对访存命令优先级要求比较高的访存设备的访存请求的性能,从而,减少了内存总线的空闲率,增加带宽利用率,减少了计算机系统的平均访存延迟。
图4为本发明访存命令调度装置实施例的结构示意图。如图4所示,本实施例提供的访存命令调度装置包括:
接收模块401,用于接收访存设备发送的待调度访存命令。
其中,待调度访存命令中包含待调度访存命令的原始优先级。
插入模块402,用于根据调度队列中已有访存命令之间的关系、待调度访存命令与调度队列中已有访存命令之间的关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中。
插入模块402用于根据调度队列中已有访存命令之间的第一关系、待调度访存命令与调度队列中已有访存命令之间的第二关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中。其中,第一关系为行冲突和/或行命中关系,第二关系为行冲突和/或行命中关系。
插入模块402具体用于:若调度队列中已有访存命令之间具有第一关系,则根据第一关系确定第一候选位置,根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置;若第一候选位置之前的位置与优先级候选位置有第一交集,将待调度访存命令插入第一交集中距离队头最近的位置;若第一候选位置之前的位置与优先级候选位置没有交集,第一候选位置与优先级候选位置有第二交集,将待调度访存命令插入第二交集中距离队头最近的位置;若第一候选位置与优先级候选位置没有交集,则将待调度访存命令插入第一候选位置中距离队头最近的位置。
若调度队列中已有访存命令之间没有第一关系,待调度访存命令与调度队列中已有访存命令之间具有第二关系,则根据待调度访存命令与调度队列中已有访存命令之间第二关系确定第二候选位置,以及根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系确定优先级候选位置,若第二候选位置与优先级候选位置有第三交集,则将待调度访存命令插入第三交集中距离队头最近的位置,若第二候选位置与优先级候选位置没有交集,则将待调度访存命令插入第二候选位置中距离队头最近的位置。
若调度队列中已有访存命令之间没有第一关系,待调度访存命令与调度队列中已有访存命令之间没有第二关系,则根据待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,将待调度访存命令插入距离队头最近的优先级候选位置。
插入模块402还用于:比较待调度访存命令的原始优先级和调度队列中已有访存命令的当前优先级。确定调度队列中距离队头最远的已有访存命令的当前优先级大于待调度访存命令的原始优先级的已有访存命令之后的所有位置为优先级候选位置。
可选的,本实施例提供的访存命令调度装置还包括:获取模块403,用于根据所述 已有访存命令的原始优先级、所述已有访存命令在所述调度队列中的等待时间、预设参数 及访存命令优先级的上限获取所述调度队列中已有访存命令的当前优先级。在一种实现方 式中,获取模块403具体用于根据公式获取调度队列中已有 访存命令的当前优先级,其中,P0是已有访存命令的原始优先级,Td是已有访存命令在调度 队列中的等待时间,K是预设参数,表示在等待K个周期后,优先级加1,N是访存命令优先级 的上限,Td/K向下取整。
本实施例提供的访存命令调度装置可用于执行图2和图3所示方法实施例,其实现原理类似,此处不再赘述。
本实施例提供的访存命令调度装置,通过设置接收模块,用于接收访存设备发送的待调度访存命令,待调度访存命令中包含待调度访存命令的原始优先级,插入模块,用于根据调度队列中已有访存命令之间的关系、待调度访存命令与调度队列中已有访存命令之间的关系,以及待调度访存命令的原始优先级与调度队列中已有访存命令的当前优先级之间的关系,将待调度访存命令插入到调度队列中,可见,本实施例提供的访存命令调度装置在进行访存命令调度时,考虑到了访存命令的原始优先级与调度队列中已有访存命令的当前优先级的关系以确定待调度访存命令的插入位置,从而,能够满足不同的访存设备的访存带宽和访存延迟,提高了计算机系统的运行稳定性,减少了计算机系统的内存总线的空闲率,增加了带宽利用率,减少了平均访存延迟。
进一步地,在上述实施例中,插入模块402还用于:确定待调度访存命令为读命令或写命令。若待调度访存命令为读命令,根据读命令调度队列中已有访存命令之间的关系、读命令待调度访存命令与读命令调度队列中已有访存命令之间的关系,以及读命令待调度访存命令的原始优先级与读命令调度队列中已有的访存命令的当前优先级之间的关系,将读命令待调度访存命令插入到读命令调度队列中;若待调度访存命令为写命令,根据写命令调度队列中已有访存命令之间的关系、写命令待调度访存命令与写命令调度队列中已有访存命令之间的关系,以及写命令待调度访存命令的原始优先级与写命令调度队列中已有的访存命令的当前优先级之间的关系,将写命令待调度访存命令插入到写命令调度队列中。减少了读写切换率,增加了带宽利用率。
图5为本发明访存命令调度系统实施例的结构示意图。如图5所示,本实施例提供的访存命令调度系统包括:
访存设备41和如图4所示的访存命令调度装置40。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种访存命令调度方法,其特征在于,包括:
内存控制器接收访存设备发送的待调度访存命令,其中,所述待调度访存命令中包含所述待调度访存命令的原始优先级;
所述内存控制器根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中;
其中,所述方法还包括:
根据所述已有访存命令的原始优先级、所述已有访存命令在所述调度队列中的等待时间、预设参数及访存命令优先级的上限获取所述调度队列中已有访存命令的当前优先级。
2.根据权利要求1所述的方法,其特征在于,所述内存控制器根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中。
3.根据权利要求2所述的方法,其特征在于,所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
若调度队列中已有访存命令之间具有行冲突和/或行命中关系,则根据所述行冲突和/或行命中关系确定第一候选位置,根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置;若所述第一候选位置之前的位置与所述优先级候选位置有第一交集,将所述待调度访存命令插入所述第一交集中距离队头最近的位置;若所述第一候选位置之前的位置与所述优先级候选位置没有交集,所述第一候选位置与所述优先级候选位置有第二交集,将所述待调度访存命令插入所述第二交集中距离队头最近的位置;若所述第一候选位置与所述优先级候选位置没有交集,则将所述待调度访存命令插入所述第一候选位置中距离队头最近的位置。
4.根据权利要求2所述的方法,其特征在于,所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
若调度队列中已有访存命令之间没有行冲突和/或行命中关系,所述待调度访存命令与所述调度队列中已有访存命令之间具有行冲突和/或行命中关系,则根据所述待调度访存命令与所述调度队列中已有访存命令之间行冲突和/或行命中确定第二候选位置,以及根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系确定优先级候选位置,若所述第二候选位置与所述优先级候选位置有第三交集,则将所述待调度访存命令插入所述第三交集中距离队头最近的位置,若所述第二候选位置与所述优先级候选位置没有交集,则将所述待调度访存命令插入第二候选位置中距离队头最近的位置。
5.根据权利要求2所述的方法,其特征在于,所述内存控制器根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
若调度队列中已有访存命令之间没有行冲突和/或行命中关系,所述待调度访存命令与所述调度队列中已有访存命令之间没有行冲突和/或行命中关系,则根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,将所述待调度访存命令插入距离队头最近的优先级候选位置。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述根据所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,确定优先级候选位置,包括:
所述内存控制器比较所述待调度访存命令的原始优先级和所述调度队列中已有访存命令的当前优先级;
所述内存控制器确定所述调度队列中距离队头最远的已有访存命令的当前优先级大于所述待调度访存命令的原始优先级的已有访存命令之后的所有位置为所述优先级候选位置。
7.根据权利要求1所述的方法,其特征在于,所述根据所述已有访存命令的原始优先级、所述已有访存命令在调度队列中的等待时间、预设参数及访存命令优先级的上限获取所述调度队列中已有访存命令的当前优先级,包括:
根据公式获取所述调度队列中已有访存命令的当前优先级,其中,P0是所述已有访存命令的原始优先级,Td是所述已有访存命令在调度队列中的等待时间,K是预设参数,表示在等待K个周期后,优先级加1,N是访存命令优先级的上限,Td/K向下取整。
8.根据权利要求1所述的方法,其特征在于,所述内存控制器根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中,包括:
所述内存控制器确定所述待调度访存命令为读命令或写命令;
若所述内存控制器确定所述待调度访存命令为读命令,内存控制器根据读命令调度队列中已有访存命令之间的关系、读命令待调度访存命令与所述读命令调度队列中已有访存命令之间的关系,以及所述读命令待调度访存命令的原始优先级与所述读命令调度队列中已有的访存命令的当前优先级之间的关系,将所述读命令待调度访存命令插入到所述读命令调度队列中;
若所述内存控制器确定所述待调度访存命令为写命令,内存控制器根据写命令调度队列中已有访存命令之间的关系、写命令待调度访存命令与所述写命令调度队列中已有访存命令之间的关系,以及所述写命令待调度访存命令的原始优先级与所述写命令调度队列中已有的访存命令的当前优先级之间的关系,将所述写命令待调度访存命令插入到所述写命令调度队列中。
9.一种访存命令调度装置,其特征在于,包括:
接收模块,用于接收访存设备发送的待调度访存命令,其中,所述待调度访存命令中包含所述待调度访存命令的原始优先级;
插入模块,用于根据调度队列中已有访存命令之间的关系、所述待调度访存命令与所述调度队列中已有访存命令之间的关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中;
其中,所述装置还包括:
获取模块,用于根据所述已有访存命令的原始优先级、所述已有访存命令在所述调度队列中的等待时间、预设参数及访存命令优先级的上限获取所述调度队列中已有访存命令的当前优先级。
10.根据权利要求9所述的装置,其特征在于,所述插入模块具体用于:
根据调度队列中已有访存命令之间的行冲突和/或行命中关系、所述待调度访存命令与所述调度队列中已有访存命令之间的行冲突和/或行命中关系,以及所述待调度访存命令的原始优先级与所述调度队列中已有访存命令的当前优先级之间的关系,将所述待调度访存命令插入到所述调度队列中。
11.根据权利要求9所述的装置,其特征在于,所述插入模块还用于:
确定所述待调度访存命令为读命令或写命令;
若所述待调度访存命令为读命令,根据读命令调度队列中已有访存命令之间的关系、读命令待调度访存命令与所述读命令调度队列中已有访存命令之间的关系,以及所述读命令待调度访存命令的原始优先级与所述读命令调度队列中已有的访存命令的当前优先级之间的关系,将所述读命令待调度访存命令插入到所述读命令调度队列中;
若所述待调度访存命令为写命令,根据写命令调度队列中已有访存命令之间的关系、写命令待调度访存命令与所述写命令调度队列中已有访存命令之间的关系,以及所述写命令待调度访存命令的原始优先级与所述写命令调度队列中已有的访存命令的当前优先级之间的关系,将所述写命令待调度访存命令插入到所述写命令调度队列中。
12.一种访存命令调度系统,其特征在于,包括访存设备和如权利要求9-11任一项所述的访存命令调度装置。
CN201511001603.4A 2015-12-28 2015-12-28 访存命令调度方法、装置和系统 Active CN106919520B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511001603.4A CN106919520B (zh) 2015-12-28 2015-12-28 访存命令调度方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511001603.4A CN106919520B (zh) 2015-12-28 2015-12-28 访存命令调度方法、装置和系统

Publications (2)

Publication Number Publication Date
CN106919520A CN106919520A (zh) 2017-07-04
CN106919520B true CN106919520B (zh) 2019-11-05

Family

ID=59455348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511001603.4A Active CN106919520B (zh) 2015-12-28 2015-12-28 访存命令调度方法、装置和系统

Country Status (1)

Country Link
CN (1) CN106919520B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901785B (zh) * 2017-12-08 2022-04-05 华为云计算技术有限公司 命令排序方法、降低读时延方法及固态硬盘ssd控制器
CN108335719A (zh) * 2018-02-24 2018-07-27 上海兆芯集成电路有限公司 性能评估装置及性能评估方法
CN108763116B (zh) * 2018-05-21 2021-08-06 南京大学 一种基于贪婪式算法的多通道ddr控制器
CN110806900B (zh) * 2019-04-30 2021-07-09 成都海光微电子技术有限公司 一种访存指令处理方法及处理器
CN116724287A (zh) * 2021-01-25 2023-09-08 华为技术有限公司 一种内存控制方法及内存控制装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409209A (zh) * 2001-09-24 2003-04-09 深圳市中兴通讯股份有限公司上海第二研究所 一种多任务实时操作系统的实现方法
CN1770125A (zh) * 2004-11-04 2006-05-10 华为技术有限公司 一种分配内存的方法
CN101685427A (zh) * 2009-09-02 2010-03-31 北京龙芯中科技术服务中心有限公司 一种根据应用的时间裕量对动态内存调度的装置及方法
CN103810123A (zh) * 2014-02-18 2014-05-21 龙芯中科技术有限公司 内存控制装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1409209A (zh) * 2001-09-24 2003-04-09 深圳市中兴通讯股份有限公司上海第二研究所 一种多任务实时操作系统的实现方法
CN1770125A (zh) * 2004-11-04 2006-05-10 华为技术有限公司 一种分配内存的方法
CN101685427A (zh) * 2009-09-02 2010-03-31 北京龙芯中科技术服务中心有限公司 一种根据应用的时间裕量对动态内存调度的装置及方法
CN103810123A (zh) * 2014-02-18 2014-05-21 龙芯中科技术有限公司 内存控制装置及方法

Also Published As

Publication number Publication date
CN106919520A (zh) 2017-07-04

Similar Documents

Publication Publication Date Title
CN106919520B (zh) 访存命令调度方法、装置和系统
CN111566610B (zh) 命令选择策略
CN101861571B (zh) 用于修改存储器存取次序的系统、设备及方法
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
US10318420B2 (en) Draining a write queue based on information from a read queue
EP3729280B1 (en) Dynamic per-bank and all-bank refresh
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
US9336164B2 (en) Scheduling memory banks based on memory access patterns
US20150046642A1 (en) Memory command scheduler and memory command scheduling method
US9489321B2 (en) Scheduling memory accesses using an efficient row burst value
KR20200131345A (ko) 판독 우선 순위를 가진 명령 선택 정책
US8341344B2 (en) Techniques for accessing a resource in a processor system
US11474942B2 (en) Supporting responses for memory types with non-uniform latencies on same channel
US11042312B2 (en) DRAM bank activation management
CN106024052A (zh) 存储器控制器和存储器系统的控制方法
US20120317376A1 (en) Row buffer register file
KR102588408B1 (ko) 적응형 메모리 트랜잭션 스케줄링
US9620215B2 (en) Efficiently accessing shared memory by scheduling multiple access requests transferable in bank interleave mode and continuous mode
US10838884B1 (en) Memory access quality-of-service reallocation
KR20130111188A (ko) 메모리 장치 및 메모리 장치의 동작방법
US10852956B1 (en) Structure of a high-bandwidth-memory command queue of a memory controller with external per-bank refresh and burst reordering
US20030163654A1 (en) System and method for efficient scheduling of memory
US11663149B1 (en) System and method for memory management
CN112965816B (zh) 内存管理技术及计算机系统
US20230325117A1 (en) Speculative command processing interface in storage systems

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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.

CP01 Change in the name or title of a patent holder