一种计算机事务存储方法.pdf

上传人:1** 文档编号:966289 上传时间:2018-03-21 格式:PDF 页数:9 大小:534.74KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910235722.4

申请日:

2009.10.15

公开号:

CN101699412A

公开日:

2010.04.28

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20091015|||公开

IPC分类号:

G06F12/08

主分类号:

G06F12/08

申请人:

清华大学

发明人:

汪东升; 郭三川; 王海霞

地址:

100084 北京市海淀区清华园1号

优先权:

专利代理机构:

北京清亦华知识产权代理事务所(普通合伙) 11201

代理人:

罗文群

PDF下载: PDF下载
内容摘要

本发明涉及一种计算机事务存储方法,属于计算机系统结构技术领域。本发明方法中,首先定义数据存活区间和消亡区间。通过增加指令,标识出数据存活区间和数据消亡区间的位置。当数据从缓存中被替换出时,如果处于数据消亡区间,即使数据被修改过,也不再将其写回内存,从而有效降低了写内存的次数。本发明将如上所述的缓存方法应用于事务存储系统,对于事务存储系统存放在缓存中的日志,在事务被提交或放弃之后,不将其写入内存,从而减少内存写操作,缓解了处理器与内存之间的速度差距,提高了事务存储系统的性能。

权利要求书

1: 一种计算机事务存储方法,其特征在于该方法包括以下步骤: (1-1)定义:从对计算机内存地址的写操作至对该内存地址的下一次写操作之前的对该地址的最后一次读指令为数据存活区间,从对计算机内存地址的最后一次读操作到对该内侧地址的下一次写操作为数据消亡区间; (1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中; (1-3)在数据存活区间结束和数据消亡区间开始的位置,插入一条最后一次读操作指令M,在数据消亡区间中读操作指令已经进行后插入一条该数据的存活区间结束消亡区间从此开始的标识指令N; (1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改; (1-5)处理器在进行事务的提交操作时,丢弃内存中该事务所有的日志,对日志所在的所有内存地址,执行数据的存活区间结束消亡区间从此开始的标识指令N; (1-6)处理器在进行事务的放弃操作时,通过读取该事务的日志,恢复内存中被该事务修改过的所有数据的原值,对日志所在的所有内存地址,执行数据的存活区间结束消亡区间从此开始的标识指令N。
2: 如权利要求1所述的方法,其特征在于其中所述的步骤(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中,其过程如下: (2-1)计算机的缓存为一级,若缓存行被替换时被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若在缓存行被替换时被修改的数据所在的内存地址处于所述的数据消亡区间中,则被修改的数据保持在缓存中; (2-2)计算机的缓存为两级,其中一级为写直达方式,二级为写回方式,且二级缓存的缓存行中的数据被修改过,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中; (2-3)计算机的缓存有两级,其中一级和二级同时为写回方式,若一级缓存的缓存行中的数据被修改过,则当该一级缓存行被替换时,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中。
3: 如权利要求1所述的方法,其特征在于其中所述的步骤(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改的方法,包括以下步骤: (3-1)计算机的缓存为一级,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的缓存行的状态 为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据未被修改过”,则不作修改; (3-2)计算机的缓存未两级,其中一级为写直达方式,二级为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改; (3-3)计算机的缓存为两级,其中一级和二级同时为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改。

说明书


一种计算机事务存储方法

    【技术领域】

    本发明涉及一种计算机事务存储(transactional memory)方法,属于计算机系统结构技术领域。

    背景技术

    根据摩尔定律,计算机处理器的性能每18至24个月增加一倍,然而,内存的访问速度仅以每年7%-10%的速度增长,远远落后于处理器的增长速度。相对于处理器来说,内存访问延迟以每十年5倍的速度增长,处理器与存储器的差距不断增加,造成了系统结构的失衡,形成了阻碍性能提升的“存储墙”,从而使得内存访问成为整个计算机系统的性能瓶颈。

    为了缓解“存储墙”对计算机系统性能的影响,需要对内存访问进行优化。降低内存的访问次数是访存优化的一种方法。Lepak等人通过研究,观察到由于许多写指令写入内存的值都与内存中原有的值相同,因此这些写指令都没有产生实际效果。基于这一观察,Lepak等人提出了沉默存储(silent store)结构。在这种结构中,一个写操作被转换为三个操作,即读操作、比较操作和实际的写操作(如果这个写操作不是沉默的),这样系统就可能减少内存的写操作,但是这种结构同时可能会增加读操作的次数。

    事务存储编程模型由布朗大学的Herlihy教授于1993年提出,它的提出受到了数据库系统中事务处理的影响,使用事务的概念代替原来的临界区。事务是只能被一个线程执行的一段内存读写指令序列,这个序列中的读写操作只有两种结果:全部生效或者不起作用。事务存储就是支持多个事务并行执行的一种编程模型。事务存储具有容易编程、安全性好、可扩展性好及高性能的优点,从而得到了广泛的关注。在最近十几年里,许多大学和科研单位参加到事务存储的研究之中,同时微软、英特尔等一批公司也在积极地进行相关研究。

    实现事务存储中的版本管理(version management)是指系统必须同时提供空间用于存放数据的新值(当提交事务时会使用这些新值)和旧值(当放弃事务时会使用这些旧值)。威斯康星大学麦迪逊分校的Moore等人提出的基于日志的事务存储(log-based transactionalmemory,简称LogTM)采用积极的版本管理方式,将数据的新值直接存放在目标位置,而将数据的旧值存放于可缓存的日志中,在事务放弃时用来对数据进行恢复。当事务提交或放弃后,事务的日志都被丢弃,但实际上被丢弃的日志还存在于缓存中而且在缓存中的状态为“被修改过”,在日志所在缓存行被其它行替换时,就可能造成不必要的写回,从而增加了内存写操作的次数,造成了性能的下降。

    【发明内容】

    本发明的目的是提出一种计算机事务存储方法,以克服已有的事务存储实现方法中对日志进行无意义的内存写操作的缺点。本发明提出的事务存储方法减少了对日志的写内存操作的次数,缓解了处理器和内存之间的速度差距,提高了事务存储系统的性能。

    本发明提出的计算机数据的事务存储方法,包括以下步骤:

    (1-1)定义:从对计算机内存地址的写操作至对该内存地址的下一次写操作之前的对该地址的最后一次读指令为数据存活区间,从对计算机内存地址的最后一次读操作到对该内侧地址的下一次写操作为数据消亡区间;

    (1-2)计算机地一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中;

    (1-3)在数据存活区间结束和数据消亡区间开始的位置,插入一条最后一次读操作指令M,在数据消亡区间中读操作指令已经进行后插入一条该数据的存活区间结束消亡区间从此开始的标识指令N;

    (1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改;

    (1-5)处理器在进行事务的提交操作时,丢弃内存中该事务所有的日志,对日志所在的所有内存地址,执行数据的存活区间结束消亡区间从此开始的标识指令N;

    (1-6)处理器在进行事务的放弃操作时,通过读取该事务的日志,恢复内存中被该事务修改过的所有数据的原值,对日志所在的所有内存地址,执行数据的存活区间结束消亡区间从此开始的标识指令N。

    上述事务存储方法中,步骤(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中,其过程如下:

    (2-1)计算机的缓存为一级,若缓存行被替换时被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若在缓存行被替换时被修改的数据所在的内存地址处于所述的数据消亡区间中,则被修改的数据保持在缓存中;

    (2-2)计算机的缓存为两级,其中一级为写直达方式,二级为写回方式,且二级缓存的缓存行中的数据被修改过,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;

    (2-3)计算机的缓存有两级,其中一级和二级同时为写回方式,若一级缓存的缓存行中的数据被修改过,则当该一级缓存行被替换时,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中。

    上述事务存储方法中,步骤(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改的方法,包括以下步骤:

    (3-1)计算机的缓存为一级,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;

    (3-2)计算机的缓存未两级,其中一级为写直达方式,二级为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;

    (3-3)计算机的缓存为两级,其中一级和二级同时为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改。

    本发明提出的计算机事务存储方法,其优点是:减少了对日志的写内存操作的次数,缓解了处理器与内存之间的速度差距,提高了事务存储系统的性能。

    【附图说明】

    图1本发明方法中定义的数据存活区间和消亡区间的定义示意图。

    【具体实施方式】

    本发明提出的计算机数据的事务存储方法,包括以下步骤:

    (1-1)定义:从对计算机内存地址的写操作至对该内存地址的下一次写操作之前的对该地址的最后一次读指令为数据存活区间,从对计算机内存地址的最后一次读操作到对该内侧地址的下一次写操作为数据消亡区间,如图1所示;

    (1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中;

    (1-3)在数据存活区间结束和数据消亡区间开始的位置,插入一条最后一次读操作指令M,在数据消亡区间中读操作指令已经进行后插入一条该数据的存活区间结束消亡区间从此开始的标识指令N;

    (1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改;

    (1-5)处理器在进行事务的提交操作时,丢弃内存中该事务所有的日志,对日志所在的所有内存地址,执行数据的存活区间结束消亡区间从此开始的标识指令N;

    (1-6)处理器在进行事务的放弃操作时,通过读取该事务的日志,恢复内存中被该事务修改过的所有数据的原值,对日志所在的所有内存地址,执行数据的存活区间结束消亡区间从此开始的标识指令N。

    上述事务存储方法中,步骤(1-2)计算机的一个缓存行中的数据被修改过,若在该缓存行被替换时,修改的数据所在的内存地址处于上述数据存活区间中,则将修改的数据写回内存中,若在缓存行被替换时,修改的数据所在的内存地址处于上述数据消亡区间中,则修改的数据保持在缓存中,其过程如下:

    (2-1)计算机的缓存为一级,若缓存行被替换时被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若在缓存行被替换时被修改的数据所在的内存地址处于所述的数据消亡区间中,则被修改的数据保持在缓存中;

    (2-2)计算机的缓存为两级,其中一级为写直达方式,二级为写回方式,且二级缓存的缓存行中的数据被修改过,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;

    (2-3)计算机的缓存有两级,其中一级和二级同时为写回方式,若一级缓存的缓存行中的数据被修改过,则当该一级缓存行被替换时,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若一级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中;若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的数据存活区间中,则将被修改的数据写回内存中,若二级缓存行被替换时缓存行中被修改的数据所在的内存地址处于所述的消亡区间中,则被修改的数据保持在缓存中。

    上述事务存储方法中,步骤(1-4)当处理器执行读指令M或标识指令N时,对计算机缓存行的状态进行修改的方法,包括以下步骤:

    (3-1)计算机的缓存为一级,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;

    (3-2)计算机的缓存未两级,其中一级为写直达方式,二级为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;

    (3-3)计算机的缓存为两级,其中一级和二级同时为写回方式,计算机处理器执行最后一次读操作指令M或数据的存活区间结束消亡区间从此开始的标识指令N时,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的一级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改;若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据被修改过”,则将该缓存行状态修改为“缓存行中的数据未修改过”,若与指令的内存地址相对应的二级缓存行的状态为“缓存行中的数据未被修改过”,则不作修改。

一种计算机事务存储方法.pdf_第1页
第1页 / 共9页
一种计算机事务存储方法.pdf_第2页
第2页 / 共9页
一种计算机事务存储方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种计算机事务存储方法.pdf》由会员分享,可在线阅读,更多相关《一种计算机事务存储方法.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明涉及一种计算机事务存储方法,属于计算机系统结构技术领域。本发明方法中,首先定义数据存活区间和消亡区间。通过增加指令,标识出数据存活区间和数据消亡区间的位置。当数据从缓存中被替换出时,如果处于数据消亡区间,即使数据被修改过,也不再将其写回内存,从而有效降低了写内存的次数。本发明将如上所述的缓存方法应用于事务存储系统,对于事务存储系统存放在缓存中的日志,在事务被提交或放弃之后,不将其写入内存,从。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1