KR20100034976A - 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서 - Google Patents

가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서 Download PDF

Info

Publication number
KR20100034976A
KR20100034976A KR1020080094237A KR20080094237A KR20100034976A KR 20100034976 A KR20100034976 A KR 20100034976A KR 1020080094237 A KR1020080094237 A KR 1020080094237A KR 20080094237 A KR20080094237 A KR 20080094237A KR 20100034976 A KR20100034976 A KR 20100034976A
Authority
KR
South Korea
Prior art keywords
instruction
phase
bit
unit
instruction set
Prior art date
Application number
KR1020080094237A
Other languages
English (en)
Other versions
KR100974939B1 (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 서경대학교 산학협력단
Priority to KR1020080094237A priority Critical patent/KR100974939B1/ko
Publication of KR20100034976A publication Critical patent/KR20100034976A/ko
Application granted granted Critical
Publication of KR100974939B1 publication Critical patent/KR100974939B1/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)

Abstract

본 발명은 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서에 관한 것으로서, 본 발명에서는 4 way SIMD 구조를 채택하며, 여러 개의 RISC 형식의 유닛 명령어를 조합하는 가변 길이 명령어를 채택하고 하나의 유닛 명령어는 엔드(end) 비트와 페이즈(phase bit) 비트를 가지고 있다. 엔드 비트는 명령어의 길이를 지정하기 위해 사용되며, 페이즈 비트는 명령어의 처리를 듀얼(이중)으로 나누어 1 way 당 2 개의 연산기를 동시에 사용할 수 있도록 한다.
따라서 일반적인 SIMD 구조보다 2배의 연산 효율을 가지며 유닛 명령어간의 수식을 통하여 수천의 다양한 명령어를 조합시킬 수 있어 멀티미디어 가속에 특화되어 있다.
Figure P1020080094237
RISC; 가변 길이 명령어 셋; SIMD; MIMD; dual phase

Description

가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서{DUAL PHASE SIMD PROCESSOR WITH VARIABLE LENGTH-INSTRUCTION SET}
본 발명은 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드(SIMD, Single Instruction Multiple Data) 프로세서에 관한 것으로서, 보다 구체적으로는 엔드 비트 및 페이즈 비트를 갖는 복수 개 유닛 명령어 셋을 구비하고, 상기 엔드 비트를 이용하여 가변 길이 명령어를 구현하고, 그 명령어 처리를 페이즈 비트를 통하여 복수의 연산을 동시에 처리하도록 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서에 관한 것이다.
모든 프로세서의 명령어는 크게 연산과 제어 명령으로 나뉜다. 이 두 종류의 명령어를 처리하기 위해서 별도의 명령어 형식을 구현하고 그 명령어를 해석할 수 있는 장치가 필요하다. 그러나 제어에는 분기, 비교, 메모리 제어, 레지스터 제어가 있는데 이러한 모든 종류의 명령어를 지원하기 위해 다양한 명령어 포맷이 존재해야 한다.
CISC 프로세서인 x86구조에서는 이를 위해 다양한 명령어가 준비되어 있다. 예를 들어 분기 명령어에서 Jmp (jump), je (jump if equal), jne (jump if not equal) 들로 다양하게 준비되어 있다.
하지만 그래픽 가속이나 동영상 코덱을 위해 설계되는 프로세서는 성능을 높이고 구조를 단순화시키기 위해 RISC 타입의 SIMD구조에 VLIW 명령어 구조를 채택하고 있다. 도 1은 종래 낭비가 심한(WASTEFUL) VLIW(Very Long Instruction Words) 명령어 셋을 도시한 것이며, 도 1과 같이 많은 마이크로 명령어와 오퍼랜드(operand)를 포함시키기 위해 긴 명령어 길이가 필요하다. 일반적인 RISC 타입의 프로세서는 명령어 필드 길이가 고정되어 있으며, CISC 보다 명령어 개수가 적어서 다양한 명령어 형식을 가지기 어렵다.
SIMD 구조의 프로세서는 높은 성능을 위해 많은 수의 연산기 모듈을 내재하고 있다. 이러한 연산기 모듈에 대하여 명령을 내리기 위한 구조로 VLIW의 긴 명령어 길이를 사용하는 것이 일반적이다. 이러한 명령어에는 많은 수의 연산기들을 효율적으로 사용할 수 있도록 설계되어야 한다. 일반적으로 VLIW 명령어 구조는 도 1과 같이 많은 수의 micro-operation 필드와 source/dest 필드들 그리고 연산기마다 별도로 필요로 하는 옵션 필드들이 필요하다. 그러나 SIMD 구조에서는 연산기 수가 많기 때문에 모든 연산기에 대한 명령어 필드를 가지기란 현실적으로 불가능하다. 따라서 보통 여러 연산기들 중 한가지의 연산기를 선택할 수 있도록 micro-operation을 두는 것이 보통이다. 그러나 이러한 경우에도 96 ~ 128 비트의 매우 긴 명령어 형식임에는 변함이 없다. 그리고 이러한 명령어 구조에서 각 필드들이 매 명령어마다 유용하게 사용된다고 보기는 어렵다. 왜냐하면 불필요한 옵션 정보들과 다양한 어플리케이션에 일반적인 연산 필드의 조합은 찾기가 쉽지 않기 때문이다.
이를 해결하기 위해 본 발명에서는 명령어를 작은 유닛 명령어로 분할시키며, 작은 RISC 구조의 유닛 명령어들의 조합을 통하여 SIMD 구조에 적합하도록 수 천의 명령어 조합을 생성 가능하게 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서를 제안하는 것을 목적으로 한다.
또한 본 발명에서는 긴 명령어를 보다 작은 유닛 명령어로 나누고 필요에 따라 조합하며, 명령어 간의 수식을 가능케 함으로써 단순한 명령은 짧게 복잡한 명령어는 길게 구현할 수 있게 하여 성능 효율을 높이고, 명령어가 차지하는 레지스터 사이즈를 줄이는 명령어 셋을 갖는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서를 제안하는 것을 목적으로 한다.
본 발명의 상기 목적은 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서로서, 복수 개의 유닛 명령어를 구비하고, 유닛 명령어에는 다른 유닛 명령어와 연결 여부를 표시하기 위한 엔드(end) 비트를 구비하고, 상기 엔드 비트에 따라 명령어 셋의 길이가 가변되는 것을 특징으로 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서에 의해서 달성 가능하다.
유닛 명령어에는 페이즈(phase) 비트를 더 구비하도록 하여 듀얼 페이즈 명령어 수행이 가능한 것을 특징으로 하며, 하나의 유닛 명령어는 32비트로 구성되도 록 하였다.
유닛 명령어에는 연산의 종류를 표시하는 연산자 비트, 데스티네이션(destination) 비트, 소스 비트 및 소스 선택 비트와 쓰기 마스크 비트를 포함하는 메인 연산 유닛 명령어 셋이 포함되며, 나아가 유닛 명령어 셋에는 연산의 종류를 표시하는 연산자 비트, 연산자 마스크 비트, 소스 비트 및 소스 선택 비트와 소스 마스크 비트를 포함하는 서브 연산 유닛 명령어 셋이 포함되도록 하였다. 각 페이즈에서 메인 연산 명령어만 존재할 경우 데스티네이션이 소스 오퍼랜드가 되는 것을 특징으로 하는 가변 길이 명령어 셋을 갖도록 하였다.
본 발명에 따른 가변 길이 명령어 셋을 갖는 리스크 프로세서는 멀티미디어 가속을 위한 SIMD 프로세서 구조의 종래 4 way SIMD구조보다 연산 효율을 최대 2배 높일 수 있다.
본 발명에 따른 가변 길이 명령어 셋을 갖는 리스크 프로세서는 명령어 길이를 최대 32비트까지 단축시킬 수 있고, 단일 명령어의 복잡도에 따라 128비트까지 확장시킬 수 있다.
또한 본 발명에 따른 가변 길이 명령어 셋을 갖는 리스크 프로세서는 Coordinate 명령의 조합을 통해 컨트롤 로직을 단순화시킬 수 있으며 프로세서의 크기를 보다 작게 설계할 수 있다.
본 발명에 따른 가변 길이 명령어 셋을 갖는 리스크 프로세서는 수천의 명령 어 조합을 통하여 다양한 응용프로그램에 최적화된 명령어를 설계할 수 있어 프로세서가 고성능을 낼 수 있도록 한다.
이하에서, 본 발명의 장점, 특징 및 바람직한 실시예를 첨부 도면을 참조하여 상세하게 설명하도록 한다.
도 2는 본 발명에 따른 일 실시예의 가변 명령어 구조의 도식도이다. 본 발명의 명령어 구조는 도 2과 같이 엔드(End) 및 페이즈(Phase) 비트에 의한 가변 길이 구조를 채택한다. 본 발명에 따른 명령어 셋은 엔드 비트와 페이즈 비트를 갖는 유닛(unit) 명령어들로 구성되며, 하나의 명령어는 적게는 하나의 유닛 명령어로 이루어지고 많게는 네 개의 유닛 명령어로 이루어진다. 유닛 명령어는 기본 32비트 단위의 유닛 명령어로서 최대 4개의 유닛 명령어가 조합되어 하나의 명령어 셋으로 이루어진다. 이것은 각 유닛 명령어의 최상위 비트를 엔드 비트(end bit)라고 정하고, 해당 비트 값이 1이 될 때까지의 유닛 명령어 셋을 하나의 명령어로 취급한다. 이 유닛 명령어의 조합 개수는 최대 4개로 제한되며 마지막 4번째의 유닛 명령어의 엔드 비트(end bit)는 don't care로 취급한다.
도 3은 본 발명에 따른 명령어 셋에서 가능한 유닛 명령어의 조합을 도시한 것으로서, 도 3과 같이 최상위 31번째 end bit와 30번째 phase bit를 추가적으로 두어 명령어를 좀더 세분화시키고 있다. 페이즈 비트(phase bit)는 유닛 명령어 를 1차 페이즈에 종속적인지 또는 2차 페이즈에 종속적인지를 나타낸다. 1차 페이즈는 2차 페이즈 명령어 앞에서만 사용할 수 있으며 각 페이즈는 최대 2개의 유닛 명령어를 초과하여 구현될 수 없다. 따라서 엔드 비트(end bit)와 페이즈 비트(phase bit)에 따라 최대 8개의 유닛 명령어 조합이 발생할 수 있다.
도 4는 본 발명에 따른 페이즈 구분에 따른 명령어 구조로서, 본 발명에 따른 명령어는 각 페이즈에 메인 유닛 명령어와 서브 유닛 명령어로 구별하며, 한 페이즈에 한 개의 유닛 명령어만 있을 경우 이는 메인 명령어가 된다.
본 발명의 명령어 구조는 표 1의 유닛 명령어 종류를 갖는다. 명령어 종류는 21개로 크게 arithmetic / coordinate / control 명령어로 나뉜다. 이 중 연산(Arithmetic) 명령어는 페이즈 1차와 2차 유닛 명령어로 모두 사용될 수 있다. 하지만 Coordinate 유닛 명령어는 페이즈 1차에서만 사용할 수 있으며 제어(control) 유닛 명령어는 반드시 페이즈 2차에서만 사용되어야 한다. 실제 가용한 유닛 명령어는 21개이지만 그 조합은 수천 개의 명령어로 표현될 수 있다
Instruction Type phase #0 phase #1
Normal Alternate Normal Alternate
연산 Move MOV(move) MVS(move status registers) MOV(move) MVS(move status registers)
Base Operation ADD(add) MUL(multiply) reserved reserved ADD(add) MUL(multiply) reserved reserved
Compare CMP(compare) reserved CMP(compare) reserved
Special Function RCP(reciprocal) MAN (Mantissa) RSQ(Reciprocal square root) EXP (Exponent) RCP(reciprocal) MAN (Mantissa) RSQ(Reciprocal square root) EXP (Exponent)
Setting FLR(Floor) CONV(data type conversion) FRC(Fraction) reserved FLR(Floor) CONV(data type conversion) FRC(Fraction) reserved
Logical AND(bit logic and) XOR(bit logic exclusive or) OR(bit logic or) SHR(logical or arithmetic shif) AND(bit logic and) XOR(bit logic exclusive or) OR(bit logic or) SHR(logical or arithmetic shif)
resrved reserved reserved reserved reserved
Coordinate PRED(predicate coordinate) ADDR(Address coordinate) reserved reserved
Control reserved reserved BRC (branch) MEM (memory operation)
도 5는 각 유닛 명령어의 입력과 coordinate / arithmetic / control 명령어와의 관계를 나타낸다. 각 유닛 명령어의 동작에는 main / sub 명령어로 입력되며 공통된 연산기에 적절히 배분되어야 하며, branch/memory 명령어는 반드시 페이즈 2차에서 입력되어야 한다. 페이즈 1차의 coordinate 유닛 명령어는 페이즈 2차 명령어를 수식하므로 페이즈 2차는 보다 복잡한 명령어나 레지스터의 다단 참조가 필요한 명령어를 단번에 실행할 수 있도록 돕는다. 각 페이즈는 최대 2개의 유닛 명령어를 입력받아 한 개의 연산결과를 낸다. 따라서 이 명령어 구조의 프로세서는 최대 2개의 결과를 낼 수 있다.
본 발명의 명령어 구조는 단일 프로세서가 2개의 프로세서처럼 명령어를 입력받아 연산기 사용 효율을 높이는 방식이기 때문에 공통된 연산기를 페이즈 1차와 2차에서 나누어 사용한다. 따라서 도 6과 같이 몇 가지 exclusive paring rules이 존재한다.
1. 연산 명령어는 x,y,z,w 컴퍼넌트 중 한 컴퍼넌트에 대하여 페이즈 1차와 2차 유닛 명령어에서 같은 연산기를 지정할 수 없다. 1차와 2차에서 모두 같은 연산기를 지정할 경우 2차에서 지정한 연산기 결과가 1차, 2차 페이즈에 모두 적용된다.
2. 연산 명령어 중 special function의 경우 x,y,z,w에 각각 연산기가 따로 존재하지 않고 오직 한 개의 연산기만 있는 경우는 모든 컴퍼넌트에 대하여 다른 입력 값을 넣을 수 없다. 따라서 연산 결과는 오직 하나이며, 다른 컴퍼넌트가 이를 사용할 경우 x,y,z,w 중 마지막에 입력된 컴퍼넌트 결과와 모두 동일하게 된다.
3. branch/memory 명령어는 페이즈 1차에서 사용될 수 없다.
4. Coordinate 명령어는 페이즈 2차에서 사용될 수 없다.
도 7은 본 발명의 일 실시예에 따른 유닛 명령어의 구조를 도시한다. 모든 유닛 명령어의 Extend는 end/phase bit를 담아 두고 있다. MO는 표 1의 마이크로 오퍼레이션을 지정하게 된다. MO_Option은 마이크로 오퍼레이션이 어떠한 목적지에 어떠한 컴퍼넌트에 적용될 지를 지정한다. SRC는 참조 소스를 지정한다. 모든 유닛은 한 개의 소스를 지정할 수 있으며 연산(arithmetic) 명령어의 경우 페이즈당 단일 유닛 명령어로 구현되었을 때 MO_Option이 두 번째 소스를 지정하기도 한다. Operand_Option은 MO, MO_Option, SRC의 옵션 정보를 나타내게 된다.
도 8은 본 발명의 일 실시예에 따른 메인 연산 유닛 명령어, 서브 연산 유닛 명령어, Coordinate 유닛 명령어 및 제어 유닛 명령어의 구조를 도시한다. 각 유닛 명령어의 E/P는 명령어 길이와 phase 위치를 정하며, MO는 명령어의 종류를 결정한다. Main arithmetic 명령어에서 DEST/SRC는 목적지 레지스터 번호를 지정하며 SRC는 첫 번째 소스 레지스터 번호를 지정한다. 단 sub unit 명령어가 없을 때에는 DEST/SRC가 두 번째 소스 레지스터 번호를 말한다. A는 alternate로서 표 1에서와 같이 명령어 종류의 확장을 나타낸다. Sl은 integer/float 연산을 지정한다. Sa는 결과를 0~1.0(float), 0~255(integer)로 saturation을 지정하기 위한 것이다. N은 소스의 값에서 양수를 음수로 음수를 양수 변환하는 역할을 한다. WMASK는 목적지 레지스터의 x,y,z,w의 쓰기 마스크를 지정한다. Xsel~Wsel은 소스의 swizzle을 하여 소스의 각 컴퍼넌트 위치를 변경하거나 연산 동작에 필요한 옵션정보로 사용된다.
Sub arithmetic 명령어에서 MO_MASK는 main 명령어의 MO를 각 컴퍼넌트에 대하여 sub의 MO로 override하기 위한 마스크 정보이다. SRC는 2차 소스 레지스터 번호를 지정한다. A/Sl/Sa/N 은 main과 같으며 MO_MASK의 정보에 영향을 받는다.
SMASK는 페이즈 1차의 sub 명령어와 페이즈 2차의 sub 명령어에 각각 하나씩 존재하여 총 두 개의 SMASK가 있는데 이것은 도 9에서처럼 페이즈 2차의 소스를 페이즈 1차의 소스 입력으로 override 시키기 위한 정보이다. 도 9는 페이즈 2차 소스를 페이즈 1차 소스 입력으로 override하는 것을 설명하기 위한 흐름도이다. 따라서 입력된 페이즈 1차의 소스 오퍼랜드 값이 페이즈 2차 소스로 대처할 수 있다. Coordinate 명령어에서 MO_MASK는 페이즈 2차의 수식할 컴퍼넌트를 나타낸다. EXT는 명령어 옵션 설정을 나타낸다.
도 10은 ADDR 명령어에 의해 페이즈 1차의 Coordinate ADDR 명령어의 SRC 옵션에 의해 페이즈 2차의 arithmetic 명령어의 DEST, main의 SRC, sub의 SRC 또는 control 명령어의 ADDR의 base address로 적용되는 각 예를 설명하는 도면이다. 이것을 이용해 indirect addressing mode를 구현할 수 있음을 보인다.
도 11은 페이즈 1차의 Coordinate 명령어인 PRED 명령어에 의해 Micro-operation mask가 0으로 클리어 되어 있어도 페이즈 1차 EXT 옵션 결과와 OR 연산되어 페이즈 1차 명령어에 의해 1로 셋 될 수 있음을 설명하는 도면이다. 이것은 페이즈 2차 명령어의 연산 결과가 페이즈 1차 명령어에 의해 유동적으로 레지스터에 업데이트 할 수 있도록 하며, 비교와 연산을 동시에 이루어지도록 하므로 보다 빠른 연산 수행이 가능하게 하고 복잡한 연산기와 비교기 조합을 가능케 한다.
Control 명령어에서 EX_OP/O는 Control 동작 조건을 지정한다. 특히 BRC(branch)는 관리를 위해 main 명령어만으로 한정되며, mem(memory) 명령어의 경우 주소 연산이 동시에 필요할 경우가 있기 때문에 main과 sub에 모두 사용할 수 있으나 두 명령어 모두 페이즈 2차에서 한 개씩만 사용할 수 있다.
상기에서 본 발명의 특정한 실시예가 설명 및 도시되었지만, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의하여 다양하게 변형되어 실시될 가능성이 있는 것은 자명한 일이다.
도 1은 종래 낭비가 심한(WASTEFUL) VLIW(Very Long Instruction Words) 명령어 셋.
도 2는 본 발명에 따른 일 실시예의 가변 명령어 구조의 도식도.
도 3은 본 발명에 따른 명령어 셋에서 가능한 유닛 명령어 셋의 조합.
도 4는 본 발명에 따른 페이즈 구분에 따른 명령어 구조.
도 5는 각 유닛 명령어의 입력과 coordinate / arithmetic / control 명령어와의 관계를 나타내는 도면.
도 6은 본 발명에서 동일한 페이즈에서 동시에 사용할 수 없는 명령어 예를 도시한 exclusive paring rules.
도 7은 본 발명의 일 실시예에 따른 유닛 명령어의 구조.
도 8은 본 발명의 일 실시예에 따른 메인 연산 유닛 명령어, 서브 연산 유닛 명령어, Coordinate 유닛 명령어 및 제어 유닛 명령어의 구조.
도 9는 SMASK의 동작 특성을 설명하는 흐름도.
도 10은 ADDR 명령어에 의해 페이즈 1차의 Coordinate ADDR 명령어의 SRC이 옵션에 의해 페이즈 2차의 arithmetic 명령어의 DEST, main의 SRC, sub의 SRC 또는 control 명령어의 ADDR의 base address로 적용되는 각 예를 설명하는 도면.
도 11은 페이즈 1차의 Coordinate 명령어인 PRED 명령어에 의해 Micro-operation mask가 0으로 클리어 되어 있어도 페이즈 1차 EXT 옵션 결과와 OR 연산되어 페이즈 1차 명령어에 의해 1로 셋 될 수 있음을 설명하는 도면.

Claims (5)

  1. 다양한 명령어 처리가 가능한 가변 길이 명령어 셋을 갖는 듀얼 페이즈(dual phase) 심드(SIMD) 프로세서로서,
    복수 개 리스크(RISC) 형식의 유닛 명령어를 구비하고, 상기 유닛 명령어에는 다른 유닛 명령어와 동시에 실행되는지 여부를 표시하는 엔드(end) 비트와, 듀얼 페이즈 명령어 수행 여부를 표시하는 페이즈(phase) 비트를 구비하고, 상기 엔드 비트에 따라 명령어 셋의 길이가 가변되고, 상기 페이즈 비트를 이용하여 듀얼 페이즈 처리가 가능한 것을 특징으로 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서.
  2. 제 1항에 있어서,
    상기 하나의 유닛 명령어는 32비트로 구성되는 것을 특징으로 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서.
  3. 제 1항에 있어서,
    상기 유닛 명령어에는 연산의 종류를 표시하는 연산자 비트, 데스티네이션(destination) 비트, 소스 비트 및 소스 선택 비트와 쓰기 마스크 비트를 포함하 는 메인 연산 유닛 명령어가 포함되는 것을 특징으로 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서.
  4. 제 1항 또는 제 3항에 있어서,
    상기 유닛 명령어에는 연산의 종류를 표시하는 연산자 비트, 연산자 마스크 비트, 소스 비트 및 소스 선택 비트와 소스 마스크 비트를 포함하는 서브 연산 유닛 명령어가 포함되는 것을 특징으로 하고, 상기 소스 마스크 비트를 이용하여 2차 페이즈의 소스 오퍼랜드(operand)를 1차 페이즈의 소스 오퍼랜드로 오버 라이드(override)하는 것을 특징으로 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서.
  5. 제 1항에 있어서,
    각 페이즈에서 메인 연산 명령어만 존재할 경우 데스티네이션이 소스 오퍼랜드가 되는 것을 특징으로 하는 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서.
KR1020080094237A 2008-09-25 2008-09-25 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서 KR100974939B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080094237A KR100974939B1 (ko) 2008-09-25 2008-09-25 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080094237A KR100974939B1 (ko) 2008-09-25 2008-09-25 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서

Publications (2)

Publication Number Publication Date
KR20100034976A true KR20100034976A (ko) 2010-04-02
KR100974939B1 KR100974939B1 (ko) 2010-08-10

Family

ID=42212986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080094237A KR100974939B1 (ko) 2008-09-25 2008-09-25 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서

Country Status (1)

Country Link
KR (1) KR100974939B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013048367A1 (en) * 2011-09-26 2013-04-04 Intel Corporation Instruction and logic to provide vector loads and stores with strides and masking functionality
US9122474B2 (en) 2011-11-15 2015-09-01 Samsung Electronics Co., Ltd. Apparatus and method for reducing overhead caused by communication between clusters

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013048367A1 (en) * 2011-09-26 2013-04-04 Intel Corporation Instruction and logic to provide vector loads and stores with strides and masking functionality
GB2507018A (en) * 2011-09-26 2014-04-16 Intel Corp Instruction and logic to provide vector loads and stores with strides and masking functionality
US9672036B2 (en) 2011-09-26 2017-06-06 Intel Corporation Instruction and logic to provide vector loads with strides and masking functionality
GB2507018B (en) * 2011-09-26 2020-04-22 Intel Corp Instruction and logic to provide vector loads and stores with strides and masking functionality
US9122474B2 (en) 2011-11-15 2015-09-01 Samsung Electronics Co., Ltd. Apparatus and method for reducing overhead caused by communication between clusters

Also Published As

Publication number Publication date
KR100974939B1 (ko) 2010-08-10

Similar Documents

Publication Publication Date Title
TWI544407B (zh) 浮點定比處理器、方法、系統及指令
CN117349584A (zh) 实行16位浮点矩阵点积指令的系统和方法
JP5918287B2 (ja) 演算マスクのマスクされていない要素をコンソリデートする命令処理装置、方法、システム、及びプログラム
KR20240011204A (ko) 행렬 연산 가속기의 명령어들을 위한 장치들, 방법들, 및 시스템들
CN107533460B (zh) 紧缩有限冲激响应(fir)滤波处理器、方法、系统和指令
CN118034781A (zh) 用于矩阵加法、减法和乘法的系统、方法和装置
CN117724766A (zh) 用于执行将矩阵变换为行交错格式的指令的系统和方法
US20060149804A1 (en) Multiply-sum dot product instruction with mask and splat
JP7419629B2 (ja) データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置
TW201349105A (zh) 點積處理器、方法、系統及指令
US20200026745A1 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
JP2023051994A (ja) 連鎖タイル演算を実施するためのシステムおよび方法
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
US20170031682A1 (en) Element size increasing instruction
CN112148251A (zh) 跳过无意义的矩阵运算的系统和方法
US7558816B2 (en) Methods and apparatus for performing pixel average operations
US20020032710A1 (en) Processing architecture having a matrix-transpose capability
US9933996B2 (en) Selectively combinable shifters
CN116880906A (zh) 用于8位浮点矩阵点积指令的装置、方法和系统
KR100974939B1 (ko) 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서
CN114675883A (zh) 用于对齐矩阵操作加速器瓦片的指令的装置、方法和系统
JP5193624B2 (ja) データプロセッサ
TW202223633A (zh) 用於實施16位元浮點矩陣點積指令的裝置、方法及系統
WO2007099950A1 (ja) 高速pe間データ再配置機能を有するプロセッサアレイシステム
US10001994B2 (en) Data processing apparatus and method for performing scan operations omitting a further step

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130802

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140523

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150703

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170721

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 10