CN105677581A - 一种内存访问装置和方法 - Google Patents

一种内存访问装置和方法 Download PDF

Info

Publication number
CN105677581A
CN105677581A CN201610004056.3A CN201610004056A CN105677581A CN 105677581 A CN105677581 A CN 105677581A CN 201610004056 A CN201610004056 A CN 201610004056A CN 105677581 A CN105677581 A CN 105677581A
Authority
CN
China
Prior art keywords
data
state
visited
cache line
cache
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.)
Pending
Application number
CN201610004056.3A
Other languages
English (en)
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.)
Shanghai Feixun Data Communication Technology Co Ltd
Original Assignee
Shanghai Feixun Data Communication Technology Co Ltd
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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201610004056.3A priority Critical patent/CN105677581A/zh
Publication of CN105677581A publication Critical patent/CN105677581A/zh
Priority to PCT/CN2016/103886 priority patent/WO2017118181A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

一种内存访问装置和方法
技术领域
本发明涉及计算机网络领域,特别是涉及一种内存访问装置和方法。
背景技术
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包括:指令接收模块210,状态获取模块220,内存访问处理模块230。
其中,指令接收模块210用于接收内存访问指令,所述内存访问指令包含待访问内存地址。例如,系统在运行应用程序的过程中,需要访问指定内存地址的数据,处理器将接收到该内存访问指令。
状态获取模块220用于获取系统的当前安全性状态,其中,所述系统通过处理器核的状态位来标识当前安全性状态,状态获取模块220包括状态位获取单元221,用于获取处理器核中状态位的值。具体的,系统的状态可以是安全状态或者不安全状态;处理器核的状态位,例如是NS,当NS=1时标识当前系统处于非安全状态,NS=0标识当前系统处于安全状态。当系统处于非安全状态时,仅可以访问非安全状态的资源,包括内存和外部设备,并执行对安全性要求不高的操作,例如访问普通网页,而当处于安全状态时,可以访问所有资源,并执行例如银行支付等要求安全性高的操作。
内存访问处理模块230,用于在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
其中,高速缓存包含TLB和cache。为了加快内存的访问速度,会将部分常用的内存数据提前加载到高速缓存中,用于存放内存数据的单位称为高速缓存行(Line),本方案为每个Line扩展了一个tag,用于标识该Line的状态(安全或者不安全);对于已经加载的数据,高速缓存中同时会包含该数据在内存中的逻辑地址,对于部分加载的数据,高速缓存中还包含该数据中未加载部分数据在内存中的逻辑地址和物理地址。可以是通过对高速缓存逐行(Line)扫描,查找其状态和系统当前安全性状态相同、且包含待访问内存地址的高速缓存行,如果找到了满足条件的高速缓存行,说明数据已经加载到高速缓存,可以直接访问、则返回给处理器核;如果找不到说明数据还在内存中,需要实时从内存的待访问地址中将数据加载到高速缓存中,同时将存放该实时加载数据的高速缓存行的状态设置为系统当前安全性状态。
可选的,当所述高速缓存行通过tag来标识状态时,内存访问处理模块230包括第一判断单元231,第一高速缓存直接读取单元232,第一高速缓存间接读取单元233;第一判断单元231,用于在所述高速缓存中确定是否存在其tag值和所述系统的当前安全性状态相同,且包含所述待访问内存地址中数据的高速缓存行;第一高速缓存直接读取单元232,用于当第一判断单元231的确定结果为是则返回所述高速缓存行中的数据;第一高速缓存间接读取单元233,用于当第一判断单元231的确定结果为否则从内存中读取所述待访问内存地址的数据至高速缓存,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
可选的,内存访问处理模块230包括第二判断单元234,第二高速缓存直接读取单元235,第二高速缓存间接读取单元236;所述第二判断单元234,用于在所述高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行;所述第二高速缓存直接读取单元235,用于当所述第二判断单元234的确定结果为是则返回所述高速缓存行中的数据;所述第二高速缓存间接读取单元236包括空间状态判断子单元2361,空间不足处理子单元2362,空间充足处理子单元2363。
所述空间状态判断子单元2361,用于在所述第二判断单元234的确定结果为否时判断当前高速缓存是否空间满了;所述空间不足处理子单元2362,用于在所述空间状态判断子单元2361的判断结果为是时,优先将其状态和所述系统当前安全性状态不同的高速缓存行中的数据抛弃,从内存中读取所述待访问内存地址的数据保存到所述高速缓存行,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态;所述空间充足处理子单元2363,用于在所述空间状态判断子单元2361的判断结果为否时,从内存中读取所述待访问内存地址的数据保存到空闲的高速缓存行,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。因此,当需要实时从内存中加载数据到高速缓存时,首先判断高速缓存的空间是否满,如果满了则首先将状态和系统当前安全性状态不同的高速缓存行中的数据刷出,例如当前处于安全状态,则首先将非安全状态的数据刷出,当前处于非安全状态,则首先将安全状态的数据刷出。
可选的,所述内存访问处理模块230包括第三判断单元237,第三高速缓存直接读取单元238,第三高速缓存间接读取单元239;所述第三判断单元237,用于在当所述系统的当前安全性状态为安全,且所述待访问内存地址属于不安全类型的内存地址时,在所述高速缓存中确定是否存在状态为不安全状态、且包含所述待访问内存地址中数据的高速缓存行;所述第三高速缓存直接读取单元238,用于在所述第三判断单元237的确定结果为是时则返回所述高速缓存行中的数据;所述第三高速缓存间接读取单元239,用于在所述第三判断单元237的确定结果为否时则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。因为安全状态的进程可以访问非安全状态的内存,此时,需要将安全进程的状态也当做非安全状态来操作,以便找到正确的数据。
通过为高速缓存行增加状态,高速缓存中可以同时存在安全和不安全的数据,并且互相隔离,系统可以灵活调用,从而避免了系统每次切换状态时都需要将数据全部刷出,提高下次加载数据的速度,从而提高到了系统性能。
区别于现有技术,本发明的内存访问装置,接收到内存访问指令,所述内存访问指令包含待访问内存地址;获取系统的当前安全性状态;在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态;从而能够提高系统的性能。
参阅图3图3是本发明提供的内存访问方法第一实施方式的流程示意,该方法可用于基于Trustzone技术的系统中。
该方法的步骤包括:
S301:接收到内存访问指令,所述内存访问指令包含待访问内存地址。
例如,系统在运行应用程序的过程中,需要访问指定内存地址的数据,处理器将接收到该内存访问指令。
S302:获取系统的当前安全性状态。
具体的,所述系统通过处理器核的状态位来标识当前安全性状态,所述获取系统的当前安全性状态的方法具体为获取处理器核中状态位的值。
具体的,系统的状态可以是安全状态或者不安全状态;处理器核的状态位,例如是NS,当NS=1时标识当前系统处于非安全状态,NS=0标识当前系统处于安全状态。当系统处于非安全状态时,仅可以访问非安全状态的资源,包括内存和外部设备,并执行对安全性要求不高的操作,例如访问普通网页,而当处于安全状态时,可以访问所有资源,并执行例如银行支付等要求安全性高的操作。
S303:在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
其中,所述高速缓存行通过tag来标识状态,所述在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行具体为:在所述高速缓存中确定是否存在其tag值和所述系统的当前安全性状态相同,且包含所述待访问内存地址中数据的高速缓存行。
其中,高速缓存包含TLB和cache。为了加快内存的访问速度,会将部分常用的内存数据提前加载到高速缓存中,用于存放内存数据的单位称为高速缓存行(Line),本方案为每个Line扩展了一个tag,用于标识该Line的状态(安全或者不安全);对于已经加载的数据,高速缓存中同时会包含该数据在内存中的逻辑地址,对于部分加载的数据,高速缓存中还包含该数据中未加载部分数据在内存中的逻辑地址和物理地址。可以是通过对高速缓存逐行(Line)扫描,查找其状态和系统当前安全性状态相同、且包含待访问内存地址的高速缓存行,如果找到了满足条件的高速缓存行,说明数据已经加载到高速缓存,可以直接访问、则返回给处理器核;如果找不到说明数据还在内存中,需要实时从内存的待访问地址中将数据加载到高速缓存中,同时将存放该实时加载数据的高速缓存行的状态设置为系统当前安全性状态。
进一步可选的,所述如果不存在则从内存中读取数据至高速缓存中具体为:确定当前高速缓存是否空间满了;如果是,则优先将其状态和所述系统当前安全性状态不同的高速缓存行中的数据抛弃,将所述从内存中读取的所述待访问内存地址的数据保存到所述高速缓存行;如果否,则将所述从内存中读取的所述待访问内存地址的数据保存到空闲的高速缓存行。
因此,当需要实时从内存中加载收据到高速缓存时,首先判断高速缓存的空间是否满,如果满了则首先将状态和系统当前安全性状态不同的高速缓存行中的数据刷出,例如当前处于安全状态,则首先将非安全状态的数据刷出,当前处于非安全状态,则首先将安全状态的数据刷出。
可选的,如果所述系统的当前安全性状态为安全,且所述待访问内存地址属于不安全类型的内存地址;所述在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行具体为:在高速缓存中确定是否存在状态为不安全状态、且包含所述待访问内存地址中数据的高速缓存行。因为安全状态的进程可以访问非安全状态的内存,此时,需要将安全进程的状态也当做非安全状态来操作,以便找到正确的数据。
通过为高速缓存行增加状态,高速缓存中可以同时存在安全和不安全的数据,并且互相隔离,系统可以灵活调用,从而避免了系统每次切换状态时都需要将数据全部刷出,提高下次加载数据的速度,从而提高到了系统性能。
区别于现有技术,本发明的基于Trustzone技术的内存访问装置,接收到内存访问指令,所述内存访问指令包含待访问内存地址;获取系统的当前安全性状态;在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态;从而能够提高系统性能。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种内存访问装置,其特征在于,包括:
指令接收模块,用于接收内存访问指令,所述内存访问指令包含待访问内存地址;
状态获取模块,用于获取系统的当前安全性状态;
内存访问处理模块,用于在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
2.根据权利要求1所述的内存访问装置,其特征在于,所述系统通过处理器核的状态位来标识当前安全性状态,所述状态获取模块包括状态位获取单元,用于获取处理器核中状态位的值。
3.根据权利要求1或2所述的内存访问装置,其特征在于,所述高速缓存行通过tag来标识状态,所述内存访问处理模块包括第一判断单元,第一高速缓存直接读取单元,第一高速缓存间接读取单元;
所述第一判断单元,用于在所述高速缓存中确定是否存在其tag值和所述系统的当前安全性状态相同,且包含所述待访问内存地址中数据的高速缓存行;
所述第一高速缓存直接读取单元,用于当所述第一判断单元的确定结果为是则返回所述高速缓存行中的数据;
所述第一高速缓存间接读取单元,用于当所述第一判断单元的确定结果为否则从内存中读取所述待访问内存地址的数据至高速缓存,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
4.根据权利要求1或2所述的内存访问装置,其特征在于,所述内存访问处理模块包括第二判断单元,第二高速缓存直接读取单元,第二高速缓存间接读取单元;
所述第二判断单元,用于在所述高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行;
所述第二高速缓存直接读取单元,用于当所述第二判断单元的确定结果为是则返回所述高速缓存行中的数据;
所述第二高速缓存间接读取单元包括空间状态判断子单元,空间不足处理子单元,空间充足处理子单元;
所述空间状态判断子单元,用于在所述第二判断单元的确定结果为否时判断当前高速缓存是否空间满了;
所述空间不足处理子单元,用于在所述空间状态判断子单元的判断结果为是时,优先将其状态和所述系统当前安全性状态不同的高速缓存行中的数据抛弃,从内存中读取所述待访问内存地址的数据保存到所述高速缓存行,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态;
所述空间充足处理子单元,用于在所述空间状态判断子单元的判断结果为否时,从内存中读取所述待访问内存地址的数据保存到空闲的高速缓存行,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
5.根据权利要求1或2所述的内存访问装置,其特征在于,所述内存访问处理模块包括第三判断单元,第三高速缓存直接读取单元,第三高速缓存间接读取单元;
所述第三判断单元,用于在当所述系统的当前安全性状态为安全,且所述待访问内存地址属于不安全类型的内存地址时,在所述高速缓存中确定是否存在状态为不安全状态、且包含所述待访问内存地址中数据的高速缓存行;
所述第三高速缓存直接读取单元,用于在所述第三判断单元的确定结果为是时则返回所述高速缓存行中的数据;
所述第三高速缓存间接读取单元,用于在所述第三判断单元的确定结果为否时则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
6.一种内存访问方法,其特征在于,包括:
接收到内存访问指令,所述内存访问指令包含待访问内存地址;
获取系统的当前安全性状态;
在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行,如果存在则返回所述高速缓存行中的数据,如果不存在则从内存中读取所述待访问内存地址的数据至高速缓存中,并将存放所述数据的高速缓存行的状态设置为所述系统的当前安全性状态。
7.根据权利要求6所述的内存访问方法,其特征在于,所述系统通过处理器核的状态位来标识当前安全性状态,所述获取系统的当前安全性状态的方法具体为获取处理器核中状态位的值。
8.根据权利要求6或7所述的内存访问方法,其特征在于,所述高速缓存行通过tag来标识状态,所述在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行具体为:在所述高速缓存中确定是否存在其tag值和所述系统的当前安全性状态相同,且包含所述待访问内存地址中数据的高速缓存行。
9.根据权利要求6或7所述的内存访问方法,其特征在于,所述如果不存在则从内存中读取数据至高速缓存中具体为:确定当前高速缓存是否空间满了;如果是,则优先将其状态和所述系统当前安全性状态不同的高速缓存行中的数据抛弃,将所述从内存中读取的所述待访问内存地址的数据保存到所述高速缓存行;如果否,则将所述从内存中读取的所述待访问内存地址的数据保存到空闲的高速缓存行。
10.根据权利要求6或7所述的内存访问方法,其特征在于,如果所述系统的当前安全性状态为安全,且所述待访问内存地址属于不安全类型的内存地址;所述在高速缓存中确定是否存在状态和所述系统的当前安全性状态相同、且包含所述待访问内存地址中数据的高速缓存行具体为:在高速缓存中确定是否存在状态为不安全状态、且包含所述待访问内存地址中数据的高速缓存行。
CN201610004056.3A 2016-01-05 2016-01-05 一种内存访问装置和方法 Pending CN105677581A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610004056.3A CN105677581A (zh) 2016-01-05 2016-01-05 一种内存访问装置和方法
PCT/CN2016/103886 WO2017118181A1 (zh) 2016-01-05 2016-10-29 一种内存访问装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610004056.3A CN105677581A (zh) 2016-01-05 2016-01-05 一种内存访问装置和方法

Publications (1)

Publication Number Publication Date
CN105677581A true CN105677581A (zh) 2016-06-15

Family

ID=56298749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610004056.3A Pending CN105677581A (zh) 2016-01-05 2016-01-05 一种内存访问装置和方法

Country Status (2)

Country Link
CN (1) CN105677581A (zh)
WO (1) WO2017118181A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017118181A1 (zh) * 2016-01-05 2017-07-13 上海斐讯数据通信技术有限公司 一种内存访问装置和方法
WO2018229699A1 (en) * 2017-06-16 2018-12-20 International Business Machines Corporation Cache structure using a logical directory
US10606762B2 (en) 2017-06-16 2020-03-31 International Business Machines Corporation Sharing virtual and real translations in a virtual cache
CN111221775A (zh) * 2018-11-23 2020-06-02 阿里巴巴集团控股有限公司 处理器、缓存处理方法及电子设备
US10698836B2 (en) 2017-06-16 2020-06-30 International Business Machines Corporation Translation support for a virtual cache
CN111767536A (zh) * 2019-04-01 2020-10-13 中国农业大学 一种抵抗处理器投机访问漏洞的cache防护方法及装置
CN113835615A (zh) * 2020-09-17 2021-12-24 北京焱融科技有限公司 一种基于分布式文件存储的智能分层方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1711524A (zh) * 2002-11-18 2005-12-21 Arm有限公司 在安全模式和非安全模式间切换的处理器
US20080288789A1 (en) * 2007-05-02 2008-11-20 Arm Limited Reducing information leakage between processes sharing a cache
CN103902470A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 读缺失时的处理方法、设备和系统
CN104252392A (zh) * 2013-06-28 2014-12-31 华为技术有限公司 一种访问数据缓存的方法和处理器
CN104834608A (zh) * 2015-05-12 2015-08-12 华中科技大学 一种异构内存环境下的缓存替换方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101438290B (zh) * 2006-05-01 2011-10-05 联发科技股份有限公司 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置
CN102346715B (zh) * 2010-07-30 2014-05-28 国际商业机器公司 保护内存中应用程序的方法、内存控制器和处理器
US10019603B2 (en) * 2014-04-16 2018-07-10 Synopsys, Inc. Secured memory system and method therefor
CN104573565B (zh) * 2015-01-23 2017-11-17 宇龙计算机通信科技(深圳)有限公司 一种TrustZone上的内存管理方法及装置
CN105677581A (zh) * 2016-01-05 2016-06-15 上海斐讯数据通信技术有限公司 一种内存访问装置和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1711524A (zh) * 2002-11-18 2005-12-21 Arm有限公司 在安全模式和非安全模式间切换的处理器
US20080288789A1 (en) * 2007-05-02 2008-11-20 Arm Limited Reducing information leakage between processes sharing a cache
CN103902470A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 读缺失时的处理方法、设备和系统
CN104252392A (zh) * 2013-06-28 2014-12-31 华为技术有限公司 一种访问数据缓存的方法和处理器
CN104834608A (zh) * 2015-05-12 2015-08-12 华中科技大学 一种异构内存环境下的缓存替换方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017118181A1 (zh) * 2016-01-05 2017-07-13 上海斐讯数据通信技术有限公司 一种内存访问装置和方法
US10713168B2 (en) 2017-06-16 2020-07-14 International Business Machines Corporation Cache structure using a logical directory
US10606762B2 (en) 2017-06-16 2020-03-31 International Business Machines Corporation Sharing virtual and real translations in a virtual cache
GB2578070A (en) * 2017-06-16 2020-04-15 Ibm Cache structure using a logical directory
US10698836B2 (en) 2017-06-16 2020-06-30 International Business Machines Corporation Translation support for a virtual cache
GB2578070B (en) * 2017-06-16 2020-09-09 Ibm Cache structure using a logical directory
WO2018229699A1 (en) * 2017-06-16 2018-12-20 International Business Machines Corporation Cache structure using a logical directory
US10810134B2 (en) 2017-06-16 2020-10-20 International Business Machines Corporation Sharing virtual and real translations in a virtual cache
US10831674B2 (en) 2017-06-16 2020-11-10 International Business Machines Corporation Translation support for a virtual cache
US10831664B2 (en) 2017-06-16 2020-11-10 International Business Machines Corporation Cache structure using a logical directory
US11775445B2 (en) 2017-06-16 2023-10-03 International Business Machines Corporation Translation support for a virtual cache
US11403222B2 (en) 2017-06-16 2022-08-02 International Business Machines Corporation Cache structure using a logical directory
CN111221775A (zh) * 2018-11-23 2020-06-02 阿里巴巴集团控股有限公司 处理器、缓存处理方法及电子设备
CN111221775B (zh) * 2018-11-23 2023-06-20 阿里巴巴集团控股有限公司 处理器、缓存处理方法及电子设备
CN111767536A (zh) * 2019-04-01 2020-10-13 中国农业大学 一种抵抗处理器投机访问漏洞的cache防护方法及装置
CN111767536B (zh) * 2019-04-01 2024-03-22 中国农业大学 一种抵抗处理器投机访问漏洞的cache防护方法及装置
CN113835615A (zh) * 2020-09-17 2021-12-24 北京焱融科技有限公司 一种基于分布式文件存储的智能分层方法和系统

Also Published As

Publication number Publication date
WO2017118181A1 (zh) 2017-07-13

Similar Documents

Publication Publication Date Title
CN105677581A (zh) 一种内存访问装置和方法
US10114749B2 (en) Cache memory system and method for accessing cache line
US8954959B2 (en) Memory overcommit by using an emulated IOMMU in a computer system without a host IOMMU
CN109002706B (zh) 一种基于用户级页表的进程内数据隔离保护方法和系统
US9063891B2 (en) Secure computer system for preventing access requests to portions of system memory by peripheral devices and/or processor cores
CN103092788B (zh) 多核处理器及数据访问方法
US8631170B2 (en) Memory overcommit by using an emulated IOMMU in a computer system with a host IOMMU
US10261917B2 (en) Identifying stale entries in address translation cache
US8955062B2 (en) Method and system for permitting access to resources based on instructions of a code tagged with an identifier assigned to a domain
US9086987B2 (en) Detection of conflicts between transactions and page shootdowns
CN110196757A (zh) 虚拟机的tlb填写方法、装置及存储介质
US11467977B2 (en) Method and apparatus for monitoring memory access behavior of sample process
US20230289295A1 (en) Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses
US9086986B2 (en) Detection of conflicts between transactions and page shootdowns
US20160342526A1 (en) Electronic device having scratchpad memory and management method for scratchpad memory
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
CN108062486A (zh) 一种针对间接访问存储控制器的存储保护装置
KR20120088370A (ko) 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법
CN104750536A (zh) 一种实现虚拟机自省的方法和装置
CN107562514B (zh) 一种物理内存访问控制与隔离方法
WO2022228287A1 (zh) 内存数据获取方法、装置及存储介质
CN101950274A (zh) 一种管态维护且目态共享的数据访问装置及方法
CN107153566B (zh) 虚拟机i/o性能优化方法及装置
US20190377689A1 (en) Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device
CN106155939A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20160615

RJ01 Rejection of invention patent application after publication