KR950012116B1 - 명령버퍼장치 - Google Patents

명령버퍼장치 Download PDF

Info

Publication number
KR950012116B1
KR950012116B1 KR1019920701466A KR920701466A KR950012116B1 KR 950012116 B1 KR950012116 B1 KR 950012116B1 KR 1019920701466 A KR1019920701466 A KR 1019920701466A KR 920701466 A KR920701466 A KR 920701466A KR 950012116 B1 KR950012116 B1 KR 950012116B1
Authority
KR
South Korea
Prior art keywords
command
code
basic
extension
output
Prior art date
Application number
KR1019920701466A
Other languages
English (en)
Inventor
1995년10월14일
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
Application filed by 후지쓰 가부시끼가이샤, 원본미기재 filed Critical 후지쓰 가부시끼가이샤
Application granted granted Critical
Publication of KR950012116B1 publication Critical patent/KR950012116B1/ko

Links

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/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/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
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted 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/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/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/382Pipelined decoding, e.g. using predecoding

Landscapes

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

Abstract

내용 없음.

Description

[발명의 명칭]
명령버퍼장치
[도면의 간단한 설명]
제1도는 본 발명에 의한 명령버퍼에서의 데이터처리에 관한 원리를 설명하는 도면.
제2도는 본 발명에 의한 명령코드렬의 재배치에 구체예를 나타낸 도면.
제3a도는 본 발명에 사용되는 명령코드의 단위길이를 구성하는 구조예를 나타낸 도면.
제3b도는 본 발명에 사용되는 명령코드렬의 구체예를 나타낸 블록도.
제4도는 종래의 명령버퍼장치의 예를 나타낸 도면.
제5도는 종래의 명령버퍼장치를 사용한 명령 코드렬의 독출방법의 예를 나타낸 도면.
제6도는 본 발명에 의한 명령버퍼장치의 일구체예를 나타낸 블록도.
제7도는 본 발명에 의한 명령코드렬의 재배치에 구체예를 나타낸 도면.
제8도는 본 발명에 의한 두명령을 동시에 처리하는 경우에 적합한 명령버퍼장치의 구체예를 나타낸 도면.
제9도는 제8도에 나타낸 장치를 사용하여 두명령을 동시에 처리하는 경우의 일구체예를 나타난 도면.
제10도는 제8도에 나타낸 장치를 사용하여 두 명령을 동시에 처리하는 경우의 다른 구체예를 나타낸 도면.
제11도는 본 발명에 의한 명령버퍼에 사용된 출력위치 지정회로(17)와 선택회로(18)를 나타낸 블록도.
제12도는 본 발명에 의한 명령버퍼장치에 사용된 출력위치 지정회로(17)의 논리구성을 나타낸 블록도.
제13도는 본 발명에 의한 명령버퍼장치에서 두명령이 동시에 처리되는 경우의 제2명령코드버스용출력위치 지정회로의 일구체예를 나타낸 블록도.
재14도는 본 발명에 의한 명령버퍼장치에서 두명령을 동시에 처리하는 제1 및 제2포트의 선택방법을 나타낸 도면.
[발명의 상세한 설명]
[기술분야]
본 발명의 데이터 처리 시스템에 있어서 명령디코더와 명령버퍼에 관한 것이며 더 구체적으로는 가변길이의 명령코드형식의 명령세트를 처리하는 데이터 처리시스템에 관한 것이다.
[배경기술]
가면길이의 명령코드형식의 명령세트는 명령의 종류를 구별하는 코드를 함유하는 기본부와 그 기본부의 지정에 의해서 부가되는 확장부를 구비하고 있다. 하나의 명령은 하나 이상의 기본부를 포함하고 있다.
확장부는 기본부에 포함되는 실효어드레스필드의 코드에 의해서 그 유무, 길이 등의 속성이 정의되고 그것을 지정한 기본부의 직후에 삽입된다. 다시말하면 이 기본부는 PLA 등의 디코더에 의해서 명령구별을 위한 해석을 요하는 부분이다. 이 확장부는 디스플레이멘트치나 이미디에트치를 생성하는 데이터부이다.
제3a도는 종래기술에서 전형적으로 사용되는 명령형식의 일예를 나타낸 도면이다. 명령형식은 2항 연산의 경우가 많다. 따라서 2항 연산에 대해서 논의하기로 한다. 기본부들(1,2)은 하나의 단위길이(예, 2바이트)를 갖는 2개의 기본부이다. 각 기본부는 실효어드레스필드(EA1,EA2)를 각각 갖고 소오스 오프랜트 및 디스티네이숀 오퍼랜드를 지정한다. 명령의 종별은 다른 필드들(OP1,OP2)에 의해서 지정된다.
실효어드레스필드는 오퍼랜드가 레지스터, 이미디에이트치, 메모리상의 데이터중의 어느 것인가와 메모리위의 데이터인 경우에는 그 어드레스 게산방법도 지정하는 코드화된 정보를 갖는 필드이다. 어드레스 계산 방법으로서는 어드레스 그 자체를 확장부에서 지정하는 절대어드레스모드, 확장부의 값과 레지스터나 프로그램 카운터(PC)치를 가산하는 레지스터 상대 어드레스 모트, PC상대 어드레스나 스택포인터의 갱신을 행하는 SP상대 인크리멘트모드등이 있다. 기본부의 길이는 명령 코드마다 일정한 고정 길이를 갖는 것을(명령코드가 다르면 그 길이가 바뀐다) 주목해야 할 것이다.
한편 확장부가 이미디에이트치의 경우에 오퍼랜드의 사이즈에 따라서 길이가 정해진다. 오퍼랜드의 사이즈는 1바이트, 2바이트(하프워드), 4바이트(워즈) 또 8바이트 (롱워드) 등이 지정된다. 1바이트이미디에이트치의 경우에 명령코드의 단위길이가 2바이트이면 그 길이가 그 명령코드를 채우는데 불충분해진다. 그와 같은 경우에 여분의 데이터(예, 0)가 상위바이트에 가해져서 단위길이에 맞춘다. 메모리 어드레스 지정의 경우에는 확장부는 디스플레이멘트치로 간주되어 제로, 레지스터 또는 PC와 가산하여 어드레스를 유도하기 위하여 사용된다. 이 경우에 확장부의 길이도 실효어드레스필드로 지정되어 16비트디스플레이멘트치, 32비트디스플레이멘트치 또는 64비트디스플레이멘트치 등으로 지정된다. SP상대 어드레스지정의 경우나 디스플레이멘트치를 가산하지 않는 레지스터 간접 어드레스지정의 경우에는 확장부는 설비되지 않는다. 확장부는 그것을 지정하는 실효어드레스를 채운 직후에 삽입된다.
제3b도에 기본부와 확장부로 구성되는 명령코드렬의 일례를 나타냈다.
상기 예에서는 레지스터는 기본적으로 기본부로 형성되어 있다. 각 기본부에 이어서 배열된 확장부의 길이는 가변길이이고 단위길이(L)의 n배로 표시되어 있다.
다음에 그와같은 명령코드렬을 사용하여 데이터 처리를 행하는 종래방법을 제4,5도를 참조하여 설명하겠다.
즉, 제5a도는 이미디에이트치(32비트)의 명령형식을 갖는 레지스터를 나타낸다. 제5도에 나타낸 것과같이 기본부(1)와 확장부(1)를 갖고 기본부(2)는 확장부를 갖지 않는다.
제4도에 나타낸 것과같이 외부메모리 또는 캐슈(1)로부터 얻은 명령코드렬은 명령버퍼(2)의 데이터 기억부(3)에 격납된다. 기억부(3)는 레지스터 파일등으로 구성되고 그 1엔트리(4)는 예를들면 64비트 프로세서의 경우에 16바이트정도, 32비트포르세서의 경우에 8비트정도를 갖는다. 명령코드렬은 각각 어드레스의 16바이트경계 도는 8바이트경계의 배치에 따라서 복수의 엔트리 4,4',4"..내에 기억된다. 4도의 예는 32비트 길이의 확장부는 지정되지 않는다.
한편 명령버퍼(2)에는 명령디코더로 공급될 명령렬의 서두를 나타내는 독출포인터(7)가 설비되어 있다. 포인터(7)는 선두위치(P1)를 포함하는 엔트리(4)와 또 엔트리(4)내의 위치를 특정지운다. 가변길이 명령이기 때문에 명령의 선두가 8바이트경계나 16바이트경계를 반드시 가리키지는 않으므로 엔트리(4)의 도중위치(P1)가 선두가 되는 경우에 2엔트리 4,4'에 걸쳐서 독출을 행한다.(제5도(b)참조), 따라서 명령버퍼 (2)는 명령코드단위길이마다 독출하여 엔트리(4)의 디코딩을 행한다.
제5도는 독출방법을 나타내고 있다.
이와같이 독출된 코드는 독출포트출력의 형태를 취한다. 이 코드가 명령코드버스로 직접 출력하면 명령디코딩을 위하여 PLA에 의해서 픽업될 버스위의 위치를 지정하기 어렵게 한다. 따라서 명령코드위의 선두가 버스의 최상위 위치가 되도록 코드를 회전시켜 버스로 출력한다.(제5도(b)참조).
이 경우에 제2기본부(2)의 위치가 제1실효어드레스를 위한 확장부의 존재 때문에 하나의 명령이 복수의 기본부(1,2)로 구성되는 경우에 엇갈려 버린다. 따라서 제1실효어드레스가 확장부를 갖지 않는 경우에는 제1 및 제2의 기본부(1,2)를 동시에 디코딩하기 용이하지만 제1 실효 어드레스가 확장부를 갖는 경우에 확장부(2)의 길이는 디코딩해보지 않으면 모르므로 제2기본부(2)를 디코딩하기 위하여 동일사이클로 PLA로 입력할 수는 없고 복수 사이클로 나누어 디코딩을 행하지 않으면 않되게 된다. 소오스오퍼랜드가 메모리 데이터 또는 이미디에이트치이고 데스티네이숀 오퍼랜드가 레지스터인 경우에는 명령코드렬이 동일길이일때에도 디코딩하는데 2사이클을 요한다.
그러나, 레지스터와 메모리간의 연산은 1사이클로 디코딩할 수 있다. 그와같은 경우에 제2기본부에 의해서 지정된 확장부와 제1기본부가 메모리를 지정한 경우의 확장부가 선두로부터의 상대위치가 다르다. 따라서 이미디에이트 디스플레이먼트 생성회로의 하드웨어량이 증대될 수 있다.
본 발명은 상기 문제점을 개량하여 하나의 명령이 복수의 명령코드기본부의 조합으로 지정될 때에 그들 기본부간에 임의의 길이의 확장부를 삽입해도 동시에 디코딩을 행할 수 있는 버퍼수단을 제공하는 것을 목적으로 하고 또 그 경우의 하드웨어량의 증가를 최소화 하는 것을 목적으로 한다.
[발명의 개시]
상술한 목적을 달성하기 위하여 본 발명은 다음 구성을 채용한 것이다.
즉 명령종류를 구별하는 코드를 포함하는 기본부와, 이 기본부의 지정에 의해서 부가되는 확장부로 되고 이 기본부와 확장부는 각각 소정의 단위길이의 정수배의 길이를 갖고 또 이 확장부의 길이는 각각 가변이고 또 이 기본부와 확장부를 하나 또는 복수 조합시킴으로써 하나의 명령이 구성되는 명령코드렬을 처리하는 명렬버퍼 장치에 있어서 이 명령코드렬의 단위길이마다 그것이 기본부인지 기본부가 아닌지를 판단하여 소정의 마크를 부여하는 마크부여수단, 적어도 이 명령코드렬을 독출하여 기억하는 코드기억수단, 이 마크를 기억하는 마크기억수단 및 이 마크기억수단으로부터의 정보에 응답하여 이 코드기억수단에서 소정의 명령코드렬을 선택하여 출력하는 출력선택회로를 갖는 명령버터 수단, 명령디코더수단 및 이 명령버퍼수단과 이 명령디코더수단을 접속하는 버스로 구성되어 있고 이 버스는 복수의 상이한 필드로 구분되어 있고 이 명령버퍼수단은 이 명령디코더 수단으로 출력하는 명령코드렬의 선두위치를 지정하는 수단과 이 선두위치에서의 코드렬중에서 당해 마크가 기본부를 나타낸 부분을 하나 또는 복수코드, 사전에 정해진 소정길이를 초과하지 않는 범위로 연결하여 이 버스의 한쪽의 필드로 출력시켜 이 선두위치로부터의 코드렬중에서 당해 마크가 기본부가 아닌 것을 나타내는 부분을 이 버스의 다른쪽 필드로 출력시키도록 제어하는 제어회로가 포함되어 있는 명령버퍼장치이다.
또 본 발명에서는 상기 기본구성을 갖는 명령버퍼장치에 있어서 가변길이 확장부를 갖는 복수의 명령코드렬을 동시에 처리할 수 있도록 복수의 디코더를 구비한 명령버퍼장치를 형성하는 것이고 또 이 확장부는 그 직후의 기본부를 나타내는 마크에 의해서 최하위 비트위치를 식별하고 각각 확장부의 최하위 비트가 대응하는 버스위의 필드의 최하위 비트로 출력되게 제어되도록 구성된 명령버퍼장치이다.
한편 본 발명에서는 버스폭을 작게하여 하드웨어의 증가를 억제하는 경우에는 1회에 처리할 수 있는 확장부의 수를 제한하고 몇번째의 기본부에 대한 확장부가 아니고 확장부를 갖는 기본부중에서 몇번째에 위해서 출력하는 확장부용 필드를 정하게 할 수 있게하는 명령버퍼장치가 제공되고 또 복수의 명령디코더와 명령실행부를 구비한 시스템에서는 상기 마크를 복수비트로 구성하고 각 기본부가 그전의 기본부와 동일 디코더로 처리할 수 있는지를 마크로 판단할 수 있게하고 동일 디코더로 디코딩할 수 없는 기본부로 구획된 명령코드렬중에서 상기와 같은 명령코드렬의 기본부 및 확장부별 재배치를 행하게 하는 명령버퍼장치에 있어서의 제어회로가 제공된다.
발명을 실시하기 위한 최량의 태양
이하에 본 발명에 의한 명령버퍼장치의 구체예를 도면을 참조하여 상세히 설명하겠다.
제1도는 본 발명에 의한 명령버퍼장치의 데이터 처리의 원리를 나타낸 도면이다.
제2도는 본 발명의 명령코드수준의 재배치를 나타낸 일예이다.
최대사이즈의 구성에서는 버스의 폭이 제1 및 제2의 기본코드와 각각이 최대길이의 확장부를 갖는 경우를 고려하여 결정되고 명령코드단위길이가 2바이트이고 확장부의 최대길이가 각각 4바이트(32비트 프로세서)로 한 경우에 12바이트로 되고 확장부의 최대 길이가 8바이트(64비트 프로세서)로 한 경우에 20바이트로 된다. 그러나 캐슈나 명령버퍼의 엔트리는 2의 n승 단위가 아니면 제어하기 어려우므로 명령버퍼의 엔트리는 16바이트나 32바이트의 길이로 구성된다.
한편 본 발명에 있어서는 상기의 명령코드렬을 구성하는 각 단위길이마다 마크부재들 M(M1∼M3)이 마련되어 있고 각 단위길이마다 그 내용을 표시하는 정보가 기입된다.
본 발명에 있어서는 상기의 명령코드렬을 제1도(b)에 나타낸 것과같이 버스를 기본부용필드들(X1,X2)과 확장부용 필드들(Y1,Y2)로 사전에 구분해두고 기본부들(1,2)의 명령코드를 각각 대응하는 기본부용 필드들 X(X1,X2)에 또 확자부들(1,2)의 명령코드를 각각 대응하는 확장부용 필드들 Y(Y1,Y2)로 배분하여 출력하는 것이다.
그후에 제1도(C)에 나타낸 것과같이 당해 변환된 명령코드렬은 명령레지스터 (10)로 전송되어 명령디코더(9)의 지령에 의해서 이미디에이트 발생회로 또는 디스플레이스멘트 발생회로에 의해서 각각 처리가 행해진다.
제1도에서는 2개의 기본부와 최대 2단위길이의 2개의 확장부를 재배치하여 버스로 출력하는 태양을 나타내고 있으나 확장부의 단위길이의 수에 따라서 확장부의 배치방법이 달라진다.
제2도는 확장부의 몇가지 배치예를 나타내고 있다.
제2도에 나타낸 것과같이 기본부는 버스의 상위측(X)에 연결되고 확장부는 대응하는 확장부 필드(Y)로 출력하지만 2단위 길이의 확장부는 그대로 각 필드로 출력되고(제2도(b)), 1단위길이의 확장부는 각 필드의 하위측의 1단위길이로 출력되어 상위측은 무효로 된다(제2도(b)).
기본부는 그들간에 확장부가 있을때에도 버스위의 고정위치로 출력되므로 명령디코드는 1사이클로 양기본부를 조합하여 디코딩할 수 있다.
한편 명령버퍼 독출에어에서는 명령버퍼의 독출포인터가 지지하는 단위길이 코드가 버스의 제1기본부 필드, 제어마크가 기본부를 나타내는 다음 단위길이를 제2기본부 필드로 출력하고 양자에 의해서 끼워지는 부분이 있으면 그것을 제1확장부필드, 제2기부분와 다음 기본부 마크로 둘러싸이는 부분을 제2확장부필드로 최하위 비트의 위치를 맞추어 출력한다.)제2도(c)(d)(e)).
본 발명에서는 명령버퍼(2)로부터의 독출데이타를 명령디코더(9)로 전송하기 전에 멍령버스가 사전에 기본부용 필드들과 확장부용필드들로 분할한다. 입력명령 코드렬은 두 기본부들(1,2)내의 명령코드들이 인접위치의 기본부용 필드들로 서로 출력하고 기본부들에 대응하여 각자 배치된 확장부들(1,2)은 최대 2단위길이의 확장부의 명령코드를 대응하는 확장부용 필드들로 출력된다.
따라서 복수의 기본부들(1,2)의 사이에 확장부가 존재하는 경우에도 기본부들이 고정 위치들로 출력되므로 명령디코드가 한 번에 양자를 조합하여 디코딩할 수 있다.
본 발명에 의하면 명령세크들가에서 빈번히 생기는 2항 연산명령을 확장부의 유무에 상관없이 하나의 명령디코더로 동시에 디코딩할 수 있다.
이하에 본 발명에 의한 상술한 원리를 실현시키는 하드웨어 구성을 제6도를 참조하여 설명하겠다.
제6도는 본 발명에 의한 명령버퍼장치의 일구체예를 나타낸 블록도이고 상기한 명령의 종류를 구별하는 코드를 포함하는 기본부와, 이 기본부의 지정에 의해서 부가되는 확장부로 되고 이 기본부와 확장부는 각각 소정의 단위길이의 정수배의 길이를 갖고 또 이 확장부의 길이는 개별적으로 가변이도록 구성되어 있고 또 이 기본부와 확장부를 하나 또는 복수 조합함으로써 하나의 명령이 구성되는 명령코드렬(C)을 처리하는 명령버퍼장치이고 이 명령코드렬(C)의 단위길이마다 그것이 기본부인지, 기본부가 아닌지를 판단하여 소정의 마크를 부여하는 예를들면 디코더등으로 구성되는 마크부여수단 (15)과 적어도 이 명령코드렬(C)를 독출하여 기억하는 코드기억수단(3), 이 마크를 기억하는 기억수단(16) 및 이 마크기억수단으로부터의 정보에 응답하여 이 코드기억수단에서 소정의 명령코드렬을 선택하여 출력하는 출력선택회로(8)를 갖는 명령버퍼수단 (2), 명령디코더수단(9) 및 이 명령버퍼수단(2)과 이 명령디코더수단(9)을 접속하는 버스(14)로 구성되어 있고 이 버스(14)는 복수의 다른 필드(X,Y)로 구분되어 있고, 또 이 명령버퍼수단(2)은 이 명령 디코더수단(9)으로 출력하는 명령코드렬의 선두위치를 지정하는 독출포인터를 구성하는 선두위치지정수단(4)과 이 선두위치로부터의 코드렬중에서 당해 마크가 기본부를 나타내는 부분을 하나 또는 복수코드를 사전에 정해진 소정의 길이를 초과하지 않는 범위로 연결하고 이 버스의 한쪽 필드로 출력시켜 이 선두위치로부터의 코드렬중에서 당해 마크가 기본부가 아닌 것을 나타내는 부분을 이 버스의 다른쪽 필드로 출력시키도록 제어하는 제어회로(20)가 포함되어 있는 명령버퍼장치이다.
본 발명에 있어서는 제어회로(20)는 이 마크기억수단(16)과 독출포인터로 되는 선두 위치지정수단(4)에 접속된 출력위치 지정수단(17)과 출력선택회로(8)로 구성되어 있는 것이다.
버스위로 출력된 명령코드렬은 명령레지스터(10)를 거쳐서 이미리에이트/디스플레이스멘트 발생회로(12)로 입력되어 명령디코더의 지령에 존하여 소정의 연산을 실행하여 명령실행부(13)로 출력되고 또 11은 ROM 등의 마이크로 명령제어수단임을 주목해야 할 것이다.
다음에 본 발명에 있어서 상기 상치를 사용하여 데이터 처리를 실행하는 수준을 제7도를 참조하여 설명하겠다.
명령코드버스(14)는 6단위길이(1단위길이는 여기서는 2바이트로 한다)의 폭을 갖고 제1 및 제2기본부 필드가 각 단위길이, 제1 및 제2확장부 필드가 각 2단위 길이씩의 필드로 된다. 명령버퍼의 데이터 기억부(3)는 1엔트리(4)가 8단위길이의 복수의 엔트리(4,4',4"...)로 구성된다. 외부메모리 또는 캐슈로부터의 8단위길이가 1회로 전송되든지 또는 4단위길이씩 2회로 분할하여 명령버퍼(2)로 전송된다. 프리디코더(15)는 명령버퍼(2)에 코드렬을 보낼때에 분기선명령으로부터 다음 분기가 나타나도록까지의 코드렬을 순차 해독하여 하나앞의 기본부와 동시에 디코드하지 않는 기본부에는 제어마크 M "10" 하나앞의 기본부와 동시 디코딩할 수 있는 기본부에는 제어마크 M "01", 확장부에는 제어마크 M "00"를 부가하고 명령버퍼의 코드 기억부와 대응하는 마크기억부 (16)에 기억한다. 디코더(9)가 하나로 2비트의 제어마크 M을 부여한 것은 독출포인터의 갱신을 간단화하기 위한 것이다. 동시에 디코딩할 수 없는 명령코드가 제2기본부의 위치에 와서도 디코더는 그것을 무시할 뿐이지만 포인터를 갱신하려면 제2기본부 및 그 확장부를 동시에 처리할 것인지의 여부를 알 필요가 있고 이것을 명령디코더로부터 정보를 받아 제어하려면 타이밍이 어려워지므로 프리디코더(15)가 판단한다.
독출포인터(7)는 명령버퍼(2)에서 독출하는 명령코드렬(C)의 선두(D)를 지시하고 있고 복수비트로 되는 포인터의 하위 3비트가 1엔트리(4)의 8단위길이의 코드내중 어느것을 선택하고 포인터의 그이외의 필드가 엔트리(4,4',4"...)중의 어느것의 선택에 사용된다.
명령버퍼의 코드기억부(4)를 단위길이마다 필드(0∼7)로 분할했을 때에 포인터(7)의 하위 3비트가 필드(n)를 지시할 때에는 필드(n-7)가 포인터 상위를 나타내는 제1엔트리(4)로부터 독출되고 필드 0∼(n-1)는 포인터(7)의 상위가 나타내는 이 엔트리(4)의 다음 엔트리(4')에서 독출된다. 포인터 상위가 최후의 엔트리(4")를 나타내는 경우에 다음 엔트리는 랩아라운드하여 최초의 엔트리(4)를 나타내는 것으로 한다.
제7도(b)는 기억부에서 독출된 결과이다.
종래예에서는 이것을 포인터의 하위 3비트가 나타내는 위치의 코드를 버스의 선두에 오도록 회전하여 버스폭분의 길이로한(C)로서 버스로 출력된다.
본 발명에서는 코드부와 동시에 독출된 마크부(M)의 내용에 따라서 기본부와 확장부를 구별하여 버스위의 기본부(1)용 필드(X2), 기본부(2)용 필드(X2), 확장 부 (1)용 필드(Y2), 및 확장부(2)용 필드(Y2)에 맞추어 재배치한(d)가 버스로 출력된다. 실제회로에서는 (b)→(c)→(d)의 순으로 재배치하는 것이 아니고 (c)를 빼고 (b)로부터 직접 (d)로 재배치를 행하는 것이다.
이 재배치의 제어는 제6도의 출력위치 지시회로를 포함하는 제어회로(20)에서 행해진다. 원리로서는 포인터가 지시하는 필드의 기본부가 기본부(1)용 필드로 되고 제2기본부용 필드에 포인터가 지시하는 곳에서 뒤에 최초에 제어마크8(M)가 "0"이외가 되는 것이 선택된다. 확장부(1)용 필드에는 제2기본부보다 앞의 단위길이의 코드렬이 출력된다. 그 2단위길이의 코드렬이 확장부이외를 포함할 때에는 이미디에이트 및 디스플레이스멘트생성시에 무시된다.
확장부(2)용 필드는 선두보다도 3번째의 기본부위치를 구하여 그 직전의 최대 2단 길이의 코드렬을 출력한다.
독출을 행한후의 포인터는 제2기본부의 제어마트(M)가 "10"이면 제1기본부로부터 제2기본부의 직전까지의 코드길이, 제2기본부의 제어마크(M)가 "01"이면 제1기본부로부터 제3번째의 기본부의 직전까지의 코드길이를 가산한다.
명령버퍼(2)로부터 버스(14)로 출력된 내용은 제1, 제2기본부필드(X1,X2)가 명령디코더(9)를 위한 PLA로 입력되고 또 전체필드가 명령레지스터(10)로 취입된다. 확장부용 필드(Y)는 이미디에이트 및 디스플레이스멘트 생성을 위하여 사용되고 명령레지스터의 번호를 빼기 위해서나 특수한 형식의 명령으로 기본부중에 묻혀 있는 이미디에이트 및 디스플레이스멘트를 빼내는 등에 사용된다.
일반적으로 이미디에이트 및 디스플레이스멘트 생성에서는 데코더로부터 제1 및 제2확장용 필드에 대해서 이미디에이트인지 디스플레이스멘트인지의 지정과 사이즈 (1바이트, 2바이트, 4바이트)를 지정하면 된다. 이미디에이트 및 디스플레이스멘트 생성부가 1개의 이미디에이트와 1개의 디스플레이스멘트 생성을 동시에 할 수 있는 것일때는 2개의 디스플레이스멘트(메모리-메모리간 연산)이나 2개의 이미디에이트(특수명령)을 생성하는 명령은 동시디코딩할 수 없는 것으로서 프리디코더로 제어마크 "10"으로 분할한다.
본 발명에 있어서 가변길이 명령의 경우에 명령버퍼의 기억부로부터 독출한 코드를 단위길이마다 버스위의 임의의 위치로 출력하기 위한 경로는 종래부터 존재하므로 출력위치를 지정하기 위한 회로를 제외하면 하드웨어의 증대는 없다.
버스의 제1 및 제2기본부필드에는 명령디코딩을 위한 PLA 등의 회로가 접속된다. 또 제1 및 제2확장부 필드들은 명령레지스터를 통하여 각각 이미디에이트 및 디스플레이멘트 생성부에 접속된다. 데스티네이숀에 이미디에이트를 지정할 수는 없으므로 특수한 명령으로 제2오퍼랜드에 이미디에이트를 지정하는 일이 없거나 있거나 빈도가 적으면 제2이미디에이트 생성회로는 생략해도 좋다.
확장부는 명령버퍼의 출력위치, 선택회로를 이용하여 최하위 비트측의 위치를 맞추었으므로 확장부의 사이즈에 의해서 상위측을 무시하는 것만으로 좋고 이미디에이트 및 디스플레이스멘트 생성부의 하드웨어를 적게할 수 있다.
소오스 및 데스티네이숀이 공히 메모리 지정인 경우에는 하나의 디코더로 동시에 디코딩하여 처리하기 위하여 디스플레이멘트 발생부를 포함하는 계산부와 오퍼랜드 억세스를 위한 경로가 2중이여야 하지만 어드레스, 데이터 버스의 2중화나, 캐슈 메모리의 2포트화 등의 하드웨어의 원가가 가중되기 때문에 통상 단일 디코더로 동시에는 디코딩하지 않는다.
따라서 2항 연산명령을 1회로 디코딩할 때에 복수의 확장부가 있는 것을 이미디에이트 메모리간 연산의 경우만으로 된다. 이것이 메모리-메모리간 연산에 비해서 출현빈도가 낮고 그것만을 의해서 명령버퍼의 출력버스의 폭을 넓게 하는 것은 성능-원가의 밸런스란 점에서 바람직하지 않다고 판단되는 경우에 확장부를 위한 버스상의 필드는 줄일 수 있다.
그 경우에 제1 및 제2기본부의 버스로의 출력은 바뀌지 않으나 버스위 확장부를 출력하기 위한 필드는 하나로 되고 명령선두로부터 최초로 출현하는 확장부가 선택되어 그 필드로 출력된다.
본 발명에서는 명령버퍼로부터 코드를 출력하기까지의 어느 시점에 명령의 프리디코딩이 필요하게 되므로 본 발명이 가장 효과를 발휘하는 것은 복수명령을 동시 실행하는 시스템이다. 그와같은 시스템에서는 명령 버퍼로부터 복수의 명령디코더에 명령을 공급할때에 각 디코더로 보내는 명령코드렬을 어디서 분할하느냐를 사전에 알지 못하면 2번째 이후의 명령 데이터로의 명령코드전송을 할 수 없으므로 명령 프리디코더가 필수가 되고 본 발명을 실현시킬때의 하드웨어의 증가가 가장 적다.
이 경우에는 명령코드기본부와 그 이외의 부간의 구별뿐만 아니라 각 기본부가 그 하나앞의 기본부와 같은 디코더로 처리할 수 있는지의 여부를 구별할 수 있도록 제어 마크가 확장된다. 전술한 것과같이 하나의 디코더로 2개의 기본부까지 동시에 처리할 수 있게 하였을 때에 각 디코더로 보내는 명령코드선두로부터 2번째의 기본부는 그 직전의 기본부를 송출한 것과 같은 디코더로 송출하는 것인지 그다음의 명령디코더로의 송출코드를 선두로 할 것인지를 상기 제어마크에 의해서 판단한다.
다음에 본 발명에서 가변길이 확장부를 갖는 2개의 명령코드렬 동시에 처리하는 경우의 예를 제8도∼10도를 참조하여 설명하겠다.
제8도는 본 발명에 의한 상기 처리를 실행하기 위한 장치의 예를 나타낸 도면이다.
기본적 구성은 제6도의 구성과 같으나 출력선택수단과 명령 레지스터가 2개씩 설비되어 있는 점이 다르다.
본 구체예에 있어서 명령버퍼에 취입되기까지의 명령코드 폐치의 경로에 대해서는 특히 제약받지 않으나 명령 캐슈에 취입할 때는 프리디코딩하고 제어마크(M)를 포함하여 캐슈로 격납하는 방식도 생각할 수 있다. 이것은 프리디코딩을 하는데도 시간이 걸리므로 캐슈히트했을때에는 프리디코딩 시간을 필요하지 않게 하는데 효과적이다.
제어마크(M)는 명령버퍼(2)에서의 제어를 위하여 단위코드길이 당 적어도 2비트 필요하고 예를들면, "00"이면 기본부이외의, "01"이면 하나 앞의 기본부와 동시에 디코딩 가능한 기본부, "10"이 앞의 기본부와 동일 명령의 기본부이지만 동시에 디코딩할 수 없는 기본부 "11"은 하나 앞의 기본부와는 다른 명령의 기본부(명령선두의 기본부)라고 정의해 둔다.
본 구체예와 같이 2명령을 동시에 디코딩하려면 명령버퍼(2)로부터 각각의 디코더(92,91)에 대해서 독립된 2개의 명령코드버스(141,142)가 접속된다.
그 때문에 코드기억부의 내용을 재배치하여 버스로 출력하는 출력선택회로(8)도 2회로가 필요하게 된다.
디코더가 둘이되면 1사이클로 처리되는 명령코드의 최대길이는 디코더가 하나일 때의 배로 된다.
코드기억부(3)로부터의 독출폭을 배로하려면 본 발명에서는 1엔트리(4)의 폭을 넓히지 않고 독출포트수를 증가시켜 대처하고 있다. 이 경우에 2포트의 독출구를 설비하여 제1포트가 독출포인터의 지시하는 위치(P1)로부터 8단위길이 즉 제2포트가 독출포인터가 지시하는 위치에 8을 더한 값이 나타내는 위치(P2)로부터 8단위길이의 코드를 독출하게 하고 있다. 이것은 1엔트리가 길어지면 출력선택회로의 하드웨어가 증대되기 때문이다.
출력선택회로(81,82)는 동일구조는 아니다. 제1디코더(91)로 보내는 코드렬(여기서는 최대 6단위길이)는 독출포인터가 지시하는 위치(P1)로부터 6단위길이 이내에서 선택되므로 제1독출포트의 출력에서 선택되지만 제2디코더(92)로 보내는 코드렬은 독출포인터가 지시하는 위치로부터 제1디코더가 처리하는 분을 제외한 6단위길이이므로 제1독출포트내나 또는 제1 및 제2의 독출포트에 걸쳐서 존재한다. 그 때문에 출력선택회로(82)는 양포트의 출력전체중에서 버스로의 출력을 선택하지 않으면 안되다.
명령코드버스들(141, 142)로의 출력위치 선택의 제어를 제9도를 예로하여 설명하겠다.
본 구체에의 명령은 제9도(a)에 나타낸 이미디에이트메모리간 연산의 명령(1)과 메모리-메모리간 연산의 명령(2)이고 각각의 기본부는 16비트, 확장부는 최대길 32비트, 명령코드버스들(1,2)은 각각 2개의 확장부용 필드를 갖는 것으로 한다.
제9도(b)에 나타낸 것과같이 명령버퍼(2) 위는 16바이트 경계에 따라서 코드기억수단(3)의 각 엔트리(4,4',4"..)에 코드렬이 기억되고 독출포인터는 선두 엔트리의 6번째의 단위길이의 필드(P1)를 지시하고 있는 것으로 한다.
기억부(3)으로부터의 독출은 2포트 이고 양코트 출력을 합치면 2명령이 아무리 길더라도 1회로 독출되게 되어 있다.
여기서 버스폭은 양쪽을 합쳐도 24바이트이고 기억부(3)으로 부터의 독출코드길이 32비아트보다도 짧으므로 항상 8바이트는 낭비되고 있다. 그러나 그 8바이트가 독출포인터의 값에 따라서 어디론지 바뀌므로 독출선을 생략할 수 없다. 독출포인퍼들 (1,2)의 내용은 제9도(c)에 나타낸 형태로 된다.
독출된 코드렬은 엔트리(4)내의 필드위치 그대로이므로 포인터의 하위 3비트에 의해서 선두위를 결정한다. 출력선택회로( 81)의 제1기본부 출력은 이 포이터가 지시하는 위치(P1)의 코드로 된다. 명령코드버스(141)의 기본부필드(X12)로는 포이터가 지시하는 위치보다 뒤(8번째의 필드의 다음에는 제1포트의 제1필드가 오는 것으로 본다)에 다음의 기본부 즉 제어마크가 "00"이 아닌 것을 출력한다. 명령코드버스(141)의 확장부 (Y11)필드로는 상기 선택된 제2기본부의 직전의 2단위길이의 코드가 출력된다. 명령코드버스(141)의 확장부(Y12) 필드로는 마찬가지로하여 3번째의 기본부를 찾아내 그 직전의 2단위길이의 코드가 출력된다.
한편, 명령코드버스(142)의 기본부 1필드(X21)는 포인터가 지시하는 위치(P1)보다 뒤에 동시 디코딩 할 수 없는 다음 기본부, 즉 제어마크의 상위 비트가 "1"인 곳을 찾아내어 출력한다.
나머지 필드들은 그 위치를 기준으로 하여 명령코드버스(141)와 마찬가지로 하여 결정한다. 포인터의 하위 3비트를 n(본구체예에서는 "5")로 할 때에 제1포트의 필드(n-1)의 다음에는 제2포트의 필드(n)가 연결된다. 단 필드번호는 0∼7이고 랩어라운드하는 것으로 한다.
명령코드버스(142)의 내용인 명령(2)은 메모리-메모리간 연산으로 어드레스 계산기나 오퍼랜드억세스 경로가 하나의 명령실행계에 하나밖에 없으므로 회에 디코딩할 수 없으나 이것은 디코더에 의해서 무시된다. 독출포인터는 8단위길이분 갱신되고 다음은 명령(2)의 기본부(2)를 선두로하여 독출을 행한다.
다른 태양으로서 명령코드버스의 확장부용 필드를 제1 및 제2기본부에서 공용하고 양기본부가 확장부를 갖는 경우에는 하나의 디코더로 1회에 처리하지 않는 것으로 한 경우에 원가 및 하드웨어량을 저감시킬 수 있다. 그리하여 제8도의 출력위치 지시회로의 제어를 약간 바꾸면 명령버퍼의 부분에 대해서 동일 원가로 64비트의 처리장치를 실현시킬 수 있다. 그 구체예를 제10도에 나타냈다.
이 경우에 하나의 디코더로 1회에 처리할 수 있는 최대코드는 2개의 기본부와 그 어느 한쪽의 확장부이고 기본부(1)에서 지정되는 오퍼랜드가 레지스터 직접이면 기본부(2)는 (별개의 명령이 아닌 한)무엇이라도 동시처리 가능하고 기본부(1)에서 지정되는 오퍼랜드가 이미디에이트이면 확장부를 갖는 메모리지정 및 이미디에이트지정을 제외하여 기본부(2)를 동시처리가능하고 기본부(1)에서 지정되는 오퍼랜드가 메모리이면 기본부(2)가 레지스터 직접 지정의 경우에만 동시처리 가능하다.
명령코드버스로의 출력위치제어에 대해서 기본부는 제9도의 예와 같다. 확장부에 대해서는 각각의 명령코드버스의 선두의 기본부보다 뒤에 있고 제어마크가 "00"인 최초의 곳으로부터 그후의 제어마크 "00"이회의 곳(또는 제어마크의 상위비트가 "1"인 곳)의 직전까지의 최하위 비트의가 위치를 맞추어서 출력하는 것이다.
본 발명의 전술한 실시예에 사용되는 출력위치 지시회로(17)와 선택회로(8)의 구체예를 나타낸 블록도이다.
제11도에서 명령코드버스의 각 비트를 나타내는 비트선들을 나타내고 있다. 실제에 있어서 각 라인은 단위길이(L)의 비트폭을 갖고 있다.
즉 제1기본부를 나타내는 비트선(X1), 제2기본부를 나타낸 비트선(X2), 제1확장부의 상측을 나타내는 비트선(Y1), 제1확장부(Y1)의 하측을 나타내는 비트선(Y2), 제2확장부(Y2)의 상측을 나타내는 비트선(Y21), 및 제2확장부(Y2)의 하측을 나타내는 비트선(Y22)을 설비하고 있다. 독출데이타의 제1단위길이, 제2단위길이...제8단위길이가 입력된 데이터라인들(DL1∼DL8)이 설비되어 있다.
각 교차점,게이트(G) 및게이트(G)에 연결된 게이크를 갖는 N-채널형 MSO트랜지스터(T)가 설비되어 있다. 이들이 회로를 구성하고 데이터선들 (DL1∼DL8)중의 하나의 선의 데이터가게이트의 입력중에 하나에 연결되고 N-채널형 MSO트랜지스터(T)의 하나의 단자가 비트선들중의 하나의 비트선에 연결되고 다른 단자가 접지에 연결되어 있다. 그와같은 회로로 매트릭스회로가 구성된다.
한편 출력위치지시회로(171)는 제1기본부 출력위치지시회로(171), 제2기본부출력위치지시회로(172), 제1확장위치출력지시회로(1)(173), 제1확장위치출력지시회로(2)(174), 제2확장위치출력지시회로(1)(175) 및 제2위치출력지시회로(2)(176)를 구비하고 있다. 각 지시회로는 마크신호선들(LMA)과 포이터 신호선들(LPi)에 연결되어 있다. 또 각 지시회로(171∼176)로부터 포이터의 위치신호(i=0∼7)에 대응하는 출력신호를 생성하는 8개의 출력선(171-1...171-8, 172-1...172-8)이 설비되어 있다. 각 출력선들은게이트(G)의 다른 입력된다.
즉 제1기본부출력위치지시회로(171)의 출력선(171-1)은 제1단위길이신호선 (DL1)에 연결된게이트회로(GX1DL1)의 입력단자에 연결되어 있다. 제1기본부 출력위치지시회로(171)의 출력선(171-2)은 제2단위 길이 신호선(DL2)에 연결된게이트회로(GX1DL2)의 입력단자에 연결되어 있다. 제2기본부위치지시회로 (172)의 출력선(172-1)이 제1단위길이신호선(DL1)에 연결된게이트회로 (GX2DL1)의 입력단자에 연결되어 있다. 제2기본부출력위치지시회 로(172)의 출력선(172-2)이 제2단위길이신호선(DL2)에 연결된게이트회로(GX2DL2)의 입력단자에 연결되었다.
따라서 제11도의 출력위치지시회로(17)에 있어서 출력위치지시회로들 (171∼176)로의 출력선이 포인터의 마킹(MARKi) 및 위치정보에 의해서 정해진다.
즉 제1기본부의 비트선(X1)으로의 출력이 선택될때에는 포인터의 위치(Pi)에 의해서만 선택된다.포인터의 위치(Pi)가 0이라하면 제1기본부 출력위치지시회로 (171)의 제1출력선(171-1)이 선택되어 대응하는 출력선의 신호레벨이 "L"레벨로 된다.
그러므로 독출데이타의 코드데이타의 제1단위길이는 제1단위길이 신호선 (DL1)을 거쳐서 제1기본부의 비트선(X1)에 나타난다.
마찬가지로 제2기본부의 비트선(X2)이 후술하는 것과같이 선택될 경우에 제2기본부 출력위치지시회로(172)가 포인터의 마킹(MARKi) 및 위치정보(Pi)에 준하여 선택되면 대응하는 출력선의 신호레벨이 "L"레벨로 된다. 그후에 독출데이타의 코드데이타의 제3단위 길이가 제3단위길이 신호선(DL3)을 거쳐서 제2기본부의 비트선(X2)에 나타난다.
다른 명령코드버스의 출력위치를 위한 선택방법이 같은 방법으로 실행된다.
전술한 구체예는 네가티브론리를 갖는 연산처리예를 나타냈음을 이해해야 할 것이다. 또 도면에 나타낸 프리차지회로가 버스로의 코드출력전에 버스를 "H"로 사전 차지하기 위하여 설비되어 있다.
제12도는 제11도에 나타내 있는 출력 위치지시회로(17)의 논리구성을 나타내고 있고 제11도의 독출수단의 i째 단위길이코드를 선택된 필드로 출력함을 제어하는 회로구성을 나타내고 있다. 도시한 회로에는 출력위치지시회로들(171∼176)에 대응하는 선택회로부들(Ⅰ∼Ⅵ)이 각각 구비되어 있다. 각 선택회로부에 대해서는 도면에 나타낸 것과같이 NAND게이트회로, NOR게이트회로 및 인버터회로가 소정의 논리를 만들기 위하여 구성되어 있다.
제12도에 있어서 Pi∼Pi-5의 표시는 포인터신호선(LPi) 위에 나타나는 신호에 대응하는 리드포인터의 하위 3비트의 디코딩된 신호를 나타낸다.
한편 제12도에서 입력신호들 MARKi,MARKi-1, MARKi-2, MARKi-3, MARKi-4, MARKi+1등이 마크신호선(LMA)에 나타나는 신호에 상당한다.
제12도의 방전신호는 버스에 대한 프리차지신호를 오버래핑하지 않는 타이밍에 버스드라이버를 인에이블하기 위한 타이밍 신호인 것이다.
한편 본 발명의 구체예에서 독출데이타가 8단위길이를 가지므로 제12도에 나타낸 8논리 회로가 각 리드포인터위치들(i)이 0∼7인 경우를 위하여 요구된다.
상술한 회로구성에 있어서의 출력위치 지시선택의 구체적 논리를 이하에 설명하겠다. 첫째로 제1선택회로부(Ⅰ)가 제1기본부출력위치시시회로(SLOPLi)를 선택하게 되어 있고 선택은 리드포인터의 위치(i)에 준해서만 결정된다. 즉, 다음 표1에 나타낸 것과같은 논리 및 선택코드로 리드포인터의 하위 3비트에 의해서 지시되는 코드가 선택된다.
[표 1]
한편 제2선택회로부(Ⅱ)가 제2기본부출력위치지시회로(SLOP2i)를 선택하게 되어 있다. 그 선택을 위한 논리는 대응위치가 기본부(MARKi≠00)이고 포인터의 다음의 명령코드로부터 대응하는 i직전의 명령코드의 마킹이 기본부를 포함하지 않는 경우에 선택된다.
이 경우에 선택된 선택논리 및 코드구성은 다음 표2에 나타낸 것과 같다.
[표 2]
다음에 제3선택회로부(Ⅲ)는 제1확장부의 상위측 출력위치지시회로 (SLEX1Ui)를 선택하게 되어 있다. 그 선택논리는 리드포인터에 의해서 지시된 위치 다음의 코드의 마킹이 확장부인 경우에 명령코드를 선택하게 되어 있다.
이 경우에 선택된 논리와 코드구성은 다음 표3에 나타낸 것과 같다.
[표 3]
한편 제4선택회로부(Ⅳ)는 제1확장부의 하위측 출력위치지시회로(SLEX1Li)를 선택하게 되어 있다. 그 선택논리가 위치(i)가 리드포인터에 의해서 지시되는 위치로부터 2번째 후의 위치이고 또 그 직전의 위치(i-1)의 코드가 확장부를 나타내고 있다[즉 단위길이 L×2)의 확장부(1)를 갖을때의 하위측]이든지 위치(i)가 리드포인터가 나타내는 위치보다 하나후의 위치이고 또한 그 직후의 위치(i+1)의 코드가 기본부를 나타내고 있는[즉 단위길이 L×1의 확장부(1)를 갖는]경우에 선택된다.
이 경우에 있어서는 선택논리와 선택된 코드의 배열은 표4에 나타낸 것과 같다.
[표 4]
또 제5선택회로부(Ⅴ)를 제2확장부의 상위측 출력 위치 지시회로(SLEX2Ui)를 선택한다. 선택논리의 위치(i) 직전의 위치가 포인퍼 후의 제1기본부일때에 선택되게 되어 있다. 선택논리 및 선택된 코드배열은 제5표에 나타낸 것과같다.
[표 5]
마지막으로 제6선택회로부(Ⅵ)가 제2확장부출력위치지시회로의 하위비트 (SLEX2Li)를 선택하게 되어 있다. 위치(i)의 직선위치Z(i-1)가 포이터 다음의 제1기 본부이고 직후위치(i+1)가 기본부(즉, 확장부가 L×1의 길이를 갖을 경우) 또는 위치(i)로부터 두 번째 앞선 우치(i-2)가 포인터로부터 제1기본부이고 직전의 위치가 확장부(즉 확장부의 하위측이 L×2의 길이를 갖는 경우)이면 선택된다.
선택논리 및 선택된 코드배열은 제6에 나타낸 것과 같다.
[표 6]
상술한 논리 "Mi"는 위치(i)에 마킹이 기본부의 지정일 경우에는 1이다. "!Mi"는 "Mi"의 논리부정이다. "&"는 AND를 나타내고 "1"는 OR를 나타낸다.
한편 제13도는 본 발명에 의한 명령버퍼장치에서 2명령 동시처리가 행해지는 경우에 제2명령코드버스로의 출력위치 지시회로의 구체예를 나타낸 블록도이다.
도시한 회로는 제1 및 제2독출포트의 2개의 출력중에서 제1버스로의 출력부분을 제외하여 보정된 포이터(P')와 마킹(M')을 제12도에 나타낸 것과같은 회로로 입력함으로써 실현된다. 즉 P'는 제2버스로의 출력의 선두위치를 나타낸 포인터이다. 제13도에 있어서의 블록(131)은 2개의 AND게이트회로, NOR게이트회로, 인버터로 구성되고 후술하는 블록(134)에서 출력되는 신호(SLPORT2i)에 준하여 제1독출포트에서 출력되는 엔트리내의 8개의 명령코드의 마크와 제2독출포트에서 출력되는 엔트리내의 8개의 명령코드의 마크를 절환하는 기능을 갖고 있다. 또 블록(132)은 제12도에 나타낸 것과 같은 회로가 사용되는 것이며 8대응회로가 배치되어 있는 것이다.
블록(133)은 인버터와 2개의 AND게이트회로로 구성되어 있고 이 블록(132)에서의 출력과 상기 출력신호(SLPORT2i)에 준하여 제1독출포트의 코드를 선택하여 출력하는 출력지시신호(SL***i-P1)와 제2독출포트의 코드를 선택하여 출력하는 출력지시신호(SL***i-P2)를 선택적으로 절환하는 기능을 갖는 것이다.
블록(134)은 제1독출포트의 필드(i)가 제1명령코드버스로 출력되는 것인지를 판단하는 회로이고 AND게이트회로, NOR게이트회로, 인버터, NAMD게이트회로가 도시한 것과 같이 소정의 형상으로 배열형성되어 있는 것이다.
블록회로(134)에 대한 입력은 마크(MARKi)의 상위비트인 MARKUi신호와 리드포인터의 현재위치(Pi)신호이고 MARKUi는 리드포인터가 나타내는 위치 이후에는 MARKi가 1인 경우에는 디코딩처리의 경계를 나타내고 제1출력포트는 사용되고 있는 것을 나타낸 것이므로 그후의 명령코드는 제2출력포트로 출력할 필요가 있는 것을 알 수 있다.
한편 MARKUi가 0인 경우에는 명령코드가 제1출력포트로 출력하게 된다. 이와같은 회로에서는 i번째의 데이터에 대해서 자체를 포함하여 그 이전에 이 MARKUi가 1이 된 일이 없는지의 여부를 판단하여 그 결과에 따라 상기 출력신호(SLPORT2i)를 출력한다.
따라서 이미 제1출력포트가 사용되고 있는 경우에는 이 출력신호(SLPORT2i)는 1을 출력하고 이 블록(133)에 있어서 제2출력포트를 선택하는 출력지시신호 (SL***i-P2)를 출력한다. 이와 반대로 이 출력신호(SLPORT2i)가 0을 출력한 경우에는 이 블록(133)에 있어서 제1출력포트를 선택하는 출력지시신호(SL***i-P1)를 출력한다.
출력지시신호(SL***i-P)에 있어서의 ***는 제12도에 있어서의 OP1, OP2, EX1U, EX1L, EX2U, EX2L의 6종류이다.
한편 도면중 P' 및 M'는 제2버스로의 출력선두를 나타낸 포이터와 그 이후의 위치에 대응하는 마크를 나타낸 것이다.
제14A도는 상기한 회로구성에 있어서의 명령코드의 제1 및 제2출력포트로의 출력을 절환하는 경우의 예를 나타낸 것이다.
즉 제14A에는 제1∼3엔트리(E1-E3)가 지시되어 있고 그중 제1엔트리(E1)에 있어서의 포이터(P)가 나타낸 위치의 명령코드(OP1)를 선두로 OP2, EX2U 및 제2엔트리(E2)에 있어서의 EX2L을 제1독출포트를 거쳐서 제1버스로 출력시켜 그후에 이어지는 명령코드(N-OP1, N-EX1U, X-EX1L, N-OP2)를 제1독출포트를 거쳐서 제2버스로 출력시키고 또 N-EX2U, N-EX2L를 제2독출포트를 거쳐서 제2버스로 출력시키려고 하는 것이다. 그 경우의 선택신호(SLPORT2i)와 선택되는 코드와의 관계를 제14도 B에 타나냈다.
이상 설명한 바와같이 본 발명에 의하면 명령코드가 복수의 필드로 분할되고 그들을 조합하여 하나의 명령을 디코딩하는 경우에 그들의 코드ㆍ필드간에 임의의 길이의 이미디에이트치나 디스플레이스멘트치 등의 필드가 삽입된 경우에도 디코딩을 요하는 필드만을 연결하여 디코더입력의 고정필드로 전송할 수 있으므로 명령디코딩의 효율을 향상시킬 수 있다.
이 재배치는 가변길이 명령을 처리하는 종래의 명령버퍼에서 구비하고 있는 회로를 이용하여 하드웨어량을 증대시키지 않고 실현할 수 있고 또 임의의 길이의 이미디에이트치나 디스플레이스멘트치를 동회로를 이용하여 최하위비트위치측에서 위치맞춤할 수 있으므로 이미디에이트 생성회로ㆍ디스플레이스멘트 생성회로ㆍ디스플레이스멘트 생성회로의 하드웨어량 삭감과, 디코더로부터 이들의 회로로의 지시신호의 수의 삭감 및 그에 의한 하드웨어량 삭감 등 다대한 효과가 기대된다.
또 본 발명에 의한 명령버퍼장치를 사용하여 구성된 마이크로프로세서는 경량이고 또한 소형화되고 또 연산처리속도가 향상된다는 우수한 효과를 발휘할 수 있다.

Claims (11)

  1. 명령종류를 구별하는 코드를 포함하는 기본부와 이 기본부의 지정에 의해서 부가되는 확장부로 되고 이 기본부와 확장부는 각각 소정단위길이의 정수배의 길이를 갖고 또한 이 확장부의 길이는 개별적으로 가변되도록 구성되어 있고 또 이 기본부와 확장부를 하나 또는 복수 조합함으로써, 하나의 명령이 구성되는 명령코드렬을 처리하는 버퍼명령장치에 있어서 상기 명령코드렬의 단위길이마다 그것이 기본부인지, 아닌지를 판단하여 소정의 마크를 부여하는 마크부여수단, 적어도 상기 명령코드렬을 독출하여 기억하는 코드기억수단, 상기 마크를 기억하는 마크기억수단 및 상기 마크기억수단으로부터의 정보에 응답하여 상기 코드기억수단으로부터 소정의 명령코드렬을 선택하여 출력하는 출력선택 회로를 갖는 명령버퍼수단, 명령디코더수단 및 상기 명령버퍼수단과 상기 명령디코더수단을 접속하는 버스로 구성되어 있고, 상기 버스는 복수의 상이한 필드로 구분되어 있고 또 상기 명령버퍼수단은 명령디코더수단에 출력하는 명령코드렬의 선두위치를 지정하는 수단과 상기 선두위치로부터의 코드렬중에서 당해마크가 기본부를 나타내는 부분 즉, 하나 또는 복수의 코드를 사전에 정해진 소정의 길이를 초과하지 않는 범위내에서 연결하여 이 버스의 한쪽의 필드로 출력시키고 이 선두위치로부터의 코드렬 중에서 당해 마크가 기본부가 아님을 나타내는 부분을 이 버스의 다른쪽 필드에 출력시키도록 제어하는 제어회로가 포함되어 있는 것을 특징으로 하는 명령버퍼 장치.
  2. 제1항에 있어서, 상기 버스는 기본부용 필드와 확장부용 필드로 구분되어 있는 것을 특징으로 하는 명령버퍼장치.
  3. 제2항에 있어서, 상기 제어회로는 상기 명령코드렬을 명령디코더에 출력할 때 명렬코드렬의 기본부는 상기 버스의 기본부용 필드에 있어서의 최상위 비트측으로부터 순차로 빽빽히 패킹하도록 출력하는 한편 상기 명렬코드렬의 확장부는 그 최하위 비트가 상기 버스의 확장부용 필드에 있어서의 최하위 비트위치에 배치되게 출력되도록 제어하는 것을 특징으로 하는 명령버퍼장치.
  4. 제2항에 있어서, 상기 제어회로는 N조의 명령코드렬의 기본부와 확장부를 상기 버스로 출력할 때에 상기 버스를 N개의 기본부용 필드와 N개의 확장부용 필드로 나누어 당해 확장부가 최초의 기본부로부터 몇번째의 기본부에 대응하느냐의 정보에 응답하여 상기 확장부의 명령코드를 당해 확장부용 필드내의 소정필드위치로 출력하도록 제어하는 것을 특징으로 하는 명령버퍼장치.
  5. 제2항에 있어서, 상기 버스는 N개의 명령 코드렬로 되는 기본부와 그와 같거나 적은 M개의 명령코드렬로 되는 확장부에 대응하는 N개의 기본부용 필드와 M개의 확장부용 필드를 갖고 있는 상기 제어회로는 확장부의 명령코드를 출력할 때에 전체 확장부중에서 최초부터 세어서 상기 확장부가 몇번째에 해당하느냐의 정보에 의해서 상기 확장부용 필드의 출력위치를 결정하도록 제어하는 것을 특징으로 하는 명령버퍼 장치.
  6. 제1항에 있어서, 상기 마크부여수단은 상기 단위길이의 명령코드당 2비트이상의 필드로 구성되고 또한 하나의 명령이 복수의 기본부로 구성되어 있는 경우에 각각 기본부는 그 앞의 기본부와 동시에 디코드하느냐의 여부를 나타낸 정보를 당해 기본부에 마크부여를 하는 것을 특징으로 하는 명령버퍼장치
  7. 명령종류를 구별하는 코드를 포함하는 기본부와 이 기본부의 지정에 의해서 부가되는 확장부로 되고 이 기본부와 확장부는 각각 소정의 단위길이의 정수배의 길이를 갖고 또 이 확장부의 길이는 개별적으로 가변되도록 구성되어 있고 또 이 기본부와 확장부를 하나 또는 복수 조합함으로써 하나의 명령이 구성되는 명령코드렬을 처리하는 명령버퍼장치에 있어서, 상기 명령버퍼장치는 상기 명령코드렬을 독출하여 기억하는 명령버퍼수단과 복수의 명령을 동시에 실행하기 위한 복수의 명령디코더수단 및 각각의 명령디코더와 상기 명령버퍼를 접속하는 복수의 버스를 구비하고 있고 또 상기 각 버스는 기본부용 필드와 확장부용 필드로 구분되어 있고 또 상기 명령코드렬의 단위길이마다 그것이 기본부인지 기본부가 아닌지를 식별하고 또 상이한 기본부끼리 동일 디코더로 동시에 처리할 수 있는 지의 여부를 판단하기 위한 제어마크를 부여하는 마크부여수단이 설비되어 있고 상기 명령버퍼수단은 적어도 상기 명령코드렬을 독출하여 기억하는 코드기억수단, 상기 마크를 기억하는 마크기억수단, 및 상기 명령디코더 수단의 최초의 하나에 출력하는 명령코드렬의 독출 선두위치를 지정하는 지정수단, 이 독출 선두위치에 있어서의 제1기본부와 그것에 이어지는 다른 기본부가 동일디코더로 동시에 처리할 수 있는 지의 여부를 상기 제어마크를 참조하여 판단하고 각각의 명령코드렬에 있어서의 기본부의 명령코드를 복수개의 버스에 있어서의 각각의 기본부 필드중의 어느것에 할당하는 동시에 당해 명령코드렬에 있어서의 확장부의 명령코드를 복수개의 버스에 있어서의 각각의 확장부 필드중의 어느것에 할당하도록 구성된 제어회로가 설비되어 있는 것을 특징으로 하는 명령버퍼장치.
  8. 명령종류를 구별하는 코드를 포함하는 기본부와 이 기본부의 지정에 의해서 부가되는 확장부로 되고 이 기본부와 확장부는 각각 소정의 단위길이의 정수배의 길이를 갖고 또 이 확장부의 길이는 개별적으로 가변되도록 구성되어 있고 또 이 기본부와 확장부를 하나 또는 복수 조합함으로써 하나의 명령이 되는 명령코드렬을 처리하는 명령버퍼장치에 있어서, 상기 명령버퍼장치는 상기 명령코드렬을 독출하여 기억하는 명령버퍼수단과 복수의 명령을 동시에 실행하기 위한 복수의 명령디코더 수단 및 각각 상기 명령디코더와 상기 명령버퍼를 접속하는 복수의 버스를 구비하고 있고 또 상기 각 버스는 기본부용 필드와 확장부용 필드로 구분되어 있는 동시에 상기 명령코드렬의 단위길이마다 그것이 기본부인지 기본부가 아닌지를 식별하고 또 어느 기본부가 하나앞의 기본부와 같은 명령을 구성하는 것이며 당해 기본부와 동일디코더로 동시에 처리할 수 있는지의 여부를 판단할 수 있는 소정의 제어마크를 부여하는 마크부여수단을 설비하고 있고, 상기 명령버퍼는 적어도 상기 명령코드렬을 독출하여 기억하는 코드기억수단, 상기 마크를 기억하는 마크기억수단, 및 상기 명령디코더수단들 중 최초의 것으로 출력하는 명령코드렬의 독출선두위치를 지정하는 수단, 이 독출선두위치에 있어서의 제1기본부 및 제1기본부보다 뒤에 배치된 제2기본부중에서 이 마크가 하나앞의 기본부와 동일 디코더로 동시에 처리할 수 없는 것을 나타내는 기본부를 선택하여 이 복수의 기본부의 명령코드를 이 복수의 버스의 각각의 제1기본부 필드에 개별 출력하고 제2기본부에 부여되어 있는 당해 마크가 하나앞의 기본부와 동일 디코더로 동시에 처리할 수 있는 경우에는 당해 제2기본부의 명령코드를 하나앞의 기본부의 명령코드가 출력되는 버스와 같은 버스에 있어서의 제1기본부 필드에 인접된 2번째 이후의 기본부 필드로 출력하도록 하는 동시에 각 기본부가 확장부를 갖는 경우에는 그것인 대응하는 기본부가 출력된 것과 같은 버스의 하나 또는 복수의 확장부필드로 당해 확장부의 명령코드를 출력하도록 구성된 제어회로가 설비되어 있는 것을 특징으로 하는 명령버퍼장치.
  9. 제8항에 있어서, 상기 확장부의 명령코드의 각각의 최하위 비트가 당해 버스위의 확장부필드의 최하위 비트로 출력되도록 출력위치를 조정하는 출력수단이 더 설비되어 있는 것을 특징으로하는 명령버퍼장치.
  10. 제1∼9항중 어느 한 항에 있어서, 상기 명령디코더에 접속되는 버스가 하나 또는 복수의 기본부 필드와 하나 또는 복수의 확장부 필드로 구성되고 또 상기 명령디코더는 상기 확장부가 이미디에이트이든지 디스플레이멘트인지의 판단과 각각의 확장부의 길이를 판단하는 수단과 이미디에이트 또는 디스플레이멘트 생성수단을 포함하고 있고 그에 의해서 선택된 확장부 필드의 최하위 비트위치에서 디코더에서 지정된 길이의 코드렬을 추출하여 각각의 이미디에이트 또는 디스플레이스멘트를 생성하도록 구성된 데이터 처리장치.
  11. 제1∼9항중 어느 한 항에 기재된 명령버퍼를 포함하여 구성된 것을 특징으로 하는 마이크로 프로세서.
KR1019920701466A 1990-10-20 1991-10-18 명령버퍼장치 KR950012116B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP90283066 1990-10-20
JP2283066A JPH04156613A (ja) 1990-10-20 1990-10-20 命令バッファ装置
PCT/JP1991/001430 WO1992007320A1 (en) 1990-10-20 1991-10-18 Instruction buffering device

Publications (1)

Publication Number Publication Date
KR950012116B1 true KR950012116B1 (ko) 1995-10-14

Family

ID=17660764

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920701466A KR950012116B1 (ko) 1990-10-20 1991-10-18 명령버퍼장치

Country Status (5)

Country Link
US (1) US5598544A (ko)
EP (1) EP0506972A4 (ko)
JP (1) JPH04156613A (ko)
KR (1) KR950012116B1 (ko)
WO (1) WO1992007320A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630082A (en) * 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
DE69434669T2 (de) * 1993-10-29 2006-10-12 Advanced Micro Devices, Inc., Sunnyvale Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
EP0651320B1 (en) * 1993-10-29 2001-05-23 Advanced Micro Devices, Inc. Superscalar instruction decoder
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
US5737550A (en) * 1995-03-28 1998-04-07 Advanced Micro Devices, Inc. Cache memory to processor bus interface and method thereof
US5920713A (en) * 1995-10-06 1999-07-06 Advanced Micro Devices, Inc. Instruction decoder including two-way emulation code branching
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
US5809273A (en) * 1996-01-26 1998-09-15 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US5926642A (en) * 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US5819056A (en) * 1995-10-06 1998-10-06 Advanced Micro Devices, Inc. Instruction buffer organization method and system
US5796974A (en) * 1995-11-07 1998-08-18 Advanced Micro Devices, Inc. Microcode patching apparatus and method
US5930490A (en) * 1996-01-02 1999-07-27 Advanced Micro Devices, Inc. Microprocessor configured to switch instruction sets upon detection of a plurality of consecutive instructions
US5850567A (en) * 1996-03-15 1998-12-15 Adaptec, Inc. Method for specifying concurrent execution of a string of I/O command blocks in a chain structure
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5845099A (en) * 1996-06-28 1998-12-01 Intel Corporation Length detecting unit for parallel processing of variable sequential instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5940602A (en) * 1997-06-11 1999-08-17 Advanced Micro Devices, Inc. Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations
US5905880A (en) * 1997-09-29 1999-05-18 Microchip Technology Incorporated Robust multiple word instruction and method therefor
US6167506A (en) * 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
US6134649A (en) * 1997-11-17 2000-10-17 Advanced Micro Devices, Inc. Control transfer indication in predecode which identifies control transfer instruction and an alternate feature of an instruction
US5881260A (en) * 1998-02-09 1999-03-09 Hewlett-Packard Company Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
US6061786A (en) * 1998-04-23 2000-05-09 Advanced Micro Devices, Inc. Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction
US6141745A (en) * 1998-04-30 2000-10-31 Advanced Micro Devices, Inc. Functional bit identifying a prefix byte via a particular state regardless of type of instruction
US6175908B1 (en) 1998-04-30 2001-01-16 Advanced Micro Devices, Inc. Variable byte-length instructions using state of function bit of second byte of plurality of instructions bytes as indicative of whether first byte is a prefix byte
US6418527B1 (en) * 1998-10-13 2002-07-09 Motorola, Inc. Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6249861B1 (en) 1998-12-03 2001-06-19 Sun Microsystems, Inc. Instruction fetch unit aligner for a non-power of two size VLIW instruction
US7117342B2 (en) * 1998-12-03 2006-10-03 Sun Microsystems, Inc. Implicitly derived register specifiers in a processor
KR100379837B1 (ko) * 2000-06-30 2003-04-11 주식회사 에이디칩스 확장명령어 축약장치
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
DE10339458A1 (de) * 2002-08-28 2004-03-25 Denso Corp., Kariya Gasmessfühler und Verfahren zu dessen Herstellung
GB2393270B (en) * 2002-09-19 2005-07-27 Advanced Risc Mach Ltd Executing variable length instructions stored within a plurality of discrete memory address regions
US7243170B2 (en) * 2003-11-24 2007-07-10 International Business Machines Corporation Method and circuit for reading and writing an instruction buffer
US7908463B2 (en) 2007-06-26 2011-03-15 Globalfoundries Inc. Immediate and displacement extraction and decode mechanism
GB2488980B (en) * 2011-03-07 2020-02-19 Advanced Risc Mach Ltd Address generation in a data processing apparatus
KR101595637B1 (ko) * 2011-04-01 2016-02-18 인텔 코포레이션 벡터 친숙형 명령어 형식 및 그의 실행
US10157061B2 (en) 2011-12-22 2018-12-18 Intel Corporation Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks
US10001993B2 (en) * 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3275989A (en) * 1961-10-02 1966-09-27 Burroughs Corp Control for digital computers
JPS5178655A (ko) * 1974-12-29 1976-07-08 Fujitsu Ltd
US4037213A (en) * 1976-04-23 1977-07-19 International Business Machines Corporation Data processor using a four section instruction format for control of multi-operation functions by a single instruction
JPS5510626A (en) * 1978-07-07 1980-01-25 Toshiba Corp General controller
JPS5663652A (en) * 1979-10-26 1981-05-30 Hitachi Ltd Information processing unit
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
US4689765A (en) * 1983-01-28 1987-08-25 Digital Equipment Corporation Groups of tag signals for data store in multi-plane set of buffers
JPS59154546A (ja) * 1983-02-24 1984-09-03 Toshiba Corp 情報処理装置
JPS6015746A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd デ−タ処理装置
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
JP2635057B2 (ja) * 1987-11-04 1997-07-30 株式会社日立製作所 マイクロプロセッサ
JPH07120278B2 (ja) * 1988-07-04 1995-12-20 三菱電機株式会社 データ処理装置
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
WO1990008355A1 (en) * 1989-01-17 1990-07-26 Fujitsu Limited Microprocessor
US5179691A (en) * 1989-04-12 1993-01-12 Unisys Corporation N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
DE69030905T2 (de) * 1989-08-28 1998-01-29 Nec Corp Mikroprozessor mit Pipeline-Predecodereinheit und -Hauptdecodereinheit
JPH03144732A (ja) * 1989-10-30 1991-06-20 Matsushita Electric Ind Co Ltd 命令解読装置
US5168571A (en) * 1990-01-24 1992-12-01 International Business Machines Corporation System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data

Also Published As

Publication number Publication date
EP0506972A4 (en) 1993-03-17
JPH04156613A (ja) 1992-05-29
US5598544A (en) 1997-01-28
EP0506972A1 (en) 1992-10-07
WO1992007320A1 (en) 1992-04-30

Similar Documents

Publication Publication Date Title
KR950012116B1 (ko) 명령버퍼장치
US4970642A (en) An apparatus for accessing a memory
US6880150B1 (en) Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor
KR850001015B1 (ko) 오페란드(被演算函數 : Operand)간 파이프라인제어를 행하는 데이터 처리장치
EP0220684B1 (en) Data processing system
US4847759A (en) Register selection mechanism and organization of an instruction prefetch buffer
US5982384A (en) System and method for triangle rasterization with frame buffers interleaved in two dimensions
USRE41523E1 (en) Graphics engine command FIFO for programming multiple registers using a mapping index with register offsets
WO1998038791A2 (en) Instruction compression and decompression system and method for a processor
US6205534B1 (en) Apparatus and method for processing data with a plurality of flag groups
US5056041A (en) Data processing apparatus with improved bit masking capability
US11709677B2 (en) Look-up table initialize
US5357620A (en) Bit addressing system
JPH1153187A (ja) プロセッサ
US11681532B2 (en) Method for forming constant extensions in the same execute packet in a VLIW processor
US4290104A (en) Computer system having a paging apparatus for mapping virtual addresses to real addresses for a memory of a multiline communications controller
US5390311A (en) Method and apparatus for accessing microcoded instructions in a computer system
US4996653A (en) Line generation in a display system
US4870563A (en) Information processing apparatus having a mask function
KR100764260B1 (ko) 프로세싱 시스템에서의 실행 인스트럭션 형성 방법
EP0195202B1 (en) Register selection mechanism and organization of an instruction prefetch buffer
US20050256996A1 (en) Register read circuit using the remainders of modulo of a register number by the number of register sub-banks
US6157904A (en) Hardware simulator capable of dealing with a description of a functional level
US20030126397A1 (en) Configurable addressing apparatus
JPH05282142A (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: 19991006

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee