KR20230101878A - 범위 지정자에 기초한 필터링 - Google Patents

범위 지정자에 기초한 필터링 Download PDF

Info

Publication number
KR20230101878A
KR20230101878A KR1020237018895A KR20237018895A KR20230101878A KR 20230101878 A KR20230101878 A KR 20230101878A KR 1020237018895 A KR1020237018895 A KR 1020237018895A KR 20237018895 A KR20237018895 A KR 20237018895A KR 20230101878 A KR20230101878 A KR 20230101878A
Authority
KR
South Korea
Prior art keywords
range
memory
specifier
data
memory area
Prior art date
Application number
KR1020237018895A
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 KR20230101878A publication Critical patent/KR20230101878A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Nonlinear Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Memory System (AREA)

Abstract

데이터 프로세싱 장치들, 방법들 및 컴퓨터 프로그램들이 개시된다. 범위 정의 레지스터는 범위 지정자를 저장하도록 배열되고, 필터링 동작들은 범위 정의 레지스터를 참조하여 특정된 트랜잭션과 관련하여 수행된다. 범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하고, 여기서 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의된다. 특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 수행되는 필터링 동작들은 데이터 식별자들의 범위와 연관된 속성 데이터에 의존한다.

Description

범위 지정자에 기초한 필터링
본 발명은 미국방위고등연구계획국(Defense Advanced Research Projects Agency, DARPA)이 부여한 계약번호 HR001118C0016 하에서 정부 지원으로 행해졌다. 정부는 본 발명에 소정의 권리들을 갖는다.
기술분야
본 개시내용은 데이터 프로세싱에 관한 것이다. 특히, 본 개시내용은 범위 지정자(range specifier)에 기초한 필터링 동작들에 관한 것이다.
데이터 프로세싱 장치는 장치 내의 소정의 트랜잭션(transaction)들과 관련하여 필터링 동작들을 수행하기 위한 필터링 회로부를 포함할 수 있다. 이를 행하도록 구성될 때, 필터링의 적어도 일부가 트랜잭션들의 소정의 서브세트, 예를 들어 특정된 범위의 메모리 어드레스들과 관련되거나 특정된 범위의 데이터 값들과 관련되는 그러한 트랜잭션들에만 적용되는 것이 요구될 수 있다.
본 명세서에 기술된 하나의 예시적인 실시예에서, 데이터 프로세싱 장치가 있으며, 데이터 프로세싱 장치는,
범위 지정자를 저장하도록 배열된 범위 정의 레지스터; 및
범위 정의 레지스터를 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하기 위한 필터링 회로부를 포함하고,
범위 정의 레지스터는 유효숫자(significand) 및 지수(exponent)를 포함하는 포맷으로 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의되고,
특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 필터링 회로부에 의해 수행되는 필터링 동작들은 데이터 식별자들의 범위와 연관된 속성 데이터에 의존한다.
본 명세서에 기술된 하나의 예시적인 실시예에서, 방법이 있으며, 방법은,
범위 정의 레지스터에 범위 지정자를 저장하는 단계;
범위 정의 레지스터를 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하는 단계
- 범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의됨 -; 및
특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 데이터 식별자들의 범위와 연관된 속성 데이터에 의존하여 필터링 동작들을 수정하는 단계를 포함한다.
본 명세서에 기술된 하나의 예시적인 실시예에서, 명령어 실행 환경을 제공하기 위해 호스트 데이터 프로세싱 장치를 제어하기 위한 컴퓨터 프로그램이 있으며, 컴퓨터 프로그램은,
범위 지정자를 저장하도록 배열된 범위 정의 레지스터 로직; 및
범위 정의 레지스터 로직을 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하기 위한 필터링 로직을 포함하고,
범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의되고,
특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 필터링 로직에 의해 수행되는 필터링 동작들은 데이터 식별자들의 범위와 연관된 속성 데이터에 의존한다.
본 발명이 첨부 도면들에 예시된 바와 같은 그의 실시예들을 참조하여, 단지 예로서, 추가로 설명될 것이다.
도 1a는 예시적인 실시예들에 따른 장치를 개략적으로 예시한다.
도 1b는 예시적인 실시예들에 따른 범위 지정자를 개략적으로 예시한다.
도 1c는 예시적인 실시예들에 따른 범위 지정자를 개략적으로 예시한다.
도 2a는 예시적인 실시예들에 따른 장치를 개략적으로 예시한다.
도 2b는 예시적인 실시예들에 따른 베이스 지정자(base specifier)를 개략적으로 예시한다.
도 3a는 예시적인 실시예들에 따른 장치를 개략적으로 예시한다.
도 3b는 예시적인 실시예들에 따른, 메모리 내의 테이블에 저장된 메모리 영역 베이스 지정자 및 범위 지정자 쌍들을 개략적으로 예시한다.
도 4a는 예시적인 실시예들에 따른 장치를 개략적으로 예시한다.
도 4b는 예시적인 실시예들에 따른 메모리 영역 범위 지정자를 개략적으로 예시한다.
도 5a는 예시적인 실시예들에 따른 장치를 개략적으로 예시한다.
도 5b는 예시적인 실시예들에 따른 장치를 개략적으로 예시한다.
도 6은 예시적인 실시예들의 방법에서 취해지는 단계들의 시퀀스를 도시한다.
도 7은 예시적인 실시예들의 방법에서 취해지는 단계들의 시퀀스를 도시한다.
도 8은 예시적인 실시예들의 시뮬레이터 구현을 개략적으로 예시한다.
첨부 도면들을 참조하여 실시예들을 논의하기 전에, 실시예들의 하기 설명이 제공된다.
하나의 예시적인 구성에 따르면, 데이터 프로세싱 장치가 있으며, 데이터 프로세싱 장치는,
범위 지정자를 저장하도록 배열된 범위 정의 레지스터; 및
범위 정의 레지스터를 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하기 위한 필터링 회로부를 포함하고,
범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의되고,
특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 필터링 회로부에 의해 수행되는 필터링 동작들은 데이터 식별자들의 범위와 연관된 속성 데이터에 의존한다.
메모리 어드레스들의 범위 또는 데이터 값들의 범위와 같은, 데이터 식별자들의 범위는, 대체적으로 그 범위의 한계들(예컨대, 시작 값 및 종료 값)에 의해 정의되며, 여기서, 범위의 한계들 사이에 있는 데이터 식별자들이 미리결정된 조건을 만족하는 세트를 형성한다는 것은 암시적이다. 예를 들어, 소정의 데이터 프로세싱 동작들은 대상 데이터 식별자가 범위 내에 있을 때만 적용될 수 있다(또는 적용되지 않을 수 있다). 따라서, 범위 지정자를 저장하도록 배열된 범위 정의 레지스터를 구비한 데이터 프로세싱 장치의 경우, 통상적으로 그 범위 지정자는 범위의 한계(예를 들어, 상부 한계(upper limit), 여기서 하부 한계(lower limit)는 다른 곳에서 특정되거나 가정됨)를 표현하는 값을 제공할 수 있다. 그러나, 본 기법들은, 범위 정의 레지스터가 이러한 포맷의 범위 지정자를 보유하는 구성에 유연성이 부족하다는 것을 인식한다. 또한, 데이터 프로세싱 장치의 레지스터 내에는 비트 공간이 종종 부족하다(at a premium).
이러한 맥락에서, 본 기법들은 범위 정의 레지스터가 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하도록 배열되는 구성을 제공한다. 다시 말해서, 범위 정의 레지스터는 (지수를 사용하여) 스케일링이 적용되는 고정된 디지트(digit)들의 세트(유효숫자)를 갖는 부동 소수점 포맷의 범위 지정자를 보유한다. 따라서, 이러한 스케일링은 주어진 베이스에서 지수를 이용하여, 스케일링 인자가 베이스지수가 되도록 한다. 구현의 용이함을 위해, 데이터 프로세싱 장치의 맥락에서, 이러한 베이스는 예를 들어 2일 수 있다. 이어서, 데이터 식별자들의 범위는 이러한 부동 소수점 포맷의 범위 식별자에 의해 적어도 부분적으로 정의된다. 이는 데이터 식별자들의 범위가 정의되는 방식으로 유연성의 유용한 요소들을 제공하고, 여기서 데이터 식별자들의 범위가 특정되는 정밀도는 특정된 범위의 크기와 트레이드오프될 수 있다. 더 작은 범위들(더 작은 지수들을 사용하여 정의됨)은, 예를 들어 개별 데이터 식별자들의 레벨에 이르기까지, 정확하게 정의될 수 있는 반면, 더 큰 범위들은 데이터 식별자들의 그룹화들(예컨대, 메모리 어드레스들의 경우 메모리의 블록들 - 다양한 메모리 정렬)이 고려될 것을 요구할 수 있지만, 이러한 범위를 표현하기 위해 제한된 수의 인코딩 비트들의 제약 하에서 달리 가능할 수 있는 것보다 더 큰 범위들을 특정할 수 있다.
따라서, 필터링 회로부는, 범위 정의 레지스터에 저장된 범위 지정자의 유효숫자 및 지수로부터 범위를 구성한, 정의된 범위 내에 속하는 데이터 식별자들과 관련하여 행해지고 있는 트랜잭션들을 식별하기 위해 범위 지정자를 이용할 수 있다. 필터링 회로부에 의해 수행되는 필터링 동작들은 데이터 식별자들의 범위와 연관된 속성 데이터에 추가로 의존한다. 이러한 속성 데이터는 다양하게 정의될 수 있고, 그 속성 데이터의 정의들은 다양하게 보유될 수 있지만, 일부 실시예들에서, 범위 지정자는 속성 데이터의 적어도 일부를 추가로 포함한다. 실제로, 범위 정의 레지스터의 공간 제약된 환경(space-constrained environment) 내에서, 유효숫자 및 지수와 관련하여 범위 지정자를 정의하는 데 있어서 본 기법들에 의해 제공되는 유연성은, 범위 정의 레지스터의 더 큰 비율의 비트들이 정의된 데이터 식별자들의 범위에 대한 속성 데이터를 정의하는 데 사용되는 것을 허용할 수 있다.
위에서 언급된 바와 같이, 데이터 식별자들의 범위의 정의는 가정되거나 별도로 정의되는 하부(또는 상부) 한계를 포함할 수 있어서, 범위가 그 기준(상부 또는 하부) 한계 및 범위 정의 레지스터에 저장된 범위 지정자에 의해 주어진 범위 크기를 참조하여 구성될 수 있게 한다. 일부 실시예들에서, 데이터 프로세싱 장치는 베이스 지정자를 저장하도록 배열된 베이스 정의 레지스터를 추가로 포함하고, 여기서 데이터 식별자들의 범위는 베이스 지정자에 의해 표시된 제1 데이터 식별자와 제1 데이터 식별자 및 범위 지정자에 의해 표시된 데이터 식별자 범위에 의존하는 제2 데이터 식별자 사이의 범위에 이르는 데이터 식별자들의 세트를 포함한다.
또한, 속성 데이터는 그 베이스 지정자에 의해 적어도 부분적으로 정의될 수 있고, 일부 실시예들에서, 베이스 지정자는 속성 데이터의 적어도 일부를 추가로 포함한다.
본 기법들은, 그러한 데이터 식별자들의 범위가 정의되어야 하는 다양한 데이터 식별자들에 대한 적용가능성을 발견할 수 있다. 그러나, 일부 실시예들에서, 범위 정의 레지스터는 메모리 영역 범위 정의 레지스터이고, 범위 지정자는 메모리 영역 범위 지정자이고, 여기서 데이터 식별자들의 범위는 메모리 영역 범위 지정자에 의해 적어도 부분적으로 정의된 메모리 영역이다. 이에 따라, 본 기법들은 필터링 동작들이 적용되어야 하는 메모리 범위의 정의에 있어서 현저한 유연성을 가능하게 한다. 메모리 영역 범위 지정자의 유효숫자 및 지수를 참조한 메모리 범위의 정의는, 작은 수의 메모리 어드레스들만을 커버하는 메모리 범위들에서 큰 섹션들의 메모리를 커버하는 메모리 범위들까지가 정의될 수 있음을 규정한다.
메모리 영역 범위 지정자는 메모리 어드레스들의 범위를 정의하기 위해 다양한 방식들로 사용될 수 있지만, 일부 실시예들에서, 데이터 프로세싱 장치는 메모리 영역 베이스 지정자를 저장하도록 배열된 메모리 영역 베이스 정의 레지스터를 추가로 포함하고, 여기서 메모리 영역은 메모리 영역 베이스 지정자에 의해 표시된 제1 어드레스와 제1 어드레스 및 메모리 영역 범위 지정자에 의해 표시된 메모리 범위에 의존하는 제2 어드레스 사이의 범위에 이르는 메모리 어드레스들의 세트를 포함한다.
메모리 영역 범위 지정자에 의해 적어도 부분적으로 정의되는 메모리 영역은 일부 예들에서 비교적 정적일 수 있어서, 필터링 회로부가 단지 그 메모리 영역과 관련해서만 그의 필터링 동작들을 수행하도록 구성되게 할 수 있다. 그러나, 다른 예들에서, 메모리 영역 범위 지정자는 액세스되고 있는 메모리 어드레스들에 의존하여 업데이트될 수 있다. 예를 들어, 일부 실시예들에서, 필터링 회로부는 특정된 메모리 액세스에 응답하여, 메모리 영역이 특정된 메모리 액세스에 대응하지 않을 때, 특정된 메모리 액세스에 대응하는 메모리 영역 범위 정의 레지스터 및 메모리 영역 베이스 정의 레지스터에 대한 대체 콘텐츠를 검색하려고 하는 메모리 영역 지정자 룩업 절차를 수행한다. 이러한 구성은 장치가 상이한 정의된 메모리 영역과 각각 연관된 상이한 속성 데이터의 세트들을 보유할 수 있게 한다. 메모리 영역 범위 정의에 의해 커버된 메모리의 정의된 영역에 대해 다수의 메모리 액세스들이 이루어질 때, 동일한 속성 데이터가, 그러한 메모리 액세스들을 필터링하기 위해, 예를 들어, 메모리의 소정의 영역들을, 판독 전용으로, 소정의 에이전트들에 의해서만 액세스를 허용하도록 제한되는 것으로, 그 안에 저장된 명령어들의 실행을 허용/금지하는 것으로, 등등으로 정의하기 위해, 참조될 수 있다. 이와 같이, 메모리 영역 범위 정의 레지스터 내의 메모리 영역 범위 지정자(가능하게는 메모리 영역 베이스 정의 레지스터 내의 메모리 영역 베이스 지정자와 조합됨)는, 예를 들어 주어진 프로세싱 에이전트가 주어진 유형의 프로세싱 태스크를 위해 메모리의 소정의 부분에 액세스하는, 메모리 액세스들의 진행 중인 세트에 대해 적용가능할 수 있다. 그러나, 이어서, (메모리 영역 범위 정의 외부에 속하는) 상이한 메모리의 영역에 대해 액세스가 이루어질 때, 이러한 룩업 절차가 이어서 메모리 영역 범위 정의 레지스터에 대한 대체 콘텐츠를 검색할 수 있어서, 특히 새로운 속성 데이터의 세트가 이어서 새로운 메모리 액세스에 대해 그리고 어느 상이한 규칙들이 이어서 적용될 수 있는지에 대해 참조될 수 있도록 할 수 있다.
메모리 영역 지정자 룩업 절차는 다양한 방식들로 수행될 수 있지만, 일부 실시예들에서, 메모리 영역 지정자 룩업 절차를 수행하는 것은 메모리에 저장된 메모리 영역 지정자들의 테이블과 관련하여 테이블 워크(table walk)를 수행하는 것을 포함하고, 여기서 테이블 워크는 후보 메모리 영역 베이스 지정자들의 시퀀스의 검사를 포함하는 수렴 반복 프로세스이고, 여기서 수렴 반복 프로세스의 각각의 반복에서, 후보 메모리 영역 베이스 지정자와 특정된 메모리 액세스의 메모리 어드레스 사이에 비교가 이루어지고, 수렴 반복 프로세스의 후속 반복에 대해, 후보 메모리 영역 베이스 지정자는 수렴 반복 프로세스의 선행 반복에서의 비교의 결과에 의존한다. 이에 따라, 반복 프로세스는 베이스 지정자 값들을 참조하여, 이들을 사용하여 프로세스의 다음 반복을 통지한다. 이와 같이, 베이스 값들에 의해 좌우되는 검색이 수행된다. 예를 들어, 각각의 반복에서, 베이스 값이 처리되는 메모리 액세스의 어드레스보다 더 큰지 또는 그보다 더 작은지에 대한 결정이 이루어질 수 있고, 따라서 요구된 메모리 영역 베이스 지정자에 전념할 수 있다. 일단 베이스 지정자가 메모리 액세스의 어드레스에 가깝게 적합한 것으로 간주되면, 이어서 메모리 영역 범위 지정자(그리고 유효숫자 및 지수로부터 구성된 범위)만을 검사하면 된다.
결과적으로, 일부 실시예들에서, 테이블 워크는 수렴 반복 프로세스 후에 수행되는 검증 단계를 추가로 포함하여, 수렴 반복 프로세스의 최종 반복의 후보 메모리 영역 베이스 지정자 및 후보 메모리 영역 범위 지정자에 의해 표시된 후보 메모리 범위가 특정된 메모리 액세스의 메모리 어드레스를 포함하는 후보 메모리 영역을 정의하는지 여부를 결정한다.
그러나, 메모리 영역 범위 지정자의 검사는 반복 프로세스의 단계들의 일부로서 인터리빙될 수 있고, 일부 실시예들에서, 메모리 영역 지정자 룩업 절차를 수행하는 것은, 메모리에 저장된 메모리 영역 지정자들의 테이블과 관련하여 테이블 워크를 수행하는 것을 포함하고, 여기서 테이블 워크는 후보 메모리 영역 베이스 지정자들의 시퀀스의 검사를 포함하는 수렴 반복 프로세스이고, 여기서 수렴 반복 프로세스의 각각의 반복의 제1 단계에서, 후보 제1 어드레스가 각각의 후보 메모리 영역 베이스 지정자로부터 결정되고, 후보 제1 어드레스가 특정된 메모리 액세스와 호환되는 후보 메모리 영역의 경계를 표현할 때, 각각의 반복의 제2 단계가 수행되어, 후보 제1 어드레스 및 후보 메모리 영역 범위 지정자에 의해 표시된 후보 메모리 범위가 특정된 메모리 액세스의 메모리 어드레스를 포함하는 후보 메모리 영역을 정의하는지 여부를 결정한다.
메모리로부터 검색될 별개의 항목들로서의 메모리 영역 베이스 지정자 및 메모리 영역 범위 지정자의 별도의 정의는 이러한 2개의 정보 항목들이 처리되는 방식 및 순서화의 추가의 변화를 허용한다. 예를 들어, 일부 실시예들에서, 수렴 반복 프로세스의 각각의 반복의 제1 단계는 메모리 내의 테이블로부터 후보 메모리 영역 베이스 지정자 및 후보 메모리 영역 범위 지정자를 페칭하는 것을 포함하고, 각각의 반복의 제2 단계가 수행될 때, 각각의 반복의 제2 단계는, 메모리 내의 테이블로부터 다음 후보 메모리 영역 베이스 지정자 및 다음 후보 메모리 영역 범위 지정자를 페칭하는 것을 포함하는 수렴 반복 프로세스의 다음 반복의 다음 제1 단계와 동시에 수행된다. 이러한 병렬화는 요구된 메모리 영역 범위 지정자 및 메모리 영역 베이스 지정자의 더 빠른 검색을 허용할 수 있다.
데이터 식별자들은 메모리 어드레스들과는 다른 형태들을 취할 수 있고, 일부 실시예들에서, 범위 정의 레지스터는 데이터 값 범위 정의 레지스터이고, 범위 지정자는 데이터 값 범위 지정자이고, 여기서 데이터 식별자들의 범위는 데이터 값 범위 지정자에 의해 적어도 부분적으로 정의된 데이터 값들의 범위이다. 따라서, 필터링 동작들은 이에 따라, 정의된 데이터 값들의 범위, 및 주어진 트랜잭션이 그 정의된 데이터 값들의 범위 내에 속하는 데이터 값을 포함하는지 여부에 기초하여 수행될 수 있다.
본 기법들을 지원하는 데이터 프로세싱 장치는 다양한 방식들로 구성될 수 있지만, 일부 실시예들에서,
데이터 프로세싱 동작들을 수행하기 위한 프로세싱 회로부;
적어도 하나의 능력 포인터(capability pointer)를 저장하도록 배열된 적어도 하나의 능력 레지스터; 및
명령어들의 시퀀스에 응답하여, 프로세싱 회로부에 대한 제어 신호들을 생성하여 프로세싱 회로부로 하여금 명령어들의 시퀀스에 따라 데이터 프로세싱 동작들을 수행하게 하기 위한 디코드 회로부를 추가로 포함하고,
데이터 프로세싱 명령어들은 적어도 하나의 능력 포인터 프로세싱 명령어를 포함하고, 적어도 하나의 능력 포인터 프로세싱 명령어가 적어도 하나의 능력 레지스터를 특정하는 것에 응답하여, 프로세싱 회로부는 적어도 하나의 능력 레지스터와 관련하여 적어도 하나의 능력 포인터 특정 데이터 프로세싱 동작을 수행하고,
범위 정의 레지스터는 능력 레지스터이다.
이에 따라, 적어도 하나의 능력 포인터를 보유하는 적어도 하나의 능력 레지스터와 관련하여 데이터 프로세싱을 수행하도록 배열되는 데이터 프로세싱 장치에서, 본 기법들은 그 구성을 이용하여 범위 정의 레지스터에 보유된 범위 지정자가 능력 포인터로서 처리되는 것을 허용할 수 있다. 이는 이어서, 그러한 능력 포인터들(또는"팻 포인터(fat pointer)들")을 프로세싱하는 장치의 메커니즘들이 특히 그러한 능력 포인터들과 연관된 향상된 보안 프로비전들로, 메모리 범위 정의들에 적용될 수 있게 한다. 따라서, 개선된 메모리 영역 정의 보안이 지원된다.
그러한 데이터 프로세싱 장치의 능력 프로세싱 특징들의 다양한 태양들이 이러한 방식으로 이용될 수 있다. 일부 그러한 예시적인 실시예들에서, 데이터 프로세싱 명령어들은 능력 포인터 생성 명령어를 포함하고, 여기서, 디코드 회로부는 능력 포인터 생성 명령어에 응답하여, 능력 포인터 생성 명령어가 범위 정의 레지스터를 목적지 레지스터로 특정할 때, 프로세싱 회로부로 하여금 범위 지정자를 생성하게 한다.
속성 데이터는 수행되는 필터링 동작들을 수정하기 위해 다양한 방식들로 사용될 수 있지만, 일부 실시예들에서, 필터링 회로부는 메모리 보호 회로부이고, 특정된 메모리 액세스와 관련한 필터링 동작들은, 메모리 영역과 연관된 속성 데이터가 메모리 어드레스에 대한 액세스가 금지된다는 것을 표시할 때 특정된 메모리 액세스가 메모리 어드레스에 액세스하는 것을 방지하는 것을 포함한다.
일부 실시예들에서, 필터링 회로부는 모니터링 회로부이고, 특정된 트랜잭션과 관련한 필터링 동작들은, 메모리 영역과 연관된 속성 데이터가 메모리 어드레스에 대한 액세스가 모니터링 액션들의 대상이 되어야 한다는 것을 표시할 때 통지를 생성하는 것을 포함한다.
일부 실시예들에서, 모니터링 회로부는 디버그 회로부(debug circuitry)이고, 특정된 트랜잭션과 관련한 필터링 동작들은 디버그 동작들을 포함한다.
일부 실시예들에서, 모니터링 회로부는 트레이스 회로부(trace circuitry)이고, 특정된 트랜잭션과 관련한 필터링 동작들은 트레이싱 동작들을 포함한다.
일부 실시예들에서, 모니터링 회로부는 감시점 회로부(watchpoint circuitry)이고, 특정된 트랜잭션과 관련한 필터링 동작들은 감시점 동작들을 포함한다.
하나의 예시적인 구성에 따르면, 방법이 제공되며, 방법은,
범위 정의 레지스터에 범위 지정자를 저장하는 단계;
범위 정의 레지스터를 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하는 단계
- 범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의됨 -; 및
특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 데이터 식별자들의 범위와 연관된 속성 데이터에 의존하여 필터링 동작들을 수정하는 단계를 포함한다.
하나의 예시적인 구성에 따르면, 명령어 실행 환경을 제공하기 위해 호스트 데이터 프로세싱 장치를 제어하기 위한 컴퓨터 프로그램이 제공되며, 컴퓨터 프로그램은,
범위 지정자를 저장하도록 배열된 범위 정의 레지스터 로직; 및
범위 정의 레지스터 로직을 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하기 위한 필터링 로직을 포함하고,
범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의되고,
특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 필터링 로직에 의해 수행되는 필터링 동작들은 데이터 식별자들의 범위와 연관된 속성 데이터에 의존한다.
이제 도면들을 참조하여 특정 실시예들이 설명될 것이다.
도 1a는 일부 실시예들에 따른 데이터 프로세싱 장치(10)를 예시한다. 장치(10)는 범위 정의 레지스터(14)에 액세스하는 필터링 회로부(12)를 포함한다. 필터링 회로부(12)는, 예시된 장치가 일부를 형성하는 더 넓은 데이터 프로세싱 시스템에 의해 수행되는 데이터 프로세싱 동작들의 일부로서 트랜잭션을 수신한다. 필터링 회로부(12)는, 그것이 처리하는 트랜잭션들과 관련하여 그것이 수행하는 필터링 동작들을, 트랜잭션의 일부를 형성하는 데이터 식별자 및 범위 정의 레지스터의 콘텐츠에 의해 적어도 부분적으로 특정된 데이터 식별자들의 범위에 기초하여 수정하도록 배열된다. 범위 정의 레지스터(14)는, 예시적인 포맷들이 도 1b 및 도 1c에 도시되어 있는 범위 지정자를 저장하도록 배열된다. 특히, 범위 지정자는 2개의 부분들: 지수 및 유효숫자를 포함한다. 범위 지정자의 지수 및 유효숫자는 함께 부동 소수점 포맷으로 데이터 식별자들의 범위를 정의하며, 즉, 여기서 유효숫자에 의해 정의된 값은 지수(가정된 베이스 값에 적용됨)를 사용하여 스케일링된다. 도 1c는 일부 실시예들에서 범위 지정자의 콘텐츠를 개략적으로 예시하며, 여기서 그것은 지수 및 유효숫자뿐만 아니라 속성들의 세트를 포함하는 것으로 볼 수 있다. 장치(10)의 필터링 회로부(12)는 그것이 수행하는 필터링 동작들에서 속성 데이터를 이용하고, 여기서 식별된 데이터의 범위와 연관된 관련 속성 데이터는 범위 정의 레지스터(14)의 콘텐츠에 의해 적어도 부분적으로 정의된다. 이에 따라, 범위 지정자가 도 1b에 도시된 바와 같이 구성되는 예시적인 실시예에서, 속성 데이터는 다른 곳에서 정의되지만(또는 암시됨), 범위 지정자가 도 1c에 도시된 바와 같이 구성되어 있는 실시예들에서는, 속성 데이터의 적어도 일부가 범위 정의 레지스터(14) 내에 제공된다.
도 2a는 일부 예시적인 실시예들에서의 장치(20)를 개략적으로 예시한다. 장치(20)는 필터링 회로부(22), 범위 정의 레지스터(24) 및 베이스 정의 레지스터(26)를 포함한다. 필터링 회로부(22)는 범위 정의 레지스터(24) 및 베이스 정의 레지스터(26)에 액세스한다. 필터링 회로부(22)는, 그것이 처리하는 트랜잭션들과 관련하여 그의 필터링 동작들을 수행하는 데 있어서, 트랜잭션에 의해 특정된 데이터 식별자가 범위 정의 레지스터(24) 및 베이스 정의 레지스터(26)의 콘텐츠에 의해 정의된 데이터 식별자들의 범위 내에 속하는지 여부를 결정한다. 더 구체적으로, 베이스 정의 레지스터(26)는 베이스 지정자를 보유하는 반면, 범위 정의 레지스터(24)는 범위 지정자를 보유하고, 이 둘의 조합이 데이터 식별자들의 범위의 정의를 제공한다. 예를 들어, 베이스 지정자는 수치적으로 가장 작은 데이터 식별자를 정의할 수 있는 반면, 범위 지정자는 그 베이스 값에서 시작하는 데이터 식별자들의 세트를 정의한다. 도 2b는 일부 실시예들에서의 베이스 지정자를 개략적으로 예시하며, 여기서 베이스 지정자는 베이스 값 및 속성들의 세트를 포함한다. 속성들은 베이스 지정자의 필수적인 부분이 아니며, 도 1b의 범위 지정자의 방식에서와 같이, 속성들을 포함하지 않는 베이스 지정자가 또한 정의될 수 있다. 다른 한편으로, 베이스 지정자 및 범위 지정자 둘 모두가 적어도 일부 속성 데이터를 포함할 수 있고, 필터링 회로부(22)는 이들을 합쳐서 정의된 범위에 적용가능하게 될 속성 데이터의 전체 정의(full definition)를 형성할 수 있다.
데이터 식별자들은 다양한 형태들, 예를 들어 메모리 어드레스들 또는 데이터 값들을 취할 수 있다. 도 3a는 데이터 식별자들이 메모리 어드레스들인 일부 실시예들에 따른 데이터 프로세싱 장치를 개략적으로 예시한다. 장치(30)는 메모리 액세스들을 포함하는 트랜잭션들을 필터링하는 필터링 회로부(32)를 포함한다. 필터링 회로부(32)는 메모리 영역 범위 정의 레지스터(memory region range definition register, MRRDR)(34) 및 메모리 영역 베이스 정의 레지스터(memory region base definition register, MRBDR)(36)를 포함한다. 장치(30)는 메모리 액세스들이 메모리(40)로 가는 도중에 취하는 경로 상에 있다. 그렇게 포지셔닝되면, 장치(30)는 보호 디바이스의 역할을 하여, 메모리(40)에 대한 메모리 액세스들이 이러한 데이터 프로세싱 시스템 내의 정의된 규칙들에 따르는 것을 보장한다. 메모리 액세스 트랜잭션이 필터링 회로부(32)에 의해 수신될 때, 그것은 메모리 액세스의 대상인 메모리 어드레스가 MRRDR(34) 및 MRBDR(36)의 현재 콘텐츠에 의해 정의된 메모리 영역 내에 있는지 여부를 결정한다. 이것이 그 경우일 때, 필터링 회로부는 메모리 액세스가 그 정의된 메모리 영역과 연관된 속성 데이터에 의해 정의된 규칙들을 준수하는지 여부를 추가로 결정한다. 이러한 속성 데이터는 별도로 제공될 수 있지만, 이러한 예시적인 실시예에서 MRRDR(34) 및 MRBDR(36)의 콘텐츠의 일부로서 제공된다. 그럼에도 불구하고, 필터링 회로부(32)는 하나의 정의된 메모리 영역과 관련하여 필터 동작들을 수행하도록만 제약되지 않는다. 이러한 목적을 위해, MRRDR 레지스터(34) 및 MRBDR 레지스터(36)의 대체 콘텐츠가 추가의 메모리 영역 정의들(42)의 형태로 메모리(40)에 저장된다. 특히, 필터링 회로부(32)가 2개의 레지스터들의 현재 콘텐츠에 의해 정의된 메모리 영역 내에 속하지 않는 메모리 액세스 요청을 처리할 때, 그것은 메모리(40) 내의 메모리 영역 정의들(42)에 액세스하여 대응하는 메모리 영역 정의(그것이 거기에 있다고 가정함)를 검색할 수 있어서, 적절한 속성 데이터가 이러한 메모리 액세스와 관련하여 필터링 회로부(32)에 의해 수행되는 필터링 동작들을 정의할 수 있도록 할 수 있다. 메모리 영역 정의들(42)은 메모리(40)에 테이블로 나타낸 형태(tabular form)로 저장되고, 액세스가능한 메모리 공간의 임의의 가능한 세분(subdivision)을 포함하도록 자유롭게 정의될 수 있다. 예를 들어, 일 극단에서, (가능하게는 이용가능한 메모리 공간의 전체를 커버하는) 하나의 메모리 영역만이 정의될 수 있는 반면, 다른 극단에서, 각각이 작은 메모리 어드레스들의 세트를 포함하는 다수의 상이한 메모리 영역들이 정의될 수 있다. 메모리 영역들의 정의에서의 이러한 유연성의 결과로서, 필터링 회로부는 그것이 요구하는 메모리 영역 지정자들을 어디에서 발견할지를 사전에 알지 못한다. 결과적으로, 필터링 회로부는 요구된 메모리 영역 지정자들을 발견하기 위해 반복 룩업 절차(테이블 워크)를 수행하도록 배열된다. 메모리 영역 범위 지정자 및 메모리 영역 베이스 지정자는, 조합하여 취해질 때만 그들이 그들의 메모리 영역을 정의하기 때문에 서로 연관하여 저장된다. 도 3b는 일부 예시적인 실시예들에서 메모리 내의 테이블에 저장된 메모리 영역 베이스 지정자 및 범위 지정자 쌍들을 개략적으로 예시한다. 일부 예들에서, 메모리 영역 범위 지정자 및 메모리 영역 베이스 지정자 둘 모두가 각각의 단계에서 검색되지만, 이 예에서는 메모리 영역 베이스 지정자에 먼저 액세스한다. 이어서, 현재 메모리 액세스의 현재 메모리 어드레스가 그 메모리 영역 베이스 지정자와 호환되는지 여부가 결정될 수 있다. 예를 들어, 메모리 영역 베이스 지정자가 주어진 메모리 영역 정의에서 수치적으로 가장 낮은 메모리 어드레스를 제공할 때, 현재 메모리 어드레스가 베이스 지정자보다 더 작은지 또는 그보다 더 큰지의 결정은, 이러한 메모리 영역 정의가 심지어 추가로 고려할 후보인지 여부를 보여준다. 명확하게 하기 위해, 메모리 영역 베이스 지정자가 영역에서 수치적으로 가장 낮은 메모리 어드레스를 제공할 때, 현재 메모리 어드레스가 그 메모리 영역 베이스 지정자보다 더 작은 경우, 이는 요구된 메모리 영역 정의가 될 수 없다. 추가의 제약들이 또한 다른 후보 메모리 영역 정의들을 배제할 수 있는데, 예를 들어, 메모리 영역 정의들이 최대 크기를 갖도록 제약되는 경우, 현재 메모리 어드레스가 메모리 영역 베이스 지정자와 그 크기보다 더 많이 상이하다면, 이는 또한 요구된 메모리 영역 정의가 될 수 없다. 현재 메모리 어드레스에 잠재적으로 적용가능한 메모리 영역 베이스 지정자가 발견될 때, 메모리 영역 범위 지정자가 검사되어, 메모리 영역 범위 지정자 및 메모리 영역 베이스 지정자가 함께 현재 메모리 어드레스를 포괄하는 메모리 영역을 정의하는지를 결정할 수 있다. 메모리 영역 범위 지정자의 이러한 검사는, 메모리 영역 범위 지정자가 메모리 영역 베이스 지정자와 병렬로 검색된 경우 즉시 이루어질 수 있거나, 또는 유효한 후보 메모리 영역 베이스 지정자가 발견될 때만 메모리 영역 범위 지정자가 검색되는 경우 다음 반복 단계에서 일어날 수 있다. 메모리 영역 범위 지정자들 및 메모리 영역 베이스 지정자들의 검색은 서로에 대해 오프셋될 수 있고, 여기서 다음 후보 메모리 영역 베이스 지정자는 현재 후보 메모리 영역 범위 지정자와 병렬로 검색되어, 검색 레이턴시를 상각(amortize)한다. 마지막 반복에서, 현재 후보 메모리 영역 범위 지정자는 정확한 것으로 발견되고, 병렬로 검색된 다음 메모리 영역 베이스 지정자는 폐기된다. 따라서, 예를 들어, 범위가 현재 메모리 어드레스를 커버하기에 충분히 멀리 연장되지 않기 때문에, 요구된 메모리 영역 베이스 지정자/범위 지정자 쌍이 발견되지 않는 한, 반복 룩업 절차가 계속된다. 어드레스 공간은 예를 들어, 요구된 메모리 영역 정의에 전념하기 위해 절반으로의(in half) 반복 분할에 의해 검사될 수 있다.
도 4는 일부 실시예들에서의 장치(50)를 개략적으로 예시한다. 여기서, 더 완전한 데이터 프로세싱 시스템이 개략적으로 예시되어 있으며, 이는 페치/디코드 회로부(54)에 의해 실행하기 위한 명령어들의 시퀀스가 공급되는 프로세싱 회로부(52)를 포함한다는 것이 이해될 것이다. 명령어들은 메모리(명시적으로 예시되지 않음)로부터 검색된다. 또한, 그러한 명령어들에 따라 프로세싱 회로부(52)에 의해 수행되는 데이터 프로세싱 동작들은 메모리 액세스들을 포함한다(예를 들어, 수정된 데이터 값들이 특정된 메모리 위치들에 저장되도록 다시 기입되기 전에, 데이터 프로세싱 동작들의 대상이 될 로컬 레지스터들로 데이터 값들을 로딩(loading)함). 도 4에 도시된 바와 같이, 장치(50)는 2개의 유형들의 로컬 레지스터들, 즉 범용 레지스터들(56) 및 능력 레지스터들(58)을 포함한다. 장치(50)는 장치(50)에 의해 생성된 모든 메모리 액세스들에 대한 메모리 액세스 경로 상에 있는 메모리 보호 유닛(60)을 포함하는 것으로 추가로 도시된다. 메모리 보호 유닛(60)은 (예를 들어, 도 1a, 도 2a, 도 3을 참조하여) 본 명세서에 기술된 필터링 회로부 장치의 예들 중 임의의 예에 따라 구성될 수 있다. 이와 같이, 메모리 보호 유닛(60)은 그것을 통과해야 하는 메모리 액세스들과 관련하여 메모리 액세스 필터링 동작들을 수행한다. 이러한 메모리 액세스들은 각각의 메모리 액세스가 있는 메모리 영역에 대해 정의된 속성 데이터와 메모리 보호 유닛(60)에 의해 각각 비교된다. 도 4a의 예에서, 메모리 영역 범위 정의 레지스터는 능력 레지스터들(58) 중 하나로서 제공되는 능력 레지스터로서 제공된다. 프로세싱 회로부(52)는 능력 포인터들의 저장을 위해 능력 레지스터들(58)을 사용한다. 또한, 디코드 회로부(54)는 프로세싱 회로부(52)에 의해 실행될 명령어들의 시퀀스 중에서 다수의 능력 관련 명령어들을 인식하도록 배열된다. 이러한 능력 관련 명령어들은 프로세싱 회로부(52)가 능력 레지스터들(58)의 콘텐츠를 효율적으로 그리고 안전하게 처리할 수 있게 한다. 다양한 능력 특정 명령어들이 정의될 수 있으며, 예를 들어 하나의 그러한 명령어는 능력 레지스터들(58)에 저장하기에 적합한 포맷으로 능력 포인터들을 생성하도록 배열된다. 따라서, 장치(50)는 (능력 레지스터로서) 메모리 영역 범위 정의 레지스터에 적합한 포맷으로 메모리 범위 지정자를 생성하기 위해 이러한 명령어의 사용에 의해 프로그래밍될 수 있다.
도 4b는 도 4a의 예시적인 장치에서 사용될 수 있는 것과 같은, 일부 실시예들에서의 메모리 영역 범위 지정자의 구성을 개략적으로 예시한다. 그러한 실시예에서, 지정자는 능력 포인터로서 형성되고, 능력 레지스터들(58) 중 하나에 저장된다. 이러한 예시적인 32 비트 지정자는 하기 부분들을 포함하며:
Figure pct00001
허가 데이터([31:29])
Figure pct00002
메타데이터([28:22])
Figure pct00003
공유성(shareability)([21:20])
Figure pct00004
액세스 허가들([19:18])
Figure pct00005
실행 절대금지(execute never) 플래그([17])
Figure pct00006
해석 마커([16])
Figure pct00007
해석 마커([15])
Figure pct00008
범위 정의 데이터([14:9])
Figure pct00009
범위 정의 데이터([8:0])
여기서 지정자의 하위의 4개의 부분들은 함께, 정의된 범위의 유효숫자 및 지수의 정의들을 포함한다. 또한, 유효숫자 및 지수는, 도 4b의 예에서와 같이, 지정자에 2개의 개별적인 별개의 데이터 항목들로서 저장될 필요가 없지만, 오히려 유효숫자 및 지수를 정의하는 정보가 더 분산된, 혼합된 포맷으로 저장될 수 있음에 유의해야 한다. 이는 지정자의 제한된 비트 공간의 사용의 추가의 유연성을 제공하며, 여기서 2개의 해석 마커들은 범위 정의 데이터의 2개의 세트들이 어떻게 해석되어야 하는지를 통지한다. 또한, 이러한 32 비트 포맷에서, 메타데이터 비트들([28:22])은 이전에는 종래의 메모리 영역 지정자들(주어진 메모리 영역 정의에 대해 하부(베이스) 및 상부(한계) 메모리 어드레스를 명시적으로 정의하는 한 쌍의 지정자들)의 사용으로 이용가능하지 않았음에 유의해야 한다. 따라서, 정의된 메모리 영역과 연관된 추가의 속성 데이터의 인코딩을 위해 이러한 7 비트들이 본 기법들에 의해 이용가능할 수 있다.
도 5a는 일부 예시적인 실시예들에 따른 장치(100)를 개략적으로 예시한다. 도 4의 예의 경우에서와 같이, 장치는 페치/디코드 회로부(104)에 의해 실행하기 위한 명령어들의 시퀀스가 공급되는 프로세싱 회로부(102)를 포함한다. 명령어들은 메모리(명시적으로 예시되지 않음)로부터 검색된다. 또한, 그러한 명령어들에 따라 프로세싱 회로부(102)에 의해 수행되는 데이터 프로세싱 동작들은 메모리 액세스들을 포함한다(예를 들어, 수정된 데이터 값들이 특정된 메모리 위치들에 저장되도록 다시 기입되기 전에, 데이터 프로세싱 동작들의 대상이 될 로컬 레지스터들로 데이터 값들을 로딩함). 도 5a의 예에서, 장치(100)는 장치(100)에 의해 생성된 모든 메모리 액세스들에 대한 메모리 액세스 경로 상에 있는 메모리 보호 유닛(106)을 포함한다. 또한, 프로세싱 회로부(102)의 명령어 프로세싱 액션들에 의해 생성된 모든 메모리 액세스들을 모니터링하는 디버그 회로부(108)가 도시되어 있다. 디버그 회로부(108)는 (예를 들어, 도 1a, 도 2a, 도 3을 참조하여) 본 명세서에 기술된 필터링 회로부 장치의 예들 중 임의의 예에 따라 구성될 수 있다. 이와 같이, 디버그 회로부(108)는 그것을 통과해야 하는 메모리 액세스들과 관련하여 메모리 액세스 필터링 동작들을 수행한다. 디버그 회로부(108)의 동작들은 메모리 영역 범위 정의 레지스터(MRRDR)(110) 및 메모리 영역 베이스 정의 레지스터(MRBDR)(112)의 콘텐츠에 의해 구성된다. 따라서, 디버그 회로부(108)가 모니터링하는 각각의 메모리 액세스 트랜잭션에 대해, 그것은 메모리 액세스의 대상인 메모리 어드레스가 MRRDR(110) 및 MRBDR(112)의 콘텐츠에 의해 정의된 메모리 영역 내에 있는지 여부를 결정한다. 디버그 회로부(108)는 그것이 관찰하는 메모리 액세스들에 의존하여, 그리고 특히 MRRDR(110) 및 MRBDR(112)의 콘텐츠에 의해 정의된 메모리 영역 내의 메모리 어드레스들과 관련되는 그러한 메모리 어드레스들에 대해 디버그 출력을 생성하도록 배열된다. 메모리 영역과 연관된 속성 데이터는 디버그 회로부(108)에 의해 생성된 디버그 출력을 추가로 구성한다. 예를 들어, 더 상세한 디버그 출력은 소정의 메모리 어드레스들의 세트들과 관련하여 그리고/또는 소정의 프로세스들이 메모리 액세스의 소스일 때 생성될 수 있다. 디버그 출력은 다양한 방식들로 추가로 처리될 수 있는데, 예를 들어, 로컬 버퍼에 기입되거나, 후속 분석을 위해 별도의 저장소에 기입될 수 있다.
도 5b는 일부 예시적인 실시예들에 따른 장치(120)를 개략적으로 예시한다. 장치는 페치/디코드 회로부(124)에 의해 실행하기 위한 명령어들의 시퀀스가 공급되는 프로세싱 회로부(122)를 포함한다. 명령어들은 메모리(명시적으로 예시되지 않음)로부터 검색된다. 이러한 예에서, 모니터링 회로부(126)는 프로세싱 회로부(122)와 연관되고, 프로세싱 회로부(122)의 데이터 프로세싱 동작들의 일부를 형성하는 소정의 트랜잭션들을 모니터링하도록 구성된다. 대체적으로, 이들은 (도 5a의 예에서와 같이) 메모리 액세스 트랜잭션들일 수 있지만, 그들은 또한 데이터 프로세싱 동작들의 일부로서 관찰가능한 임의의 다른 트랜잭션일 수 있다. 모니터링 회로부(126)는 (예를 들어, 도 1a, 도 2a, 도 3을 참조하여) 본 명세서에 기술된 필터링 회로부 장치의 예들 중 임의의 예에 따라 구성될 수 있다. 도 5b에 도시된 예에서, 범위 정의 레지스터(128)만이 제공되고, 모니터링 회로부(126)는 미리정의된 베이스 값을 사용한다. 이러한 예에서, 모니터링 회로부(126)는 범위 정의 레지스터(128)의 콘텐츠에 의해 정의된 범위 내에 속하는 데이터 값들을 참조하는 그러한 트랜잭션들에 대해, 프로세싱 회로부(122)에서 그것이 관찰하는 트랜잭션들을 필터링한다. 이러한 트랜잭션들에 대해, 모니터링 출력이 생성되며, 이때 그 출력의 콘텐츠는 정의된 범위와 연관된 속성 데이터에 의존한다. 따라서, 도 5b의 모니터링 회로부(126)는 프로세싱 회로부(122)에 의해 수행되는 데이터 프로세싱을 모니터링하는, 트레이스 회로부로서 구현될 수 있으며, 이때 모니터링 출력은 트레이스 스트림의 형태를 취하는데, 이는 추후 검색을 위해 장치 내의 트레이스 버퍼에 저장되거나 분석을 위해 장치로부터 직접 내보내질 수 있다. 도 5b에 의해 표현된 다른 예들에서, 예를 들어, 범위 정의 레지스터(128)에 의해 정의된 범위 내의 메모리 어드레스에 액세스할 때 명령어 실행을 중단하기 위해, 모니터링 회로부는 감시점 회로부의 형태를 취할 수 있고, 특정된 트랜잭션과 관련한 필터링 동작들은 감시점 동작들을 포함한다.
도 6은 관찰된 트랜잭션을 처리할 때 예시적인 실시예들의 방법에서 취해지는 단계들의 시퀀스를 도시한다. 단계(150)에서의 트랜잭션의 관찰이 단계들의 흐름을 개시한다. 단계(152)에서, 범위 정의가 범위 지정자의 유효숫자 및 지수로부터 구성된다. 범위 정의가 (적어도 일시적으로) 변화하지 않은 예들에서, 단계(152)의 범위 구성은 범위 지정자를 참조하여 한 번만 수행되면 되고, 이어서 정의된 범위는 국부적으로 보유될 수 있음에 유의해야 한다. 단계(154)에서, 관찰된 트랜잭션이 범위 지정자에 의해 정의된 범위 내에 있는 데이터 식별자를 특정하는지가 결정된다. 그렇지 않은 경우, 흐름은 단계(158)에서 종료한다. 범위 지정자에 의해 정의된 범위 내의 데이터 식별자를 특정하는 관찰된 트랜잭션들의 경우, 단계(156)에서, 그 트랜잭션과 관련한 필터링 동작들이 범위와 연관된 속성 데이터에 의존하여 수행된다. 이어서, 흐름은 단계(158)에서 종료한다.
도 7은 메모리 액세스 트랜잭션들이 관찰되는 예시적인 실시예들의 방법에서 취해지는 단계들의 시퀀스를 도시한다. 예를 들어, 도 4a의 예에서의 메모리 보호 유닛(60)이 일부 구현예들에서 그러한 단계들의 시퀀스를 수행할 수 있다. 단계(200)에서의 메모리 트랜잭션의 수신이 단계들의 흐름을 개시한다. 단계(202)에서, 메모리 영역 범위 정의가 메모리 영역 범위 지정자의 유효숫자 및 지수로부터 구성된다. 도 6의 경우에서와 같이, 메모리 영역 범위 정의는 메모리 영역 범위 지정자를 참조하여 한 번만 구성되면 되고, 이어서 정의된 범위는 추가 사용을 위해 국부적으로 보유될 수 있다. 단계(204)에서, 관찰된 메모리 액세스가 정의된 메모리 영역 내에 있는 메모리 어드레스를 특정하는지가 결정된다. 그렇지 않은 경우, 흐름은 단계(206)로 진행하고, 여기서 메모리 영역 룩업 절차가 수행되어, 처리되는 메모리 액세스에 필요한 메모리 영역 범위 지정자를 검색한다. 이어서, 흐름은 대체 메모리 영역 범위 정의가 새로운 메모리 영역 범위 지정자의 유효숫자 및 지수로부터 구성되도록 하기 위해 단계(202)로 복귀한다. 단계(204)에서, 관찰된 메모리 액세스가 정의된 메모리 영역 내에 있는 메모리 어드레스를 특정한다는 것이 결정될 때, 흐름은 단계(208)로 진행하며, 여기서 메모리 액세스는 정의된 메모리 영역과 연관된 속성 데이터에 의존하여 필터링된다. 예를 들어, 허용되지 않는 경우, 메모리 액세스를 완전히 차단하거나, 또는 단순히 검색하는 데이터가 캐싱될 수 있는지 여부와 같은 메모리 액세스의 소정의 관련 태양들을 수정하는 다양한 필터링 동작들이 가능하다.
도 8은 예시적인 실시형태들의 시뮬레이터 구현예를 개략적으로 예시한다. 전술된 실시예들은 관심 기법들을 지원하는 특정 프로세싱 하드웨어를 동작시키기 위한 장치 및 방법들과 관련하여 본 발명을 구현하지만, 컴퓨터 프로그램의 사용을 통해 구현되는 본 명세서에 기술된 실시예들에 따라 명령어 실행 환경을 제공하는 것이 또한 가능하다. 그러한 컴퓨터 프로그램들은, 그들이 하드웨어 아키텍처의 소프트웨어 기반 구현예를 제공하는 한, 종종 시뮬레이터들로 지칭된다. 다양한 시뮬레이터 컴퓨터 프로그램들은 에뮬레이터들, 가상 머신들, 모델들, 및 동적 이진 변환기(dynamic binary translator)들을 포함한 이진 변환기들을 포함한다. 전형적으로, 시뮬레이터 구현예는 호스트 프로세서(310) 상에서 실행되어, 호스트 운영 체제(308)를 선택적으로 실행하여, 시뮬레이터 프로그램(302)을 지원할 수 있다. 일부 배열들에서, 하드웨어와 제공된 명령어 실행 환경 사이에 다수의 시뮬레이션 계층들이 있을 수 있고/있거나, 동일한 호스트 프로세서 상에 제공된 다수의 별개의 명령어 실행 환경들이 있을 수 있다. 이력상, 강력한 프로세서들이 합리적인 속도로 실행되는 시뮬레이터 구현예들을 제공하는 데 요구되었지만, 그러한 접근법은 호환성 또는 재사용 이유들을 위해 다른 프로세서에 고유한 코드를 실행하려는 요구가 있을 때와 같은 소정 상황들에서 정당화될 수 있다. 예를 들어, 시뮬레이터 구현예는 호스트 프로세서 하드웨어에 의해 지원되지 않는 추가적인 기능을 명령어 실행 환경에 제공할 수 있거나, 또는 상이한 하드웨어 아키텍처와 전형적으로 연관된 명령어 실행 환경을 제공할 수 있다. 시뮬레이션의 개요가 문헌["Some Efficient Architecture Simulation Techniques", Robert Bedichek, Winter 1990 USENIX Conference, Pages 53 - 63]에서 주어진다.
실시예들이 특정 하드웨어 구성물들 또는 특징부들을 참조하여 전술되었음을 고려한 결과로, 시뮬레이션된 실시예에서, 등가의 기능이 적합한 소프트웨어 구성물들 또는 특징부들에 의해 제공될 수 있다. 예를 들어, 특정 회로부는 시뮬레이션된 실시예에서 컴퓨터 프로그램 로직으로서 구현될 수 있다. 유사하게, 레지스터 또는 캐시와 같은 메모리 하드웨어가 시뮬레이션된 실시예에서 소프트웨어 데이터 구조로서 구현될 수 있다. 전술된 실시예들에서 언급된 하드웨어 요소들 중 하나 이상의 하드웨어 요소들이 호스트 하드웨어(예를 들어, 호스트 프로세서(310)) 상에 존재하는 배열들에서, 일부 시뮬레이션된 실시예들은, 적합한 경우, 호스트 하드웨어를 사용할 수 있다.
시뮬레이터 프로그램(302)은 컴퓨터 판독가능 저장 매체(이는 비일시적 매체일 수 있음) 상에 저장될 수 있고, 타깃 코드(300)(이는 애플리케이션들, 운영 체제들, 및 하이퍼바이저를 포함할 수 있음)에 프로그램 인터페이스(명령어 실행 환경)를 제공하는데, 이는 시뮬레이터 프로그램(302)에 의해 모델링되는 하드웨어 아키텍처의 인터페이스와 동일하다. 따라서, 타깃 코드(300)의 프로그램 명령어들이 시뮬레이터 프로그램(302)을 사용하여 명령어 실행 환경 내로부터 실행될 수 있어서, 전술된 장치들의 하드웨어 특징부들(예를 들어, 도 1a, 도 2a, 도 3a, 도 4a, 도 5a, 도 5b에 도시된 것들)을 실제로 갖지 않는 호스트 컴퓨터(310)가 시뮬레이터 프로그램(302)의 일부를 형성하는 필터링 로직(304) 및 범위 정의 레지스터 로직(306)의 제공에 의해 이러한 특징부들을 에뮬레이션할 수 있도록 할 수 있다.
간략한 전체 요약에서, 데이터 프로세싱 장치들, 방법들 및 컴퓨터 프로그램들이 개시된다. 범위 정의 레지스터는 범위 지정자를 저장하도록 배열되고, 필터링 동작들은 범위 정의 레지스터를 참조하여 특정된 트랜잭션과 관련하여 수행된다. 범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 범위 지정자를 저장하고, 여기서 데이터 식별자들의 범위는 범위 지정자에 의해 적어도 부분적으로 정의된다. 특정된 트랜잭션이 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 수행되는 필터링 동작들은 데이터 식별자들의 범위와 연관된 속성 데이터에 의존한다.
본 출원에서, "...하도록 구성된"이라는 말은 장치의 요소가 정의된 동작을 수행할 수 있는 구성을 갖는다는 것을 의미하는 데 사용된다. 이러한 문맥에서, "구성"은 하드웨어 또는 소프트웨어의 상호접속의 배열 또는 방식을 의미한다. 예를 들어, 장치는 정의된 동작을 제공하는 전용 하드웨어를 가질 수 있거나, 프로세서 또는 다른 프로세싱 디바이스가 기능을 수행하도록 프로그래밍될 수 있다. "하도록 구성된"은, 장치 요소가, 정의된 동작을 제공하기 위해 어떤 방식으로든 변경될 필요가 있음을 암시하지는 않는다.
본 발명의 예시적인 실시예들이 첨부 도면들을 참조하여 본 명세서에 상세히 기술되었지만, 본 발명은 그러한 정확한 실시예들로 제한되지 않으며, 첨부된 청구항들에 의해 한정된 바와 같은 본 발명의 범위로부터 벗어남이 없이 실시예들에서 다양한 변경들, 추가들 및 수정들이 당업자에 의해 이루어질 수 있다는 것이 이해되어야 한다. 예를 들어, 본 발명의 범주로부터 벗어남이 없이 독립 청구항의 특징과 종속 청구항의 특징의 다양한 조합이 이루어질 수 있다.

Claims (19)

  1. 데이터 프로세싱 장치로서,
    범위 지정자(range specifier)를 저장하도록 배열된 범위 정의 레지스터; 및
    상기 범위 정의 레지스터를 참조하여 특정된 트랜잭션(transaction)과 관련하여 필터링 동작들을 수행하기 위한 필터링 회로부를 포함하고,
    상기 범위 정의 레지스터는 유효숫자(significand) 및 지수(exponent)를 포함하는 포맷으로 상기 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 상기 범위 지정자에 의해 적어도 부분적으로 정의되고,
    상기 특정된 트랜잭션이 상기 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 상기 필터링 회로부에 의해 수행되는 상기 필터링 동작들은 상기 데이터 식별자들의 범위와 연관된 속성 데이터에 의존하는, 데이터 프로세싱 장치.
  2. 제1항에 있어서, 상기 범위 지정자는 상기 속성 데이터의 적어도 일부를 추가로 포함하는, 데이터 프로세싱 장치.
  3. 제1항 또는 제2항에 있어서, 베이스 지정자(base specifier)를 저장하도록 배열된 베이스 정의 레지스터를 추가로 포함하고, 상기 데이터 식별자들의 범위는 상기 베이스 지정자에 의해 표시된 제1 데이터 식별자와 상기 제1 데이터 식별자 및 상기 범위 지정자에 의해 표시된 데이터 식별자 범위에 의존하는 제2 데이터 식별자 사이의 범위에 이르는 데이터 식별자들의 세트를 포함하는, 데이터 프로세싱 장치.
  4. 제3항에 있어서, 상기 베이스 지정자는 상기 속성 데이터의 적어도 일부를 추가로 포함하는, 데이터 프로세싱 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 범위 정의 레지스터는 메모리 영역 범위 정의 레지스터이고, 상기 범위 지정자는 메모리 영역 범위 지정자이고,
    상기 데이터 식별자들의 범위는 상기 메모리 영역 범위 지정자에 의해 적어도 부분적으로 정의된 메모리 영역인, 데이터 프로세싱 장치.
  6. 제5항에 있어서, 메모리 영역 베이스 지정자를 저장하도록 배열된 메모리 영역 베이스 정의 레지스터를 추가로 포함하고, 상기 메모리 영역은 상기 메모리 영역 베이스 지정자에 의해 표시된 제1 어드레스와 상기 제1 어드레스 및 상기 메모리 영역 범위 지정자에 의해 표시된 메모리 범위에 의존하는 제2 어드레스 사이의 범위에 이르는 메모리 어드레스들의 세트를 포함하는, 데이터 프로세싱 장치.
  7. 제6항에 있어서, 상기 필터링 회로부는 특정된 메모리 액세스에 응답하여, 상기 메모리 영역이 상기 특정된 메모리 액세스에 대응하지 않을 때, 상기 특정된 메모리 액세스에 대응하는 상기 메모리 영역 범위 정의 레지스터 및 상기 메모리 영역 베이스 정의 레지스터에 대한 대체 콘텐츠를 검색하려고 하는 메모리 영역 지정자 룩업 절차를 수행하는, 데이터 프로세싱 장치.
  8. 제7항에 있어서, 상기 메모리 영역 지정자 룩업 절차를 수행하는 것은 메모리에 저장된 메모리 영역 지정자들의 테이블과 관련하여 테이블 워크(table walk)를 수행하는 것을 포함하고,
    상기 테이블 워크는 후보 메모리 영역 베이스 지정자들의 시퀀스의 검사를 포함하는 수렴 반복 프로세스이고, 상기 수렴 반복 프로세스의 각각의 반복에서, 후보 메모리 영역 베이스 지정자와 상기 특정된 메모리 액세스의 메모리 어드레스 사이에 비교가 이루어지고, 상기 수렴 반복 프로세스의 후속 반복에 대해, 상기 후보 메모리 영역 베이스 지정자는 상기 수렴 반복 프로세스의 선행 반복에서의 상기 비교의 결과에 의존하는, 데이터 프로세싱 장치.
  9. 제8항에 있어서, 상기 테이블 워크는 상기 수렴 반복 프로세스 후에 수행되는 검증 단계를 추가로 포함하여, 상기 수렴 반복 프로세스의 최종 반복의 상기 후보 메모리 영역 베이스 지정자 및 후보 메모리 영역 범위 지정자에 의해 표시된 후보 메모리 범위가 상기 특정된 메모리 액세스의 메모리 어드레스를 포함하는 후보 메모리 영역을 정의하는지 여부를 결정하는, 데이터 프로세싱 장치.
  10. 제7항에 있어서, 상기 메모리 영역 지정자 룩업 절차를 수행하는 것은 메모리에 저장된 메모리 영역 지정자들의 테이블과 관련하여 테이블 워크를 수행하는 것을 포함하고,
    상기 테이블 워크는 후보 메모리 영역 베이스 지정자들의 시퀀스의 검사를 포함하는 수렴 반복 프로세스이고, 상기 수렴 반복 프로세스의 각각의 반복의 제1 단계에서, 후보 제1 어드레스가 각각의 후보 메모리 영역 베이스 지정자로부터 결정되고, 상기 후보 제1 어드레스가 상기 특정된 메모리 액세스와 호환되는 후보 메모리 영역의 경계를 표현할 때, 각각의 반복의 제2 단계가 수행되어, 상기 후보 제1 어드레스 및 후보 메모리 영역 범위 지정자에 의해 표시된 후보 메모리 범위가 상기 특정된 메모리 액세스의 메모리 어드레스를 포함하는 후보 메모리 영역을 정의하는지 여부를 결정하는, 데이터 프로세싱 장치.
  11. 제8항 또는 제9항에 있어서, 상기 수렴 반복 프로세스의 각각의 반복의 제1 단계는 메모리 내의 상기 테이블로부터 상기 후보 메모리 영역 베이스 지정자 및 상기 후보 메모리 영역 범위 지정자를 페칭하는 것을 포함하고,
    각각의 반복의 제2 단계가 수행될 때, 각각의 반복의 상기 제2 단계는, 메모리 내의 상기 테이블로부터 다음 후보 메모리 영역 베이스 지정자 및 다음 후보 메모리 영역 범위 지정자를 페칭하는 것을 포함하는 상기 수렴 반복 프로세스의 다음 반복의 다음 제1 단계와 동시에 수행되는, 데이터 프로세싱 장치.
  12. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 범위 정의 레지스터는 데이터 값 범위 정의 레지스터이고, 상기 범위 지정자는 데이터 값 범위 지정자이고,
    상기 데이터 식별자들의 범위는 상기 데이터 값 범위 지정자에 의해 적어도 부분적으로 정의된 데이터 값들의 범위인, 데이터 프로세싱 장치.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    데이터 프로세싱 동작들을 수행하기 위한 프로세싱 회로부;
    적어도 하나의 능력 포인터(capability pointer)를 저장하도록 배열된 적어도 하나의 능력 레지스터; 및
    명령어들의 시퀀스에 응답하여, 상기 프로세싱 회로부에 대한 제어 신호들을 생성하여 상기 프로세싱 회로부로 하여금 상기 명령어들의 시퀀스에 따라 상기 데이터 프로세싱 동작들을 수행하게 하기 위한 디코드 회로부를 추가로 포함하고,
    데이터 프로세싱 명령어들은 적어도 하나의 능력 포인터 프로세싱 명령어를 포함하고, 상기 적어도 하나의 능력 포인터 프로세싱 명령어가 상기 적어도 하나의 능력 레지스터를 특정하는 것에 응답하여, 상기 프로세싱 회로부는 상기 적어도 하나의 능력 레지스터와 관련하여 적어도 하나의 능력 포인터 특정 데이터 프로세싱 동작을 수행하고,
    상기 범위 정의 레지스터는 능력 레지스터인, 데이터 프로세싱 장치.
  14. 제13항에 있어서, 상기 데이터 프로세싱 명령어들은 능력 포인터 생성 명령어를 포함하고, 상기 디코드 회로부는 상기 능력 포인터 생성 명령어에 응답하여, 상기 능력 포인터 생성 명령어가 상기 범위 정의 레지스터를 목적지 레지스터로 특정할 때, 상기 프로세싱 회로부로 하여금 상기 범위 지정자를 생성하게 하는, 데이터 프로세싱 장치.
  15. 제5항 내지 제11항 중 어느 한 항에 있어서, 상기 필터링 회로부는 메모리 보호 회로부이고, 상기 특정된 메모리 액세스와 관련한 상기 필터링 동작들은, 상기 메모리 영역과 연관된 상기 속성 데이터가 상기 메모리 어드레스에 대한 액세스가 금지된다는 것을 표시할 때 상기 특정된 메모리 액세스가 상기 메모리 어드레스에 액세스하는 것을 방지하는 것을 포함하는, 데이터 프로세싱 장치.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서, 상기 필터링 회로부는 모니터링 회로부이고, 상기 특정된 트랜잭션과 관련한 상기 필터링 동작들은, 상기 메모리 영역과 연관된 상기 속성 데이터가 상기 메모리 어드레스에 대한 액세스가 모니터링 액션들의 대상이 되어야 한다는 것을 표시할 때 통지를 생성하는 것을 포함하는, 데이터 프로세싱 장치.
  17. 제16항에 있어서, 상기 모니터링 회로부는,
    디버그 회로부(debug circuitry) - 상기 특정된 트랜잭션과 관련한 상기 필터링 동작들은 디버그 동작들을 포함함 -;
    트레이스 회로부(trace circuitry) - 상기 특정된 트랜잭션과 관련한 상기 필터링 동작들은 트레이싱 동작들을 포함함 -; 및
    감시점 회로부(watchpoint circuitry) - 상기 특정된 트랜잭션과 관련한 상기 필터링 동작들은 감시점 동작들을 포함함 - 중 하나인, 데이터 프로세싱 장치.
  18. 방법으로서,
    범위 정의 레지스터에 범위 지정자를 저장하는 단계;
    상기 범위 정의 레지스터를 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하는 단계
    - 상기 범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 상기 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 상기 범위 지정자에 의해 적어도 부분적으로 정의됨 -; 및
    상기 특정된 트랜잭션이 상기 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 상기 데이터 식별자들의 범위와 연관된 속성 데이터에 의존하여 상기 필터링 동작들을 수정하는 단계를 포함하는, 방법.
  19. 명령어 실행 환경을 제공하기 위해 호스트 데이터 프로세싱 장치를 제어하기 위한 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은,
    범위 지정자를 저장하도록 배열된 범위 정의 레지스터 로직; 및
    상기 범위 정의 레지스터 로직을 참조하여 특정된 트랜잭션과 관련하여 필터링 동작들을 수행하기 위한 필터링 로직을 포함하고,
    범위 정의 레지스터는 유효숫자 및 지수를 포함하는 포맷으로 상기 범위 지정자를 저장하도록 배열되고, 데이터 식별자들의 범위는 상기 범위 지정자에 의해 적어도 부분적으로 정의되고,
    상기 특정된 트랜잭션이 상기 데이터 식별자들의 범위 내의 데이터 식별자와 관련될 때, 상기 필터링 로직에 의해 수행되는 상기 필터링 동작들은 상기 데이터 식별자들의 범위와 연관된 속성 데이터에 의존하는, 방법.
KR1020237018895A 2020-11-16 2021-09-16 범위 지정자에 기초한 필터링 KR20230101878A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/098,815 US11720619B2 (en) 2020-11-16 2020-11-16 Filtering based on a range specifier
US17/098,815 2020-11-16
PCT/GB2021/052397 WO2022101600A1 (en) 2020-11-16 2021-09-16 Filtering based on a range specifier

Publications (1)

Publication Number Publication Date
KR20230101878A true KR20230101878A (ko) 2023-07-06

Family

ID=78078284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237018895A KR20230101878A (ko) 2020-11-16 2021-09-16 범위 지정자에 기초한 필터링

Country Status (6)

Country Link
US (1) US11720619B2 (ko)
EP (1) EP4244712A1 (ko)
JP (1) JP2023549315A (ko)
KR (1) KR20230101878A (ko)
CN (1) CN116670640A (ko)
WO (1) WO2022101600A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4961162A (en) * 1989-01-13 1990-10-02 International Business Machines Corporation Multiprocessing system for performing floating point arithmetic operations
EP0578950A3 (en) * 1992-07-15 1995-11-22 Ibm Method and apparatus for converting floating-point pixel values to byte pixel values by table lookup
GB0125628D0 (en) * 2001-10-25 2001-12-19 Ibm Computer system with watchpoint support
US8280941B2 (en) * 2007-12-19 2012-10-02 HGST Netherlands B.V. Method and system for performing calculations using fixed point microprocessor hardware
US10416963B2 (en) * 2017-06-19 2019-09-17 Arm Limited Bounds checking
US11227641B1 (en) * 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory

Also Published As

Publication number Publication date
US11720619B2 (en) 2023-08-08
US20220156301A1 (en) 2022-05-19
EP4244712A1 (en) 2023-09-20
CN116670640A (zh) 2023-08-29
WO2022101600A1 (en) 2022-05-19
JP2023549315A (ja) 2023-11-24

Similar Documents

Publication Publication Date Title
US20200133889A1 (en) Apparatus and method for handling page protection faults in a computing system
JP6202543B2 (ja) 動的アドレス変換テーブルを管理する方法、システムおよびコンピュータ・プログラム
JP6284130B2 (ja) ローカル・クリア制御
KR20180136976A (ko) 자격 메타데이터에 대해 연산을 행하는 장치 및 방법
JP7359837B2 (ja) メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット
CN109313693B (zh) 针对偶发存储器访问程序指令的许可控制
JP7088897B2 (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
US20210248084A1 (en) Testing address translation cache
JP7397057B2 (ja) メモリ・システム内に記憶されている制御テーブルのための二分探索手順
CN110442536B (zh) 基于对象的存储器访问中的静态标识
JP2011523741A (ja) ホストデータ処理装置内におけるデバイスエミュレーションのサポート
US11397541B2 (en) Controlling guard tag checking in memory accesses
KR20230101878A (ko) 범위 지정자에 기초한 필터링
US11216280B2 (en) Exception interception
JP5822848B2 (ja) 例外の制御方法、システムおよびプログラム
US11755243B2 (en) Apparatus and method for triggering action
TW202403562A (zh) 用於記憶體位址空間之頁面的「讀值只有x」性質
WO2023194702A1 (en) Technique for handling ordering constrained access operations
CN117222990A (zh) 用于使用能力约束对存储器的访问的技术