-
公开(公告)号:CN110362503B
公开(公告)日:2021-03-26
申请号:CN201910559289.3
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
IPC: G06F12/0804 , G06F12/0895
Abstract: 本发明实施例提供了一种链式哈希栈的优化方法及系统,通过为链式哈希栈配置发射队列,实现链式哈希栈上的返回地址的错位存储,原本函数返回必定经过的校验运算也大都被消除掉了,提高了链式哈希栈的运行速度,本发明实施例中使用较小的硬件开销,起到了很好的加速效果。
-
公开(公告)号:CN110378109A
公开(公告)日:2019-10-25
申请号:CN201910559286.X
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
IPC: G06F21/54
Abstract: 本发明实施例提供一种降低链式哈希栈性能损耗的方法及系统,该方法包括:在硬件上添加查找表,其中,查找表包括若干次历史哈希运算的输入和输出;将当前哈希运算的输入和查找表中包含的每一历史哈希运算的输入进行匹配,若查找表中存在目标历史哈希运算,将目标历史哈希运算的输出作为当前哈希运算的输出,目标历史哈希运算的输入与当前哈希运算的输入相同。本发明实施例在对目标函数进行哈希运算之前,先在查找表中进行查找,如果能在查找表中找到与当前哈希运算的输入相同的目标历史哈希运算,则直接将目标历史哈希运算的检验哈希值作为当前哈希运算的输出即可,就避免了本次哈希运算,从而降低了性能损耗。
-
公开(公告)号:CN110362502B
公开(公告)日:2021-05-04
申请号:CN201910559287.4
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
IPC: G06F12/0804 , G06F12/0891 , G06F12/0893
Abstract: 本发明实施例提供的链式哈希栈的影子缓存优化方法和装置,添加了一个影子缓存表,当调用子函数时,保存子函数头部哈希运算的输入(返回地址和哈希值),记录该项为有效,然后指针指向最近更新的缓存项的下一项。当函数返回时,查询最近一次有效的缓存项。如果此时的输入(从栈中取出的返回地址和哈希值)与影子缓存最新的有效项相同,则不需要进行哈希计算,而是直接用影子缓存表中的缓存项来更新top寄存器,然后将影子缓存表中的该项缓存置为无效。这种方法能够加速函数体尾部对栈中返回地址和哈希值的校验,减少流水线停顿。
-
公开(公告)号:CN111680289B
公开(公告)日:2023-04-14
申请号:CN202010357761.8
申请日:2020-04-29
Applicant: 中国科学院信息工程研究所
Abstract: 本发明实施例提供一种链式哈希栈运算方法及装置,该方法包括在函数调用时,将处理器保留栈中目标数据项返回地址保存到栈中,并用新的返回地址覆盖处理器保留栈中目标数据项返回地址;将目标数据项指向下一项,得到新的目标数据项,直至处理器保留栈存满新的返回地址;若依然存在函数调用,则将处理器保留栈中保存的所有返回地址进行批量哈希运算,得到当前哈希值信息。在函数返回时没有进入过栈中的处理器保留栈的返回地址直接用于函数返回,并用栈中取出的返回地址覆盖它。直到取出栈中的返回地址覆盖了处理器保留栈的初始数据项时,对处理器保留栈中的多个返回地址进行一次哈希校验。这种方式有效降低了处理器的功耗和性能损耗。
-
公开(公告)号:CN110363006B
公开(公告)日:2020-12-18
申请号:CN201910559217.9
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
Abstract: 本发明实施例提供一种多链哈希栈结构及检测函数返回地址被篡改的方法,所述多链哈希栈结构包括:N条链式结构,每条链式结构对应一个用于存储哈希值的top寄存器,多链哈希栈结构的任一帧中存储了当前帧所对应的函数体的返回地址和当前帧所在链式结构所对应的top寄存器中的哈希值;其中,当前帧所在的链式结构是根据当前帧所对应的函数体在多链哈希栈结构中的深度来确定的;当前帧所在链式结构所对应的top寄存器存储的是所述当前帧所在链式结构上的最新的哈希值;N为大于1的自然数。本发明实施例有效地缓解了由于相近的哈希运算的冲突造成的流水线停顿,减少了链式哈希栈的性能损耗。
-
公开(公告)号:CN111680289A
公开(公告)日:2020-09-18
申请号:CN202010357761.8
申请日:2020-04-29
Applicant: 中国科学院信息工程研究所
Abstract: 本发明实施例提供一种链式哈希栈运算方法及装置,该方法包括在函数调用时,将处理器保留栈中目标数据项返回地址保存到栈中,并用新的返回地址覆盖处理器保留栈中目标数据项返回地址;将目标数据项指向下一项,得到新的目标数据项,直至处理器保留栈存满新的返回地址;若依然存在函数调用,则将处理器保留栈中保存的所有返回地址进行批量哈希运算,得到当前哈希值信息。在函数返回时没有进入过栈中的处理器保留栈的返回地址直接用于函数返回,并用栈中取出的返回地址覆盖它。直到取出栈中的返回地址覆盖了处理器保留栈的初始数据项时,对处理器保留栈中的多个返回地址进行一次哈希校验。这种方式有效降低了处理器的功耗和性能损耗。
-
公开(公告)号:CN110348250A
公开(公告)日:2019-10-18
申请号:CN201910559199.4
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
IPC: G06F21/72
Abstract: 本发明实施例提供一种多链式哈希栈的硬件开销优化方法及系统,该方法包括:在硬件上添加发射队列;其中,发射队列包括顺序排列的多个项目,每一个项目代表一条链式哈希栈,每一条链式哈希栈用于存储一次哈希运算的输入及输出;当哈希运算的输入送入发射队列中对应的项目时,将该项目置为排队计算状态;当哈希模块结束计算状态后,查询发射队列中是否还存在处于排队计算状态的项目;若存在,则哈希模块根据排队顺序计算下一个项目中的哈希运算。本发明实施例相比于现有技术中使用N倍哈希模块的技术方案减少了硬件开销,起到了多链和影子缓存的加速效果。
-
公开(公告)号:CN110348250B
公开(公告)日:2020-12-29
申请号:CN201910559199.4
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
IPC: G06F21/72
Abstract: 本发明实施例提供一种多链式哈希栈的硬件开销优化方法及系统,该方法包括:在硬件上添加发射队列;其中,发射队列包括顺序排列的多个项目,每一个项目代表一条链式哈希栈,每一条链式哈希栈用于存储一次哈希运算的输入及输出;当哈希运算的输入送入发射队列中对应的项目时,将该项目置为排队计算状态;当哈希模块结束计算状态后,查询发射队列中是否还存在处于排队计算状态的项目;若存在,则哈希模块根据排队顺序计算下一个项目中的哈希运算。本发明实施例相比于现有技术中使用N倍哈希模块的技术方案减少了硬件开销,起到了多链和影子缓存的加速效果。
-
公开(公告)号:CN110363006A
公开(公告)日:2019-10-22
申请号:CN201910559217.9
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
Abstract: 本发明实施例提供一种多链哈希栈结构及检测函数返回地址被篡改的方法,所述多链哈希栈结构包括:N条链式结构,每条链式结构对应一个用于存储哈希值的top寄存器,多链哈希栈结构的任一帧中存储了当前帧所对应的函数体的返回地址和当前帧所在链式结构所对应的top寄存器中的哈希值;其中,当前帧所在的链式结构是根据当前帧所对应的函数体在多链哈希栈结构中的深度来确定的;当前帧所在链式结构所对应的top寄存器存储的是所述当前帧所在链式结构上的最新的哈希值;N为大于1的自然数。本发明实施例有效地缓解了由于相近的哈希运算的冲突造成的流水线停顿,减少了链式哈希栈的性能损耗。
-
公开(公告)号:CN110362502A
公开(公告)日:2019-10-22
申请号:CN201910559287.4
申请日:2019-06-26
Applicant: 中国科学院信息工程研究所
IPC: G06F12/0804 , G06F12/0891 , G06F12/0893
Abstract: 本发明实施例提供的链式哈希栈的影子缓存优化方法和装置,添加了一个影子缓存表,当调用子函数时,保存子函数头部哈希运算的输入(返回地址和哈希值),记录该项为有效,然后指针指向最近更新的缓存项的下一项。当函数返回时,查询最近一次有效的缓存项。如果此时的输入(从栈中取出的返回地址和哈希值)与影子缓存最新的有效项相同,则不需要进行哈希计算,而是直接用影子缓存表中的缓存项来更新top寄存器,然后将影子缓存表中的该项缓存置为无效。这种方法能够加速函数体尾部对栈中返回地址和哈希值的校验,减少流水线停顿。
-
-
-
-
-
-
-
-
-