KR930001055B1 - 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치 - Google Patents

가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치 Download PDF

Info

Publication number
KR930001055B1
KR930001055B1 KR1019890011318A KR890011318A KR930001055B1 KR 930001055 B1 KR930001055 B1 KR 930001055B1 KR 1019890011318 A KR1019890011318 A KR 1019890011318A KR 890011318 A KR890011318 A KR 890011318A KR 930001055 B1 KR930001055 B1 KR 930001055B1
Authority
KR
South Korea
Prior art keywords
instruction
command
parallel
decoder
register
Prior art date
Application number
KR1019890011318A
Other languages
English (en)
Other versions
KR900003738A (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 JP19822688A external-priority patent/JPH0774992B2/ja
Priority claimed from JP1028184A external-priority patent/JPH0769800B2/ja
Application filed by 마쓰시다 덴끼 산교오 가부시기가이샤, 다니이 아끼오 filed Critical 마쓰시다 덴끼 산교오 가부시기가이샤
Publication of KR900003738A publication Critical patent/KR900003738A/ko
Application granted granted Critical
Publication of KR930001055B1 publication Critical patent/KR930001055B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • G06F9/30152Determining start or end of instruction; determining instruction length
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

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

Abstract

내용 없음.

Description

가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치
제1도는 본 말명의 한 실시예에 있어서의 데이터 처리장치의 구성도.
제2도는 본 발명의 데이터 처리장치에 따라 가변 단어길이 명령에 있어서 2개의 명령을 병렬로 해독하는 경우의 동작 설명도.
제3도는 조건부 분기 명령을 고속화 하였을 경우의 동작을 성명하기 위한 실행 명령열(命令列)을 나타낸도면.
제4도는 시리시예에서 조건부 분기 명령을 고속화 하였을 경우의 동작을 설명하기 위한 타이밍도.
제5도는 로우드 명령(load instruction)을 고속화 하였을 경우의 동작을 설명하기 위한 실행 명령열을 나타낸 도면.
제6도는 로우드 명령을 고속화 하였을 경우의 동작을 설명하기 위한 타이밍도.
제7도는 스토어 명령(store instruction)을 고속화 하였을 경우의 동작을 설명하기 위한 실행 명령열을 나타낸 도면.
제8도는 스토어 명령을 고속화 하였을 경우의 동작을 설명하기 위한 타이밍도.
제9도는 연산의 지연 제어수단의 구성도.
제10도는 레지스터 간섭이 발생하였을 경우의 로우드 명령과 그에 후속하는 레지스터간 연산 명령과의 파이프라인 동작을 설명하기 위한 타이밍도.
제11도는 제2명령 해독기의 제2의 구성열을 나타낸 도면.
제12도는 본 발명의 실시예에서 병렬해독을 하는 명령의 비트 패턴(bit pattern )을 나타낸 도면.
제13도는 본 발명의 실시예에 있어서의 병렬해독 가능성 검출수단의 구성을 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : 명령 페치 제어부 11 : 명령 버퍼(buffer)
12 : 제1명령 해독기 13 : 제2명령 해독기
14, 15, 16, 21 : 병렬해독 가능성 검출수단 17 : 주명령 레지스터
18 : 부명령 레지스터 19 : 명령 공급수단 제어부
23 : 데이터 판독수단 25 : 데이터 써넣기 수단
26 : 분기 제어수단 27 : 비교기
30 : 가산기 31 : 지연 제어수단
32 : 버스전송 제어부 104 : 분기 목적 어드레스
본 발명은 가변 단어길이 명령 체계에 있어서, 여러개의 명령을 동시에 해독하고, 해독한 여러개의 명령을 동시에 실행하는 장치에 관한 것이다.
종래 부터 데이터 장치에 있어서 처리의 고속화를 도모하기 위하여 병렬 동작시키는 것이 일반적으로 실시되어 왔다. 예컨대, 2개의 명령을 병렬로 처리하는 경우에는 2개의 해독기를 설치하여 2개의 명령을 동시에 해독하고, 2개의 연산유닛을 동시에 동작시키는 방법을 채택하여 왔다. 일본국 특허 공개 소63-49843호에서는 산술 연산 명령과 논리 연산 명령의 2개의 명령을 각기 제1해독기와 제2해독기로 해독하여 산술 연산유닛과 논리 연산유닛을 동시에 동작시킴으로써 성능을 향상시키고 있다. 이 예에서는 고정 단어길이 명령 체계에 있어서의 병렬 명령 해독이기 때문에 용이하게 실현할 수 있다.
그런데, 연산의 종류나 어드레싱 모우드(addressing mode)에 의하여 명령 코우드(code)의 길이가 변화하는 가변 단어길이 명령 체계에 있어서는 해독중의 명령에 후속하는 명령의 위치가 현재의 명령 해독 결과에 따라서 결정되기 때문에, 여러개의 명령을 동시에 해독하는 것이 곤란하게 된다. 이러한 상황에 대처하기 위하여 해독중의 명령에 후속하는 명령어를 동시에 해독하는 제2해독기를 여러개 설치한다거나, 그렇지 않으면 제2명령 해독기에 입력하는 명령어를 선택하는 선택기를 설치하여 제1명령 해독기의 해독 결과에 따라서 선택기를 제어하여 제2명령 해독기의 입력을 결정해야 할 필요가 있었다. 따라서, 해독기의 하아드웨어가 증가한다거나, 해독에 필요한 시간이 증가한다거나 하는 문제점이 있었다.
가변 단어길이 명령 체계에서는 여러개의 명령의 동시 해독이 곤란하기 때문에, 1명령마다 해독한 해독 결과를 보전 유지하여 두어 연산기에 해독 결괄르 공급하는 경우에 2명령분의 해독 결과를 동시에 부여함으로써 2명령의 병렬실행을 하는 데이터 처리장치를 예로 들 수 있다[˝TRON 규격에 기초한 32-비트 마이크로프로세서 TX3의 CPU 아키텍츄어(Architecture)의 검토˝, 일본국 전자정보통신학회 기술연구보고 컴퓨터 시스템, Vol.8, No.422, 1988].
이 예에 의한 데이터 처리장치는, 한번 해독한 명령의 해독 결과를 해독이 완료된 명령 버퍼(instruction buffer)에 일정한 양만을 유지하여 두어 프로그램의 루우프(loop)에 의하여 해독이 완료된 명령 버퍼내의 해독 결과를 반복하여 사용할 수 있는 경우에 한하여 해독이 완료된 명령 버퍼로 부터 여러개의 연산기에 대하여 각각 해독 결과를 부여하는 것이다. 해독한 후의 해독 결과를 보전 유지하고, 또한 해독 결과의 재이용 효과를 향상시키자면 대용량의 해독 완료 명령 버퍼가 필요하다. 더욱이, 루우프의 첫번째 이용, 즉, 해독이 완료된 명령 버퍼에 해독 결과가 축적되기 까지의 동안은, 해독완료 명령 버퍼의 전송 능력(transmission ability)은 1명령 해독의 시스템 효율 (through-put)에 제한되어 버린다고 하는 문제점이 있었다.
본 발명의 목적은 해독 하아드웨어의 양을 크게 증가시키는 일이 없이 가변 단어길이 명령 체계에 있어서 복수 명령을 병렬해독하는 데이터 처리장치를 제공함에 있다.
상기한 목적을 달성하기 위하여, 본 발명의 데이터 처리장치에서는, ㉮ 가변 단어길이 명령을 해독하는 제1명령 해독기와, ㉯ 제1명령 해독기가 해독한 명령에 후속하는 명령어를 해독하여 병령해독이 가능한 명령의 존재를 사전에 검출하는 병렬해독 가능성 검출수단과, ㉰ 병렬해독 가능성 검출수단이 검출한 명령을 해독하는 적어도 하나의 제2명령 해독기와, ㉱ 제1명령 해독기가 출력하는 명령 경계를 나타내는 신호에 따라 병령해독 가능성 검출수단이 검출한 명령을 선택적으로 유효(有效)로 하여 제2명령 해독기에 유효한 명령을 공급함과 동시에 앞의 명령에 후속하는 후속 명령을 제1명령 해독기에 공급하는 명령 공급수단을 구비하고 있다.
상술한 수단에 따라 본 발명에 의한 데이터 처리장치는 가변 단어길이 명령 체계에 포함되는 적어도 하나의 고정 단어길이 명령과 그밖의 명령을 병렬로 해독하는 것이 가능하여 데이터 처리장치의 명령 해독 속도를 고속화하는 효과를 얻을 수 있다.
제1도는 본 발명의 한 실시예의 데이터 처리장치의 구성을 나타낸 블록도이다. 제1도에서 (10)은 실행에 앞서 미리 명령을 페치(fetch)하는 명령 페치 제어부이고, (11)은 명령 페치 제어부(10)에 의하여 형성된 명령을 저축하는 명령 버퍼로서 해독에 필요한 명령을 해독기에 공급한다. (12)는 가변 단어길이 명령을 해독하는 제1명령 해독기로서 복수 명령의 병렬해독의 대상이 되는 명령(가변 단어길이 명령 체계에 포함되는 적어도 하나의 고정 단어길이 명령)을 제외한 모든 명령을 해독한다. (13)은 복수 명령의 병렬해독의 대상이 되는 명령만을 해독하는 제2명령 해독기이고, (14), (15), (16)은 각각 제1명령 해독기(12)가 해독중인 명령에 후속하는 명령열의 중에 병렬해독이 가능한 명령의 조합(가변 단어길이 명령 체계에 포함되는 적어도 하나의 고정 단어길이 명령과 그에 후속하는 명령)이 존재하는 것을 검출하는 병렬해독 가능성 검출 수단이다. (101), (102), (103)은 각각의 병렬해독 가능성 검출수단의 검출 결과이다. (17)은 제1명령 해독기(12)가 해독하는 명령어 및 그에 후속하는 명령어를 보전 유지하는 주명령 레지스터(primary instruction register)이고, (18)은 제2명령 해독기(13)가 해독하는 명령을 보전 유지하는 부(副)명령 레지스터이다.
(19)는 주명령 레지스터(17)와 부명령 레지스터(18)의 내용을 시프트(shift) 제어하는 명령 공급수단 제어부인데, 병렬해독 가능성 검출수단의 검출 결과 (101), (102), (103)중의 어느 하나를 제1명령 해독기(12)가 해독한 명령의 명령 경계를 나타내는 제1명령 해독기(12)의 출력(100)에 따라 유효로 하고, 명령에 포함된 디스플레이스먼트(displacement) 값이나 즉값(卽값) 이외의 명령부분을 부명령 레지스터(18)에 격납한다. (20)은 명령 해독기(12 및 13)가 해독한 결과를 잠시 보전 유지하는 버퍼이다. (23)은 메모리에 격납된 데이터의 어드레스(address)를 계산하여 버스 전송 (bus transfer) 제어수단(32)을 통하여 외부 메모리로 부터 데이터를 판독하는 데이터 판독수단이다. (24)는 레지스터에 격납된 여러개의 데이터 사이의 연산을 하고, 또한 데이터 판독수단(23)이 판독한 메모리의 데이터를 내부 레지스터에 격납하는 연산수단이다. (25)는 연산수단(24)이 연산한 데이터를 메모리에 격납하는 데이터 써넣기 수단이다.
(26)은 마이크로 명령 레지스터(22)에 보전 유지된 조건부 분기 명령의 조건 코우드와 연산수단(24)이 출력하는 연산 결과 플래그(flag)등을 입력하여 비교기(27)로 분기 조건 성립의 유무를 검출하는 분기 제어수단이다. 이 분기 제어수단(26)은 분기 조건이 성립하였을 경우에는 분기 성립신호(105)에 의하여 분기 명령에 후속하는 명령이 연산수단(24)에서 실행되는 것을 억제함과 동시에, 분기 목적 어드레스(branching target address)(104)로 부터 새로운 명령을 재개하도록 명령 페치수단(10)을 제어한다. (28)은 어드레스 계산전용의 가산기(30)와 현재 실행중인 명령의 어드레스를 보전 유지하는 프로그램 카운터(PC)를 구비한 분기 목적 어드레스 계산수단인데, 마이크로 명령 레지스터(22)의 지시에 따라서 조건부 분기 명령 혹은 무조건 분기 명령등의 분기 목적 어드레스(104)를 연산수단(24)과는 관계없이 독립하여 계산한다.
(31)은 로우드 명령(load instruction)에 따라 데이터 판독수단(23)이 메모리로 부터 판독한 데이터를 로우드 명령에 후속하는 명령이 연산수단(24)에서 사용할 경우에 로우드 명령의 판독동작이 완료하기 까지 후속 명령의 연산 동작을 기다리게 하는 지연 제어수단이다. (32)는 프로세서(processor) 내부와 프로세서 외부 사이의 데이터 전송(data transfer)을 제어하는 버스 전송(bus transfer) 제어부이다.
제12도는 본 발명의 실시예에 병렬해독을 하는 명령의 비트 패턴(bit patten)의 예를 나타낸 도면이다. CCCC는 조건부 분기 명령의 조건을 나타낸 것이고, disp8은 조건이 성립하였을 경우의 분기 목적 어드레스의 오프셋(offset) 또는 로우드 명령과 스토어(store) 명령의 베이스 오프셋 값(base offset value)을 나타낸 것이다. Rn은 베이스 레지스터의 번호를 뜻한다.
제13도는 본 발명의 실시예에 있어서의 병렬해독 가능성 검출수단의 구성을 나타낸 도면이다. 병렬해독 가능성 검출수단은 주명령 레지스터에 격납되어 있는 명령열(命令列)속에 제12도에 나타낸 명령의 비트 패턴이 존재하는가 아닌가를 검출하는 것인데, 도면에 나타낸 바와 같은 간단한 구성으로 실현할 수 있다. 즉, 이를 구체적으로 설명하면, 제13도는 제12도에 있는 스토어 명령(명령 코우드 0011)이 현재 해독중인 명령에 후속하는 명령열(列)의 중에 존재하는지의 유무(병렬해독 가능의 여부)를 검출하는 병렬해독 가능성 검출수단의 구성을 나타내는 도면으로서, 주명령 레지스터(17)의 IRM1의 최상위 비트로 부터 상위 4비트의 명령 코우드가 0011이면 신호기(101)에 의하여 IRM1에서 병렬해독 할 수 있는 가능성이 있는 스토어 명령이 존재함을 나타내는 것이다. 제13도에는 IRM1만을 나타내고 있으나, IRM2, IRM3도 마찬가지의 병렬해독 가능성 검출수단이 구성되어 있다.
제2도는 본 발명의 데이터 처리장치에 따라 2개의 가변 단어길이 명령을 병렬해독하는 경우의 동작을 설명하기 위한 도면이다. 이하, 제1도와 제2도에 따라 본 발명의 실시예에 있어서의 가변 단어길이 명령의 병렬 명령 해독의 동작에 대하여 설명한다.
제2도(1)은 실행하는 명령열의 순서를 나타낸 도면으로 A0명령으로 부터 차례로 실행한다. 명령열 A0, A1, A2, A3의 중에서 A0명령은 16비트의 디스플레이스먼트 값을 가지며, A1명령과 A2명령이 2명령 병렬로 해독되는 것으로 한다.
제2도(2)는 제1명령 해독기가 주명령 레지스터(17)에서 A0명령을 해독중일 때의 주명령 레지스터(17) 및 부명령 레지스터(18)의 상태를 나타낸 도면이다. 주명령 레지스터(17)를 구성하는 4개의 16비트의 명령 레지스터 IRM0-IRM3에는 명령열의 차례로 IRM0에 A0명령, IRM1에 A0명령의 디스플레이스먼트, IRM2에 A1명령, IRM3에 A2명령이 각각 격납된다. 이때, 제1명령 해독기(12)는 IRM0의 A0명령을 해독하여 A0명령의 명령 경계가 IRM1과 IRM2 사이에 있음을 나타내는 신호(100)를 출력한다. 이와 동시에 병렬해독 가능성 검출수단(14)∼(16)은 IRM1∼IRM3의 각각의 디스플레이스먼트 값, A1명령, A2명령중에서 2명령 병렬해독의 가능성이 존재하는지 아닌지를 각각 검사하여 신호선(101)∼(103)에 가능성 검출 결과를 출력한다. 이때, 병렬해독 가능성 검출수단(14)은 명령의 경계를 인식하고 있지 않으므로 IRM1의 디스플레이스먼트 값이 우연적으로 2명령 병렬해독의 대상이 되는 명령 코우드와 일치할 경우에는 검출수단(14)은 잘못된 병렬해독 가능성 검출 결과를 신호선(101)에 출력한다.
명령 공급수단 제어부(19)는 명령의 경계를 나타낸느 신호(100)에 따라서 신호선(101)∼(103)으로 부터 잘못된 검출 결과를 배제하여, 검출 결과(102)가 진정한 검출 결과라고 판단한다. 그에 따라서 주명령 레지스터(17) 및 부명령 레지스터(18)에 격납된 명령 전체를 시프트 제어하여 IRM2의 A1명령을 부명령 레지스터(18)에 격납하고, 후속하는 IRM3의 A2명령을 명령 레지스터 IRM0에 각기 격납한다. 그 상태를 제2도(3)에 나타내었다.
이상의 동작에 관하여 구체적인 예를들어 설명하기로 한다. 즉, 본 발명의 데이타 처리장치가 취급하는 명령은 오퍼레이션 코우드(operation code)의 비트길이, 오퍼레이션 코우드에 잇따른 어드레싱[디스플레이스먼트(displacement)나 즉값(卽값)등]의 비트길이, 오퍼레이션의 수 등의 조합이 한정되지 아니하는 형식의 것이다. 따라서, 명령 비트길이는 동일한 연산 명령이더라도 어드레싱 모우드에 따라 달라지는 것이다. 따라서, 명령을 해독하자면 명령을 구성하고 있는 비트열(列)의 앞에서 부터의 순서로(예를 들자면, 16비트마다) 해독해가야 한다. 제1명령 해독기가 해독중인 명령이 IRM0만으로 종료하는 것인가, 그렇지 않으면 IRM1이나 IRM2 이후까지 계속하고 있는 것인가는 IRM0에 격납되어 있는 명령 코우드를 해독하기 까지 판명되지 않는다.
한편, 이 해독과 병행하여 병렬해독 가능성 검출수단(21)은 IRM1, IRM2, IRM3에 격납되어 있는 명령 코우드중에, 예를 들자면 제12도에 있는 것과 같은 명령 코우드가 포함되어 있는가의 여부를 검출하는 것이다. 검출 결과는 신호선(101, 102, 103)에 의하여 명령 공급수단 제어부(19)에 통지된다. 그런데, 제1명령 해독기에서 해독한 명령이 IRM1에 디스플레이스먼트등을 가진 명령인 것으로 하면 신호선(101)의 결과는 무시할 필요가 있다. 그 이유는 IRM1에 격납되어 있는 것은 해독중인 명령에 후속하는 명령이 아니라 해독중인 명령의 일부로 되어 있기 때문인 것이다. 이 무효화는 해독중의 명령이 주명령 레지스터의 어디까지를 사용하는가를 나타내는 신호(100)를 사용한다. 예를 들자면, 신호선(100)이 IRM1까지가 현재 해독중인 명령인 것을 나타내고 있었다고 하면 명령 공급수단 제어부(19)는 신호선(101)의 검출 결과를 무시하고 신호선(102)과 신호선(103)만을 보아 병렬해독 할 수 있는 명령의 유무를 판정한다.
이때, 신호선(102)이 능동상태이면 IRM2에 병령해독 할 수 있는 명령이 격납되어 있다는 것이 판명되기 때문에 명령 공급수단 제어부(19)는 주명령 레지스터의 내용을 시프트(shift)하여 IRM2의 내용을 부명령(副命令) 레지스터(18)쪽으로, IRM3의 내용을 IRM0쪽으로, 그리고 명령 버퍼로 부터 IRM2와 IRM3쪽으로 각각 명령을 이동시킨다. 신호선(102)과 신호선(103)에 의하여 병렬해독 할 수 있는 명령이 없다고 판단되면 명령 공급수단 제어부(19)는 주명령 레지스터의 내용을 시프트하여 IRM1의 내용을 IRM0쪽으로, IRM2의 내용을 IRM1쪽으로, IRM3의 내용을 IRM2쪽으로, 그리고 명령 버퍼로 부터 IRM3쪽으로 각각 명령을 이동시킨다.
이상은 신호선(100)이 IRM1까지가 현재 해독중인 명령인 것을 나타낸 경우(즉, 명령의 경계가 IRM1과 IRM2의 사이)의 예이나, 기타의 경우도 마찬가지이다.
그리고, 명령 공급 제어수단의 내부구성은 신호선(100)에 의하여 신호선(101) 및 신호선(103)중의 어느 한쪽을 보아 병렬해독의 가능성을 판단하는가 하는 간단한 논리 회로를 실현할 수 있는 것이다. 예를 들자면, 신호선(100)을 2비트로 구성하여 아래와 같이 정의할 수 있다.
00 : 해독중인 명령이 IRM0에서 종료.
01 : 해독중인 명령이 IRM1에서 종료.
10 : 해독중인 명령이 IRM2에서 종료.
11 : 해독중인 명령이 IRM3 이후까지 계속.
신호선(100)이 값 00인 경우는 신호선(101, 102, 103)을 유효로 하고, 신호선 (100)이 값 01인 경우는 신호선(102, 103)을 유효로 하며, 신호선(100)이 값 10인 경우는 신호선(103)을 유효로 하여 각각 병렬해독 할 수 있는 명령의 유무를 판정한다. 신호선(100)이 값 11인 경우는 주명령 레지스터중에 병렬해독이 가능한 명령이 존재하지 아니하는 것으로 판단한다.
제2도(3)의 상태에서 제1명령 해독기(12)가 A2명령을 해독하고 제2명령 해독기(13)가 A1명령을 해독함에 따라 2명령의 병렬해독을 한다. 더욱이, 병렬해독 가능성 검출수단을 병렬해독 할 수 있는 명령(가변단어길이 명령 체계에 포함되는 하나 이상의 고정 단어길이 명령이며, 특히 실시예에서는 조건부 분기 명령, 로우드 명령, 스토어 명령)의 존재를 검사할 뿐이며, 몇개의 게이트의 하아드웨어(디코우더 : decoder)에 의하여 실현할 수 있다.
또한, 제2명령 해독기(13)는 병렬해독의 대상이 되는 명령만을 해독하고, 제1명령 해독기(12)는 병렬해독의 대상이 되는 명령 이외의 명령을 해독하면 되므로, 해독 하아드웨어가 중복하는 일은 없고, 전체의 해독 하아드웨어의 양은 증가하지 않는다.
다음에, 제3도 및 제4도에 따라 조건부 명령이 분기하지 않을때에 조건부 명령과 후속하는 명령을 병렬로 해독하여 실행함에 따라 조건부 분기 명령의 실행을 고속화하는 경우의 동작을 설명한다.
제3도는 실행하는 명령열을 나타내고 있으며, 조건부 분기 명령(Bcc)의 조건이 성립하였을 때에는 B1명령으로 분기하고, 조건이 성립하지 않을 때에는 후속하는 A1명령을 실행하는 것을 나타낸다.
전술한 제3도의 병렬 명령 해독과 제2도에서 설명한 병렬 명령과의 관련의 판독방법에 따라 조건부 분기 명령과 그에 후속하는 A1명령이 병렬 해독된다.
제4도에 있어서, IF는 명령 페치수단(10)의 동작을 나타내는 것이고, DEC는 명령 해독기의 동작을 나타내며, R은 내부 레지스터의 판독동작을 나타내고, EX는 연산수단(22)의 동작을 나타내며, W는 내부 레지스터에서 써넣기 동작을 나타낸다. 위에 나온 R의 내부 레지스터의 판독동작에 대하여 제2도와 제4도를 참조하여 구체적으로 설명하기로 한다. 즉, 제2도(2)는 A0명령을 해독하고 있는 상태를 나타내고, 제4도에서는 타이밍 2의 상태와 동일하다. 제2도(3)에서 명령을 해독하고 있는 상태는 제4도에서는 타이밍 3의 상태와 동일하다. 타이밍 2에서 해독된 결과는 제1도의 마이크로 명령 레지스터(22)에 격납된다. 본 발명의 실시예의 데이터 처리장치에서는 5단의 파이프라인 처리를 하고 있고, 마이크로 명령 레지스터에 격납된 제어 코맨드(command)에 따라 제1도에는 도시되어 있지 않은 레지스터의 내용을 독출(讀出)하고, 독출한 내용으로 연산을 하여 다시 레지스터에 연산 결과를 격납한다. 이들 처리는 파이프라인적으로 순차 처리되는 것이다. 타이밍 3에서는 타이밍 2에서 해독된 A0명령의 해독 결과에 따라 레지스터가 독출되어 있다. 타이밍 4에서는 타이밍 3에서 병렬 해독된 결과에 따라 레지스터가 독출된다. 제4도의 경우 병렬 해독되는 것은 Bcc명령과 A1명령이므로, 실제로는 A1명령의 실행에 필요한 레지스터의 독출이 타이밍 4에서 실행되는 것이다.
이하, 마찬가지로 타이밍 5에서는 A2명령의 실행에 필요한 레지스터의 독출, 그리고 타이밍 6에서는 A3명령의 실행에 필요한 레지스터의 독출이 행해진다.
이상의 설명은 제4도를 참조하여 설명한 것이나, 제6도, 제8도, 제10도도 마찬가지이기 때문에 설명은 생략한다.
계속하여, 제4도와 관련하여 타이밍 2에서 해독된 A0명령은 타이밍 3에서 연산에 필요한 내부 레지스터의 명령이 판독되어 타이밍 4에서 연산되고, 타이밍 5에서 연산 결과가 내부 레지스터에 써넣어지게 된다. 타이밍 5에서는, 동시에 A0명령의 연산의 결과 플래그가 분기 제어수단(26)의 비교기(27)에 출력된다. 한편, 타이밍 3에서는 조건부 분기 명령과 그에 후속하는 A1명령이 병렬해독되어, 그 해독 결과가 마이크로 명령 레지스터(22)에 격납된다. 타이밍 4에서는 마이크로 명령 레지스터(22)의 지시에 따라서 분기 어드레스 계산수단(28)의 어드레스 계산전용의 가산기(30)에서 B1명령의 어드레스가 계산되어 필요로 할때까지 일시 보존 유지된다. 통상적으로는, 분기 목적 어드레스는 프로그램 카운터(29)의 값에 조건부 분기 명령에 따라서 나타낸 디스플레이스먼트 값등의 오프셋 값을 가산하여 구하는 것인데, 그대신 내부 레지스터의 내용을 가산하여 구하여도 좋다. 또한 연산수단(24)에 있어서는 A1명령의 연산에 필요한 내부 레지스터의 내용이 판독된다. 타이밍 5에서는 연산수단(24)에 있어서 A1명령의 연산을 하게 되고, 연산 결과가 일시 보전 유지된다.
동시에, 분기 제어수단(26)의 비교기(27)는 조건부 분기 명령의 조건 코우드와 타이밍 4에서 연산된 A0명령의 연산 결과 플래그를 비교한다. 분기 제어수단(26)은 비교의 결과에 따라 조건이 성립하지 않을 때에는, 타이밍 5에서 보전 유지하였던 A1명령의 연산 결과를 다음의 타이밍 6에서 내부 레지스터에 써넣고, 다시 타이밍 4에서 계산한 B1명령의 어드레스를 무효화하여 명령 페치수단(10)에 대하여 조건부 분기 명령에 후속하는 명령열의 페치를 계속하도록 제어한다(제4도(1), 조건 불성립). 분기 제어 수단(26)은 비교의 결과에 따라 조건이 성립하였을 경우에는 타이밍 6에 있어서의 A1명령의 연산 결과의 써넣기를 금지함과 동시에 후속하는 모든 명령의 실행을 무효화한다. 나아가서, 명령 페치수단(10)에 대하여 타이밍 4에서 계산한 B1명령의 어드레스에 따라서 B1명령을 페치시켜 B1명령으로 부터의 처리를 개시시킨다(제4도(2), 조건 성립).
다음에는, 로우드 명령과 레지스터와 레지스터간 연산 명령 및 스토어 명령과 레지스터와 레지스터간 연산 명령을 병렬해독하여 실행하는 경우의 파이프라인 동작 타이밍에 대하여 설명한다.
제5도는 실행하는 명령열을 나타내고 있는데, A0명령으로 부터 순차로 LD명령, A1명령, A2명령의 차례로 실행되는 것으로 한다. 여기에서, A1명령이 레지스터와 레지스터간의 연산 명령이며, LD명령과 그에 후속하는 A1명령이 병렬로 해독된다. 제6도는 로우드 명령과 레지스터와 레지스터간의 연산 명령을 병렬로 해독하여 실행하는 경우의 파이프라인 동작 타이밍을 나타내고 있다. 레지스터와 레지스터간 연산 명령의 파이프라인 처리는 명령 페치, 명령 해독, 레지스터 판독, 연산, 레지스터 써넣기의 5단계로 구성되어 있다. 로우드 명령의 파이프라인 처리는 명령 페치, 명령 병렬, 레지스터 판독, 어드레스 계산, 메모리 판독, 레지스터 써넣기의 6단계로 구성되어 있다. 레지스터 판독 단계에서는 로우드되는 데이터의 어드레스를 계산하기 위하여 필요한 내부 레지스터의 판독을 한다.
A0명령은 제4도에서와 마찬가지로 타이밍 2에서 해독되고, 타이밍 3에서 연산에 필요한 내부 레지스터의 내용이 판독되어 타이밍 4에서 연산되고, 타이밍 5에서 연산 결과가 내부 레지스터에 써넣어지게 된다. 타이밍 3에서는 LD명령과 A1명령이 병렬로 해독된다. 타이밍 4에서는 LD명령의 메모리 어드레스 계산에 필요한 레지스터와 A1명령의 레지스터 연산에 필요한 소오스 레지스터(source register) 및 데스티네이션(destination) 레지스터의 각 내용이 각각 판독된다. 연산수단(24)은 타이밍 5에서 A1명령의 레지스터와 레지스터간 연산을 하여 타이밍 6에서 연산 결과를 내부 레지스터에 써넣는다. 한편, 데이터 판독수단(23)은 로우드되는 데이터의 어드레스를 타이밍 5에서 계산하고 타이밍 6에서 버스전송 제어수단(32)을 통하여 메모리의 판독을 한다. 그리고, 판독한 데이터를 타이밍 7에서 내부 레지스터에 써넣는다. 이와 같이 병렬해독된 로우드 명령과 이 명령의 직후의 레지스터와 레지스터간 연산 명령은 각각 데이터 판독수단(23)과 연산수단(24)에 의하여 병렬로 처리된다.
제7도는 실행하는 명령열을 나타내고 있는데, B0명령으로 부터 순차로 ST명령, B1명령, B2명령의 순으로 실행되는 것으로 한다. 여기에서, B1명령이 레지스터와 레지스터간 연산 명령이며, ST명령과 그에 후속하는 B1명령이 병렬로 해독된다. 제8도는 스토어 명령고 후속하는 레지스터와 레지스터간 연산 명령을 병렬로 해독하여 실행하는 경우의 파이프라인 동작 타이밍을 나타내고 있다.
스토어 명령(ST명령)의 파이프라인 처리는 명령 페치, 명령 해독, 레지스터 판독, 어드레스 계산, 메모리 써넣기의 5단계로 구성되어 있다. B0명령은 제4도와 마찬가지로 타이밍 2에서 해독되고 타이밍 3에서 연산에 필요한 내부 레지스터의 내용이 판독되어 타이밍 4에서 연산되며, 타이밍 5에서 연산 결과가 내부 레지스터에 써넣어지게 된다. 타이밍 3에서는 ST명령과 B1명령이 병렬로 해독된다. 타이밍 4에서는 ST명령의 메모리 어드레스 계산에 필요한 레지스터와 B1명령의 레지스터 연산에 필요한 소오스 레지스터 및 데스티네이션 레지스터의 각 내용이 각각 판독된다. 연산수단(24)은 타이밍 5에서 B1명령의 레지스터와 레지스터간 연산을 하여 타이밍 6에서 연산 결과를 내부 레지스터에 써넣는다. 한편, 데이터 써넣기 수단(25)은 스토어되는 데이터 어드레스를 타이밍 5에서 계산하여 타이밍 6에서 그 결과를 버스전송 제어수단(32)을 통하여 메모리에의 써넣기를 한다. 이와 같이 병렬 판독된 스토어 명령과 그 명령의 직후의 레지스터와 레지스터간 연산 명령은 각기 데이터 써넣기 수단(25)과 연산수단(24)에 의하여 각각 병렬로 처리된다.
제6도에 있어서의 동작은 내부 레지스터 자원(resource)의 간섭이 발생하고 있지 않은 경우의 동작을 나타내고 있으나, 예컨대 LD명령에 의하여 메모리에서 독출된 데이터를 후속하는 A1명령이 사용하는 경우에는 데이터의 간섭이 발생하여 병렬 판독한 A1명령의 실행을 메모리의 데이터가 판독되기까지 지연시킬 필요가 있었다.
제9도는 지연 제어수단(제1도의 31)의 구성을 나타낸 도면이다. 제9도의 지연 검출부의 구성은 지연제어의 일부를 나타낸 것으로 되어 있다. 제1도의 지연 제어수단 (31)는 제9도의 지연 검출부의 출력(예컨대 2가지)과 연산수단(24)으로 부터의 연산 종료신호와 마이크로 명령 레지스터로 부터의 로우드 실행신호(제1도의 마이크로 명령 레지스터로 부터 지연 제어수단쪽으로 향한 신호선)에 의하여 로우드 명령 이후의 명령의 실행을 지연시키는 것이다. 제9도의 지연 검출부는 병령해독 가능성 검출수단의 동작과 병행하여 명령 레지스터 IRM1∼IRM3에 격납된 명령 코우드의 레지스터 피일드 (register field)를 체크하여 로우드 명령의 데스티네이션 레지스터가 후속하는 명령의 소오스(source)에 지정되어 있는지 없는지를 명령 공급수단 제어부에 통지한다. 통지를 받은 명령 공급수단 제어부(19)는 병렬해독 가능성 결과(101∼103)와 마찬가지로 제1명령 해독기(12)가 출력하는 명령의 경계신호(100)에 따라 여러개의 통지로 부터 진정한 통지를 선택하여 로우드 명령의 실행이 종료하기 까지 그 다음의 명령 공급을 정지한다.
제10도에 이때의 파이프라인 동작 타이밍을 나타내었다. 타이밍 6에서 LD명령의 데이터 판독이 완료하기까지 타이밍 3에서 병렬 판독한 A1명령 및 그 후의 명령이 실행하는 동작을 대기시키고, 타이밍 7에서 A1명령의 실행에 필요한 내부 레지스터의 판독동작이 실행된다. 한편, 전술한 지연 신호 검출에 있어서 로우드 명령 완료시까지 로우드 명령의 지연 제어 동작에 대하여 제9도와 제10도를 참조하여 설명한다. 우선, 지연 제어는 로우드 명령에 대해서만 실행되는 것으로 스토어 명령에 대하여 실행할 필요는 없다. 타이밍 2에서 A0명령을 해독하는 도중에 로우드 명령(LD)은 IRM1에, 그리고 A1명령은 IRM2에 각각 격납되어 있다. 타이밍 2에서는 병렬해독 검출수단에 의하여 LD명령과 A1명령이 병렬로 해독될 수 있는 것이 검출됨과 동시에 지연 검출부에 의하여 IRM1에 로우드 명령이 격납되어 있을 경우에는 후속되는 A1명령이나 후속되는 A2명령(IRM3에 격납되어 있음)이 LD명령에 의하여 로우드되는 데이터를 사용하는가의 여부가 검출된다. 검출 결과는 신호선에 의하여 명령 공급수단 제어부에 전송된다.
만일, 후속되는 명령이 로우드되는 데이터를 사용할 경우(간섭할 경우) 타이밍 3에서 병렬해독된 결과는 마이크로 명령 레지스터(22)에 격납된 후 로우드 명령의 해독 결과만이 동작하도록 지연 제어수단에 의하여 제어된다. 이것은 로우드가 완료되었음을 나타내는 신호(연산 종료신호)가 연산수단으로 부터 피이드백 되기 까지 A1명령의 해독 결과를 사용하지 않도록 함으로써 실현되는 것이다. 타이밍 4, 5, 6에서 로우드 명령이 처리되고, 타이밍 6에서 로우드 된 데이터가 데이터 처리장치 내부에 입력되면 그 다음의 타이밍 7에서는 해독 완결된 A1명령의 처리가 개시되는 것이다.
이상 설명한 본 발명의 실시예는 2명령의 병렬 판독이지만, 부명령 레지스터를 여러개 설치함에 따라 3명령 이상의 병렬 판독을 할 수도 있다. 제11도는 4명령의 병렬 판독을 하는 경우의 부명령 레지스터의 구성을 나타낸 것이다. 이 경우에 있어서도 여러개의 제2명령 해독기는 병렬해독하는 명령만을 해독하면 좋고, 해독의 하아드웨어는 증가하지 않는다. 또, 여러개의 작은 해독기로 분할 할 수 있으므로 해독기를 PLA등으로 실현할 경우의 고속 악세스(high-speed access)가 가능하다.
이상 설명한 본 발명의 실시예에 따라 다음의 효과를 얻을 수 있다.
(1) 가변 단어길이 명령 체계에 있어서 해독 하아드웨어를 현저히 증가시키지 않고 여러 명령의 병렬해독을 할 수 있다.
(2) 조건부 분기 명령의 조건이 성립하지 않을 경우에는, 조건부 분기 명령의 실행시간을 외견상 영(0)으로 할 수 있다.
(3) 로우드 명령에 후속하는 명령이 레지스터와 레지스터간 연산인 경우에는, 로우드 명령의 실행시간을 외견상 영(0)으로 할 수 있다.
(4) 스토어 명령에 후속하는 명령이 레지스터와 레지스터간 연산인 경우에는, 스토어 명령의 실행시간을 외견상 영(0)으로 할 수 있다.
더욱이, 본 실시예에서는 병렬해독하는 3개의 명령에 대하여 제12도에 나타낸 비트 패턴을 사용하였으나, 비트 패턴은 이것에 한하지 않고 임의로 설정할 수 있으며, 이것에 맞춰서 해독기나 병렬해독 가능성 검출 수단을 설계한다면 좋다는 것은 더 말할 나위도 없다.

Claims (3)

  1. (가) 가변 단어길이 명령을 해독하는 제1명령 해독기(12)와, (나) 제1명령 해독기(12)가 해독중의 명령에 후속하는 명령어를 해독하여 병렬해독이 가능한 명령의 존재를 사전에 검출하는 벼렬해독 가능성 검출수단(21)과, (다) 병렬해독 가능성 검출수단(21)에 의하여 병렬로 해독이 가능한 것으로 판정한 명령을 해독하는 하나 이상의 제2명령 해독기(13)와, (라) 제1명령 해독기(12)가 출력하는 명령 경계를 나타내는 신호(100)에 따라 병렬해독 가능성 검출수단(21)이 검출한 명령을 선택적으로 유효로 하고, 유효로 된 명령을 제2명령 해독기(13)에 공급함과 동시에, 전술한 병렬해독 가능성 검출수단(21)이 병렬해독 가능한 것으로 하여 검출한 명령에 잇따른 후속 명령을 제1명령 해독기(12)에 공급하는 명령 공급수단 제어부(19)를 구비하여 가변 길이 명령 체계의 하나 이상의 고정 길이 명령을 포함한 여러개의 명령을 동시에 병렬해독함을 특징으로 하는 데이터 처리장치.
  2. (가) 가변 단어길이 명령을 해독하는 제1명령 해독기(12)와, (나) 제1명령 해독기(12)가 해독중의 명령에 후속하는 명령어를 해독하여 병렬해독이 가능한 명령의 존재를 사전에 검출하는 병렬해독 가능성 검출수단(21)과, (다)병렬해독 가능성 검출수단(21)에 의하여 병렬로 해독이 가능한 것으로 판정한 명령을 해독하는 하나 이상의 제2명령 해독기(13)와, (라) 제1명령 해독기(12)가 출력하는 명령 경계를 나타내는 신호(100)에 따라 병렬해독 가능성 검출수단(21)이 검출한 명령을 선택적으로 유효로 하고, 유효로 된 명령을 제2명령 해독기(13)에 공급함과 동시에, 전술한 병렬해독 가능성 검출수단(21)이 병렬해독 가능한 것으로 하여 검출한 명령에 잇따른 후속 명령을 제1명령 해독기(12)에 공급하는 명령 공급수단 제어부(19)와, (마) 조건부 분기 명려의 분기 목적 어드레스를 계산하는 가산기(30)와, (바) 조건의 성립을 검출하는 비교기(27)와, (사)조건이 성립하였을 경우에 한하여 조건부 분기 명령에 후속하는 명령의 실행을 억제함과 동시에 가산기(30)가 출력하는 분기 목적 어드레스로 부터 명령의 처리를 개시하는 분기 제어수단(26)을 구비하여 조건부 분기 명령과 조건부 분기 명령에 후속하는 명령을 병렬로 처리함을 특징으로 하는 데이터 처리장치.
  3. (가) 가변 단어길이 명령을 해독하는 제1명령 해독기(12)와, (나) 제1명령 해독기(12)가 해독중의 명령에 후속하는 명령어를 해독하여 병렬해독이 가능한 명령의 존재를 사전에 검출하는 병렬해독 가능성 검출수단(21)과, (다) 병렬해독 가능성 검출수단(21)에 의하여 병렬로 해독이 가능한 것으로 판정한 명령을 해독하는 하나 이상의 제2명령 해독기(13)와, (라) 제1명령 해독기(12)가 출력하는 명령 경계를 나타내는 신호에 따라 병렬해독 가능성 검출수단(21)이 검출한 명령을 선택적으로 유효로 하고, 유효로 된 명령을 제2명령 해독기(13)에 공급함과 동시에, 전술한 병렬해독 가능성 검출수단(21)이 병렬해독 가능한 것으로 하여 검출한 명령에 잇따른 후속 명령을 제1명령 해독기(12)에 공급하는 명령 공급수단 제어부(19)와, (마) 메모리의 판독수단(23)과,
    (바) 여러개의 레지스터간에서 연산을 하는 연산수단(24)과, (사) 병렬해독 명령의 데이터 사이에 간섭이 발생하여 제1명령에 의하여 레지스터에 격납된 데이터를 제2명령에서 사용할 경우, 제1명령에 의하여 레지스터에 데이터를 격납할 때까지 제2명령의 연산수단 동작을 지연시키는 지연 제어수단(31)과, (아) 메모리에의 데이터 써넣기 수단 (25)을 구비하여 메모리와 내부 레지스터의 데이터 전송 명령과, 이 데이터 전송 명령에 후속하는 명령을 병렬로 처리함을 특징으로 하는 데이터 처리장치.
KR1019890011318A 1988-08-09 1989-08-09 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치 KR930001055B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP19822688A JPH0774992B2 (ja) 1988-08-09 1988-08-09 データ処理装置
JP198226 1988-08-09
JP63-198226 1988-08-09
JP028184 1989-02-07
JP1028184A JPH0769800B2 (ja) 1989-02-07 1989-02-07 データ処理装置
JP89-208184 1989-02-07

Publications (2)

Publication Number Publication Date
KR900003738A KR900003738A (ko) 1990-03-27
KR930001055B1 true KR930001055B1 (ko) 1993-02-13

Family

ID=26366228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890011318A KR930001055B1 (ko) 1988-08-09 1989-08-09 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치

Country Status (3)

Country Link
EP (1) EP0354740B1 (ko)
KR (1) KR930001055B1 (ko)
DE (1) DE68926701T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140097259A (ko) * 2011-10-31 2014-08-06 어플라이드 머티어리얼스, 인코포레이티드 스케쥴링 문제들을 하위-문제들로 분할하기 위한 방법 및 시스템

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072364A (en) * 1989-05-24 1991-12-10 Tandem Computers Incorporated Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
CA2037708C (en) * 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
JP2834289B2 (ja) * 1990-07-20 1998-12-09 株式会社日立製作所 マイクロプロセッサ
JP2834292B2 (ja) * 1990-08-15 1998-12-09 株式会社日立製作所 データ・プロセッサ
EP0625746A1 (de) * 1993-05-19 1994-11-23 Siemens Nixdorf Informationssysteme Aktiengesellschaft Befehlsaufbereitungseinheit für Verarbeitungsprozessoren in Datenverarbeitungsanlagen
US5951679A (en) * 1996-10-31 1999-09-14 Texas Instruments Incorporated Microprocessor circuits, systems, and methods for issuing successive iterations of a short backward branch loop in a single cycle
US6681319B1 (en) 1998-10-06 2004-01-20 Texas Instruments Incorporated Dual access instruction and compound memory access instruction with compatible address fields
EP0992892B1 (en) * 1998-10-06 2015-12-02 Texas Instruments Inc. Compound memory access instructions
DE102012102096A1 (de) 2012-03-13 2013-09-19 Brückner Trockentechnik GmbH & Co. KG Vorrichtung und Verfahren zur Wärmebehandlung von bahnförmigen Warenbahnen
CN104427530B (zh) * 2013-08-29 2019-05-31 锐迪科(重庆)微电子科技有限公司 一种控制信道检测方法及装置
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
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.
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140097259A (ko) * 2011-10-31 2014-08-06 어플라이드 머티어리얼스, 인코포레이티드 스케쥴링 문제들을 하위-문제들로 분할하기 위한 방법 및 시스템

Also Published As

Publication number Publication date
EP0354740A2 (en) 1990-02-14
EP0354740A3 (en) 1991-07-17
EP0354740B1 (en) 1996-06-19
KR900003738A (ko) 1990-03-27
DE68926701D1 (de) 1996-07-25
DE68926701T2 (de) 1997-02-20

Similar Documents

Publication Publication Date Title
US5202967A (en) Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
US5287467A (en) Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5881260A (en) Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
EP0021399B1 (en) A method and a machine for multiple instruction execution
US4722050A (en) Method and apparatus for facilitating instruction processing of a digital computer
US5809294A (en) Parallel processing unit which processes branch instructions without decreased performance when a branch is taken
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
US4775927A (en) Processor including fetch operation for branch instruction with control tag
JP3594506B2 (ja) マイクロプロセッサの分岐命令予測方法
KR930001055B1 (ko) 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치
US5131086A (en) Method and system for executing pipelined three operand construct
KR100423910B1 (ko) 코프로세서 명령 실행 장치 및 방법
US4739470A (en) Data processing system
US5416911A (en) Performance enhancement for load multiple register instruction
EP0297943B1 (en) Microcode reading control system
US3553655A (en) Short forward conditional skip hardware
JPH08320788A (ja) パイプライン方式プロセッサ
US5295248A (en) Branch control circuit
US5253349A (en) Decreasing processing time for type 1 dyadic instructions
CN112035170B (zh) 用于分支预测器的方法和系统
JPH09274565A (ja) 分岐による中断のないパイプライン化されたマイクロプロセッサ及びその動作方法
JP3708022B2 (ja) プロセッサ
JPH01183737A (ja) 情報処理装置
JPH0774992B2 (ja) データ処理装置
JPH0769800B2 (ja) データ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20050204

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee