CN104298471A - 一种高速缓存的数据写入方法及装置 - Google Patents
一种高速缓存的数据写入方法及装置 Download PDFInfo
- Publication number
- CN104298471A CN104298471A CN201410475775.4A CN201410475775A CN104298471A CN 104298471 A CN104298471 A CN 104298471A CN 201410475775 A CN201410475775 A CN 201410475775A CN 104298471 A CN104298471 A CN 104298471A
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- read
- cache
- speed
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种高速缓存的数据写入方法及装置,属于数据存储领域。本发明实施例提供的高速缓存的数据写入方法包括执行指令;当根据所述指令进行缓存的数据为可能被处理器再次读取的数据,将所述可能被处理器再次读取的数据写入第一逻辑高速缓存中;当根据所述指令进行缓存的数据为可能被处理器单次读取的数据,将所述可能被处理器单次读取的数据写入第二逻辑高速缓存中。采用这种缓存方法,不会导致可能被处理器单次读取的数据占满所有高速缓存容量,能够保证可能被处理器再次读取的数据在所有高速缓存容量中占有一定的容量比例。处理器从高速缓存中读取数据的可能性较高,从主存储器中读取数据的可能性较低,而处理器从高速缓存中获取数据的速度高于从主存储器中获取数据的速度,处理器能够达到较高的获取数据速度。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种高速缓存的数据写入方法及装置。
背景技术
高速缓存是处理器与主存储器之间的数据中转介质,处理器从高速缓存中读取数据的速度远远大于从主存储器中读取数据的速度。
如图1所示,现有技术中一种高速缓存的数据写入方法,应用于具有唯一逻辑的高速缓存***中,该高速缓存由多个物理高速缓存组成
该数据读写方法包括执行指令,当高速缓存中查询不到所需数据时,从主存储器中读取所需数据并将与所需数据相邻的单元数据写入高速缓存中。
数据被写入唯一的逻辑高速缓存中,为处理器从高速缓存中读取数据做准备。然而相邻的单元数据被处理器再次读取的可能性不尽相同,当可能被处理器再次读取的数据与可能被处理器单次读取的数据都被写入唯一的逻辑高速缓存中,这两种类型的数据占用高速缓存容量的比例变化很大,很容易出现所有高速缓存容量中可能被处理器单次读取的数据容量大于可能被处理器再次读取的数据容量,甚至出现可能被处理器单次读取的数据占满所有高速缓存容量。此时,在执行指令后,处理器从高速缓存中查询不到所需数据而从主存储器中读取数据的可能性较高,从高速缓存中读取数据的可能性较低,而处理器从主存储器中获取数据的速度低于从高速缓存中获取数据的速度,这导致处理器获取数据的速度较慢。
发明内容
本发明的实施例提供一种高速缓存数据写入方法及装置,使得高速缓存协助处理器读取可能被处理器单次读取的数据时,仍能使处理器达到较高的获取数据速度。
为了实现上述发明目的,本发明的实施例采用如下技术方案:
一方面,本发明的实施例提供一种高速缓存的数据写入方法,包括
执行指令;
当根据指令进行缓存的数据为可能被处理器再次读取的数据,将可能被处理器再次读取的数据存储到第一逻辑高速缓存中;
当根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。
另一方面,本发明实施例提供一种高速缓存的数据写入装置,包括
指令执行单元,用于执行指令;
数据识别单元,用于判断需要缓存的数据的类型;
第一逻辑高速缓存,用于存储可能被处理器再次读取的数据;
第二逻辑高速缓存,用于存储可能被处理器单次读取的数据;
数据存储单元,当根据指令进行缓存的数据为可能被处理器再次读取的数据,将可能被处理器再次读取的数据存储到第一逻辑高速缓存中,当根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。
现有技术中,写入高速缓存中的数据被处理器再次读取的可能性不尽相同,处理器下次读取的数据大多属于可能被处理器再次读取的数据,较少属于可能被处理器再次读取的数据。当可能被处理器再次读取的数据与可能被处理器单次读取的数据都被写入唯一的逻辑高速缓存中,这两种类型的数据占用高速缓存容量的比例变化很大,很容易出现所有高速缓存容量中可能被处理器单次读取的数据容量大于可能被处理器再次读取的数据容量,甚至出现可能被处理器单次读取的数据占满所有高速缓存容量。处理器从主存储器中读取数据的可能性较高,从高速缓存中读取数据的可能性较低,而处理器从主存储器中获取数据的速度低于从高速缓存中获取数据的速度,这导致处理器获取数据的速度较慢。
本发明实施例中,执行指令,当根据指令进行缓存的数据为可能被处理器再次读取的数据,将可能被处理器再次读取的数据存储到第一逻辑高速缓存中;当根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。采用这种缓存方法,不会导致可能被处理器单次读取的数据占满所有高速缓存容量,能够保证可能被处理器再次读取的数据在所有高速缓存容量中占有一定的容量比例。处理器从高速缓存中读取数据的可能性较高,从主存储器中读取数据的可能性较低,而处理器从高速缓存中获取数据的速度高于从主存储器中获取数据的速度,处理器能够达到较高的获取数据速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1为现有技术中一种高速缓存数据写入方法流程图;
图2为本发明实施例提供的一种高速缓存数据写入方法流程图;
图3为本发明实施例提供的另一种高速缓存数据写入方法流程图。
具体实施方式
为使本发明的目的和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的实施例提供一种高速缓存的数据写入方法,包括
101、执行指令;
每一类型的处理器拥有各自特定的指令***,其指令内容和格式有所不同。一条指令通常具有操作码及地址码。操作码指明指令要完成的操作的类型或性质,如取数、做加法或输出数据等;地址码指明操作对象的内容或所在的存储单元地址。
102、当根据指令进行缓存的数据为可能被处理器再次读取的数据,将可能被处理器再次读取的数据存储到第一逻辑高速缓存中;
103、当根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。
执行指令伴随着对数据的读写操作,包括将数据写入高速缓存中、处理器从高速缓存中加载数据等。
根据不同的应用场景可以将数据区分为可能被处理器再次读取的数据及可能被处理器单次读取的数据,第一逻辑高速缓存用于存储可能被处理器再次读取的数据,第二逻辑高速缓存用于存储可能被处理器单次读取的数据。
在高速缓存中,可供处理器读取的数据可以分为两类,一类是可能被处理器单次读取的数据,另外一类是可能被处理器再次读取的数据,数据的这种划分不是基于数据自身的属性,而是根据处理器读取数据时的应用场景。
例如,当板上***(SOC:System on Chip)中存在视频加速模块的时候,对于视频信息,处理器只是负责将其拷贝到视频加速模块能够访问到的位置,后续对视频信息的解码工作由视频加速模块完成。在这种应用场景下,处理器一般只需要对视频信息进行单次读取,存储到高速缓存中的视频信息一般不会被处理器再次调用。可能被处理器单次读取的数据可以被后续任意写入高速缓存中的数据替换,因为这类数据被处理器再次读取的可能性很低,将其替换掉不会提高处理器从主存储器中读取数据的可能性。
而当处理器处于对哈夫曼表(huffman表)进行解码的工作中,为了解码压缩哈夫曼码字,对哈夫曼表的读取频率非常高。在这种应用场景下,处理器一般需要对哈夫曼表的相关数据进行再次读取,存储到高速缓存中的哈夫曼表相关数据会被处理器再次调用。高速缓存中可能被处理器再次读取的数据若被可能被处理器单次读取的数据替换,出现本可以从高速缓存中读取数据却需要转到主存储器中读取数据的情况可能性较高,提高了处理器从主存储器中读取数据的可能性。
程序开发人员在编写程序的过程中根据应用场景的不同判断程序所调用的数据属于可能被处理器单次读取的数据或可能被处理器再次读取的数据。
根据应用场景的不同,可以采用不同的指令对应不同的数据,也可以采用在一条指令中通过设置某些标志位等形式实现不同的指令对应不同的数据,从而根据指令的不同区分可能被处理器单次读取的数据与可能被处理器再次读取的数据。如采用load_onetime指令对应可能被处理器单次读取的数据,采用load指令对应可能被处理器再次读取的数据。load_onetime指令与load指令只是对应高速缓存架构的两种指令形式。
由于处理器的写入速度高于高速缓存的读取速度,高速缓存的读取速度高于主存储器的读取速度,所以处理器从高速缓存中读取数据比从主存储器中读取数据更快。
根据程序局部性原理,即正在使用的主存储器中某一单元数据邻近的单元数据将被调用的可能性很大,因此,当处理器读取主存储器中某一单元数据时,会将该单元数据邻近的单元数据写入高速缓存中,为处理器下次读取数据做准备。
写入高速缓存中的数据被处理器再次读取的可能性不尽相同。
对于可能被处理器再次读取的数据,其写入高速缓存中,处理器较多次的从高速缓存中读取数据的可能性较高,从而能够保持处理器较快的获取数据速度,
对于可能被处理器单次读取的数据,其写入高速缓存中,处理器较多次的从主存储器中读取数据可能性较高,从而使得处理器获取数据的速度较慢。
所以,高速缓存中存放的可能被处理器多次读取的数据越多,处理器获取数据的速度越快,高速缓存中存放的可能被处理器单次读取的数据越多,处理器获取数据的速度越慢。
现有技术中,可能被处理器再次读取的数据与可能被处理器单次读取的数据被写入同一个逻辑高速缓存中。数据的读取及写入过程中,这两种数据在高速缓存中占用容量的比例变化很大,很容易出现高速缓存中可能被处理器单次读取的数据容量大于可能被处理器再次读取的数据容量,甚至容易出现高速缓存中全部是可能被处理器单次读取的数据,使得处理器较多次的从主存储器中读取数据的可能性较高,从而使得处理器获取数据的速度较慢。
本发明实施例中,执行指令,当根据指令进行缓存的数据为可能被处理器再次读取的数据,将可能被处理器再次读取的数据存储到第一逻辑高速缓存中;当根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中,可能被处理器再次读取的数据与可能被处理器单次读取的数据被缓存到不同的高速缓存中,不会出现可能被处理器单次读取的数据占满所有高速缓存的空间,也能够保证可能被处理器再次读取的数据在高速缓存中占有一定的容量比例,处理器较多次的从高速缓存中读取数据的可能性较高,从而能够达到较高的获取数据速度。
如2图所示,本发明实施例提供一种高速缓存的数据写入方法,包括
201、执行指令;
每一类型处理器拥有自己特定的指令***,其指令内容和格式有所不同。一条指令通常具有操作码及地址码。操作码指明指令要完成的操作的类型或性质,如取数、做加法或输出数据等;地址码指明操作对象的内容或所在的存储单元地址。
202、查询第一逻辑高速缓存与第二逻辑高速缓存中是否存在所需数据;
203、当第一逻辑高速缓存与第二逻辑高速缓存中不存在所需数据时,从主存储器中读取所需数据;
204、当根据指令进行缓存的数据为可能被处理器再次读取的数据,将可能被处理器再次读取的数据存储到第一逻辑高速缓存中;
205、根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。
执行指令伴随着对数据的读写操作,包括将数据写入高速缓存中、处理器从高速缓存中加载数据等。
根据不同的应用场景可以将数据区分为可能被处理器再次读取的数据及可能被处理器单次读取的数据,第一逻辑高速缓存用于存储可能被处理器再次读取的数据,第二逻辑高速缓存用于存储可能被处理器单次读取的数据。
在高速缓存中,可供处理器读取的数据可以分为两类,一类是可能被处理器单次读取的数据,另外一类是可能被处理器再次读取的数据,数据的这种划分不是基于数据自身的属性,而是根据处理器读取数据时的应用场景。
例如,当板上***(SOC:System on Chip)中存在视频加速模块的时候,对于视频信息,处理器只是负责将其拷贝到视频加速模块能够访问到的位置,后续对视频信息的解码工作由视频加速模块完成。在这种应用场景下,处理器一般只需要对视频信息进行单次读取,存储到高速缓存中的视频信息一般不会被处理器再次调用。可能被处理器单次读取的数据可以被后续任意写入高速缓存中的数据替换,因为这类数据被处理器再次读取的可能性很低,将其替换掉不会提高处理器从主存储器中读取数据的可能性。
而当处理器处于对哈夫曼表(huffman表)进行解码的工作中,为了解码压缩哈夫曼码字,对哈夫曼表的读取频率非常高。在这种应用场景下,处理器一般需要对哈夫曼表的相关数据进行再次读取,存储到高速缓存中的哈夫曼表相关数据会被处理器再次调用。高速缓存中可能被处理器再次读取的数据若被可能被处理器单次读取的数据替换,出现本可以从高速缓存中读取数据却需要转到主存储器中读取数据的情况可能性较高,提高了处理器从主存储器中读取数据的可能性。
程序开发人员能够在编写程序的过程中根据应用场景的不同判断程序所调用的数据属于可能被处理器单次读取的数据或可能被处理器再次读取的数据。
根据应用场景的不同,为了区分可能被处理器单次读取的数据与可能被处理器再次读取的数据,可以采用不同的指令对应不同的数据,也可以采用在一条指令中通过设置某些标志位等形式实现不同的指令对应不同的数据。如采用load_onetime指令对应可能被处理器单次读取的数据,采用load指令对应可能被处理器再次读取的数据。load_onetime指令与load指令只是对应高速缓存架构的两种指令形式。
由于处理器的写入速度高于高速缓存的读取速度,高速缓存的读取速度高于主存储器的读取速度,所以处理器从高速缓存中读取数据比从主存储器中读取数据更快。
根据程序局部性原理,即正在使用的主存储器中某一单元数据邻近的单元数据将被调用的可能性很大,因此,当处理器读取主存储器中某一单元数据时,会将该单元数据邻近的单元数据写入高速缓存中,为处理器下次读取数据做准备。
写入高速缓存中的数据被处理器再次读取的可能性不尽相同。
对于可能被处理器再次读取的数据,其写入高速缓存中,处理器较多次的从高速缓存中读取数据的可能性较高,从而能够保持处理器较快的获取数据速度,
对于可能被处理器单次读取的数据,其写入高速缓存中,处理器较多次的从主存储器中读取数据可能性较高,从而使得处理器获取数据的速度较慢。
所以,高速缓存中存放的可能被处理器多次读取的数据越多,处理器获取数据的速度越快,高速缓存中存放的可能被处理器单次读取的数据越多,处理器获取数据的速度越慢。
现有技术中,可能被处理器再次读取的数据与可能被处理器单次读取的数据被写入同一个逻辑高速缓存中。数据的读取及写入过程中,这两种数据在高速缓存中占用容量的比例变化很大,很容易出现高速缓存中可能被处理器单次读取的数据容量大于可能被处理器再次读取的数据容量,甚至出现可能被处理器单次读取的数据占满所有高速缓存的空间,使得处理器较多次的从主存储器中读取数据的可能性较高,从而导致处理器获取数据的速度较慢。
本发明实施例中,执行指令,当根据指令进行缓存的数据为可能被处理器再次读取的数据,将可能被处理器再次读取的数据存储到第一逻辑高速缓存中;当根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。可能被处理器再次读取的数据与可能被处理器单次读取的数据被缓存到不同的高速缓存中,不会出现可能被处理器单次读取的数据占满所有高速缓存的空间,能够保证可能被处理器再次读取的数据在高速缓存中占有一定的容量比例。处理器较多次的从高速缓存中读取数据的可能性较高,从而能够达到较高的获取数据速度。
高速缓冲通常由高速存储器、联想存储器、替换逻辑电路和相应的控制线路组成。在有高速缓冲存储器的计算机***中,处理器存取主存储器的地址划分为行号、列号和组内地址三个字段。于是,主存储器就在逻辑上划分为若干行;每行划分为若干的存储单元组;每组包含几个或几十个字。高速存储器也相应地划分为行和列的存储单元组。二者的列数相同,组的大小也相同,但高速存储器的行数却比主存储器的行数少得多。
联想存储器用于地址联想,有与高速存储器相同行数和列数的存储单元。当主存储器某一列某一行存储单元组调入高速存储器同一列某一空着的存储单元组时,与联想存储器对应位置的存储单元就记录调入的存储单元组在主存储器中的行号。
主存地址分为高中低三部分,高部分是包含列号信息,中间部分包含行号信息,低部分包含位置信息,通过列号信息判断数据在高速存储器中的列位置,再通过行号信息判断数据在该列的哪一行中,再根据位置信息判断数据在该列该行中具***置。
当处理器需要读取数据时,硬件首先自动对主存地址的列号字段进行译码,以便将联想存储器该列的全部行号与主存地址的行号字段进行比较:若有相同的,表明要存取的主存储器单元已在高速存储器中,称为命中,硬件就将存取主存储器的地址映射为高速存储器的地址并执行存取操作;若都不相同,表明该单元不在高速存储器中,称为脱靶,硬件将执行存取主存储器操作并自动将该单元所在的那一主存储器单元组调入高速存储器相同列中空着的存储单元组中,同时将该组在主存储器中的行号存入联想存储器对应位置的单元内。
具体地,处理器将需要读取的数据的主存地址分别发送给第一逻辑高速缓存与第二逻辑高速缓存,由第一逻辑高速缓存的控制逻辑解译主存地址中的列号字段,并查询第一逻辑高速缓存的目录表该列中是否存在与主存地址中的行号相同的行,由第二逻辑高速缓存的控制逻辑解译主存地址中的列号字段,并查询第二逻辑高速缓存的目录表该列中是否存在与主存地址中的行号相同的行,当在第一逻辑高速缓存或第二逻辑高速缓存中查询到相同的列、行号时,根据位置信息找到所要读取的数据,此时处理器直接从高速缓存中读取该主存地址对应的数据。其中,处理器在读取数据之前还会检验该数据是否有效。
当高速缓存的目录表中不存在主存地址中对应的列、行号信息,处理器根据应用场景判断所要读取的数据是否为可能被处理器单次读取的数据,若所要读取的数据为可能被处理器单次读取的数据,则该数据邻近的单元数据都为可能被处理器单次读取的数据,将这些可能被处理器单次读取的数据缓存到第二逻辑高速缓存中;
当高速缓存的目录表中查询不到该主存地址时,处理器根据应用场景判断所要读取的数据是否为可能被处理器再次读取的数据,若所要读取的数据为可能被处理器再次读取的数据,则该数据邻近的单元数据为可能被处理器再次读取的数据,将这些可能被处理器再次读取的数据缓存到第一逻辑高速缓存中。
此外,处理器根据应用场景判断所要读取的数据属于可能被处理器单次读取的数据还是属于可能被处理器再次读取的数据,这一步骤可以放在处理器向高速缓存发送主存地址之前,当高速缓存的目录表中查询不到所需要的主存地址时或主存地址对应的数据经验证属于无效时,若处理器所要读取的数据为可能被处理器单次读取的数据,则该数据邻近的单元数据都为可能被处理器单次读取的数据,将这些可能被处理器单次读取的数据缓存到第二逻辑高速缓存中,若处理器所要读取的数据为可能被处理器再次读取的数据,则该数据邻近的单元数据为可能被处理器再次读取的数据,将这些可能被处理器再次读取的数据缓存到第一逻辑高速缓存中。
如图3所示,本发明实施例提供一种高速缓存的数据写入装置,包括
指令执行单元D,用于执行指令;
数据识别单元I,判断需要缓存的数据的类型;
数据存储单元R,当根据指令进行缓存的数据为可能被处理器再次读取的数据,将所述可能被处理器再次读取的数据存储到第一逻辑高速缓存C1中,当根据指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据存储到第二逻辑高速缓存C2中
第一逻辑高速缓存C1,用于存储可能被处理器再次读取的数据;
第二逻辑高速缓存C2,用于存储可能被处理器单次读取的数据。
第一逻辑高速缓存与第二逻辑高速缓存是逻辑上的两个高速缓存,其物理形态可以是独立的高速缓存,也可是一个高速缓存的不同分区,也可以是上述两种的结合。
现有技术中,可能被处理器再次读取的数据与可能被处理器单次读取的数据被写入同一个高速缓存中,这两种数据的容量比例变化很大,很容易出现高速缓存中可能被处理器单次读取的数据容量大于可能被处理器再次读取的数据容量,甚至容易出现高速缓存中全部是可能被处理器单次读取的数据,使得处理器较多次的从主存储器中读取数据的可能性较高,从而使得处理器获取数据的速度较慢。
本发明实施例中,可能被处理器再次读取的数据缓存到第一逻辑高速缓存中,可能被处理器单次读取的数据缓存到第二逻辑高速缓存中,可能被处理器再次读取的数据与可能被处理器单次读取的数据被缓存到不同的高速缓存中,不会出现可能被处理器单次读取的数据占满所有高速缓存的空间,能够保证可能被处理器再次读取的数据在高速缓存中占有一定的容量比例,处理器较多次的从高速缓存中读取数据的可能性较高,从而能够保持较快的获取数据速度。
优选的,上述高速缓存的数据写入装置还包括
查询单元S,用于查询第一逻辑高速缓存C1与第二逻辑高速缓存C2中是否存在指令所需的数据;
数据存储单元R还用于,当第一逻辑高速缓存与第二逻辑高速缓存中不存在所需的数据时,从主存储器中读取所述数据。
具体地,指令执行单元D在执行指令时,查询单元S会在第一逻辑高速缓存C1与第二逻辑高速缓存C2中查询是否存在执行指令所需要的数据,当第一逻辑高速缓存C1与第二逻辑高速缓存C2中不存在执行指令所需要的数据时,数据存储单元R从主存储器中读取所需要的数据,同时,数据存储单元R根据数据识别单元I对需要缓存的数据类型的判断,将可能被处理器再次读取的数据存储到第一逻辑高速缓存,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。
优选的,第一逻辑高速缓存的容量大于等于第二逻辑高速缓存的容量。
在具体的实施例中,高速缓存的总容量是固定的。可能被处理器再次读取的数据缓存到第一逻辑高速缓存中,可能被处理器单次读取的数据缓存到第二逻辑高速缓存中,可能被处理器再次读取的数据与可能被处理器单次读取的数据被缓存到不同的高速缓存中,不会出现可能被处理器单次读取的数据占满所有高速缓存的空间,第一逻辑高速缓存的容量大于等于第二逻辑高速缓存的容量,可以使得高速缓存中可能被处理器再次读取的数据等于或多于可能被处理器单次读取的数据,处理器较多次的从高速缓存中读取数据的可能性较高,从而能够保持较快的获取数据速度。
优选的,第一逻辑高速缓存与第二逻辑高速缓存具有相同的逻辑结构。
高速缓存与主存储器的地址映射有全相联映射方式、直接相联映射方式和组组相联映射方式,高速缓存的结构因此可以分为全相联结构、直接相联结构和组组相联结构。
第一逻辑高速缓存与第二逻辑高速缓存拥有相同的结构,使得在未存入高速缓存数据之前,两者对数据的存储方式是相同,即两者可以是等效的高速缓存,这使得可以灵活地通过控制逻辑来选择数据存储的目标高速缓存。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个数据识别单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ead-Only Memoy,简称OM)、随机存取存储器(andom Aess Memoy,简称AM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种高速缓存的数据写入方法,其特征在于,包括:
执行指令;
当根据所述指令进行缓存的数据为可能被处理器再次读取的数据,将所述可能被处理器再次读取的数据写入第一逻辑高速缓存中;
当根据所述指令进行缓存的数据为可能被处理器单次读取的数据,将所述可能被处理器单次读取的数据写入第二逻辑高速缓存中。
2.如权利要求1所述的高速缓存的数据写入方法,其特征在于,根据不同的应用场景将数据区分为所述可能被处理器再次读取的数据及所述可能被处理器单次读取的数据。
3.如权利要求2所述的高速缓存的数据写入方法,其特征在于在所述执行指令之后、将数据写入高速缓存之前,还包括
查询第一逻辑高速缓存与第二逻辑高速缓存中是否存在所需数据;
当所述第一逻辑高速缓存与所述第二逻辑高速缓存中不存在所述所需数据时,从主存储器中读取所述数据。
4.一种高速缓存的数据写入装置,其特征在于,包括
指令执行单元,用于执行指令;
数据识别单元,用于判断需要缓存的数据的类型;
第一逻辑高速缓存,用于存储所述可能被处理器再次读取的数据;
第二逻辑高速缓存,用于存储所述可能被处理器单次读取的数据;
数据存储单元,当根据所述指令进行缓存的数据为可能被处理器再次读取的数据,将所述可能被处理器再次读取的数据写入第一逻辑高速缓存中,当根据所述指令进行缓存的数据为可能被处理器单次读取的数据,将可能被处理器单次读取的数据写入第二逻辑高速缓存中。
5.如权利要求4所述的高速缓存的数据写入装置,其特征在于还包括
查询单元,用于查询第一逻辑高速缓存与第二逻辑高速缓存中是否存在所述指令所需的数据;
所述数据存储单元还用于,当所述第一逻辑高速缓存与所述第二逻辑高速缓存中不存在所述数据时,从主存储器中读取所述数据。
6.如权利要求4所述的高速缓存的数据写入装置,其特征在于所述第一逻辑高速缓存的容量大于等于所述第二逻辑高速缓存的容量。
7.如权利要求4所述的高速缓存的数据写入装置,其特征在于所述第一逻辑高速缓存与所述第二逻辑高速缓存具有相同的逻辑结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410475775.4A CN104298471A (zh) | 2014-09-16 | 2014-09-16 | 一种高速缓存的数据写入方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410475775.4A CN104298471A (zh) | 2014-09-16 | 2014-09-16 | 一种高速缓存的数据写入方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104298471A true CN104298471A (zh) | 2015-01-21 |
Family
ID=52318218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410475775.4A Pending CN104298471A (zh) | 2014-09-16 | 2014-09-16 | 一种高速缓存的数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298471A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783403A (zh) * | 2017-11-10 | 2019-05-21 | 深圳超级数据链技术有限公司 | 读取数据的方法、装置和数据处理器 |
CN110196684A (zh) * | 2018-02-27 | 2019-09-03 | 爱思开海力士有限公司 | 数据存储装置、其操作方法以及具有其的存储*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192198A (zh) * | 2006-12-01 | 2008-06-04 | 国际商业机器公司 | 在多处理器***中高速缓存数据的方法和多处理器*** |
CN102169464A (zh) * | 2010-11-30 | 2011-08-31 | 北京握奇数据***有限公司 | 一种用于非易失性存储器的缓存方法、装置及智能卡 |
CN103297438A (zh) * | 2013-06-20 | 2013-09-11 | 上海辰锐信息科技公司 | 一种用于移动终端安全机制的缓存访问控制方法 |
CN103858112A (zh) * | 2013-12-31 | 2014-06-11 | 华为技术有限公司 | 一种数据缓存方法、装置及*** |
-
2014
- 2014-09-16 CN CN201410475775.4A patent/CN104298471A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192198A (zh) * | 2006-12-01 | 2008-06-04 | 国际商业机器公司 | 在多处理器***中高速缓存数据的方法和多处理器*** |
CN102169464A (zh) * | 2010-11-30 | 2011-08-31 | 北京握奇数据***有限公司 | 一种用于非易失性存储器的缓存方法、装置及智能卡 |
CN103297438A (zh) * | 2013-06-20 | 2013-09-11 | 上海辰锐信息科技公司 | 一种用于移动终端安全机制的缓存访问控制方法 |
CN103858112A (zh) * | 2013-12-31 | 2014-06-11 | 华为技术有限公司 | 一种数据缓存方法、装置及*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783403A (zh) * | 2017-11-10 | 2019-05-21 | 深圳超级数据链技术有限公司 | 读取数据的方法、装置和数据处理器 |
CN110196684A (zh) * | 2018-02-27 | 2019-09-03 | 爱思开海力士有限公司 | 数据存储装置、其操作方法以及具有其的存储*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819497B (zh) | 一种内存分配方法、装置及*** | |
US8595451B2 (en) | Managing a storage cache utilizing externally assigned cache priority tags | |
US7970806B2 (en) | Methods and apparatus for file management using partitioned file metadata | |
US9244883B2 (en) | Reconfigurable processor and method of reconfiguring the same | |
US8732413B2 (en) | Method and system for preloading page using control flow | |
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 | |
US8886884B2 (en) | System and method for increasing read and write speeds of hybrid storage unit | |
US20120151125A1 (en) | Data processing method for nonvolatile memory system | |
CN103534688B (zh) | 数据恢复方法、存储设备和存储*** | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN103955433A (zh) | 盖瓦磁记录硬盘、盖瓦磁记录硬盘写数据的方法及装置 | |
CN102959548B (zh) | 数据存储方法、查找方法及装置 | |
US8984267B2 (en) | Pinning boot data for faster boot | |
CN103176914A (zh) | 一种低缺失率、低缺失惩罚的缓存方法和装置 | |
US20150082014A1 (en) | Virtual Storage Devices Formed by Selected Partitions of a Physical Storage Device | |
CN105608013A (zh) | 一种集成mram的存储卡控制芯片及存储卡 | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
US8656133B2 (en) | Managing storage extents and the obtaining of storage blocks within the extents | |
CN104298471A (zh) | 一种高速缓存的数据写入方法及装置 | |
US20180181318A1 (en) | Storage control device | |
CN103885890A (zh) | 高速缓冲存储器cache中cache块的替换处理方法和装置 | |
KR102658600B1 (ko) | 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법 | |
CN104375955A (zh) | 高速缓冲存储器设备及其控制方法 | |
CN108519860B (zh) | 一种ssd读命中的处理方法和装置 | |
CN103488772A (zh) | 一种通过外存对文件进行缓存的方法、***及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170215 Address after: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Applicant after: Qingdao Hisense Electric Co., Ltd. Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Applicant before: Qingdao Hisense Xinxin Technology Co., Ltd. |
|
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 |
Application publication date: 20150121 |
|
RJ01 | Rejection of invention patent application after publication |