CN110018811B - Cache数据处理方法以及Cache - Google Patents
Cache数据处理方法以及Cache Download PDFInfo
- Publication number
- CN110018811B CN110018811B CN201910299651.8A CN201910299651A CN110018811B CN 110018811 B CN110018811 B CN 110018811B CN 201910299651 A CN201910299651 A CN 201910299651A CN 110018811 B CN110018811 B CN 110018811B
- Authority
- CN
- China
- Prior art keywords
- cache
- main memory
- address
- memory tag
- data
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 238000003860 storage Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 13
- 238000000034 method Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- 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/0877—Cache access modes
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种Cache数据处理方法以及Cache,该缓存数据处理方法包括:Cache接收所述CPU发送的所述Main memory的地址信息,其中,所述Main memory的地址包括Main memory Tag字段、Cache set index字段;所述Cache根据所述Main memory Tag字段查找Lookup table从而获取映射偏移值;所述Cache将该映射偏移值和所述Cache set index字段的值进行相加从而得到所述Cache的line地址;所述Cache读取所述line地址中所存储的Cache memory Tag,并将所述Main memory Tag字段与所述Cache memory Tag进行比较,若两者一致,则所述Cache向所述CPU输出在该line地址中所存储的数据。该Cache数据处理方法以及Cache可以有效避免基于Cache访问时间的侧信道攻击,而且硬件实现简单、对CPU运行效率不会有太大影响。
Description
技术领域
本发明是关于芯片技术领域,特别是关于一种Cache数据处理方法以及Cache。
背景技术
目前处理器运行速度可以达到5GHz,常用大容量存储器访问速度一般在几十兆Hz到几百兆Hz之间。因为巨大的速率差距,处理器在访问主存储时经常需要等待,造成计算机运行效率下降。
因此,为了提高计算机的运行效率,在中央处理器(CPU)和大容量存储器(Mainmemory)之间通常设置高速缓冲存储器(Cache)。Cache一般与CPU运行速度相同或接近,Main memory中部分存储空间被映射到Cache。如果CPU访问地址与Cache中映射的地址匹配(hit),CPU从Cache中存取数据速度很快,不会影响CPU运行速度。如果CPU访问地址与Cache中映射的地址不匹配(miss),则CPU从Main memory中存取数据时CPU需要等待,会影响CPU运行速度。Miss的数据一般会映射到Cache中,下次访问此地址时Cache hit,CPU运行速度不会受到影响。
如图1所示,Cache中一般包括用于存储Main memory映射数据的Cache DataMemory(缓存数据存储区)和用于存储Main memory映射关系的Cache Tag Memory(缓存标记存储区)。如图2所示,Cache Tag Memory数据结构一般由两部分组成:表示Cache映射有效的Valid(有效)域,表示映射地址的Tag域。Cache Tag Memory的一个地址与与之对应的Cache Data Memory中存储的数据和称为一个Cache line(缓存行)。
Main memory与CPU之间的地址映射关系一般采用直接映射的方式。Main memory地址被分为三个字段:Main memory Tag(主内存标签)、Cache set index(缓存集索引)、Cache line offset(缓存行偏移量)。Main memory Tag部分和Cache Tag Memory中的Tag比对确定CPU发起的Memory访问是否命中,Cache set index部分为Memory地址对应的Cache line,Cache line offset用于在line内寻址。
如图3所示,Main memory地址空间以地址固定映射到对应的Cache line,Mainmemory的多个地址对应一个共同的Cache line,如Cache Memory中的Data0对应Mainmemory中的Data0、Datan以及Datamn;Cache Memory中的Data1对应Main memory中的Data1、Datan+1以及Datamn+1;Cache Memory中的Datan-1对应Main memory中的Datan-1、Data2n-1以及Data(m+1)n-1。CPU读访问Main memory addr时,解析出Cache set index字段从Cache Data Memory中读取对应Tag,将该Tag与Main memory Tag做比较,相等则命中,Cache Data Memory使用Cache line offset选择后返回数据给CPU。若该Tag与Mainmemory Tag不相等则Miss,Cache从Main memory获取数据转发给CPU,并根据算法判断如何更新Cache Memory映射。
多路组相连Cache是多个直接映射Cache的并联。Main memory addr与Cache地址的映射关系没有变化,仍然是固定的。
Cache hit响应时间一般为几个纳秒之内,Cache miss响应时间一般为几十到几百个纳秒,差距极大。Cache侧信道攻击技术中,攻击者一般会利用Cache hit与Cache miss之间巨大的时间差异和Cache固定的映射关系推测出与安全密钥相关的Main memory访问操作,以利于进一步推测出机密信息。
已经有关于如何在Cache内部建立安全措施以避免被此种方式的Cache侧信道技术攻击的技术研究。
一种方式是识别安全与非安全软件,将其对Cache的访问进行隔离,以避免软件之间对Cache的竞争造成地址泄露。此方法对Cache的利用率有影响。而且区分安全与非安全软件也是需要软件系统支持,有可能引入更多的攻击机会。
一种方式是将安全有关的软件在运行前进行预取,尽量消除安全软件Cachemiss,软件运行时全部从Cache中获取数据,Memory访问时间很短,这种方法可以避免基于Cache访问时间的侧信道攻击,此方法对软件要求较高,由于增加了预取操作对CPU效率也有影响。
一种方式是将安全有关的软件定义为不可Cache,所有安全软件的Memory访问都需要直接访问Main memory,Main memory访问时间都较长,这样也可以避免基于Cache访问时间的侧信道攻击。此方法实现简单,但对CPU运行效率有较大影响。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种Cache数据处理方法以及Cache,可以有效避免基于Cache访问时间的侧信道攻击,而且硬件实现简单、对CPU运行效率不会有太大影响。
为实现上述目的,本发明提供了一种Cache数据处理方法,所述Cache设置在CPU和Main memory之间,用于缓存数据,所述Main memory的存储空间被映射到所述Cache上,该Cache数据处理方法包括:所述Cache接收所述CPU发送的所述Main memory的地址信息,其中,所述Main memory的地址包括Main memory Tag字段、Cache set index字段;所述Cache根据所述Main memory Tag字段查找Lookup table从而获取映射偏移值;所述Cache将该映射偏移值和所述Cache set index字段的值进行相加从而得到所述Cache的line地址;所述Cache读取所述line地址中所存储的Cache memory Tag,并将所述Main memory Tag字段与所述Cache memory Tag进行比较,若两者一致,则所述Cache向所述CPU输出在该line地址中所存储的数据。
在一优选的实施方式中,所述Cache查找所述Lookup table包括:所述Cache获取所述Main memory Tag的高位的K比特数据,其中,所述Main memory Tag为二进制数据;所述Cache将该K比特的二进制数据作为所述Lookup table的查找地址,对所述Lookup table进行查找。
在一优选的实施方式中,所述Lookup table共存储了2K个数据,每个数据的取值范围为0~n-1,其中n为所述Cache的line地址的总数,所述K的取值范围为1~所述Mainmemory Tag的位宽。
在一优选的实施方式中,所述Cache数据处理方法还包括:所述Cache在进行缓存清除时通过随机数发生器对所述Lookup table进行初始化。
本发明还提供一种Cache,所述Cache设置在CPU和Main memory之间,用于缓存数据,所述Main memory的存储空间被映射到所述Cache上,该Cache包括:地址信息接收模块、查表模块、行地址计算模块、标签比较模块、数据输出模块。地址信息接收模块用于接收所述CPU发送的所述Main memory的地址信息,其中,所述Main memory的地址包括Mainmemory Tag字段、Cache set index字段;查表模块与所述地址信息接收模块相耦合,用于根据所述Main memory Tag字段查找Lookup table从而获取映射偏移值;行地址计算模块与所述查表模块和所述地址信息接收模块均相耦合,用于将该映射偏移值和所述Cacheset index字段的值进行相加从而得到所述Cache的line地址;标签比较模块与所述地址信息接收模块以及所述行地址计算模块相耦合,用于从所述line地址中提取所述line地址中所存储的Cache memory Tag,并将所述Main memory Tag字段与所述Cache memory Tag进行比较;数据输出模块与所述标签比较模块相耦合,用于当所述Main memory Tag字段与所述Cache memory Tag两者一致时向所述CPU输出在该line地址中所存储的数据。
在一优选的实施方式中,所述查表模块查找所述Lookup table包括:所述查表模块获取所述Main memory Tag的高位的K比特数据,其中,所述Main memory Tag为二进制数据;所述查表模块将该K比特的二进制数据作为所述Lookup table的查找地址,对所述Lookup table进行查找。
在一优选的实施方式中,所述Lookup table共存储了2K个数据,每个数据的取值范围为0~n-1,其中n为所述Cache的line地址的总数,所述K的取值范围为1~所述Mainmemory Tag的位宽。
在一优选的实施方式中,所述Cache还包括:随机数发生器和查找表初始化模块。随机数发生器用于产生随机数。查找表初始化模块,与所述随机数发生器相耦合,用于在所述Cache进行缓存清除时采用所述随机数发生器所产生的随机数对所述Lookup table进行初始化。
与现有技术相比,根据本发明的Cache数据处理方法以及Cache,在Cache中设置了Lookup table(查找表)实现了Main memory到Cache line之间的分段映射,Cache memory的line地址需要通过将Lookup table中的映射偏移值和Cache set index相加才能得到,因此与现有的Cache不同,本发明的Main memory与Cache line之间的对应关系并不是固定的,可以有效避免基于Cache访问时间的侧信道攻击,并且每次清除缓存时还要对Lookuptable的数据进行随机化,使得映射关系改变,攻击者难以获取想要的Cache访问地址,也难以攻击目标地址,而且此方法硬件实现简单、对CPU运行效率不会有太大影响。
附图说明
图1是根据现有技术的一种Cache与Main memory的映射关系示意图;
图2是根据现有技术的一种Cache Tag Memory的数据结构示意图;
图3是根据现有技术的一种Cache数据处理方法的流程示意图;
图4是根据本发明一实施方式的Cache数据处理方法的步骤组成;
图5是根据本发明一实施方式的Cache的结构组成示意图;
图6是根据本发明一实施方式的Cache数据处理方法的流程示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
为了克服现有技术的缺点,本发明提供了一种Cache数据处理方法以及Cache,支持Main memory到Cache Memory随机映射的Cache,与现有的Cache不同,本发明的Mainmemory与Cache line之间的对应关系并不是固定的。可以有效避免基于Cache访问时间的侧信道攻击,而且硬件实现简单、对CPU运行效率不会有太大影响。
图4是根据本发明一实施方式的缓存数据处理方法的流程图,Cache设置在CPU和Main memory之间,用于缓存数据,Main memory的存储空间被映射到Cache上,该Cache数据处理方法包括步骤S1~步骤S4。
在步骤S1中,Cache接收CPU发送的Main memory的地址信息,其中,Main memory的地址包括Main memory Tag(主内存标签)字段、Cache set index(缓存集索引)字段。
在步骤S2中,Cache根据Main memory Tag字段查找Lookup table(查找表)从而获取映射偏移值。
具体地,Cache查找Lookup table的过程如下:Cache获取Main memory Tag的高位的K比特数据,其中,Main memory Tag为二进制数据;Cache将该K比特数据作为Lookuptable的查找地址,对Lookup table进行查找。具体地,Lookup table共存储了2K个数据,每个数据的取值范围为0~n-1,其中n为Cache的line地址的总数,K的取值范围为1~Mainmemory Tag的位宽。
在步骤S3中,Cache将该映射偏移值和Cache set index字段的值进行相加从而得到Cache的line地址。
在步骤S4中,进行Main memory Tag与Cache memory Tag的比对,若两者一致,则Cache向CPU输出在该line地址中所存储的数据。具体地,Cache提取line地址中存储的Cache memory Tag,并将Main memory Tag字段与Cache中的Cache memory Tag进行比较,若两者一致,则Cache向CPU输出在该line地址中所存储的数据,否则,Cache从Main memory获取数据发送给CPU。
在上述过程中,Main memory到Cache Memory之间的映射关系为使用Main memoryTag高位的K bit查找Lookup Table获取映射偏移值,此偏移值与Cache set index相加得到Cache memory的line地址。因此Main memory与Cache Memory之间的映射关系并不固定。攻击软件难以获取想要的Cache访问地址,也难以攻击目标地址,攻击者难以应用常规Cache地址映射固定的特点对比Cache进行攻击。
在一实施方式中,Cache数据处理方法还包括:Cache在进行Cache flush(缓存清除)时会通过随机数发生器对Lookup table进行初始化。其中,由于软件运行的需要会阶段性整体清除Cache到Main memory映射,这种操作被称为Cache flush。该实施方式的流程示意图如图5所示,首先根据Main memory Tag的高K bit查找Lookup Table从而获取映射偏移值,将该偏移值和Cache set index相加得到Cache的line地址,然后将line地址中的Cache memory Tag和Main memory Tag进行比较,若比较结果是两者相等,即Cache hit,则将该line地址中的数据输出。在进行Cache Flush时,随机数产生器(Random)会产生随机数,通过这些随机数对该Loop table进行初始化。通过该过程,每次flush后映射关系总会改变,使得攻击者难以预测Cache行为,也难以从Cache行为中分析出机密信息,进一步地增强Cache的安全性。并且如图5所示,Cache Memory中的Data0对应Main memory中的Data0、Datan+1以及Data(m+1)n-1;Cache Memory中的Data1对应Main memory中的Data1、Data2n-1以及Datamn;Cache Memory中的Datan-1对应Main memory中的Datan-1、Datan以及Datamn+1。可见Main memory与Cache Memory之间的映射关系并不固定。
本发明还提供了一种Cache,Cache设置在CPU和Main memory之间,用于缓存数据,Main memory的存储空间被映射到Cache上,如图6所示,该Cache包括:地址信息接收模块10、查表模块11、行地址计算模块12、标签比较模块13、数据输出模块14。
地址信息接收模块10用于接收CPU发送的Main memory的地址信息,其中,Mainmemory的地址包括Main memory Tag字段、Cache set index字段。
查表模块11与地址信息接收模块10相耦合,用于根据Main memory Tag字段查找Lookup table从而获取映射偏移值;行地址计算模块12与查表模块11和地址信息接收模块10均相耦合,用于将该映射偏移值和Cache set index字段的值进行相加从而得到Cache的line地址。
具体地,查表模块11查找Lookup table从而获取映射偏移值包括:查表模块11获取Main memory Tag的高位的K比特数据,其中,Main memory Tag为二进制数据;查表模块11将该K比特数据作为Lookup table的查找地址,对Lookup table进行查找。Lookup table共存储了2K个数据,每个数据的取值范围为0~n-1,其中n为Cache的line地址的总数,K的取值范围为1~Main memory Tag的位宽。
标签比较模块13与地址信息接收模块10以及行地址计算模块12相耦合,用于从line地址中提取line地址中所存储的Cache memory Tag,并将Main memory Tag字段与Cache memory Tag进行比较。
数据输出模块14与标签比较模块13相耦合,用于当Main memory Tag字段与Cachememory Tag两者一致时向CPU输出在该line地址中所存储的数据。
在一实施方式中,如图6所示,Cache还包括随机数发生器15和查找表初始化模块16。随机数发生器15用于产生随机数。查找表初始化模块16与随机数发生器15相耦合,用于在Cache进行缓存清除时采用随机数发生器15所产生的随机数对Lookup table进行初始化。
综上,根据本实施方式的Cache数据处理方法以及Cache,在Cache中设置了Lookuptable实现了Main memory到Cache line之间的分段映射,Cache memory的line地址需要通过将Lookup table中的映射偏移值和Cache set index相加才能得到,因此Main memory与Cache memory之间的映射关系并不固定,可以有效避免基于Cache访问时间的侧信道攻击,并且每次清除缓存时还要对Lookup table的数据进行随机化,使得映射关系改变,攻击者难以获取想要的Cache访问地址,也难以攻击目标地址,而且此方法硬件实现简单、对CPU运行效率不会有太大影响。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (8)
1.一种Cache数据处理方法,所述Cache设置在处理器和主内存之间,用于缓存数据,所述主内存的存储空间被映射到所述Cache上,其特征在于,该Cache数据处理方法包括:
所述Cache接收所述处理器发送的所述主内存的地址信息,其中,所述主内存的地址包括主内存标签字段、缓存集索引字段;
所述Cache根据所述主内存标签字段查找查找表从而获取映射偏移值;
所述Cache将该映射偏移值和所述缓存集索引字段的值进行相加从而得到缓存行地址;以及
所述Cache读取所述缓存行地址中所存储的缓存内存标签,并将所述主内存标签字段与所述缓存内存标签进行比较,若两者一致,则所述Cache向所述处理器输出在该缓存行地址中所存储的数据。
2.如权利要求1所述的Cache数据处理方法,其特征在于,所述Cache查找所述查找表包括:
所述Cache获取所述主内存标签的高位的K比特数据,其中,所述主内存标签为二进制数据;以及
所述Cache将该K比特的二进制数据作为所述查找表的查找地址,对所述查找表进行查找。
3.如权利要求2所述的Cache数据处理方法,其特征在于,所述查找表共存储了2K个数据,每个数据的取值范围为0~n-1,其中n为所述缓存行地址的总数,所述K的取值范围为1~所述主内存标签的位宽。
4.如权利要求1所述的Cache数据处理方法,其特征在于,所述Cache数据处理方法还包括:
所述Cache在进行Cache清除时通过随机数发生器对所述查找表进行初始化。
5.一种Cache,所述Cache设置在处理器和主内存之间,用于缓存数据,所述主内存的存储空间被映射到所述Cache上,其特征在于,该Cache包括:
地址信息接收模块,用于接收所述处理器发送的所述主内存的地址信息,其中,所述主内存的地址包括主内存标签字段、缓存集索引字段;
查表模块,与所述地址信息接收模块相耦合,用于根据所述主内存标签字段查找查找表从而获取映射偏移值;
行地址计算模块,与所述查表模块和所述地址信息接收模块均相耦合,用于将该映射偏移值和所述缓存集索引字段的值进行相加从而得到缓存行地址;
标签比较模块,与所述地址信息接收模块以及所述行地址计算模块相耦合,用于从所述缓存行地址中提取所述缓存行地址中所存储的缓存内存标签,并将所述主内存标签字段与所述缓存内存标签进行比较;以及
数据输出模块,与所述标签比较模块相耦合,用于当所述主内存标签字段与所述缓存内存标签两者一致时向所述处理器输出在该缓存行地址中所存储的数据。
6.如权利要求5所述的Cache,其特征在于,所述查表模块查找所述查找表包括:
所述查表模块获取所述主内存标签的高位的K比特数据,其中,所述主内存标签为二进制数据;以及
所述查表模块将该K比特的二进制数据作为所述查找表的查找地址,对所述查找表进行查找。
7.如权利要求6所述的Cache,其特征在于,所述查找表共存储了2K个数据,每个数据的取值范围为0~n-1,其中n为所述缓存行地址的总数,所述K的取值范围为1~所述主内存标签的位宽。
8.如权利要求5所述的Cache,其特征在于,所述Cache还包括:
随机数发生器,用于产生随机数;以及
查找表初始化模块,与所述随机数发生器相耦合,用于在所述Cache进行Cache清除时采用所述随机数发生器所产生的随机数对所述查找表进行初始化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910299651.8A CN110018811B (zh) | 2019-04-15 | 2019-04-15 | Cache数据处理方法以及Cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910299651.8A CN110018811B (zh) | 2019-04-15 | 2019-04-15 | Cache数据处理方法以及Cache |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110018811A CN110018811A (zh) | 2019-07-16 |
CN110018811B true CN110018811B (zh) | 2021-06-15 |
Family
ID=67191351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910299651.8A Active CN110018811B (zh) | 2019-04-15 | 2019-04-15 | Cache数据处理方法以及Cache |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110018811B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414321B (zh) * | 2020-02-24 | 2022-07-15 | 中国农业大学 | 一种基于动态映射机制的cache防护方法及装置 |
CN110990299B (zh) * | 2020-03-03 | 2020-07-14 | 江苏华创微系统有限公司 | 非规整组相联cache组地址映射方法 |
CN111813451B (zh) * | 2020-06-05 | 2023-03-24 | 上海赛昉科技有限公司 | 一种cpu数据读取装置及方法 |
CN115964084A (zh) * | 2021-10-12 | 2023-04-14 | 深圳市中兴微电子技术有限公司 | 数据交互方法、电子设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847195A (zh) * | 2010-06-26 | 2010-09-29 | 上海交通大学 | 基于Cache时间特性的防御攻击方法 |
CN103077133A (zh) * | 2013-01-23 | 2013-05-01 | 杭州士兰微电子股份有限公司 | 提供可变长度高速缓存线的高速缓存器控制器及方法 |
CN107085545A (zh) * | 2017-06-01 | 2017-08-22 | 北京智慧云测科技有限公司 | 基于Cache的AES算法的安全评估方法和系统 |
CN107203487A (zh) * | 2017-05-24 | 2017-09-26 | 东南大学 | 一种抗功耗攻击的安全可重构架构 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100356793C (zh) * | 2005-06-09 | 2007-12-19 | 清华大学 | 多变长码并行解码器 |
US8041895B2 (en) * | 2008-01-28 | 2011-10-18 | Spansion Llc | Translation table coherency mecahanism using cache way and set index write buffers |
US8402198B1 (en) * | 2009-06-03 | 2013-03-19 | Violin Memory, Inc. | Mapping engine for a storage device |
US8392494B2 (en) * | 2009-06-26 | 2013-03-05 | Intel Corporation | Method and apparatus for performing efficient side-channel attack resistant reduction using montgomery or barrett reduction |
CN104219043B (zh) * | 2014-07-25 | 2018-03-20 | 西华师范大学 | 一种可预置和重构的密钥装置及运行方法 |
CN109240944B (zh) * | 2018-08-16 | 2021-02-19 | 上海天数智芯半导体有限公司 | 一种基于可变长缓存行的数据读写方法 |
-
2019
- 2019-04-15 CN CN201910299651.8A patent/CN110018811B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847195A (zh) * | 2010-06-26 | 2010-09-29 | 上海交通大学 | 基于Cache时间特性的防御攻击方法 |
CN103077133A (zh) * | 2013-01-23 | 2013-05-01 | 杭州士兰微电子股份有限公司 | 提供可变长度高速缓存线的高速缓存器控制器及方法 |
CN107203487A (zh) * | 2017-05-24 | 2017-09-26 | 东南大学 | 一种抗功耗攻击的安全可重构架构 |
CN107085545A (zh) * | 2017-06-01 | 2017-08-22 | 北京智慧云测科技有限公司 | 基于Cache的AES算法的安全评估方法和系统 |
Non-Patent Citations (2)
Title |
---|
An Efficient Indexing Technique for AES Lookup Table to Prevent Side-Channel Cache-Timing Attack;Refazul Islam Refat,Euna Islam, Md. Mosaddek Khan;《I. J. Computer Network and Information Security》;20180903;25-36 * |
针对Cache攻击的动态随机化防御方法研究;唐文娟;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190115;I139-223 * |
Also Published As
Publication number | Publication date |
---|---|
CN110018811A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110018811B (zh) | Cache数据处理方法以及Cache | |
Irazoqui et al. | Systematic reverse engineering of cache slice selection in Intel processors | |
US10218739B2 (en) | Filter for network intrusion and virus detection | |
Tan et al. | PhantomCache: Obfuscating Cache Conflicts with Localized Randomization. | |
US10950292B1 (en) | Method and apparatus for mitigating row hammer attacks | |
US7461208B1 (en) | Circuitry and method for accessing an associative cache with parallel determination of data and data availability | |
US9396119B2 (en) | Device for controlling the access to a cache structure | |
Malathy et al. | Review on non-linear set associative cache design | |
US20190132115A1 (en) | Techniques for preventing memory timing attacks | |
Spreitzer et al. | Cache-access pattern attack on disaligned aes t-tables | |
US20110252046A1 (en) | String matching method and apparatus | |
CN104881439A (zh) | 一种空间高效的多模式串匹配方法和系统 | |
CN111367831B (zh) | 翻译页表的深度预取方法、部件、微处理器及计算机设备 | |
CN113544779A (zh) | 用于保护存储器的设备和方法 | |
US7480777B2 (en) | Cache memory device and microprocessor | |
Shrivastava et al. | Toward an Optimal Countermeasure for Cache Side-Channel Attacks | |
Alawatugoda et al. | Countermeasures against Bernstein's remote cache timing attack | |
Peng et al. | Detection of cache-based side channel attack based on performance counters | |
US20140013054A1 (en) | Storing data structures in cache | |
Sönmez et al. | Machine learning based side channel selection for time-driven cache attacks on aes | |
Raoufi et al. | AB-ORAM: Constructing adjustable buckets for space reduction in ring oram | |
Meraji et al. | Evict+ Time Attack on Intel CPUs without Explicit Knowledge of Address Offsets. | |
Liu et al. | A factor-searching-based multiple string matching algorithm for intrusion detection | |
Wang et al. | Self-reinforcing memoization for cryptography calculations in secure memory systems | |
Champagne et al. | The reduced address space (ras) for application memory authentication |
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 |