用于管理高速缓存一致性的方法

文档序号:9816671阅读:596来源:国知局
用于管理高速缓存一致性的方法
【技术领域】
[0001]本发明的主题是一种用于管理高速缓存一致性的机制。
[0002]更具体地,本发明涉及一种在通过共享存储器来共享数据的两个处理单元之间的数据交换方法。
【背景技术】
[0003]为了满足不断增长的对计算能力的需求,在计算机系统中使用的处理器必须能够执行高于以往的每秒操作数量。多年来,处理器工作频率的提高使得能够提出满足不断增长的对计算机能力的需求的处理器。由于工作频率的提高还会增加所释放的热量,因而处理器刻蚀的细度(fineness)已逐步降低以将待耗散的热量控制在在可接受的限度内。然而,随着刻蚀细度已低至一微米以下且现已达到十纳米左右,微处理器电路的小型化已变得比以往更加复杂。
[0004]因此,已研究出另一种方法,以在待耗散的热量不增加或者仅略微增加的情况下下继续增强处理器的计算能力:同时并行地执行多个操作,而不是寻求增加由同一执行核心顺序执行的操作数量。因此研发出了多核处理器。
[0005]此外,为了减少处理器执行指令的执行时间,为每个执行核心添加了高速缓冲存储器。所述存储器是位于系统的核心与随机存取存储器(RAM)之间的存储器。由于该存储器的访问时间比随机存取存储器的访问时间短得多,因此核心可更快地访问存储在该存储器中的某些数据,从而使得能够加快指令的执行。
[0006]对于微处理器系统,如图1所示,每个执行核心可具有不与其他核心共享的高速缓冲存储器。在所述配置中,如果共享存储器中由第一核心修改的数据也包含在第二核心的高速缓存中并且没有更新为由第一核心执行的修改,那么第一核心对共享存储器中的数据进行的修改会引起两个核心的高速缓存之间的不一致。因此,存在第二核心将从自身高速缓存中读取不正确数据的风险。因此,有必要提供有效的机制来确保多核处理器的不同执行核心的高速缓存之间的一致性。
[0007]为满足该问题所研发的一种机制是通过“窥探(esp1nnqge)”获得一致性。根据所述机制,对存储器的每次写入通过由处理器的所有核心共享的总线发送。通过在共享总线上的窥探,每个核心因而可以获知其他核心的存储器写入操作,并由此能够更新自身的缓存以确保该高速缓存与其他核心的高速缓存的一致性。
[0008]由于高速缓存的尺寸减小,因此有必要更新(renouveler)高速缓存的内容以使出现缓存缺陷的可能性最小化,即,使核心在自身高速缓存中找到其试图读取的数据的可能性最大化,从而避免在更高级别的高速缓存或RAM中提取所述数据。如果在缓存中修改的数据仅写入RAM,当该数据在高速缓存更新时被从该缓存中删除的时候,那么将数据写入高速缓存和将相同的数据写入RAM在时间上会出现偏差。根据所用的高速缓存更新算法,数据被写入存储器的顺序甚至可能与这些数据之前被输入高速缓存的顺序不同。因此,采用窥探一致性机制可能出现以下情况:对第一核心的写入操作进行窥探的第二核心会在对应的数据已写入共享存储器或完成写入共享存储器之前就获知第一核心的写入指针的变化。那么这会导致第二核心使用与第一核心更新的数据不对应的数据来更新自身的高速缓存。于是高速缓存一致性无法再得到保障。
[0009]避免所述问题的一个方案在于使第二核心在读取共享存储器中更新的数据之前等待一定的时间,以在读取操作之前留下用于将更新的数据写入共享存储器的时间。然而,所述方案减缓了缓存的更新并由此降低了处理器的性能水平。
[0010]另一方案在于使用由不同核心共享的时钟来对所有写入操作打上时间戳。因此,对第一核心写入共享存储器的写入操作进行检测的第二核心能够重构执行这些写入操作的顺序,并能够确保在共享存储器中读取与所检测到的写入指针的更新相对应的数据。然而,所述方案很大程度上依靠高速缓存一致性机制的资源。每个写入数据必须与其写入日期一起存储,因而增大了在核间总线上待交换的且待存储在不同存储器中的数据量。
[0011]因此,需要一种确保计算机系统不同核心的高速缓存之间的一致性,而无需明显降低所述系统的性能水平且不增加待存储在存储器中的数据量的高速缓存一致性机制。

【发明内容】

[0012]根据第一方面,本发明的主题涉及一种通过第一处理单元与第二处理单元两者共享的存储器在两个处理单元之间发送消息的方法;
[0013]待发送的消息包括完整性校验和报头,
[0014]每个处理单元包括伪随机二进制字符串生成器和密码模块;
[0015]所述第一处理单元的生成器和所述第二处理单元的生成器使用同一种子初始化,并彼此同步;
[0016]所述方法包括以下步骤:
[0017]-所述第一处理单元的伪随机二进制字符串生成器生成第一伪随机二进制字符串;
[0018]-所述第一处理单元的密码模块通过对所述待发送的消息应用依赖于所生成的第一伪随机二进制字符串的对合变换来对所述待发送的消息加密;
[0019]-所述第一处理单元发送并在共享的存储器中存储已加密的消息;
[0020]-所述第二处理单元的伪随机二进制字符串生成器生成第二伪随机二进制字符串;
[0021 ]所述第一二进制字符串和所述第二二进制字符串相同;
[0022]-所述第二处理单元的密码模块通过对存储在共享存储器中的所述消息应用依赖于所述第二伪随机二进制字符串的对合变换来对所存储的消息解密,解密所述消息包括解密所述消息的报头、验证已解密的报头以及根据报头验证的结果来解密完整的消息;
[0023]依赖于所述第一伪随机二进制字符串的对合变换和依赖于所述第二伪随机二进制字符串的对合变换相同;
[0024]-所述第二处理单元基于已解密的消息的完整性校验来验证所述已解密的消息的完整性。
[0025]所述方法使得第二处理单元能够确保在存储器中读取的且已解密的消息确实是第一处理单元发送且存储在共享存储器中的消息。此外,解密时使用所述报头使得能够进行对存储器中读取的消息的第一验证,同时仅需要比完整消息的解密和完整性校验少的计算。因此,与解密完整的消息相比,能够更快速地检测到不正确消息的读取。
[0026]依赖于二进制字符串的对合变换可以是应用在所述二进制字符串与待加密或待解密的消息之间的异或运算(XOR)。
[0027]通过自身对合的加密消息和解密消息的所述变换使用单一变换,同时要求降低的用于加密和解密的计算能力。此外,所述变换可以逐位地应用到消息,从而使得能够仅对所述消息的一部分尤其是消息报头解密。
[0028]验证所述报头包括将所述报头与预定报头进行比较。
[0029]根据一个优点,非限制性的特征在于,所述完整性校验是误差检测码。
[0030]该误差检测码可以是循环冗余校验(CRC)或校验和(checksum)。
[0031]使用所述代码使得能够验证在存储器中读取的加密消息的解密已被正确地执行并由此验证所读取的消息确实是第一处理单元发送并存储在共享存储器中的消息。
[0032]所述共享存储器可以是循环缓冲存储器。
[0033]伪随机二进制字符串生成器的周期可以长于共享存储器的比特容量。
[0034]使用循环缓冲存储器,可以在写入操作已被输入到该缓冲存储器的所有位置的情况下避免旧数据无意的解密。
[0035]根据本发明的第二方面涉及一种计算机程序产品,该计算机程序产品包括当在处理器上执行该程序时,用于实现根据第一方面所述的方法的代码指令。
[0036]根据本发明的第三方面涉及一种系统,该系统包括:
[0037]-至少一个第一处理单元,配置为访问与第一处理单元共享的存储器;
[0038]所述第一处理单元包括:
[0039]-用于生成第一伪随机二进制字符串的伪随机二进制字符串生成器;
[0040]-密码模块,用于通过对待发送的消息应用依赖于所生成的第一伪随机二进制字符串的对合变换来对所述待发送的消息加密;
[0041 ]所述待发送的消息包括完整性校验和报头;
[0042]-用于发送已加密的消息并将该消息存储在共享的存储器中的装置;
[0043]以及至少一个第二处理单元,配置为访问与第一处理单元共享的存储器;
[0044]所述第二处理单元包括:
[0045]-用于生成第二伪随机二进制字符串的伪随机二进制字符串生成器;
[0046]所述第一处理单元的生成器和所述第二处理单元的生成器使用同一种子初始化并彼此同步,所述第一二进制字符串与所述第二二进制字符串相同;
[0047]-密码模块,用于通过对存储在共享的存储器中的已加密的消息应用依赖于所述第二伪随机二进制字符串的对合变换来对所存储的已加密的消息解密,解密所述消息包括解密所述消息的报头、验证已解密的报头以及根据报头验证的结果来解密完整的消息;
[0048]依赖于所述第一伪随机二进制字符串的对合变换和依赖于所述第二伪随机二进制字符串的对合变换相同;
[0049]-用于根据已解密的消息的完整性校验来验证所述已解密的消息的完整性的装置。
[0050]所述计算机程序产品和系统的优点与以上
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1