CN108139909B - 存储器访问指令 - Google Patents

存储器访问指令 Download PDF

Info

Publication number
CN108139909B
CN108139909B CN201680059729.3A CN201680059729A CN108139909B CN 108139909 B CN108139909 B CN 108139909B CN 201680059729 A CN201680059729 A CN 201680059729A CN 108139909 B CN108139909 B CN 108139909B
Authority
CN
China
Prior art keywords
memory access
memory
protected
less
program
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
Application number
CN201680059729.3A
Other languages
English (en)
Other versions
CN108139909A (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.)
ARM Ltd
Original Assignee
ARM 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 ARM Ltd filed Critical ARM Ltd
Publication of CN108139909A publication Critical patent/CN108139909A/zh
Application granted granted Critical
Publication of CN108139909B publication Critical patent/CN108139909B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

数据处理系统(2)包括指令解码器(10),其对受保护的存储器访问指令(LDR/STR)和较少保护的存储器访问指令(LDNPR/STNPR)进行解码以生成用于控制加载存储单元(12)的控制信号。较少保护的存储器访问指令和与受保护的存储器访问指令相比较少限制的存储器访问条件相关联。作为示例,可以使用较少保护的存储器访问指令来访问共享存储器区域(26、28),而受保护的存储器访问指令可不被用于访问这样的共享区域。相反,较少保护的存储器访问指令可不被用于访问专用存储器区域(30、32、34)。

Description

存储器访问指令
技术领域
本公开涉及数据处理系统的领域。更具体地,本公开涉及数据处理系统内的存储器访问指令以及与这些存储器访问指令相关联的访问条件。
背景技术
已知给数据处理系统提供存储器访问指令,这些存储器访问指令在被解码时用于执行存储器与处理器核心之间的存储器访问操作,例如,数据加载或数据存储。为管理这些系统内的存储器访问条件,已知提供诸如存储器管理单元或存储器保护单元之类的硬件,其利用用于控制存储器访问的许可数据来进行编程,例如,特定存储器地址或存储器地址的范围可被标记为只读、读取/写入、仅特权访问等。
发明内容
本公开的至少一些实施例提供了用于处理数据的装置,包括:处理电路,其用于执行由程序指令指定的处理操作;以及解码器,其用于解码存储器访问指令来生成控制信号以控制所述处理电路来执行存储器访问操作;其中,所述存储器访问指令具有指定下列项的相应编码:对应于受保护的存储器访问操作的受保护的存储器访问指令;以及对应于较少保护的存储器访问操作的较少保护的存储器访问指令;并且所述较少保护的存储器访问操作和与所述受保护的存储器访问操作相比较少限制的存储器访问条件相关联。
本公开的至少一些实施例提供了用于处理数据的装置,包括:处理装置,其用于执行由程序指令指定的处理操作;以及解码器装置,其用于解码存储器访问指令来生成控制信号以控制所述处理装置来执行存储器访问操作;其中,所述存储器访问指令具有指定下列项的相应编码:对应于受保护的存储器访问操作的受保护的存储器访问指令;以及对应于较少保护的存储器访问操作的较少保护的存储器访问指令;并且所述较少保护的存储器访问操作和与所述受保护的存储器访问操作相比较少限制的存储器访问条件相关联。
本公开的至少一些实施例提供了用于处理数据的方法,包括:解码存储器访问指令来生成控制信号以控制处理电路来执行存储器访问操作;其中,所述存储器访问指令具有指定下列项的相应编码:对应于受保护的存储器访问操作的受保护的存储器访问指令;以及对应于较少保护的存储器访问操作的较少保护的存储器访问指令;并且所述较少保护的存储器访问操作和与所述受保护的存储器访问操作相比较少限制的存储器访问条件相关联。
附图说明
现在将参考附图以仅示例的方式描述示例实施例,在附图中:
图1示意性地示出了数据处理系统;
图2示意性地示出了受保护的存储器访问指令和较少保护的存储器访问指令;
图3示意性地示出了针对图2的存储器访问指令的指令编码;
图4示意性地示出了包括共享/专用标志的存储器管理单元页条目;
图5是示意性地示出了存储器访问处理的流程图;
图6示意性地示出了合并加密电路以利用存储器的区域加密数据的另一示例实施例;
图7示意性地示出了在不同异常等级下执行的特权和较少特权程序的层级;且
图8示意性地示出了包括存储器系统层级内的多个层和加密电路的数据处理系统的另一示例实施例。
具体实施方式
图1示意性地示出了数据处理系统2,其包括处理器核心4及存储器6。处理器核心4包括指令提取单元8、解码器10、加载存储单元12、存储器管理单元14、寄存器库16及算术处理电路,该算术处理电路包括乘法器18、移位器20及加法器22。在操作中,指令提取单元8从存储器6提取程序指令且将这些程序指令传递至解码器10。解码器10解码程序指令且生成控制信号,这些控制信号然后被用于控制将由处理电路的其他元件执行的处理操作,这些其他元件例如,加载存储单元12及算术处理电路18、20、22。
由加载存储单元12执行存储器访问操作,例如,源自寄存器库16内的寄存器与存储器6内的存储器地址之间的加载指令及存储指令那些操作。由解码器10生成的控制信号控制加载存储单元12以执行由经解码的存储器访问指令指定的存储器访问操作。存储器管理单元14使用存储在存储器6内的页表数据24以实施与存储器6内的存储器地址(或存储器地址的区域,例如,存储器页)相关联的访问条件。这些存储器访问条件可包括特定存储器地址可读取但不可写入、可缓存、仅对某些特权等级(仅某些异常等级)可访问、或其他属性。
存储器6可将数据存储在如本示例所示的多个区域中。这些区域可包括共享区域26、28及专用区域30、32、34。共享区域26、28可在程序之间共享且因此促进在程序之间进行数据的共享/交换。专用区域30、32、34专用于特定程序。该专用性可针对具有比专门访问专用区域30、32、34的程序更高的特权等级的程序进行实施。因此,应用程序可具有专用存储器区域30、32、34,这些专用存储器区域可由该应用程序访问,但不可由在较高特权等级(异常等级)下操作的程序访问,例如,正为处于较低特权等级(异常等级)的程序提供执行环境的上层操作系统或超管理器程序。
图1所示的示例利用存储器管理单元14及页表数据24。本技术领域技术人员将理解,其他实施例可利用不同的存储器访问控制电路,例如,应用与存储器地址空间内的存储器保护区域相关联的访问条件的存储器保护单元。
与使用存储器管理单元14(及存储器保护单元)相关联的潜在安全性弱点是对页表数据24(或定义存储器区域和对存储器保护单元的保护的数据)的错误或恶意改变,可导致将应视为专用的存储器区域30、32、34替代地被视为共享的且将访问不恰当地给予其他应用程序。这些专用区域30、32、34可含有敏感数据,例如,密码密钥、财务数据等。
根据本示例提供的存储器访问指令采用受保护的存储器访问指令的形式,例如,受保护的加载指令LDR或受保护的存储指令STR。存储器访问指令还包括较少保护的存储器访问指令,例如,较少保护的加载指令LDNPR或较少保护的存储指令STNPR。这些指令是具有其自己的指令编码的离散类型的指令。并非一个类型的编码的所有变体都需要针对另一类型的编码被提供。在该示例实施例中,受保护的存储器访问指令在其编码中比较少保护的存储器访问指令具有更多的变体,例如,受保护的存储器访问指令具有以下选项:允许指定数据值大小、有符号/无符号数据、将应用于存储器地址的索引、及其他选项。相比较而言,较少保护的存储器访问指令具有较少选项,例如,数据大小及有符号/无符号数据。
提供不同类型的存储器访问指令允许编程器(或编译器)默认地使用受保护的存储器访问指令,且然后针对编程器知道可安全地受制于较少限制的存储器访问条件的那些特定存储器访问操作,选择使用较少保护的存储器访问指令。例如,针对除编程器已知意图访问存储器6内的共享区域26、28的那些存储器访问以外的所有存储器访问,可默认地使用受保护的存储器访问指令。对共享区域的这些存储器访问可使用较少保护的存储器访问指令。编程器在编写程序代码时将知道某些数据将与其他应用程序共享并写入至共享区域26、28中,并且因此,针对这样的存储器访问使用较少保护地存储器访问指令来执行是适当的。以此方式,即使控制存储器管理单元14(或存储器保护单元)的数据是不正确的,使用具有较多限制的存储器访问条件的受保护的存储器指令也可用于防止程序疏忽地将数据存储至共享区域26、28或疏忽地从共享区域26、28加载(可能已经变更的)数据。
图3示意性地示出了针对受保护的存储器访问指令LDR/STR及较少保护的存储器访问指令LDNPR/STNPR两者的示例编码。这些指令具有不同编码(操作码)以使得其由解码器10标识为不同类型的指令,从而将生成不同的控制信号以便控制加载存储单元12来关于这些不同类型的指令以不同地行为,如下文进一步讨论的。如图所示,受保护的存储器访问指令LDR/STR比较少保护的存储器指令LDNPR/STNPR具有与更多其相关联的相关联选项例如,大小、有符号/无符号、索引。程序指令进一步指定诸如寄存器库16内的寄存器之类的参数,这些寄存器与存储器访问指令相关且例如可包括存储器6内的目标存储器地址。针对较少保护的存储器访问指令提供较少选项具有以下结果:这些指令消耗较少指令集位空间。这在处理或架构内是有限资源且可有价值地用在别处。实际上,相对于编程器已知需要共享的数据的存储器访问操作倾向于相对不频繁,且因此针对这些较少保护的存储器访问指令提供较少选项不导致代码大小的过度增加,并且比节省指令集位空间更有价值。
图4示意性地示出了存储器管理单元页表条目36。这些页表条目可具有多种多样的不同形式。通常,这些存储器管理单元页表条目36支持使用虚拟地址TAG 38及相应的物理地址变换数据40的虚拟地址与物理地址之间的地址变换。此外,与存储器地址空间内与页条目相关联的每个页(区域)相关联的是存储器页属性,这些存储器页属性定义了诸如可读取性、可写入性、特权等级访问限制、可缓存性等之类的特性。此外,包括于存储器页属性数据内的是共享/专用标志,该共享/专用标志指示该区域内的存储器地址是共享还是专用。共享地址在多个程序内共享而专用地址的仅一个程序可访问的。存储器页属性的其他形式可包括指示特定区域是经加密还是未加密标志。经加密区域使用加密密钥来加密且然后由拥有适当解密密钥的经适当的授权程序来解密。
在共享/专用标志的情形下,被标记为共享的存储器区域应仅由较少保护的存储器访问指令访问,类似地,被标记为专用的存储器区域应仅由受保护的存储器访问指令访问。若存储器访问指令之错误类型(编码)尝试对存储器的给定区域的存储器访问,则可检测到此情况且引起数据中止(触发存储器访问异常处理)。
图5是示意性地示出存储器访问处理的一个形式的流程图。在步骤42处,处理通常等待直到存储器访问指令被解码为止。当存储器访问指令被解码时,由解码器10生成控制信号以控制控制加载存储单元12来执行与存储器管理单元18协作指定的存储器访问操作。在步骤44处,读取针对在步骤42处解码的存储器访问指令的共享标志数据(以及其他数据)。接着,步骤46确定在步骤42处解码的存储器访问指令是否是受保护的存储器访问指令。若在步骤42处解码的指令是受保护的存储器访问指令,则处理进行至步骤48,在步骤48处,确定在步骤44处读取的共享标志是否指示包括待访问的存储器地址的存储器区域是共享的。若步骤48处之确定为存储器区域是共享的,则这指示恰当地使用受保护的存储器访问指令且因此处理进行至步骤50,其中阻止访问,此后在步骤52处在将处理返回至步骤42之前触发数据中止响应。若步骤48处的确定为存储器访问不是共享区域,则使用受保护的存储器访问指令是不恰当的(即存储器区域是专用的)且因此在步骤54处允许访问且执行此访问。若步骤46处的确定为在步骤42处解码的存储器访问指令的较少保护的存储器访问指令,则处理进行至步骤56,在步骤56处,确定在步骤44处读取的共享标志是否指示与较少保护的存储器访问指令相关联的存储器地址是共享的。若存储器区域不是共享的,则这指示使用较少保护的存储器访问指令是不恰当的且处理进行至步骤58,其中阻止存储器访问,以及步骤60,其中触发数据中止响应。若步骤56处的确定为存储器区域是共享的,则使用在步骤42处解码的较少保护的存储器访问指令是恰当的且因此处理进行至步骤62,其中允许访问。
图6示意性地示出了利用本技术的数据处理系统64的另一示例实施例。在该示例实施例中,存储器66内的存储器区域可以是加密区域68、70、72或未加密区域74、76。布置在处理器核心82与存储器66之间的加密电路80用以提供针对被写入加密区域68、70、72中的数据的加密,以及针对从加密区域68、70、72读取的数据的解密。加密及解密使用加密密钥84,该加密密钥专用于可访问相应的加密区域68、70、72的程序中的程序。
在该示例实施例中,存储器访问控制电路采用存储器保护单元86的形式,其具有存储器66的存储器地址空间的被标记为经加密或未经加密的不同区域。当存储器区域被加密时,则切换使用复用器88、90以经由加密电路80路由数据。当正访问的存储器地址处于未加密的区域时,则通过复用器88、90绕过加密电路80。加密电路80可被使用且针对受保护的存储器访问指令是活动的并且针对较少保护的存储器访问指令被绕过。未加密区域74、76可在程序之间共享,而加密区域68、70、72可专用于个别程序或共享密码密钥的多个程序。若关于标记由存储器保护单元86标记为加密的存储器访问使用较少保护的存储器访问指令,则可触发数据中止。类似地,若针对未加密的区域内的存储器地址使用受保护的存储器访问指令,则也可触发数据中止。
图7示意性地示出了在不同特权/异常等级下操作的程序的层级。程序可包括处于最高特权等级的超管理器程序92,该超管理器程序为在较低特权等级(较低异常等级)下操作的访客操作系统程序94、96提供执行环境。操作系统程序94、96中的每一者可分别为应用程序98、100或应用程序102、104提供执行环境。操作系统程序94、96在应用程序98、100、102、104更高的特权等级(异常等级)下操作。
先前所描述的示例实施例已使用与受保护的存储器访问指令及较少保护的存储器访问指令相关联的共享/专用标志或加密/未加密标志来控制访问。其他实施例可用于施加与执行程序的特权等级(异常等级)相关联的存储器访问条件。编程器可确定与在不同等级(特权等级)下操作的一或多个其他程序共享数据是恰当的。作为示例,应用程序98、100、102、104可被控制以使得可与上层操作系统程序94、96而不与其他应用程序或与超管理器程序92共享数据。较少保护的存储器访问指令可与期望与其他异常等级共享的这些数据相关联,而不期望与其他异常等级共享的数据可使用受保护的存储器访问指令来访问。
图8示意性地示出了利用本技术的数据处理系统106的另一示例实施例。该数据处理系统106采用加密存储器区域108、110及主存储器114内的共享存储器区域112。与图6的实施例相比,图8的实施例利用采用各种等级的层级的存储器系统。四个处理器核心116、118、120、122各自具有本地专用缓存存储器124、126、128及130。在存储器层级中的这些本地缓存124、126、128及130上是共享缓存存储器132。缓存存储器124、126、128、130、132中的每一者内的数据以未加密形式存储而不管其是否被标记为经加密/共享。若数据将被加密/共享,则该数据在缓存存储器124、126、128、130、132内被标记,并且通过加密电路134被适当地路由或在这些标志的控制下使用复用器136、138越过(绕过)加密电路。因此,相比于加密电路134更靠近于处理器核心116、118、120、122的数据以未加密形式存储且因此不招致与加密/解密相关联的能量/时间损失,而将相比于加密电路134在存储器层级内更远处(即经由互连件140传递且存储于主存储器114内)的数据加密。图形处理单元142及直接存储器访问单元144也经由互连140连接。
尽管本文已参考附图详细描述了本发明的说明性实施例,但将理解,本公开不限于那些精确的实施例,并且本领域技术人员可以在其中做出各种改变和修改,而不脱离由所附权利要求限定的本发明的范围和精神。

Claims (19)

1.一种用于处理数据的装置,包括:
处理电路,所述处理电路执行由程序指令指定的处理操作;以及
解码器,所述解码器解码存储器访问指令来生成控制信号以控制所述处理电路来执行存储器访问操作;其中,
所述存储器访问指令具有指定下列项的相应编码:
对应于受保护的存储器访问操作的受保护的存储器访问指令;以及
对应于较少保护的存储器访问操作的较少保护的存储器访问指令;并且
所述较少保护的存储器访问操作和与所述受保护的存储器访问操作相比较少限制的存储器访问条件相关联;并且
所述处理电路具有多个异常等级状态,并且利用在所述多个异常等级状态中的给定异常等级状态执行的程序内的较少保护的存储器访问指令来访问的存储器地址与在所述多个异常等级状态中的可选择数目的其他异常等级状态执行的程序共享,并且利用在所述多个异常等级状态中的另一异常等级状态执行的给定程序内的另一受保护的存储器访问指令来访问的另一存储器地址专用于所述给定程序。
2.如权利要求1所述的装置,其中,所述较少保护的存储器访问指令具有与所述受保护的存储器访问指令相比允许不同数目的变体的编码。
3.如权利要求2所述的装置,其中,所述较少保护的存储器访问指令具有与所述受保护的存储器访问指令相比允许较少变体的编码。
4.如权利要求1所述的装置,包括存储器访问控制电路,所述存储器访问控制电路根据存储器保护数据来控制对存储器地址空间的区域的访问,所述存储器保护数据包括至少一个属性,所述至少一个属性由所述存储器访问控制电路应用以在所述较少保护的存储器访问指令时而非在所述受保护的存储器访问指令时执行较少限制的存储器访问条件。
5.如权利要求4所述的装置,其中:
所述至少一个属性指示存储器地址何时是共享存储器地址;
所述存储器访问控制电路阻止所述受保护的存储器访问指令对所述共享存储器地址的访问;并且
所述存储器访问控制电路允许所述较少保护的存储器访问指令对所述共享存储器地址的访问。
6.如权利要求5所述的装置,其中:
所述至少一个属性指示存储器地址何时是专用存储器地址;
所述存储器访问控制电路允许所述受保护的存储器访问指令对所述专用存储器地址的访问;并且
所述存储器访问控制电路阻止所述较少保护的存储器访问指令对所述专用存储器地址的访问。
7.如权利要求5所述的装置,其中,所述存储器访问控制电路响应于受保护的存储器访问指令对所述共享存储器地址的尝试的存储器访问而触发数据中止响应。
8.如权利要求5所述的装置,其中,所述存储器访问控制电路响应于较少保护的存储器访问指令对除了共享存储器地址之外的尝试的存储器访问而触发数据中止响应。
9.如权利要求4所述的装置,其中,所述存储器访问控制电路是存储器管理单元并且所述存储器保护数据是存储器页表数据。
10.如权利要求4所述的装置,其中,所述存储器访问控制电路是存储器保护单元并且所述存储器保护数据是用于所述存储器保护单元的存储器区域配置数据。
11.如权利要求1所述的装置,包括加密电路,所述加密电路加密由所述受保护的存储器访问操作存储在存储器中的数据,并且解密由所述受保护的存储器访问操作从所述存储器读取的数据。
12.如权利要求1所述的装置,包括加密电路,所述加密电路加密存储在存储器中的数据并且解密从所述存储器读取的数据,其中,所述加密电路对于所述受保护的存储器访问操作是有效的,并且对于所述较少保护的存储器访问操作是无效的。
13.如权利要求1至12中的任一项所述的装置,其中,所述处理操作包括:
执行多个程序;
执行所述多个程序中的给定程序内的受保护的存储器访问指令以访问专用于给定程序的存储器地址;以及
执行所述多个程序中的所述给定程序内的较少保护的存储器访问指令以访问在所述多个程序之间共享的存储器地址。
14.如权利要求13所述的装置,其中,所述多个程序包括特权程序,以及使用由所述特权程序提供的执行环境来执行的至少一个其他程序,所述至少一个其他程序使用受保护的存储器访问指令来访问所述特权程序专用的存储器地址。
15.如权利要求14所述的装置,其中,所述特权程序是超管理器程序并且所述至少一个其他程序是操作系统程序。
16.如权利要求14所述的装置,其中,所述特权程序是操作系统程序并且所述至少一个其他程序是应用程序。
17.一种用于处理数据的装置,包括:
处理装置,所述处理装置用于执行由程序指令指定的处理操作;以及
解码器装置,所述解码器装置用于解码存储器访问指令来生成控制信号以控制所述处理装置来执行存储器访问操作;其中
所述存储器访问指令具有指定下列项的相应编码:
对应于受保护的存储器访问操作的受保护的存储器访问指令;以及
对应于较少保护的存储器访问操作的较少保护的存储器访问指令;并且
所述较少保护的存储器访问操作和与所述受保护的存储器访问操作相比较少限制的存储器访问条件相关联;并且
所述处理装置具有多个异常等级状态,并且利用在所述多个异常等级状态中的给定异常等级状态执行的程序内的较少保护的存储器访问指令来访问的存储器地址与在所述多个异常等级状态中的可选择数目的其他异常等级状态执行的程序共享,并且利用在所述多个异常等级状态中的另一异常等级状态执行的给定程序内的另一受保护的存储器访问指令来访问的另一存储器地址专用于所述给定程序。
18.一种处理数据的方法,包括:
解码存储器访问指令来生成控制信号以控制处理电路来执行存储器访问操作;其中,
所述存储器访问指令具有指定下列项的相应编码:
对应于受保护的存储器访问操作的受保护的存储器访问指令;以及
对应于较少保护的存储器访问操作的较少保护的存储器访问指令;
并且所述较少保护的存储器访问操作和与所述受保护的存储器访问操作相比较少限制的存储器访问条件相关联;并且
所述处理电路具有多个异常等级状态,并且利用在所述多个异常等级状态中的给定异常等级状态执行的程序内的较少保护的存储器访问指令来访问的存储器地址与在所述多个异常等级状态中的可选择数目的其他异常等级状态执行的程序共享,并且利用在所述多个异常等级状态中的另一异常等级状态执行的给定程序内的另一受保护的存储器访问指令来访问的另一存储器地址专用于所述给定程序。
19.一种非暂态存储介质,其上存储有计算机程序,所述计算机程序用于控制计算机来提供与如权利要求1到17中的任一项所述的装置相对应的虚拟机执行环境。
CN201680059729.3A 2015-10-20 2016-09-06 存储器访问指令 Active CN108139909B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1518541.6A GB2543520B (en) 2015-10-20 2015-10-20 Memory access instructions
GB1518541.6 2015-10-20
PCT/GB2016/052736 WO2017068317A1 (en) 2015-10-20 2016-09-06 Memory access instructions

Publications (2)

Publication Number Publication Date
CN108139909A CN108139909A (zh) 2018-06-08
CN108139909B true CN108139909B (zh) 2022-07-12

Family

ID=55131314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680059729.3A Active CN108139909B (zh) 2015-10-20 2016-09-06 存储器访问指令

Country Status (9)

Country Link
US (1) US11669467B2 (zh)
EP (1) EP3365768B1 (zh)
JP (1) JP6944444B2 (zh)
KR (1) KR20180072723A (zh)
CN (1) CN108139909B (zh)
GB (1) GB2543520B (zh)
IL (1) IL258594B (zh)
TW (1) TWI722022B (zh)
WO (1) WO2017068317A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9305929B1 (en) 2015-02-17 2016-04-05 Micron Technology, Inc. Memory cells
US10396145B2 (en) 2017-01-12 2019-08-27 Micron Technology, Inc. Memory cells comprising ferroelectric material and including current leakage paths having different total resistances
US11436143B2 (en) 2017-12-22 2022-09-06 Alibaba Group Holding Limited Unified memory organization for neural network processors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236541A (zh) * 2010-04-22 2011-11-09 Arm有限公司 预加载指令控制
CN102385556A (zh) * 2011-11-08 2012-03-21 聚辰半导体(上海)有限公司 串行非易失性存储器及解除存储器写保护的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US248357A (en) * 1881-10-18 Long-range and close weeding garden-cultivator
US67279A (en) * 1867-07-30 Self and peter f
JPS62256040A (ja) 1986-04-28 1987-11-07 Mitsubishi Electric Corp コモンメモリの保護方法
US6895508B1 (en) * 2000-09-07 2005-05-17 International Business Machines Corporation Stack memory protection
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
GB2402763B (en) 2003-06-13 2006-03-01 Advanced Risc Mach Ltd Data access program instruction encoding
TW200805065A (en) * 2006-01-17 2008-01-16 Nxp Bv Region protection unit, instruction set and method for protecting a memory region
GB2448151B (en) 2007-04-03 2011-05-04 Advanced Risc Mach Ltd Memory domain based security control within data processing systems
US8146106B2 (en) * 2007-12-31 2012-03-27 Intel Corporation On-demand emulation via user-level exception handling
US20090292931A1 (en) * 2008-05-24 2009-11-26 Via Technology, Inc Apparatus and method for isolating a secure execution mode in a microprocessor
EP2211285A1 (en) * 2009-01-20 2010-07-28 Nagravision SA Secured data processing device
GB2482700A (en) * 2010-08-11 2012-02-15 Advanced Risc Mach Ltd Memory access control
FR2974920B1 (fr) * 2011-05-04 2013-11-29 St Microelectronics Rousset Protection d'une memoire volatile contre des virus par modification du contenu d'une instruction
EP2842041B1 (en) * 2012-04-23 2019-01-23 NXP USA, Inc. Data processing system and method for operating a data processing system
JP2014081819A (ja) * 2012-10-17 2014-05-08 Renesas Electronics Corp 情報処理装置
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
US20160085695A1 (en) * 2014-09-24 2016-03-24 Intel Corporation Memory initialization in a protected region
US9996350B2 (en) * 2014-12-27 2018-06-12 Intel Corporation Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array
US20170090922A1 (en) * 2015-09-30 2017-03-30 Futurewei Technologies, Inc. Efficient Instruction Pair for Central Processing Unit (CPU) Instruction Design

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236541A (zh) * 2010-04-22 2011-11-09 Arm有限公司 预加载指令控制
CN102385556A (zh) * 2011-11-08 2012-03-21 聚辰半导体(上海)有限公司 串行非易失性存储器及解除存储器写保护的方法

Also Published As

Publication number Publication date
IL258594A (en) 2018-06-28
JP2018535483A (ja) 2018-11-29
EP3365768A1 (en) 2018-08-29
EP3365768B1 (en) 2020-12-09
CN108139909A (zh) 2018-06-08
JP6944444B2 (ja) 2021-10-06
WO2017068317A1 (en) 2017-04-27
GB2543520B (en) 2019-06-19
GB2543520A (en) 2017-04-26
IL258594B (en) 2020-03-31
TW201719387A (zh) 2017-06-01
TWI722022B (zh) 2021-03-21
US11669467B2 (en) 2023-06-06
KR20180072723A (ko) 2018-06-29
GB201518541D0 (en) 2015-12-02
US20180307627A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
EP3757856B1 (en) Cryptographic isolation of memory compartments in a computing environment
US11711201B2 (en) Encoded stack pointers
JP4989543B2 (ja) メモリドメインを基にしたデータ処理システム内のセキュリティ制御
KR102383900B1 (ko) 타겟 메모리 어드레스에 대응한 메모리 속성 유닛의 영역을 식별하는 영역식별 연산
US20200257827A1 (en) Memory write for ownership access in a core
US11625337B2 (en) Encoded pointer based data encryption
JP7304359B2 (ja) 有界ポインタを記憶するための装置及び方法
JP7449273B2 (ja) 範囲チェック命令
US11250165B2 (en) Binding of cryptographic operations to context or speculative execution restrictions
US20180081829A1 (en) Virtualized process isolation
KR102533823B1 (ko) 자격과 관련된 허가들을 해석하는 장치 및 방법
US20220121447A1 (en) Hardening cpu predictors with cryptographic computing context information
CN108139909B (zh) 存储器访问指令
US9563787B2 (en) Protection of a non-volatile memory by change of instructions
US20240104027A1 (en) Temporal information leakage protection mechanism for cryptographic computing
EP4202700A1 (en) Transient side-channel aware architecture for cryptographic computing

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