KR20180072723A - 메모리 액세스 명령 - Google Patents
메모리 액세스 명령 Download PDFInfo
- Publication number
- KR20180072723A KR20180072723A KR1020187013380A KR20187013380A KR20180072723A KR 20180072723 A KR20180072723 A KR 20180072723A KR 1020187013380 A KR1020187013380 A KR 1020187013380A KR 20187013380 A KR20187013380 A KR 20187013380A KR 20180072723 A KR20180072723 A KR 20180072723A
- Authority
- KR
- South Korea
- Prior art keywords
- memory access
- memory
- protected
- protected memory
- less
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 287
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims 1
- 238000009434 installation Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 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/1416—Protection 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/1425—Protection 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/1441—Protection 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- 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
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (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)은 보호된 메모리 액세스 명령(LDR/STR) 및 덜 보호된 메모리 액세스 명령(LDNPR/STNPR)을 디코드하여 로드 스토어 유닛(120을 제어하기 위한 제어신호를 발생하는 명령 디코더(10)를 구비한다. 덜 보호된 메모리 액세스 명령은 보호된 메모리 액세스 명령보다 덜 제한적인 메모리 액세스 조건과 관련된다. 일례로서, 덜 보호된 메모리 액세스 명령은 공유 메모리 영역(26, 28)을 액세스하기 위해 사용되는 한편, 보호된 메모리 액세스 명령은 이와 같은 공유 영역을 액세스하기 위해 사용되지 않는다. 역으로, 덜 보호된 메모리 액세스 명령은 전용 메모리 영역(30, 32, 34)을 액세스하는데 사용되지 않는다.
Description
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 특히, 본 발명은 데이터 처리 시스템 내부의 메모리 액세스 명령들과 이들 메모리 액세스 명령들과 관련된 액세스 조건에 관한 것이다.
디코드되었을 때 메모리와 프로세서 코어 사이에서 데이터 로드 또는 데이터 스토어 등의 메모리 액세스 동작을 행하는 역할을 하는 메모리 액세스 명령을 데이터 처리 시스템에 설치하는 것이 알려져 있다. 이와 같은 시스템 내부에서 메모리 액세스 조건을 관리하기 위해, 메모리 액세스를 제어하는데 사용되는 허가 데이터를 사용하여 프로그래밍되는 메모리 관리 유닛 또는 메모리 보호 유닛 등의 하드웨어를 설치하는 것이 알려져 있으며, 예를 들어, 특정한 메모리 어드레스 또는 메모리 어드레스들의 범위가 판독 전용, 판독/기록, 특권 액세스 전용 등으로 표기된다.
본 발명의 적어도 일부 실시예는,
프로그램 명령에 의해 지정된 처리 동작을 행하는 처리회로와,
메모리 액세스 명령을 디코드하여 상기 처리회로가 메모리 액세스 동작을 행하도록 제어하는 제어신호를 발생하는 디코더를 구비하고,
상기 메모리 액세스 명령은,
보호된 메모리 액세스 동작에 대응하는 보호된 메모리 액세스 명령과,
덜 보호된(less-protected) 메모리 액세스 동작에 대응하는 덜 보호된 메모리 액세스 명령을 지정하는 각각의 인코딩을 갖고,
상기 덜 보호된 메모리 액세스 동작은 상기 보호된 메모리 액세스 동작보다 덜 제한적인 메모리 액세스 조건과 관련되는 데이터 처리장치를 제공한다.
본 발명의 적어도 일부 실시예는,
프로그램 명령에 의해 지정된 처리 동작을 행하는 처리수단과,
메모리 액세스 명령을 디코드하여 상기 처리수단이 메모리 액세스 동작을 행하도록 제어하는 제어신호를 발생하는 디코더수단을 구비하고,
상기 메모리 액세스 명령은,
보호된 메모리 액세스 동작에 대응하는 보호된 메모리 액세스 명령과,
덜 보호된 메모리 액세스 동작에 대응하는 덜 보호된 메모리 액세스 명령을 지정하는 각각의 인코딩을 갖고,
상기 덜 보호된 메모리 액세스 동작은 상기 보호된 메모리 액세스 동작보다 덜 제한적인 메모리 액세스 조건과 관련되는 데이터 처리장치를 제공한다.
본 발명의 적어도 일부 실시예는,
메모리 액세스 명령을 디코드하여 처리회로가 메모리 액세스 동작을 행하도록 제어하는 제어신호를 발생하는 단계를 포함하고,
상기 메모리 액세스 명령은,
보호된 메모리 액세스 동작에 대응하는 보호된 메모리 액세스 명령과,
덜 보호된 메모리 액세스 동작에 대응하는 덜 보호된 메모리 액세스 명령을 지정하는 각각의 인코딩을 갖고,
상기 덜 보호된 메모리 액세스 동작은 상기 보호된 메모리 액세스 동작보다 덜 제한적인 메모리 액세스 조건과 관련되는 데이터 처리방법을 제공한다.
이하, 다음의 첨부도면을 참조하여 실시예를 설명한다.
도 1은 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는 보호된 메모리 액세스 명령과 덜 보호된 메모리 액세스 명령을 개략적으로 나타낸 것이다.
도 3은 도 2의 메모리 액세스 명령에 대한 명령 인코딩을 개략적으로 나타낸 것이다.
도 4는 공유/전용 플래그를 포함하는 메모리 관리 유닛 페이지 엔트리를 개략적으로 나타낸 것이다.
도 5는 메모리 액세스 처리를 개략적으로 나타낸 흐름도이다.
도 6은 메모리의 영역들로 데이터를 암호화하는 암호화 회로를 포함하는 또 다른 실시예를 개략적으로 나타낸 것이다.
도 7은 서로 다른 예외 레벨에서 실행되는 특권화된 프로그램과 덜 특권화된 프로그램의 계층구조를 개략적으로 나타낸 것이다.
도 8은 메모리 시스템 계층 내의 복수의 층과 암호화 회로를 포함하는 데이터 처리 시스템의 또 다른 실시예를 개략적으로 나타낸 것이다.
도 1은 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는 보호된 메모리 액세스 명령과 덜 보호된 메모리 액세스 명령을 개략적으로 나타낸 것이다.
도 3은 도 2의 메모리 액세스 명령에 대한 명령 인코딩을 개략적으로 나타낸 것이다.
도 4는 공유/전용 플래그를 포함하는 메모리 관리 유닛 페이지 엔트리를 개략적으로 나타낸 것이다.
도 5는 메모리 액세스 처리를 개략적으로 나타낸 흐름도이다.
도 6은 메모리의 영역들로 데이터를 암호화하는 암호화 회로를 포함하는 또 다른 실시예를 개략적으로 나타낸 것이다.
도 7은 서로 다른 예외 레벨에서 실행되는 특권화된 프로그램과 덜 특권화된 프로그램의 계층구조를 개략적으로 나타낸 것이다.
도 8은 메모리 시스템 계층 내의 복수의 층과 암호화 회로를 포함하는 데이터 처리 시스템의 또 다른 실시예를 개략적으로 나타낸 것이다.
도 1은 프로세서(4)와 메모리(6)를 포함하는 데이터 처리 시스템(2)을 개략적으로 나타낸 것이다. 프로세서 코어(4)는 명령 페치 유닛(8), 디코더(10), 로드 스토어 유닛(12), 메모리 관리 유닛(14), 레지스터 뱅크(16)와, 승산기(18), 시프터(20) 및 가산기(22)를 포함하는 산술 처리회로를 구비한다. 동작시에, 명령 페치 유닛(8)은 메모리(6)에서 프로그램 명령을 페치하여 이것을 디코더(10)에 전달한다. 디코더(10)는 프로그램 명령을 디코드하여 제어신호를 발생하며, 이 제어신호는 그후에 로드 스토어 유닛(12) 및 산술 처리회로들(18, 20, 22) 등의 처리회로의 다른 구성요소에 의해 행해지는 처리 연산을 제어한다.
레지스터 뱅크(16) 내부의 레지스터와 메모리(6) 내부의 메모리 어드레스 사이에서의 로드 명령 및 스토어 명령으로부터 발생된 메모리 액세스 동작은 로드 스토어 유닛(12)에 의해 행해진다. 디코더(10)에 의해 발생된 제어신호는 로드 스토어 유닛(12)을 제어하여 디코드된 메모리 액세스 명령에 의해 지정된 메모리 액세스 동작을 행한다. 메모리 관리 유닛(14)은 메모리(6) 내부에 기억된 페이지 테이블 데이터(24)를 사용하여 메모리 내부의 메모리 어드레스(또는 메모리 페이지 등의 메모리 어드레스들의 영역)와 관련된 액세스 조건을 실시한다. 이들 메모리 액세스 조건은, 특정한 메모리 어드레스가 판독하기 위해 액세스 가능하거나, 기록하기 위해 액세스 불가능하거나, 캐시에 기억가능하거나, 특정한 특권 레벨(특정한 예외 레벨)에게만 액세스 가능하거나, 또는 다른 속성인 것을 포함한다.
메모리(6)는 본 실시예에서 나타낸 것과 같이 복수의 영역 내부에 데이터를 기억한다. 이들 영역은 공유 영역 26, 28과 전용 영역 30, 32, 34를 포함한다. 공유 영역 26, 28은 프로그램들 사이에서 공유되므로, 프로그램들 사이에서 데이터의 공유/교환을 용이하게 한다. 전용 영역 30, 32, 34는 특정한 프로그램 전용이다. 전용 영역 30, 32, 34에 대한 전용 액세스를 갖는 프로그램보다 더 높은 특권 레벨을 갖는 프로그램들에 대해 이와 같은 프라이버시가 실시된다. 따라서, 어플리케이션 프로그램은, 이 어플리케이션 프로그램이 액세스 가능하지만, 위에 놓이는 운용체계 또는 더 낮은 특권 레벨(예외 레벨)에 있는 프로그램에 대해 실행 환경을 제공하고 있는 하이퍼바이저 프로그램 등과 같이, 더 높은 특권 레벨(예외 레벨)에서 동작하고 있는 프로그램이 액세스 불가능한 전용 메모리 영역 30, 32, 34를 갖는다.
도 1에 도시된 예는 메모리 관리 유닛(14)과 페이지 테이블 데이터(24)를 이용한다. 이때, 다른 실시예는, 메모리 액세스 공간 내부의 메모리 보호 영역들과 관련된 액세스 조건을 적용하는 메모리 보호 유닛 등의 다른 메모리 액세스 제어회로를 이용할 수도 있다는 것은 본 기술분야의 당업자에게 있어서 자명할 것이다.
메모리 관리 유닛(및 메모리 보호 유닛)의 사용과 관련된 잠재적인 보안 취약성은, 페이지 테이블 데이터(24)(또는 메모리 영역과 메모리 보호 유닛의 보호를 정의하는 데이터)에 대한 잘못되거나 악의적인 변경이 공유로서 처리되는 것 대신에 전용으로 처리되고 액세스가 다른 어플리케이션 프로그램에 부적절하게 주어지는 메모리 영역 30, 32, 34를 제공할 수도 있다는 것이다. 이와 같은 전용 영역 30, 32, 34는 암호 키, 금융 데이터 등의 민감한 데이터를 포함해도 된다.
본 실시예에 따라 제공된 메모리 액세스 명령은 보호된 로드 명령 LDR, 또는 보호된 스토어 명령 STR 등의 보호된 메모리 액세스 명령의 형태를 취한다. 메모리 액세스 명령은 덜 보호된 로드 명령 LDNPR 또는 덜 보호된 스토어 명령 STNPR 등의 덜 보호된 메모리 액세스 명령을 더 포함한다. 이들은 그 자신의 명령 인코딩을 갖는 별개의 종류의 명령이다. 한가지 종류의 인코딩의 모든 변종(variant)이 다른 종류의 인코딩을 위해 제공될 필요는 없다. 본 실시예에서, 보호된 메모리 액세스 명령은 덜 보호된 메모리 액세스 명령보다 인코딩에서 더 많은 변종을 갖는데, 예를 들어, 보호된 메모리 액세스 명령은, 데이터 값 크기, 부호를 갖는/부호를 갖지 않는 데이터, 메모리 어드레스에 적용할 색인(indexing) 및 기타 옵션의 지정을 허용하는 옵션을 갖는다. 이에 비해, 덜 보호된 메모리 액세스 명령은 데이터 크기 및 부호를 갖는/부호를 갖지 않는 데이터 등과 같이 더 적은 옵션을 갖는다.
다양한 종류의 메모리 액세스 명령의 설치는 프로그래머(또는 컴파일러)가 디폴트로 보호된 메모리 액세스 명령을 사용하고, 그후 프로그래머가 알기에는 덜 제한된 메모리 액세스 조건을 안전하게 겪는 특정한 메모리 액세스 동작에 대해서는 덜 보호된 메모리 액세스 명령의 사용을 선택할 수 있도록 한다. 예를 들어, 보호된 메모리 액세스 명령은, 프로그래머에 의해 메모리(6) 내부의 공유 영역 26, 28에 대해 행해지도록 의된 것으로 알려진 것 이외의 모든 메모리 액세스에 대해 디폴트로 사용된다. 공유 영역에 대한 이들 메모리 액세스는 덜 보호된 메모리 액세스 명령을 사용해도 된다. 프로그래머는 프로그램 코드의 작성시에 특정한 데이터가 다른 어플리케이션 프로그램과 공유되어야 하며 공유 영역 26, 28에 기록되어야 하므로, 이와 같은 메모리 액세스가 덜 보호된 메모리 액세스 명령을 이용하여 행해지는 것이 적절하다는 것을 알게 된다. 이에 따라, 메모리 관리 유닛(14)(또는 메모리 보호 유닛)을 제어하는 데이터가 틀리더라도, 더 제한된 메모리 액세스 조건을 갖는 보호된 메모리 명령의 사용은 프로그래머가 공유 영역 26, 28에 부주의하게 데이터를 기억하는 것을 방지하고 공유 영역 26, 28로부터 부주의하게 (변경된) 데이터를 로드하는 것을 방지하는 역할을 한다.
도 3은 보호된 메모리 액세스 명령 LDR/STR 및 덜 보호된 메모리 액세스 명령 LDNPR/STNPR 모두에 대한 인코딩의 예를 개략적으로 나타낸 것이다. 이들 명령은 다른 인코딩(옵코드)을 가지므로, 디코더(10)에 의해 다른 종류의 명령으로 인식되어, 로드 스토어 유닛(120을 제어하여 후술하는 것과 같이 이들 서로 다른 종류의 명령에 대해 서로 다르게 거동하도록 하기 위해 서로 다른 제어신호를 발생한다. 보호된 메모리 액세스 명령 LDR, STR은 도시된 것과 같이 덜 보호된 메모리 명령 LDNPR/STNPR보다 명령과 관련된 크기, 부호를 갖는/부호를 갖지 않는, 색인 등의 더 많은 관련된 옵션을 갖는다. 프로그램 명령은, 메모리 액세스 명령이 관련되고, 예를 들어, 메모리(6) 내부에 대상 메모리 어드레스를 포함하는 레지스터 뱅크(16) 내부의 레지스터들과 같은 파라미터를 더 지정한다. 덜 보호된 메모리 액세스 명령에 대한 더 적은 수의 옵션의 설치는 이들 명령이 더 적은 명령 세트 비트 공간을 소모하도록 한다. 이것은 프로세스 또는 아키텍처 내부의 유한한 자원으로 다른 곳에서는 가치있게 사용될 수도 있다. 실제로는, 공유가 비교적 드문 경향이 있고 이에 따라 더 적은 수의 옵션의 설치를 필요로 하는 것으로 프로그래머가 알고 있는 데이터에 대한 메모리 액세스 동작은, 이와 같은 덜 보호된 메모리 액세스에 대해서는, 코드 크기의 과도한 증가를 일으키지 않으므로, 명령 세트 비트 공간의 절감보다 더 중요하다.
도 4는 메모리 관리 유닛 페이지 테이블 엔트리(36)를 개략적으로 나타낸 것이다. 이와 같은 페이지 테이블 엔트리는 다양한 범위의 다른 형태를 가질 수 있다. 일반적으로 이와 같은 메모리 관리 유닛 페이지 테이블 엔트리(36)는 가상 어드레스 TAG(38)와 이에 대응하는 물리 어드레스 변환 데이터(40)를 이용하여 가상 어드레스와 물리 어드레스 사이의 어드레스 변환을 지원한다. 또한, 페이지 엔트리와 관련된 메모리 어드레스 공간 내부의 각각의 페이지(영역)와, 판독가능성, 기록가능성, 특권 레벨 액세스 제한, 캐시 기억가능성 등의 특성을 정의하는 메모리 페이지 속성이 관련된다. 또한, 메모리 페이지 속성 데이터 내부에는, 이 영역 내부의 메모리 어드레스가 공유인지 전용인지를 표시하는 공유/전용 플래그가 포함된다. 공유 어드레스는 복수의 프로그램 내에서 공유되는 한편, 전용 어드레스는 한 개의 프로그램만 액세스 가능하다. 다른 형태의 메모리 페이지 속성은, 특정한 영역이 암호화되었는지 암호화되지 않았는지를 표시하는 플래그를 포함한다. 암호화된 영역은 암호화 키를 사용하여 암호화된 후, 적절한 복호화 키를 소유하고 있는 적절한 권한을 갖는 프로그램에 의해 복호화된다.
공유/전용 플래그의 경우에, 공유로 표기된 메모리 영역은 덜 보호된 메모리 액세스 명령에 의해서만 액세스되어야 하며, 마찬가지로, 전용으로 표기된 메모리 영역은 보호된 메모리 액세스 명령에 의해서만 액세스되어야 한다. 틀린 종류(인코딩)의 메모리 액세스 명령이 특정한 영역의 메모리에 대한 메모리 액세스를 시도하면, 이것이 검출되어 데이터 중단을 일으킨다(메모리 액세스 예외처리를 기동한다).
도 5는 한가지 형태의 메모리 액세스 처리를 개략적으로 나타낸 흐름도이다. 스텝 S52에서 메모리 액세스 명령이 디코드될 때까지 처리가 대기한다. 메모리 액세스 명령이 디코드되면, 디코더(10)에 의해 제어신호가 발생되어 로드 스토어 유닛(120을 제어하여 메모리 관리 유닛(18)과 협력하여 지정된 메모리 액세스 동작을 행한다. 스텝 44에서는, 스텝 42에서 디코드된 메모리 액세스 명령에 대한 공유 플래그 데이터(기타 데이터도)가 판독된다. 그후, 스텝 46은 스텝 42에서 디코드된 메모리 액세스 명령이 보호된 메모리 액세스 명령이었는지 여부를 판정한다. 스텝 42에서 디코드된 명령이 보호된 메모리 액세스 명령이었으면, 스텝 48로 처리가 진행하여 스텝 44에서 판독된 공유 플래그가 액세스할 메모리 어드레스를 포함하는 메모리 영역이 공유된 것을 표시하는지 아닌지에 대한 판정이 행해진다. 스텝 48에서의 판정 결과 메모리 영역이 공유이면, 이것은 보호된 메모리 액세스 명령이 적절히 사용되고 있다는 것을 나타내므로, 스텝 50으로 처리가 진행하여 액세스가 차단된 후 스텝 42로 처리를 되돌리기 전에 스텝 52에서 데이터 중단 응답이 기동된다. 스텝 48에서의 판정 결과 메모리 액세스가 공유 영역에 대한 것이 아인 경우에는, 보호된 메모리 액세스 명령의 사용이 적절하지 않으므로(즉, 메모리 영역이 전용이므로) 스텝 54에서 액세스가 허가되어 수행된다. 스텝 46의 판정 결과 스텝 42에서 디코드된 메모리 액세스 명령이 덜 보호된 메모리 액세스 명령인 경우에는, 스텝 56으로 처리를 진행하여, 스텝 44에서 판독된 공유 플래그가 덜 보호된 메모리 액세스 명령과 관련된 메모리 어드레스가 공유된 것으로 나타내는지 아닌지에 대한 판정이 행해진다. 메모리 영역이 공유되지 않으면, 이것은 덜 보호된 메모리 액세스 명령의 사용이 부적절하다는 것을 나타내므로, 스텝 58로 처리를 진행하여, 메모리 액세스가 차단되고, 스텝 60에서 데이터 중단 응답이 기동된다. 스텝 56에서의 판정 결과 메모리 영역이 공유이면, 스텝 42에서 디코드된 덜 보호된 메모리 액세스 명령의 사용이 부적절하므로, 스텝 62로 처리를 진행하여 액세스가 허가된다.
도 6은 본 발명을 이용하는 데이터 처리 시스템(64)의 또 다른 실시예를 개략적으로 나타낸 것이다. 본 실시예에서는, 메모리(66) 내부의 메모리 영역이 암호화된 영역 68, 70, 72이거나 암호화되지 않은 영역 74, 76이다. 프로세서 코어(82)와 메모리(66) 사이에 배치된 암호화 회로(80)는, 암호화된 영역 68, 70, 72에 기록되고 있는 데이터에 대해 암호화를 제공하고 암호화 영역 68, 70, 72로부터 판독되고 있는 데이터에 대해 복호화를 제공하는 역할을 한다. 암호화 및 복호화는 각각의 암호화된 영역 68, 70, 72를 액세스하는 프로그램에 대해 전용의 암호화 키(84)를 사용한다.
본 실시예에서, 메모리 액세스 제어회로는 암호화되거나 암호화되지 않는 것으로 표기되는 메모리(66)의 메모리 어드레스 공간 내부의 서로 다른 영역을 갖는 메모리 보호 유닛(86)의 형태를 갖는다. 메모리 영역이 암호화되면, 멀티플렉서 88, 90을 사용하여 전환되어 암호화 회로(80)를 거쳐 데이터의 경로를 지정한다. 액세스되고 있는 메모리 어드레스가 암호화되지 않은 영역 내부에 있을 때에는, 멀티플렉서 88, 90에 의해 암호화 회로(8)가 우회된다. 암호화 회로(80)는 보호된 메모리 액세스 명령에 대해 사용되고 활성이 되며 덜 보호된 메모리 액세스 명령에 대해서는 우회된다. 암호화되지 않은 영역 74, 76은 프로그램들 사이에서 공유되는 반면에, 암호화된 영역 68, 70, 72는 개별 프로그램 또는 암호화 키를 공유하는 다수의 프로그램에 대해 전용이 될 수 있다. 덜 보호된 메모리 액세스 명령이 메모리 보호 유닛(86)에 의해 암호화된 것으로 표기된 메모리 액세스와 대해 사용되면, 데이터 중단이 기동된다. 마찬가지로, 보호된 메모리 액세스 명령이 암호화되지 않은 영역 내부의 메모리 어드레스에 대해 사용되면, 데이터 중단이 마찬가지로 기동된다.
도 7은 다양한 특권/예외 레벨에서 동작하는 프로그램들의 계층구조를 개략적으로 나타낸 것이다. 프로그램들은 최상의 특권 레벨에 더 낮은 특권 레벨(더 낮은 예외 레벨)에서 동작하고 있는 게스트 운영체계 프로그램들 94, 96에 대한 실행환경을 제공하는 하이퍼바이저 프로그램(92)을 포함한다. 각각의 운영체계 프로그램들 94, 96은 각각 어플리케이션 프로그램들 98, 100 또는 어플리케이션 프로그램들 102, 104에 대한 실행 환경을 제공한다. 운영체계 프로그램들 94, 96은 어플리케이션 프로그램들 98, 100, 102, 104보다 더 높은 특권 레벨(예외 레벨)에서 동작한다.
전술한 실시예는 보호된 메모리 액세스 명령과 덜 보호된 메모리 액세스 명령과 관련하여 공유/전용 플래그 또는 암호화된/암호화되지 않은 플래그를 이용하여 액세스를 제어하였다. 또 다른 실시예는 프로그램이 실행되고 있는 특권 레벨(예외 레벨)과 관련된 메모리 액세스 조건을 부과하는 역할을 한다. 프로그래머는 다른 레벨(특권 레벨)에서 동작하는 한 개 이상의 다른 프로그램과 데이터를 공유하는 것이 적절하다고 결정할 수도 있다. 일례로서, 어플리케이션 프로그램들 98, 100, 102, 104는 위에 놓이는 운영체계 프로그램 94, 96과 데이터를 공유할 수 있지만, 다른 어플리케이션 프로그램이나 하이퍼바이저 프로그램(92)과는 공유할 수 없도록 제어된다. 덜 보호된 메모리 액세스 명령은 다른 예외 레벨과 공유하는 것이 바람직한 데이터와 관련되는 한편, 다른 예외 레벨과 공유하는 것이 바람직하지 않은 데이터는 보호된 메모리 액세스 명령을 사용하여 액세스된다.
도 8은 본 발명을 이용하는 데이터 처리 시스템(106)의 또 다른 실시예를 개략적으로 나타낸 것이다. 이 데이터 처리 시스템(106)은 메인 메모리(114) 내부의 암호화된 메모리 영역 108, 110과 공유 메모리 영역(112)을 이용한다. 도 6의 실시예와 비교하면, 도 8의 실시예는 다양한 레벨의 계층을 사용하는 메모리 시스템을 이용한다. 4개의 프로세서 코어 116, 118, 120, 122는 각각 로컬 전용 캐시 메모리 124, 126, 128, 130을 갖는다. 메모리 계층에서 이들 로컬 캐시 124, 126, 128, 130 위에 있는 것은 공유 캐시 메모리(132)이다. 캐시 메모리들 124, 126, 128, 130, 132의 각각의 내부의 데이터는 그것이 암호화/공유된 것으로 표기된 것에 무관하게 암호화되지 않은 형태로 기억된다. 데이터를 암호화/공유하려면, 이 데이터가 캐시 메모리들 124, 126, 128, 130, 132 내부에서 플래그가 붙여지고, 이와 같은 플래그의 제어하에서 멀티플렉서 136, 138을 사용하여 암호화 회로(134)를 거쳐 또는 암호화 회로를 돌아서(우회하여) 경로가 지정된다. 따라서, 암호화 회로(134)보다 프로세서 코어들 116, 118, 120, 122에 더 가까운 데이터는 암호화되지 않은 형태로 기억되므로 암호화/복호화와 관련된 에너지/시간 불이익을 일으키지 않는 한편, 암호화 회로(134)보다 메모리 계층 구조 내에서 더 멀리 떨어진, 즉 인터커넥트(140)를 거쳐 전달되고 메인 메모리(114) 내부에 기억되는 데이터는 암호화된다. 그래픽 처리 유닛(142)과 직접 메모리 액세스 유닛(144)도 인터커넥트(140)를 거쳐 접속된다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다.
Claims (20)
- 프로그램 명령에 의해 지정된 처리 동작을 행하는 처리회로와,
메모리 액세스 명령을 디코드하여 상기 처리회로가 메모리 액세스 동작을 행하도록 제어하는 제어신호를 발생하는 디코더를 구비하고,
상기 메모리 액세스 명령은,
보호된 메모리 액세스 동작에 대응하는 보호된 메모리 액세스 명령과,
덜 보호된(less-protected) 메모리 액세스 동작에 대응하는 덜 보호된 메모리 액세스 명령을 지정하는 각각의 인코딩을 갖고,
상기 덜 보호된 메모리 액세스 동작은 상기 보호된 메모리 액세스 동작보다 덜 제한적인 메모리 액세스 조건과 관련되는 데이터 처리장치.
- 제 1항에 있어서,
상기 덜 보호된 메모리 액세스 명령은 상기 보호된 메모리 액세스 명령과 다른 수의 변종(variant)들을 허용하는 인코딩을 갖는 데이터 처리장치.
- 제 2항에 있어서,
상기 덜 보호된 메모리 액세스 명령은 상기 보호된 메모리 액세스 명령보다 적은 수의 변종들을 허용하는 인코딩을 갖는 데이터 처리장치.
- 제 1항, 제 2항 또는 제 3항 중 어느 한 항에 있어서,
메모리 보호 데이터에 따라 메모리 어드레스 공간의 영역들에 대한 액세스를 제어하는 메모리 액세스 제어회로를 구비하고, 상기 메모리 보호 데이터는, 상기 보호된 메모리 액세스 명령보다 상기 덜 보호된 메모리 액세스 명령에 대해 덜 제한적인 메모리 액세스 조건을 실행하기 위해 상기 메모리 액세스 제어회로에 의해 주어진 적어도 한 개의 속성을 포함하는 데이터 처리장치.
- 제 4항에 있어서,
상기 적어도 한 개의 속성은 메모리 어드레스가 공유 메모리 어드레스인 시기를 나타내고,
상기 메모리 액세스 제어회로는 상기 보호된 메모리 액세스 명령에 의해 상기 공유 메모리 어드레스에 대한 메모리 액세스를 차단하고,
상기 메모리 액세스 제어회로는, 상기 덜 보호된 메모리 액세스 명령에 의한 상기 공유 메모리 어드레스에 대한 메모리 액세스를 허가하는 데이터 처리장치.
- 제 5항에 있어서,
상기 적어도 한 개의 속성은 메모리 어드레스가 전용 메모리 어드레스인 시기를 나타내고,
상기 메모리 액세스 제어회로는 상기 보호된 메모리 액세스 명령에 의해 상기 전용 메모리 어드레스에 대한 메모리 액세스를 허가하고,
상기 메모리 액세스 제어회로는, 상기 덜 보호된 메모리 액세스 명령에 의한 상기 전용 메모리 어드레스에 대한 메모리 액세스를 차단하는 데이터 처리장치.
- 제 5항 또는 제 6항에 있어서,
상기 메모리 액세스 제어회로는 보호된 메모리 액세스 명령에 의한 상기 공유 메모리 어드레스에 대한 시도된 메모리 액세스에 응답하여 데이터 중단 응답을 기동하는 데이터 처리장치.
- 제 5항, 제 6항 또는 제 7항 중 어느 한 항에 있어서,
상기 메모리 액세스 제어회로는 덜 보호된 메모리 액세스 명령에 의한 공유 메모리 어드레스 이외에 대한 시도된 메모리 액세스에 응답하여 데이터 중단 응답을 기동하는 데이터 처리장치.
- 제 4항 또는 제 8항 중 어느 한 항에 있어서,
상기 메모리 액세스 제어회로는 메모리 관리 유닛이고, 상기 메모리 보호 데이터는 메모리 페이지 테이블 데이터인 데이터 처리장치.
- 제 4항 또는 제 8항 중 어느 한 항에 있어서,
상기 메모리 액세스 제어회로는 메모리 보호 유닛이고, 상기 메모리 보호 데이터는 상기 메모리 보호 유닛에 대한 메모리 영역 환경설정 데이터인 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,
상기 보호된 메모리 액세스 동작에 의해 메모리에 기억된 데이터를 암호화하고 상기 보호된 메모리 액세스 동작에 의해 상기 메모리에서 판독된 데이터를 복호화하는 암호화 회로를 구비한 데이터 처리장치.
- 제 1항 내지 제 10항 중 어느 한 항에 있어서,
메모리에 기억된 데이터를 암호화하고 상기 메모리에서 판독된 데이터를 복호화하는 암호화 회로를 구비하고, 상기 암호화 회로는 상기 보호된 메모리 액세스 동작에 대해서는 활성이고, 상기 암호화 회로는 상기 덜 보호된 메모리 액세스 동작에 대해서는 비활성인 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,
상기 처리회로는 복수의 예외 레벨 상태들을 갖고, 상기 복수의 예외 레벨 상태들 내부의 특정한 예외 레벨 상태에서 실행되는 프로그램 내부의 덜 보호된 메모리 액세스 명령을 사용하여 액세스된 메모리 어드레스가 상기 복수의 예외 레벨 상태들 내부의 선택된 수의 또 다른 예외 레벨 상태들에서 실행되는 프로그램들과 공유되는 데이터 처리장치.
- 선행하는 청구항 중 어느 한 항에 있어서,
상기 처리 동작은,
복수의 프로그램을 실행하는 것과,
상기 복수의 프로그램 중에서 특정한 프로그램 내부의 보호된 메모리 액세스 명령을 실행하여 상기 특정한 프로그램에 대해 전용인 메모리 어드레스를 액세스하는 것과,
상기 복수의 프로그램 중에서 상기 특정한 프로그램 내부의 더 보호된 메모리 액세스 명령을 실행하여 상기 복수의 프로그램 사이에서 공유된 메모리 어드레스를 액세스하는 것을 포함하는 데이터 처리장치.
- 제 14항에 있어서,
상기 복수의 프로그램은 특권 프로그램과 상기 특권 프로그램에 의해 제공된 실행 환경을 이용하여 실행되는 적어도 한 개의 또 다른 프로그램을 포함하고, 상기 적어도 한 개의 또 다른 프로그램은 보호된 메모리 액세스 명령을 이용하여 상기 특권 프로그램으로부터 전용의 메모리 어드레스를 액세스하는 데이터 처리장치.
- 제 15항에 있어서,
상기 특권 프로그램은 하이퍼바이저 프로그램이고, 상기 적어도 한 개의 또 다른 프로그램은 운영체계 프로그램인 데이터 처리장치.
- 제 15항에 있어서,
상기 특권 프로그램은 운영체계 프로그램이고, 상기 적어도 한 개의 또 다른 프로그램은 어플리케이션 프로그램인 데이터 처리장치.
- 프로그램 명령에 의해 지정된 처리 동작을 행하는 처리수단과,
메모리 액세스 명령을 디코드하여 상기 처리수단이 메모리 액세스 동작을 행하도록 제어하는 제어신호를 발생하는 디코더수단을 구비하고,
상기 메모리 액세스 명령은,
보호된 메모리 액세스 동작에 대응하는 보호된 메모리 액세스 명령과,
덜 보호된 메모리 액세스 동작에 대응하는 덜 보호된 메모리 액세스 명령을 지정하는 각각의 인코딩을 갖고,
상기 덜 보호된 메모리 액세스 동작은 상기 보호된 메모리 액세스 동작보다 덜 제한적인 메모리 액세스 조건과 관련되는 데이터 처리장치.
- 메모리 액세스 명령을 디코드하여 처리회로가 메모리 액세스 동작을 행하도록 제어하는 제어신호를 발생하는 단계를 포함하고,
상기 메모리 액세스 명령은,
보호된 메모리 액세스 동작에 대응하는 보호된 메모리 액세스 명령과,
덜 보호된 메모리 액세스 동작에 대응하는 덜 보호된 메모리 액세스 명령을 지정하는 각각의 인코딩을 갖고,
상기 덜 보호된 메모리 액세스 동작은 상기 보호된 메모리 액세스 동작보다 덜 제한적인 메모리 액세스 조건과 관련되는 데이터 처리방법.
- 청구항 1 내지 18 중 어느 한 항에 기재된 장치에 대응하는 가상머신 실행 환경을 제공하도록 컴퓨터를 제어하기 위해 비일시적인 기억매체에 기억된 컴퓨터 프로그램.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1518541.6 | 2015-10-20 | ||
GB1518541.6A GB2543520B (en) | 2015-10-20 | 2015-10-20 | Memory access instructions |
PCT/GB2016/052736 WO2017068317A1 (en) | 2015-10-20 | 2016-09-06 | Memory access instructions |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180072723A true KR20180072723A (ko) | 2018-06-29 |
Family
ID=55131314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187013380A KR20180072723A (ko) | 2015-10-20 | 2016-09-06 | 메모리 액세스 명령 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11669467B2 (ko) |
EP (1) | EP3365768B1 (ko) |
JP (1) | JP6944444B2 (ko) |
KR (1) | KR20180072723A (ko) |
CN (1) | CN108139909B (ko) |
GB (1) | GB2543520B (ko) |
IL (1) | IL258594B (ko) |
TW (1) | TWI722022B (ko) |
WO (1) | WO2017068317A1 (ko) |
Families Citing this family (3)
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 |
Family Cites Families (21)
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 |
US8607034B2 (en) * | 2008-05-24 | 2013-12-10 | Via Technologies, Inc. | Apparatus and method for disabling a microprocessor that provides for a secure execution mode |
EP2211285A1 (en) * | 2009-01-20 | 2010-07-28 | Nagravision SA | Secured data processing device |
GB2479780B (en) * | 2010-04-22 | 2018-04-04 | Advanced Risc Mach Ltd | Preload instruction control |
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 |
CN102385556B (zh) * | 2011-11-08 | 2014-11-26 | 聚辰半导体(上海)有限公司 | 串行非易失性存储器及解除存储器写保护的方法 |
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 |
-
2015
- 2015-10-20 GB GB1518541.6A patent/GB2543520B/en active Active
-
2016
- 2016-09-06 JP JP2018519050A patent/JP6944444B2/ja active Active
- 2016-09-06 US US15/768,909 patent/US11669467B2/en active Active
- 2016-09-06 EP EP16762860.1A patent/EP3365768B1/en active Active
- 2016-09-06 WO PCT/GB2016/052736 patent/WO2017068317A1/en active Application Filing
- 2016-09-06 CN CN201680059729.3A patent/CN108139909B/zh active Active
- 2016-09-06 KR KR1020187013380A patent/KR20180072723A/ko not_active Application Discontinuation
- 2016-09-30 TW TW105131539A patent/TWI722022B/zh active
-
2018
- 2018-04-10 IL IL258594A patent/IL258594B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
JP6944444B2 (ja) | 2021-10-06 |
TW201719387A (zh) | 2017-06-01 |
GB2543520B (en) | 2019-06-19 |
GB201518541D0 (en) | 2015-12-02 |
CN108139909A (zh) | 2018-06-08 |
WO2017068317A1 (en) | 2017-04-27 |
EP3365768A1 (en) | 2018-08-29 |
EP3365768B1 (en) | 2020-12-09 |
JP2018535483A (ja) | 2018-11-29 |
IL258594A (en) | 2018-06-28 |
TWI722022B (zh) | 2021-03-21 |
US20180307627A1 (en) | 2018-10-25 |
IL258594B (en) | 2020-03-31 |
CN108139909B (zh) | 2022-07-12 |
US11669467B2 (en) | 2023-06-06 |
GB2543520A (en) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3757856B1 (en) | Cryptographic isolation of memory compartments in a computing environment | |
US10691620B2 (en) | Encryption of executables in computational memory | |
JP4989543B2 (ja) | メモリドメインを基にしたデータ処理システム内のセキュリティ制御 | |
TWI697805B (zh) | 載入和虛擬化密碼金鑰 | |
JP5581403B2 (ja) | メモリのセキュア領域および非セキュア領域へのセキュアモードページテーブルデータの格納 | |
US10956157B1 (en) | Taint protection during speculative execution | |
US8549325B2 (en) | Reducing information leakage between processes sharing a cache | |
GB2440968A (en) | Protecting system control registers in a data processing apparatus | |
KR102533823B1 (ko) | 자격과 관련된 허가들을 해석하는 장치 및 방법 | |
WO2023121757A1 (en) | Hardening cpu predictors with cryptographic computing context information | |
CN108139909B (zh) | 存储器访问指令 | |
US20220129566A1 (en) | Secure application execution in a data processing system | |
KR102584506B1 (ko) | 가상 기계들을 위한 상태 정보 보호 | |
US20240104027A1 (en) | Temporal information leakage protection mechanism for cryptographic computing | |
CN116340963A (zh) | 用于密态计算的瞬时侧信道感知架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |