KR100812555B1 - 단일-명령 다중-데이터 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 그 방법 - Google Patents

단일-명령 다중-데이터 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 그 방법 Download PDF

Info

Publication number
KR100812555B1
KR100812555B1 KR1020057007003A KR20057007003A KR100812555B1 KR 100812555 B1 KR100812555 B1 KR 100812555B1 KR 1020057007003 A KR1020057007003 A KR 1020057007003A KR 20057007003 A KR20057007003 A KR 20057007003A KR 100812555 B1 KR100812555 B1 KR 100812555B1
Authority
KR
South Korea
Prior art keywords
permutation
control
parameters
vector
sequential order
Prior art date
Application number
KR1020057007003A
Other languages
English (en)
Other versions
KR20050071614A (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 KR20050071614A publication Critical patent/KR20050071614A/ko
Application granted granted Critical
Publication of KR100812555B1 publication Critical patent/KR100812555B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

단일-명령 다중-데이터 마이크로프로세서를 위한 벡터 순열 시스템(vector permutation system; 100)은 벡터들을 순열 논리(120)에 공급하고, 이후 제어 레지스터들의 세트(140) 중 선택된 하나로부터 수신된 제어 파라미터들에 따라 순열로 배치되고 선택적으로 부정되는 부정 블록(130)에 공급하는 벡터 레지스터들(110)의 세트를 갖는다. 제어 장치(145, 150)는 제어 파라미터들을 제공하기 위한 제어 레지스터를 선택한다. 이러한 방법으로, 개별 순열 명령들은 필요하지 않거나 수행될 필요가 없고, 순열 파라미터들은 벡터 레지스터들(110)에 저장될 필요가 없다. 이는 더 높은 성능, 더 작은 벡터 레지스터 파일 및 그에 따라 더 작은 크기의 마이크로프로세서와 보다 나은 프로그램 코드 밀도를 유발한다.
Figure R1020057007003
벡터 순열, SIMD, 벡터 피연산자, 마이크로프로세서

Description

단일-명령 다중-데이터 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 그 방법{Arrangement, system and method for vector permutation in single-instruction multiple-data microprocessors}
본 발명은 단일-명령 다중 데이터(SIMD) 성능을 갖는 마이크로 프로세서에 관한 것이다.
본 발명의 분야에서, SIMD 구조를 갖는 마이크로프로세서는 벡터 피연산자들(vector operands)을 처리하기 위해 배열된다. 이는 SIMD 마이크로프로세서 상에서의 디지털 신호 처리 알고리즘들의 효율을 개선하기 위해 벡터 피연산자들의 컴포넌트들을 순열로 배치(순서대로 재배치)하는 명령들을 제공하는 것으로 알려져 있다. 순열 파라미터들(permutation parameters)은 수행될 순열의 특징들을 결정하기 위해 필요하다.
그러나, 이러한 접근은 벡터 순열이 가외 명령들을 필요로 하는 경우, 성능 감소의 단점(들)을 갖는다. 순열 파라미터들 및/또는 순열로 배치된 벡터 피연산자가 마이크로프로세서의 벡터 레지스터 파일에서 가외 레지스터들(extra registers)을 필요로 하는 경우, 큰 레지스터 파일을 필요로 한다. 이는 마이크로프로세서의 크기를 증가시키고 프로그램 코드 밀도에 부정적 영향을 갖는다.
그러므로, 상기 단점(들)이 완화(alleviate)될 수 있는 SIMD 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 방법의 존재를 필요로 한다.
본 발명의 제 1 양상에 따라 청구항 제 1 항에 청구된 SIMD 마이크로프로세서에서의 벡터 순열을 위한 장치가 제공된다.
본 발명의 제 1 양상에 따라 청구항 제 2 항에 청구된 SIMD 마이크로프로세서에서의 벡터 순열을 위한 시스템이 제공된다.
본 발명의 제 3 양상에 따라 청구항 제 5 항에 청구된 SIMD 마이크로프로세서에서의 벡터 순열을 위한 방법이 제공된다.
바람직하게 상기 장치는 제어 수단에 결합되고, 제어 수단으로부터 수신한 제어 파라미터들에 따라 순열 논리 블록으로부터 벡터들을 수신하여 선택적으로 부정(negate)하기 위해 결합되는 부정 블록(negate block)을 포함하며, 제어 파라미터들은 순열 파라미터들 및 부정 파라미터들을 포함한다.
바람직하게 제어 수단은 다수의 제어 레지스터들 중 하나를 선택하기 위한 순차 순서(sequential order)를 제공하도록 배열된 적어도 하나의 계수기를 포함한다.
바람직하게 제어 레지스터 파라미터들은 또한 부정 특징들을 결정하기 위해 사용되고, 순열로 배치하는 단계는 선택된 제어 레지스터의 파라미터들에 따라 벡터들을 선택적으로 부정하는 단계를 더 포함한다. 바람직하게 선택 단계는 다수의 제어 레지스터들의 순차 순서를 따르는 단계를 더 포함한다.
바람직하게 순차 순서는 고정된 제어 파라미터들의 세트를 통한 자동 수열을 더 포함한다. 대안적으로 순차 순서는 바람직하게, 프로그램가능한 제어 파라미터들의 세트를 통한 자동 수열을 포함한다. 순차 순서는 바람직하게 주기적이다.
이러한 방법으로, 개별 순열 명령들을 필요로 하지 않거나 수행될 필요가 없고 순열 파라미터들이 벡터 레지스터들에 저장될 필요가 없는, SIMD 마이크로프로세서에서의 벡터 순열을 위한 장치, 시스템 및 방법이 제공된다. 이는 더 높은 성능, 더 작은 벡터 레지스터 파일 및 그에 따라 더 작은 크기의 마이크로프로세서와 보다 나은 프로그램 코드 밀도를 유발한다.
본 발명을 포함하는 SIMD 마이크로프로세서들에서의 벡터 순열을 위한 하나의 장치, 시스템 및 방법은 단지 예시적 방법으로 첨부 도면들을 참조하여 설명된다.
도 1은 SIMD 구조를 갖는 알려진 마이크로프로세서의 개략적 블록도를 도시하는 도면.
도 2는 본 발명을 포함하는 SIMD 구조를 갖는 마이크로프로세서의 개략적 블록도를 도시하는 도면.
SIMD 구조 분야에서, 벡터 피연산자들의 선택적 부정 연산들 및 순열은 특정 명령들의 연산 측으로서 수행될 수 있고 개별 명령들 또는 수행 주기들을 필요로 하지 않는다.
그러나, 프로그래머들은 상기 순열들이 수행되는 방법 및 시기를 통한 제어를 필요로 한다. 순열들이 수행되는 시기를 제어하기 위해, 한정자들(qualifiers)이 필요하다. 이러한 한정자들은 다음이 될 수 있다:
- 인에이블/디스에이블 메커니즘들
- 벡터 레지스터 수들
- 명령 유형들
- 다른것들.
순열들이 수행되는 방법을 제어하기 위해, 순열 파라미터들, 자원/목적지 피연산자들 또는 선택적 부정 연산들이 필요하다. 상기 순열 파라미터들은 고정(특정 알고리즘들에 대해 하드-와이어(hard-wired))되거나 프로그램가능(레지스터들에 저장)할 수 있다.
이제 도 1을 참조하면, SIMD 구조를 갖는 종래 기술 마이크로프로세서(5)가 도시된다. 마이크로프로세서의 벡터 레지스터 파일(10)은 순열 논리 블록(20)에 벡터 피연산자들을 공급한다. 벡터 레지스터 파일(10)은 미리 결정된 수의 레지스터들을 갖는다. 일반적으로 최신의 축소 명령 집합 칩(Reduced Instruction Set Chip: RISC) 머신들에서의 벡터 레지스터들 및/또는 범용 목적의 수는 가장 일반적인 수들인 8/16/32/64의 2의 거듭제곱(power)에 대한 정수이다. 도 1에 도시된 예에서, 32 128-비트 레지스터들이 존재하고, 각각의 레지스터는 네 개의 32-비트 요소들을 갖는다. 마지막 레지스터(레지스터(15))는 화살표(17)에 의해 도시되는 바와 같이 순열 논리 블록(20)을 제어하기 위한 제어 파라미터들을 저장하기 위해 사용된다.
이제 도 2를 참조하면, SIMD 구조를 갖는 마이크로프로세서(100)가 도시된다. 벡터 레지스터 파일의 판독 포트(110)는 벡터 피연산자들을 순열 논리 블록(120)에 공급하고 이로부터 부정 논리 블록(130)에 공급한다. 벡터 레지스터 파일(110)은 미리 결정된 수의 레지스터들을 갖는다. 도 2에 도시된 예에서, (5가 도시된) 8 128-비트 레지스터들이 존재하고, 각각의 레지스터는 32-비트 요소들을 갖는다.
일반적으로 출력은 벡터 산술 논리 연산 장치(Arithmetic Logic Unit; ALU)(도시되지 않음)에 대한 자원 피연산자로서 사용된다.
벡터 레지스터 파일(110)의 벡터들에 따라 수행될 순열들에 관한 부정 파라미터들 및 순열은 제어 파라미터들로서 제어 레지스터들의 시리즈(140)에 저장된다. 제어 블록(145)은 제어 레지스터들의 시리즈(140) 각각에 결합되고, 제어 파라미터들을 제공하고 그로부터 순열 논리 블록(120) 및 선택적 부정 논리 블록(130)을 제어하기 위해 또한 결합된다. 계수기(150)는 또한 제어 블록(145)에 결합되고, 계수기(150)는 제어 레지스터들의 시리즈 중 어느 것이 어떤 일 시점에서 제어 블록(145)을 통해 순열 논리 블록(120) 및 선택적 부정 논리 블록(130)에 결합되는지를 결정하기 위해 배열된다.
동작에서, 마이크로프로세서(100)는 제 1 제어 레지스터(141)와 같은 주어진 시리즈(140)의 제어 레지스터를 지시하는 계수기(150)와 함께 시작한다(commence). 순열이 수행될 때(모든 한정자들은 참(true)), 제 1 제어 레지스터(141)에 저장된 제어 파라미터들(순열 및 부정 파라미터들)은 제어 블록(145)을 통해 순열 논리 블록(120) 및 선택적 부정 논리 블록(130)에 제공된다. 이후 벡터 레지스터 파일(110)의 컨텐트들은 상기 제어 파라미터들에 따라 순열 논리 블록(120) 및 선택적 부정 논리 블록(130)에 의해 처리된다. 선택적인 선택적 부정 논리 블록(130)은 수신된 제어 파라미터들에 따라 벡터 레지스터 파일(110)의 컨텐트들에 대한 부정 함수를 수행할 수 있거나 그렇지 않을 수 있음을 유의한다.
일단 처리되면, 출력 벡터 자원 피연산자는 ALU(도시되지 않음)에 전달되고 계수기(150)는 증가된다. 이는 제어 블록(145)이 다음 순열에 대해 (제 2 제어 레지스터(142)와 같은) 시리즈(140)의 다음 제어 레지스터를 선택하도록 한다. 계수기(150)는 반복적인 방법으로 제어 레지스터들의 시리즈(140) 각각을 통해 주기를 이루도록 배열된다.
상기한 SIMD 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 방법이 다음의 이점들을 제공함이 이해된다:
더 높은 성능을 유발하는 벡터 피연산자들의 컴포넌트들을 순열로 배치/부정하기 위한 가외 명령들(extra instructions)을 필요로 하지 않는다. 또한, 순열로 배치되고/부정된 벡터 피연산자들 및 순열 파라미터들을 저장하기 위해 벡터 레지스터 파일의 또 다른 레지스터들을 필요로 하지 않는다. 심지어 프로그램가능한 순열 파라미터들을 갖는 도 2의 제어 레지스터들(140)은 도 1의 벡터 레지스터(15)보다 상당히 작음을 유의한다. 마이크로프로세서의 레지스터 파일이 더 작기 때문에, 이는 더 작은 크기의 마이크로프로세서 및 더 나은 프로그램 코드 밀도(벡터 레지스터 주소화에 대한 조작 부호들(op-codes)에서의 더 작은 비트들)를 유발한다.
상기에 대한 대안적 실시예들이 가능함이 당업자들에 의해 이해된다. 예를 들어, 제어 레지스터 시리즈(140) 및 계수기(150)는 다중 계수기들 및 제어 레지스터 시리즈에 의해 증가될 수 있고, 명령 유형 또는 레지스터 수와 같은 한정자들과 함께 결합될 수 있다. 또한, 계수 수열(counting sequence)은 주기적인 방식으로 반복될 필요가 없고, 단지 하나의 또 다른 명령을 추가함으로써 특정 수열 시작점들을 갖는 계수기(들)를 로드(load)하는 것이 가능하다. 이러한 모든 특징들은 순열들의 수열에 복잡성을 부가하기 위해, 따라서 구조의 유연성을 더 증가시키기 위해 사용될 수 있다.
더욱이 벡터 레지스터들의 크기 및 수는 상기한 것들과 다를 수 있고, 본 발명에 요구되는 벡터 레지스터들의 수는 동등한 종래 기술 장치에 대해 요구되는 것보다 작아질 수 있다.

Claims (18)

  1. 단일-명령 다중-데이터 마이크로프로세서에서의 벡터 순열(vector permutation)을 위한 장치에 있어서,
    제어 파라미터들에 따라 적어도 하나의 벡터 레지스터로부터 벡터들을 수신하여 순열로 배치하기 위해 결합되는 순열 논리 블록;
    제어 파라미터들을 상기 순열 논리 블록에 선택적으로 제공하기 위해 각각 결합되는 다수의 제어 레지스터들; 및
    상기 다수의 제어 레지스터들과 상기 순열 논리 블록 사이에 결합되며, 상기 다수의 제어 레지스터들 중 하나를 선택하고 상기 다수의 제어 레지스터들 중 선택된 하나로부터의 상기 제어 파라미터들을 상기 순열 논리 블록에 제공하기 위해 배열되는, 제어 수단을 포함하는, 벡터 순열을 위한 장치.
  2. 제 1 항에 있어서, 상기 제어 수단에 결합되며, 상기 제어 수단으로부터 수신된 상기 제어 파라미터들에 따라 상기 순열 논리 블록으로부터 벡터들을 수신하여 선택적으로 부정하기 위해 결합되는, 부정 블록(negate block)을 더 포함하며,
    상기 제어 파라미터들은 순열 파라미터들 및 부정 파라미터들을 포함하는, 벡터 순열을 위한 장치.
  3. 제 1 항에 있어서, 상기 제어 수단은 상기 다수의 제어 레지스터들 중 하나를 선택하기 위한 순차 순서(sequential order)를 제공하기 위해 배열된 적어도 하나의 계수기를 포함하는, 벡터 순열을 위한 장치.
  4. 제 3 항에 있어서, 상기 순차 순서는 고정된 제어 파라미터들의 세트를 통한 자동 수열(automatic sequencing)을 포함하는, 벡터 순열을 위한 장치.
  5. 제 3 항에 있어서, 상기 순차 순서는 프로그램가능한 제어 파라미터들의 세트를 통한 자동 수열을 포함하는, 벡터 순열을 위한 장치.
  6. 제 3 항에 있어서, 상기 순차 순서는 주기적인, 벡터 순열을 위한 장치.
  7. 단일-명령 다중-데이터 마이크로프로세서 벡터 순열 시스템에 있어서,
    적어도 하나의 벡터 레지스터;
    제어 파라미터들에 따라 상기 적어도 하나의 벡터 레지스터로부터 벡터들을 수신하여 순열로 배치하기 위해 결합되는 순열 논리 블록;
    제어 파라미터들을 상기 순열 논리 블록에 선택적으로 제공하기 위해 각각 결합되는 다수의 제어 레지스터들; 및
    상기 다수의 제어 레지스터들과 상기 순열 논리 블록 사이에 결합되며, 상기 다수의 제어 레지스터들 중 하나를 선택하고 상기 다수의 제어 레지스터들 중 선택된 하나로부터의 상기 제어 파라미터들을 상기 순열 논리 블록에 제공하기 위해 배열되는, 제어 수단을 포함하는, 단일-명령 다중-데이터 마이크로프로세서 벡터 순열 시스템.
  8. 제 7 항에 있어서, 상기 제어 수단에 결합되며, 상기 제어 수단으로부터 수신된 상기 제어 파라미터들에 따라 상기 순열 논리 블록으로부터 벡터들을 수신하여 선택적으로 부정하기 위해 결합되는, 부정 블록을 더 포함하며,
    상기 제어 파라미터들은 순열 파라미터들 및 부정 파라미터들을 포함하는, 단일-명령 다중-데이터 마이크로프로세서 벡터 순열 시스템.
  9. 제 7 항에 있어서, 상기 제어 수단은, 상기 다수의 제어 레지스터들 중 하나를 선택하기 위한 순차 순서를 제공하기 위해 배열된 적어도 하나의 계수기를 포함하는, 단일-명령 다중-데이터 마이크로프로세서 벡터 순열 시스템.
  10. 제 9 항에 있어서, 상기 순차 순서는 고정된 제어 파라미터들의 세트를 통한 자동 수열을 포함하는, 단일-명령 다중-데이터 마이크로프로세서 벡터 순열 시스템.
  11. 제 9 항에 있어서, 상기 순차 순서는 프로그램가능한 제어 파라미터들의 세트를 통한 자동 수열을 포함하는, 단일-명령 다중-데이터 마이크로프로세서 벡터 순열 시스템.
  12. 제 9 항에 있어서, 상기 순차 순서는 주기적인, 단일-명령 다중-데이터 마이크로프로세서 벡터 순열 시스템.
  13. 단일-명령 다중-데이터 마이크로프로세서에서의 벡터 순열을 위한 방법에 있어서,
    순열로 배치될 벡터들을 제공하는 단계;
    다수의 제어 레지스터들 중 하나를 선택하는 단계로서, 각각의 제어 레지스터는 순열 특징들을 결정하기 위한 파라미터들을 포함하는, 상기 선택 단계; 및
    상기 선택된 제어 레지스터의 파라미터들에 따라 상기 벡터들을 순열로 배치하는 단계를 포함하는, 벡터 순열을 위한 방법.
  14. 제 13 항에 있어서, 상기 제어 레지스터 파라미터들은 또한 부정 특징들을 결정하기 위해 사용되고, 상기 순열로 배치하는 단계는 상기 선택된 제어 레지스터의 파라미터들에 따라 상기 벡터들을 선택적으로 부정하는 단계를 더 포함하는, 벡터 순열을 위한 방법.
  15. 제 13 항에 있어서, 상기 선택 단계는 상기 다수의 제어 레지스터들의 순차 순서를 따르는 단계를 더 포함하는, 벡터 순열을 위한 방법.
  16. 제 15 항에 있어서, 상기 순차 순서는 고정된 제어 파라미터들의 세트를 통한 자동 수열을 포함하는, 벡터 순열을 위한 방법.
  17. 제 15 항에 있어서, 상기 순차 순서는 프로그램가능한 제어 파라미터들의 세트를 통한 자동 수열을 포함하는, 벡터 순열을 위한 방법.
  18. 제 15 항에 있어서, 상기 순차 순서는 주기적인, 벡터 순열을 위한 방법.
KR1020057007003A 2002-10-23 2003-10-06 단일-명령 다중-데이터 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 그 방법 KR100812555B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0224627A GB2394571B (en) 2002-10-23 2002-10-23 Arrangement system and method for vector permutation in single-instruction multiple-data microprocessors
GB0224627.0 2002-10-23

Publications (2)

Publication Number Publication Date
KR20050071614A KR20050071614A (ko) 2005-07-07
KR100812555B1 true KR100812555B1 (ko) 2008-03-13

Family

ID=9946401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057007003A KR100812555B1 (ko) 2002-10-23 2003-10-06 단일-명령 다중-데이터 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 그 방법

Country Status (6)

Country Link
US (1) US7809931B2 (ko)
JP (1) JP4275071B2 (ko)
KR (1) KR100812555B1 (ko)
AU (1) AU2003273970A1 (ko)
GB (1) GB2394571B (ko)
WO (1) WO2004038598A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2394571B (en) 2002-10-23 2005-08-10 Motorola Inc Arrangement system and method for vector permutation in single-instruction multiple-data microprocessors
US7933405B2 (en) * 2005-04-08 2011-04-26 Icera Inc. Data access and permute unit
US7450040B2 (en) * 2006-03-20 2008-11-11 Marvell International Ltd. Method and apparatus for generating non-binary balanced codes
JP4686435B2 (ja) * 2006-10-27 2011-05-25 株式会社東芝 演算装置
US7904699B2 (en) * 2008-03-10 2011-03-08 International Business Machines Corporation Processing unit incorporating instruction-based persistent vector multiplexer control
US7904700B2 (en) * 2008-03-10 2011-03-08 International Business Machines Corporation Processing unit incorporating special purpose register for use with instruction-based persistent vector multiplexer control
US8051226B2 (en) * 2008-06-13 2011-11-01 Freescale Semiconductor, Inc. Circular buffer support in a single instruction multiple data (SIMD) data processor
US7814303B2 (en) * 2008-10-23 2010-10-12 International Business Machines Corporation Execution of a sequence of vector instructions preceded by a swizzle sequence instruction specifying data element shuffle orders respectively
GB2470780B (en) 2009-06-05 2014-03-26 Advanced Risc Mach Ltd A data processing apparatus and method for performing a predetermined rearrangement operation
US8862827B2 (en) 2009-12-29 2014-10-14 International Business Machines Corporation Efficient multi-level software cache using SIMD vector permute functionality
KR20120134549A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법
KR101918464B1 (ko) 2011-09-14 2018-11-15 삼성전자 주식회사 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치
WO2013095657A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Instruction and logic to provide vector blend and permute functionality
US9880845B2 (en) * 2013-11-15 2018-01-30 Qualcomm Incorporated Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods
US9959247B1 (en) 2017-02-17 2018-05-01 Google Llc Permuting in a matrix-vector processor
GB2561674A (en) * 2017-02-17 2018-10-24 Google Llc Permuting in a matrix-vector processor
GB2577890B (en) * 2018-10-08 2021-03-10 Advanced Risc Mach Ltd Data processing with swizzle operation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825361A (en) * 1982-10-22 1989-04-25 Hitachi, Ltd. Vector processor for reordering vector data during transfer from main memory to vector registers
KR19980018072A (ko) * 1996-08-19 1998-06-05 윤종용 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리
US5996057A (en) * 1998-04-17 1999-11-30 Apple Data processing system and method of permutation with replication within a vector register file
US6334176B1 (en) * 1998-04-17 2001-12-25 Motorola, Inc. Method and apparatus for generating an alignment control vector
KR20050048465A (ko) * 2003-11-18 2005-05-24 인터내셔널 비지네스 머신즈 코포레이션 프로세서 및 매트릭스 데이터 처리 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61269775A (ja) 1985-05-24 1986-11-29 Nec Corp ベクトル処理装置
US4935891A (en) * 1988-12-22 1990-06-19 Xerox Corporation Pseudo-random phase shifted arithmetic bit clock generators for digital printers
JPH06250751A (ja) 1993-02-23 1994-09-09 Toshiba Corp 基準電圧回路
US5758176A (en) * 1994-09-28 1998-05-26 International Business Machines Corporation Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system
US6223320B1 (en) * 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
US6886124B2 (en) * 2001-02-07 2005-04-26 Nec Corporation Low hardware overhead scan based 3-weight weighted random BIST architectures
GB2394571B (en) 2002-10-23 2005-08-10 Motorola Inc Arrangement system and method for vector permutation in single-instruction multiple-data microprocessors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825361A (en) * 1982-10-22 1989-04-25 Hitachi, Ltd. Vector processor for reordering vector data during transfer from main memory to vector registers
KR19980018072A (ko) * 1996-08-19 1998-06-05 윤종용 벡터 레지스터의 복수 뱅크를 사용한 단일 명령 복수 데이터 처리
US5996057A (en) * 1998-04-17 1999-11-30 Apple Data processing system and method of permutation with replication within a vector register file
US6334176B1 (en) * 1998-04-17 2001-12-25 Motorola, Inc. Method and apparatus for generating an alignment control vector
KR20050048465A (ko) * 2003-11-18 2005-05-24 인터내셔널 비지네스 머신즈 코포레이션 프로세서 및 매트릭스 데이터 처리 방법

Also Published As

Publication number Publication date
GB2394571B (en) 2005-08-10
KR20050071614A (ko) 2005-07-07
US20060015705A1 (en) 2006-01-19
WO2004038598A1 (en) 2004-05-06
US7809931B2 (en) 2010-10-05
GB0224627D0 (en) 2002-12-04
GB2394571A (en) 2004-04-28
AU2003273970A1 (en) 2004-05-13
JP2006504165A (ja) 2006-02-02
JP4275071B2 (ja) 2009-06-10

Similar Documents

Publication Publication Date Title
KR100812555B1 (ko) 단일-명령 다중-데이터 마이크로프로세서들에서의 벡터 순열을 위한 장치, 시스템 및 그 방법
US11669330B2 (en) Method for performing random read access to a block of data using parallel LUT read instruction in vector processors
US11188330B2 (en) Vector multiply-add instruction
US20240078285A1 (en) Systems and methods of instructions to accelerate multiplication of sparse matrices using bitmasks that identify non-zero elements
US20240078283A1 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
US7124160B2 (en) Processing architecture having parallel arithmetic capability
JP2008071130A (ja) Simd型マイクロプロセッサ
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
US20080263332A1 (en) Data Processing Apparatus and Method for Accelerating Execution Subgraphs
CN110909883A (zh) 用于执行指定三元片逻辑操作的指令的系统和方法
US9965275B2 (en) Element size increasing instruction
US7013321B2 (en) Methods and apparatus for performing parallel integer multiply accumulate operations
EP3716054A2 (en) Interleaved pipeline of floating-point adders
EP3623940A2 (en) Systems and methods for performing horizontal tile operations
US20230315450A1 (en) Apparatuses, methods, and systems for 8-bit floating-point matrix dot product instructions
US10001994B2 (en) Data processing apparatus and method for performing scan operations omitting a further step
EP3757822B1 (en) Apparatuses, methods, and systems for enhanced matrix multiplier architecture
CN114721624A (zh) 用于处理矩阵的处理器、方法和系统
US11886875B2 (en) Systems and methods for performing nibble-sized operations on matrix elements
CN113849768A (zh) 伴随数据类型转换来加载和存储矩阵数据
US11080054B2 (en) Data processing apparatus and method for generating a status flag using predicate indicators
JPH09223009A (ja) データ処理装置と方法
CN111984315A (zh) 矢量浮点缩放
JP3547316B2 (ja) プロセッサ
EP1503280A1 (en) Saturated arithmetic in a processing unit

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 12