KR102523763B1 - 작업 메모리 보호 방법 및 그 장치 - Google Patents
작업 메모리 보호 방법 및 그 장치 Download PDFInfo
- Publication number
- KR102523763B1 KR102523763B1 KR1020197012505A KR20197012505A KR102523763B1 KR 102523763 B1 KR102523763 B1 KR 102523763B1 KR 1020197012505 A KR1020197012505 A KR 1020197012505A KR 20197012505 A KR20197012505 A KR 20197012505A KR 102523763 B1 KR102523763 B1 KR 102523763B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- class
- access
- memory protection
- working memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/145—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 virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1483—Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 작업 메모리를 보호하기 위한 방법(10)에 관한 것으로, 이 방법은, - 작업 메모리의 메모리 영역들이 선택적으로 제1 클래스 또는 제2 클래스에 할당되고(11), - 프로그램 실행 전에 적어도 제1 클래스의 메모리 영역들이 메모리 보호 유닛의 구성 테이블 내에 입력되며(13), - 프로그램 실행 중에 제2 클래스의 메모리 영역들 중 타깃 영역에 대한 액세스(15)가 요청되는 경우, 상기 액세스(15)가 허용되기 전에, 타깃 영역이 구성 테이블 내에 입력되는(Y) 것을 특징으로 한다.
Description
본 발명은 작업 메모리(working memory)를 보호하기 위한 방법에 관한 것이다. 또한, 본 발명은 상응하는 장치, 상응하는 컴퓨터 프로그램 및 상응하는 저장 매체에 관한 것이다.
메모리 관리에서, 단일 프로그램의 (예컨대 프로그래밍 오류에 의해 야기되는) 크래시(crash)가 다른 프로그램들 또는 전체 시스템의 안정성을 저하시키지 않는 방식으로, 가용 작업 메모리를 분할하고 실행중인 프로그램들 또는 게스트 시스템들을 서로 분리하는 운영 시스템들 및 이른바 하이퍼바이저(hypervisor)의 능력을 메모리 보호라 지칭한다. 이런 방식으로, 상기와 같이 모니터링되는 프로그램들은, 실수로 또는 고의로 다른 프로그램들의 메모리 영역에 액세스하거나, 표준화된 인터페이스들에 의한 것과 다른 방식으로 운영 시스템을 사용하는 점이 방지된다.
메모리 보호를 지원하는 메모리 보호 유닛(MPU: memory protection unit) 또는 더 복잡한 메모리 관리 유닛(MMU: memory management unit)은 충분히 공지되어 있다. 그러므로 하기 설명의 범주에서, "메모리 보호 유닛"이란 명칭은, 가상 주소의 번역 능력을 가진 고급 메모리 관리 유닛을 명시적으로 포함하는 넓은 의미로 해석되어야 한다.
메모리 보호 유닛들은 본래 마이크로프로세서를 위한 외부 추가 컴포넌트로서 설계되었지만, 종래 기술에 따라 고성능 프로세서들 내에 직접 통합되거나, 적어도 그 근방에 설치된다. 그러나 전통적으로 단일 애플리케이션의 실행을 위해서만 설계되었던 임베딩 시스템 및 특히 마이크로컨트롤러에도 역시 가상화 및 메모리 보호 메커니즘이 점점 더 많이 구비되는 추세이다.
DE 10 2014 208 848 A1호에는 메모리 액세스를 실행하기 위한 방법 및 컴퓨터 프로그램이 소개되어 있다. 이 문헌에서는, 메모리 액세스를 수행하는 하이퍼바이저가 메모리 보호 유닛과 함께 이용된다.
본 발명은 독립 청구항들에 따른 작업 메모리의 보호 방법, 상응하는 장치, (예컨대 하이퍼바이저 또는 운영 시스템 형태의) 상응하는 컴퓨터 프로그램, 및 기계 판독 가능 저장 매체를 제공한다.
이 경우, 제안되는 접근 방법은, 일반적인 하드웨어 메모리 보호 유닛에서 구성 가능한 메모리 영역들 및 이와 관련한 액세스 권한의 수가 제한된다는 사실에 기초한다. 이러한 제한의 결과로, (예컨대 하이퍼바이저의 경우) 가상 머신(VM: virtual machine)에 의해 이용되는 메모리 영역들의 개수가 하드웨어의 능력을 능가할 수 있다. 이런 점에서, 기껏해야, 메모리 보호 구성의 입도(granularity)를 제한하는 개별 메모리 영역들의 병합이 고려되며, 그럼으로써 특정 저장 위치들에 대해 가상 머신들을 통한 비인증 액세스가 더 이상 완전히 배제될 수 없게 된다. 이 문제는, 하이퍼바이저가 내부적인 사용을 위해 상응하는 구성 테이블의 일부 엔트리를 리저브(reserve)하거나 가상 머신들을 위한 가상 MPU 구현을 제공하고, 상기 가상 머신들은 다시 자체적으로 예컨대 가상 머신의 내부에서 보호되는 운영 시스템을 구현하기 위해 메모리 보호 유닛을 필요로 함으로써 심화될 수 있다.
본 발명의 일 실시예의 장점은, 본 발명이, 가상 머신에 의해 직접 및 간접적으로 (예컨대 하이퍼바이저를 통해) 사용된 모든 메모리 영역을 정확하게 결정할 수 있도록 하기 위해, 일반적인 메모리 보호 유닛의 구성 가능한 메모리 영역들의 수치적 제한을 극복한다는 점이다. 이러한 해결책은, 가상 머신이 하드웨어 메모리 보호 유닛의 능력에 의한 제한 없이 거의 임의의 개수의 메모리 영역들에 액세스할 수 있게 한다.
종속 청구항들에 열거된 조치들을 통해, 독립 청구항에 명시된 기본 사상의 바람직한 개선 및 향상이 가능하다.
본 발명의 실시예들은 도면들에 도시되어 있으며, 하기에서 더 상세하게 설명된다.
도 1은 제1 실시예에 따른 방법의 실행도이다.
도 2는 제2 실시예에 따른 제어 장치의 개략도이다.
도 2는 제2 실시예에 따른 제어 장치의 개략도이다.
도 1에는, 본 발명에 따른 방법(10)의 예시적인 구현예의 기본 시퀀스가 도시되어 있다. 하기의 실시예의 목적으로, 고려되고 있는 시스템은, 메모리 보호 유닛이 하드웨어로써 지원하는 것보다 더 많은 수의 상이한 메모리 영역들을 포함하는 것으로 가정된다.
이 경우, 하기에서 논의되는 해결책은, 하이퍼바이저가 필요에 따라 실행 시점에 메모리 보호 유닛의 구성 엔트리들을 교환한다는 기본 사상을 기반으로 한다. 이런 접근법은, 구성된 메모리 영역들의 개수가 메모리 보호 유닛의 개수를 초과하는 경우 조차도, 하이퍼바이저의 게스트 시스템으로서 작동되는 가상 머신에 해당 머신의 구성에 명시된 모든 메모리 영역을 고려하는 실행 콘텍스트를 제공한다.
이 경우, 전술한 교환은, 종래 기술에 따라 예컨대 캐시 메모리(cache memory)에 적용되는 것처럼 구성 가능하며 운영 시스템 이론에서 차용되는 배제 전략(exclusionary strategy)에 따른다. 예컨대, MPU에 의한 마지막 사용이 LRU (least recently used)인 구성 엔트리의 페이징(pageing)이 고려된다.
이 경우, 구현은, 도해에 따라 하기 체계를 따른다: 구성될 메모리 영역들이 개발 단계에서 우선 선택적으로 제1 클래스 또는 제2 클래스에 할당된다[액티비티(activity) 11]. 이를 위해, 하이퍼바이저의 구성 언어(configuration language)가, 적분기(integrator)로 하여금 개별 영역들을 페이징가 불가능한 것(제1 클래스)으로서 또는 페이징가 가능한 것(제2 클래스)으로서 표시하게 한다. 이 경우, 하나 이상의 영역이 상기 클래스에 할당된 경우에 한해, 메모리 보호 유닛의 하나 이상의 구성 엔트리가 제2 클래스의 메모리 영역들에서 항시 리저브되어야 한다.
메모리 영역들의 분류 시, 페이징된 메모리 영역들에서 기계어 명령들의 실행을 위한, 그리고 상기 유형의 메모리 영역들에 대한 판독 및 기록 액세스를 위한 대기 시간이 상당할 수 있다는 점에 유념해야 한다. 여기서, 어느 메모리 영역이 페이징 불가능한 것(non-pageable)으로서 구성되고, 어느 메모리 영역이 페이징 가능한 것(pageable)으로서 구성되어야 하는지의 판단은 적분기의 담당이다. 이는, 각각의 애플리케이션의 실시간 요청에 따라, 바람직한 배제 전략의 선택에도 적용된다.
그 다음에, 하이퍼바이저는, 제2 클래스의 페이징 가능 메모리 영역들을 적합한 데이터 구조로 플래시 메모리 내에 저장한다(액티비티 12). 이 경우, 상기 유형의 모든 영역에 대해, 구조는 권한 체크(authorization check)에 관련된 상기 영역의 세부 사항들, 다시 말해 특히 상기 영역에 의해 취해지는 주소 공간의 경계들 및 해당하는 게스트 시스템 또는 프로세스의 허용 액세스 유형을 포함한다. 그럼에도 불구하고, 한 대안적 실시예에서는, (본 발명의 범주에서 벗어나지 않으면서) 실행된 분류에 따라 코드 생성 중에, 예컨대 제1 및 제2 클래스의 영역들 간의 케이스 구분(case distinction)(switch statement)을 실행하는 검사 루틴(check routine)이 생성될 수 있다.
시작 전에, 하이퍼바이저는, 이와 관련한 자신의 구성 테이블에서 적어도 제1 클래스에 포함된 영역들을 입력함으로써, 메모리 보호 유닛의 구성을 통해 페이징 불가능한 모든 메모리 영역을 구성한다(액티비티 13). 구성을 통해 구분되는 메모리 영역들의 총 수가 가용 테이블 엔트리들의 수를 초과하지 않는 한, 개별 엔트리들의 페이징은 불필요하다. 그러나 제공된 메모리 영역의 개수가 메모리 보호 유닛의 용량을 능가한다면, 가상 머신의 실행 시간에 상기 페이징이 가능하다.
메모리 보호 유닛의 "구성 테이블"의 컨셉은 특히 최근의 메모리 관리 유닛들에서 전형적으로 제공되는 페이지 테이블(page table)을 포함하며, 이 페이지 테이블은 특히 가상 메모리 주소들을 물리적 메모리 주소들로 번역하는 데 이용된다. 상기 유형의 페이지 테이블은 1단으로, 다단으로, 또는 (저장 공간의 절약을 위해) 반전(inversion) 방식으로도 구성될 수 있으며, 페이지 테이블에서의 검색은 상류에 연결된 이른바 해시 테이블(Hash table)을 통해 촉진될 수 있다. 이 경우, 페이지 테이블 내로의 전술한 엔트리 입력(액티비티 13)은 페이지 테이블 엔트리(page table entry, PTE)의 생성을 통해 수행된다.
그럼에도 불구하고, 상대적으로 더 간단한 실시예에서, 구성 테이블은, 예컨대 AUTOSAR 개발 파트너십의 범주에서 일반적인 제어 장치(electronic control unit, ECU)의 상이한 소프트웨어 컴포넌트들(software components, SW-Cs)의 격리를 위해 제공되는 것과 같은, 가상 메모리 관리 없이 단순한 메모리 보호 유닛의 레지스터를 통해 구현될 수 있다. 이 경우, 전자 엔지니어에게 "영역(regions)"으로서 익숙한 구성 테이블의 엔트리들(보통 모델에 따라 MPU당 상기 유형의 영역은 2개 내지 32개)은, AUTOSAR의 문맥에서, 상호 분리된 보호 공간들로서 각각 다시 복수의 소프트웨어 컴포넌트를 포함할 수 있는 이른바 파티션들(partitions)을 지칭한다. 이런 경우, 상기 영역들 각각을 위해, MPU의 레지스터 내용들은 제조업체에 따른 비트 시퀀스들을 통해 각각의 파티션에 대해 허용된 액세스 유형들을 명시하며, 때로는 그 밖에도 "특권 소프트웨어(privileged software)"를 통한 액세스와 "비특권 소프트웨어(non-privileged software)"를 통한 액세스로 구분된다.
가상 머신이 프로그램 실행 동안, 제2 클래스에 포함됨에 따라 기본적으로 페이징 가능하나 이미 메모리 보호 유닛 내에 사전 구성된 메모리 영역에 대한 액세스를 요청할 경우(이 경우는 도면에 도시되어 있지 않음), 하이퍼바이저에 의한 개입은 불필요하다. 그러나 프로그램 실행 동안 제2 클래스의 메모리 영역들 중에서 현재 구성 테이블 내에 입력되지 않은 타깃 영역에 대한 액세스가 요청될 경우(이벤트 15), 메모리 보호 유닛을 통해 정의된 예외 처리(exception handling)가 시작된다. 하이퍼바이저는 이를 위해 등록된 예외 처리기(exception handler)를 제공하며, 이 예외 처리기는 예외를 야기하는 기계어 명령(액티비티 14)을 디코딩하고, 이러한 방식으로 요청된 액세스의 액세스 유형(판독, 기록 또는 실행) 및 타깃 주소를 획득한다(액티비티 16). 상기 정보 및 액티비티 12에서 저장된 데이터 구조에 따라, 예외 처리기는 제공되는 액세스가 권한 체크를 거치도록 하고(판단 19), 이의 실패 시(분기 N) 가상 머신을 정의된 에러 상태로 전환하며, 이 에러 상태는 하이퍼바이저가 가상 머신의 재시작과 같은 사전 구성된 에러 반응(액티비티 17)을 행하게 한다. 이 경우, 보호된 주소 공간에 권한 없이 액세스하려는 시도는, 메모리 보호 유닛에 의해, 구성 테이블에 저장된 권한에 따라 이른바 보호 위반(segmentation violation, segmentation fault, segfault) 또는 액세스 위반(access violation)으로서 검출되며, 이는 하이퍼바이저에 시그널링된다. 이 시그널링은 UNIX와 유사한 운영 시스템에서 예컨대 예외 조건 SIGSEGV를 통해 수행될 수도 있으며, IA-32 또는 x86-아키텍처 또는 고성능 마이크로컨트롤러들을 포함하는 마이크로프로세서들의 경우에는 인터럽트(interrupt)를 통해 수행될 수도 있다.
성공적으로 진행되는 권한 체크(19)를 기반으로 요청된 액세스가 허용된다면(분기 Y), 예외 처리기(16, 17, 18, 19, Y, N)가 사전 구성된 배제 전략에 따라 현재 메모리 보호 유닛의 구성 테이블에 입력된 제2 클래스의 메모리 영역들 중에서 페이징을 위한 영역을 선택한다. 상기 폐기된 영역에 의해 점유된 엔트리는 이제 요청된 액세스에 관련된 메모리 영역으로 채워진다(액티비티 18). (실질적으로 자신에 의해 취해진 주소 공간의 경계들 및 허용된 액세스 유형에 의해 정의되는) 상기 타깃 영역은 또 다시 액티비티 12에서 저장된 데이터 구조에서 제거된다. 이렇게 해서, 최종적으로 예외 처리(16, 17, 18, 19, Y, N)가 종료될 수 있고, 가상 머신에서의 제어 흐름은 계속 진행될 수 있으며, 액세스를 요청하는 기계어 명령(14)은 이제 메모리 보호 위반 없이 다시 처리될 수 있다.
상기 방법(10)은, 도 2의 개략도에 명시된 것처럼, 예컨대 소프트웨어 또는 하드웨어로, 또는 소프트웨어와 하드웨어의 혼합형으로 예컨대 제어 장치(20)에서 구현될 수 있다.
Claims (10)
- 메모리 보호 유닛을 이용하여 작업 메모리를 보호하는 방법(10)으로서,
상기 작업 메모리의 메모리 영역들이 선택적으로 제1 클래스 또는 제2 클래스에 할당되고(11);
프로그램 실행 전에 적어도 상기 제1 클래스의 메모리 영역들이 상기 메모리 보호 유닛의 구성 테이블 내에 입력되며(13);
프로그램 실행 중에 상기 제2 클래스의 메모리 영역들 중 타깃 영역에 대한 액세스(15)가 요청되는 경우, 상기 액세스(15)가 허용되기 전에 상기 타깃 영역이 구성 테이블 내에 입력되고(Y);
요청된 액세스(15)가 예외 처리기(16, 17, 18, 19, Y, N)를 통해 처리되고;
상기 예외 처리기(16, 17, 18, 19, Y, N)가 적어도 타깃 영역에 따라 권한 체크(19)를 수행하며;
상기 권한 체크(19)에 실패한 경우(N), 예외 처리기(16, 17, 18, 19, Y, N)는 사전 구성된 에러 반응(17)을 트리거하는; 것을 특징으로 하는, 작업 메모리 보호 방법(10). - 삭제
- 제1항에 있어서,
예외 처리기(16, 17, 18, 19, Y, N)가 액세스(15)를 요청하는 기계어 명령(14)에 따라 액세스 유형 및 액세스(15)에 관련된 타깃 영역 내의 타깃 주소를 디코딩하며;
상기 액세스 유형 및 상기 타깃 주소에 따라 권한 체크(19)가 추가로 수행되는; 것을 특징으로 하는, 작업 메모리 보호 방법(10). - 제3항에 있어서,
추가로 제2 클래스의 하나 이상의 메모리 영역이 구성 테이블 내에 입력되며(13);
액세스(15)가 허용되는 경우(Y), 예외 처리기(16, 17, 18, 19, Y, N)는 상기 구성 테이블 내의 메모리 영역을 타깃 영역으로 대체하고(18), 기계어 명령(14)의 재처리를 유발하는; 것을 특징으로 하는, 작업 메모리 보호 방법(10). - 제4항에 있어서,
구성 테이블 내에 제2 클래스의 복수의 메모리 영역이 입력되며(13);
액세스(15)가 허용되는 경우(Y), 예외 처리기(16, 17, 18, 19, Y, N)는 사전 구성된 배제 전략에 따라 상기 제2 클래스의 등록된 메모리 영역들 중 하나의 메모리 영역을 선택하고, 구성 테이블 내에서 상기 선택된 메모리 영역을 타깃 영역으로 대체하며(18), 기계어 명령(14)의 재처리를 유발하는; 것을 특징으로 하는, 작업 메모리 보호 방법(10). - 제1항 및 제3항 내지 제5항 중 어느 한 항에 있어서,
제2 클래스의 메모리 영역들에 따라, 프로그램 실행 전에 검사 루틴이 생성되며;
권한 체크(19)는 상기 검사 루틴의 호출을 포함하는; 것을 특징으로 하는, 작업 메모리 보호 방법(10). - 제1항 및 제3항 내지 제5항 중 어느 한 항에 있어서,
제2 클래스의 메모리 영역들은 플래시 메모리 내에 데이터 구조로서 저장되며(12);
권한 체크(19)는 추가로 상기 데이터 구조에 따라 수행되는; 것을 특징으로 하는, 작업 메모리 보호 방법(10). - 기계 판독 가능한 저장 매체에 저장되어 있고 제1항 및 제3항 내지 제5항 중 어느 한 항에 따른 방법(10)을 실행하도록 구성된 컴퓨터 프로그램.
- 제8항에 따른 컴퓨터 프로그램이 저장되어 있는 기계 판독 가능 저장 매체.
- 제1항 및 제3항 내지 제5항 중 어느 한 항에 따른 방법(10)을 실행하도록 구성된 장치(20).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102016219202.7 | 2016-10-04 | ||
DE102016219202.7A DE102016219202A1 (de) | 2016-10-04 | 2016-10-04 | Verfahren und Vorrichtung zum Schützen eines Arbeitsspeichers |
PCT/EP2017/073743 WO2018065213A1 (de) | 2016-10-04 | 2017-09-20 | Verfahren und vorrichtung zum schützen eines arbeitsspeichers |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190059955A KR20190059955A (ko) | 2019-05-31 |
KR102523763B1 true KR102523763B1 (ko) | 2023-04-20 |
Family
ID=59982351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197012505A KR102523763B1 (ko) | 2016-10-04 | 2017-09-20 | 작업 메모리 보호 방법 및 그 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20190227724A1 (ko) |
JP (1) | JP6788748B2 (ko) |
KR (1) | KR102523763B1 (ko) |
CN (1) | CN109791524B (ko) |
DE (1) | DE102016219202A1 (ko) |
WO (1) | WO2018065213A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7006461B2 (ja) * | 2018-04-02 | 2022-01-24 | 株式会社デンソー | 電子制御装置および電子制御システム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070113044A1 (en) * | 2004-01-16 | 2007-05-17 | Day Michael N | Method and Apparatus for Preloading Translation Buffers |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356989B1 (en) * | 1992-12-21 | 2002-03-12 | Intel Corporation | Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled |
JP2757777B2 (ja) * | 1994-05-26 | 1998-05-25 | 住友金属工業株式会社 | メモリの不正アクセス検出方法及びシステム |
US5574922A (en) * | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
US5918250A (en) * | 1995-05-05 | 1999-06-29 | Intel Corporation | Method and apparatus for preloading default address translation attributes |
US6223256B1 (en) * | 1997-07-22 | 2001-04-24 | Hewlett-Packard Company | Computer cache memory with classes and dynamic selection of replacement algorithms |
JPH11242633A (ja) * | 1998-02-26 | 1999-09-07 | Hitachi Ltd | メモリ保護方式 |
US8112618B2 (en) * | 2004-04-08 | 2012-02-07 | Texas Instruments Incorporated | Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making |
EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
US20060036830A1 (en) * | 2004-07-31 | 2006-02-16 | Dinechin Christophe De | Method for monitoring access to virtual memory pages |
US20080028181A1 (en) * | 2006-07-31 | 2008-01-31 | Nvidia Corporation | Dedicated mechanism for page mapping in a gpu |
CN101008923A (zh) * | 2007-01-26 | 2007-08-01 | 浙江大学 | 面向异构多核体系的分段式存储空间管理方法 |
US8341627B2 (en) * | 2009-08-21 | 2012-12-25 | Mcafee, Inc. | Method and system for providing user space address protection from writable memory area in a virtual environment |
US8880844B1 (en) * | 2010-03-12 | 2014-11-04 | Trustees Of Princeton University | Inter-core cooperative TLB prefetchers |
US9405700B2 (en) * | 2010-11-04 | 2016-08-02 | Sonics, Inc. | Methods and apparatus for virtualization in an integrated circuit |
US8479295B2 (en) * | 2011-03-30 | 2013-07-02 | Intel Corporation | Method and apparatus for transparently instrumenting an application program |
US8875161B2 (en) * | 2011-06-08 | 2014-10-28 | The Mathworks, Inc. | Methods and systems for setting access to a list of class entities |
US20140101405A1 (en) * | 2012-10-05 | 2014-04-10 | Advanced Micro Devices, Inc. | Reducing cold tlb misses in a heterogeneous computing system |
US9201806B2 (en) * | 2013-01-04 | 2015-12-01 | International Business Machines Corporation | Anticipatorily loading a page of memory |
US9940268B2 (en) * | 2013-02-05 | 2018-04-10 | Arm Limited | Handling memory access protection and address translation in a data processing apparatus |
DE102014208848A1 (de) | 2014-05-12 | 2015-11-12 | Robert Bosch Gmbh | Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls |
CN105354155A (zh) * | 2015-12-03 | 2016-02-24 | 上海高性能集成电路设计中心 | 一种基于页表检查机制的存储器访问权限控制方法 |
-
2016
- 2016-10-04 DE DE102016219202.7A patent/DE102016219202A1/de active Pending
-
2017
- 2017-09-20 CN CN201780061495.0A patent/CN109791524B/zh active Active
- 2017-09-20 KR KR1020197012505A patent/KR102523763B1/ko active IP Right Grant
- 2017-09-20 JP JP2019538713A patent/JP6788748B2/ja active Active
- 2017-09-20 WO PCT/EP2017/073743 patent/WO2018065213A1/de active Application Filing
- 2017-09-20 US US16/338,806 patent/US20190227724A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070113044A1 (en) * | 2004-01-16 | 2007-05-17 | Day Michael N | Method and Apparatus for Preloading Translation Buffers |
Also Published As
Publication number | Publication date |
---|---|
US20190227724A1 (en) | 2019-07-25 |
DE102016219202A1 (de) | 2018-04-05 |
CN109791524B (zh) | 2023-11-07 |
CN109791524A (zh) | 2019-05-21 |
KR20190059955A (ko) | 2019-05-31 |
WO2018065213A1 (de) | 2018-04-12 |
JP2019535093A (ja) | 2019-12-05 |
JP6788748B2 (ja) | 2020-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10768832B2 (en) | Managing storage protection faults | |
EP2889777B1 (en) | Modifying memory permissions in a secure processing environment | |
EP1966706B1 (en) | Identifier associated with memory locations for managing memory accesses | |
US8578080B2 (en) | Secure handling of interrupted events utilizing a virtual interrupt definition table | |
KR102051816B1 (ko) | 메모리 보호 유닛들을 사용한 가상화 지원 게스트 오퍼레이팅 시스템 | |
JP5914145B2 (ja) | メモリ保護回路、処理装置、およびメモリ保護方法 | |
EP2955634B1 (en) | Paravirtualization-based interface for memory management in virtual machines | |
TW202008169A (zh) | 使用儲存在記憶體系統中的記憶體保護表的記憶體保護單元 | |
CN114222981A (zh) | 能力写入地址跟踪 | |
US20130007379A1 (en) | Secure and virtualizable performance counters | |
JP2023526811A (ja) | タグチェック装置及び方法 | |
KR102523763B1 (ko) | 작업 메모리 보호 방법 및 그 장치 | |
JP6679419B2 (ja) | メモリ保護ユニット、メモリ管理ユニット、及びマイクロコントローラ | |
US11003597B2 (en) | Memory domains protection method and apparatus with composite protection key numbers | |
CN112449698B (zh) | 用于数据处理的装置、方法和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |