KR101496597B1 - 반도체 칩 상에서 구현되는 벡터 논리 감소 연산 - Google Patents
반도체 칩 상에서 구현되는 벡터 논리 감소 연산 Download PDFInfo
- Publication number
- KR101496597B1 KR101496597B1 KR1020137008144A KR20137008144A KR101496597B1 KR 101496597 B1 KR101496597 B1 KR 101496597B1 KR 1020137008144 A KR1020137008144 A KR 1020137008144A KR 20137008144 A KR20137008144 A KR 20137008144A KR 101496597 B1 KR101496597 B1 KR 101496597B1
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- mixing
- logic
- circuit
- logic circuit
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 164
- 239000004065 semiconductor Substances 0.000 title claims abstract description 12
- 230000009467 reduction Effects 0.000 title description 24
- 238000002156 mixing Methods 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims description 29
- 239000004973 liquid crystal related substance Substances 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- 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/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- 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/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- 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
-
- 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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
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)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
반도체 프로세서가 기술된다. 반도체 프로세서는 논리 감소 명령을 수행하기 위한 논리 회로를 포함한다. 논리 회로는 혼합 벡터를 형성하기 위해 벡터의 엘리먼트들을 혼합하기 위한 혼합 회로를 가진다. 논리 회로는 또한 상기 혼합 벡터 및 상기 벡터에 대해 벡터 논리 연산을 수행하기 위한 벡터 논리 회로를 포함한다.
Description
본 발명의 분야는 일반적으로 컴퓨터 시스템들에 관한 것이고, 더 구체적으로는 벡터 논리 감소를 수행하기 위한 프로세서 아키텍쳐에 관한 것이다.
프로세서 아키텍쳐들의 2가지 타입들: "스칼라" 및 "벡터"는 컴퓨터 과학 분야에서 널리 인지된다. 스칼라 프로세서는 데이터의 단일 세트에 대해 연산들을 수행하는 명령들을 실행하도록 설계되는 반면, 벡터 프로세서는 데이터의 다수의 세트들에 대해 연산들을 수행하는 명령들을 실행하도록 설계된다. 도 1a 및 1b는 스칼라 프로세서와 벡터 프로세서 사이의 기본적 차이점을 보여주는 비교 예를 제시한다.
도 1a는 단일 오퍼랜드 세트 A 및 B가 단수형(singular)(또는 "스칼라") 결과 C를 생성하기 위해 함께 AND되는(즉, AB=C)인 스칼라 AND 명령의 예를 도시한다. 반면, 도 1b는 2개의 오퍼랜드 세트들 A/B 및 D/E이 각각 벡터 결과 C, F를 동시에 생성하기 위해 병렬로 함께 AND되는(즉 AB=C 및 DE=F) 벡터 AND 명령의 예를 도시한다.
당해 기술분야에 공지된 바와 같이, 통상적으로, 입력 오퍼랜드들 및 출력 결과 모두는 전용 레지스터들에 저장된다. 예를 들어, 많은 명령들은 2개의 입력 오퍼랜드들을 가질 것이다. 따라서, 2개의 별개의 입력 레지스터들은 각각의 입력 오퍼랜드들을 일시적으로 저장하기 위해 사용될 것이다. 또한, 이들 동일한 명령들은 제3(결과) 레지스터에 일시적으로 저장될 출력 값을 생성할 것이다. 각각의 입력(101a,b 및 102a,b) 및 결과 레지스터들(103a, b)이 도 1a 및 1b에서 관측된다. 특히, "스칼라" 대 "벡터" 특성화들은 용이하게 구별가능하다.
즉, 도 1a의 스칼라 설계의 입력 레지스터들(101a 및 102a)이 오직 스칼라 값들(각각 A 및 B)만을 유지하는 것이 관측된다. 마찬가지로, 도 1a의 스칼라 설계의 결과 레지스터(103a)가 또한 스칼라 값(C)만을 유지하는 것이 관측된다. 반면, 도 1b의 벡터 시스템의 입력 레지스터들(101b 및 102b)이 벡터들(레지스터(101b) 내의 A, D 및 레지스터(102b) 내의 B, E)을 유지하는 것이 관측된다. 마찬가지로, 도 1b의 벡터 시스템의 결과 레지스터(103b)가 또한 벡터 값(C,F)을 유지하는 것이 관측된다. 용어의 문제로서, 도 1b의 벡터 시스템의 레지스터들(101b, 102b 및 103b) 각각의 컨텐츠는 전체적으로 "벡터"로서 참조될 수 있으며, 벡터 내의 개별 스칼라 값들 각각은 "엘리먼트"로서 참조될 수 있다. 따라서, 예를 들어, 레지스터(101b)는 "엘리먼트" A 및 "엘리먼트" D로 구성된 "벡터" A, D를 저장하는 것으로서 관측된다.
기반 프로세서가 스칼라 또는 벡터 설계인지의 여부와는 무관하게, 일부 컴퓨터 시스템들은 단일 벡터의 엘리먼트들에 대한 논리 연산을 실제로 요구한다. 예를 들어, 8개 입력 AND 연산(도 2a에 도시된 논리도)의 경우, 8개의 별도의 입력들(A, B, C, D, E, F, G, H)은 최종 스칼라 결과(R)를 생성하기 위해 함께 AND된다. 스칼라 프로세서들의 경우, 루프 연산들은 스칼라 AND 명령(도 2b에 도시된 의사-코드)의 7번의 반복에 대한 결과를 누산하는 루프 연산이 소프트웨어에 기록되어야 한다. 따라서, 스칼라 프로세서의 경우, 다수의 반복들이 계산을 수행하기 위해 스칼라 AND 명령의 다수의 실행들을 요구한다.
반면, 벡터 프로세서는 논리 연산을 완전히 수행하도록 설계되는 단일 명령의 실행을 통해 이러한 연산을 구현하는 예상을 고려(entertain)할 수 있다.
본 발명은 동일한 참조번호들이 유사한 엘리먼트들을 표시하는 첨부 도면들의 그림들에서 제한이 아닌 예로서 예시된다.
도 1a 및 1b는 스칼라 및 벡터 논리 연산들을 도시하는 도면이다.
도 2a 및 2b는 8개 입력 AND 함수의 논리도 및 스칼라 AND 명령을 가지는 대응하는 의사 코드를 도시하는 도면이다.
도 3은 논리 감소 연산을 수행하기 위한 반도체 프로세서에 의해 수행될 프로세스를 도시하는 도면이다.
도 4는 도 3의 프로세스의 제1 실시예를 도시하는 도면이다.
도 5는 도 4의 프로세스의 제2 실시예를 도시하는 도면이다.
도 6a는 도 5의 프로세스의 제3 실시예를 도시하는 도면이다.
도 6b는 혼합 연산들이 동일한 실시예를 도시하는 도면이다.
도 7은 도 3의 프로세스를 수행할 수 있는 전자 회로의 설계를 도시하는 도면이다.
도 8은 반도체 프로세서의 다이어그램을 도시하는 도면이다.
도 9는 컴퓨팅 시스템의 다이어그램을 도시하는 도면이다.
도 3은 벡터 명령들을 실행할 수 있는 프로세서 상에서, 또한 "논리 감소"로서 참조되는, 벡터의 엘리먼트들에 대한 논리 연산을 수행하기 위한 방법을 도시한다. 도 4는 도 3의 방법에 따른 8개 입력 AND 함수의 예를 도시한다. 도 3의 방법에 대한 독자의 이해를 보조하기 위한 도 3 및 4 모두에 대한 참조가 이루어질 것이다. 도 4의 예에서, 벡터 입력(400)은 출력 결과 R = ABCDEFG를 생성하기 위해 8개 입력 AND에 의해 함께 AND될 엘리먼트들(A, B, C, D, E, F, G, H)을 가진다.
도 1a 및 1b는 스칼라 및 벡터 논리 연산들을 도시하는 도면이다.
도 2a 및 2b는 8개 입력 AND 함수의 논리도 및 스칼라 AND 명령을 가지는 대응하는 의사 코드를 도시하는 도면이다.
도 3은 논리 감소 연산을 수행하기 위한 반도체 프로세서에 의해 수행될 프로세스를 도시하는 도면이다.
도 4는 도 3의 프로세스의 제1 실시예를 도시하는 도면이다.
도 5는 도 4의 프로세스의 제2 실시예를 도시하는 도면이다.
도 6a는 도 5의 프로세스의 제3 실시예를 도시하는 도면이다.
도 6b는 혼합 연산들이 동일한 실시예를 도시하는 도면이다.
도 7은 도 3의 프로세스를 수행할 수 있는 전자 회로의 설계를 도시하는 도면이다.
도 8은 반도체 프로세서의 다이어그램을 도시하는 도면이다.
도 9는 컴퓨팅 시스템의 다이어그램을 도시하는 도면이다.
도 3은 벡터 명령들을 실행할 수 있는 프로세서 상에서, 또한 "논리 감소"로서 참조되는, 벡터의 엘리먼트들에 대한 논리 연산을 수행하기 위한 방법을 도시한다. 도 4는 도 3의 방법에 따른 8개 입력 AND 함수의 예를 도시한다. 도 3의 방법에 대한 독자의 이해를 보조하기 위한 도 3 및 4 모두에 대한 참조가 이루어질 것이다. 도 4의 예에서, 벡터 입력(400)은 출력 결과 R = ABCDEFG를 생성하기 위해 8개 입력 AND에 의해 함께 AND될 엘리먼트들(A, B, C, D, E, F, G, H)을 가진다.
도 3은 벡터 명령들을 실행할 수 있는 프로세서 상에서, 또한 "논리 감소"로서 참조되는, 벡터의 엘리먼트들에 대한 논리 연산을 수행하기 위한 방법을 도시한다. 도 4는 도 3의 방법에 따르는 8개 입력 AND 함수의 예를 도시한다. 도 3의 방법에 대한 독자의 이해를 보조하기 위해 도 3 및 4 모두에 대한 참조가 이루어질 것이다. 도 4의 예에서, 벡터 입력(400)은 출력 결과 R = ABCDEFG를 생성하기 위해 8개 입력 AND에 의해 함께 AND될 엘리먼트들(A, B, C, D, E, F, G, H)을 가진다.
도 3의 방법에 따라, 제1 혼합 연산은 제1 혼합 벡터(402)를 생성하기 위해 벡터 입력(400)에 대해 수행된다(301, 401). 도 4의 예에서, 제1 혼합 연산(401)은 이웃하는 엘리먼트들의 쌍들의 위치가 삽화(420)에 도시된 패턴에서 관측되는 바와 같이 스와프되는(swap) 듀얼 혼합 연산이다. 감소 논리 연산의 벡터 논리 연산은 이후 입력 벡터들로서 벡터 입력(400) 및 제1 혼합 벡터(402)를 사용하여 수행된다(303, 403). 도 4의 예에서, 논리 감소가 8개 입력 AND 함수에 대응하므로, 논리 연산(303, 403)은 벡터 AND 연산에 대응한다. 그러나, 다른 논리 감소 및 교환 연산(예를 들어, OR, "가산"(ADD) 및 "곱셈"(MUL))을 가지는 대응하는 논리 연산들이 도 3의 방식에 따르도록 이루어져야 한다는 점에 주목할 가치가 있다.
논리 연산(303, 403)의 결과는 제1 중간 결과(404)를 생성한다. 제1 혼합 연산과 상이한 제2 혼합 연산(305, 405)은 제2 혼합 벡터(406)를 생성하기 위해 제1 중간 결과(404)에 대해 수행된다. 도 4의 예에서, 제2 혼합 연산(405)은 이웃 엘리먼트들의 위치가 삽화(430)에 도시된 패턴에서 관측되는 바와 같이 스와프되는 단일 혼합 연산이다. 감소의 논리 연산의 또다른 벡터 논리 연산이, 이후 벡터 입력들로서 제1 중간 결과(404) 및 제2 혼합 벡터(406)를 사용하여 수행된다(307, 407).
또한, 도 4의 예가 논리 AND 감소에 대응하므로, 도 4의 논리 연산(407)은 벡터 AND 연산에 대응한다. 제2 벡터 논리 연산(307, 407)의 결과는 제2 중간 결과(408)를 생성한다. 감소 논리 연산의 논리 연산은 이후 감소 결과(410)에 대한 추구(sought)를 생성하기 위해 제2 중간 결과(408)의 선택된 엘리먼트들에 대해 수행된다(309, 409). 도 4에서, 제2 중간 결과의 선택된 엘리먼트들은 제2 중간 결과(408)의 제1 및 제8 위치에서의 엘리먼트들에 대응한다. 그러나, 제2 중간 결과(408)의 조사는 제1 내지 제4 엘리먼트들 중 임의의 하나, 및 제5 내지 제8 엘리먼트들 중 임의의 하나의 선택이 정확한 감소 결과를 생성할 것임을 나타낸다.
마지막 논리 연산(309, 409)을 수행하기 위한 특수화된 논리 및/또는 마이크로 코드 연산들의 설계를 방지하기 위해, 일부 포맷팅 단계들은 제2 중간 결과(408)에 대해 수행될 수 있고, 따라서, 단계들(303, 403 및 307, 407)에 사용된 동일한 벡터 논리 연산은 연산(309, 409)(즉, 도 4의 예의 경우, 벡터 AND 연산)을 구현하기 위해 사용된다. 예를 들어, 다른 선택된 엘리먼트와 동일한 벡터 위치에 배치되고, 나머지 벡터 엘리먼트 값들을 0으로 채우는 선택된 엘리먼트들 중 하나에 따르는 벡터가 구성될 수 있다(예를 들어, 도 4의 예에서, 구성된 벡터[0, 0, 0, 0, 0, 0, 0, ACBD]를 생성하기 위해 벡터(408)를 포맷팅하는 것). 구성된 벡터 및 제2 중간 결과(408)에 대해 벡터 AND 연산을 수행하는 것은 선택된 오퍼랜드가 구성된 벡터에서 발견되는(즉, 전술된 구성된 벡터 예 R = 0, 0, 0, 0, 0, 0, 0, ACBDHFGE를 사용하여) 출력 벡터의 동일한 벡터 위치에서 원하는 논리 감소 결과(410)를 생성한다.
상이한 혼합 연산들의 시퀀스 및 혼합 연산들 자체가 실시예들마다 달라질 수 있다는 점에 주목하는 것이 적절하다. 예를 들어, 도 5는 듀얼 혼합 패턴(520) 전에 수행되는 단일 혼합 패턴(530)을 가지는 도 4의 예에 대응한다. 도 4 및 5의 예를 비교하면, 사용가능한 항목들은 올바른 결과를 획득하기 위해 제2 중간 벡터(508)에서 생성된다.
또한 위에서 논의된 단일 및 듀얼 혼합 패턴들(420/520, 430/530) 이외의 다른 혼합 패턴들이 또한 사용될 수 있다는 점에 주목하는 것이 또한 적절하다. 예를 들어, 도 6은 이웃하는 다섯 개(quintuplets of)의 엘리먼트들의 위치가 삽화(640)에서 관측되는 바와 같은 패턴에서 스와프되는 쿼드 혼합 패턴을 사용하는 16 엘리먼트 벡터에 대한 논리 AND 감소의 예를 도시한다.
또한, 혼합 패턴들 자체는 상이할 필요가 없다. 예를 들어, 도 6b는 동일한 혼합 패턴이 연산을 통해 엔드-대-엔드로 이용되는 논리 AND 감소를 도시한다.
임의의 실시예에 대해, 당업자는 마지막 벡터 논리 연산 이전에 적절한 혼합 패턴, 제2 중간 벡터의 대응하는 선택 기준 및 임의의 연관된 포맷팅을 결정할 수 있을 것이다. 또한, 위의 예들이 AND 감소들을 강조했지만, 동일한 원리들이 또한 논리 OR, 가산 및 곱셈과 같은 가환 연산을 가지는 임의의 연산들을 실행하기 위해 적용될 수 있다.
위에서 논의된 바와 같이, 논리 감소 알고리즘은 반도체 프로세서의 명령 세트 내의 명령으로서 구현될 수 있다. 도 7은 프로세서의 실행 유닛들 내의 논리 회로로서 구현될 수 있는 가능한 데이터 경로를 도시한다. 도 7의 회로도에 따라, 논리 감소를 통해 논리적으로 감소될 엘리먼트들을 가지는 입력 벡터가 레지스터(701)에 저장된다. 레지스터의 출력(701)은 제1 벡터 논리 연산(예를 들어, 벡터 AND, 벡터 OR, 또는 벡터 XOR)을 수행하는 제1 벡터 논리 회로(704)의 입력 및 제1 혼합 회로(702)의 입력으로 흐른다. 제1 혼합 회로(702)의 출력은 제1 혼합 레지스터(703) 내로 흐른다. 제1 혼합 레지스터(703)의 출력은 제1 벡터 논리 회로(704) 내로 흐른다. 따라서, 제1 벡터 논리 회로(704)는 레지스터(701)로부터의 제1 입력 벡터 및 레지스터(703)로부터의 제2 입력 벡터를 수용한다.
제1 중간 값 레지스터(705)는 제1 벡터 논리 회로(704)에 의해 생성되는 출력 벡터를 유지한다. 레지스터(705)의 컨텐츠는 이후 제2 벡터 논리 연산을 수행하는 제2 벡터 논리 회로(708) 및 제2 혼합 논리 회로(706)에 제공된다. 제2 혼합 논리 회로(706)의 출력은 자신의 출력을 제2 벡터 논리 회로(708)에 제공하는 제2 혼합 레지스터(707)에 제공된다. 제2 벡터 논리 회로(708)는 자신의 출력을 제2 중간 레지스터(709)에 제공한다. 선택 및 포맷팅 논리(710)는 제3 벡터 논리 회로(711)에 의해 수행되는 최종 벡터 논리 연산에 대한 오퍼랜드들로서 요구되는 제2 중간 레지스터(709) 내의 벡터의 엘리먼트들을 선택한다(그리고 이들 중 임의의 것을 포맷할 수 있다). 제3 벡터 논리 회로(711)의 결과는 최종 결과(논리 감소)에 대응하고, 결과 레지스터(712)에 저장된다. 도 3의 알고리즘을 구현하기 위해, 혼합 회로, 중간 벡터 레지스터 및 벡터 논리 회로(미도시)의 또다른 스테이지가 도 7의 회로에 추가로 통합될 수 있다는 점에 주목한다.
도 7의 컴포넌트들 중 일부를 사용하면서 여전히 논리 감소를 수행하는 다양한 대안적인 논리 설계들이 EH한 가능하다. 예를 들어, 논리 감소를 위한 회로가 (예를 들어, 복수의 마이크로-연산들 없이) "직선" 데이터 경로에서 논리 감소 명령의 실행에 전용인 경우, 레지스터들(703, 705, 707, 709) 중 임의의 것이 제거될 수 있다. 반면, 논리 감소 명령이 다수의 대응하는 마이크로-연산들을 이용하여 마이크로-코드를 통해 수행될 경우, 도 7의 다수의 엘리먼트들이 제거될 수 있는 반면, 다른 것들은 재사용될 수 있다.
예를 들어, 제1 및 제2 벡터 논리 연산들은, 레지스터(705) 및 레지스터(707)의 각각의 출력들이 논리(704)에 대한 입력들로서 피드백되는 경우 (벡터 논리(708)가 제거되도록) 벡터 논리(704)를 이용하여 수행될 수 있다(여기서, 마이크로-연산 제어 멀티플렉서들 및 다른 데이터 경로 제어 회로들이 알고리즘에 따라 데이터를 적절하게 이동시킨다는 점이 이해된다). 벡터 논리(711)는, 선택 및 포맷팅 논리(710)가 레지스터(705)로부터의 입력을 수용하고, 자신의 출력을 벡터 논리(704)(또한, 이것은 제3 및 최종 논리 연산을 수행함)에 다시 제공하는 경우, 추가로 제거될 수 있다.
제1 및 제2 혼합 회로들(702, 706)은 또한 자신의 각각의 채널 선택 입력 값들의 상태에 기초하여 정확한 혼합 패턴들 사이에서 스위칭하는 멀티플렉서들 및/또는 디멀티플렉서들의 공통 뱅크로 병합될 수 있다. 즉, 멀티플렉서들 및/또는 디멀티플렉서들의 채널 선택 입력들은 제1 혼합 패턴에 대응하는 제1 입력 값을 수신하고, 제2 혼합 패턴에 대응하는 제2 입력 값을 수신한다. 멀티플렉서들 및/또는 디멀티플렉서들은 원하는 혼합 전송을 실행하기 위해 채널 선택 값들에 응답하여 데이터 경로들을 형성한다.
확장된 구현예에서, 레지스터(701)에 저장된 입력 벡터의 엘리먼트들 모두보다 더 적은 엘리먼트들은, 논리 감소를 위해 고려되지 않은 해당 엘리먼트들에 대한 입력 벡터 내에 시작값을 강제하는 (레지스터(701)에 선행하는 또는 후속하는) 포맷팅 회로를 이용하여 논리적으로 감소될 수 있다. 예를 들어, 논리 감소가 입력 벡터 A, B, C, D, E, F, G, H 중 오직 엘리먼트들 A, B, C, D의 논리 감소일 경우, 포맷팅 논리는, 벡터 A, B, C, D[모두 1], [모두 1], [모두 1], [모두 1]는 감소를 위한 입력 벡터로서 프로세싱되도록, 엘리먼트들 E, F, G 및 H 각각에 대해 모두 1의 값들을 삽입할 것이다. OR 및 XOR 논리 감소에 대해서는, 시작값은 모두 1이 아닌 모두 0에 대응한다.
위에서 도 7을 참조하여 논의된 바와 같이, 알고리즘은 반도체 프로세서의 실행 유닛들에 의해 실행되는 벡터 논리 감소 명령 내에서 구현될 수 있다.
도 8은 복합 명령 세트(CISC), 단축 명령 세트(RISC) 및 매우 긴 명령 워드(VLIW)와 같은 많은 상이한 타입들의 프로세싱 코어 아키텍쳐들을 기술하는 것으로 간주되는 일반 프로세싱 코어(800)를 도시한다. 도 8의 일반 프로세싱 코어(800)는: 1) (예를 들어, 캐시 및/또는 메모리로부터) 명령들을 꺼내오는 패치 유닛(803); 2) 명령들을 디코딩하는 디코딩 유닛(804); 3) 실행 유닛들(806)에 대한 명령 발행의 타이밍 및/또는 순서를 결정하는 스케쥴 유닛(805)(명백하게, 스케쥴러는 선택적임); 4) 명령들을 실행하는 실행 유닛들(806)(통상적인 명령 실행 유닛들은 브랜치 실행 유닛들, 정수 산술 실행 유닛들(예를 들어, ALU들), 플로팅 포인트 산술 실행 유닛들(예를 들어, FPU들) 및 메모리 액세스 실행 유닛들을 포함함); 및 5) 명령의 성공적 완료를 의미하는 폐기(retirement) 유닛(807)을 포함한다. 명백하게, 프로세싱 코어(800)는 마이크로코드(808)를 사용하거나 또는 사용하지 않을 수 있다.
마이크로 코딩된 프로세서들의 경우, 마이크로-연산들은 통상적으로, 프로세서가 구성되는 반도체 칩 내의 비휘발성 기계 판독가능 매체(예를 들어, 판독 전용 메모리(ROM))에 저장되며, 프로세서 내의 실행 유닛들로 하여금 명령에 의해 호출된 원하는 함수를 수행하게 한다.
논리 감소 명령을 가지는 프로세서는 또한 다양한 컴퓨팅 시스템들로 구현될 수 있다. 도 9는 컴퓨팅 시스템(예를 들어, 컴퓨터)의 실시예를 도시한다. 도 9의 예시적인 컴퓨팅 시스템은: 1) 벡터 논리 감소 명령을 포함하도록 설계될 수 있는 하나 이상의 마이크로프로세서들(901); 2) 메모리 제어 허브(MCH)(902); 3) 시스템 메모리(903)(이것의 상이한 타입들, 예를 들어, DDR RAM, EDO RAM 등이 존재한다); 4) 캐시(904); 5) I/O 제어 허브(ICH)(905); 6) 그래픽 프로세서(906); 7)디스플레이/스크린(907)(그것의 상이한 타입들, 예를 들어, 음극선관(CRT), 박막 트랜지스터(TFT), 액정 디스플레이(LCD), DPL 등이 존재한다); 8) 하나 이상의 I/O 디바이스들(908)을 포함한다.
하나 이상의 프로세서들(901)은 컴퓨팅 시스템이 구현하는 어떠한 소프트웨어 루틴들이든 실행하기 위해 명령들을 실행한다. 명령들은 빈번하게, 데이터에 대해 수행되는 일부 종류의 연산을 포함한다. 데이터 및 명령들 모두는 시스템 메모리(903) 및 캐시(904)에 저장된다. 캐시(904)는 통상적으로 시스템 메모리(903)보다 더 짧은 레이턴시 시간들을 가지도록 설계된다. 예를 들어, 캐시(904)는 프로세서(들)와 동일한 실리콘 칩(들) 상으로 집적되고 그리고/또는 더 빠른 SRAM 셀들로 구성될 수 있는 반면, 시스템 메모리(903)는 더 느린 DRAM 셀들로 구성될 수 있다. 시스템 메모리(903)와 반대로 캐시(904) 내에 더 빈번하게 사용되는 명령들 및 데이터를 저장하도록 의도함으로써, 컴퓨팅 시스템의 전체적 성능 효율이 개선된다.
시스템 메모리(903)는 의도적으로 컴퓨팅 시스템 내의 다른 컴포넌트들에 대해 사용가능하게 된다. 예를 들어, 다양한 인터페이스들로부터 컴퓨팅 시스템(예를 들어, 키보드 및 마우스, 프린터 포트, LAN 포트, 모뎀 포트 등)으로 수신되거나 또는 컴퓨팅 시스템의 내부 저장 엘리먼트(예를 들어, 하드 디스크 드라이브)로부터 검색되는 데이터는 소프트웨어 프로그램의 구현예에서 하나 이상의 프로세서(들)(901)에 의해 이들이 동작되기 전에 시스템 메모리(903)에 종종 일시적으로 큐잉된다. 유사하게, 소프트웨어 프로그램이 결정한 데이터는 컴퓨팅 시스템 인터페이스들 중 하나를 통해 컴퓨팅 시스템으로부터 외부 엔티티에 송신되거나, 내부 저장 엘리먼트에 저장되어야 하고, 전송되거나 저장되기 전에, 시스템 메모리(903)에 종종 일시적으로 큐잉된다.
ICH(905)는 시스템 메모리(903) 및 그것의 적절한 대응하는 컴퓨팅 시스템 인터페이스(및 컴퓨터 시스템이 그렇게 설계되는 경우 내부 저장 디바이스) 사이에서 그러한 데이터가 적절하게 전달됨을 보장하는 역할을 한다. MCH(902)는 서로에 대해 시간상으로 근접하게 발생할 수 있는 프로세서(들)(901), 인터페이스들 및 내부 저장 엘리먼트들 간의 시스템 메모리(903) 액세스에 대한 다양한 경쟁 요청들을 관리하는 역할을 한다.
하나 이상의 I/O 디바이스들(908)은 또한 통상적 컴퓨팅 시스템에서 구현된다. I/O 디바이스들은 일반적으로 컴퓨팅 시스템(예를 들어, 네트워킹 어댑터)으로 및/또는 컴퓨팅 시스템(예를 들어, 네트워킹 어댑터)으로부터; 또는 컴퓨팅 시스템 내의 대용량 비휘발성 저장소(예를 들어, 하드 디스크 드라이브)에 대해, 데이터를 전송하는 역할을 담당한다. ICH(905)는 그 자신과 관측된 I/O 디바이스들(908) 간의 양방향 포인트-대-포인트 링크들을 가진다.
전술된 명세서에서, 본 발명은 이것의 특정적 예시적인 실시예들에 대해 기술되었다. 그러나, 이들에 대한 다양한 수정들 및 변경들이, 첨부된 청구항들에 설명된 바와 같은 본 발명의 더 넓은 사상 및 범위로부터의 이탈 없이 이루어질 수 있다는 점이 명백할 것이다. 명세서 및 도면들은, 따라서, 제한적인 의미라기보다는 예시적인 것으로 간주되어야 한다.
Claims (20)
- 반도체 프로세서에서 논리 감소 명령을 실행하는 단계
를 포함하고, 상기 실행하는 단계는:
다수의 엘리먼트들을 가지는 벡터를 레지스터에 저장하는 단계;
혼합(swizzle) 회로를 이용하여 상기 벡터의 엘리먼트들을 혼합하여 제1 혼합 벡터를 형성하는 단계;
상기 벡터 및 상기 제1 혼합 벡터에 대해 벡터 논리 회로를 이용하여 벡터 논리 연산을 수행하여 제1 중간 벡터를 형성하는 단계;
혼합 회로를 이용하여 상기 제1 중간 벡터의 엘리먼트들을 혼합하여 제2 혼합 벡터를 형성하는 단계;
벡터 논리 회로를 이용하여 상기 벡터 논리 연산을 수행하여 제2 중간 벡터를 형성하는 단계; 및
상기 제2 중간 벡터의 엘리먼트들 중 적어도 하나의, 그러나 모두는 아닌 엘리먼트들에 대해 논리 연산을 수행하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 벡터 논리 연산 및 상기 논리 연산은 벡터 AND 연산 및 AND 연산인 방법. - 제1항에 있어서,
상기 벡터 논리 연산 및 상기 논리 연산은 벡터 OR 연산 및 OR 연산인 방법. - 제1항에 있어서,
상기 벡터 논리 연산 및 상기 논리 연산은 벡터 XOR 연산 및 XOR 연산인 방법. - 제1항에 있어서,
상기 제2 중간 벡터의 엘리먼트들 중 상기 적어도 하나의, 그러나 모두는 아닌 엘리먼트들에 대해 수행되는 상기 논리 연산은 벡터 논리 연산인 방법. - 제1항에 있어서,
상기 제1 혼합 벡터를 형성하는 상기 혼합 회로 및 상기 제2 혼합 벡터를 형성하는 상기 혼합 회로는 동일한 혼합 회로인 방법. - 반도체 프로세서로서,
논리 감소 명령을 수행하기 위한 논리 회로
를 포함하고, 상기 논리 회로는:
혼합 벡터를 형성하기 위해 벡터의 엘리먼트들을 혼합하기 위한 혼합 회로; 및
상기 벡터 및 상기 혼합 벡터에 대해 벡터 논리 연산을 수행하기 위한 벡터 논리 회로
를 포함하는 반도체 프로세서. - 제7항에 있어서,
상기 논리 회로는 상기 벡터 논리 연산에 의해 생성되는 결과적인 중간 벡터를 저장하는 레지스터에 커플링되는 제2 혼합 회로를 더 포함하고, 상기 제2 혼합 논리 회로는 상기 중간 벡터를 혼합하기 위한 것인 반도체 프로세서. - 제7항에 있어서,
상기 혼합 회로는 멀티플렉서들을 포함하는 반도체 프로세서. - 제7항에 있어서,
상기 혼합 회로는 디멀티플렉서들을 포함하는 반도체 프로세서. - 제7항에 있어서,
상기 벡터 논리 회로의 출력으로부터 상기 벡터 논리 회로의 입력까지의 데이터-경로를 더 포함하는 반도체 프로세서. - 제11항에 있어서,
상기 논리 감소 명령을 구현하기 위해 사용되는 마이크로-연산들을 저장하기 위한 ROM을 더 포함하는 반도체 프로세서. - 제11항에 있어서,
상기 벡터 논리 회로의 출력에 커플링되어 제2 혼합 벡터를 생성하는 제2 혼합 회로 - 상기 제2 혼합 회로는 상기 벡터 논리 회로로부터 중간 값 벡터를 혼합하기 위한 것임 -; 및
상기 벡터 논리 회로 및 상기 제2 혼합 회로의 출력에 커플링되어 상기 제2 혼합 벡터 및 상기 중간 값 벡터에 대해 벡터 논리 연산을 수행하는 제2 벡터 논리 회로
를 더 포함하는 반도체 프로세서. - 제11항에 있어서,
상기 벡터 논리 연산은:
벡터 AND;
벡터 OR;
벡터 XOR
중 하나인 반도체 프로세서. - 컴퓨팅 시스템으로서,
반도체 프로세서;
그래픽 프로세서; 및
상기 그래픽 프로세서에 커플링된 액정 디스플레이
를 포함하고, 상기 반도체 프로세서는 논리 감소 명령을 수행하기 위한 논리 회로를 가지고, 상기 논리 회로는:
혼합 벡터를 형성하기 위해 입력 벡터의 엘리먼트를 혼합하기 위한 혼합 회로; 및
상기 입력 벡터 및 상기 혼합 벡터에 대한 벡터 논리 연산을 수행하기 위한 벡터 논리 회로
를 포함하는 컴퓨팅 시스템. - 제15항에 있어서,
상기 논리 회로는 상기 벡터 논리 연산에 의해 생성된 결과적인 중간 벡터를 저장하는 레지스터에 커플링되는 제2 혼합 회로를 더 포함하고, 상기 제2 혼합 논리 회로는 상기 중간 벡터를 혼합하기 위한 것인 컴퓨팅 시스템. - 제15항에 있어서,
상기 벡터 논리 회로의 출력으로부터 상기 벡터 논리 회로의 입력까지의 데이터 경로를 더 포함하는 컴퓨팅 시스템. - 제17항에 있어서,
상기 논리 감소 명령을 구현하기 위해 사용되는 마이크로-연산들을 저장하기 위한 ROM을 더 포함하는 컴퓨팅 시스템. - 제15항에 있어서,
상기 벡터 논리 회로의 출력에 커플링되어 제2 혼합 벡터를 생성하는 제2 혼합 회로 - 상기 제2 혼합 회로는 상기 벡터 논리 회로로부터 중간 값 벡터를 혼합하기 위한 것임 -; 및
상기 제2 혼합 회로 및 상기 벡터 논리 회로의 출력에 커플링되어 상기 제2 혼합 벡터 및 상기 중간 값 벡터에 대한 벡터 논리 연산을 수행하는 제2 벡터 논리 회로
를 더 포함하는 컴퓨팅 시스템. - 제15항에 있어서,
상기 벡터 논리 연산은:
벡터 AND;
벡터 OR;
벡터 XOR
중 하나인 컴퓨팅 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/890,485 | 2010-09-24 | ||
US12/890,485 US9141386B2 (en) | 2010-09-24 | 2010-09-24 | Vector logical reduction operation implemented using swizzling on a semiconductor chip |
PCT/US2011/053153 WO2012040665A2 (en) | 2010-09-24 | 2011-09-24 | Vector logical reduction operation implemented on a semiconductor chip |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130064794A KR20130064794A (ko) | 2013-06-18 |
KR101496597B1 true KR101496597B1 (ko) | 2015-02-26 |
Family
ID=45871862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137008144A KR101496597B1 (ko) | 2010-09-24 | 2011-09-24 | 반도체 칩 상에서 구현되는 벡터 논리 감소 연산 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9141386B2 (ko) |
JP (1) | JP5628435B2 (ko) |
KR (1) | KR101496597B1 (ko) |
CN (2) | CN103109262B (ko) |
DE (1) | DE112011103211T5 (ko) |
GB (1) | GB2498466A (ko) |
TW (1) | TWI531886B (ko) |
WO (1) | WO2012040665A2 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120078931A1 (en) | 2010-09-29 | 2012-03-29 | International Business Machines Corporation | Methods for managing ownership of redundant data and systems thereof |
CN112463219A (zh) | 2011-04-01 | 2021-03-09 | 英特尔公司 | 向量友好指令格式及其执行 |
KR101918464B1 (ko) * | 2011-09-14 | 2018-11-15 | 삼성전자 주식회사 | 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치 |
US10157061B2 (en) | 2011-12-22 | 2018-12-18 | Intel Corporation | Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks |
US20130311530A1 (en) * | 2012-03-30 | 2013-11-21 | Victor W. Lee | Apparatus and method for selecting elements of a vector computation |
US10013253B2 (en) * | 2014-12-23 | 2018-07-03 | Intel Corporation | Method and apparatus for performing a vector bit reversal |
US10049322B2 (en) * | 2015-05-21 | 2018-08-14 | Google Llc | Prefetching weights for use in a neural network processor |
KR102659495B1 (ko) | 2016-12-02 | 2024-04-22 | 삼성전자주식회사 | 벡터 프로세서 및 그 제어 방법 |
US10108581B1 (en) | 2017-04-03 | 2018-10-23 | Google Llc | Vector reduction processor |
GB2574817B (en) | 2018-06-18 | 2021-01-06 | Advanced Risc Mach Ltd | Data processing systems |
US20240004647A1 (en) * | 2022-07-01 | 2024-01-04 | Andes Technology Corporation | Vector processor with vector and element reduction method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR920700425A (ko) * | 1988-03-18 | 1992-02-19 | 로날드 이. 마이릭 | 벡터 처리 시스템의 명령실행방법 및 그 장치 |
KR20090042320A (ko) * | 2006-08-18 | 2009-04-29 | 콸콤 인코포레이티드 | 스칼라/벡터 명령들을 사용하여 데이터를 처리하는 시스템 및 방법 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4791551A (en) * | 1985-02-11 | 1988-12-13 | Analog Devices, Inc. | Microprogrammable devices using transparent latch |
US4839845A (en) * | 1986-03-31 | 1989-06-13 | Unisys Corporation | Method and apparatus for performing a vector reduction |
JPH0644271B2 (ja) * | 1986-08-30 | 1994-06-08 | 日本電気株式会社 | 演算装置 |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
JPH0728786A (ja) * | 1993-07-15 | 1995-01-31 | Hitachi Ltd | ベクトルプロセッサ |
DE4430195B4 (de) * | 1993-12-13 | 2004-09-23 | Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto | Verfahren zur Auswertung von Booleschen Ausdrücken |
JP2001128067A (ja) | 1999-10-26 | 2001-05-11 | Natl Inst Of Advanced Industrial Science & Technology Meti | 電子デバイス、並列処理方法、および記録媒体 |
US6745319B1 (en) * | 2000-02-18 | 2004-06-01 | Texas Instruments Incorporated | Microprocessor with instructions for shuffling and dealing data |
US7136953B1 (en) * | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
GB2409064B (en) | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing in parallel a data processing operation on data elements |
US20080139301A1 (en) * | 2006-12-11 | 2008-06-12 | Ole-Ivar Holthe | System and method for sharing gaming experiences |
US7953684B2 (en) | 2007-01-31 | 2011-05-31 | International Business Machines Corporation | Method and system for optimal parallel computing performance |
US8760450B2 (en) * | 2007-10-30 | 2014-06-24 | Advanced Micro Devices, Inc. | Real-time mesh simplification using the graphics processing unit |
US8078836B2 (en) | 2007-12-30 | 2011-12-13 | Intel Corporation | Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits |
US7904700B2 (en) * | 2008-03-10 | 2011-03-08 | International Business Machines Corporation | Processing unit incorporating special purpose register for use with instruction-based persistent vector multiplexer control |
WO2009144681A1 (en) | 2008-05-30 | 2009-12-03 | Nxp B.V. | Vector shuffle with write enable |
US7814303B2 (en) | 2008-10-23 | 2010-10-12 | International Business Machines Corporation | Execution of a sequence of vector instructions preceded by a swizzle sequence instruction specifying data element shuffle orders respectively |
-
2010
- 2010-09-24 US US12/890,485 patent/US9141386B2/en not_active Expired - Fee Related
-
2011
- 2011-09-21 TW TW100133931A patent/TWI531886B/zh active
- 2011-09-24 CN CN201180045783.XA patent/CN103109262B/zh not_active Expired - Fee Related
- 2011-09-24 GB GB201304303A patent/GB2498466A/en not_active Withdrawn
- 2011-09-24 JP JP2013530381A patent/JP5628435B2/ja active Active
- 2011-09-24 CN CN201610066854.9A patent/CN105740201B/zh not_active Expired - Fee Related
- 2011-09-24 WO PCT/US2011/053153 patent/WO2012040665A2/en active Application Filing
- 2011-09-24 DE DE201111103211 patent/DE112011103211T5/de not_active Withdrawn
- 2011-09-24 KR KR1020137008144A patent/KR101496597B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR920700425A (ko) * | 1988-03-18 | 1992-02-19 | 로날드 이. 마이릭 | 벡터 처리 시스템의 명령실행방법 및 그 장치 |
KR20090042320A (ko) * | 2006-08-18 | 2009-04-29 | 콸콤 인코포레이티드 | 스칼라/벡터 명령들을 사용하여 데이터를 처리하는 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
GB2498466A (en) | 2013-07-17 |
KR20130064794A (ko) | 2013-06-18 |
GB201304303D0 (en) | 2013-04-24 |
JP2013541098A (ja) | 2013-11-07 |
DE112011103211T5 (de) | 2013-07-04 |
CN103109262B (zh) | 2016-10-26 |
CN105740201A (zh) | 2016-07-06 |
CN105740201B (zh) | 2018-12-11 |
WO2012040665A3 (en) | 2012-07-26 |
WO2012040665A2 (en) | 2012-03-29 |
US20120079233A1 (en) | 2012-03-29 |
JP5628435B2 (ja) | 2014-11-19 |
TWI531886B (zh) | 2016-05-01 |
US9141386B2 (en) | 2015-09-22 |
CN103109262A (zh) | 2013-05-15 |
TW201229715A (en) | 2012-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101496597B1 (ko) | 반도체 칩 상에서 구현되는 벡터 논리 감소 연산 | |
US10469397B2 (en) | Processors and methods with configurable network-based dataflow operator circuits | |
US11307873B2 (en) | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging | |
US10445234B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features | |
US10445098B2 (en) | Processors and methods for privileged configuration in a spatial array | |
US10515046B2 (en) | Processors, methods, and systems with a configurable spatial accelerator | |
US10565134B2 (en) | Apparatus, methods, and systems for multicast in a configurable spatial accelerator | |
US10445451B2 (en) | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features | |
US10467183B2 (en) | Processors and methods for pipelined runtime services in a spatial array | |
US10515049B1 (en) | Memory circuits and methods for distributed memory hazard detection and error recovery | |
US20190303297A1 (en) | Apparatus, methods, and systems for remote memory access in a configurable spatial accelerator | |
US20190205284A1 (en) | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator | |
KR20240011204A (ko) | 행렬 연산 가속기의 명령어들을 위한 장치들, 방법들, 및 시스템들 | |
JP5491071B2 (ja) | 命令融合演算装置および命令融合演算方法 | |
CN107102844B (zh) | 超级乘加(超级madd)指令 | |
CN103109261B (zh) | 用于通用逻辑操作的方法和设备 | |
EP3757814A1 (en) | Apparatuses, methods, and systems for time-multiplexing in a configurable spatial accelerator | |
JP2019197531A (ja) | 連鎖タイル演算を実施するためのシステムおよび方法 | |
CN112579159A (zh) | 用于矩阵操作加速器的指令的装置、方法和系统 | |
CN111767079A (zh) | 用于矩阵操作加速器的转置指令的装置、方法和系统 | |
CN111752608A (zh) | 用于控制复数乘法累加电路的设备和方法 | |
US20210200540A1 (en) | Apparatuses, methods, and systems for fused operations in a configurable spatial accelerator | |
US7437544B2 (en) | Data processing apparatus and method for executing a sequence of instructions including a multiple iteration instruction | |
JP4444305B2 (ja) | 半導体装置 | |
CN114675883A (zh) | 用于对齐矩阵操作加速器瓦片的指令的装置、方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180201 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190129 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20200129 Year of fee payment: 6 |