一种内存访问装置和方法制造方法及图纸

技术编号:15009225 阅读:45 留言:0更新日期:2017-04-04 14:55
本发明专利技术公开了一种内存访问装置和方法,该装置包括:指令接收模块,用于接收内存访问指令,所述内存访问指令包含待访问内存地址;状态获取模块,用于获取系统的当前安全性状态;内存访问处理模块,用于在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。本发明专利技术能够提高系统性能。

【技术实现步骤摘要】

本专利技术涉及计算机网络领域,特别是涉及一种内存访问装置和方法
技术介绍
ARM的可信域(Trustzone)技术是系统范围的安全方法,针对高性能计算平台上的大量应用,包括安全支付,数字版权管理和基于WEB的服务。它的基本思想是:Trustzone将系统内存及外设划分为安全域及非安全域,通过扩展高级微控制总线架构(AdvancedMicrocontrollerBusArchitecture,AMBA)-3总线来确保安全域的资源(内存及外设)不被非安全域的进程访问。同时,处理器核扩展了一个状态位,即NS,用来标记内核的安全性状态。Trustzone技术的目的,即确保处在非安全状态的内核只能访问非安全世界的资源,安全状态的内核可以访问任意资源。通过这种方式,可将安全世界及非安全世界的硬件资源及软件资源进行隔离,从而保护用户的敏感数据安全。由于这种安全世界及非安全世界的划分的存在,就意味着系统会频繁在安全世界及非安全世界之间进行切换。由于安全世界及非安全世界的进程地址内存映射是完全独立,即拥有独立的内存映射表。因此,在切换世界的过程中,并不需要刷新内存映射表。然而,对于传输后备缓冲器(TranslationLookasideBuffer,TLB)及高速缓冲存储器(cache)等高速缓存来说,这些资源在两个世界中是共享的。因此,当切换世界时,TLB及cache需要不停地刷出,这会严重影响系统的性能。可见,现有技术中,采用Trustzone技术的系统因为涉及到安全世界及非安全世界之间的切换,系统的性能会明显降低。专利技术内容本专利技术主要解决的技术问题是提供一种内存访问装置和方法,能够提高系统性能。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种内存访问装置,该装置包括指令接收模块,用于接收内存访问指令,所述内存访问指令包含待访问内存地址;状态获取模块,用于获取系统的当前安全性状态;内存访问处理模块,用于在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。为解决上述技术问题,本专利技术采用的一个技术方案是:提供一种内存访问方法,该方法包括接收到内存访问指令,所述内存访问指令包含待访问内存地址;获取系统的当前安全性状态;在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。区别于现有技术,本专利技术的内存访问装置,接收到内存访问指令,所述内存访问指令包含待访问内存地址;获取系统的当前安全性状态;在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态;从而能够提高系统性能。附图说明图1是本专利技术内存访问装置的第一实施方式的结构示意图;图2是本专利技术内存访问装置的第二实施方式的结构示意图;图3是本专利技术内存访问方法的第一实施方式的流程示意图。具体实施方式下面结合具体实施方式对本专利技术的技术方案作进一步更详细的描述。显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。参阅图1,图1是本专利技术提供的内存访问装置的第一实施方式的结构示意图,该内存访问装置可用于基于Trustzone技术的系统中。该内存访问装置100包括:指令接收模块110,状态获取模块120和内存访问处理模块130。其中,指令接收模块110,用于接收内存访问指令,所述内存访问指令包含待访问内存地址。例如,系统在运行应用程序的过程中,需要访问指定内存地址的数据,处理器将接收到该内存访问指令。状态获取模块120,用于获取系统的当前安全性状态。具体的,系统的状态可以是安全状态或者不安全状态。通常的,通过处理器核的状态位来指示系统的当前安全性状态,即NS状态位,当NS=1时标识当前系统处于非安全状态,NS=0标识当前系统处于安全状态。当系统处于非安全状态时,仅可以访问非安全状态的资源,包括内存和外部设备,并执行对安全性要求不高的操作,例如访问普通网页,而当处于安全状态时,可以访问所有资源,并执行例如银行支付等要求安全性高的操作。内存访问处理模块130,用于在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。其中,高速缓存包含TLB和cache;为了加快内存的访问速度,会将部分常用的内存数据提前加载到高速缓存中,用于存放内存数据的单位称为高速缓存行(Line),本方案为每个Line扩展了一个tag,用于标识该Line的状态(安全或者不安全);对于已经加载的数据,高速缓存中同时会包含该数据在内存中的逻辑地址,对于部分加载的数据,高速缓存中还包含该数据中未加载部分数据在内存中的逻辑地址和物理地址。具体的,可以是对高速缓存逐行(Line)扫描,查找其状态和系统当前安全性状态相同、且包含待访问内存地址的高速缓存行,如果找到了满足条件的高速缓存行,说明数据已经加载到高速缓存,可以直接访问、则返回给处理器核;如果找不到说明数据还在内存中,需要实时从内存的待访问地址中将数据加载到高速缓存中,同时将存放该实时加载数据的高速缓存行的状态设置为系统当前安全性状态。通过为高速缓存行增加状态,高速缓存中可以同时存在安全和不安全的数据,并且互相隔离,系统可以灵活调用,从而避免了系统每次切换状态时都需要将数据全部刷出,提高下次加载数据的速度,从而提高到了系统性能。区别于现有技术,本专利技术的内存访问装置,接收到内存访问指令,所述内存访问指令包含待访问内存地址;获取系统的当前安全性状态;在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态;从而能够提高系统性能。参阅图2,图2是本专利技术提供的内存访问装置的第二实施方式的结构示意图,该内存访问装置可用于基于Trustzone技术的系统中。该内存访问装置200本文档来自技高网...

【技术保护点】
一种内存访问装置,其特征在于,包括:指令接收模块,用于接收内存访问指令,所述内存访问指令包含待访问内存地址;状态获取模块,用于获取系统的当前安全性状态;内存访问处理模块,用于在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。

【技术特征摘要】
1.一种内存访问装置,其特征在于,包括:
指令接收模块,用于接收内存访问指令,所述内存访问指令包含待访问内
存地址;
状态获取模块,用于获取系统的当前安全性状态;
内存访问处理模块,用于在高速缓存中确定是否存在状态和所述系统的当
前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存
在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内
存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所
述系统的当前安全性状态。
2.根据权利要求1所述的内存访问装置,其特征在于,所述系统通过处理
器核的状态位来标识当前安全性状态,所述状态获取模块包括状态位获取单元,
用于获取处理器核中状态位的值。
3.根据权利要求1或2所述的内存访问装置,其特征在于,所述高速缓存
行通过tag来标识状态,所述内存访问处理模块包括第一判断单元,第一高速
缓存直接读取单元,第一高速缓存间接读取单元;
所述第一判断单元,用于在所述高速缓存中确定是否存在其tag值和所述
系统的当前安全性状态相同,且包含所述待访问内存地址中数据的高速缓存行;
所述第一高速缓存直接读取单元,用于当所述第一判断单元的确定结果为
是则返回所述高速缓存行中的数据;
所述第一高速缓存间接读取单元,用于当所述第一判断单元的确定结果为
否则从内存中读取所述待访问内存地址的数据至高速缓存,并将存放所述数据
的高速缓存行的状态设置为所述系统的当前安全性状态。
4.根据权利要求1或2所述的内存访问装置,其特征在于,所述内存访问
处理模块包括第二判断单元,第二高速缓存直接读取单元,第二高速缓存间接
读取单元;
所述第二判断单元,用于在所述高速缓存中确定是否存在状态和所述系统
的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行;
所述第二高速缓存直接读取单元,用于当所述第二判断单元的确定结果为
是则返回所述高速缓存行中的数据;
所述第二高速缓存间接读取单元包括空间状态判断子单元,空间不足处理

\t子单元,空间充足处理子单元;
所述空间状态判断子单元,用于在所述第二判断单元的确定结果为否时判
断当前高速缓存是否空间满了;
所述空间不足处理子单元,用于在所述空间状态判断子单元的判断结果为
是时,优先将其状态和所述系统当前安全性状态不同的高速缓存行中的数据抛
弃,从内存中读取所述待访问内存地址的数据保存到所述高速缓存行,并将存
放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态;
所述空间充足处理子单元,用于在所述空间状态判断子单元的判断结果为
否时,从内存中读取所述待访问内存地址的数据保存到空闲的高速缓存行,并
将存放所述数据的高速缓存行的状态设置为所述系统的...

【专利技术属性】
技术研发人员:蒋晨磊
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1