KR20210034612A - 보호 태그 손실 처리 - Google Patents

보호 태그 손실 처리 Download PDF

Info

Publication number
KR20210034612A
KR20210034612A KR1020217004146A KR20217004146A KR20210034612A KR 20210034612 A KR20210034612 A KR 20210034612A KR 1020217004146 A KR1020217004146 A KR 1020217004146A KR 20217004146 A KR20217004146 A KR 20217004146A KR 20210034612 A KR20210034612 A KR 20210034612A
Authority
KR
South Korea
Prior art keywords
tag
protection
memory access
protection tag
address
Prior art date
Application number
KR1020217004146A
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 KR20210034612A publication Critical patent/KR20210034612A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0793Remedial or corrective actions
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/1466Key-lock mechanism
    • 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/1004Compatibility, e.g. with legacy hardware
    • 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/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 회로를 구비한 장치와 이 장치의 작동방법이 개시된다. 태그 보호된 메모리 액세스시에 보호 태그 검색 동작은 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하려고 시도하고. 보호 태그 검사 동작은 수신된 타겟 어드레스와 관련된 어드레스 태그를 보호 태그 검색 동작에 의해 검색된 보호 태그와 비교한다. 보호 태그 검색시에 보호 태그 검색 동작이 성공적이 아닐 때, 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 보호 태그로서 대체 보호 태그값이 기억된다.

Description

보호 태그 손실 처리
본 발명은 데이터 처리 분야에 관한 것이다.
데이터 처리 시스템은 한 개 이상의 메모리 위치들의 블록과 관련하여 메모리 시스템에 기억되는 보호 태그들의 설치에 의해 특정한 사용 에러를 방지하기 위한 기술을 이용한다. 메모리 시스템에 대한 액세스가 행해질 때, 메모리 액세스와 관련된 어드레스 태그를 메모리 시스템으로부터 검색된 보호 태그와 비교하여, 이들 2개의 태그 사이의 불일치에 의해 메모리 사용 에러가 식별된다. 역으로, 이들 2개의 태그 사이의 일치는, 메모리, 특히 해당 메모리 위치들이 올바르게 사용되고 있다는 것을 나타낼 수 있다.
적어도 일부 실시예는, 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 회로를 구비하고, 상기 태그 보호된 메모리 액세스는, 상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 보호 태그 검색 동작과, 상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 보호 태그 검색 동작에 의해 검색된 상기 보호 태그와 비교하는 보호 태그 검사 동작을 포함하고, 상기 메모리 액세스 회로는, 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 장치를 제공한다.
적어도 일부 실시예는, 방법으로서, 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 단계를 포함하고, 상기 태그 보호된 메모리 액세스는, 상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 단계와, 상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 검색단계에서 검색된 상기 보호 태그와 비교하는 단계를 포함하고, 상기 방법은, 상기 보호 태그 검색시에 상기 검색단계가 성공적이 아닐 때, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 단계를 더 포함하는 방법을 제공한다.
적어도 일부 실시예는, 호스트 데이터 처리장치를 제어하여 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하는 컴퓨터 프로그램으로서, 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 로직을 포함하고, 상기 태그 보호된 메모리 액세스는, 상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 보호 태그 검색 동작과, 상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 보호 태그 검색 동작에 의해 검색된 상기 보호 태그와 비교하는 보호 태그 검사 동작을 포함하고, 상기 메모리 액세스 로직은, 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 컴퓨터 프로그램을 제공한다.
기억매체는 전술한 컴퓨터 프로그램을 기억한다. 기억매체는 비일시적인 기억매체이어도 된다.
이하, 다음의 첨부도면에 도시된 실시예를 참조하여 본 발명을 더욱 상세히 설명한다:
도 1은 데이터 처리장치의 일례를 개략적으로 나타낸 것이다.
도 2는 어드레스 태그가 보호 태그와 일치하는지 여부의 검사를 포함하는 태그 보호된 메모리 액세스 동작의 일례를 나타낸 것이다.
도 3은 태그 보호된 메모리 액세스 동작을 행하는 방법을 나타낸 흐름도이다.
도 4a는 추가적인 캐시 레벨 또는 메모리로 퇴출되고 충전(fill) 동작에서 캐시로 복귀되는 캐시 내부에 기억된 캐시 라인을 개략적으로 나타낸 것이고, 도 4b는 캐시 라인의 퇴출에 의해 보호 태그가 손실되는 방식을 개략적으로 나타낸 것이다.
도 5는 일 실시예에서의 메모리 액세스 회로를 개략적으로 나타낸 것이다.
도 6a는 일 실시예에서 메모리 액세스 회로의 일부를 구성하는 보호 태그 검사회로를 개략적으로 나타낸 것이다.
도 6b는 일 실시예에서 메모리 액세스 회로의 일부를 구성하는 보호 태그 검사회로를 개략적으로 나타낸 것이다.
도 7a는 일 실시예에서 메모리 액세스 회로의 일부를 구성하는 보호 태그 검사회로를 개략적으로 나타낸 것이다.
도 7b는 일 실시예에서 메모리 액세스 회로의 일부를 구성하는 보호 태그 검사회로를 개략적으로 나타낸 것이다.
도 8a는 각각의 데이터 항목이 관련된 태그와 태그값이 손실되었는지 아닌지를 나타내는 추가적인 플래그 값을 기억할 수 있는 능력을 갖는, 캐시에 기억된 캐시 라인을 개략적으로 나타낸 것이다.
도 8b는 특정한 태그값을 사용하여 손실 태그값을 표시하는 캐시 내부에 기억된 캐시 라인을 개략적으로 나타낸 것이다.
도 9는 일 실시예에서 보호 태그를 판독하여 어드레스 태그와 비교하는 스텝들의 시퀀스를 나타낸 흐름도이다.
도 10a는 추측 메모리 액세스에 대한 보호 태그 검사를 수정하거나 금지하는 메모리 액세스 회로를 개략적으로 나타낸 것이다.
도 10b는 메모리 액세스의 다양한 액세스 특징에 따라 보호 태그 검사가 금지되거나 변경되게 하는 도 10a의 변형예를 나타낸 것이다.
도 11은 메모리 액세스 로직을 지원하는 시뮬레이터의 일례를 나타낸 것이다.
본 발명의 일 실시예에서는, 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 회로를 구비하고, 상기 태그 보호된 메모리 액세스는, 상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 보호 태그 검색 동작과, 상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 보호 태그 검색 동작에 의해 검색된 상기 보호 태그와 비교하는 보호 태그 검사 동작을 포함하고, 상기 메모리 액세스 회로는, 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 장치가 존재한다.
태그 보호된 메모리 액세스를 지원하는 데이터 처리 시스템에서는, 메모리 액세스와 관련된 어드레스 태그가 메모리 액세스에 의해 어드레스 지정된 메모리 위치와 관련하여 기억된 보호 태그와 일치하는지 여부를 메모리 액세스 회로가 판정할 수 있다. 그러나, 본 발명은, 이 메모리 위치와 관련되어 기억된 보호 태그의 이용가능성이 보증되지 않는 상황이 존재한다는 것을 인식하고 있다. 예를 들어, 태그 보호된 메모리 액세스를 지원하는 일부 접근방법에서는, 보호 태그가 영구 메모리에 기억된 데이터와 관련되는 것이 아니라 캐시 내부의 데이터와 관련하여 발생되고 기억된다. 이와 같은 접근방법은, 메모리 시스템이 데이터 값들과 관련된 보호 태그들의 추가적인 기억을 지원하지 않거나, 또는 스토리지 절약을 위해, 데이터 값과 관련하여 보호 태그들을 지속적으로 기억하는데 필요한 추가적인 기억 공간이 정당하다고 생각되지 않는 경우에, 예를 들어 하위 호환성 때문에 취해진다. 그러나, 이것은, 태그 보호된 메모리 액세스를 행하도록 구성된 메모리 액세스 회로를 구비한 장치에서는, 이 태그 보호된 메모리 액세스의 일부로서의 보호 태그의 이용가능성이 변동된다는 것을 의미한다. 본 발명은, 보호 태그가 이용가능하지 않을 때(따라서 보호 태그 검색 동작이 성공적이 아닐 때), 해당 메모리 위치 또는 메모리 위치들과 관련된 대체 보호 태그값을 기억하게 하는 메모리 액세스 회로를 제공함으로써, 이와 같은 과제를 해소한다. 대체 보호 태그값의 기억은 특히 이 대체 보호 태그값이 무엇이 될 것인지 선택한다는 점에서 다양하게 구성될 수 있으며, 이것은 시스템 구성에서 유용한 유연성을 제공한다. 또한, 대체 보호 태그값의 선택은 메모리 액세스 회로가 데이터 값과 그것의 관련된 보호 태그가 후속 메모리 액세스 동작에서 처리되는 방식에도 영향을 미칠 수 있게 한다.
대체 보호 태그값은 다양하게 정의될 수 있지만, 일 실시예에서, 상기 대체 보호 태그값은 상기 보호 태그 검사 동작에서 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그와 일치하도록 선택된다. 따라서, 이것은, 동일한 어드레스 태그를 사용하고 제공하는 동일한 타겟 어드레스에 대한 후속 메모리 액세스도 일치하게 된다는 것을 의미한다. 이때, 어드레스 태그와 보호 태그의 일치의 정의는 변동될 수도 있으며, 일치를 판정하기 위해 보호 태그 전체가 어드레스 태그 전체와 일치할 필요는 없다는 점에 주목하기 바란다. 그러나, 일 실시예에서는, 이들 2개가 동일한 것이 요구될 수도 있다. 이것을 고려하면, 일부 실시예에서, 상기 대체 보호 태그값은 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그이다.
없어진 보호 태그를 어드레스 태그의 태그값으로 교체하는 이와 같은 접근방법(또는 적어도 이들 2가지가 일치하도록 결정되도록 하는 것)은, 대부분의 메모리 액세스들이 정당하게 행해지고 있다는(즉, 어드레스 태그가 보호 태그와 일치하는 것이 예상된다는) 가정하에 채용되고, 이에 따라 대부분의 경우에 이와 같은 접근방법은 근본적으로 보호 태그를 그것의 올바른 값으로 "보수(repair)"하게 된다. 그럼에도 불구하고, 대체 태그값을 기억하게 한 메모리 액세스가 사실상 올바르지 않았더라도(즉, 제공된 어드레스 태그가 올바른 보호 태그값과 일치하지 않았더라도), 그 자신의 어드레스 태그를 제공하는 후속 액세스가 일치하지 않게 되고 이와 같은 후속 태그 보호된 메모리 액세스의 실패가 필요한 경우에는 보호 태그가 무엇이 되어야 하는지의 재평가와 그것의 수정을 일으키기 때문에, 이와 같은 불일치는 동일한 메모리 위치에 대한 상기한 후속 액세스시에 식별될 수 있다.
보호 태그값이 무엇이 될 것인지에 대한 이와 같은 판정은, 예를 들어, 소프트웨어를 실행하여 올바른 보호 태그값을 판정할 수 있는 프로세서 장치에서 태그 보호된 메모리 액세스의 실패를 전송함으로써 가능할 수 있다. 이와 달리, 보호 태그값의 백업본이 보조 위치에 기억되고, 그후 이것을 대체 보호 태그값으로서 기억되게 하기 전에, 이것을 액세스하여 보호 태그의 올바른 값이 무엇이 될 것인지 판정해도 된다. 따라서, 일부 실시예에서, 상기 메모리 액세스 회로는, 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 대체 보호 태그값으로서 상기 보호 태그에 대해 이전에 정의된 값의 결정을 개시한다.
전술한 것과 같이, 보호 태그에 대한 이전에 정의된 값의 결정은 소프트웨어에 의해 행해지고, 이에 따라 일부 실시예에서는, 상기 메모리 액세스 회로가 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 장치의 명령 실행회로에 의해 예외가 발생되게 하고, 상기 명령 실행회로는 상기 예외에 응답하여 상기 보호 태그에 대한 상기 이전에 정의된 값의 결정을 포함하는 보호 태그 보수 예외 루틴을 실행한다.
태그 보호된 메모리 액세스가 어드레스 태그를 보호 태그와 비교하는 보호 태그 검사 동작을 포함하는 경우에, 보호 태그 검색 동작이 성공적이 아닌 경우에 이 비교의 결과에 영향을 미치는 메카니즘이 설치되어도 된다. 일부 실시예에서, 상기 메모리 액세스 회로는 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그와 상기 보호 태그 사이에 일치가 확립된 것으로 상기 보호 태그 검사 동작의 결과를 판정한다. 따라서, 보호 태그 검색 동작이 성공적이 아니며, 이에 따라 (없어진) 보호 태그와 어드레스 태그 사이의 비교가 가능하지 않을 때, 이것은, 메모리 액세스 회로가 그럼에도 불구하고 어드레스 태그와 보호 태그 사이에 일치가 확립된 것으로 판정함으로써, 보호 태그 검사의 결과를 이용하는 장치 내부의 후속 메카니즘이 일치가 발견된 것처럼 동작을 계속할 수 있는 구성을 제공한다.
보호 태그 검사 동작의 출력의 명시적인 오버라이드 등과 같은 이와 같은 보호 태그 검사 동작의 오버라이딩(overriding)은 다양하게 달성될 수 있지만, 일부 실시예에서, 상기 메모리 액세스 회로는 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그와 상기 보호 태그 사이에서 일치가 확립되도록, 소정의 전부 일치(match-all) 특징을 갖는 것으로 상기 보호 태그를 취급한다. 이 때문에, 정의된 보호 태그값들의 범위 내에서, "전부 일치", 즉 보호 태그값과 비교하는 어드레스 태그값과 일치하는 것으로 판정되는 것을 의미하기 위해 특정한 보호 태그값이 사용된다. 그후 성공적이지 않은 보호 태그 검색 동작의 경우에 이와 같은 특정한 보호 태그값을 대체 보호 태그값으로서 사용하거나, 아니면 성공적이지 않은 보호 태그 검색 동작의 경우에 전부 일치에 대한 비교를 위해 발생하는 응답이 재현되도록 보호 태그 검사가 구성되어도 된다.
소정의 전부 일치 특징은 상기 보호 태그의 특정한 값이거나, 상기 보호 태그와 관련된 정보의 추가적인 항목이어도 된다. 따라서, 일부 실시예에서, 상기 소정의 전부 일치 특징은 보호 태그의 소정의 값인 반면에, 다른 실시예에서는 상기 소정의 전부 일치 특징이 상기 보호 태그와 관련된 세트 전부 일치 플래그의 존재이다.
보호 태그의 검색시에 보호 태그 검색 동작이 성공적이 아닐 때, 이와 같은 정보가 어떤 방식으로 캡처되어도 되고, 따라서 일부 실시예에서 상기 메모리 액세스 회로는 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여 보호 태그 손실(lost-guard-tag) 표시를 발생한다. 그후, 특정한 원하는 응답을 기동하기 위해, 또는 예를 들어, 보호 태그의 손실과 관련된 통계값을 누적하기 위해, 이와 같은 보호 태그 손실 표시가 다양하게 사용된다.
따라서, 일부 실시예에서, 상기 메모리 액세스 회로는 상기 수신된 타겟 어드레스와 관련하여 상기 보호 태그 손실 표시를 기억하도록 구성된다. 이 때문에, 메모리 액세스의 타겟이 그 자신의 보호 태그를 손실한 것으로 명시적으로 라벨이 붙여진다.
일부 실시예에서, 상기 메모리 액세스 회로는 상기 보호 태그 손실 표시를 프로세서 유닛으로 전송하도록 구성된다. 그후, 프로세서 유닛은 적절하게 응답하거나 감시할 수 있다.
일부 실시예에서, 상기 메모리 액세스 회로는 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여 보호 태그 손실 카운터를 증분한다. 따라서, 이와 같은 보호 태그 손실 카운터는 보호 태그들이 얼마나 빈번하게 손실되는지에 대한 통계값을 누적할 수 있다. 이와 같은 보호 태그 손실 카운터는, 메모리 액세스 회로 그 자체 내부나 또는 다른 위치와 같이, 시스템 내부의 다양한 위치에 적절히 설치될 수 있다.
본 발명은, 메모리 액세스 회로가 수신하는 모든 메모리 액세스에 대해 태그 보호된 메모리 액세스를 행하는 것이 적절하지 않을 수도 있다는 것을 인식하고, 이에 따라 일부 실시예에서 상기 메모리 액세스 회로는 상기 수신된 타겟 어드레스를 제공하는 메모리 액세스의 특징에 응답하여, 상기 태그 보호된 메모리 액세스와, 태그 보호되지 않은 메모리 액세스 중에서 한 개를 선택적으로 행한다.
태그 보호되거나 태그 보호되지 않은 메모리 액세스가 행해지게 하는 특징은 다양하게 정의될 수 있지만, 일부 실시예에서, 상기 메모리 액세스의 특징은, 메모리 액세스를 발생한 요구자의 종류, 메모리 액세스를 발생한 상기 요구자의 특권 레벨, 및 상기 수신된 타겟 어드레스 중에서 적어도 한 개를 포함한다.
일부 실시예에서, 상기 메모리 액세스의 특징은 메모리 액세스가 추측 데이터 처리의 일부를 구성한다는 표시를 포함하고, 상기 메모리 액세스 회로는 메모리 액세스가 추측 데이터 처리의 일부를 구성한다는 표시에 응답하여 상기 태그 보호되지 않은 메모리 액세스를 행한다. 예를 들어, 본 발명의 태그 보호된 메모리 액세스와 대체 보호 태그값으로 보호 태그값을 수정할 수 있을 가능성이 추측 데이터 처리와 관련해서는 적절하지 않다는 것으로 결정된다.
메모리 액세스가 추측 데이터 처리의 일부를 구성하더라도 태그 보호된 메모리 액세스의 진행이 허용되지만, 보호 태그값들의 수정이 허용되지 않는다는 점에서, 추측 데이터 처리에 의해 시동된 메모리 액세스에 대한 메모리 액세스 회로의 응답에 대한 이와 같은 보수적인 접근방법은 메모리 액세스 회로 그 자체 내부에서 더 특정할 수 있으며, 이에 따라 일부 실시예에서 상기 메모리 액세스 회로는 메모리 액세스가 추측 데이터 처리의 일부를 구성한다는 표시에 응답하여 상기 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 상기 대체 보호 태그값의 기억을 금지한다.
일부 실시예에서는, 방법으로서, 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 단계를 포함하고, 상기 태그 보호된 메모리 액세스는, 상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 단계와, 상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 검색단계에서 검색된 상기 보호 태그와 비교하는 단계를 포함하고, 상기 방법은, 상기 보호 태그 검색시에 상기 검색단계가 성공적이 아닐 때, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 단계를 더 포함하는 방법이 존재한다.
일부 실시예에서는, 호스트 데이터 처리장치를 제어하여 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하는 컴퓨터 프로그램으로서, 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 로직을 포함하고, 상기 태그 보호된 메모리 액세스는, 상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 보호 태그 검색 동작과, 상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 보호 태그 검색 동작에 의해 검색된 상기 보호 태그와 비교하는 보호 태그 검사 동작을 포함하고, 상기 메모리 액세스 로직은, 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 컴퓨터 프로그램이 존재한다.
일부 실시예에서는, 전술한 컴퓨터 프로그램을 기억하는 기억매체가 존재하고, 이 기억매체는 비일시적인 기억매체이어도 된다.
이하, 첨부도면을 참조하여 일부 특정한 실시예를 설명한다.
도 1은 데이터 처리장치(2)의 일례를 개략적으로 나타낸 것이다. 이때, 이것은 단순히 장치의 구성요소들의 서브셋의 상위 레벨 표현이며, 장치가 도시하지 않은 다수의 다른 구성요소를 구비해도 된다는 것은 자명하다. 장치(2)는 명령 디코더(6)에 의해 디코드된 명령들에 응답하여 데이터 처리를 행하는 처리회로(4)를 구비한다. 명령 디코더(6)는 명령 캐시(8)로부터 페치된 명령들을 디코드하여, 처리회로94)를 제어하여 명령들에 의해 표시된 해당하는 처리 연산들을 행하게 하는 제어신호들(10)을 발생한다. 처리회로(4)는 레지스터들(14) 내부에 기억된 값들에 대해 연산을 행하여 레지스터들에 다시 기록될 결과값들을 발생하는 한 개 이상의 실행 유닛을 구비한다. 예를 들어, 실행 유닛은, 산술 연산 또는 논리 연산을 실행하는 산술/논리 유닛(ALU), 부동소수점 피연산자를 사용하여 연산을 실행하는 부동소수점 유닛 및/또는 복수의 독립적인 데이터 성분들을 포함하는 피연산자들에 대해 벡터 연산을 행하는 벡터 처리 유닛을 구비할 수도 있다. 처리회로는 레지스터들914)과 메모리 시스템 사이의 데이터의 전달을 제어하는 (예를 들어, 로드/스토어 유닛을 포함하는) 메모리 액세스 회로를 더 구비한다. 본 실시예에서, 메모리 시스템은, 명령 캐시(8), 레벨 1(L1) 데이터 캐시(16), 데이터와 명령 사이에서 공유되는 레벨 2(L2) 캐시(17)와, 메인 메모리(18)를 구비한다. 이때, 다른 캐시 계층구조도 가능하며, 이것은 단지 일례에 지나지 않다는 것은 자명하다. 로드/스토어 유닛(15)에 의해 기동된 메모리 액세스를 지원하기 위한 어드레스 변환 기능을 제공하는 메모리 관리 유닛(MMU)(20)이 설치된다. MMU는 메모리 시스템 16, 17, 18에 기억된 페이지 테이블들로부터 엔트리들의 서브셋을 캐시하는 변환 색인 버퍼(TLB)(22)를 갖는다. 각각의 페이지 테이블 엔트리는, 대응하는 어드레스들의 페이지에 대한 어드레스 변환 매핑을 제공하고, 페이지가 판독 전용 영역인지 또는 판독 및 기록 모두가 가능한지 여부를 지정하는 액세스 허가, 또는 어떤 특권 레벨이 페이지를 액세스할 수 있는지 지정하는 액세스 허가와 같은, 액세스 제어 파라미터들을 더 지정할 수도 있다.
도 2는 태그 보호된 메모리 액세스의 개념을 개략적으로 나타낸 것이다. 메모리 시스템 내부의 메모리 위치들을 참조하는데 사용된 물리 어드레스는, 특정한 수의 어드레스 지정가능한 위치들을 각각 포함하는 다수의 블록들(30)로 논리적으로 분할된다. 간략을 위해, 도 2의 실시예에서, 각각의 블록(30)은 4개의 메모리 위치들을 포함하지만, 다른 블록 사이즈가 사용될 수도 있다. 각각의 블록(30)은 대응하는 보호 태그(32)와 관련된다. 특정한 수의 블록들(30)과 관련된 보호 태그들은 함께 모일 수 있으며, 물리 어드레스 공간 내부의 이와 다른 아키텍처상 액세스가능한 메모리 위치(34) 내부, 또는 아키텍처상 액세스가능하지 않은(동일한 무리 어드레스 공간에 매핑되지 않은) 메인 메모리(18)에 설치된 추가적인 기억 위치 내부에 기억될 수 있다. 정규 코드의 수행에 영향을 미칠 수 있으며 코히런시 관리를 더욱 복잡하게 할 수 있는, 보호 태그값들을 캐싱하기 위해 데이터 캐시들 16, 17 내부의 공간을 다 써버리는 것을 피하기 위해, 아키텍처상 액세스 가능하지 않은 별개의 스토리지의 사용이 바람직한 경우가 있다. 태그들을 메인 메모리(18)에서 액세스해야 하는 것보다 신속한 액세스를 위해, 아키텍처상 액세스가능하지 않은 스토리지로부터 태그값들을 캐싱하기 위해 마이크로아키텍처 내부에 추가적인 태그 캐시(19)가 설치될 수도 있다. 어떤 태그 기억 위치(34)가 각각의 블록(30)에 대응하는지의 특정한 매핑은, 로드/스토어 유닛(15)에 의해 제어되고, 하드웨어로 짜넣어지거나 또는 프로그래밍 가능할 수도 있다. 도 2에서 각각의 태그(32)는 물리 어드레스들의 블록과 관련되지만, 가상 메모리 어드레스 공간 내부의 가상 메모리 위치들과 관련된 보호 태그들(32)을 제공하는 것도 가능할 것이지만, 이것은 메모리 액세스마다 추가적인 어드레스 변환을 요구할 수도 있다. 이 때문에, 보호 태그(32)를 물리 메모리 위치들과 관련시킴으로써, 성능을 향상시킬 수 있다. 일반적으로, 보호 태그들(32)이 물리 어드레스 공간의 대응하는 블록들(30)과 정확히 어떻게 관련되는지는 특정한 마이크로아키텍처 구현예 대한 선택사항이다. 일반적으로, 필요한 것은, 지정된 메모리의 블록과 관련된 보호 태그(32)를 액세스하고 비교할 수 있는 것 뿐이다.
이 때문에, 태그 보호된 메모리 액세스가 필요할 때, (액세스할 어드레스 지정된 위치(44)를 식별하는 타겟 어드레스(42)와 관련되는) 어드레스 태그를 어드레스 지정된 위치(44)를 포함하는 메모리 위치들의 블록(30)과 관련되는 보호 태그(32)와 비교할 수 있다. 예를 들어, 도 2에서, 타겟 어드레스(42)는 도 2의 어드레스 공간에 44로 표기한 메모리 내부의 특정한 위치 B1을 가리킨다. 따라서, 이치 B1을 포함하는 위치들의 블록 B와 관련되는 보호 태그 B를 타겟 어드레스(42)와 관련된 어드레스 태그(40)와 비교한다. 도 2의 상단에 도시된 것과 같이, 어드레스 태그(40)는 타겟 어드레스 그 자체의 선택된 비트들의 함수로써 결정된다. 특히, 어드레스 태그는, 어드레스 지정된 위치(44)로서 선택할 특정한 메모리 위치를 나타내기 위해 사용되지 않는 타겟 어드레스의 일부 내부의 비트들로부터 결정된다. 예를 들어, 일부 아키텍처에서, 타겟 어드레스의 비트들의 상단 부분은 항상 부호 확장(모두 0들 또는 모두 1들) 등의 특정한 고정값을 가지므로, 이들 사용되지 않은 비트들을 임의의 태그값들로 겹쳐쓰는 것에 의해 어드레스 태그(40)로 어드레스가 태그가 붙여질 수 있다. 특정한 어드레스 태그값은, 예를 들어, 프로그래머 또는 컴파일러에 의해 선택될 수 있다. 어드레스 태그와 보호 태그(32)는 비교적 작은 수의 비트들, 예를 들어, 4비트일 수 있으므로, 메모리 내부와 타겟 어드레스 내부에서 많은 공간을 차지할 필요가 없다. 4비트의 태그 공간, 즉 16가지 가능한 값의 태그들을 제공하는 것은 다수의 일반적인 종류의 메모리 액세스 에러를 검출하는데 충분한 경우가 많다.
이 때문에, 태그 보호된 메모리 액세스가 행해질 때, 어드레스 태그(40)와 어드레스 지정된 위치(44)를 포함하는 블록(30)과 관련된 보호 태그(30) 사이에서 비교가 행해지고, 이들이 일치하는지 여부에 대한 판정이 행해진다. 이때, 도 1의 예시적인 구성에서는, 로드/스토어 유닛(15)과 물리 메모리(18) 사이의 모든 위치에서 비교가 행해질 수 있다(그리고 사실상 이 경로를 따라 분포될 수도 있다)는 점에 주목하기 바란다. 그러나, 본 실시예에서는, 간략을 위해 비교가 로드/스토어 유닛(15)에 의해 행해지고 있는 것으로 설명한다. 로드/스토어 유닛(15)은 어드레스 태그(40)와 보호 태그(32)가 일치하였는지 여부를 나타내는 일치 표시를 발생한다. 예를 들어, 이와 같은 일치 표시는, 어드레스 태그(40)와 보호 태그(32) 사이에 불일치가 존재하는 경우 발생되는 결함 신호(60)이거나, 또는 일치가 존재하였는지 여부를 나타내는 상태 레지스터 내부에 놓인 표시이거나, 또는 에러가 검출된 어드레스 및/또는 에러를 일으킨 명령의 명령 어드레스를 표시하기 위해 에러 보고서에 추가된 엔트리일 수 있다.
도 3은 태그 보호된 메모리 액세스를 처리하는 흐름도를 나타낸 것이다. 메모리 액세스를 기동하는 명령은 어드레스 태그와 타겟 어드레스를 지정한다. 도 2에 도시된 것과 같이, 다른 실시예에서는 어드레스 태그가 별개의 레지스터 내부에 지정될 수 있지만, 어떤 경우에는 어드레스 태그가 실제로 타겟 어드레스 그 자체의 비트들의 서브셋으로부터 유도될 수도 있다. 스텝 50에서, 태그 보호된 메모리 액세스를 기동하는 명령과 마주친다. 이에 응답하여, 스텝 52에서 메모리 액세스 회로(15)는 타겟 어드레스에 의해 식별된 어드레스 지정된 위치(44)에 대한 메모리 액세스를 기동한다. 또한, 스텝 54에서 메모리 액세스 회로(15)는 타겟 어드레스에 의해 식별된 어드레스 지정된 위치(44)를 포함하는 메모리 위치들의 블록(30)과 관련하여 메모리 시스템에 기억되는 보호 태그(32)를 취득한다. 스텝 56에서, 메모리 액세스 회로(15)는 어드레스 태그(40)를 스텝 54에서 취득한 보호 태그(32)와 비교한다. 스텝 58에서, 보호 태그와 어드레스 태그 사이에 일치가 검출되는지 여부의 표시(예를 들어, 모든 종류의 전술한 일치/불일치 보고 표시)가 메모리 액세스 회로(15)에 의해 발생된다. 불일치를 보고하는데 사용되는 정확한 표시는 구현마다 다를 수 있다.
도 4a는 캐시(100)와 추가적인 캐시 또는 메모리(105)를 개략적으로 나타낸 것이다. 추가적인 캐시 또는 메모리(105)로 퇴출될 수도 있는 캐시(100) 내부의 캐시 라인(102)에 도시되어 있으며, 캐시 라인 내부의 데이터가 다시 필요하면, 추가적인 캐시 또는 메모리(105)로부터의 충전에 의해 캐시 라인(102)이 캐시(100) 내부에 다시 할당된다. 캐시 라인(102)은 데이터(105)와 보호 태그(103)를 포함하는 것으로 도시되어 있다. 이때, 이와 같은 개별적인 캐시 라인(102)은 사실상 데이터와 이와 관련된 보호 태그들의 4개의 항목들을 포함한다. 이것들은(105가 추가적인 캐시인 경우에는 추가적인 캐시 라인인) 등가 데이터(108) 내부에도 존재한다. 도 4a의 예시를 다른 캐시(110)와 다른 추가적인 캐시 또는 메모리(112)를 나타낸 도 4b와 비교할 것이다. 캐시 110의 콘텐츠는 도 4a와 동일한데, 즉 보호 태그(103)와 데이터(104)를 포함하는 캐시 라인(102)이 존재한다. 그러나, 도 4b에 나타낸 것과 같이, 추가적인 캐시 또는 메모리 112가 보호 태그들을 기억하도록 구성되어 있지 않기 때문에, 이 캐시 라인 102의 퇴출은 보호 태그(103), 사실상 이와 같은 캐시 라인 102로부터 모든 보호 태그들의 손실을 일으킨다. 이 때문에, 등가 데이터 항목(114)은 동일한 데이터 항목(104)과 (도 4b의 이와 같은 예시에서는 채워지지 않은) 3개의 추가적인 데이터 항목들만을 포함한다. 따라서, 이와 같은 데이터(104)가 다시 메모리 액세스를 위해 필요하고 충전 동작시 캐시 110으로 승격될 때, 이전에 존재하였던 보호 태그(103)가 손실되어, 보호 태그(103)가 없이 캐시 라인 102가 캐시 110 내부에 존재하게 된다.
도 5는 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 수행하도록 구성된 메모리 액세스 회로(120)를 개략적으로 나타낸 것이다. 메모리 액세스 회로(12)는, 데이터 액세스 회로(122), 보호 태그 검색회로(124) 및 보호 태그 검사회로(126)를 구비한다. 메모리 액세스 회로(120)가 메모리 액세스의 일부로서 타겟 어드레스를 수신하면, 타겟 어드레스는 데이터 액세스 회로(122)와 보호 태그 검색회로(124)가 캐시/메모리 시스템(130) 내부의 해당 데이터 값 및 보호 태그를 액세스하도록 시도하게 한다. 이때, 설명을 간략하게 하기 위해, 데이터 액세스 회로(122)와 보호 태그 검색회로(124)가 도 5의 예에서는 별개로 표시되지만, 도 4a 및 도 4b의 설명이 예시한 것과 같이, 지정된 데이터 값 및 보호 태그에 대한 액세스는 사실상 지정된 캐시 내부의 한 개의 캐시 라인에 대한 액세스를 포함한다는 것에 주목하기 바란다. 더구나, 도 5의 예시는, 도 4a의 예에서와 같이(한개의 캐시 라인 내부에) 데이터 값 및 보호 태그값이 서로 긴밀하게 관련되어 기억되지 않을 수도 있고, 완전히 별개의 물리적인 위치에 기억될 수도 있다는 사실을 허용한다. 그러나, 보호 태그와 데이터 값이 기억될 때, 보호 태그 검색 동작 회로가 캐시/메모리 시스템(130)을 액세스하고, 보호 태그 검사회로(126)에 의해 응답이 수신된다. 보호 태그가 성공적으로 검색되면, 이것을 수신된 어드레스 태그와 비교하여, 보호 태그 검사 결과가 발생된다. 이것은 (메모리 액세스의 소스이거나 소스가 아닐 수도 있는) 프로세서에 전송되는 것과 같이 다양하게 사용된다. 메모리 액세스가 로드일 경우에는 캐시/메모리 시스템(130)으로부터 데이터도 반환된다.
도 6a는 보호 태그 검사회로(131)의 예시적인 실시예를 개략적으로 나타낸 것이다. 이때, 보호 태그 검사회로(131)는, 비교회로(134), 보호 태그 검색회로(135), 및 대체 보호 태그 스토리지(137)를 구비한다. 비교회로(1333)는, 검색된 보호 태그와 어드레스 태그가 일치하는지 여부를 판정하고 보호 태그 검사 결과를 발생하도록 구성된다. 이때, 어드레스 태그와 검색된 보호 태그 사이의 일치는 이들 2가지가 동일한 것을 요구하거나, 일부 구현예에서는, 예를 들어, 어드레스 태그와 보호 태그 중에서 어느 한 개 또는 양쪽을 구성하지만 일치하는 것이 요구되지 않는 다중 비트값 중에서 일부 비트들이 존재할 수도 있다. 보호 태그 검색회로(135)에 의해 캐시/메모리 시스템(139)으로부터 검색된 보호 태그는 비교회로(133)에 전달되어, 검색된 보호 태그와 어드레스 태그가 일치하는지 판정한다. 보호 태그 검색이 실패하는 경우, 보호 태그 검색회로(135)는 이것을 대체 보호 태그 스토리지(137)에 전송한다. 이에 응답하여, 보호 태그 검사회로(131)는 대체 보호 태그가 해당 메모리 어드레스(또는 어드레스들)와 관련하여 캐시/메모리 시스템(139) 내부에 기억되게 한다. 이때, 대체 보호 태그값은 (예를 들어, 보호 태그값이 "손실"된 것으로 밝혀질 때마다 사용되는) 소정값일 수 있다는 것에 주목하기 바란다. 일부 실시예에서, 이와 같은 소정값은, 보호 태그 검사시에 모든 수신된 어드레스 태그가 일치하는 것으로 밝혀지는 대상이 되는 값을 표시하기 위해 사용되는 "match_all" 값일 수 있다.
그러나, 일부 실시예에서, 보호 태그 검사회로(131)는, (도 6a에서 점선으로 나타낸 것과 같이) (보호 태그와 비교되어야 하는) 수신된 어드레스 태그를 대체 보호 태그로서 사용하도록 구성된다. 이에 따라, 이와 같은 수성에서는, 보호 태그 검색이 실패하면(즉, 보호 태그값이 "손실"되면), 보호 태그 검사회로(131)는 메모리 액세스의 어드레스 태그가 해당 메모리 어드레스(또는 어드레스들)와 관련하여 캐시/메모리 시스템(139) 내부에 기억되게 한다. 더구나, (도 6a에 마찬가지로 점선으로 나타낸 것과 같이) 이와 같은 구성에서는, 대체 보호 태그가 비교회로(133)의 보호 태그 입력에 더 주어진다. 따라서, 이것은, 메모리 액세스의 일부로서 수신된 어드레스 태그가 소정의 대체값 또는 어드레스 태그 가 자체와 비교하는 것을 제공한다. 소정의 대체값과 비교회로(133)는, 보호 태그 검사 결과에 대한 특정한 결과가 얻어지도록(예를 들어, "일치" 출력을 강요하거나, 그 대신에 "보호 태그 손실" 출력을 발생하는 것 등) 설정될 수 있다. 그러나, 마지막으로, 보호 태그 검사회로(131)는, 메모리 액세스가 추측적인지 아닌지의 표시를 더 수신한다는 점에 주목하기 바란다. 보호 태그 검사회로(131)는 메모리 액세스가 추측적이라는 표시에 대해 다양한 방식으로 응답하도록 구성되지만, 상정되는 한가지 특정한 구성은, 메모리 액세스가 추측적일 때, 보호 태그 검사회로(131)가 캐시/메모리 시스템(139) 내부의 대체 보호 태그값의 기억을 금지하는 것이다.
도 6b는 보호 태그 검사회로의 일부 구성요소들의 한가지 예시적인 실시예를 개략적으로 나타낸 것이다. 이때, 보호 태그 검사회로(132)는 비교회로(134)와 오버라이드 회로(135)를 구비한다. 비교회로(134)는 검색된 보호 태그와 어드레스 태그가 일치하는지 판정하고 보호 태그 검사 결과를 발생하도록 구성된다. 이때, 어드레스 태그와 검색된 보호 태그 사이의 일치는 이들 2가지가 동일한 것을 요구하거나, 일부 구현예에서는, 예를 들어, 어드레스 태그와 보호 태그 중에서 어느 한 개 또는 양쪽을 구성하지만 일치하는 것이 요구되지 않는 다중 비트값 중에서 일부 비트들이 존재할 수도 있다. 오버라이드 회로(135)는 보호 태그 검색이 실패하였다는 신호를 수신한다. 이것은, 보호 태그 검색이 시도되었다는 캐시/메모리 시스템으로부터의 명시적인 신호이거나, 또는 예를 들어, 메모리 액세스 회로 내부에 일시적으로 유지된 보호 태그값이 보호 태그 검색의 결과로써 예측되었던 경우에, 아무 것도 발견되지 않았다는 표시이거나, 또는 사실상 보호 태그의 손실을 나타내는 명시적인 값일 수 있다. 그러나, 이것이 판정되면, 오버라이드 회로(135)는 보호 태그 검색 실패시에 비교회로(134)에 신호를 제공하고, 이것은 비교회로(134)가 어드레스 태그와 검색된 보호 태그가 일치하였던 것처럼 보호 태그 검사 결과를 발생하게 한다.
도 7a는 보호 태그 검사회로(140)가 보호 태그 비교 제어(141), 비교회로(142) 및 보호 태그 기억회로(143)를 구비한 보호 태그 검사회로의 일부 구성요소의 변형예를 개략적으로 나타낸 것이다. 보호 태그가 성공적으로 검색되면, 이 보호 태그는 보호 태그 스토리지(143)에 임시로 기억되고, 그후 비교회로(142)가 이것을 수신된 어드레스 태그와 비교하여 보호 태그 검사 결과를 발생한다. 그러나, 보호 태그 검색 실패가 존재하는 경우, 이와 같은 정보가 보호 태그 비교 제어(142)에 의해 수신된 후, 이 보호 태그 비교 제어는 수신된 어드레스 태그가 보호 태그 스토리지(143)에 기억되게 한다. 이 때문에, 비교회로(142)가 그것의 비교를 행할 때, 이것이 어드레스 태그를 그 자신과 비교하여, 일치가 발견된 것으로 보호 태그 검사 결과가 표시한다.
도 7b는 보호 태그 검사회로의 일부 구성요소의 변형예를 개략적으로 나타낸 것이다. 이때, 보호 태그 검사회로(150)는, 보호 태그 비교 제어(151), 비교회로(152), 보호 태그 스토리지(153)와, 보호 태그 비교 제어(162) 내부에, 대체값 스토리지(154)를 구비한다. 보호 태그가 성공적으로 검색되어 보호 태그 스토리지(153)에 임시로 기억되면, 이것을 비교회로(152)에 의해 수신된 어드레스 태그와 비교하고, 보호 태그 검사 결과가 발생된다. 그러나, 보호 태그 검색 실패의 경우에, 보호 태그 비교 제어는 검색된 보호 태그 대신에 대체값(153)이 사용되게 하고 이 값을 보호 태그 스토리지(153) 내부에 배치한다. 이 때문에, 보호 태그 검색 실패의 경우에, 비교회로(152)는 수신된 어드레스 태그를 대체값(154)과 비교한다. 이와 같은 대체값(154)은, 다양하게 구성될 수 있으며, 예를 들어, 비교회로(152)가 수신된 모든 어드레스 태그에 대해 긍정적으로 일치하도록 구성된 소정의 "match_all" 값이다.
도 8a는 일 실시예에서의 캐시(160)를 개략적으로 나타낸 것으로, 이때 캐시 라인이 더 확장되어 해당 데이터 값과 그들의 관련된 보호 태그들 뿐만 아니라, 보호 태그가 손실되었는다는 것을 표시할 수 있게 하는 추가적인 비트가 각각의 보호 태그와 관련하여 설치된다. 이들 추가적인 비트들을 도 7a에 해칭된 블록들로 나타낸다. 이 때문에, 보호 태그가 손실되면, 이것을 추후에 보호 태그 검사에 관해 다르게 처리하기 위해 이 손실의 표시가 이 데이터 값과 관련하여 유지될 수 있다. 예를 들어, 이와 같은 손실된 보호 태그 플래그가 세트된 데이터 값이 액세스될 때, 보호 태그 검사가 오버라이드된다.
도 8b는 데이터 값이 관련된 보호 태그와 기억되는 캐시 라인을 캐시(170)가 포함하는 것으로 도시된 변형예를 나타낸 것으로, 이I 보호 태그의 특정한 값 N을 사용하여 손실 태그를 표시하는 한편, 다른 값(!N)은 이 보호 태그가 손실되지 않았으며 이 보호 태그가 통상의 이용가능한 태그값이라는 것을 나타낸다.
도 9는 한가지 방법 실시예에서 취해지는 스텝들의 시퀀스를 나타낸 흐름도이다. 스텝 200에서, 보호 태그가 판독되고, 스텝 201에서 보호 태그가 손실되었는지(즉, 보호 태그를 판독할 수 없는지) 판정한다. 손실되지 않고, 보호 태그를 성공적으로 판독한 경우에는, 스텝 202에서 태그들이 일치하는지, 즉 판독된 보호 태그가 이 보호 태그 검사를 기동한 메모리 액세스의 어드레스 태그와 일치하는지 여부를 판정한다. 태그들이 일치하면, 스텝 206으로 처리가 진행하여, 메모리 액세스가 행해진다(이에 따라 메모리 액세스의 속성에 따라, 데이터를 로드하거나 스토어한다). 태그들이 일치하지 않으면, 스텝 203에서, 이와 같은 불일치에 대해 결함이 발생해야 하는지 검사한다. 그렇지 않은 경우에는, 스텝 206으로 흐름이 진행한다. 불일치에 응답하여 결함이 발생해야 하는 경우, 스텝 204에서 이것이 발생된다. 스텝 201로 되돌아가, 태그가 손실된 것으로 확인되면, 스텝 205로 흐름이 진행하여, (메모리 액세스의) 어드레스 태그가 보호 태그에 기록된다. 이 때문에, 손실된 보호 태그가 어드레스 태그에 의해 대체된다. 그후, 스텝 206으로 흐름이 진행하여 메모리 액세스(로드 또는 스토어)가 행해진다. 또한, 스텝 205 및 206의 각각에서 (*)로 강조표시한 것과 같이, 이들 스텝의 순서가 도시된 것과 반대로 될 수도 있다는 것에 주목하기 바란다. 즉, 어드레스 태그가 대체 보호 태그로서 기록되기 전에 메모리 액세스가 행해져도 된다. 그러나, 일부 시스템에서는 태그 기록이 얼마나 늦게 발생할 수 있는지에 대한 제약이 존재할 수도 있다.
도 10a는 일 실시예에서의 메모리 액세스 시스템(201)을 개략적으로 나타낸 것으로, 메모리 액세스 회로의 일부를 구성하는 보호 태그 검사회로(211)가 메모리 액세스 그 자체 이외에 메모리 액세스가 추측적인지 여부의 표시를 수신한다. 보호 태그 검사회로(211)는 메모리 액세스가 추측적이라는 표시에 응답하여 메모리 액세스에 대한 그것의 동작을 금지함으로써, 메모리 시스템(212)에 대한 보호 태그 검사되지 않은 메모리 액세스가 발생한다. 더욱 일반적으로, 도 10b는 일 실시예에서의 메모리 액세스 회로(220)를 개략적으로 나타낸 것으로, 메모리 액세스 회로의 일부를 구성하는 보호 태그 검사회로(221)가 메모리 액세스 그 자체 이외에 메모리 액세스의 액세스 특징을 수신한다. 액세스 특징은, 예를 들어, 메모리 액세스를 발생한 요구자의 종류의 표시, 메모리 액세스를 발행한 요구자의 특권 레벨, 수신된 타겟 어드레스의 표시 등일 수 있다. 보호 태그 검사회로(221)는, 액세스 특징에 응답하여, 액세스 특징의 특정한 종류 및 보호 태그 검사회로(221)의 구성에 따라, 메모리 액세스에 대한 그것의 동작을 금지함으로써, 보호 태그 검사되지 않은 메모리 액세스가 발생된다. 이 때문에, 보호 태그 검사와, 특히 본 발명에서 설며한 보호 태그의 손실에 응답하기 위한 기술이 특정한 종류의 메모리 액세스 또는 메모리 액세스의 소스에 대해서만 실행될 수 있다.
도 11은 사용될 수 있는 시뮬레이터 구현예를 나타낸 것이다. 전술한 실시예는 해당 기술을 지원하는 특정한 처리 하드웨어를 작동하기 위한 장치 및 방법에 관해 본 발명을 구현하지만, 컴퓨터 프로그램의 사용을 통해 구현되는 본 발명에서 설명한 실시예에 따른 명령 실행 환경을 제공하는 것도 가능하다. 이와 같은 컴퓨터 프로그램은, 하드웨어 아키텍처의 소프트웨어 기반의 구현을 제공하는 한, 시뮬레이터로 부르는 경우가 많다. 다양한 시뮬레이터 컴퓨터 프로그램은 에뮬레이터, 가상머신, 모델, 및 동적 이진 변환기를 포함하는 이진 변환기를 포함한다. 보통, 시뮬레이터 구현은, 옵션으로 시뮬레이터 프로그램(310)을 지원하는 호스트 운영체계(320)를 실행하는 호스트 프로세서(330) 상에서 실행된다. 일부 구성에서는, 하드웨어와 제공된 명령 실행 환경 사이에 복수 층의 시뮬레이션이 존재하고, 및/또는 동일한 호스트 프로세서 상에서 복수의 별개의 명령 실행 환경이 제공된다. 역사적으로, 합당한 속도에서 실행되는 시뮬레이터 구현을 제공하기 위해 강력한 프로세서들이 요구되었지만, 이와 같은 접근방법은, 호환성이나 재사용 이유로 인해 다른 프로세서에 대해 네이티브한 코드를 실행하려는 요구가 있을 때 등과 같은, 특정한 상황에서 정당화된다. 예를 들어, 시뮬레이터 구현은, 호스트 프로세서 하드웨어에 의해 지원되지 않는 추가적인 기능을 갖는 명령 실행 환경을 제공하거나, 보통 다양한 하드웨어 아키텍처와 관련된 명령 실행 환경을 제공한다. 시뮬레이터의 개관에 대해서는 "Some Efficient Architecture Simulation Techniques", Robert Bedichek, Winter 1990 USENIX Conference, Pages 53-63에 기재되어 있다.
본 실시예를 특정한 하드웨어 구성 또는 특징을 참조하여 설명하였지만, 시뮬레이션된 실시예에서는, 적절한 소프트웨어 구성 또는 특징에 의해 동등한 기능이 제공된다. 예를 들어, 특정한 회로가 시뮬레이션된 실시예에서는 컴퓨터 프로그램 논리로 구현된다. 마찬가지로, 레지스터 또는 캐시 등의 메모리 하드웨어도 시뮬레이션된 실시예에서는 소프트웨어 데이터 구조로 구현된다. 전술한 실시예에서 참조한 한 개 이상의 하드웨어 구성요소들이 호스트 하드웨어(예를 들어, 호스트 프로세서(330)) 상에 존재하는 구성에서는, 적절한 경우에, 일부 시뮬레이션된 실시예가 호스트 하드웨어를 이용한다.
시뮬레이터 프로그램(310)은, 컴퓨터 판독가능한 기억매체(312)(이것은 비일시적인 매체일 수도 있다)에 기억되고, 시뮬레이터 프로그램(310)에 의해 모델링되고 있는 하드웨어 아키텍처의 응용 프로그램 인터페이스와 동일한 타겟 코드(300)(이것은 어플리케이션, 운영체계 및 하이퍼바이저를 포함해도 된다)에 대한 프로그램 인터페이스(명령 실행 환경)를 제공한다. 따라서, 타겟 코드(300)의 프로그램 명령들은 시뮬레이터 프로그램(310)을 사용하여 명령 실행 환경 내에서 실행됨으로써, 전술한 장치(2)의 하드웨어 특징을 실제로 갖지 않는 호스트 컴퓨터(330)가 이들 특징을 에뮬레이트할 수 있다. 예를 들어, 시뮬레이터 프로그램(310)은 전술한 메모리 액세스를 시뮬레이션하기 위한 메모리 액세스 로직(314)을 구비한다. 이 때문에, 시뮬레이터 프로그램(310)은, 보호 태그와 어드레스 태그의 비교를 행하고, 보호 태그와 어드레스 태그 사이의 불일치가 검출되었는지 여부를 보고하고, 보호 태그 검색 동작이 성공적이 아닐 때 대체 보호 태그를 기억하기 위한 메모리 액세스 프로그램 로직을 더 포함할 수 있다.
전체적으로 간략히 요약하면, 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 회로를 구비한 장치와 이 장치의 작동방법이 개시된다. 태그 보호된 메모리 액세스시에 보호 태그 검색 동작은 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하려고 시도하고. 보호 태그 검사 동작은 수신된 타겟 어드레스와 관련된 어드레스 태그를 보호 태그 검색 동작에 의해 검색된 보호 태그와 비교한다. 보호 태그 검색시에 보호 태그 검색 동작이 성공적이 아닐 때, 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 보호 태그로서 대체 보호 태그값이 기억된다.
본 발명에서, 단어 "하도록 구성된"은 장치의 구성요소가 정의된 동작을 행할 수 있는 구성을 갖는다는 것을 의미하기 위해 사용된다. 이와 관련하여, "구성"은 하드웨어 또는 소프트웨어의 배치 또는 상호접속 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 갖거나, 프로세서 또는 기타의 처리장치가 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은 이 장치의 구성요소가 정의된 동작을 제공하기 위해 어떤 식으로 변경될 필요가 있는 것을 시사하는 것은 아니다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (20)

  1. 수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 회로를 구비하고, 상기 태그 보호된 메모리 액세스는,
    상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 보호 태그 검색 동작과,
    상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 보호 태그 검색 동작에 의해 검색된 상기 보호 태그와 비교하는 보호 태그 검사 동작을 포함하고,
    상기 메모리 액세스 회로는, 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 장치.
  2. 제 1항에 있어서,
    상기 대체 보호 태그값은 상기 보호 태그 검사 동작에서 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그와 일치하도록 선택되는 장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 대체 보호 태그값은 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그인 장치.
  4. 제 1항에 있어서,
    상기 메모리 액세스 회로는, 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 대체 보호 태그값으로서 상기 보호 태그에 대해 이전에 정의된 값의 결정을 개시하는 장치.
  5. 제 4항에 있어서,
    상기 메모리 액세스 회로는 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 장치의 명령 실행회로에 의해 예외가 발생되게 하고,
    상기 명령 실행회로는 상기 예외에 응답하여 상기 보호 태그에 대한 상기 이전에 정의된 값의 결정을 포함하는 보호 태그 보수 예외 루틴을 실행하는 장치.
  6. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 메모리 액세스 회로는 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그와 상기 보호 태그 사이에 일치가 확립된 것으로 상기 보호 태그 검사 동작의 결과를 판정하는 장치.
  7. 제 6항에 있어서,
    상기 메모리 액세스 회로는 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 수신된 타겟 어드레스와 관련된 상기 어드레스 태그와 상기 보호 태그 사이에서 일치가 확립되도록, 소정의 전부 일치(match-all) 특징을 갖는 것으로 상기 보호 태그를 취급하는 장치.
  8. 제 7항에 있어서,
    상기 소정의 전부 일치 특징은 상기 보호 태그의 소정의 값인 장치.
  9. 제 7항에 있어서,
    상기 소정의 전부 일치 특징은 상기 보호 태그와 관련된 세트 전부 일치 플래그의 존재인 장치.
  10. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 메모리 액세스 회로는 상기 보호 태그의 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여 보호 태그 손실(lost-guard-tag) 표시를 발생하는 장치.
  11. 제 10항에 있어서,
    상기 메모리 액세스 회로는 상기 수신된 타겟 어드레스와 관련하여 상기 보호 태그 손실 표시를 기억하도록 구성된 장치.
  12. 제 10항 또는 제 11항에 있어서,
    상기 메모리 액세스 회로는 상기 보호 태그 손실 표시를 프로세서 유닛으로 전송하도록 구성된 장치.
  13. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 메모리 액세스 회로는 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여 보호 태그 손실 카운터를 증분하는 장치.
  14. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 메모리 액세스 회로는 상기 수신된 타겟 어드레스를 제공하는 메모리 액세스의 특징에 응답하여,
    상기 태그 보호된 메모리 액세스와,
    태그 보호되지 않은 메모리 액세스
    중에서 한 개를 선택적으로 행하는 장치.
  15. 제 14항에 있어서,
    상기 메모리 액세스의 특징은,
    메모리 액세스를 발생한 요구자의 종류,
    메모리 액세스를 발생한 상기 요구자의 특권 레벨, 및
    상기 수신된 타겟 어드레스 중에서 적어도 한 개를 포함하는 장치.
  16. 제 14항 또는 제 15항에 있어서,
    상기 메모리 액세스의 특징은 메모리 액세스가 추측 데이터 처리의 일부를 구성한다는 표시를 포함하고, 상기 메모리 액세스 회로는 메모리 액세스가 추측 데이터 처리의 일부를 구성한다는 표시에 응답하여 상기 태그 보호되지 않은 메모리 액세스를 행하는 장치.
  17. 선행하는 청구항 중 어느 한 항에 있어서,
    상기 메모리 액세스 회로는 메모리 액세스가 추측 데이터 처리의 일부를 구성한다는 표시에 응답하여, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 상기 대체 보호 태그값의 기억을 금지하는 장치.
  18. 방법으로서,
    수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 단계를 포함하고, 상기 태그 보호된 메모리 액세스는,
    상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 단계와,
    상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 검색단계에서 검색된 상기 보호 태그와 비교하는 단계를 포함하고,
    상기 방법은,
    상기 보호 태그 검색시에 상기 검색단계가 성공적이 아닐 때, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 단계를 더 포함하는 방법.
  19. 호스트 데이터 처리장치를 제어하여 타겟 프로그램 코드의 명령들의 실행을 위한 명령 실행 환경을 제공하는 컴퓨터 프로그램으로서,
    수신된 타겟 어드레스에 응답하여 태그 보호된 메모리 액세스를 행하는 메모리 액세스 로직을 포함하고, 상기 태그 보호된 메모리 액세스는,
    상기 수신된 타겟 어드레스에 의해 식별된 어드레스 지정된 위치를 포함하는 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 보호 태그를 검색하는 보호 태그 검색 동작과,
    상기 수신된 타겟 어드레스와 관련된 어드레스 태그를 상기 보호 태그 검색 동작에 의해 검색된 상기 보호 태그와 비교하는 보호 태그 검사 동작을 포함하고,
    상기 메모리 액세스 로직은, 상기 보호 태그 검색시에 상기 보호 태그 검색 동작이 성공적이 아닌 것에 응답하여, 상기 타겟 어드레스에 의해 식별된 상기 어드레스 지정된 위치를 포함하는 상기 한 개 이상의 메모리 위치들의 블록과 관련하여 기억된 상기 보호 태그로서 대체 보호 태그값을 기억하게 하는 컴퓨터 프로그램.
  20. 청구항 19에 기재된 컴퓨터 프로그램을 기억하는 기억매체.
KR1020217004146A 2018-07-31 2019-06-07 보호 태그 손실 처리 KR20210034612A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1812486.7 2018-07-31
GB1812486.7A GB2576005B (en) 2018-07-31 2018-07-31 Handling guard tag loss
PCT/GB2019/051590 WO2020025918A1 (en) 2018-07-31 2019-06-07 Handling guard tag loss

Publications (1)

Publication Number Publication Date
KR20210034612A true KR20210034612A (ko) 2021-03-30

Family

ID=63518082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217004146A KR20210034612A (ko) 2018-07-31 2019-06-07 보호 태그 손실 처리

Country Status (8)

Country Link
US (1) US11636048B2 (ko)
EP (1) EP3830701A1 (ko)
JP (1) JP7317099B2 (ko)
KR (1) KR20210034612A (ko)
GB (1) GB2576005B (ko)
IL (1) IL279812B2 (ko)
TW (1) TWI801622B (ko)
WO (1) WO2020025918A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI839862B (zh) * 2022-09-26 2024-04-21 英柏得科技股份有限公司 檢查資料存儲裝置之系統環境是否異常的方法與系統

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163096A (en) * 1991-06-06 1992-11-10 International Business Machines Corporation Storage protection utilizing public storage key control
JPH05134930A (ja) * 1991-11-12 1993-06-01 Nippon Telegr & Teleph Corp <Ntt> メモリ保護装置
JP3116827B2 (ja) * 1996-07-16 2000-12-11 日本電気株式会社 キャッシュメモリ制御装置
US7318119B2 (en) * 2004-10-29 2008-01-08 International Business Machines Corporation System and method for fault tolerant controller for network RAID
US20060165084A1 (en) 2005-01-21 2006-07-27 International Business Machines Corporation RNIC-BASED OFFLOAD OF iSCSI DATA MOVEMENT FUNCTION BY TARGET
JP4364166B2 (ja) * 2005-06-30 2009-11-11 株式会社東芝 キャッシュ装置
US8122223B2 (en) * 2008-04-18 2012-02-21 International Business Machines Corporation Access speculation predictor with predictions based on memory region prior requestor tag information
JP5541275B2 (ja) 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
TWI514145B (zh) 2013-10-21 2015-12-21 Univ Nat Sun Yat Sen 可儲存除錯資料的處理器、其快取及控制方法
US9792448B2 (en) * 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
GB2541714B (en) 2015-08-27 2018-02-14 Advanced Risc Mach Ltd An apparatus and method for controlling instruction execution behaviour
GB2544489B (en) * 2015-11-17 2017-12-06 Advanced Risc Mach Ltd Branch prediction in a data processing apparatus
US10949292B1 (en) * 2019-10-07 2021-03-16 Arm Limited Memory interface having data signal path and tag signal path

Also Published As

Publication number Publication date
GB2576005A (en) 2020-02-05
JP7317099B2 (ja) 2023-07-28
EP3830701A1 (en) 2021-06-09
GB2576005B (en) 2020-10-07
JP2021532474A (ja) 2021-11-25
IL279812B1 (en) 2023-12-01
WO2020025918A1 (en) 2020-02-06
US11636048B2 (en) 2023-04-25
GB201812486D0 (en) 2018-09-12
CN112470134A (zh) 2021-03-09
IL279812B2 (en) 2024-04-01
US20210224203A1 (en) 2021-07-22
IL279812A (en) 2021-03-01
TW202008173A (zh) 2020-02-16
TWI801622B (zh) 2023-05-11

Similar Documents

Publication Publication Date Title
US11474956B2 (en) Memory protection unit using memory protection table stored in memory system
CN110622133B (zh) 用于管理能力域的设备及方法
KR102590180B1 (ko) 자격 메타데이터를 관리하는 장치 및 방법
JP7291149B2 (ja) メモリ・アクセスにおける保護タグ・チェックの制御
US11907301B2 (en) Binary search procedure for control table stored in memory system
CN112639750A (zh) 用于控制存储器存取的装置及方法
KR20200107997A (ko) 다중 가드 태그 설정 명령어
JP7349437B2 (ja) メモリ・アクセスにおける保護タグ・チェックの制御
KR20210034612A (ko) 보호 태그 손실 처리
CN112470134B (zh) 数据处理装置和数据处理方法
JP7369720B2 (ja) アクションをトリガするための装置及び方法
CN111566628B (zh) 控制存储器访问中的守卫标签检查的设备和方法
KR20200116471A (ko) 데이터 처리장치의 어드레스 변환
CN117222990A (zh) 用于使用能力约束对存储器的访问的技术