一种可同时支持多套Cache数据私有段动态设置的方法与流程

文档序号:19680293发布日期:2020-01-14 17:15阅读:378来源:国知局
一种可同时支持多套Cache数据私有段动态设置的方法与流程

本发明涉及计算机存储系统领域,具体涉及一种可同时支持多套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中。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1