KR20180037961A - 벡터 길이 질의 명령 - Google Patents

벡터 길이 질의 명령 Download PDF

Info

Publication number
KR20180037961A
KR20180037961A KR1020187003457A KR20187003457A KR20180037961A KR 20180037961 A KR20180037961 A KR 20180037961A KR 1020187003457 A KR1020187003457 A KR 1020187003457A KR 20187003457 A KR20187003457 A KR 20187003457A KR 20180037961 A KR20180037961 A KR 20180037961A
Authority
KR
South Korea
Prior art keywords
vector
value
instruction
scaling
scaled
Prior art date
Application number
KR1020187003457A
Other languages
English (en)
Other versions
KR102586258B1 (ko
Inventor
니겔 존 스테펜스
그리고리오스 맥클리스
알레한드로 마르티네즈-비센테
나다나엘 프레밀리우
Original Assignee
에이알엠 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에이알엠 리미티드 filed Critical 에이알엠 리미티드
Publication of KR20180037961A publication Critical patent/KR20180037961A/ko
Application granted granted Critical
Publication of KR102586258B1 publication Critical patent/KR102586258B1/ko

Links

Images

Classifications

    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

벡터 처리 연산을 지원하는 데이터 처리 시스템(2)은 스케일링 벡터 길이 질의 명령을 이용한다. 스케일링 벡터 길이 질의 명령은, 이 명령에 의해 지정된 가변 벡터 성분 크기에 대한 벡터 내부의 성분들의 수에 이 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환한다. 스케일 벡터 길이 질의 명령은 카운트 명령, 증분 명령 또는 감분 명령의 형태를 갖는다. 명령은 이 명령에 대해 지정된 레지스터 성분 크기에 대해 제공된 벡터 성분들의 수를 나타내는 부분적인 결과값에 모듈로(M) 또는 2의 거듭제곱 등의 제약을 적용하는 패턴 제약을 포함한다.

Description

벡터 길이 질의 명령
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 특히, 본 발명은 벡터 처리를 지원하는 데이터 처리 시스템에 관한 것이다.
복수의 벡터 성분들을 포함하는 벡터 피연산자들의 처리를 지원하는 데이터 처리 시스템을 제공하는 것이 아려져 있다. 종래에는, 벡터 레지스터 내부의 비트 수가 해당 프로세서 아키텍처에 의해 정의된다. 벡터 레지스터 내부의 비트 수는 서로 다른 크기를 갖는 벡터 성분들에 의해 나뉘어 서로 다른 수의 벡터 성분들이 특정한 벡터 레지스터에 의해 제공된다.
본 발명의 적어도 일부 실시예에 따르면, 데이터 처리장치로서, 벡터 처리 연산을 행하는 처리회로와, 프로그램 명령을 디코드하여 상기 처리회로가 상기 벡터 처리 연산을 행하도록 제어하는 제어신호를 발생하는 디코더 회로를 구비하고, 상기 디코드 회로는, 스케일링된(scaled) 벡터 길이 질의 명령에 응답하여, 상기 처리회로를 제어함으로써, 상기 벡터 처리 연산을 행할 때 상기 데이터 처리장치에 의해 사용된 벡터 길이에 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환하는 데이터 처리장치가 제공된다.
본 발명의 적어도 일부 실시예에 따르면, 데이터 처리장치로서, 벡터 처리 연산을 행하는 처리수단과, 프로그램 명령을 디코드하여 상기 처리회로가 상기 벡터 처리 연산을 행하도록 제어하는 제어신호를 발생하는 디코더 수단을 구비하고, 상기 디코드 수단은, 스케일링된 벡터 길이 질의 명령에 응답하여, 상기 처리수단을 제어함으로써, 상기 벡터 처리 연산을 행할 때 상기 데이터 처리장치에 의해 사용된 벡터 길이에 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환하는 데이터 처리장치가 제공된다.
본 발명의 적어도 일부 실시예에 따르면, 스케일링된 벡터 길이 질의 명령을 디코드하여, 처리회로를 제어함으로써, 벡터 처리 연산을 행할 때 사용된 벡터 길이에 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환하는 단계를 포함하는 데이터 처리방법이 제공된다.
이하, 다음의 첨부도면을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1은 벡터 처리를 지원하는 데이터 처리 시스템을 개략적으로 나타낸 것이다.
도 2는 복수의 다른 형태의 스케일링 벡터 길이 질의 명령을 개략적으로 나타낸 것이다.
도 3은 도 2의 다양한 종류의 스케일링 벡터 길이 질의 명령의 거동의 예를 개략적으로 나타낸 것이다.
도 4는 스케일링 벡터 길이 질의 명령에 응답하여 결과값을 생성하는 룩업표(look-up table) 구현예를 개략적으로 나타낸 것이다.
도 5는 스케일링 벡터 길이 질의 명령의 거동을 개략적으로 나타낸 흐름도이다.
도 6은 가상머신 구현예를 개략적으로 나타낸 것이다.
도 1은 데이터 값들(8)과 프로그램 명령들(10)을 기억하는 메모리(6)에 접속된 프로세서(4)를 구비한 데이터 처리 시스템(2)을 개략적으로 나타낸 것이다. 프로세서(4)는, 메모리(6)에서 프로그램 명령(10)을 페치하고 페치된 프로그램 명령을 디코더 회로(14)에 공급하는 명령 페치부(12)를 구비한다. 디코더 회로(14)는, 페치된 프로그램 명령을 디코드하고, 디코드된 벡터 명령에 의해 지정된 벡터 레지스터 회로(20) 내부에 기억된 벡터 레지스터들에 대해 벡터 처리 연산을 행하도록 벡터 처리회로(18)를 제어하는 제어신호(16)를 발생한다. 이때, 실제로는, 프로세서(4)는 일반적으로 더 많은 수의 회로 성분들을 포함하고, 이들 회로 성분을 도면에서 생략하였다는 것을 알 수 있다.
도 1에는 본 실시예에서는 256의 벡터 비트 크기를 갖는 예시적인 벡터 레지스터 Zi가 더 도시되어 있다. 벡터 레지스터 Zi는 16개의 벡터 성분 a0-a15으로 구성된다. 각각의 이들 벡터 성분은 16비트의 벡터 비트 크기를 가지며, 따라서 벡터 레지스터 Zi 내부의 벡터 성분 수는 16이다. 벡터 성분 크기는 디코드되고 있는 벡터 명령에 의해 제정되는 변수이다. 예를 들어, 벡터 명령이 인코드되어 벡터 성분이 바이트, 반단어(half word), 단어 또는 2배 단어(double word)(각각 8, 16, 32, 64 비트)인 것을 지정한다. 따라서, 256 비트로 이루어진 벡터 레지스터 Zi에 대해, 이것은 16개의 16비트 벡터 성분, 8개의 32비트 벡터 성분 또는 4개의 64비트 벡터 성분을 지원한다.
프로세서(4)의 주어진 구현예는 특정한 비트 크기를 갖는 벡터 레지스터들 Zi를 지원하는 벡터 레지스터 회로(20)를 포함하게 된다. 그러나, 동일한 명령 세트 아키텍처를 사용하는 프로세서(4)의 다른 구현예는 이와 다른 크기, 예를 들어, 512비트, 384비트, 1024비트 등의 벡터 레지스터를 지원한다.
벡터 명령을 포함하는 프로그램 코드가 어떤 변형이나 상당한 변형을 필요로 하지 않으면서 다양한 크기의 벡터 레지스터들 Zi를 제공하는 벡터 레지스터 회로(20)에 적응할 수 있도록 하는 한가지 방법으로서, 한 개 이상의 스케일링 벡터 길이 질의 명령이 제공된다. 이들 스케일링 벡터 길이 질의 명령은, 스케일링 벡터 길이 질의 명령에 의해 지정된 가변 벡터 성분 크기(예를 들어, 바이트, 반단어, 단어 또는 2배 단어)에 대한 벡터 내부의 성분의 수에 스케일링 벡터 길이 질의 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환한다. 이와 같은 스케일링 벡터 길이 질의 명령은, 구현예의 특정한 벡터 레지스터 크기를 고려할 수 있고 또한 구현되고 있는 벡터 코드에 의해 제공되는 프로그램 루프 롤링(program loop rolling)의 정도를 거쳐 고려할 수 있는 결과를 반환할 수 있다. 스케일링 값은 스케일링 벡터 길이 질의 명령 내에서 인코드되는 상수 정수값(예를 들어, 명령 내부의 즉시값(immediate value))의 형태로 제공되어도 된다.
도 2는 다양한 다른 형태의 스케일링 벡터 길이 질의 명령을 개략적으로 나타낸 것이다. 특히, 벡터 길이 질의 명령의 종류는 카운트 명령, 증분 명령 또는 감분(decrement) 명령일 수 있다. 스케일링 벡터 길이 질의 명령인 또 다른 종류의 명령도 가능하다. 스케일링 벡터 길이 질의 명령은, 결과값이 결정되는 기준이 되는 벡터 성분 크기를 더 지정한다. 따라서, 벡터 성분 크기는 바이트 B, 반단어 H, 단어 W 또는 2배 단어 D일 수 있다. 스케일링 벡터 길이 질의 명령은, 명령에 대한 입력 피연산자 값에 대한 소스와 기록할 결과값에 대한 목적지로서의 역할을 하는 스칼라 레지스터 Xd를 더 지정한다.
도 2에 도시된 스케일링 벡터 길이 질의 명령 내부의 최종적인 2개의 파라미터는, 처리장치에 의해 사용되는 벡터 길이가 지정될 때 겪게 되며 스케일링 벡터 길이 질의 명령의 결과값이 반환될 때 따르게 되는 패턴 제약(pattern constraint)를 지정하는 필드이다. 벡터 패턴 제약은 다양한 다른 형태를 취할 수 있다. 이 제약은, 예를 들어, 장치에 의해 제공되는 최대값이 지정된 값 M의 배수인 것일 수 있는데, 예를 들어, 벡터 성분들의 수에 대한 값이 값 M의 배수(modulo(M))가 되도록 제약을 받는다. 제약 패턴의 또 다른 예는, 지원된 벡터 성분들의 수에 대해 반환된 최대값이 2의 거듭제곱, 예를 들어, 2, 4, 8, 16, 32 등이 되어야 한다는 것이다. 제약 패턴의 또 다른 예는, 벡터 레지스터 Zi의 물리적인 크기를 벗어난 지원된 성분들의 수의 최대값에 대해 제약이 적용되지 않는 것이다. 따라서, 벡터 레지스터의 길이가 256비트이고, 성분 크기가 16이면, 이와 같이 "모두"라는 제약에 따르면, 벡터 성분의 수가 16이라는 것을 기준으로 결과값이 반환되게 된다.
스케일링 벡터 길이 질의 명령에 의해 지정된 마지막 파라미터는 스케일링 값이다. 이것은 스케일링 벡터 길이 질의 명령 내부에서 인코드된 상수 정수값일 수 있으며 즉시값을 갖는다. 이와 같은 스케일링 값은 다양한 값을 가질 수 있지만, 1 내지 8(8을 포함한다)의 범위를 갖는 스케일링 값이 스케일링 벡터 길이 질의 명령을 인코드하는데 사용된 명령 비트 공간을 보존하면서 일반적으로 발견되는 대부분의 루프 언롤링(loop unrolling)의 정도를 지원할 수 있다는 것이 밝혀졌다.
도 3은 몇 개의 예시적인 스케일링 벡터 길이 질의 명령에 대해 반환된 결과값을 개략적으로 나타낸 것이다. 도시된 열들은, 벡터 비트 크기(즉, 벡터 레지스터 Zi의 비트 크기), 벡터 성분 비트 크기(예를 들어, 바이트, 반단어, 단어, 2배 단어), 벡터 패턴 제약(예를 들어, A, modulo(M), 2의 거듭제곱 등), 스케일링 값(예를 들어, 1 내지 8의 범위를 갖는 명령 그 자체 내부에서 인코드된 상수값)이, 명령 종류(예를 들어, 카운트, 증분, 감분)이다. 입력값은 카운트 명령에 대해서는 "0"으로 생각되어도 되고 증분 및 감분 명령의 경우에는 입력 레지스터 Xd에 의해 제공된 값이어도 된다.
도 3에 도시된 첫 번째 행을 고려하면, 이것은 128의 벡터 비트 크기를 지정한다. 벡터 성분 비트 크기는 8이다. 따라서, 제약을 받지 않은 최대 벡터 성분 계수값은 16이다. 이 행에 대한 패턴 제약은 "모두"이며, 따라서 이것은 제약을 받지 않는 패턴에 해당한다. 첫 번째 행의 스케일링은 "1"이므로 스케일링에 의해 결과가 변경되지 않는다. 명령 종류는 카운트이므로, 벡터 레지스터 내부의 바이트 크기를 갖는 벡터 성분들의 수의 단순한 계수값이 제공되며 이것은 16이다.
더욱 복잡한 예는 다섯 번째 행에 주어져 있다. 이 경우 벡터 비트 크기는 256이고 벡터 성분 비트 크기는 32이다. 이것은 지원된 벡터 성분들의 제약을 받지 않은 수가 8인 것을 나타내고 있다. 그러나, 패턴 제약은, 지원되어야 하는 벡터 성분들의 수가 3의 배수이어야 한다는 것이다. 따라서, 이 패턴 제약은 지원된 최대값으로 생각된 벡터 성분의 수를 6으로 줄인다. 다섯 번째 행의 스케일링 값이 2이며 명령 종류가 카운트이므로, 결과값은 패턴 제약의 결과값의 2배, 즉 12이다.
또 다른 예가 20번째 행에 주어진다. 이 행에서 벡터 비트 크기는 384이고 벡터 성분 비트 크기는 16이다. 이것은 벡터 레지스터에 의해 지원된 로 벡터(raw vector) 성분 수가 24라는 것을 나타낸다. 그러나, 이 행에서 적용되는 패턴 제약은, 지원된 벡터 계수값이 2의 거듭제곱이어야 한다는 것이므로, 지원된 비트 크기 16의 벡터 성분들의 최대 수가 16인 것으로 생각된다. 스케일링 인자 2가 적용된다. 따라서, 스케일링된 부분 결과값은 32이다. 명령 종류는 스케일링 벡터 길이 질의 명령의 증분 종류이며, 스칼라 레지스터 Xd 내부에 유지된 증분에 대한 입력값은 48이다. 이것은 80의 결과값(증분된 값)을 제공한다.
이와 같은 스케일링 벡터 길이 질의 명령이 스케일링된 카운트 명령일 때, 이것은 지원된 성분의 수에 스케일링 값을 곱한 값에 의존하는 카운트 값을 반환한다. 스케일링 벡터 길이 질의 명령이 스케일링된 증분 명령일 때, 이것은 (벡터 비트 크기, 벡터 성분 비트 크기, 패턴 제약 및 스케일링 값에 의존하여 결정된 값만큼) 증분될 입력값에 의존하는 증분 결과값을 반환한다. 마찬가지로, 스케일링 벡터 길이 질의 명령이 스케일링된 감분 명령일 때, 이것은 감분할 입력값에 의존하는 감분 결과값을 반환한다.
도 4는 스케일링 벡터 길이 질의 명령에 응답하여 결과값을 결정하는 회로의 구현예를 나타낸 것이다. 이 구현예는, 결과값들의 테이블(24)로 색인을 만드는 테이블 어드레스 디코더(22)를 구비한 룩업표의 형태를 갖는다. 스케일링 벡터 길이 질의 명령으로부터의 파라미터들(필드들)이 테이블 디코더(22)에 대한 입력으로 주어진다. 이들 필드는 성분 크기(2비트), 적용된 제약 패턴(5비트) 및 적용된 스케일링 값(3비트)을 포함한다. 테이블 어드레스 디코더(22)는, 특정한 구현, 즉 구현된 특정한 벡터 길이에 대해 고정된 형태를 갖는다. 테이블 어드레스 디코더(22)는, 그것에게 주어진 입력신호에 응답하여, 결과값들의 테이블(24)로부터 한 개의 결과값을 선택하는 1-핫(1-hot) 출력을 발생한 후, 스케일링 벡터 길이 질의 명령이 스케일링 증분 명령 또는 스케일링 감분 명령인 경우에는 이 결과값이 증분 또는 감분 회로(가산기 또는 감산기)에 각각 주어진다.
도 5는 스케일링 벡터 길이 질의 명령의 처리의 논리 흐름을 개략적으로 나타낸 흐름도이다. 이때, 실제적으로는 이와 같은 처리는 일반적으로 병렬로 실행되고 도 5에 도시된 개별 스텝들도 사실상 병렬로 실행될 수도 있다는 것은 자명하다. 스텝 26에서는, 스케일링 벡터 길이 질의 명령이 수신될 때까지 처리를 대기한다. 그후, 스텝 28은 지정된 벡터 성분 크기에 대한 해당 벡터 레지스터 구현에 의해 지원된 벡터 성분의 로(raw) 최대수를 결정한다. 스텝 30은 스케일링 벡터 길이 질의 명령에 의해 지정된 제약 패턴(만일 존재한다면)을 적용한다. 스텝 32는 스텝 26에서 제약 패턴을 적용하여 결정된 부분적인 결과를 스케일링한다. 명령 종류가 카운트 명령이면, 스텝 36은 카운트 결과값을 목적지 레지스터에 기록한다. 명령 종류가 증분이면, 스텝 38은 스텝 32에서 결정된 증분값에 의해 이미 유지된 목적지 레지스터 값을 증분하고, 증분된 결과값을 목적지 레지스터에 기록한다. 스텝 34에서 결정된 명령 종류가 감분이면, 스텝 40은 스텝 32에서 계산된 감분값만큼 목적지 레지스터 값을 감분하고, 그 결과를 목적지 레지스터에 기록한다.
도 6은 사용될 수 있는 가상머신 구현예를 나타낸 것이다. 전술한 실시예가 해당 기술을 지원하는 구체적인 처리 하드웨어를 작동하는 장치 및 방법에 대해 본 발명을 구현하지만, 하드웨어 장치들의 소위 가상머신 구현을 제공할 수도 있다. 이들 가상 머신 구현은 가상 머신 프로그램(510)을 지원하는 호스트 운영체계(520)를 실행하는 호스트 프로세서(530) 상에서 실행된다. 일반적으로, 합당한 속도에서 실행되는 가상머신 구현예를 제공하기 위해서는 크고 강력한 프로세서가 필요하지만, 호환성이나 재사용의 이유로 인해 다른 프로세서에 대해 네이티브한 코드를 실행하는 요구가 존재하는 경우 등과 같은 특정한 상황에서는 이와 같은 접근방법이 정당화되어도 된다. 가상머신 프로그램(510)은 어플리케이션 프로그램(500)에 대한 어플리케이션 프로그램 인터페이스를 제공하는데, 이것은 가상머신 프로그램(5100에 의해 모델링되고 있는 장치인 실제 하드웨어에 의해 제공되는 어플리케이션 프로그램 인터페이스와 동일하다. 따라서, 전술한 메모리 액세스의 제어를 포함하는 프로그램 명령들은 가상머신 프로그램(51)을 사용하는 어플리케이션 프로그램(500) 내부에서부터 실행되어 가상머신 하드웨어와의 상호작용을 모델링해도 된다.
첨부도면을 참조하여 본 발명의 예시적인 실시예들을 상세히 설명하였지만, 본 발명은 이들 실시예에 한정되지 않으며, 첨부된 청구범위의 보호범위 및 사상을 벗어나지 않으면서 본 발명이 속한 기술분야의 당업자에 의해 다양한 변경, 부가 및 변화가 행해질 수 있다는 것은 자명하다. 예를 들면, 종속항들의 특징들의 다양한 조합이 독립항들의 특징과 행해질 수도 있다.

Claims (15)

  1. 데이터 처리장치로서,
    벡터 처리 연산을 행하는 처리회로와,
    프로그램 명령을 디코드하여 상기 처리회로가 상기 벡터 처리 연산을 행하도록 제어하는 제어신호를 발생하는 디코더 회로를 구비하고,
    상기 디코드 회로는, 스케일링된 벡터 길이 질의 명령에 응답하여, 상기 처리회로를 제어함으로써, 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 가변 벡터 성분 크기에 대한 벡터 내부의 성분들의 수에 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환하는, 데이터 처리장치.
  2. 제 1항에 있어서,
    상기 스케일링 값은 상기 스케일링된 벡터 길이 질의 명령 내부에서 인코딩된 상수 정수값인 데이터 처리장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 스케일링 값은 1 내지 8의 범위에 놓이는 데이터 처리장치.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 벡터 성분 크기는 8비트, 16비트, 32비트 및 64비트 중 한 개에서 선택된 데이터 처리장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 스케일링된 벡터 길이 질의 명령은 한 개 이상의 또 다른 파라미터들을 포함하고, 상기 처리회로에 의해 반환된 상기 결과값은 상기 한개 이상의 또 다른 파라미터들에 의존하는 데이터 처리장치.
  6. 제 5항에 있어서,
    상기 한개 이상의 또 다른 파라미터는 상기 데이터 처리장치에 의해 사용되는 벡터 길이가 결정될 때 겪게 되는 벡터 패턴 제약을 포함하는 데이터 처리장치.
  7. 제 6항에 있어서,
    상기 벡터 패턴 제약은, 상기 성분들의 수가,
    상기 데이터 처리장치에 의해 제공되고 지정된 값 M의 배수인 최대값,
    상기 데이터 처리장치에 의해 제공되고 2의 거듭제곱인 최대값, 및
    상기 데이터 처리장치에 의해 제공된 최대값
    중에서 한 개인 것으로 지정하는 데이터 처리장치.
  8. 제 1항 내지 제 7항 중 어느 한 항에 있어서,
    상기 스케일링된 벡터 길이 질의 명령은, 상기 성분들의 수에 상기 스케일링 값을 곱한 값에 의존하는 카운트 결과값을 반환하는 스케일링된 카운트 명령인 데이터 처리장치.
  9. 제 1항 내지 제 8항 중 어느 한 항에 있어서,
    상기 스케일링된 벡터 길이 질의 명령은, 증분할 입력값에 의존하는 증분 결과값을 반환하는 스케일링된 증분 명령인 데이터 처리장치.
  10. 제 1항 내지 제 9항 중 어느 한 항에 있어서,
    상기 스케일링된 벡터 길이 질의 명령은, 감분할 입력값에 의존하는 감분(decrement) 결과값을 반환하는 스케일링된 감분 명령인 데이터 처리장치.
  11. 제 1항 내지 제 10항 중 어느 한 항에 있어서,
    상기 벡터 처리회로는 상기 스케일링 값에 의존하여 어드레스가 지정되어 상기 결과값을 적어도 부분적으로 결정하는 룩업표를 포함하는 데이터 처리장치.
  12. 제 5항 및 제 11항에 있어서,
    상기 룩업표는 상기 한 개 이상의 또 다른 파라미터들에 의존하여 어드레스가 지정되는 데이터 처리장치.
  13. 데이터 처리장치로서,
    벡터 처리 연산을 행하는 처리수단과,
    프로그램 명령을 디코드하여 상기 처리회로가 상기 벡터 처리 연산을 행하도록 제어하는 제어신호를 발생하는 디코더 수단을 구비하고,
    상기 디코드 수단은, 스케일링된 벡터 길이 질의 명령에 응답하여, 상기 처리수단을 제어함으로써, 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 가변 벡터 성분 크기에 대한 벡터 내부의 성분들의 수에 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환하는, 데이터 처리장치.
  14. 스케일링된 벡터 길이 질의 명령에 응답하여, 처리회로를 제어함으로써, 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 가변 벡터 성분 크기에 대한 벡터 내부의 성분들의 수에 상기 스케일링된 벡터 길이 질의 명령에 의해 지정된 스케일링 값을 곱한 값에 의존하는 결과값을 반환하는 단계를 포함하는 데이터 처리방법.
  15. 청구항 1 내지 12 중 어느 한 항에 기재된 장치에 대응하는 가상머신 실행 환경을 제공하도록 컴퓨터를 제어하기 위해 비일시적인 기억매체에 기억된 컴퓨터 프로그램.
KR1020187003457A 2015-07-31 2016-06-23 벡터 길이 질의 명령 KR102586258B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15386026.7 2015-07-31
EP15386026.7A EP3125109B1 (en) 2015-07-31 2015-07-31 Vector length querying instruction
PCT/EP2016/064500 WO2017021055A1 (en) 2015-07-31 2016-06-23 Vector length querying instruction

Publications (2)

Publication Number Publication Date
KR20180037961A true KR20180037961A (ko) 2018-04-13
KR102586258B1 KR102586258B1 (ko) 2023-10-10

Family

ID=54140382

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187003457A KR102586258B1 (ko) 2015-07-31 2016-06-23 벡터 길이 질의 명령

Country Status (8)

Country Link
US (1) US11314514B2 (ko)
EP (1) EP3125109B1 (ko)
JP (1) JP6818010B2 (ko)
KR (1) KR102586258B1 (ko)
CN (1) CN107851022B (ko)
IL (1) IL256403B (ko)
TW (1) TWI721999B (ko)
WO (1) WO2017021055A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170046168A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Scalable single-instruction-multiple-data instructions
US11269636B2 (en) * 2019-05-27 2022-03-08 Texas Instmments Incorporated Look-up table write
CN110333857B (zh) * 2019-07-12 2023-03-14 辽宁工程技术大学 一种基于约束规划的自定义指令自动识别方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004510265A (ja) * 2000-09-28 2004-04-02 シーバーグ、エルリング、クリステン 最適局部シーケンス配列類似スコアの測定
US20120284487A1 (en) * 2011-05-02 2012-11-08 Saankhya Labs Private Limited Vector Slot Processor Execution Unit for High Speed Streaming Inputs
US20140207838A1 (en) * 2011-12-22 2014-07-24 Klaus Danne Method, apparatus and system for execution of a vector calculation instruction
US20140289502A1 (en) * 2013-03-19 2014-09-25 Apple Inc. Enhanced vector true/false predicate-generating instructions

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6133547A (ja) 1984-07-25 1986-02-17 Fujitsu Ltd ベクトル・レジスタのオ−バフロ−情報通知方式
US4745547A (en) 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
US5537606A (en) * 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
US6788303B2 (en) * 2001-02-27 2004-09-07 3Dlabs Inc., Ltd Vector instruction set
US20040073773A1 (en) * 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
US9170812B2 (en) * 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US8966223B2 (en) * 2005-05-05 2015-02-24 Icera, Inc. Apparatus and method for configurable processing
US7725624B2 (en) 2005-12-30 2010-05-25 Intel Corporation System and method for cryptography processing units and multiplier
CN101535945A (zh) * 2006-04-25 2009-09-16 英孚威尔公司 全文查询和搜索系统及其使用方法
GB2464292A (en) 2008-10-08 2010-04-14 Advanced Risc Mach Ltd SIMD processor circuit for performing iterative SIMD multiply-accumulate operations
US8555034B2 (en) * 2009-12-15 2013-10-08 Oracle America, Inc. Execution of variable width vector processing instructions
US10175990B2 (en) * 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US20110158310A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation Decoding data using lookup tables
CN101901248B (zh) * 2010-04-07 2012-08-15 北京星网锐捷网络技术有限公司 一种布隆过滤器的生成、更新以及查询元素方法和装置
JP5699554B2 (ja) * 2010-11-11 2015-04-15 富士通株式会社 ベクトル処理回路、命令発行制御方法、及びプロセッサシステム
EP2788902B1 (en) * 2011-12-08 2019-04-17 Oracle International Corporation Techniques for more efficient usage of memory-to-cpu bandwidth
US9557993B2 (en) * 2012-10-23 2017-01-31 Analog Devices Global Processor architecture and method for simplifying programming single instruction, multiple data within a register
CN103105775B (zh) * 2012-12-17 2014-04-16 清华大学 基于序优化与在线核极限学习机的分层迭代优化调度方法
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
CN103020018B (zh) * 2012-12-27 2015-09-30 南京师范大学 一种基于多维伪随机序列的压缩感知矩阵构造方法
US9282014B2 (en) * 2013-01-23 2016-03-08 International Business Machines Corporation Server restart management via stability time
US10437600B1 (en) * 2017-05-02 2019-10-08 Ambarella, Inc. Memory hierarchy to transfer vector data for operators of a directed acyclic graph

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004510265A (ja) * 2000-09-28 2004-04-02 シーバーグ、エルリング、クリステン 最適局部シーケンス配列類似スコアの測定
US20120284487A1 (en) * 2011-05-02 2012-11-08 Saankhya Labs Private Limited Vector Slot Processor Execution Unit for High Speed Streaming Inputs
US20140207838A1 (en) * 2011-12-22 2014-07-24 Klaus Danne Method, apparatus and system for execution of a vector calculation instruction
US20140289502A1 (en) * 2013-03-19 2014-09-25 Apple Inc. Enhanced vector true/false predicate-generating instructions

Also Published As

Publication number Publication date
US11314514B2 (en) 2022-04-26
CN107851022A (zh) 2018-03-27
IL256403B (en) 2019-08-29
JP6818010B2 (ja) 2021-01-20
JP2018521422A (ja) 2018-08-02
CN107851022B (zh) 2022-05-17
WO2017021055A1 (en) 2017-02-09
TW201717051A (zh) 2017-05-16
KR102586258B1 (ko) 2023-10-10
EP3125109A1 (en) 2017-02-01
IL256403A (en) 2018-02-28
US20180196673A1 (en) 2018-07-12
TWI721999B (zh) 2021-03-21
EP3125109B1 (en) 2019-02-20

Similar Documents

Publication Publication Date Title
KR20170097018A (ko) 벡터 브로드캐스트 및 xorand 로직 명령어를 위한 장치 및 방법
KR20180066146A (ko) 벡터 데이터 전송 명령어
KR102586258B1 (ko) 벡터 길이 질의 명령
KR20180067582A (ko) 벡터 로드 명령어
CN111782270A (zh) 一种数据处理方法及装置、存储介质
KR20180035211A (ko) 벡터 산술 명령
JP7186212B2 (ja) データ処理装置におけるベクトル・インタリーブ
JP6874262B2 (ja) ベクトル被演算子ビットサイズの制御
US20200371793A1 (en) Vector store using bit-reversed order
GB2617829A (en) Technique for handling data elements stored in an array storage
WO2023199014A1 (en) Technique for handling data elements stored in an array storage
US20050228970A1 (en) Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
JP5263497B2 (ja) 信号処理プロセッサ及び半導体装置
TW202307653A (zh) 陳述技術
JP5263498B2 (ja) 信号処理プロセッサ及び半導体装置
JP5311008B2 (ja) 信号処理プロセッサ及び半導体装置
JP2006526194A (ja) 超長命令語を用いたマルチプル・レジスター・ロード
JPS63116238A (ja) デ−タプロセツサ装置
JP2012150589A (ja) 演算装置
JP2007066233A (ja) 情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant