KR850001015B1 - 오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 - Google Patents

오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 Download PDF

Info

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
Application number
KR1019810001672A
Other languages
English (en)
Other versions
KR830006741A (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
Priority claimed from JP6526780A external-priority patent/JPS56162153A/ja
Priority claimed from JP13983580A external-priority patent/JPS5764848A/ja
Application filed by 가부시기 가이샤 히다찌 세이사꾸쇼, 요시야마 히로기찌 filed Critical 가부시기 가이샤 히다찌 세이사꾸쇼
Publication of KR830006741A publication Critical patent/KR830006741A/ko
Application granted granted Critical
Publication of KR850001015B1 publication Critical patent/KR850001015B1/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
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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

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

오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치
제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도에서의 약칭과 정식명칭은 다음과 같은 관계가 있다.
Figure kpo00002
제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)의 구성을 나타낸 것으로서 여기서 사용되고 있는 약칭과 정식명칭은 다음과 같은 관계가 있다.
Figure kpo00003
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)의 구체적인 구성을 나타낸 것으로서, 여기에서 사용되고 있는 약칭과 정식명칭을 다음과 같은 관계가 있다.
Figure kpo00004
μ프고그램 어드레스 생성회로(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)의 구성을 나타내는 것으로 여기서 사용되고 있는 약칭과 정식명칭은 다음과 같은 관계가 있다.
Figure kpo00005
제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)의 구성을 나타낸 것으로 여기에서 사용되고 있는 약칭과 정식명칭은 다음과 같은 관계가 있다.
Figure kpo00006
제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)의 주요 구성요소만을 나탄낸 것으로서 이 외에도 여러 가지의 구성요소가 포함되는 본 발명의 이해에는 필요치 않으므로 생략했다.
Figure kpo00007
제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. 오페란드의 어드레싱 모우드를 나타내는 오페란드 지정자가 작동을 확인하는 명령 코오드 부분으로 부터 독립되어 있는 가변장인 명령을 실행하는 데이터 처리장치에 있어서, 기억 수단으로부터 적어도 한개의 명령 선행 실행을 행하여, 보관유지하는 명령 선행 실행 수단과, 1기계 사이클에 적어도 한개의 오페란드 지정자를 상기 명령 선행 실행수단으로부터 정렬시켜 출력하는 명령 정열수단을 포함하는 명령 실행수단이 명령 및 오페란드를 축적하는 기억수단에 접속되고, 명령 정열 수단에 의하여 정열되어 출력된 명령에 포함되는 오페란드 지정자를 확인함과 동시에 그 명령의 수를 확인하는 명령코오드 디코우드 수단과, 상기 명령 수단에 의하여 정열되어 출력된 오페란드 지정자를 그때의 기계 사이클에서 디코우드 하는 오페란드 지정자 디코우드 수단이 상과 명령 실행수단에 접촉되고, 바로 앞의 기계사이클에서 디코우드 수단에 의하여 디코우드 된 명령코오드 및 오페란드 지정자의 디코우드 정보에 따라 해당 오페란드의 실행 어드레스를 계산하고 이에 의거하여 명령수단, 디코우드 수단 및 어드레스 계산수단이 각각 오페란드 지정자 단위로 처리하는 어드레스 계산수단이 상기 디코우드 수단에 접속된 것을 특징으로 하는 오페란드간 파이프라인 제어를 행하는 데이타 처리장치.
KR1019810001672A 1980-05-19 1981-05-15 오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치 KR850001015B1 (ko)

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)

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

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

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