CN102346715B - 保护内存中应用程序的方法、内存控制器和处理器 - Google Patents

保护内存中应用程序的方法、内存控制器和处理器 Download PDF

Info

Publication number
CN102346715B
CN102346715B CN201010244715.3A CN201010244715A CN102346715B CN 102346715 B CN102346715 B CN 102346715B CN 201010244715 A CN201010244715 A CN 201010244715A CN 102346715 B CN102346715 B CN 102346715B
Authority
CN
China
Prior art keywords
memory line
marker bit
value
check results
bit
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.)
Expired - Fee Related
Application number
CN201010244715.3A
Other languages
English (en)
Other versions
CN102346715A (zh
Inventor
刘亮
侯锐
李立
戈弋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM China Co Ltd
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201010244715.3A priority Critical patent/CN102346715B/zh
Priority to US13/180,713 priority patent/US20120030543A1/en
Publication of CN102346715A publication Critical patent/CN102346715A/zh
Application granted granted Critical
Publication of CN102346715B publication Critical patent/CN102346715B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开一种保护内存中应用程序的方法、内存控制器和处理器,其中所述应用程序按照高速缓存行的大小被缓存为内存行,该方法包括:响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的;利用所述ECC校验和对所述标记内存行执行ECC校验获得所述内存行的标记位的值;根据标记位的值将所述标记内存行复原为所述内存行;根据标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行。

Description

保护内存中应用程序的方法、内存控制器和处理器
技术领域
本发明涉及内存中的应用程序,特别涉及保护内存中应用程序的方法、内存控制器和处理器。
背景技术
云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算。云计算通常认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。然而云计算环境缺少可见性和可控性,应用程序的执行都是在企业网络之外进行操作,因此保证应用程序在云计算环境中的安全性很困难,未授权入侵者包括黑客常常利用网络漏洞来获得访问和未授权权限,盗取并破解应用程序,使包括用户商业秘密、个人隐私等在内的关键信息数据泄漏出去,给用户带来无法弥补的损失。
虽然用户可以使用软件实现的安全方案和机制来构建云计算环境中的可信计算系统,例如软件授权认证,然而有经验的黑客能够读取密钥并破解,最终导致应用程序被盗取、破解。在共享虚拟内存的环境中不确定因素更多,因此在远程云计算环境中如何保障内存中的应用程序的安全,使之不被盗取、破解是一个极大的挑战。
发明内容
本发明提供一种保护内存中应用程序的方法、内存控制器和处理器。
根据本发明的第一方面,提供一种保护内存中应用程序的方法,其中所述应用程序按照高速缓存行的大小被缓存为内存行,该方法包括:响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的;通过对所述标记内存行执行ECC校验获得所述内存行的标记位的值;根据标记位的值将所述标记内存行复原为所述内存行;根据标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行。
根据本发明的第二方面,提供一种保护内存中应用程序的内存控制器,其中所述应用程序按照高速缓存行的大小被缓存为内存行,该内存控制器包括:读取模块,被配置为响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的;ECC校验模块,被配置为通过对所述标记内存行执行ECC校验获得所述内存行的标记位的值;复原模块,被配置为根据标记位的值将所述标记内存行复原为所述内存行;加载判断模块,被配置为根据标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行。
根据本发明的第三方面,提供一种包括根据本发明第二方面的内存控制器的处理器。
根据本发明实施例的方法、内存控制器和处理器,通过硬件实现对内存中应用程序的保护,有效避免了在远程应用的环境中应用程序被盗取、破解。
附图说明
结合附图,通过参考下列详细的示例性实施例的描述,将会更好地理解本发明本身、优选的实施方式以及本发明的目的和优点,其中:
图1示出根据本发明一个实施例对内存中应用程序提供保护机制的处理器架构图;
图2示出根据本发明的一个实施例在内存控制器中实现保护内存中的应用程序的方法;
图3示出根据本发明的一个实施例向内存中加载标记内存行和ECC校验和的过程;
图4示出标记内存行和ECC编码产生的示例;
图5示出对标记内存行执行ECC校验获得标记位的示例;
图6示出本发明一个实施例的根据第一校验结果A和第二校验结果B确定内存行的标记位的值的状态表;
图7示出采用多数判决的方法确定标记位s的值的示例;
图8示出根据本发明一个实施例的保护内存中应用程序的内存控制器的结构框图;
图9示出加载应用程序的硬件控制逻辑真值表;以及
图10示出加载应用程序的控制逻辑电路示意图。
具体实施方式
以下结合附图描述根据本发明实施例的方法,将会更好地理解本发明的目的和优点。
本发明实施例的保护内存中的应用程序的方法实现在提供解密加速功能的处理器上,图1示出根据本发明一个实施例对内存中应用程序提供保护机制的处理器架构图,利用专门由硬件电路单元构成的解密加速器对加密的应用程序代码进行解密,能够避免软件解密过程中可能带来的应用程序代码被破解或被读取的风险。本发明的核心思想是实现对内存中的应用程序可执行代码的保护,为需要特别保护的应用程序设置保护标记位,并对现有技术对内存中数据进行ECC(错误检查和纠正)校验的机制进行改进,有效识别出内存中应用程序的保护标记位,从而拒绝处理器的加载数据访问请求。
图2示出根据本发明的一个实施例在内存控制器中实现保护内存中的应用程序的方法,其中所述应用程序按照高速缓存行的大小被缓存为内存行,该方法包括以下步骤:在步骤S201,响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的;在步骤S202,利用所述ECC校验和对所述标记内存行执行ECC校验获得所述内存行的标记位的值;在步骤S203,根据标记位的值将所述标记内存行复原为所述内存行;以及在步骤S204,根据标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行。
具体地,在步骤S201,响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的,图3示出根据本发明的一个实施例向内存中加载标记内存行和ECC校验和的过程,包括:
在步骤S301,响应于接收到处理器的应用程序加载请求,接收所述内存行和用于标识所述内存行的标记位。具体地,根据本发明的一个实施例,对于保护应用程序的情况,接收到处理器的加载应用程序的请求,DMA控制器将加密应用程序从硬盘加载到内存。解码加速器接收到处理器发出的解密控制指令,从解密控制指令中提取出加密的应用程序的内存地址;并从提取的内存地址读取加密的应用程序并解密;为解密的应用程序设置保护标记位,例如“1”,表示该应用程序需要保护;然后,将解密的应用程序每次按照高速缓存行(catcheline)的大小写入内存,例如,高速缓存行的大小是128byte,每次向内存写入128byte的应用程序代码,并存储为内存行,此外,为了有效记录标记位,在处理器与内存控制器之间的数据总线上额外增加一位记录标记位的数据线,因此在写入内存之前,多个内存行和对应的标记位被缓存在内存控制器中。而对于其它不需要保护的情况,实际并不需要添加额外的标记位,即默认为添加的非保护标记位为“0”。
在步骤S302,对所述内存行执行ECC编码产生对应于所述内存行的ECC校验和。内存是一种电子器件,在其工作过程中难免会出现错误,而对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题,因此,服务器系统的内存通常通过ECC(错误检查和纠正)校验进行保护,从而将使整个服务器系统在工作时更趋于安全稳定,图4示出标记内存行和ECC编码产生的示例,其中b0,b1....b63是64比特的内存行,s位是为该内存行添加的标记位,利用现有技术中的ECC编码方法为每64比特指令数据b0,b1....b63产生8位单错纠正双错检测(SECDED)位,即,p0......p7
在步骤S303,将所述内存行的预定位与标记位进行异或逻辑运算产生所述标记内存行。参照图4,其中在内存行b0,b1....b63中指定b0为的预定位,将b0与标记位s进行异或,产生内存行b0,b1....b63的标记内存行c0,c1.....c63
在步骤S304,将所述标记内存行和对应于所述内存行的ECC校验和写入内存。
在完成向内存加载应用程序之后,处理器发出指令或数据的加载请求。具体地,在步骤S201,响应于接收到处理器的加载请求,内存控制器从内存中读取多个标记内存行和对应于所述多个内存行的ECC校验和,以图4为例,读取标记多个标记内存行c0,c1.....c63和多个对应于8位单错纠正双错检测(SECDED)位p0......p7
在步骤S202,利用所述ECC校验和对所述标记内存行执行ECC校验获得所述内存行的标记位的值。具体地,对标记内存行进行ECC校验产生第一校验结果;对标记内存行的预定位进行非逻辑运算产生新标记内存行,其中标记内存行的预定位与产生标记内存行的预定位对应一致;对所述新标记内存行进行ECC校验产生第二校验结果;根据第一校验结果和第二校验结果获得对应于标记内存行的内存行的标记位的值。本领域技术人员可以理解,由内存行和标记位产生标记内存行并不限于逻辑或运算,而可以由任何具有恢复标记位的值的功能的逻辑运算来实现。
其中根据第一校验结果和第二校验结果确定对应于标记内存行的内存行的标记位的值,其中确定标记位的值的方法包括:如果第一校验结果表明所述标记内存行的预定位错误,并且第二校验结果表明所述新标记内存行未出错,那么确定标记位的值为保护标记位;如果第一校验结果表明所述标记内存行未出错,并且第二校验结果表明所述新标记内存行的预定位错误,那么确定标记位的值为非保护标记位;如果第一校验结果表明所述标记内存行出现两位错,并且第二校验结果表明所述新内存行中除预定位之外的1位出错,那么确定标记位的值为保护标记位;如果第一校验结果表明所述标记内存行中除预定位之外的1位出错,并且第二校验结果表明所述新标记内存行出现两位错,那么确定标记位的值为非保护标记位;以及如果第一校验结果和第二校验结果均表明内存行出现大于等于两位错,那么标记位的值呈现未知无法确定的状态。
根据本发明的一个实施例,在根据本发明实施例的方法确定每个内存行对应的标记位的值之后,为了避免由于传输的错误引起多于两个的误码,导致无法确定标记位的值,对于按照高速缓存行(cacheline)的大小一次写入的内存行,进一步根据多数判决的原理确定标记位的值,因为对于按照高速缓存行的大小每次写入内存的内存行,设置的标记位是相同的,因此对按照高速缓存行的大小一次写入的内存行依据多数判决的原理能够确定出正确的标记位的值。
图5示出对标记内存行执行ECC校验获得标记位的示例,首先,利用8位单错纠正双错检测(SECDED)位p0......p7对标记内存行c0,c1.....c63进行ECC校验,产生8位ECC第一校验结果A(A0......A7);接着对标记内存行c0,c1.....c63中的标记位c0进行非逻辑运算,即,使c0与“1”进行异或,产生新标记内存行d0,d1......d63;接着利用8位单错纠正双错检测(SECDED)位p0......p7对新标记内存行d0,d1.....d63进行ECC校验,产生8位ECC第二校验结果B(B0......B7)。由于ECC的单错纠正双错检测(SECDED)位能够能纠正1个比特错误和检测2个比特错误,因此根据ECC校验结果A0......A7和ECC校验结果B0......B7能够纠正1个比特错误和检测两个比特错误。结合A0......A7和B0......B7纠错和检错结果,确定标记位的值。
图6示出本发明一个实施例的根据第一校验结果A和第二校验结果B确定内存行的标记位的值的状态表,由表中可见包括五种情形,第一种情形,如果第一校验结果A表明标记内存行c0,c1.....c63的预定位b0出错,并且第二校验结果B表明内存行b0,b1....b63未出错,那么确定标记位s的值为保护标记位“1”;第二种情形,如果第一校验结果A表明内存行b0,b1....b63未出错,并且第二校验结果B表明内存行b0,b1....b63的预定位b0出错,那么确定标记位S的值为非保护标记位“0”;第三种情形,如果第一校验结果A表明两位错,并且第二校验结果B表明内存行b0,b1....b63除预定位b0之外有一位bx错,那么确定标记位s的值为保护标记位“1”;第四种情形,如果第一校验结果A表明内存行b0,b1....b63除预定位b0之外有一位bx错,并且第二校验结果B表明内存行b0,b1....b63有两位错,那么确定标记位s的值为非保护标记位“0”;第五种情形,对于第一校验结果和第二校验结果均表明内存行内存行b0,b1....b63出现大于等于两位错,那么标记位的值呈现未知无法确定的状态。
为了避免出现第五种情形,根据本发明的实施例,可以采用多数判决的方法确保标记位s的值的正确性,图7示出采用多数判决的方法确定标记位s的值的示例,假设高速缓存行的大小是32byte,因此一次向内存控制器写入的数据是32byte加上一个标记位,由此产生4个内存行,对于一次写入的32byte指令数据,标记位是相同的,因此在根据本发明实施例的方法确定每个内存行对应的标记位的值之后,根据多数判决的原理确定正确的标记位的值,如图7所示,根据各自内存行的第一校验结果A和第二校验结果B,分别得到四个标记位s的值,分别是1、1、0、1,通过多数判决确定标记位s的值是保护标记位“1”,从而避免由于传输的错误引起的多于两个的误码,导致无法确定标记位的值。
在步骤S203,根据标记位的值将所述多个标记内存行复原为所述内存行。根据图5的示例,预先确定保护标记位为“1”,而非保护标记位为“0”。在这种情形下,如果满足第一种情形,即第一校验结果A表明预定位d0出错,并且第二校验结果B表明未出错,那么确定标记位s的值为“1”,因此将c0进行非逻辑运算,复原出原来的内存行b0,b1....b63。如果满足第二种情形,即,第一校验结果A表明未出错,并且第二校验结果B表明预定位b0出错,那么确定标记位s的值为“0”,因此标记内存行c0,c1.....c63即为原来的内存行b0,b1....b63。如果满足第三种情形,即,第一校验结果A表明两位错,并且第二校验结果B表明除预定位b0之外的一位bx错,那么确定标记位s的值为“1”,因此将c0进行非逻辑运算,并且将cx进行非逻辑运算,从而复原出原来的内存行b0,b1....b63。如果满足第四种情形,即,第一校验结果A表明除预定位b0之外的一位bx错,并且第二校验结果B表明两位错,那么确定标记位s的值为“0”,因此标记内存行c0,c1.....c63即为原来的内存行b0,b1....b63,从而复原出原来的内存行b0,b1....b63
在步骤S204,根据标记位的值和处理器的访问类型确定是否加载所述内存行。具体地,如果确定标记位的值为保护标记位并且处理器的访问类型为数据获取请求,则禁止将应用程序加载到数据缓存器(D-cache),从而实现了对应用程序的保护,防止应用程序被读取和破解;如果确定标记位的值为保护标记位并且访问类型为指令获取请求,则允许将应用程序加载到指令缓存器(I-cache),执行应用程序;如果确定标记位的值是非保护标记位并且访问类型为数据获取请求,则允许将应用程序加载到数据缓存器(D-cache);如果确定标记位的值是非保护标记位并且访问类型为指令获取请求,则允许将应用程序加载到指令缓存器(I-cache)。
基于同一发明构思,本发明提出一种保护内存中应用程序的内存控制器,图8示出根据本发明一个实施例的保护内存中应用程序的内存控制器的结构框图800,该内存控制器包括:读取模块801,被配置为响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的;ECC校验模块802,被配置为通过对所述标记内存行执行ECC校验获得所述内存行的标记位的值;复原模块803,被配置为根据标记位的值将所述标记内存行复原为所述内存行;加载判断模块804,被配置为根据标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行。
所述内存控制器还包括:接收模块,被配置为响应于接收到处理器的应用程序加载请求,从解密加速器接收所述内存行和用于标识所述内存行的标记位;ECC编码模块,对所述内存行执行ECC编码产生对应于所述内存行的ECC校验和,其中ECC编码模块可以利用现有技术中的任何ECC编码硬件实现方案来实现;标记内存行产生模块,被配置为将所述内存行的预定位与标记位进行异或产生标记内存行;以及写内存模块,将所述标记内存行和对应于所述内存行的ECC校验和写入内存。
其中ECC校验模块进一步被配置为:对标记内存行进行ECC校验产生第一校验结果;对标记内存行的预定位进行非逻辑运算产生新标记内存行;对所述新标记内存行进行ECC校验产生第二校验结果;根据第一校验结果和第二校验结果获得所述标记内存行的标记位的值,ECC校验模块可以在现有的ECC校验电路的基础上加以实现。
根据本发明的一个实施例,如果第一校验结果表明所述标记内存行的预定位错误,并且第二校验结果表明所述新标记内存行未出错,那么确定标记位的值为保护标记位;如果第一校验结果表明所述标记内存行未出错,并且第二校验结果表明所述新标记内存行的预定位错误,那么确定标记位的值为非保护标记位;如果第一校验结果表明所述标记内存行出现两位错,并且第二校验结果表明所述新内存行中除预定位之外的1位出错,那么确定标记位的值为保护标记位;如果第一校验结果表明所述标记内存行中除预定位之外的1位出错,并且第二校验结果表明所述新标记内存行出现两位错,那么确定标记位的值为非保护标记位;以及如果第一校验结果和第二校验结果均表明内存行出现大于等于两位错,那么标记位的值呈现未知无法确定的状态。
根据本发明的一个实施例,进一步包括用于利用多数判决的原理确定所述内存行对应的标记位的值的确定模块。
根据本发明的一个实施例,其中加载判断模块进一步被配置为:如果确定标记位的值为保护标记位并且处理器的加载访问请求为数据获取请求,则禁止加载所述内存行;如果确定标记位的值为保护标记位并且处理器的加载访问请求为指令获取请求,则允许加载所述内存行;如果确定标记位的值为非保护标记位并且处理器的加载访问请求为数据获取请求,则允许加载所述内存行;如果确定标记位的值为非保护标记位并且处理器的加载访问请求为指令获取请求,则允许加载所述内存行,从硬件实现上,按照上述的加载逻辑增加控制逻辑电路来控制应用程序的加载,图9示出加载应用程序的硬件控制逻辑真值表,其中指令获取请求表示为“1”,数据获取请求表示为“0”,保护标记位表示为“1”,非保护标记位表示为“0”,可以看到只有在标记位的值为保护标记位,并且访问类型为数据获取请求时禁止加载应用程序,而其它情况则允许,图10示出加载应用程序的控制逻辑电路示意图,利用非门和与门组合的逻辑控制电路能够有效防止重要应用程序不会被读取或盗取。
本发明还提供一种保护内存中应用程序的处理器,该处理器集成有具有上述描述特性的内存控制器。
应当理解,本发明的至少某些方面可以可替代地以程序产品实现。定义有关本发明的功能的程序可以通过各种信号承载介质被传送到数据存储系统或计算机系统,所述信号承载介质包括但不限于,不可写存储介质(例如,CD-ROM)、可写存储介质(例如,软盘、硬盘驱动器、读/写CD ROM、光介质)以及诸如包括以太网的计算机和电话网络之类的通信介质。因此应当理解,在此类信号承载介质中,当携带或编码有管理本发明中的方法功能的计算机可读指令时,代表本发明的可替代实施例。本发明可以硬件、软件、固件或其组合的方式实现。本发明可以集中的方式在一个计算机系统中实现,或以分布方式实现,在这种分布方式中,不同的部件分布在若干互连的计算机系统中。适于执行本文中描述的方法的任何计算机系统或其它装置都是合适的。优选地,本发明以计算机软件和通用计算机硬件的组合的方式实现,在这种实现方式中,当该计算机程序被加载和执行时,控制该计算机系统而使其执行本发明的方法,或构成本发明的系统。
上面出于举例说明的目的,给出了本发明的优选实施例的说明。优选实施例的上述说明不是穷尽的,也不打算把本发明局限于公开的明确形式,显然鉴于上述教导,许多修改和变化是可能的。对本领域的技术人员来说显而易见的这种修改和变化包括在由附加的权利要求限定的本发明的范围内。

Claims (11)

1.一种保护内存中应用程序的方法,其中所述应用程序按照高速缓存行的大小被缓存为内存行,该方法包括:
响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的错误检查和纠正ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的;
利用所述内存行的ECC校验和对所述标记内存行执行ECC校验获得所述内存行的标记位的值;
根据所述标记位的值将所述标记内存行复原为所述内存行;以及
根据所述标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行,
其中在从内存中读取标记内存行和对应于所述内存行的ECC校验和之前还包括加载应用程序,其中加载应用程序包括:
响应于接收到处理器的应用程序加载请求,接收所述内存行和用于标识所述内存行的标记位;
对所述内存行执行ECC编码产生对应于所述内存行的ECC校验和;
将所述内存行的预定位与所述内存行的标记位进行逻辑运算产生标记内存行;以及
将所述标记内存行和对应于所述内存行的ECC校验和写入内存,
其中通过对所述标记内存行执行ECC校验获得所述标记内存行的标记位的值进一步包括:
对所述标记内存行进行ECC校验产生第一校验结果;
对所述标记内存行的预定位进行非逻辑运算产生新标记内存行;
对所述新标记内存行进行ECC校验产生笫二校验结果;
根据第一校验结果和第二校验结果获得所述内存行的标记位的值。
2.根据权利要求1所述的方法,其中根据第一校验结果和第二校验结果获得所述内存行的标记位的值进一步包括:
如果第一校验结果表明所述标记内存行的预定位错误,并且第二校验结果表明所述新标记内存行未出错,那么确定标记位的值为保护标记位;
如果第一校验结果表明所述标记内存行未出错,并且第二校验结果表明所述新标记内存行的预定位错误,那么确定标记位的值为非保护标记位;
如果第一校验结果表明所述标记内存行出现两位错,并且第二校验结果表明所述新标记内存行中除预定位之外的一位出错,那么确定标记位的值为保护标记位;以及
如果第一校验结果表明所述标记内存行中除预定位之外的1位出错,并且第二校验结果表明所述新标记内存行出现两位错,那么确定标记位的值为非保护标记位。
3.根据权利要求2所述的方法,进一步包括利用多数判决的原理确定多个所述内存行对应的标记位的值。
4.根据权利要求2或3所述的方法,其中根据标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行进一步包括:
如果确定标记位的值为保护标记位并且处理器的加载访问请求为数据获取请求,则禁止加载所述内存行。
5.根据权利要求4所述的方法,其中所述保护标记位是由解密加速器为应用程序设置的。
6.一种保护内存中应用程序的内存控制器,其中所述应用程序按照高速缓存行的大小被缓存为内存行,该内存控制器包括:
读取模块,被配置为响应于处理器的加载访问请求,从内存中读取标记内存行和对应于所述内存行的ECC校验和,其中所述标记内存行是通过对所述内存行的预定位和用于标识所述内存行的标记位进行逻辑运算获得的;
ECC校验模块,被配置为利用所述内存行的ECC校验和对所述标记内存行执行ECC校验获得所述内存行的标记位的值;
复原模块,被配置为根据标记位的值将所述标记内存行复原为所述内存行;
加载判断模块,被配置为根据标记位的值和处理器的加载访问请求的类型确定是否加载所述内存行,
接收模块,被配置为响应于接收到处理器的应用程序加载请求,从解密加速器接收所述内存行和用于标识所述内存行的标记位;
ECC编码模块,对所述内存行执行ECC编码产生对应于所述内存行的ECC校验和;
标记内存行产生模块,被配置为将所述内存行的预定位与标记位进行异或逻辑运算产生标记内存行;以及
写内存模块,将所述标记内存行和对应于所述内存行的ECC校验和写入内存,
其中ECC校验模块进一步被配置为:
对所述标记内存行进行ECC校验产生第一校验结果;
对所述标记内存行的预定位进行非逻辑运算产生新标记内存行;
对所述新标记内存行进行ECC校验产生第二校验结果;
根据第一校验结果和第二校验结果获得所述标记内存行的标记位的值。
7.根据权利要求6所述的内存控制器,其中ECC校验模块进一步被配置为:
如果第一校验结果表明所述标记内存行的预定位错误,并且笫二校验结果表明所述新标记内存行未出错,那么确定标记位的值为保护标记位;
如果第一校验结果表明所述标记内存行未出错,并且第二校验结果表明所述新标记内存行的预定位错误,那么确定标记位的值为非保护标记位;
如果第一校验结果表明所述标记内存行出现两位错,并且第二校验结果表明所述新标记内存行中除预定位之外的一位出错,那么确定标记位的值为保护标记位;以及
如果第一校验结果表明所述标记内存行中除预定位之外的1位出错,并且第二校验结果表明所述新标记内存行出现两位错,那么确定标记位的值为非保护标记位。
8.根据权利要求7所述的内存控制器,进一步包括用于利用多数判决的原理确定多个所述内存行对应的标记位的值的确定模块。
9.根据权利要求7或8所述的内存控制器,其中加载判断模块进一步被配置为:
如果确定标记位的值为保护标记位并且处理器的加载访问请求为数据获取请求,则禁止加载所述内存行。
10.根据权利要求9所述的内存控制器,其中所述保护标记位是由解密加速器为应用程序设置的。
11.一种保护内存中应用程序的处理器,包括根据权利要求6-10任一个所述的内存控制器。
CN201010244715.3A 2010-07-30 2010-07-30 保护内存中应用程序的方法、内存控制器和处理器 Expired - Fee Related CN102346715B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010244715.3A CN102346715B (zh) 2010-07-30 2010-07-30 保护内存中应用程序的方法、内存控制器和处理器
US13/180,713 US20120030543A1 (en) 2010-07-30 2011-07-12 Protection of application in memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010244715.3A CN102346715B (zh) 2010-07-30 2010-07-30 保护内存中应用程序的方法、内存控制器和处理器

Publications (2)

Publication Number Publication Date
CN102346715A CN102346715A (zh) 2012-02-08
CN102346715B true CN102346715B (zh) 2014-05-28

Family

ID=45527949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010244715.3A Expired - Fee Related CN102346715B (zh) 2010-07-30 2010-07-30 保护内存中应用程序的方法、内存控制器和处理器

Country Status (2)

Country Link
US (1) US20120030543A1 (zh)
CN (1) CN102346715B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5464226B2 (ja) * 2012-03-30 2014-04-09 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
CN102799494B (zh) * 2012-08-29 2015-11-11 南车株洲电力机车研究所有限公司 一种校验内存中应用程序的方法和装置
CN102968355A (zh) * 2012-11-13 2013-03-13 浪潮电子信息产业股份有限公司 一种基于Intel-Brickland-EX平台的内存纠错方法
JP2017010425A (ja) * 2015-06-25 2017-01-12 富士通株式会社 制御プログラム、情報処理装置および制御方法
CN105677581A (zh) * 2016-01-05 2016-06-15 上海斐讯数据通信技术有限公司 一种内存访问装置和方法
CN109154963B (zh) * 2016-07-14 2021-01-29 华为技术有限公司 一种防止内存数据泄露的设备及方法
CN113655745B (zh) * 2021-08-19 2023-04-07 无锡中微亿芯有限公司 一种实现配置码流自动检纠错的fpga

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522410A (zh) * 2001-06-26 2004-08-18 �Ƚ�΢װ�ù�˾ 使用类型位跟踪二级高速缓存中储存的错误校正码及预解码位
CN1975697A (zh) * 2005-11-28 2007-06-06 株式会社东芝 保护存储器的方法、装置和系统
CN101546291A (zh) * 2009-05-12 2009-09-30 华为技术有限公司 提高内存数据健壮性的存取方法和装置
CN101657797A (zh) * 2007-04-13 2010-02-24 密克罗奇普技术公司 错误检测和校正码的可配置分开存储

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234638B2 (en) * 2004-12-28 2012-07-31 Hercules Software, Llc Creating a relatively unique environment for computing platforms
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US8060812B2 (en) * 2007-07-27 2011-11-15 International Business Machines Corporation Methods, systems, and computer program products for class verification
US8255783B2 (en) * 2008-04-23 2012-08-28 International Business Machines Corporation Apparatus, system and method for providing error protection for data-masking bits

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1522410A (zh) * 2001-06-26 2004-08-18 �Ƚ�΢װ�ù�˾ 使用类型位跟踪二级高速缓存中储存的错误校正码及预解码位
CN1975697A (zh) * 2005-11-28 2007-06-06 株式会社东芝 保护存储器的方法、装置和系统
CN101657797A (zh) * 2007-04-13 2010-02-24 密克罗奇普技术公司 错误检测和校正码的可配置分开存储
CN101546291A (zh) * 2009-05-12 2009-09-30 华为技术有限公司 提高内存数据健壮性的存取方法和装置

Also Published As

Publication number Publication date
CN102346715A (zh) 2012-02-08
US20120030543A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
CN102346715B (zh) 保护内存中应用程序的方法、内存控制器和处理器
CN108076057B (zh) 一种基于区块链的数据保全系统及方法
CN111723383B (zh) 数据存储、验证方法及装置
US7565553B2 (en) Systems and methods for controlling access to data on a computer with a secure boot process
US11409872B2 (en) Confirming a version of firmware loaded to a processor-based device
CN105830086A (zh) 使用外部秘密的存储系统中的数据保护
CN103530548B (zh) 基于移动可信计算模块的嵌入式终端可信启动方法
US9071581B2 (en) Secure storage with SCSI storage devices
CN105453102A (zh) 用于识别已泄漏的私有密钥的系统和方法
CN107430658A (zh) 安全软件认证及验证
WO2017000648A1 (zh) 一种被加固软件的认证方法及装置
US11356445B2 (en) Data access interface for clustered devices
CN103500202A (zh) 一种轻量级数据库的安全保护方法及系统
EP3746911A1 (en) Database system
US20130046979A1 (en) Protecting the information encoded in a bloom filter using encoded bits of data
US11347858B2 (en) System and method to inhibit firmware downgrade
US20180227288A1 (en) Password security
CN1478223A (zh) 验证方法和数据传输系统
CN104956620A (zh) 用于验证和密钥交换的方法和装置
CN104933361A (zh) 一种登录密码的保护装置及方法
US20220092155A1 (en) Protecting an item of software
US20130064365A1 (en) Data Destruction
CN110837634A (zh) 基于硬件加密机的电子签章方法
CN105933117A (zh) 一种基于tpm秘钥安全存储的数据加解密装置和方法
CN111539042B (zh) 一种基于核心数据文件可信存储的安全操作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: IBM (CHINA) CO., LTD.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION

Effective date: 20150727

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150727

Address after: 201203 Shanghai city Pudong New Area Keyuan Road No. 399 Zhang Jiang Zhang Jiang high tech Park Innovation Park 10 Building 7 layer

Patentee after: International Business Machines (China) Co., Ltd.

Address before: American New York

Patentee before: International Business Machines Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140528

Termination date: 20190730

CF01 Termination of patent right due to non-payment of annual fee