CN105573920B - 存储空间管理方法和装置 - Google Patents
存储空间管理方法和装置 Download PDFInfo
- Publication number
- CN105573920B CN105573920B CN201410529781.3A CN201410529781A CN105573920B CN 105573920 B CN105573920 B CN 105573920B CN 201410529781 A CN201410529781 A CN 201410529781A CN 105573920 B CN105573920 B CN 105573920B
- Authority
- CN
- China
- Prior art keywords
- priority
- buffer cell
- access request
- corresponding relationship
- idle
- 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
Links
Landscapes
- Memory System (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例提供一种存储空间管理方法和装置,通过获取访问请求的优先级,根据优先级与缓冲单元的对应关系,确定优先级对应的至少一个缓冲单元的空闲状态,根据上述优先级对应的至少一个缓冲单元的空闲状态处理访问请求,由于优先级与缓冲单元具有对应关系,因此,保证了不同优先级的访问请求能够按照优先级合理的使用缓冲单元,从而,能够合理利用存储空间,提高整个系统的性能。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种存储空间管理方法和装置。
背景技术
在多核处理器的平台上,一个内存控制器可能会被多个处理器核同时访问,内存控制器通过多个通道接收多个处理器核发送的访问请求,即,内存控制器可在同一周期内接收多个访问请求。然而,由于内存控制器从动态随机存取存储器(Dynamic RandomAccess Memory,以下简称:DRAM)中读写数据的速度受限,因此,现有的内存控制器中通常利用缓冲区来缓存从通道中接收到的访问请求,一个缓冲区包含多个缓冲单元,每个缓冲单元用于存储一条访问请求。
现有技术中,当通道中有访问请求时,内存控制器若确定缓冲区中具有空闲的缓冲单元,则接收该通道中的访问请求,若确定缓冲区中无空闲的缓冲单元,则不接收该通道中的访问请求。
然而,访问请求具有不同的优先级,通常情况下,低优先级的访问请求远高于高优先级的访问请求,而缓冲区的存储空间有限,因此,常常会造成多数的低优先级的访问请求占据了缓冲区中的缓冲单元,而使得高优先级的访问请求无法及时存储到缓冲区中,从而,无法得到高效的优先调度,造成存储空间利用不合理,影响整个系统的性能。
发明内容
本发明实施例提供一种存储空间管理方法和装置,以合理利用存储空间,提高整个系统的性能。
本发明实施例第一方面提供一种存储空间管理方法,包括:
获取访问请求的优先级;
根据优先级与缓冲单元的对应关系,确定所述优先级对应的至少一个缓冲单元的空闲状态;
根据所述优先级对应的至少一个缓冲单元的空闲状态处理所述访问请求。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据优先级与缓冲单元的对应关系,确定所述优先级对应的缓冲单元的空闲状态之前,还包括:
设置优先级与缓冲单元的对应关系,每个优先级对应至少一个缓冲单元。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
根据预设触发条件,更新所述优先级与缓冲单元的对应关系。
结合第一方面或第一方面的第一种可能的实现方式或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述优先级对应的至少一个缓冲单元的空闲状态处理所述访问请求,包括:
若所述优先级对应的至少一个缓冲单元中存在处于空闲状态的缓冲单元,则接收所述访问请求,并将所述访问请求存储在所述处于空闲状态的缓冲单元中;
若所述优先级对应的至少一个缓冲单元中不存在处于空闲状态的缓冲单元,则阻塞所述访问请求。
本发明实施例第二方面提供一种存储空间管理装置,包括:
获取模块,用于获取访问请求的优先级;
确定模块,用于根据优先级与缓冲单元的对应关系,确定所述优先级对应的至少一个缓冲单元的空闲状态;
处理模块,用于根据所述优先级对应的至少一个缓冲单元的空闲状态处理所述访问请求。
结合第二方面,在第二方面的第一种可能的实现方式中,所述装置还包括:
设置模块,用于设置优先级与缓冲单元的对应关系,每个优先级对应至少一个缓冲单元。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述设置模块还用于根据预设触发条件,更新所述优先级与缓冲单元的对应关系。
结合第二方面或第二方面的第一种可能的实现方式或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述处理模块具体用于若所述优先级对应的至少一个缓冲单元中存在处于空闲状态的缓冲单元,则接收所述访问请求,并将所述访问请求存储在所述处于空闲状态的缓冲单元中;若所述优先级对应的至少一个缓冲单元中不存在处于空闲状态的缓冲单元,则阻塞所述访问请求。
本发明实施例提供的存储空间管理方法和装置,通过获取访问请求的优先级,根据优先级与缓冲单元的对应关系,确定优先级对应的至少一个缓冲单元的空闲状态,根据上述优先级对应的至少一个缓冲单元的空闲状态处理访问请求,由于优先级与缓冲单元具有对应关系,因此,保证了不同优先级的访问请求能够按照优先级合理的使用缓冲单元,从而,能够合理利用存储空间,提高整个系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例多核处理器平台下系统结构示意图;
图2为本发明存储空间管理方法实施例一的流程示意图;
图3为本发明存储空间管理装置实施例一的结构示意图;
图4为本发明存储空间管理装置实施例二的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明主要应用于多核处理器平台下的内存控制器中,如图1所示,图1为本发明实施例多核处理器平台下系统结构示意图,内存控制器1通过多个通道2接收处理器核发送的访问请求,内存控制器将接收的访问请求存储在缓冲区3的缓冲单元31中,缓冲区包含多个缓冲单元,每个缓冲单元用于存储一条访问请求。
本发明实施例通过合理设置访问请求的优先级与缓冲单元的对应关系,使得不同优先级的访问请求能够按照优先级合理的使用缓冲单元,从而,能够合理的利用存储空间,提高整个系统的性能。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本发明存储空间管理方法实施例一的流程示意图,如图2所示,本实施例的方法如下:
S201:获取访问请求的优先级。
访问请求通常包括访存读(load)请求和访存写(store)请求。
为了提高系统的性能,系统通常会将访问请求分为不同的优先级,以分成两种优先级为例,分别为高优先级和低优先级,处于关键路径上的访问请求通常具有高优先级,反之则具有低优先级。假如,后续多个操作都需要使用处理器通过读请求读取的数据,则访存读请求则处于关键路径,具有高优先级。当然,系统也可以根据其他的规则将访问请求分为不同的优先级,例如:根据处理器核将访问请求分为不同的优先级,对此,本发明不作限制。每个访问请求对应一个优先级。
获取通道中的访问请求的优先级。
S202:根据优先级与缓冲单元的对应关系,确定优先级对应的至少一个缓冲单元的空闲状态。
优先级与缓冲单元的对应关系可以为预先设置,每个优先级对应至少一个缓冲单元,该对应关系可以通过对应关系表记录,例如:高优先级对应缓冲区中的缓冲单元1~缓冲单元5,低优先级对应缓冲区中的缓冲单元4和缓冲单元5,记录形式如表1所示,表1为本发明优先级与缓冲单元的对应关系形式一表。
表1 本发明优先级与缓冲单元的对应关系形式一
高优先级 | 缓冲单元1~缓冲单元5 |
低优先级 | 缓冲单元4和缓冲单元5 |
也就是,高优先级的访问请求可以存储在缓冲单元1~缓冲单元5中,而低优先级的访问请求只能存储在缓冲单元4和缓冲单元5中;换句话说,也就是,缓冲单元1~缓冲单元3只能用于存储高优先级的访问请求,缓冲单元4和缓冲单元5即可用于存储高优先级的访问请求,也可用于存储低优先级的访问请求。
优先级与缓冲单元的对应关系也可以通过表2的形式标记,为每个缓冲单元设置一个保留(reservation)域,通过设置保留域的值来记录优先级与缓冲单元的对应关系,还是以两个优先级(高优先级和低优先级)为例,如表2所示,表2为本发明优先级与缓冲单元的对应关系形式二表
表2 本发明优先级与缓冲单元的对应关系形式二
缓冲单元1 | 保留域:1 |
缓冲单元2 | 保留域:1 |
缓冲单元3 | 保留域:1 |
缓冲单元4 | 保留域:0 |
缓冲单元5 | 保留域:0 |
当保留域为1时,表明该缓冲单元只能用于存储高优先级的访问请求,当保留域为0时,表明该缓冲单元即可用于存储高优先级的访问请求,也可用于存储低优先级的访问请求。因此,高优先级对应的缓冲单元为缓冲单元1~缓冲单元5,低优先级对应的缓冲单元为缓冲单元4和缓冲单元5。
表1和表2是针对同一种优先级与缓冲单元的对应关系的不同的记录形式,其他的可用于表征这种对应关系的形式均可应用于本发明,对此,本发明不作限制。
需要说明的是,表1和表2仅以两种优先级为例进行说明,针对三种或三种以上的优先级设置优先级与缓冲单元的对应关系与此类似,不再赘述。
S203:根据优先级对应的至少一个缓冲单元的空闲状态处理上述访问请求。
具体地,若优先级对应的至少一个缓冲单元中不存在处于空闲状态的缓冲单元,则阻塞访问请求。
若优先级对应的至少一个缓冲单元中存在处于空闲状态的缓冲单元,则接收访问请求,并将访问请求存储在处于上述空闲状态的缓冲单元中。
举例来说,当一个通道有一个低优先级的访问请求,一个通道有一个高优先级的访问请求,以表2为例,低优先级对应的缓冲单元4和缓冲单元5均处于非空闲状态,则阻塞低优先级的访问请求,高优先级对应的缓冲单元1~缓冲单元5中缓冲单元3处于空闲状态,则接收高优先级的访问请求,并将高优先级的访问请求存储在缓冲单元3中。
本发明实施例中,通过获取访问请求的优先级,根据优先级与缓冲单元的对应关系,确定优先级对应的至少一个缓冲单元的空闲状态,根据上述优先级对应的至少一个缓冲单元的空闲状态处理访问请求,由于优先级与缓冲单元具有对应关系,因此,保证了不同优先级的访问请求能够按照优先级合理的使用缓冲单元,从而,能够合理利用存储空间,提高整个系统的性能。
在上述实施例中,还包括:根据预设触发条件,更新优先级与缓冲单元的对应关系。
具体地,预设触发条件,可以是控制器根据历史信息预测,历史信息可以是高优先级请求被阻塞的频次,确定是否触发更新优先级与缓冲单元的对应关系;或者,根据当前高优先级请求的情况,确定是否触发更新优先级与缓冲单元的对应关系,或者,其他需要更新优先级与缓冲单元的对应关系的条件,对此,本发明不作限制。
具体地,更新优先级与缓冲单元的对应关系,包括:增加某优先级对应的缓冲单元的个数和减少某优先级对应的缓冲队列的个数。
以表2为例,当高优先级对应的缓冲单元需要增加一个时,则将保留域为0的一个处于空闲状态的缓冲单元的保留域修改为1。若保留域为0的缓冲单元都处于非空闲状态,则等待保留域为0的缓冲单元处于空闲状态时,将处于空闲状态的保留域为0的缓冲单元的保留域修改为1。
当高优先级对应的缓冲单元需要减少一个时,则将保留域为1的一个处于空闲状态的缓冲单元的保留域修改为0。若保留域为1的缓冲单元都处于非空闲状态,则等待保留域为1的缓冲单元处于空闲状态时,将处于空闲状态的保留域为1的缓冲单元的保留域修改为0。
具体地,如何更新优先级与缓冲单元的对应关系,本发明不作限制。
在上述实施例中,设置与更新优先级与缓冲单元的对应关系支持软件配置,或内存控制器自发送配置。
本实施例,通过更新优先级与缓冲单元的对应关系,适应变化,使得不同优先级的访问请求能够按照优先级更合理的使用缓冲单元,进一步,合理的利用存储空间,提高整个系统的性能。
图3为本发明存储空间管理装置实施例一的结构示意图,如图3所示,本实施例的装置包括获取模块301、确定模块302和处理模块303,其中,获取模块301用于获取访问请求的优先级;确定模块302用于根据优先级与缓冲单元的对应关系,确定所述优先级对应的至少一个缓冲单元的空闲状态;处理模块303用于根据所述优先级对应的至少一个缓冲单元的空闲状态处理所述访问请求。
图4为本发明存储空间管理装置实施例二的结构示意图,图4是在图3所示实施例的基础上,进一步还包括设置模块304,其中,设置模块304用于设置优先级与缓冲单元的对应关系,每个优先级对应至少一个缓冲单元。
在上述实施例中,所述设置模块304还用于根据预设触发条件,更新所述优先级与缓冲单元的对应关系。
在上述实施例中,所述处理模块303具体用于若所述优先级对应的至少一个缓冲单元中存在处于空闲状态的缓冲单元,则接收所述访问请求,并将所述访问请求存储在所述处于空闲状态的缓冲单元中;若所述优先级对应的至少一个缓冲单元中不存在处于空闲状态的缓冲单元,则阻塞所述访问请求。
图3或图4所示实施例的装置,对应地可用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (4)
1.一种存储空间管理方法,其特征在于,包括:
获取访问请求的优先级;
根据优先级与缓冲单元的对应关系,确定所述优先级对应的至少一个缓冲单元的空闲状态;
根据所述优先级对应的至少一个缓冲单元的空闲状态处理所述访问请求;
所述根据优先级与缓冲单元的对应关系,确定所述优先级对应的缓冲单元的空闲状态之前,还包括:
设置优先级与缓冲单元的对应关系,每个优先级对应至少一个缓冲单元;
根据预设触发条件,增加某优先级对应的缓冲单元的个数和减少某优先级对应的缓冲单元的个数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述优先级对应的至少一个缓冲单元的空闲状态处理所述访问请求,包括:
若所述优先级对应的至少一个缓冲单元中存在处于空闲状态的缓冲单元,则接收所述访问请求,并将所述访问请求存储在所述处于空闲状态的缓冲单元中;
若所述优先级对应的至少一个缓冲单元中不存在处于空闲状态的缓冲单元,则阻塞所述访问请求。
3.一种存储空间管理装置,其特征在于,包括:
获取模块,用于获取访问请求的优先级;
确定模块,用于根据优先级与缓冲单元的对应关系,确定所述优先级对应的至少一个缓冲单元的空闲状态;
处理模块,用于根据所述优先级对应的至少一个缓冲单元的空闲状态处理所述访问请求;
所述装置还包括:
设置模块,用于设置优先级与缓冲单元的对应关系,每个优先级对应至少一个缓冲单元;
所述设置模块还用于根据预设触发条件,增加某优先级对应的缓冲单元的个数和减少某优先级对应的缓冲单元的个数。
4.根据权利要求3所述的装置,其特征在于,所述处理模块具体用于若所述优先级对应的至少一个缓冲单元中存在处于空闲状态的缓冲单元,则接收所述访问请求,并将所述访问请求存储在所述处于空闲状态的缓冲单元中;若所述优先级对应的至少一个缓冲单元中不存在处于空闲状态的缓冲单元,则阻塞所述访问请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410529781.3A CN105573920B (zh) | 2014-10-09 | 2014-10-09 | 存储空间管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410529781.3A CN105573920B (zh) | 2014-10-09 | 2014-10-09 | 存储空间管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105573920A CN105573920A (zh) | 2016-05-11 |
CN105573920B true CN105573920B (zh) | 2019-02-01 |
Family
ID=55884082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410529781.3A Active CN105573920B (zh) | 2014-10-09 | 2014-10-09 | 存储空间管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573920B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106780292A (zh) * | 2016-12-12 | 2017-05-31 | 中国航空工业集团公司西安航空计算技术研究所 | 一种低开销纹理对象管理方法 |
CN112560802A (zh) * | 2021-01-24 | 2021-03-26 | 中天恒星(上海)科技有限公司 | 可分配数据存储库的数据处理方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996267A (zh) * | 2006-01-03 | 2007-07-11 | 国际商业机器公司 | 在固定大小高速缓存中调整写请求数目的装置、系统和方法 |
US7320053B2 (en) * | 2004-10-22 | 2008-01-15 | Intel Corporation | Banking render cache for multiple access |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
CN103080903A (zh) * | 2010-08-27 | 2013-05-01 | 富士通株式会社 | 调度器、多核处理器系统以及调度方法 |
-
2014
- 2014-10-09 CN CN201410529781.3A patent/CN105573920B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7320053B2 (en) * | 2004-10-22 | 2008-01-15 | Intel Corporation | Banking render cache for multiple access |
CN1996267A (zh) * | 2006-01-03 | 2007-07-11 | 国际商业机器公司 | 在固定大小高速缓存中调整写请求数目的装置、系统和方法 |
CN103080903A (zh) * | 2010-08-27 | 2013-05-01 | 富士通株式会社 | 调度器、多核处理器系统以及调度方法 |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105573920A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639280B2 (en) | Ordering memory commands in a computer system | |
CN104090847B (zh) | 一种固态存储设备的地址分配方法 | |
US10324854B2 (en) | Information processing apparatus and control method for dynamic cache management | |
CN103345368B (zh) | 一种在缓冲存储器中缓存数据的方法 | |
CN104699424B (zh) | 一种基于页面热度的异构内存管理方法 | |
CN102117248A (zh) | 一种缓存系统和在缓存系统中缓存数据的方法 | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
CN102831088A (zh) | 基于混合存储器的数据迁移方法和装置 | |
US20190250836A1 (en) | Data storage, reading, and cleansing method and device, and cloud storage system | |
CN103678172A (zh) | 一种本地数据缓存管理方法及装置 | |
CN110059033A (zh) | 数据中心中的共享存储器控制器 | |
CN103092532B (zh) | 一种集群存储系统的存储方法 | |
US20110225369A1 (en) | Multiport data cache apparatus and method of controlling the same | |
US10838884B1 (en) | Memory access quality-of-service reallocation | |
CN103150122A (zh) | 一种磁盘缓存空间管理方法和装置 | |
CN101957729B (zh) | 逻辑块变换方法及基于该方法兼容用户读写的方法和装置 | |
CN105573920B (zh) | 存储空间管理方法和装置 | |
CN117725035B (zh) | 一种针对lsm树的文件合并方法及相关设备 | |
CN106155923B (zh) | 内存共享的方法和装置 | |
CN104360961A (zh) | 一种基于对象存储的自适应分级处理方法及系统 | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
CN106557277B (zh) | 磁盘阵列的读方法及装置 | |
CN109491785B (zh) | 内存访问调度方法、装置及设备 | |
KR20150139017A (ko) | 메모리 제어 장치 및 방법 | |
CN109408412B (zh) | 内存预取控制方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |