CN109313693B - 针对偶发存储器访问程序指令的许可控制 - Google Patents
针对偶发存储器访问程序指令的许可控制 Download PDFInfo
- Publication number
- CN109313693B CN109313693B CN201780038911.5A CN201780038911A CN109313693B CN 109313693 B CN109313693 B CN 109313693B CN 201780038911 A CN201780038911 A CN 201780038911A CN 109313693 B CN109313693 B CN 109313693B
- Authority
- CN
- China
- Prior art keywords
- memory
- access
- memory access
- circuitry
- sporadic
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种数据处理装置和方法用以取决于偶发访问许可检查禁用旗标针对偶发存储器访问操作(其访问许可失败不改变程序流)管理访问许可检查。若该偶发访问禁用旗标具有第一值,则诸如遍历状态机器22之类的此禁用存储器许可电路***执行关于该存储器访问电路***是否被许可执行所请求的存储器访问的检查。非偶发存储器访问能够利用存储器许可电路***而不考虑该偶发访问许可检查禁用旗标的值。
Description
技术领域
本公开涉及数据处理***的领域。更具体地,本公开涉及在支持偶发存储器访问程序指令的数据处理***内的许可控制。
背景技术
偶发存储器访问程序指令允许软件管理的推测关于存储器访问操作来执行,即,偶发存储器访问程序指令指定至少一个偶发存储器访问操作并且至下一程序指令的程序流的改变并不取决于该偶发存储器访问操作是否被许可,例如,若该偶发存储器访问操作未通过许可条件,则不触发异常。利用支持偶发存储器访问程序指令的***的潜在安全问题是它们会通过使用这样的偶发存储器访问程序指令“扫描”存储器地址空间促进恶意方获得关于***配置的信息,而不触发异常或操作***介入,并且随后使用诸如时序分析之类的技术来确定存储器地址空间中的哪些部分是以特定方式映射或配置的。
发明内容
本公开的至少一些实施例提供了一种用于处理数据的装置,包括:
存储器访问电路***,响应于程序的存储器访问程序指令而在存储器地址空间内执行一个或多个存储器访问,其中
当存储器访问程序指令为偶发存储器访问程序指令时,一个或多个存储器访问包括至少一个偶发存储器访问并且在该偶发存储器访问程序指令之后到下一待执行程序指令的程序流与该至少一个偶发存储器访问是否被许可无关;以及
当存储器访问程序指令为非偶发存储器访问程序指令时,一个或多个存储器访问为一个或多个非偶发存储器访问并且在该非偶发存储器访问程序指令之后到下一待执行程序指令的程序流取决于该一个或多个非偶发存储器访问是否被许可;以及
存储器许可电路***,用以控制存储器访问电路***是否被许可执行存储器访问,其中
关于一个或多个偶发存储器访问,存储器许可电路***响应于具有第一值的偶发访问许可检查禁用旗标而禁用该存储器许可电路***的控制并且响应于具有第二值的偶发访问许可检查禁用旗标而启用存储器许可电路***的控制;以及
关于一个或多个非偶发存储器访问,存储器许可电路***的控制系与偶发访问许可检查禁用旗标无关。
本公开的至少一些实施例提供了一种处理数据的方法,包括:
响应于程序的存储器访问程序指令,在存储器地址空间内执行一个或多个存储器访问,其中
当存储器访问程序指令为偶发存储器访问程序指令时,一个或多个存储器访问包括至少一个偶发存储器访问并且在该偶发存储器访问程序指令之后到下一待执行程序指令的指令流与该至少一个偶发存储器访问是否被许可无关;以及
当存储器访问程序指令为非偶发存储器访问程序指令时,一个或多个存储器访问为一个或多个非偶发存储器访问并且在该非偶发存储器访问程序指令之后到下一待执行程序指令的程序流取决于该一个或多个非偶发存储器访问是否被许可;
使用存储器许可电路***控制是否许可存储器访问,其中
关于一个或多个偶发存储器访问,响应于具有第一值的偶发访问许可检查禁用旗标,禁用存储器许可电路***的控制,并且响应于具有第二值的偶发访问许可检查禁用旗标,启用存储器许可电路***的控制;以及
关于一个或多个非偶发存储器访问,存储器许可电路***的控制系与偶发访问许可检查禁用旗标无关。
本公开的至少一些实施例提供了一种用于控制电路***的计算机程序以提供对应于上文所述的装置的虚拟机执行环境。
附图说明
现将仅以示例方式参考附图描述示例实施例,其中:
图1示意性地示出了支持偶发存储器访问程序指令并使用存储器许可电路***的数据处理***;
图2示意性地示出了多个异常等级及对包括许可数据的转换表数据的相关指针;
图3示意性地示出了被配置为包括高区及低区(分别具有其自身相关的转换表)的图1的***的存储器地址空间;
图4示意性地示出了存储包括偶发访问许可检查禁用旗标的配置旗目标转换控制寄存器;
图5是示出了可如何针对不同类型操作设定用于两个存储器区域的偶发访问许可检查禁用旗目标的表格;
图6示意性地示出了以第一故障加载指令及非故障加载指令的形式的偶发存储器访问程序指令;
图7示意性地示出了在事务存储器***内标记为存储器事务的代码块内以存储器访问程序指令的形式的偶发存储器访问程序指令;
图8示意性地示出了以预提取指令的形式的偶发存储器访问程序指令;
图9是示意性地示出了针对存储器访问操作的访问许可的确定及使用的流程图;以及
图10示出了虚拟机实施方式。
具体实施方式
图1示意性地示出了数据处理***2,其包括耦接至存储器6的处理器核心4(例如,映射至一个或多个物理存储器的虚拟地址)。处理器核心4包括提取单元5,其用于从存储器6提取程序指令并且将这些指令提供至指令管线8。指令管线8包括解码级,其中解码器电路***10解码程序指令并且产生用以控制处理器核心4的其他组件的控制信号以执行由解码的程序指令所指定的处理操作。应了解与图1所示的相比,处理器核心 4通常将包括更多组件,但并未示出全部这些组件以有助于说明清晰。
处理器核心4包括处理电路***12,其用于例如对存储在寄存器组 14的寄存器内的数据值执行通用算术及逻辑操作。存储器访问电路*** 16用以针对存储在存储器6内的数据值执行由解码器电路***10解码的存储器访问程序指令所指定的存储器访问操作,诸如加载及存储。存储器管理单元18响应于转换表数据20以控制是否许可待执行的存储器访问。存储器管理单元18亦用以在由处理器核心4执行的程序指令所指定的虚拟地址与用以寻址存储器6的物理地址之间转换。由存储器管理单元18 所使用的用以确定访问许可的转换表数据20是经由存储器管理单元18内的遍历状态机器22控制的表遍历操作恢复的。遍历状态机器22是可针对偶发存储器访问操作选择性禁用的存储器许可电路***的示例,如将在下文进一步论述。近期接收到的由遍历状态机器22由此表遍历从转换表数据20获得的转换表数据可缓存至存储器管理单元18内的转换旁看缓冲器 24内。此转换旁看缓冲器24用作访问许可缓存,因为其通常存储近期使用的访问许可数据及近期使用的虚拟至物理地址转换数据。
当如由提取单元5从存储器6提取的存储器访问程序指令所指定来执行存储器访问操作时,则存储器管理单元18确定待应用的虚拟至物理地址转换及待执行的存储器访问操作是否满足访问许可条件,例如,是当前于适当异常等级的处理器核心4以具有访问相关数据的许可,是许可类型的存储器访问操作,例如,并非定义为只读的数据的写入操作,等等。存储器管理单元18确定其请求的访问许可(以及转换)数据是否在用于待执行的(一个或多个)存储器访问操作的转换旁看缓冲器24存储器在。若在待执行的(一个或多个)存储器访问操作与在转换旁看缓冲器24内存储的内容之间存在匹配(命中),则此存储内容用以确定待应用的地址转换以及该存储器访问是否满足其访问许可。若在转换旁看缓冲器24中不存在匹配,则遍历状态机器22(若启用)执行表遍历操作以在转换表数据20存储器访问用于待执行的(一个或多个)存储器访问操作的对应转换及访问许可数据。若在转换表数据20内未发现此转换或访问许可数据,则出现转换故障。此转换故障可相对快速识别,例如,待转换的虚拟地址是在其任何映射保持在转换表数据20内的虚拟地址范围外。若转换及访问许可数据由表遍历操作识别,则此转换及访问许可数据用以确定是否许可该存储器访问操作,并且若许可,则在待用于该存储器访问操作的存储器6内产生适当物理地址。
异常等级控制电路***26用以控制处理器核心4操作的当前异常等级(特权等级)并将信号提供至指示当前异常等级的存储器管理单元18。存在各种可产生当前异常等级的改变的不同方式,诸如,例如,出现触发程序指令执行点的改向及异常等级改变的异常条件。提供转换表基址寄存器28以存储指示当于不同异常等级操作时使用的各个转换表数据的位置的多个转换表基址值。因此,不同异常等级可利用不同转换表数据以应用不同形式的虚拟至物理地址映射及不同访问许可。转换控制配置寄存器30 存储配置旗标,其用以控制包括遍历状态机器22的存储器管理单元18的操作。这些配置旗标可例如在软件控制下设定,诸如通过操作***程序或超管理器程序。
如图1示意性地示出的,存储器6包括从底部地址延伸至顶部地址的存储器地址空间。并非全部此存储器地址空间可使用。例如,存储器地址空间的一端具备由操作***程序使用及用于安全地存储转换表数据20的高区。于存储器地址空间的另一末端,可提供由用户程序使用的低区。高区及低区可具备由各个转换表基址寄存器值指向的独立转换表数据。
图2示意性地示出了其中处理器核心4可操作的多个可能异常等级。异常等级EL0具有最低特权等级并且用于执行用户程序。增加特权等级 (及访问权限),进一步提供异常等级EL1(通常由操作***程序使用)、异常等级EL2(通常由超管理器程序使用)、及异常等级EL3(通常由安全监控程序使用)。异常等级EL0及EL1共享转换表数据并且具备在存储器地址空间内由转换表基址寄存器值TTBR0_EL1及TTBR1_EL1 分别指向的两组转换表数据。异常等级EL2及EL3各自具有其自身转换表数据或至少提供其自身此转换表数据的能力,如由各个转换表基址寄存器值TTBR_EL2及TTBR_EL3所指向的。
图3示意性地示出了当在异常等级EL0及EL1操作时布置及使用存储器6的存储器地址空间的示例。如先前提及的,存储器地址空间于其顶端具备高区32并且于其底端具备低区34。高区32通常用于存储并执行操作***内核程序的一部分。操作***内核程序的该部分可使用诸如KASLR (内核地址空间布置随机化)之类的技术分布在高区32内以使得恶意尝试更难以不适当地控制数据处理***。高区32进一步存储用以针对高区 32及低区34二者来映射虚拟至物理地址映射的转换表数据TT0、TT1及访问许可。更具体地,高区32使用由第一转换表基址寄存器值 TTBR1_EL1指向的第一转换表数据TT1。低区34使用由第二转换表基址寄存器值TTBR0_EL1指向的第二转换表数据TT0。
低区34存储用于与存储在高区32内的操作***协作执行的用户程序。在图3的右手部分示出了可由存储器管理单元18执行的各个转换表遍历操作以针对待执行的存储器访问来访问虚拟至物理地址映射数据及访问许可数据。这样的转换表遍历操作会花费相对长的时间来执行,因为需要处理器核心4通常在存储器6内进行多个相对慢存储器访问以从表数据条目的阶层撷取适当数据。不论特定存储器访问是否调用,可监控此相对慢页表遍历操作以确定如何由转换表数据以可由恶意方使用的方式配置存储器地址空间的至少一些特性。
图4示意性地更详细示出了转换控制寄存器30。具体地,图4示出了用于异常等级EL0及EL1的转换控制寄存器的部分。包括在转换控制寄存器30内存储的旗标内的是应用到存储器访问至高区32的第一偶发访问许可检查禁用旗标TCR_EL1.NFD1及应用到存储器访问至低区34的第二偶发访问许可检查禁用旗标TCR_EL1.NFD0。
当偶发访问许可检查禁用旗标TCR_EL1.NFD0及TCR_EL1_NFD1具有第一值“1”时这些旗标用以禁用遍历状态机器22(存储器许可电路***的示例)针对偶发存储器访问操作执行页表遍历而许可执行针对非偶发存储器访问操作的页表遍历。以此方式,可更难以使用偶发存储器访问程序指令及时序分析来进行对存储器配置的扫描。
若转换旁看缓冲器24含有用于存储器访问的适当地址转换及访问许可数据,该转换旁看缓冲器将提供使用此数据而不考虑偶发访问许可检查禁用旗标或旗标TCR_EL1.NFD0及TCR_EL1.NFD1的值。若出现匹配,转换旁看缓冲器24能够足够快速地返回访问许可数据及转换数据,使得由于转换错误(未映射)或许可错误(不正确访问许可)的在确定是否许可存储器访问操作间的时间差不足以将有用信息呈现给尝试理解存储器布置的恶意人员。
图5示意性地示出了可用于不同类型的所需操作的第一偶发访问许可检查禁用旗标TCR_EL1.NFD0及第二偶发访问许可检查禁用旗标 TCR_EL1.NFD1的不同值。在执行正常用户程序的情形下,可许可用于容纳用户程序本身的低区34的经过转换表数据的表遍历而可针对偶发存储器访问操作禁用用于容纳操作***的高区32的经过转换表数据的表遍历。相反,在低区34内以安全模式执行用户程序的情形下,可期望在低区34及高区32中禁用针对偶发存储器访问操作的表遍历。这可帮助避免恶意软件获得关于在低区34内执行的相同程序的其他部分的存储器布置的信息。
偶发存储器访问程序指令可采取广泛不同形式。图6示意性地示出了两个这样的示例形式。这些等示例形式是第一故障加载指令LDRFF,其指定待执行的存储器访问操作序列。响应于LDRFF指令执行的第一存储器访问操作是非偶发的并且,若其未通过其访问许可,则将触发异常。针对 LDRFF指令的剩余存储器访问操作是偶发存储器访问操作并且,若其等未通过其访问许可,则这将通过设定在如图6所示出的第一故障寄存器FFR 内的相应通过或失败值指示,但将不影响程序流,即,其为将执行的下一程序指令。
图6所示出的偶发存储器访问程序指令的另一变形是非故障加载指令 LDRNF。在此情形下,在相关存储器访问操作序列内全部存储器访问操作为偶发存储器访问操作,藉此,若它们未通过其访问许可,则这不改变待执行的下一程序指令,但将由在如图所示的第一故障寄存器FFR内的适当旗标值指示。
由上文偶发存储器访问程序指令各者执行的偶发存储器访问操作序列以某些指令形式可以是连续地址序列,而以其他指令形式,该地址访问可以是非连续的,例如,该加载是从在存储器地址空间内间隔开的各个存储器地址位置聚集数据值的聚集加载。
图7示意性地示出了可在本公开的其他实施例中其自身或与其他形式的偶发存储器访问程序指令相结合使用的另一形式的偶发存储器访问程序指令。在此示例中,数据处理***2是支持事务存储器的***,藉此程序指令块由转换开始及事务结束程序指令界定以指示在这些界定点之间的任何存储器访问操作是存储器事务的部分。事务存储器***监控器用以确定是否出现任何冲突其他存储器事务同时执行对象存储器事务,并且若此冲突出现,则反转一个存储器事务或存储器事务两者(存储器状态恢复至在存储器事务开始之前其具有的状态)并且在一随后时间再次尝试或修改存储器事务使得其他机制确认不发生冲突,诸如使用存储器锁。在图7的上下文中,使得存储器访问指令LDR、STR、STR因其上下文而为偶发存储器访问程序指令,因为它们位于在正在执行的程序代码内定义的存储器事务的界定符内。由解码器电路***10标识作为存储器事务的部分的这样的偶发存储器访问程序指令并且由此存储器许可电路***(例如,遍历状态机器22)由偶发访问许可检查禁用旗标控制以禁用其许可检查操作(若由在当前存储器事务内的任何存储器访问操作调用)。
图8示意性地示出了可用于其他实施例中或与先前提及类型的偶发存储器访问程序指令相结合使用的另一类型的偶发存储器访问程序指令。在图8的示例中,该偶发存储器访问程序指令是可形成程序代码的部分并且用以出于性能原因将数据值从存储器6预提取至缓存存储器(未示出)内的预提取指令。这样的预提取指令通常指定待预提取的存储器块的开始地址及该存储器块的长度。预提取指令是由解码器电路***10标识为偶发存储器访问程序指令并且由此若它们调用遍历状态机器22以执行表遍历,则若该旗标具有指示针对这样的偶发存储器访问程序指令禁用遍历状态机器22并且因此禁用许可检查的值,这将由偶发访问许可检查禁用旗标的动作来抑制。
因此,该偶发存储器访问程序指令可以是下列之一:
对应于存储器事务的程序指令至事务存储器的序列内的存储器访问指令;以及
预提取指令。
图9是示意性地示出了在访问许可确定时操作数据处理***2的流程图。应了解实际中众多其他过程将额外作为操作数据处理***2的部分与图9所示出的过程同时及于重迭时间执行。
于步骤36,处理等待,直到接收要执行的存储器访问操作。步骤38 随后确定所接收的存储器访问操作是否匹配在转换旁看缓冲器24内已存储(缓存)的转换及访问许可数据。选择数据以存储在转换旁看缓冲器24 内的方式可变化,但可在算法诸如最近使用的条目的基础上控制以产生用于由遍历状态机器22执行的表遍历所撷取的新提取的转换及访问许可数据的空间。
若在转换旁看缓冲器24存储器存在命中,则处理行进至步骤40,此处做出关于待执行的存储器访问是否通过其许可测试的确定,例如,具有适当异常等级、具有适当类型、等等。若通过该许可访问测试,则步骤42 用以使用获自转换旁看缓冲器24的转换的物理地址执行该访问。若未通过许可,则步骤44用以发信号告知许可故障。此许可故障可针对偶发存储器访问操作以各种方式进行信号告知,诸如通过在图6的第一故障寄存器FFR内设定旗标值、在图7的事务存储器的情形下信号告知存储器事务的失效、在图8的预提取指令的情形下简单中止预提取操作的剩余部分 (其通常不具有架构影响)。在非偶发存储器访问操作的情形下,许可故障可触发异常或陷阱(trap)。
若于步骤38确定在转换旁看缓冲器24内不存在命中,则若将撷取用于该存储器访问操作的转换及访问许可数据,则需要通过遍历状态机器22 (存储器许可电路***)的表遍历。在执行此表遍历操作之前,步骤46 确定所考虑的存储器访问操作是否是偶发存储器访问,诸如关于图6、图 7和/或图8所述的哪些中的一者。若于步骤46确定该存储器访问操作是偶发存储器访问操作,则处理行进至步骤48,此处做出关于该偶发访问禁用旗标是否具有第一值“1”的确定,该值指示针对偶发存储器访问操作禁用遍历状态机器22。若偶发访问许可检查禁用旗标具有第一值,则处理行进至步骤50,此处信号告知转换故障,例如,对应于针对该存储器访问操作不可获得转换表数据的故障。
若于步骤48确定偶发访问禁用旗标具有第二值“0”,则这指示针对偶发存储器访问未禁用遍历状态机器22并且由此处理行进至步骤52,此处遍历状态机器22执行经过转换表数据20的表遍历操作。步骤54确定针对相关存储器访问的任何转换数据及访问许可数据是否由表遍历操作发现。若未发现转换,则处理行进至步骤50,此处信号告知转换故障。若于步骤54确定发现转换,则处理行进至步骤54,此处测试针对相关存储器访问的访问许可。若表遍历发现有效转换,则将该转换存储在TLB中。
图10说明可使用的虚拟机实施方式。尽管先前描述的实施例根据用于操作支持相关技术的具体处理硬件的装置及方法来实施本发明,但亦有可能提供硬件组件的所谓虚拟机实施方式。这些虚拟机实施方式在主处理器530上执行,该主处理机执行支持虚拟机程序510的主机操作*** 520。通常,需要大型高效处理器以提供按合理速度执行的虚拟机实施方式,但此方法在某些环境中可为合理的,诸如当出于兼容性或出于再使用的原因需要运行另一处理器本端代码时。虚拟机程序510将与由真实硬件提供的应用程序编程接口相同的应用程序编程接口提供至应用程序500,该真实硬件系由虚拟机程序510模型化的组件。因此,程序指令(包括上述存储器访问控制)可通过使用虚拟机程序510而在应用程序500内执行以模型化指令与虚拟机硬件的互动。
尽管已在本文中参考附图详细描述了说明性实施例,应理解,权利要求病不限于这些精确实施例,且本领域技术人员可在不脱离如所附权利要求所定义的范围和精神的情况下在其中实施各种改变、添加及修改。例如,从属权利要求的特征可与独立权利要求的特征进行各种组合。
Claims (15)
1.一种用于处理数据的装置,包括:
存储器访问电路***,响应于程序的存储器访问程序指令而在存储器地址空间内执行一个或多个存储器访问,其中
当所述存储器访问程序指令为偶发存储器访问程序指令时,所述一个或多个存储器访问包括至少一个偶发存储器访问,并且在所述偶发存储器访问程序指令之后到下一待执行程序指令的程序流与所述至少一个偶发存储器访问是否被许可无关;以及
当所述存储器访问程序指令为非偶发存储器访问程序指令时,所述一个或多个存储器访问为一个或多个非偶发存储器访问并且在所述非偶发存储器访问程序指令之后到下一待执行程序指令的程序流取决于所述一个或多个非偶发存储器访问是否被许可;以及
存储器许可电路***,用以控制所述存储器访问电路***是否被许可执行所述存储器访问,其中
关于所述一个或多个偶发存储器访问,所述存储器许可电路***响应于具有第一值的偶发访问许可检查禁用旗标而禁用所述存储器许可电路***的所述控制并且响应于具有第二值的所述偶发访问许可检查禁用旗标而启用所述存储器许可电路***的所述控制;以及
关于所述一个或多个非偶发存储器访问,所述存储器许可电路***的所述控制与所述偶发访问许可检查禁用旗标无关。
2.如权利要求1所述的装置,其中,所述存储器许可电路***响应于访问许可数据而控制对在所述存储器地址空间内的存储器地址的访问。
3.如权利要求2所述的装置,其中,所述存储器许可电路***为存储器管理单元的一部分并且用以执行经过许可表数据的许可表遍历。
4.如权利要求3所述的装置,其中,所述许可表数据为指定虚拟地址至物理地址映射的转换表数据。
5.如权利要求1所述的装置,其中,所述偶发存储器访问程序指令为指定存储器访问操作序列的偶发向量存储器访问指令,并且所述存储器访问操作序列中的至少一部分存储器访问操作为偶发存储器访问操作。
6.如权利要求5所述的装置,其中,在所述存储器访问操作序列内的第一存储器访问操作为非偶发存储器访问操作,并且在所述存储器访问操作序列内的一个或多个其他存储器访问操作为偶发存储器访问操作。
7.如权利要求6所述的装置,其中,所述存储器访问操作序列针对在所述存储器地址空间内的非连续地址。
8.如权利要求5所述的装置,其中,所述存储器访问操作序列中的全部存储器访问操作为偶发存储器访问操作。
9.如权利要求8所述的装置,其中,所述存储器访问操作序列针对在所述存储器地址空间内的连续地址。
10.如权利要求1所述的装置,其中,所述存储器地址空间包含第一存储器地址区域和第二存储器地址区域,所述存储器许可电路***响应于第一偶发访问许可检查禁用旗标而选择性禁用操作所述存储器许可电路***,不管在所述第一存储器地址区域内的偶发存储器访问如何,并且所述存储器许可电路***响应于第二偶发访问许可检查禁用旗标而选择性禁用操作所述存储器许可电路***,不管在所述第二存储器地址区域内的偶发存储器访问如何。
11.如权利要求2所述的装置,包含异常等级控制电路***以控制所述装置对应于操作的各个特权等级在多个异常等级中的可选择的一者内操作。
12.如权利要求11所述的装置,其中,所述多个异常等级中的两者共享访问许可数据。
13.如权利要求1所述的装置,包含访问许可缓存以存储访问许可数据,并且其中,当所述访问许可缓存存储匹配所述一个或多个偶发存储器访问的访问许可数据时,所述访问许可缓存与所述偶发访问许可检查禁用旗标无关地控制所述存储器访问电路***是否被许可执行所述一个或多个偶发存储器访问。
14.一种包括指令的计算机可读介质,所述指令用于控制计算机以提供对应于如权利要求1-13中任一项所述的装置的虚拟机执行环境。
15.一种处理数据的方法,包括:
响应于程序的存储器访问程序指令,在存储器地址空间内执行一个或多个存储器访问,其中
当所述存储器访问程序指令为偶发存储器访问程序指令时,所述一个或多个存储器访问包括至少一个偶发存储器访问,并且在所述偶发存储器访问程序指令之后到下一待执行程序指令的程序流与所述至少一个偶发存储器访问是否被许可无关;以及
当所述存储器访问程序指令为非偶发存储器访问程序指令时,所述一个或多个存储器访问为一个或多个非偶发存储器访问,并且在所述非偶发存储器访问程序指令之后到下一待执行程序指令的程序流取决于所述一个或多个非偶发存储器访问是否被许可;
使用存储器许可电路***控制所述存储器访问是否被许可,其中
关于所述一个或多个偶发存储器访问,响应于具有第一值的偶发访问许可检查禁用旗标,禁用所述存储器许可电路***的所述控制,并且响应于具有第二值的所述偶发访问许可检查禁用旗标,启用所述存储器许可电路***的所述控制;以及
关于所述一个或多个非偶发存储器访问,所述存储器许可电路***的所述控制与所述偶发访问许可检查禁用旗标无关。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16386010.9A EP3264317B1 (en) | 2016-06-29 | 2016-06-29 | Permission control for contingent memory access program instruction |
EP16386010.9 | 2016-06-29 | ||
PCT/EP2017/062043 WO2018001643A1 (en) | 2016-06-29 | 2017-05-18 | Permission control for contingent memory access program instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109313693A CN109313693A (zh) | 2019-02-05 |
CN109313693B true CN109313693B (zh) | 2023-06-20 |
Family
ID=56418479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780038911.5A Active CN109313693B (zh) | 2016-06-29 | 2017-05-18 | 针对偶发存储器访问程序指令的许可控制 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10824350B2 (zh) |
EP (1) | EP3264317B1 (zh) |
JP (1) | JP6963572B2 (zh) |
KR (1) | KR102346255B1 (zh) |
CN (1) | CN109313693B (zh) |
IL (1) | IL263204B (zh) |
MY (1) | MY191044A (zh) |
TW (1) | TWI746576B (zh) |
WO (1) | WO2018001643A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109983538B (zh) | 2016-11-29 | 2023-06-16 | Arm有限公司 | 存储地址转换 |
US10866904B2 (en) * | 2017-11-22 | 2020-12-15 | Arm Limited | Data storage for multiple data types |
US10831673B2 (en) | 2017-11-22 | 2020-11-10 | Arm Limited | Memory address translation |
US10929308B2 (en) | 2017-11-22 | 2021-02-23 | Arm Limited | Performing maintenance operations |
US11221957B2 (en) * | 2018-08-31 | 2022-01-11 | International Business Machines Corporation | Promotion of ERAT cache entries |
US11226902B2 (en) | 2019-09-30 | 2022-01-18 | International Business Machines Corporation | Translation load instruction with access protection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281506A (zh) * | 2007-04-03 | 2008-10-08 | Arm有限公司 | 数据处理***内基于存储器域的安全控制 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864692A (en) * | 1996-12-16 | 1999-01-26 | Hewlett-Packard Company | Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions |
US6374342B1 (en) * | 2000-01-31 | 2002-04-16 | Kabushiki Kaisha Toshiba | Translation lookaside buffer match detection using carry of lower side bit string of address addition |
US7178062B1 (en) * | 2003-03-12 | 2007-02-13 | Sun Microsystems, Inc. | Methods and apparatus for executing code while avoiding interference |
US7437537B2 (en) * | 2005-02-17 | 2008-10-14 | Qualcomm Incorporated | Methods and apparatus for predicting unaligned memory access |
US7581919B2 (en) * | 2005-05-23 | 2009-09-01 | Feon Societa' A Responsabilita' Limitata | Universal method for the quick layer palletization of objects and relative system with rollup planes |
GB2448149B (en) * | 2007-04-03 | 2011-05-18 | Advanced Risc Mach Ltd | Protected function calling |
US8566565B2 (en) * | 2008-07-10 | 2013-10-22 | Via Technologies, Inc. | Microprocessor with multiple operating modes dynamically configurable by a device driver based on currently running applications |
CN102144218A (zh) * | 2008-07-28 | 2011-08-03 | 超威半导体公司 | 可虚拟化的先进同步设备 |
GB2482700A (en) * | 2010-08-11 | 2012-02-15 | Advanced Risc Mach Ltd | Memory access control |
US8499173B2 (en) * | 2010-11-23 | 2013-07-30 | Lockheed Martin Corporation | Apparatus and method for protection of circuit boards from tampering |
US9747052B2 (en) * | 2013-02-05 | 2017-08-29 | Arm Limited | Virtualisation supporting guest operating systems using memory protection units to determine permission of a memory access operation for a physical address |
US10073972B2 (en) * | 2014-10-25 | 2018-09-11 | Mcafee, Llc | Computing platform security methods and apparatus |
US20160210069A1 (en) * | 2015-01-21 | 2016-07-21 | Bitdefender IPR Management Ltd. | Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine |
GB2540942B (en) * | 2015-07-31 | 2019-01-23 | Advanced Risc Mach Ltd | Contingent load suppression |
GB2550859B (en) * | 2016-05-26 | 2019-10-16 | Advanced Risc Mach Ltd | Address translation within a virtualised system |
GB2563009B (en) * | 2017-05-25 | 2019-12-25 | Advanced Risc Mach Ltd | An apparatus and method for interpreting permissions associated with a capability |
-
2016
- 2016-06-29 EP EP16386010.9A patent/EP3264317B1/en active Active
-
2017
- 2017-05-18 MY MYPI2018002509A patent/MY191044A/en unknown
- 2017-05-18 WO PCT/EP2017/062043 patent/WO2018001643A1/en active Application Filing
- 2017-05-18 CN CN201780038911.5A patent/CN109313693B/zh active Active
- 2017-05-18 JP JP2018567174A patent/JP6963572B2/ja active Active
- 2017-05-18 KR KR1020197002035A patent/KR102346255B1/ko active IP Right Grant
- 2017-05-18 US US16/309,190 patent/US10824350B2/en active Active
- 2017-06-16 TW TW106120125A patent/TWI746576B/zh active
-
2018
- 2018-11-22 IL IL263204A patent/IL263204B/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281506A (zh) * | 2007-04-03 | 2008-10-08 | Arm有限公司 | 数据处理***内基于存储器域的安全控制 |
Also Published As
Publication number | Publication date |
---|---|
MY191044A (en) | 2022-05-30 |
IL263204A (en) | 2018-12-31 |
WO2018001643A1 (en) | 2018-01-04 |
JP6963572B2 (ja) | 2021-11-10 |
US20190171376A1 (en) | 2019-06-06 |
EP3264317B1 (en) | 2019-11-20 |
KR102346255B1 (ko) | 2022-01-03 |
TW201802693A (zh) | 2018-01-16 |
CN109313693A (zh) | 2019-02-05 |
TWI746576B (zh) | 2021-11-21 |
EP3264317A1 (en) | 2018-01-03 |
US10824350B2 (en) | 2020-11-03 |
KR20190021372A (ko) | 2019-03-05 |
IL263204B (en) | 2021-04-29 |
JP2019525298A (ja) | 2019-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313693B (zh) | 针对偶发存储器访问程序指令的许可控制 | |
JP2022503562A (ja) | 範囲チェック命令 | |
EP3881189B1 (en) | An apparatus and method for controlling memory accesses | |
CN110622133B (zh) | 用于管理能力域的设备及方法 | |
JP2021532468A (ja) | メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット | |
JP7291149B2 (ja) | メモリ・アクセスにおける保護タグ・チェックの制御 | |
KR20230017832A (ko) | Tag 체킹 장치 및 방법 | |
KR20200013049A (ko) | 명령 세트의 변경을 제어하는 장치 및 방법 | |
JP7349437B2 (ja) | メモリ・アクセスにおける保護タグ・チェックの制御 | |
IL260255A (en) | Manage memory address translation | |
JP7317099B2 (ja) | ガード・タグ紛失の取り扱い | |
CN111566628B (zh) | 控制存储器访问中的守卫标签检查的设备和方法 |
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 |