KR100288170B1 - 레지스터 화일군을 공유하는 연산 유닛을 갖춘 데이타 처리기 - Google Patents
레지스터 화일군을 공유하는 연산 유닛을 갖춘 데이타 처리기 Download PDFInfo
- Publication number
- KR100288170B1 KR100288170B1 KR1019930021651A KR930021651A KR100288170B1 KR 100288170 B1 KR100288170 B1 KR 100288170B1 KR 1019930021651 A KR1019930021651 A KR 1019930021651A KR 930021651 A KR930021651 A KR 930021651A KR 100288170 B1 KR100288170 B1 KR 100288170B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- register file
- units
- register
- unit
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 abstract description 6
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 239000000758 substrate Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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/3891—Concurrent 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
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)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
모듈 구조의 데이타 처리기는 다수의 연산 유닛을 구비하는데, 각각 처리기의 연산을 결정하는 명령어 세트에 의해 요구되는 대로 특정 기능들을 구현하도록 사용된다. 연산 유닛간의 몇몇 유닛에 대해 레지스터 화일이 병합된다. 명령어 사이클 수의 마진(margin) 증가의 댓가로, IC 실시예에서 레지스터 화일 범위가 작아질수록, 레지스터 화일 제어 회로가 더욱 줄어들고 마이크로코드 워드가 더욱 단순화된다.
Description
제1도는 데이타 처리기의 모듈 구조에 대한 예시도.
제2도는 제1도의 구조를 구현하기 위한 종래 기술의 조립 블럭도.
제3도는 제1도의 데이타 처리기를 구현하는 본 발명의 조립 블럭도에 대한 예시도.
제4도는 동일한 레지스터 화일을 공유하는 연산 유닛에 대한 전형적인 조합을 개시한 도면.
〈도면의 주요부분에 대한 부호의 설명〉
10 : 처리기 12,14,16,18 : 실행 유닛
22 : 제어기 42,44 : 멀티플렉서
[발명의 분야]
본 발명은 각각 개별적인 데이타를 수신하여 개별적인 데이타에 대해 데이타 처리 연산중의 개별적인 한 연산을 실행하는 제 1 다수의 연산 유닛을 갖춘 데이타 처리 수단을 구비하는 데이타 처리기에 관한 것이다. 이 데이타 처리기는, 데이타 처리수단에 결합되어, 상기 데이타 처리수단에 데이타를 제공하기에 앞서 데이타를 기억시키도록 동작하며, 제 2 다수의 레지스터 화일로 구성되는 레지스터 화일 수단을 또한 구비한다. 상기 연산 유닛중의 각각의 특정의 한 유닛은 상기 레지스터 화일중의 특정의 한 화일에 결합된다.
[배경기술]
데이타 처리기는 거의 모든 컴퓨터의 핵심부를 형성하는 공지된 디바이스이다. 데이타 처리기는 입력 데이타에 대해 연산하여, 미리 명시된 알고리즘을 실행함으로써 출력 데이타를 발생한다. 전형적으로, 처리기는 한 개이상의 다음과 같은 연산 유닛, 즉, 덧셈, 뺄셈, 쉬프트를 실행하는 산술 유닛(ALU), 두 데이타 항목을 곱하는 곱셈기(MUL), 데이타를 기록 및 판독하는 랜덤 액세스 메모리(RAM), 데이타를 판독만 하는 판독 전용 메모리(ROM), 메모리의 어드레스를 액세스하는 어드레스를 제공하는 어드레스 계산 유닛, 또는 응용 주문형(application-specific) 유닛(ASU)을 기능적으로 포함한다. ASU는 다른 연산 유닛에 대해 명시된 제한된 개수의 명령어 사이클내에서 또다른 연산 유닛의 명령어 세트에 적합하지 않는 연산을 실행하는데 전형적으로 사용되는 전용 유닛이다. ASU 상으로 과다한 연산을 맵핑하는 것은, 다른 연산 유닛에 대한 명령어 사이클 수를 증가시키거나 다른 연산 유닛과 동일한 종류의 추가의 연산 유닛을 제공하는 것보다 더욱 효율적일 수도 있다.
상기 서문에서 소개된 처리기는 미국, 루지애나, 뉴올리언스에서, 1990년 IEEE의 회로 및 시스템에 대한 국제 심포지엄의 1990년 5월 1-3일, PP. 2596-2600에서 R.우드스마, F.P.M. 빈커, J.L. 반 메에르베르겐, C. 니에센에 의해 "PIRAMID : 콤플렉서 DSP 응용 구조-구동 실리콘 컴파일러"에 개시된다. 종래기술의 제 2 도 및 제 3 도의 처리기에 대한 모듈의 구조를 나타낸다. 구조는 처리기에 대한 기능적인 명시에 근거하여 실리콘 컴파일러 (PIRAMID)에 의해 자동적으로 발생된다. 전형적인 데이타 처리기가 실리콘으로 고정되어 일반 용도에 쓰이는 구조인 것과는 달리, PIRAMID 에 의해 형성된 처리기는 예상되는 응용에 최적화된다.
종래 기술의 제 2 도는 제어기내에 기억된 마이크로 코드 프로그램을 통해 제어된 데이타 버스에 의해 상호접속된 다수의 실행 유닛을 갖는 처리기의 모듈 구조를 도시한 것이다. 상기 문헌의 제 3 도는 실행 유닛의 일반적인 구조를 도시한다. 실행 유닛은 알고리즘을 구현하는데 요구된 한 개이상의 연산을 실행하는 기능적 및 물리적 엔티티(entity)이다. 그러므로, 각각의 실행 유닛은 연산을 실제로 실행하기 위한 상기 언급된 종류의 연산 유닛 및, 필요할때 연산 유닛에 입력 데이타를 제공하고 연산 유닛에 의해 오퍼랜드로서 사용되는 입력 데이타를 기억하는 레지스터 화일을 구비한다.
일반적으로, 레지스터 화일은 "A" 레지스터 화일 섹션과 "B" 레지스터 화일섹션으로 구성된다. "A" 레지스터 화일 섹션은 "A" 오퍼랜드를 제공하고, "B" 레지스터 화일 섹션은 "B" 오퍼랜드를 연산 유닛에 제공한다. 연산 유닛은 두 오퍼랜드에 대해 연산한다. 예를들어, 연산 유닛은 "A" 및 "B" 오퍼랜드 양쪽을 데이타로서 해석하여, 논리적 또는 수학적 연산 처리할 수도 있다. 만일, 연산 유닛이 RAM을 포함한다면, "B" 오퍼랜드에 의해 명시된 어드레스에 기억되도록 "A" 오퍼랜드를 데이타로서 수신한다. "A" 및 "B" 오퍼랜드를 모두 포함하는 연산을 "이항(dyadic)" 연산으로 불리고, 단일 오퍼랜드를 포함하는 연산은 "단항(monadic)" 연산으로 불린다. 후자의 예로서, ROM만을 포함하는 연산 유닛은 단일 오퍼랜드, 즉, ROM 어드레스를 필요로 한다. 따라서, ROM 레지스터 화일은 "A" 레지스터 화일 섹션을 구비한다.
레지스터 화일은 단일 명령어 사이클로 판독 및 기록 연산을 실행하도록 동작한다. 레지스터 화일은 연산 유닛에 접속된 고속 포어그라운드(fast foreground) 메모리로서 사용된다. 백그라운드(background) 메모리는 단일 포트 디바이스이며, 단일 명령어 사이클에서 한 개의 판독 연산 또는 한 개의 기록 연산만을 실행할 수 있다. 그러므로, 백그라운드 메모리는 포어그라운드 메모리에 비해 느리고, 별도의 실행 유닛(즉, RAM, ROM)의 연산 유닛으로서 동작된다. 레지스터 화일은 명령어 레지스터를 통해 제어기에 의해 어드레스 지정되는 반면에, 백그라운드 메모리는 또다른 실행 유닛에서 구현될 어드레스 계산 유닛을 통해 어드레스 지정된다. 각각의 개별적인 실행 유닛은 그 자체의 각각의 레지스터 화일을 가짐을 주목하라.
[발명의 목적]
PIRAMID 접근법이 처리기 구조를 상당히 최적화할지라도, 모듈화는 여전히 처리기 시스템의 사이즈를 비교적 크게하고 처리기 용량을 비교적 비효율적으로 사용되게 할 수도 있다. 이는 실행 유닛이 예상된 구체적인 응용을 위해 실행 유닛중에서 기능적 내부-의존성을 고려하지 않은채 개별적으로 최적화되기 때문이다.
따라서, 본 발명의 목적은 서문에서 언급된 종류의 데이타 처리기를 제공하는 것인데, 즉, 종래기술보다 더욱 작고, 더욱 효율적이고, 종래 기술의 처리기와 최소한 동일한 용량을 갖는 데이타 처리기를 제공하는 것이다.
[발명의 개요]
상기 목적을 위해, 본 발명은 각각 개별적인 데이타를 수신하여 개별적인 데이타에 대해 데이타 처리 연산중의 개별적인 한 연산을 실행하는 제 1 다수의 연산 유닛을 갖춘 데이타 처리 수단을 구비하는 데이타 처리기를 제공한다.
데이타 처리기는 또한, 데이타 처리 수단에 결합되어, 상기 데이타 처리 수단에 데이타를 제공하기에 앞서 데이타를 기억시키도록 동작하는 레지스터 화일 수단을 구비한다. 상기 레지스터 화일 수단은 제 2 다수의 레지스터 화일을 구비한다. 상기 연산 유닛의 각각의 특정 유닛은 상기 레지스터 화일중의 특정의 한 화일에 결합된다. 본 발명에 따라서, 상기 레지스터 화일중의 적어도 한 화일은 상기 연산 유닛중의 적어도 두개의 연산 유닛에 결합된다.
본 발명에서, 일부 연산 유닛은 동일의 레지스터 화일을 공유하는 반면, 다른 연산 유닛은 또다른 레지스터 화일을 공유하거나 상기 다른 연산 유닛에 의해 공유되지 않은 개별적인 레지스터 화일을 갖는다. 본 발명은 연산 유닛의 레지스터 화일이, 그 관련된 연산 유닛에 위치 내용(즉, 오퍼랜드)이 제공된후, 잠시 동안 유휴 레지스터 위치를 가진다는 사실 및, 동일의 오퍼랜드가 동시에 또는 시간적으로 분산되어 몇몇 연산 유닛에서 사용될 수도 있다는 사실에 기초한 것이다. 따라서, 두개 이상의 연산 유닛에 대한 레지스터 화일은 처리기의 응용에 따라, 상호간에 물리적 및 기능적으로 병합될 수도 있다.
예를 들어, 반복 연산에서, 제 1 및 제 2 연산 유닛은 공유된 레지스터 화일로부터 동일한 오퍼랜드를 수신한다. 제 1 유닛은 제 3 연산 유닛에 처리 결과를 제공하기 위해 소정의 방식으로 오퍼랜드를 처리하는 반면에, 제 2 유닛은 다음 반복시에 제 1 유닛에 제공될 연속의 오퍼랜드를, 그 수신된 오퍼랜드에 근거하여 계산한다.
장점은 다양하다. 공유된 레지스터 화일은 개별적으로 사용된 레지스터 화일의 집합보다 작다. 공유된 레지스터 위치 사용은 요구된 레지스터의 기억 용량을 실제로 줄인다. 명령어 레지스터등의 레지스터의 I/O 기능을 구현하기 위해 주변 회로는 사이즈에 있어 부가적인 축소를 유도하여 공유된다.
병합된 레지스터의 위치에 대해 어드레스에 관련된 마이크로코드 데이타 필드는 어드레스 공간이 병합된 레지스터에 대해 증가되기 때문에 더이상 길어지지 않으나, 단일 어드레스 데이타 필드는 종래 기술의 두개 이상의 어드레스 데이타 필드 대신에 오게 된다. 결과적으로, 마이크로코드 워드의 폭은 감소되고, 더욱 작은 제어기가 사용될 수 있다. 마이크로코드 명령어의 재스케쥴(rescheduling)뿐만 아니라 명령어 세트의 확장은 필요할 수도 있다. 그런데, 이것은 얻어진 장점면에서 더욱 가치가 있다.
또한, 다수의 작은 회로 블럭은 동일 기능을 갖는 단일 회로 블럭보다 직접회로 실시예에서 더욱 큰 기관(substrate) 면적을 요구한다. 이것은 회로 블럭의 요소가 전형적으로 IC 기술에서 안전한 마진(margin)과 해결책면에서 회로 블럭에 대해 보류된 기판 면적을 완전히 차지하지 않는다는 사실 때문이다. 게다가, 컴퓨터-원조(computer-aided)의 설계 환경에서 칩상에 사용할 회로 조립 블럭의 레이아웃은 파라미터형의 명세에 기초하여 자동적으로 발생된다. 전형적으로, 조립 블럭에 대해 발생된 레이-아웃은 이후에 부가될 단순한 상호접속 리드면에서 칩의 영역상에 보류된 사각형으로 이루어져 있다. 칩의 점유되지 않은 공간은 사각형의 수를 증가시킨다. 더우기, 레이 아웃의 자동 발생은 특정한 파라미터 값 또는 파라미터 값의 범위, 즉 메모리 사이즈 또는 용량에 대해 최적화 될 수도 있다. 최적화된 범위를 초과하는 관련된 레이 아웃은 칩 영역을 덜 효율적으로 사용하게 한다. 따라서, 단일 블럭 또는 몇몇 블럭내의 다수의 블럭에 대한 동일한 기능의 병합은 점유되지 않은 영역의 사이즈를 비례적으로 감소시킨다.
본 발명의 처리기에 있어서, 제 1 다수의 연산 유닛은 동일형이 아닐(non-uniform)수도 있다. 즉, 연산 유닛은 상호간에 다른 기능 및 동일형이 아닌 구조를 가질 수도 있다. 다른 연산 유닛간에 레지스터 화일의 공유는 전체적으로 처리기에 대해 유리하다.
본 발명의 또 한 실시예에서, 제 1 레지스터 화일은 제 1 및 제 2 연산 유닛에 결합되고, 제 1 연산 유닛은 이항 연산을 실행하도록 동작하고 제 2 연산 유닛은 단항 연산을 실행하도록 동작한다. 전형적으로, 제 1 연산 유닛은 메모리(RAM)를 구비하고 제 2 연산 유닛은 어드레스 계산 유닛(ACU)을 구비하는데, 예를 들어, 이것은 어드레스가 반복적으로 계산될 때 유리하다.
PIRAMID 처리기등의 모듈 구조를 갖지 않는 종래의 데이타 처리기는, 모든 의도된 조합된 기능에 대해 단일의 과대한 레지스터 화일을 구비할 수도 있다. 그런데, 본 발명은 전용의 데이타 처리기에 관한 것으로, 모듈은 사이즈, 속도, 비용을 최적화하는데 국부적으로 변형된다. 특히, 집적 회로의 실시예에서, 본 발명은 많은 특성을 제공한다.
본 발명은 첨부한 도면과 실시예를 참조하여 설명된다.
[실시예에 대한 상세한 설명]
[처리기 구조]
제 1 도는 처리기(10) 구조의 예시도이다. 처리기(10)는 하나이상의 데이타 버스(20)를 통해 상호간에 데이타 통신을 하는 상호 접속된 실행 유닛(12, 14, 16, 18)을 포함하는데, 그 동작은 제어기(22)에 의해 제어된다. 제어기(22)는 플래그등의, 상태 버스(26)를 통해 실행 유닛(12 및 14)으로부터 수신되는 상태 정보에 가능한한 의존하여, 명령어 버스(24)를 통해 실행 유닛(12-18)에 명령어를 제공하며, 브렌치와 같은 데이타-의존 프로세스를 가능하게 한다. 실행 유닛(12)은 산술 유닛(ALU)을 갖춘다. 실행 유닛(14)은 RAM을 포함하는 실행 유닛(16)과, ROM을 포함하는 실행 유닛(18)등의 메모리에 대해 최적 어드레스 시퀀스를 발생하기 위해, 어드레스 계산 유닛(ACU)을 구비한다.
[종래 기술의 실행 유닛]
제 2 도는 종래 기술의 전형적인 실행 유닛(40)에 대한 블럭도이다. 실행 유닛(40)은 응용에서의 시간 멀티플렉싱을 위해 그 입력에 멀티플렉서(42, 44)가 제공된다. 멀티플렉서(42, 44)는 "A" 오퍼랜드 섹션(48)과 "B" 오퍼랜드 섹션(50)을 포함하는 레지스터 화일(46)에, 버스(20)의 데이타 라인(도시 않됨)을 선택적으로 결합한다. 멀티플렉서(42, 44)는 명령어 레지스터(52, 54)를 통해 적절한 선택 신호 SEL를 제공하는 제어기(22)의 제어하에서 동작한다. 레지스터 화일(46)은 멀티플렉서(42, 44)로부터 수신된 데이타를 기억하고, 그 데이타를 오퍼랜드로서 수신하는 연산 유닛(56)에 전달한다. 섹션(48, 50)은 명령어 레지스터(58, 60)를 통해 제어기(22)로부터 판독 및 기록 어드레스(ADDR)를 수신한다. 연산 유닛(56)은 명령어 레지스터(62)를 통해 제어기(22)로부터 수신된 명령어의 제어하에서 레지스터 화일(46)로부터 수신된 데이타에 대해 연산을 실행한다. 이러한 연산의 결과는 명령어 레지스터(66)를 통해 제어기(22)에 의해 선택적으로 인에이블 또는 디스에이블(E/D)되는 버퍼(64)를 통해 데이타 버스(20)에 제공된다.
ROM 기능이 실행 유닛(40)에서 구현될 때, 멀티플렉서(44), 섹션(50) 및 명령어 레지스터(54, 60)는 누락된다.
[본 발명의 조립 블럭]
제 3 도는 제 1 도의 처리기(10)의 구조를 구현하기 위해 본 발명에 따른 조립 블럭을 구조적으로 설명한 것이다. 블럭(100)은 연산 유닛(102, 104, 106)을 구비하는데, 이 연산 유닛은 레지스터 파일(108, 110)로부터 입력 데이타를 수신한다. 레지스터 화일(108)은 멀티플렉서(112, 113)를 통해 입력 데이터를 수신하고, 레지스터 화일(110)은 멀티플렉서(114, 115)를 통해 입력 데이타를 수신한다. 멀티플렉서(112-115)는 버스(116)에 접속된다. 연산 유닛(102,104,106)에 의해 제공된 결과는 버퍼(118,120,122)를 통해 버스(116)에 각각 제공된다. 멀티플렉서(112-115)는 선택 신호 SEL을 통해 명령어 레지스터(126,127,128,129)를 경유하여 제어기(124)에 의해 제어된다. 어드레스(ADDR)는 명령어 레지스터(130,132)를 통해 제어기(124)에 의해 레지스터 화일(108,110)에 제공된다. 연산 유닛(102,104,106)의 연산 모드는 명령어 레지스터(134,136,138)를 통해 명령어(INST)를 제공하는 제어기(124)에 의해 결정된다. 버퍼(118,120,122)는 제어기(124)에 의해 선택적으로 인에이블 및 디스에이블(E/D)된다.
제 3 도의 블럭은 제 2 도에 도시된 종류 또는 동일 종류의 다른 실행 유닛을 함께 사용하는 고순위 실행 유닛으로서 사용되도록 적용됨을 주의하라. 또한, 도면 전체의 신호 라인은 데이타 또는 다른 신호를 수신하는 입력을 나타내거나, 상호 접속을 나타내도록 도시되며, 이 라인들은 버스에 대한 몇몇 신호 리드(lead)를 대표할 수 있음을 주의하라.
도시된 예에 있어서, 레지스터 화일(108)은 오퍼랜드를 제어기(124)의 제어하에서 연산 유닛(102,104)에 선택적으로 제공하는데 사용되는 반면에, 레지스터 화일(110)은 오퍼랜드를 연산 유닛(106)에 제공한다. 당업자들에게는, 레지스터 화일(108)이 병렬로 배치된 두개이상의 단일 입력 레지스터 화일(도시않됨)로 구성되어, (102, 104, 106)만이 도시된 연산 유닛중의 두개이상의 개별적인 연산 유닛에 개별적인 오퍼랜드를 제공할 수도 있음이 명백할 것이다. 일반적으로 오퍼랜드의 적절한 분포를 계획하기 위해, 최소한 레지스터 화일의 일부의 출력과, 연산 유닛 일부의 입력간에 추가적인 멀티플렉서(도시않됨)가 삽입될 수 있음이 역시 명백해진다.
연산 유닛(102-106)이 이러한 예에서 이항 명령어를 실행하도록 가정한다. 종래 기술에 비해, 연산 유닛(102,104)에 대한 레지스터 화일들은 단일 레지스터 화일을 제공하도록 병합된다.
[전형적인 예제]
제 4 도는 공유된 레지스터 화일의 전형적인 예에 대해 필수적인 것만을 도시한 것이다. 제어 특성 및 I/O 특성은 제 3 도의 것과 유사한 것으로 한다. RAM(180)은 레지스터 화일(182)을 통해 수신된 데이타를, 레지스터 화일(182)을 통해 수신된 어드레스에 기억시키고, 버스(116)에 데이타를 제공한다. 어드레스 계산 유닛(ACU)(184)은 다음 어드레스를 반복적으로 계산하기 위해 RAM(180)과 동일한 어드레스를 수신한다. 다음 어드레스는 버스(116)에 제공되어 다시 레지스터 화일(182)에 경로 지정된다. 제 4 도에서 인터럽트된 상호접속은 제어 및 I/O 특성의 리마인더(reminder)로서 가능하는데, 여기서는 간략화를 위하여 생략한다.
몇몇 연산 유닛에 대한 레지스터 화일이 병합될 수 있을지 없을지는 실행될 실제 연산에 달려있다. 명령어 세트가 레지스터 화일의 병합에 어떤 식으로 영향을 주는지는 다음과 같이 설명된다. 병합 계획을 위해서, 설계인은 어느 한 연산 유닛이 한 명령어 사이클에서 활성인지를 나타내도록, 연산 유닛에 대한 초기 스케쥴을 기본으로서 취할 수도 있다. 동시에 활성이 아닌 연산 유닛의 레지스터 화일들은, 즉, 동일의 명령어 사이클동안 병합될 수도 있다. 그러나, 이러한 상황은 드물다. 더우기, 몇몇 명렁어 사이클동안만 동시에 활성일 수 있는 연산 유닛이 존재하게 된다. 레지스터 화일 병합이 여전히 실현 될 수 있지만, 충돌을 피하기 위해 추가의 명령어 사이클을 도입하는 부담이 있다. 소정의 증가된 명령어 사이클 수가 그 병합된 레지스터 화일에 대해 장점을 갖게하는 것은 당연하다. 설계인은 한 개이상의 연산 유닛에 사용된 오퍼랜드를 동시적으로 또는 다른 명령어에서 고려할 수 있다. 이러한 오퍼랜드는 단일 레지스터의 위치만을 요구하는데, 이는 늘어난 개수의 명령어 사이클동안 차지할 것이다. 당업자는 하드웨어의 절약(saving)이, 그 실행동안 본 발명에서의 처리기에 의해 생성될 프로그램에 주로 달려 있음을 명백히 인식하고 있을 것이다. 본 발명의 처리기의 집적 회로 실시예에 대해 기판 영역의 절약은 전형적으로 15%-20%이다.
Claims (5)
- 각각 개별적인 데이타를 수신하여 개별적인 데이타에 대해 데이타 처리 연산중의 개별적인 한 연산을 실행하는 제 1 다수의 연산 유닛을 갖는 데이타 처리 수단; 및 상기 데이타 처리 수단에 결합되어, 상기 데이타 처리 수단에 데이타를 제공하기에 앞서 데이타를 기억시키도록 동작하며, 제 2 다수의 레지스터 화일로 구성되는 레지스터 화일 수단을 구비하며, 상기 연산 유닛의 각각의 특정 유닛은 상기 레지스터 화일의 특정 화일에 결합되는, 데이타 처리기에 있어서, 상기 레지스터 화일중에 적어도 하나는 상기 연산 유닛중의 적어도 두 개의 유닛에 결합되는 것을 특징으로 하는 데이타 처리기.
- 제1항에 있어서, 상기 제 1 다수의 연산 유닛은 상호간에 동일형이 아닌(non-uniform) 것을 특징으로 하는 데이타 처리기.
- 제1항에 있어서, 상기 레지스터 화일중의 제 1 화일은 상기 연산 유닛 중의 제 1 연산 유닛 및 제 2 연산 유닛에 결합되며, 여기서, 상기 제 1 연산 유닛은 이항(dyadic) 연산을 실행하도록 동작하고 상기 제 2 연산 유닛은 단항(monadic) 연산을 실행하도록 동작하는 것을 특징으로 하는 데이타 처리기.
- 제3항에 있어서, 상기 제 1 연산 유닛은 메모리를 구비하고, 상기 제 2 연산 유닛은 어드레스 계산 유닛을 구비하는 것을 특징으로 하는 데이타 처리기.
- 제1항에 있어서, 집적 회로 칩으로 구현되는 것을 특징으로 하는 데이타 처리기.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP92203192 | 1992-10-19 | ||
EP92203192.7 | 1992-10-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR940009821A KR940009821A (ko) | 1994-05-24 |
KR100288170B1 true KR100288170B1 (ko) | 2001-05-02 |
Family
ID=8210979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019930021651A KR100288170B1 (ko) | 1992-10-19 | 1993-10-19 | 레지스터 화일군을 공유하는 연산 유닛을 갖춘 데이타 처리기 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5613152A (ko) |
JP (1) | JP3595562B2 (ko) |
KR (1) | KR100288170B1 (ko) |
DE (1) | DE69327504T2 (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5713039A (en) * | 1995-12-05 | 1998-01-27 | Advanced Micro Devices, Inc. | Register file having multiple register storages for storing data from multiple data streams |
JP2869379B2 (ja) * | 1996-03-15 | 1999-03-10 | 三菱電機株式会社 | プロセッサ合成システム及びプロセッサ合成方法 |
US6006296A (en) * | 1997-05-16 | 1999-12-21 | Unisys Corporation | Scalable memory controller |
JPH1131137A (ja) * | 1997-07-11 | 1999-02-02 | Nec Corp | レジスタファイル |
WO1999009472A1 (en) * | 1997-08-18 | 1999-02-25 | Koninklijke Philips Electronics N.V. | Data processing device with relative jump instruction |
US7107302B1 (en) | 1999-05-12 | 2006-09-12 | Analog Devices, Inc. | Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units |
US7111155B1 (en) | 1999-05-12 | 2006-09-19 | Analog Devices, Inc. | Digital signal processor computation core with input operand selection from operand bus for dual operations |
US6820189B1 (en) | 1999-05-12 | 2004-11-16 | Analog Devices, Inc. | Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation |
US6859872B1 (en) | 1999-05-12 | 2005-02-22 | Analog Devices, Inc. | Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation |
EP2267596B1 (en) * | 1999-05-12 | 2018-08-15 | Analog Devices, Inc. | Processor core for processing instructions of different formats |
JP3776644B2 (ja) | 1999-10-05 | 2006-05-17 | 富士通株式会社 | パイプライン演算装置、情報処理装置およびパイプライン演算装置の演算方法 |
JP2001167066A (ja) * | 1999-12-08 | 2001-06-22 | Nec Corp | プロセッサ間通信方法及びマルチプロセッサシステム |
ATE394755T1 (de) * | 2000-06-20 | 2008-05-15 | Nxp Bv | Datenverarbeitungsgerät |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US7315934B2 (en) * | 2002-03-06 | 2008-01-01 | Matsushita Electric Industrial Co., Ltd. | Data processor and program for processing a data matrix |
US7246218B2 (en) * | 2004-11-01 | 2007-07-17 | Via Technologies, Inc. | Systems for increasing register addressing space in instruction-width limited processors |
US9367462B2 (en) | 2009-12-29 | 2016-06-14 | Empire Technology Development Llc | Shared memories for energy efficient multi-core processors |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3978452A (en) * | 1974-02-28 | 1976-08-31 | Burroughs Corporation | System and method for concurrent and pipeline processing employing a data driven network |
US4388685A (en) * | 1978-08-04 | 1983-06-14 | Digital Equipment Corporation | Central processor with apparatus for extended virtual addressing |
US4293907A (en) * | 1978-12-29 | 1981-10-06 | Bell Telephone Laboratories, Incorporated | Data processing apparatus having op-code extension register |
US4348720A (en) * | 1979-08-31 | 1982-09-07 | Bell Telephone Laboratories, Incorporated | Microcomputer arranged for direct memory access |
DE3275139D1 (en) * | 1981-10-22 | 1987-02-19 | Nec Corp | Data processing machine suitable for high-speed processing |
JPS58134357A (ja) * | 1982-02-03 | 1983-08-10 | Hitachi Ltd | ベクトルプロセッサ |
US4835733A (en) * | 1985-09-30 | 1989-05-30 | Sgs-Thomson Microelectronics, Inc. | Programmable access memory |
US4766566A (en) * | 1986-08-18 | 1988-08-23 | International Business Machines Corp. | Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing |
JPH077388B2 (ja) * | 1988-09-13 | 1995-01-30 | 富士通株式会社 | ベクトル演算処理装置 |
US5241635A (en) * | 1988-11-18 | 1993-08-31 | Massachusetts Institute Of Technology | Tagged token data processing system with operand matching in activation frames |
US4980819A (en) * | 1988-12-19 | 1990-12-25 | Bull Hn Information Systems Inc. | Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system |
JP2879070B2 (ja) * | 1989-02-15 | 1999-04-05 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | プログラム可能論理ユニット及び信号プロセッサ |
US5301340A (en) * | 1990-10-31 | 1994-04-05 | International Business Machines Corporation | IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle |
-
1993
- 1993-10-12 DE DE69327504T patent/DE69327504T2/de not_active Expired - Lifetime
- 1993-10-19 KR KR1019930021651A patent/KR100288170B1/ko not_active IP Right Cessation
- 1993-10-19 JP JP26100093A patent/JP3595562B2/ja not_active Expired - Fee Related
-
1995
- 1995-12-13 US US08/572,187 patent/US5613152A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH06222920A (ja) | 1994-08-12 |
DE69327504D1 (de) | 2000-02-10 |
JP3595562B2 (ja) | 2004-12-02 |
KR940009821A (ko) | 1994-05-24 |
DE69327504T2 (de) | 2000-08-10 |
US5613152A (en) | 1997-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100288170B1 (ko) | 레지스터 화일군을 공유하는 연산 유닛을 갖춘 데이타 처리기 | |
KR100306107B1 (ko) | Cpu와승산기를갖는반도체집적회로 | |
US6247110B1 (en) | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem | |
US5970254A (en) | Integrated processor and programmable data path chip for reconfigurable computing | |
US5301340A (en) | IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle | |
US6223279B1 (en) | Single chip microcomputer having a dedicated address bus and dedicated data bus for transferring register bank data to and from an on-line RAM | |
US5933855A (en) | Shared, reconfigurable memory architectures for digital signal processing | |
US20060294344A1 (en) | Computer processor pipeline with shadow registers for context switching, and method | |
KR940015852A (ko) | 긴 명령 워드를 갖는 처리기 | |
WO1994003860A1 (en) | Massively parallel computer including auxiliary vector processor | |
US6092179A (en) | Core processor with customizable function unit | |
EP0976037A1 (en) | Scaleable double parallel digital signal processor | |
JP2001043180A (ja) | マイクロプロセッサおよびそのための記憶装置 | |
US20020199084A1 (en) | Method and apparatus for dual issue of program instructions to symmetric multifunctional execution units | |
EP0594240B1 (en) | Data processor with operation units sharing groups of register files | |
JPS6362778B2 (ko) | ||
JPS6043757A (ja) | 1チツプのマイクロコンピユ−タ | |
JPS62251829A (ja) | シンボリツク処理システムおよび方法 | |
JPS62224855A (ja) | デ−タ処理装置 | |
JPH09106346A (ja) | 並列計算機 | |
Acosta | A programmable processor for the Cheops image processing system | |
JPH08263290A (ja) | データ処理装置 | |
JPH11283362A (ja) | FiFoメモリ制御回路及びこの制御回路を使用したマイクロプロセッサ制御回路 | |
Hartenstein et al. | An FPGA Architecture for Word-Oriented Datapaths | |
JPH0764857A (ja) | データ記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20070126 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |