KR100703764B1 - 벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법 - Google Patents
벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법 Download PDFInfo
- Publication number
- KR100703764B1 KR100703764B1 KR1020050067164A KR20050067164A KR100703764B1 KR 100703764 B1 KR100703764 B1 KR 100703764B1 KR 1020050067164 A KR1020050067164 A KR 1020050067164A KR 20050067164 A KR20050067164 A KR 20050067164A KR 100703764 B1 KR100703764 B1 KR 100703764B1
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- control information
- unit
- pipeline computing
- outputting
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000010365 information processing Effects 0.000 title abstract description 8
- 230000033001 locomotion Effects 0.000 claims abstract description 13
- 238000003672 processing method Methods 0.000 claims abstract description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000001934 delay Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000007257 malfunction Effects 0.000 description 4
- 101000854908 Homo sapiens WD repeat-containing protein 11 Proteins 0.000 description 2
- 102100020705 WD repeat-containing protein 11 Human genes 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001360 synchronised effect Effects 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/46—Multiprogramming arrangements
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
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)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Noise Elimination (AREA)
- Image Processing (AREA)
Abstract
벡터 처리 장치는 복수의 벡터 파이프라인 연산부와 명령 제어부를 포함한다. 벡터 파이프라인 연산부는 처리의 개시 및 실행을 지시하는 동작 제어 정보에 따라서 동작한다. 명령 제어부는 동작 제어 정보를 생성하고, 동작 제어 정보를 벡터 파이프라인 연산부 각각에 다른 타이밍으로 출력한다. 정보 처리 장치와 벡터 처리 방법도 개시된다.
벡터, 정보 처리, 파이프라인, 연산부, 타이밍
Description
도 1은 본 발명의 제 1 실시예에 따른 벡터 처리 장치의 구성을 나타내는 블록도.
도 2는 도 1에 나타낸 벡터 처리 장치의 동작을 나타내는 타이밍 차트.
도 3은 본 발명의 제 2 실시예에 따른 벡터 처리 장치의 구성을 나타내는 블록도.
도 4는 본 발명의 제 3 실시예에 따른 벡터 처리 장치의 구성을 나타내는 블록도.
도 5는 도 4에서의 타이밍 조정부의 구성을 나타내는 블록도.
도 6은 도 4에 나타낸 벡터 처리 장치의 동작을 나타내는 타이밍 차트.
도 7은 본 발명의 제 4 실시예에 따른 벡터 처리 장치의 구성을 나타내는 블록도.
도 8은 도 7에서의 동작 제어 정보 생성부의 구성을 나타내는 블록도.
* 도면의 주요부분에 대한 부호의 설명 *
10…명령 제어부
11…동작 지정부
12…동작 제어 정보 생성부
13…명령 실행 제어부
14…외부 선택부
15…타이밍 조정부
100…벡터 처리 장치
160~167…벡터 파이프라인 연산부
VR0~VR5, VRn…벡터 레지스터
SIN, SOUT, SIO…내부 선택부
SAL…연산 결과 선택부
ER0, ER1…요소 레지스터
ALU…연산 실행부
AR0, AR1…중간 결과 레지스터
STR…연산 결과 레지스터
DR00~DR02, DR10~DR12, DR20, DR21, DR30, DR31, DR40, DR50…조정 레지스터
DS0~DS5…조정 선택부
FR0~FR3…제어 레지스터
CS0~CS3…제어 선택부
CSS…선택 정보 생성부
본 발명은 벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법에 관한 것으로, 더욱 구체적으로는, 동시 동작에 의해 야기된 노이즈(noise)를 저감시키는 벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법에 관한 것이다.
LSI 내에 집적된 논리 회로의 수는 증가되고 있다. 그러나, 집적된 논리 회로를 단일 클록에 동기하여 동시에 구동하면, 클록에 동기 된 타이밍에서 노이즈가 발생한다. 이는 논리 회로를 오동작시키는 원인으로 된다.
예를 들어, 일본국 공개특허 제58-149555호 공보에는 모든 데이터가 로드되는지 여부와 상관없이 메인(main) 메모리로부터 요소(element) 데이터가 로드되는 동시에 연산 장치가 순차적으로 연산을 실행함으로써 성능을 향상시키는 기술을 기개 되어있다.
이러한 기술에 따르면, 메인 메모리로부터 로드 명령이나 메인 메모리로 저장 명령이 실행될 경우, 각각의 연산 장치는 다른 타이밍에서 연산을 실행한다. 이는 노이즈로 인한 오동작의 발생을 저감시키는데 어느 정도 효과가 있다.
그러나, 이러한 기술은 로드 및 저장 처리를 위한 것 외의 다른 연산에서 노이즈로 인한 오동작의 발생을 저감시키는데 효과가 없다.
본 발명은 이러한 문제점을 해결하기 위해 안출된 것으로, 로드 및 저장 처리뿐만 아니라 다른 연산에서도 동시 동작으로 인한 노이즈를 저감시키는 것을 그 목적으로 한다.
상기 목적을 달성하기 위해서, 본 발명의 일 형태에 따르면, 처리의 개시 및 실행을 지시하는 동작 제어 정보에 따라서 동작하는 복수의 벡터 파이프라인 연산 부와, 동작 제어 정보를 생성하고 동작 제어 정보를 벡터 파이프라인 연산부 각각에 다른 타이밍으로 출력하는 명령 제어부를 구비하는 벡터 처리 장치를 제공한다.
본 발명의 다른 형태에 따르면, 처리의 개시 및 실행을 지시하는 동작 제어 정보에 따라서 동작하는 복수의 연산부와, 동작 제어 정보를 생성하고 동작 제어 정보를 연산부 각각에 다른 타이밍으로 출력하는 명령 제어부를 구비하는 처리 장치를 제공한다.
본 발명의 또 다른 형태에 따르면, 처리의 개시 및 실행을 지시하는 동작 제어 정보를 생성하고 이 동작 제어 정보를 복수의 벡터 파이프라인 연산부에 다른 타이밍으로 출력하는 단계와, 다른 타이밍으로 동작 제어 정보가 입력된 벡터 파이프라인 연산부가 순차적으로 처리를 개시 및 실행하는 단계를 구성하는 벡터 처리 방법이 제공된다.
본 발명의 실시예를 첨부한 도면을 참조하여 아래에 상세하게 설명한다. 벡터 연산 명령마다 64개의 벡터 요소 데이터가 처리된다고 가정한다. 그러나, 이것은 단지 일례일 뿐이다. 벡터 연산 명령마다 처리될 벡터 요소 데이터의 개수는 64개로 한정되지 않는다.
제 1
실시예
도 1에 나타낸 바와 같이, 본 발명의 제 1 실시예에 따른 벡터 처리 장치 (100)는 명령 제어부(10)와 복수의 벡터 파이프라인 연산부(160~167)를 포함한다. 벡터 파이프라인 연산부의 개수는 임의로 설정될 수 있다.
명령 제어부(10)는 벡터 연산 명령에 대한 실행의 제어 정보를 생성하여 출력하는 명령 실행 제어부(13), 노이즈 저감의 동작을 실행하는지의 여부를 나타내는 노이즈 저감 지정 정보를 유지하는 동작 지정부(11)와, 명령 실행 제어부(13)에 제어 정보를 입력하고, 동작 지정부(11)에서의 노이즈 저감 지정 정보에 따라서 여러 종류의 동작 제어 정보를 생성하여, 명령 실행 제어부(13) 및 벡터 파이프라인 연산부(160~167)에 출력하는 동작 제어 정보 생성부(12)를 포함한다. 동작 제어 정보는 벡터 파이프라인 연산부(160~167)에 대한 처리를 개시 및 실행하도록 지시하는 정보이다.
동작 지정부(11)는 예를 들어, F/F(플립 플롭) 등으로 구성된다. 노이즈 저감 지정 정보는 외부로부터 하드웨어 동작의 초기 설정 모드로서 동작 지정부(11)에 설정 가능하다.
벡터 파이프라인 연산부(160~167)는 병렬로 동작한다. 벡터 파이프라인 연산부(160~167) 각각은 벡터 요소 데이터를 유지하는 데이터 유지부로서 기능하는 벡터 레지스터(VR0~VRn(n=1,2,...))와, 벡터 요소 데이터가 기입되는 벡터 레지스터(VR0~VRn) 중에서 하나를 선택하는 크로스바(crossbar) 등의 내부 선택부(SIN)와, 벡터 요소 데이터가 판독되는 벡터 레지스터(VR0~VRn) 중에서 하나를 선택하는 크로스바 등의 내부 선택부(SOUT)와, 내부 선택부(SOUT)에서의 벡터 요소 데이터를 저장하는 요소 레지스터(ER0, ER1)에 저장된 벡터 요소 데이터에 대한 합산, 감산, 승산 및 제산을 실행하는 적어도 1개 이상의 연산 실행부(ALU)와, 연산 실행부(ALU)에 의해 얻어진 연산 결과를 저장하는 연산 결과 레지스터(STR)를 포함한다.
벡터 레지스터(VR0~VRn)는 예를 들어, 레지스터 등으로 구성된다. 벡터 레지스터(VR0~VRn)의 각각은 예를 들어, 8개의 벡터 요소 데이터를 저장한다.
연산 실행부(ALU)는 연산의 중간 결과를 저장하는 중간 결과 레지스터(AR0, AR1)를 더 포함한다. 요소 레지스터(ER0, ER1), 중간 결과 레지스터(AR0, AR1), 연산 결과 레지스터(STR)를 탑재할지 그리고, 어디에 탑재할 지의 여부는 임의로 결정된다.
예를 들어, 요소 레지스터(ER0, ER1)가 제 1 파이프라인 스테이지로 설정된다. 중간 결과 레지스터(AR0)는 제 2 파이프라인 스테이지로 설정될 수 있다. 중간 결과 레지스터(AR1)는 제 3 파이프라인 스테이지로 설정된다. 연산 결과 레지스터(STR)는 제 4 파이프라인 스테이지로 설정된다. 벡터 레지스터(VR0~VRn)는 제 5 파이프라인 스테이지로 설정된다.
벡터 요소 데이터는 벡터 파이프라인 연산부(160~167) 내의 벡터 레지스터(VR0~VRn)에 인터리브(interleave) 구조로 할당된다.
벡터 파이프라인 연산부(160)의 벡터 레지스터(VR0)에는 벡터 요소 데이터(a0, a8, a16, a24, a32, a40, a48, a56)가 저장된다. 벡터 파이프라인 연산부(161)의 벡터 레지스터(VR0)에는 벡터 요소 데이터(a1, a9, a17, a25, a33, a41, a49, a57)가 저장된다. 벡터 파이프라인 연산부(167)의 벡터 레지스터(VR0)에는 벡터 요소 데이터(a7, a15, a23, a31, a39, a47, a55, a63)가 저장된다.
마찬가지로, 벡터 파이프라인 연산부(160)의 벡터 레지스터(VR1)에는 벡터 요소 데이터(b0, b8, b16, b24, b32, b40, b48, b56)가 저장된다. 벡터 파이프라인 연산부(161)의 벡터 레지스터(VR1)에는 벡터 요소 데이터(b1, b9, b17, b25, b33, b41, b49, b57)가 저장된다. 벡터 파이프라인 연산부(167)의 벡터 레지스터(VR1)에는 벡터 요소 데이터(b7, b15, b23, b31, b39, b47, b55, b63)가 저장된다.
이하, 동일한 방식으로, 벡터 레지스터(VR2~VRn)에 다른 벡터 요소 데이터가 저장된다.
벡터 처리 장치(100)의 각 부는, 클록 생성부(20)로부터 출력되는 클록에 따라서 동작한다.
도 2를 참조하여, 벡터 처리 장치(100)의 동작에 대하여 설명한다.
벡터 처리 장치(100)는 벡터 연산 명령(X)에 이어서, 벡터 연산 명령(Y)을 실행하는 것으로 가정한다. 벡터 연산 명령(X)은 예를 들어, 벡터 레지스터(VR0) 내의 벡터 요소 데이터(a0~a63)를 벡터 레지스터(VR1) 내의 벡터 요소 데이터(b0~b63)와 가산하고, 벡터 레지스터(VR2) 내의 벡터 요소 데이터(c0~c63)로서 결과 데이터를 저장하는 명령이다. 벡터 연산 명령(Y)은 예를 들어, 벡터 레지스터(VR3) 내의 벡터 요소 데이터(d0~d63)와 벡터 레지스터(VR4) 내의 벡터 요소 데이터(e0~e63)를 가산하고, 그 결과 데이터를 벡터 요소 데이터(f0~f63)로서 벡터 레지스터(VR5)에 저장하는 명령이다.
연산 실행부(ALU)는 1 클록마다 1 요소 데이터끼리의 연산을 실행한다. 따라서, 각각의 벡터 연산 명령(X, Y)의 실행에는, 8 클록이 필요하다. 동작 지정부 (11)에는, 사전에, 노이즈 저감의 동작을 실행하는 것을 나타내는 노이즈 저감 지정 정보가 설정되어 있다.
명령 실행 제어부(13)는 클록(T0)에서 벡터 연산 명령(X)의 실행을 위한 제어 정보를 생성하고, 이 정보를 동작 제어 정보 생성부(12)에 출력한다.
명령 실행 제어부(13)로부터 제어 정보가 입력되면, 동작 제어 정보 생성부(12)는 클록 생성부(20)로부터의 클록 입력에 의거하여 벡터 연산 명령(X)의 실행을 지시하는 동작 제어 정보를 생성하고, 이 정보를 벡터 파이프라인 연산부(160~167)에 다른 타이밍에서 출력한다. 보다 구체적으로는, 동작 제어 정보 생성부(12)는 클록(T1)에서 벡터 파이프라인 연산부(160, 161)에 벡터 연산 명령(X)의 실행을 지시하는 동작 제어 정보를 출력한다. 동작 제어 정보 생성부(12)는 클록(T2)에서 벡터 파이프라인 연산부(162, 163)에 벡터 연산 명령(X)의 실행을 지시하는 동작 제어 정보를 출력한다. 동작 제어 정보 생성부(12)는 클록(T3)에서 벡터 파이프라인 연산부(164, 165)에 벡터 연산 명령(X)의 실행을 지시하는 동작 제어 정보를 출력한다. 동작 제어 정보 생성부(12)는 클록(T4)에서 벡터 파이프라인 연산부(166, 167)에 벡터 연산 명령(X)의 실행을 지시하는 동작 제어 정보를 출력한다.
이하, 벡터 파이프라인 연산부(160)를 예를 들어 설명한다.
명령 제어부(10)로부터의 벡터 연산 명령(X)에 대한 동작 제어 정보에 따라서, 내부 선택부(SOUT)는 벡터 레지스터(VR0)로부터 벡터 요소 데이터(a0)를 판독하고 벡터 레지스터(VR1)로부터 벡터 요소 데이터(b0)를 판독한다. 판독된 벡터 요소 데이터(a0)는 요소 레지스터(ER0)에 저장되고 판독된 벡터 요소 데이터(b0)는 요소 레지스터(ER1)에 저장된다(도 2의 클록(T2)).
연산 실행부(ALU)는 요소 레지스터(ER0)로부터의 벡터 요소 데이터(a0), 요소 레지스터(ER1)로부터의 벡터 요소 데이터(b0)를 연산하고, 제 1 중간 결과를 중간 결과 레지스터(AR0)에 저장한다(클록(T3)). 연산 실행부(ALU)는 중간 결과 레지스터(AR0)로부터의 제 1 중간 결과를 연산하고, 중간 결과 레지스터(AR1)에 제 2 중간 결과를 저장한다.(클록(T4)). 연산 실행부(ALU)는 중간 결과 레지스터(AR1)로부터의 제 2 중간 결과를 연산하고, 연산 결과(c0=a0+b0)를 결과 레지스터(STR)에 저장한다(클록(T5)). 연산 결과 레지스터(STR)로부터의 연산 결과(c0=a0+b0)가 내부 선택부(SIN)에 의해 선택되고 벡터 레지스터(VR3)에 저장된다.
내부 선택부(SOUT)는 벡터 레지스터(VR0)로부터 벡터 요소 데이터(a8)와 벡터 레지스터(VR1)로부터 벡터 요소 데이터(b8)를 판독하고, 그들 각각을 요소 레지스터(ER0, ER1)에 저장한다.
이와 같이하여, 벡터 요소 데이터(a0, a8, a16, a24, a32, a40, a48, a56)와 벡터 요소 데이터(b0, b8, b16, b24, b32, b40, b48, b56) 사이에 연산이 실행되고, 연산 결과(c0, c8, c16, c24, c32, c40, c48, c56)는 벡터 레지스터(VR3)에 저장된다(클록(T6~T13)).
벡터 파이프라인 연산부(161)는 벡터 파이프라인 연산부(160)와 동일한 타이밍에서, 벡터 요소 데이터(a1, a9, a17, a25, a33, a41, a49, a57)와 벡터 요소 데이터(b1, b9, b17, b25, b33, b41, b49, b57) 사이에 연산이 순차적으로 실행되고( 클록(T2)에서부터), 벡터 레지스터(VR3)에 연산 결과(c1, ... , c57)가 저장된다(클록(T6~T13)).
벡터 파이프라인 연산부(162)(벡터 파이프라인 연산부(163))는 1 클록의 시프트(shift)로 클록(T3)으로부터 처리를 개시한다. 벡터 요소 데이터(a2(a3), a10(a11), a18(a19), a26(a27), a34(a35), a42(a43), a50(a51), a58(a59))와 벡터 요소 데이터(b2(b3), b10(b11), b18(b19), b26(b27), b34(b35), b42(b43), b50(b51), b58(b59)) 사이에 연산이 실행되고, 벡터 레지스터(VR3)에 연산 결과(c2(c3), ... , c58(c59))가 저장된다(클록(T7~T14)).
벡터 파이프라인 연산부(164)(벡터 파이프라인 연산부(165))는 1 클록의 시프트로 클록(T4)으로부터 처리를 개시한다. 벡터 요소 데이터(a4(a5), a12(a13), a20(a21), a28(a29), a36(a37), a44(a45), a52(a53), a60(a61))와 벡터 요소 데이터(b4(b5), b12(b13), b20(b21), b28(b29), b36(b37), b44(b45), b52(b53), b60(b61)) 사이에 연산이 실행되고, 벡터 레지스터(VR3)에 연산 결과(c4(c5), ... , c60(c61))가 저장된다(클록(T8~T15)).
벡터 파이프라인 연산부(166)(벡터 파이프라인 연산부(167))는 1 클록의 시프트로 클록(T5)으로부터 처리를 개시한다. 벡터 요소 데이터(a6(a7), a14(a15), a22(a23), a30(a31), a38(a39), a46(a47), a54(a55), a62(a63))와 벡터 요소 데이터(b6(b7), b14(b15), b22(b23), b30(b31), b38(b39), b46(b47), b54(b55), b62(b63)) 사이에 연산이 실행되고, 벡터 레지스터(VR3)에 연산 결과(c6(c7), ... , c62(c63))가 저장된다(클록(T9~T16)).
다음에, 명령 실행 제어부(13)는 클록(T8)에서 벡터 연산 명령(Y)의 실행을 위한 제어 정보를 생성하고, 이 정보를 동작 제어 정보 생성부(12)에 출력한다.
명령 실행 제어부(13)로부터 제어 정보가 입력되면, 동작 제어 정보 셍성부(12)는 클록 생성부(20)로부터 클록 입력에 의거하여 벡터 연산 명령(Y)의 실행을 지시하는 동작 제어 정보를 생성하고, 벡터 파이프라인 연산부(160~167)에 다른 타이밍에서 출력한다. 더욱 구체적으로는, 동작 제어 정보 생성부(12)는 클록(T9)에서 벡터 파이프라인 연산부(160, 161)에 벡터 연산 명령(Y)의 실행을 지시하는 동작 제어 정보를 출력한다. 동작 제어 정보 생성부(12)는 클록(T10)에서 벡터 파이프라인 연산부(162, 163)에 벡터 연산 명령(Y)의 실행을 지시하는 동작 제어 정보를 출력한다. 동작 제어 정보 생성부(12)는 클록(T11)에서 벡터 파이프라인 연산부(164, 165)에 벡터 연산 명령(Y)의 실행을 지시하는 동작 제어 정보를 출력한다. 동작 제어 정보 생성부(12)는 클록(T12)에서 벡터 파이프라인 연산부(166, 167)에 벡터 연산 명령(Y)의 실행을 지시하는 동작 제어 정보를 출력한다.
벡터 파이프라인 연산부(160~167)는 벡터 연산 명령(X)과 동일하게 벡터 연산 명령(Y)을 연속하여 실행한다. 즉, 벡터 파이프라인 연산부(160)는 클록(T10)으로부터 벡터 연산 명령(Y)의 처리를 개시하고, 벡터 레지스터(VR3) 내의 벡터 요소 데이터와 벡터 레지스터(VR4) 내의 벡터 요소 데이터를 가산하고, 그 결과 데이터를 벡터 레지스터(VR5)에 저장한다.
상술한 바와 같이, 벡터 파이프라인 연산부(160~167)는 한쌍으로 1T 클록 주기의 시프트로 연속하여 동작한다. 이 시프트된 동작은 벡터 연산 명령뿐만이 아 니라 벡터 로드 명령(벡터 요소 데이터를 메모리로부터 내부 선택부(SIN)를 경유하여 벡터 레지스터(VR0~VRn)로 로드하는 명령), 벡터 저장 명령(벡터 요소 데이터를 벡터 레지스터(VR0~VRn)로부터 내부 선택부(SOUT)를 경유하여 메모리로 저장하는 명령)에 있어서도 실행될 수 있다. 벡터 연산 명령, 벡터 로드 명령, 벡터 저장 명령 등을 총칭하여 "벡터 명령"이라 한다.
벡터 파이프라인 연산부(160~167)의 처리 동작을 서로가 시간적으로 시프트되어 있기 때문에, 벡터 연산 명령 실행의 개시(특히, 클록(T2~T5))에서, 회로의 동시 동작의 개시를 위한 스위칭하는 양을 줄이는 것이 가능하다. 그 결과, 동시 동작으로 인한 노이즈를 저감시키는 것이 가능하게 된다. 벡터 파이프라인 연산부(160~167)에 의해 처리의 개시 및 실행을 시간적으로 시프트시킴으로써 노이즈의 저감하는 동작을 "노이즈 저감의 동작"으로 부른다.
동작 제어 정보 생성부(12)가 벡터 파이프라인 연산부(160, 161), 벡터 파이프라인 연산부(162, 163), 벡터 파이프라인 연산부(164, 165), 벡터 파이프라인 연산부(166, 167)에 동작 제어 정보를 서로 간에 1 클록 시프트된 타이밍에서 출력하는 경우를 예로 나타내었다. 그러나, 이러한 정보는 서로 간에 2 클록 이상 시프트된 타이밍에서 출력되어도 좋다. 또한, 벡터 파이프라인 연산부(160~167)의 각각에 다른 타이밍에서 동작 제어 정보를 출력하여도 좋다.
제 2
실시예
도 3에 나타낸 바와 같이, 본 발명의 제 2 실시예에 따른 벡터 처리 장치(200)는, 도 1에 나타낸 벡터 처리 장치(100)에서의 내부 선택부(SIN)가 내부 선택 부(SOUT)에 통합되어 내부 선택부(SIO)로 되어 있다. 그 결과, 연산 결과 레지스터(STR)와 벡터 레지스터(VR0~VRn)가 서로에 직접 접속된다. 이 장치가 복수의 연산 실행부(ALU)를 구비하는 경우에는, 연산 결과 레지스터(STR)의 입력에 연산 결과 선택부(SAL)을 설치하면 좋다. 벡터 처리 장치(200)의 동작은 상술한 벡터 처리 장치(100)에서의 내부 선택부(SIN)의 동작이 선택의 동작 대신에, 간단한 전송의 동작으로 되는 것과 동등하다.
제 3
실시예
도 4에 나타낸 바와 같이, 본 발명의 제 3 실시예에 따른 벡터 처리 장치(300)는 벡터 처리 장치(100)(또는, 도 3에 나타낸 벡터 처리 장치(200))에 더하여, 크로스바 등의 외부 선택부(14)와 타이밍 조정부(15)를 포함한다. 도 4에는 각각의 벡터 파이프라인 연산부(160~167)의 간략한 구성을 나타내고 있다.
명령 제어부(10)의 동작 제어 정보 생성부(12)는 벡터 파이프라인 연산부(160~167)에 출력하는 동작 제어 정보와 같은 정보를 외부 선택부(14) 및 타이밍 조정부(15)에도 출력한다. 외부 선택부(14)는 동작 제어 정보 생성부(12)로부터의 동작 제어 정보에 따른 벡터 요소 데이터를 선택한다. 타이밍 조정부(15)는 외부 선택부(14)에의 벡터 요소 데이터의 입력 타이밍과 외부 선택부(14)로부터의 벡터 요소 데이터의 출력 타이밍을 조정한다.
외부 선택부(14) 및 타이밍 조정부(15)는 벡터 파이프라인 연산부(160~167) 사이에 벡터 요소 데이터의 처리를 행하는 명령으로 사용된다. 예를 들어, 이러한 명령으로 벡터 파이프라인 연산부(160~167) 사이의 벡터 요소 데이터를 이송하는 명령, 모든 벡터 요소 데이터의 총합을 산출하는 명령 등을 들 수 있다.
벡터 파이프라인 연산부(160~167) 사이의 벡터 요소 데이터를 이송하는 명령은, 예를 들어, 우회전 명령(Z)을 포함한다. 우회전 명령(Z)은 벡터 파이프라인 연산부(160) 내의 벡터 레지스터(VR0)에 저장되어 있는 벡터 요소 데이터(a0, a8, a16, a24, a32, a40, a48, a56), 벡터 파이프라인 연산부(161) 내의 벡터 레지스터(VR0)에 저장되어 있는 벡터 요소 데이터(a1, a9, a17, a25, a33, a41, a49, a57), ... , 벡터 파이프라인 연산부(167) 내의 벡터 레지스터(VR0)에 저장되어 있는 벡터 요소 데이터(a7, a15, a23, a31, a39, a47, a55, a63)를 7개 벡터 요소 데이터만큼 우측으로 회전하고, 벡터 레지스터(VR1)에 결과 데이터를 저장하는 명령이다. 결과적으로, 벡터 파이프라인 연산부(160) 내의 벡터 레지스터(VR1)에는 벡터 요소 데이터(a7, a15, a23, a31, a39, a47, a55, a63)가 저장되고, 벡터 파이프라인 연산부(161) 내의 벡터 레지스터(VR0)에는 벡터 요소 데이터(a0, a8, a16, a24, a32, a40, a48, a56)가 저장되고, ... , 벡터 파이프라인 연산부(167)에는 벡터 요소 데이터(a6, a14, a22, a30, a38, a46, a54, a62)가 저장된다.
도 5를 참조하여 타이밍 조정부(15)의 구성에 대하여 설명한다. 도 5는 외부 선택부(14)의 입력 측에 설치된 타이밍 조정부(15)의 구성을 나타낸다. 이 경우, 외부 선택부(14)의 출력 측은 벡터 파이프라인 연산부(160~167)에 직접 접속된다.
도 5에 나타낸 타이밍 조정부(15)는 벡터 파이프라인 연산부(160~167)로부터 다른 타이밍으로 입력된 벡터 요소 데이터를, 동일의 타이밍에서 외부 선택부(14) 에 출력한다. 더욱 구체적으로는, 타이밍 조정부(15)는 지연 회로(150~155), 조정 선택부(DS0~DS5)를 포함한다.
지연 회로(150)는 벡터 파이프라인 연산부(160)로부터 입력된 벡터 요소 데이터를 이 벡터 파이프라인 연산부(160)에 대응한 시간만큼 이 데이터를 지연시켜서 출력한다. 지연 회로(151)는 벡터 파이프라인 연산부(161)로부터 입력된 벡터 요소 데이터를 이 벡터 파이프라인 연산부(161)에 대응한 시간만큼 이 데이터를 지연시켜서 출력한다. 지연 회로(152)는 벡터 파이프라인 연산부(162)로부터 입력된 벡터 요소 데이터를 이 벡터 파이프라인 연산부(162)에 대응한 시간만큼 이 데이터를 지연시켜서 출력한다. 지연 회로(153)는 벡터 파이프라인 연산부(163)로부터 입력된 벡터 요소 데이터를 이 벡터 파이프라인 연산부(163)에 대응한 시간만큼 이 데이터를 지연시켜서 출력한다. 지연 회로(154)는 벡터 파이프라인 연산부(164)로부터 입력된 벡터 요소 데이터를 이 벡터 파이프라인 연산부(164)에 대응한 시간만큼 이 데이터를 지연시켜서 출력한다. 지연 회로(155)는 벡터 파이프라인 연산부(165)로부터 입력된 벡터 요소 데이터를 이 벡터 파이프라인 연산부(165)에 대응한 시간만큼 이 데이터를 지연시켜서 출력한다.
이 경우에서, 벡터 파이프라인 연산부(160~167)에 대응한 시간으로는 명령 제어부(10)가 다른 벡터 파이프라인 연산부에 동작 제어 정보를 출력할 때에 부여된 지연 기간을 해소하는 시간이다. 더욱 구체적으로는, 벡터 파이프라인 연산부(160, 161)에 대하여서는 3T 클록 주기에 상당하는 시간이고, 벡터 파이프라인 연산부(162, 163)에 대하여는 2T 클록 주기에 상당하는 시간이고, 벡터 파이프라인 연산부(164, 165)에 대하여는 1T 클록 주기에 상당하는 시간이다.
따라서, 지연 회로(150~155)는 1T 클록 주기에 상당하는 지연 시간이 얻어질 수 있는 조정 레지스터(DR)를 이용하여 다음과 같은 방식으로 구성된다. 즉, 지연 회로(150)는 조정 레지스터(DR00, DR01, DR02)가 종속 접속된 구성을 갖는다. 지연 회로(151)는 조정 레지스터(DR10, DR11, DR12)가 종속 접속된 구성을 갖는다. 지연 회로(152)는 조정 레지스터(DR20, DR21)가 종속 접속된 구성을 갖는다. 지연 회로(153)는 조정 레지스터(DR30, DR31)가 종속 접속된 구성을 갖는다. 지연 회로(154)는 조정 레지스터(DR40)로 이루어진다. 지연 회로(155)는 조정 레지스터(DR50)로 이루어진다.
조정 선택부(DS0)는 벡터 파이프라인 연산부(160)으로부터의 벡터 요소 데이터와 지연 회로(150)으로부터의 벡터 요소 데이터 중 어느 하나를 선택한다. 조정 선택부(DS1)는 벡터 파이프라인 연산부(161)으로부터의 벡터 요소 데이터와 지연 회로(151)으로부터의 벡터 요소 데이터 중 어느 하나를 선택한다. 조정 선택부(DS2)는 벡터 파이프라인 연산부(162)으로부터의 벡터 요소 데이터와 지연 회로(152)으로부터의 벡터 요소 데이터 중 어느 하나를 선택한다. 조정 선택부(DS3)는 벡터 파이프라인 연산부(163)으로부터의 벡터 요소 데이터와 지연 회로(153)으로부터의 벡터 요소 데이터 중 어느 하나를 선택한다. 조정 선택부(DS4)는 벡터 파이프라인 연산부(164)으로부터의 벡터 요소 데이터와 지연 회로(154)으로부터의 벡터 요소 데이터 중 어느 하나를 선택한다. 조정 선택부(DS5)는 벡터 파이프라인 연산부(165)으로부터의 벡터 요소 데이터와 지연 회로(155)으로부터의 벡터 요소 데이 터 중 어느 하나를 선택한다. 조정 선택부(DS0~DS5)는 동작 제어 정보 생성부(12)로부터 조정 선택부(DS0~DS5)에 입력되는 동작 제어 정보에 의해 벡터 요소 데이터를 선택한다.
또한, 벡터 파이프라인 연산부(166, 167)로부터의 벡터 요소 데이터의 타이밍은 조정되지 않는다.
다음으로, 도 6을 참조하여, 도 4에 나타낸 벡터 처리 장치(300)의 동작에 대하여 설명한다.
도 6을 참조하면, 동작 제어 정보 생성부(12)는 클록(T1)에서 벡터 파이프라인 연산부(160, 161)에 우회전 명령(Z)의 실행을 지시하는 동작 제어 정보를 출력한다. 같은 우회전 명령(Z)을 타이밍 조정부(15)(조정 선택부(DS0, DS1)), 및 외부 선택부(14)에도 출력한다. 동작 제어 정보 생성부(12)는 클록(T2)에서 벡터 파이프라인 연산부(162, 163)에 우회전 명령(Z)의 실행을 지시하는 동작 제어 정보를 출력한다. 같은 우회전 명령(Z)을 타이밍 조정부(15)(조정 선택부(DS2, DS3)) 및 외부 선택부(14)에도 출력한다. 또한, 동작 제어 정보 생성부(12)는 클록(T3)에서 벡터 파이프라인 연산부(164, 165)에 우회전 명령(Z)의 실행을 지시하는 동작 제어 정보를 출력한다. 같은 우회전 명령(Z)을 타이밍 조정부(15)(조정 선택부(DS4, DS5)) 및 외부 선택부(14)에도 출력한다. 동작 제어 정보 생성부(12)는 클록(T4)에서 벡터 파이프라인 연산부(166, 167)에 우회전 명령(Z)의 실행을 지시하는 동작 제어 정보를 출력한다. 같은 우회전 명령(Z)을 타이밍 조정부(15)(조정 선택부(DS6, DS7)) 및 외부 선택부(14)에도 출력한다.
벡터 파이프라인 연산부(160)(벡터 파이프라인 연산부(161))에 동작 제어 정보가 입력되면, 내부 선택부(SOUT)(또는 내부 선택부(SIO))는 벡터 레지스터(VR0)에 저장되어 있는 벡터 요소 데이터(a0(a1))를 판독하고, 타이밍 조정부(15)에 출력한다. 타이밍 조정부(15)에서, 벡터 요소 데이터(a0(a1))는 지연 회로(150)(지연 회로(151))의 조정 레지스터(DR00)(조정 레지스터(DR10))에 저장된다(도 6의 클록(T2)). 벡터 요소 데이터(a0(a1))는 조정 레지스터(DR01)(조정 레지스터(DR11))에 저장된다(클록(T3)). 벡터 요소 데이터(a0(a1))는 조정 레지스터(DR02)(조정 레지스터(DR12))에 저장된다(클록(T4)). 벡터 요소 데이터(a0(a1))는 조정 레지스터(DR02)(조정 레지스터(DR12))로부터 조정 선택부(DS0)(조정 선택부(DS1))에 의해 선택되고, 외부 선택부(14)에 출력된다(클록(T5)).
벡터 파이프라인 연산부(162)(벡터 파이프라인 연산부(163))에 동작 제어 정보가 입력되면, 내부 선택부(SOUT)(또는 내부 선택부(SIO))는 벡터 레지스터(VR0)에 저장되어 있는 벡터 요소 데이터(a2(a3))를 판독하고, 타이밍 조정부(15)에 출력한다. 타이밍 조정부(15)에서, 벡터 요소 데이터(a2(a3))는 지연 회로(152)(지연 회로(153))의 조정 레지스터(DR20)(조정 레지스터(DR30))에 저장된다(클록(T3)). 벡터 요소 데이터(a2(a3))는 조정 레지스터(DR21)(조정 레지스터(DR21))에 저장된다(클록(T4)). 벡터 요소 데이터(a2(a3))는 조정 레지스터(DR21)(조정 레지스터(DR21))에 저장된다(클록(T4)). 벡터 요소 데이터(a2(a3))는 조정 레지스터(DR21)(조정 레지스터(DR21))로부터 조정 선택부(DS2)(조정 선택부(DS3))에 의해 선택되고, 외부 선택부(14)에 출력된다(클록(T5)).
벡터 파이프라인 연산부(164)(벡터 파이프라인 연산부(165))에 동작 제어 정보가 입력되면, 내부 선택부(SOUT)(또는 내부 선택부(SIO))는 벡터 레지스터(VR0)에 저장되어 있는 벡터 요소 데이터(a4(a5))를 판독하고, 타이밍 조정부(15)에 출력한다. 타이밍 조정부(15)에서, 벡터 요소 데이터(a4(a5))는 지연 회로(154)(지연 회로(155))의 조정 레지스터(DR40)(조정 레지스터(DR50))에 저장된다(클록(T4)). 벡터 요소 데이터(a4(a5))는 조정 레지스터(40)(조정 레지스터(DR50))로부터 조정 선택부(DS4)(조정 선택부(DS5))에 의해 선택되고, 외부 선택부(14)에 출력된다(클록(T5)).
벡터 파이프라인 연산부(166)(벡터 파이프라인 연산부(167))에 동작 제어 정보가 입력되면, 내부 선택부(SOUT)(또는 내부 선택부(SIO))는 벡터 레지스터(VR0)에 저장되어 있는 벡터 요소 데이터(a6(a7))를 판독하고, 타이밍 조정부(15)에 출력한다. 벡터 요소 데이터(a4(a5))는 타이밍 조정부(15)를 경유하여, 외부 선택부(14)에 출력된다(클록(T5)).
다음으로, 외부 선택부(14)는 타이밍 조정부(15)로부터 벡터 요소 데이터(a0, a1, a2, a3, a4, a5, a6, a7)를 입력받는다. 동작 제어 정보 생성부(12)로부터의 동작 제어 정보에 의거하여, 외부 선택부(14)는 벡터 파이프라인 연산부(160, 161, 162, 163, 164, 165, 166, 167)에 벡터 요소 데이터(a7, a0, a1, a2, a3, a4, a5, a6)를 각각 출력한다(클록(T5)).
벡터 파이프라인 연산부(160~167)의 내부 선택부(SIN)(또는, 내부 선택부(SIO))를 경유하여, 벡터 레지스터(VR1)에 벡터 요소 데이터(a7, a0, a1, a2, a3, a4, a5, a6)가 저장된다(클록(T5)). 벡터 파이프라인 연산부(160~167)의 내부 선택부(SIN)를 경유하여, 벡터 레지스터(VR1)에 벡터 요소 데이터(a15, a8, a9, a10, a11, a12, a13, a14)가 저장된다(클록(T6)). 이러한 방식으로, 우회전 명령(Z)이 연속적으로 실행된다.
도 4에 나타낸 벡터 처리 장치(300)는 도 1 및 도 3에 나타낸 벡터 처리 장치(100, 200)에 비하여, 벡터 파이프라인 연산부(160~167) 사이에 벡터 요소 데이터의 처리하는 명령을 용이하게 실행할 수 있다는 효과를 갖는다.
제 4
실시예
도 7에 나타낸 바와 같이, 본 발명의 제 4 실시예에 따른 벡터 처리 장치(400)는 도 4에 나타낸 벡터 처리 장치(300)에서 타이밍 조정부(15)를 제거한 것과 동일한 구성을 갖는다. 벡터 파이프라인 연산부(160~167) 사이에 벡터 요소 데이터의 처리하는 명령이 실행될 때, 명령 제어부(10A)의 동작 제어 정보 생성부(12A)는 벡터 파이프라인 연산부(160~167)에 대하여, 동작 제어 정보를 시프트하지 않고 출력한다. 예를 들어, 우회전 명령(Z)의 실행할 때, 동작 제어 정보 생성부(12A)는 도 6의 클록(T4)에서 모든 벡터 파이프라인 연산부(160~167)에 우회전 명령(Z)의 개시 및 실행을 위한 동작 제어 정보를 출력한다.
도 8을 참조하여 동작 제어 정보 생성부(12A)의 구성에 대하여 설명한다.
동작 제어 정보 생성부(12A)는 시프트 레지스터(121)와, 선택 정보 생성부(CSS)와, 제어 선택부(CS0)와, 제어 선택부(CS1)와, 제어 선택부(CS2)와, 제어 선택부(CS3)를 포함한다. 시프트 레지스터(121)는 제어 레지스터(FR0), 제어 레지스터(FR1), 제어 레지스터(FR2), 제어 레지스터(FR3)로 이루어진 4단의 시프트 레지스터이다. 시프트 레지스터(121)의 제 1 단(제어 레지스터(FR0))에서는 명령 실행 제어부(13)로부터의 제어 정보가 입력된다. 이 제어 정보는 클록 생성부(20)로부터 클록이 입력될 때마다, 시프트 레지스터(121)의 현재 단에서 다음 단으로 시프트 된다. 선택 정보 생성부(CSS)는 명령 실행 제어부(13)로부터의 제어 정보 및 동작 지정부(11)로부터의 노이즈 저감 지정 정보에 의거하여, 제어 선택부(CS0~CS3)를 위한 선택 정보를 생성한다.
선택 정보는 다음 방식으로 생성된다.
(1) 노이즈 저감 지정 정보가 노이즈 저감의 동작을 지정하지 않은 경우:
선택 정보는 제어 선택부(CS0~CS3)가 시프트 레지스터(121)의 재 1 단에 저장된 제어 정보, 즉, 제어 레지스터(FR0)로부터의 제어 정보를 선택하게 한다. 제어 선택부(CS0~CS3)는 시프트 레지스터(121)의 제 1 단 이외의 특정 단에 저장된 제어 정보, 즉, 제어 레지스터(FR1~FR3) 중 어느 하나의 제어 정보를 선택하게 해도 좋다.
(2) 노이즈 저감 지정 정보가 노이즈 저감의 동작을 지정하고 있고, 명령 실행 제어부(13)로부터의 제어 정보가 벡터 파이프라인 연산부(160~167) 사이에 벡터 요소 데이터의 처리를 행하는 명령을 나타내고 있지 않은 경우:
선택 정보는 제어 선택부(CS0)에 시프트 레지스터(121)의 제 1 단에 저장된 제어 정보, 즉, 제어 레지스터(FR0)로부터의 제어 정보를 선택하게 한다. 선택 정보는 제어 선택부(CS1)가 시프트 레지스터(121)의 제 2 단에 저장된 제어 정보, 즉 , 제어 레지스터(FR1)로부터의 제어 정보를 선택하게 한다. 선택 정보는 제어 선택부(CS2)가 시프트 레지스터(121)의 제 3 단에 저장된 제어 정보, 즉, 제어 레지스터(FR2)로부터의 제어 정보를 선택하게 한다. 선택 정보는 제어 선택부(CS3)가 시프트 레지스터(121)의 최종 단에 저장된 제어 정보, 즉, 제어 레지스터(FR3)로부터의 제어 정보를 선택하게 한다. 즉, 선택 정보는 각각의 제어 선택부(CS0~CS3) 가 시프트 레지스터(121)의 각 단에 저장된 제어 정보 중 어느 하나를 선택하게 한다.
(3) 노이즈 저감 지정 정보가 노이즈 저감의 동작을 지정하고, 명령 실행 제어부(13)로부터의 제어 정보가 벡터 파이프라인 연산부(160~167) 사이에 벡터 요소 데이터의 처리를 행하는 명령을 나타내고 있는 경우:
선택 정보는 제어 선택부(CS0~CS3)가 시프트 레지스터(121)의 최종 단에 저장된 제어 정보, 즉, 제어 레시즈터(FR3)로부터의 제어 정보를 선택하게 한다.
제어 선택부(CS0)는 선택 정보에 따라서 선택된 제어 정보를 동작 제어 정보로 하여 벡터 파이프라인 연산부(160, 161)에 출력한다. 제어 선택부(CS1)는 선택 정보에 따라서 선택된 제어 정보를 동작 제어 정보로 하여 벡터 파이프라인 연산부(162, 163)에 출력한다. 제어 선택부(CS2)는 선택 정보에 따라서 선택된 제어 정보를 동작 제어 정보로 하여 벡터 파이프라인 연산부(164, 165)에 출력한다. 제어 선택부(CS3)는 선택 정보에 따라서 선택된 제어 정보를 동작 제어 정보로 하여 벡터 파이프라인 연산부(166, 167)에 출력한다.
(1)의 경우에는, 벡터 파이프라인 연산부(160~167) 모두에 동일한 타이밍에 서 동작 제어 정보가 출력된다. 또한, (2)의 경우에는, 벡터 파이프라인 연산부(160, 161), 벡터 파이프라인 연산부(162, 163), 벡터 파이프라인 연산부(164, 165), 벡터 파이프라인 연산부(166, 167)에 다른 타이밍에서 동작 제어 정보가 순차적으로 출력된다. 또한, (3)의 경우에는, 마지막 타이밍에서 동작하는 벡터 파이프라인 연산부(166, 167)에 맞춰서, 동시 출력 타이밍에 벡터 파이프라인 연산부(160~167)에 동작 제어 정보가 출력된다.
도 7에 나타낸 벡터 처리 장치(400)는 도 4에 나타낸 벡터 처리 장치(300)에 비해 타이밍 조정부(15)를 생략할 수 있어서, 하드웨어 양을 저감할 수 있다는 효과를 갖는다.
도 8에 나타낸 동작 제어 정보 생성부(12A)는 (3)의 경우의 제어 기능을 제외하면, 도 1에 나타낸 동작 제어 정보 생성부(12)와 동일한 것이다.
상술한 바와 같이, 상기 실시예에 따르면, 실행할 로드 명령 및 저장 명령에 상관없이, 벡터 파이프라인 연산부(160~167)의 처리 개시의 타이밍을 시프트시킬 수 있다. 이는 종래에 비해 다양한 연산에서의 동시 동작에 의해 노이즈를 저감하고, 오동작의 발생을 방지할 수 있다.
벡터 요소 데이터를 처리하는 벡터 파이프라인 연산부(160~167)을 갖는 벡터 처리 장치(100)에 대하여 상술하였다. 그러나, 본 발명은 복수의 연산부를 갖는 정보 처리 장치에도 적용가능하다. 복수의 연산부의 연산의 개시 타이밍을 시프트 하여 제어함으로써, 동시 동작에 의한 노이즈를 저감시키는 것이 가능하다.
또한, 상술한 벡터 처리 장치(100~400), 또는 정보 처리 장치를 1개의 LSI 상에 형성하는 것이 가능하다. 또한, 벡터 처리 장치(100~400), 또는 정보 처리 장치를 복수 개의 LSI 상에 형성하는 것도 가능하다.
Claims (21)
- 처리의 개시 및 실행을 지시하는 동작 제어 정보에 따라 동작하는 복수의 벡터 파이프라인 연산부(160 ~ 167, 160A ~ 167A)와,동작 제어 정보를 생성하고, 이 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 다른 타이밍에서 출력하는 명령 제어부(10, 10A)와,클록(clock)을 출력하는 클록 생성부(20)를 구비하고,상기 명령 제어부는 상기 클록 생성부로부터의 클록의 입력에 의거하여 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 순차 출력하는 동작 제어 정보 생성부(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 삭제
- 제 1 항에 있어서,상기 명령 제어부는 벡터 명령의 실행에 대한 제어 정보를 출력하는 명령 실행 제어부(13)를 구비하고,상기 동작 제어 정보 생성부는 상기 명령 실행 제어부로부터의 제어 정보가 입력되고, 또한 상기 클록 생성부로부터의 클록에 따라 동작하는 시프트 레지스터(121)를 구비하고,상기 시프트 레지스터는 상기 시프트 레지스터의 단(stage)들에 저장된 제어 정보를 동작 제어 정보로서 상기 벡터 파이프라인 연산부 각각에 출력하는 것을 특징으로 하는 벡터 처리 장치.
- 제 1 항에 있어서,상기 벡터 파이프라인 연산부 각각은,벡터 요소(element) 데이터(정의)를 유지하는 적어도 하나의 데이터 유지부(VR0 ~ VRn)와,상기 명령 제어부로부터의 동작 제어 정보의 입력에 의거하여, 상기 데이터 유지부 중 하나에 유지되어 있는 벡터 요소 데이터를 상기 벡터 파이프라인 연산부의 외부에 출력하는 내부 선택부(SOUT, SIO)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 제 4 항에 있어서,복수의 벡터 파이프라인 연산부로부터 다른 타이밍에서 입력된 벡터 요소 데이터를 동일한 타이밍에서 출력하는 타이밍 조정부(15)를 더 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 제 5 항에 있어서,상기 타이밍 조정부는 상기 벡터 파이프라인 연산부(160 ~ 165)로부터 입력 된 벡터 요소 데이터를 상기 벡터 파이프라인 연산부에 대응한 시간만큼 지연시켜 출력하는 지연 회로(151 ~ 155)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 제 5 항에 있어서,상기 타이밍 조정부는 상기 벡터 파이프라인 연산부(160 ~ 165)로부터 입력된 벡터 요소 데이터를 상기 벡터 파이프라인 연산부에 대응한 시간만큼 지연시켜 출력하는 지연 회로(151 ~ 155)를 구비하고, 상기 벡터 파이프라인 연산부에 대응하는 시간은 상기 명령 제어부가 다른 벡터 파이프라인 연산부에 동작 제어 정보를 출력하는 때에 기여한 지연 시간을 해소(解消)하는 시간인 것을 특징으로 하는 벡터 처리 장치.
- 제 1 항에 있어서,상기 명령 제어부는,노이즈 저감 동작을 실행할지의 여부를 나타내는 노이즈 저감 동작 지정 정보를 저장하는 동작 지정부(11)와,상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정하고 있지 않을 때, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 동일한 타이밍에서 출력하고, 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정할 때, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 다른 타이밍에서 출력하는 동작 제어 정보 생성부(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 제 8 항에 있어서,상기 명령 제어부는 벡터 명령의 실행에 대한 제어 정보를 출력하는 명령 실행 제어부(13)를 더 구비하고,상기 동작 제어 정보 생성부는,상기 명령 실행 제어부로부터의 제어 정보가 입력되는 시프트 레지스터(121)와,상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보에 의거하여, 상기 시프트 레지스터의 특정 단에 저장된 제어 정보와 상기 시프트 레지스터의 각단에 저장된 제어 정보 중 하나를 동작 제어 정보로서 상기 벡터 파이프라인 연산부 각각에 출력하는 제어 선택부(CS0 ~ CS3)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 제 1 항에 있어서,상기 명령 제어부는,노이즈 저감 동작을 실시할지의 여부를 나타내는 노이즈 저감 동작 지정 정보를 저장하는 동작 지정부(11)와,상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정하고 있지 않을 때, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 동일한 타이밍에서 출력하고, 상기 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정할 때, 상기 벡터 파이프라인 연산부의 적어도 2개에 걸친 벡터 명령의 실행 시에는, 최종 타이밍에서 동작하는 벡터 파이프라인 연산부에 따라 상기 벡터 파이프라인 연산부 각각에 동작 제어 정보를 출력하고, 상기 벡터 파이프라인 연산부의 적어도 두개에 걸치지 않은 벡터 명령의 실행 시에는, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 다른 타이밍에서 출력하는 동작 제어 정보 생성부(12A)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 제 10 항에 있어서,상기 명령 제어부는 벡터 명령의 실행에 대한 제어 정보를 출력하는 명령 실행 제어부(13)를 더 구비하고,상기 동작 제어 정보 생성부는,상기 명령 실행 제어부로부터의 제어 정보가 입력되는 시프트 레지스터(121)와,상기 명령 실행 제어부로부터 입력되는 제어 정보 및 상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보에 의거하여, 상기 시프트 레지스터의 최초 단에 저장된 제어 정보, 상기 시프트 레지스터의 최종 단에 저장된 제어 정보 및 상기 시프트레지스터의 각단에 저장된 제어 정보 중 하나를 동작 제어 정보로서 상기 벡터 파이프라인 연산부 각각에 출력하는 제어 선택부(CS0 ~ CS3)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 제 1 항에 있어서,상기 벡터 파이프라인 연산부 및 상기 명령 제어부가 형성된 LSI를 구비하는 것을 특징으로 하는 벡터 처리 장치.
- 처리의 개시 및 실행을 지시하는 동작 제어 정보에 따라 동작하는 복수의 연산부(160 ~ 167, 160A ~ 167A)와,동작 제어 정보를 생성하고, 이 동작 제어 정보를 상기 연산부 각각에 다른 타이밍에서 출력하는 명령 제어부(10, 10A)와,클록을 출력하는 클록 생성부(20)를 구비하고,상기 명령 제어부는 상기 클록 생성부로부터의 클록의 입력에 의거하여, 동작 제어 정보를 상기 연산부 각각에 순차 출력하는 동작 제어 정보 생성부(12, 12A)를 구비하는 것을 특징으로 하는 정보 처리 장치.
- 삭제
- 제 13 항에 있어서,상기 연산부 및 상기 명령 제어부가 형성된 LSI를 구비하는 것을 특징으로 하는 정보 처리 장치.
- 처리의 개시 및 실행을 지시하는 동작 제어 정보를 생성하고, 이 동작 제어 정보를 복수의 벡터 파이프라인 연산부에 다른 타이밍에서 출력하는 단계(10, 10A)와,다른 타이밍에서 동작 제어 정보가 입력된 상기 벡터 파이프라인 연산부가 처리를 순차적으로 개시 및 실행하는 단계(160 ~ 167, 160A ~ 167A)를 구비하고,상기 동작 제어 정보를 출력하는 단계는 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 순차 출력하는 단계(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 방법.
- 삭제
- 제 16 항에 있어서,상기 처리를 개시 및 실행하는 단계는 상기 벡터 파이프라인 연산부 각각이 벡터 요소 데이터를 타이밍 조정부에 순차 출력하는 단계를 구비하는 것을 특징으로 하는 벡터 처리 방법.
- 제 18 항에 있어서,상기 타이밍 조정부가 상기 각 벡터 파이프라인 연산부로부터 다른 타이밍에서 입력된 벡터 요소 데이터를 동일한 타이밍에서 출력하는 단계(15)를 더 포함하는 것을 특징으로 하는 벡터 처리 방법.
- 제 16 항에 있어서,상기 동작 제어 정보를 출력하는 단계는 노이즈 저감 동작의 실시가 지시된 때에 상기 동작 제어 정보를 다른 타이밍에서 출력하는 단계(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 방법.
- 제 16 항에 있어서,상기 동작 제어 정보를 출력하는 단계는 노이즈 저감 동작의 실시가 지시된 때에 상기 벡터 파이프라인 연산부의 적어도 2개에 걸쳐있지 않은 벡터 명령의 실행 시에는 동작 제어 정보를 다른 타이밍에서 출력하는 단계(12A)를 구비하는 것을 특징으로 하는 벡터 처리 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2004-00217283 | 2004-07-26 | ||
JP2004217283A JP4079923B2 (ja) | 2004-07-26 | 2004-07-26 | ベクトル処理装置、情報処理装置、および、ベクトル処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060046730A KR20060046730A (ko) | 2006-05-17 |
KR100703764B1 true KR100703764B1 (ko) | 2007-04-06 |
Family
ID=35159845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050067164A KR100703764B1 (ko) | 2004-07-26 | 2005-07-25 | 벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20060020768A1 (ko) |
EP (1) | EP1624380B1 (ko) |
JP (1) | JP4079923B2 (ko) |
KR (1) | KR100703764B1 (ko) |
AT (1) | ATE371217T1 (ko) |
AU (1) | AU2005203127A1 (ko) |
CA (1) | CA2512316A1 (ko) |
DE (1) | DE602005002096T2 (ko) |
DK (1) | DK1624380T3 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100973083B1 (ko) * | 2008-12-31 | 2010-07-29 | 전자부품연구원 | 어레이 기반의 움직임 벡터 추출기 및 그 방법 |
JP5804507B2 (ja) * | 2011-09-26 | 2015-11-04 | Necプラットフォームズ株式会社 | 演算処理装置及び演算器同時実行制御方法 |
GB2553783B (en) | 2016-09-13 | 2020-11-04 | Advanced Risc Mach Ltd | Vector multiply-add instruction |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987620A (en) * | 1997-09-19 | 1999-11-16 | Thang Tran | Method and apparatus for a self-timed and self-enabled distributed clock |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
JP2921190B2 (ja) * | 1991-07-25 | 1999-07-19 | 日本電気株式会社 | 並列実行方式 |
US5274818A (en) * | 1992-02-03 | 1993-12-28 | Thinking Machines Corporation | System and method for compiling a fine-grained array based source program onto a course-grained hardware |
US6122767A (en) * | 1993-06-03 | 2000-09-19 | Texas Instruments Incorporated | Method and apparatus for noise reduction of cyclic signal by selecting majority logic state of corresponding portions of plural cycles |
JPH0744508A (ja) * | 1993-08-03 | 1995-02-14 | Hitachi Ltd | プログラム分割方法 |
US6016395A (en) * | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
DE19743284C1 (de) * | 1997-09-30 | 1999-03-11 | Siemens Ag | Schaltungsanordnung zur Reduzierung von Störungen infolge des Schaltes eines Ausgangstreibers |
US6550059B1 (en) * | 1999-10-04 | 2003-04-15 | Advanced Micro Devices, Inc. | Method for generating optimized vector instructions from high level programming languages |
US6832214B1 (en) * | 1999-12-07 | 2004-12-14 | International Business Machines Corporation | Method, system, and program for converting code to executable code using neural networks implemented in a software program |
US6968546B2 (en) * | 2001-03-30 | 2005-11-22 | Intel Corporation | Debugging support using dynamic re-compilation |
US7278137B1 (en) * | 2001-12-26 | 2007-10-02 | Arc International | Methods and apparatus for compiling instructions for a data processor |
US6983387B2 (en) * | 2002-10-17 | 2006-01-03 | International Business Machines Corporation | Microprocessor chip simultaneous switching current reduction method and apparatus |
-
2004
- 2004-07-26 JP JP2004217283A patent/JP4079923B2/ja not_active Expired - Fee Related
-
2005
- 2005-07-15 CA CA002512316A patent/CA2512316A1/en not_active Abandoned
- 2005-07-19 AT AT05015681T patent/ATE371217T1/de not_active IP Right Cessation
- 2005-07-19 AU AU2005203127A patent/AU2005203127A1/en not_active Abandoned
- 2005-07-19 DK DK05015681T patent/DK1624380T3/da active
- 2005-07-19 DE DE602005002096T patent/DE602005002096T2/de not_active Expired - Fee Related
- 2005-07-19 EP EP05015681A patent/EP1624380B1/en active Active
- 2005-07-25 US US11/188,927 patent/US20060020768A1/en not_active Abandoned
- 2005-07-25 KR KR1020050067164A patent/KR100703764B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987620A (en) * | 1997-09-19 | 1999-11-16 | Thang Tran | Method and apparatus for a self-timed and self-enabled distributed clock |
Also Published As
Publication number | Publication date |
---|---|
AU2005203127A1 (en) | 2006-02-09 |
DK1624380T3 (da) | 2007-11-26 |
JP2006039840A (ja) | 2006-02-09 |
CA2512316A1 (en) | 2006-01-26 |
ATE371217T1 (de) | 2007-09-15 |
EP1624380A3 (en) | 2006-02-22 |
EP1624380B1 (en) | 2007-08-22 |
US20060020768A1 (en) | 2006-01-26 |
DE602005002096D1 (de) | 2007-10-04 |
DE602005002096T2 (de) | 2008-07-24 |
EP1624380A2 (en) | 2006-02-08 |
JP4079923B2 (ja) | 2008-04-23 |
KR20060046730A (ko) | 2006-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991476B (zh) | 用于执行人工神经网络正向运算的装置和方法 | |
CN106991478B (zh) | 用于执行人工神经网络反向训练的装置和方法 | |
JP4179555B2 (ja) | マルチスレッド・プロセッサにおいてスレッドの優先度を調整するための装置および方法 | |
US7958333B2 (en) | Processor with memory access stage adapted to fetch an instruction of a thread when no memory access operation is detected | |
KR101660659B1 (ko) | 멀티-스레딩된 프로세싱 시스템에서의 서브루틴들의 실행 | |
JP2007133456A (ja) | 半導体装置 | |
JP5131188B2 (ja) | データ処理装置 | |
US20090138674A1 (en) | Electronic system for changing number of pipeline stages of a pipeline | |
KR100703764B1 (ko) | 벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법 | |
JP2004326765A (ja) | マルチスレッド・プロセッサにおいて処理する命令スレッドを選択するための方法および装置 | |
JP2013539143A (ja) | 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム | |
US20240004663A1 (en) | Processing device with vector transformation execution | |
JP4753895B2 (ja) | 遅延調整回路を有するアレイ型プロセッサ | |
US11151077B2 (en) | Computer architecture with fixed program dataflow elements and stream processor | |
US11531638B2 (en) | Reconfigurable circuit array using instructions including a fetch configuration data portion and a transfer configuration data portion | |
JP2007200180A (ja) | プロセッサシステム | |
KR20080049727A (ko) | 별도의 직렬 모듈을 지닌 프로세서 어레이 | |
KR20220142992A (ko) | 양자 제어 시스템, 양자 제어 프로세서, 및 양자 명령어 세트를 실행하기 위한 방법 | |
WO2006011189A1 (ja) | 並列計算機 | |
US20090249028A1 (en) | Processor with internal raster of execution units | |
Wakabayashi et al. | Mapping complex algorithm into FPGA with high level synthesis reconfigurable chips with high level synthesis compared with CPU, GPGPU | |
US20100318767A1 (en) | Multiplexing auxiliary processing element and semiconductor integrated circuit | |
US20230409323A1 (en) | Signal processing apparatus and non-transitory computer-readable storage medium | |
JP2013539144A (ja) | 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム | |
JP2010140398A (ja) | データ処理装置及びデータ処理方法 |
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 | ||
LAPS | Lapse due to unpaid annual fee |