KR100703764B1 - 벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법 - Google Patents

벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법 Download PDF

Info

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
Application number
KR1020050067164A
Other languages
English (en)
Other versions
KR20060046730A (ko
Inventor
히데마사 도다
Original Assignee
닛본 덴끼 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 닛본 덴끼 가부시끼가이샤 filed Critical 닛본 덴끼 가부시끼가이샤
Publication of KR20060046730A publication Critical patent/KR20060046730A/ko
Application granted granted Critical
Publication of KR100703764B1 publication Critical patent/KR100703764B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation 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

벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법{VECTOR PROCESSING APPARATUS, INFORMATION PROCESSING APPARATUS, AND VECTOR PRECESSING METHOD}
도 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)

  1. 처리의 개시 및 실행을 지시하는 동작 제어 정보에 따라 동작하는 복수의 벡터 파이프라인 연산부(160 ~ 167, 160A ~ 167A)와,
    동작 제어 정보를 생성하고, 이 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 다른 타이밍에서 출력하는 명령 제어부(10, 10A)와,
    클록(clock)을 출력하는 클록 생성부(20)를 구비하고,
    상기 명령 제어부는 상기 클록 생성부로부터의 클록의 입력에 의거하여 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 순차 출력하는 동작 제어 정보 생성부(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 명령 제어부는 벡터 명령의 실행에 대한 제어 정보를 출력하는 명령 실행 제어부(13)를 구비하고,
    상기 동작 제어 정보 생성부는 상기 명령 실행 제어부로부터의 제어 정보가 입력되고, 또한 상기 클록 생성부로부터의 클록에 따라 동작하는 시프트 레지스터(121)를 구비하고,
    상기 시프트 레지스터는 상기 시프트 레지스터의 단(stage)들에 저장된 제어 정보를 동작 제어 정보로서 상기 벡터 파이프라인 연산부 각각에 출력하는 것을 특징으로 하는 벡터 처리 장치.
  4. 제 1 항에 있어서,
    상기 벡터 파이프라인 연산부 각각은,
    벡터 요소(element) 데이터(정의)를 유지하는 적어도 하나의 데이터 유지부(VR0 ~ VRn)와,
    상기 명령 제어부로부터의 동작 제어 정보의 입력에 의거하여, 상기 데이터 유지부 중 하나에 유지되어 있는 벡터 요소 데이터를 상기 벡터 파이프라인 연산부의 외부에 출력하는 내부 선택부(SOUT, SIO)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  5. 제 4 항에 있어서,
    복수의 벡터 파이프라인 연산부로부터 다른 타이밍에서 입력된 벡터 요소 데이터를 동일한 타이밍에서 출력하는 타이밍 조정부(15)를 더 구비하는 것을 특징으로 하는 벡터 처리 장치.
  6. 제 5 항에 있어서,
    상기 타이밍 조정부는 상기 벡터 파이프라인 연산부(160 ~ 165)로부터 입력 된 벡터 요소 데이터를 상기 벡터 파이프라인 연산부에 대응한 시간만큼 지연시켜 출력하는 지연 회로(151 ~ 155)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  7. 제 5 항에 있어서,
    상기 타이밍 조정부는 상기 벡터 파이프라인 연산부(160 ~ 165)로부터 입력된 벡터 요소 데이터를 상기 벡터 파이프라인 연산부에 대응한 시간만큼 지연시켜 출력하는 지연 회로(151 ~ 155)를 구비하고, 상기 벡터 파이프라인 연산부에 대응하는 시간은 상기 명령 제어부가 다른 벡터 파이프라인 연산부에 동작 제어 정보를 출력하는 때에 기여한 지연 시간을 해소(解消)하는 시간인 것을 특징으로 하는 벡터 처리 장치.
  8. 제 1 항에 있어서,
    상기 명령 제어부는,
    노이즈 저감 동작을 실행할지의 여부를 나타내는 노이즈 저감 동작 지정 정보를 저장하는 동작 지정부(11)와,
    상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정하고 있지 않을 때, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 동일한 타이밍에서 출력하고, 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정할 때, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 다른 타이밍에서 출력하는 동작 제어 정보 생성부(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  9. 제 8 항에 있어서,
    상기 명령 제어부는 벡터 명령의 실행에 대한 제어 정보를 출력하는 명령 실행 제어부(13)를 더 구비하고,
    상기 동작 제어 정보 생성부는,
    상기 명령 실행 제어부로부터의 제어 정보가 입력되는 시프트 레지스터(121)와,
    상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보에 의거하여, 상기 시프트 레지스터의 특정 단에 저장된 제어 정보와 상기 시프트 레지스터의 각단에 저장된 제어 정보 중 하나를 동작 제어 정보로서 상기 벡터 파이프라인 연산부 각각에 출력하는 제어 선택부(CS0 ~ CS3)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  10. 제 1 항에 있어서,
    상기 명령 제어부는,
    노이즈 저감 동작을 실시할지의 여부를 나타내는 노이즈 저감 동작 지정 정보를 저장하는 동작 지정부(11)와,
    상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정하고 있지 않을 때, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 동일한 타이밍에서 출력하고, 상기 노이즈 저감 동작 지정 정보가 노이즈 저감 동작을 지정할 때, 상기 벡터 파이프라인 연산부의 적어도 2개에 걸친 벡터 명령의 실행 시에는, 최종 타이밍에서 동작하는 벡터 파이프라인 연산부에 따라 상기 벡터 파이프라인 연산부 각각에 동작 제어 정보를 출력하고, 상기 벡터 파이프라인 연산부의 적어도 두개에 걸치지 않은 벡터 명령의 실행 시에는, 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 다른 타이밍에서 출력하는 동작 제어 정보 생성부(12A)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  11. 제 10 항에 있어서,
    상기 명령 제어부는 벡터 명령의 실행에 대한 제어 정보를 출력하는 명령 실행 제어부(13)를 더 구비하고,
    상기 동작 제어 정보 생성부는,
    상기 명령 실행 제어부로부터의 제어 정보가 입력되는 시프트 레지스터(121)와,
    상기 명령 실행 제어부로부터 입력되는 제어 정보 및 상기 동작 지정부로부터 입력되는 노이즈 저감 동작 지정 정보에 의거하여, 상기 시프트 레지스터의 최초 단에 저장된 제어 정보, 상기 시프트 레지스터의 최종 단에 저장된 제어 정보 및 상기 시프트레지스터의 각단에 저장된 제어 정보 중 하나를 동작 제어 정보로서 상기 벡터 파이프라인 연산부 각각에 출력하는 제어 선택부(CS0 ~ CS3)를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  12. 제 1 항에 있어서,
    상기 벡터 파이프라인 연산부 및 상기 명령 제어부가 형성된 LSI를 구비하는 것을 특징으로 하는 벡터 처리 장치.
  13. 처리의 개시 및 실행을 지시하는 동작 제어 정보에 따라 동작하는 복수의 연산부(160 ~ 167, 160A ~ 167A)와,
    동작 제어 정보를 생성하고, 이 동작 제어 정보를 상기 연산부 각각에 다른 타이밍에서 출력하는 명령 제어부(10, 10A)와,
    클록을 출력하는 클록 생성부(20)를 구비하고,
    상기 명령 제어부는 상기 클록 생성부로부터의 클록의 입력에 의거하여, 동작 제어 정보를 상기 연산부 각각에 순차 출력하는 동작 제어 정보 생성부(12, 12A)를 구비하는 것을 특징으로 하는 정보 처리 장치.
  14. 삭제
  15. 제 13 항에 있어서,
    상기 연산부 및 상기 명령 제어부가 형성된 LSI를 구비하는 것을 특징으로 하는 정보 처리 장치.
  16. 처리의 개시 및 실행을 지시하는 동작 제어 정보를 생성하고, 이 동작 제어 정보를 복수의 벡터 파이프라인 연산부에 다른 타이밍에서 출력하는 단계(10, 10A)와,
    다른 타이밍에서 동작 제어 정보가 입력된 상기 벡터 파이프라인 연산부가 처리를 순차적으로 개시 및 실행하는 단계(160 ~ 167, 160A ~ 167A)를 구비하고,
    상기 동작 제어 정보를 출력하는 단계는 동작 제어 정보를 상기 벡터 파이프라인 연산부 각각에 순차 출력하는 단계(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 방법.
  17. 삭제
  18. 제 16 항에 있어서,
    상기 처리를 개시 및 실행하는 단계는 상기 벡터 파이프라인 연산부 각각이 벡터 요소 데이터를 타이밍 조정부에 순차 출력하는 단계를 구비하는 것을 특징으로 하는 벡터 처리 방법.
  19. 제 18 항에 있어서,
    상기 타이밍 조정부가 상기 각 벡터 파이프라인 연산부로부터 다른 타이밍에서 입력된 벡터 요소 데이터를 동일한 타이밍에서 출력하는 단계(15)를 더 포함하는 것을 특징으로 하는 벡터 처리 방법.
  20. 제 16 항에 있어서,
    상기 동작 제어 정보를 출력하는 단계는 노이즈 저감 동작의 실시가 지시된 때에 상기 동작 제어 정보를 다른 타이밍에서 출력하는 단계(12, 12A)를 구비하는 것을 특징으로 하는 벡터 처리 방법.
  21. 제 16 항에 있어서,
    상기 동작 제어 정보를 출력하는 단계는 노이즈 저감 동작의 실시가 지시된 때에 상기 벡터 파이프라인 연산부의 적어도 2개에 걸쳐있지 않은 벡터 명령의 실행 시에는 동작 제어 정보를 다른 타이밍에서 출력하는 단계(12A)를 구비하는 것을 특징으로 하는 벡터 처리 방법.
KR1020050067164A 2004-07-26 2005-07-25 벡터 처리 장치, 정보 처리 장치 및 벡터 처리 방법 KR100703764B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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