CN110688329B - 一种可同时支持多套Cache数据私有段动态设置的方法 - Google Patents
一种可同时支持多套Cache数据私有段动态设置的方法 Download PDFInfo
- Publication number
- CN110688329B CN110688329B CN201910839658.4A CN201910839658A CN110688329B CN 110688329 B CN110688329 B CN 110688329B CN 201910839658 A CN201910839658 A CN 201910839658A CN 110688329 B CN110688329 B CN 110688329B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- private
- address
- written
- 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
Images
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
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种可同时支持多套Cache数据私有段动态设置的方法,包括步骤S1、确定目标数据Cache中需要设置的n套私有段数据位置地址,为各个私有段数据设置相对应的n套第一私有段寄存器;S2、在目标数据Cache中分别设置与每套私有段数据相对应的第一比较器、第二比较器;S3、按一定规则对需要写入Cache中的数据行进行判断,来确定其是否具有“私有段标准”;S4、确认符合“私有段标准”后,在指令Cache中生成私有段设置指令;S5、设置指令发射规则判断器,对指令Cache内的指令执行情况进行判断;S6、确认在指令Cache内排列在私有段设置指令前的指令全部执行结束后,开始执行私有段设置指令,将需要写入Cache中的数据行写入与对应的私有段位置地址相联的数据Cache中。
Description
技术领域
本发明涉及计算机存储***领域,具体涉及一种可同时支持多套Cache数据私有段动态设置的方法。
背景技术
在计算机技术发展过程中,主存储器存取速度一直比CPU(处理器)处理速度慢得多,使的CPU的高速处理能力不能充分发挥,整个计算机***的工作效率受到影响。为了缓和CPU和主存储器之间速度不匹配的矛盾,一种较常用的方法是在存储层次上采用cache(高速缓存器)进行缓存。
目前,高速缓存cache大小是CPU的重要指标之一,其结构与大小对CPU速度的影响非常大。简单地讲,缓存就是用来存储一些常用或即将用到的数据或指令,当需要这些数据或指令的时候直接从缓存中读取,这样比到内存甚至硬盘中读取要快得多,能够大幅度提升cpu的处理速度。
而数据cache(Dcache)是计算机存储***的高速缓存cache的重要组成部分,由于Dcache中存储的是数据,其值会根据指令操作的不同而改变。所以对于计算机存储***的存储效率与主存写回效率都有着决定性的影响。而目前的数据Cache设计可支持私有段的设置,以保证私有段数据的非共享、全主存块的淘汰。但是,目前的私有段设置存在一些问题。一是,目前的数据Cache私有段为静态设置,私有段在程序开始运行前设置,程序运行过程中不能改变,不支持变化的私有段。二是,目前的数据Cache设置一般只支持一套私有段设置,对于不连续的私有段,无法实现同时支持。
另外,现有的数据Cache的控制器在动态设置私有段后,大多缺少乱序发射、乱序执行的所存储的指令数据流水线的判断与执行能力,从而在支持非法私有段的设置时会影响Cache行的私有段判断结果。
因此,一种可支持非法私有段的设置、能保证Cache行的私有段判断效率、能保证运行过程中对私有段设置前、私有段有效期与私有段取消后的数据的逻辑顺序正确性的多套Cache数据私有段动态设置的方法变得十分必要。
发明内容
为了解决上述问题,本发明采用的技术方案是提出了一种可同时支持多套Cache数据私有段动态设置的方法,该方法用于数据Cache的私有段数据的判别与写入,能对多套Cache数据私有段的数据进行动态设置,并能保证设置后的硬件的运行时逻辑顺序无误。
本发明的一种可同时支持多套Cache数据私有段动态设置的方法包括下述步骤:S1 、确定目标数据Cache中需要设置的n套私有段数据位置地址,为各个私有段数据设置相对应的n套第一私有段寄存器;S2、在目标数据Cache中分别设置与每套私有段数据相对应的第一比较器、第二比较器;S3、按一定规则对需要写入Cache中的数据行进行判断,来确定其是否具有“私有段标准”;S4、确认需要写入Cache中的数据行符合“私有段标准”后,在指令Cache中生成私有段设置指令;S5、设置特定的指令发射规则判断器,进而对指令Cache内的指令执行情况进行判断;S6、确认在指令Cache内排列在私有段设置指令前的指令全部执行结束后,开始执行私有段设置指令,将需要写入Cache中的数据行写入与对应的私有段位置地址相联的数据Cache中。
进一步,所述步骤S1中,每套第一私有段寄存器均包括私有段起始地址寄存器、私有段结束地址寄存器。
进一步,所述步骤S2中,所述第一比较器、第二比较器分别为访存地址和私有段起始地址的比较器、访存地址和私有段结束地址比较器。
进一步,步骤S3具体为:S31、获取需要写入Cache中的数据行的访存地址;S32、判断需要写入Cache中的数据行的访存地址是否存在;S33、确定需要写入Cache中的数据行的访存地址存在时,将其访存地址送入相应的私有段数据的第一比较器、第二比较器中进行对照;S34、确定需要写入Cache中的数据行的访存地址与相应的私有段数据的起始与结束地址是相对应时,判断目标数据行的是否存在与数据Cache的私有段相同的私有段标识,所述私有段标识为存储在目标数据行的有效位的字符标识;S35、当确定目标数据行的存在私有段标识时,则确认该需要写入Cache中的数据行符合“私有段标准”。
进一步,步骤S32“判断需要写入Cache中的数据行的访存地址是否存在”具体为:将需要写入Cache中的数据行的标签域(Tag)中的内容同时读出;将Tag的内容与地址高端进行比较,如果相匹配,则说明DCache(数据Cache)命中,需要写入数据的访存地址存在。
进一步,步骤S34中的数据Cache的私有段标识可以通过Cache控制器进行动态设置。
进一步,当写入数据Cache的私有段中的数据行达到了cache中的文件数据的临界值时,将所述cache中临界值以内的所有文件数据替换掉原始Cache数据。
本发明通过为每套私有段设置相应的段寄存器,从而可实现DCache控制器对多套私有段的同时设置;本发明通过第一比较器、第二比较器对需要写入数据Cache的私有段中的数据行进行地址判断,进而配合设置于数据Cache的私有段标识对数据行进行“私有段标准”判断,从而可保证写入数据Cache中的数据的逻辑顺序正确性,并保证写入的数据可以在动态配置情况下实现乱序发射、乱序执行的数据逻辑正确性。本发明通过设置特定的指令发射规则判断器来确认在指令Cache内排列在私有段设置指令前的指令全部执行结束,从而防止了对多套Cache数据的私有端写入数据时出现逻辑错误。
附图说明
图1为本发明一种可同时支持多套Cache数据私有段动态设置的方法的总流程图;
图2为本发明一种可同时支持多套Cache数据私有段动态设置的方法的步骤S3的子步骤流程图。
具体实施方式
为了更清楚地说明本发明实施例和/或现有技术中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本发明提供了一种可同时支持多套Cache数据私有段动态设置的方法,可在保证计算机的存储器的主存的写回效率不受影响的同时对多套Cache数据私有段进行动态设置。同时本发明的方法还能保证动态配置情况下乱序发射乱序执行的流水线的逻辑正确性,进而还能保证写入Cache中的数据能顺利执行。
如图1所示,本发明主要包括步骤S1-S6,具体如下:
S1、确定目标数据Cache中需要设置的n套私有段数据位置地址,为各个私有段数据设置相对应的n套第一私有段寄存器。
现有的存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。cache的内容除了存的数据(data)之外,还包含存的数据的物理内存的地址信息。而每套第一私有段寄存器均包括私有段起始地址寄存器、私有段结束地址寄存器,进而便于对数据Cache中各私有端的位置进行寻址操作,从而也便于后续的数据的动态写入数据Cache中。
S2、在目标数据Cache中分别设置与每套私有段数据相对应的第一比较器、第二比较器。所述第一比较器、第二比较器分别为访存地址和私有段起始地址的比较器、访存地址和私有段结束地址比较器。对需要写入数据Cache的私有段中的数据行进行地址判断,由于写入数据Cache的私有段的数据都是按照相应的“私有段标准”所制定的,所以需要写入的数据的访存地址与标记字符,而第一比较器、第二比较器则可以对需要写入私有段的数据访存地址进行确定。
S3、按一定规则对需要写入Cache中的数据行进行判断,来确定其是否具有“私有段标准”。
如图2所示,其中步骤S3具体包括步骤S31至S35。其中S31、获取需要写入Cache中的数据行的访存地址。S32、判断需要写入Cache中的数据行的访存地址是否存在。现有的cache的内容除了存的数据(data)之外,还包含存的数据的物理内存的地址信息(tag),因为CPU发出的寻址信息都是针对物理内存发出的,所以cache中除了要保存数据信息之外,还要保存数据对应的地址,这样才能在cache中根据物理内存的地址信息查找物理内存中对应的数据。
而步骤S32具体为将需要写入Cache中的数据行的标签域(Tag)中的内容同时读出;将Tag的内容与地址高端进行比较,如果相匹配,则说明DCache(数据Cache)命中,需要写入数据的访存地址存在。
S33、确定需要写入Cache中的数据行的访存地址存在时,将其访存地址送入相应的私有段数据的第一比较器、第二比较器中进行对照;S34、S34、确定需要写入Cache中的数据行的访存地址与相应的私有段数据的起始与结束地址是相对应时,判断目标数据行的是否存在与数据Cache的私有段相同的私有段标识,所述私有段标识为存储在目标数据行的有效位的字符标识。
当CPU试图读取主存一个字时,发出此字内存地址同时到达cache和主存,此时cache控制逻辑依据地址的标记部分进行判断此字当前是否在cache中。若是(表命中)则表示需要写入Cache中的数据行存在私有端标识。而本发明中数据Cache的私有段标识可以通过Cache控制器进行动态设置,从而可以便于动态制定“私有段标准”。
之后执行步骤S35、当确定目标数据行的存在私有段标识时,则确认该需要写入Cache中的数据行符合“私有段标准”。
如图1所示在执行完步骤S3后,开始执行步骤后续步骤。
S4、确认需要写入Cache中的数据行符合“私有段标准”后,在指令Cache中生成私有段设置指令;S5、设置特定的指令发射规则判断器,进而对指令Cache内的指令执行情况进行判断;S6、确认在指令Cache内排列在私有段设置指令前的指令全部执行结束后,开始执行私有段设置指令,将需要写入Cache中的数据行写入与对应的私有段位置地址相联的数据Cache中。
在本发明中,当写入数据Cache的私有段中的数据行达到了cache中的文件数据的临界值时,将所述cache中临界值以内的所有文件数据替换掉原始Cache数据。避免了数据冗余,同时防止在运行时私有端的一些数据重复运行,保证了动态配置情况下乱序发射乱序执行的流水线的逻辑正确性。
S5、设置特定的指令发射规则判断器,进而对指令Cache内的指令执行情况进行判断;S6、确认在指令Cache内排列在私有段设置指令前的指令全部执行结束后,开始执行私有段设置指令,将需要写入Cache中的数据行写入与对应的私有段位置地址相联的数据Cache中。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (5)
1.一种可同时支持多套Cache数据私有段动态设置的方法,其特征在于能对多套Cache数据私有段的数据进行动态设置,并能保证设置后的硬件的运行时逻辑顺序无误,包括步骤:S1、确定目标数据Cache中需要设置的n套私有段数据位置地址,为各个私有段数据设置相对应的n套第一私有段寄存器;S2、在目标数据Cache中分别设置与每套私有段数据相对应的第一比较器、第二比较器;S3、按一定规则对需要写入Cache中的数据行进行判断,来确定其是否具有“私有段标准”;S4、确认需要写入Cache中的数据行符合“私有段标准”后,在指令Cache中生成私有段设置指令;S5、设置特定的指令发射规则判断器,进而对指令Cache内的指令执行情况进行判断;S6、确认在指令Cache内排列在私有段设置指令前的指令全部执行结束后,开始执行私有段设置指令,将需要写入Cache中的数据行写入与对应的私有段位置地址相联的数据Cache中;步骤S3具体为:S31、获取需要写入Cache中的数据行的访存地址;S32、判断需要写入Cache中的数据行的访存地址是否存在;S33、确定需要写入Cache中的数据行的访存地址存在时,将其访存地址送入相应的私有段数据的第一比较器、第二比较器中进行对照;S34、确定需要写入Cache中的数据行的访存地址与相应的私有段数据的起始与结束地址是相对应时,判断目标数据行的是否存在与数据Cache的私有段相同的私有段标识,所述私有段标识为存储在目标数据行的有效位的字符标识;S35、当确定目标数据行的存在私有段标识时,则确认该需要写入Cache中的数据行符合“私有段标准”;步骤S32“判断需要写入Cache中的数据行的访存地址是否存在”具体为:将需要写入Cache中的数据行的标签域Tag中的内容同时读出;将Tag的内容与地址高端进行比较,如果相匹配,则说明DCache(数据Cache)命中,需要写入数据的访存地址存在。
2.如权利要求1所述的一种可同时支持多套Cache数据私有段动态设置的方法,其特征在于所述步骤S1中,每套第一私有段寄存器均包括私有段起始地址寄存器、私有段结束地址寄存器。
3.如权利要求1所述的一种可同时支持多套Cache数据私有段动态设置的方法,其特征在于所述步骤S2中,所述第一比较器、第二比较器分别为访存地址和私有段起始地址的比较器、访存地址和私有段结束地址比较器。
4.如权利要求1所述的一种可同时支持多套Cache数据私有段动态设置的方法,其特征在于:步骤S34中的数据Cache的私有段标识可以通过Cache控制器进行动态设置。
5.如权利要求1所述的一种可同时支持多套Cache数据私有段动态设置的方法,其特征在于:当写入数据Cache的私有段中的数据行达到了cache中的文件数据的临界值时,将所述cache中临界值以内的所有文件数据替换掉原始Cache数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839658.4A CN110688329B (zh) | 2019-09-06 | 2019-09-06 | 一种可同时支持多套Cache数据私有段动态设置的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839658.4A CN110688329B (zh) | 2019-09-06 | 2019-09-06 | 一种可同时支持多套Cache数据私有段动态设置的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688329A CN110688329A (zh) | 2020-01-14 |
CN110688329B true CN110688329B (zh) | 2021-08-10 |
Family
ID=69107883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910839658.4A Active CN110688329B (zh) | 2019-09-06 | 2019-09-06 | 一种可同时支持多套Cache数据私有段动态设置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688329B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963973A (en) * | 1996-12-16 | 1999-10-05 | Bull Hn Information Systems Inc. | Multiprocessor computer system incorporating method and apparatus for dynamically assigning ownership of changeable data |
CN102696020A (zh) * | 2009-11-16 | 2012-09-26 | 赛门铁克公司 | 基于可配置缓存映射的选择性文件***缓存 |
CN102725741A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 高速缓冲存储器控制方法、装置和*** |
CN103106097A (zh) * | 2013-03-12 | 2013-05-15 | 无锡江南计算技术研究所 | 一种即时编译***中的栈运算优化方法 |
CN110059026A (zh) * | 2018-01-19 | 2019-07-26 | 华为技术有限公司 | 一种目录处理方法、装置及存储*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609362A (zh) * | 2012-01-30 | 2012-07-25 | 复旦大学 | 一种共享高速缓存动态划分方法与电路 |
CN103377141B (zh) * | 2012-04-12 | 2016-10-12 | 无锡江南计算技术研究所 | 高速存储区的访问方法以及访问装置 |
CN105740168B (zh) * | 2016-01-23 | 2018-07-13 | 中国人民解放军国防科学技术大学 | 一种容错目录高速缓存控制器 |
US9916246B1 (en) * | 2016-08-16 | 2018-03-13 | Advanced Micro Devices, Inc. | Predictive multistage comparison for associative memory |
CN108733415B (zh) * | 2018-05-16 | 2021-03-16 | 中国人民解放军国防科技大学 | 支持向量随机访存的方法及装置 |
-
2019
- 2019-09-06 CN CN201910839658.4A patent/CN110688329B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5963973A (en) * | 1996-12-16 | 1999-10-05 | Bull Hn Information Systems Inc. | Multiprocessor computer system incorporating method and apparatus for dynamically assigning ownership of changeable data |
CN102696020A (zh) * | 2009-11-16 | 2012-09-26 | 赛门铁克公司 | 基于可配置缓存映射的选择性文件***缓存 |
CN102725741A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 高速缓冲存储器控制方法、装置和*** |
CN103106097A (zh) * | 2013-03-12 | 2013-05-15 | 无锡江南计算技术研究所 | 一种即时编译***中的栈运算优化方法 |
CN110059026A (zh) * | 2018-01-19 | 2019-07-26 | 华为技术有限公司 | 一种目录处理方法、装置及存储*** |
Non-Patent Citations (1)
Title |
---|
一种高能效的结构不对称指令缓存;刘骁; 高红光; 陈芳园; 丁亚军;《计算机工程与科学》;20170315;443-450 * |
Also Published As
Publication number | Publication date |
---|---|
CN110688329A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9086987B2 (en) | Detection of conflicts between transactions and page shootdowns | |
US8954681B1 (en) | Multi-stage command processing pipeline and method for shared cache access | |
CN101131671A (zh) | 控制对非易失性存储器的访问 | |
TWI417724B (zh) | 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品 | |
CN100589089C (zh) | 处理直接存储器访问请求的设备和方法 | |
US6473845B1 (en) | System and method for dynamically updating memory address mappings | |
US20110154000A1 (en) | Adaptive optimized compare-exchange operation | |
CN115269454A (zh) | 数据访问方法、电子设备和存储介质 | |
CN105095104A (zh) | 数据缓存处理方法及装置 | |
US9639477B2 (en) | Memory corruption prevention system | |
US20090292857A1 (en) | Cache memory unit | |
US20120254656A1 (en) | Method, apparatus and system for providing memory sparing information | |
US8656106B2 (en) | Managing unforced injections of cache lines into a cache utilizing predetermined address ranges | |
JP3936672B2 (ja) | マイクロプロセッサ | |
CN110688329B (zh) | 一种可同时支持多套Cache数据私有段动态设置的方法 | |
CN116701246B (zh) | 一种提升缓存带宽的方法、装置、设备及存储介质 | |
CN115858417B (zh) | 缓存数据处理方法、装置、设备及存储介质 | |
US11080195B2 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
JP4668556B2 (ja) | タスク管理システム | |
US9323671B1 (en) | Managing enhanced write caching | |
CN111381881A (zh) | 一种基于ahb总线接口的低功耗指令缓存方法及装置 | |
CN115586943B (zh) | 一种智能网卡虚拟机脏页的硬件标记实现方法 | |
US6567952B1 (en) | Method and apparatus for set associative cache tag error detection | |
CN110941565A (zh) | 用于芯片存储访问的内存管理方法和装置 | |
JP4867451B2 (ja) | キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム |
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 |