KR20130036189A - 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한 - Google Patents

하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한 Download PDF

Info

Publication number
KR20130036189A
KR20130036189A KR1020127023100A KR20127023100A KR20130036189A KR 20130036189 A KR20130036189 A KR 20130036189A KR 1020127023100 A KR1020127023100 A KR 1020127023100A KR 20127023100 A KR20127023100 A KR 20127023100A KR 20130036189 A KR20130036189 A KR 20130036189A
Authority
KR
South Korea
Prior art keywords
memory
processor
mode
access
write access
Prior art date
Application number
KR1020127023100A
Other languages
English (en)
Other versions
KR101799261B1 (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 KR20130036189A publication Critical patent/KR20130036189A/ko
Application granted granted Critical
Publication of KR101799261B1 publication Critical patent/KR101799261B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

데이터 처리장치(2)는, 프로세서(8), 메모리(6) 및 메모리제어회로(12)를 구비한다. 프로세서(8)는 특권 모드와 사용자 모드를 포함하는 복수의 하드웨어 모드에서 동작한다. 특권 모드에서 동작할 때, 레지스터(46) 내부의 보안 플래그가 차단 메카니즘이 활성인 것을 표시하도록 설정된 경우, 프로세서(8)가 사용자 모드 내에서 기록가능한 메모리(6) 내부의 메모리 어드레스 영역(34, 38, 42)에서 명령어를 페치하지 못하도록 메모리 제어회로(12)에 의해 차단된다.

Description

하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한{RESTRICTING MEMORY AREAS FOR AN INSTRUCTION READ IN DEPENDENCE UPON A HARDWARE MODE AND A SECURITY FLAG}
본 발명은, 데이터 처리 시스템 분야에 관한 것이다. 특히, 본 발명은, 현재의 하드웨어 모드에 의존하여 복수의 하드웨어 동작 모드와 메모리 액세스 제어를 갖는 데이터 처리 시스템에 관한 것이다.
프로세서가 복수의 하드웨어 동작 모드를 갖는 데이터 처리 시스템을 제공하는 것이 알려져 있다. 예를 들어, 프로세서는 특권 모드와 사용자 모드를 포함하는 하드웨어 모드에서 동작할 수도 있다. 다른 용도를 위한 또 다른 하드웨어 모드가 존재할 수도 있다. 특권 모드는, 보통 운영체계 커널 등의 더욱 더 신뢰할 수 있는 프로그램에 사용되며, 프로세서가 사용자 모드에서 동작하고 있을 때에 비해 더 많은 메모리 영역에 액세스하게 된다. 사용자 모드는 일반적으로 응용 프로그램 등의 덜 신뢰할 수 프로그램에 사용되게 된다. 이에 따르면, 프로세서의 현재 동작 모드를 감지하고 프로세서가 특권 모드에 있지 않은 경우 소정의 메모리 영역에 대한 액세스를 방지하는 메모리 관리장치 또는 메모리 보호장치를 사용함으로써, 프로그램으로부터 소정의 메모리 영역에 대한 악의적이거나 우연한 액세스가 방지된다. 이와 같은 시스템 내부의 모델은, 특권 동작 모드가 사용자 모드보다 더 많은 시스템 자원, 예를 들면, 메모리 내부의 영역을 액세스하게 하는 것이다.
일어날 수 있는 한가지 종류의 악의적인 보안 공격, 즉 불행한 잘못된 동작은, 특권 모드에서 실행하는 동안, 시스템이 사용자 모드에서 기록가능한 메모리 영역 내부에 기억된 프로그램 명령어들을 부적절하게 실행하게 되는 것이다. 이에 따르면, 일례로서, 어떤 사람이 사용자 모드에서 액세스가능한 메모리 영역에 악의적인 프로그램 명령어를 기록한 후, 사용자 모드에서 액세스가능한 메모리 영역에서 판독된 악의적인 프로그램 명령어를 실행하면서, 메모리의 보안 영역에 대한 액세스가 행해질 수도 있는 특권 모드로 프로세서를 전환할 수도 있다.
일면에 따르면, 본 발명은,
일련의 프로그램 명령어에 응답하여 처리연산을 행하는 프로세서와,
상기 프로세서와 메모리에 접속되고 상기 프로세서에 의한 상기 메모리에 대한 액세스를 제어하도록 구성된 메모리 제어회로를 구비하고,
상기 프로세서는 적어도 제 1 모드와 제 2 모드를 포함하는 복수의 하드웨어 동작 모드를 갖고,
상기 메모리 제어회로는,
(i) 상기 프로세서가 상기 제 1 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 제 2 부분에 대한 적어도 기록 액세스를 허용하지 않고,
(ii) 상기 프로세서가 상기 제 2 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 상기 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 상기 제 2 부분에 대한 기록 액세스를 허용하도록,
상기 메모리에 대한 액세스를 제어하고,
상기 메모리 제어회로는, 설정값을 갖는 보안 플래그에 응답하여, 상기 제 2 모드에서 상기 프로세서에 의해 실행하기 위한 상기 프로그램 명령어를 상기 메모리의 상기 제 1 부분에서 상기 프로세서가 판독하지 못하게 하는, 데이터 처리장치를 제공한다.
본 발명은, 프로그램 명령어가 사용자 모드에서 기록될 수도 있는 메모리의 영역에서 판독될 때, 실제로, 시스템이 특권 모드에서 이 프로그램 명령어를 정당하게 실행할 이유가 거의 없다는 것을 인식하고 있다. 특권 모드에서 실행해야 할 코드는 보통 이 특권 모드에서만 기록될 수 있는 메모리 내부에 기억된다. 이것은, 특권 모드에서 실행해야 할 프로그램 명령어를 악의적인 변경 뿐만 아니라 부적절한 우연한 변경으로부터 보호한다. 따라서, 본 발명은, 메모리 제어회로를 사용하여, 사용자 모드에서 기록될 수도 있는 메모리 영역으로부터 특권 모드에서 실행하기 위한 상기 프로그램 명령어를 프로세서가 판독하지 못하게 함으로써, 사용자 모드보다 특권 모드에 더 많은 액세스 권한을 제공하는 이 기술분야에서의 일반적인 기술적 편견에 반대한다. 이와 같은 메모리 제어동작은 보안 플래그에 의해 온 및 오프로 전역적으로 전환됨으로써, 설계자가 사용자 모드에서 기록가능한 메모리의 영역 내부에 기억된 프로그램 명령어를 특권 모드에서 실행하기를 원하면서도, 메모리 제어회로에 의해 주어진 하드웨어 시행 메카니즘(hardware enforcement mechanism)을 제어하는 보안 플래그를 사용하여 이와 같은 기능을 스위치오프시킬 수 있는 간단한 방법을 제공하는 시스템을 하드웨어가 지원할 수 있어도 된다. 이때, 상기한 설명에서는, 하드웨어 모드를 특권 모드와 사용자 모드로 언급하였지만, 본 발명은 이와 같은 모드들을 갖는 시스템 내에서의 사용에 한정되지 않으며, 제 2 모드가 제 1 모드보다 더 많은 메모리 영역을 액세스하면서도 제 1 모드에서 기록된 메모리 영역에서 판독된 프로그램 명령어를 실행하는 것이 선택적으로 금지되는 제 1 모드 및 제 2 모드를 갖는 시스템 내에서 본 발명이 더욱 일반적으로 사용될 수도 있다는 것은 자명하다.
메모리 제어회로는, 제어 데이터에 응답하여, 메모리 내부의 1개 이상의 메모리 어드레스 영역을 상기 제 1 부분의 일부로서 식별하고 메모리 내부의 1개 이상의 메모리 어드레스 영역을 상기 제 2 부분의 일부로서 식별해도 된다. 따라서, 제 1 부분과 제 2 부분은 메모리 내부에서 인접할 필요는 없으며, 메모리 제어회로에 의해 판독된 제어 데이터에 의해 정의되어도 된다. 일부 실시예에서, 이것은 메모리 관리부에 의해 판독된 메모리 페이지 테이블 데이터이어도 된다.
제 1 모드가 응용 프로그램을 실행하기 위한 사용자 모드이고 제 2 모드가 적어도 운영체계 커널 프로그램을 실행하기 위한 특권 모드인 시스템에서 본 발명이 특히 유용하다.
보안 플래그가 설정값을 갖는 경우, 제 2 모드에서 동작하는 프로세서는 메모리 제어회로에 의해 메모리의 제 1 부분에서 데이터 값을 판독하도록 허용되어도 되는데, 이것은 이와 같은 데이터 값이 실행할 명령어로서 페치되는 것이 아니고, 그 대신에 조작할 데이터 값으로서 데이터 경로 내부로 페치되기 때문이다.
이때, 메모리 제어회로는 다양한 다른 형태를 취할 수 있다는 것은 자명하다. 메모리 제어회로의 일부 예로는 메모리 관리부와 메모리 보호부를 들 수 있다.
프로세서가 제 2 모드에 있을 때에는 보안 플래그가 프로그램 명령어 제어하에서 간편하게 기록되어도 되며, 프로세서가 제 1 모드에 있을 때에는 프로그램 명령어 제어하에서 보안 플래그가 기록될 수 없다. 이에 따르면, 제 1 모드에서 동작할 때 보안 플래그의 값을 변경함으로써, 보안 플래그에 의해 제공된 보안을 우회할 수 없게 된다.
또 다른 일면에 따르면,
일련의 프로그램 명령어에 응답하여 처리연산을 행하는 프로세서수단과,
상기 프로세서수단과 메모리수단에 접속되고 상기 프로세서수단에 의한 상기 메모리수단에 대한 액세스를 제어하기 위한 데이터를 기억하는 메모리 제어수단을 구비하고,
상기 프로세서수단은 적어도 제 1 모드와 제 2 모드를 포함하는 복수의 하드웨어 동작모드를 갖고,
상기 메모리 제어수단은,
(i) 상기 프로세서수단이 상기 제 1 모드에 있을 때에는, 상기 메모리 제어수단이 상기 메모리수단의 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리수단의 제 2 부분에 대한 적어도 기록 액세스를 허용하지 않고,
(ii) 상기 프로세서수단이 상기 제 2 모드에 있을 때에는, 상기 메모리 제어수단이 상기 메모리수단의 상기 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리수단의 상기 제 2 부분에 대한 기록 액세스를 허용하도록,
상기 메모리수단에 대한 액세스를 제어하고,
상기 메모리 제어수단은, 설정값을 갖는 보안 플래그에 응답하여, 상기 제 2 모드에서 상기 프로세서수단에 의해 실행하기 위한 상기 프로그램 명령어를 상기 메모리수단의 상기 제 1 부분에서 상기 프로세서수단이 판독하지 못하게 하는, 데이터 처리장치를 제공한다.
또 다른 일면에 따르면, 본 발명은 데이터 처리방법을 제공하며, 상기 방법은,
일련의 프로그램 명령어에 응답하여 프로세서를 사용하여 처리연산을 행하는 단계와,
상기 프로세서가 상기 프로세서와 메모리에 접속된 메모리 제어회로를 사용하여 상기 메모리에 대한 액세스를 제어하는 단계를 포함하고,
상기 프로세서는 적어도 제 1 모드와 제 2 모드를 포함하는 복수의 하드웨어 동작 모드를 갖고,
상기 메모리 제어회로는,
(i) 상기 프로세서가 상기 제 1 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 제 2 부분에 대한 적어도 기록 액세스를 허용하지 않고,
(ii) 상기 프로세서가 상기 제 2 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 상기 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 상기 제 2 부분에 대한 기록 액세스를 허용하도록,
상기 메모리에 대한 액세스를 제어하고,
상기 메모리 제어회로는, 설정값을 갖는 보안 플래그에 응답하여, 상기 제 2 모드에서 상기 프로세서에 의해 실행하기 위한 상기 프로그램 명령어를 상기 메모리의 상기 제 1 부분에서 상기 프로세서가 판독하지 못하게 한다.
본 발명은, 전술한 특징을 갖는 가상머신의 형태로 구현되어도 된다.
이하, 다음의 첨부도면을 참조하여 본 발명의 실시예를 예시적으로 설명한다:
도 1은 프로세서와 메모리를 구비한 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는, 프로세서의 하드웨어 모드, 판독이 명령어 페치인지 여부와, 판독이 사용자 모드에서 액세스 가능한 메모리 위치에서 행해지는지 여부에 의존하여, 메모리 판독 동작을 제어하는 예를 개략적으로 나타낸 흐름도이다.
도 3은 다수의 하드웨어 동작 모드와 그것의 관련된 액세스 권한 및 전형적인 용도를 개략적으로 나타낸 것이다.
도 4는 가상머신 구현을 개략적으로 나타낸 것이다.
도 1은 메모리(6)에 접속된 집적회로(4)를 구비한 데이터 처리 시스템(2)을 개략적으로 나타낸 것이다. 집적회로(4)를, 프로세서(8), 메모리 인터페이스 회로(10) 및 메모리 관리부(12)를 구비한다. 프로세서(8) 내부에는, 프로그램 명령어들 I의 제어하에서 메모리(6)에서 페치된 데이터 값들 D에 대해 처리연산을 수행하는 데이터 경로를 이루는 범용 레지스터 뱅크(14), 승산기(16), 시프터(18) 및 가산기(20)가 설치되어 있다. 명령어 페치부(22)에 의해 메모리(6)에서 페치된 프로그램 명령어들 I는 명령어 파이프라인(24)에 주어진다. 명령어 파이프라인(24)은, 명령어 디코더(26)를 제어하여 데이터 경로 14, 16, 18, 20에 대한 제어신호를 생성함으로써, 데이터 경로 14, 16, 18, 20을 구성하고 제어하여, 디코드되고 있는 프로그램 명령어에 의해 지정된 원하는 처리연산(들)을 행한다. 이때, 프로세서(8)는 일반적으로 간략을 기하기 위해 도 1에서는 생략한 많은 더 많은 회로소자를 포함한다는 것은 본 기술분야의 당업자에게 있어서 자명할 것이다.
집적회로(4) 내부에는 메모리 인터페이스 회로(10)와 메모리 관리부(12)가 더 포함된다. 메모리 인터페이스 회로(10)는, 집적회로(4)로부터 메모리(6)로 전송되는 메모리 액세스 신호(이것은 판독 또는 기록일 수 있다)를 발생하는 역할을 한다. 이들 메모리 액세스 신호는 메모리(6) 내부의 물리 어드레스를 사용한다. 프로세서(8)는 가상 어드레스를 이용하여 동작하는데, 이와 같은 배치는 본 발명이 사용될 수 있는 시스템의 일례에 지나지 않는다. 메모리 관리부(12)는 페이지 테이블 데이터(30)를 사용하여 가상 어드레스를 물리 어드레스로 변환한다. 이 페이지 테이블 데이터는 메모리 관리부(12)에 대한 제어 데이터이다. 최근에 액세스한 메모리 영역의 페이지 테이블 데이터는 메모리 관리부(12) 내부의 변환 색인 버퍼(translation lookaside buffer)(28) 내부에 기억된다. 특정한 메모리 액세스에 대한 페이지 테이블 데이터가 변환 색인 버퍼(28) 내부에 존재하지 않는 경우에는, 메모리(6) 내부의 페이지 테이블 데이터(30)의 전체 기억장치로부터 적절한 페이지 테이블 데이터가 페치된다.
메모리(6)는 메모리 인터페이스 회로(10)에 의해 발생된 물리 어드레스를 사용하여 어드레스가 지정된 메모리 어드레스 공간을 제공한다. 메모리(6)는 모든 가능한 메모리 어드레스 공간에 대응하는 스토리지를 제공하지 않아도 된다. 메모리 어드레스 공간은 메모리 어드레스 영역들 32, 34, 36, 38, 40, 42 등으로 분할된다. 이들 메모리 영역들 32 내지 42의 각각은 관련된 페이지 테이블 데이터를 갖고 있으며, 이것은 메모리 관리부(12)에 의해 사용되어 이들 메모리 영역에 대한 액세스를 제어한다. 본 기술분야의 당업자에게 있어서 자명한 것과 같이, 이와 같은 페이지 테이블 데이터는, 프로세서(8)가 특권 모드에서 동작하고 있거나 특권 모드 또는 사용자 모드 중 어느 한 개에서 동작하고 있는 경우에 해당 메모리 어드레스 영역을 액세스할 수 있는지(판독 전용이거나 판독/기록) 여부를 표시하는 데이터를 포함하여도 된다. 페이지 테이블 데이터의 이와 같은 부분은 변환 색인 버퍼(28)의 일부로서 예시된 P/U 플래그 데이터(44)에 의해 표시된다. 페이지 테이블 데이터는 허용된 액세스가 판독 전용인지 판독/기록인지 표시하는 R/W 플래그 데이터(43)를 더 포함한다. 도 1에 도시된 테이블은, 다양한 액세스 권한에 매핑된 P/U 플래그 데이터(44)와 R/W 플래그 데이터(43)의 다양한 값의 일례를 제공한다. 메모리 어드레스 영역들 32, 34, 36, 40은 함께 프로세서(8)가 사용자 모드에 있을 때 기록가능하지 않은 메모리(6)의 제 2 부분을 형성한다. 메모리 어드레스 영역 32, 36 및 40은 특권 모드에서만 액세스가능하다. 메모리 어드레스 영역 34는 사용자 모드에서 판독 전용 액세스가능하지만, 사용자 모드에서 기록될 수 없다. 메모리 어드레스 38 및 42는, 프로세서가 사용자 모드에 있을 때 기록 및 판독되어도 되고, 프로세서(8)가 특권 모드에 있을 때 기록되어도 되고, 프로세서(8)가 특권 모드에 있을 때 데이터 값에 대해 판독되어도 되지만, 프로세서(8)가 특권 모드에 있을 때 명령값에 대해서는 판독되지 못하는 메모리(6)의 제 1 부분을 형성한다.
이와 같은 방식은 본 실시예에서는 메모리 관리부(12)에 의해 실시된다. 메모리 관리부(12)는, 프로세서(8)로부터 프로세서(8)가 현재 특권 모드에 있는지 또는 사용자 모드에 있는지를 표시하는 입력신호 P/U를 수신한다. 메모리 관리부(12)는, 메모리 인터페이스 회로(10)로부터, 행해지고 있는 메모리 액세스가 명령어 페치와 관련되는지 또는 데이터 액세스 동작과 관련되는지를 표시하는 입력신호 I/D를 더 수신한다. 이들 입력신호와 메모리 관리부(12) 내부의 레지스터(46) 내에 기억된 보안 플래그의 값을 사용하여, 특권 모드에서 메모리(6)의 제 1 부분 38 및 42에서 판독된 프로그램 명령어의 실행의 방지가 실시된다.
도 2는 메모리 관리부(12)의 동작의 일부를 개략적으로 예시한 흐름도이다. 이때, 메모리 관리부(12)가 메모리 보호부의 형태로 주어질 수도 있다는 것은 자명하다. 스텝 48에서는, 프로세서(8)로부터 메모리 인터페이스 회로(10)에 메모리 판독 요청 작업이 수신될 때까지 처리를 기다린다. 그후, 스텝 50에서는, 메모리 관리부(12)에의 P/U 입력신호를 사용하여 프로세서(8)가 현재 특권 모드에 있는지 여부를 판정한다. 프로세서(8)가 특권 모드에 있지 않으면, 이와 같은 간단한 예에서는, 프로세서(8)가 사용자 모드에 있게 되고, 스텝 52로 처리가 진행된다. 스텝 52에서는, 판독 액세스가 시도되고 있는 메모리 어드레스가 페이지 테이블 데이터(30) 내에서 특권 모드에 있을 때에만 액세스가능한 것으로 표시되어 있는지 여부를 판정한다. 메모리 어드레스가 특권 전용으로 표시되어 있지 않으면, 판독 액세스가 허용되는 스텝 54로 처리를 진행한다. 그러나, 메모리 어드레스가 특권 전용 어드레스로 표시되어 있으면, 스텝 56이 액세스를 금지한다.
스텝 50에서의 판정결과 프로세서(8)가 현재 특권 모드에서 있으면, 스텝 58로 처리를 진행한다. 스텝 58에서는, 레지스터(46) 내부에 기억된 보안 플래그가 현재 설정되어 있는지 여부를 판정한다. 보안 플래그가 설정되어 있으면(설정값을 가지면), 프로세서(8)가 메모리(6)의 제 1 부분 38 및 42에서 판독된 프로그램 명령어를 실행하는 것을 허용하지 않는다는 정책의 실행이 실시되게 된다. 스텝 58의 판정결과 보안 플래그가 설정되지 않았으면, 스텝 60으로 처리를 진행하여 액세스를 허용한다.
스텝 58에서 판정할 때 보안 플래그가 설정되어 있으면, 스텝 62로 처리를 진행하여, 지금 행해지고 있는 액세스가 명령어 페치인지 데이터 액세스인지에 대한 판정이 행해진다. 이와 같은 판정은 메모리 관리부(12)에의 I/D 입력신호를 사용하여 행해져도 된다. 행해지고 있는 액세스가 데이터 액세스인 경우에는, 스텝 60으로 처리를 진행하여, 마찬가지로 액세스가 허용된다. 스텝 58에서 판정할 때 보안 플래그가 설정되고 스텝 62에서 판정할 때 액세스 동작이 명령어 페치인 경우에는, 스텝 64로 처리를 진행하여, 해당 메모리 어드레스가 메모리(6)의 제 1 부분의 일부, 즉 본 실시예에서는, 판독 액세스가 시도되고 있는 어드레스에 대해 페이지 테이블 데이터(즉, P/U 플래그 데이터(44) 및 R/W 플래그 데이터(43))에 의해 표시된 메모리 영역 38 및 42 중 한 개인지 여부에 대해 판정이 행해진다. 메모리 어드레스가 제 1 부분 내부가 아닌 경우에는, 명령어 페치 동작이 허용되고 스텝 60으로 처리를 진행한다. 그러나, 메모리의 제 1 부분 38 및 42로부터 명령어 페치 동작이 시도되고 있는 경우에는, 스텝 66으로 처리를 진행하여, 해당 액세스가 방지된다.
스텝 56 또는 66 중 어느 한 개에서와 같이, 메모리 액세스가 방지되면, 메모리 중단이 기동되어, 메모리 중단 예외처리 프로그램 코드가 실행될 수도 있다. 이와 같은 형태의 메모리 중단처리는 본 기술분야의 당업자에게 있어서는 익숙할 것이다.
도 3은 프로세서(8)의 다수의 하드웨어 모드(또는 가상머신 구현에서 이와 같은 하드웨어 모드들을 에뮬레이트하는 모드)를 개략적으로 나타낸 것이다. 본 실시예에서는, 단지 2가지 모드, 즉 특권 모드와 사용자 모드를 예시하였다. 이때, 본 발명은 더 큰 수의 모드를 갖는 프로세서에서도 사용될 수 있다는 것은 자명하다. 특권 모드는 특권으로 표시된 메모리 어드레스 영역에 대한 판독 전용 또는 판독/기록 액세스를 허용한다. 또한, 특권 모드는 데이터 경로를 통해 사용자 모드 판독/기록 액세스가능으로 표시된 메모리 어드레스 영역에 대한 판독 전용 또는 판독/기록 액세스도 허용한다. 특권 모드 내에서는, 레지스터(46) 내부의 보안 플래그가 설정되어 있는 경우에, 사용자 모드 판독/기록 액세스가능 메모리로부터의 명령어 실행이 허용되지 않는다. 그러나, 위에서 언급한 특권 메모리에 대한 판독 전용 또는 판독/기록 액세스는, 특권 모드에 있을 때에는, 특권 메모리로부터 페치된 명령어가 실행될 수 있도록 허용한다.
사용자 모드에서 동작할 때에는, 특권 모드 메모리 어드레스 영역으로 표시된 메모리 어드레스 영역에는 판독 전용 또는 판독/기록 액세스가 허용되지 않는다. 그러나, 사용자 모드 메모리 어드레스 영역으로 표시된 메모리 어드레스 영역에는 판독 전용 또는 판독/기록 액세스가 허용된다.
이때, 다양한 종류의 프로그램이 일반적으로 다양한 하드웨어 모드에서 실행된다는 것은 자명하다. 운영체계 커널 프로그램 등의 더 신뢰할 수 있는 프로그램이 보통 특권 모드 내에서 작동한다. 응용 프로그램은 보통 사용자 모드 내에서 작동한다.
사용자 모드에서 기록가능한 메모리 내부에 기억된 프로그램 명령어의 특권 모드 실행이 허용될지 여부를 제어하는 레지스터(46) 내부의 보안 플래그는 프로그램 명령어 제어하에서 설정된다. 레지스터(46)는, 코프로세서 명령어를 사용하여 보안 플래그를 설정하도록 기록될 수도 있는 코프로세서 레지스터로서 구성되어도 된다. 보안 플래그를 사용하여 주어지고 있는 메카니즘의 보안을 유지하기 위해, 보안 플래그가 특권 모드에 있을 때에만 기록되어도 된다. 이와 같은 구성은, 악의적인, 또는 적어도 권한이 없는 사용자 모드 프로그램이 보안 플래그의 설정을 해지함으로써, 사용자 모드에서 기록가능한 메모리 내부에 기억된 프로그램 명령어의 특권 모드 실행을 허용하는 것을 방지한다.
도 4는 사용될 수 있는 가상머신 구현을 나타낸 것이다. 전술한 실시예들은 해당 기술을 지원하는 특정한 프로세싱 하드웨어를 작동하는 장치 및 방법 면에서 본 발명을 구현하지만, 하드웨어 장치의 소위 가상머신 구현을 제공하는 것도 가능하다. 이들 가산머신 구현은 가상머신 프로그램(51)을 지원하는 호스트 운영체계(520)를 실행하는 호스트 프로세서(530) 상에서 실행된다. 일반적으로, 적당한 속도에서 실행되는 가상머신 구현을 제공하기 위해서는 크고 강력한 프로세서가 필요하지만, 호환성이나 재사용(re-use) 이유로 인해 다른 프로세서에 네이티브한 코드를 실행할 필요가 있는 경우 등의 특정한 환경에서는 이와 같은 접근방식이 정당화될 수 있다. 가상머신 프로그램(510)은, 가상머신 프로그램(510)에 의해 모델링되고 있는 장치인 실제 하드웨어에 의해 주어지는 응용 프로그램 인터페이스와 동일한, 응용 프로그램(500)에 대한 응용 프로그램 인터페이스를 제공한다. 따라서, 전술한 메모리 액세스의 제어를 포함하는 프로그램 명령어가 가상머신 프로그램(51)을 사용하는 응용 프로그램(500) 내에서 실행되어, 가상머신 하드웨어와의 상호작용을 모델링할 수도 있다.

Claims (15)

  1. 일련의 프로그램 명령어에 응답하여 처리연산을 행하는 프로세서와,
    상기 프로세서와 메모리에 접속되고 상기 프로세서에 의한 상기 메모리에 대한 액세스를 제어하도록 구성된 메모리 제어회로를 구비하고,
    상기 프로세서는 적어도 제 1 모드와 제 2 모드를 포함하는 복수의 하드웨어 동작 모드를 갖고,
    상기 메모리 제어회로는,
    (i) 상기 프로세서가 상기 제 1 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 제 2 부분에 대한 적어도 기록 액세스를 허용하지 않고,
    (ii) 상기 프로세서가 상기 제 2 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 상기 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 상기 제 2 부분에 대한 기록 액세스를 허용하도록,
    상기 메모리에 대한 액세스를 제어하고,
    상기 메모리 제어회로는, 설정값을 갖는 보안 플래그에 응답하여, 상기 제 2 모드에서 상기 프로세서에 의해 실행하기 위한 상기 프로그램 명령어를 상기 메모리의 상기 제 1 부분에서 상기 프로세서가 판독하지 못하게 하는, 데이터 처리장치.
  2. 제 1항에 있어서,
    상기 프로세서는 실행하기 위한 프로그램 명령어를 상기 메모리의 상기 제 2 부분에서 판독하는, 데이터 처리장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 메모리 제어회로는, 제어 데이터에 응답하여, 상기 메모리 내부의 1개 이상의 메모리 어드레스 영역을 상기 제 1 부분의 일부로서 식별하고 상기 메모리 내부의 1개 이상의 메모리 어드레스 영역을 상기 제 2 부분의 일부로서 식별하는, 데이터 처리장치.
  4. 제 1항, 제 2항 또는 제 3항 중 어느 한 항에 있어서,
    상기 제 1 모드가 응용 프로그램을 실행하기 위한 사용자 모드이고 상기 제 2 모드가 적어도 운영체계 커널 프로그램을 실행하기 위한 특권 모드인, 데이터 처리장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 보안 플래그가 상기 설정값을 갖고 상기 프로세서가 상기 제 2 모드에서 있을 때, 상기 메모리 제어회로는 상기 프로세서가 상기 메모리의 상기 제 1 부분에서 데이터 값을 판독하도록 허용하는, 데이터 처리장치.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서,
    상기 메모리 제어회로는,
    메모리 관리부와,
    메모리 보호부
    중에서 한 개를 구비한, 데이터 처리장치.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    상기 프로세서가 상기 제 2 모드에 있을 때에는 상기 보안 플래그가 프로그램 명령어 제어하에서 기록되고, 상기 프로세서가 상기 제 1 모드에 있을 때에는 프로그램 명령어 제어하에서 상기 보안 플래그가 기록될 수 없는, 데이터 처리장치.
  8. 일련의 프로그램 명령어에 응답하여 처리연산을 행하는 프로세서수단과,
    상기 프로세서수단과 메모리수단에 접속되고 상기 프로세서수단에 의한 상기 메모리수단에 대한 액세스를 제어하기 위한 데이터를 기억하는 메모리 제어수단을 구비하고,
    상기 프로세서수단은 적어도 제 1 모드와 제 2 모드를 포함하는 복수의 하드웨어 동작모드를 갖고,
    상기 메모리 제어수단은,
    (i) 상기 프로세서수단이 상기 제 1 모드에 있을 때에는, 상기 메모리 제어수단이 상기 메모리수단의 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리수단의 제 2 부분에 대한 적어도 기록 액세스를 허용하지 않고,
    (ii) 상기 프로세서수단이 상기 제 2 모드에 있을 때에는, 상기 메모리 제어수단이 상기 메모리수단의 상기 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리수단의 상기 제 2 부분에 대한 기록 액세스를 허용하도록,
    상기 메모리수단에 대한 액세스를 제어하고,
    상기 메모리 제어수단은, 설정값을 갖는 보안 플래그에 응답하여, 상기 제 2 모드에서 상기 프로세서수단에 의해 실행하기 위한 상기 프로그램 명령어를 상기 메모리수단의 상기 제 1 부분에서 상기 프로세서수단이 판독하지 못하게 하는, 데이터 처리장치.
  9. 일련의 프로그램 명령어에 응답하여 프로세서를 사용하여 처리연산을 행하는 단계와,
    상기 프로세서가 상기 프로세서와 메모리에 접속된 메모리 제어회로를 사용하여 상기 메모리에 대한 액세스를 제어하는 단계를 포함하고,
    상기 프로세서는 적어도 제 1 모드와 제 2 모드를 포함하는 복수의 하드웨어 동작 모드를 갖고,
    상기 메모리 제어회로는,
    (i) 상기 프로세서가 상기 제 1 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 제 2 부분에 대한 적어도 기록 액세스를 허용하지 않고,
    (ii) 상기 프로세서가 상기 제 2 모드에 있을 때에는, 상기 메모리 제어회로가 상기 메모리의 상기 제 1 부분에 대한 기록 액세스를 허용하고 상기 메모리의 상기 제 2 부분에 대한 기록 액세스를 허용하도록,
    상기 메모리에 대한 액세스를 제어하고,
    상기 메모리 제어회로는, 설정값을 갖는 보안 플래그에 응답하여, 상기 제 2 모드에서 상기 프로세서에 의해 실행하기 위한 상기 프로그램 명령어를 상기 메모리의 상기 제 1 부분에서 상기 프로세서가 판독하지 못하게 하는, 데이터 처리방법.
  10. 제 9항에 있어서,
    상기 프로세서는 실행하기 위한 프로그램 명령어를 상기 메모리의 상기 제 2 부분에서 판독하는, 데이터 처리방법.
  11. 제 9항 또는 제 10항에 있어서,
    상기 메모리 제어회로는, 제어 데이터에 응답하여, 상기 메모리 내부의 1개 이상의 메모리 어드레스 영역을 상기 제 1 부분의 일부로서 식별하고 상기 메모리 내부의 1개 이상의 메모리 어드레스 영역을 상기 제 2 부분의 일부로서 식별하는, 데이터 처리방법.
  12. 제 9항, 제 10항 또는 제 11항 중 어느 한 항에 있어서,
    상기 제 1 모드가 응용 프로그램을 실행하기 위한 사용자 모드이고 상기 제 2 모드가 적어도 운영체계 커널 프로그램을 실행하기 위한 특권 모드인, 데이터 처리방법.
  13. 제 9항 내지 제 12항 중 어느 한 항에 있어서,
    상기 보안 플래그가 상기 설정값을 갖고 상기 프로세서가 상기 제 2 모드에서 있을 때, 상기 메모리 제어회로는 상기 프로세서가 상기 메모리의 상기 제 1 부분에서 데이터 값을 판독하도록 허용하는, 데이터 처리방법.
  14. 제 9항 내지 제 13항 중 어느 한 항에 있어서,
    상기 메모리 제어회로는,
    메모리 관리부와,
    메모리 보호부
    중에서 한 개를 구비한, 데이터 처리방법.
  15. 컴퓨터 프로그램에 의해, 청구항 9에 기재된 방법을 실행하기 위한 가상머신장치를 제공하도록 제어된 프로세싱회로를 갖는 데이터 처리장치.
KR1020127023100A 2010-02-16 2010-12-16 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한 KR101799261B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/656,786 2010-02-16
US12/656,786 US8301856B2 (en) 2010-02-16 2010-02-16 Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
PCT/GB2010/052105 WO2011101609A1 (en) 2010-02-16 2010-12-16 Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag

Publications (2)

Publication Number Publication Date
KR20130036189A true KR20130036189A (ko) 2013-04-11
KR101799261B1 KR101799261B1 (ko) 2017-11-20

Family

ID=43629421

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127023100A KR101799261B1 (ko) 2010-02-16 2010-12-16 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한

Country Status (10)

Country Link
US (1) US8301856B2 (ko)
JP (1) JP5571201B2 (ko)
KR (1) KR101799261B1 (ko)
CN (1) CN102763092B (ko)
BR (1) BR112012017703B1 (ko)
DE (1) DE112010005269T5 (ko)
GB (1) GB2488938B (ko)
IL (1) IL220417A (ko)
RU (1) RU2513909C1 (ko)
WO (1) WO2011101609A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9672164B2 (en) 2012-05-31 2017-06-06 Nxp Usa, Inc. Methods and systems for transitioning between a user state and a supervisor state based on a next instruction fetch address
WO2014002079A2 (en) * 2012-06-29 2014-01-03 Happy Cloud Inc. Managing the writing of a dataset to a data storage device
CN102799489B (zh) * 2012-07-19 2014-04-16 腾讯科技(深圳)有限公司 对终端进行控制的方法、装置及终端
US9489316B2 (en) * 2013-03-15 2016-11-08 Freescale Semiconductor, Inc. Method and device implementing execute-only memory protection
US10275593B2 (en) * 2013-04-01 2019-04-30 Uniquesoft, Llc Secure computing device using different central processing resources
US10061940B2 (en) * 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
JP5920595B2 (ja) 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
US20150254145A1 (en) * 2014-03-07 2015-09-10 Microsoft Corporation Operating system/hypervisor efficiencies for sub-divided privilege levels
GB2525596B (en) 2014-04-28 2021-05-26 Arm Ip Ltd Access control and code scheduling
US10489309B2 (en) 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
US9594687B2 (en) * 2015-04-14 2017-03-14 Google Inc. Virtualization-aware prefetching
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
GB2554940B (en) * 2016-10-14 2020-03-04 Imagination Tech Ltd Out-of-bounds recovery circuit
FR3065553B1 (fr) * 2017-04-20 2019-04-26 Idemia Identity And Security Procede d'execution d'un programme destine a etre interprete par une machine virtuelle protege contre des attaques par injection de faute
CN108154032B (zh) * 2017-11-16 2021-07-30 中国科学院软件研究所 具有内存完整性保障功能的计算机系统信任根构建方法
US10635831B1 (en) * 2018-01-06 2020-04-28 Ralph Crittenden Moore Method to achieve better security using a memory protection unit
EP3828708B1 (en) * 2019-11-29 2024-04-24 Johannes Gutenberg-Universität Mainz Method and system for controlling a switch in the execution mode of a processor
CN111274555B (zh) * 2020-01-15 2022-11-18 福建杰木科技有限公司 Flash存储器中的代码保护方法及保护装置
CN112612519B (zh) * 2020-12-11 2022-06-21 成都海光微电子技术有限公司 一种取指方法、装置、电子设备及存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522075A (en) 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US6895479B2 (en) * 2000-11-15 2005-05-17 Texas Instruments Incorporated Multicore DSP device having shared program memory with conditional write protection
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
AU2003264781A1 (en) 2002-09-03 2004-03-29 Sap Aktiengesellschaft Dynamic access to data
JP2004145605A (ja) * 2002-10-24 2004-05-20 Matsushita Electric Ind Co Ltd プロセッサ
JP4347582B2 (ja) * 2003-02-04 2009-10-21 パナソニック株式会社 情報処理装置
US20040243783A1 (en) * 2003-05-30 2004-12-02 Zhimin Ding Method and apparatus for multi-mode operation in a semiconductor circuit
WO2006056988A2 (en) * 2004-11-24 2006-06-01 Discretix Technologies Ltd. System, method and apparatus of securing an operating system
US7874009B2 (en) * 2005-05-26 2011-01-18 Panasonic Corporation Data processing device
US20070192826A1 (en) * 2006-02-14 2007-08-16 Microsoft Corporation I/O-based enforcement of multi-level computer operating modes
JP4818793B2 (ja) * 2006-04-20 2011-11-16 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びメモリアクセスの制御方法
CN101154212B (zh) * 2006-09-29 2012-01-25 上海海尔集成电路有限公司 一种8位兼容c51指令集微控制器
KR101396831B1 (ko) 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US8051263B2 (en) * 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
CN201177809Y (zh) * 2008-04-11 2009-01-07 吴治杰 可调整读写状态的储存装置

Also Published As

Publication number Publication date
CN102763092B (zh) 2015-08-12
GB2488938A (en) 2012-09-12
JP5571201B2 (ja) 2014-08-13
CN102763092A (zh) 2012-10-31
WO2011101609A1 (en) 2011-08-25
GB201210574D0 (en) 2012-08-01
BR112012017703B1 (pt) 2020-12-15
DE112010005269T5 (de) 2013-04-25
JP2013519934A (ja) 2013-05-30
BR112012017703A2 (pt) 2016-04-05
IL220417A (en) 2015-02-26
KR101799261B1 (ko) 2017-11-20
GB2488938B (en) 2017-03-08
US8301856B2 (en) 2012-10-30
IL220417A0 (en) 2012-08-30
RU2012139625A (ru) 2014-03-27
US20110202739A1 (en) 2011-08-18
RU2513909C1 (ru) 2014-04-20

Similar Documents

Publication Publication Date Title
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
JP5000573B2 (ja) 保護された関数呼び出し
EP1939754B1 (en) Providing protected access to critical memory regions
JP4989543B2 (ja) メモリドメインを基にしたデータ処理システム内のセキュリティ制御
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
CN112602069B (zh) 用于数据处理的装置、方法和计算机可读存储介质
JP6902029B2 (ja) 有界ポインタを管理するための装置および方法
US8132254B2 (en) Protecting system control registers in a data processing apparatus
US7130977B1 (en) Controlling access to a control register of a microprocessor
JP7128206B2 (ja) 機能の使用を管理するための装置および方法
JP2017505492A (ja) 目標メモリ・アドレスに対応するメモリ属性ユニットの領域を特定するための領域特定演算
JP7432586B2 (ja) スタック・ポインタを検証すること
JP2020521225A (ja) 機能ドメインを管理するための装置及び方法
JP2023038361A (ja) 命令セット内の変更を制御する装置及び方法
KR20240109286A (ko) 2 스테이지 어드레스 변환
US20230409494A1 (en) Technique for constraining access to memory using capabilities
JP2001249848A (ja) 先行特権レベルに基づく特権昇格

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right