KR102523763B1 - 작업 메모리 보호 방법 및 그 장치 - Google Patents

작업 메모리 보호 방법 및 그 장치 Download PDF

Info

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
Application number
KR1020197012505A
Other languages
English (en)
Other versions
KR20190059955A (ko
Inventor
앤드류 보그
아힘 섀퍼
군나르 필
개리 모건
폴 오스틴
Original Assignee
로베르트 보쉬 게엠베하
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로베르트 보쉬 게엠베하 filed Critical 로베르트 보쉬 게엠베하
Publication of KR20190059955A publication Critical patent/KR20190059955A/ko
Application granted granted Critical
Publication of KR102523763B1 publication Critical patent/KR102523763B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • 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 실시예에 따른 제어 장치의 개략도이다.
도 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)

  1. 메모리 보호 유닛을 이용하여 작업 메모리를 보호하는 방법(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).
  2. 삭제
  3. 제1항에 있어서,
    예외 처리기(16, 17, 18, 19, Y, N)가 액세스(15)를 요청하는 기계어 명령(14)에 따라 액세스 유형 및 액세스(15)에 관련된 타깃 영역 내의 타깃 주소를 디코딩하며;
    상기 액세스 유형 및 상기 타깃 주소에 따라 권한 체크(19)가 추가로 수행되는; 것을 특징으로 하는, 작업 메모리 보호 방법(10).
  4. 제3항에 있어서,
    추가로 제2 클래스의 하나 이상의 메모리 영역이 구성 테이블 내에 입력되며(13);
    액세스(15)가 허용되는 경우(Y), 예외 처리기(16, 17, 18, 19, Y, N)는 상기 구성 테이블 내의 메모리 영역을 타깃 영역으로 대체하고(18), 기계어 명령(14)의 재처리를 유발하는; 것을 특징으로 하는, 작업 메모리 보호 방법(10).
  5. 제4항에 있어서,
    구성 테이블 내에 제2 클래스의 복수의 메모리 영역이 입력되며(13);
    액세스(15)가 허용되는 경우(Y), 예외 처리기(16, 17, 18, 19, Y, N)는 사전 구성된 배제 전략에 따라 상기 제2 클래스의 등록된 메모리 영역들 중 하나의 메모리 영역을 선택하고, 구성 테이블 내에서 상기 선택된 메모리 영역을 타깃 영역으로 대체하며(18), 기계어 명령(14)의 재처리를 유발하는; 것을 특징으로 하는, 작업 메모리 보호 방법(10).
  6. 제1항 및 제3항 내지 제5항 중 어느 한 항에 있어서,
    제2 클래스의 메모리 영역들에 따라, 프로그램 실행 전에 검사 루틴이 생성되며;
    권한 체크(19)는 상기 검사 루틴의 호출을 포함하는; 것을 특징으로 하는, 작업 메모리 보호 방법(10).
  7. 제1항 및 제3항 내지 제5항 중 어느 한 항에 있어서,
    제2 클래스의 메모리 영역들은 플래시 메모리 내에 데이터 구조로서 저장되며(12);
    권한 체크(19)는 추가로 상기 데이터 구조에 따라 수행되는; 것을 특징으로 하는, 작업 메모리 보호 방법(10).
  8. 기계 판독 가능한 저장 매체에 저장되어 있고 제1항 및 제3항 내지 제5항 중 어느 한 항에 따른 방법(10)을 실행하도록 구성된 컴퓨터 프로그램.
  9. 제8항에 따른 컴퓨터 프로그램이 저장되어 있는 기계 판독 가능 저장 매체.
  10. 제1항 및 제3항 내지 제5항 중 어느 한 항에 따른 방법(10)을 실행하도록 구성된 장치(20).
KR1020197012505A 2016-10-04 2017-09-20 작업 메모리 보호 방법 및 그 장치 KR102523763B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7006461B2 (ja) * 2018-04-02 2022-01-24 株式会社デンソー 電子制御装置および電子制御システム

Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
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