KR100958964B1 - 단일 명령어 다중 데이터 실행 엔진 플래그 레지스터용평가 유닛 - Google Patents
단일 명령어 다중 데이터 실행 엔진 플래그 레지스터용평가 유닛 Download PDFInfo
- Publication number
- KR100958964B1 KR100958964B1 KR1020077014564A KR20077014564A KR100958964B1 KR 100958964 B1 KR100958964 B1 KR 100958964B1 KR 1020077014564 A KR1020077014564 A KR 1020077014564A KR 20077014564 A KR20077014564 A KR 20077014564A KR 100958964 B1 KR100958964 B1 KR 100958964B1
- Authority
- KR
- South Korea
- Prior art keywords
- flag register
- execution engine
- bits
- bit
- simd
- Prior art date
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 79
- 239000013598 vector Substances 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
Abstract
Description
Claims (30)
- 다수의 m채널 독립 벡터에 대한 단일 명령어의 실행에 의해 생성되는 정보를 n채널 단일 명령어 다중 데이터(Single Instruction, Multiple-Data; SIMD) 실행 엔진의 n위치 플래그 레지스터에 저장하는 단계 - n 및 m은 1보다 큰 정수이고, 각각의 벡터는 3차원 그래픽 위치와 연관된 적어도 3개의 값을 포함함 - ;SIMD 실행 엔진 채널들의 적어도 하나의 세트를 나타내는 표시(indication)를 수신하는 단계;상기 SIMD 실행 엔진 채널들의 표시된 세트를 나타내는 상기 플래그 레지스터 내의 비트들의 세트를 평가하는 단계; 및상기 평가에 기초하여 출력을 생성하는 단계를 포함하고,상기 비트들의 세트는 적어도 2개의 상이한 독립 벡터들과 연관된 비트들을 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 제1항에 있어서, 상기 플래그 레지스터는 p개 비트를 갖고, 각각의 비트는 상기 SIMD 실행 엔진의 적어도 하나의 채널을 나타내고, p는 n보다 작은 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 제1항에 있어서, 상기 출력은 p개 비트를 갖고, 각각의 비트는 상기 SIMD 실행 엔진의 적어도 하나의 채널을 나타내고, p는 n보다 작은 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 삭제
- 제1항에 있어서, (i) 상기 플래그 레지스터는 n개 비트를 갖고, 각각의 비트는 상기 SIMD 실행 엔진의 채널을 나타내며, (ii) 상기 출력은 n개 비트를 갖고, 각각의 비트는 상기 SIMD 실행 엔진의 채널을 나타내는 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 제5항에 있어서, 상기 출력의 제1 비트는 상기 SIMD 실행 엔진의 제1 채널을 나타내고, 상기 출력의 제1 비트의 값은 상기 제1 채널을 나타내지 않는 상기 플래그 레지스터 내의 비트에 적어도 부분적으로 기초하는 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 삭제
- 제1항에 있어서, 상기 평가 단계는 (i) 상기 플래그 레지스터 내의 비트들의 세트 중 모든 비트가 제1 값을 갖는지, 또는 (ii) 상기 플래그 레지스터 내의 비트들의 세트 중 임의의 비트가 제1 값을 갖는지를 판정하는 단계를 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 제1항에 있어서, 표시들은 SIMD 실행 엔진 채널들의 상이한 크기의 세트들과 연관될 수 있는 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 제1항에 있어서, 상기 수신된 표시는 다수의 세트와 연관되고, 상기 평가 단계 및 저장 단계는 각각의 세트에 대해 수행되는 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 제1항에 있어서, 상기 저장 단계는 제1 정보를 제1 플래그 레지스터에 저장하는 단계를 포함하고,제2 정보를 상기 SIMD 실행 엔진의 제2 플래그 레지스터에 저장하는 단계;SIMD 실행 엔진 채널들의 제2 세트를 나타내는 제2 표시를 수신하는 단계 - 상기 SIMD 실행 엔진 채널들의 제2 세트는 상기 SIMD 실행 엔진 채널들의 표시된 세트와 상이함 - ;상기 SIMD 실행 엔진 채널들의 제2 세트를 나타내는 상기 제2 플래그 레지스터 내의 비트들의 세트를 평가하는 단계; 및상기 평가에 기초하여 제2 출력을 생성하는 단계를 더 포함하고,상기 제2 출력은 상이한 독립 벡터들로부터 결과가 나오는 값을 갖는 적어도 하나의 위치를 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- n채널 단일 명령어 다중 데이터(SIMD) 실행 엔진의 n비트 플래그 레지스터 - n은 1보다 큰 정수이고, 상기 플래그 레지스터의 각 비트는 채널과 연관되고, 상기 플래그 레지스터는 실행 유닛으로부터의 정보를 저장하는 것이며, 상기 정보는 다수의 m채널 독립 벡터들에 대한 단일 명령어의 실행에 의해 생성되고, m은 1보다 큰 정수이고, 각각의 벡터는 3차원 그래픽 위치와 연관된 적어도 3개의 값을 포함함 - ; 및SIMD 실행 엔진 채널들의 적어도 하나의 세트를 나타내는 표시를 수신하고, SIMD 실행 엔진 채널들의 표시된 세트를 나타내는 상기 플래그 레지스터 내의 비트들의 세트를 평가하며, 상기 평가에 기초하여 출력을 생성하는 수평 평가 유닛을 포함하고,상기 비트들의 세트는 적어도 2개의 상이한 독립 벡터들과 연관된 비트들을 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 장치.
- 삭제
- 제21항에 있어서, 표시들은 SIMD 실행 엔진 채널들의 상이한 크기의 세트들과 연관될 수 있는 SIMD 실행 엔진 플래그 레지스터 평가 장치.
- n채널 단일 명령어 다중 데이터(SIMD) 실행 엔진의 n비트 플래그 레지스터 - n은 1보다 큰 정수이고, 상기 플래그 레지스터의 각 비트는 채널과 연관되고, 상기 플래그 레지스터는 실행 유닛으로부터의 정보를 저장하는 것이며, 상기 정보는 다수의 m채널 독립 벡터들에 대한 단일 명령어의 실행에 의해 생성되고, m은 1보다 큰 정수이고, 각각의 벡터는 3차원 그래픽 위치와 연관된 적어도 3개의 값을 포함함 - ; 및상기 플래그 레지스터 내의 플래그들의 적어도 하나의 세트를 나타내는 표시를 수신하고, 상기 플래그 레지스터 내의 플래그들의 표시된 세트를 나타내는 상기 플래그 레지스터 내의 비트들의 세트를 평가하고, 상기 평가에 기초하여 출력을 생성하는 수직 평가 유닛을 포함하고,상기 비트들의 세트는 적어도 2개의 상이한 독립 벡터들과 연관된 비트들을 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 장치.
- 삭제
- 제24항에 있어서, 상기 표시를 제공하고 상기 출력을 수신하는 실행 유닛을 더 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 장치.
- n채널 단일 명령어 다중 데이터(SIMD) 실행 엔진을 포함하는 프로세서 - n은 1보다 큰 정수임 - ; 및그래픽 메모리 유닛을 포함하고,상기 SIMD 실행 엔진은,제1 n비트 플래그 레지스터,제2 n비트 플래그 레지스터 - 각각의 플래그 레지스터는 다수의 m채널 독립 벡터들에 대한 단일 명령어의 실행에 의해 생성되는 정보를 포함하고, n 및 m은 1보다 큰 정수이고, 각각의 벡터는 3차원 그래픽 위치와 연관된 적어도 3개의 값을 포함함 - , 및상기 제1 n비트 플래그 레지스터 내의 플래그들의 적어도 하나의 세트를 나타내는 표시를 수신하고, 상기 제1 n비트 플래그 레지스터 내의 플래그들의 표시된 세트를 나타내는 상기 제1 n비트 플래그 레지스터 내의 비트들의 세트를 평가하고, 상기 평가에 기초하여 출력을 생성하는 수직 평가 유닛을 포함하며,상기 비트들의 세트는 적어도 2개의 상이한 독립 벡터들과 연관된 비트들을 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 시스템.
- 삭제
- 제27항에 있어서, 수평 평가 유닛을 더 포함하는 SIMD 실행 엔진 플래그 레지스터 평가 시스템.
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/015,778 US7219213B2 (en) | 2004-12-17 | 2004-12-17 | Flag bits evaluation for multiple vector SIMD channels execution |
US11/015,778 | 2004-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070089208A KR20070089208A (ko) | 2007-08-30 |
KR100958964B1 true KR100958964B1 (ko) | 2010-05-20 |
Family
ID=36123387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077014564A KR100958964B1 (ko) | 2004-12-17 | 2005-12-15 | 단일 명령어 다중 데이터 실행 엔진 플래그 레지스터용평가 유닛 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7219213B2 (ko) |
JP (1) | JP4901754B2 (ko) |
KR (1) | KR100958964B1 (ko) |
CN (1) | CN100422979C (ko) |
DE (1) | DE112005003130B4 (ko) |
GB (1) | GB2436499B (ko) |
TW (1) | TWI297853B (ko) |
WO (1) | WO2006066262A2 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008071130A (ja) * | 2006-09-14 | 2008-03-27 | Ricoh Co Ltd | Simd型マイクロプロセッサ |
US9892047B2 (en) * | 2009-09-17 | 2018-02-13 | Provenance Asset Group Llc | Multi-channel cache memory |
US8996845B2 (en) * | 2009-12-22 | 2015-03-31 | Intel Corporation | Vector compare-and-exchange operation |
CN103959237B (zh) | 2011-11-30 | 2016-09-28 | 英特尔公司 | 用于提供向量横向比较功能的指令和逻辑 |
US10318291B2 (en) | 2011-11-30 | 2019-06-11 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
US10255228B2 (en) * | 2011-12-06 | 2019-04-09 | Nvidia Corporation | System and method for performing shaped memory access operations |
US10042813B2 (en) * | 2014-12-15 | 2018-08-07 | Intel Corporation | SIMD K-nearest-neighbors implementation |
GB2536069B (en) * | 2015-03-25 | 2017-08-30 | Imagination Tech Ltd | SIMD processing module |
US20200341772A1 (en) * | 2019-04-29 | 2020-10-29 | DeGirum Corporation | Efficient Architectures For Deep Learning Algorithms |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083311A1 (en) * | 2000-12-27 | 2002-06-27 | Paver Nigel C. | Method and computer program for single instruction multiple data management |
KR20040027409A (ko) * | 2002-09-25 | 2004-04-01 | 마쯔시다덴기산교 가부시키가이샤 | 프로세서 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2768803B2 (ja) * | 1990-04-26 | 1998-06-25 | 株式会社東芝 | 並列演算処理装置 |
JP2793357B2 (ja) * | 1990-11-20 | 1998-09-03 | 株式会社東芝 | 並列演算装置 |
JP2793342B2 (ja) * | 1990-08-09 | 1998-09-03 | 株式会社東芝 | 演算処理装置 |
US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
JP3442225B2 (ja) * | 1996-07-11 | 2003-09-02 | 株式会社日立製作所 | 演算処理装置 |
US5805875A (en) * | 1996-09-13 | 1998-09-08 | International Computer Science Institute | Vector processing system with multi-operation, run-time configurable pipelines |
JP3652518B2 (ja) | 1998-07-31 | 2005-05-25 | 株式会社リコー | Simd方式の演算器及び演算処理装置 |
GB2382886B (en) * | 2001-10-31 | 2006-03-15 | Alphamosaic Ltd | Vector processing system |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
-
2004
- 2004-12-17 US US11/015,778 patent/US7219213B2/en not_active Expired - Fee Related
-
2005
- 2005-12-15 GB GB0713878A patent/GB2436499B/en not_active Expired - Fee Related
- 2005-12-15 KR KR1020077014564A patent/KR100958964B1/ko not_active IP Right Cessation
- 2005-12-15 JP JP2007547041A patent/JP4901754B2/ja not_active Expired - Fee Related
- 2005-12-15 WO PCT/US2005/046321 patent/WO2006066262A2/en active Application Filing
- 2005-12-15 DE DE112005003130T patent/DE112005003130B4/de not_active Expired - Fee Related
- 2005-12-16 TW TW094144840A patent/TWI297853B/zh not_active IP Right Cessation
- 2005-12-19 CN CNB2005101347265A patent/CN100422979C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083311A1 (en) * | 2000-12-27 | 2002-06-27 | Paver Nigel C. | Method and computer program for single instruction multiple data management |
KR20040027409A (ko) * | 2002-09-25 | 2004-04-01 | 마쯔시다덴기산교 가부시키가이샤 | 프로세서 |
Also Published As
Publication number | Publication date |
---|---|
GB2436499B (en) | 2009-07-22 |
WO2006066262A3 (en) | 2006-12-14 |
KR20070089208A (ko) | 2007-08-30 |
WO2006066262A2 (en) | 2006-06-22 |
CN1790310A (zh) | 2006-06-21 |
JP4901754B2 (ja) | 2012-03-21 |
DE112005003130T5 (de) | 2007-11-22 |
TW200636573A (en) | 2006-10-16 |
CN100422979C (zh) | 2008-10-01 |
GB0713878D0 (en) | 2007-08-29 |
US7219213B2 (en) | 2007-05-15 |
TWI297853B (en) | 2008-06-11 |
DE112005003130B4 (de) | 2009-09-17 |
US20060149924A1 (en) | 2006-07-06 |
JP2008524723A (ja) | 2008-07-10 |
GB2436499A (en) | 2007-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100958964B1 (ko) | 단일 명령어 다중 데이터 실행 엔진 플래그 레지스터용평가 유닛 | |
KR100935308B1 (ko) | 실행 엔진을 포함하는 프로세싱 시스템에서 피연산자에 대해 인스트럭션을 실행하는 방법, 장치 및 시스템 | |
CN109643233B (zh) | 具有带读取和读取/前进操作数编码的流引擎的数据处理设备 | |
JP5658556B2 (ja) | メモリ制御装置、及びメモリ制御方法 | |
US7434024B2 (en) | SIMD processor with register addressing, buffer stall and methods | |
WO2006012070A2 (en) | Conditional instruction for a single instruction, multiple data execution engine | |
KR101371931B1 (ko) | 제어된 데이터 액세스를 이용하여 다중 데이터 타입을 저장하는 데이터 파일 | |
CN100410919C (zh) | 处理器 | |
CN108205448B (zh) | 具有在每个维度上可选择的多维循环寻址的流引擎 | |
US20190004797A1 (en) | Exposing valid byte lanes as vector predicates to cpu | |
GB2474901A (en) | Multiply-accumulate instruction which adds or subtracts based on a predicate value | |
US10409604B2 (en) | Apparatus and method for performing multiply-and-accumulate-products operations | |
WO2023077769A1 (zh) | 数据处理方法、装置以及设备和计算机可读存储介质 | |
CN109416633B (zh) | 用于执行重新排列操作的设备及方法 | |
US20060149938A1 (en) | Determining a register file region based at least in part on a value in an index register | |
CN112416256A (zh) | 数据写入方法、装置及数据读取方法、装置 | |
US7441099B2 (en) | Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit | |
US20080162522A1 (en) | Methods and apparatuses for compaction and/or decompaction | |
WO2010067522A1 (ja) | 演算ユニット、プロセッサ及び並列演算方法 | |
JP5659772B2 (ja) | 演算処理装置 | |
US20040128475A1 (en) | Widely accessible processor register file and method for use | |
US20080162879A1 (en) | Methods and apparatuses for aligning and/or executing instructions | |
WO2023242531A1 (en) | Technique for performing outer product operations | |
JP2004302772A (ja) | ベクトルプロセッサおよびアドレス指定方法 | |
JP2006004226A (ja) | データ演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130503 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140502 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150430 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160427 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170504 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180427 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |