KR880000297B1 - 부정장(不定長)명령을 갖는 데이터처리장치 - Google Patents

부정장(不定長)명령을 갖는 데이터처리장치 Download PDF

Info

Publication number
KR880000297B1
KR880000297B1 KR8203773A KR820003773A KR880000297B1 KR 880000297 B1 KR880000297 B1 KR 880000297B1 KR 8203773 A KR8203773 A KR 8203773A KR 820003773 A KR820003773 A KR 820003773A KR 880000297 B1 KR880000297 B1 KR 880000297B1
Authority
KR
South Korea
Prior art keywords
operand
designator
address
instruction
bus
Prior art date
Application number
KR8203773A
Other languages
English (en)
Other versions
KR840001350A (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 JP56132717A external-priority patent/JPS5835643A/ja
Priority claimed from JP13271681A external-priority patent/JPS5835642A/ja
Application filed by 미다 가쓰시게, 가부시기가이샤 히다찌세이사꾸쇼, 야마자끼 세이지, 히다찌엔지니어링 가부시기가이샤 filed Critical 미다 가쓰시게
Publication of KR840001350A publication Critical patent/KR840001350A/ko
Application granted granted Critical
Publication of KR880000297B1 publication Critical patent/KR880000297B1/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/30181Instruction operation extension or modification
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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

Abstract

내용 없음.

Description

부정장(不定長)명령을 갖는 데이터처리장치
제1도는 본원발명이 적용되는 데이터 처리시스템의 기본적인 개념도.
제2(a)도, 제2(b)도는 본원 발명에 사용되는 가변장 명령의 포오매트 및 오페랜드 지정자의 포오매트의 일레를 나타낸 도면.
제3도의 제1도의 중앙처리장치에 본원 발명을 적용했을 경우의 구체적인 일시시에 블록도.
제4도는 본원 발명의 요부인 제3도의 데코오드유니트의 구체적인 일실시에 블록도.
제5도는 제4도의 설명에 사용되는 오페랜드 지정자의 포오매트.
제6도는 제4도의 데코오드 시켄스 콘트로울러(63)의 일실시예 구성도.
제7도는 오페랜드지정자 데코오더(66)의 동작설명에 사용하는 설명도.
제8도는 데코오더 콘트로울러(65)의 일실시예 구성도.
본원 발명은 오페랜드의 어드레싱 모우드(addressing mode)를 지정하는 오페랜드 지정자(operand specifier)가 오페레이션의 종류 및 오페랜드의 수를 지정하는 오페레이션 코오드에서 독립하고 있는 부정장명령(不定長命令)을 취급하는 데이터 처리장치에 관한 것이다.
가변장 명령체계에서는 일반적으로 오페레이션 코오드가 동일할지라도 명령어(instraction)로서는 여러가지의 길이로 되며, 더구나 명령어의 선두의 피일드는 오페레이션 코오드에 결정되어 있지만, 그 이외의 부분은 여러 가지 의미를 지니고 있다. 이 때문에, 명령어 중의 피일드의 의미는 일의적(一義的)으로 정해지지 않는다.
또 명령어 중에 포함되는 오페랜드 지정자가 어드레싱 모우드에 대응하여, 그 길이를 바꾸기 때문에 동일한 오페레이션 코오드일지라도 명령어의 길이는 여러 가지의 값을 취한다.
가변장의 오페랜드 지정자를 갖는 명령체계로서, 공지의 대표적인 두가지 예를 다음에 나타낸다.
하나는버로오우즈사(BurroughsCorporation)의계산기 B 1700을 COBOL/RPG에 적합한 아아키텍쳐로 했을 때의 명령포오매트이며, 이것은 「B 1700 COBOL/RPG-S-Language, 1058823-015, Copyright 1973, Burroughs Corporation」에 표시되어 있다.
또 하나의 예는 DEC사(Digital Equipment corporation)의 계산기 VAX 11/780의 아아키텍쳐가 갖는 가변장으로 되는 오페랜드 지정자를 갖는 명령체계이며, 이것은 VAX11 Architecture Hand book, Copyright 및 미국특허 제4,236,206호에 나타나 있다.
여기에 나타낸 종래의 두가지의 명령체계에서는 오페랜드의 형식, 어드레싱 모우드를 지정하는 부분이 가변장의 오페랜드 지정자로 규정되며, 오페코오드에서 독립하고 있다고 하는 특징이 있다.
그러나, 종래의 가변장 명령에서는 처리하는 오페랜드의 수와, 처리하는 오페랜드의 어드레싱 모우드를 지정하는 오페랜드 지정자가 1대 1로 대응되고 있으며, 예를 들어
A+B→B
A+B→C
라고 하는 두가지의 처리(오페레이션)에 대해, 두개의 오페코오드를 합당할 필요가 있었다.
즉, A+B→B라고 하는 저리에서는 두개의 오페랜드를 처리하고, 2개째의 오페랜드에 대해서는 이것을 두번 사용한다고 하는 것을 오페코오드에서 특별히 규정할 필요가 있기 때문이다.
만약 A+B→B라고 하는 처리에서, 오페랜드수를 3이라고 하고, 오페랜드 지정자를 3개 준비하면 A+B→B와, A+B→C의 구별을 의식할 필요는 없지만, A+B→B의 처리에서는 전적으로 똑같은 오페랜드 지정자를 두개 설치할 필요가 있으며, 이것은 오페랜드 지정자 그 자체가 복수바이트(일반적으로 긴것은 7바이트)를 취할때, 메모리의 실장효율을 현저하게 저하하여 바람직하지 못하다.
A+B→B와, A+B→C의 처리를 오페레이션 코오드로 구별하는 것은 메모리의 실장효율을 높이기 위해 이루어진 것이다. 즉, A+B→B의 명령에서는 오페레이션 코오드에 의해 오페랜드수를 둘로 하고, 두번째의 오페랜드 지정자를 2회 사용하도록 정의하여, 이것에 의해 오페랜드 지정자가 두개로 충분하도록 한 것이다.
그리고 A+B→B라고 하는 예에서 설명했지만, 이것은 A-B→B라고 하는 처리도 마찬가지이며, A와 B의 연산을 하고, 그 결과를 B에 격납한다고 하는 예의 모든 것에 말할 수 있는 것이다. 일반적으로 이것을 A OP B→B라고 표현하고 있다.
이와 같이 종래의 가변장 명령에서는 동일한 오페랜드를 복수회 사용하는 처리에 대해서는 다른 같은 기능의 처리와 오페코오드로 구별할 필요가 있고, 오페코오드로 지정 가능한 처리의 수에 제한이 있었다. 또 오페랜드 지정자의 수를 오페코오드로 지정하는 것에서는 오페랜드 수와 오페랜드 지정자의 수의 관계를 체크할 수 없기 때문에 명령의 에러 검출이 곤란했었다.
본원 발명의 주된 목적은 오페코오드로 구별하는 일 없이 오페랜드 지정자를 공용할 수 있는 가변장 명령을 실행하는 중앙처리장치를 제공하는데 있다.
본원 발명의 하나의 목적은 복수개의 오페랜드에 대해, 오페랜드 지정자를 공용할 수 있는 가변장 명령의 에러검출능력을 향상시킨 중앙처리 장치를 제공하는데 있다.
본원 발명의 주된 특징은 오페랜드의 어드레싱 모우드를 지정하는 각 오페랜드 지정자의 특정의 피일드에 각기 오페랜드 지정자의 종료정보(이하 종료 플랙(flag)이라고 칭함)를 부가하고, 최종의 오페랜드 지정자에만 종료플랙을 "1"로 세트하여, 이 종료플랙이 "1"에 세트되어 있는 것을 오페랜드지정자 데코오드수단이 검출했을 경우, 당해 오페랜드 지정자까지를 가지고 하나의 명령이 형성이되어 있다고 판단하여, 명령의 실행을 하도록 하고 있는 것이다. 구체적으로는 후술하지만, 오페코오드 데코오드수단이 최종의오페랜드에 관한 정보를 출력하기 전에, 오페코오드 데코오드수단이 종료플랙의 세트를 검출했을 경우(당해 오페랜드 지정자가 최후인 것을 나타내고 있을 경우), 당해 오페랜드 지정자에 대응하는 오페랜드를 재차 사용하도록 하고 있는 일이다. 이 경우, 오페코오드로 지정된 오페랜드의 수에 달하기 까지 최종의 오페랜드 지정자는 몇번이고 사용된다.
본원 발명의 하나의 특징은 종료플랙의 내용과, 오페코오드가 지정하는 오페랜드의 수에 의해 명령의 에러검출을 하도록 하고 있는 일이다. 구체적으로는 오페코오드 데코오드 수단이, 최종의 오페랜드에 관한 정보를 출력했을 때에, 오퍼랜드 지정자 데코오드수단이, 종료 플랙의 세트를 검출하지 않을 경우, 당해 명령을 에러로서 검출하도록 하고 있는 일이다.
본원 발명의 다른 목적 및 특징은 부가된 특허청구의 범위에 의해 명백할 것이다.
제1도는 본원 발명이 적용하는 데이터 처리시스템의 기본적인 개념도이다.
메모리장치(1)와, 복수의 중앙처리장치(2)가 공통버스(3)로 접속되어 있으며, 공통버스(3)를 통해서 상호간의 정보교환이 가능케 되어 있다.
메모리장치(1)는 명령 및 명령이 취급하는 오페랜드를 격납하는 메모리부(11)와, 이 명령 및 오페랜드의 독출(黜出), 기입을 제어하는 메모리 제어부(12)로 구성되고, 메모리부(11)와 메모리제어부(12)는 메모리버스(13)로 접속되어 있다.
메모리장치(1)는 본원 발명의 요부와는 직접 관계가 없으며, 그 구성 및 동작은 주지이므로, 이 부분의 상세한 설명은 생략한다.
중앙처리장치(2)는 공통버스(3)에 복수의 장치가 접속 가능하며,(도시에서는 2대)각기, 메모리장치(1)에서 명령 및 오페랜드를 액세스해서 순차 명령의 처리를 해간다.
여기서는 명령을 고속으로 처리시키기 위해, 한번 독출된 명령, 오페랜드를 각기 명령저장(21)(고속버퍼메모리)및 오페랜드저장(22)(고속버퍼 메모리)에 기록해 두고, 또 명령의 훼치데코오드 및 오페랜드 어드레스연산을 하는 명령장치(23), 오페랜드의 훼치 및 명령을 실행하는 실행장치(24)를 각기 파이프라인 처리하는 예를 나타내고 있다.
이와 같은 명령저장, 오페랜드 저장의 사용법 또는 명령장치와 실행장치를 파이프라인 처리하는 일 자체는 공지이다.
제2(a)도는 중앙처리장치(2)가 취급하는 가변장 명령의 포오매트의 일례를 나타내고 있다.
하나의 명령은 1개의 오페레이션 코오드(이것은 통칭 오페코오드라고 불리우고 있음)OP와, 각기 종료플랙 S을 수반한 1내지 복수의 오페랜드 지정자 OS1, OS2, ……OSn으로 구성되어 있다.
오페코오드 OP에서는 그 명령의 처리 내용(처리의 종류), 처리에 필요한 오페랜드의 수 및 오페랜드의 속성(데이터길이, 리이드/라이트의 구별, 데이터파이프 : 고정소수점/부동소수점……등)이 표시되며, 1내지 수(數)바이트로 구성된다.
오페랜드 지정자로는 상술한 바와 같이 당해 오페랜드 지정자가 최종의 오페랜드 지정자인지의 여부와, 오페랜드의 어드레싱 모우드를 지정한다. 오페랜드 지정자의 길이는 1∼수바이트이지만, 이것은 어드레싱 모우드에 응해서 변하며, 오페코오드의 내용과는 독립되어 있다.
또, 오페랜드지정자는 당해 명령에서 사용되는 오페랜드의 순번으로 줄지어 있고, 최후의 오페랜드 지정자에만, 종료플랙 S이 「1」로 세트되어 있다. 하나의 명령에서 데코오드한 오페랜드 지정자의 수가 오페코도드 OP로 지정되는 오페랜드의 수보다 적을 경우는 최후의 오페랜드 지정자에 대응하는 오페핸드가 반복해서 사용된다.
동일한 오페랜드를 반복해서 사용하는데는 여러 가지 실현방법이 있지만, 가장 바람직한 방법은 최후의 오페랜드 지정자를 반복해서 사용하는 것일 것이다. 이 점에 대해서는 나중에 상세히 기술한다.
오페코오드 OP로 지정하는 오페랜드수와, 오페랜드 지정자의 수가 불일치하는 예를 다음에 설명한다. 예를 들어, 오페코오드 OP가 가산처리일 경우, 그 펑크션은 일반적으로
A+B→B
로 표시되며, A
Figure kpo00001
B
Figure kpo00002
C의 경우는 세개의 오페랜드 지정자가 필요하다. 그러나, A=B=C 또는 A
Figure kpo00003
B=C의 경우처럼, 동일한 오페랜드를 복수개 사용할 경우는 동일한 오페랜드 지정자를 복수회 사용할 수 있으며, 반드시 오페코오드로 지정하는 오페랜드수와 오페랜드지정자의 수는 일치하지 않는다.
예를들면, A=B=C의 경우, 즉 A+A→A라고 하는 처리에서는 동일한 오페랜드 지정자를 3회 사용함으로써, 오페랜드 지정자는 하나로 족하다.
또 A
Figure kpo00004
B=C의 겅우, 즉 A+B→B라고 하는 처리에서는 2개째의 오페랜드 지정자를 2회 사용함으로써 오페랜드 지정자는 둘로 된다. 이와 같이 오페코오드로 오페랜드수를 3으로 한 동일 오페코오드의 곱셈처리일지라도, 오페랜드 지정자가 한개냐 두개냐 세개냐에 따라서 다른 처리를 하게 할 수 있다.
오페랜드 지정자의 구체적인 예를 제2(b)도에 나타내고 있다.
여기서는 NO1∼NO24의 예를 나타내고, 그 포오매트와, 이것에 대응하는 오페랜드를 1대 1대응으로 나타내고 있다.
제2(b)도에 있어서, 오페랜드의 ( )는 ( )내의 값을 어드레스로 한 메모리의 내용이라는 것을 나타내고 있다.
또 포오매트중, DISP는 변위를, IM은 이미디에트(데이터직접)를 나타내며, 첨자(添子)는 그 크기를 비트수로 나타내고 있다.
또한 Rx는 인덱스 레지스터, Rn은 제네럴 레지스터를 나타내며, L은 오페랜드의 크기를 바이트 단위로 나타낸 것이다.
제2(b)도에 있어서, 그 포오매트와 오페랜드의 관계는 어느 정도 이해할 수 있다고 생각되지만, 다음에 간단히 설명한다.
NO 1은 레지스터 직접의 어드레스 지정이며, Rn으로 표시되는 제네럴 레지스터 그 자체가 직접 오페랜드로 되는 것이다.
NO 2 이하는 모두 메모리를 오페랜드로 하는 것으로서, 그 어드레스 계산이 오페랜드의 난에 표시된 모양으로 행해진다.
NO 2는 간접 어드레스 지정이며, Rn으로 표시되는 제네럴 레지스터의 내용이 오페랜드의 어드레스로 되는 것이다.
NO 3,5,7에서는 Rn으로 표시되는 제네럴 레지스터의 내용에, DISP로 표시되는 값이 가산되어서, 이것이 오페랜드의 어드레스로 되어 있다.
NO 4,6,8에서는 NO 3,5,7에서 구해진 어드레스의 메모리의 내용이, 오퍼랜드의 어드레스로 되느 것이다.
NO 9∼11은 이미디에트 데이터이며, IM8, IM16, IM32의 값 그 자체가 오페랜드로 되어 있다.
NO 12∼17은 제네럴 레지스터 Rn대신에 프로그랜 카운터 PC가 사용되는 것이 NO 3∼8과는 다를 뿐이다. PC는 데코오드하는 오페랜드 지정자의 다음의 어드레스를 유지하고 있다.
NO 18∼24는 NO 3∼8에 다시 인덱스 레지스터 Rx의 값이 가산되는 것이다. 이 경우, 인덱스 레지스터 Rx의 값은 오레랜드의 데이터 길이 L가 곱센된 값(Rx·L)으로 되어 있다.
이것은 데이터길이 L에 불구하고 인덱스 레지스터 Rx의 값을, 선두로부터의 변위로서 세트할 수 있도록 하기 위해 필요한 처리이다.
즉, L(데이터길이를 나타냄)을 곱셈함으로써, 인덱스 레지스터 Rx에는 데이터길이에 불구하고, 선두로부터 몇번째의 데이터인지를 나타내는 값을 넣어 두면 되게 된다.
예를 들면 인덱스 레지스터 Rx에는 「10」이 들어 있으면, 이것은 선두로부터 10번째의 데이터로서, 그 어드레스는 데이터가 바이트일 경우는 10을 가산(L=1), 워어드의 경우는 20을 가산(L=2), 롱워어드에서는 40을 자동적으로 가산(L=4), 사용자는 데이터 길이에 불구하고 인덱스 레지스터 Rx의 값을 세트할 수 있다.
제3도는 제1도의 중앙처리장치(2)의 더욱 구체적인 블록구성도이다.
제1도에 있어서의 명령장치(23)는 제3도에 있어서, 명령 훼치유니트(IFU)(25), 얼라이너(ALIG)(26), 데코오드유니트(DU)(27) 및 어드레스 계산 유니트(AU)(28)부분이 이것에 대응하며, 실행장치(24)에는 오퍼랜드 훼치유니트(OFU)(29), 실행유니트(EU)(30)가 대응하고 있다. 제1도에서는 명령장치(23)와 실행장치(24)가 파이프 라인처리를 한다는 것을 기술했지만, 각각의 유니트는 제3도에 나타낸 것처럼 다시 명령훼치유니트 IFU(25), 데코오드유니트 DU(27), 어드레스 계산유니트 AU(28), 오페랜드훼치유니트 OFU(29), 실행유니트(30)로 분할되며, 각각이 파이프라인처리를 하는 예를 나타내고 있다.
그러나, 본원 발명의 요지는 이와 같은 파이프라인처리 그것과는 직접 관계가 없으므로, 파이프라인처리에 대해서는 상세한 설명은 생략했다.
그런데, 제3도에 있어서, 명령훼치유니트(25)는 명령을 훼치하기 위한 프로그램카운터(50)를 가지며, 명령저장(21)에서 다음에 실행될 명령을 선행해서 읽어 내는 처리를 하고 있다.
어드레스라인(100)에 의해, 읽어 내고자 하는 어드레스가 명령저장(21)에 보내져 대응하는 명령의 4바이트 분이 데이터라인(101)에 의해 명령훼치유니트 IFU(25)에 송출된다.
명령저장(21)에, 대응하는 명령이 없었을 경우는 공통버스(3)를 통해서 메모리(1)에서 당해명령을 읽어내고, 이 명령은 명령저장(21)에 저장된다.
명령의 4바이트 분이 명령훼치유니트(25)에 송출되면 프로그램카운터(50)는 플러스4(+4)되며, 다음 명령의 송출요구를 명령저장(21)에 출력한다.
이 동작은 명령훼치유니트 IFU(25)내에 있는 버퍼(도시생략)가 가득될 때까지 계속된다.
명령훼치유니트 IFU(25)로부터는 버스(103)를 통해서미리 읽어 내어 둔 명령어 얼라이너(ALIG)(26)에 송출된다.
얼라이너(26)는 데코오드유니트 DU(25)로부터의 신호선(102)에 지시된 바이트수만큼 시프트처리를 하여, 버스(104)에 해당명령을 송출한다. 여기서는얼라이너 ALIG(26)를 명령훼치유니트 IFU(25)에 포함된다고 생각해도 된다.
신호선(102)의 값을 적당히 조작하는 것으로 버스(104)에는 제5도에 나타낸 것처럼 명령의 제1오페랜드 지정자 처리시에는 좌단에 오페코오드 OP가, 이어서 첫번째의 오페랜드지정자가 줄짓도록, 두번째 이후의 오페랜드 지정자 처리시에는 1바이트의 더미를 두고 오페랜드 지정자가 배치해서 출력된다. 상기 제어는 나중에 상세하게 설명한다.
데코오드 유니트 DU(27)는 얼라이너(26)에서 송출된 오페코오드 및 오페랜드 지정자를 데코오드하여, 어드레스 계산 유니트 AU(28)로 다음의 정보를 보낸다.
(1)버스 (105)를 통해서 오드레싱 모우드를 보낸다. 어드레싱 모우드에는 앞서 설명한 것처럼 다음의(a)(h)가 있고, 이중 하나가 지정된다.
(a) : 레지스터 직접……NO1 (b) : Rn……NO2 (C)Rn+DISP라이프……NO3,5,7 (d)Rn+DISP 인다이렉트타이프……NO4,6,8 (e)이미디에트……NO9,10,11 (f)PC+DISP 타이프……NO12,14,16 (g)PC+DISP 인다이렉트 타이프……NO13,15,17 (h) (b)∼(d)에서 인덱스부착 타이프……NO18∼24 그리고 NO1∼NO24는 제2(b)도에 나타낸 오페랜드 지정자 포오매트의 NO1∼NO24에 대응하고 있다.
(2)버스 (106)를 통해서 DISP 또는 이미디에트 데이터를 32비트로 보낸다.
(3)버스 (107)를 통해서 제네럴 레지스터 Rn의 어드레스를 보낸다.
(4)버스 (108)를 통해서 인덱스 레지스터 RX의 어드레스 및 (5)버스 (116)를 통해서 어드레스 연산에 사용하는 프로그램 카운터의 값을 보낸다.
어드레스 계산유니트는 AU(28)은 버스(105)에 의해서 표시된 어드레싱 모우드에 따라 상기(a)(b)이외일때는 오페랜드의 어드레스 계산을 하고, 버스(109)에 계산후의 어드레스를 송출한다.
한편, (a)의 경우는 버스(107)의 내용을, 그대로 버스(113)에 송출하고, (e)의 경우는 버스(106)를 버스(109)에 송출한다.
오페랜드훼치유니트(29)는 상기(a)(e)이외일 때는 보내진 어드레스가 표시되어 있는 버스(109)의 내용을, 버스(110)에 송출하고, 오페랜드가 리이드시에는 오페랜드저장(22)에 리이드처리를 요구한다.
리이드오페랜드가 오페랜드저장(22)에서 버스(111)에 송출되면, 오페랜드훼치유니트(29)는 버스(112)를 통해서 실행유니트(30)에, 독출된 오페랜드를 송출하고, 또 오페랜드가 가지런히 되었다는 것을 연락한다.
오페랜드가 라이트일 때는 실행유니트(30)로부터의 기입테이터가 버스(111)에 출력되기 까지 오페랜드훼치유니트(29)는는 어드레스를 버스(110)에 게속 송출한다.
한편, 상기(a)에 대해서는 오페랜드훼치유니트(29)는 어드레스 계산유니트(28)에서 송출된 레지스터어드레스(113)에 의해, 자신이 갖는 제네럴레지스터의 액세스를 한다. (a)이외와 다른 것은 메모리를 액세스하느냐 레지스터를 엑세스하느냐의 차이 뿐이다.
또, (e)에 대해서는 버스(109)의 내용을 그대로 버스(111)에 송출하며, 실행유니트(30)에 오페랜드가 가지런히 되었다는 것을 연락한다.
또 실행유니트(30)는 데코오드유니트(27)에서 오페코오드버스(114)를 통해서 송출된 마이크로프로그램의 선두어드레스를 수신하고, 리이드 오페랜드시는 버스(112)의 오페랜드를 사용하고, 라이트 오페랜드시는 오페랜드(데이터)를 버스(111)에 출력하여 순차 명령의 처리를 한다.
또 명령이 분기명령일 경우는 버스(115)를 사용하여, 새로운 프로그램 카운터치를 훼치유니트(25)의 프로그램카운터(50)나 후술하는 데코오드유니트(27)내의 DP레지스터(69)에 세트하는 동시에 파이프라인 처리로 선행적으로 처리되고 있는 오페랜드의 각 유니트에 있어서의 처리결과를 캔슬시킨다.
이상이 하나의 오페랜드지정자에 대한 처리의 개략이며, 각 유니트(25∼30)는 파이프라인처리로, 순차 오페랜드 지정자의 처리를 병렬로 처리해 간다.
다음에 본원 발명의 요지에 관계하는 데코오드 유니트(27)에 대해서 구체예를 나타내서 상세히 설명한다.
제4도는 제3도에 나타낸 데코오드유니트(27)의 구체적인 실시예를 나타낸 블록도이다.
DP레지스터(69)는 데코오드유니트(27)가 데코오드하는 명령의 선두를 나타내고 있으며, 첫번째의 오페랜드 지정자 데코오드시는 오페코오드의 어드레스를 두번째 이하의 데코오드시는 해당 오페랜드 지정자의 선두-1의 어드레스를 나타내고 있다.
상기 어드레스는 버스(102)를 통해서 제3도에 나타낸 얼라이너(26)명령훼치유니트(25)에 송출되고 버스(104)에는 열라이너(26)에서 상기어드레스에 대응한 데이터가 복수바이트 동시에 출력되지만, 제5도에 나타낸 것처럼, 1바이트째에는 제1오페랜드 지정자의 독출의 경우는 (A)에 나타낸 것처럼, 오페코오드, 제2오페랜드지정자 이하의 독출의 경우는 (B)에 나타낸 것처럼 더미의 데이터가 출력된다. 또, 제2바이트째에는 연속 플랙. S을 포함한 오페랜드 지정자의 선두바이트가 제3바이트째에서 제7바이트째에는 당해 오페랜드 지정자의 기타의 정보가 출력된다.
버스(204)는 몇번째의 오페랜드의 처리를 하고 있는지를 나타내는 정보로서, 본 정보가 전 오페랜드 처리종료를 나타내고 있을 때, 버스(104)의 제1바이트는 오페코오드 레지스터(64)에 세트된다.
오페코오드 레지스터(64)의 출력은 해당 명령의 실행유니트(30)의 마이크로 프로그램의 선두어드레스를 구하는 마이크로 프로그램 어드레스 발생기(MAG)(61)와, 해당명령의 오페랜드에 대한 정보를 출력하는 데코오드 시켄스 콘트로울러(DSC)(63)에 보내진다.
(MAG)(61)의 출력결과(201)는 선두어드레스 레지스터(62)에 세트되며, 오페코오드버스(114)를 통해서 제1오페랜드가 오페랜드 훼치유니트 OFU(29)에서 실행유니트 EU(30)에 건네지는 것에 동기하여 EU(30)에 송출된다. DSC(63)는 예를 들면 제6도에 나타낸 구성으로서 그 안에는 제6도에 나타낸 바와 같은 정보가 미리 ROM(82)에 설정되어 있고, 오페코오드와 몇번째의 오페랜드의 처리인지의 정보를 어드레스로서 독출한다.
즉, 오페코오드 레지스터(64)에 제1바이트째가 세트되었을때에는 셀렉터 SEL(81)로 버스(200)측을 선택하도록 하고, 오페코오드를 어드레스로 하여, 그 제1오페랜드에 관한 정보가 독출된다.
독출된 정보로서는,
(1)오페랜드의 속성, 즉 리이드오페랜드인지 라이트 오페랜드인지의 정보 R/W나, 오페랜드의 데이터길이 L(바이트, 워어드, 롱워어드)을 나타내는 정보,
(2)오페랜드이 최종임을 나타내는 플랙 E 및 (3)동일명령의 다음 오페랜드의 정보가 들어 있는 어드레스가 있다.
(1)의 정보는 버스(105-1)에 출력되며, 어드레스 계산유니트(28)에 출력되고, 또(2)의 정보는 버스(203)에 출력되며, 데코오드 콘트로울러(DC)(65)에 송출된다.
또 (2), (3)의 정보는 레지스터(83)에 래치되어 다음의 오페랜드의 관한 정보를 읽어 내는 어드레스로서 사용된다. 셀렉터(81)는 (2)의 정보 E를 선택단자 T 에 받아, (2)의 정보 E가 "1"일 경우는 버스(200)측(오페코오드 레지스터 64측), E가 "0"일 경우는 버스(204)측 (다음 오페랜드정보 어드레스)을 선택한다.
따라서, E가 "0"일 경우는 차례차례로 ROM(82)에서 오페랜드에 대한 정보가 독출된다.
한편, 버스(104)중에서 종료플랙 S을 나타내는 신호선(205)은 데코오더 콘트로울러(65)에 송출된다.
여기서는 종료 플랙 S 을 1비트로 나타내고 있기 때문에, 오페랜드 지정자 데코오더(66)를 단지 통과하는 구성으로 되어 있지만, 종료 정보 S 그 자체가 오페랜드 지정자에 하나의 코오드신호로서 부가되어 있을 경우에는, 이것을 오페랜드 지정자 데코오더(66)로 검출하여, 당해 오페랜드 지정자가 최종의 오페랜드 지정자인의 여부를 검출한다.
또, 오페랜드 지정자의 선두 7비트는 버스(206)에 의해, 오페랜드 지정자 데코오더(66)에 보내진다.
7비트의 정보에 의해 오페랜드 지정자의 데코오더를 하지만, 그 예를 제7도에 의거하여 설명한다.
예를 들어, 제2(b)도의 NO3에 나타낸 (Rn+DISP8)의 오페랜드 지정자가 보내지면 제7(a)도처럼 상기 7비트중의 3비트가 010임을 검출하여 하기 정보를 출력할 수 있다.
(1)2바이트 길이의 오페랜드 지정자라는 것.
(2)버스(208)의 내용을 버스(106)로 출력할 경우, DISP의 자릿수 맞춤을 하기 위해 3바이트의 우시프트가 필요하다는 것.
(3)DISP치로서 4바이트화를 도모하기 위해, 상위 3바아트에 대해서는 DISP8의 최상의 비트(M)를 부호확장해서 출력하는 일.
(4)Rn+DISP8로서 오페랜드의 어드레스를 계산할 수 있다는 것.
(5)Rn의 정보는 1바아트째의 하위 4비트에 존재하는 일.
의 다섯 가지이다. 마찬가지로 제2(b)도의 ND 7의(Rn+DISP32)가 보내져 오면 제7(b)도에 나타낸 것처럼 종료플랙비트 S를 제외한 상위 7비트가 1110110임을 검출하여 다음 정보를 출력할 수 있다.
(1)6바이트 길이의 오페랜드 지정자라는 것,
(2)버스(208)의 내용을 버스(106)에 출력할 경우, DISP의 자릿수 맞춤을 하기 위해 1바이트 좌시프트가 필요하다는 것,
(3)DISP는 32비트 모두가 지정되어 있기 때문에 그대로 출력하지 않으면 안된다는 것,
(4)Rn+DISP32로서 오페랜드의 어드레스를 계산할 수 있다는 것,
(5)Rn의 정보는 오페랜드 지정자의 2바이트째의 하위 4비트에 존재한다는 것,
의 다섯가지이다.
이상 두가지의 예에 대해서 나타냈지만, 이것을 정리해 보면 다음 처럼 된다.
오페랜드 지정자 데코오더(66)는 보내져 온 오페랜드 지정자를 데코오드하고, 다음에 열거하는 정보를 각기 출력한다.
(1)버스 (215)에는 오페랜드 지정자의 길이를 바이트 단위로 출력한다. 예를 들면 제2(b)도의 NO 3의 오페랜드 지정자로(Rn+DISP8)의 오페랜드 지정자가 보내져 왔을 때에는 "2"를 출력한다.
(2)버스 (211)에는 디스플레이스멘트(DISP)/이미디에트(IM)데이터용 얼라이너(67)에 대한 시프트 바이트수를 출력한다.
예를 들면 (Rn+DISP8)의 오페랜드 지정자의 경우는 제7(a)도에 나타낸 것처럼 3바이트 우시프트를, (Rn+DISP32)의 경우와 제7(b)도에 나타낸 것처럼 1바이트 좌시프트를 지시한다.
(3)버스 (212)에는 얼라이너(67)에 대한 마스크바이트의 지시데이터를 출력한다.
이것은 얼라이너(67)에 대해 버스(106)에 출력하는 4바이트의 데이터중, 상위 2바이트, 또는 3바이트의 마스크를 지시하는 것으로, 1바이트나 2바이트의 DISP, IM 정보의 부호확장에 의한 4바이트화를 도모하기 위한 것이다.
예를 들면 DISP8일때에는 제7(a)도에 나타낸 것처럼 3바이트 시프트, DISP32일때는 제7(b)도처럼 앞에 「-Rn」이라고 하는 여분의 1바이트가 있기 때문에 1바이트 좌시프트 한다.
이것은 DISP8일때, 상위 3바이트에는 DISP8의 부호비트 M를 확장해서 넣어 두지 않으면 32비트의 정상적인 어드레스 계산을 할 수 없기 때문이다(버스(212)는 그 지정을 위한 것).
(4)버스(105-2)에는 어드레싱 모우드를 출력하여, 이것에 의해서 어드레스 계산유니트 AU(28)의 동작모우드를 지시한다.
어드레싱 모우드에 대해서는 제3도의 어드레스유니트(28)의 설명에 관련해서 (a)∼(h)의 8개의 모우드가 있다는 것을 이미 설명했다.
(5)버스 (216)에는 제네럴레지스터 Rn의 존재하는 위치가 1바이트째이냐 2바이트째이냐를 나타내는 정보를 출력한다.
(Rn+DISP8)시는 1바이트째, (Rn+DISP32)일 때는 2바이트째가 지시된다.
한편 버스(108)에는 오페랜드 지정자중의 인덱스 레지스터 RX의 부분을 출력한다.
또, 셀렉터(68)는 신호(216)로 지정된 제네럴 레지스터 Rn의 존재하는 위치(1바이트째냐 2바이트째이냐의 신호)에 의해서, Rn에 대응하는 부분(버스(207)의 내용 또는 버스(210)의 내용)을 버스(107)에 출력한다.
얼라이너(67)는 상술한 것처럼 오페랜드 지정자의 2바이트째에서 7바이트째까지가 버스(208)에 의해서 주어지기 때문에, 신호선(211)에서 주어진 마스크부에 대해서는 부호의 확장을 하여, 버스(106)에 4바이트의 데이터로서 출력한다.
이들은 제7(a)도, 제7(b)도에 나타낸 바와 같다.
다음에 데코오드 콘트로울러에 대해 설명한다.
이 부분은 본원 발명에 의한가변장 명령(S비트 부가한 것)을 취급할 경우의 요부이기도 하다.
데코오드 콘트로울러(65)에는 상술한 바와 같이, 오페랜드 종료플랙 E을 나타내는 신호선(203), 오페랜드 지정자의 종료플랙 S을 나타내는 신호선(205) 및 오페랜드 지정자의 바이트수(OSB)를 나타내는 신호선(215)의 세개의 신호선이 입력되어 있으며, 신호선(214)에는 가산치 DPINB를 바이트 단위로 출력한다.
이 경우의 아르골리즘은 다음과 같다.
E=1이면,
DPINCB=OSB
이것 이외로서 S=O이면,
DPINCB=OSB-1
또, S=1이면,
DPINCB=0
즉, (1)오페랜드의 종료플랙 E이 "1"일 경우는 해당명령의 오페랜드는 모두 얻어진 것으로 되며, 다음 명령의 선두를 가리키도록, DP레지스터(69)가 오페랜드 지정자의 바이트수만큼(OSB)가산되도록 신호선(214)에 출력된다.
(2) (1)이 아니고, 즉 E=0이면, 종료플랙 S이 세트되어 있을 경우는 다음의 오페랜드 지정자가 1바이트 더미를 선두바이트에 놓고, 버스(104)에 출력시키기 위해, 오페랜드 지정자의 바이트수(OSB)-1의 값이 가산되도록 신호선(214)에 출력된다.
(3) (1)이 아니고, 즉 E=0이면, 종료플랙 S이 세트되어 있을 경우는 DP레지스터(69)가 그대로의 값을 취하도록 "0"이 송출된다.
이것에 의해서, 동일한 오페랜드 지정자를 다음의 오페랜드에 대한 처리에도 사용하게 되어, 동일한 오페랜드가 반복해서 사용되게 한다.
제8도는 데코오드 콘트로울러(65)에 있어서의 상기 아르골리즘을 실현하는 하이드웨어 구성을 나타내고 있다.
즉, E=1일 경우는 출력게이트(301)가 열리며, 버스(214)에는 버스(215)의 내용 OSB이 출력되고, E=0일때는 S=0일때 게이트(307)가 온하여 출력게이트(303)가 열려서 OSB-1을 출력한다. 또 S=1일때 게이트(306)가 온하여, 출력게이트(302)가 열려서 "0"이 출력된다.
또 E 가 1일때, S 비트가 1이 아니면 오페랜드수보다 많은 오페랜드 지정자가 있다는 것을 뜻하며, 제8도에서는 앤드게이트(309)가 온으로 되어 에러신호(105-3)를 출력하여, 어드레스 계산유니트 AU(28)에 대해 에러발생을 연락하도록 되어 있다.
어드레스 계산유니트(28)에서는 에러신호(105-3)를 다음의 유니트(오페랜드훼치유니트)(29)에 연락하며, 최종적으로 실행유니트 EU(30)에 에러발생을 연락한다.
그리고 제8도에 있어서, (304), (305)는 인버어터, (306), (307), (309)는 앤드게이트, (308)은 OSB-1 의 감산기이다.
가산기(71)는 현재의 DP 레지스터(69)의 값과 신호선(214)의 값을 가산하고, 셀렉터(70)를 통해서 DP레지서트(69)에 세트한다. 이것에 의해 다음의 오페랜드 지정자의 어드레스가 버스(102)에 출력된다. 이것에 의해 얼라이너(26)는 다음의 오페랜드 지정자를 제5(a)도, 제5(b)도에 나타낸 포오매트로 버스(104)에 출력할 수 있다.
한편, 셀렉터(70)에 의해서 버스(115)의 내용을 선택하여 DP레지스터(69)에 세트하는 것으로 상술한 분기명령에 있어서의 DP레지스터(69)의 변경도 가능해진다.
그리고 가산기(72)는 DP레지스터(69)의 값에 해당 오페랜드 지정자의 길이를 나타내는 신호선(215)의 값(OSB)를 가하고, 다시 캐리입력 "1"을 가하는 것으로 데코오드하고 있는 오페랜드 지정자의 다음의 어드레스 버스(116)에 출력한다.
어드레스 계산유니트(28)는 버스(116)의 내용을 어드레스 계산에 사용하는 프로그램 카운터 PC의 값으로서 이용한다.
이와 같이, 본원 발명에 의하면, 오페코오드와 오페랜드 지정자가 독립이고, 오페랜드 지정자의 길이를 임의로 설정할 수 있는 특징을 가지면서, 또한 하나의 오페코오드에 의해, A OP B→C타이프의 명령도 각각의 명령의 정보량을 최적(最適)으로 하여 나타낼 수 있으며, 동일한 길이의 오페코오드로 지정 가능한 명령수가 증가한다.
즉, 오페코오드 길이가 동일할 경우는 본원 발명에 의하면 더욱 많은 고기능 명령을 부가할 수 있게 된다.
또, 오페랜드수와 오페랜드 지정자의 개수의 합리성 체크를 함으로써 에러검출율을 향상시킬 수 있다.
그리고 상기 실시예에 있어서는 종료플랙 S은 오페랜드 지정자의 최상위비트에 부가되어 있지만, 반드시 이 부분에 한정할 필요는 없으며, 오페랜드 지정자의 어딘가에 종료플랙을 설치하면 된다.
또 동일한 오페랜드를 복수회 반복하여 이용하는데 상기 실시예에서는 DP레지스터(69)의 내용을 경신시키지 않고 동일한 오페랜드 지정자를 반복해서 데코오드함으로써 이것을 실현하고 있지만, 이것 이외에도 데코오드 유니트에서 실행유니트 EU(30)에 특별한 신호를 보내, 앞서구해진 오페랜드를 반복해서 이용하도록 지시해도 된다.

Claims (3)

  1. 오페랜드의 어드레싱 모우드를 지정하는 오페랜드 지정자가 오페레이션의 종류및 오페랜드의 수를 확인하는 오페랜드 코오드로부터 독립되어 있는 중앙처리장치(2)는, (A)명령 및 오페랜드를 지장하는 기억수단(21, 22)에서 명령을 취출하는 명령취출수단(23, 24)과, (B)이 명령취출수단(23, 24)에 포함되며, 오페레이션코오드 및 오페랜드 지정자의 데코오드들 하는 데코오딩수단(27)과, (C)이 데코오딩수단(27)에 접속되며, 이 데코오딩수단으로부터의 오페랜드 지정자의 데코오드 결과에 의거하여 오페랜드의 어드레스를 계산하는 어드레스 계산수단(28)과, (D)이 어드레스 계산수단(28)에 접속되며, 계산된 어드레스에 의거하여 이 기억수단에서 오페랜드를 취출하는 오페랜드 취출수단(29)과, (E)이 오페랜드 취출수단(29) 및 이 데코오딩수단(27)에 접속되며, 이 오페랜드 취출수단으로부터의 오페랜드를 사용하여 이 데코오딩수단으로부터의 오페레이션 코오드의 데코오드 결과에 따라서 순차적으로 명령을 실행하는 실행수단(30)으로 이루어지며, 상기 데코오딩수단(27)은, (i)명령의 오페레이션 코오드를 데코오드하며, 오페랜드 지정자로 당해 오페랜드에 관한 정보를 출력하는 오페레이션 코오드 데코오딩수단(63)과, (ii)각 오페랜드 지정자의 특정의 피일드에 부가되어 있는 당해 오페랜드 지정자가 최종의 오페랜드 지정자인지 아닌지에 관한 정보를 데코오드하는 오페랜드 지어자 데코오딩수단(66)과, (iii)이 오페랜드 지정자 데코오딩수단으로부터 최종의 오페랜드 지정자임을 나타내는 정보를 입력했을때, 이 오페레이션 코오드 데코오딩 수단으로부터 당해 오페랜드가 최종임을 나타내는 정보를입력하지 않을 경우에, 당해 오페랜드 지정자를 다시 사용 하는 수단(65)을 포함하는 부정장 명령을 갖는 데이타처리장치.
    제1항에 있어서, 이 데코오딩수단은 이 오페레이션 코오드 데코오딩수단으로부터 최종의 오페랜드임을 나타내는 정보를 입력했을때, 이 오페랜드 지정자 데코오딩수단이 최종의 오페랜드 지정자임을 나타내는 정보를 입력하지 않을 경우에, 오페레이션 코오드 데코오딩수단에 접속된 에러검출수단과, 당해 명령을 에러로서 검출하는 오페랜드 지정자 데코오딩수단을 부정장 명령을 갖는 데이터처리장치.
  2. 제1항에 있어서, 이 데코오딩수단은 하나의 오페랜드 지정자의 데코오드가 종료할 때마다 다음에 데코오드해야 할 오페랜드 지정자를 얻기 위한 신호를 이 명령취출수단에 출력하는 수단을 포함하는 부정장 명령을 갖는 데이터처리장치.
  3. 제1항에 있어서, 이 명령은 1내지 복수 바이트의 오페레이션 코오드 및 1내지 복수 바이트의 오페랜드 지정자로 형성되며, 이 오페랜드 지정자 데코오딩수단은 각 오페랜드 지정자의 제1바이트를 데코오드하여 당해 오페랜드 지정자가 최종의 오페랜드 지정자인지 아닌지의 정보를 출력하는 수단을 포함하는 부정장 명령을 갖는 데이터처리장치.
KR8203773A 1981-08-26 1982-08-23 부정장(不定長)명령을 갖는 데이터처리장치 KR880000297B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP56-132716 1981-08-26
JP56132717A JPS5835643A (ja) 1981-08-26 1981-08-26 不定長命令のエラ−検出を行うデ−タ処理装置
JP56-132717 1981-08-26
JP132717 1981-08-26
JP13271681A JPS5835642A (ja) 1981-08-26 1981-08-26 不定長命令を扱うデ−タ処理装置
JP132716 1981-08-26

Publications (2)

Publication Number Publication Date
KR840001350A KR840001350A (ko) 1984-04-30
KR880000297B1 true KR880000297B1 (ko) 1988-03-19

Family

ID=26467236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR8203773A KR880000297B1 (ko) 1981-08-26 1982-08-23 부정장(不定長)명령을 갖는 데이터처리장치

Country Status (5)

Country Link
US (1) US4530050A (ko)
EP (1) EP0073424B1 (ko)
KR (1) KR880000297B1 (ko)
CA (1) CA1186801A (ko)
DE (1) DE3278442D1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
US4719568A (en) * 1982-12-30 1988-01-12 International Business Machines Corporation Hierarchical memory system including separate cache memories for storing data and instructions
US5206945A (en) * 1985-03-15 1993-04-27 Hitachi, Ltd. Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses
JP2539357B2 (ja) * 1985-03-15 1996-10-02 株式会社日立製作所 デ−タ処理装置
US4829424A (en) * 1985-06-28 1989-05-09 Hewlett-Packard Company Maximal length immediates with fixed sign position
US5349672A (en) * 1986-03-17 1994-09-20 Hitachi, Ltd. Data processor having logical address memories and purge capabilities
JPS62226231A (ja) * 1986-03-27 1987-10-05 Toshiba Corp プロセツサ
JPS62226232A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 分岐先アドレス算出回路
US4785452A (en) * 1986-04-25 1988-11-15 International Business Machines Corporation Error detection using variable field parity checking
US4943915A (en) * 1987-09-29 1990-07-24 Digital Equipment Corporation Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit
JP2902402B2 (ja) * 1987-09-30 1999-06-07 三菱電機株式会社 データ処理装置
JP2577023B2 (ja) * 1987-12-28 1997-01-29 株式会社日立製作所 情報処理装置のアドレス拡張制御方式
JPH01241636A (ja) * 1988-03-17 1989-09-26 Internatl Business Mach Corp <Ibm> データ処理システム
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
US4974146A (en) * 1988-05-06 1990-11-27 Science Applications International Corporation Array processor
EP0349124B1 (en) * 1988-06-27 1996-10-09 Digital Equipment Corporation Operand specifier processing
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
DE69030573D1 (de) * 1989-01-17 1997-05-28 Fujitsu Ltd Ablaufsteuerung zur decodierung von befehlen variabler länge für ein mikroprozessor
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
DE69231011T2 (de) * 1991-02-08 2000-09-28 Fujitsu Ltd Cachespeicher zur Verarbeitung von Befehlsdaten und Datenprozessor mit demselben
JP2970821B2 (ja) * 1991-08-21 1999-11-02 松下電器産業株式会社 データ処理装置
GB2263565B (en) * 1992-01-23 1995-08-30 Intel Corp Microprocessor with apparatus for parallel execution of instructions
SG45269A1 (en) * 1992-02-06 1998-01-16 Intel Corp End bit markers for instruction decode
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
US6003120A (en) * 1993-12-30 1999-12-14 Intel Corporation Method and apparatus for performing variable length processor write cycles
GB9412434D0 (en) 1994-06-21 1994-08-10 Inmos Ltd Computer instruction compression
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
US5630055A (en) * 1995-05-05 1997-05-13 Digital Equipment Corporation Autonomous pipeline reconfiguration for continuous error correction for fills from tertiary cache or memory
US5958061A (en) * 1996-07-24 1999-09-28 Transmeta Corporation Host microprocessor with apparatus for temporarily holding target processor state
US6370636B1 (en) 1996-07-31 2002-04-09 Hyundai Electronics Industries Co., Ltd. Accessing byte lines from dual memory blocks and aligning for variable length instruction execution
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6223275B1 (en) * 1997-06-20 2001-04-24 Sony Corporation Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
US6425070B1 (en) * 1998-03-18 2002-07-23 Qualcomm, Inc. Variable length instruction decoder
US6292845B1 (en) 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
US7376814B1 (en) 1999-09-07 2008-05-20 Nxp B.V. Method for forming variable length instructions in a processing system
US6721875B1 (en) * 2000-02-22 2004-04-13 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US7711926B2 (en) 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
DE10120522A1 (de) * 2001-04-26 2002-11-07 Infineon Technologies Ag Verfahren zum Erkennen einer korrekten Befehls-Einsprung-Adresse bei Verwendung unterschiedlich langer Befehlsworte
US6826681B2 (en) 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
JP2007122626A (ja) * 2005-10-31 2007-05-17 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US8639882B2 (en) * 2011-12-14 2014-01-28 Nvidia Corporation Methods and apparatus for source operand collector caching

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL255604A (ko) * 1959-09-08
US3377620A (en) * 1964-04-10 1968-04-09 Mohawk Data Science Corp Variable word length internally programmed information processing system
US3344404A (en) * 1964-09-10 1967-09-26 Honeywell Inc Multiple mode data processing system controlled by information bits or special characters
US4109310A (en) * 1973-08-06 1978-08-22 Xerox Corporation Variable field length addressing system having data byte interchange
JPS5931734B2 (ja) * 1977-10-25 1984-08-03 デイジタル イクイプメント コ−ポレ−シヨン 特別のオペランド指定子を持つた命令を実行する中央処理装置
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
EP0073424A3 (en) 1984-05-23
KR840001350A (ko) 1984-04-30
CA1186801A (en) 1985-05-07
US4530050A (en) 1985-07-16
EP0073424B1 (en) 1988-05-04
EP0073424A2 (en) 1983-03-09
DE3278442D1 (en) 1988-06-09

Similar Documents

Publication Publication Date Title
KR880000297B1 (ko) 부정장(不定長)명령을 갖는 데이터처리장치
US4520439A (en) Variable field partial write data merge
US4628436A (en) Digital controller
JPS6029126B2 (ja) デ−タ処理装置
JPH04156613A (ja) 命令バッファ装置
US4539635A (en) Pipelined digital processor arranged for conditional operation
US3735355A (en) Digital processor having variable length addressing
JPS623337A (ja) デ−タ・ストア方式
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPH027097B2 (ko)
US7631166B1 (en) Processing instruction without operand by inferring related operation and operand address from previous instruction for extended precision computation
CA2026225C (en) Apparatus for accelerating store operations in a risc computer
CA1155231A (en) Pipelined digital processor arranged for conditional operation
US3425036A (en) Digital computer having a generalized literal operation
EP0013291B1 (en) Instruction fetch control system in a computer
JP2581565B2 (ja) ガード付命令を実行するデータ処理装置
JPS6149692B2 (ko)
KR880000817B1 (ko) 데이터 처리장치 및 그 방법
JP2901247B2 (ja) 掃出し制御方式
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
US20030126397A1 (en) Configurable addressing apparatus
JP2987281B2 (ja) プロセッサ
JPS6149693B2 (ko)
JP3954159B2 (ja) 同期式ramのアクセス制御回路、データ処理プロセッサ及びその制御方法
JPS6221131B2 (ko)