KR102269912B1 - 데이터 액세스를 위한 액세스 속성의 처리 - Google Patents
데이터 액세스를 위한 액세스 속성의 처리 Download PDFInfo
- Publication number
- KR102269912B1 KR102269912B1 KR1020167005602A KR20167005602A KR102269912B1 KR 102269912 B1 KR102269912 B1 KR 102269912B1 KR 1020167005602 A KR1020167005602 A KR 1020167005602A KR 20167005602 A KR20167005602 A KR 20167005602A KR 102269912 B1 KR102269912 B1 KR 102269912B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- attribute
- software
- data access
- interrupted
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 92
- 238000000034 method Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 22
- 238000013500 data storage Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims description 4
- 230000007704 transition Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- 102000006463 Talin Human genes 0.000 description 1
- 108010083809 Talin Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- 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/1491—Protection 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
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- 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/60—Protecting data
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/46—Multiprogramming arrangements
- G06F9/468—Specific 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)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
데이터 처리장치(2)는 제 1 특권 레벨 EL1에서 제 1 소프트웨어(13)를 실행하고 제 1 특권 레벨보다 높은 제 2 특권 레벨 EL2에서 제 2 소프트웨어(10)를 실행하는 처리회로(4)를 갖는다. 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 표시하기 위해 제 1 및 제 2 소프트웨어(10, 12)에 의해 속성이 설정된다. 명령이 인터럽트될 수 있는 것으로 제 2 소프트웨어(10)에 의해 설정된 제 2 속성이 명시하는 소정의 종류의 데이터 액세스 명령에 대해, 명령의 실행이 인터럽트될 수 없는 것으로 상기 제 1 소프트웨어(12)에 의해 설정된 제 1 속성이 명시하더라도, 이 명령이 인터럽트 가능한 것으로 설정된다.
Description
본 발명은 데이터 처리 분야에 관한 것이다. 특히, 본 발명은 데이터 처리장치에서 데이터 액세스를 위한 액세스 속성의 처리에 관한 것이다.
데이터 저장소로부터 데이터를 액세스하기 위한 데이터 액세스 명령은 데이터 액세스가 행해지는 방식을 제어하는 액세스 속성을 구비한다. 예를 들어, 액세스 속성은, 다른 데이터 액세스들에 대해 데이터 액세스를 순서를 무시하고 처리될 수 있는지 여부와, 액세스된 데이터가 캐시에 기억되어야 하는 시기 또는 방식을 명시한다. 그러나, 일부의 액세스 속성은 데이터 액세스를 행하는 것과 관련된 대기시간에 영향을 미친다. 실시간 시스템(예를 들어, 자동차 또는 산업용 응용에서 사용되는 장치)에서는, 특정한 프로세싱 연산이 완료하는데 얼마나 오랜 시간이 걸리는지에 대해 결정적(deterministic) 거동을 갖는 것이 바람직한 경우가 많으므로, 특정한 데이터 액세스와 관련된 긴 대기시간은 문제가 될 수 있다. 특히, 다수의 다른 소프트웨어 어플리케이션들이 한 개의 프로세서에 결합되는 경우가 이에 해당하는데, 이 경우에는 한 개의 어플리케이션이 긴 대기시간의 데이터 액세스를 개시하여, 다른 소프트웨어 어플리케이션이 실시간의 중요한 연산을 행하지 못하게 방해한다. 본 발명을 이들 문제를 해소하는 것을 목적으로 한다.
일면에 따르면, 본 발명은, 데이터 처리장치로서,
데이터를 처리하도록 구성된 처리회로와,
데이터를 기억하도록 구성된 데이터 저장소를 구비하고,
상기 처리회로는, 제 1 특권 레벨에서 제 1 소프트웨어를 실행하고, 상기 제 1 특권 레벨보다 높은 제 2 특권 레벨에서 제 2 소프트웨어를 실행하도록 구성되고,
상기 데이터 저장소에 있는 데이터를 액세스하기 위한 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 제 1 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 1 속성과 상기 제 2 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 2 속성에 근거하여 상기 데이터 액세스 명령에 대한 적어도 한 개의 액세스 속성을 결정하도록 구성되고, 상기 적어도 한 개의 제 1 속성과 상기 적어도 한 개의 제 2 속성 각각은 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시하고,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 제 2 속성이 명시하는 소정의 종류의 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 없다는 것을 상기 적어도 한 개의 제 1 속성이 명시하더라도, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 명시하는 상기 적어도 한 개의 액세스 속성을 결정하도록 구성된 데이터 처리장치를 제공한다.
한가지 종류의 데이터 액세스 속성은 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시한다. 어떤 종류의 데이터 액세스 명령은 실행하는데 긴 시간이 걸리므로, 데이터 액세스 전체에 걸쳐 데이터 액세스 명령이 도중에 인터럽트될 수 있는지 여부는 실시간 시스템에서 중요할 수 있다. 즉시 서비스할 필요가 있는 인터럽트 등의 실시간의 중요 이벤트가 인터럽트 불가능으로 표시된 데이터 액세스 중에 일어나면, 처리회로는 데이터 액세스의 완료에 전념하여, 실시간 중요 이벤트의 처리에 지연을 일으키는데, 이것은 바람직하지 않다.
처리회로는 제 1 특권 레벨에서 실행되는 제 1 소프트웨어와 제 1 특권 레벨보다 높은 제 2 특권 레벨에서 실행되는 제 2 소프트웨어를 포함하는 다수의 소프트웨어를 지원한다. 소프트웨어의 각 층은 데이터 액세스 명령에 대해 그들 자신의 액세스 속성을 설정하여, 적어도 한 개의 제1 속성이 제 1 소프트웨어에 의해 명시되고 적어도 한 개의 제 2 속성이 제 2 소프트웨어에 의해 명시되며, 이들 각각은 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시한다. 통상적인 구성에서는, 동일한 데이터 액세스에 대해 서로 다른 액세스 속성들이 설정되는 경우에는, 가장 제한적인 속성이 데이터 액세스를 위한 실제 속성으로 선택될 것이다. 예를 들어, 제 1 소프트웨어가 액세스가 인터럽트될 수 없다고 명시하면, 이것은 데이터 액세스의 인터럽트를 허용하는 덜 제한적인 속성들을 보통 무시할 것이다. 그러나, 데이터 액세스를 수행하는데 긴 시간이 걸리는 경우에는, 더 제한적인 액세스 속성이 실시간 중요 이벤트를 서비스할 수 있는 능력에 영향을 미칠 수도 있다.
따라서, 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 제 1 소프트웨어에 의해 설정된 적어도 한 개의 제 2 속성이 명기하는 소정의 종류의 데이터 액세스 명령에 대해, 제 1 소프트웨어에 의해 설정된 적어도 한 개의 제 1 속성이 실행이 인터럽트될 수 없다고 명시하더라도, 처리회로가 실행이 인터럽트될 수 있다고 명시하는 것으로 액세스 속성을 결정한다. 이 때문에, 제 1 소프트웨어에 의해 설정된 속성이 더 높은 특권 레벨에 있는 제 2 소프트웨어에 의해 설정된 속성에 의해 무효로 되어, 실시간 중요 이벤트의 경우에 데이터 액세스 명령이 인터럽트될 수 있도록 보장한다. 예를 들어, 이와 같은 구성은 긴 인터럽트 처리 대기시간을 방지한다. 보통 데이터 액세스에 대해 설정된 충돌하는 속성들 중에서 가장 제한적인 것을 사용하여 액세스를 처리할 것이기 때문에, 이와 같은 접근방식은 직관에 반한다.
본 기술은 모든 데이터 액세스 명령에 사용될 수 있지만, 인터럽트 불가능한 것으로 표시되는 경우 긴 지연을 일으킬 수 있는 복수의 처리 사이클에 걸쳐 실행되는 명령들에 대해 특히 유용하다.
데이터 액세스 명령의 실행이 인터럽트될 수 있으면, 인터럽트, 예외 또는 다른 실시간 중요 이벤트의 발생시, 명령의 실행이 중단된다. 이벤트가 일단 처리되면, 데이터 액세스 명령의 실행이 처음부터 다시 시작되거나, 가능한 경우에는 데이터 액세스가 인터럽트되는 시점부터 재개된다.
본 발명은 일반적으로 처리회로에 의해 실행된 모든 소프트웨어 내부에서 발생하는 소정의 종류의 데이터 액세스 명령에 적용된다. 이와 달리, 소정의 종류의 데이터 액세스 명령이 한 개 이상의 특정한 종류의 소프트웨어, 특히 제 1 소프트웨어 자체 또는 제 1 소프트웨어의 제어하에서 실행되는 또 다른 소프트웨어에서 나타날 때에만 전술한 것과 같은 액세스 속성의 결정이 사용되어도 된다. 제 2 소프트웨어 내에서 소정의 종류의 데이터 액세스 명령을 마주치면, 그것의 액세스 속성이 제 1 소프트웨어에 의해 명시된 제 1 속성을 고려하지 않고 제 2 소프트웨어에 의해 명시된 제 2 속성에 근거하여 결정될 수 있다. 이 때문에, 전술한 것과 같은 속성 결정이 소정의 종류의 데이터 액세스 명령의 모든 발생에 대해 사용될 필요가 없다.
제 1 및 제 2 소프트웨어는 다른 특권 레벨에서 동작하는 소프트웨어일 수 있으며, 이때 제 2 소프트웨어는 제 1 소프트웨어보다 높은 특권을 갖는다. 이와 관련하여, "더 높은 특권 레벨"은, 이 특권 레벨에서 동작하는 소프트웨어가 "더 낮은 특권 레벨"에서 동작하는 소프트웨어보다 더 큰 권한을 갖는다는 것을 의미한다(예를 들면, 제 2 소프트웨어는 제 1 소프트웨어가 액세스 불가능한 데이터를 액세스하거나, 제 2 소프트웨어가 제 1 소프트웨어가 사용 불가능한 특정한 활동을 행할 수 있다). 제 1 및 제 2 특권 레벨은 더 큰 수의 레벨들 내부의 임의이 2개의 특권 레벨이어도 된다. 일부 실시예에서는, 가장 큰 수치가 최고의 특권 레벨을 표시하는 한편(예를 들여, 특권 레벨 3이 특권 레벨 2보다 큰 권한을 갖는다), 다른 실시예에서는 가장 낮은 수치가 최고의 특권 레벨을 표시한다(예를 들어, 특권 레벨 0이 특권 레벨1보다 큰 권한을 갖는다).
예를 들어, 실시간 시스템은, 복수의 운영체계들이 동일한 장치에 공존하고 하이퍼바이저가 이 운영체계들을 관리하는 가상화를 허용한다. 이와 같은 종류의 환경에서는, 제 1 소프트웨어가 운영체계들 중에서 한 개를 포함하고 제 2 소프트웨어가 하이퍼바이저를 포함한다. 운영체계와 하이퍼바이저는 각각 별개로 데이터 액세스에 대한 액세스 속성들을 정의한다. 소정의 종류의 데이터 액세스 명령의 실행이 인터럽트될 수 있는 것으로 하이퍼바이저가 명시하지만, 운영체계가 이 명령이 인터럽트될 수 없다고 요구하는 경우에, 하이퍼바이저가 운영체계를 무효로 할 수 있으므로, 운영체계에 의해 설정된 속성에 무관하게 데이터 액세스가 인터럽트 가능한 것으로 표시된다. 이와 같은 구성은 게스트 운영체계가 부적절한 높은 대기시간의 상황을 일으키는 것을 방지한다.
긴 대기시간이 관심사인 모든 종류의 데이터 액세스 명령에 본 발명이 적용되지만, 본 발명은 특히 데이터 저장소로부터 복수의 레지스터에 데이터를 로드하는 로드 다중(load multiple) 명령 또는 복수의 레지스터로부터 데이터 저장소에 데이터를 저장하는 저장 다중(store multiple) 명령에 유용하다. 일반적으로, 로드 또는 저장 다중 명령은 레지스터들의 목록을 명시하고, 로드 또는 저장 명령의 실행은 이 목록 내부의 레지스터들의 수에 의존하는 다수의 처리 사이클을 필요로 한다. 로드 또는 저장 다중 명령이 인터럽트 불가능한 것으로 표시되면, 프로세서는 다중 로드 또는 저장을 완료하는데 전념하고, 보통 다중 로드 또는 저장이 완료할 때까지 다른 동작을 서비스할 수 없게 될 것이다. 이것은 실시간의 중요할 수 있는 다른 이벤트들을 처리하는데 있어서 바람직하지 않게 긴 대기시간을 발생할 수 있다. 이 문제를 해소하기 위해, 제 1 소프트웨어가 이와 같은 명령들이 인터럽트 불가능한 것으로 표시하더라도, 더 높은 특권 레벨에 있는 제 2 소프트웨어가 필요한 경우에 무효로 하여, 로드 및 저장 다중 명령들이 인터럽트 가능하도록(그리고 나중에는 반복가능하도록) 보장한다.
일부 시스템에서는, 제 2 소프트웨어가 데이터 액세스가 인터럽트될 수 있는 것으로 명시하고 제 1 소프트웨어가 그것이 인터럽트될 수 없는 것으로 명시할 때, 제 2 소프트웨어가 항상 제 1 소프트웨어를 무효로 해도 된다. 그러나, 데이터 액세스가 인터럽트 불가능한 것으로 연속될 수 있도록 하는 것이 바람직한 상황이 존재할 수도 있다. 따라서, 처리회로는 제어값을 유지한다. 적어도 한 개의 제 2 속성이 데이터 액세스의 인터럽션을 허용하는 경우에, 처리회로는 이 제어값에 근거하여 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 결정해도 된다. 제 1 속성이 실행이 인터럽트될 수 없다고 명시하더라도 제어값의 제 1 값이 이 실행이 인터럽트될 수 있다고 표시할 수 있다(따라서 제 2 소프트웨어에 의해 명시된 속성이 제 1 소프트웨어에 의해 명시된 속성을 무효로 한다). 제어값의 제 2 값은, 실행이 인터럽트될 수 있는지 여부가 제 1 속성에 근거하여 결정되어야 한다는 것을 표시할 수 있다(따라서, 제 1 및 제 2 속성들 중에서 가장 제한적인 것이 선택된다). 제어값은 액세스가 제 2 소프트웨어에 의해 강제로 인터럽트 불가능하게 되는지 여부를 시스템이 선택할 수 있도록 한다. 대기시간이 중요한(latency-critical) 이벤트가 예측될 때에는, 제어값이 제 1 값으로 설정되어 실시간 요건이 만족되도록 보장할 수 있는 한편, 이와 같은 이벤트가 예측되지 않고 인터럽트 대기시간이 문제가 될 것으로 예측되지 않을 때에는, 제어값이 제 2 값으로 설정되어, 데이터 액세스가 제 1 소프트웨어에 의해 정의되는 방식으로 제어될 수 있도록 한다. 예를 들어 하이퍼바이저 등의 제2 소프트웨어에 응답하여 제어값이 처리회로에 의해 제 1 또는 제 2 값으로 설정되어도 된다.
제 2 소프트웨어가 제 1 소프트웨어에 의해 설정된 인터럽트 불가능한 제 1 속성을 무효로 하여 데이터 액세스를 인터럽트 가능으로 설정하더라도, 처리회로는 여전히 제 1 소프트웨어에 의해 설정된 저거도 한 개의 제 1 속성에 근거하여 데이터 액세스 정보의 적어도 한 개의 다른 프로퍼티(property)를 결정해도 된다. 예를 들어, 상기한 다른 프로퍼티는 인터럽트 처리 대기시간에 영향을 미치지 않으므로 실시간 중요한 것이 아닌 어떤 것이어도 된다. 그 때문에, 데이터 액세스 명령에 대해 결정된 액세스 속성은 제 1 및 제 2 소프트웨어에 의해 정의된 프로퍼티들의 조합에 해당한다.
예를 들어, 상기한 다른 프로퍼티는 다른 데이터 액세스 명령들의 실행에 대해 소정의 종류의 데이터 액세스 명령의 실행이 재배열될 수 있는지 여부의 표시를 포함한다. 또한, 상기한 다른 프로퍼티는 데이터 액세스 명령에 응답하여 액세스된 데이터가 캐시에 기억되는 방식을 제어하는 캐시 정책(policy) 정보를 포함해도 된다. 예를 들어, 캐시 정책은 기록 액세스가 동시 기록(write through) 액세스, 후기록(write back) 액세스 또는 기록 할당 액세스로서 처리되어야 하는지를 명시하는데, 이것은 액세스된 데이터에 캐시 저장 위치가 할당되는 시기와 이 캐시 저장 위치에서 데이터가 갱신되는 시기에 영향을 미친다. 이와 유사한 정책 정보가 판독에 대해서 설정되어도 된다. 따라서, 제어값이 제 1 값을 가져 데이터 액세스를 강제로 인터럽트 가능하게 하더라도, 데이터 액세스는, 높은 대기시간의 상황을 방지하기 위해 제 1 소프트웨어에 의해 요될 때 인터럽트 가능하고 반복 가능하면서도, 버스 상의 프레젠테이션의 순서와 캐시 정책 정보 등의, 제 1 소프트웨어에 의해 정의된 프로퍼티들의 일부를 유지한다.
일 실시예에서, 제 1 및 제 2 소프트웨어에 의해 정의된 제 1 및 제 2 속성과, 제 1 및 제 2 속성들의 조합에 근거하여 데이터 액세스 명령에 대해 설정된 최종적인 액세스 속성들은 각각 데이터 액세스 명령이 정규 종류의 데이터 명령인지 또는 장치 종류의 데이터 명령인지 식별한다. 일반적으로, 정규 종류의 데이터 액세스 명령은 인터럽트가 가능하고 나중 단계에서 반복되거나 재개될 수 있다. 또한, 정규 종류의 데이터 액세스는 다른 액세스들에 재배열되는 것이 허용된다. 이에 반해, 장치 종류의 데이터 액세스 명령은 인터럽트되고 반복될 수 없으며 다른 데이터 액세스들에 대해 재배열될 수 없다. 장치 종류의 데이터 액세스는, 외부 장치에 매핑되는 데이터 저장소의 영역을 데이터 액세스가 목표로 하는 것이 예측될 때, 운영체계에 의해 사용되는 일이 많다. 일부의 외부 장치들은 대응하는 장치 종류의 메모리 영역에 대한 판독 또는 기록에 응답하여 특정한 활동을 행하도록 기동되므로, 장치 종류의 영역에 대한 일련의 판독 또는 기록이 인터럽트되거나 재배열되지 않아야 하는 것이 중요할 수 있는데, 이것이 외부 장치에 의해 행해진 동작에 영향을 미칠 수 있기 때문이다. 따라서, 장치의 올바른 거동을 확보하기 위해 장치 종류의 데이터 액세스가 보통 사용된다. 그러나, 복수의 운영체계가 결합되고 하이퍼바이저가 이들 운영체계를 관리하는 가상화된 시스템에서는, 외부 장치가 실제로 존재하지 않을 수도 있으며, 하이퍼바이저가 장치에 해당하는 가상 기능을 제공하여, 실제의 외부 장치가 존재하는 것처럼 운용체계에게 보인다. 따라서, 장치 종류의 데이터 액세스들이 인터럽트되거나 재배열될 수 있는지 여부는 중요하지 않은데, 이들 데이터 액세스에 대한 인터럽션에 의해 영향을 받을지도 모르는 실제 장치가 존재하지 않을 수도 있기 때문이다. 제 2 소프트웨어는, 제 1 소프트웨어에 의해 설정된 장치 종류의 액세스가 실제로 장치 종류의 액세스일 필요가 있는지 여부를 알고 있으며, 알지 못하는 경우에는, 제 1 속성을 무효로 하여 액세스를 정규 종류의 데이터 액세스로 함으로써, 필요한 경우에 인터럽트될 수 있도록 보장한다.
데이터 액세스 명령은 데이터 저장소 내부의 위치의 어드레스를 명시해도 된다. 제 1 및 제 2 소프트웨어에 의해 설정된 제 1 및 제 2 속성이 이 어드레스에 근거하여 결정된다. 메모리 어드레스 또는 메모리 어드레스의 일부에 근거하여 식별되는 데이터 저장소의 서로 다른 메모리 영역들에 대해 서로 다른 액세스 속성들이 설정될 수 있다.
속성들은 적어도 한 개의 제 1 속성과 적어도 한 개의 제 2 속성을 정의하는 제 1 및 제 2 데이터를 기억하는 제 1 및 제 2 메모리 속성 유닛을 사용하여 설정되어도 된다. 제1 및 제 2 메모리 속성 유닛의 데이터는 각각 제 1 및 제 2 소프트웨어에 의해 설정된다. 메모리 속성 유닛은 데이터 액세스와 관련된 물리 어드레스를 수신하고 이 어드레스에 근거하여 속성 데이터를 참조하는 메모리 보호 유닛이어도 된다. 이와 달리, 제 1 및 제 2 메모리 속성 유닛은, 가상 어드레스를 수신하고, 이 가상 어드레스를 물리 어드레스로 변환하고, 원래의 가상 어드레스 또는 변환된 물리 어드레스 중에서 한 개에 근거하여 데이터 액세스에 대한 대응하는 액세스 속성들을 결정하는 메모리 관리 유닛이어도 된다. 따라서, 제 1 및 제 2 속성을 결정하는 다양한 방법이 존재한다.
데이터 액세스 명령에 대한 액세스 속성의 결정은 데이터 처리장치의 다양한 부분에 의해 행해져도 된다. 예를 들어, 처리회로, 제 2 메모리 속성 유닛 또는 데이터 저장소가 제1 및 제 2 속성에 근거하여 액세스 속성의 결정을 수행할 수도 있다. 따라서, 본 발명은 이와 같은 결정이 데이터 처리장치 내부에서 일어나는 경우에 한정되지 않는다.
또 다른 실시예에 따르면, 본 발명은,
일면에 따르면, 본 발명은, 데이터 처리장치로서,
데이터를 처리하는 처리수단과,
데이터를 기억하는 데이터 기억수단을 구비하고,
상기 처리수단은, 제 1 특권 레벨에서 제 1 소프트웨어를 실행하고, 상기 제 1 특권 레벨보다 높은 제 2 특권 레벨에서 제 2 소프트웨어를 실행하도록 구성되고,
상기 데이터 기억수단에 있는 데이터를 액세스하기 위한 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 제 1 소프트웨어에 근거하여 설정하는 적어도 한 개의 제1 속성과 상기 제 2 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 2 속성에 근거하여 상기 데이터 액세스 명령에 대한 적어도 한 개의 액세스 속성을 결정하도록 구성되고, 상기 적어도 한 개의 제 1 속성과 상기 적어도 한 개의 제 2 속성 각각은 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시하고,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 제 2 속성이 명시하는 소정의 종류의 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 없다는 것을 상기 적어도 한 개의 제 1 속성이 명시하더라도, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 명시하는 상기 적어도 한 개의 액세스 속성을 결정하도록 구성된 데이터 처리장치를 제공한다.
또 다른 실시예에 따르면, 본 발명은, 데이터를 처리하도록 구성된 처리회로와 데이터를 기억하도록 구성된 데이터 저장소를 구비하고, 상기 처리회로가 제 1 특권 레벨에서 제 1 소프트웨어를 실행하고 상기 제 1 특권 레벨보다 높은 제 2 특권 레벨에서 제 2 소프트웨어를 실행하도록 구성된, 데이터 처리장치에 대한 데이터 처리방법으로서,
상기 데이터 저장소에 있는 데이터를 액세스하기 위한 데이터 액세스 명령에 응답하여, 상기 제 1 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 1 속성과 상기 제 2 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 2 속성에 근거하여 상기 데이터 액세스 명령에 대한 적어도 한 개의 액세스 속성을 결정하는 단계를 포함하고, 상기 적어도 한 개의 제 1 속성과 상기 적어도 한 개의 제 2 속성 각각은 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시하고,
상기 데이터 처리방법은,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 제 2 속성이 명시하는 소정의 종류의 데이터 액세스 명령에 응답하여, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 없다는 것을 상기 적어도 한 개의 제 1 속성이 명시하더라도, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 명시하는 상기 적어도 한 개의 액세스 속성을 결정하는 단계를 더 포함하는 데이터 처리방법을 제공한다.
이하, 다음의 첨부도면을 참조하여 본 발명의 실시예를 설명한다.
도 1은 데이터 처리장치를 개략적으로 나타낸 것이다.
도 2는 서로 다른 특권 레벨들에서 동작하는 소프트웨어를 개략적으로 나타내 것이다.
도 3은 서로 다른 특권 레벨들에서 동작하는 각각의 소프트웨어에 의해 정의된 메모리 속성들의 일례를 개략적으로 나타낸 것이다.
도 4는 로드 다중 명령과 저장 다중 명령의 일례를 나타낸 것이다.
도 5는 인터럽트 불가능한 로드/저장 다중 명령이 실시간 시스템에서 인터럽트 처리시에 지연을 일으키는 일례를 나타낸 것이다.
도 6은 제 1 및 제 2 특권 레벨에 있는 소프트웨어에 의해 정의된 액세스 속성들이 결합하여 데이터 액세스를 위해 사용할 액세스 속성을 결정하는 방법을 나타낸 테이블이다.
도 7은 이와 같은 방식으로 액세스 속성을 결정하는 것이 어떻게 도 5에 도시된 높은 인터럽트 대기시간을 방지하는지에 대한 일례를 나타낸 것이다.
도 8은 소정의 종류의 데이터 액세스 명령에 대한 액세스 속성을 결정하는 방법을 나타낸 것이다.
도 1은 데이터 처리장치를 개략적으로 나타낸 것이다.
도 2는 서로 다른 특권 레벨들에서 동작하는 소프트웨어를 개략적으로 나타내 것이다.
도 3은 서로 다른 특권 레벨들에서 동작하는 각각의 소프트웨어에 의해 정의된 메모리 속성들의 일례를 개략적으로 나타낸 것이다.
도 4는 로드 다중 명령과 저장 다중 명령의 일례를 나타낸 것이다.
도 5는 인터럽트 불가능한 로드/저장 다중 명령이 실시간 시스템에서 인터럽트 처리시에 지연을 일으키는 일례를 나타낸 것이다.
도 6은 제 1 및 제 2 특권 레벨에 있는 소프트웨어에 의해 정의된 액세스 속성들이 결합하여 데이터 액세스를 위해 사용할 액세스 속성을 결정하는 방법을 나타낸 테이블이다.
도 7은 이와 같은 방식으로 액세스 속성을 결정하는 것이 어떻게 도 5에 도시된 높은 인터럽트 대기시간을 방지하는지에 대한 일례를 나타낸 것이다.
도 8은 소정의 종류의 데이터 액세스 명령에 대한 액세스 속성을 결정하는 방법을 나타낸 것이다.
도 1은 데이터를 처리하는 처리회로(4)와 데이터를 기억하는 메모리(데이터 저장소)(6)를 구비한 데이터 처리장치(2)를 개략적으로 나타낸 것이다. 처리회로는 처리회로(4)에 의해 처리할 값들을 기억하는 레지스터들(8)을 갖는다. 메모리(6)로부터 레지스터들(8)에 데이터가 로드되고 레지스터들(8)로부터 메모리(6)에 데이터가 기억될 수 있다. 메모리(6)로부터 프로세서(4)로 명령들이 페치될 수 있다. 메모리(6)에 있는 데이터 또는 명령보다 낮은 대기시간을 갖고 데이터 또는 명령을 기억하기 위해 데이터 캐시 또는 명령 캐시(도 1에는 미도시)가 설치되어도 된다.
도 2에 도시된 것과 같이, 처리회로(4)는 서로 다른 특권 레벨들 EL0, EL1, 띠2에서 실행되는 소프트웨어를 지원한다. 하이퍼바이저(10)는 제 2 특권 레벨 EL2에서 실행된다. 하이퍼바이저(10)는 EL2보다 낮은 특권 레벨인 제 1 특권 레벨 EL1에서 실행되는 다수의 게스트 운영체계(12)를 관리한다. 예를 들어, 각각의 운영체계(12)에는 다른 타임 슬롯이 할당되고, 이 타임 슬롯 동안에 처리회로(4)가 이 운영체계(12)를 실행한다. 각각의 운영체계(12)는 최저 특권 레벨인 기저 특권 레벨 EL0에서 실행되는 한 개 이상의 어플리케이션들(14)을 실행한다. 운영체계(12)는, 한 개 이상의 실시간 운영체계(RTOS)(12-0, 12-1)와 적어도 한 개의 비실시간("GUI 리치(rich))" 운영체계(12-2)를 포함한다. 실시간 운영체계(12-0, 12-1)는, 예를 들어, 안전을 위해 신속한 인터럽트 응답 처리가 중요한, 차량 내부의 브레이크 및 에어백 시스템을 제어하는 어플리케이션 등의 한 개 이상의 실시간 어플리케이션들(14-0, 14-1, 14-2)을 관리한다. GUI 리치 운영체계(12-2)는 Windows, iOS, Linux 등의 그래픽 사용자 인터페이스(GUI)를 지원하는 운영체계이다. GUI 리치 운영체계(12-2)는, 인터럽트가 신속하게 처리되는지 여부가 덜 중요한, 차량 내부의 스테레오 시스템을 제어하는 어플리케이션 등의 한 개 이상의 비실시간 어플리케이션(14-3)을 실행한다. 다른 시스템들은 도 2에 도시된 3 레벨보다 많거나 적은 특권 레벨("예외 레벨"로도 알려진다)을 가져도 된다.
다시 도 1을 참조하면, 데이터 처리장치(2)는, 제 1 특권 레벨 EL1에서 실행되는 운영체계들(12) 중에서 한 개에 의해 설정된 제 1 메모리 액세스 속성을 정의하는 데이터를 기억하는 제 1 메모리 보호 유닛(MPU)(20)을 갖는다. 처리회로(4)는 제 2 특권 레벨 EL2에 있는 하이퍼바이저(10)에 의해 설정된 메모리 액세스 속성을 정의하는 제 2 MPU(22)를 더 갖는다. 데이터 액세스 명령에 응답하여, 처리회로(4)는 이 명령에 의해 명시된 어드레스를 제 1 MPU(20) 및 제 2 MPU(22) 모두에게 제공하고, 이들 MPU는 이 어드레스에 대한 각각의 액세스 속성을 찾는다. MPU들(20, 22)은 액세스 속성에 근거하여 액세스가 행해질 수 있는지 결정하고, 액세스가 허용되지 않는 경우에는 결함(fault)을 기동한다. 예를 들어, 메모리(6)의 특정한 영역들은 특권이 없는 명령에 의해 액세스할 수 없는 특권을 갖는 것으로 지정되어도 된다. 속성들은, 액세스가 인터럽트될 수 잇는지 여부 등과 같이, 메모리(6)에 의해 액세스가 행해지는 방식에 영향을 미치는 다양한 프로퍼티들을 더 정의해도 된다.
속성은 캐시 정책 정보도 정의해도 된다. 판독 액세스에 대해, 캐시 정책 정보는 판독이 다음 사항에 해당하는지 명시한다:
· 동시 판독(read through): 필요한 값이 복사본을 캐시에 두지 않고 메모리로부터 직접 프로세서(4)의 레지스터들(8)로 판독된다. 또는
· 비동시 판독: 값이 메모리(6)에서 캐시로 판독된 후, 캐시에서 레지스터들(8)로 판독된다.
마찬가지로, 기록 액세스에 대해, 액세스가 다음과 같이 명시된다:
· 동시 기록: 캐시 적중(cache hit)시에, 값이 캐시와 메모리 모두에 기록된다.
· 후기록: 캐시 적중시에, 값이 캐시에 기록되고 이 값을 기억하는 캐시 위치가 더티(dirty)로 표시되지만, 다른 데이터 값을 기억하기 위해 이 캐시 위치가 재할당될 필요가 있고 더티 데이터 값이 메모리(6)에 기록될 때까지 이 값이 메모리(6)에 기록되지 않는다.
· 기록 할당: 캐시 적중시에, 필요한 데이터 값이 캐시 내부로 로드된다.
· 비기록 할당: 캐시 적중시에, 필요한 데이터 값이 메모리에서 수정되고 캐시 내부에 로드되지 않는다.
이것들은 메모리 액세스 속성에 의해 명시될 수 있는 프로퍼티들의 일부의 예에 지나지 않으며, 다른 많은 프로퍼티들이 존재할 수도 있다.
도 1의 예에서는, 프로세서(4)에 의해 제공된 어드레스가 물리 어드레스이며, 각각의 MPU(20, 22)는 이 메모리 어드레스에 대한 대응하는 액세스 속성을 참조한다. 그러나, 다른 예에서는, MPU(20, 22)가, 처리회로(4)에서 가상 어드레스를 수신하고 가상 어드레스를 물리 어드레스로 변환할 뿐 아니라 메모리 액세스 속성을 참조하는 메모리 관리 유닛(MMU)으로 교체된다. 서로 다른 가상-물리 어드레스 매핑이 운영체계(12)에 의해 제 1 MMU(20)에 정의되고 하이퍼바이저(10)에 의해 제 2 MMU(22)에 정의된다. 그 때문에, 일반적으로 MPU 또는 MMU는 데이터 액세스에 의해 명시된 메모리 어드레스에 근거하여 참조되는 데이터 액세스에 대한 액세스 속성을 정의하는 데이터를 포함하는 메모리 속성 유닛이어도 된다.
도 3에 도시된 것과 같이, 제 1 예외 레벨 EL1에서 동작하는 운영체계(12)와 제 2 예외 레벨 EL2에서 동작하는 하이퍼바이저(10)는 동일한 메모리 어드레스에 대해 모순되는 메모리 속성들을 정의한다. 예를 들어, 도 3의 좌측 부분에 도시된 것과 같이, 운영체계(12)는 메모리 어드레스 공간(30)의 서로 다른 영역들을 정규 메모리 영역(40) 또는 장치 종류 영역(500으로서 지정한다. 정규 영역의 메모리(40)를 목표로 하는 메모리 액세스 명령은 액세스 도중에 인터럽트되고 반복되거나 나중에 재개되는 한편, 장치 종류의 메모리 영역(50)을 목표로 하는 액세스 명령은 인터럽트 및 반복/재개될 수 없다. 또한, 정규 종류의 액세스는 그것의 원래의 프로그램 순서에 비해 다른 액세스에 대해 다른 순서로 처리될 수 있는 한편, 장치 종류의 액세스는 재배열될 수 없다. 도 3의 우측에 도시된 것과 같이, 제 2 특권 레벨 띠2에서 동작하는 하이퍼바이저에 의해 정의된 메모리 속성은 마찬가지로 어드레스 공간(30)의 정규 영역(40)과 장치 종류의 영역(50)을 정의한다. 그러나, 하이퍼바이저(10)에 의해 정의된 영역들은 운영체계(12)에 의해 정의된 영역들과 같지 않아도 된다. 예를 들어, 어드레스 공간(30)의 어떤 영역이 외부 장치에 매핑될 것으로 운영체계가 예측하기 때문에 이 영역이 운영체계(12)에 의해 장치 종류인 것으로 설정되지만, 하이퍼바이저(10)에 의해 관리된 가상화된 시스템에서는, 이와 같은 장치가 존재하지 않을 수도 있으므로, 하이퍼바이저(10)가 그 대신에 이와 같은 영역들 정규 영역으로 표시한다. 예를 들어, 도 3에 도시된 어드레스 55를 목표로 하는 데이터 액세스에 대해, 운영체계(12)는 이 액세스를 장치 종류로서 명시하는 한편, 하이퍼바이저(10)는 이 액세스를 정규 종류로서 명시한다.
도 4는 메모리 속성들의 이와 같은 차이가 중요할 수 있는 일부 명령의 예를 나타낸 것이다. 도 4는 복수의 값을 메모리(6)에서 레지스터들(8)에 로드하는 로드 다중 명령 LDM을 나타내고 있다. 로드 다중 명령은 레지스터들(8)에 로드할 제 1 값 A의 메모리(6) 내부의 어드레스를 표시하는 어드레스 #addr을 포함하는 어드레스 레지스터 r0을 명시한다. 로드 다중 명령은 데이터 값들을 로드하고자 하는 레지스터들을 식별하는 레지스터들 r1 내지 r12의 목록을 더 명시한다. 도 4에 도시된 것과 같이, 어드레스 #addr에 기억된 값 A가 레지스터 r1에 로드된 후, 나머지 레지스터들 r2 내지 r12 내부에 로드할 각각의 다음 값 B-L에 대해 어드레스가 증분된다. 마찬가지로, 저장 다중 명령 STM은 어드레스 #addr을 포함하는 레지스터 r0와 메모리에 기억할 데이터 값들 A-L을 제공하는 레지스터들 r1 내지 r12의 목록을 명시하고, 이때 어드레스 #addr은 제 1 값 A를 기억할 메모리 내부의 위치를 식별하고 그후 다음의 메모리 위치들을 액세스하기 위해 어드레스가 증분된다. 목록 내부의 레지스터들의 수는 실행되는 로드 또는 저장의 개수를 결정한다. 일반적으로, 로드/저장 다중 명령들은 레지스터당 한 개의 처리 사이클을 필요로 한다. 도 4에는 레지스터를 사용하여 어드레스 #addr을 명시하는 예가 도시되어 있지만, 다른 예에서는 어드레스가 명령 코딩시의 즉시값(immediate value)으로 명시될 수도 있다.
도 5는 로드 또는 저장 다중 명령이 운영체계(12)의 제어하에서 제 1 MPU(20)에 의해 장치 종류로서 표시될 때 발생할 수 있는 문제를 예시한 것이다. 도 5에 도시된 것과 같이, 각각의 운영체계(12)에 타임 슬롯이 할당되고, 각각의 운영체계(12)는 그것의 각각의 타임 슬롯 동안에 처리회로(4)에 의해 실행된다. 인터럽트들(60)이 주기적으로 발생되어 새로운 운영체계(12)로의 전환을 기동한다. 도 5에는 동일한 지속기간을 갖는 타임 슬롯들이 도시되어 있지만, 한 개의 운영체계(12)에 다른 운영체계보다 긴 타임 슬롯을 할당하는 것이 가능할 것이다.
실시간 운영체계들(12-0, 12-1)에 대해서는, 이 운영체계(12)로의 전환을 기동하는 인터럽트들(60)이 결정적인 시기에 일어나는 것이 중요하다. 도 5에 도시된 것과 같이, 이들 인터럽트들 중에서 한 개(60-1)가 발생하기 직전에 비실시간 운영체계(12-2)가 로드 다중 또는 저장 다중 명령과 마주친다. 명령이 장치 종류로 표시되면, 이 명령은 인터럽트될 수 없다. 도 4에 도시된 것과 같이 복수의 로드 또는 복수의 저장을 행하는 것은 다수의 처리 사이클을 필요로 할 수 있으므로, 로드 다중 또는 저장 다중 명령을 완료하는 것은 도 5에 도시된 것과 같이 이 연산이 실시간 운영체계 12-1과 관련된 타임 슬롯으로 넘치게 할 수 있다. 이 명령은 인터럽트될 수 없는 경우에는, 이것이 다음 운영체계 12-1로의 전환을 기동하는 인터럽트 60-1의 처리를 지연시키는데, 이것은 실시간 운영체계 12-1이 그것의 타임 슬롯의 개시시에 실시간의 중요 이벤트를 서비할 필요가 있으므로 문제가 될 수 있다.
전형적인 아키텍처에서는, 동일한 트랜잭션에 대해 복수의 층의 메모리 속성들이 정의될 때, 이들 속성이 일반적으로 합성되어 원래의 속성들 중에서 가장 제한적인 속성에 해당하는 합성 속성을 형성한다. 그 때문에, 한 개의 속성이 트랜잭션을 장치 종류로서 명시하고 다른 속성이 그것의 정류 종류로서 명시하는 경우에는, 일반적으로 이 트랜잭션이 장치 종류로서 표시될 것이다. 그러나, 이와 같은 가장 제한적인 장치 종류의 속성은 실시간 이벤트가 너무 늦게 서비스되도록 할 수도 있기 때문에, 실시간 시스템에서는, 이것이 도 5에 도시된 것과 같이 높은 인터럽트 대기시간의 문제를 일으킬 것이다.
이와 같은 문제를 해소하기 위해, 운영체계(12)의 제어하에서 제1 MPU(20)에 의해 정의된 제 1 속성과 하이퍼바이저(10)의 제어하에서 제 2 MPU(22)에 의해 정의된 제 2 속성이 도 6에 도시된 것과 같이 다른 방식으로 합성될 수 있다. 트랜잭션이 장치 종류이어야 한다고 제 2 MPU(22)가 결정한 경우에는, 제 1 MPU(20)에 의해 설정된 대응하는 제 1 속성의 상태에 무관하게, 전체 속성이 장치 종류로서 설정된다(도 6의 하단 행 참조). 또한, 제 1 및 제 2 MPU(20, 22) 모두가 트랜잭션을 정규 종류로 설정한 경우에는, 전체 속성도 정규 종류로 설정된다(도 6의 좌측 박스 참조).
그러나, 하이퍼바이저가 트랜잭션을 정규 종류로 지정하고, 운영체계가 트랜잭션을 장치 종료로 지정할 때(도 6의 상단 우측 박스), 처리회로에 의해 유지된 제어값(100)을 사용하여 이 트랜잭션에 대한 전체 메모리 액세스 속성을 결정한다. 제어값(100)은, 다양한 방식으로 유지되고, 레지스터들(8) 또는 메모리(6) 내부 등의 데이터 처리장치(2) 내부의 임의의 위치에 기억된다. 이와 달리, 도 1에 도시된 것과 같이 제어값(100)이 처리회로(4) 내부의 위치에 기억되어도 된다. 일 실시예에서, 처리회로(4)는 프로세서(4)의 다양한 프로퍼티들을 제어하는 다수의 제어 비트들을 포함하는 제어 레지스트를 갖고, 메모리 속성 제어값(100)이 이들 제어 비트들 중에서 한 개이어도 된다. 또한, 제 2 MPU(22)가 제어값(100)을 유지할 수도 있다.
제어값(100)은 하이퍼바이저가 정규 종류로서 명시하는 적어도 한 개의 특정한 종류의 데이터 액세스 명령에 대한 정규/장치 종류 속성의 설정을 제어한다. 제어값이 제 1 값(예를 들어, 1의 값)을 가지면, 트랜잭션이 정규인 것으로 표시되므로, 정규 종류의 하이퍼바이저(10) 설정이 운영체계(12)에 의해 설정된 장치 종류의 설정을 무효로 한다. 그렇지만, 트랜잭션의 나머지 프로퍼티들은 운영체계(12)에 의해 명시된 장치 상태에 따라 유지된다. 예를 들어, 트랜잭션이 나머지 트랜잭션들에 대해 그 자신의 원래의 순서로 처리되는 프로퍼티가 장치 트랜잭션들에 따라 유지되지만, 이 트랜잭션은 정규 트랜잭션들에 따라 인터럽트가능하다. 이때, 제어값이 1일 때, 운영체계(12)에 의해 어떤 속성이 명시되었는지에 무관하게, 전체 속성이 하이퍼바이저에 의해 명시된 속성을 설정되게 된다.
한편, 제어값(100)이 제 2 값(예를 들어, 0)을 갖는 경우에는, 하이퍼바이저가 이 액세스를 제 2 MPU(22)를 사용하여 정규 종류로서 명시하였더라도, 이 트랜잭션이 제 1 MPU(20)에 의해 설정된 제 1 속성에 따라 장치 종류로서 표시될 수 있다. 이것은 데이터 액세스가 여전히 인터럽트 불가능한 것으로 처리되게 된다는 것을 의미한다. 제어값(100)이 0이면, 이 데이터 액세스에 대한 전체 액세스 속성이 제 1 및 제 2 MPU(20, 22)에 의해 설정된 속성들 중에서 가장 제한적인 속성에 따라 설정되게 되므로, 하이퍼바이저(10) 또는 운영체계(12)가 장치 종류 액세스를 정의하는 경우에는, 전체 속성도 장치 종류가 된다.
이 제어값(100)은 예를 들어 하이퍼바이저(10) 등의 소프트웨어에 의해 설정될 수 있다. 이와 같은 구성은 하이퍼바이저(10)가 운영체계(12)에 의한 장치 종류의 표시가 무효로 될 수 있는지 여부를 제어할 수 있도록 한다. 실시간 운영체계의 개시를 기동하는 인터럽트(60) 등의 실시간의 중요 이벤트가 발생할 것이 예측되는 경우에는, 제1 MPU(20)가 트랜잭션을 장치 종류로 정의하더라도, 이 트랜잭션이 정규인 것으로 여전히 고려되어 인터럽트되도록, 제어값이 1로 설정될 수 있다. 따라서, 도 7에 도시된 것과 같이, 로드 또는 저장 다중 명령이 비실시간 운영체계(12-2)에 의해 개시되더라도, 인터럽트(60-1)가 발생하면, 로드 저장 다중 명령이 인터럽트되어, 운영체계 12-1이 실시간 이벤트들 처리할 수 있도록 한다. 그후, 비실시간 운영체계(12-2)가 프로세서(4) 상에서 그것의 다음의 슬롯을 수신할 때 로드 또는 저장 다중 명령이 다시 시작되거나 재개될 수 있다. 한편, 실시간 중요 이벤트가 예측되지 않는 경우에는, 하이퍼바이저가 제어값을 0으로 설정하여, 운영체계(12)가 트랜잭션을 장치 종류로 지정하더라도, 이 트랜잭션이 장치 종류인 것으로 처리되어 인터럽트될 수 없다는 것을 표시한다.
도 6에 도시된 액세스 속성의 결정은 제 2 MPU(22)에 의해 행해져도 되는데, 이 제 2 MPU는 제 1 MPU(20)로부터 제 1 속성을 수신하고 그것을 그 자신의 참조된 제 2 속성과 합성하여 전체 속성을 형성해도 된다. 이와 달리, 제 1 및 제 2 속성들이 메모리(6)에 주어지고, 이 메모리는 액세스가 메모리(6)에 의해 처리되는 방식을 결정하는 합성 속성을 결정하는 제어 로직을 가져도 된다.
도 6에서는, 1의 제어값이 하이퍼바이저의 "정규" 속성이 운영체계의 "장치" 속성을 무효로 해야 한다는 것을 나타내고, 0의 값이 운영체계의 "장치" 속성이 사용되어 한다는 것을 표시하는 예가 도시되어 있지만, 다른 예에서는, 반대의 매핑이 사용되어, 0과 1의 의미가 바뀌어도 된다. 도 6에 도시된 기술은, 로드 다중 명령이나 저장 다중 명령, 또는 인터럽트가 불가능한 경우에 긴 대기시간을 발생할 것으로 예측된 다른 액세스 명령들 등의 소정의 종류의 데이터 액세스 명령에 대해서만 사용되어도 된다. 다른 실시예에서는, 이 기술이 모든 데이터 액세스 명령에 대해 사용될 수도 있다. 도 6에 도시된 기술이 사용되지 않는 명령에 대해서는, 제 1 및 제 2 MPU(20, 22)에 의해 명시된 각각의 속성들 중에서 가장 제한적인 속성이 취해진다(제어값(100)이 도 6에 도시된 것과 같이 0의 값을 갖는 경우와 유사하다).
또한, 제어값(100)이 주어지지 않고 본 발명을 구현하는 것이 가능하다. 이와 같은 경우에, 소정 종류의 명령에 대해, MPU 22가 제 1 MPU(22)를 항상 무효로 하여, 하이퍼바이저(10)가 트랜잭션을 "정규" 종류인 것으로 지정하는 경우에, 운영체계(12)가 그것을 "장치" 종류로 지정하더라도, 이 트랜잭션이 인터럽트될 수도 있다.
또한, 도 6에 도시된 기술은, 명령이 기저 특권 레벨 EL0 또는 제 1 특권 레벨 EL1에서 실행될 때 소정 종류의 데이터 액세스 명령에 대해서만 사용되어도 된다. 하이퍼바이저 레벨 띠2에 의해 실행된 데이터 액세스 명령은 이 기술을 적용하지 않아도 되고, 그 대신에, 동일한 어드레스에 대해 제 1 MPU(20)에 의해 설정된 속성에 무관하게, 제 2 MPU(22)에 의해 설정된 허가에 근거하여 장치 종류 또는 정규 종류 명령인 것으로 처리되어도 된다(도 6에 도시된 것과 같이 제어값이 1인 경우와 유사하다).
일부 시스템에서는, 이 기술이 더욱 일반적으로 적용되어, 더 낮은 특권 레벨에서 실행되는 소정 종류의 데이터 액세스 명령이 인터럽트될 수 있는지 아닌지를 제어하기 위해, 더 높은 특권 레벨에서 실행되는 소프트웨어에 의해 설정되는 제어 비트(100)를 제공해도 된다. 즉, 더 높은 특권 레벨과 더 낮은 특권 레벨 소프트웨어가 각각 특권 레벨 EL2, EL1에서 실행되는 소프트웨어일 필요는 없으며, 그 대신에 특권 레벨들의 계층 내부의 임의의 2개의 특권 레벨에서 동작해도 된다.
도 8은 데이터 액세스 명령에 대한 메모리 액세스 속성을 결정하는 방법의 일례를 개략적으로 나타낸 것이다. 스텝 100에서, 프로세서(4)가 소정의 데이터 액세스(본 실시예에서는, 기저 특권 레벨 EL 또는 제 1 특권 레벨 EL1에서 실행되는 소프트웨어로부터의 로드 다중 명령 또는 저장 다중 명령)를 실행할 예정인지 여부를 판정한다. 실행할 예정이 아닌 경우에는, 데이터 액세스 명령에 대한 메모리 액세스 속성이 종래기술에서 알려진 것과 같은 다른 방식으로 결정된다. 한편, 로드 또는 저장 다중 명령이 특권 레벨 EL0 또는 EL1에서 마주친 경우에는, 스텝 102로 처리를 진행하여, 제 2 MPU(22)가 이 명령에 대한 제 2 속성을 판정한다. 제 2 속성이 장치 종류인 경우에는, 스텝 104에서 이 명령에 대한 전체 액세스 속성이 장치 종류로서 결정되고, 메모리(6)에 명령이 내려진다. 따라서, 데이터 액세스가 인터럽트되거나 재배열될 수 없으므로, 프로세서(4)는 다른 액세스를 실행하기 전에 로드 또는 저장 다중 명령의 완료에 전념한다.
한편, 스텝 102에서, 데이터 액세스가 정규 종류의 액세스인 것으로 제 2 MPU가 판정하면, 스텝 106에서 제 1 MPU(20)가 이 데이터 액세스 명령에 대한 속성을 판정한다. 실제로는, 스텝 102 및 106이 각각의 MPU(20, 22)에 의해 병렬로 행해지거나, 스텝 102 이전에 스텝 106이 행해져도 된다. 제 1 MPU(20)에 의해 스텝 106에서 결정된 제 1 속성이 정규인 경우(즉, 모든 MPU들(20, 22)이 액세스를 정규인 것으로 정의한 경우), 스텝 108에서 이 명령에 대해 전체 액세스 속성(100)이 정규인 것으로 결정된다. 따라서, 필요한 경우에 다중 로드 또는 저장 명령이 인터럽트될 수 있다.
한편, 스텝 106에서 속성이 장치 종류인 것으로 결정되면(즉, 하이퍼바이저(10)가 트랜잭션을 정규인 것으로 결정하고 운영체계가 그것을 장치인 것으로 정의하면), 스텝 110에서, 시스템이 제어 비트(100)를 검사한다. 제어 비트가 제 1 값(본 실시예에서는 1)을 갖는 경우에는, 스텝 112에서 전체 속성이 정규인 것으로 설정되어 명령이 인터럽트 불가능한 것으로 표시한다. 따라서, 하이퍼바이저는 운영체계(12)에 의해 설정된 장치 종류 표시를 무효로 한다. 그러나, 운영체계(12)에 의해 설정된 장치 종류 표시와 관련된 트랜잭션의 적어도 한 개의 다른 프로퍼티가 유지되어도 된다. 예를 들어, 트랜잭션이 다른 트랜잭션이 비해 재배열되지 않으므로, 트랜잭션들이 그들의 원래의 순서로 메모리 버스 상에 나타난다는 사실이 유지되어도 된다. 또한, 운영체계(12)에 따라 제 1 MPU(20)에 의해 정의된 캐시 판독/기록 정책 정보도 유지되어도 된다. 한편, 제어 비트(110)가 제 2 값(예를 들어, 0)을 갖는 경우에는, 스텝 114에서 이 명령에 대한 속성이 장치 종류로 설정되므로, 이 명령이 메모리(6)에 내려질 때 인터럽트될 수 없다. 이와 같은 경우에는, 제 1 MPU(20)에 의해 제공된 더욱 제한적인 장치 표시가 취해진다.
특정한 실시예들을 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며 본 발명의 보호범위 내에서 다수의 변형 및 추가가 행해질 수 있다는 것은 자명하다. 예를 들어, 본 발명의 보호범위를 벗어나지 않으면서, 독립항의 특징과 이하의 종속항들의 특징의 다양한 조합이 이루어질 수도 있다.
Claims (16)
- 데이터 처리장치로서,
데이터를 처리하도록 구성된 처리회로와,
데이터를 기억하도록 구성된 데이터 저장소를 구비하고,
상기 처리회로는, 제 1 특권 레벨에서 제 1 소프트웨어를 실행하고, 상기 제 1 특권 레벨보다 높은 제 2 특권 레벨에서 제 2 소프트웨어를 실행하도록 구성되고,
상기 데이터 저장소에 있는 데이터를 액세스하기 위한 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 제 1 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 1 속성과 상기 제 2 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 2 속성에 근거하여 상기 데이터 액세스 명령에 대한 적어도 한 개의 액세스 속성을 결정하도록 구성되고, 상기 적어도 한 개의 제 1 속성과 상기 적어도 한 개의 제 2 속성 각각은 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시하고,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 제 2 속성이 명시하는 소정의 종류의 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 없다는 것을 상기 적어도 한 개의 제 1 속성이 명시하더라도, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 명시하는 상기 적어도 한 개의 액세스 속성을 결정하도록 구성된 데이터 처리장치.
- 제 1항에 있어서,
상기 소정의 종류의 데이터 액세스 명령은 복수의 처리 사이클에 걸쳐 실행될 데이터 액세스 명령을 포함하는 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 소정의 종류의 데이터 액세스 명령은 상기 제 1 소프트웨어의 명령 또는 상기 제 1 소프트웨어의 제어하에서 실행되는 또 다른 소프트웨어의 명령을 포함하는 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 처리회로는 복수의 운영체계를 지원하고, 상기 제 1 소프트웨어는 상기 복수의 운영체계 중에서 한 개를 포함하고, 상기 제 2 소프트웨어는 상기 복수의 운영체계를 관리하는 하이퍼바이저를 포함하는 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 소정의 종류의 데이터 액세스 명령은, 상기 데이터 저장소로부터 상기 데이터 처리장치의 복수의 레지스터에 데이터를 로드하는 로드 다중 명령, 또는 상기 데이터 처리장치의 복수의 레지스터로부터 상기 데이터 저장소에 데이터를 기억하는 저장 다중 명령을 포함하는 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 데이터 처리장치는 제어값을 유지하도록 구성되고,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 제 2 속성이 명시하는 상기 소정의 종류의 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는 상기 제어값에 근거하여 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 액세스 속성이 명시하는지 여부를 판정하도록 구성된 데이터 처리장치.
- 제 6항에 있어서,
상기 소정의 종류의 데이터 액세스 명령에 대해,
상기 제어값이 제 1 값을 갖는 경우에는, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 없다는 것을 상기 적어도 한 개의 제 1 속성이 명시하더라도, 상기 데이터 처리장치가 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다고 명시하는 상기 적어도 한 개의 액세스 속성을 결정하도록 구성되고,
상기 제어값이 제 2 값을 갖는 경우에, 상기 데이터 처리장치는, 상기 적어도 한 개의 제 1 속성에 근거하여, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는 것으로 상기 적어도 한 개의 액세스 속성이 명시하는지 여부를 판정하도록 구성된 데이터 처리장치.
- 제 6항에 있어서,
상기 처리회로는 상기 제 2 소프트웨어에 응답하여 상기 제어값을 설정하도록 구성된 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 없는 것으로 상기 적어도 한 개의 제 1 속성이 명시할 때, 상기 데이터 처리장치가 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는 것으로 명시하는 상기 적어도 한 개의 액세스 속성을 결정하는 경우, 상기 데이터 처리장치는 상기 적어도 한 개의 제 1 속성에 근거하여 결정된 상기 데이터 액세스 명령의 적어도 한 개의 다른 프로퍼티를 명시하는 상기 적어도 한 개의 액세스 속성을 결정하도록 구성된 데이터 처리장치.
- 제 9항에 있어서,
상기 적어도 한 개의 다른 프로퍼티는,
(i) 상기 소정의 종류의 데이터 액세스 명령의 실행이 다른 데이터 액세스 명령들의 실행에 대해 재배열될 수 있는지 여부와,
(ii) 상기 데이터 액세스 명령에 응답하여 액세스된 데이터가 캐시에 기억되는 방식을 제어하는 캐시 정책 정보 중에서
적어도 한 개를 포함하는 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 적어도 한 개의 액세스 속성, 상기 적어도 한 개의 제 1 속성 및 상기 적어도 한 개의 제 2 속성 각각은, 상기 데이터 액세스 명령이 인터럽트될 수 있는 정규 종류의 데이터 액세스 명령인지 또는 인터럽트될 수 없는 장치 종류의 데이터 액세스 명령인지 식별하는 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 데이터 액세스 명령은 상기 데이터 저장소 내부의 위치의 어드레스를 명시하고, 상기 데이터 처리장치는 상기 어드레스의 적어도 일부에 근거하여 상기 적어도 한 개의 제 1 속성과 상기 적어도 한 개의 제 2 속성을 결정하도록 구성된 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 적어도 한 개의 제 1 속성을 정의하는 제 1 데이터를 기억하도록 구성된 제 1 메모리 속성 유닛을 구비하고, 상기 처리회로는 상기 제 1 소프트웨어에 응답하여 상기 제 1 데이터를 설정하도록 구성된 데이터 처리장치.
- 제 1항 또는 제 2항에 있어서,
상기 적어도 한 개의 제 2 속성을 정의하는 제 2 데이터를 기억하도록 구성된 제 2 메모리 속성 유닛을 구비하고, 상기 처리회로는 상기 제 2 소프트웨어에 응답하여 상기 제 2 데이터를 설정하도록 구성된 데이터 처리장치.
- 데이터 처리장치로서,
데이터를 처리하는 처리수단과,
데이터를 기억하는 데이터 기억수단을 구비하고,
상기 처리수단은, 제 1 특권 레벨에서 제 1 소프트웨어를 실행하고, 상기 제 1 특권 레벨보다 높은 제 2 특권 레벨에서 제 2 소프트웨어를 실행하도록 구성되고,
상기 데이터 기억수단에 있는 데이터를 액세스하기 위한 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 제 1 소프트웨어에 근거하여 설정하는 적어도 한 개의 제1 속성과 상기 제 2 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 2 속성에 근거하여 상기 데이터 액세스 명령에 대한 적어도 한 개의 액세스 속성을 결정하도록 구성되고, 상기 적어도 한 개의 제 1 속성과 상기 적어도 한 개의 제 2 속성 각각은 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시하고,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 제 2 속성이 명시하는 소정의 종류의 데이터 액세스 명령에 응답하여, 상기 데이터 처리장치는, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 없다는 것을 상기 적어도 한 개의 제 1 속성이 명시하더라도, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 명시하는 상기 적어도 한 개의 액세스 속성을 결정하도록 구성된 데이터 처리장치.
- 데이터를 처리하도록 구성된 처리회로와 데이터를 기억하도록 구성된 데이터 저장소를 구비하고, 상기 처리회로가 제 1 특권 레벨에서 제 1 소프트웨어를 실행하고 상기 제 1 특권 레벨보다 높은 제 2 특권 레벨에서 제 2 소프트웨어를 실행하도록 구성된, 데이터 처리장치에 대한 데이터 처리방법으로서,
상기 데이터 저장소에 있는 데이터를 액세스하기 위한 데이터 액세스 명령에 응답하여, 상기 제 1 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 1 속성과 상기 제 2 소프트웨어에 근거하여 설정하는 적어도 한 개의 제 2 속성에 근거하여 상기 데이터 액세스 명령에 대한 적어도 한 개의 액세스 속성을 결정하는 단계를 포함하고, 상기 적어도 한 개의 제 1 속성과 상기 적어도 한 개의 제 2 속성 각각은 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있는지 여부를 명시하고,
상기 데이터 처리방법은,
상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 상기 적어도 한 개의 제 2 속성이 명시하는 소정의 종류의 데이터 액세스 명령에 응답하여, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 없다는 것을 상기 적어도 한 개의 제 1 속성이 명시하더라도, 상기 데이터 액세스 명령의 실행이 인터럽트될 수 있다는 것을 명시하는 상기 적어도 한 개의 액세스 속성을 결정하는 단계를 더 포함하는 데이터 처리방법.
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 |
---|---|
KR20160045735A KR20160045735A (ko) | 2016-04-27 |
KR102269912B1 true KR102269912B1 (ko) | 2021-06-28 |
Family
ID=49355838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167005602A KR102269912B1 (ko) | 2013-08-23 | 2014-07-15 | 데이터 액세스를 위한 액세스 속성의 처리 |
Country Status (10)
Country | Link |
---|---|
US (2) | US10354092B2 (ko) |
EP (1) | EP3036622B1 (ko) |
JP (1) | JP6511446B2 (ko) |
KR (1) | KR102269912B1 (ko) |
CN (1) | CN105453029B (ko) |
BR (1) | BR112016002977B1 (ko) |
GB (1) | GB2517493A (ko) |
IL (1) | IL243889B (ko) |
TW (1) | TWI630554B (ko) |
WO (1) | WO2015025129A1 (ko) |
Families Citing this family (12)
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 |
GB2564400B (en) * | 2017-07-06 | 2020-11-25 | Advanced Risc Mach Ltd | Graphics processing |
EP3726390B1 (en) * | 2018-02-02 | 2024-04-24 | Huawei Technologies Co., Ltd. | Method and device for protecting kernel integrity |
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 |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2392998A (en) | 2002-09-16 | 2004-03-17 | Advanced Risc Mach Ltd | Handling interrupts during multiple access program instructions |
US20040054831A1 (en) | 2000-12-01 | 2004-03-18 | Rikard Johansson | Method and computer device with different criticality |
US20060031838A1 (en) | 2004-08-06 | 2006-02-09 | Rabih Chrabieh | Method and apparatus for implementing priority management of computer operations |
US20080046621A1 (en) | 2004-09-29 | 2008-02-21 | Naoto Okino | Information Processing Apparatus, Interrupt Process Control Method, and Computer Program |
Family Cites Families (45)
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 |
FR2775370B1 (fr) * | 1998-02-20 | 2001-10-19 | Sgs Thomson Microelectronics | Procede de gestion d'interruptions dans un microprocesseur |
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 |
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 |
KR101920980B1 (ko) * | 2014-03-19 | 2018-11-21 | 인텔 코포레이션 | 멀티-운영 체제 디바이스들에 대한 액세스 격리 |
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 |
-
2013
- 2013-08-23 GB GB1315108.9A patent/GB2517493A/en not_active Withdrawn
-
2014
- 2014-07-15 EP EP14742314.9A patent/EP3036622B1/en active Active
- 2014-07-15 US US14/912,300 patent/US10354092B2/en active Active
- 2014-07-15 KR KR1020167005602A patent/KR102269912B1/ko active IP Right Grant
- 2014-07-15 WO PCT/GB2014/052154 patent/WO2015025129A1/en active Application Filing
- 2014-07-15 JP JP2016535521A patent/JP6511446B2/ja active Active
- 2014-07-15 BR BR112016002977-1A patent/BR112016002977B1/pt active IP Right Grant
- 2014-07-15 CN CN201480045561.1A patent/CN105453029B/zh active Active
- 2014-08-06 TW TW103126934A patent/TWI630554B/zh active
-
2016
- 2016-02-01 IL IL243889A patent/IL243889B/en active IP Right Grant
-
2019
- 2019-06-06 US US16/433,296 patent/US11055440B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040054831A1 (en) | 2000-12-01 | 2004-03-18 | Rikard Johansson | Method and computer device with different criticality |
GB2392998A (en) | 2002-09-16 | 2004-03-17 | Advanced Risc Mach Ltd | Handling interrupts during multiple access program instructions |
US20060031838A1 (en) | 2004-08-06 | 2006-02-09 | Rabih Chrabieh | Method and apparatus for implementing priority management of computer operations |
US20080046621A1 (en) | 2004-09-29 | 2008-02-21 | Naoto Okino | Information Processing Apparatus, Interrupt Process Control Method, and Computer Program |
Also Published As
Publication number | Publication date |
---|---|
TW201514857A (zh) | 2015-04-16 |
JP6511446B2 (ja) | 2019-05-15 |
WO2015025129A1 (en) | 2015-02-26 |
US10354092B2 (en) | 2019-07-16 |
JP2016532205A (ja) | 2016-10-13 |
GB201315108D0 (en) | 2013-10-09 |
EP3036622B1 (en) | 2018-03-07 |
US20190286831A1 (en) | 2019-09-19 |
EP3036622A1 (en) | 2016-06-29 |
IL243889B (en) | 2019-05-30 |
IL243889A0 (en) | 2016-04-21 |
KR20160045735A (ko) | 2016-04-27 |
BR112016002977A2 (ko) | 2017-08-01 |
US20160210465A1 (en) | 2016-07-21 |
CN105453029B (zh) | 2018-11-09 |
CN105453029A (zh) | 2016-03-30 |
BR112016002977B1 (pt) | 2022-06-21 |
US11055440B2 (en) | 2021-07-06 |
GB2517493A (en) | 2015-02-25 |
TWI630554B (zh) | 2018-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102269912B1 (ko) | 데이터 액세스를 위한 액세스 속성의 처리 | |
JP7245779B2 (ja) | Tlbまたはキャッシュ割り当ての分割 | |
JP7065099B2 (ja) | メモリシステムリソースの分割または性能監視 | |
EP2954419B1 (en) | Virtualisation supporting guest operating systems using memory protection units | |
JP7265478B2 (ja) | メモリ分割 | |
JP7065098B2 (ja) | メモリシステムリソースの分割または性能監視 | |
JP6158952B2 (ja) | データ処理装置のメモリ・アクセス動作の操作 | |
JP5914145B2 (ja) | メモリ保護回路、処理装置、およびメモリ保護方法 | |
JP7128822B2 (ja) | メモリシステムリソースの分割または性能監視 | |
US10248418B2 (en) | Cleared memory indicator | |
KR20210034027A (ko) | 메모리 시스템에 저장된 메모리 보호 테이블을 사용하는 메모리 보호 유닛 | |
JP2022547545A (ja) | ページテーブルウォークメモリトランザクションのためのパーティション識別子 | |
US11237985B2 (en) | Controlling allocation of entries in a partitioned cache | |
US6895583B1 (en) | Task control block for a computing environment | |
TW202246989A (zh) | 映射分區識別符 | |
US11734011B1 (en) | Context partitioning of branch prediction structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |