CN105453029A - 处理用于数据存取的存取属性 - Google Patents

处理用于数据存取的存取属性 Download PDF

Info

Publication number
CN105453029A
CN105453029A CN201480045561.1A CN201480045561A CN105453029A CN 105453029 A CN105453029 A CN 105453029A CN 201480045561 A CN201480045561 A CN 201480045561A CN 105453029 A CN105453029 A CN 105453029A
Authority
CN
China
Prior art keywords
data
attribute
access command
processing equipment
data access
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.)
Granted
Application number
CN201480045561.1A
Other languages
English (en)
Other versions
CN105453029B (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
Advanced Risc Machines 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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN105453029A publication Critical patent/CN105453029A/zh
Application granted granted Critical
Publication of CN105453029B publication Critical patent/CN105453029B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • 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
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • 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
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/468Specific access rights for resources, e.g. using capability register

Landscapes

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

Abstract

本文提供一种数据处理设备(2),该数据处理设备具有处理电路系统(4)以用于在第一特权等级EL1执行第一软件(12),及在第二特权等级EL2执行第二软件(10),该第二特权等级高于该第一特权等级。可由第一及第二软件(10、12)设置属性以指示数据存取指令的执行是否可中断。对于预定类型的数据存取指令(由第二软件(10)设置的第二属性规定该指令可中断),该指令可被设置为可中断,即使由第一软件(12)设置的第一属性规定该指令的执行不能中断亦如此。

Description

处理用于数据存取的存取属性
技术领域
本技术关于数据处理领域。更特定而言,本发明关于在数据处理设备中处理用于数据存取的存取属性。
背景技术
用于自数据储存器中存取数据的数据存取指令可具有控制如何执行数据存取的存取属性。例如,存取属性可指定是否可相对于其他数据存取不按次序地处理数据存取,及应何时或如何快取(cache)所存取的数据。然而,一些存取属性可影响与执行数据存取关连的潜时。在实时系统(例如,用于汽车或工业应用的设备)中,常需要对特定处理操作将耗时多久完成采取决定性动作,因此与某些数据存取关连的较长潜时可能存在问题。此情况在诸多不同软件应用程序组合在单个处理器中时尤为如此,在该种情况下,一个应用程序可开始较长潜时数据存取,此举可阻止另一软件应用程序执行实时关键操作。本技术设法解决这些问题。
发明内容
自一方面可见,本发明提供一种数据处理设备,该数据处理设备包括:
处理电路系统,该系统被配置为处理数据;
数据储存器,该数据储存器被配置为储存数据;
其中所述处理电路系统被配置为在第一特权等级执行第一软件及在第二特权等级执行第二软件,该第二特权等级高于该第一特权等级;
响应于用于在数据储存器中存取数据的数据存取指令,数据处理设备被配置为基于由第一软件设置的至少一个第一属性及由第二软件设置的至少一个第二属性来决定该数据存取指令的至少一个存取属性,该至少一个第一属性及该至少一个第二属性中每一者指定数据存取指令的执行是否可中断;及
响应于预定类型的数据存取指令(该至少一个第二属性规定该数据存取指令的执行可中断),数据处理设备被配置为决定规定数据存取指令的执行可被中断的该至少一个存取属性,即使该至少一个第一属性指定数据存取指令的执行不能中断亦是如此。
一个类型的数据存取属性可指定数据存取指令的执行是否可中断。一些类型的数据存取指令可能耗时较久以执行,因此是否可在实时系统中于数据存取期间中断数据存取指令可能是很重要的。如若在标示为不可中断的数据存取期间发生诸如需要立即服务的中断的实时关键事件,则处理电路系统可能致力于完成数据存取,从而产生在处理不良实时关键事件方面的延迟。
处理设备可支持数件软件,这些软件包括在第一特权等级执行的第一软件及在第二特权等级执行的第二软件,该第二特权等级高于第一特权等级。每一层软件可设置该软件自身的数据存取指令的存取属性,其中至少一个第一属性由第一软件规定,并且至少一个第二属性由第二软件规定,其中每一软件规定数据存取指令的执行是否可中断。在典型方案中,在对相同数据存取设置有不同存取属性的情况下,将选择限制性最大的属性作为数据存取的实际属性。例如,如若第一软件规定存取不能中断,则此规定一般将优先于容许数据存取中断的任何限制性较低的属性。然而,如若数据存取耗时较久以执行,则限制性较高的存取属性可能影响对实时关键事件的服务能力。
因此,对于预定类型的数据存取指令(由第二软件设置的至少一个第二属性指定该数据存取指令的执行可中断),处理电路系统可将存取属性决定为规定执行可中断,即使由第一软件设置的至少一个第一属性规定执行不能中断亦如此。由此,经第一软件设置的属性可由经特权等级更高的第二软件设置的属性否决,以确保数据存取指令可在发生实时关键事件时中断。例如,此举防止发生较长的中断处理潜时。此举是反直观的,因为用户一般将使用针对数据存取设置的限制性最大的冲突属性来处理存取。
尽管此技术可用于任何数据存取指令,但对将在复数个处理周期中执行的指令特别有用,此技术可在这些指令标示为不可中断的情况下产生长时延迟。
如若数据存取指令的执行可中断,则在发生中断、异常或另一实时关键事件时,指令的执行可中止。一旦事件已经处理,则数据存取指令的执行可从头重新开始,或在可能的情况下,数据存取指令的执行可自数据存取中断之处恢复。
本技术一般可应用于在任何由处理电路系统执行的软件内出现的预定类型的数据存取指令。或者,如上所述的存取属性的决定仅可在一个或多个特定类型的软件中出现预定类型的数据存取指令的情况下使用,特定而言,这些软件是第一软件自身或在第一软件的控制下执行的另一软件。如若在第二软件内遇到预定类型的数据存取指令,则可基于由第二软件规定的第二属性决定该数据存取指令的存取属性,而不虑及由第一软件规定的第一属性。由此,无需在预定类型的数据存取指令的所有发生的情况下使用上述属性决定。
第一及第二软件可为在不同特权等级下操作的任何软件,其中第二软件具有高于第一软件的特权。在此上下文中,“较高特权等级”意味着在此特权等级下操作的软件比在“较低特权等级”下操作的软件具有更多权利(例如第二软件可能能够存取第一软件难以存取的数据,或第二软件可能能够执行第一软件不可用的某些动作)。第一及第二特权等级可为更大数目的等级内的任何两个特权等级。不同特权等级可由数值表示。在一些实施例中,最高数值可表示较高特权等级(例如特权等级3可比特权等级2具有更大权利);而在其它实施例中,最小数值可表示最高特权等级(例如特权等级0可比特权等级1具有更大权利)。
例如,实时系统可允许虚拟化,在该虚拟化中,多个操作系统共存于同一装置上,超管理器管理这些操作系统。在此类环境中,第一软件可包括操作系统中的一者,第二软件可包括超管理器。操作系统及超管理器中每一者可分别定义数据存取的存取属性。如若超管理器规定预定类型的数据存取指令的执行可中断,但操作系统要求指令不能中断,则超管理器可否决操作系统以便在不虑及由操作系统设置的属性的情况下,将数据存取标示为可中断。此举防止客操作系统产生不恰当的高潜时情况。
尽管本技术可应用于具有较长潜时问题的任何类型的数据存取指令,但本技术对用于自数据储存器中将数据加载复数个寄存器的加载多指令(loadmultipleinstruction),或用于将数据自该复数个寄存器储存至数据储存器的储存多指令(storemultipleinstruction)而言特别有用。通常情况下,加载或储存多指令可规定寄存器列表,并且加载或储存指令的执行需要数个处理周期,这些处理周期依据该列表中的寄存器数目而定。如若加载或储存多指令经标示为不可中断,则处理器致力于完成多个载入或储存,并且通常直至完成多个载入或储存之后,处理器才能够为其他操作提供服务。此举可在处理其他事件时导致不良的较长潜时,这些事件可能为实时关键事件。为解决此问题,即使在第一软件将这些指令标示为不可中断的情况下,如有必要,处于较高特权等级的第二软件亦可否决以确保加载及储存多指令可中断(及在之后为可重复)。
在一些系统中,当第二软件规定数据存取可中断且第一软件规定该数据存取不能中断时,第二软件可始终否决第一软件。然而,可能存在需要允许数据存取继续为不可中断的一些情况。因此,处理设备可保持控制值。如若至少一个第二属性允许数据存取的中断,则处理电路系统可基于控制值决定数据存取指令的执行是否可中断。控制值的第一值可指示执行可中断,即使第一属性规定该执行不能中断亦是如此(以便由第二软件规定的属性否决由第一软件规定的属性)。控制值的第二值可指示是否应基于第一属性来决定该执行可中断(以便选择第一及第二属性中限制性最大的)。控制值允许系统选择第二软件是否强制存取为不可中断。当预期发生潜时关键事件时,可将控制值设定为第一值以确保满足实时需求,而当预期不发生该种事件及因此预期将不会出现中断潜时问题时,可将控制值设定为第二值以允许以第一软件定义的方式控制数据存取。例如,可响应于诸如超管理器的第二软件而由处理电路系统将控制值设定为第一或第二值。
即使第二软件否决由第一软件设置的不可中断的第一属性以将数据存取设置为可中断,处理电路系统仍可基于由第一软件设置的至少一个第一属性来决定数据存取指令的至少一个其他特性。例如,其他特性可为不影响中断处理潜时及因此并非实时关键事件的某个特性。由此,针对数据存取指令决定的存取属性可对应于由第一及第二软件定义的特性组合。
例如,其他特性可包括是否可相对于其他数据存取指令的执行将预定类型的数据存取指令的执行重新排序的指示。同时,其他特性可包括快取策略信息,该信息用于控制如何快取响应于数据存取指令而经存取的数据。例如,快取策略可规定应将写入存取视作直写(writethrough)存取、回写(writeback)存取,还是写分配(writeallocate)存取,此举影响何时将快取储存器位置分配至所存取的数据及数据何时在该快取储存器位置上更新。可针对读取设置类似的策略信息。因此,即使当控制值具有强制数据存取成为可中断的第一值,数据存取亦可保留第一软件定义的一些特性,例如在总线上的呈现次序及快取策略信息,同时如第二软件所需求而可中断及可重复以防止出现较高潜时的情况。
在一实例中,由第一及第二软件定义的第一及第二属性,及基于第一及第二属性的组合而针对数据存取指令设置的最终存取属性中的每一者可识别数据存取指令是正规类型的数据指令还是装置类型的数据指令。通常情况下,正规类型的数据存取指令是可中断的并且可在稍后阶段重复或恢复。同时,可允许相对于其他存取对正规类型的数据存取进行重新排序。另一方面,装置类型的数据存取指令不能中断及重复,并且不能相对于其他数据存取而经重新排序。当数据存取的目标预期为映像至外部装置的数据储存器区域时,操作系统常常使用装置类型的数据存取。一些外部装置可经触发以响应于对相应装置类型的内存区域的读取或写入而执行某些动作,因此对装置类型区域的读取或写入序列不会经中断或重新排序可能是十分重要的,因为此举可影响外部装置执行的操作。因此,装置类型的数据存取通常用以确保装置的正确行为。然而,在虚拟化系统(其中,多种操作系统经组合,并且超管理器管理这些操作系统)中,实际上可能不存在外部装置,及超管理器可提供对应于该装置的虚拟函式以向操作系统显示,如同存在真实的外部装置。因此,装置类型数据存取是否可中断或重新排序可能并不重要,因为可能不存在因这些数据存取的中断而受影响的真实装置。第二软件可察觉由第一软件设置的装置类型存取是否真正需要为装置类型存取,如若并非需要,则可否决第一属性以使存取成为正规类型的数据存取,以确保该存取在需要的情况下可中断。
数据存取指令可规定数据储存器中的位置的地址。由第一及第二软件设置的第一及第二属性可基于地址而决定。可针对数据储存器的不同内存区域设置不同存取属性,这些属性基于内存地址或内存地址的一部分而识别。
可通过使用第一及第二内存属性单元来设置属性,这些单元储存第一及第二数据,该第一及第二数据定义至少一个第一属性及至少一个第二属性。第一及第二内存属性单元中的数据可由第一及第二软件分别设置。内存属性单元可为内存保护单元,该内存保护单元接收与数据存取关连的实体地址,并且基于该地址查找属性数据。或者,第一及第二内存属性单元可为内存管理单元,该内存管理单元接收虚拟地址,将虚拟地址转换成实体地址,并且基于原始虚拟地址或经转换的实体地址来决定数据存取的相应存取属性。因此,可能存在决定第一及第二属性的多种方式。
对数据存取指令的存取属性的决定可由数据处理设备的多个部分进行。例如,处理电路系统、第二内存属性单元,或数据储存器可基于第一及第二属性执行存取属性的决定。因此,本技术并非限定于此决定在数据处理设备内发生的情况。
自另一方面可见,本发明提供一种数据处理设备,该数据处理设备包括:
用于处理数据的处理手段;
用于储存数据的数据储存手段;
其中所述处理手段被配置为在第一特权等级执行第一软件及在第二特权等级执行第二软件,该第二特权等级高于第一特权等级;
响应于用于在数据储存手段中存取数据的数据存取指令,数据处理设备被配置为基于由第一软件设置的至少一个第一属性及由第二软件设置的至少一个第二属性来决定该数据存取指令的至少一个存取属性,该至少一个第一属性及该至少一个第二属性中每一者指定数据存取指令的执行是否可中断;及
响应于预定类型的数据存取指令(该至少一个第二属性指定该数据存取指令的执行可中断),数据处理设备被配置为决定指定数据存取指令的执行可被中断的该至少一个存取属性,即使该至少一个第一属性指定数据存取指令的执行不能中断亦是如此。
自又一方面可见,本发明提供用于数据处理设备的数据处理方法,该数据处理设备包括被配置为处理数据的处理电路系统及被配置为储存数据的数据储存器,其中该处理电路系统被配置为在第一特权等级执行第一软件及在第二特权等级执行第二软件,该第二特权等级高于第一特权等级;该方法包括:
响应于用于在数据储存器中存取数据的数据存取指令,基于由第一软件设置的至少一个第一属性及由第二软件设置的至少一个第二属性来决定该数据存取指令的至少一个存取属性,该至少一个第一属性及该至少一个第二属性中每一者规定数据存取指令的执行是否可中断;及
响应于预定类型的数据存取指令(该至少一个第二属性规定该数据存取指令的执行可中断),决定规定数据存取指令的执行可中断的该至少一个存取属性,即使该至少一个第一属性指定数据存取指令的执行不能中断亦是如此。
附图说明
现将以仅举例的方式通过参考附图来描述本发明的实施例,在这些附图中:
图1示意地图示数据处理设备;
图2示意地图示在不同特权等级作业的软件;
图3示意地图示由在不同特权等级作业的各个软件定义的内存属性的实例;
图4图示加载多指令及储存多指令的实例;
图5图示一实例,其中不可中断加载/储存多指令在处理实时系统中的中断时导致潜时;
图6是一表,该表展示由在第一及第二特权等级的软件定义的存取属性可如何经组合以决定将用于数据存取的存取属性;
图7图示一实例,该实例是以此方式决定存取属性如何地防止发生图5中所图示的高中断潜时;及
图8图示为预定类型的数据存取指令决定存取属性的方法。
具体实施方式
图1示意地图示数据处理设备2的一部分,该部分包括用于处理数据的处理电路系统4及用于储存数据的内存(数据储存器)6。处理电路系统具有寄存器8,这些寄存器用于储存将由处理电路系统4处理的值。数据可自内存6加载至寄存器8,及自寄存器8储存至内存6。可自内存6将指令提取至处理器4。数据高速缓存或指令高速缓存(未图示于图1中)可经提供以用于储存数据或指令,这些数据或指令的存取潜时可少于内存6中的数据或指令的存取潜时。
如图2中所图示,处理电路系统4支持在不同特权等级EL0、EL1,EL2执行的软件。超管理器10在第二特权等级EL2下执行。超管理器10管理数个客操作系统12,这些操作系统在第一特权等级EL1下执行,特权等级EL1为低于EL2的特权等级。超管理器10管理不同操作系统12之间的转换。例如,每一操作系统12可分配有不同的时槽,在该时槽期间,处理电路系统4执行该操作系统12。每一操作系统12执行一个或多个应用程序14,这些应用程序在基础特权等级EL0执行,该基础特权等级EL0是最低的特权等级。操作系统12包括一个或多个实时操作系统(realtimeoperatingsystems;RTOS)12-0、12-1,及至少一个非实时(“富GUI”)操作系统12-2。实时操作系统12-0、12-1管理诸如控制例如车辆内的刹车及安全气囊系统的应用程序的一个或多个实时应用程序14-0、14-1、14-2,为了安全起见,快速的中断响应处理对这些应用程序而言很重要。富GUI操作系统12-2是支持图形用户接口(graphicaluserinterface;GUI)的操作系统,如Windows、iOS、Linux,等。富GUI操作系统12-2执行诸如控制车辆内立体声系统的应用程序的一个或多个非实时应用程序14-3,对这些应用程序而言,中断是否快速处理是次要的。其他系统可具有多于或少于图2中图示的3个等级的特权等级(亦称作“异常等级”)。
返回参看图1,数据处理设备2具有第一内存保护单元(memoryprotectionunit;MPU)20,该单元储存定义第一内存存取属性的数据,这些属性由在第一特权等级EL1执行的操作系统12的一者设置。每一操作系统12维持该操作系统自身的内存存取属性设置,当处理器4切换至执行该操作系统12时,这些属性被加载至第一MPU20。处理电路系统4亦具有定义内存存取属性的第二MPU22,这些属性由第二特权等级EL2的超管理器10设置。响应于数据存取指令,处理电路系统4将由指令规定的地址提供至第一MPU20及第二MPU22,该两个MPU查找各自对该地址的存取属性。MPU20、22可基于存取属性来决定是否可执行该存取,如若不容许该存取,则MPU20、22可触发故障。例如,内存6的某些区域可被指定为有特权的,这些区域不能由无特权指令存取。该属性亦可定义多种特性,这些特性影响内存6如何执行存取,例如存取是否可中断。
该属性亦可定义高速缓存策略信息。对于读取存取,高速缓存策略信息可规定该读取是以下二者之一:
·通读:在不于高速缓存中放置复本的情况下,将所需求的值自内存直接读取至处理器4的寄存器8,或
·非通读:将值自内存6读取至高速缓存,然后自高速缓存读取至寄存器8。
同样,对于写入存取,可将存取规定为:
·直写:在快取命中时,将值写入高速缓存并写入内存;
·回写:在快取命中时,将值写入高速缓存,并且储存该值的高速缓存位置被标示为错,但直至高速缓存位置需经重新分配以用于储存不同数据值并且错数据值被回写至内存6时,才将该值回写至内存6;
·写分配:在快取未中时,将所需的数据值加载至高速缓存;
·非写分配:在快取未中时,在内存中修正所需的数据值,而并不将该数据值加载至高速缓存。
下面是可由内存存取属性规定的特性的一些实例,并且亦可能存在诸多其他特性。
在图1的实例中,由处理器4提供的地址是实体地址,并且各个MPU20、22查找该内存地址的对应存取属性。然而,在其他实例中,MPU20、22可经替换为内存管理单元(memorymanagementunits;MMU),该单元接收来自处理电路系统4的虚拟地址,并将该虚拟地址转换至实体地址,同时查找内存存取属性。不同的虚拟至实体地址映像可由操作系统12在第一MMU20中定义,并且由超管理器10在第二MMU22中定义。由此,通常情况下,MPU或MMU可为包含定义数据存取的存取属性的数据的任何内存属性单元,这些属性基于由数据存取规定的内存地址而查找出。
如图3中所图示,在第一异常等级EL1操作的操作系统12及在第二异常等级EL2操作的超管理器10可定义相同内存地址的相对内存属性。例如,如图3中左边部分中所图示,操作系统12可指定内存地址空间30的不同区域为正规内存区域40或为装置类型区域50。目标是内存40的正规区域的内存存取指令可在存取期间中断,并且可重复或稍后恢复,而目标是装置类型内存区域50的存取指令则不能中断及重复/恢复。同时,正规类型的存取可相对于其他存取以与原始程序次序相比的不同次序处理,而装置类型存取则不能经重新排序。如图3中右边部分中所图示,由在第二特权等级EL2操作的超管理器所定义的内存属性可以类似方式定义地址空间30的正规区域40及装置类型区域50。然而,由超管理器10定义的区域可能不同于由操作系统12定义的区域。例如,操作系统12可将地址空间30的区域设置为装置类型,因为预期该区域经映像至外部装置,但在由超管理器10管理的虚拟化系统中,该种装置可能不存在,因此,超管理器10可将这些区域标示为正规区域作为替代。例如,对于图3中所图示的数据存取目标地址55而言,操作系统12可将该存取规定为装置类型,而超管理器10将该存取规定为正规类型。
图4图示一些指令的实例,内存属性的差异对于这些指令而言可能是显著的。图4图示用于自内存6将多个值加载至寄存器8的加载多指令LDM。加载多指令规定地址寄存器r0,该寄存器包括地址#addr,该地址指示待加载至寄存器8的第一值A在内存6中的地址。加载多指令亦规定寄存器r1至r12列表,这些寄存器识别数据值将被加载至其中的寄存器。如图4中所图示,储存在地址#addr的值A将被加载至寄存器r1,且随后将加载至其他寄存器r2至r12的每一后续值B-L的地址递增。同样,储存多指令STM规定包含地址#addr的寄存器r0及寄存器r1至r12列表,数据值A-L将自这些寄存器r1至r12储存至内存,其中地址#addr识别内存中第一值A将储存于的位置,并且随后地址递增以存取随后的内存位置。列表中的寄存器数目决定执行的加载或储存的次数。通常情况下,加载/储存多指令可能在每一寄存器中需要一个处理周期。尽管图4图示通过使用寄存器规定地址#addr的实例,但是在其他实例中,可在指令编码中将地址规定为立即值。
图5图示一问题,该问题可能在由操作系统12控制的第一MPU20将加载或储存多指令指示为装置类型时出现。如图5中所图示,时槽可被分配至每一操作系统12,每一操作系统12在该操作系统的各个时槽期间由处理电路系统4执行。中断60经周期性地产生以触发至新操作系统12的切换。尽管图5图示时槽具有相等历时,但此举并非必需,并且将可能为一操作系统12分配比另一操作系统更长的时槽。
对于实时操作系统12-0、12-1而言,重要的是触发到该操作系统12的切换的中断60发生在确定的时间。如图5中所图示,非实时操作系统12-2可能在这些中断60-1中的一者发生之前不久遇到加载多指令或储存多指令。如若指令经标示为装置类型,则该指令不能中断。执行如图4中所示的多个加载或多个储存可耗去数个处理周期,并且因此完成加载多指令或储存多指令可使操作溢出至与实时操作系统12-1相关连的时槽中,如图5中所示。如若指令不能中断,则此举延迟了对用于触发至下一操作系统12-1的切换的中断60-1的处理,从而可能产生问题,因为实时操作系统12-1可能需要在其时槽开始时为实时关键事件提供服务。
在典型架构中,当多层内存属性经定义用于相同异动时,这些属性通常情况下经组合以形成对应于限制性最大的原始属性的组合属性。由此,如若一个属性将异动规定为装置类型及另一属性将该异动规定为正规类型,则通常情况下,该异动将经标示为装置类型。然而,在实时系统中,此举将导致如图5中所图示的较高中断潜时的问题,因为限制性更高的装置类型属性可导致对实时事件的服务过迟。
为解决此问题,在操作系统12控制下由第一MPU20定义的第一存取属性及在超管理器10控制下由第二MPU22定义的第二属性可以不同方式组合,如图6中所示。如若第二MPU22决定异动将为装置类型,则整体属性经设置为装置类型,无论对应的由第一MPU20设置的第一属性的状态为何(参看图6的底列)。同时,如若第一及第二MPU20、22皆将异动设置为正规类型,则整体属性亦经设置为正规类型(图6左上框)。
尽管如此,当超管理器指定异动为正规类型,并且操作系统将该异动设置为装置类型(图6中右上框)时,则由处理电路系统维持的控制值100用以决定该异动的整体内存存取属性。可以数种方式维持控制值100,并且该控制值可储存在数据处理设备2内的任何位置,如储存在寄存器8或内存6内。或者,控制值100可储存在如图1中所图示的处理电路系统4内的某一位置。在一实例中,处理电路系统4可具有控制寄存器,该寄存器包括控制处理器4的不同特性的数个控制位,并且内存属性控制值100可为这些控制位中的一者。同时,第二MPU22可维持控制值100。
控制值100控制由超管理器规定为正规类型的至少一个特定类型的数据存取指令的正规/装置类型属性的设置。如若控制值具有第一值(例如值1),则异动经标示为正规,以便超管理器10的正规类型设置否决由操作系统12设置的装置类型。然而,可根据由操作系统12规定的装置状态保留异动的其他特性。例如,可根据装置异动保留以异动相对于其他异动的原始次序得以处理的异动的特性,但可根据正规异动中断该异动。应注意,当控制值是1时,则整体属性将经设置为由超管理器规定的属性,无论操作系统12规定哪一属性。
另一方面,如若控制值100具有第二值(例如0),则可根据由第一MPU20设置的第一属性将异动标示为装置类型,即使超管理器已使用第二MPU22将存取规定为正规类型亦如此。此举意味着数据存取仍将被视作不可中断。当控制值100是0时,将根据由第一及第二MPU20、22设置的限制性最大的属性设置数据存取的整体存取属性,以便在超管理器10或者操作系统12定义装置类型存取的情况下,整体属性亦将是装置类型。
控制值100可由软件设置,诸如由超管理器10设置。此举容许超管理器10控制是否可否决操作系统12的装置类型指示。当预期发生诸如触发实时操作系统开始的中断60的实时关键事件时,控制值可经设置为1,以便即使在第一MPU20将异动定义为装置类型的情况下,异动仍可被视作正规,并且将可中断。因此,如图7中所示,即使加载或储存多指令由非实时操作系统12-2启动,当中断60-1发生时,加载储存多指令经中断以容许操作系统12-1处理实时事件。然后,当非实时操作系统12-2接收该操作系统在处理器4上的下一时槽时,加载或储存多指令可重新开始或恢复。另一方面,如若预期不发生实时关键事件,则超管理器可将控制值设置为0以指示在操作系统12指定异动为装置类型的情况下,该异动应被视作装置类型,以便该异动不能被中断。
如图6所示,存取属性的决定可由第二MPU22进行,该第二MPU可接收来自第一MPU20的第一属性,及将该第一属性与该第二MPU自身查找出的第二属性组合,以形成整体属性。或者,可将第一及第二属性提供至内存6,该内存可具有控制逻辑以用于决定组合属性,该组合属性决定内存6如何处理存取。
尽管图6图示一实例,其中控制值1指示超管理器的“正规”属性应否决操作系统的“装置”属性,并且值0指示应使用操作系统的“装置”属性,在其他实例中,可使用相对的映射,以便0及1的意义互换。如图6中所示的技术仅可用于预定类型的数据存取指令,例如加载多指令或储存多指令,或预期导致较长潜时的其他数据存取指令,如若这些指令不可中断。在其他实例中,该技术可用于所有数据存取指令。对于不使用图6中图示的技术的指令,可采用由第一及第二MPU20、22规定的限制性更大的各个属性(类似于当控制值100具有值0的情况,如图6中所图示)。
同时,有可能在不提供控制值100的情况下实施本技术。在该情况下,对于预定类型的指令而言,MPU22可总是否决第一MPU20,以便在超管理器10指定异动为“正规”类型的情况下,该异动可中断,即使操作系统12将该异动指定为“装置”类型亦如此。
同时,当预定类型的数据存取指令在基础特权等级EL0或第一特权等级EL1下执行时,图6中图示的技术仅可用于预定类型的数据存取指令。由超管理器等级EL2执行的数据存取指令可能不经历此技术,相反,这些数据存取指令可基于由第二MPU22设置的许可而被视作装置类型或正规类型指令,无需虑及第一MPU20为同一地址设置的任何属性(类似于当控制值为1的情况,如图6中所图示)。
在一些系统中,此技术可在更为一般的情况下应用以提供由在更高特权等级下执行的软件设置的控制位100,以控制在较低特权等级下执行的预定类型的数据存取指令是否可中断。亦即,更高及更低特权等级软件无需是分别在特权等级EL2、EL1执行的软件,而是可在特权等级阶层内的任何两个特权等级下操作。
图8示意地图示决定数据存取指令的内存存取属性的一种方法的实例。在步骤100中,决定处理器4是否将执行预定数据存取(在此实例中为来自在基础特权等级EL0或第一特权等级EL1执行的软件的加载多指令或储存多指令)。如若不执行,则以诸如先前技术中那些已知方式的其他方式决定该数据存取指令的内存存取属性。另一方面,如若在特权等级EL0或EL1遇到加载或储存多指令,则该方法进行至步骤102,在该步骤中,第二MPU22决定该指令的第二属性。如若第二属性是装置类型,则在步骤104中,指令的整体存取属性经决定为装置类型,并且指令被发送至内存6。因此,数据存取不能中断或重新排序,因此,处理器4致力于在执行其他存取之前完成加载或储存多指令。
另一方面,如若在步骤102中,第二MPU决定数据存取为正规类型的存取,则在步骤106中,第一MPU20决定数据存取指令的属性。实际上,可由各个MPU20、22并列执行步骤102及106,或可在步骤102之前执行步骤106。如若在步骤106中由第一MPU20决定的第一属性是正规的(亦即,MPU20、22皆已将存取定义为正规),则在步骤108中,此指令的整体存取属性100经决定为正规的。因此,多加载或存储指令可在必要时中断。
另一方面,如若在步骤106中决定属性是装置类型(亦即超管理器10已将异动定义为正规及操作系统已将异动定义为装置),则在步骤110中,系统检查控制位100。如若控制位具有第一值(本实例中的一值),则在步骤112中,整体属性经设置为正规以指示该指令为不可中断的。因此,超管理器已否决由操作系统12设置的装置类型指示。然而,可保留与由操作系统12设置的装置类型指示相关连的异动的至少一个其他特性。例如可保留此事实:与其他异动相比,该异动不应重新排序,以便这些异动以原始次序存在于内存总线上。同时,亦可保留根据操作系统12的由第一MPU20定义的高速缓存读取/写入策略信息。另一方面,如若控制位110具有第二值(例如0),则在步骤114中,指令的属性经设置为装置类型,以便当该指令被发送至内存6时,该指令不能中断。在该情况下,采取由第一MPU20提供的限制性更高的装置指示。
尽管本发明的说明性实施例已在本文中通过参考附图进行详细描述,但将理解,本发明并非限定于那些精确实施例,并且在不背离如由所附的申请专利范围所定义的本发明范畴的情况下,可由熟习该项技术者实现多种变更及润饰。

Claims (16)

1.一种数据处理设备,该数据处理设备包括:
处理电路系统,被配置为处理数据;
数据储存器,被配置为储存数据;
其中该处理电路系统被配置为在第一特权等级执行第一软件及在第二特权等级执行第二软件,该第二特权等级高于该第一特权等级;
响应于用于在该数据储存器中存取数据的数据存取指令,该数据处理设备被配置为基于由该第一软件设置的至少一个第一属性及由该第二软件设置的至少一个第二属性来决定该数据存取指令的至少一个存取属性,该至少一个第一属性及该至少一个第二属性中每一者指定该数据存取指令的执行是否可中断;及
响应于预定类型的数据存取指令,其中该至少一个第二属性指定该数据存取指令的执行可中断,该数据处理设备被配置为决定指定该数据存取指令的执行可被中断的至少一个存取属性,即使该至少一个第一属性指定该数据存取指令的执行不能中断亦是如此。
2.如权利要求1所述的数据处理设备,其中该预定类型的数据存取指令包括将在复数个处理周期中执行的数据存取指令。
3.如任意前述权利要求所述的数据处理设备,其中该预定类型的数据存取指令包括该第一软件的指令或在该第一软件控制下执行的另一软件的指令。
4.如任意前述权利要求所述的数据处理设备,其中该处理电路系统支持复数个操作系统,该第一软件包括该复数个操作系统中的一者,并且该第二软件包括超管理器以用于管理该复数个操作系统。
5.如任意前述权利要求所述的数据处理设备,其中该预定类型的数据存取指令包括加载多指令或储存多指令,该加载多指令用于自该数据储存器将数据加载至该数据处理设备的复数个寄存器,该储存多指令用于将数据自该数据处理设备的复数个寄存器储存至该数据储存器。
6.如任意前述权利要求所述的数据处理设备,其中该数据处理设备被配置为维持控制值;及
响应于该预定类型的数据存取指令,其中该至少一个第二属性指定该数据存取指令的执行可中断,该数据处理设备被配置为基于该控制值决定该至少一个存取属性是否指定该数据存取指令的执行可中断。
7.如权利要求6所述的数据处理设备,其中对于该预定类型的数据存取指令而言:
如若该控制值具有第一值,则该数据处理设备被配置为决定规定该数据存取指令的执行可被中断的至少一个存取属性,即使该至少一个第一属性规定该数据存取指令的执行不能中断亦如此;及
如若该控制值具有第二值,则该数据处理设备被配置为基于该至少一个第一属性决定该至少一个存取属性是否规定该数据存取指令的执行可中断。
8.如权利要求6和7中的任一项所述的数据处理设备,其中该处理电路系统被配置为响应于该第二软件而设置该控制值。
9.如任意前述权利要求所述的数据处理设备,其中如若该数据处理设备在该至少一个第一属性规定该数据存取指令的执行不能被中断时决定规定该数据存取指令的执行可被中断的至少一个存取属性,则该数据处理设备被配置为决定规定该数据存取指令的至少一个其他特性的至少一个存取属性是基于该至少一个第一属性所决定的。
10.如权利要求9所述的数据处理设备,其中该至少一个其他特性包括以下至少一者:
(i)该预定类型的数据存取指令的执行是否可相对于其他数据存取指令的执行而进行重新排序;
(ii)快取策略信息,用于控制如何快取响应于该数据存取指令而经存取的数据。
11.如任意前述权利要求所述的数据处理设备,其中该至少一个存取属性、该至少一个第一属性及该至少一个第二属性中每一者识别该数据存取指令是可中断的正规类型的数据存取指令还是不能中断的装置类型的数据存取指令。
12.如任意前述权利要求所述的数据处理设备,其中该数据存取指令规定该数据储存器中的某一位置的地址,并且该数据处理设备被配置为基于该地址的至少一部分来决定该至少一个第一属性及该至少一个第二属性。
13.如任意前述权利要求所述的数据处理设备,该数据处理设备包括第一内存属性单元,该第一内存属性单元被配置为储存第一数据,该第一数据定义该至少一个第一属性,其中该处理电路系统被配置为响应于该第一软件而设置该第一数据。
14.如任意前述权利要求所述的数据处理设备,该数据处理设备包括第二内存属性单元,该第二内存属性单元被配置为储存第二数据,该第二数据定义该至少一个第二属性,其中该处理电路系统被配置为响应于该第二软件而设置该第二数据。
15.一种数据处理设备,该数据处理设备包括:
用于处理数据的处理手段;
用于储存数据的数据储存手段;
其中所述处理手段被配置为在第一特权等级执行第一软件及在第二特权等级执行第二软件,该第二特权等级高于该第一特权等级;
响应于用于在该数据储存手段中存取数据的数据存取指令,该数据处理设备被配置为基于由该第一软件设置的至少一个第一属性及由该第二软件设置的至少一个第二属性来决定该数据存取指令的至少一个存取属性,该至少一个第一属性及该至少一个第二属性中每一者指定该数据存取指令的执行是否可中断;及
响应于预定类型的数据存取指令,其中该至少一个第二属性指定该数据存取指令的执行可中断,该数据处理设备被配置为决定规定该数据存取指令的执行可中断的至少一个存取属性,即使该至少一个第一属性规定该数据存取指令的执行不能中断亦是如此。
16.一种用于数据处理设备的数据处理方法,该数据处理设备包括被配置为处理数据的处理电路系统及被配置为储存数据的数据储存器,其中该处理电路系统被配置为在第一特权等级执行第一软件,及在第二特权等级执行第二软件,该第二特权等级高于该第一特权等级;该方法包括以下步骤:
响应于用于在该数据储存器中存取数据的数据存取指令,基于由该第一软件设置的至少一个第一属性及由该第二软件设置的至少一个第二属性来决定该数据存取指令的至少一个存取属性,该至少一个第一属性及该至少一个第二属性中每一者规定该数据存取指令的执行是否可中断;及
响应于预定类型的数据存取指令,其中该至少一个第二属性规定该数据存取指令的执行可中断,决定规定该数据存取指令的执行可中断的至少一个存取属性,即使该至少一个第一属性规定该数据存取指令的执行不能中断亦是如此。
CN201480045561.1A 2013-08-23 2014-07-15 处理用于数据存取的存取属性 Active CN105453029B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1315108.9A GB2517493A (en) 2013-08-23 2013-08-23 Handling access attributes for data accesses
GB1315108.9 2013-08-23
PCT/GB2014/052154 WO2015025129A1 (en) 2013-08-23 2014-07-15 Handling access attributes for data accesses

Publications (2)

Publication Number Publication Date
CN105453029A true CN105453029A (zh) 2016-03-30
CN105453029B CN105453029B (zh) 2018-11-09

Family

ID=49355838

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480045561.1A Active CN105453029B (zh) 2013-08-23 2014-07-15 处理用于数据存取的存取属性

Country Status (10)

Country Link
US (2) US10354092B2 (zh)
EP (1) EP3036622B1 (zh)
JP (1) JP6511446B2 (zh)
KR (1) KR102269912B1 (zh)
CN (1) CN105453029B (zh)
BR (1) BR112016002977B1 (zh)
GB (1) GB2517493A (zh)
IL (1) IL243889B (zh)
TW (1) TWI630554B (zh)
WO (1) WO2015025129A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214976A (zh) * 2017-07-06 2019-01-15 Arm有限公司 图形处理
CN110383256A (zh) * 2018-02-02 2019-10-25 华为技术有限公司 一种内核完整性保护方法及装置
US12032494B2 (en) 2018-02-02 2024-07-09 Huawei Technologies Co., Ltd. Kernel integrity protection method and apparatus

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2940575B1 (en) * 2014-05-02 2018-05-09 Nxp B.V. Controller circuits, data interface blocks, and methods for transferring data
GB2546742B (en) * 2016-01-26 2019-12-11 Advanced Risc Mach Ltd Memory address translation management
US11205152B1 (en) * 2016-03-18 2021-12-21 Amazon Technologies, Inc. Virtual logistical network overlay for physical logistical network
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
GB2578135B (en) * 2018-10-18 2020-10-21 Advanced Risc Mach Ltd Range checking instruction
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047470A1 (en) * 1998-02-20 2001-11-29 Franck Roche Management of interrupts each having hardware and software priorities in a microprocessor
US20040054833A1 (en) * 2002-09-16 2004-03-18 Seal David James Handling interrupts during multiple access program instructions
US20040054831A1 (en) * 2000-12-01 2004-03-18 Rikard Johansson Method and computer device with different criticality
CN1906583A (zh) * 2004-09-29 2007-01-31 索尼株式会社 信息处理设备、中断处理控制方法、以及计算机程序

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
US5325536A (en) * 1989-12-07 1994-06-28 Motorola, Inc. Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine
JP2759407B2 (ja) 1993-04-15 1998-05-28 ローレルバンクマシン株式会社 硬貨包装機
US5889973A (en) * 1995-03-31 1999-03-30 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
US6574736B1 (en) * 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
DE10206865C1 (de) * 2002-02-18 2003-05-15 Daimler Chrysler Ag Reaktionszeit-Beschränkung eines Software-Prozesses
US20040005483A1 (en) * 2002-03-08 2004-01-08 Chhiu-Tsu Lin Perovskite manganites for use in coatings
US7944953B2 (en) * 2002-04-03 2011-05-17 Tvworks, Llc Method and apparatus for transmitting data in a data stream
JP2004139503A (ja) 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd 記憶装置及びその制御方法
US20040111593A1 (en) * 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system
US20040168047A1 (en) * 2003-02-24 2004-08-26 Matsushita Electric Industrial Co., Ltd. Processor and compiler for creating program for the processor
US7543331B2 (en) * 2003-12-22 2009-06-02 Sun Microsystems, Inc. Framework for providing a configurable firewall for computing systems
US7147938B2 (en) * 2004-06-30 2006-12-12 Eastman Kodak Company Organic element for electroluminescent devices
US8166483B2 (en) 2004-08-06 2012-04-24 Rabih Chrabieh Method and apparatus for implementing priority management of computer operations
US20060064528A1 (en) * 2004-09-17 2006-03-23 Hewlett-Packard Development Company, L.P. Privileged resource access
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
US20060218425A1 (en) 2005-02-25 2006-09-28 Zhimin Ding Integrated microcontroller and memory with secure interface between system program and user operating system and application
JP2007004661A (ja) * 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US8726292B2 (en) * 2005-08-25 2014-05-13 Broadcom Corporation System and method for communication in a multithread processor
US8443188B2 (en) * 2006-11-30 2013-05-14 Microsoft Corporation Using code access security for runtime accessibility checks
US8869294B2 (en) * 2006-12-05 2014-10-21 Intel Corporation Mitigating branch prediction and other timing based side channel attacks
US8136091B2 (en) * 2007-01-31 2012-03-13 Microsoft Corporation Architectural support for software-based protection
GB2448149B (en) * 2007-04-03 2011-05-18 Advanced Risc Mach Ltd Protected function calling
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
KR101496329B1 (ko) * 2008-03-28 2015-02-26 삼성전자주식회사 네트워크의 디바이스 보안 등급 조절 방법 및 장치
US8347380B1 (en) * 2008-06-30 2013-01-01 Symantec Corporation Protecting users from accidentally disclosing personal information in an insecure environment
US8450300B2 (en) * 2009-07-13 2013-05-28 Cempra Pharmaceuticals Inc. Fusidic acid dosing regimens for treatment of bacterial infections
GB2474666B (en) * 2009-10-21 2015-07-15 Advanced Risc Mach Ltd Hardware resource management within a data processing system
US8489789B2 (en) * 2010-02-05 2013-07-16 Advanced Micro Devices, Inc. Interrupt virtualization
US8826231B1 (en) * 2010-06-28 2014-09-02 The Boeing Company Methods and systems for deploying software applications
JP5541036B2 (ja) * 2010-09-21 2014-07-09 富士通株式会社 メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置
US9798873B2 (en) * 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US8898459B2 (en) * 2011-08-31 2014-11-25 At&T Intellectual Property I, L.P. Policy configuration for mobile device applications
US8695010B2 (en) * 2011-10-03 2014-04-08 International Business Machines Corporation Privilege level aware processor hardware resource management facility
US8856789B2 (en) * 2012-09-06 2014-10-07 Assured Information Security, Inc. Facilitating execution of a self-modifying executable
GB2517494B (en) * 2013-08-23 2021-02-24 Advanced Risc Mach Ltd Handling time intensive instructions
JP6466476B2 (ja) * 2014-03-19 2019-02-06 インテル コーポレイション マルチオペレーティングシステム装置に対するアクセス分離
US9747218B2 (en) * 2015-03-20 2017-08-29 Mill Computing, Inc. CPU security mechanisms employing thread-specific protection domains
US9870466B2 (en) * 2015-09-26 2018-01-16 Mcafee, Inc. Hardware-enforced code paths
US20170123800A1 (en) * 2015-11-04 2017-05-04 International Business Machines Corporation Selective resource activation based on privilege level
US10261919B2 (en) * 2016-07-08 2019-04-16 Hewlett Packard Enterprise Development Lp Selective memory encryption
US10650156B2 (en) * 2017-04-26 2020-05-12 International Business Machines Corporation Environmental security controls to prevent unauthorized access to files, programs, and objects
US10635831B1 (en) * 2018-01-06 2020-04-28 Ralph Crittenden Moore Method to achieve better security using a memory protection unit
US11042485B2 (en) * 2018-06-20 2021-06-22 Vmware, Inc. Implementing firmware runtime services in a computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010047470A1 (en) * 1998-02-20 2001-11-29 Franck Roche Management of interrupts each having hardware and software priorities in a microprocessor
US20040054831A1 (en) * 2000-12-01 2004-03-18 Rikard Johansson Method and computer device with different criticality
US20040054833A1 (en) * 2002-09-16 2004-03-18 Seal David James Handling interrupts during multiple access program instructions
CN1906583A (zh) * 2004-09-29 2007-01-31 索尼株式会社 信息处理设备、中断处理控制方法、以及计算机程序

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214976A (zh) * 2017-07-06 2019-01-15 Arm有限公司 图形处理
CN109214976B (zh) * 2017-07-06 2024-01-05 Arm有限公司 图形处理
CN110383256A (zh) * 2018-02-02 2019-10-25 华为技术有限公司 一种内核完整性保护方法及装置
CN110383256B (zh) * 2018-02-02 2022-01-14 华为技术有限公司 一种内核完整性保护方法及装置
US12032494B2 (en) 2018-02-02 2024-07-09 Huawei Technologies Co., Ltd. Kernel integrity protection method and apparatus

Also Published As

Publication number Publication date
KR102269912B1 (ko) 2021-06-28
WO2015025129A1 (en) 2015-02-26
TW201514857A (zh) 2015-04-16
GB2517493A (en) 2015-02-25
US11055440B2 (en) 2021-07-06
EP3036622A1 (en) 2016-06-29
TWI630554B (zh) 2018-07-21
US20160210465A1 (en) 2016-07-21
BR112016002977A2 (zh) 2017-08-01
US10354092B2 (en) 2019-07-16
US20190286831A1 (en) 2019-09-19
GB201315108D0 (en) 2013-10-09
BR112016002977B1 (pt) 2022-06-21
IL243889A0 (en) 2016-04-21
CN105453029B (zh) 2018-11-09
EP3036622B1 (en) 2018-03-07
KR20160045735A (ko) 2016-04-27
JP2016532205A (ja) 2016-10-13
JP6511446B2 (ja) 2019-05-15
IL243889B (en) 2019-05-30

Similar Documents

Publication Publication Date Title
CN105453029A (zh) 处理用于数据存取的存取属性
US10853071B2 (en) Simulation of exclusive instructions
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
US20070094664A1 (en) Programmable priority for concurrent multi-threaded processors
JP4064924B2 (ja) メモリアクセスを制御する方法及び装置
JP7359837B2 (ja) メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット
CN109952567B (zh) 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置
CN108292272A (zh) 用于管理有界指针的装置和方法
JP7096840B2 (ja) 能力メタデータを管理するための装置及び方法
JP7397057B2 (ja) メモリ・システム内に記憶されている制御テーブルのための二分探索手順
CN109313693A (zh) 针对偶发存储器访问程序指令的许可控制
WO2017196614A1 (en) Selective data persistence in computing systems
JPH11272828A (ja) 集積回路を有するチップカ―ド
US11614985B2 (en) Insert operation
WO2012038780A1 (en) Method and device for detecting a race condition
JP2010128698A (ja) マルチプロセッサシステム
US8095784B2 (en) Computer system and method for activating basic program therein
US20080072009A1 (en) Apparatus and method for handling interrupt disabled section and page pinning apparatus and method
JP4461934B2 (ja) キャッシュメモリ試験システム、試験方法、試験プログラム
WO2014184612A1 (en) Method and device for detecting a race condition and a computer program product
US20170206126A1 (en) Cpu with external fault response handling
JP2007026084A (ja) マイクロプロセッサ
CN115906194A (zh) 一种防止非易失性存储数据泄露的方法和系统
Soler et al. IMPLICATIONS OF CACHE MANAGEMENT IN PARTITIONED SYSTEMS.
JP2014174758A (ja) 処理装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant