KR20210014115A - 액션 기동 장치 및 방법 - Google Patents

액션 기동 장치 및 방법 Download PDF

Info

Publication number
KR20210014115A
KR20210014115A KR1020207035099A KR20207035099A KR20210014115A KR 20210014115 A KR20210014115 A KR 20210014115A KR 1020207035099 A KR1020207035099 A KR 1020207035099A KR 20207035099 A KR20207035099 A KR 20207035099A KR 20210014115 A KR20210014115 A KR 20210014115A
Authority
KR
South Korea
Prior art keywords
action
data value
data
memory location
memory
Prior art date
Application number
KR1020207035099A
Other languages
English (en)
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 KR20210014115A publication Critical patent/KR20210014115A/ko

Links

Images

Classifications

    • 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
    • G06F11/348Circuit details, i.e. tracer hardware
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • 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/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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
    • G06F9/30003Arrangements for executing specific machine instructions
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

액션 수행을 기동하기 위한 장치 및 방법을 제공한다. 일 장치 예는, 메모리의 메모리 장소로부터 데이터 값을 검색하는 메모리 액세스 회로소자를 포함한다. 이 장치는, 상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하고, 상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때, 상기 데이터 값이 수행될 액션을 규정하는지를 판정하는 액션 기동 회로소자를 더 포함한다. 상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션 기동 회로소자는 상기 액션의 수행을 기동하는 것이다.

Description

액션 기동 장치 및 방법
본 기술은 데이터 처리의 분야에 관한 것이다.
일부의 데이터 처리장치는, 예를 들면 메모리 사용 오류들을 디버깅하거나 검출할 때 사용하기 위해, 특정한 메모리 액세스가 이루어질 때 수행되는 액션을 기동하도록 구성되는 감시점들을 고려한다. 감시점들은, 데이터 값들이 어드레스 가능 기억 장소들에 기억되는 상기 데이터 처리장치의 스토리지와 관련되어도 된다. 이와 같은 감시점의 일례는 데이터 감시점이고, 이 데이터 감시점은 특별한 데이터 값을 상기 스토리지로부터 로딩할 때 액션을 기동시킨다. 또 하나의 예는 어드레스 감시점이고, 이 어드레스 감시점은 특별한 기억 어드레스를 액세스할 때 액션을 기동시킨다.
그들의 유용성에도 불구하고, 상술한 감시점들은 단점이 있다. 데이터 감시점과 관련된 데이터 값은, 통상의 데이터에 액세스할 때 감시점 액션이 수행되기 위한 것이 아닐 때의 경우에 있어서 통상의 데이터를 표현하는 데 사용될 수 없다. 이 때문에, 데이터 감시점들의 구성은 통상의 데이터를 표현하는 데 사용될 수 있는 데이터 값들의 수를 제한한다. 어드레스 감시점들의 경우에, 비교기는, 구성될 어드레스 감시점마다 요구되는 것이 전형적이다. 어드레스 감시점들을 위한 대다수의 어드레스 비교기들을 제공하는 것은 하드웨어적으로 값비쌀 수 있어, 실제로 어드레스 감시점들을 동시에 정할 수 있는 어드레스들의 수가 한정될 수 있다.
일 구성 예에서 제공하는 장치는: 메모리의 메모리 장소로부터 데이터 값을 검색하는 메모리 액세스 회로소자; 및 상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하고; 상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때, 상기 데이터 값이 수행될 액션을 규정하는지를 판정하고; 상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션의 수행을 기동하는, 액션 기동 회로소자를 포함한다.
또 하나의 구성 예에서 제공하는 방법은: 메모리의 메모리 장소로부터 데이터 값을 검색하는 단계; 상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하는 단계; 및 상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때, 상기 데이터 값이 수행될 액션을 규정하는지를 판정하고; 상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션의 수행을 기동하는 단계를 포함한다.
추가의 예에서 제공한, 호스트 데이터 처리장치가 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하도록 제어하는 컴퓨터 프로그램은: 메모리의 메모리 장소로부터 데이터 값을 요구하는 메모리 액세스 프로그램 로직; 및 상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하고; 상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때, 상기 데이터 값이 수행될 액션을 규정하는지를 판정하고; 상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션의 수행을 기동하는, 액션 기동 프로그램 로직을 포함한다. 기억매체는, 상술한 컴퓨터 프로그램을 기억하여도 된다. 이 기억매체는 비일시적 기억매체이어도 된다.
본 기술은, 아래의 첨부도면들에 도시된 것과 같은 예들을 참조하여 예시로만 한층 더 설명하겠다:
도 1은 일 배치 예에 따라서 장치의 블록도이고,
도 2는 제한 포인터 기억 소자들의 세트내에 포인터 값을 세트하거나 액세스하려고 하는 경우 오류가 기동될 수도 있는 명령의 타입들의 예들을 도시한 것이고, 여기서 해당 포인터는 관련된 범위 정보로 나타낸 범위밖의 어드레스를 지정하는 데 사용되고;
도 3은 일 배치 예에 따라서, 제한 포인터들과 관련지어 태그 비트의 이용을 예시한 것이고,
도 4는 일례에 따른 방법을 개략적으로 도시한 것이고,
도 5a-5e는 일례에 따른 오류 완화 알고리즘을 예시한 것이고,
도 6은 일례에 따른 방법을 개략적으로 도시한 것이고,
도 7은 일례에 따른 장치를 개략적으로 도시한 것이고,
도 8은 일례에 따른 시뮬레이터를 개략적으로 도시한 것이다.
본 개시내용의 예들에 따른 데이터 처리장치에 의해, 주어진 메모리 장소에 기억된 데이터 값은 상이한 해석에 따라 해석될 수 있다.
이러한 상이한 해석을 할 수 있는 시스템의 일례로서, 장치는, 특별한 어드레스를 가리키는 포인터가 역참조될 수도 있는 어드레스들의 허용 가능 범위를 가리키는 범위 정보와 관련되는 제한 포인터들을 지원할 수도 있다. 예를 들면, 이러한 포인터들을, "팻(fat) 포인터들"이라고 하기도 한다. 범위 정보와 아울러, 이러한 제한 포인터들은 포인터의 이용에 관해 하나 이상의 제한들/허가들을 규정하는 그 밖의 관련 속성들도 가질 수도 있다. 허가들이 있는 상기와 같은 제한 포인터들은 "자격들"이라고 불리는 경우가 많고, 따라서 이러한 제한 포인터들의 이용은 상기 제한 포인터에서 지정한 상기 포인터 값을 어떻게 사용하는지에 제약을 둠으로써, 강한 보안성을 제공할 수 있다. 이러한 데이터 처리장치들에 있어서, 주어진 메모리 장소의 콘텐츠는 자격으로서 또는 데이터로서 해석되어도 된다.
본 개시내용의 예들에 있어서, 이 데이터 기능성은, 논데이터 해석과 같은 특별한 해석에 따라 해석될 때, 수행될 액션을 규정하는 주어진 데이터 값을 제공함으로써 확장된다. 예들에 있어서, 상기 액션은, 당해 해석을 위한 여분인 데이터 값 공간내에서 인코딩된다. 예를 들면, 이 해석은 약간 활용하여도 되지만, 이용 가능한 데이터 값들의 전부를 활용하지 않는다. 그 후, 상기 제2 해석을 위해 활용되지 않는 나머지 데이터 값들의 적어도 일부는, 수행될 상기 액션을 인코딩하는 데 사용될 수 있다. 이렇게, 감시점형 기능성은, 데이터 해석을 위한 상기 이용 가능한 데이터 값 공간을 감소시키지 않고 구현될 수 있다: 전체 범위의 데이터 값들은 그래도 이용 가능하다. 이렇게 하여, 상술한 데이터 감시점들의 단점은 방지된다. 게다가, 전용 어드레스 비교기들은, 감시될 어드레스마다 요구되지 않음에 따라서, 상술한 어드레스 감시점들의 단점을 방지한다.
상술한 것처럼, 장치의 예는, 메모리의 메모리 장소로부터 데이터 값을 검색하는 메모리 액세스 회로소자를 포함한다. 이 장치는, 상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하는 액션 기동 회로소자를 포함한다. 예들에 있어서, 상기 제1 해석은 상기 데이터 값이 데이터인 것이고, 상기 제2 해석은 상기 데이터 값이 논데이터, 이를테면 메타데이터인 것이다. 상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때, 상기 액션 기동 회로소자는 상기 데이터 값이 수행될 액션을 규정하는지를 판정한다. 상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션 기동 회로소자는 상기 액션의 수행을 기동한다. 따라서, 그 장치는, 수행될 액션을 규정하기 위해, 상기 제2 해석에 따라 수행될 데이터 값을 제공한다. 따라서, 이에 따라, 잠재적으로 대다수의 어드레스들은, 많은 어드레스 비교기들을 요구하지 않고 또한 상기 제1 해석에서 데이터용 이용 가능한 인코딩 공간을 감소시키지 않고, 잠재적으로 그 액션을 기동하는 것에 액세스하기 위해 감시될 수 있다. 이것은, 메모리 사용 오류들(이를테면, 한계밖 위반들, 프리 후 사용 오류들, 등, 여기서 잠재적으로 부정확하게 액세스될 수 있는 메모리 어드레스들의 수는 상대적으로 커서, 어드레스 감시점들을 사용하여 상기와 같은 오류들을 캐치하는 데 실용적이지 않게 한다)의 특정한 클래스들을 검출하는 데 특히 유용할 수 있다.
예들에 있어서, 상기 액션은, 예를 들면 예외의 신호를 보내는 것을 포함하여도 되는 오류 완화 액션이다. 이것은, 특별한 메모리 구역들로부터 원하지 않거나 비인증 부하들에 대해 보호하기 위해 "카나리아(canary)"로서 사용될 수 있다.
이와는 달리 또는 추가로, 상기 액션은, 카운터를 증분하거나 로그 파일을 기억하는 등 함으로써, 진단 레코드를 갱신하는 것을 포함하여도 된다. 이것은, 예외의 신호를 보내는 것과 실행 흐름을 정지시키는 것을 필요로 하지 않고 특별한 메모리 구역들로부터 부하들을 계속 추적할 수 있다.
상기 액션은 상이한 메모리 장소로부터 상이한 데이터 값을 복귀시키는 것을 포함하여도 된다. 이것은, 수행될 상기 액션을 허용하고 또한 원하는 데이터 값도 복귀시킨다. 예를 들면, 아래에 보다 상세히 설명된 것처럼, 프리드(freed) 메모리 장소는 액션을 규정하는 데이터 값과 겹쳐써질 수 있고, 해당 메모리 장소에 원래 기억되었던 상기 데이터 값은 또 하나의 메모리 장소에 기억된다. 해당 메모리 장소가 액세스될 때, 상기 액션이 수행될 수 있고 다른 메모리 장소로부터의 데이터 값이 복귀될 수 있다. 이것은, 예를 들면, 예상된 데이터를 복귀시키면서 프리드 메모리 장소들로부터 부하들의 레코드를 보관되게 함으로써, 현재 규정된 장치가, 본 장치를 위해 구체적으로 기록되지 않은 코드의 실행을 방해하지 않고, 투명하게 구현되게 한다.
예들에 있어서, 상기 데이터 값 검색과 관련 액션은 상기 메모리 장소에 시도된 기록에 응답하여 수행되고, 상기 액션은 상기 기록이 실제로 수행되는지를 판정하는 것을 포함한다.
관련된 예들에 있어서, 상기 액션은, 상기 메모리 장소에 시도된 기록과 관련된 프로세서 작동 상태가 금지된 작동 상태라고 판정하는 것과, 상기 작동 상태가 상기 금지된 작동 상태라고 상기 판정하는 것에 응답하여, 상기 시도된 기록을 금지시키는 것을, 포함한다. 상기 작동 상태는, 적어도 하나의 실행 특권 레벨이어도 된다. 상기와 같이 특별한 특권 레벨들로부터 기록들을 금지시키는 것에 의해, 어느 프로세스들이 상기 데이터 값을 겹쳐쓸 수 있는지의 제어를 할 수 있다. 예를 들면, 상기 데이터 값을 세트하는 상기 프로세스 이외의 프로세스들에 의해 상기 데이터 값을 실수로 겹쳐쓰지 않게 할 수 있다.
예를 들면, 상술한 데이터 값 검색과, 관련된 상기 액션의 수행은, 상기 메모리 장소에 시도된 기록에 응답하여 수행된다. 상기 액션은, 이러한 예들에서, 상기 시도된 기록이 실제로 수행되는지를 판정하는 것을 포함하여도 된다. 예를 들면, 이에 따라, 상기 액션은 금지된 기록이 시도되었는지에 근거될 수 있다.
예들에 있어서, 상기 액션 기동 회로소자는, 상기 메모리 장소와 관련된 제어 값에 근거한 상기 제1 해석이나 상기 제2 해석에 따라 상기 데이터 값이 해석되게 되는지를 판정하는 것이다. 예를 들면, 상기 제어 값은 태그 비트이어도 된다. 상기 제어 값은, 제어 값 기억을 위해 할당된 상기 메모리의 구역내의 제어 값 메모리 장소에 기억되어도 된다. 또는, 상기 제어 값은, 상기 메모리 장소와 관련된, 이를테면 상기 메모리 장소에 인접한 제어 값 메모리 장소에 기억되어도 된다. 따라서, 상기 제어 값 기억의 장소는, 특별한 시스템의 요구사항들과 제한들에 근거하여 결정될 수 있다.
예들에 있어서, 상기 액션 기동 회로소자는, 상기 데이터 값이 하나 이상의 미리 규정된 값들 중 하나에 적어도 부분적으로 일치할 때 상기 액션을 기동하는 것이다. 예를 들면, 상술한 것처럼, 상기 액션은 상기 제2 해석에 따른 데이터 값들에 있어서 중복성에 의해 규정되어도 되어, 특별한 미리 규정된 값들은 상기 제2 해석에 활용되지 않는다. 그 후, 이러한 미리 규정된 데이터 값들은, 수행될 상기 액션을 규정하는 데 사용될 수 있다.
일부의 처리 장치들은, 제한 포인터들의 이용을 지원할 수도 있다. 상기 포인터 자체는, 예를 들면 액세스될 데이터 값의 상기 어드레스나 실행될 명령을, 가리킬 수도 있거나, 결정하는 데 사용될 수도 있다. 그렇지만, 상기 포인터는, 그 포인터를 사용할 때 허용 가능한 범위의 어드레스들을 가리키는 관련 범위 정보도 가질 수도 있다. 이것은, 예를 들면, 상기 포인터로부터 결정된 상기 어드레스가 보안성 또는 작용의 기능적 정확성을 유지 관리하기 위해 특정한 한계내에 유지되도록 보장하는 데 유용할 수 있다. 예를 들면, 특정한 자격들이 주어진 프로세스를 위해 규정되는 자격 기반 아키텍처들에 있어서 관심이 증가하고 있고, 오류는 상기 규정된 자격들 외의 연산들을 실시하려는 시도가 있는 경우 기동될 수 있다. 제한 포인터용 범위 정보는 상기와 같은 아키텍처를 위해 규정된 상기 자격 정보의 일부이어도 되고, 자격 기반 아키텍처내에서 (관련된 자격 정보를 포함하는) 상기와 같은 제한 포인터를 자격이라고 할 수도 있다.
따라서, 장치는, 허용 가능한 범위의 어드레스들을 나타내는 관련 범위 정보를 갖는 포인터를 사용할 때 이 포인터를 기억하는 데 사용된 기억 소자들을 가져도 된다. 각 제한 포인터 기억 소자는, 레지스터, 또는 범용 메모리에서의 메모리 장소, 예를 들면 스택 메모리상의 장소일 수 있다.
특정한 명령들은, 상기 명령의 연산동안에 요구된 메모리에서의 어드레스를 얻는 데 사용되는 포인터를 취득하기 위해서, 상기와 같은 제한 포인터 기억 소자를 참조하는 데 사용될 수 있다. 상기 포인터는, 상기 메모리 어드레스를 직접 특정하는 데 사용되어도 되거나, 예를 들면 상기 포인터 값에 오프셋의 가산에 의해 상기 메모리 어드레스를 얻는 데 사용되어도 된다.
상술한 것처럼, 예들에 있어서, 상기 제1 해석은, 상기 데이터 값이 데이터인 것이다. 관련된 예들에 있어서, 상기 제2 해석은, 상기 데이터 값이 메타데이터인 것이다. 상기 메타데이터는, 예를 들면, 그 메타데이터가 기억되는 상기 메모리 장소와 상이한 추가의 메모리 장소에 기억된 데이터 값에 관련될 수도 있다. 상기 추가의 메모리 장소에 기억된 상기 데이터 값은, 상기 제1 해석에 따라 해석되어도 된다. 제한 포인터들의 이용이 지원되는 예들에 있어서, 상기 추가의 메모리 장소에 기억된 상기 데이터 값은 제한 포인터의 포인터 값을 포함하여도 되고, 그 후, 상기 메타데이터는 상기 제한 포인터를 위한 한계를 포함하여도 된다. 일부의 이러한 예들에 있어서, 상기 액션 기동 회로소자는 상기 포인터 값이 상기 한계밖에 있다고 판정하는 것이고, 상기 포인터 값이 상기 한계밖에 있다고 판정하는 것에 응답하여, 예외의 신호를 보내는 것이다. 이렇게, 자격들의 이용을 지원하는 시스템의 데이터 처리 기능성은, 여기 어디에서나 설명된 것처럼 액션들의 기동을 위해 제공하도록 확장될 수 있다.
상기 제2 해석은 상기 데이터 값이 메타데이터인 것인 그 밖의 예들에 있어서, 상기 메타데이터는 상기 추가의 메모리 장소에 기억된 데이터와 관련된 오류 정정 코드다. 이렇게, 오류 정정 코드들의 이용을 지원하는 시스템의 상기 데이터 처리 기능성은, 여기 어디에서나 설명된 것처럼 액션들의 기동을 위해 제공하도록 확장될 수 있다.
이하, 특별한 예들에 대해서 상기 도면들을 참조하여 설명하겠다.
도 1은 명령들을 처리하는 처리 파이프라인(4)을 포함하는 데이터 처리장치(2)의 일례를 개략적으로 예시한 것이다. 본 예에서, 처리 파이프라인(4)은, 페치(fetch) 스테이지(6), 디코드 스테이지(8), 발행(issue) 스테이지(10), 실행 스테이지(12) 및 라이트 백(write back) 스테이지(14)로 이루어진 다수의 파이프라인 스테이지들을 구비하지만, 그 밖의 타입들이나 조합들의 스테이지들이 제공될 수도 있다는 것을 알 것이다. 예컨대, 레지스터 리네이밍을 수행하는 리네임 스테이지는 일부의 구현들에 구비될 수 있었다. 처리될 명령들은, 스테이지마다 이동하고, 명령이 하나의 스테이지에서 진행중인 동안 또 하나의 명령은 상기 파이프라인(4)의 상이한 스테이지에서 진행중이어도 된다.
페치 스테이지(6)는, 레벨 1(L1) 명령 캐시(20)로부터 명령들을 페치한다. 페치 스테이지(6)는, 통상, 연속적인 명령 어드레스들로부터 순차로 명령들을 페치할 수도 있다. 그렇지만, 상기 페치 스테이지는 분기 명령들의 결과를 예측하는 분기 예측기(22)도 가질 수도 있고, 상기 페치 스테이지(6)는, 분기가 테이큰이라고 예측되면 (비순차) 분기 타겟 어드레스로부터, 또는, 분기가 낫 테이큰이라고 예측되면 다음 순차의 어드레스로부터, 명령들을 페치할 수 있다. 분기 예측기(22)는, 특정한 분기들이 취해질 가능성이 높을지 않을지를 예측하기 위한 정보를 기억하는 하나 이상의 분기 이력표들을 포함할 수도 있다. 예컨대, 상기 분기 이력표들은, 이전에 실행된 분기들의 실제 결과들을 추적하거나, 분기들을 위해 이루어진 예측에 대한 신뢰도를 표현하는, 카운터들을 구비할 수도 있다. 또한, 분기 예측기(22)는, 분기 명령들의 이전의 타겟 어드레스들이 동일한 분기 명령들의 이후의 인카운터들에 관해 예측될 수 있도록, 상기 이전의 타겟 어드레스들을 캐싱하기 위한 분기 타겟 어드레스 캐시(BTAC)(24)도 구비할 수도 있다.
페치된 명령들은, 그 명령들을 디코딩하여 디코딩된 명령들을 발생하는 디코드 스테이지(8)에 넘겨진다. 디코딩된 명령들은, 실행 스테이지(12)를 제어하여 적절한 처리 연산들을 실행하기 위한 제어정보를 포함하여도 된다. 상기 캐시(20)로부터 페치된 일부 보다 복잡한 명령들에 대해서, 디코드 스테이지(8)는, 그 명령들을, 마이크로연산들(μops 또는 uops)로서 공지되어도 되는 다수의 디코딩된 명령들에 매핑하여도 된다. 따라서, L1 명령 캐시(20)로부터 페치된 명령들과 상기 파이프라인의 나중의 스테이지들에 의해 보여진 것과 같은 명령들과의 사이의 1대1 관계가 없을 수도 있다. 일반적으로, 본 출원에서의 "명령들"에 대한 레퍼런스들은 마이크로연산들을 포함하는 것으로서 해석되어야 한다.
디코딩된 명령들은, 그 명령들의 실행을 위해 요구된 오퍼랜드들이 이용 가능하고 그 오퍼랜드들이 이용 가능할 때 실행하기 위한 명령들을 발행하는지를 판정하는 발행 스테이지(10)에 넘겨진다. 일부의 구현들은, 명령들을 L1 명령 캐시(20)로부터 페치하였던 프로그램 순서에 대응한 순서로 실행하기 위해 명령들을 발행하도록, 순차적 처리를 지원할 수도 있다. 그 밖의 구현들은, 비순차적 실행을 지원할 수도 있어, 명령들은 그 프로그램 순서와 상이한 순서로 실행 스테이지(12)에 발행될 수 있다. 비순차적 처리는, 앞선 명령이 오퍼랜드들을 기다리는 동안 일시 중지되지만, 이용 가능한 오퍼랜드들을 갖는 프로그램 순서로 나중의 명령이 먼저 실행될 수 있기 때문에 성능을 향상시키는 데 유용할 수 있다.
발행 스테이지(10)는 명령들을 실행 스테이지(12)에 발행하여, 실행 스테이지(12)는 그 명령들을 실행하여 각 종 데이터 처리 연산들을 실시한다. 예컨대, 상기 실행 스테이지는, 정수값들에 대한 산술연산 또는 논리연산을 실시하기 위한 산술/논리 유닛(ALU)(30), 부동소수점 형태로 표현된 값들에 대한 연산들을 실시하기 위한 부동소수점(FP) 유닛(32), 및 레벨 1(L1) 데이터 캐시(36)으로부터 레지스터(40)에 데이터 값을 로딩하는 로드 동작들이나 레지스터(40)로부터 L1 데이터 캐시(36)에 데이터 값을 기억하는 스토어 동작들을 실시하기 위한 로드/스토어 유닛(34)으로 이루어진 다수의 실행 유닛들(30, 32, 34)을 구비하여도 된다. 이들은 제공될 수 있는 실행 유닛들의 타입들의 단지 일부 예들이고 다수의 다른 종류들도 제공될 수 있다는 것을 알 것이다. 상기 처리 연산들을 실시하기 위해서, 상기 실행 스테이지(12)는, 일 세트의 레지스터들(40)로부터 데이터 값들을 판독할 수도 있다. 그 후, 그 실행된 명령들의 결과들은, 라이트 백 스테이지(14)에 의해 상기 레지스터들(40)에 역으로 기록되어도 된다.
L1 명령 캐시(20) 및 L1 데이터 캐시(36)는, 다수의 레벨들의 캐시들을 포함하는 캐시 계층의 일부이어도 된다. 예컨대, 레벨 2(L2) 캐시(44)도 제공되어도 되고, 선택사항으로 추가의 레벨들의 캐시가 제공될 수 있다. 본 예에서, L2 캐시(44)는, L1 명령 캐시(20)와 L1 데이터 캐시(36)간에 공유되지만 그 밖의 예들은 분리된 L2 명령 캐시와 데이터 캐시를 가질 수도 있다. 페치될 명령이 L1 명령 캐시(20)에 있지 않을 때, 그것은 L2 캐시(44)로부터 페치될 수 있고, 마찬가지로 그 명령이 L2 캐시(44)에 있지 않으면 그것은 메인 메모리(50)로부터 페치될 수 있다. 마찬가지로, 로드 명령들에 응답하여, 데이터는, L1 데이터 캐시(36)에 있지 않고 필요한 경우 메모리(50)로부터 페치되면 L2 캐시(44)로부터 페치될 수 있다. 임의의 공지된 기법(scheme)은 캐시 계층을 관리하는 데 사용되어도 된다.
프로그램 명령들 및 데이터 값들을 참조하는 데 상기 파이프라인(4)에서 사용한 어드레스들은 가상 어드레스들이어도 되지만, 적어도 메인 메모리(50)와, 선택사항으로 적어도 일부 레벨들의 상기 캐시 계층은, 물리적으로 어드레싱되어도 된다. 따라서, 변환 색인 버퍼(52)(TLB)는, 파이프라인(4)에서 사용한 가상 어드레스들을 상기 캐시나 메모리에 액세스하는 데 사용된 물리 어드레스들로 변환하도록 제공되어도 된다. 예컨대, 상기 TLB(52)는, 가상 어드레스 공간의 대응한 페이지의 가상 페이지 어드레스와, 가상 페이지 어드레스가 대응한 페이지내의 가상 어드레스들을 물리 어드레스로 변환하기 위해서 매핑되어야 하는 대응한 물리 페이지 어드레스를, 각각 지정하는 다수의 엔트리들을 구비하여도 된다. 예를 들면, 상기 가상 및 물리 페이지 어드레스는, 대응한 가상 및 물리 어드레스들의 최상위 부분에 대응하여도 되고, 이때의 나머지 최하위 부분은 가상 어드레스를 물리 어드레스에 매핑할 때 그대로 있다. 어드레스 변환 정보뿐만 아니라, 각 TLB 엔트리도 어드레스들의 특정한 페이지들이 파이프라인(4)의 특정한 모드들에서 액세스 가능한지를 나타내는 것 등의 액세스 허가를 지정하는 일부 정보도 포함할 수도 있다. 일부 구현들에서, TLB 엔트리들은, 캐시 계층의 어느 레벨들이 판독 연산 또는 기록 연산에 응답하여 갱신되는지(예컨대, 상기 캐시가 라이트 백 또는 라이트 쓰루(through) 모드로 연산해야 하는지)를 규정하는 캐시 정책 정보나, 대응한 페이지에서 어드레스들에의 데이터 액세스들이 파이프라인(4)에서 데이터 액세스들을 발행하였던 순서와 비교하여 상기 메모리 시스템에 의해 재배치할 수 있는지를 규정하는 정보 등의, 어드레스들의 대응한 페이지의 그 밖의 특성들도 규정할 수 있었다.
도 1은 단일의 레벨 TLB(52)를 도시하지만, TLB들의 계층은, 레벨 1(L1) TLB(52)가 최근에 액세스된 다수의 페이지들에서의 어드레스들을 변환하기 위한 TLB 엔트리들을 포함하고 레벨 2(L2) TLB가 보다 큰 수의 페이지들에 대한 엔트리들을 기억하기 위해 제공될 수도 있도록, 구성되어도 되는 것을 알 것이다. 요구된 엔트리가 L1 TLB에 있지 않을 때, 그것은 L2 TLB로부터, 또는 상기 계층에서 추가의 TLB들로부터, 페치될 수 있다. 페이지가 액세스되는 요구된 엔트리가 그 TLB들 중 어느 하나에 있지 않은 경우, 페이지 테이블 워크(walk)는, 메모리(50)에서의 페이지 테이블들에 액세스하도록 수행될 수 있다. 임의의 공지된 TLB 관리 기법은, 본 기술에서 사용될 수 있다.
또한, 일부 시스템들은, 예컨대, 제1 TLB(또는 TLB들의 계층)이 가상 어드레스들을 중간 어드레스들로 변환하는 데 사용되고 나서, 하나 이상의 추가의 TLB(들)을 사용한 제2 레벨의 어드레스 변환이 그 중간 어드레스들을 캐시나 메모리에 액세스하는 데 사용된 물리 어드레스들로 변환하여도 되도록, 다수의 레벨들의 어드레스 변환을 지원하여도 된다는 것을 알 것이다. 이것은, 예를 들면, 제1 레벨의 어드레스 변환이 운영체계에 의해 관리되어도 되고 제2 레벨의 어드레스 변환이 하이퍼바이저에 의해 관리되어도 되는 가상화를 지원하는 데 유용할 수 있다.
도 1에 도시된 것처럼, 상기 장치(2)는, 일 세트의 제한 포인터 레지스터들(60)을 가져도 된다. 그 일 세트의 제한 포인터 레지스터들이 도 1에서 일 세트의 범용 데이터 레지스터들(40)에 대해 물리적으로 분리된 것으로서 도시되어 있지만, 일 구현에서는 동일한 물리적 스토리지는, 범용 데이터 레지스터들과 제한 포인터 레지스터들 모두를 제공하는 데 사용되어도 된다.
각 제한 포인터 레지스터(60)는, 액세스되는 데이터 값의 어드레스를 결정하는 데 사용되어도 되는 포인터 값(62)과, 대응한 포인터(62)를 사용할 때 허용 가능한 어드레스들의 범위를 지정하는 범위 정보(64)를 포함한다. 제한 포인터 레지스터(60)는, 포인터의 이용에 관해 하나 이상의 제한들/허가들을 규정하여도 되는 제한 정보(66)(여기서는 허가 정보라고도 함)도 포함하여도 된다. 예컨대, 상기 제한 정보(66)는, 포인터(62)를 사용하여도 되는 명령들의 타입들, 또는 포인터가 사용될 수 있는 파이프라인(4)의 모드들을, 제한하는 데 사용될 수 있었다. 따라서, 상기 범위 정보(64)와 제한 정보(66)는, 사용할 포인터(62)가 허용되는 자격들을 규정하는 데 고려될 수도 있다. 규정된 자격들외에서 포인터(62)를 사용하려고 시도할 때, 오류가 기동될 수 있다. 상기 범위 정보(64)는, 예를 들면, 포인터들이, 특정한 공지된 한계내에 있고, 민감하거나 안전한 정보를 포함할지도 모르는 메모리 어드레스 공간의 그 밖의 영역들로 벗어나지 않는 것을 보장하는 데 유용할 수 있다. 동일한 물리적 스토리지가 범용 데이터 레지스터들과 제한 포인터 레지스터들과의 양쪽에 사용되는 예에 있어서, 일 구현에서, 상기 포인터 값(62)은, 예컨대, 대응한 범용 레지스터에 사용된 것처럼 동일한 기억장소내에 기억되어도 된다.
도 2는 허용 가능한 범위를 사용하여 데이터나 명령들에의 비인증 액세스에 대해 보호하는 명령들의 타입들의 일례를 도시한 것이다. 도 2의 상부에 도시된 것처럼, 특별한 제한 포인터 레지스터 PR1은, 본 예에서 허용 가능한 범위의 하계(lower bound)를 규정하는 하계 어드레스(68)와 허용 가능한 범위의 상계(upper bound)를 규정하는 상계 어드레스(69)를 사용하여 지정되는, 주어진 포인터 값(62)과 범위 정보(64)를 포함한다. 예를 들면, 상기 하계 어드레스(68)와 상계 어드레스(69)는, 어드레스들 80000 내지 81000의 범위를 규정하도록 세트된다. 오류들은, 특정한 명령들이 상기 제한 포인터 레지스터 PR1을 참조하고 포인터(62)로부터 결정된 어드레스가 이 범위외에 있을 때, 기동될 수도 있다.
예를 들면, 도 2의 파트 A에 도시된 것처럼, 일부 시스템들에서, 오류는, 포인터 레지스터(60)에서의 포인터(62)의 값을, 범위 정보(64)에서 지정한 범위외에 있는 값으로 세트하려는 시도가 있는 경우(여기서는, 포인터가 직접 어드레스를 지정하는 것으로 한다) 기동될 수도 있다. 이것은, 그 포인터를 사용한 임의의 액세스들이 안전하게 상기 허용된 범위내에 있도록 보장될 수 있게 상기 포인터(62)가 상기 지정된 범위외의 어떠한 값도 취하는 것을 피한다. 또는, 도 2의 파트 B에 도시된 것처럼, 오류는, 해당 어드레스 상기 지정된 범위외에 있을 때 명령이 그 포인터(62)의 어드레스에 의해 특정된 장소에 액세스하려고 시도할 때 기동될 수 있다. 따라서, 그래도 상기 포인터(62)를 상기 지정된 범위외의 값으로 세트하도록 허용 가능할 수도 있지만, 포인터 어드레스(또는 그 포인터로부터 얻어진 어드레스)에서의 데이터 액세스가 시도되면, 오류는 그 어드레스가 상기 허용된 범위외에 있을 경우 기동될 수도 있다. 그 밖의 시스템들은, 도 2의 파트 A와 B에 도시된 명령의 타입들 양쪽에 응답하여 오류들을 기동할 수도 있다.
범위 정보(64)는 상이한 방식들로 세트될 수 있다. 예컨대, 보안 코드, 또는 운영체계 또는 하이퍼바이저는, 주어진 포인터를 고려한 범위를 지정하여도 된다. 예컨대, 명령 세트 아키텍처는, 주어진 포인터(62)에 대한 범위 정보(64)를 세트 또는 수정하기 위한 다수의 명령들을 포함하여도 되고, 이 명령들의 실행은 특정한 소프트웨어 또는 상기 프로세서(4)의 특정한 모드들 또는 예외 레벨들로 제한될 수 있다. 상기 범위 정보(64)를 세트 또는 수정하기 위한 임의의 공지된 기술이 사용될 수 있다.
포인터를 참조하는 특정한 명령들을 실행할 때 실행 스테이지(12)에서 사용되어도 되는 상기 세트의 실행 제한 포인터 기억소자들(60)과 아울러, 프로그램 카운터 자격(PCC) 레지스터(80)는 레벨 1 명령 캐시(20)로부터 명령들을 페치중일 때 페치 스테이지(6)에서 유사한 기능성을 제공하는 데도 사용될 수도 있다. 특히, 프로그램 카운터 포인터는 필드(82)에 기억되어도 되고, 이때의 PCC(80)는, 상기 세트의 제한 포인터 기억소자들(60)에서 상기 포인터들의 각각에 구비된 상기 범위 정보 및 제한 정보와 유사한, 범위 정보(84)와 임의의 적절한 제한 정보(86)도 제공한다.
도 3은 개개의 데이터 블록들과 관련지어, 그 데이터 블록들이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 특정하는데 어떻게 태그 비트를 사용하는지를 개략적으로 예시한 것이다. 본 예에서, 상기 제1 해석은 데이터 블록이 통상의 데이터로서 해석되게 되는 것이고, 상기 제2 해석은 데이터 블록이 자격(즉, 제한 포인터와 관련 제한 정보)을 표현하는 것으로서 해석되게 되는 것이다. 특히, 상기 메모리 어드레스 공간(110)은, 전형적으로 지정된 사이즈를 가질 일련의 데이터 블록들(115)을 기억할 것이다. 단지 예시의 간략을 기하기 위해서, 본 예에서는, 각 데이터 블록이 128비트로 이루어진다고 가정한다. 각 데이터 블록(115)과 관련지어, 일례에서, 그 관련된 데이터 블록이 논데이터로서, 예를 들면 자격(즉, 상기 제2 해석에 따라 해석됨)으로서 해석되게 되는 것을 특정하도록 세트되고, 그 관련된 데이터 블록이 통상의 데이터(즉, 상기 제1 해석에 따라 해석됨)를 표현하는 것을 나타내도록 클리어되는, 상기 태그 비트라고 하는 단일의 비트 필드인 태그 필드(120)를 제공한다. 세트 또는 클리어 상태와 관련된 실제의 값이 구현에 따라 달라질 수 있지만, 단순히 예를 들기 위해서만, 일례에서는 상기 태그 비트의 값이 1이면, 그것은 관련된 데이터 블록이 논데이터로서 해석되게 되는 것을 가리키고, 태그 비트의 값이 0이면, 그것은 관련된 데이터 블록이 통상의 데이터를 갖는 것을 가리킨다는 것을 알 것이다.
본 예에서, 상기 제2의 논데이터 해석은, 데이터 블록이 자격을 갖는 것이다. 제한 포인터 레지스터들(60)의 하나(여기서는 자격 레지스터라고도 함), 이를테면 도 3에 도시된 자격 레지스터(100)에 자격을 로딩할 때, 태그 비트는 그 자격 정보와 함께 이동한다. 이에 따라, 자격이 자격 레지스터(100)에 로딩될 때, 포인터(102), 범위 정보(104) 및 제한 정보(106)(이후, 허가 정보라고 함)는 자격 레지스터에 로딩될 것이다. 추가로, 해당 자격 레지스터와 관련지어, 또는 그 자격 레지스터내의 특유의 비트 필드로서, 태그 비트(108)는, 콘텐츠가 자격을 표현하는 것을 특정하도록 세트될 것이다. 마찬가지로, 자격이 메모리에 돌아가게 기억될 때, 해당하는 태그 비트(120)는, 그 자격이 기억되는 데이터 블록과 관련지어 세트될 것이다. 이러한 해결방법에 의해, 자격과 통상의 데이터를 구별하므로, 통상의 데이터가 자격으로서 사용될 수 없도록 보장하는 것이 가능하다.
상기 태그 비트는 주어진 데이터 블록이 자격을 표현하는 것을 가리킬 때, 상기 데이터 블록은 수행될 액션을 규정할 수 있다. 본 예에서, 이것은 상기 데이터 블록에서의 중복 공간내에 인코딩된다. 예를 들면, 특별한 데이터 값들은, 자격들을 규정하는 데 요구될 수 없을 수도 있다. 그 후, 이러한 값들은, 수행될 하나 이상의 액션들을 규정하는 데 사용될 수 있다.
도 4는 본 개시내용의 일례에 따른 방법(400)을 개략적으로 도시한 것이다. 이 방법(400)은, 예를 들면, 일반적인 처리 회로소자에서, 또는 구체적으로 그 방법(400)을 구현하도록 구성된 특수 회로소자에서 구현되어도 된다.
블록 405에서는, 예컨대, 도 1과 관련하여 상술한 것처럼, 메모리의 메모리 장소로부터 데이터 값을 검색한다.
블록 410에서는, 상기 데이터 값을 제1 해석이나 제2 해석에 따라 해석할지를 판정한다. 상술한 것처럼, 예들에 있어서, 상기 제1 해석은 상기 데이터 값이 데이터에 해당하는 것이고, 상기 제2 해석은 상기 데이터 값이 자격에 해당하는 것이다. 예컨대, 상기 블록 410의 판정은, 도 3과 관련지어 상술한 것처럼, 상기 데이터 값과 관련된 태그 비트에 근거하여도 된다.
블록 410에서 상기 데이터가 상기 제2 해석에 따라 해석되게 된다고 판정되면, 블록 415의 흐름으로 진행된다.
블록 415에서는, 상기 데이터 값이 수행될 액션을 규정하는지를 판정한다. 이러한 액션들의 특별한 예들과, 그 액션들이 상기 데이터 값내에서 어떻게 인코딩될 수 있는지는, 본 개시내용의 어디에서나 설명되어 있다. 예를 들면, 상기 액션은 오류 완화 액션이어도 된다.
블록 415에서 상기 데이터 값이 수행될 액션을 규정한다고 판정되면, 블록 420의 흐름으로 진행된다.
블록 420에서는 상기 액션을 수행한다.
이에 따라, 상기 방법(400)은, 주어진 데이터 값이 상이한 해석에 따라 해석되게 제공하고, 더욱이, 상기 제2 해석에 대응한 것으로서 나타내어진 데이터 값들이 액션의 수행을 기동하게 제공한다. 예를 들면, 여기 어디에서나 설명된 것처럼, 수행될 액션은, 상기 제2 해석에서 달리 요구하지 않는 데이터 값들을 활용하여서 중복성을 이용함으로써 규정되어도 된다. 이렇게 하여, 상기 시스템의 데이터 처리 기능성은, 상기 액션이 수행되게 되는지를 표현하기 위해 추가의 스토리지를 필요로 하지 않고 향상된다.
상술한 것처럼, 상기 수행될 액션은 오류 완화 액션이어도 된다. 예컨대, 상기 액션은, 예를 들면, 로그 파일을 기억 또는 갱신하거나 카운터를 증분함으로써, 진단 레코드를 갱신하는 것을 포함하여도 된다. 이와는 달리 또는 추가로, 상기 액션은, 원래 액세스된 메모리 장소와 상이한 메모리 장소로부터 데이터 값을 복귀시키는 것을 포함하여도 된다. 이하, 이러한 액션의 일례에 대해서 도 5a-5e를 참조하여 설명하겠다.
도 5a는, 상기 데이터 값들이, 제1의, 데이터, 해석 또는 제2의, 논데이터, 해석에 따라 해석될 수 있지만, 상기 제2 해석에 따른 데이터 값들이 수행될 액션들을 규정하지 않도록, 본 개시내용의 방법들을 구현하지 않는 비교 시스템의 메모리(500)를 개략적으로 도시한 것이다.
상기 메모리(500)는, 메모리 장소들(505a-505e)에서의 데이터 값들 A-E를 포함한다. 검색요구(510)는 상기 메모리 장소(505c)에 향하여 있고, 상기 데이터 값 C는 검색(515)에 검색된다.
도 5b는 상기 메모리 장소들(505a-505e)의 해제 후의 상기 메모리(500)를 개략적으로 도시한 것이다. 비록 상기 메모리 장소들(505a-505e)이 해제되어져 있지만(점선의 묘사로 나타냄), 상기 데이터 값들 A-E는 겹쳐써지지 않고 있어서, 상기 메모리 장소들(505a-505e)은 그래도 상기 데이터 값들 A-E를 갖는다.
검색요구(520)는, 상기 메모리 장소(505c)에 향하여 있다. 이 검색요구가 (예를 들면, 프리드 메모리 장소들에의 액세스를 방지하는 시스템 프로세스에 의해) 방지되지 않으면, 데이터 값 C는 검색(525)에서 검색될 것이다. 일부의 시스템들에서, 이 작용은, 예를 들면 실행 흐름이 충돌을 일으키는 대신에 진행하게 하는 것이 바람직하다.
도 5c는 본 개시내용의 예들에 따른 메모리 530을 개략적으로 도시한 것이다. 상기 메모리는, 메모리 530의 구성이 도 5a의 메모리 500과 같도록 데이터 값들 A-E를 각각 갖는, 메모리 장소들(535a-535e)을 포함한다.
도 5d는 메모리 장소들(535a-535e)을 해제하는(freeing) 프로세스의 제1 단계 후의 상기 메모리(530)를 개략적으로 도시한 것이다. 상기 메모리 장소들(535a-535e)의 콘텐츠(즉, 데이터 값들 A-E)는, 상이한 세트의 메모리 장소들(540a-540e)에 복사된다.
도 5e는 상기 메모리 장소들(535a-535e)을 해제하는 상기 프로세스의 완료 후 상기 메모리(530)를 개략적으로 도시한 것이다. 추가의 데이터 값들 A2-E2는 상기 메모리 장소들(535a-535e)에 기록되어 있고, 그 후, 상기 메모리 장소들(535a-535e)은 해제되어 있다(점선의 묘사로 나타냄).
상기 추가의 데이터 값들 A2-E2가, 예를 들면, 여기 어디에서나 설명된 것처럼 상기 메모리 장소들(535a-535e)의 각각과 관련된 태그 비트에 의해, 논데이터 해석에 따라 해석되게 되는 데이터 값들인 표시는, 기억된다. 본 예에서, 각 데이터 값(535a-535e)은, 원래의 콘텐츠가 복사되었던 대응한 메모리 장소(540a-540e)를 특정하고, 또한 여기 어디에서나 설명된 것처럼 오류 완화 액션도 규정한다. 예를 들면, 대응한 메모리 장소(540a-540e)는, 상기 메모리 장소(535a-535e)로부터의 오프셋으로 특정되어도 된다.
검색요구(545)는 프리드 메모리 장소(535c)로 향하여 있다. 그것은, 데이터 값 C2가 데이터를 표현하지 않고 대신에 대응한 메모리 장소(540c)를 특정하고 또한 오류 완화 액션을 규정한다고 판정된다. 이것에 근거하여, 대응한 메모리 장소(540c)의 콘텐츠, 즉 상기 데이터 값 C는 식별(550)에서 특정되어 있다. 상기 데이터 값 C는 검색(555)에서 검색되고, 오류 완화 액션은 수행된다. 이렇게 하여, 상기 오류 완화는 규정되고 상기 데이터 값 C의 검색을 방지하지 않고 수행된다. 따라서, 실행은, 도 5a-5b와 관련지어 상술한 것과 마찬가지로 상기 데이터 값 C에 근거하여 진행될 수 있고, 수행될 상기 오류 완화 액션을 제공한다. 따라서, 오류 완화 기능성은, 실제의 상기 오류 완화 액션과는 별도로, 그 실행의 흐름이 도 5a-5b와 같은 비교 시스템들로부터 그대로 있도록 투명하게 구현될 수 있다. 따라서, 상기 오류 완화는, 유저 경험에 부정적으로 충격을 주지 않고 구현될 수 있다.
도 6은 본 개시내용의 예들에 따른 방법(600)을 개략적으로 도시한 것이다. 본 예에서, 주어진 데이터 값의 제1 해석은 데이터를 표현하는 것이고, 제2 해석은 상기 제1 해석에 따라 해석되는 추가의 데이터 값과 관련된 메타데이터를 표현하는 것이다. 상기 방법(600)은, 예를 들면, 일반적인 처리 회로소자에서 구현되어도 되거나, 그 방법(600)을 구체적으로 구현하도록 구성된 특수 회로소자에서 구현되어도 된다.
블록 605에서는, 예를 들면 도 1과 관련지어 상술한 것과 같은, 메모리의 메모리 장소로부터 데이터 값을 검색한다.
블록 610에서는, 상기 제1 해석이나 상기 제2 해석에 따라 상기 데이터 값을 해석할지를 판정한다. 예를 들면, 상기 블록 610의 판정은, 도 3과 관련지어 상술한 것처럼, 상기 데이터 값과 관련된 태그 비트에 근거하여도 된다.
상기 제1 해석에 따라 상기 데이터 값이 해석되게 된다고 판정되면, 블록 615의 흐름으로 진행되어, 상기 데이터 값을 데이터로서 해석한다.
상기 제2 해석에 따라 상기 데이터 값이 해석되게 된다고 판정되면, 블록 620의 흐름으로 진행된다. 블록 620에서는, 상기 데이터 값이 수행될 액션을 규정하는지를 판정한다. 이러한 액션들의 특별한 예들과, 그 액션들이 상기 데이터 값내에서 어떻게 인코딩될 수 있는지는, 본 개시내용의 어디에서나 설명되어 있다. 예를 들면, 상기 액션은 오류 완화 액션이어도 된다.
상기 데이터 값이 수행될 액션을 규정한다고 판정되면, 블록 625의 흐름으로 진행되어, 상기 액션의 수행을 기동한다.
그 액션의 수행 후, 블록 630의 흐름으로 진행된다. 이와는 달리, 블록 620에서 상기 데이터 값이 수행될 액션을 규정하지 않는다고 판정되면, 블록 625를 건너뛰어 블록 630의 흐름으로 직접 진행된다. 블록 630에서는, 데이터 값을 메타데이터로서 해석한다.
도 7은 본 개시내용의 예들에 따른 장치(700)를 개략적으로 도시한 것이다. 이 장치의 부품들은, 예를 들면, 하나 이상의 범용 처리 부품들내의 루틴들로서 구현되어도 되고, 및/또는 전용 회로소자로서 구현되어도 된다.
상기 장치(700)는, 메모리(710)의 메모리 장소로부터 데이터 값을 검색하는 메모리 액세스 회로소자를 포함한다. 상기 메모리(710)는, 그 장치(700)에 대해 외장형이다.
상기 장치(700)는, 액션 기동 회로소자(715)를 포함한다. 상기 액션 기동 회로소자(715)는, 상기 데이터 값을 상기 메모리 액세스 회로소자(705)로부터 수신한다.
상기 액션 기동 회로소자(715)는, 처리 블록들(715a-515c)을 포함한다.
블록 715a는, 상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 상기 액션 기동 회로소자(715)가 판정하게 한다.
블록 715b는, 상기 데이터 값이 상기 제2 해석에 따라 해석되게 되면, 상기 데이터 값이 수행될 액션을 규정하는지를 상기 액션 기동 회로소자(715)가 판정하게 한다.
블록 715c는, 상기 데이터 값이 수행될 액션을 규정하면, 상기 액션을 수행을 상기 액션 기동 회로소자(715)가 기동하게 한다.
이렇게 하여, 상기 장치(700)는, 본 개시내용의 방법들을 수행하도록 구성된다.
도 8은 사용될 수 있는 시뮬레이터 구현을 예시한 것이다. 전술한 실시예들은 관련 기술을 지원하는 특정 처리 하드웨어를 동작시키기 위한 장치 및 방법들의 관점에서 본 발명을 구현하지만, 컴퓨터 프로그램을 사용하여 구현되는 본 명세서에서 기술된 실시예들에 따른 명령 실행 환경을 제공하는 것도 가능하다. 이러한 컴퓨터 프로그램은 하드웨어 아키텍처의 소프트웨어 기반 구현을 제공하는 한, 종종 시뮬레이터라고 칭한다. 다양한 시뮬레이터 컴퓨터 프로그램에는 에뮬레이터, 가상 머신, 모델, 및 동적 이진 변환기를 포함한 이진 변환기가 포함된다. 일반적으로, 시뮬레이터 구현은 그 시뮬레이터 프로그램(815)을 지원하는, 호스트 운영체계(810)를 선택적으로 실행하는, 호스트 프로세서(805)상에서 실행되어도 된다. 일부 배치에서는, 상기 하드웨어와 상기 제공된 명령 실행 환경 사이에 다중의 시뮬레이션 계층이 있을 수도 있고, 및/또는, 동일한 호스트 프로세서상에서 제공된 다수의 고유한 명령 실행 환경이 있을 수도 있다. 역사적으로, 적정한 속도로 실행하는 시뮬레이터 구현을 제공하기 위해 강력한 프로세서들이 필요했지만, 이러한 해결방법은 호환성 또는 재사용 이유로 또 다른 프로세서에 대해 고유한 코드를 실행하려는 경우와 같은 특정 상황에서 정당화될 수도 있다. 예를 들어, 시뮬레이터 구현은 그 호스트 프로세서 하드웨어에 의해 지원되지 않는 추가 기능을 갖는 명령 실행 환경을 제공하거나, 전형적으로 상이한 하드웨어 아키텍처와 관련된 명령 실행 환경을 제공할 수도 있다. 시뮬레이션에 대한 개요는 "Some Efficient Architecture Simulation Techniques", Robert Bedichek, Winter 1990 USENIX Conference, Pages 53 - 63에 제시되어 있다.
실시예들이 특별한 하드웨어 구성들 또는 특징들을 참조하여 이전에 설명된 정도로, 시뮬레이션된 실시예에서는, 동등한 기능성이 적절한 소프트웨어 구성들 또는 특징들에 의해 제공될 수도 있다. 예를 들어, 특별한 회로소자는 시뮬레이션된 실시예에서는 컴퓨터 프로그램 로직으로서 구현될 수도 있다. 유사하게, 레지스터 또는 캐시와 같은 메모리 하드웨어는 시뮬레이션된 실시예에서는 소프트웨어 데이터 구조로서 구현될 수도 있다. 전술한 실시예에서 참조된 하나 이상의 하드웨어 요소가 호스트 하드웨어(예를 들어, 호스트 프로세서(805))상에 존재하는 배치에서는, 일부 시뮬레이션된 실시예는 적절한 경우 호스트 하드웨어를 이용할 수도 있다.
시뮬레이터 프로그램(815)은 컴퓨터 판독가능한 기억 매체(820)(비일시적 매체일 수도 있음)에 기억되어도 되고, 시뮬레이터 프로그램(815)에 의해 모델링되는 하드웨어 아키텍처의 애플리케이션 프로그램 인터페이스와 동일한 (애플리케이션들, 운영체계들 및 하이퍼바이저를 포함할 수도 있는) 타겟 코드(825)에 프로그램 인터페이스(명령 실행 환경)를 제공한다. 따라서, 상술한 액션 기동을 포함하는, 타겟 코드(825)의 프로그램 명령들은 시뮬레이터 프로그램(815)을 사용하는 명령 실행 환경 내부에서 실행될 수도 있으므로, 실제로 상술한 장치(2)의 하드웨어 특징들을 갖지 않는 호스트 컴퓨터(805)는 이 특징들을 에뮬레이트할 수 있다. 예를 들어, 상기 시뮬레이터 프로그램(815)은 타겟 코드(825)의 명령들에 의해 메모리로의 액세스를 제어하기 위한 메모리 액세스 프로그램 로직(830)을 포함하여도 된다. 예를 들면, 메모리 액세스 프로그램 로직(830)은 메모리의 메모리 장소로부터 데이터 값을 요구하기 위한 명령들을 포함할 수도 있다. 또한, 상기 시뮬레이터 프로그램(815)은, 상기 방법들과 관련하여 보다 상세히 설명된 것과 같은 액션의 수행을 기동하기 위한 명령들을 포함하는, 액션 기동 프로그램 로직(835)을 포함하여도 된다.
상술한 기술들의 이용에 의해, 액션 기동 기능성이 데이터 처리 시스템에서 구현될 수 있고, 데이터 감시점들 및/또는 어드레스 감시점들이 구현되는 비교 시스템들의 단점을 피하는 것을 알 것이다. 게다가, 실행 흐름상의 충격은 감소 또는 제거될 수 있다.
여기서 설명된 방법들은, 하드웨어 및/또는 소프트웨어로 수행되어도 된다. 이러한 하드웨어는, 범용 프로세서나, 또는 특정 용도 지향 집적회로 또는 필드 프로그래머블 게이트 어레이와 같은 보다 많은 특정한 유닛이어도 된다.
여기서는 본 발명의 예들을 첨부도면을 참조하여 상세히 설명하였지만, 본 발명은 구체적인 예들에 한정되지 않고, 첨부된 청구항에서 기재된 것과 같은 본 발명의 범위 및 사상으로부터 벗어나지 않고 당업자가 변경, 부가 및 수정을 여러 가지로 실시할 수 있다는 것을 알 수 있다. 예를 들면, 본 발명의 범위로부터 벗어나지 않고 종속항의 특징들과 독립항의 특징들을 여러 가지로 조합할 수 있다.

Claims (20)

  1. 메모리의 메모리 장소로부터 데이터 값을 검색하는 메모리 액세스 회로소자; 및
    상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하고;
    상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때,
    상기 데이터 값이 수행될 액션을 규정하는지를 판정하고;
    상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션의 수행을 기동하는, 액션 기동 회로소자를 포함하는, 장치.
  2. 제 1 항에 있어서,
    상기 액션은, 오류 완화 액션인, 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 액션은, 예외의 신호를 보내는 것을 포함하는, 장치.
  4. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 액션은 상이한 메모리 장소로부터 상이한 데이터 값을 복귀시키는 것을 포함하는, 장치.
  5. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 액션은, 진단 레코드를 갱신하는 것을 포함하는, 장치.
  6. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 액션은,
    상기 메모리 장소에 시도된 기록과 관련된 프로세서 작동 상태가 금지된 작동 상태라고 판정하는 것; 및
    상기 작동 상태가 상기 금지된 작동 상태라고 상기 판정하는 것에 응답하여, 상기 시도된 기록을 금지시키는 것을, 포함하는, 장치.
  7. 제 6 항에 있어서,
    상기 작동 상태는, 적어도 하나의 실행 특권 레벨인, 장치.
  8. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 액션 기동 회로소자는, 상기 메모리 장소와 관련된 제어 값에 근거한 상기 제1 해석이나 상기 제2 해석에 따라 상기 데이터 값이 해석되게 되는지를 판정하는 것인, 장치.
  9. 제 8 항에 있어서,
    상기 제어 값은, 제어 값 기억을 위해 할당된 상기 메모리의 구역내의 제어 값 메모리 장소에 기억되는, 장치.
  10. 제 8 항에 있어서,
    상기 제어 값은, 상기 메모리 장소와 관련된 제어 값 메모리 장소에 기억되는, 장치.
  11. 제 10 항에 있어서,
    상기 제어 값 메모리 장소가 상기 메모리 장소에 인접한, 장치.
  12. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 액션 기동 회로소자는, 상기 데이터 값이 하나 이상의 미리 규정된 값들 중 하나에 적어도 부분적으로 일치할 때 상기 액션을 기동하는 것인, 장치.
  13. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 제1 해석은, 상기 데이터 값이 데이터인 것인, 장치.
  14. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 제2 해석은 상기 데이터 값이 상기 메모리 장소와 상이한 추가의 메모리 장소에 기억된 데이터 값에 관련되는 메타데이터인 것이고, 상기 추가의 메모리 장소에 기억된 상기 데이터 값이 상기 제1 해석에 따라 해석되는, 장치.
  15. 제 14 항에 있어서,
    상기 추가의 메모리 장소에 기억된 상기 데이터 값은 제한 포인터의 포인터 값을 포함하고;
    상기 메타데이터는 상기 제한 포인터를 위한 한계를 포함하는, 장치.
  16. 제 15 항에 있어서,
    상기 액션 기동 회로소자는,
    상기 포인터 값이 상기 한계밖에 있다고 판정하는 것이고;
    상기 포인터 값이 상기 한계밖에 있다고 판정하는 것에 응답하여, 예외의 신호를 보내는 것인, 장치.
  17. 제 14 항에 있어서,
    상기 메타데이터는 상기 추가의 메모리 장소에 기억된 데이터와 관련된 오류 정정 코드를 포함하는, 장치.
  18. 메모리의 메모리 장소로부터 데이터 값을 검색하는 단계;
    상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하는 단계; 및
    상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때, 상기 데이터 값이 수행될 액션을 규정하는지를 판정하고;
    상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션의 수행을 기동하는, 단계를 포함하는, 방법.
  19. 호스트 데이터 처리장치가 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하도록 제어하는 컴퓨터 프로그램으로서,
    메모리의 메모리 장소로부터 데이터 값을 요구하는 메모리 액세스 프로그램 로직; 및
    상기 데이터 값이 제1 해석이나 제2 해석에 따라 해석되게 되는지를 판정하고;
    상기 데이터 값이 상기 제2 해석에 따라 해석되게 된다고 판정될 때,
    상기 데이터 값이 수행될 액션을 규정하는지를 판정하고;
    상기 데이터 값이 수행될 액션을 규정한다고 판정될 때, 상기 액션의 수행을 기동하는, 액션 기동 프로그램 로직을 포함하는, 컴퓨터 프로그램.
  20. 청구항 19의 상기 컴퓨터 프로그램을 기억하는 기억매체.
KR1020207035099A 2018-05-31 2019-05-02 액션 기동 장치 및 방법 KR20210014115A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1808888.0 2018-05-31
GB1808888.0A GB2574231B (en) 2018-05-31 2018-05-31 An apparatus and method for triggering action performance
PCT/GB2019/051219 WO2019229412A1 (en) 2018-05-31 2019-05-02 An apparatus and method for triggering action

Publications (1)

Publication Number Publication Date
KR20210014115A true KR20210014115A (ko) 2021-02-08

Family

ID=62872662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207035099A KR20210014115A (ko) 2018-05-31 2019-05-02 액션 기동 장치 및 방법

Country Status (6)

Country Link
US (1) US11755243B2 (ko)
JP (1) JP7369720B2 (ko)
KR (1) KR20210014115A (ko)
CN (1) CN112106029B (ko)
GB (1) GB2574231B (ko)
WO (1) WO2019229412A1 (ko)

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0695999A3 (en) * 1994-06-30 1998-07-08 Digital Equipment Corporation System bus with separate address and data bus protocols
US5926819A (en) * 1997-05-30 1999-07-20 Oracle Corporation In-line triggers
US6557119B1 (en) * 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US6950703B1 (en) * 2001-06-08 2005-09-27 Pacesetter, Inc. Implantable medical device with single bit upset error detection and correction
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
US20070226471A1 (en) * 2006-03-13 2007-09-27 Arm Limited Data processing apparatus
TW200820261A (en) 2006-09-08 2008-05-01 Samsung Electronics Co Ltd Fusion memory device and method
US7783865B2 (en) * 2007-08-01 2010-08-24 International Business Machines Corporation Conditional data watchpoint management
US8171413B2 (en) * 2008-04-02 2012-05-01 Manatee County, A Political Subdivision Of The State Of Florida System and method for displaying information about subnets
US9032374B2 (en) * 2008-04-03 2015-05-12 International Business Machines Corporation Metadata-integrated debugger
US7823019B2 (en) * 2008-05-08 2010-10-26 Arm Limited Debug circuitry
WO2011043769A1 (en) * 2009-10-07 2011-04-14 Hewlett-Packard Development Company, L.P. Notification protocol based endpoint caching of host memory
JP5757320B2 (ja) 2013-12-12 2015-07-29 日本電気株式会社 データ処理装置、データ処理方法およびデータ処理プログラム
US9910794B2 (en) * 2014-09-26 2018-03-06 Infineon Technologies Ag Processing data
US11782601B2 (en) * 2015-01-20 2023-10-10 Ultrata, Llc Object memory instruction set
US10320813B1 (en) * 2015-04-30 2019-06-11 Amazon Technologies, Inc. Threat detection and mitigation in a virtualized computing environment
GB2541714B (en) * 2015-08-27 2018-02-14 Advanced Risc Mach Ltd An apparatus and method for controlling instruction execution behaviour
GB2544996B (en) * 2015-12-02 2017-12-06 Advanced Risc Mach Ltd An apparatus and method for managing bounded pointers
US9904594B2 (en) * 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
GB2553311B (en) * 2016-08-31 2020-05-20 Advanced Risc Mach Ltd An apparatus and method for controlling assertion of a trigger signal to processing circuitry
US10069597B2 (en) * 2016-09-07 2018-09-04 Western Digital Technologies, Inc. Aggregated metadata transfer at a data storage device
GB2571350B (en) * 2018-02-27 2020-10-21 Advanced Risc Mach Ltd A method of accessing metadata when debugging a program to be executed on processing circuitry
US11360910B2 (en) * 2019-06-28 2022-06-14 Intel Corporation Prevention of trust domain access using memory ownership bits in relation to cache lines

Also Published As

Publication number Publication date
GB201808888D0 (en) 2018-07-18
WO2019229412A1 (en) 2019-12-05
JP7369720B2 (ja) 2023-10-26
US11755243B2 (en) 2023-09-12
GB2574231B (en) 2020-12-30
CN112106029B (zh) 2024-08-23
GB2574231A (en) 2019-12-04
JP2021525415A (ja) 2021-09-24
US20210216244A1 (en) 2021-07-15
CN112106029A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN108292272B (zh) 用于管理有界指针的装置和方法
KR102695593B1 (ko) 포인터와 관련된 범위 정보를 사용하여 명령을 실행하는 장치 및 방법
KR102605793B1 (ko) 자격들의 이용을 관리하는 장치 및 방법
KR102528701B1 (ko) 자격 도메인을 관리하는 장치 및 방법
US11023237B2 (en) Apparatus and method for interpreting permissions associated with a capability
KR102586257B1 (ko) 명령들의 실행을 제어하는 장치 및 방법
JP2021512400A (ja) メモリ・アクセスにおける保護タグ・チェックの制御
JP2022505011A (ja) メモリ・アクセスを制御するための装置及び方法
JP2023038361A (ja) 命令セット内の変更を制御する装置及び方法
CN116368465A (zh) 用于使用能力约束对存储器的访问的技术
US20240202139A1 (en) Technique for constraining access to memory using capabilities
KR20200116473A (ko) 메모리 액세스시의 보호 태그 검사 제어
JP7369720B2 (ja) アクションをトリガするための装置及び方法
TW202340955A (zh) 使用能力約束記憶體存取之技術
EP4330813A1 (en) Technique for constraining access to memory using capabilities