CN102591799B - 一种存放数据的方法和装置 - Google Patents
一种存放数据的方法和装置 Download PDFInfo
- Publication number
- CN102591799B CN102591799B CN201110456117.7A CN201110456117A CN102591799B CN 102591799 B CN102591799 B CN 102591799B CN 201110456117 A CN201110456117 A CN 201110456117A CN 102591799 B CN102591799 B CN 102591799B
- Authority
- CN
- China
- Prior art keywords
- cache
- load model
- data
- hit rate
- current device
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供了一种存放数据的方法和装置,涉及数据处理领域。本发明通过将当前设备在进行业务处理过程中划分为不同的负载模式,动态调整Cache中对各种数据的存放方式,使得当前设备中具有不同特性的节点可控制对Cache的操作,使得一个大容量系统能够在负载较大时得到更低功耗,且达到最优性能。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种存放数据的方法和装置。
背景技术
高速缓存存储器(Cache)为可以透明的对数据进行缓存的存储单元,处理单元对高速缓存存储器的访问快于对下一级存储单元的访问。在对高速缓存存储器的操作中,包括写分配(Write Allocate)、非写分配(Not Write Allocate)、读分配(Read Allocate)、非读分配(Not Read Allocate)和读无效(Read Invalidate)等操作。
其中,在写Cache时,对应的写地址在Cache中不存在就会出现写不命中,此时加载相应的存储器块到高速缓存中,然后更新高速缓存块,即是写分配的操作;
在写Cache时,对应写地址在Cache中不存在就会出现写不命中,此时直接将数据写入到下一级存储器中,并不在Cache中分配地址,即是非写分配操作;
在读Cache时,对应读地址不存在于Cache中就会出现读不命中,此时加载相应的下一级存储器的存储器块到高速缓存中,然后反馈数据给处理单元,就是读分配的操作;
在读Cache时,对应读地址不存在于Cache中就会出现读不命中,直接将数据从下一级存储器中读入并返回给处理单元,并不在Cache中分配地址,这就是非读分配操作;
在读数据时,如果被读数据在Cache中命中,数据被送给读操作发起模块之后,对应的CacheLine将被设置为无效状态,如此新操作访问时,此CacheLine将可以被分配新数据,而不会发生Cache冲突。
现有的业务处理具有固定特点,报文头部、报文载荷、业务处理中间变量等不同数据的使用频率有很大差别,报文头部和业务处理中间变量的使用频率明显高于报文载荷。处理单元处理数据时,会利用此特点,根据特定的规则将数据区别对待,将常用数据放置在靠近处理单元的Cache中,以加快处理速度,提升系统处理性能。另外,访问Cache中数据比访问下一个存储层次中的数据耗费更多功耗。所以,让数据访问尽量控制在离处理单元更近的存储层次上,对提升性能和降低功耗都有帮助。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
Cache的容量有限,不能完全存放所有处理过程中的数据,则数据必然需要存放到下一级存储中,Cache和下一级存储之间会不断的发生数据替换和交互,使用频繁的正在处理数据可能被输入的大流量数据替换到Cache的下一级存储中,导致Cache的命中率降低,增强设备的功耗,影响处理节点的处理带宽,使得系统性能随着处理带宽和处理复杂度增加急剧恶化。
发明内容
为了解决现有技术中存在的问题,本发明实施例提供了一种存放数据的方法和装置。所述技术方案如下:
一种存放数据的方法,所述方法包括:
判断当前设备的负载模式;
当所述负载模式为第一负载模式时,将所述当前设备正在处理的数据均存放在所述Cache中;
当所述负载模式为第二负载模式时,将所述当前设备正在处理的使用频率超过预设频率的数据存所述放在Cache中,未超过预设频率的数据存放在所述Cache的下一级存储器中;
当所述负载模式为第三负载模式时,将所述当前设备正在处理的对处理延时要求在预设时间内且使用频率超过所述预设频率的数据存放在所述Cache中。
一种存放数据的装置,其特征在于,所述装置包括:
判断模块,用于判断当前设备的负载模式;
第一控制模块,用于当所述判断模块判断得到所述负载模式为第一负载模式时,将所述当前设备正在处理的数据均存放在所述Cache中;
第二控制模块,用于当所述判断模块判断得到所述负载模式为第二负载模式时,将所述当前设备正在处理的使用频率超过预设频率的数据存所述放在Cache中,未超过预设频率的数据存放在所述Cache的下一级存储器中;
第三控制模块,用于当所述判断模块判断得到所述负载模式为第三负载模式时,将所述当前设备正在处理的对处理延时要求在预设时间内且使用频率超过所述预设频率的数据存放在所述Cache中。
本发明实施例提供的技术方案的有益效果是:通过将当前设备在进行业务处理过程中划分为不同的负载模式,动态调整Cache中对各种数据的存放方式,使得当前设备中具有不同特性的节点可控制对Cache的操作,使得一个大容量系统能够在负载较大时得到更低功耗,且达到最优性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种存放数据的方法的流程示意图;
图2是本发明实施例2提供的一种存放数据的方法的流程示意图;
图3是本发明实施例2提供的在当前设备中设立多个监测点进行监测的情况示意图;
图4是本发明实施例2提供的带有预设标记的数据在当前设备中的传输路线的示意图;
图5是本发明实施例2提供的一种在轻负载模式下控制当前设备对Cahce的操作的配置方式的示意图;
图6是本发明实施例2提供的一种在中负载模式下控制当前设备对Cahce的操作的配置方式的示意图;
图7是本发明实施例2提供的一种在重负载模式下控制当前设备对Cahce的操作的配置方式的示意图;
图8是本发明实施例3提供的一种存放数据的装置的结构示意图;
图9是本发明实施例3提供的一种存放数据的装置中的第一监测单元的结构示意图;
图10是本发明实施例3提供的一种存放数据的装置的第二种结构示意图;
图11是本发明实施例3提供的一种存放数据的装置的第三种结构示意图;
图12是本发明实施例3提供的一种存放数据的装置中的调整模块的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图1所示,本实施例提供了一种存放数据的方法,应用于高速缓存存储器中,该方法包括:
101、判断当前设备的负载模式,当为第一负载模式时,执行步骤102,当为第二负载模式时,执行步骤103,当为第三负载模式时,执行步骤104;
102、将当前设备正在处理的数据均存放在Cache中;
103、将当前设备正在处理的使用频率超过预设频率的数据存放在Cache中,未超过预设频率的数据存放在Cache的下一级存储器中;
104、将当前设备正在处理的对处理延时要求在预设时间内且使用频率超过预设频率的数据存放在Cache中。
其中,在第二负载模式下的Cache的负载大于在第一负载模式下的Cache的负载,在第三负载模式下的Cache的负载大于在第二负载模式下的Cache的负载。
本发明实施例提供了一种存放数据的方法,通过将当前设备在进行业务处理过程中划分为不同的负载模式,动态调整Cache中对各种数据的存放方式,使得当前设备中具有不同特性的节点可控制对Cache的操作,使得一个大容量系统能够在负载较大时得到更低功耗,且达到最优性能。
实施例2
本实施例提供了一种存放数据的方法,是在实施例基础之上进行的改进,在本实施例中,以对网络数据处理设备的Cache存放数据的控制为例进行说明,该设备中包括Cache和Cache的下一级存储器,且该设备中包括三种节点:入口节点(例如网口)、出口节点(例如网口)和多个可对数据进行业务处理的处理节点(例如处理器),在本实施例中设定该设备包括如下处理节点:处理器、加速器/协处理器。
需要说明的是,Cache为网络处理设备中距离CPU(Central Processing Unit,中央处理器)最近的高速小容量存储器,距离CPU的距离其次的为Cache的下一级存储器,例如内存。
如图2所示,一种存放数据的方法,该方法包括:
201、判断得到当前设备的负载模式,当为轻负载模式时,执行步骤202,当为中负载模式时,执行步骤203,当为重负载模式时,执行步骤204;
在本发明中,可将设备对数据处理时划分为多种负载模式,并在不同的负载模式下使用不同的控制策略。在本实施例中,为了便于说明,将当前系统的负载模式划分为第一、第二、第三负载模式,也即轻负载模式、中负载模式、重负载模式。
其中,在中负载模式下的Cache的负载大于在轻负载模式下的Cache的负载,在重负载模式下的Cache的负载大于在中负载模式下的Cache的负载。
在本实施例中,当前系统的负载模式共包括两种方式:第一种是通过软件配置的方式,第二种是通过自动监测进行判断的方式。
其中,
第一种通过软件配置的方式,即当前设备向用户提供对负载模式进行预设的接口,例如通过界面供用户选择负载模式,用户通过软件对负载模式进行预设,当设备处理的数据流量稳定时,该方式可应用在小流量设备,直接将用于预设的负载模式下发到设备的模式控制器中。
第二种通过自动监测进行判断的方式,具体的为通过监测当前设备中的入口节点实际带宽流量、任务队列中的任务数量、Cache容量和Cache命中率,并根据当前设备中的入口实际带宽流量、任务队列中的任务数量、Cache容量和Cache命中率判断得到当前设备的负载模式;
进一步地,通过监测当前设备中的入口节点实际带宽流量、任务队列中的任务数量、Cache容量和Cache命中率,并根据当前设备中的入口实际带宽流量、任务队列中的任务数量、Cache容量和Cache命中率判断得到当前设备的负载模式,具体包括:
201-1、在当前设备的入口节点处设立第一监测点,并在预设的第一时间段内对第一监测点进行监测得到当前设备的入口实际带宽流量R;
如图3所示,在本实施例中,需要在当前设备中设立多个监测点进行监测。
具体地,在本步骤201-1中,如图3中①所示,第一监测点设立在入口节点处,同时,在对第一监测点进行监测时,还可以得到通过监测得到反压信号或反压消息。
201-2、如图3中②所示,在当前设备的Cache处设立第二监测点,并在预设的第一时间段内对第二监测点进行监测得到Cache命中率;
201-3、如图3中③所示,在处理器和加速器/协处理器处设立第三监测点,并在预设的第一时间段内对第三监测点进行监测得到处理器和加速器/协处理器中待处理任务的数量;
201-4、如图3中④所示,在当前设备的出口节点处设立第四监测点,对第四监测点进行监测得到当前设备的出口节点处待处理的任务的数量;
201-5、统计预设的第一时间段内任务队列中的任务数量;
其中,预设的第一时间段内任务队列中的任务数量即为在预设的第一时间段内从第三监测点和第四监测点监测得到的待处理任务的数量的总和。
201-6、根据任意两个节点之间的数据处理延时计算方法计算得到当前设备对数据进行处理的处理延时T;
其中,在本实施例中,任意两个节点之间的数据处理延时计算方法如下:
A、在第一节点处构建带有预设标记的数据,并将时间Ta作为时间戳插入到带有预设标记的数据中;
B、在第一节点处将插入时间戳后的带有预设标记的数据放入当前设备正在处理的数据中;
C、在第二节点处进行监测,当监测得到上述插入时间戳后的带有预设标记的数据时,记录当前的时间Tb;
其中,第二节点包括第一节点的下一个或其他处理节点,也可以为第一节点自身。
D、根据时间Ta和时间Tb计算得到第一节点到第二节点的处理延时Tp=Tb-Ta。
需要说明的是,在根据上述方法计算当前设备对数据进行处理的处理延时T时,具体的为计算入口节点到出口节点之间的数据的处理延时,具体如图4所示,在入口节点处构建带有预设标记的数据,并将第一时间t1作为第一时间戳信息插入到带有预设标记的数据中,对出口节点输出的数据进行监测,当监测到带有预设标记的数据时,记录带有预设标记的数据的到达出口节点的第二时间t2,根据第一时间t1和第二时间t2计算得到处理延时T=t2-t1;
其中,如图4所示,为带有预设标记的数据在当前设备中的传输路线。
201-7、根据入口实际带宽流量R、Cache容量、Cache命中率、处理延时T、任务队列中的任务数量以及收到反压信号或反压信息的频率判断得到当前设备的负载模式:
在本实施例中,根据入口实际带宽流量R、Cache命中率、处理延时T、任务队列中的任务数量以及收到反压信号或反压信息的频率判断得到当前设备的负载模式,具体为:
(1)当入口实际带宽流量R*处理延时T≤Cache容量时,当前设备的负载模式为轻负载模式;
其中,当负载模式为轻负载模式时,可以推断得出当前设备中待处理的数据数量小于Cache的容量,Cache可以存放所有处理过程中的数据;
(2)当入口实际带宽流量R*处理延时T>Cache容量且Cache命中率保持在预设的第一命中率范围之内时,当前设备的负载模式为中负载模式;
其中,当负载模式为中负载模式时,Cache无法缓存所有处理过程中的数据,需要有选择性的对数据进行缓存;
(3)当满足Cache命中率低于预设的第一命中率、任务队列中的任务数量超过预设的门限值、接收到反压信号或反压消息超过预设次数中的任一条件时,当前设备的负载模式为重负载模式;
其中,当负载模式为重负载模式时,当前设备的数据处理压力很大,Cache命中率下降,Cache性能降低严重。
202、将当前设备正在处理过程中的数据均存放在Cache中,执行步骤205;
需要说明的是,轻负载模式下,Cache容量可以存放所有正在处理过程中数据,因此,在当前设备的各个节点对Cache进行操作时,除了出口节点的其他节点对Cache的操作都可设置为读分配、写分配,以便避免或减少在对Cache的下一级存储器操作时产生的功耗。
如图5所示,本实施例提供了一种在轻负载模式下控制当前设备对Cahce的操作的配置方式,其中,将入口节点、处理器、加速器/协处理器对Cahce的操作设置为可进行读分配、写分配操作,出口节点对Cache的操作设置为读无效。
203、将当前设备正在处理过程中使用频率超过预设频率的数据存放在Cache中,未超过预设频率的数据存放在Cache的下一级存储器中,执行步骤205;
需要说明的是,在中负载模式下,Cache的容量不能存放所有处理过程中的数据,部分处理数据必然要被放置在下一级存储中。因此,对不同的数据采用不同策略,处理过程中使用频率超过预设频率的数据(高频数据)存放在Cache中,其他数据(使用频率未超过预设频率的数据,即低频数据)直接放在Cache的下一级存储器中,并不在Cache中分配空间,避免高频数据被低频数据替换出Cache而导致当前设备的整体处理性能下降和产生功耗。
例如,在网络转发业务处理中,报文头部(Header)可认为是高频数据,报文载荷(Payload)可认为是低频数据,其中,在网络转发进行转发的报文中,一般包括报文头部和报文载荷,报文头部用了指示对应的报文内容和通信方式等,因此使用频率较高,除报文头部外的其余部分为报文载荷,对于通信业务来说,报文载荷只做转发处理,不做业务处理,因此使用频率较低。
在本步骤中,将当前设备正在处理过程中使用频率超过预设频率的数据存放在Cache中,未超过预设频率的数据存放在Cache的下一级存储器中,在进行操作时,具体可以设置为高频数据采用读分配、写分配操作的方式访问Cache,低频数据采用非读分配和非写分配操作的方式访问Cache。
如图6所示,本发明实施例提供了一种在中负载模式下控制当前设备对Cahce的操作的配置方式,其中,将入口节点对Cahce的操作设置为高频数据进行写分配操作,低频数据进行非写分配操作,将处理器对Cahce的操作设置为写分配和读分配操作,将处理器、加速器/协处理器对Cahce的操作设置为高频数据进行写分配操作,低频数据进行非写分配操作,高频数据和低频数据均可进行非读分配操作,出口节点对Cache的操作设置为读无效。
204、将对处理延时要求在预设时间内且使用频率超过预设频率的数据存放在Cache中,执行步骤205。
需要说明的是,在本步骤中,将对处理延时要求在预设时间内且使用频率超过预设频率的数据存放在Cache中,具体的为将存储访问延时敏感的节点(处理延时要求在预设时间内的节点)对高频数据采用读分配和写分配操作的方式访问Cache,其他节点对Cache的访问均使用非读分配和非写分配方式访问Cache。
进一步地,在本步骤中,还可以包括:
在入口节点处控制进入当前设备的数据流量或安全丢弃数据等操作,避免性能恶化更加严重。
其中,在重负载模式下,设备的业务处理压力大,需要进入Cache的数据过多,从入口节点输入或加速引擎操作的数据进入Cache会将处理节点的局部数据替换到Cache的下一级存储器中,会导致Cache命中率下降严重,使芯片性能和吞吐量下降,因此,本步骤可采集两种方式避免系统性能恶化:1)入口节点、加速引擎等对Cache访问延时不敏感的节点在对Cache访问非命中时不在Cache中分配数据单元,提高对存储访问延时敏感的处理节点访问Cache的命中率;2)在数据入口处丢弃或者反压任务,避免情况更加恶化,其中反压任务具体为停止当前设备的接口继续接收数据,例如PCIe接口,不再接收对端发送过来的数据。
如图7所示,本发明实施例提供了一种在重负载模式下控制当前设备对Cahce的操作的配置方式,其中,将入口节点对Cahce的操作设置为非写分配操作;处理器对Cahce的操作设置为对一次性数据进行非写分配,其他数据进行写分配操作,高频数据进行写分配操作,低频数据进行非写分配操作;将处理器、加速器/协处理器对Cahce的操作设置为非写分配和非读分配操作;出口节点对Cache的操作设置为读无效。
205、根据Cache命中率调整进行读分配和写分配操作的数据长度。
其中,根据Cache命中率调整进行读分配和写分配操作的数据的长度,具体包括如下步骤:
a、读取当前的Cache命中率;
b、判断当前的Cache命中率是否在预设的第二时间内均为100%或超过预设的第二命中率,如果当前的Cache命中率在预设的第二时间内均为100%或超过预设的第二命中率,执行步骤c,否则,执行步骤d;
c、增加进行读分配和写分配操作的数据的长度;
d、判断是否在预设的第三时间内Cache命中率均低于预设的第二命中率,如果是,执行步骤e,如果不是,返回步骤a;
e、减少进行读分配和写分配操作的数据的长度。
本发明实施例提供了一种存放数据的方法,通过将当前设备在进行业务处理过程中划分为不同的负载模式,动态调整Cache中对各种数据的存放方式,使得当前设备中具有不同特性的节点可控制对Cache的操作,使得一个大容量系统能够在负载较大时得到更低功耗,且达到最优性能。
实施例3
如图8所示,本发明实施例提供了一种存放数据的装置,该装置包括:
判断模块301,用于判断当前设备的负载模式;
第一控制模块302,用于当判断模块301判断得到负载模式为第一负载模式时,将当前设备正在处理的数据均存放在Cache中;
第二控制模块303,用于当判断模块301判断得到负载模式为第二负载模式时,将当前设备正在处理的使用频率超过预设频率的数据存放在Cache中,未超过预设频率的数据存放在Cache的下一级存储器中
第三控制模块304,用于当判断模块301判断得到负载模式为第三负载模式时,将当前设备正在处理的对处理延时要求在预设时间内且使用频率超过预设频率的数据存放在Cache中。
进一步地,上述第一负载模式、第二负载模式、第三负载模式分别具体的为轻负载模式、中负载模式、重负载模式,且在第二负载模式下的Cache的负载大于在第一负载模式下的Cache的负载,在第三负载模式下的Cache的负载大于在第二负载模式下的Cache的负载。
进一步地,判断模块301包括第一获取单元;
或,判断模块301包括第一监测单元和第一判断单元;
其中,第一获取单元,用于获取用户通过软件配置为当前设备预设的负载模式;
第一监测单元,用于通过监测得到当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数;
第一判断单元,用于根据第一监测单元监测得到的当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数判断得到当前设备的负载模式。
进一步地,如图9所示,第一监测单元3012,包括:
第一监测子单元30121,用于在当前设备的入口节点处设立第一监测点,并在预设的第一时间段内对第一监测点进行监测得到入口实际带宽流量R;
第二监测子单元30122,用于在当前设备的Cache处设立第二监测点,并在预设的第一时间段内对第二监测点进行监测得到Cache命中率;
第三监测子单元30123,用于在当前设备的处理节点处设立第三监测点,并在预设的第一时间段内对第三监测点进行监测得到处理节点中待处理任务的数量;
第四监测子单元30124,用于在当前设备的出口节点处设立第四监测点,对第四监测点进行监测得到出口节点处待处理的任务的数量;
第一统计子单元30125,用于统计预设的第一时间段内任务队列中的任务数量,任务队列中的任务数量为处理节点中待处理任务的数量和出口节点处待处理的任务的数量的和;
第一计算子单元30126,用于计算得到当前设备对数据进行处理的处理延时T;
其中,当前设备至少包括入口节点、出口节点和用于对数据进行业务处理的处理节点。
进一步地,第一计算子单元30126,具体用于在入口节点处构建带有预设标记的数据,并将第一时间t1作为第一时间戳插入到带有预设标记的数据中,在出口节点处对输出的数据进行监测,当监测到插入第一时间戳后的带有预设标记的数据时,记录插入第一时间戳后的带有预设标记的数据的到达出口节点的时间为第二时间t2,根据第一时间t1和第二时间t2计算得到处理延时T=t2-t1。
进一步地,第一判断单元3013,包括:
第一判断子单元,用于当判断得到入口实际带宽流量R与处理延时T的乘积小于或等于Cache容量时,确定负载模式为第一负载模式;
第二判断子单元,用于当判断得到入口实际带宽流量R与处理延时T的乘积大于Cache容量且Cache命中率保持在预设的第一命中率范围之内时,负载模式为第二负载模式;
第三判断子单元,用于当判断得到满足Cache命中率低于预设的第一命中率、任务队列中的任务数量超过预设的门限值、接收到反压信号或反压消息超过预设次数中的任一条件时,负载模式为第三负载模式。
进一步地,如图10所示,该装置还包括:
第四控制模块305,用于当负载模式为第三负载模式时,在当前设备的入口节点处控制进入当前设备的数据流量或进行数据丢弃操作。
进一步地,如图11所示,上述装置还包括:
调整模块306,用于根据Cache命中率调整对Cache进行读分配和写分配操作的数据长度。
进一步地,如图12所示,调整模块306,包括:
读取单元3061,用于读取当前的Cache命中率;
第二判断单元3062,用于判断当前的Cache命中率是否超过预设的第二命中率或在预设的第二时间内均为100%;
增加单元3063,用于当第二判断单元3062判断得到当前的Cache命中率超过预设的第二命中率或在预设的第二时间内均为100%时,增加对Cache进行读分配和写分配操作的数据的长度;
第三判断单元3064,用于当第二判断单元3062判断得到当前的Cache命中率未超过预设的第二命中率或未在预设的第二时间内均为100%时,判断在预设的第三时间内当前的Cache命中率均是否低于预设的第二命中率;
减少单元3065,用于当第三判断单元3064判断得到在预设的第三时间内当前的Cache命中率均低于预设的第二命中率时,减少对Cache进行读分配和写分配操作的数据的长度。
本发明实施例提供了一种存放数据的装置,通过将当前设备在进行业务处理过程中划分为不同的负载模式,动态调整Cache中对各种数据的存放方式,使得当前设备中具有不同特性的节点可控制对Cache的操作,使得一个大容量系统能够在负载较大时得到更低功耗,且达到最优性能。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种存放数据的方法,其特征在于,所述方法包括:
判断当前设备的负载模式;
当所述负载模式为第一负载模式时,将所述当前设备正在处理的数据均存放在Cache中;
当所述负载模式为第二负载模式时,将所述当前设备正在处理的使用频率超过预设频率的数据存放在所述Cache中,未超过预设频率的数据存放在所述Cache的下一级存储器中;
当所述负载模式为第三负载模式时,将所述当前设备正在处理的对处理延时要求在预设时间内且使用频率超过所述预设频率的数据存放在所述Cache中。
2.根据权利要求1所述的方法,其特征在于,所述第一负载模式、第二负载模式、第三负载模式分别具体的为轻负载模式、中负载模式、重负载模式,且在所述第二负载模式下的所述Cache的负载大于在所述第一负载模式下的所述Cache的负载,在所述第三负载模式下的所述Cache的负载大于在所述第二负载模式下的所述Cache的负载。
3.根据权利要求1所述的方法,其特征在于,所述判断得到当前设备的负载模式,包括:
获取用户通过软件配置为所述当前设备预设的负载模式;
或,
通过监测得到所述当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数,并根据所述当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数判断得到当前设备的负载模式。
4.根据权利要求3所述的方法,其特征在于,所述通过监测得到所述当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数,包括:
在所述当前设备的入口节点处设立第一监测点,并在预设的第一时间段内对所述第一监测点进行监测得到所述入口实际带宽流量R;
在所述当前设备的Cache处设立第二监测点,并在所述预设的第一时间段内对所述第二监测点进行监测得到所述Cache命中率;
在所述当前设备的处理节点处设立第三监测点,并在所述预设的第一时间段内对所述第三监测点进行监测得到所述处理节点中待处理任务的数量;
在所述当前设备的出口节点处设立第四监测点,对所述第四监测点进行监测得到所述出口节点处待处理的任务的数量;
统计所述预设的第一时间段内所述任务队列中的任务数量,所述任务队列中的任务数量为所述处理节点中待处理任务的数量和所述出口节点处待处理的任务的数量的和;
计算得到所述当前设备对数据进行处理的所述处理延时T;
其中,所述当前设备至少包括所述入口节点、出口节点和用于对数据进行业务处理的所述处理节点。
5.根据权利要求4所述的方法,其特征在于,所述计算得到所述当前设备对数据进行处理的所述处理延时T,包括:
在所述入口节点处构建带有预设标记的数据,并将第一时间t1作为第一时间戳插入到所述带有预设标记的数据中;
在所述出口节点处对输出的数据进行监测,当监测到所述插入第一时间戳后的带有预设标记的数据时,记录所述插入第一时间戳后的带有预设标记的数据的到达所述出口节点的时间为第二时间t2;
根据第一时间t1和第二时间t2计算得到所述处理延时T=t2-t1。
6.根据权利要求3所述的方法,其特征在于,所述根据所述当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数判断得到当前设备的负载模式,包括:
当判断得到所述入口实际带宽流量R与所述处理延时T的乘积小于或等于所述Cache容量时,所述负载模式为第一负载模式;
当判断得到所述入口实际带宽流量R与所述处理延时T的乘积大于所述Cache容量且所述Cache命中率保持在预设的第一命中率范围之内时,所述负载模式为第二负载模式;
当判断得到满足所述Cache命中率低于所述预设的第一命中率、所述任务队列中的任务数量超过预设的门限值、所述接收到反压信号或反压消息超过预设次数中的任一条件时,所述负载模式为第三负载模式。
7.根据权利要求1所述的方法,其特征在于,当所述负载模式为第三负载模式时,所述方法还包括:
在所述当前设备的入口节点处控制进入当前设备的数据流量或进行数据丢弃操作。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据Cache命中率调整对所述Cache进行读分配和写分配操作的数据长度。
9.根据权利要求8所述的方法,其特征在于,所述根据Cache命中率调整对所述Cache进行读分配和写分配操作的数据长度,包括:
读取当前的Cache命中率;
判断所述当前的Cache命中率是否超过预设的第二命中率或在预设的第二时间内均为100%;
如果所述当前的Cache命中率超过预设的第二命中率或在预设的第二时间内均为100%,则增加所述对所述Cache进行读分配和写分配操作的数据的长度;
如果所述当前的Cache命中率未超过预设的第二命中率或未在预设的第二时间内均为100%,判断在预设的第三时间内所述当前的Cache命中率均是否低于所述预设的第二命中率,如果在所述预设的第三时间内所述当前的Cache命中率均低于所述预设的第二命中率,则减少所述对所述Cache进行读分配和写分配操作的数据的长度。
10.一种存放数据的装置,其特征在于,所述装置包括:
判断模块,用于判断当前设备的负载模式;
第一控制模块,用于当所述判断模块判断得到所述负载模式为第一负载模式时,将所述当前设备正在处理的数据均存放在Cache中;
第二控制模块,用于当所述判断模块判断得到所述负载模式为第二负载模式时,将所述当前设备正在处理的使用频率超过预设频率的数据存放在所述Cache中,未超过预设频率的数据存放在所述Cache的下一级存储器中;
第三控制模块,用于当所述判断模块判断得到所述负载模式为第三负载模式时,将所述当前设备正在处理的对处理延时要求在预设时间内且使用频率超过所述预设频率的数据存放在所述Cache中。
11.根据权利要求10所述的装置,其特征在于,所述第一负载模式、第二负载模式、第三负载模式分别具体的为轻负载模式、中负载模式、重负载模式,且在所述第二负载模式下的所述Cache的负载大于在所述第一负载模式下的所述Cache的负载,在所述第三负载模式下的所述Cache的负载大于在所述第二负载模式下的所述Cache的负载。
12.根据权利要求10所述的装置,其特征在于,所述判断模块包括第一获取单元;
或,所述判断模块包括第一监测单元和第一判断单元;
其中,所述第一获取单元,用于获取用户通过软件配置为所述当前设备预设的负载模式;
所述第一监测单元,用于通过监测得到所述当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数;
所述第一判断单元,用于根据所述第一监测单元监测得到的所述当前设备中的入口节点实际带宽流量R、任务队列中的任务数量、处理延时T、Cache命中率、和接收到反压信号或反压消息的次数判断得到当前设备的负载模式。
13.根据权利要求12所述的装置,其特征在于,所述第一监测单元,包括:
第一监测子单元,用于在所述当前设备的入口节点处设立第一监测点,并在预设的第一时间段内对所述第一监测点进行监测得到所述入口实际带宽流量R;
第二监测子单元,用于在所述当前设备的Cache处设立第二监测点,并在所述预设的第一时间段内对所述第二监测点进行监测得到所述Cache命中率;
第三监测子单元,用于在所述当前设备的处理节点处设立第三监测点,并在所述预设的第一时间段内对所述第三监测点进行监测得到所述处理节点中待处理任务的数量;
第四监测子单元,用于在所述当前设备的出口节点处设立第四监测点,对所述第四监测点进行监测得到所述出口节点处待处理的任务的数量;
第一统计子单元,用于统计所述预设的第一时间段内所述任务队列中的任务数量,所述任务队列中的任务数量为所述处理节点中待处理任务的数量和所述出口节点处待处理的任务的数量的和;
第一计算子单元,用于计算得到所述当前设备对数据进行处理的所述处理延时T;
其中,所述当前设备至少包括所述入口节点、出口节点和用于对数据进行业务处理的所述处理节点。
14.根据权利要求13所述的装置,其特征在于,所述第一计算子单元,具体用于在所述入口节点处构建带有预设标记的数据,并将第一时间t1作为第一时间戳插入到所述带有预设标记的数据中,在所述出口节点处对输出的数据进行监测,当监测到所述插入第一时间戳后的带有预设标记的数据时,记录所述插入第一时间戳后的带有预设标记的数据的到达所述出口节点的时间为第二时间t2,根据第一时间t1和第二时间t2计算得到所述处理延时T=t2-t1。
15.根据权利要求12所述的装置,其特征在于,所述第一判断单元,包括:
第一判断子单元,用于当判断得到所述入口实际带宽流量R与所述处理延时T的乘积小于或等于所述Cache容量时,确定所述负载模式为第一负载模式;
第二判断子单元,用于当判断得到所述入口实际带宽流量R与所述处理延时T的乘积大于所述Cache容量且所述Cache命中率保持在预设的第一命中率范围之内时,所述负载模式为第二负载模式;
第三判断子单元,用于当判断得到满足所述Cache命中率低于所述预设的第一命中率、所述任务队列中的任务数量超过预设的门限值、所述接收到反压信号或反压消息超过预设次数中的任一条件时,所述负载模式为第三负载模式。
16.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第四控制模块,用于当所述负载模式为第三负载模式时,在所述当前设备的入口节点处控制进入当前设备的数据流量或进行数据丢弃操作。
17.根据权利要求10所述的装置,其特征在于,所述装置还包括:
调整模块,用于根据Cache命中率调整对所述Cache进行读分配和写分配操作的数据长度。
18.根据权利要求17所述的装置,其特征在于,所述调整模块,包括:
读取单元,用于读取当前的Cache命中率;
第二判断单元,用于判断所述当前的Cache命中率是否超过预设的第二命中率或在预设的第二时间内均为100%;
增加单元,用于当所述第二判断单元判断得到所述当前的Cache命中率超过预设的第二命中率或在预设的第二时间内均为100%时,增加所述对所述Cache进行读分配和写分配操作的数据的长度;
第三判断单元,用于当所述第二判断单元判断得到所述当前的Cache命中率未超过预设的第二命中率或未在预设的第二时间内均为100%时,判断在预设的第三时间内所述当前的Cache命中率均是否低于所述预设的第二命中率;
减少单元,用于当所述第三判断单元判断得到在所述预设的第三时间内所述当前的Cache命中率均低于所述预设的第二命中率时,减少所述对所述Cache进行读分配和写分配操作的数据的长度。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456117.7A CN102591799B (zh) | 2011-12-30 | 2011-12-30 | 一种存放数据的方法和装置 |
US13/730,705 US9208085B2 (en) | 2011-12-30 | 2012-12-28 | Method and apparatus for storing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456117.7A CN102591799B (zh) | 2011-12-30 | 2011-12-30 | 一种存放数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591799A CN102591799A (zh) | 2012-07-18 |
CN102591799B true CN102591799B (zh) | 2015-04-15 |
Family
ID=46480486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110456117.7A Active CN102591799B (zh) | 2011-12-30 | 2011-12-30 | 一种存放数据的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9208085B2 (zh) |
CN (1) | CN102591799B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778069B (zh) * | 2012-10-18 | 2017-09-08 | 深圳市中兴微电子技术有限公司 | 高速缓冲存储器的高速缓存块长度调整方法及装置 |
JP6027567B2 (ja) * | 2014-03-07 | 2016-11-16 | 株式会社東芝 | キャッシュメモリおよびプロセッサシステム |
US20150277764A1 (en) * | 2014-03-28 | 2015-10-01 | Kabushiki Kaisha Toshiba | Multi-mode nand-caching policy for hybrid-hdd |
CN108241583A (zh) * | 2017-11-17 | 2018-07-03 | 平安科技(深圳)有限公司 | 薪资计算的数据处理方法、应用服务器及计算机可读存储介质 |
CN111194060A (zh) * | 2019-12-19 | 2020-05-22 | 京信通信技术(广州)有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111897747A (zh) * | 2020-07-24 | 2020-11-06 | 宁波中控微电子有限公司 | 一种片上协处理器的Cache动态分配方法及片上系统 |
CN114442793B (zh) * | 2020-10-30 | 2023-07-07 | 中山市江波龙电子有限公司 | 存储控制器的运行频率调节方法、存储装置及存储介质 |
CN115601195B (zh) * | 2022-10-17 | 2023-09-08 | 桂林电子科技大学 | 基于电力用户实时标签的交易双向推荐系统及其方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1679006A (zh) * | 2002-08-23 | 2005-10-05 | 皇家飞利浦电子股份有限公司 | 处理器预取以匹配存储器总线协议特性 |
CN101375257A (zh) * | 2006-01-31 | 2009-02-25 | 高通股份有限公司 | 无来自正常分配的干扰情况下的高速缓存器锁定 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394531A (en) * | 1989-04-03 | 1995-02-28 | International Business Machines Corporation | Dynamic storage allocation system for a prioritized cache |
US6604174B1 (en) * | 2000-11-10 | 2003-08-05 | International Business Machines Corporation | Performance based system and method for dynamic allocation of a unified multiport cache |
JP2003242029A (ja) * | 2002-02-15 | 2003-08-29 | Hitachi Ltd | 半導体集積回路 |
US7496715B1 (en) * | 2003-07-16 | 2009-02-24 | Unisys Corporation | Programmable cache management system and method |
US7552235B2 (en) * | 2003-12-11 | 2009-06-23 | International Business Machines Corporation | Autonomic selection of a request routing policy based upon cache effectiveness |
JP2007272280A (ja) * | 2006-03-30 | 2007-10-18 | Toshiba Corp | データ処理装置 |
US7802057B2 (en) * | 2007-12-27 | 2010-09-21 | Intel Corporation | Priority aware selective cache allocation |
US7886110B2 (en) * | 2007-12-27 | 2011-02-08 | Intel Corporation | Dynamically adjusting cache policy based on device load in a mass storage system |
US8805949B2 (en) * | 2008-01-16 | 2014-08-12 | Netapp, Inc. | System and method for populating a cache using behavioral adaptive policies |
JP5142868B2 (ja) * | 2008-07-17 | 2013-02-13 | 株式会社東芝 | キャッシュメモリ制御回路及びプロセッサ |
US8112585B2 (en) * | 2009-04-30 | 2012-02-07 | Netapp, Inc. | Method and apparatus for dynamically switching cache policies |
US8443151B2 (en) * | 2009-11-09 | 2013-05-14 | Intel Corporation | Prefetch optimization in shared resource multi-core systems |
-
2011
- 2011-12-30 CN CN201110456117.7A patent/CN102591799B/zh active Active
-
2012
- 2012-12-28 US US13/730,705 patent/US9208085B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1679006A (zh) * | 2002-08-23 | 2005-10-05 | 皇家飞利浦电子股份有限公司 | 处理器预取以匹配存储器总线协议特性 |
CN101375257A (zh) * | 2006-01-31 | 2009-02-25 | 高通股份有限公司 | 无来自正常分配的干扰情况下的高速缓存器锁定 |
Also Published As
Publication number | Publication date |
---|---|
US20130191595A1 (en) | 2013-07-25 |
CN102591799A (zh) | 2012-07-18 |
US9208085B2 (en) | 2015-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102591799B (zh) | 一种存放数据的方法和装置 | |
CN111837110B (zh) | 一种用于减少存储器系统的存储器访问等待时间的方法和装置 | |
US10838626B2 (en) | Methods, apparatuses, and computer program products for controlling write requests in storage system | |
US7971074B2 (en) | Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system | |
KR101444990B1 (ko) | 멀티프로세서 코어 시스템에서 에너지 효율적 네트워크 패킷 프로세싱을 실행하기 위한 방법 및 장치 | |
US7773504B2 (en) | Bandwidth allocation for network packet traffic | |
JP3933027B2 (ja) | ディスクアレイ装置におけるキャッシュメモリ分割管理方式 | |
US7246205B2 (en) | Software controlled dynamic push cache | |
US8898674B2 (en) | Memory databus utilization management system and computer program product | |
CN110175140A (zh) | 融合式存储器件及其操作方法 | |
US9390010B2 (en) | Cache management | |
CN103729313B (zh) | Ssd缓存的输入输出流量控制方法及装置 | |
WO2011126816A2 (en) | Performance and traffic aware heterogeneous interconnection network | |
CN110096350B (zh) | 基于集群节点负载状态预测的冷热区域划分节能存储方法 | |
CN104572498B (zh) | 报文的缓存管理方法和装置 | |
CN110119304A (zh) | 一种中断处理方法、装置及服务器 | |
US9734048B2 (en) | Storage management device, performance adjustment method, and computer-readable recording medium | |
US20080178188A1 (en) | Critical resource management | |
CN106484531A (zh) | 内存访问仲裁方法、电路及装置 | |
CN106569728B (zh) | 多磁盘阵列raid共享写缓存的处理方法及装置 | |
Jian et al. | Understanding and optimizing power consumption in memory networks | |
CN114936171A (zh) | 存储访问控制器架构 | |
CN107085557A (zh) | 直接存储器访问系统以及相关方法 | |
KR20210061583A (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
JP3921192B2 (ja) | 適応性を具えた指令とデータアクセス方法と構造 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |