KR100947446B1 - Vliw 프로세서 - Google Patents

Vliw 프로세서 Download PDF

Info

Publication number
KR100947446B1
KR100947446B1 KR1020047014984A KR20047014984A KR100947446B1 KR 100947446 B1 KR100947446 B1 KR 100947446B1 KR 1020047014984 A KR1020047014984 A KR 1020047014984A KR 20047014984 A KR20047014984 A KR 20047014984A KR 100947446 B1 KR100947446 B1 KR 100947446B1
Authority
KR
South Korea
Prior art keywords
functional units
register file
communication
functional
processor
Prior art date
Application number
KR1020047014984A
Other languages
English (en)
Other versions
KR20040101343A (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 KR20040101343A publication Critical patent/KR20040101343A/ko
Application granted granted Critical
Publication of KR100947446B1 publication Critical patent/KR100947446B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/3824Operand accessing
    • 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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • 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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

VLIW(Very Long Instruction Word) 프로세서는 복수의 기능성 유닛(functional units)(1, 3, 5, 7)과, 이 기능성 유닛(1, 3, 5, 7)에 의해서 액세스 가능한 분산형 레지스터 파일(distributed register file)(9, 11, 13, 15)과, 기능성 유닛(1, 3, 5, 7)과 분산형 레지스터 파일(9, 11, 13, 15)의 선택된 부분을 접속시키는 부분 접속형 통신 네트워크(partially connected communication network)(17)를 포함하고. 이러한 VLIW 프로세서는 기능성 유닛(1, 3, 5, 7)과 분산형 레지스터 파일(9, 11, 13, 15)을 접속시키는 통신 장치(29)를 더 포함한다.

Description

VLIW 프로세서{VLIW PROCESSOR}
본 발명은 복수의 기능성 유닛(functional unit), 기능성 유닛에 의해 액세스 가능한 분산형 레지스터 파일(distributed register file) 및 기능성 유닛과 분산형 레지스터 파일의 선택된 부분을 접속시키는 부분 접속형 통신 네트워크(partially connected communication network)를 포함하는 VLIW 프로세서에 관한 것이다.
VLIW(Very Long Instruction Word) 프로세서는 프로그램 내에서 인스트럭션 레벨 병렬성(parallelism)을 활용할 수 있고, 그에 따라 한 번에 하나 이상의 동작을 실행할 수 있게 한다. 하나의 VLIW 인스트럭션에는, 여러 개의 독립적인 동작이 지정되어 있다. VLIW 프로세서는 독립적인 기능성 유닛의 세트를 사용하여 다수의 동작을 병렬식으로 수행한다.
VLIW 처리의 한계점으로는 제한된 하드웨어 리소스, 제한된 병렬성 및 코드(code) 크기의 커다란 증가가 포함된다. 제한된 하드웨어 리소스는 기능성 유닛, 중앙 레지스터 파일 또는 통신 네트워크가 될 수 있다. 더 많은 리소스를 추가함으로써 이러한 제한을 방지하는 해결책은 몇몇 심각한 단점을 갖는다. 기능성 유닛의 개수를 증가시키면, 메모리 크기 및 레지스터 파일 대역폭도 또한 증가되어야 할 것이다. 또한, 레지스터 파일을 액세스하기 위해서는 많은 수의 판독 및 기록 포트가 필요하게 되어, 레지스터 파일의 크기를 대폭 증가시키고 클록 속도(clock speed)를 저하시키지 않고서는 대역폭을 지원하기 어렵게 된다. 레지스터 파일의 크기를 증가시키면 임계 타이밍 경로(critical timing paths)가 생성될 수 있고, 그에 따라 프로세서의 사이클 시간이 제한된다. 더욱이, 직접적으로 어드레스 가능한 레지스터의 개수가 증가될수록, 인스트럭션 내에서 다수의 레지스터를 지정하기 위한 비트의 개수도 증가된다.
VLIW 프로세서의 확장성(scalability)은 중앙 레지스터 파일 대신에 수 개의 레지스터 파일, 즉 분산형 레지스터 파일을 이용함으로써 향상될 수 있다. 분산형 레지스터 파일의 이점은 레지스터 파일 세그먼트마다 더 적은 수의 판독 및 기록 포트를 필요로 하기 때문에, 레지스터 파일 대역폭이 더 작아지게 한다는 것이다. 기능성 유닛 및 분산형 레지스터 파일은 통신 네트워크에 의해 접속되는데, 이 통신 네트워크는 기능성 유닛에 의해 생성된 데이터를 분산형 레지스터 파일에 전달할 수 있다. 일반적으로, 이러한 통신 네트워크는 부분 접속형, 다시 말해 일부의 기능성 유닛이 일부의 레지스터 파일 세그먼트에 접속되어 있는 형태를 갖는데, 이는 완전 접속형 통신 네트워크를 사용하는 것이 코드 크기 및 전력 소모 면에서 너무 비싸고 클록 주파수의 감소를 초래하기 때문이다.
분산형 레지스터 파일 및 부분 접속형 통신 네트워크를 구비하는 VLIW 프로세서의 경우에, 모든 기능성 유닛 출력단으로부터 모든 기능성 유닛 입력단으로의 통신 경로가 존재한다고 보장할 수 없다. 그러므로, 이러한 VLIW 프로세서에서 몇몇 애플리케이션은 실행되지 않을 수 있다.
본 발명의 목적은 분산형 레지스터 파일 및 부분 접속형 통신 네트워크를 포함하는 VLIW 프로세서 아키텍처를 제공하는 것으로서, 이러한 VLIW 프로세서 아키텍처는 각각의 기능성 유닛 출력단과 각각의 기능성 유닛 입력단 사이에 통신 경로를 생성할 수 있다.
이 목적은 이하에 제시되는 종류의 VLIW 프로세서를 가지고 달성될 수 있는 데, 이 VLIW 프로세서는 기능성 유닛과 분산형 레지스터 파일을 접속시키는 통신 수단을 더 포함하는 것을 특징으로 한다.
부분 접속형 통신 네트워크에 의해서 기능성 유닛 출력단으로부터 기능성 유닛 입력단으로 임의의 값들을 전송할 수 없는 경우에, 통신 수단은 이러한 전송 작업을 수행할 수 있다. 이러한 방식으로, 각각의 기능성 유닛 출력단과 각각의 기능성 유닛 입력단 사이의 통신 경로가 확보된다. 가능하다면, 부분 접속형 통신 네트워크를 통한 통신이 바람직하다. 부분 접속형 통신 네트워크와 통신 수단의 결합은, 완전 결합형 통신 네트워크를 구비하는 VLIW 프로세서 아키텍처에 비해서 더 낮은 통신 오버헤드(overhead)를 갖고, 더 높은 클록 주파수에서 작동되며, 더 나은 확장성을 갖는 VLIW 프로세서 아키텍처를 획득할 수 있게 한다.
본 발명의 일실시예는 통신 수단이 멀티플렉서(multiplexer) 및 버스(bus)를 포함하는 것을 특징으로 하는데, 멀티플렉서는 기능성 유닛과 버스를 접속시키도록 배치되고, 버스는 멀티플렉서와 분산형 레지스터 파일을 접속시키도록 배치된다. 버스의 이점은, 완전 접속형 통신 네트워크에 비해서 실리콘 영역에 대한 오버헤드가 비교적 낮다는 것이다.
본 발명의 일실시예는 통신 수단이 제 1 전송 지연(latency), 즉 버스에 임의의 값을 기록하고, 버스를 통과하여, 그 출력단에서 검출되는 데 소요되는 시간 길이를 가지고 통신을 실행하도록 구성된다는 것과, 부분 접속형 통신 네트워크가 제 2 전송 지연을 가지고 통신을 실행하도록 구성된다는 것을 특징으로 하는데, 제 1 전송 지연은 제 2 전송 지연을 초과한다. 통신 수단 내에서 사용되는 제어 로직은 기능성 유닛의 개수가 많은 경우에 통신을 속도를 감소시킬 수 있는데, 이는 프로세서의 클록 주파수를 제한할 수 있다. 통신 수단을 통하는 통신을 수 개의 순차적인 단계-각 단계는 하나의 클록 사이클 내에서 실행됨-로 분할하면, 이러한 문제를 방지할 수 있다. 이러한 실시예의 이점은 통신 중에 하나의 단계에서의 전송 지연을 낮게 유지하여 통신 수단을 통한 통신이 프로세서의 클록 주파수를 제한하지 않게 할 수 있다는 것이다. 또한, 처리량을 높일 수 있다. 통신 수단을 통한 통신에서의 전체 전송 지연-모든 개별 단계의 전송 지연에 대한 합계임-은 부분 접속형 통신 네트워크를 통한 통신에서의 전송 지연보다 더 높을 것이다. 그러나, 통신의 대부분은 부분 접속형 통신 네트워크를 통하여 발생되기 때문에, 통신 수단을 통하는 통신의 더 높은 전송 지연은 프로세서의 전체 성능에 거의 영향을 주지 않을 것이다.
본 발명의 일실시예는 버스가 적어도 하나의 파이프라인 레지스터(pipeline register)를 포함하는 것을 특징으로 한다. 결과적으로, 버스를 통하는 통신은 수 개의 연속적인 단계로 발생되는데, 각 단계는 낮은 전송 지연을 갖는다. 이 실시예의 이점은 더 빠른 프로세서 사이클을 달성할 수 있으므로, 프로세서의 클록 주파수를 증가시킬 수 있고, 더 높은 처리량을 가능하게 한다는 것이다. 그 결과로 버스를 통하는 통신의 전송 지연이 증가될 것이다.
본 발명의 일실시예는 멀티플렉서가 적어도 하나의 레지스터를 포함한다는 것을 특징으로 한다. 이 실시예의 이점은 프로세서가 최대 클록 주파수로 실행될 수 있게 한다는 것이다. 그 결과로 통신 수단을 통하는 통신의 전송 지연이 증가될 것이다.
본 발명의 일실시예는 VLIW 프로세서가 제 1 복수의 기능성 유닛과, 제 2 복수의 기능성 유닛과, 제 1 복수의 기능성 유닛과 연결된 분산형 레지스터 파일 중의 하나로부터 제 2 복수의 기능성 유닛과 연결된 분산형 레지스터 파일 중의 하나로 데이터를 전달하기 위해 제 1 복수의 기능성 유닛 중 하나의 기능성 유닛과 연결된 제 1 패스 유닛(pass unit)과, 제 2 복수의 기능성 유닛과 연결된 분산형 레지스터 파일 중의 하나로부터 제 1 복수의 기능성 유닛과 연결된 분산형 레지스터 파일 중 하나로 데이터를 전달하기 위해 제 2 복수의 기능성 유닛 중 하나의 기능성 유닛과 연결된 제 2 패스 유닛을 포함하는 것을 특징으로 한다. 이 실시예의 이점은 프로세서의 확장성을 개선한다는 것이다. 프로세서의 물리적인 설계 도중에, 통신 수단은 기능성 유닛의 개수가 증가될수록 이러한 설계에 더 많은 제한을 부여할 것이다. 프로세서 아키텍처를 적어도 2개의 복수의 기능성 유닛으로 분할함으로써, 각각의 복수의 기능성 유닛의 통신 수단의 치수 및 그에 대응되는 오버헤드를 제어할 수 있다.
본 발명의 일실시예는 패스 유닛이 연결되어 있는 기능성 유닛의 일부라는 것을 특징으로 한다. 이 실시예의 이점은 개별 패스 유닛을 필요로 하지 않기 때문에, 실리콘 영역 및 통신 접속부를 절약할 수 있다는 것이다.
본 발명의 일실시예는 통신 수단이 기능성 유닛과 분산형 레지스터 파일의 모든 부분을 접속시킨다는 것을 특징으로 한다. 이 실시예의 이점은 기능성 유닛 출력단과 분산형 레지스터 파일의 모든 부분이 접속되어 있어서, 프로세서의 유연성이 증가된다는 것이다.
설명된 실시예의 특징은 이하의 도면을 참조하여 추가적으로 설명되고 도시될 것이다.
도 1은 본 발명의 일실시예에 따른 1개의 복수의 기능성 유닛을 포함하는 VLIW 프로세서에 대한 개략도,
도 2는 본 발명의 일실시예에 따른 2개의 복수의 기능성 유닛을 포함하는 VLIW 프로세서에 대한 개략도.

도 1을 참조하면, 복수의 기능성 유닛(1, 3, 5, 7)을 포함하는 VLIW 프로세서에 대해 나타내는 개략적인 블록도가 도시되어 있다. 이 프로세서는 레지스터 파일 세그먼트(9, 11, 13, 15)를 포함하는 분산형 레지스터 파일을 구비한다. 기능성 유닛(1, 3)은 레지스터 파일 세그먼트(9)를 판독할 수 있고, 기능성 유닛(5)은 레지스터 파일 세그먼트(11, 13)를 판독할 수 있고, 기능성 유닛(7)은 레지스터 파일 세그먼트(15)를 판독할 수 있다.
프로세서는 기능성 유닛(1, 3, 5, 7)과 선택된 분산형 레지스터 파일 세그먼트(9, 11, 13, 15)를 접속시키는 부분 접속형 통신 네트워크(17)를 포함한다. 부분 접속형 통신 네트워크(17)는 멀티플렉서(19, 21, 23, 25, 27)를 포함한다.
또한, 프로세서는 기능성 유닛(1, 3, 5, 7)과 모든 분산형 레지스터 파일 세그먼트(9, 11, 13, 15)를 접속시키는 통신 장치(29)를 포함한다. 통신 장치(29)는 멀티플렉서(19, 21, 23, 25, 27)를 포함한다.
통신 장치(29)는 기능성 유닛(1, 3, 5, 7)으로부터 분산형 레지스터 파일 세그먼트(9, 11, 13, 15)로 임의의 값들을 전송할 수 있는데, 이는 부분 접속형 통신 네트워크(17)에 의해서는 이러한 전송이 불가능할 경우에 해당된다. 이러한 방식으로, 기능성 유닛(1, 3, 5, 7)의 각 출력단과 기능성 유닛(1, 3, 5, 7)의 각 입력단 사이의 통신 경로가 확실히 존재한다. 예를 들면, 기능성 유닛(1)은 부분 접속형 통신 네트워크(17)를 통해 레지스터 파일 세그먼트(15)에 접속되는 것이 아니라, 오직 통신 장치(29)를 통해서만 레지스터 파일 세그먼트(15)에 접속된다. 가 능하다면, 부분 접속형 통신 네트워크(17)를 통해 통신이 수행되는 것이 바람직하다.
통신 장치(29)는 제 1 전송 지연을 가지고 통신하도록 구성되고, 부분 접속형 통신 네트워크(17)는 제 2 전송 지연을 가지고 통신하도록 구성되며, 제 1 전송 지연은 제 2 전송 지연을 초과하는 것이 바람직하다. 이 실시예의 이점은 통신 장치(29)를 통한 통신이 속도 제한 단계(rate-limiting step)가 되는 것을 방지하여, 프로세서가 최대 클록 주파수로 작동될 수 있게 한다는 것이다. 또한, 처리량을 높일 수 있다. 일반적으로, 통신 장치(29)는 공유형 통신 메커니즘의 형태를 취한다. 그러므로, 특히 다수의 기능성 유닛이 존재하는 경우에, 통신 장치(29)를 통한 통신은 그 제어 로직에 의해서 속도가 느려질 수 있다. 통신 장치를 통한 통신을 수 개의 순차적인 단계-각 단계는 하나의 클록 사이클에서 발생됨-로 분할하면, 하나의 통신 단계에서의 전송 지연은 낮게 유지된다. 이는 통신 장치를 통한 통신이 프로세서의 클록 주파수를 제한하는 것을 방지한다. 통신 장치를 통한 통신의 전체 전송 지연-모든 개별 단계의 전송 지연의 합계임-은 부분 접속형 통신 네트워크를 통한 통신의 전송 지연보다 더 높을 수 있다. 그러나, 통신의 대부분은 부분 접속형 통신 네트워크를 통하여 발생되기 때문에, 통신 장치를 통한 통신의 더 높은 전송 지연은 프로세서의 전체 성능에 거의 영향을 주지 않을 것이다.
유리한 실시예에서, 통신 장치(29)는 멀티플렉서(31)와 전역 버스(global bus)(33)를 포함하는데, 멀티플렉서는 기능성 유닛(1, 3, 5, 7)과 전역 버스(33)를 접속시키도록 구성되고, 전역 버스(33)는 멀티플렉서(31)와 모든 분산형 레지스터 파일 세그먼트(9, 11, 13, 15)를 접속시키도록 구성된다. 전역 버스(33)는 다수의 기능성 유닛(1, 3, 5, 7)에 접속되고, 이러한 기능성 유닛이 전역 버스를 시간 다중화(time-multiplex)하는 반면에, 부분 접속형 통신 네트워크(17)는 하나의 기능성 유닛을 레지스터 파일 세그먼트에 접속시키는 것이기 때문에 전역 버스(33)는 부분 접속형 통신 네트워크(17)와는 다르다. 전역 버스의 이점은 완전 접속형 통신 네트워크에 비해서 실리콘 영역에 대한 오버헤드가 비교적 낮다는 것이다.
전역 버스(33)는 파이프라인 레지스터(35)를 포함하는 것이 바람직하다. 결과적으로, 전역 버스(33)를 통한 통신은 수 개의 연속적인 단계를 취하게 되는데, 이러한 각 단계는 낮은 전송 지연을 갖는다. 이 실시예의 이점은 프로세서 사이클을 더 빠르게 하여, 프로세서의 클록 주파수를 증가시키고 처리량을 높게 한다는 것이다. 결과적으로, 부분 접속형 통신 네트워크(17)를 통한 통신에 비해서 전역 버스(33)를 통한 통신의 전송 지연은 증가될 것이다. 몇몇 실시예에서, 멀티플렉서(31)는 레지스터를 포함한다. 이 실시예의 이점은 또한 프로세서가 최대 클록 주파수로 작동될 수 있게 한다는 것이다. 그 결과로 통신 장치를 통한 통신의 전송 지연도 증가될 것이다.
기능성 유닛은 기능성 유닛(7)의 경우에서와 같이 하나의 레지스터 파일 세그먼트에 접속되거나, 기능성 유닛(5)의 경우에서와 같이 다수의 레지스터 파일 세그먼트에 접속될 수 있고, 그 외에 기능성 유닛(1, 3)의 경우에서와 같이 다수의 기능성 유닛이 하나의 레지스터 파일 세그먼트에 접속될 수 있다. 레지스터 파일 세그먼트는 레지스터 파일 세그먼트(15)의 경우에서와 같이 하나의 기능성 유닛에 접속되거나, 레지스터 파일 세그먼트(9)의 경우에서와 같이 다수의 기능성 유닛에 접속될 수 있다. 레지스터 파일 세그먼트와 기능성 유닛 사이의 결합도(degree of coupling)는 기능성 유닛이 실행해야 하는 동작의 타입에 의존할 수 있다.
도 1에 도시된 실시예에서, 부분 접속형 통신 네트워크(17) 및 통신 장치(29)는 몇몇 리소스를 공유한다. 몇몇 실시예에서는, 더 많은 리소스를 공유하거나 리소스를 공유하지 않을 수 있다.
도 2를 참조하면, 기능성 유닛(105, 107)을 포함하는 제 1 복수의 기능성 유닛(101)을 구비하는 VLIW 프로세서에 대한 개략적인 블록도가 도시되어 있다. 프로세서는 또한 기능성 유닛(109, 111, 113)을 포함하는 제 2 복수의 기능성 유닛(103)을 구비한다. 프로세서는 제 1 복수의 기능성 유닛(101)을 위하여 레지스터 파일 세그먼트(115, 117, 119, 121)를 포함하고, 제 2 복수의 기능성 유닛(103)을 위하여 레지스터 파일 세그먼트(123, 125, 127, 129, 131, 133)를 포함하는 분산형 레지스터 파일을 구비한다. 기능성 유닛(105)은 레지스터 파일 세그먼트(115, 117)를 판독할 수 있고, 기능성 유닛(107)은 레지스터 파일 세그먼트(119, 121)를 판독할 수 있고, 기능성 유닛(109)은 레지스터 파일 세그먼트(123, 125)를 판독할 수 있고, 기능성 유닛(111)은 레지스터 파일 세그먼트(127, 129)를 판독할 수 있고, 기능성 유닛(113)은 레지스터 파일 세그먼트(131, 133)를 판독할 수 있다.
프로세서는 제 1 복수의 기능성 유닛(101)의 제 1 부분 접속형 통신 네트워크(155)-멀티플렉서(135, 137, 139, 141)를 포함함-와, 제 2 복수의 기능성 유닛(103)의 제 2 부분 접속형 통신 네트워크(157)-멀티플렉서(143, 145, 147, 149, 151, 153)를 포함함-를 포함한다. 설명된 실시예에서, 부분 접속형 통신 네트워크(155, 157)는 기능성 유닛(105, 107, 109, 111, 113)과 분산형 레지스터 파일(115, 117, 119, 121, 123, 125, 127, 129, 131, 133)의 선택된 세그먼트를 접속시키기 위해서 결합되어 있다. 이러한 접속은 접속부(159, 161)로 표시되어 있다.
또한, 제 1 복수의 기능성 유닛(101)은 기능성 유닛(105, 107)과 모든 분산형 레지스터 파일 세그먼트(115, 117, 119, 121)를 접속시키기 위한 제 1 통신 장치(163)를 포함한다. 제 1 통신 장치(163)는 멀티플렉서(135, 137, 139, 141, 165)를 포함한다. 제 2 복수의 기능성 유닛(103)은 기능성 유닛(109, 111, 113)과 모든 분산형 레지스터 파일 세그먼트(123, 125, 127, 129, 131, 133)를 접속시키기 위한 제 2 통신 장치(167)를 포함한다. 제 2 통신 장치(167)는 멀티플렉서(143, 145, 147, 149, 151, 153, 169)를 포함한다. 이러한 실시예의 이점은 프로세서의 확장성을 개선한다는 것이다. 기능성 유닛의 개수가 증가할수록, 통신 장치는 프로세서의 물리적 설계에 더 많은 제한을 부과할 것이다. 프로세서 아키텍처를 적어도 2개의 복수의 기능성 유닛으로 분할함으로써, 각각의 복수의 기능성 유닛의 통신 장치의 치수 및 그에 대응되는 오버헤드를 제어할 수 있게 된다.
유리한 실시예에서, 제 1 복수의 기능성 유닛(101)은 기능성 유닛(107)과 연결된 제 1 패스 유닛(171)을 포함한다. 제 1 패스 유닛(171)은 레지스터 파일 세그먼트(121)에서 데이터를 판독할 수 있고, 제 1 패스 유닛(171)과 제 2 통신 장치(167)는 접속부(175)에 의해 접속되어 있다. 제 2 복수의 기능성 유닛(103)은 기능성 유닛(113)과 연결된 제 2 패스 유닛(173)을 포함한다. 제 2 패스 유닛(173) 은 레지스터 파일 세그먼트(133)에서 데이터를 판독할 수 있고, 제 2 패스 유닛(173)과 제 1 통신 장치(163)는 접속부(177)에 의해 접속되어 있다. 제 1 패스 유닛(171)은 레지스터 파일 세그먼트(121)로부터 제 2 통신 장치(167)로 데이터를 전달할 수 있다. 제 2 패스 유닛(173)은 레지스터 파일 세그먼트(133)로부터 제 1 통신 장치(163)로 데이터를 전달할 수 있다. 이 실시예의 이점은, 제 1 복수의 기능성 유닛(101)의 임의의 기능성 유닛의 출력단으로부터 제 2 복수의 기능성 유닛(103)의 임의의 기능성 유닛의 입력단으로, 또한 제 2 복수의 기능성 유닛(103)의 임의의 기능성 유닛의 출력단으로부터 제 1 복수의 기능성 유닛(101)의 임의의 기능성 유닛의 입력단으로, 언제나 임의의 값을 전달할 수 있다는 것이다. 예를 들어, 결합된 부분 접속형 통신 네트워크(155, 157)를 통해서 제 1 복수의 기능성 유닛(101) 중 하나의 기능성 유닛의 출력단으로부터 제 2 복수의 기능성 유닛(103) 중 하나의 기능성 유닛의 입력단으로 임의의 값을 전달할 수 없는 경우에, 이 값은 제 1 통신 장치(163)를 통해 기능성 유닛(105, 107)의 출력단으로부터 레지스터 파일 세그먼트(121)로 전달될 수 있다. 후속하여, 제 1 패스 유닛(171)은 이 값을 제 2 통신 장치(167)에 전달할 수 있다. 이 값은 또한 멀티플렉서(143, 145, 147, 149, 151, 153)와 분산형 레지스터 파일 세그먼트(123, 125, 127, 129, 131, 133)를 통해서 제 2 복수의 기능성 유닛(103) 중 하나의 기능성 유닛의 입력단으로 전달된다. 일반적으로 기능성 유닛과 레지스터 파일 세그먼트의 출력단은 부분 접속형 통신 네트워크와 멀티플렉서를 통해 직접적으로 접속되기 때문에, 서로 다른 복수의 기능성 유닛의 기능성 유닛들간의 통신은 결합된 부분 접속형 통신 네트워크 (155, 157)를 통해 이루어지는 것이 바람직하다. 그러나, 이것이 불가능하다면, 패스 유닛은 서로 다른 복수의 기능성 유닛과 연결된 기능성 유닛들간의 통신을 가능하게 한다. 패스 유닛 및 통신 장치를 통해 서로 다른 복수의 기능성 유닛의 기능성 유닛들간의 통신이 수행되는 경우에, 더 많은 통신 단계가 포함되어 통신 시간이 증가된다.
몇몇 실시예에서, 패스 유닛(171, 173)은 부분 접속형 통신 네트워크(155, 157)에 제각기 접속되어 있다. 제 1 패스 유닛(171)은 제 2 복수의 기능성 유닛(103)의 레지스터 파일 세그먼트에 임의의 값을 전달할 수 있고, 제 2 패스 유닛(173)은 제 1 복수의 기능성 유닛(101)의 레지스터 파일 세그먼트에 임의의 값을 전달할 수 있다. 예를 들면, 제 1 패스 유닛(171)은 제 1 부분 접속형 통신 네트워크(155), 접속부(159) 및 제 2 부분 접속형 통신 네트워크(157)를 통해 제 2 복수의 기능성 유닛(103)의 레지스터 파일 세그먼트에 임의의 값을 전달할 수 있다. 결합된 부분 접속형 통신 네트워크(155, 157)를 통과하는 접속이 존재하지 않기 때문에 제 1 패스 유닛(171)이 제 2 복수의 기능성 유닛(103)의 특정한 레지스터 파일 세그먼트에 임의의 값을 전달할 수 없는 경우에, 결합된 부분 접속형 통신 네트워크(155, 157)를 통해서 제 1 패스 유닛(171)에 접속된 제 2 복수의 기능성 유닛(103)의 레지스터 파일 세그먼트에 이 값을 전달할 수 있다. 후속하여, 이 값을 전달받는 레지스터 파일 세그먼트와 연결된 제 2 복수의 기능성 유닛(103)의 기능성 유닛은 부분 접속형 통신 네트워크(157)를 통해 제 2 복수의 기능성 유닛(103)의 의도되는 레지스터 파일 세그먼트에 해당 값을 전달할 수 있다. 이 실시예의 이점은 접속부(175, 177)를 생략할 수 있기 때문에 실리콘 영역이 절약된다는 것이다. 통신 오버헤드는 더 클 수 있으나, 패스 유닛(171, 173)을 통한 값들의 전달이 너무 자주 발생되지만 않는다면 허용 가능하다.
몇몇 실시예에서, 패스 유닛(171, 173)은 제각기 부분 접속형 통신 네트워크(155, 157)에 접속되어 있다. 제 1 패스 유닛(171)은 임의의 값을 제 2 통신 장치(167)에 전달할 수 있고, 제 2 패스 유닛(173)은 임의의 값을 제 1 통신 장치(163)에 전달할 수 있다. 예를 들면, 제 1 패스 유닛(171)은 제 1 부분 접속형 통신 네트워크(155), 접속부(159) 및 제 2 부분 접속형 통신 네트워크(157)를 통해서, 제 2 복수의 기능성 유닛(103)과 연결된 레지스터 파일 세그먼트(123, 125, 127, 129, 131, 133)에 임의의 값을 전달할 수 있다. 후속하여, 제 2 복수의 기능성 유닛(103)과 연결되고, 해당 값을 전달받는 레지스터 파일 세그먼트와 연결된 기능성 유닛(109, 111, 113)은 제 2 통신 장치(167)에 해당 값을 전달할 수 있다. 마지막으로, 해당 값은 또한 제 2 복수의 기능성 유닛(103)의 의도되는 기능성 유닛의 입력단에 전달된다. 이 실시예의 이점은 접속부(175, 177)를 생략할 수 있기 때문에 실리콘 영역을 절약할 수 있다는 것이다. 통신 오버헤드는 더 클 수 있으나, 패스 유닛(171, 173)을 통한 값들의 전달이 너무 자주 발생되지만 않는다면 허용 가능하다.
도 2에 도시된 실시예에서, 패스 유닛(171, 173)은 기능성 유닛(107, 113)과 연결된 별도의 유닛이다. 몇몇 실시예에서, 패스 유닛은 연결된 기능성 유닛의 일부가 될 수 있는데, 이는 이러한 기능성 유닛에 레지스터 파일 세그먼트로부터 임 의의 값을 전달할 수 있게 하는 추가적인 기능을 추가함으로써 가능해진다.
기능성 유닛은 기능성 유닛(105, 107, 109, 111, 113)의 경우에서와 같이 2개의 레지스터 파일 세그먼트에 접속될 수 있다. 레지스터 파일 세그먼트는 하나의 기능성 유닛 또는 다수의 기능성 유닛에 접속될 수 있다. 레지스터 파일 세그먼트와 기능성 유닛 사이의 결합도는 기능성 유닛이 실행해야 하는 동작의 타입에 의존할 수 있다.
상술된 실시예는 본 발명을 제한하는 것이 아니라 예시하는 것이고, 당업자라면 첨부된 청구항의 범주를 벗어나지 않으면서 여러 서로 다른 실시예를 설계할 수 있다는 것을 유의해야 한다. 청구항에서, 괄호로 표시된 모든 참조 부호는 청구항을 제한하는 것으로 해석되어서는 안 된다. "포함한다"라는 표현은 청구항에 열거된 요소 또는 단계이외의 다른 요소 또는 단계가 존재하는 것을 배제하지 않는다. 단수로 표현된 요소는 이러한 요소가 복수 개 존재하는 것을 배제하지 않는다. 수 개의 수단을 열거하는 장치항에서, 이러한 수 개의 수단은 하드웨어 내의 동일 아이템에 의해 수행될 수 있다. 특정한 방법이 서로 다른 종속항에서 언급되었다는 사실만으로 이러한 방법을 조합하여 유리하게 사용할 수 없다는 것을 의미하지는 않는다.

Claims (8)

  1. VLIW(Very Long Instruction Word) 프로세서로서,
    복수의 기능성 유닛(functional units)(1, 3, 5, 7)과,
    상기 기능성 유닛(1, 3, 5, 7)에 의해 액세스 가능한 분산형 레지스터 파일(distributed register file)(9, 11, 13, 15)과,
    상기 기능성 유닛(1, 3, 5, 7)과 상기 분산형 레지스터 파일(9, 11, 13, 15)의 선택된 부분을 접속시키는 부분 접속형 통신 네트워크(partially connected communication network)(17)와,
    상기 기능성 유닛(1, 3, 5, 7)과 상기 분산형 레지스터 파일(9, 11, 13, 15)을 접속시키는 통신 수단(29)을 포함하는
    VLIW 프로세서.
  2. 제 1 항에 있어서,
    상기 통신 수단(29)은 멀티플렉서(multiplexer)(31) 및 버스(bus)(33)를 포함하되,
    상기 멀티플렉서(31)는 상기 기능성 유닛(1, 3, 5, 7)과 상기 버스(33)를 접속시키도록 구성되고,
    상기 버스(33)는 상기 멀티플렉서(31)와 상기 분산형 레지스터 파일(9, 11, 13, 15)을 접속시키도록 구성되는
    VLIW 프로세서.
  3. 제 1 항에 있어서,
    상기 통신 수단(29)은 제 1 전송 지연(latency)을 가지고 통신하도록 구성되고,
    상기 부분 접속형 통신 네트워크(17)는 제 2 전송 지연을 가지고 통신하도록 구성되며,
    상기 제 1 전송 지연은 상기 제 2 전송 지연을 초과하는
    VLIW 프로세서.
  4. 제 2 항에 있어서,
    상기 버스(33)는 적어도 하나의 파이프라인 레지스터(pipeline register)(35)를 포함하는
    VLIW 프로세서.
  5. 제 2 항에 있어서,
    상기 멀티플렉서(31)는 적어도 하나의 레지스터를 포함하는
    VLIW 프로세서.
  6. 제 1 항에 있어서,
    기능성 유닛(105, 107)으로 이루어진 제 1 복수의 기능성 유닛(101)과,
    기능성 유닛(109, 111, 113)으로 이루어진 제 2 복수의 기능성 유닛(103)과,
    상기 기능성 유닛(105, 107)으로 이루어진 상기 제 1 복수의 기능성 유닛(101)과 연결된 상기 분산형 레지스터 파일(115, 117, 119, 121) 중 하나의 분산형 레지스터 파일(121)로부터 상기 기능성 유닛(109, 111, 113)으로 이루어진 상기 제 2 복수의 기능성 유닛(103)과 연결된 상기 분산형 레지스터 파일(123, 125, 127, 129, 131, 133) 중 하나의 분산형 레지스터 파일로 데이터를 전달하도록 상기 제 1 복수의 기능성 유닛(101)의 상기 기능성 유닛(105, 107) 중 하나의 기능성 유닛(107)과 연결된 제 1 패스 유닛(pass unit)(171)과,
    상기 기능성 유닛(109, 111, 113)으로 이루어진 상기 제 2 복수의 기능성 유닛(103)과 연결된 상기 분산형 레지스터 파일(123, 125, 127, 129, 131, 133) 중 하나의 분산형 레지스터 파일(133)로부터 상기 기능성 유닛(105, 107)으로 이루어진 상기 제 1 복수의 기능성 유닛(101)과 연결된 상기 분산형 레지스터 파일(115, 117, 119, 121) 중 하나의 분산형 레지스터 파일로 데이터를 전달하도록 상기 제 2 복수의 기능성 유닛(103)의 상기 기능성 유닛(109, 111, 113) 중 하나의 기능성 유닛(113)과 연결된 제 2 패스 유닛(173)을 포함하는
    VLIW 프로세서.
  7. 제 6 항에 있어서,
    상기 패스 유닛(171, 173)은 각각 연결된 상기 기능성 유닛(107, 113)의 일부분인
    VLIW 프로세서.
  8. 제 1 항에 있어서,
    상기 통신 수단(29)은 상기 기능성 유닛(1, 3, 5, 7)과 상기 분산형 레지스터 파일(9, 11, 13, 15)의 모든 부분을 접속시키는
    VLIW 프로세서.
KR1020047014984A 2002-03-28 2002-03-28 Vliw 프로세서 KR100947446B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2002/000983 WO2003083649A1 (en) 2002-03-28 2002-03-28 Vliw processor

Publications (2)

Publication Number Publication Date
KR20040101343A KR20040101343A (ko) 2004-12-02
KR100947446B1 true KR100947446B1 (ko) 2010-03-11

Family

ID=28460316

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047014984A KR100947446B1 (ko) 2002-03-28 2002-03-28 Vliw 프로세서

Country Status (4)

Country Link
US (1) US7287151B2 (ko)
JP (1) JP3799041B2 (ko)
KR (1) KR100947446B1 (ko)
WO (1) WO2003083649A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0215028D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Microarchitecture description
WO2005036384A2 (en) * 2003-10-14 2005-04-21 Koninklijke Philips Electronics N.V. Instruction encoding for vliw processors
US20070073999A1 (en) * 2005-09-28 2007-03-29 Verheyen Henry T Hardware acceleration system for logic simulation using shift register as local cache with path for bypassing shift register
US20080046689A1 (en) * 2006-08-21 2008-02-21 Tien-Fu Chen Method and apparatus for cooperative multithreading
US7669041B2 (en) * 2006-10-06 2010-02-23 Stream Processors, Inc. Instruction-parallel processor with zero-performance-overhead operand copy
US20100332798A1 (en) * 2009-06-29 2010-12-30 International Business Machines Corporation Digital Processor and Method
CN103955353B (zh) * 2014-05-05 2017-01-18 中国人民解放军国防科学技术大学 具有面向全分布式超长指令字的高能效局部互连结构的装置
US20230409336A1 (en) * 2022-06-17 2023-12-21 Advanced Micro Devices, Inc. VLIW Dynamic Communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100242619B1 (ko) * 1990-10-05 2000-08-01 요트.게.아. 롤페즈 메모리 회로와 기능적 유니트 그룹을 포함하는 프로세싱 디바이스
KR20000075837A (ko) * 1997-12-29 2000-12-26 하트그링 씨스 보호형의 매우 긴 명령어 아키텍처를 위한 향상된 명령 디스패치 메카니즘
KR20050119125A (ko) * 2003-03-19 2005-12-20 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 프로세서

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629232B1 (en) * 1999-11-05 2003-09-30 Intel Corporation Copied register files for data processors having many execution units
EP1161722A1 (en) * 2000-01-14 2001-12-12 Jean-Paul Theis A data processing device with distributed register file
EP1124181B8 (en) * 2000-02-09 2012-03-21 Texas Instruments Incorporated Data processing apparatus
WO2001067234A2 (en) * 2000-03-08 2001-09-13 Sun Microsystems, Inc. Vliw computer processing architecture having a scalable number of register files
EP1208423A2 (en) * 2000-03-10 2002-05-29 Koninklijke Philips Electronics N.V. Method for compiling a program
US6757807B1 (en) * 2000-08-18 2004-06-29 Sun Microsystems, Inc. Explicitly clustered register file and execution unit architecture
US20020120915A1 (en) * 2000-10-13 2002-08-29 Khan Shoab A. Combined scheduling and mapping of digital signal processing algorithms on a VLIW processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100242619B1 (ko) * 1990-10-05 2000-08-01 요트.게.아. 롤페즈 메모리 회로와 기능적 유니트 그룹을 포함하는 프로세싱 디바이스
KR20000075837A (ko) * 1997-12-29 2000-12-26 하트그링 씨스 보호형의 매우 긴 명령어 아키텍처를 위한 향상된 명령 디스패치 메카니즘
KR20050119125A (ko) * 2003-03-19 2005-12-20 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 프로세서

Also Published As

Publication number Publication date
US20050210219A1 (en) 2005-09-22
WO2003083649A1 (en) 2003-10-09
JP2005521936A (ja) 2005-07-21
US7287151B2 (en) 2007-10-23
KR20040101343A (ko) 2004-12-02
JP3799041B2 (ja) 2006-07-19

Similar Documents

Publication Publication Date Title
EP3400688B1 (en) Massively parallel computer, accelerated computing clusters, and two dimensional router and interconnection network for field programmable gate arrays, and applications
US7373440B2 (en) Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
US7487302B2 (en) Service layer architecture for memory access system and method
KR101012744B1 (ko) 향상된 컴퓨팅 아키텍쳐를 위한 파이프라인 가속기 및 관련시스템 및 방법
US20230042521A1 (en) Highly Scalable Quantum Control
JP2009527829A (ja) 複数のプロセッサコア用の共通アナログインターフェイス
US5586289A (en) Method and apparatus for accessing local storage within a parallel processing computer
KR100947446B1 (ko) Vliw 프로세서
EP1083487A2 (en) Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor
US8171259B2 (en) Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
Beecroft et al. QsNet-II: an interconnect for supercomputing applications
KR970029033A (ko) 프로세서의 벡터 데이타 조정 장치
US11275598B1 (en) Dynamic one-bit multiplexing switch for emulation interconnect
JP2023533795A (ja) レジスタデータの消去
US7555630B2 (en) Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit
US9317475B2 (en) Multiplexing auxiliary processing element and semiconductor integrated circuit
RU2686017C1 (ru) Реконфигурируемый вычислительный модуль
KR20050119125A (ko) 프로세서
Jones Throughput Expansion with FET Based Crossbar Switching
Panda et al. Software Managed Distributed Memories in MPPAs
CN116361226A (zh) 一种可重构计算访存架构及方法、电子设备
WO2007092747A2 (en) Multi-core architecture with hardware messaging
AU2002356010A1 (en) Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
JP2004126647A (ja) 情報転送方法及び情報処理システム

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20081002

Effective date: 20100121

Free format text: TRIAL NUMBER: 2008101010235; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20081002

Effective date: 20100121

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 10