KR20170110691A - 그래픽 프로세싱 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 - Google Patents
그래픽 프로세싱 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 Download PDFInfo
- Publication number
- KR20170110691A KR20170110691A KR1020177024761A KR20177024761A KR20170110691A KR 20170110691 A KR20170110691 A KR 20170110691A KR 1020177024761 A KR1020177024761 A KR 1020177024761A KR 20177024761 A KR20177024761 A KR 20177024761A KR 20170110691 A KR20170110691 A KR 20170110691A
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- register
- elements
- sequence
- instructions
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 686
- 238000012545 processing Methods 0.000 title claims abstract description 74
- 239000011159 matrix material Substances 0.000 claims description 69
- 238000000034 method Methods 0.000 claims description 49
- 238000010606 normalization Methods 0.000 claims description 7
- 230000017105 transposition Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 48
- 238000007792 addition Methods 0.000 description 23
- 238000003491 array Methods 0.000 description 23
- 230000006399 behavior Effects 0.000 description 22
- 230000009467 reduction Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 14
- 238000013459 approach Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000013507 mapping Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 229920006395 saturated elastomer Polymers 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000009738 saturating Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000796 flavoring agent Substances 0.000 description 2
- 235000019634 flavors Nutrition 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008450 motivation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000009940 knitting Methods 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- 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
- G06F15/8053—Vector processors
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- 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/3001—Arithmetic instructions
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- 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/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address 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/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G06F9/3855—
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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]
-
- 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/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
-
- 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
Description
[0030] 도 1은 본 개시내용의 예에 따른 프로세서이다.
[0031] 도 2는 본 개시내용의 예에 따른 벡터 유닛이다.
[0032] 도 3은 본 개시내용의 예에 따른 실행 파이프라인이다.
[0033] 도 4는 본 개시내용의 예에 따른 다른 실행 파이프라인이다.
[0034] 도 5는 본 개시내용의 예에 따른 벡터 실행 파이프라인이다.
[0035] 도 6은 본 개시내용의 예에 따른 넌-오버랩핑 서브-벡터 이슈이다.
[0036] 도 7은 본 개시내용의 예에 따른 오버랩핑 서브-벡터 이슈이다.
[0037] 도 8은 본 개시내용의 예에 따른 명령 이슈 구조이다.
[0038] 도 9는 본 개시내용의 예에 따른, 명령 시퀀스를 실행하는 동안의 이름변경을 도시한다.
[0039] 도 10은 본 개시내용의 예에 따른 레지스터 파일 편성을 도시한다.
[0040] 도 11은 본 개시내용의 예에 따른 메모리 뱅크이다.
[0041] 도 12는 본 개시내용의 예에 따른 벡터 레지스터 파일이다.
Claims (26)
- 컴퓨터 프로세서로서,
벡터 유닛을 포함하고,
상기 벡터 유닛은,
가변수의 엘리먼트들을 홀딩(holding)하기 위하여 적어도 하나의 레지스터를 포함하는 벡터 레지스터 파일; 및
하나 또는 그 초과의 그래픽 프로세싱 명령들을 사용하여 상기 벡터 레지스터 파일 내의 상기 가변수의 엘리먼트들에 대하여 연산하도록 구성된 프로세싱 로직을 포함하는,
컴퓨터 프로세서.
- 제 1 항에 있어서,
상기 컴퓨터 프로세서는 모놀리식 집적 회로로서 구현되는,
컴퓨터 프로세서.
- 제 1 항 또는 제 2 항에 있어서,
적어도 하나의 레지스터를 포함하는 벡터 길이 레지스터 파일을 더 포함하고,
상기 벡터 길이 레지스터 파일의 적어도 하나의 레지스터는 상기 프로세싱 로직이 연산하는 엘리먼트들의 수를 특정하기 위하여 사용되는,
컴퓨터 프로세서.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 및 매트릭스 산술인,
컴퓨터 프로세서.
- 제 4 항에 있어서,
상기 매트릭스 산술은 매트릭스 벡터 곱셈을 포함하는,
컴퓨터 프로세서.
- 제 5 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 제 1 벡터 레지스터 및 제 2 벡터 레지스터를 판독하고, 상기 제 1 벡터 레지스터의 엘리먼트들은 매트릭스를 포함하고, 상기 제 2 벡터 레지스터의 엘리먼트들은 벡터들의 시퀀스를 포함하고, 상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터에 저장된 벡터들의 출력 시퀀스를 생성하기 위해 상기 벡터들의 시퀀스 각각과 상기 매트릭스를 곱하는,
컴퓨터 프로세서.
- 제 4 항 또는 제 6 항에 있어서,
상기 매트릭스 산술은 매트릭스 곱셈을 포함하는,
컴퓨터 프로세서.
- 제 7 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 제 1 벡터 레지스터 및 제 2 벡터 레지스터를 판독하고, 상기 제 1 벡터 레지스터의 엘리먼트들은 매트릭스들의 제 1 시퀀스를 포함하고, 상기 제 2 벡터 레지스터의 엘리먼트들은 상기 매트릭스들의 제 1 시퀀스와 동일한 길이의 매트릭스들의 제 2 시퀀스들을 포함하고, 상기 매트릭스들의 제 1 시퀀스의 매트릭스들 각각은 상기 벡터 레지스터 파일에 저장된 매트릭스들의 시퀀스를 생성하기 위해 상기 매트릭스들의 제 2 시퀀스의 대응하는 매트릭스와 곱해지는,
컴퓨터 프로세서.
- 제 1 항 또는 제 8 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 정규화인,
컴퓨터 프로세서.
- 제 9 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터를 판독하고, 상기 벡터 레지스터의 엘리먼트들은 벡터들의 시퀀스를 포함하고, 상기 벡터들의 시퀀스의 각각의 벡터에 대한 정규화된 벡터가 컴퓨팅되고, 정규화된 벡터들의 결과적인 시퀀스가 상기 벡터 레지스터에 기록되는,
컴퓨터 프로세서.
- 제 9 항 또는 제 10 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터를 판독하고, 상기 벡터 레지스터의 엘리먼트들은 벡터들의 시퀀스를 포함하고, 상기 벡터들의 시퀀스의 각각의 벡터에 대해 정규화된 벡터에 대한 근사가 컴퓨팅되고, 거의 정규화된 벡터들의 결과적인 시퀀스가 벡터 레지스터에 기록되는,
컴퓨터 프로세서.
- 제 1 항 또는 제 11 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 정방 매트릭스의 매트릭스 전치를 구현하기 위해 가변수의 엘리먼트들의 데이터를 재배열하는,
컴퓨터 프로세서.
- 제 12 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터를 판독하고, 상기 벡터 레지스터의 엘리먼트들은 매트릭스들의 시퀀스를 포함하고, 상기 매트릭스들의 시퀀스의 각각의 매트릭스는 전치되고, 전치된 매트릭스들의 결과적인 시퀀스가 벡터 레지스터에 기록되는,
컴퓨터 프로세서.
- 방법으로서,
컴퓨터 프로세서의 하나 또는 그 초과의 레지스터들을 포함하는 벡터 레지스터 파일에 의해, 가변수의 엘리먼트들을 홀딩하는 단계; 및
상기 컴퓨터 프로세서의 프로세싱 로직에 의해, 하나 또는 그 초과의 그래픽 프로세싱 명령들을 사용하여 상기 벡터 레지스터 파일 내의 상기 가변수의 엘리먼트들에 대하여 연산하는 단계를 포함하는,
방법.
- 제 14 항에 있어서,
모놀리식 집적 회로로서 상기 컴퓨터 프로세서를 구현하는 단계를 더 포함하는,
방법.
- 제 14 항 또는 제 15 항에 있어서,
적어도 하나의 레지스터를 포함하는 벡터 길이 레지스터 파일을 더 포함하고, 상기 벡터 길이 레지스터 파일의 적어도 하나의 레지스터는 상기 프로세싱 로직이 연산하는 엘리먼트들의 수를 특정하기 위하여 사용되는,
방법.
- 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 및 매트릭스 산술인,
방법.
- 제 17 항에 있어서,
상기 매트릭스 산술은 매트릭스 벡터 곱셈을 포함하는,
방법.
- 제 18 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 제 1 벡터 레지스터 및 제 2 벡터 레지스터를 판독하고, 상기 제 1 벡터 레지스터의 엘리먼트들은 매트릭스를 포함하고, 상기 제 2 벡터 레지스터의 엘리먼트들은 벡터들의 시퀀스를 포함하고, 상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터에 저장된 벡터들의 출력 시퀀스를 생성하기 위해 상기 벡터들의 시퀀스 각각과 상기 매트릭스를 곱하는,
방법.
- 제 17 항 또는 제 19 항에 있어서,
상기 매트릭스 산술은 매트릭스 곱셈을 포함하는,
방법.
- 제 17 항, 제 19 항 또는 제 20 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 제 1 벡터 레지스터 및 제 2 벡터 레지스터를 판독하고, 상기 제 1 벡터 레지스터의 엘리먼트들은 매트릭스들의 제 1 시퀀스를 포함하고, 상기 제 2 벡터 레지스터의 엘리먼트들은 상기 매트릭스들의 제 1 시퀀스와 동일한 길이의 매트릭스들의 제 2 시퀀스들을 포함하고, 상기 매트릭스들의 제 1 시퀀스의 매트릭스들 각각은 상기 벡터 레지스터 파일에 저장된 매트릭스들의 시퀀스를 생성하기 위해 상기 매트릭스들의 제 2 시퀀스의 대응하는 매트릭스와 곱해지는,
방법.
- 제 14 항 또는 제 21 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 정규화인,
방법.
- 제 22 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터를 판독하고, 상기 벡터 레지스터의 엘리먼트들은 벡터들의 시퀀스를 포함하고, 상기 벡터들의 시퀀스의 각각의 벡터에 대한 정규화된 벡터가 컴퓨팅되고, 정규화된 벡터들의 결과적인 시퀀스가 상기 벡터 레지스터에 기록되는,
방법.
- 제 22 항 또는 제 23 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터를 판독하고, 상기 벡터 레지스터의 엘리먼트들은 벡터들의 시퀀스를 포함하고, 상기 벡터들의 시퀀스의 각각의 벡터에 대해 정규화된 벡터에 대한 근사가 컴퓨팅되고, 거의 정규화된 벡터들의 결과적인 시퀀스가 벡터 레지스터에 기록되는,
방법.
- 제 14 항 또는 제 24 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 정방 매트릭스의 매트릭스 전치를 구현하기 위해 가변수의 엘리먼트들의 데이터를 재배열하는,
방법.
- 제 25 항에 있어서,
상기 하나 또는 그 초과의 그래픽 프로세싱 명령들은 벡터 레지스터를 판독하고, 상기 벡터 레지스터의 엘리먼트들은 매트릭스들의 시퀀스를 포함하고, 상기 매트릭스들의 시퀀스의 각각의 매트릭스는 전치되고, 전치된 매트릭스들의 결과적인 시퀀스가 벡터 레지스터에 기록되는,
방법.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562110840P | 2015-02-02 | 2015-02-02 | |
US62/110,840 | 2015-02-02 | ||
US14/718,432 | 2015-05-21 | ||
US14/718,432 US10922267B2 (en) | 2015-02-02 | 2015-05-21 | Vector processor to operate on variable length vectors using graphics processing instructions |
PCT/US2016/015637 WO2016126543A1 (en) | 2015-02-02 | 2016-01-29 | Vector processor configured to operate on variable length vectors using graphics processing instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170110691A true KR20170110691A (ko) | 2017-10-11 |
KR102276335B1 KR102276335B1 (ko) | 2021-07-12 |
Family
ID=56553121
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177024754A KR102258024B1 (ko) | 2015-02-02 | 2016-01-21 | 엘리먼트 폭들을 변경시키는 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024756A KR102255318B1 (ko) | 2015-02-02 | 2016-01-25 | 벡터들을 결합 및 분할하기 위한 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024751A KR102255298B1 (ko) | 2015-02-02 | 2016-01-27 | 암묵적으로 분류된 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024757A KR20170110687A (ko) | 2015-02-02 | 2016-01-27 | 가변 길이 벡터들에 대해 연산하도록 구성된 모놀로식 벡터 프로세서 |
KR1020177024762A KR20170117452A (ko) | 2015-02-02 | 2016-01-27 | 레지스터 이름변경을 이용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024755A KR102255313B1 (ko) | 2015-02-02 | 2016-01-28 | 비대칭 멀티-스레딩을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024758A KR102255324B1 (ko) | 2015-02-02 | 2016-01-28 | 비순차적 실행을 통해 가변 길이 벡터들에 대해 동작하도록 구성된 벡터 프로세서 |
KR1020177024759A KR102270020B1 (ko) | 2015-02-02 | 2016-01-28 | 디지털 신호 프로세싱 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024760A KR102311010B1 (ko) | 2015-02-02 | 2016-01-29 | 하나 또는 그 초과의 복소수 산술 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024761A KR102276335B1 (ko) | 2015-02-02 | 2016-01-29 | 그래픽 프로세싱 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
Family Applications Before (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177024754A KR102258024B1 (ko) | 2015-02-02 | 2016-01-21 | 엘리먼트 폭들을 변경시키는 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024756A KR102255318B1 (ko) | 2015-02-02 | 2016-01-25 | 벡터들을 결합 및 분할하기 위한 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024751A KR102255298B1 (ko) | 2015-02-02 | 2016-01-27 | 암묵적으로 분류된 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024757A KR20170110687A (ko) | 2015-02-02 | 2016-01-27 | 가변 길이 벡터들에 대해 연산하도록 구성된 모놀로식 벡터 프로세서 |
KR1020177024762A KR20170117452A (ko) | 2015-02-02 | 2016-01-27 | 레지스터 이름변경을 이용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024755A KR102255313B1 (ko) | 2015-02-02 | 2016-01-28 | 비대칭 멀티-스레딩을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024758A KR102255324B1 (ko) | 2015-02-02 | 2016-01-28 | 비순차적 실행을 통해 가변 길이 벡터들에 대해 동작하도록 구성된 벡터 프로세서 |
KR1020177024759A KR102270020B1 (ko) | 2015-02-02 | 2016-01-28 | 디지털 신호 프로세싱 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
KR1020177024760A KR102311010B1 (ko) | 2015-02-02 | 2016-01-29 | 하나 또는 그 초과의 복소수 산술 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
Country Status (5)
Country | Link |
---|---|
US (10) | US11544214B2 (ko) |
EP (10) | EP3254185A4 (ko) |
KR (10) | KR102258024B1 (ko) |
CN (10) | CN107430507B (ko) |
WO (10) | WO2016126433A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593069B2 (en) | 2019-11-15 | 2023-02-28 | Intel Corporation | Use of a single instruction set architecture (ISA) instruction for vector normalization |
WO2023075146A1 (ko) * | 2021-10-28 | 2023-05-04 | 주식회사 사피온코리아 | 컴퓨팅 시스템 및 이를 위한 전치 방법 |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9606803B2 (en) | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
US11106462B2 (en) * | 2019-05-24 | 2021-08-31 | Texas Instruments Incorporated | Method and apparatus for vector sorting |
GB2540944B (en) * | 2015-07-31 | 2018-02-21 | Advanced Risc Mach Ltd | Vector operand bitsize control |
US10423411B2 (en) * | 2015-09-26 | 2019-09-24 | Intel Corporation | Data element comparison processors, methods, systems, and instructions |
CN111176608A (zh) * | 2016-04-26 | 2020-05-19 | 中科寒武纪科技股份有限公司 | 一种用于执行向量比较运算的装置和方法 |
CN107315717B (zh) * | 2016-04-26 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 一种用于执行向量四则运算的装置和方法 |
US10891131B2 (en) * | 2016-09-22 | 2021-01-12 | Intel Corporation | Processors, methods, systems, and instructions to consolidate data elements and generate index updates |
EP3336691B1 (en) * | 2016-12-13 | 2022-04-06 | ARM Limited | Replicate elements instruction |
EP3336692B1 (en) | 2016-12-13 | 2020-04-29 | Arm Ltd | Replicate partition instruction |
US11132599B2 (en) * | 2017-02-28 | 2021-09-28 | Microsoft Technology Licensing, Llc | Multi-function unit for programmable hardware nodes for neural network processing |
US10489877B2 (en) * | 2017-04-24 | 2019-11-26 | Intel Corporation | Compute optimization mechanism |
US10698685B2 (en) * | 2017-05-03 | 2020-06-30 | Intel Corporation | Instructions for dual destination type conversion, mixed precision accumulation, and mixed precision atomic memory operations |
US10430197B2 (en) | 2017-05-12 | 2019-10-01 | Samsung Electronics Co., Ltd. | Banking register renaming to reduce power |
US10572255B2 (en) * | 2017-06-29 | 2020-02-25 | Texas Instruments Incorporated | Stream engine with element promotion and decimation modes |
US11579881B2 (en) * | 2017-06-29 | 2023-02-14 | Intel Corporation | Instructions for vector operations with constant values |
CN109284822B (zh) * | 2017-07-20 | 2021-09-21 | 上海寒武纪信息科技有限公司 | 一种神经网络运算装置及方法 |
US20190073337A1 (en) * | 2017-09-05 | 2019-03-07 | Mediatek Singapore Pte. Ltd. | Apparatuses capable of providing composite instructions in the instruction set architecture of a processor |
US10534838B2 (en) | 2017-09-29 | 2020-01-14 | Intel Corporation | Bit matrix multiplication |
US10514924B2 (en) | 2017-09-29 | 2019-12-24 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10802826B2 (en) | 2017-09-29 | 2020-10-13 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US11074073B2 (en) | 2017-09-29 | 2021-07-27 | Intel Corporation | Apparatus and method for multiply, add/subtract, and accumulate of packed data elements |
US10552154B2 (en) | 2017-09-29 | 2020-02-04 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
US11243765B2 (en) * | 2017-09-29 | 2022-02-08 | Intel Corporation | Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements |
US10664277B2 (en) | 2017-09-29 | 2020-05-26 | Intel Corporation | Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words |
US10795676B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
US10795677B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values |
US11256504B2 (en) | 2017-09-29 | 2022-02-22 | Intel Corporation | Apparatus and method for complex by complex conjugate multiplication |
US10558366B2 (en) | 2017-11-14 | 2020-02-11 | International Business Machines Corporation | Automatic pinning of units of memory |
US10496437B2 (en) | 2017-11-14 | 2019-12-03 | International Business Machines Corporation | Context switch by changing memory pointers |
US10761983B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Memory based configuration state registers |
US10698686B2 (en) | 2017-11-14 | 2020-06-30 | International Business Machines Corporation | Configurable architectural placement control |
US10642757B2 (en) | 2017-11-14 | 2020-05-05 | International Business Machines Corporation | Single call to perform pin and unpin operations |
US10761751B2 (en) | 2017-11-14 | 2020-09-01 | International Business Machines Corporation | Configuration state registers grouped based on functional affinity |
US10552070B2 (en) | 2017-11-14 | 2020-02-04 | International Business Machines Corporation | Separation of memory-based configuration state registers based on groups |
US10664181B2 (en) | 2017-11-14 | 2020-05-26 | International Business Machines Corporation | Protecting in-memory configuration state registers |
US10635602B2 (en) | 2017-11-14 | 2020-04-28 | International Business Machines Corporation | Address translation prior to receiving a storage reference using the address to be translated |
US10592164B2 (en) | 2017-11-14 | 2020-03-17 | International Business Machines Corporation | Portions of configuration state registers in-memory |
US10901738B2 (en) | 2017-11-14 | 2021-01-26 | International Business Machines Corporation | Bulk store and load operations of configuration state registers |
US10684854B2 (en) * | 2017-11-28 | 2020-06-16 | Intel Corporation | Apparatus and method for converting a floating-point value from half precision to single precision |
US10489154B2 (en) * | 2017-11-28 | 2019-11-26 | Intel Corporation | Apparatus and method for complex multiply and accumulate |
US10452394B2 (en) | 2017-11-28 | 2019-10-22 | Intel Corporation | Apparatus and method for complex multiplication |
US10528346B2 (en) * | 2018-03-29 | 2020-01-07 | Intel Corporation | Instructions for fused multiply-add operations with variable precision input operands |
CN112912843A (zh) * | 2018-08-14 | 2021-06-04 | 优创半导体科技有限公司 | 具有精确中断和/或重写的向量指令 |
KR20210066843A (ko) | 2018-09-18 | 2021-06-07 | 옵티멈 세미컨덕터 테크놀로지스 인코포레이티드 | 마스킹된 벡터 명령어 구현 시스템 및 방법 |
WO2020066375A1 (ja) * | 2018-09-25 | 2020-04-02 | 日本電気株式会社 | 情報処理装置、情報処理方法、プログラム |
US11175915B2 (en) | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US10963246B2 (en) * | 2018-11-09 | 2021-03-30 | Intel Corporation | Systems and methods for performing 16-bit floating-point matrix dot product instructions |
CN109992411B (zh) * | 2019-02-18 | 2021-05-18 | 华夏芯(北京)通用处理器技术有限公司 | 一种实现可快速释放的vlv访存阵列的方法 |
SG11202108799QA (en) * | 2019-02-26 | 2021-09-29 | Lightmatter Inc | Hybrid analog-digital matrix processors |
US11294670B2 (en) * | 2019-03-27 | 2022-04-05 | Intel Corporation | Method and apparatus for performing reduction operations on a plurality of associated data element values |
US20200364047A1 (en) * | 2019-05-16 | 2020-11-19 | Facebook, Inc. | High throughput neural network operations using inter-layer memory layout transformation |
FR3097345B1 (fr) * | 2019-06-13 | 2021-06-25 | Stmicroelectronics Grand Ouest Sas | Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant |
US11481471B2 (en) * | 2019-08-16 | 2022-10-25 | Meta Platforms, Inc. | Mapping convolution to a matrix processor unit |
US11782713B1 (en) * | 2019-08-27 | 2023-10-10 | Amazon Technologies, Inc. | Security vulnerability mitigation using address space co-execution |
US20210089873A1 (en) * | 2019-09-24 | 2021-03-25 | Alibaba Group Holding Limited | Apparatus and system for execution of neural network |
CN111158755A (zh) * | 2019-11-29 | 2020-05-15 | 华东师范大学 | 用于消除simd向量化程序中缓存缺失的多向量交错执行方法 |
US11119772B2 (en) * | 2019-12-06 | 2021-09-14 | International Business Machines Corporation | Check pointing of accumulator register results in a microprocessor |
CN115552477A (zh) | 2020-05-01 | 2022-12-30 | 奇跃公司 | 采用施加的分层归一化的图像描述符网络 |
GB2597708B (en) | 2020-07-30 | 2022-11-02 | Advanced Risc Mach Ltd | Vector processing |
US11243778B1 (en) * | 2020-12-31 | 2022-02-08 | Microsoft Technology Licensing, Llc | Instruction dispatch for superscalar processors |
CN113590197B (zh) * | 2021-07-30 | 2023-09-26 | 中国人民解放军国防科技大学 | 一种支持可变长向量处理的可配置处理器及其实现方法 |
US20230060146A1 (en) * | 2021-08-31 | 2023-03-02 | Intel Corporation | Bfloat16 classification and manipulation instructions |
US11900111B2 (en) * | 2021-09-24 | 2024-02-13 | Qualcomm Incorporated | Permutation instruction |
CN113918883B (zh) * | 2021-11-03 | 2022-05-27 | 海光信息技术股份有限公司 | 数据处理方法、装置以及设备和计算机可读存储介质 |
US12190116B2 (en) | 2022-04-05 | 2025-01-07 | Simplex Micro, Inc. | Microprocessor with time count based instruction execution and replay |
US12141580B2 (en) | 2022-04-20 | 2024-11-12 | Simplex Micro, Inc. | Microprocessor with non-cacheable memory load prediction |
US12169716B2 (en) | 2022-04-20 | 2024-12-17 | Simplex Micro, Inc. | Microprocessor with a time counter for statically dispatching extended instructions |
US12124849B2 (en) * | 2022-07-13 | 2024-10-22 | Simplex Micro, Inc. | Vector processor with extended vector registers |
US12147812B2 (en) | 2022-07-13 | 2024-11-19 | Simplex Micro, Inc. | Out-of-order execution of loop instructions in a microprocessor |
EP4318225A1 (en) * | 2022-08-03 | 2024-02-07 | Intel Corporation | 8-bit floating point classification and manipulation instructions |
CN116257350B (zh) * | 2022-09-06 | 2023-12-08 | 进迭时空(杭州)科技有限公司 | 一种针对risc-v矢量寄存器的重命名分组装置 |
US11977496B1 (en) | 2022-09-29 | 2024-05-07 | Amazon Technologies, Inc. | Security vulnerability mitigation using hardware-supported context-dependent address space hiding |
CN116820910A (zh) * | 2023-08-28 | 2023-09-29 | 英特尔(中国)研究中心有限公司 | 处理装置、用于处理装置的验证装置和验证方法 |
CN117093268B (zh) * | 2023-10-19 | 2024-01-30 | 超睿科技(长沙)有限公司 | 一种向量处理方法、系统、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040075747A1 (en) * | 1997-07-15 | 2004-04-22 | Kia Silverbrook | Monolithic integrated circuit having a number of programmable processing elements |
US20110045543A1 (en) * | 2008-02-25 | 2011-02-24 | Takayuki Asahara | Process for production of 5'-guanylic acid |
US20140281435A1 (en) * | 2013-03-15 | 2014-09-18 | Analog Devices Technology | Method to paralleize loops in the presence of possible memory aliases |
US20140289495A1 (en) * | 2013-03-19 | 2014-09-25 | Apple Inc. | Enhanced predicate registers |
Family Cites Families (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5852265B2 (ja) | 1977-01-12 | 1983-11-21 | 株式会社日立製作所 | デ−タ処理装置 |
JPS6055864B2 (ja) | 1980-07-21 | 1985-12-06 | 株式会社日立製作所 | ベクトルプロセツサ |
US4541046A (en) | 1981-03-25 | 1985-09-10 | Hitachi, Ltd. | Data processing system including scalar data processor and vector data processor |
JPS6123275A (ja) | 1984-07-11 | 1986-01-31 | Nec Corp | ベクトル処理装置 |
US4745547A (en) | 1985-06-17 | 1988-05-17 | International Business Machines Corp. | Vector processing |
US4794516A (en) | 1985-10-31 | 1988-12-27 | International Business Machines Corporation | Method and apparatus for communicating data between a host and a plurality of parallel processors |
US5113521A (en) | 1988-03-18 | 1992-05-12 | Digital Equipment Corporation | Method and apparatus for handling faults of vector instructions causing memory management exceptions |
US5170370A (en) | 1989-11-17 | 1992-12-08 | Cray Research, Inc. | Vector bit-matrix multiply functional unit |
US5418973A (en) | 1992-06-22 | 1995-05-23 | Digital Equipment Corporation | Digital computer system with cache controller coordinating both vector and scalar operations |
US5513366A (en) | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
US5685005A (en) | 1994-10-04 | 1997-11-04 | Analog Devices, Inc. | Digital signal processor configured for multiprocessing |
US5680338A (en) | 1995-01-04 | 1997-10-21 | International Business Machines Corporation | Method and system for vector processing utilizing selected vector elements |
US5537606A (en) | 1995-01-31 | 1996-07-16 | International Business Machines Corporation | Scalar pipeline replication for parallel vector element processing |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US6237016B1 (en) | 1995-09-05 | 2001-05-22 | Intel Corporation | Method and apparatus for multiplying and accumulating data samples and complex coefficients |
US5936872A (en) | 1995-09-05 | 1999-08-10 | Intel Corporation | Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations |
US6058465A (en) | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
KR100188013B1 (ko) * | 1996-09-17 | 1999-06-01 | 윤종용 | 벡터 레지스터와 스칼라 레지스터 내부의 엘리먼트 자리이동을 이용한 유한충격응답(fir) 필터 구현방법 |
US5832288A (en) * | 1996-10-18 | 1998-11-03 | Samsung Electronics Co., Ltd. | Element-select mechanism for a vector processor |
US5991531A (en) * | 1997-02-24 | 1999-11-23 | Samsung Electronics Co., Ltd. | Scalable width vector processor architecture for efficient emulation |
US6076156A (en) | 1997-07-17 | 2000-06-13 | Advanced Micro Devices, Inc. | Instruction redefinition using model specific registers |
US7197625B1 (en) * | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6230257B1 (en) | 1998-03-31 | 2001-05-08 | Intel Corporation | Method and apparatus for staggering execution of a single packed data instruction using the same circuit |
US6263426B1 (en) * | 1998-04-30 | 2001-07-17 | Intel Corporation | Conversion from packed floating point data to packed 8-bit integer data in different architectural registers |
US6304963B1 (en) * | 1998-05-14 | 2001-10-16 | Arm Limited | Handling exceptions occuring during processing of vector instructions |
US6292193B1 (en) | 1998-07-30 | 2001-09-18 | Compaq Computer Corporation | Techniques for anisotropic texture mapping using multiple space-invariant filtering operations per pixel |
US6405304B1 (en) * | 1998-08-24 | 2002-06-11 | Compaq Information Technologies Group, L.P. | Method for mapping instructions using a set of valid and invalid logical to physical register assignments indicated by bits of a valid vector together with a logical register list |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6594754B1 (en) * | 1999-07-07 | 2003-07-15 | Intel Corporation | Mapping destination logical register to physical register storing immediate or renamed source register of move instruction and using mapping counters |
JP3940542B2 (ja) | 2000-03-13 | 2007-07-04 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
US7062523B1 (en) | 2000-08-01 | 2006-06-13 | Analog Devices, Inc. | Method for efficiently computing a fast fourier transform |
EP1332429B1 (en) * | 2000-11-06 | 2011-02-09 | Broadcom Corporation | Reconfigurable processing system and method |
US6901422B1 (en) | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
US6898691B2 (en) | 2001-06-06 | 2005-05-24 | Intrinsity, Inc. | Rearranging data between vector and matrix forms in a SIMD matrix processor |
US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
GB2383145B (en) | 2001-10-31 | 2005-09-07 | Alphamosaic Ltd | Data access in a processor |
US7467287B1 (en) * | 2001-12-31 | 2008-12-16 | Apple Inc. | Method and apparatus for vector table look-up |
US20040073773A1 (en) | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
KR100434502B1 (ko) | 2002-05-07 | 2004-06-05 | 삼성전자주식회사 | DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치 |
US7376812B1 (en) | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US7580965B2 (en) | 2002-09-27 | 2009-08-25 | Texas Instruments Incorporated | Discrete-time convolution cycle reduction with programmable digital signal processor |
US6904511B2 (en) | 2002-10-11 | 2005-06-07 | Sandbridge Technologies, Inc. | Method and apparatus for register file port reduction in a multithreaded processor |
US6781529B1 (en) | 2002-10-24 | 2004-08-24 | Apple Computer, Inc. | Methods and apparatuses for variable length encoding |
US20040193838A1 (en) * | 2003-03-31 | 2004-09-30 | Patrick Devaney | Vector instructions composed from scalar instructions |
US7334110B1 (en) | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
US7107436B2 (en) * | 2003-09-08 | 2006-09-12 | Freescale Semiconductor, Inc. | Conditional next portion transferring of data stream to or from register based on subsequent instruction aspect |
US9465611B2 (en) | 2003-10-02 | 2016-10-11 | Broadcom Corporation | Processor execution unit with configurable SIMD functional blocks for complex number operations |
US7793072B2 (en) | 2003-10-31 | 2010-09-07 | International Business Machines Corporation | Vector execution unit to process a vector instruction by executing a first operation on a first set of operands and a second operation on a second set of operands |
US7873812B1 (en) | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US20070106718A1 (en) | 2005-11-04 | 2007-05-10 | Shum Hoi L | Fast fourier transform on a single-instruction-stream, multiple-data-stream processor |
US7840954B2 (en) * | 2005-11-29 | 2010-11-23 | International Business Machines Corporation | Compilation for a SIMD RISC processor |
US7631171B2 (en) | 2005-12-19 | 2009-12-08 | Sun Microsystems, Inc. | Method and apparatus for supporting vector operations on a multi-threaded microprocessor |
US7721071B2 (en) | 2006-02-28 | 2010-05-18 | Mips Technologies, Inc. | System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor |
US20070239815A1 (en) | 2006-04-04 | 2007-10-11 | Qualcomm Incorporated | Pipeline fft architecture and method |
US20080071851A1 (en) | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
ATE463788T1 (de) | 2007-06-26 | 2010-04-15 | Ericsson Telefon Ab L M | Datenverarbeitungseinheit für anweisungen in geschachtelten schleifen |
US8245016B2 (en) * | 2007-09-28 | 2012-08-14 | International Business Machines Corporation | Multi-threaded processing |
US20090100249A1 (en) * | 2007-10-10 | 2009-04-16 | Eichenberger Alexandre E | Method and apparatus for allocating architectural register resources among threads in a multi-threaded microprocessor core |
US7847349B2 (en) | 2007-10-31 | 2010-12-07 | Agere Systems Inc. | Single-cycle FFT butterfly calculator |
US20090172348A1 (en) * | 2007-12-26 | 2009-07-02 | Robert Cavin | Methods, apparatus, and instructions for processing vector data |
CN101299233B (zh) * | 2008-04-08 | 2010-11-10 | 西安交通大学 | 基于fpga实现的运动目标识别与跟踪方法 |
US7966519B1 (en) | 2008-04-30 | 2011-06-21 | Hewlett-Packard Development Company, L.P. | Reconfiguration in a multi-core processor system with configurable isolation |
US8356159B2 (en) | 2008-08-15 | 2013-01-15 | Apple Inc. | Break, pre-break, and remaining instructions for processing vectors |
US9342486B2 (en) | 2008-10-03 | 2016-05-17 | Microsoft Technology Licensing, Llc | Fast computation of general fourier transforms on graphics processing units |
US20100115233A1 (en) | 2008-10-31 | 2010-05-06 | Convey Computer | Dynamically-selectable vector register partitioning |
US20100115234A1 (en) * | 2008-10-31 | 2010-05-06 | Cray Inc. | Configurable vector length computer processor |
US20100115232A1 (en) | 2008-10-31 | 2010-05-06 | Johnson Timothy J | Large integer support in vector operations |
US8200949B1 (en) * | 2008-12-09 | 2012-06-12 | Nvidia Corporation | Policy based allocation of register file cache to threads in multi-threaded processor |
GB2466976B (en) | 2009-01-16 | 2011-04-27 | Springsource Ltd | Controlling access to a shared resourse in a computer system |
WO2010095182A1 (ja) * | 2009-02-17 | 2010-08-26 | パナソニック株式会社 | マルチスレッドプロセッサ及びデジタルテレビシステム |
US8650240B2 (en) | 2009-08-17 | 2014-02-11 | International Business Machines Corporation | Complex matrix multiplication operations with data pre-conditioning in a high performance computing architecture |
US8555034B2 (en) * | 2009-12-15 | 2013-10-08 | Oracle America, Inc. | Execution of variable width vector processing instructions |
CN101776988B (zh) | 2010-02-01 | 2012-11-07 | 中国人民解放军国防科学技术大学 | 一种块大小可变的可重构矩阵寄存器文件 |
US8601044B2 (en) | 2010-03-02 | 2013-12-03 | Altera Corporation | Discrete Fourier Transform in an integrated circuit device |
US9928105B2 (en) * | 2010-06-28 | 2018-03-27 | Microsoft Technology Licensing, Llc | Stack overflow prevention in parallel execution runtime |
US20110320765A1 (en) * | 2010-06-28 | 2011-12-29 | International Business Machines Corporation | Variable width vector instruction processor |
US9092213B2 (en) | 2010-09-24 | 2015-07-28 | Intel Corporation | Functional unit for vector leading zeroes, vector trailing zeroes, vector operand 1s count and vector parity calculation |
US8868885B2 (en) | 2010-11-18 | 2014-10-21 | Ceva D.S.P. Ltd. | On-the-fly permutation of vector elements for executing successive elemental instructions |
CN102012803B (zh) * | 2010-11-25 | 2014-09-10 | 中国人民解放军国防科学技术大学 | 支持多宽度simd和多粒度simt的可配置矩阵寄存器单元 |
US8959501B2 (en) | 2010-12-14 | 2015-02-17 | Microsoft Corporation | Type and length abstraction for data types |
KR20120072226A (ko) | 2010-12-23 | 2012-07-03 | 한국전자통신연구원 | 고속 퓨리에 변환기 |
US20120216011A1 (en) * | 2011-02-18 | 2012-08-23 | Darryl Gove | Apparatus and method of single-instruction, multiple-data vector operation masking |
US9842005B2 (en) * | 2011-03-25 | 2017-12-12 | Intel Corporation | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
US20120254588A1 (en) | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask |
CN104951277B (zh) | 2011-04-01 | 2017-11-21 | 英特尔公司 | 向量友好指令格式及其执行 |
CN102156637A (zh) * | 2011-05-04 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 向量交叉多线程处理方法及向量交叉多线程微处理器 |
JP2012252374A (ja) | 2011-05-31 | 2012-12-20 | Renesas Electronics Corp | 情報処理装置 |
US9158597B2 (en) | 2011-07-08 | 2015-10-13 | Microsoft Technology Licensing, Llc | Controlling access to shared resource by issuing tickets to plurality of execution units |
US20130080672A1 (en) * | 2011-09-27 | 2013-03-28 | Kaminario Technologies Ltd. | System, method and computer program product for access control |
SE1150967A1 (sv) * | 2011-10-18 | 2013-01-15 | Mediatek Sweden Ab | Digital signalprocessor och basbandskommunikationsanordning |
CN102375805B (zh) | 2011-10-31 | 2014-04-02 | 中国人民解放军国防科学技术大学 | 面向向量处理器的基于simd的fft并行计算方法 |
WO2013086380A1 (en) * | 2011-12-08 | 2013-06-13 | Oracle International Corporation | Techniques for more efficient usage of memory - to - cpu bandwidth |
WO2013089707A1 (en) | 2011-12-14 | 2013-06-20 | Intel Corporation | System, apparatus and method for loop remainder mask instruction |
US20130159665A1 (en) | 2011-12-15 | 2013-06-20 | Verisilicon Holdings Co., Ltd. | Specialized vector instruction and datapath for matrix multiplication |
US9600285B2 (en) | 2011-12-22 | 2017-03-21 | Intel Corporation | Packed data operation mask concatenation processors, methods, systems and instructions |
WO2013095617A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for propagating conditionally evaluated values in simd/vector execution |
US9658850B2 (en) | 2011-12-23 | 2017-05-23 | Intel Corporation | Apparatus and method of improved permute instructions |
US20140195783A1 (en) * | 2011-12-29 | 2014-07-10 | Krishnan Karthikeyan | Dot product processors, methods, systems, and instructions |
US9092228B2 (en) | 2012-01-17 | 2015-07-28 | Texas Instruments Incorporated | Systems and methods for software instruction translation from a high-level language to a specialized instruction set |
CN102665049B (zh) * | 2012-03-29 | 2014-09-17 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
US9098265B2 (en) * | 2012-07-11 | 2015-08-04 | Arm Limited | Controlling an order for processing data elements during vector processing |
US9594724B2 (en) | 2012-08-09 | 2017-03-14 | International Business Machines Corporation | Vector register file |
GB2499277B (en) * | 2012-08-30 | 2014-04-02 | Imagination Tech Ltd | Global register protection in a multi-threaded processor |
CN103067706B (zh) * | 2012-12-20 | 2016-01-20 | 西安电子科技大学 | 基于fpga的ip核 |
US9720843B2 (en) | 2012-12-28 | 2017-08-01 | Intel Corporation | Access type protection of memory reserved for use by processor logic |
US9501276B2 (en) * | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
US9778932B2 (en) | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
US20140244977A1 (en) * | 2013-02-22 | 2014-08-28 | Mips Technologies, Inc. | Deferred Saving of Registers in a Shared Register Pool for a Multithreaded Microprocessor |
US9495154B2 (en) * | 2013-03-13 | 2016-11-15 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode vector processing, and related vector processors, systems, and methods |
US9275014B2 (en) | 2013-03-13 | 2016-03-01 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods |
US9354884B2 (en) | 2013-03-13 | 2016-05-31 | International Business Machines Corporation | Processor with hybrid pipeline capable of operating in out-of-order and in-order modes |
US9639503B2 (en) | 2013-03-15 | 2017-05-02 | Qualcomm Incorporated | Vector indirect element vertical addressing mode with horizontal permute |
US9304940B2 (en) | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
US9354891B2 (en) | 2013-05-29 | 2016-05-31 | Apple Inc. | Increasing macroscalar instruction level parallelism |
US20150007196A1 (en) | 2013-06-28 | 2015-01-01 | Intel Corporation | Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores |
US9619230B2 (en) | 2013-06-28 | 2017-04-11 | International Business Machines Corporation | Predictive fetching and decoding for selected instructions |
CN105993000B (zh) * | 2013-10-27 | 2021-05-07 | 超威半导体公司 | 用于浮点寄存器混叠的处理器和方法 |
GB2545307B (en) * | 2013-11-29 | 2018-03-07 | Imagination Tech Ltd | A module and method implemented in a multi-threaded out-of-order processor |
US9329867B2 (en) * | 2014-01-08 | 2016-05-03 | Qualcomm Incorporated | Register allocation for vectors |
CN103699516B (zh) | 2014-01-13 | 2017-02-15 | 中国人民解放军国防科学技术大学 | 向量处理器中基于simd的并行fft/ifft蝶形运算方法及装置 |
GB2523823B (en) | 2014-03-07 | 2021-06-16 | Advanced Risc Mach Ltd | Data processing apparatus and method for processing vector operands |
US9804846B2 (en) * | 2014-03-27 | 2017-10-31 | International Business Machines Corporation | Thread context preservation in a multithreading computer system |
US11200058B2 (en) * | 2014-05-07 | 2021-12-14 | Qualcomm Incorporated | Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media |
US20160026607A1 (en) * | 2014-07-25 | 2016-01-28 | Qualcomm Incorporated | Parallelization of scalar operations by vector processors using data-indexed accumulators in vector register files, and related circuits, methods, and computer-readable media |
US9665466B2 (en) * | 2014-09-02 | 2017-05-30 | Nxp Usa, Inc. | Debug architecture for multithreaded processors |
US9720696B2 (en) * | 2014-09-30 | 2017-08-01 | International Business Machines Corporation | Independent mapping of threads |
US9916130B2 (en) * | 2014-11-03 | 2018-03-13 | Arm Limited | Apparatus and method for vector processing |
-
2015
- 2015-05-12 US US14/709,730 patent/US11544214B2/en active Active
- 2015-05-19 US US14/716,285 patent/US10339095B2/en active Active
- 2015-05-19 US US14/716,216 patent/US10339094B2/en active Active
- 2015-05-21 US US14/718,740 patent/US10846259B2/en not_active Expired - Fee Related
- 2015-05-21 US US14/718,432 patent/US10922267B2/en active Active
- 2015-05-22 US US14/719,432 patent/US20160224514A1/en not_active Abandoned
- 2015-05-28 US US14/724,061 patent/US10824586B2/en active Active
- 2015-06-01 US US14/727,076 patent/US9910824B2/en active Active
- 2015-06-01 US US14/727,051 patent/US10733140B2/en active Active
- 2015-06-02 US US14/728,522 patent/US9959246B2/en active Active
-
2016
- 2016-01-21 CN CN201680013705.4A patent/CN107430507B/zh active Active
- 2016-01-21 EP EP16746957.6A patent/EP3254185A4/en not_active Withdrawn
- 2016-01-21 WO PCT/US2016/014288 patent/WO2016126433A1/en active Application Filing
- 2016-01-21 KR KR1020177024754A patent/KR102258024B1/ko active IP Right Grant
- 2016-01-25 KR KR1020177024756A patent/KR102255318B1/ko active IP Right Grant
- 2016-01-25 EP EP16746967.5A patent/EP3254205A4/en not_active Withdrawn
- 2016-01-25 WO PCT/US2016/014733 patent/WO2016126448A1/en active Application Filing
- 2016-01-25 CN CN201680013206.5A patent/CN107408101B/zh active Active
- 2016-01-27 WO PCT/US2016/015117 patent/WO2016126482A1/en active Application Filing
- 2016-01-27 KR KR1020177024751A patent/KR102255298B1/ko active IP Right Grant
- 2016-01-27 CN CN201680013182.3A patent/CN107430581B/zh active Active
- 2016-01-27 WO PCT/US2016/015146 patent/WO2016126486A1/en active Application Filing
- 2016-01-27 EP EP16746998.0A patent/EP3254186B1/en active Active
- 2016-01-27 EP EP16746995.6A patent/EP3254204A4/en not_active Withdrawn
- 2016-01-27 CN CN201680013422.XA patent/CN107408037B/zh active Active
- 2016-01-27 KR KR1020177024757A patent/KR20170110687A/ko not_active Application Discontinuation
- 2016-01-27 CN CN201680013280.7A patent/CN107430589B/zh active Active
- 2016-01-27 KR KR1020177024762A patent/KR20170117452A/ko not_active Application Discontinuation
- 2016-01-27 EP EP16746997.2A patent/EP3254206A4/en not_active Withdrawn
- 2016-01-27 WO PCT/US2016/015131 patent/WO2016126485A1/en active Application Filing
- 2016-01-28 CN CN201680013784.9A patent/CN107408102B/zh active Active
- 2016-01-28 WO PCT/US2016/015355 patent/WO2016126516A1/en active Application Filing
- 2016-01-28 KR KR1020177024755A patent/KR102255313B1/ko active IP Right Grant
- 2016-01-28 EP EP16747020.2A patent/EP3254195B1/en active Active
- 2016-01-28 WO PCT/US2016/015365 patent/WO2016126519A1/en active Application Filing
- 2016-01-28 KR KR1020177024758A patent/KR102255324B1/ko active IP Right Grant
- 2016-01-28 CN CN201680013718.1A patent/CN107408040B/zh active Active
- 2016-01-28 WO PCT/US2016/015376 patent/WO2016126521A1/en active Application Filing
- 2016-01-28 EP EP16747022.8A patent/EP3254188A4/en not_active Withdrawn
- 2016-01-28 KR KR1020177024759A patent/KR102270020B1/ko active IP Right Grant
- 2016-01-28 CN CN201680013566.5A patent/CN107408063B/zh active Active
- 2016-01-28 EP EP16747024.4A patent/EP3254207A4/en not_active Ceased
- 2016-01-29 CN CN201680013786.8A patent/CN107408038B/zh active Active
- 2016-01-29 EP EP16747031.9A patent/EP3254187B1/en active Active
- 2016-01-29 WO PCT/US2016/015652 patent/WO2016126545A1/en active Application Filing
- 2016-01-29 WO PCT/US2016/015637 patent/WO2016126543A1/en active Application Filing
- 2016-01-29 CN CN201680013787.2A patent/CN107408103B/zh active Active
- 2016-01-29 EP EP16747033.5A patent/EP3254208A4/en not_active Withdrawn
- 2016-01-29 KR KR1020177024760A patent/KR102311010B1/ko active IP Right Grant
- 2016-01-29 KR KR1020177024761A patent/KR102276335B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040075747A1 (en) * | 1997-07-15 | 2004-04-22 | Kia Silverbrook | Monolithic integrated circuit having a number of programmable processing elements |
US20110045543A1 (en) * | 2008-02-25 | 2011-02-24 | Takayuki Asahara | Process for production of 5'-guanylic acid |
US20140281435A1 (en) * | 2013-03-15 | 2014-09-18 | Analog Devices Technology | Method to paralleize loops in the presence of possible memory aliases |
US20140289495A1 (en) * | 2013-03-19 | 2014-09-25 | Apple Inc. | Enhanced predicate registers |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593069B2 (en) | 2019-11-15 | 2023-02-28 | Intel Corporation | Use of a single instruction set architecture (ISA) instruction for vector normalization |
WO2023075146A1 (ko) * | 2021-10-28 | 2023-05-04 | 주식회사 사피온코리아 | 컴퓨팅 시스템 및 이를 위한 전치 방법 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102270020B1 (ko) | 디지털 신호 프로세싱 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 20170901 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PG1501 | Laying open of application | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20210129 Comment text: Request for Examination of Application |
|
PA0302 | Request for accelerated examination |
Patent event date: 20210129 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20210406 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20210706 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20210706 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20240624 Start annual number: 4 End annual number: 4 |