KR850001015B1 - 오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 - Google Patents
오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 Download PDFInfo
- Publication number
- KR850001015B1 KR850001015B1 KR1019810001672A KR810001672A KR850001015B1 KR 850001015 B1 KR850001015 B1 KR 850001015B1 KR 1019810001672 A KR1019810001672 A KR 1019810001672A KR 810001672 A KR810001672 A KR 810001672A KR 850001015 B1 KR850001015 B1 KR 850001015B1
- Authority
- KR
- South Korea
- Prior art keywords
- operand
- instruction
- address
- designator
- operland
- Prior art date
Links
- 239000002023 wood Substances 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000006073 displacement reaction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 241000209072 Sorghum Species 0.000 description 1
- 235000011684 Sorghum saccharatum Nutrition 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000003607 modifier Substances 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- 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/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- 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/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
내용 없음.
Description
제1도. 제2도, 제3도는 본 발명에서 사용되는 가변장(可變長)명령의 오페란드 지정자의 형식예를 나타낸 도면.
제4도는 본 발명에 의하여 구성되는 데이터 처리장치의 일실시예 블록도.
제4a도, 제4b. 제4c , 제4d, 제4e도는 각각 제4도에 나타낸 특정블럭의 상세함을 나타낸 블럭도.
제5도는 제4c도의 특정회로 신호의 의미를 나타낸 설명도.
제6도, 제7도는 제4도에 나타낸 데이터 처리장치의 동작을 나타낸 흐름도.
제8도는 제4c도에 나타낸 특정회로의 어떤 명령에 대한 신호를 나타낸 회로도.
제9도, 제10도는 제4도에 나타낸 데이터 처리장치의 어떤 특정명령시의 동작을 나타낸 흐름도이다.
본 발명은 파리프라인 제어를 행하는 데이터 처리장치에 관한 것으로서, 특히 오페란드Operand)의 어드레스 모우드를 지정하는 오페란드 지정자가 연산을 지정하는 코우드 부분으로부터 독립되어 가해지는 가변장(可變長) 명령을 취급하는 데이터 처리장치에 관한 것이다.
가변장 명령체계에서는 일반적으로 명령코우드가 동일하드라도 명령어는 여러 가지 길이가 되며 더구나 명령어의 선두의 피일드는 명령코우드로 정해져 있으나 그 이외의 부분은 여러 가지 의미를 갖는다.
그러므로 명령어중의 피일드의 의미는 일정하게 정헤지지 않는다. 또 명령어중에 포함되는 오페란드 지정자가 어드레스 모우드에 대응하여 그 길이를 바꾸기 때문에 동일한 명령코우드일지라도 명령어의 길이는 여러 가지의 값을 갖게 된다.
따라서 이와 같은 명령체계를 취급하는 명령디코우드 장치에 있어서 하나의 명령어를 동시에 받아들여 동시에 디코우드를 하는 방식을 체태하면 하아드 웨어의 규모가 커지고 또한 복잡한 제어를 하지 않으면 안된다.
또 어떤 특정길이의 단위를 정하여 그 하나 또는 복수의 단위길이별로 명령어를 넣어 디코우드하는 방식에 있어서는 명령어를 디코우드 하는데 시간이 걸리게 되어 고속처리가 실현될 수 없다. 예를들면 8비트(bit)(1Byte)를 기준단위로 했을 경우 기본적인 명령으로 3∼8바이트(Byte)의 명령길이가 되어 기계사이클에 동기시켜 명령어의 디코우드를 진행시키면 1명령의 디코우드에 명령어의 바이트 수 만큼 기계사이클을 소비하게 된다.
이와 같이 가변장 명령체계를 취급하는 데이터 처리장치에 있어서는 어떻게 하면 명령 디코우드의 처리를 고속화하고, 효율이 좋은 파이프라인 처리를 실현하는가가 중요한 키이가 되고 있다.
본 발명의 목적은, 가변장 명령의 디코우드의 처리를 고속으로 실행하는 데이터 처리장치를 제공하는 데 있다.
본 발명의 다른 목적은, 어떤 수의 오페란드 지정자를 포함하다 명령에 대해서도 디코우드의 처리를 고속으로 실행하는 데이터 처리장치를 제공하는데 있다.
본 발명의 또 다른 목적은, 오페란드 지정자가 어떠한 길이이드라도 1기계 사이클에 한 개의 오페란드의 준비를 행하는 파이프라인 제어 데이터처리 장치를 제공하는데 있다.
본 발명의 또 다른 목적은, 명령의 최종의 오페란도의 오페란드 지정자의 어드레스 모우드가 레지스터 지정모우드로 가해질 경우에 명령에의 최종 오페란드의 하나 앞의 오페란드의 오페란드 지정자의 디코우드 사이클에서 동시에 최종 오페란드의 오페란드 지정자의 디코우드도 행하므로서, 고속으로 명령을 실행하는 데이터 처리 장치를 제공하는데 있다.
본 발명의 특징은, 오페란드의 어드레스 모우드를 지정하는 오페란드 지정자가 연산을 지정하는 코우드 부분으로부터 독립되어 가해지는 가변장 명령을 취급하는 데이터 처리장치로서 명령간의 파이프라인 처리에 덧붙여 명령의 각 오페란드간의 파이프라인 처리를 행하도록 한 것이다.
본 발명의 또 다른 특징은, 명령의 최종 오페란드가 레지스터 직접 모우드로 가해질 때 해당 오페란드의 하나앞의 오페란드의 디코우드 사이클에서 최종 오페란드의 디코우드를 동시에 행하도록 했다는 것이다.
본 발명의 또 다른 특징은, 1기계사이클에 적어도 1개의 오페란드의 오페란드 지정자를 디코우드하고 각각 다른 오페란드의 준비를 하여 복수의 오페란드간의 파이프라인 처리를 실행하도록 하고 있다는 것이다.
본 발명의 기타의 목적 및 특징은, 청구범위에 따라 명백해질 것이다.
본 발명의 실시예를 설명하기에 앞서 먼저 가변장의 오페란드 지정자를 갖는 명령체계에 대하여 설명한다.
이와 같은 명령체계를 공지인 것이나 대표적인 두 가지 예를 지적한다.
하나는, Burroughs Corporation의 계산기 B 1700을 COBOL/RPG용 구성자(architecture)로 사용했을 때의 명령형식으로서, 이는「B1700 COBOL/RPG S-Language, 1058823-015, Copyright 1973, Burroughs Corporation」에 나타나 있다.
또 하나는, Digital Equipment Corporation의 계산기 VAX 11/780의 구성장치(architecture)가 갖는 가변장이되는 오페란드 지정자를 갖는 명령체계로서, 이것은「VAX 11 Archtecture Hand book, Copyright 1979」및 VSP No. 4241399호에 나타나 있다.
제1(a)도-제1(d)도는 바로우스(Burroughs)사의 B1700의 예에서의 4개의 대표적인 어드레스 모우드를 나타낸다.
제1(a)도는, 단 리터럴(Short Literal) 모우드시의 오페란드 어드레스를 지정하는 오페란드 지정자를 나타내며, "타이프"(Type)의 피일드에서 데이터의 타이프(부호의 유무, 리터럴치(Literal Value) 피일드이 기본장(長)(4비트 또는 8비트)의 식별)를 나타내고, "길이"(Length)피일드와 "타이프"(Type)피일드에 따라 리터럴 치(Literal Value) 피일드의 길이를 규정한다. 따라서 리터럴 치 피일드는 4비트로부터 최고길이 56비트("Type"피일드에서 8비트의 부호를 붙여 길이(Length)가 7일때) 까지의 범위를 취할 수 있다.
제1(b)도는 장 리터럴(Long Literal) 모우드시의 오페란드 어드레스를 지정하는 오페란드 지정자를 나타내면 단 리터럴 (Short Literal) 모우드를 넘는 길이의 리터럴 데이터를 얻는 경우에 사용된다.
제1(c)도는 서술자(敍述子) 색인모우드(Descriptor Index mode)시의 오페란드 어드레스를 지정하는 오페란드 지정자를 나타내며, 서술자 테이블(Descriptor table)의 엔트리(entry) 어드레스로 부터의 색인치(値)로 규정되는 어드레스상의 데이터가 오페란드가 된다.
제1(d)도는 인라인 서술자(敍述子) 모우드시의 오페란드 어드레스를 지정하는 오페란드를 나타내며 "서술자"(Descriptor) 피일드에서 가해지는 데이터가 오페란드가 된다.
이상 설명한 4종류의 어드레스 모우드가 전부는 아니며, 그 외에도 더 있음은 물론이다.
제1도에 나타낸 바와 같이 오페란드 지정자 길이는 여러 가지의 길이를 취할 수가 있다. 즉, 제1(a)도의 쇼오트 리테라르 모우드에서는 그 오페란드 지정자의 명령 피일드를 차지하는 길이 l(비트)은
l=1+2+3+"Length"×4(또는 8)
이 되고, 제1(b)도의 장(long) 리터럴 모우드에서는 l은
l=1+2+3+8+"Length"×4(또는 8)
이 되고, 제1(c)도의 서술자 색인 모우드에서는, l은
l=6
이 되고, 제1(d)도의 인라인 서술자 모우드에서는, l은
l=63
이 된다. 이와 같이 상술한 명령체계에서는 오페란다의 형식, 어드레스 모우드를 저정하는 부분이 가변장의 오페란드 지정자로 규정되어 연산 코우드로부터 독립되어 있다는 특징이 있다. 상술한 명령체계에서는 오페란드의 어드레스 모우드가 리테라르와 서술자 뿐이었으나 물론 이들 어드레스 모우드 이외의 어드레스 모우드를 포함시켜 생각할 수 있을 것이다.
제2(a)도-제2(f)도는 DEC 사의 VAX 11의 예에서의 6개의 대표적인 어드레싱 모우드의 오페란드 지정자의 형식을 나타내고 있다.
제2(a)도는 리터럴 모우드시의 오페란드 지정자의 형식을 나타내며, "Lit"(리터럴)의 피일드의 6비트의 데이터가 오페란드가 된다.
제2(b)도는 레지스터 모우드시의 오페란드 지정자의 형식을 나타내며, "Rn"의 피일드의 4비트가 오페란드가 되는 레지스터의 어드레스를 나타낸다.
제2(c)도는 Disp(서술자) 모우드시의 오페란드 지정자의 형식을 나타내고, "Rn"의 피일드에서 지정되는 레지스터의 내용과 "Disp"의 피일드에서 지정되는 변위부를 가산한 메모리 어드레스의 위치상의 데이터가 오페란드가 된다.
상기 변위부의 길이는, (C)에 나타낸 8비트 외에, 16비트, 32비트의 길이를 취할 수가 있다.
제2(d)도는 제2(c)도의 어드레싱 모우드에 색인 수식(修飾)을 가한 Disp with Index 모우드시의 오페란드 지정자를 나타내며, "Rx"의 피일드에서 지정되는 어드레스상의 레지스터가 색인 레지스터로서, 어드레스 계산시에 가산된다.
제2(e)도는 상대 지정모우드(Relative mode)시의 오페란드 지정자의 형식을 나타내며, 프로그램카운터의 내용과, "Disp"의 피일드에서 지정되는 변위부를 가산한 메모리 어드레스상의 데이터가 오페란드가 된다.
제2(f)도는 절대지정모우드(Absolute mode)시의 오페란드 지정자의 형식을 나타내며. "Abso"로 나타내는 피일드가 오페란드가 소재하는 메모리 어드레스를 나타낸다.
상술한 바와 같이 VAX 11의 구성자는 오페란드 지정자의 길이가 8비트(바이트)를 기준단위 길이로 구성되어 있는 점에 특징이 있다.
어드레싱 모우드의 종류로는 (repertory) B1700은 COBOL 등의 언어용이고, VAX 11은, FORTRAN이나 PL/I 등에 적합하다. VAX 11의 어드레싱 모우드의 레퍼터리를 취하고, 또한 오페란드 지정자의 효율을 높이기 위하여 상기 오페란드 지정자의 길이를 비트 가변으로 하는 명령형식의 예를 제3도에 나타내고 있다.
제3(a)도, 제3(b)도는 오페란드가 리터럴 데이터로 가해지는 경우의 오페란드 지정자의 형식(format)을 나타내는 도면이고, 5비트 이하의 리터럴 데이터의 경우에는 제3(a)도에 나타내는 단 리터럴(Short Literal) 형식(format)이 되며, 6비트 이상인 길이의 리터럴 데이터인 경우에는 제3(b)도에 나타내는 장 리터럴(Long Literal) 형식을 취한다.
제3(c)도는 레지스터 모우드시의 오페란드 지정자의 형식을 나타내고, "Rn"의 피일드로 지정되는 어드레스의 레스스터가 오페란드가 된다.
제3(d)도는, 변위(Disp) 모우드시의 오페란드 지정자의 형식을 나타내며, "Rn"의 피일드로 지정되는 어드레스상의 레지스터와, 변위의 길이를 나타내는 "Disp Len" 부와 변위부 "DIsp"로 이루어진다.
제3(e)도는 비교(Relative) 모우드시의 오페란드 지정자의 형식을 나타내며, "Disp Len"부와 "Disp"로 이루어진다.
제3(f)도는 절대지정 모우드시의 오페란드 지정자의 형식을 나타내며, "Abso"로 나타내는 피일드가 오페란드가 소재하는 메모리 어드레스를 나타낸다.
제3도에 나타내는 오페란드 지정자의 형식은 수많은 어드레싱 모우드의 일예에 불과하며, 이외에도 여러가지 형식의 오페란드 지정자가 있음은 물론이나 본 발명을 이해하는데는 필요 없으므로 생략한다.
이상 제1도-제3도에 나타낸 명령 형식의 에에서는 각 오페란드 별로 어드레싱 모우드를 규정하기 때문에, 연산코우드(이하 op code) 및 오페란드 상호간에 대하여 어드레싱 모우드의 독립성이 확보된다. 단, 각 오페란드가 판독 오페란드, 기입오페란드, 또는 판독, 기입 오페란드 등의 어느것의 액세스 형식(access type)으로 사용되느냐하는 제약(制約)은 연산 코우드로 전해지는 것이다(연산코우드에 대한 속성(屬性)에 따라서 각 오페란드 지정자는 상기 연산코우드에 대한 속성을 충족시키는 어드레싱 모우드이어야 할 것이 필요하다. 액세스 형식은 상기한 판독, 기입 및 기입 외에도 더 있다는 것은 물론이다.
또 오페란드 자체의 길이(데이터 길이)에 대해서는 연산코우드에 대한 속성(屬性)이라고도 생각되며 오페란드 지정자로 지정되는 것이라고도 생각되나 본 발명에는 이러한 차이는 영향을 미치지 않으므로 데이터 길이의 취급에 대한 설명은 생략한다.
이하 본 발명의 실시예를 상세히 설명한다.
이하의 설명에서는 메로리를 액세스(access)하는 최소의 단위로서 비트를 기본으로 하고 있으나 물론 이 액세스(access)의 단위로 4비트 또는 8비트(바이트)로 할 수 있음은 물론이다.
제4도는 본 발명을 적용한 파이프라인 제어 데어터 처리장치의 일실시를 나타내는 블록도이다.
제4도에서의 약칭과 정식명칭은 다음과 같은 관계가 있다.
제4도에서 MM(301)은 상술한 가변장의 명령 및 이 명령이 취급하는 오페란드를 기억하는 것으로서 MCU(302)의 제어를 받어 BM1(303), BM2(304)의 사이에서 데이터의 수수(授受)를 행한다.
MCU(302)는 신호선(320)을 거쳐 어드레스를 MM(301)에 출력하고, 신호선(321)을 통하여 데이터의 송수(送受)를 행한다. 신호선(340)은 MCU(302)와 BM1(303), BM2(304)간의 어드레스버스, 신호선(341)은 데이터 버스이다. BM1(303)은 신호선(323)을 통하여 어드레스버스(340)에 어드레스를 송출하고, 신호선(324)을 통하여 데이터의 송수(送受)를 행한다.
BM2(304)는 신호선(342)를 통하여 어드레스 버스(340)에 어드레스를 송출하고, 신호선(343)을 통하여 데이터의 송수를 행한다. IFU(400)-실행장치(800)가 파이프라인 제어의 데이터 처리 장치를 구성하고 있다.
명령실행장치(IFU)(400)는 명령 어드레스를 신호선(327)에 의하여 BM1(303)에 송출하고, 독출한 명령어를 신호선(328)을 거쳐 수취하여 명령어의 선행 독출을 행한다.
신호선군(326)은 IFU(400)와 BM1(303)간의 제어신호의 인터페이스 신호선군이다.
명령디코우드장치(DU)(500)는 IFU(400)에 넣어진 명령을 수취하여 연산코우드 및 오페란드 지정자 단위로 디코우드 한다.
신호선군(329)은 DU(500)는 IFU(400)와의 인터페이스 신호선군이다.
어드레스 연산장치(AU)(600)는 DU(500)에서 디코우드 된 연산코우드 및 오페란드 지정자의 디코우드 정보에 따라 오페란드의 실행 어드레스를 계산하여 그 결과를 오페란드 실행장치(OFU)(700)에 출력한다. 신호선군(336)은 DU(500)와 (AU)(600)와의 인터페이스 신호선군이다.
OFU(700)는 (AU)(600)로부터 받은 오페란드의 어드레스를 신호선(330)을 거쳐 BM(304)에 송출하여 대응하는 오페판드를 신호선(335), 데이터버스(334), 신호선(331)을 통하여 수취한다. 신호선군(332)은 OFU(700)와 BM2(304)간의 제어신호의 인터페이프 신호선군이다.
BM2(304)는 OFU(700)로부터 받은 어드레스상의 데이터를 갖는 경우에는, 해당하는 데이터를 즉시 신호선(335)을 거쳐 데이터버스(334)에 출력하고, OFU(700)는 데이터버스(334)상의 데이터를 신호선(331)을 통하여 받아드린다. 해당하는 어드레스상의 데이터가 없을 경우에는 MCU(302)를 거쳐 MM(301)을 액세스(access)하고, 상기 어드레스상의 데이터를 독출하여 OFU(700)에 보내는 작용을 한다.
또한 고속 버퍼메모리의 구성, 기능은 공지의 것으로서, 예를들면「A Guide to the IBM System/370 Model 168, Copyright 1972, International Business Machines Corporation」에 제시되어 있다.
실행장치 (EU)(800)는 OFU(700)로부터 오페란드를 받아 명령을 실행한다. 신호선군(338)은 상기 오페란드의 수수(受授)를 하는 EU(800)와 OFU(700)와의 인터페이스 신호선군이다.
장치간 버스(410)는 IFU(700), DU(500), AU(600), EU(800)의 각 장치간에서 데이터의 송수신을 하기 위한 버스이고, IFU(400)와는 신호선(344)으로, DU(500)와는 신호선(345)으로, AU(600)와는 신호선(346)으로, EU(800)와는 신호선(347)으로 각각 접속되어 있다.
여기서, 각 장치는 거의 독립적으로 동작하여 오페란드간의 파이프라인 처리를 행한다.
이하, 제도에 나타낸 데이터처리 장치의 각각의 유니트에 대하여 그 구체적인 실시예를 제4(a)도-제4(e)도를 참조하여 설명한다.
제4(a)도는 IFU(400)의 구성을 나타낸 것으로서 여기서 사용되고 있는 약칭과 정식명칭은 다음과 같은 관계가 있다.
FP(404)는, BM1(303)으로부터 독출하는 명령의 어드레스를 나타낸다.
명령버퍼 IB(401)는 앞서 독출한 데이터를 출적해 둔다.
제어회로 IF-CONT(403)는 신호선(326)을 거쳐 BM1(303)으로의 메모리 엑세스의 제어. 신호선(21A)을 거쳐 BM(203)으로부터 독출한 데이터를 IB(401)에의 기입위치 및 기입허가 금지의 지시 및 12A를 거쳐 IB(401)내에 DU(500)에서 디코우드하는데 필요한 데이터가 정열되어 있는가로 나타낸다.
INC(406)는 FP(404)의 내용을 갱신하는 데 이용된다.
SEL(405)는 FP(404)에 세트되는 데어터를 선택한다.
SEL(405)의 출력(23A)에는, 명령의 선행 실행시에는 INC(406)의 출력(22A)이 출력되고, 분지(分岐) 명령 실행시의 분지선(分岐先) 어드레스 설정시에는 유니트간 버스(410)에 출력된 분지어드레스(344)가 출력된다.
ALIG(402)는 어드레스(11A)에 의하여 다음에 디코우드 해야 할 순으로 비트단위로 정열시켜 취출(取出)하는 작용을 한다. ALIG(402)는 예를들면 복수의 비트를 동시에 시프트 할 수 있는 멀티 비트 시프터로 구성된다.
14A는 ALIG(402)의 출력을 DU(500)에 출력하는 신호선으로서 적어도 1조(一組) 이상의 오페란드 지정자와 1조의 연산코우드 및 시프트 레지스터 지정모우드시의 오페란드 지정자를 포함하는 비트수의 신호선폭을 갖는다.
13A는 DU(500)에서 디코우드 하는데 필요한 데이터의 비트수를 통지하는 신호선이다.
이상이 IFU(400)를 구성하는 주요 요소이나 이외에도 여러가지 요소가 있음은 물론이다.
제4(b)도는 명령코우드 유니트(DU)(500)의 구체적인 구성을 나타낸 것으로서, 여기에서 사용되고 있는 약칭과 정식명칭을 다음과 같은 관계가 있다.
μ프고그램 어드레스 생성회로(ECSAG)(501)는 IFU(400)로부터 신호선(14A)을 통하여 인가되는 연산 코우드에 의하여 EU(800)에서 실행되는 선두 마이크로 프로그램 어드레스(10B)를 생성한다.
오페란드용 정보 메모리(DCS)(503)는 신호선(14A)으로부터 선택기(SEL)(502)를 거쳐 인가되는 연산코우드중의 오페란드에 관한 정보를 격납(格納)한다.
오페란드 지정자 디코우더(OS-DEC)(505)는 신호선(14A)중의 오페란드 지정자를 디코우드 한다.
제어데이터 생성회로(ACIG)(504)는 DCS(503)의 출력(20B)과 OD-DEC(505)로부터의 출력(23B)에 의하여 어드레스 계산유니트(AU)(301)에서 오페란드의 어드레스 계산을 하기 위한 제어데이터(18B)를 생성한다.
레지스터 지정모우드 검출수단(RD-DEC)(506)은 OS-DEC(505)에서 디코우드되는 오페란드 지정자(OS)에 연속되는 OS가 레지스터 지정 모우드인지 아닌지를 검출하는 것으로서 레개스터 지정모우드이고 또한 신호선(34B)에 의하여 2개의 오페란드 지정자의 동시 디코우드가 허가되었을 경우, 그 레지스터의 어드레스(12B)를 후술하는 AU(600)내의 레지스터(ARR)(610)에 세트함과 동시에 그 뜻을 신호선(26B)으로 D-CONT(509), ECSAG(501) 및 DBNC(507)에 통지한다.
디코우드 비트수 산출수단(DBNC)(507)은 OS-DEC(505)의 출력 (25B), RD-DEC(506)의 출력(26B) 및 DCS(503)의 출력(21B)을 수신하여 IB(401)로 부터 독출하여 그 사이클에서 디코우드 해야 할 비트수를 산출한다.
D-ALIG(508)는 OS-DEC(505)의 출력(29B), ALIG(402)의 출력(14A) 및 DCS(503)의 출력(21B)을 수신하여 디코우드하는 OS 중에 리터럴(Literal) 데이터, 변위부 또는 절대 어드레스 중 어느 것인가를 포함하는 경우, 이것을 취출하여 정열하는 동작을 행한다.
제어회로(D-CONT)(509)는 IF-CONT(403)로 부터의 신호(12A), DCS(503)의 출력(21B), RD-DEC(506)의 출력 (26B) 및 A-DEC(603)의 출력(15B)을 수신하여 DU(500) 전체의 동작을 제어한다.
디코우드 포인터(DP)(510)는 그 기계사이클에서 디코우드하는 선두 어드레스를 나타낸다.
선택기(SEL)(511)는 DP(510)에 세트하는 데이터를 선택한다. 분지(分岐) 명령 실행시에 분지선(分岐先) 어드레스 설정시에는 유니트간 버스(410)에 출력된 분지 어드레스가 신호선(345), SEL(511)을 거쳐 DP(510)에 세트된다.
INC(512)는 DP(510)의 내용(11A)에 그 사이클에서 디코우드한 명령의 비트수(17B)른 가산하여 다음의 기계사이클에서 디코우드 하는 선두의 어드레스(33B)를 출력한다.
디코우드 필요 비트수 산술수단(NBNC)(513)은 OS-DEC(505)의 출력(24B)과 DCS(503)의 출력 (21B), (34B)을 수신하여 그 사이클에서 디코우드 하기 위하여 IB(401)에 이미 정열되어 있지 않으면 안되는 비트수를 산출하고, 그 결과를 신호선(13A)을 통하여 IF-CONT(403)에 통지한다.
어드레스 계산용 프로그램 계수치 산출수단(TPCC)(514)은 DCS(503)의 출력(21B)과 OS-DEC(505)의 출력(24B)을 수신하여 프로그램 카운터 상대의 어드레싱 모우드에서의 프로그램 카운터의 값(이 때의 프로그램카운터의 값은 어드레스 계산을 하고저 하는 오페란드 지정자의 다음의 어드레스를 나타낸다)을 산출하여 그 결과를 신호선(16B)을 통하여 레지스터(TPC)(613)에 세트한다.
제4(c)는 제4도에 나타낸 어드레스 계산 유니트(AU)(600)의 구성을 나타내는 것으로 여기서 사용되고 있는 약칭과 정식명칭은 다음과 같은 관계가 있다.
제4(c)도에서 레지스터(AER)(601)는 제4(b)도의 ECSAG(501)에서 생성된 마이크로프로그램의 선두에드레스(10B)를 보관 유지한다.
레지스터(ACR)(602)는 제4(b)도의 ACIG(504)의 출력인 제어데이터(18B)를 보관 유지한다.
디코우더(A-DEC(603)는 ACR(602) 및 표식 (ACVF)(604)의 조합에 의하여 AU(600) 전체의 동작을 제어한다.
ACVF(604)는 AU(600)의 동작 개시를 지시하는 작용을 한다. ACVF(604)는 D-CONT(509)의 출력(14B)에 의하여 디코우드 결과가 AU(600)로 전달되었을 때 세트되고, 상기 디코우드 결과에 의거한 어두레스 계산이 종료될 때 A-DEC(603)의 출력(22C)에 의하여 리세트 된다.
레지스터(ARAR)(605)는 오페란드의 어드레스 계산을 할 때 찰조되는 레지스터의 어드레스(11B)를 기억한다.
레지스터파일(ARF)(606)은 오페란드의 어드레스를 계산할 때 찰조되는 레지스터군이고, ARAR(605)의 출력(23C)을 어드레스로하여 독출된 출력(24C)은 SEL(607), (608)에 공급된다.
선택기(SEL)(607), (608)는 연산기(A-ADR)(609)의 입력을 선택한다.
A-ADR(609)은 SEL(607), (608)에 의하여 선택된 신호에 의거하여 오페란드의 어드레스를 구하기 위한 연산을 행하여 결과를 신호선(14C)을 통하여 레지스터(MAR)(705)에 세트 또는 버스구동기(DV)(612)를 거쳐 유니트간 버스(410)에 출력한다.
레지스터(ARR)(610)는 오페란드지정자(OS)에 포함되는 레지스터의 어드레스(12B)를 보관 유지한다. 레지스터(DR)(611)는 오페란드 지정자(OS)에 포함되는 변위, 절대 어드레스 또는 리터럴 데이터(13B)를 유지하여 신호선(26C)을 거쳐 SEL(608)에 출력한다.
레지스터(TPC)(613)는 프로그램 카운터 상대 어드레싱 모우시의 프로그램 카운터의 값이 세트되는 레지스터이고, 프로그램 상대의 어드레스 계산시에 TPC(613)의 출력(25C)은 SEL(607)에 프로그램카운터의 값으로 출력된다.
제4d도는 제4도에 나타낸 오페란드 실행유니트(OFU)(700)의 구성을 나타낸 것으로 여기에서 사용되고 있는 약칭과 정식명칭은 다음과 같은 관계가 있다.
제4d도에서 레지스터(OER)(701)는 마이크로 프로그램의 선두 어드레스(10C)를 보관 유지한다.
레지스터(OFCR)(702)는 제4c도의 A-DEC(603)의 출력(11C)를 보관 유지한다.
표식(OFCVF)(703)은 OFU(700)의 동작 개시를 시지한다. OFCVF(703)는 어드레스 계산결과가 CFU(700)에 보내졌을때 A-DEC(603)의 출력(12C)에 의하여 세트되고, 상기 어드레스에 대한 CFU(700)의 동작이 끝날때 OF-DEC(704)의 출력(22D)에 의하여 리세트 된다.
디코우더(OF-DEC)(704)는 OFCR(702)의 출력(20D)과 CFCVF(703)의 출력(21D)과의 조합에 의하여 OFU(700) 전체의 동작을 제어한다. 또 오페란드가 정열되었을 때 실행유니트(800)에 대하여 이때의 신호(13D)를 출력한다.
레지스터(MAR)(705)는 오페란드의 어드레스(14C)를 보관유지하고, BM2(304)에 어드레스를 신호선(330)을 통하여 송출한다.
선택기(SEL)(706)는 레지스터(ORR)(707)에 세트할 데이터를 선택한다.
레지스터(ORR(707)는 SEL(706)을 거쳐 입력되는 오페란드(23D)를 격납한다.
데이터정열기(OALIG)(708)는 ORR(707)로부터 데이터(24D)를 취출하여 이를 다시 정열하여 데이터 서식(14)를 작성한다.
레지스터(ORR)(709)는 제4c도의 ARR(610)로부터 가해지는 레지스터의 어드레스(13C)를 유지한다. 제4e도는 제4도에 나타내는 실행유니트(EU)(800)의 제4e도는 EU(800)의 주요 구성요소만을 나탄낸 것으로서 이 외에도 여러 가지의 구성요소가 포함되는 본 발명의 이해에는 필요치 않으므로 생략했다.
제4e도에서 마이크로 프로그램 제어기(MPC)(801)는 마이크로 프로그램 메모리(ECS)(802)의 메모리 어드레스를 제어한다. 마이크로 프로그램 메모리(802)는 MPC(801)에 의하여 지정된 어드레스(21E)로부터 마이크로 프로그램(20E)을 취출하여 이것을 마이크로 명령 레지스터(MIR)(803)에 세트한다.
MIR(803)의 출력은 신호선(12D)을 거쳐 제4d도의 OF-DEC(704)에 신호선(22E)을 거쳐 MPC(801)에 신호선(23E), (24E)를 거쳐 후술하는 선택기(804), (814)에 각각 출력되고 있다. 이외에도 MIR(803)의 출력은 여러 가지 요소에 출력을 하나 본 발명의 이해에는 필요치 않으므로 생략한다.
선택기(804), (805)는 연산기(EALU)(806)의 입력데이터를 선택한다.
메모리 데이터 레지스터(MDR)(808)는 버스(25E)로 부터의 데이터(35E)를 일시적으로 보관하여 이 데이터(35E)를 신호선(333)이나 버스(334) 및 신호선(335)을 거쳐 BM2(304)에 출력한다.
범용 레지스터 파일(ERF)(812)은 EALU(806)가 사용되는 범용 레지스터군이고, SEL(814)의 출력(33E)을 어드레스로하여 독출된 데이터를 신호선(28E)을 거쳐 SEL(804), (805)에 출력한다.
레지스터(ERAR)(813)는, 제4d도의 ORR(709)로 부터 전송되는 레지스터 어드레스(11D)를 보관 유지한다.
선택기(SEL)(814)는 ERAR(813)의 출력(32E) 또는 MIR(803)의 출력(24E) 중 하나를 선택하여 ERF(812)에 신호선(33E)을 통하여 출력한다.
쌍방향 버스 구동기(BDV)(809)는 EU(800)의 내부 버스(25E)에 유니트간 버스(410)를 연결하여 EU(800)에서 생성된 데이터를 다른 유니트에 전송 또는 다른 유니트로부터의 전송데이터를 EU(800)에 취입하는 작용을 하다.
다음에 본 실시예의 명령처리 시이퀀의 예를 기본적인 명령인 경우에 대하여 설명한다.
IFU(400)는 FP(404)의 값을 어드레스하여 BM1(303)를 액세스하여 명령을 앞서 읽는다.
BM1(303)로부터 독출된 데이터가 보내져 왔을때 IB(401) 내에 상기 데이터만을 격납할 수 있는 공백영역이 존재할 경우에는 이를 취입하고, 존재치 않을 경우에는 이를 무시한다.
상기 공백 영역에 존재치 않는지의 판단은 FP(404)의 값(327)과 DP(510)로 부터의 출력(11A)을 근거로하여 IF-CONT(403)가 행한다.
본 실시예에서는 BM1(303)으로 부터의 데이터 독출폭 보다 많은 영역이 IB(401)에 존재할 경우에 독출한 데이터를 IB(401)내에 격납한다.
ALIG(402)는 DP(510)의 출력(11A)을 어드레스로하여 IB(401)의 해당하는 어드레스상의 위치를 선두로하여 어드레스순으로 정열하여 IB(401)내의 데이터를 취출한다.
본 실시예에서는 비트단위로 정열하여 취출하나 물론 명령의 기본장(長)이 바이트인 경우에는 바이트순으로 정열하는 것도 가능하다. 명령의 최초의 디코우드 사이클시에는 DP(501)는 연산코우드의 어드레스를 나타내고 있으므로 AGLIG(402)로 취출되는 선두 데이터는 연산 코우드 부분에 해당하고, 이에 계속되는 제1의 오페란드의 오페란드 지정자의 부분이 취출된다. 명령 도중의 디코우드 사이클에서는 DP(510)는 오페란드 지정자의 어드레스를 나타내는 경우도 있으며 이 경우에는 상기 어드레스에 대응하는 오페란드 지정자를 선두로 하는 일련의 데이터가 취출된다. ALIG(402)로부터의 출력(329)은 적어도 1조의 오페란드 지정자와 연산코우드 부분을 포함학 수 있을 만큼의 폭을 갖는다.
DU(500)는 ALIG(402)로부터 취출되는 명령을 디코우드 한다. DU(500)는 항상 ALIG(402)의 출력(329)의 디코우드를 행하나 디코우드 처리를 완료하기 위한 조건을 다음에 설명한다.
IB(401)내의 디코우드에 사용되어야 할 유효한 데이터 길이는 FP(404)와 DP(510)와의 차(差)에 의하여 얻어진다. FP(404)는 다음의 메모리액세스에 의하여 메모리로부터 독출화는 어드레스를 나타내고 있고, DP(510)는 다음에 디코우드 해야 할 메모리의 선두를 나타낸다.
따라서 DP(510)는 FP(404)에 대하여 일치하거나 또는 앞서있다.
그러므로 DP(510)와 FP(404)가 동등할 때 IB(401) 내에 유효한 데이터는 없다. DP(510)와 FP(404)가 동등하지 않을때 DP(510)로 부터 FP(404)를 뺀값이 유효한 데이터의 길이를 나타낸다. DU(500)는 디코우드 하기 위하여 필요한 길이를 NBNC(513)에 의하여 산출하여 신호선(13A)으로 IFU(400)내의 IF-CONT(403)에 통지한다. IF-CONT(403)는 신호선(13A)의 내용과 DP(510)와 FP(404)의 차를 비교하여 전자(前者)와 후자(後者)와 같거나 작을 경우 디코우드에 필요할 길이가 IB(401)내에 있다고 판단하여 신호선 (12A)으로 그뜻을 DU(400)내의 D-CONT(509)에 통지한다.
D-CONT(509)는 신호선(12A)을 거쳐 디코우드에 필요한 바이트가 IB(401)내에 있다고 하는 통지를 받으며 또 신호선(15B)으로 AU(600)가 디코우드 결과를 받아드릴 수 있는 상태임을 통지받았을 경우에 DU(500)에서 디코우드한 결과를 AU(600)에 보내고 그 디코우드 사이클의 처리를 완료시킨다. 디코우드에 필요한 데이터가 IB(401)에 정돈되어 있지 않을 경우 또는 AU(600)가 디코우드 결과를 받아드릴 수 있는 상태가 아닌 경우에는 그 디코우드 사이클의 처리를 무효화 하고, 다음 사이클에다 다시 동일한 처리를 행하도록 D-CONT(509)를 제어한다.
DBNC(507)의 출력(17B)을 (1)식으로 표시된다.
17B=α+β+γ ..................(1)
NBNC(513)의 출력 13A는 (2)식으로 표시된다.
13A=α+β+δ ..................(2)
여기서 α,β는
(i) DP(510)가 연산코우드의 어드레스를 나타내는 경우
α=연사코우드의 비트수
β=이 연산코우드에 계속되는 선두 오페란드 지정자의 비트수
(ii) DP(510)가 오페란드 지정자의 어드례스를 나타내는 경우
α=0
β=이 오페란드 지정자의 비트수
γ는
(i) 2개의 오페란드 지정자를 동시에 디코우드 하는 경우.
γ=레지스터 지정모우드의 오페란드 지정자의 비트수
(ii) 1개의 오페란드 지정자만 디코우드하는 경우
γ=0
δ는,
(i) 두개의 오페란드 지정자의 동시 디코우드가 허가되었을 경우(DCS (503)의 출력(34B)에 의하여 지정된다)
δ=레지스터 지정모우드의 오페란드 지정자의 비트수
(ii) 두개의 오페란드 지정자의 동시 디코우드가 허가되지 않했을 경우
δ=0
명령의 최초의 디코우드 사이클에서는 ALIG(402)로 부터 출력되는 선두부분은 연산코우드에 해당한다.
따라서 이 선두부분은 DCS(503)의 어드레스로서 DCS(503)를 독출하는데 사용된다.
DCS(503)내에는 각 명령의 하나의 오페란드 지정자에 1단어씩 어드레스가 할당되어 있다. DCS(503)의 1단어는 제5도에 도시한 바와 같이 각 명령의 연산코우드로 규정되는 복수개의 오페란드 지정자내의 한개의 오페란드 지정자의 액세스의 구별(독출, 기입 또는 독출 및 기입)을 나타내는 피일드(AD라 약칭함)와, 데이터의 길이를 나타내는 피일드(DL라 약칭함)와, 상기 오페란드 지정자에 계속되는 오페란드 지정자가 있는 경우에는 DCS(503)내의 해당 오페란드 지정자에 대응하는 어드레스를 나타내기 위한 피일드(JA라 약칭함)와, 명령의 최종의 오페란드 지정자인 경우에는 이를 나타내는 피일드(E라 약칭함)와, 두개의 오페란드 지정자의 동시 디코우드의 허가를 나타내는 피일드(RD라 약칭함)로 형성된다. 물론 이외에도 몇개의 피일드를 포함하고 있으나 본 발명에는 직접 관계되지 않으므로 생략한다. 각 명령은 해당 명령이 갖는 오페란드 지정자의 수만큼 DCS(503)내에 단어수가 할당되어 있으며 예를들면 3 오페란드의 명령에서는 3 단어가 할당되어 있다.
물론 명령간에서 공용해도 지장이 없을 경우에는 다른 명령간에서도 동일한 어드레스를 가함으로써 DCS(503)의 용량 감축을 도모하는 것도 가능해진다.
어떤 명령의 최초의 디코우드 사이클(t1)에서는 연산코우드 DCS(503)의 어드레스가 되며 이 연산 코우드에서 규정되는 제1오페란드의 정보와, 제2오페란드의 DCS(503)상의 어드레스(JA), 기타의 정보가 DCS(503)로부터 독출된다. 이때 제1오페란드 지정자는 ALIG(402)에 의하여 IB(401)로부터 취출되어 OS-DEC(505)에서 디코우드 된다.
상기 오페란드 지정자 내의 변위 절대 어드레스 또는 리터럴 데이터가 포함될 경우에는 D-ALIG(508)가 이것들을 취출하여 데이터 표식을 정열하여 DR(611)에 격납한다.
DU(500)는 상술한 순서로 디코우드한 결과를 AU(600)의 각 레지스터에 세트함과 동시에 ACVF(604)에 세트하여 상기 디코우드 결과에 따라 상기 오페란드 지정자로 표시되는 오페란드의 어드레스 계산을 개시시킨다. 또 이 사이클에서 디코우드한 명령의 비트수(연산코우드와 제1오페란드의 오페란드 지정자를 구성하는 비트수)를 DBNC(507)에서 산출하여 그 값을 INC(512)에서 DP(510)의 값에 가산하여 DP(510)의 내용을 갱신한다.
상기 명령이 2개 이상의 오페란드 지정자를 갖는 명령일 경우에는 상기 명령의 최초의 디코우드사이클(t1)의 다음 사이클(t2)에서 t1사이클에서 DCS(503)로 독출된 정보중의 JA피일드를 어드레스로하여 DCS(503)로부터 연산코우드로 규정된 제2오페란드의 정보가 독출된다. 동시에 제2오페란드 지정자가 ALIG(402)에 의하여 IB(401)로부터 취출되어 OS-DEC(505)에서 상기 제1오페란드의 오페란드 지정자의 디코우드와 동일한 순서에 따라 디코우드 된다.
이때 AU(310)가 상기 제1오페란드의 오페란드 지정자의 디코우드 결과를 받아 그 오페란드의 계산을 종료하고, 다음의 오페란드의 어드레스 계산의 받아들일 수 있는 상태가 되어 있으면 DU(500)는 상기 제2오페란드의 오페란드 지정자의 디코우드 결과를 AU(600)의 각 레지스터에 세트함과 동시에 ACVF(604)를 세트하여 AU(600)에서 상기 제2페란드의 오페란드 지정자로 지지되는 오페란드의 어드레스 계산을 개시시키고, 또 그 사이클에서 디코우드 한 명령의 비트수(제2오페란드의 오페란드 지정자를 구성하는 비트수)를 DBNC(507)에서 산출하여 DP(510)의 값에 가산하여 DP(510)의 내용을 갱신한다.
이상의 설명으로 명백한 바와 같이 DU(500)는 1기계 사이클마다 1개의 오페란드 지정자의 디코우드를 행하여 디코우드 결과를 AU(600)내의 레지스터에 세트하여 AU(600)에 그 사이클에서 디코우드한 결과에 의거하는 오페란드의 어드레스 계산의 명령을 행하는 동작과 함께 명령의 최초의 디코우드 사이클에서는 연산코우드를 DCS(503)의 어드레스로 취입하고, 그 후의 사이클에서 이 연산코우드로 규정되는 정보 취출을 행하게 한다. 또 연산코우드로부터 ECSAG(501)에 의하여 마이크로 프로그램의 선두 어드레스를 구하여 AER(601)에 세트한다.
AU(600)는 DU(500)로부터 어떤 오페란드 지정자의 AU(600)내의 레지스터에 지정되어 ACVF(604)가 세트됐을 때 이 디코우드 결과에 따라 오페란드의 어드레스 계산을 행하여 산출한 오페란드의 어드레스를 OFU(700)내의 MAR(705)에 OFU(700)의 동작제어 정보를 OFCR(702)에 각각 설정하고, OFCVF(703)를 세트하여 OFU(700)에서 MAR(705)에 설정된 어드레스상의 메모리 액세스를 개시시킨다.
어떤 오페란드의 오페란드 지정자의 어드레스 계산이 끝나면 DU(500)로부터 상기 오페란드 지정자 다음에 계속되는 오페란드 지정자를 받아들여 AU(600)는 이 오페란드 지정자의 어드레스 계산을 행한다. 이와같이 AU(600)는 1개의 오페란드 지정자 단위로 그 오페란드 지정자로 지정되는 오페란드의 어드레스 계산을 순차적으로 행하나 반드시 1기계 사이클에서 1개의 오페란드 지정자의 어드레스 계산이 완료한다고는 한정되지 않고 복수의 기계사이클을 소비하는 경우도 있는 것은 물론이다. 또 어떤 오페란드 지정자의 어드레스 계산완료 후 다음의 어드레스를 계산한다. 오페란드 지정자가 상기 오페란드 지정자에 속하는 명령과 동일한 명령에 속할 필요는 없다.
AU(600)는 또 명령의선두의(제1의) 오페란드 지정자의 어드레스 계산 종료후에 AER(601)내에 격납되어 있는 상기 명령의 마이크로 프로그램 선두 어드레스를 OFU(700)의 OER(701)에 전송한다.
AU(600)에서 계산한 어드레스를 OFU(700)에 전송하기 위해서는 OFU(700)가 AU(600)로부터의 데이터를 받아들일 수 있는 상태가 되어있지 않으면 않된다.
OFU(700)는 신호선 (15C)에 의하여 OFU(700)가 AU(600)로부터의 데이터를 받아드릴 수 있는 상태가 되어 있는지 여부를 통지한다. AU(600)는 OFU(700)에 데이터를 전송하는 사이클에서 상기 신호선(15C)을 점검하여 OFU(700)가 반아드릴 수 있는 상태에 있다고 판단되었을 경우에만 AU(600)에서 생성한 데이터를 OFU(700)의 각종 레지스터에 세트한다. OFU(700)가 데이터를 받아드릴 수 없는 상태인 경우에는 AU(600)는 그 사이클의 처리를 중단하고 다음 사이클에서 다시 동일한 처리를 행한다.
OFU(700)는 AU(600)로부터 어떤 어페란드 지정자의 어드레스 계산결과가 MAR(705)에 OFU(700)의 동작제어정보가 OFCR(702)에, 각각 세트되고 OFCVF(703)가 세트됐을 때 OFU(700)의 동작이 개시된다.
OFU(700)의 동작은 주로 AU(600)로부터 보내온 어드레스를 기초로하여 메모리 액세스하여 오페란드를 실행하게 되나 이미 AU(600)에서 오페란드의 준비가 완료하는 어드레싱 모우드(예를 들면 즉시(immediate)모우드, 리터럴(Literal) 모우드시)에서는 이오페란드(MAR)(705)에 보내진다)를 SEL(706)를 거쳐 OBR(707)에 세트될 뿐으로 메모리 액세스는 하지 않는다.
메모리 액세스를 행하는 모우드인 경우에는 신호선(332)을 거쳐 BM2(304)를 액세스한다. BM2(304)로 부터 독출된 데이터는 신호선(331), SEL(706)을 거쳐 OBR(707)에 격납된다. OBR에 격납된 오페란드는 OALIG(708)에 의하여 표식(format)을 정열하여 EU(800)에 전송된다.
명령의 선두(제1)의 오페란드 지정자의 메모리 액세스 또는 전송시에는 OER(701)에 격납된 마이크로프로그램 선두 어드레스를 MPC(801)에 전송한다.
OFU(700)에서 준비한 오페란드를 OPR(707)에 세트하기 위해서는 OBR(707)에 상기 오페란드 이전의 데이터가 없는 상태 즉 공백상태이여야만 된다.
EU(800)에는 신호선(12D)에 의하여 OBR(707)에 있는 오페란드를 사용했는지 여부를 통지한다. OFU(700)는 OBR(707)에 오페란드를 세트하는 사이클에서 OBR(707)이 오페란드를 받아드릴 수 있는 상태가 되어 있는지의 여부를 판정하여 받아드릴 수 있는 경우에는 오페란드를 세트하고, 받아드릴 수 없는 경우에는 OFU(700)는 그 사이클의 처리를 중지하여 다음 사이클에서 다시 동일한 처리를 행한다.
상술한 바와같이 DU(500)에서 디코우드된 명령에 관한 정보(연산코우드 및 오페란드 지정자)는 AU(600), OFU(700)를 순차적으로 경유하여 EU(800)에 전송된다.
EU(80)0는 MPC(801)에 보낸 마이크로 프로그램 선두 에드레스로부터 ECS(802)를 액세스하여 마이크로명령을 독출하여 명령실행을 개시한다. 오페란드 지정자로 규정되는 오페란드는 OBR(707) 또는 레지스터어드레스가 되어 ERAR(813)로부터 넘겨받는다. 단 상기 오페란드가 최종신호(destination)가 되는 경우에는 이 오페란드의 어드레스가 MAR(705)에 설정된다.
EU(800)는 OFU(700)로부터 받은 오페란드를 사용하여 연산을 행한다. 연산결과의 격납장소가 레지스터인 경우에는 버스(25E), 신호선(29E)을 통하여 ERF(812)에 격납한다.
상기 연산결과의 격납장소가 메모리인 경우에는 상기 연산결과를 MDR(808)에 일시적으로 격납하여 신호선(333)을 거쳐 BM2(304)에 출력한다. OFU(700)로부터 받은 오페란드의 사용을 완료했을 때에는 그 뜻을 신호선(12D)를 거쳐 OFU(700)에 통지하여 다음 오페란드를 받을 수 있도록 한다.
제6도는 명령의 흐름과 이에 따른 명령의 처리과정을 나타내는 스테이지 플로우(stageflow)를 나타내는 도면으로서, 3개의 명령 I(1),I(2),I(3)을 가하고 있다. 명령 I(1)-I(3)은 모두 두개의 오페란드를 갖는 명령으로 가정한다. 처음 사이클(t1)에서 명령 I(1)의 명령어의 독출(IF(1))이 행해진다. 다음 사이클(t2)에서는 연산코우드 및 제1오페란드의 오페란드 지정자를 디코우드 한다.
(D(1)1), 다음 사이클(t3)에서는 상기 디코우드 결과에 따라 제1오페란드의 실효 어드레스 계산을 행하고 (A(1)1), 동시에 제2오페란드의 오페란드 지정자의 디코우드를 행한다.
(D(1)2), 다음 사이클(t4)에서는 제1오페란드의 실행을 행함(OF(1)1)과 동시에 제2오페란드의 실효 어드레스 계산을 행한다(A(1)2). 또 동일 사이클 중에 명령 I(2)의 연산코우드 및 제1오페란드의 오페란드 지정자의 디코우드를 행한다(D) 2)1).
다음 사이클(t5)에서는 명령I(1)의 제2오페란드의 실행을 행함과(OF(1)2)동시에 명령 I(2)의 제1오페란드의 실행 어드레스 계산(A(2)1), 및 제2오페란드의 오페란드 지정자의 디코우드를 행한다(D(2)2). 다음 사이클(t6)에서는 명령I(1)의 실행을 행함(E(1))과 동시에 명령 I(2)의 제1오페란드의 실행(OF(2)1), 제2오페란드의 실효 어드레스 계산(A(2)2) 및 명령 I(3)의 연산코우드 및 제1오페란드의 오페란드지정자의 디코우드(D(3)1)를 행한다. 이하 t7-t11의 각 사이클도 같은 과정을 거쳐 처리된다.
제6도에서 점선으로 표신한 명령 I(2),I(3)의 실행(IF(2),IF(3))은 IB(401)내의 무효인 영역이 어떤 정해진 비트수 이상이 될 경우에 명령의 선행독출을 행하는 것을 나타내고 있다.
또한 제6도에서는 각 오페란드의 실행 어드레스 계산 사이클, 오페란스 실행 사이클이 1사이클에서 종료하는 예를 나타냈으나 어드레싱 차이에 따라서는 1사이클에서 실행 어드레스 계산이 종료되지 않는 경우나 메모리를 2회 참조함으로써 오페란드가 얻어지는 어드레싱 모우드(Indirect mode) 제1회째의 메모리 참조로 오페란드의 어드레스를 얻는 어드레싱 모우드 등에 의하여 명령의 흐름과 처리 과정은 여러가지로 달라진다.
제7도는 3개의 오페란드를 갖는 명령(3오페란드 명령)이 연속적으로 실행되는 경우의 명령의 흐름과 이에 따른 명령의 처리과정을 나타내는 스테이지 플로우를 나타내는 도면이다.
제7도에서도 제6도와 마찬가지로 3개의 명령 I(1),I(2),I(3)을 갖고 있다.
각 사이클에서의 명령의 처리는 제6도에 설명한 오페란드 명령이 연속되는 경우와 마찬가지이다. 단, 2오페란드 명령에서는 일반적으로 제3오페란드는 소오스 오페란드가 아니고 최종(destination) 오페란드가 되기 때문에 제3오페란드의 실행을 행해지지 않다. 3개 이상의 오페란드를 갖는 명령의 스테이지 풀로우에 대해서도 제6도 및 제7도에서 설명한 제2오페란드 명령 및 제3오페란드 명령의 스테이지 풀로우와 본질적으로 차이는 없다. 또 오페란드의 수가 다른 명령이 여러 가지 혼합되어 있드라도 아무런 지장이 없다.
이상 2오페란드 명령 및 3오페란드 명령의 예에 대하여 설명했으나 1오페란드 명령 및 4개 이상의 오페란드를 갖는 명령에 있어서도 제6도, 제7도에 도시된 스테이지 풀로우와 본질적으로 차이가 없음은 물론이다.
다음에 두개 이상의 오페란드 지정자를 동시에 디코우드 할 수 있도록 허가되고 있는 명령에 있어서의 2개의 오페란드 지정자의 동시 디코우드 처리와 그 다음의 처리에 대하여 설명한다.
2개의 오페란드 지정자의 동시처리는 상술한 바와 같이 2개의 오페란드 지정자의 동시 디코우드가 허가되고 있는 명령에 한하여 행하는 것으로 하나 물론 이것은 모든 명령에 대해서도 행할 수 있는 것도 가능한 것이다.
2개의 오페란드 지정자의 동시 처리는 명령에 포함되는 오페란드 지정자의 각 디코우드 사이클 내에서 최종의 오페란드 지정자의 바로 앞의 오페란드 지정자를 디코우드 할 때 최종의 오페란드 지정자의 어드레싱 모우드가 레지스터 지정인 경우에 행해지고 레지스터 지정 이외의 모우드에서는 행해지지 않으며, 이때에는 최종의 오페란드 지정자의 바로 앞의 오페란드 지정자만의 디코우드가 행해진다.
예로서 2개의 오페란드 지정자를 갖는 가산명령에 대하여 설명한다. 이 가산명령은 제1오페란드와 제2오페란드의 내용을 가산하여 그 결과를 제2오페란드의 위치에 격납하는 처리를 행한다. 그러므로 제1오페란드는 독출 오페란드이고, 제2오페란드는 독출 및 기입 오페란드이다.
따라서 상기 가산명령을 위한 DCS(503)의 패턴은 제8도에 도시하는 바와 같이 된다. 즉 DCS(503)의 연산코우드의 값에 대응하는 어드레스상에 제1오페란드의 정보와, 제2오페란드의 DCS(503)상의 어드레스가 포함되어 있고, 또한 제1오페란드가 최종 오페란드의 바로 앞의 오페란드이므로 DCS(503)의 피일드 RG가 "1"(2개의 OS에 동시처리를 허가함을 나타냄)이 되는 형식을 취한다.
제2오페란드의 DCS(503)의 어드레스 상에는 제2오페란드 정보와, 제2오페란드가 명령의 최종 오페란드임을 나타내는 피일드(E)가 "1"이 되는 형식을 취한다.
제9도는 동일형식의 오페란드 지정자를 갖는 가산명령이 연속 실행되는 경우로서 제2오페란드가 레지스터 지정인 경우의 스테이지 플로우를 나타낸다.
제2오페란드가 레지스터 지정이 아닌 경우에는 제9도에 나타낸 바와 같은 스테이지 플로우로는 되지 않고, 제6도에 나타내는 스테이지 플로우가 된다.
이하 제9도를 참조하여 이때의 명령처리 과정을 설명한다.
처음의 사이클(t1)에서 명령I(1)을 포함하는 어드세스상의 데이터(명령)의 독출(IF(1))이 행해진다.
다음의 사이클(t2)에서는 명령 I(1)의 연산 코우드 및 제1오페란드의 OS를 디코우드하나 이때 DCS(503)의 피일드(RD)가 "1"이고, 또한 DU(500)내의 RD-DEC(506)에 의하여 상기 제1오페란드의 OS의 계속되는 제2오페란드의 OS의 어드레싱 모우드가 레지스터 지정임이 검출되면, RD-DEC(506)는 상기 제2오페란드의 OS로부터 레지스터 어드레스를 취출하여 AU(600)내의 ARR(610)에 세트하므로서 두개의 OS를 동시에 디코우드(D1및 D2 (1))한다.
다음 사이클(t3)에서는 AU(600)는 상기 디코우드 결과에 따라 명령I(1)의 제1오페란드의 어드레스 계산(Al(1))을 행하여 결과를 OFU(700)에 전송함과 동시에 명령I(1)의 제2오페란드의 레지스터 어드레스를 OFU(700)내의 OPR(709)에 전송한다. 같은 (t3)사이클에서 DU(500)는 명령 I(2)에 대하여 t2사이클과 같은 디코우드(D1및 D2 (2))를 행한다.
다음 사이클(t4)에서는 OFU(700)는 명령 I(1)의 제1오페란드의 실행(OF1(1))을 행함과 동시에 명령 I(1)의 제2오페란드의 레지스터 어드레스를 EU(800)에 전송한다. 같은(t4) 사이클에서 AU(600)는 명령 I(2)의 제1오페란드의 어드레스 계산(A1(2))를 하여 결과를 OFU(700)에 전송함과 동시에 명령 I(2)의 제2오페란드의 레지스터 어드레스를 OFU(700)에 전송한다. 마찬가지 (t4)사이클에서 DU(500)는 명령 I(3)에 대하여 (t2)의 사이클에서 명령 I(1)을 디코우드한 경우와 동일한 디코우드(D1 및 D2(3))을 행한다. 다음 사이클(t5)에서는 EU(800)는 OFU(700)로부터의 명령 I(1)의 제 1오페란드와 명령 I(1)의 제2오페란드의 레지스터 어드레스를 받아 명령 I(1)의 실행(E(1))을 행한다. 역시(t5)사이클에서 OFU(700)는 명령 I(2)의 제1오페란드의 실행(OF1(2))을 행함과 동시에 명령 I(2)의 제2오페란드의 레지스터 어드레스를 EU(800)에 전송한다. 동일(t5)사이클에서 (AU(600)는 명령 I(3)의 제1오페란드 어드레스 계산(A1(3))을 하여 결과를 OFU(700)에 전송함과 동시에 명령 I(3)의 제2오페란드의 레지스터 어드레스를 OFU(700)에 전송한다.
이하 (t6),(t7) 사이클의 각 사이클도 동일과정을 거쳐 행해진다.
또한 제9도에서는 각 오페란드의 실효 어드레스 계산사이클, 오페란드 실행사이클이 1사이클에서 종료되는 예를 나타냈으나, 어드레싱의 차이에 따라 1사이클에서 실효 어드레스 계산이 종료되지 않은 경우나, 오페란드의 실행시에 BM2(304)에 데이터가 존재하지 않는 경우에 MM(301)까지 데이터를 독출해 갈 경우등은 복수의 사이클을 소비하지 아니할 수 없게 된다. 따라서 이와 같은 경우에는 명령의 흐름과 처리과정은 여러 형태가 된다.
제10도는 3개의 오페란드를 갖는 동일형식의 명령이 연속되어 실행되는 경우의 명령의 흐름과 이에 따르는 명령의 처리과정을 나타내는 스테이지 플로우를 나타낸 도면이다.
제10도에서도 제9도와 마찬가지로 3개의 명령 I(1),I(2),I(3)을 갖고 있다. 각 명령은 제9도와 마찬가지로 최종 오페란드가 레지스터 지정모우드일 때 최종 오페란드의 바로 앞의 오페란드의 디코우드 사이클시에 2개의 오페란드 지정자를 동시에 디코우드 하는 것을 허가받은 명령이다.
제10도는 최종 오페란드(제3오페란드가 이에 해당한다)가 레지스터 지정인 어드레싱 모우드인 때의 스테이지 플로우를 나타낸다. 제3오페란드가 레지스터 지정 이외의 어드레싱 모우드인 경우에는 제10도에 나타내는 바와 같은 스테이지 플로우로는 되지 않고 제7도에 나타내는 바와 같은 스테이지 플로우가 된다.
제9도에 나타내는 그 오페란드 명령인 경우 제1오페란드의 오페란드 지정자를 디코우드하는 사이클에서 2개의 오페란드 지정자의 디코우드를 했으나 제10도에 나타낸 3오페란드의 명령인 경우에는 제2오페란드의 오페란드 지정자를 디코우드하는 사이클에서 2개의 오페란드 지정자의 디코우드를 하는 점이 다르다. 이것은 명령의 최종 오페란드의 바로 앞의 오페란드로서 2오페란드 명령에서는 제1오페란드가 해당되며 3오페란드 령명에서는 제2오페란드가 해당되기 때문에 생기는 차이이고 본질적으로는 차이가 없음은 물론이다.
이상 제9도 및 제10도에서 2오페란드 명령과, 3오페란드 명령의 예에 대하여 설명했으나 4개 이상의 오페란드를 갖는 명령에 있어서도 그 명령의 최종 오페란드가 레지스터 지정인 어드레싱 모우드일 때 그 직전의 오페란드의 오페란드 지정자를 디코우드 하는 사이클에서 2개의 오페란드 지정자의 동시 디코우드가 가능함은 물론이다. 또 오페란드의 수가 다른 명령이 여러가지가 혼합되어 있어도 아무런 지장은 없다.
Claims (1)
- 오페란드의 어드레싱 모우드를 나타내는 오페란드 지정자가 작동을 확인하는 명령 코오드 부분으로 부터 독립되어 있는 가변장인 명령을 실행하는 데이터 처리장치에 있어서, 기억 수단으로부터 적어도 한개의 명령 선행 실행을 행하여, 보관유지하는 명령 선행 실행 수단과, 1기계 사이클에 적어도 한개의 오페란드 지정자를 상기 명령 선행 실행수단으로부터 정렬시켜 출력하는 명령 정열수단을 포함하는 명령 실행수단이 명령 및 오페란드를 축적하는 기억수단에 접속되고, 명령 정열 수단에 의하여 정열되어 출력된 명령에 포함되는 오페란드 지정자를 확인함과 동시에 그 명령의 수를 확인하는 명령코오드 디코우드 수단과, 상기 명령 수단에 의하여 정열되어 출력된 오페란드 지정자를 그때의 기계 사이클에서 디코우드 하는 오페란드 지정자 디코우드 수단이 상과 명령 실행수단에 접촉되고, 바로 앞의 기계사이클에서 디코우드 수단에 의하여 디코우드 된 명령코오드 및 오페란드 지정자의 디코우드 정보에 따라 해당 오페란드의 실행 어드레스를 계산하고 이에 의거하여 명령수단, 디코우드 수단 및 어드레스 계산수단이 각각 오페란드 지정자 단위로 처리하는 어드레스 계산수단이 상기 디코우드 수단에 접속된 것을 특징으로 하는 오페란드간 파이프라인 제어를 행하는 데이타 처리장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP65267 | 1980-05-19 | ||
JP6526780A JPS56162153A (en) | 1980-05-19 | 1980-05-19 | Pipeline control system |
JP13983580A JPS5764848A (en) | 1980-10-08 | 1980-10-08 | Processor of pipeline control data |
JP139835 | 1980-10-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR830006741A KR830006741A (ko) | 1983-10-06 |
KR850001015B1 true KR850001015B1 (ko) | 1985-07-18 |
Family
ID=26406393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019810001672A KR850001015B1 (ko) | 1980-05-19 | 1981-05-15 | 오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US4454578A (ko) |
KR (1) | KR850001015B1 (ko) |
CA (1) | CA1174370A (ko) |
DE (1) | DE3119741C2 (ko) |
GB (1) | GB2077965B (ko) |
Families Citing this family (96)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58129550A (ja) * | 1982-01-27 | 1983-08-02 | Toshiba Corp | 演算制御装置 |
JPS58146941A (ja) * | 1982-02-26 | 1983-09-01 | Hitachi Ltd | マイクロプログラム制御デ−タ処理装置 |
JPS58149548A (ja) * | 1982-03-02 | 1983-09-05 | Hitachi Ltd | メモリ制御方式 |
JPS592143A (ja) * | 1982-06-29 | 1984-01-07 | Hitachi Ltd | 情報処理装置 |
US4858176A (en) * | 1982-10-13 | 1989-08-15 | Honeywell Bull Inc. | Distributor of machine words between units of a central processor |
JPS59231652A (ja) * | 1983-06-13 | 1984-12-26 | Hitachi Ltd | メモリアクセス・オ−バラツプ検出方式 |
WO1985000453A1 (en) * | 1983-07-11 | 1985-01-31 | Prime Computer, Inc. | Data processing system |
US4800486A (en) * | 1983-09-29 | 1989-01-24 | Tandem Computers Incorporated | Multiple data patch CPU architecture |
JPS60107141A (ja) * | 1983-11-16 | 1985-06-12 | Fujitsu Ltd | プランチ制御方式 |
JPS60120439A (ja) * | 1983-12-05 | 1985-06-27 | Nec Corp | 演算処理装置 |
AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
US4742451A (en) * | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
US4763255A (en) * | 1984-10-31 | 1988-08-09 | International Business Machines Corporation | Method for generating short form instructions in an optimizing compiler |
JPH0752390B2 (ja) * | 1985-05-07 | 1995-06-05 | 株式会社日立製作所 | 命令処理装置 |
JP2554050B2 (ja) * | 1986-02-26 | 1996-11-13 | 株式会社日立製作所 | デ−タ処理方法 |
US5187782A (en) * | 1986-02-26 | 1993-02-16 | Hitachi, Ltd. | Data processing system |
DE3751503T2 (de) * | 1986-03-26 | 1996-05-09 | Hitachi Ltd | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. |
JPS62226231A (ja) * | 1986-03-27 | 1987-10-05 | Toshiba Corp | プロセツサ |
JPS62226232A (ja) * | 1986-03-28 | 1987-10-05 | Toshiba Corp | 分岐先アドレス算出回路 |
US4890218A (en) * | 1986-07-02 | 1989-12-26 | Raytheon Company | Variable length instruction decoding apparatus having cross coupled first and second microengines |
US4811214A (en) * | 1986-11-14 | 1989-03-07 | Princeton University | Multinode reconfigurable pipeline computer |
US5115497A (en) * | 1987-10-01 | 1992-05-19 | California Institute Of Technology | Optically intraconnected computer employing dynamically reconfigurable holographic optical element |
US4882673A (en) * | 1987-10-02 | 1989-11-21 | Advanced Micro Devices, Inc. | Method and apparatus for testing an integrated circuit including a microprocessor and an instruction cache |
JP2752076B2 (ja) * | 1988-02-23 | 1998-05-18 | 株式会社東芝 | プログラマブル・コントローラ |
US4974146A (en) * | 1988-05-06 | 1990-11-27 | Science Applications International Corporation | Array processor |
US5031096A (en) * | 1988-06-30 | 1991-07-09 | International Business Machines Corporation | Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor |
US5101341A (en) * | 1988-08-25 | 1992-03-31 | Edgcore Technology, Inc. | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO |
US5269008A (en) * | 1988-10-04 | 1993-12-07 | Mitsubishi Denki Kabushiki Kaisha | Method and apparatus for pre-processing the source of a pop instruction in a pipeline computer |
JPH0769806B2 (ja) * | 1988-10-14 | 1995-07-31 | 三菱電機株式会社 | データ処理装置 |
US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
US5099421A (en) * | 1988-12-30 | 1992-03-24 | International Business Machine Corporation | Variable length pipe operations sequencing |
EP0461257B1 (en) * | 1989-01-17 | 1997-04-23 | Fujitsu Limited | Microprocessor sequencer for controlling the decoding of varable length instructions |
US5148528A (en) * | 1989-02-03 | 1992-09-15 | Digital Equipment Corporation | Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length |
US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US5167026A (en) * | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
US5019965A (en) * | 1989-02-03 | 1991-05-28 | Digital Equipment Corporation | Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width |
US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
US5142633A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Preprocessing implied specifiers in a pipelined processor |
US5109495A (en) * | 1989-02-03 | 1992-04-28 | Digital Equipment Corp. | Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor |
KR0163179B1 (ko) * | 1989-03-31 | 1999-01-15 | 미다 가쓰시게 | 데이타 프로세서 |
GB2230116B (en) * | 1989-04-07 | 1993-02-17 | Intel Corp | An improvement for pipelined decoding of instructions in a pipelined processor |
JP2505887B2 (ja) * | 1989-07-14 | 1996-06-12 | 富士通株式会社 | 命令処理システム |
DE69032897T2 (de) * | 1989-08-28 | 1999-08-26 | Nec Corp | Mikroprozessor zum verbesserten Startvorgang der Befehlsausführung nach der Ausführung eines bedingten Verzweigungsbefehls |
JPH0395629A (ja) * | 1989-09-08 | 1991-04-22 | Fujitsu Ltd | データ処理装置 |
CA2037708C (en) * | 1990-05-04 | 1998-01-20 | Richard J. Eickemeyer | General purpose compound apparatus for instruction-level parallel processors |
JP2646855B2 (ja) * | 1991-01-21 | 1997-08-27 | 三菱電機株式会社 | データ処理装置 |
JPH04260929A (ja) * | 1991-01-21 | 1992-09-16 | Mitsubishi Electric Corp | データ処理装置 |
JP2847974B2 (ja) * | 1991-01-21 | 1999-01-20 | 三菱電機株式会社 | データ処理装置 |
JP2668456B2 (ja) * | 1991-01-22 | 1997-10-27 | 三菱電機株式会社 | ビット検索回路及びそれを備えたデータ処理装置 |
JP2669158B2 (ja) * | 1991-01-22 | 1997-10-27 | 三菱電機株式会社 | データ処理装置 |
JP2970821B2 (ja) * | 1991-08-21 | 1999-11-02 | 松下電器産業株式会社 | データ処理装置 |
WO1993019416A1 (en) * | 1992-03-25 | 1993-09-30 | Zilog, Inc. | Fast instruction decoding in a pipeline processor |
US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
US5371864A (en) * | 1992-04-09 | 1994-12-06 | International Business Machines Corporation | Apparatus for concurrent multiple instruction decode in variable length instruction set computer |
EP0663083B1 (en) * | 1992-09-29 | 2000-12-20 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
US5706459A (en) * | 1994-01-06 | 1998-01-06 | Fujitsu Limited | Processor having a variable number of stages in a pipeline |
US5592488A (en) * | 1995-06-07 | 1997-01-07 | Micron Technology, Inc. | Method and apparatus for pipelined multiplexing employing analog delays for a multiport interface |
EP0752645B1 (en) * | 1995-07-07 | 2017-11-22 | Oracle America, Inc. | Tunable software control of Harvard architecture cache memories using prefetch instructions |
US5809272A (en) * | 1995-11-29 | 1998-09-15 | Exponential Technology Inc. | Early instruction-length pre-decode of variable-length instructions in a superscalar processor |
US5710914A (en) * | 1995-12-29 | 1998-01-20 | Atmel Corporation | Digital signal processing method and system implementing pipelined read and write operations |
US5761468A (en) * | 1996-05-15 | 1998-06-02 | Sun Microsystems Inc | Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions |
US6061755A (en) * | 1997-04-14 | 2000-05-09 | International Business Machines Corporation | Method of layering cache and architectural specific functions to promote operation symmetry |
US5978871A (en) * | 1997-04-14 | 1999-11-02 | International Business Machines Corporation | Method of layering cache and architectural specific functions for operation splitting |
US20140325175A1 (en) * | 2013-04-29 | 2014-10-30 | Pact Xpp Technologies Ag | Pipeline configuration protocol and configuration unit communication |
DE10081643D2 (de) | 1999-06-10 | 2002-05-29 | Pact Inf Tech Gmbh | Sequenz-Partitionierung auf Zellstrukturen |
US7376814B1 (en) | 1999-09-07 | 2008-05-20 | Nxp B.V. | Method for forming variable length instructions in a processing system |
US6701424B1 (en) * | 2000-04-07 | 2004-03-02 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
JP4629198B2 (ja) * | 2000-08-18 | 2011-02-09 | 富士通セミコンダクター株式会社 | 演算装置及び演算方法 |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US9411532B2 (en) | 2001-09-07 | 2016-08-09 | Pact Xpp Technologies Ag | Methods and systems for transferring data between a processing device and external devices |
US9141390B2 (en) | 2001-03-05 | 2015-09-22 | Pact Xpp Technologies Ag | Method of processing data with an array of data processors according to application ID |
US9436631B2 (en) | 2001-03-05 | 2016-09-06 | Pact Xpp Technologies Ag | Chip including memory element storing higher level memory data on a page by page basis |
US9552047B2 (en) | 2001-03-05 | 2017-01-24 | Pact Xpp Technologies Ag | Multiprocessor having runtime adjustable clock and clock dependent power supply |
US9250908B2 (en) | 2001-03-05 | 2016-02-02 | Pact Xpp Technologies Ag | Multi-processor bus and cache interconnection system |
US10031733B2 (en) | 2001-06-20 | 2018-07-24 | Scientia Sol Mentis Ag | Method for processing data |
US9170812B2 (en) | 2002-03-21 | 2015-10-27 | Pact Xpp Technologies Ag | Data processing system having integrated pipelined array data processor |
AU2003289844A1 (en) | 2002-09-06 | 2004-05-13 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US8406786B2 (en) * | 2010-02-25 | 2013-03-26 | Motorola Mobility Llc | Methods and apparatus for extended generic messaging in a networked geolocation system |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3331056A (en) * | 1964-07-15 | 1967-07-11 | Honeywell Inc | Variable width addressing arrangement |
US3739352A (en) * | 1971-06-28 | 1973-06-12 | Burroughs Corp | Variable word width processor control |
US4109310A (en) * | 1973-08-06 | 1978-08-22 | Xerox Corporation | Variable field length addressing system having data byte interchange |
US4025771A (en) * | 1974-03-25 | 1977-05-24 | Hughes Aircraft Company | Pipe line high speed signal processor |
JPS6055849B2 (ja) * | 1975-12-04 | 1985-12-06 | 株式会社東芝 | 命令制御方式 |
CA1114518A (en) * | 1977-10-25 | 1981-12-15 | William D. Strecker | Central processor unit for executing instructions with a special operand specifier |
US4135242A (en) * | 1977-11-07 | 1979-01-16 | Ncr Corporation | Method and processor having bit-addressable scratch pad memory |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4305124A (en) * | 1978-06-09 | 1981-12-08 | Ncr Corporation | Pipelined computer |
JPS6024985B2 (ja) * | 1978-08-31 | 1985-06-15 | 富士通株式会社 | デ−タ処理方式 |
US4298927A (en) * | 1978-10-23 | 1981-11-03 | International Business Machines Corporation | Computer instruction prefetch circuit |
US4236206A (en) * | 1978-10-25 | 1980-11-25 | Digital Equipment Corporation | Central processor unit for executing instructions of variable length |
US4241399A (en) * | 1978-10-25 | 1980-12-23 | Digital Equipment Corporation | Calling instructions for a data processing system |
-
1981
- 1981-05-13 CA CA000377496A patent/CA1174370A/en not_active Expired
- 1981-05-14 GB GB8114857A patent/GB2077965B/en not_active Expired
- 1981-05-15 KR KR1019810001672A patent/KR850001015B1/ko active
- 1981-05-18 DE DE3119741A patent/DE3119741C2/de not_active Expired
- 1981-05-19 US US06/265,168 patent/US4454578A/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
DE3119741A1 (de) | 1982-01-21 |
GB2077965B (en) | 1985-04-24 |
US4454578A (en) | 1984-06-12 |
DE3119741C2 (de) | 1986-10-16 |
KR830006741A (ko) | 1983-10-06 |
CA1174370A (en) | 1984-09-11 |
GB2077965A (en) | 1981-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR850001015B1 (ko) | 오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 | |
US4449184A (en) | Extended address, single and multiple bit microprocessor | |
US6061783A (en) | Method and apparatus for manipulation of bit fields directly in a memory source | |
KR100260353B1 (ko) | 2종류의 명령장 코드를 실행하는 프로세서 및 그명령 코드입력 장치 | |
US4395758A (en) | Accelerator processor for a data processing system | |
USRE32493E (en) | Data processing unit with pipelined operands | |
US5132898A (en) | System for processing data having different formats | |
KR940009094B1 (ko) | 데이타처리 시스템 | |
US3949379A (en) | Pipeline data processing apparatus with high speed slave store | |
US4587632A (en) | Lookahead stack oriented computer | |
CN102007469A (zh) | 用以加速空终止字符串操作的方法 | |
KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
JPH06236268A (ja) | 命令の長さを判定する装置と方法 | |
EP0220682A2 (en) | Data processing system | |
US4393463A (en) | Insertion of character set change codes in an altered text stream | |
EP0054620A2 (en) | Data processing terminal | |
KR100247899B1 (ko) | 플로세서및프로그램번역장치 | |
US3737864A (en) | Method and apparatus for bypassing display register update during procedure entry | |
US20020099922A1 (en) | Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline | |
EP0488297A2 (en) | Symbol string search apparatus and system | |
KR880000341B1 (ko) | 중앙처리장치의 버스 소오싱 및 시프터 제어 | |
CN1004306B (zh) | 信息处理装置 | |
US4924377A (en) | Pipelined instruction processor capable of reading dependent operands in parallel | |
Sint | MIDL-A microinstruction description language | |
US5440757A (en) | Data processor having multistage store buffer for processing exceptions |