KR102509365B1 - 보안 모드 상태 데이터 액세스 트랙킹 - Google Patents

보안 모드 상태 데이터 액세스 트랙킹 Download PDF

Info

Publication number
KR102509365B1
KR102509365B1 KR1020187003191A KR20187003191A KR102509365B1 KR 102509365 B1 KR102509365 B1 KR 102509365B1 KR 1020187003191 A KR1020187003191 A KR 1020187003191A KR 20187003191 A KR20187003191 A KR 20187003191A KR 102509365 B1 KR102509365 B1 KR 102509365B1
Authority
KR
South Korea
Prior art keywords
protection
flag
value
access
state data
Prior art date
Application number
KR1020187003191A
Other languages
English (en)
Other versions
KR20180029054A (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 KR20180029054A publication Critical patent/KR20180029054A/ko
Application granted granted Critical
Publication of KR102509365B1 publication Critical patent/KR102509365B1/ko

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

플래그 회로(174)를 사용하여, 처리회로(154)가 함수 호출과 관련하여 보안 모드에 진입할 때 액세스 트랙킹 플래그(SFPA)를 제 1 값으로 설정하고, 이 함수 호출과 관련하여 보안 모드에서 동작하는 처리회로에 의해, 부동소수점 레지스터 데이터 등의 소정의 상태 데이터에 대한 적어도 한가지 종류의 최초의 액세스의 검출시에 액세스 트랙킹 플래그를 제 2 값으로 전환하는 데이터 처리장치가 제공된다. 그후, 이 액세스 트랙킹 플래그를 레이지-보호 프로그램 명령(VLSTM) 및 레이지-로드 프로그램 명령(VLLDM)과 관련하여 사용함으로써, 이 상태 데이터에 대한 비보안모드에서의 액세스를 방지하기 위해 상태 데이터의 푸시 동작과 상태 데이터의 복원 동작이 행해지는지 아닌지 제어한다.

Description

보안 모드 상태 데이터 액세스 트랙킹
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 특히, 본 발명은 제 1 보안 모드 및 제 2 보안 모드에서 동작할 수 있는 데이터 처리 시스템에 관한 것이다.
TrustZone 아키텍처 특징을 지원하는 ARM 리미티드에 의해 설계된 프로세서와 같이, 보안 모드 및 비보안 모드를 갖는 데이터 처리 시스템을 제공하는 것이 알려져 있다. 이와 같은 시스템에서는, 명확하게 필요하지 않은 경우에는, 보안 모드에서 행해진 처리에 의존하는 상태 데이터가 비보안 모드에서 액세스가능하지 않아야 하는 것이 중요하다.
본 발명의 적어도 일부 실시예는,
제 1 보안 모드와 제 2 보안 모드에서 동작하는 처리회로와,
상기 처리회로가 함수 호출과 관련하여 상기 제 1 보안 모드에 진입할 때 제 1 값을 갖는 액세스 트랙킹 플래그를 제공하는 플래그 회로를 구비하고,
상기 처리회로는, 상기 함수 호출과 관련하여 상기 제 1 보안 모드에서 동작할 때 상기 처리회로에 의한 소정의 상태 데이터에 대한 적어도 한 개의 종류의 최초의 액세스의 검출시에 상기 액세스 트랙킹 플래그를 제 2 값으로 전환하도록 구성된, 데이터 처리장치를 제공한다.
본 발명의 적어도 일부의 또 다른 실시예는,
제 1 보안 모드와 제 2 보안 모드 중 한 개에서 처리를 행하는 단계와,
처리회로가 함수 호출과 관련하여 상기 제 1 보안 모드에 진입할 때 제 1 값을 갖는 액세스 트랙킹 플래그를 제공하는 단계와,
상기 함수 호출과 관련하여 상기 제 1 보안 모드에서 동작할 때 상기 처리회로에 의한 소정의 상태 데이터에 대한 적어도 한 개의 종류의 최초의 액세스의 검출시에 상기 액세스 트랙킹 플래그를 제 2 값으로 전환하는 단계를 포함하는, 데이터 처리방법을 제공한다.
본 발명의 적어도 일부의 또 다른 실시예는, 유형의 컴퓨터 프로그램 기억매체에 기억된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램이 레이지-보호(lazy-protection) 프로그램 명령 및/또는 레이지-로드(lazy-load) 프로그램 명령 중에서 적어도 한 개를 포함하는 컴퓨터 프로그램을 제공한다.
이하, 첨부도면을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1은 비보안 처리 및 보안 처리 사이의 함수 호출의 시퀀스와 보안 모드 처리에 의존하여 부동소수점 상태 데이터를 보호하는 관련된 동작을 개략적으로 나타낸 것이다.
도 2는 보안 모드로부터 비보안 모드로의 함수 호출시에 플래그 회로가 보안 부동소수점 액세스 플래그를 보존하는 것을 개략적으로 나타낸 흐름도이다.
도 3은 비보안 모드로부터 보안 모드로의 함수 반환시에 플래그 회로가 보안 부동소수점 액세스 플래그를 복원하는 것을 개략적으로 나타낸 흐름도이다.
도 4a 및 도 4b는 보안 부동소수점 액세스 플래그가 리셋되는 2가지 예시적인 양자택일적인 방법을 개략적으로 나타낸 흐름도이다.
도 5는 플래그 회로 및 상태 보호 회로에 의한 부동소수점 액세스에 대한 하드웨어 응답을 개략적으로 나타낸 흐름도이다.
도 6은 레이지-보호 프로그램 명령이 상태 보호 회로의 준비를 기동하는 것을 개략적으로 나타낸 것이다.
도 7은 레이지-로드 프로그램 명령이 부동소수점 상태 데이터 복원 동작과 보호 플래그의 소거를 기동하는 것을 개략적으로 나타낸 흐름도이다.
도 8은 보안 모드 처리에 의존하여 부동소수점 상태 데이터의 보호의 일부로서 액세스 트랙킹 플래그 및 보호 플래그의 제공을 지원하는 플래그 회로 및 상태 보호 회로를 포함하는 처리장치를 개략적으로 나타낸 것이다.
도 9는 다양한 트리거에 응답하여 보안 부동소수점 액세스 플래그가 리셋 및 세트되도록 하는 예시적인 또 다른 실시예를 개략적으로 나타낸 것이다.
도 1은 함수 호출 및 함수 반환에 응답하여 비보안 모드와 보안 모드 사이의 전환 처리와 함께, 액세스 트랙킹 플래그 및 보호 플래그의 관련된 제어 및 스택 메모리에 대한 부동소수점 레지스터 상태 데이터의 보존 및 복원 동작을 개략적으로 나타낸 것이다. 도시된 것과 같이, 처리는 함수 호출을 보안 함수 fn1으로 만드는 비보안 함수 fn0에서 개시한다. 이와 같은 함수 호출이 행해질 때, 비보안 모드를 벗어나 보안 모드로 진입하는 전환이 존재한다. 이것은 액세스 트랙킹 플래그(보안 부동소수점 액세스 플래그 SFPA)의 설정을 제 1 값, 예를 들어 "0"으로 기동한다. 그후, 이 함수 fn1이 부동소수점 레지스터에 액세스할 때까지 함수 fn1을 사용하는 보안 모드에서의 처리가 진행된다. 이것은 플래그 회로(플래그 제어기)에 의해 검출되어 액세스 트랙킹 플래그 SFPA를 제 1 값으로부터 제 2 값, 예를 들어 "1"로 변경한다. 액세스 트랙킹 플래그가 이미 제 2 값을 갖고 있을 때 부동소수점 레지스터에 대한 그후의 액세스는 액세스 트랙킹 플래그가 이 제 2 값을 갖도록 유지한다.
보안 모드 함수 fn1이 비보안 함수에 대한 함수 호출을 행하기 훤할 때, 이 보안 모드 함수는 보안 모드로부터의 벗어나기 위한 준비의 일부로서 레이지-보호 프로그램 명령 VLSTM을 실행할 책임이 있다. 프로세서의 처리회로에 의한 레이지-보호 명령 VLSTM의 시행은 다수의 동작을 갖는다. 액세스 트랙킹 플래그 SFPA가 제 2 값을 갖는 경우(즉, 보안 함수 fn1의 처리중에 부동소수점 레지스터 액세스가 발생하였다는 것을 나타내는 "1"의 값으로 설정된 경우), 보호 응답이 준비되고, 보호 플래그 LSPACT는 이 보호 응답이 준비되었다는 것을 나타내는 값으로 설정된다. 보호 응답 준비는, 부동소수점 레지스터 상태 데이터를 기억하기 위해 필요한 경우에 사용되는 비보안 액세스로부터 보호된 스택 메모리 내부에 저장 공간을 할당하는 과정을 포함한다. 이때 부동소수점 레지스터 상태 데이터는 스택에 보존되는 것이 아니라, 이 상태 데이터가 점유하는 공간이 스택 내부에 예약되고 스택 내부의 이 할당된 공간을 가리키는 포인터가 보존된다.
레이지-보호 프로그램 명령이 실행될 때, 액세스 트랙킹 플래그 SFPA가 제 1 값을 가지면(즉, 보안 함수 fn1이 부동소수점 액세스를 행하지 않았다는 것을 나타내는 "0"의 값으로 설정되면), 보안 함수 fn1과 관련된 보호할 필요가 있는 보안 부동소수점 상태 데이터가 존재하지 않으므로, 보호 응답이 준비되지 않고 보호 플래그 LSPACT가 설정되지 않는다(보안 스택 메모리에 공간이 할당될 필요가 없으며 포인터가 설정되지 않는다). 레이지-보호 프로그램 명령 VLSTM의 실행 이외에, 하드웨어는, 이때 보안 함수 fn1에 대한 액세스 트랙킹 플래그 SFPA의 값을 푸시 동작을 거쳐 보안 함수 fn1에 대한 (예를 들어, 비보안 모드에서 액세스가능하지 않은 메모리 영역에 기억된) 보안 스택에 보존함으로써 보안 모드로부터 비보안 모드로 전환하는 함수 호출에 응답한다.
도 1의 예에서는 보안 함수 fn1으로부터의 함수 호출은 비보안 함수 fn2 내부로 행해진다. 보안 함수 fn1의 보안 부동소수점 상태 데이터는 초기에는 부동소수점 레지스터 내부에 여전히 존재한다. 이 부동소수점 상태 데이터를 보존하고 부동소수점 상태 데이터를 소거함에 있어서 디폴트로 시간과 에너지가 소모되지 않았다. 비보안 함수 fn2가 부동소수점 액세스를 행하지 않으면, 보안 함수 fn1가 재개될 때, 부동소수점 상태 데이터가 여전히 제 위치에 있게 되므로, 이 부동소수점 상태 데이터를 복원할 필요를 없게 함으로써 추가적인 에너지 및 시간이 절감된다.
그러나, (예를 들어, 비보안 함수 fn2에서 실행되는 부동소수점 명령에 의해) LSPACT 플래그가 "1"로 설정되는 동안 부동소수점 레지스터에 대한 액세스가 시도되는 경우에, 보안 상태 보호회로는, 보안 함수 fn1의 부동소수점 상태 데이터를 이전에 실행된 레이지-보호 명령 VLSTM에 의해 설정된(준비된) 보안 상태 메모리 내부의 할당된 저장 영역에 보존한 후, 비보안 함수 fn2에 의한 부동소수점 레지스터에 대한 액세스를 허가함으로써 부동소수점 레지스터를 소거하는 역할을 한다. 보안 상태 보호회로는, 보호 플래그 LSPACT가 설정되어(예를 들어, "1"의 값을 가져) 부동소수점 레지스터가 보안 함수 fn2에 의한 처리에 의존하는 상태 데이터를 포함하고 보안 스택 내부에 공간을 할당하고 보안 함수 fn1의 부동소수점 상태 데이터를 보존하는 푸시 동작시에 사용하기 위해 포인터를 이 할당된 공간에 보존함으로써 이 부동소수점 상태 데이터를 위해 보호 응답이 준비되었다는 것을 나타낸다는 것을 검출할 때, 레이지-보호 VLSTM에 의해 이전에 준비된 보호 응답을 행한다.
보호 응답이 행해졌을 때, 보안 부동소수점 상태 데이터가 보존 및 소거되었고 이에 따라 비보안 함수 fn2의 처리중에서 발생되는 그후의 부동소수점 액세스가 이 보안 부동소수점 상태 데이터에 대한 추가적인 보호 응답을 기동할 필요가 없으므로, 보호 플래그 LSPACT가 (예를 들어, "0"의 값으로) 리셋된다.
도 1에 도시된 것과 같이, 보안 함수 fn1에게 처리를 반환하는 함수 반환을 실행함으로써 비보안 함수 fn2가 종료한다. 보안 함수 fn1의 탈출시에 보안 스택 위에 풋(put)되었던 액세스 트랙킹 플래그 SFPA 값을 복원함으로써 하드웨어가 이 함수 반환에 응답한다. 재개된 보안 함수 fn1으로의 액세스 트랙킹 플래기 SFPA의 이와 같은 복원은, 이 보안 함수 fn1 내부의 이전의 처리가 부동소수점 레지스터에 대한 액세스를 행하였는지 여부와, 이에 따라 보안 함수 fn1으로부터의 함수 호출이 행해졌을 때 존재하는 보안 부동소수점 상태 데이터가 있었는지 여부를 나타낸다. 보안 함수 fn1은 이것이 재개될 때 레이지-로드 명령 VLLDM의 실행을 책임지고 있다. 이것은 도 1에 의사코드로 나타낸 동작을 갖는다. 특히, 액세스 트랙킹 플래그 SFPA가 제 2 값을 갖는 경우에(에를 들어, "1"로 설정된 경우에), 보호 플래그가 여전히 설정되어 있는지(예를 들어, LSPACT가 "1"인지)에 대해 판정이 행해진다. 보호 플래그가 여전히 설정되어 있으면, 이것은 보안 함수 fn1이 VLSTM 명령을 실행한 이후로 보호 응답이 기동되지 않았다는 것을 나타낸다. 이 경우라면, 중간의 처리 중에 어떤 액세스 시도가 행해지지 않았으므로 부동소수점 레지스터 내부에 보안 부동소수점 상태 데이터가 여전히 존재하기 때문에, 보안 부동소수점 상태 데이터의 복원을 행할 필요가 없다. 보호 플래그가 리셋되고(LSPACT=0) 더 이상의 처리를 행할 필요가 없다.
이와 반대로, 레이지-로드 프로그램 명령 VLLDM이 실행될 때, 액세스 트랙킹 플래그가 제 2 값을 갖고(예를 들어, SFPA="1") 보호 플래그가 설정되지 않은(예를 들어, LSPACT="0"), 이것은 보안 함수 fn1가 벗어날 때 제 위치에 보안 부동소수점 상태 데이터가 존재하였고 VLSTM을 실행한 후에 그리고 VLLDM 명령의 실행 이전에 보호 응답이 기동되었다는 것을 나타낸다. 따라서, 이 경우에 VLLDM 명령은 부동소수점 레지스터 팝(pop) 동작으로서 보존된 포인트 값에 의해 표시된 보안 스택(팝) 내부로부터 보안 부동소수점 상태 데이터를 복원하는 복원 응답을 기동한다.
이에 따르면, 처리회로가 함수 호출과 관련하여 보안 모드에 진입할 때(비보안 함수 fn0로부터 보안 함수 fn1으로 전환이 행해질 때) 플래그 회로가 제 1 값(예를 들어, SFPA="0")을 갖는 액세스 트랙킹 플래그 SFPA를 제공한다는 것을 알 수 있다. 그후, 플래그 회로는 보안 함수 fn1의 처리중에 발생하는 부동소수점 레지스터에 대한 액세스를 감시하는 역할을 하며, 부동소수점 레지스터에 대한 액세스가 발생하면 액세스 트랙킹 플래그를 제 2 값(SFPA="0")으로 전환한다. 트랙킹되는 부동소수점 레지스터에 대한 액세스는 이들 부동소수점 레지스터에 대한 판독 또는 기록 액세스의 형태를 취해도 된다. 일부 종류의 액세스는, 잠재적인 보안을 위태롭게 하는 방식으로 보안 모드 처리에 의존하는 정보를 포함하는 부동소수점 상태 데이터를 발생하지 않기 때문에, 이들 액세스는 액세스 트랙킹 플래그의 값을 전환하지 않고 행해져도 된다. 따라서, 트랙킹되는 액세스들은 적어도 한 개의 종류를 갖는다. 이와 같이 제공되는 액세스 트랙킹 플래그는 전술한 레이지-보호 및 레이지-로드 등의 메카니즘이 구현되도록 허용함으로써, 이 보호가 필요하지 않을 때 불필요한 시간 및 에너지 오버헤드를 유발하지 않고 상태 데이터에 대한 보호를 제공한다. 이때, 상태 데이터가 부동소수점 레지스터 데이터인 경우와 관련하여 도 1의 실시예를 설명하였다. 동일한 메카니즘을 사용하여 SIMD 레지스터 데이터 등의 보안 모드 처리와 관련된 다른 형태의 상태 데이터를 보호하는 것이 가능하다.
도 1은 간단한 함수 호출 트리를 나타내었지만 본 발명을 사용하여 복잡한 함수 호출 트리로 보안 상태를 효율적으로 보호할 수 있다는 것은 본 기술분야의 당업자에게 있어서 자명하다. 구체적으로, 보안 함수 fn1에서의 처리가 다수의 함수들로 분할되어(어쩌면 서로 다른 시간에 컴파일되어) 비보안 함수 fn2에 대한 함수 호출을 처리하는 컴파일러가 fn1의 개시시에 보안 상태로의 진입 이후에 발생한 모든 처리를 알지 못할 수도 있다. 그 결과, FP 레지스터들이 보안 코드에 의해 액세스되었는지 아닌지를 컴파일러가 아는 것이 곤란한 경우가 많거나 불가능하다.
도 2는 액세스 트랙킹 플래그 SFPA를 보존함에 있어서 플래그 회로의 동작을 개략적으로 나타낸 흐름도이다. 스텝 100에서, 시스템을 보안 모드에서 비보안 모드로 전환하고 있는 함수 호출이 검출될 때까지 처리를 대기한다. 이와 같은 함수 호출이 검출되면, 스텝 102로 처리를 진행하여, 처리가 스텝 100으로 되돌아가 다음의 보안으로부터 비보안으로의 함수 호출을 대기하기 전에 액세스 트랙킹 플래그 SFPA의 현재 값이 보안 스택 메모리에 보존된다.
도 3은 액세스 트랙킹 플래그를 복원함에 있어서 플래그 회로의 동작을 개략적으로 나타낸 흐름도이다. 스텝 104에서, 비보안 모드로부터 보안 모드로의 함수 반환이 검출될 때까지 처리를 대기한다. 이와 같은 반환이 검출되면, 스텝 106은 팝 동작을 거쳐 보안 스택으로부터 액세스 트랙킹 플래그 SFPA를 복원하는 역할을 한다.
VLLDM 명령 후에 실행되는 별개의 명령에 의해 스택 공간의 할당 해제가 행해지고, VLLDM이 부동소수점 상태가 보존된 위치를 명시하는 레지스터 파라미터를 받아들이는 실시예와 같이, 다른 예시적인 실시예도 가능하다.
도 4a는 플래그 회로가 액세스 트랙킹 플래그를 리셋하는 방법의 첫 번째 예를 나타낸다. 스텝 108에서, 플래그 회로는 비보안 모드로부터 보안 모드로의 함수 호출이 검출될 때까지 대기한다. 이와 같은 함수 호출이 검출되면, 스텝 110은 액세스 트랙킹 플래그 SFPA를 제 1 값(예를 들어, SFPA="0")으로 리셋하는 역할을 한다. 그후, 처리는 스텝 108로 복귀한다. 이와 같은 종류의 액세스 트랙킹 플래그 리셋은, 예를 들어, 보안 부동소수점 데이터에 대한 그후의 최초의 액세스가 이때의 처리회로가 보안 모드에 있는지 또는 비보안 모드에 있는지에 상관없이 발생할 때, 또는 이와 달리 처리회로가 보안 모드에서 동작하고 있을 때 보안 부동소수점 상태 데이터에 대한 최초의 액세스가 일어날 때 액세스 트랙킹 플래그를 제 2 값(예를 들어, SFPA="1")으로 설정하는 메카니즘과 관련하여 사용해도 된다. 액세스 트랙킹 플래그를 세트 및 리셋하도록 제어하는 다양한 다른 방식이 존재한다. 이와 같은 제어의 목표는, 부동소수점 상태 데이터에 대한 최초의 액세스가 보안 처리중에 발생할 때까지 액세스 트랙킹 플래그가 이 보안 모드 처리에의 호출시 제 1 값을 갖고, 그 결과 액세스 트랙킹 플래그가 제 2 값으로 설정되는 것이다.
도 4b는 플래그 회로가 액세스 트랙킹 플래그의 리셋을 제어하는 방법의 두 번째 예를 나타낸 흐름도이다. 스텝 112에서, 함수 호출이 보안 모드로부터 비보안 모드로 행해지거나 함수 반환이 보안 모드로부터 비보안 모드로 행해질 때까지 처리를 대기한다. 이와 같은 함수 호출이나 함수 반환이 검출되면, 스텝 114는 액세스 트랙킹 플래그를 제 1 값(예를 들어, SFPA="0")으로 설정하는 역할을 한다. 이와 같은 리셋 메카니즘은, 시스템이 그후에 보안 모드에서 동작하고 있을 때 발생하는 부동소수점 상태 데이터에 대한 최초의 액세스의 검출시에 액세스 트랙킹 플래그를 설정하는 메카니즘과 관련하여 사용되어도 된다.
도 5는 부동소수점 상태 데이터에 대한 액세스 시도에 대한 (플래그 회로 및 보안 상태 보호회로에 의한) 하드웨어 응답을 개략적으로 나타낸 흐름도이다. 스텝 116에서는, 한 개 이상의 부동소수점 레지스터에 대한 액세스가 시도될 때까지, 즉 처리회로에 의해 소정 상태에 대한 적어도 한가지 종류의 액세스를 검출할 때까지, 처리를 대기한다. 이와 같은 액세스 시도가 검출되면, 스텝 118은 보호 플래그 LSPACT가 현재 설정되어 있는지(예를 들어, LSPACT="1") 아닌지 판정한다. 보호 플래그가 설정되는 경우, 스텝 120은 현재의 부동소수점 레지스터 콘텐츠를 보안 스택 내부의 할당된 저장 영역을 가리키는 포인터 어드레스에 의해 표시되는 이 할당된 저장 영역에 기억하는 역할을 한다. 저장 영역의 할당과 이 할당된 저장 영역을 가리키는 적절한 포인터의 생성은 전술한 것과 같이 레이지-보호 프로그램 명령의 실행에 의해 이전에 수립(준비)되었다.
스텝 120 이후에, 스텝 122는 이제는 보존된 부동소수점 레지스터를 소거하는 역할을 한다. 그후, 스텝 124는 보호 플래그를 리셋(예를 들어, LSPACT="0"를 설정)하는 역할을 한다. 이것은 준비되었던 보호 조치가 이제 취해졌으며, 이에 따라 보안 부동소수점 상태 데이터에 대한 그후의 액세스 시도가 행해지는 경우 이 보호 조치를 반복할 필요가 없다는 것을 나타낸다.
스텝 124 이후에, 또는 스텝 118의 판정 결과 보호 플래그가 설정되지 않은 경우에, 스텝 126으로 처리를 진행하여, 프로세서가 현재 보안 모드에서 동작하고 있는지 아닌지에 대한 판정이 행해진다. 프로세서가 보안 모드에서 동작하고 있으면, 스텝 128은 액세스 트랙킹 플래그 SFPA가 현재 제 1 값(예를 들어, SFPA="0")을 갖는지 아닌지 판정한다. 액세스 트랙킹 플래그가 제 1 값을 가지면, 이것은, 스텝 116에서 검출된 액세스가 보안 모드 처리중에 발생하는 최초의 부동소수점 액세스라는 것을 나타내며, 이에 따라 스텝 130은 부동소수점 환경설정(예를 들면, 라운딩(rounding) 모드, 부동소수점 예외처리 등)을 디폴트 환경설정으로 설정할 뿐 아니라, 액세스 트랙킹 플래그를 제 2 값(예를 들어, SFPA="1")으로 설정하는 역할을 한다. 스텝 130 이후에, 또는 스텝 126 및 128 이후에 판정이 부정인 경우에, 스텝 132로 처리를 진행하여, 스텝 116에서 시도된 부동소수점 액세스가 허가된다. 그후, 스텝 116으로 처리를 되돌려 다음의 시도된 부동소수점 레지스터 액세스를 대기한다.
도 6은 필요한 경우에 레이지-스토어(lazy-store) 프로그램 명령(레이지-보호 프로그램 명령)이 상태 보호회로의 준비를 기동하여 보호 응답을 행하는 방법을 개략적으로 나타낸 흐름도이다. 스텝 134에서 레이지-스토어 프로그램 명령 VLSTM의 디코딩이 검출된다. 그후, 스텝 136은 액세스 트랙킹 플래그가 제 2 값(예를 들어, SFPA="1")을 갖는지 아닌지 판정한다. 액세스 트랙킹 플래그가 제 2 값을 갖지 않는 경우에는, 보호할 필요가 있는 보안 부동소수점 상태 데이터가 존재하지 않으므로, 준비를 행할 필요가 없어 스텝 134로 처리가 복귀한다. 그러나, 액세스 트랙킹 플래그가 제 2 값을 갖는 경우, 스텝 138로 처리를 진행하여, 보호 플래그가 설정된다(보호가 무장된(armed) 것으로 표시되지만 아직 기동되지 않았다). 그후, 스텝 140은, 그후에 필요한 것으로 검출되는 경우, 부동소수점 레지스터 상태 데이터(또는 VLSTM 명령의 파라미터에 지정된 다른 데이터)를 보존하기 위한 보안 스택 내부의 공간을 할당하는 역할을 한다. 또한, 스텝 134로 처리가 되돌아가 다음의 레이지-스토어 프로그램 명령을 대기하기 전에 보안 스택 내부의 이 할당된 공간을 가리키는 포인터가 수립된다.
VLSTM 명령이 상태 보호회로를 기동하여 보안 부동소수점 상태 데이터를 즉시 푸시하는 역할을 하는 실시예 등의 다른 실시예도 가능하다. 또 다른 옵션은, VLSTM 명령 이전에 실행된 별개의 명령이 스택 공간을 할당하는 역할을 하고 VLSTM이 이 할당된 공간의 위치를 지정하는 레지스터 파라미터를 받아들이는 것이다.
도 7은 레이지-로드 프로그램 명령의 실행에 대한 응답을 개략적으로 나타낸 것이다. 스텝 142에서, 레이지-로드 프로그램 명령(VLLDM)이 디코딩된다. 그후, 스텝 144는 액세스 트랙킹 플래그 SFPA가 제 2 값(예를 들면, SFPA="1")을 갖는지 아닌지 판정한다. 액세스 플래그가 제 2 값을 갖지 않는 경우에는, 보호를 준비할 필요가 있으므로 보안 스택에 대한 푸시 동작을 겪거나 겪지 않았을 보안 부동소수점 레지스터 상태 데이터가 존재하지 않았다. 따라서, 액세스 트랙킹 플래그가 제 1 값을 가지면, 스텝 144로부터 스텝 142로 처리가 되돌아가 다음의 레이지-로드 명령을 대기한다. 스텝 144에서 판정할 때 액세스 트랙킹 플래그가 제 2 값을 가지면, 스텝 146은 보호 플래그가 여전히 설정되어 있는지(예를 들면, LSPACT="1") 아닌지 판정한다. 보호 플래그가 설정되지 않으면, 이것은 이전의 처리 중에 보안 부동소수점 상태 데이터에 대해 보호 응답이 기동되었다는 것을 나타내므로, 스텝 148은 스택으로부터 부동소수점 레지스터에 대해 보안 부동소수점 상태 데이터의 복원 동작(팝)을 행하는 역할을 하고 대응하는 스택 공간의 할당을 해제한다. 또한, 할당된 저장 영역은 할당이 해제되어 그것의 공간을 확보한다. 스텝 146의 판정 결과 보호 플래그가 여전히 설정된 경우(예를 들어, LSPACT="1"), 보호가 수립되고 준비되었지만, 기동되지는 않았으므로, 복원 동작이 필요하지 않고, 처리를 스텝 150으로 진행하여 보호 플래그가 리셋된다(예를 들어, LSPACT="0").
일부 실시예에서는, 처리회로가 보안 모드에서 동작하고 있으며 보호 플래그가 여전히 설정될 때(예를 들어, LSPACT="1") 실행되는 경우 보호 응답을 디스에이블시키는 레이지-비보호 프로그램 명령이 제공되어도 된다.
도 8은 메인 메모리(156)에 접속된 프로세서(154)를 구비한 데이터 처리 시스템(152)을 개략적으로 나타낸 것이다. 프로세서(154)는 메인 메모리(156)로부터 프로그램 명령과 데이터를 검색한다. 프로그램 명령은 명령 페치부(157)에 의해 페치되고, 그후 명령 디코더(158)에 의해 디코드되어, 이들 프로그램 명령에 의해 명시된 것과 같이 행할 처리 연산을 제어하는 제어신호를 발생한다. 행해지는 처리 연산은, 예를 들어, 범용 레지스터 뱅크(160) 내부에 기억된 데이터 값을 사용하여 행해지고 승산기(162), 시프터(164) 및 가산기(166) 등의 처리회로에 의해 처리되는 정수 처리 연산을 포함해도 된다. 또한, 프로그램 명령은, 부동소수점 레지스터(168) 내부에 기억된 부동소수점 데이터 값에 대해 행해지고 부동소수점 실행회로(170)에 의해 실행되는 부동소수점 프로그램 명령을 포함해도 된다. 부동소수점 실행회로(170)는 부동소수점 환경설정 레지스터(172) 내부에 기억된 부동소수점 환경설정에 의해 환경이 설정된다. 보안 처리 모드에서 최초의 부동소수점 액세스가 행해질 때, 이와 같은 부동소수점 환경설정(예를 들면, 라운딩 모드, 예외 거동 등)이 디폴트 값으로 설정된다. 이 디폴트 환경설정은 사전에 변경불가능하게 시스템에 짜넣어지거나 프로그래밍되어도 된다. 부동소수점 환경설정 레지스터(172) 내부에 기억된 부동소수점 환경설정은, 전술한 것과 같이 부동소수점 상태 데이터가 보호 및 복원되는 것과 동시에 보호 및 복원되어도 된다. 부동소수점 환경설정은 부동소수점 레지스터 자체의 콘텐트 이외에 보안 부동소수점 상태 데이터의 일부이어도 된다.
부동소수점 회로와 관련된 것은 플래그 제어기(174)(플래그 회로) 및 보안 상태 보호회로(176)이다. 이들 회로는 전술한 기능을 갖는다. 이들 회로는 전술한 것과 같이 액세스 트랙킹 플래그 SFPA 및 보호 플래그 LSPACT를 유지하고 이것에 응답한다. 더구나, 보안 부동소수점 상태 데이터를 기억하는 것이 필요한 경우에는, 보안 부동소수점 상태 데이터를 기억하기 위해 실행 시간에 (메인 메모리(156) 내부에) 할당되는 스택 메모리(178) 영역을 가리키는 포인터를 위해 스토리지가 설치된다.
도 9는 다양한 실시예의 동작과, 이들 실시예가 액세스 트랙킹 플래그를 제 1 값으로 설정하고 액세스 트랙킹 플래그를 제 2 값으로 설정하는 역할을 하는 방법을 개략적으로 나타낸 것이다. 실시예 (a)에서는, 함수 호출로 인해 비보안 모드로부터 보안 모드로 전환이 행해질 때 액세스 트랙킹 플래그가 제 1 값으로 설정된다. 그후, 보안 모드에 있는 동안 (적어도 한가지 종류의) 최초의 부동소수점 액세스가 행해질 때, 액세스 트랙킹 플래그가 제 2 값으로 설정된다. 실시예 (b)에서는, 함수 호출로서 비보안 모드로부터 보안 모드로 전환이 행해질 때, 액세스 트랙킹 플래그가 다시 제 1 값으로 설정된다. 프로세서가 보안 모드에 있는지 비보안 모드에 있는지에 상관없이 그후의 최초의 부동소수점 액세스가 발생하면, 액세스 트랙킹 플래그가 제 1 값으로부터 제 2 값으로 전환된다. 실시예 (c)에서는, 함수 호출 또는 반환으로서 보안 모드로부터 비보안 모드로 전환이 행해질 때, 액세스 트랙킹 플래그가 제 1 값으로 설정된다. 그후, 프로세서가 보안 모드에서 동작하고 있을 때 최초의 부동소수점 액세스가 검출되면, 액세스 트랙킹 플래그가 제 2 값으로 전환된다. 이때, 실시예 (a), (b) 및 (c) 전체는, 보안 상태에서의 최초의 부동소수점 액세스가 검출될 때까지 액세스 트랙킹 플래그가 제 1 값을 갖는다는 효과를 나타낸다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (27)

  1. 제 1 보안 모드와 제 2 보안 모드에서 동작하는 처리회로와,
    상기 처리회로가 함수 호출과 관련하여 상기 제 1 보안 모드에 진입할 때 제 1 값을 갖는 액세스 트랙킹 플래그를 제공하는 플래그 회로를 구비하고,
    상기 처리회로는, 상기 함수 호출과 관련하여 상기 제 1 보안 모드에서 동작할 때 상기 처리회로에 의한 소정의 상태 데이터에 대한 적어도 한 개의 종류의 최초의 액세스의 검출시에 상기 액세스 트랙킹 플래그를 제 2 값으로 전환하도록 구성된, 데이터 처리장치.
  2. 제 1항에 있어서,
    상기 플래그 회로는,
    상기 제 1 보안 모드의 진입시 상기 액세스 트랙킹 플래그를 상기 제 1 값으로 설정하고, 상기 처리회로가 상기 제 1 보안 모드에서 동작하고 있는지 또는 상기 제 2 보안 모드에서 동작하고 있는지에 무관하게 상기 최초의 액세스의 검출시에 상기 액세스 트랙킹 플래그를 상기 제 1 값으로부터 상기 제 2 값으로 변경하는 것과,
    상기 제 1 보안 모드의 진입시 상기 액세스 트랙킹 플래그를 상기 제 1 값으로 설정하고, 상기 최초의 액세스와, 상기 처리회로가 상기 제 1 보안 모드에서 동작하고 있다는 것을 검출시에, 상기 액세스 트랙킹 플래그를 상기 제 2 값으로 변경하는 것과,
    상기 제 2 보안 모드의 진입시 상기 액세스 트랙킹 플래그를 상기 제 1 값으로 설정하고, 상기 최초의 액세스와, 상기 처리회로가 상기 제 1 보안 모드에서 동작하고 있다는 것을 검출시에, 상기 액세스 트랙킹 플래그를 상기 제 2 값으로 변경하는 것 중에서 한 개를 행하도록 구성된 데이터 처리장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 플래그 회로는, 상기 제 1 보안 모드에서의 동작으로부터 상기 제 2 보안 모드에서의 동작으로 상기 처리회로를 전환하는 또 다른 함수 호출에 응답하여, 상기 액세스 트랙킹 플래그의 현재 값을 액세스 트랙킹 플래그 데이터 저장소에 보존하는 데이터 처리장치.
  4. 제 3항에 있어서,
    상기 플래그 회로는, 상기 제 2 보안 모드에서의 동작으로부터 상기 제 1 보안 모드에서의 동작으로 상기 처리회로를 전환하는 상기 또 다른 함수 호출로부터의 함수 반환에 응답하여, 상기 액세스 트랙킹 플래그를 상기 액세스 트랙킹 플래그 데이터 저장소로부터 상기 현재 값으로 복원하는 데이터 처리장치.
  5. 제 3항에 있어서,
    상기 액세스 트랙킹 플래그 데이터 저장소는 스택 메모리인 데이터 처리장치.
  6. 제 1항 또는 제 2항에 있어서,
    적어도,
    상기 처리회로가 상기 제 2 보안 모드에서 동작하고 있고,
    상기 액세스 트랙킹 플래그가 함수 호출과 관련하여 상기 제 2 보안 모드로 전환하기 전에 상기 제 1 보안 모드에서 동작하고 있을 때 상기 제 2 값을 갖고 있고,
    상기 처리회로가 상기 소정의 상태 데이터에 대한 액세스를 시도할 때,
    상기 소정의 상태 데이터에 대한 보호 응답을 기동하는 보안 상태 보호회로를 구비하고,
    상기 보호 응답은 상기 소정의 상태 데이터의 제 1 서브셋의 소거를 포함하는 데이터 처리장치.
  7. 제 6항에 있어서,
    상기 보호 응답은 상기 소정의 상태 데이터의 제 2 서브셋을 상태 데이터 저장소에 보존하는 것을 포함하는 데이터 처리장치.
  8. 제 7항에 있어서,
    상기 액세스 트랙킹 플래그가 상기 제 2 값을 갖는 것과,
    레이지-보호 프로그램 명령이 실행되는 것 중에서 한 개일 때,
    상기 처리회로가 상기 소정의 상태 데이터의 상기 제 1 서브셋의 액세스를 시도하는 경우, 상기 처리회로는 상기 레이지-보호 프로그램 명령의 실행에 응답하여 상기 상태 보호회로가 상기 보호 응답을 행하도록 준비하는 데이터 처리장치.
  9. 제 7항에 있어서,
    상기 보호 응답은 보호 플래그를 상기 보호 응답의 기동을 표시하는 값으로 설정하는 것을 포함하는 데이터 처리장치.
  10. 제 9항에 있어서,
    상기 보호 플래그는,
    전용 보호 플래그와,
    상기 액세스 트랙킹 플래그 중에서 한 개인 데이터 처리장치.
  11. 제 8항에 있어서,
    상기 레이지-보호 프로그램 명령의 실행은 상기 보호 응답을 기동하는 데이터 처리장치.
  12. 제 9항에 있어서,
    상기 처리회로가 상기 제 1 보안 모드에서 동작하고 있고,
    상기 보호 플래그가 상기 보호 응답의 기동을 나타내는 값을 가질 때,
    상기 처리회로는 레이지-로드 프로그램 명령의 실행에 응답하여 상기 상태 데이터 저장소로부터 상기 소정의 상태 데이터의 상기 제 2 서브셋을 로드하는 데이터 처리장치.
  13. 제 12항에 있어서,
    상기 소정의 상태 데이터의 상기 제 2 서브셋의 상기 로드는 상기 제 2 값을 갖는 상기 액세스 트랙킹 플래그에 더 의존하는 데이터 처리장치.
  14. 제 13항에 있어서,
    상기 처리회로가 상기 제 1 보안 모드에서 동작하고 있고,
    상기 보호 플래그가 상기 보호 응답의 기동을 나타내는 값 이외의 값을 가질 때,
    상기 처리회로는 상기 레이지-로드 프로그램 명령의 실행에 응답하여 상기 보안 상태 보호회로의 준비를 마치는 데이터 처리장치.
  15. 제 9항에 있어서,
    상기 처리회로가 상기 제 1 보안 모드에서 동작하고 있고,
    상기 보호 플래그가 상기 보호 응답의 기동을 나타내는 값 이외의 값을 가질 때,
    상기 처리회로는 레이지-비보호 프로그램 명령의 실행에 응답하여 상기 보호 응답을 디스에이블시키는 데이터 처리장치.
  16. 제 1항 또는 제 2항에 있어서,
    부동소수점 값을 기억하는 부동소수점 레지스터 파일을 구비하고, 상기 소정의 상태 데이터는 상기 부동소수점 값을 포함하는 데이터 처리장치.
  17. 제 16항에 있어서,
    상기 처리회로에 의한 상기 부동소수점 값에 대한 액세스는 부동소수점 명령의 실행을 포함하는 데이터 처리장치.
  18. 제 17항에 있어서,
    부동소수점 환경설정 데이터가 상기 처리회로에 의한 부동소수점 처리 연산의 수행과 관련된 한 개 이상의 파라미터를 명시하고, 상기 액세스 트랙킹 플래그가 상기 제 1 값을 가질 때 보안 상태에서 상기 부동소수점 명령을 실행시, 상기 부동소수점 환경설정 데이터가 디폴트 부동소수점 환경설정 데이터로 설정되는 데이터 처리장치.
  19. 제 8항에 있어서,
    상기 상태 데이터 저장소는 스택 메모리를 포함하는 데이터 처리장치.
  20. 제 19항에 있어서,
    상기 상태 보호회로는, 상기 스택 메모리 내부에 저장 영역을 할당하여 상기 소정의 상태 데이터의 상기 제 2 서브셋을 기억하고 상기 저장 영역에 대한 포인터 어드레스를 상기 상태 보호회로에 제공함으로써, 상기 보존하는 것을 행하도록 준비되는 데이터 처리장치.
  21. 제 20항에 있어서,
    상기 레이지-보호 프로그램 명령은, 상기 데이터 처리장치의 어떤 상태 데이터가 상기 소정의 상태 데이터의 상기 제 1 서브셋을 포함하는지 명시하는 파라미터를 갖는 데이터 처리장치.
  22. 제 14항에 있어서,
    상기 레이지-로드 프로그램 명령이 상기 상태 데이터 저장소인 스택 메모리로부터 상기 소정의 상태 데이터를 로드한 것과,
    상기 레이지-로드 프로그램 명령이 상기 상태 보호회로의 준비를 마치는 것과,
    상기 레이지-로드 프로그램 명령이 실행되는 것 중에서 한 개가 행해질 때,
    상기 처리회로는 상기 레이지-로드 프로그램 명령의 실행에 응답하여 상기 스택 메모리 내부의 저장 영역의 할당을 해제하는 데이터 처리장치.
  23. 제 12항에 있어서,
    상기 레이지-로드 프로그램 명령은, 상기 데이터 처리장치의 어떤 상태 데이터가 상기 소정의 상태 데이터의 상기 제 2 서브셋을 포함하는지 명시하는 파라미터를 갖는 데이터 처리장치.
  24. 제 1항 또는 제 2항에 있어서,
    상기 제 1 보안 모드는 상기 제 2 보안 모드보다 더 안전한 데이터 처리장치.
  25. 제 1 보안 모드와 제 2 보안 모드 중 한 개에서 처리를 행하는 단계와,
    처리회로가 함수 호출과 관련하여 상기 제 1 보안 모드에 진입할 때 제 1 값을 갖는 액세스 트랙킹 플래그를 제공하는 단계와,
    상기 함수 호출과 관련하여 상기 제 1 보안 모드에서 동작할 때 상기 처리회로에 의한 소정의 상태 데이터에 대한 적어도 한 개의 종류의 최초의 액세스의 검출시에 상기 액세스 트랙킹 플래그를 제 2 값으로 전환하는 단계를 포함하는, 데이터 처리방법.
  26. 청구항 1에 기재된 데이터 처리장치의 동작을 제어하기 위해 유형의 컴퓨터 프로그램 기억매체에 기억된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 상기 처리회로가 상기 제 2 보안 모드에서 동작할 때 상기 소정의 상태 데이터의 제 1 서브셋의 액세스를 시도하는 경우, 상태 보호회로가 상기 소정의 상태 데이터에 관한 보호 응답을 행하도록 준비하기 위해 상기 제 1 보안 모드에서 동작할 때 실행가능한 레이지-보호 프로그램 명령을 포함하는 컴퓨터 프로그램.
  27. 청구항 12에 기재된 데이터 처리장치의 동작을 제어하기 위해 유형의 컴퓨터 프로그램 기억매체에 기억된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은,
    상기 처리회로가 상기 제 1 보안 모드에서 동작하고 있고,
    상기 보호 플래그가 상기 보호 응답의 기동을 표시하는 상기 값을 가질 때,
    상기 처리회로를 제어하여 상기 상태 데이터 저장소로부터 상기 소정의 상태 데이터의 상기 제 2 서브셋을 로드하기 위해 실행가능한 레이지-로드 프로그램 명령을 포함하는 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램.
KR1020187003191A 2015-07-15 2016-05-26 보안 모드 상태 데이터 액세스 트랙킹 KR102509365B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1512367.2A GB2540388B (en) 2015-07-15 2015-07-15 Secure mode state data access tracking
GB1512367.2 2015-07-15
PCT/GB2016/051526 WO2017009597A1 (en) 2015-07-15 2016-05-26 Secure mode state data access tracking

Publications (2)

Publication Number Publication Date
KR20180029054A KR20180029054A (ko) 2018-03-19
KR102509365B1 true KR102509365B1 (ko) 2023-03-13

Family

ID=54013982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003191A KR102509365B1 (ko) 2015-07-15 2016-05-26 보안 모드 상태 데이터 액세스 트랙킹

Country Status (9)

Country Link
US (1) US10503932B2 (ko)
EP (1) EP3308314B1 (ko)
JP (1) JP6921800B2 (ko)
KR (1) KR102509365B1 (ko)
CN (1) CN107735791B (ko)
GB (1) GB2540388B (ko)
IL (1) IL256164B (ko)
TW (1) TWI721996B (ko)
WO (1) WO2017009597A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229195B2 (en) 2017-06-22 2019-03-12 International Business Machines Corporation Relation extraction using co-training with distant supervision
US10223639B2 (en) 2017-06-22 2019-03-05 International Business Machines Corporation Relation extraction using co-training with distant supervision
GB2564144B (en) * 2017-07-05 2020-01-08 Advanced Risc Mach Ltd Context data management
US11100254B2 (en) 2018-12-05 2021-08-24 Micron Technology, Inc. Processors with security levels adjustable per applications
US20230350582A1 (en) * 2022-04-27 2023-11-02 Micron Technology, Inc. Data masking for memory
GB2621170A (en) * 2022-08-05 2024-02-07 Xmos Ltd Execution of Instructions from Trusted and Untrusted Memories

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140373171A1 (en) 2013-06-12 2014-12-18 Arm Limited Security protection of software libraries in a data processing apparatus

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970246A (en) * 1997-09-11 1999-10-19 Motorola Inc. Data processing system having a trace mechanism and method therefor
US6560698B1 (en) * 1999-05-07 2003-05-06 Advanced Micro Devices, Inc. Register change summary resource
US6763397B1 (en) * 1999-05-27 2004-07-13 Sun Microsystems, Inc. Fully lazy linking
US7386839B1 (en) * 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
WO2010004242A2 (en) * 2008-07-10 2010-01-14 Cambridge Consultants Limited Data processing apparatus, for example using vector pointers
JP4886063B2 (ja) * 2009-12-04 2012-02-29 株式会社エヌ・ティ・ティ・ドコモ 状態報知装置、状態報知方法及びプログラム
GB2487355B (en) * 2011-01-13 2020-03-25 Advanced Risc Mach Ltd Processing apparatus, trace unit and diagnostic apparatus
US8850557B2 (en) * 2012-02-29 2014-09-30 International Business Machines Corporation Processor and data processing method with non-hierarchical computer security enhancements for context states
US9477834B2 (en) * 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
CN102722440B (zh) * 2012-06-07 2017-03-15 中兴通讯股份有限公司 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN102724195B (zh) * 2012-06-20 2015-12-02 华为技术有限公司 访问请求跟踪方法和相关装置
JP2014089644A (ja) * 2012-10-31 2014-05-15 Toshiba Corp プロセッサ、プロセッサ制御方法及び情報処理装置
CN103927191B (zh) * 2013-01-11 2017-05-24 北京阿里巴巴云计算技术有限公司 函数调用的资源配置方法和装置
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム
TWI508087B (zh) * 2013-07-01 2015-11-11 Mstar Semiconductor Inc 記憶體信號的動態相位追蹤方法及其相關控制電路
US9952887B2 (en) * 2014-06-23 2018-04-24 Vmware, Inc. Device simulation in a secure mode supported by hardware architectures

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140373171A1 (en) 2013-06-12 2014-12-18 Arm Limited Security protection of software libraries in a data processing apparatus

Also Published As

Publication number Publication date
JP2018524731A (ja) 2018-08-30
GB2540388B (en) 2019-01-23
TWI721996B (zh) 2021-03-21
CN107735791B (zh) 2021-09-07
CN107735791A (zh) 2018-02-23
WO2017009597A1 (en) 2017-01-19
EP3308314B1 (en) 2020-05-06
IL256164A (en) 2018-02-28
US20180373898A1 (en) 2018-12-27
TW201702890A (zh) 2017-01-16
GB201512367D0 (en) 2015-08-19
US10503932B2 (en) 2019-12-10
IL256164B (en) 2020-03-31
GB2540388A (en) 2017-01-18
EP3308314A1 (en) 2018-04-18
JP6921800B2 (ja) 2021-08-18
KR20180029054A (ko) 2018-03-19

Similar Documents

Publication Publication Date Title
KR102509365B1 (ko) 보안 모드 상태 데이터 액세스 트랙킹
JP6185487B2 (ja) ドメイン間で切り替わる際のセキュアなデータの非セキュアなアクセスから隔離された状態での維持
US8301856B2 (en) Restricting memory areas for an instruction read in dependence upon a hardware mode and a security flag
EP2805246B1 (en) Dynamic execution prevention to inhibit return-oriented programming
KR100867085B1 (ko) 공통 명칭을 갖는 다중 레지스터에 대한 선택적인 액세스 방법 및 장치
US9531735B1 (en) Systems and methods for delivering introspection notifications from a virtual machine
CN108701031B (zh) 寄存器访问控制
US9501667B2 (en) Security domain prediction
EP3649549B1 (en) Context data management
JP2006048186A (ja) 動的コンパイラの生成コードを保護する言語処理系

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