KR100266337B1 - 정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기 - Google Patents

정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기 Download PDF

Info

Publication number
KR100266337B1
KR100266337B1 KR1019960071123A KR19960071123A KR100266337B1 KR 100266337 B1 KR100266337 B1 KR 100266337B1 KR 1019960071123 A KR1019960071123 A KR 1019960071123A KR 19960071123 A KR19960071123 A KR 19960071123A KR 100266337 B1 KR100266337 B1 KR 100266337B1
Authority
KR
South Korea
Prior art keywords
instruction
command
prefix
target
code
Prior art date
Application number
KR1019960071123A
Other languages
English (en)
Other versions
KR970049493A (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
Application filed by 야스카와 히데아키, 세이코 엡슨 가부시키가이샤 filed Critical 야스카와 히데아키
Publication of KR970049493A publication Critical patent/KR970049493A/ko
Application granted granted Critical
Publication of KR100266337B1 publication Critical patent/KR100266337B1/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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/22Microcontrol or microprogram arrangements
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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

Abstract

본 발명의 정보 처리 회로에는 주어진 타깃 명령과, 상기 타깃 명령의 기능을 확장하기 위한 프리픽스 명령이 입력된다. 상기 정보 처리 회로는 입력된 명령 코드를 해독하여, 상기 명령을 실행하기 위하여 필요한 처리를 행하는 것으로, 상기 명령 디코드부와, 레지스터 파일과, 상기 명령 디코드부가 해석한 명령의 오퍼레이션 내용에 기초하여 해당 명령의 실행을 행하는 명령 실행부를 포함한다. 상기 명령 디코드부를 프리픽스 명령에 의하여 즉시 데이터를 확장하는 처리를 행하는 ext 명령처리부를 포함한다.

Description

정보 처리 회로, 반도체 집적회로 장치, 마이크로컴퓨터, 및 전자 기기
본 발명은 정보 처리 회로 및 반도체 집적회로 장치, 상기 정보처리 회로를 내장하는 마이크로컴퓨터, 상기 마이크로컴퓨터를 사용하여 구성된 전자 기기에 관한 것이다.
종래, 32비트의 데이터를 처리할 수 있는 RISC(Reduced Instruction Set Computer) 방식의 마이크로컴퓨터에서는 32비트 폭에 고정된 명령코드를 사용하고 있었다. 그 이유는 고정길이 비트폭의 명령코드를 사용하면, 가변길이 비트폭의 명령코드를 사용하는 경우와 비교하여, 명령의 디코드에 요하는 시간을 단축할 수 있고, 또한, 마이크로컴퓨터 회로의 규모를 작게 할 수 있기 때문이다.
그렇지만, 32비트의 마이크로컴퓨터에 있어서도, 특히 32비트도 필요로 하지 않는 명령코드도 많다. 따라서 모든 명령의 명령코드를 32비트에서 기술하면, 명령코드에 용장 부분(unnecessarily verbose portions)이 생기는 명령이 많아지고, 메모리의 사용 효율이 악화된다.
이 같은 경우, 용장의 (unnecessarily verbose) 명령 코드를 논리 압축해 두고, 마이크로컴퓨터의 내부에서 원래의 명령으로 디코드하면서, 명령을 실행하는 것도 가능하다. 이 같은 방식에서는 제어 회로가 복잡하게 되는 문제가 있었다.
따라서, 본원의 발명자는 제어회로를 복잡하지 않게 하면서 메모리의 사용효율을 향상시키기 위해서, 처리가능한 데이터의 비트폭 보다 짧은 비트폭의 고정 길이 명령코드를 처리하는 마이크로컴퓨터에 대한 검토를 행하고 있었다.
그러나, 예컨대 32비트 고정길이의 명령코드를 간단히 16비트의 고정길이로 하면 이하와 같은 문제점이 발생한다.
통상 명령코드에는 오퍼레이션 코드(operation code)라든지 즉시 데이터(immediate data) 이외의 오퍼랜드(operand)도 기술하기 때문, 16비트의 명령코드를 사용하여도, 사용할 수 있는 즉시 데이터(immediate data)의 비트수는 16 비트 보다도 더 작게 된다. 즉, 32비트의 데이터를 처리할 수 있음에도 불구하고, 16비트보다 작은 즉시 데이터 외에는 명령코드로 지정할 수 없다고 하는 문제가 있다.
또한, 예컨대, 16비트의 명령코드에서는 3-오퍼랜드 명령(three-operand instruction)의 오퍼랜드의 필드를 확보하는 것이 어렵다. 따라서, 이와 같이 짧은 명령코드로서는 기술하기 어려운 오퍼레이션을 어떻게 처리할 것인가가 문제가 된다.
상기 문제를 해결하기 위해서는 짧은 명령코드에 포함되는 즉시 데이터(immediate data)를 필요에 따라서 확장하는 기능이 필요하게 된다. 또한, 짧은 명령코드로 기술할 수 없는 오퍼레이션을 실행하기 위해서, 오퍼레이션 내용을 확장하는 기능이 필요하게 된다.
본 발명의 목적은 제어회로를 복잡하지 않게 하고서, 필요에 따라서 명령코드에 포함되는 즉시 데이터(immediate data)를 확장하는 기능을 구비한 정보처리회로, 반도체 집적회로장치, 마이크로컴퓨터, 전자 기기를 제공하는 것이다.
또한, 본 발명의 다른 목적은 제어회로를 복잡하지 않게 하고서, 오퍼레이션 내용을 확장하는 기능을 구비한 정보처리회로, 반도체 집적회로장치, 마이크로컴퓨터, 전자 기기를 제공하는 것이다.
제1도는 본 발명의 실시예 1의 CPU의 기능 블럭도.
제2도는 마이크로컴퓨터에 내장되어 있는 반도체 집적회로 구성의 설명에 필요한 부분을 도시한 도면.
제3도는 명령 디코드 회로가 갖는 스테이트 머신 상태의 천이를 나타낸 도면.
제4도는 즉시 데이터의 보유에 관해서 명령 디코드 회로가 행하는 동작의 알고리즘을 나타낸 흐름도.
제5도는 입력된 명령코드 및 상기 스테이트 머신의 상태와 상기 즉시 데이터 생성용 신호 생성 회로가 생성하는 즉시 데이터 생성용 신호와의 관계를 나타낸 타이밍도.
제6도는 즉시 데이터 생성 회로가, 스테이트 머신의 상태 및 즉시 데이터 생성용 신호에 기초하여 즉시 데이터를 확장하는 알고리즘을 나타내는 흐름도.
제7a도 및 제7b도는 타입-1 및 ext 명령의 명령코드의 비트 필드를 나타내는 도면.
제8a도 내지 제8c도는 오퍼레시션을 나타낸 식의 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터의 필드도.
제9도는 타입-2 명령의 명령코드의 비트 필드를 나타내는 도면.
제10a도 내지 제10c도는 타입-2 명령의 오퍼레이션을 나타낸 식과, 실행에 사용하는 즉시 데이터 비트 필드를 나타내는 도면.
제11도는 마이크로컴퓨터에 내장되어 있는 반도체 집적회로 구성의 설명에 필요한 부분을 도시하는 도면.
제12도는 타입-3 명령의 명령코드의 비트 필드를 나타내는 도면.
제13a도 내지 제13c도는 타입-3 명령의 오퍼레이션을 나타낸 식과 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터의 필드도.
제14a도 및 제14b도는 타입-4 명령을 실행하는 경우에 생성된 변위를 나타낸 도면.
제15도는 실시예 2의 마이크로컴퓨터의 하드웨어 블럭도.
* 도면의 주요부분에 대한 부호의 설명
30 : CPU 40 : 명령 디코드부
50 : 명령 처리부 60 : 명령 실행부
70 : 데이터 연산부 80 : 어드레스 연산부
90 : 레이스터 파일
상기 목적을 달성하기 위해, 본 발명은 주어진 타깃 명령(target instruction)과, 상기 타깃 명령의 기능을 확장하기 위한 프리픽스 명령(prefix instruction)이 입력되는 정보처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 상기 명령코드의 오퍼레이션 내용을 해성하는 명령코드 해석수단과, 상기 명령코드 해석수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령실행수단을 포함하며, 상기 명령코드 해석수단은 상기 프리픽스 명령에 기초하여, 상기 프리픽스 명령의 기능확장의 대상이 되는 명령의 실행에 필요한 즉시 데이터를 확장하는 즉시 데이터 확장수단을 포함하도록 구성되고, 상기 명령 실행수단은 상기 즉시 데이타 확장수단에 이해 확장된 즉시 데이터에 기초하여 타깃 명령을 실행하는 것을 특징으로 한다.
명령코드 해석수단은 입력된 명령코드를 해독하고, 명령의 대상이 되는 데이터의 기억되어 있는 기억수단의 번지를 계산하는 등, 명령실행 수단이 명령을 실행하기 위해 필요한 처리를 행한다.
본 발명의 정보처리회로에는 타깃 명령 및 상기 타깃 명령의 기능을 확장하는 프리픽스 명령이 입력된다. 프리픽스 명령은 그 단독으로는 명령실행수단에 의해 실행되지 않지만, 후속의 타깃 명령이 실행될 때에, 그타깃 명령의 기능을 확장하는 기능을 갖는다.
즉시 데이터 확장수단(immediate-data expansion means)은 프리픽스 명령에 기초하여, 타깃 명령의 실행에 필요한 즉시 데이터를 확장한다. 타깃 명령의 실행에 필요한 즉시 데이터는 예컨대 타깃 명령의 명령코드에 포함되어 있는 즉시 데이터나, 프리픽스 명령의 명령코드에 포함되어 있는 즉시 데이터로서, 실행할 때에 필요하게 되는 즉시 데이터를 말한다.
여기에서 말하는 즉시 데이터의 확장이란, 예컨대 통상의 제로 확장(zero extension)이나 부호 확장(sign extension)외에, 명령코드 내에 기재되어 있는 즉시 데이터의 비트폭을 신장하여(broaden the bit width of the immediate data), 신장된 부분에 주어진 비트를 보충하는 경우도 포함한다. 즉, 본 발명에 의하면 프리픽스 명령에 기초하여, 상기 주어진 비트를 보충하여 즉시 데이터를 확장할 수 있다.
따라서, 명령코드의 비트수를 크게 하는 원인이 되는 즉시 데이터를 포함하는 명령코드의 비트수를 짧게 설정하는 것이 가능하게 된다. 이 때문에, 가변길이 명령코드를 디코드하기 위한 복잡한 제어회로를 갖지 않더라도, 짧은 고정길이 명령코드를 채용하는 간단한 구성으로, 메모리의 사용 효율을 개선할 수 있다.
또한, 본 발명의 정보처리 회로는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 것을 특징으로 한다.
본 발명에 의하면, 고정길이 명령코드를 사용함으로써, 가변길이 비트폭의 명령코드를 사용하는 경우에 비해, 명령의 디코드에 요하는 시간을 단축할 수 있고, 또한, 정보처리 회로의 회로규모를 작게 할 수 있다.
또한, 프리픽스 명령에 의해, 즉시 데이터를 확장할 수 있기 때문에, 명령코드를 길게 하는 원인이 되는 즉시 데이터를 짧게 설정할 수 있다. 따라서, 고정길이의 명령코드의 길이를 짧게 설정할 수 있기 때문에, 명령코드의 용장 부분(unnecessarily verbose portions)을 효율성 있게 삭감하고, 메모리, 특히 명령코드를 기억하는 메모리의 사용 효율을 개선할 수 있다.
또한, 본 발명의 정보처리 회로는 상기 고정길이 명령코드의 비트폭이, 상기 정보처리 회로가 처리할 수 있는 데이터 또는 어드레스의 비트폭 이하인 것을 특징으로 한다.
본 발명에 의하면, 명령코드의 비트폭을 정보처리 회로가 처리할 수 있는 데이터 또는 어드레스의 비트폭 이하의 작은 비트폭으로 하여도, 상기 정보처리 회로가 처리할 수 있는 비트폭에 즉시 데이터를 확장할 수 있다. 이와 같이, 명령코드의 비트폭을 정보처리 회로가 처리할 수 있는 데이터 또는 어드레스의 비트폭 이하로 할 수 있기 때문에 메모리의 사용 효율을 개선할 수 있다.
또한, 본 발명의 정보처리 회로는 16비트폭의 고정길이의 명령코드를 입력 하도록 구성되고, 상기 즉시 데이터 확장수단은 상기 프리픽스 명령에 기초하여, 상기 타깃 명령의 실행에 필요한 즉시 데이터를 32비트의 폭으로 확장하며, 상기 명령실행 수단은 상기 즉시 데이터 확장수단으로 확장된 32비트의 즉시 데이터를 사용하여 타깃 명령을 실행하는 산술논리 연산수단을 포함하는 것을 특징으로 한다.
종래, 32비트의 데이터를 처리할 수 있는 RISC 방식의 마이크로컴퓨터에서는 고정길이 32 비트의 명령코드를 사용하여, 처리가 행해지고 있었다. 그러나, 상기 명령코드 중에는 특히 32 비트도 필요로 하지 않는 명령코드도 많고, 이것이 메모리의 사용 효율 악화의 원인이 되어 있었다.
즉, 통상, 명령코드는 해당 명령의 기본적인 오퍼레이션을 정하는 클래스 코드(class code), 오퍼레이션 코드(operation code)나, 즉시 데이터 이외의 오퍼레이션(operands)로 구성된다. 여기에 있어서 즉시 데이터 이외의 오퍼랜드란, 예컨대 소스 레지스터(rs)(source register)와 지정 레지스터(rd)(destination register)에 대응하는 코드 등을 가리킨다. 이 때문에, 16비트의 명령코드를 사용하는 경우, 사용할 수 있는 즉시 데이터의 비트수는 또한 작은 것으로 되고, 통상 6비트 정도가 된다. 일반적으로, 명령코드가 짧은 만큼, 즉시 데이터의 비트폭의 확보다 곤란하게 된다. 그러나, 본 발명에 의하면, 즉시 데이터의 확장을 행할 수 있기 때문에, 32비트의 데이터를 처리할 수 있는 정보처리 회로에 있어서도, 16 비트라는 짧은 명령코드를 사용할 수 있다. 이 때문에, 메모리의 사용 효율을 대폭으로 개선할 수 있다.
또한, 본 발명의 정보처리 회로의 상기 즉시 데이터 확장수단은 프리픽스 명령의 명령코드의 즉시 데이터 및 상기 타깃 명령의 명령코드의 즉시 데이터에 기초하여, 상기 타깃 명령의 명령 코드에 포함되는 즉시 데이터를 확장하는 것을 특징으로 한다.
이와 같이 하면, 타깃 명령의 명령코드 중에 포함되어 있는 즉시 데이터를 확장하여 실행하고자 하는 경우, 타깃 명령의 실행에 필요한 즉시 데이터의 일부를 타깃 명령의 명령코드의 즉시 데이터로서 지정하고, 타깃 명령의 실행에 필요한 즉시 데이터의 나머지 부분을 프리픽스 명령의 명령코드의 즉시 데이터로서 지정하는 간단한 구성으로, 즉시 데이터를 확장할 수 있다.
따라서, 명령코드 중의 즉시 데이터용 비트수를 짧게 설정하는 것이 가능하게 되고, 메모리의 사용 효율을 개선할 수 있다.
또한, 본 발명의 정보처리 회로의 상기 즉시 데이터 확장수단은 프리픽스 명령의 명령코드에 포함된 즉시 데이터를 사용하여 타깃 명령의 실행에 사용되는 데이터를 확장하는 것을 특징으로 한다.
여기에 있어서, 데이터라는 것은 어드레스에 대비되는 개념으로, 그 값의 내용이 어드레스 이외를 나타내는 것을 가리킨다. 타깃 명령의 실행에 사용하는 데이터라는 것은, 타깃 명령의 명령코드에 포함되어 있는 즉시 데이터의 데이터라든지, 타깃 명령의 명령코드에는 포함되어 있지 않지만, 실행할 때에 사용하는 즉시 데이터의 데이터를 말한다. 이렇게 하면, 간단한 구성으로 확장된 데이터의 즉시 데이터를 사용하여 타깃 명령을 실행할 수 있다.
또한, 본 발명의 정보처리 회로의 상기 즉시 데이터 확장수단은 프리픽스 명령의 명령코드에 포함된 즉시 데이터를 사용하여 타깃 명령의 실행에 사용되는 어드레스를 확장하는 것을 특징으로 한다.
여기에 있어서, 어드레스란 데이터에 대비되는 개념으로, 그 값의 내용이 기억장치 내에 있는 특정한 위치나 장소를 나타내기 위한 정보를 말한다. 타깃 명령의 실행에 사용되는 어드레스란, 타깃 명령의 명령코드에 포함되어 있는 즉시 데이터의 어드레스라든지, 타깃 명령의 명령코드에는 포함되어 있지 않지만, 실행할 때에 사용되는 즉시 데이터의 어드레스를 말한다. 이렇게 하면, 간단한 구성으로 확장된 어드레스의 즉시 데이터를 사용하여 타깃 명령을 실행할 수 있다.
또한, 본 발명의 정보처리 회로의 상기 즉시 데이터 확장수단은 다수의 프리픽스 명령의 명령코드에 포함된 각 즉시 데이터를 사용하고, 해당 프리픽스 명령의 기능확장의 대상이 되는 타깃 명령의 실행에 필요한 즉시 데이터를 확장하는 것을 특징으로 한다.
이렇게 하면, 다수의 프리픽스 명령의 즉시 데이터를 조합함으로써, 타깃 명령의 실행에 필요한 즉시 데이터를 임의로 확장할 수 있다. 따라서, 짧은 명령코드를 사용하여도, 큰 즉시 데이터를 사용한 실행이 취급될 수 있게 되기 때문에, 명령코드의 단축에 의한 폐해를 방지할 수 있다.
또한, 본 발명의 정보처리 회로로 처리되는 상기 다수의 프리픽스 명령의 각 명령코드는 프리픽스 명령인 것을 판별하기 위한 공통의 코드를 각각 포함하는 것을 특징으로 한다.
본 발명에 의하면, 다른 형태의 프리픽스 명령을 복수로 설치할 필요가 없다. 그러므로, 비트수가 적은 명령코드를 처리하는 정보처리 회로에 있어서도, 다른 종류의 명령을 할애하지 않고서, 즉시 데이터의 확장이 가능하게 된다.
또한, 본 발명의 정보처리 회로의 상기 즉시 데이터 확장수단은 프리픽스 명령의 연속입력 회수에 기초하여 결정되는 처리상태를 기억하는 처리상태 기억수단과,
상기 처리상태 기억수단에 기억된 처리상태에 기초하여, 입력된 프리픽스 명령의 즉시 데이터를 제1의 레지스터 내지 제m의 레지스터(m은 1이상의 정수)에 보유하는 정보처리상기 데이터 보유수단과, 상기 데이터 보유수단의 제1의 레지스터 내지 제 m의 레지스터(m은 1이상의 정수)에 보유된 즉시 데이터에 기초하여, 상기 타깃 명령의 명령 실행에 필요한 즉시 데이터를 확장하여 생성하는 수단을 포함하는 것을 특징으로 한다.
여기에 있어서, 프리픽스 명령의 연속입력 회수에 기초하여 결정되는 처리상태란, 연속입력 회수 그 자체에 의해서 결정되는 처리상태라도 좋고, 연속입력 회수로부터 어느 특정한 규칙에 따라 균일하게 유도되는 처리상태라도 좋다. 예컨대, 프리픽스 명령을 3회 이상 반복하여 입력한 경우, 3회째 이후는 항상 같은 처리상태를 하게 되도록 구성하여도 좋다. 그리고, 이와 같이 결정된 처리상태를 참조하여 프리픽스 명령의 즉시 데이터를 즉시 데이터 보유수단에 보유하여, 상기 보유된 즉시 데이터를 조합함으로써 즉시 데이터를 확장할 수 있다. 이렇게 하면, 간단한 구성으로 프리픽스 명령의 연속한 입력 회수에 기초하여, 타깃 명령의 실행에 필요한 즉시 데이터를 확장할 수 있다.
또한, 본 발명의 정보처리회로의 상기 명령코드 해석수단은 프리픽스 명령입력 후에 타깃 명령을 입력한 경우, 상기 타깃 명령의 오퍼레이션 내용을 확장하고 해석하는 타깃 명령 기능확장수단을 포함하며, 상기 명령실행수단은, 상기 타깃 명령 기능확장수단으로 확장된 오퍼레이션 내용으로 상기 타깃 명령을 실행하는 것을 특징으로 한다.
이렇게 하면, 타깃 명령을 프리픽스 명령과 조합하여 실행시킴으로써, 타깃 명령으로 확장된 기능을 실현시킬 수 있다. 이 때문에, 명령수를 줄일 수 있고, 또한 명령코드에 사용하는 비트수를 줄이는 것이 가능하게 된다.
또한, 비트수가 적은 명령코드에서는 실현이 어려운 기능을 프리픽스 명령과 타깃 명령을 조합함으로써 실현하는 것도 가능하게 된다. 이 때문에, 명령코드의 단축에 의한 메모리의 사용 효율을 개선할 수 있다.
또한, 본 발명의 정보처리회로의 상기 타깃 명령 기능확장수단은 프리픽스 입력 후에 2-오퍼랜드 명령(two-operand instruction)인 소정의 타깃 명령을 입력한 경우, 상기 타깃 명령의 2개의 오퍼랜드와 프리픽스 명령에 포함된 즉시 데이터를 사용하여, 상기 타깃 명령의 오퍼레이션 내용을 3 오퍼랜드 명령에 확장하고 해석하는 것을 특징으로 한다.
이렇게 하면, 2-오퍼랜드 명령의 타깃 명령을 프리픽스 명령과 조합하여 실행시킴으로써, 상기 타깃 명령의 조작기능을 3-오퍼랜드 명령(three-operand instruction)으로 확장하여 실행시킬 수 있다. 따라서, 2-오퍼랜드분의 기술영역 밖에 없는 짧은 명령코드를 사용하여도 3-오퍼랜드 명령을 실현할 수 있다. 이 때문에, 명령수 및 명령코드에 사용하는 비트수를 줄이는 것이 가능하게 된다.
또한, 더욱이 프리픽스 명령으로 즉시 데이터를 확장하여, 3-오퍼랜드 명령을 실현할 수 있기 때문에, 통상 1명령으로 3-오퍼랜드 명령을 실행하는 경우에 비교하여 큰 즉시 데이터를 취급할 수 있다.
또한, 본 발명의 정보처리회로의 상기 타깃 명령 기능확장수단은 프리픽스 명령입력 후에 레지스터 지정값을 갖는 소정의 타깃 명령을 입력한 경우, 프리픽스 명령의 명령코드에 지정된 즉시 데이터에 기초하여, 타깃 명령의 명령코드에 지정된 레지스터에 저장된 데이터 또는 어드레스를 수정하여 실행하도록 오퍼레이션 내용을 확장하는 것을 특징으로 한다.
여기에 있어서, 데이터의 어드레스를 수정하여 실행한다는 것은 데이터 또는 어드레스에 사칙연산 또는 논리연산, 시프트 연산 등을 행하여 실행하는 것을 말한다. 이렇게 하면, 타깃 명령을 프리픽스 명령과 조합하여 실행시킴으로써, 타깃 명령의 명령코드에 지정된 레지스터에 저장된 데이터 또는 어드레스를 프리픽스 명령의 명령코드에 지정된 즉시 데이터로 수정하여 실행할 수 있기 때문에, 명령수 또는 명령코드에 사용하는 비트수를 줄이는 것이 가능하게 된다.
또한, 본 발명의 정보처리회로의 상기 타깃 명령 기능확장수단은, 프리픽스 명령 입력 후에 레지스터 지정값을 갖는 소정의 타깃 명령을 입력한 경우, 프리픽스 명령의 명령코드에 지정된 즉시 데이터에 기초하여, 타깃 명령의 명령코드에 지정된 레지스터에 저장된 어드레스의 변위(displacement)를 작성하여, 상기 변위를 사용하여 실행하기 위한 오퍼레이션 내용을 확장하는 것을 특징으로 한다.
이렇게 하면, 프리픽스 명령을 사용함으로써 실행시의 어드레스의 변위(displacement)를 작성하는 것이 가능하게 된다.
또한, 프리픽스 명령을 사용함으로써, 오퍼랜드의 비트수에 한정되지 않고 변위의 부가가 가능하게 된다.
또한, 본 발명의 정보처리회로의 상기 명령코드 해석수단은 프리픽스 명령의 연속입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능확장수단을 포함하는 것을 특징으로 한다.
여기에 있어서, 다수 종류의 프리픽스 명령이 있는 경우는 동일한 종류의 프리픽스 명령의 연속입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장한다. 여기에서 동일한 종류의 프리픽스 명령이란, 상기 프리픽스 명령의 오퍼레이션 내용이 동일한 경우를 말한다. 따라서, 다수 종류의 프리픽스 명령이 있는 경우에 있어서, 그들의 기능이 오퍼레이션 코드 등에 의해 다르게 되는 경우는 동일한 종류의 프리픽스 명령과는 동일한 오퍼레이션 코드 등을 갖는 것을 말한다.
이렇게 하면, 프리픽스 명령의 오퍼레이션 내용을 그 입력 회수에 기초하여 변경시킬 수 있기 때문에, 적은 종류의 프리픽스 명령으로 많은 기능을 실현할 수 있다.
또한, 본 발명의 정보처리회로는 상기 명령코드 해석수단에 입력하는 명령코드를 기억하는 명령코드 기억수단을 더 포함하는 것을 특징으로 한다.
이와 같이 하면, 짧고 용장 부분이 적은(short and few unnecessarily verbose portions) 명령코드가 저장된 메모리의 사용 효율이 좋는 정보처리장치를 실현할 수 있다. 따라서, 같은 크기라면 많은 명령을 저장할 수 있는 정보처리장치를 제공할 수 있고, 또한, 같은 기능이면 적은 메모리 용량으로 실현할 수 있다.
또한, 본 발명의 반도체 집적회로장치는 본 발명의 정보처리회로를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 작은 회로구성으로 고기능의 반도체 집적회로장치를 제공할 수 있다.
또한, 본 발명의 마이크로컴퓨터는 본 발명의 정보처리회로를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 간단한 구성으로 메모리의 사용 효율이 좋은 마이크로컴퓨터를 제공할 수 있다.
또한, 본 발명의 마이크로컴퓨터는 RISC 방식인 것을 특징으로 한다.
RISC 방식의 마이크로컴퓨터는 고정길이가 짧은 명령코드를 처리함으로써, 명령의 디코드에 요하는 시간을 단축하고, 마이크로컴퓨터의 회로규모를 작게 하는 것을 목적으로 하고 있다. 따라서, 본 발명에 의하면, 이들의 목적을 용이하게 실현할 수 있는 RISC 방식의 마이크로컴퓨터를 제공할 수 있다.
또한, 본 발명의 전자 기기는 본 발명의 마이크로컴퓨터를 사용하여 제어하는 것을 특징으로 한다.
본 발명에 의하면, 간단한 구성으로 메모리의 사용 효율이 좋은 정보처리회로를 내장하고 있기 때문에, 염가로 고기능의 전자 기기를 제공할 수 있다.
[실시예 1]
1. CPU의 기능설명
도 1은 본 발명의 실시예의 CPU의 기능 블럭도이다. 상기 CPU(30)는 32비트 폭의 데이터를 취급하지만 16비트의 명령코드를 처리하도록 구성되어 있다.
본 CPU(30)는 명령 디코드부(40)와 명령 실행부(60)와 레지스터 파일(90)을 포함한다. 그리고 상기 CPU는 16비트의 명령 데이터버스(130)와, 명령 데이터 액세스를 위한 명령 어드레스 버스(120)와, 32비트의 데이터 버스(140)와, 데이터 액세스를 위한 데이터 어드레스 버스(310)와, 컨트롤 신호를 위한 컨트롤 버스(390)를 통해 외부와 신호 교환을 행한다.
상기 명령 디코드부(40)는 입력된 명령코드를 해독하여, 상기 명령을 실행하기 위해서 필요한 처리를 행하는 것으로, 본 발명의 특징적인 기능인 ext 명령 처리부(50)를 포함한다. 레지스터 파일(90)은 범용 레지스터R0 내지 R15의 16개의 범용 레지스터, 프로그램 카운터(PC), 프로세서 상태 레지스터(PSR), 스택포인터(SP), 산술 로우 레지스터(arithmetic low register)(ALR), 산술 하이 레지스터(arithmetic high register)(AHR) 등의 CPU에서 사용하는 레지스터를 가지고 있다. 명령 실행부(60)는 상기 명령 디코드(40)가 해석한 명령의 오퍼레이션 내용에 기초하여 상기 명령의 실행을 행하는 것으로, 데이터의 연산을 행하는 데이터 연산부(70)와, 어드레스의 연산을 행하는 어드레스 연산부(80)를 포함한다.
상기 CPU 내부의 하드웨어의 데이터 사이즈는 32비트이므로, 상기 명령 실행부(60)의 데이터 연산부(70)나 어드레스 연산부(80)에서 행하여지는 산술 논리 연산이나 상기 레지스터 파일의 레지스터의 비트수 및 데이터의 전송 등은 전부 32비트가 된다. 그런데, 상기 CPU(30)가 처리하는 명령코드는 16비트의 고정길이이다. 즉, 명령 데이터 버스 및 명령 어드레스 버스를 통해 접속되어 있는 도시하지 않은 명령 코드 기억부에는 고정길이 16비트의 명령코드가 저장되어 있다. 따라서, 1명령중의 유효한 즉시 데이터의 비트수는 명령코드 중에서 클래스 코드와 오퍼레이션 코드에 요구되는 비트수를 제외한 비트수로 된다. 이 때문에, 1명령 중의 유효한 즉시 데이터의 비트수는 예컨대 6비트로부터 8비트라는 비교적 짧은 비트 길이로 제한되어 있다.
그리고, 본 실시예에서는 ext 명령이라는 고정길이 16비트의 명령을 새로 설치하여, 상기 명령을 사용함으로써 즉시 데이터의 비트길이를 확장시킬 수 있도록 구성되어 있다. 또한, ext 명령을 사용함으로써 고정길이 16비트라는 짧은 비트폭의 명령코드로서는 기술할 수 없는 오퍼레이션을 가능하게 하도록 구성되어 있다.
ext 명령은 그 단독으로는 CPU에서의 실행을 어떻게도 행하지 않지만, 타깃 명령의 직전에 둠으로써, 그 타깃 명령의 기능을 확장하는 명령으로 되는 프리픽스 명령이 된다. 또한, 상기 프리픽스 명령에 의한 기능확장의 대상이 되는 명령을 타깃 명령이라고 한다.
이러한 ext 명령의 처리를 행하는 것이 ext 명령 처리부(50)이며, 이후 상세히 설명한다.
2. 반도체 집적회로의 구성
마이크로컴퓨터에 내장되어 있는 반도체 집적회로를 예로 들어, 본 발명의 특징적인 기능을 실현하기 위한 회로구성의 일례와 작동내용에 대하여 설명한다.
도 2는 마이크로컴퓨터에 내장되어 있는 반도체 집적회로 구성의 설명에 필요한 부분을 도시한 것이다. 상기 반도체 집적회로(100)는 CPU(30)와, ROM(110), 도시하지 않는 RAM을 포함한다. 상기 CPU(30)는 상기 ROM(110), 도시하지 않는 RAM등과, 16비트의 명령 데이터 버스(130), 해당 명령 데이터 액세스를 위한 명령 어드레스 버스(120), 32비트의 데이터 버스(140)를 통해, 외부와 신호교환을 행한다.
상기 ROM(110)에는 CPU(30)에 실행시키는 처리를 기술한 16비트의 명령코드가 기억되어 있고, 명령코드 기억수단으로서 기능한다. 그리고, 상기 ROM(110)에 통상 명령의 명령코드와 동일하게, 상기 프리픽스 명령과 타깃이 되는 명령의 명령코드가 기억된다.
상기 CPU(30)은 명령 레지스터(150)와, 명령 디코드회로(160)와, 즉시 디코드 생성회로(170)와, EXT 1 레지스터(172), EXT 2 레지스터(174), 레지스터 파일(90)과 ALU(190)를 포함한다.
명령 레지스터(150)는 상기 ROM(110)으로부터, 명령 데이터버스(130)를 통해 입력된 명령코드를 저장한다. 명령 디코드회로(160)는 명령 레지스터(150)에 저장된 명령코드를 해독하여, 실행에 필요한 제어신호를 출력하고, 또한, 명령코드중의 즉시 데이터를 추출하여, 필요에 따라서 EXT1 레지스터(172), EXT2 레지스터(174)에 보유하기도 하고, 즉시 데이터 생성회로(170)에 출력한다.
즉시 데이터 생성회로(170)는 상기 명령 디코드회로(160)로부터 출력된 즉시 데이터 및 EXT1 레지스터(172), EXT2 레지스터(174)에 보유된 즉시 데이터를 사용하여, 32비트로 확장된 즉시 데이터를 생성한다. 즉, 명령 디코드회로(160)와 즉시 데이터 생성회로(170)와 EXT1 레지스터(172)와 EXT2 레지스터(174)는 도 1에 나타낸 명령 디코드부(40) 및 ext 명령 처리부(50)로서 기능한다.
ALU(190)는 상기 확장된 즉시 데이터와 레지스터 파일(90)의 레지스터에 저장된 값과 도시되지 않은 주기억의 데이터에 대하여, 산술연산과 논리연산과 시프트연산을 행한다. 즉, ALU(190)는 도 1에 도시된 명령 실행부(40)의 데이터 연산부(70)로서 기능한다.
다음에 본 발명의 특징적인 기능이 되는 확장된 즉시 데이터의 생성을 행하는 구성에 대하여 상세히 설명한다. 본 발명의 즉시 데이터의 확장은 후술하는 바와 같은 여러 가지의 패턴이 있지만, 본 실시예서는, 프리픽스 명령의 즉시 데이터를 사용하여, 후속의 타깃 명령의 즉시 데이터의 비트수를 늘리는 확장을 행하는 경우를 예로 하고, 그 상세한 구성을 설명한다.
본 마이크로컴퓨터로 처리되는 명령은 통상의 명령과, 프리픽스 명령으로 나눌 수 있다. 통상의 명령중 소정의 명령에 대해서는 프리픽스 명령의 타깃이 될 수 있다(프리픽스 명령의 타깃이 되는 명령을 타깃 명령이라 한다).
본 마이크로컴퓨터에서는 16비트 고정길이 명령코드를 채용하고 있기 때문에, 후술하는 바와 같이 통상의 명령으로서는 즉시 데이터를 지정하는 필드로서, 예컨대 6비트밖에 확보할 수 없다. 그러나, ALU(190) 등에 의하여 실행 될 때의 데이터 길이는 32비트이므로, 상기 즉시 데이터 생성회로(170)에 의해, 32비트로 확장된 즉시 데이터가 생성되어, ALU(190)에 입력된다. 이 같은 경우, 통상의 비트의 확장으로서는 이하의 2종류가 있다. 즉, 상기 6비트의 상위 26비트를 전부 제로로 하는 제로확장(zero extension)과, 상기 6비트의 최상위 비트의 값을 상위 26비트에 확장하는 부호 확장(sign extension)이다. 그러나 이 같은 확장에서는 CPU는 32비트의 연산능력이 있음에도 불구하고, 의미 있는 내용을 갖는 큰 비트수의 즉시 데이터를 취급할 수 없다. 따라서, 본 실시예에서는 프리픽스 명령의 즉시 데이터를 사용하여, 후속의 타깃 명령의 즉시 데이터의 비트수를 들리는 확장을 행할 수 있는 바와 같은 구성을 채용하고 있다. 본 실시예에서는 이 같은 확장을, 프리픽스 명령의 명령코드에 포함되는 즉시 데이터를 보유하는 수단과, 보유된 즉시 데이터에 기초하여 즉시 데이터의 비트수를 늘리는 수단으로 실현하고 있다.
우선 프리픽스 명령의 명령코드에 포함되는 즉시 데이터를 보유하는 수단에 관하여 설명한다. 상기 수단으로서 명령 디코드회로(160)는 도시하지 않은 스테이트 머신(state machine)을 가지고 있다. 상기 스테이트 머신의 상태는 명령 디코드회로(160)가 처리한 명령이, 프리픽스 명령인지, 통상의 명령인지에 의하여 천이한다. 명령 디코드회로(160)는 스테이트 머신의 상태에 기초하여, 처리한 프리픽스 명령의 즉시 데이터를 EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유시킨다. 즉시 데이터생성회로(170)는 스테이트 머신의 상태에 기초하여 상기 EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유된 즉시 데이터를 사용하여, 확장된 즉시 데이터의 생성을 행한다. 또한, 보유수단은 레지스터 외에 래치회로라도 좋다.
또한, 후술하는 바와 같이 본 실시예의 마이크로컴퓨터로 사용하는 프리픽스 명령은 ext 명령의 한 종류뿐이며, ext 명령의 명령코드는 13비트의 즉시 데이터를 포함하고 있다.
도 3은 명령 디코드 회로(160)가 갖는 스테이트 머신 상태의 천이를 나타낸 도면이다. 상기 스테이트 머신은 S0, S1, S2의 3종류의 상태를 보유할 수 있다. S0은 ext 명령(프리픽스 명령)이 아닌 통상의 명령을 입력한 상태를 나타내고 있고, S1은 1회 째의 ext 명령(프리픽스 명령)을 입력한 상태를 나타내고 있고, S2는 2회 째의 ext 명령(프리픽스 명령)을 입력한 상태를 나타낸다.
도 3에 나타내는 바와 같이, 스테이트 머신의 상태가 S0일때, 통상의 명령(ext=0)을 입력하면 상태는 S0을 유지하며(400), ext 명령(ext=1)을 입력하면 상태는 S1로 천이한다(410). 또한, 스테이트 머신의 상태가 S1일 때, 통상의 명령(ext=0)을 입력하면 상태는 S0로 천이하고(420), ext 명령(ext=1)을 입력하면 상태는 S2로 천이한다(430). 또한, 스테이트 머신의 상태가 S2일 때, 통상의 명령(ext=0)을 입력하면 상태는 S0로 천이하고(440), ext 명령(ext=1)을 입력하면 상태는 S2를 유지한다(450).
즉, 상기 스테이트 머신은 통상의 명령이 입력되면 S0의 상태가 되어, ext 명령을 연속하여 2회 이상 입력한 경우는 다시 통상의 명령을 입력할 때까지 S2의 상태를 보유하도록 구성되어 있다.
도 4는 즉시 데이터의 보유에 관해서 명령 디코드회로(160)가 행하는 동작의 알고리즘을 나타낸 흐름도이다.
우선 명령 디코드회로(160)는, 명령 레지스터에 입력된 명령 코드를 해독하고, 상기 명령코트가 ext 명령인가 아닌가 및 스테이트 머신의 현재의 상태에 기초하여, 스테이트 머신의 상태 설정을 행한다(스텝10).
스테이트 머신의 상태가 S1일 때는 (스텝 20), 1회째 ext 명령이 입력된 상태이고, 명령 디코드회로(160)는 1회째의 ext 명령의 13비트의 즉시 데이터를 ext 1 레지스터(172)에 보유한다(스텝30).
스테이트 머신의 상태가 S2 일 때는 (스텝40), 2회 이상 연속하여 ext 명령이 입력된 상태이고, 명령 디코드회로(160)는 입력된 ext 명령의 13비트의 즉시 데이터를 ext 2 레지스터(174)에 보유한다(스텝50). 이 때문에, ext 명령이 3회 이상 연속한 경우는 최신의 ext 명령의 즉시 데이터가 ext 2 레지스터에 중복기재(overwrite)된다. 따라서, ext명령이 연속한 경우는 최초의 ext 명령과 최후의 ext 명령의 즉시 데이터가 유효하게 되고, 그 중간의 ext 명령은 무시하게 된다.
그리고, 상태가 S0인 경우는 통상의 명령이 입력된 상태이기 때문에, 상기 명령의 명령코드가 즉시 데이터를 포함하는가 아닌가 판단하여(스텝60), 즉시 데이터를 포함하는 경우는 상기 명령코드의 즉시 데이터를 즉시 데이터 생성회로에 출력한다(스텝70).
다음에, 보유된 즉시 데이터에 기초하여 즉시 데이터의 비트수를 늘리는 수단에 대하여 설명한다. 상기 수단으로서, 즉시 데이터 생성회로(170)는 도시하지 않은 즉시 데이터 생성용 신호 생성수단을 가지고 있고, 상기 즉시 데이터 생성용 신호 생성수단으로 생성된 즉시 데이터 생성신호에 기초하여 확장된 즉시 데이터를 생성한다.
도 5는 입력되는 명령코드 및 상기 스테이트 머신의 상태와 상기 즉시 데이터 생성용 신호 생성회로가 생성하는 즉시 데이터 생성용 신호와의 관계를 나타낸 타이밍도이다.
상기 즉시 데이터 생성용 신호 생성회로가 생성하는 신호는 ext 신호(530)와, ext_low 신호(550)와 ext_high 신호(560)이다. 도 5의 510은 입력되는 명령코드를 나타내고 있고, 540은 상기 스테이트 머신의 상태를 나타낸다. 또한 클럭 신호호(520)는 도 2에 있어서 도시하지 않은 클럭 신호 발생기에 의해 생성된 신호이거나 또는 클럭 입력 단자로부터 입력되는 신호이다. 상기 클럭 신호(520)는, CPU에서의 각종 동작의 동기를 취하기 위해서 사용된다. 예컨대, 상기 클럭 신호(520)의 상승에 동기하여 명령 어드레스 버스(120)에 명령 어드레스가 출력된다. 또한, 상기 클럭 신호(520)의 1주기(1머신사이클) 마다 상기 명령 어드레스에 기초하여 ROM(110)으로부터 명령코드가 판독되고, 명령 레지스터(150)에 보유된다. 그리고, 판독된 명령코드에 따른 오퍼레이션은, 1머신 사이클 내에서 완료한다.
ext 신호(530)는, ext 명령이 입력되었을 때에 '1'이 되는 신호로서, 상기 스테이트 머신의 상태 천이를 생기게 하는 입력신호이다. 즉, 상기 즉시 데이터 생성용 신호 생성회로는 입력된 명령이 ext 명령인 경우 ext 신호(530)를 '1'로 하여, 입력된 명령이 통상의 명령인 경우 ext 신호(530)를 '0'으로 하도록 작동한다.
ext_low신호(550)는, 스테이트 머신의 상태에 따라서 출력되는 신호이며 상태가 'S1'일 때 '1'이 되는 1클럭분 지연한 지연신호이다. 즉, 상기 즉시 데이터 생성용 신호 생성회로는, 상태가 'S1' 일 때, 다음 클럭 신호의 상승에 동기를 하여, ext_low신호(550)를 '1'로 하고, 그 다음 클럭 신호의 상승에 동기를 하여, ext_low신호(550)를 '0'으로 한다.
ext_high 신호(560)는, 스테이트 머신의 상태에 따라서 출력되는 신호이고, 상태가 'S2'일 때 '1'이 되는 1클럭분 지연한 지연신호이다. 즉, 상기 즉시 데이터 생성용 신호 생성회로는, 상태가 'S2' 일 때, 다음 클럭 신호(520)의 상승에 동기를 하여, ext_high신호(560)를 '1'로 하고, 그 다음 클럭 신호(520)의 상승에 동기를 하여, ext_high신호(560)를 '0'으로 한다.
도 6은 명령코드에 즉시 데이터를 포함하고 있는 경우에 즉시 데이터 생성회로가, 스테이트 머신의 상태 및 즉시 데이터 생성용 신호에 기초하여 즉시 데이터를 확장하는 알고리즘을 나타낸 흐름도이다.
스테이트 머신의 상태가 S0가 아닌 경우는 (스텝 110), CPU가 프리픽스 명령인 ext 명령을 처리하고 있는 상태이며, 통상의 명령을 처리하고 있는 상태는 아니다. 상기의 경우에는, 특시 데이터 생성회로(170)는 즉시 데이터의 생성을 행하지 않는다(스텝120). 프리픽스 명령자체는, 명령 실행부(60)에 있어서의 ALU에서의 연산등의 실행이 행하여지지 않으므로, 프리픽스 명령의 처리시(스테이트 머신의 상태가 S1 또는 S2인 경우)에 즉시 데이터를 생성할 필요는 없다.
스테이트 머신의 상태가 S0로 ext_low 신호(550) = '1'인 경우는 (스텝110), 1회의 ext 명령 후에 타깃 명령인 통상의 명령을 처리하고 있는 상태이다. 상기의 경우에는, EXT1 레지스터(172)에 보유되어 있는 앞서의 ext 명령의 명령코드에 포함되어 있는 13비트의 즉시 데이터와, 즉시 데이터 생성용 신호선(176)을 통해 입력된 상기 타깃 명령의 명령코드에 포함되어 있는 6비트의 즉시 데이터를 연결하여 이루어지는 19비트의 즉시 데이터를, 32비트로 제로확장 또는 부호 확장한다(스텝14).
스테이트 머신의 상태가 S0로 ext_high 신호(560)='1'인 경우는 (스텝150), 다수회 연속하여 입력한 ext 명령 후에 타깃 명령인 통상의 명령을 처리하고 있는 상태이다. 상기의 경우에는 EXT1 레지스터(172)에 보유되어 있는 첫 번째의 ext 명령의 명령코드에 포함되어 있는 13비트의 즉시 데이터와, EXT2 레지스터(174)에 보유되어 있는 가장 최후의 ext 명령의 명령코드에 포함되어 있는 13비트의 즉시 데이터와, 즉시 데이터 생성용 신호선(176)을 통해 입력된 상기 타깃 명령의 명령코드에 포함되어 있는 6비트의 즉시 데이터를 연결하여 32비트의 즉시 데이터를 생성한다(스테160).
스테이트 머신의 상태가 S0로 ext_low 신호(550) = '0'이고 ext_high 신호(560)='0'인 경우는, 타깃 명령이 아닌 통상의 명령(직전의 명령이 ext 명령이 아닌 통상의 명령)을 처리하고 있는 상태이다. 상기의 경우에는, 즉시 데이터 생성용 신호선(176)을 통해 입력된 상기 통상 명령의 명령코드에 포함되어 있는 6비트의 즉시 데이터를 32비트로 제로확장 또는 부호 확장한다(스텝170).
이와 같이, 명령 디코드회로(160) 및 즉시 데이터 생성회로(170)는 ext 명령의 즉시 데이터를 사용하여, 후속의 타깃 명령의 즉시 데이터 비트수를 늘리는 즉시 데이터 확장수단으로서 기능한다.
또한, 상기 처리는 명령코드에 즉시 데이터를 포함하고 있는 경우이다. 그러나, 명령코드 중에 즉시 데이터를 포함하지 않는 경우라도, 스텝(140)의 처리와 스텝(160)의 처리로 명령 코드중의 즉시 데이터를 사용하지 않도록 하고, 스텝(170)의 처리를 생략함으로써 상기 처리와 같이 적용할 수 있다.
ext 명령을 연속하고 다수회 실행함으로써, 2회째 이후의 ext 명령의 오퍼레이션 내용을 확장할 수 있다. 즉, 상술한 바와 같은 구성을 함으로써, 명령 디코드회로(160)와 즉시 데이터 생성회로(170)와 EXT1 레지스터(172)와 EXT2 레지스터(174)는, 프리픽스 명령의 연속입력 회수에 기초하여, 상기 프리픽스 명령의 오퍼레이션 내용을 확장하고 해석하는 프리픽스 명령 기능확장수단으로서 기능한다.
3. ext 명령(프리픽스 명령)을 사용한 타깃 명령의 즉시 데이터 확장의 구체예
본 발명의 ext 명령에 의한 즉시 데이터 확장의 대표적인 실시예를, 명령코드 중의 즉시 데이터와 범용 레지스터를 지정하여, 상기 즉시 데이터와 범용 레지스터에 저장되어 있는 값의 연산을 행하는 타입의 명령(편의상, 이하 타입-1명령이라 한다)인 경우를 예로 하여 설명한다.
우선, 타입-1 명령 및 ext 명령의 명령코드의 구성에 대하여 설명한다. 도 7a는 상기 타입-1 명령의 명령코드(210)의 비트 필드를 나타낸 도면이고, 도 7b는 ext 명령의 명령코드(220)의 비트 필드를 나타내고 있다. 비트 필드의 위의 숫자는 비트의 위치를 나타내고 있고, 도 7a, 도 7b에 나타낸 바와 같이 명령코드는 비트(15)로부터 비트(0)까지 16비트폭의 필드를 가지고 있다.
도 7a에 나타낸 바와 같이, 타입-1명령의 명령코드(210)는, 비트(15)로부터 비트(13)의 3비트의 클래스 지정영역(212)과, 비트(12)로부터 비트(10)의 3비트의 오퍼레이션 코드를 지정하는 영역(214)과, 비트(9)로 부터 비트(4)의 6비트의 즉시 데이터를 지정하는 영역(216)과, 비트(3)로부터 비트(0)의 4비트의 레지스터 지정 영역(218)을 가지고 있다.
클래스 지정영역(212)이란, 명령의 그룹을 정의하는 필드이다. 본 마이크로컴퓨터에 사용하는 명령은, 소정의 규칙에 따라서, 그룹이 나누어져 있기 때문에, 어떤 그룹에 속하는 명령인가가 클래스 지정영역에 지정되어 있다.
오퍼레이션 코드를 지정하는 영역(214)에는, 명령의 조작기능을 규정하는 오퍼레이션 코드가 저장되어 있다. 또한, 클래스마다 그 클래스에 속하는 오퍼레이션이 결정되어 있기 때문에, 상기 오퍼레이션 코드를 지정하는 영역(214)에는 상기 클래스 지정 영역(212)으로 지정된 클래스에 속하는 오퍼레이션 코드가 저장되어 있다.
또한, 상기 특시 데이터를 지정하는 영역(216)에는, 6비트의 즉시 데이터(imm6)의 값이 저장되어 있고, 레지스터 지정영역(218)에는 어느 한 범용레지스터(rd)를 나타내는 코드가 저장되어 있다.
타입-1명령은, 상기 즉시 데이터(imm6)와 범용 레지스터(rd)에 대하여 상기 오퍼레이션 코드에 의해 규정된 연산을 행하여, 결과를 범용 레지스터(rd)에 기록하는 작동을 행하는 명령이다.
또한, 도 7b에 나타낸 바와 같이 ext 의 명령코드(220)는 비트(15)로부터 비트(13)의 3비트의 지정영역(222)와 비트(12)로부터 비트(0)의 13비트의 즉시 데이터를 지정하는 영역(224)을 가지고 있다. 상기 즉시 데이터를 지정하는 영역(224)에는, 13비트오퍼레이션의 즉시데이터(imm13)의 값이 저장되어 있따.
상기 ext명령은 오퍼레이션 코드를 가지고 있지 않지만, 본 실시예의 마이크로컴퓨터가 처리하는 프리픽스 명령은, ext 명령 한 종류뿐이고, 소정의 클래스를 상기 프리픽스 명령에 할당하고 있기 때문에, 클래스 지정영역(222)에 지정된 클래스에 의해서, ext 명령이라고 판별할 수 있다.
ext 명령은 프리픽스 명령이므로, 단독으로는 CPU에 있어서의 ALU에 의한 어떠한 연산 등에 대하여도 행하지 않지만, 후속의 타깃 명령이 실행될 때에, 그 타깃 명령의 실행에 사용하는 즉시 데이터를 확장하는 기능을 갖는다. 예컨대 타입-1 명령과 같이 명령코드에 즉시 데이터를 포함하고 있는 명령이 ext 명령의 타깃 명령이 된 경우, 타입-1명령 실행시에 타입-1명령의 명령코드에 포함되는 즉시 데이터를 ext 명령의 6비트의 즉시 데이터(imm6)를 사용하여 확장하는 기능을 갖는다.
다음에 상기 타입-1명령이 실행될 때의 즉시 데이터의 확장에 대하여 자세히 설명한다.
우선, 타입-1명령이 단독은 실행된 경우의 실행내용에 대하여 설명한다. 도 2에 있어서, 우선, 타입-1명령은 ROM(110)으로부터 명령 데이터버스(120)를 통해 명령 레지스터(150)에 입력된다. 그리고, 명령 디코드회로(160)에서 해독되어, 내용에 따른 연산이 행하여진다. 타입-1며령에 있어서는 명령코드에 지정된 범용 레지스터(rd)에 저장된 데이터가 레지스터 파일(90)에서 데이터버스(182)를 통해 ALU(190)에 압력된다. 또한, 명령코드에 지정된 즉시 데이터(imm6)는 명령 디코드회로에 의해 추출되어, 즉시 데이터 생성용 신호선(176)을 통하여 즉시 데이터 생성회로(170)에 입력된다. 그리고, 즉시 데이터 생성회로(170)로 상기 즉시 데이터(imm6)는 32비트로 제로확장 혹은 부호 확장되어, 상기 확장된 즉시 데이터는 ALU(190)에 입력된다. 그리고 ALU(190)는 타임-1명령의 오퍼레이션 코드로 나타나는 연산을 행하며, 연산결과를 데이터버스(192)를 통해 레지스터 파일(90)의 범용 레지스터(rd)에 저장한다.
상기 타입-1명령은 단독으로 실행할 수도 있고, 직전의 1 또는 다수의 ext 명령과 조합하여 실행하는 것도 가능하다. ext 명령과 조합하여 실행된 경우의 실행내용에 대하여도, 기본적으로는 상기 단독실행의 경우와 같지만, 명령 디코드회로에 의해 추출된 즉시 데이터(imm6)로부터 확장된 즉시 데이터가 생성되는 과정이 달라진다. 즉, ext 명령과 조합하여 실행된 경우는, EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되어 있는 앞서의 ext 명령의 즉시 데이터를 사용하여 imm6의 확장이 행하여진다. 상기 과정 및 상기 과정에 앞서 ext 명령의 즉시 데이터가 XT1 레지스터(172)와 EXT2 레지스터(174) 보유되는 과정은, 도 3 내지 도 6에서 설명한 대로이다. 따라서, 타입-1명령이 단독으로 실행되었는가, 직전의 1또는 다수의 ext 과 조합하여 실행되었는가에 의해, 즉시 데이터 생성회로(170)에 의해 생성되는 확장된 즉시 데이터가 달라진다.
도 8a 내지 도 8c, 상기 각 경우의 오퍼레이션을 나타낸 식과 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터의 필드도이다.
도 8a는 타입-1명령이 단독으로 실행된 경우의 오퍼레이션을 나타낸 식과, 실행에 사용되는 확장된 즉시 데이터(230)의 비트 필드도이다. 도 8a에 나타낸 바와 같이, 타입-1명령의 6비트의 즉시 데이터(imm6)가 제로확장 또는 부호 확장중의 어느 방법으로 확장되어 32비트의 즉시 데이터(230)로 된다. 제로 확장된 경우는 비트(6)로부터 비트(31)의 영역(232)는 전부 제로로 되며, 부호 확장된 경우는 비트(6)로 부터 비트(31)의 영역(232)은 전부 imm6의 최상위비트 즉 비트(5)와 같은 비트가 된다.
도 8b는 직전의 1의 ext 명령과 조합하여 실행된 경우의 오퍼레이션을 나타낸 식과, 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터(240)의 비트 필드도이다. 도 8b 에 나타낸 바와 같이, 타입-1명령의 6비트의 즉시 데이터(imm6)가 비트(5)로부터 비트(0)의 필드(246)에 페트되어, 직전의 1의 ext 명령의 13비트의 즉시 데이터(imm13)가 비트(18)로부터 비트(6)에 세트되어, 19비트의 즉시 데이터(imm19)가 생성된다. 그리고, 상기 19비트의 즉시 데이터(imm19)는 제로확장 또는 부호 확장중의 어느 확장방법에 의해 32비트의 즉시 데이터(240)가 된다. 제로확장된 경우는 19비트로부터 31비트의 영역(242)은 전부 제로가 되고, 부호 확장된 경우는 19비트로부터 31비트의 영역(242)은 전부 imm19의 최상위 비트 즉 18비트 째와 같은 비트로 된다.
도 8c는, 2회의 ext명령과 조합하여 실행된 경우의 오퍼레이션을 나타낸 식과, 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터(250)의 비트 필드도이다. 도 8c에 나타낸 바와 같이, 타입-1명령의 6비트의 즉시 데이터(imm6)가 비트(5)로부터 비트(0)의 필드(256)에 세트되며, 1회 째 ext명령의 13비트의 즉시 데이터(imm13)가 비트(31)로부터 비트19에 세트되고, 2회 째의 ext 명령의 13비트의 즉시 데이터(imm13)가 비트(18)로부터 비트(6)에 세트되어, 32비트의 즉시 데이터(imm32)(250)가 생성된다.
또한, 2회 이상 ext 명령과 조합하여 실행한 경우는 최초와 최후의 ext 명령이 유효하게 되도록 구성되어 있다. 측, 최초의 ext 명령이 상기 1회 째의 ext 명령과 같이 기능하고, 최후의 ext 명령이 상기 2회 째의 ext명령과 같이 기능한다.
4. 프리픽스 명령을 사용한 타깃 명령의 오퍼레이션 내용확장의 구체예
본 발명의 프리픽스 명령에 의한 타깃 명령의 오퍼레이션 내용확장의 대표적인 실시예를, 2개 범용 레지스터를 사용하여 연산을 행하는 타입의 명령(편의상, 이하 타입-2명령이라 한다)인 경우를 예로 하여 설명한다.
우성, 타입-2명령의 명령코드의 구성에 관해서 설명한다. 도 9는 상기 타입-2명령의 명령코드(260)의 비트 필드를 나타낸 도면이다.
도 9에 나타낸 바와 같이, 타입-2 명령의 명령코드(260)는 비트(15)로부터 비트(13)의 3비트의 클래스 지정영역(262)과, 비트(12)로부터 비트(8)의 5비트의 오퍼레이션 코드를 지정하는 영역(264)과, 비트(7)로부터 비트(4)의 4비트의 레지스터 지정영역(266)과, 비트(3)로부터 비트(0)의 4비트의 레지스터 지정영역(268)을 가지고 있다.
또한, 상기 레지스터 지정영역(266, 268)에는, 각각 어느 한 범용 레지스터(rs)(rd)를 나타내는 코드가 저장되어 있다. rs란 레지스터 소스(register source), rd란 레지스터 지정(register destination)을 의미하는 것이다. 타입-2 명령은 범용 레지스터(rs)에 저장되어 있는 데이터와 범용 레지스터(rd)에 저장되어 있는 데이터에 대해 오퍼레이션코드로 나타나는 연산을 행하고, 결과를 범용 레지스터(rd)에 기입하는 작동을 행하는 2오퍼랜드 명령이다.
다음에, 타입-2명령이 단독으로 실행된 경우의 CPU의 작동에 대하여 설명한다. 도 2에 있어서 우선 타입-2명령은 ROM(110)으로부터 명령 데이터버스(130)를 통해 명령 레지스터(150)에 입력된다. 그리고, 명령 디코드회로(160)에서 해독되어, 내용에 따른 연산이 행하여진다. 타입-2명령에 있어서는 명령코드에 지정된 범용 레지스터(rd)에 저장된 데이터가 레지스터 파일(90)에서 데이터버스(182)를 통해 ALU(190)에 입력된다. 또한, 명령코드에 지정된 범용 레지스터(rs)에 저장된 데이터가 레지스터 파일(90)에서 데이터버스(184)를 통해 ALU(190)에 입력된다. 그리고 ALU(190)는 타입-2명령의 오퍼레이션 코드로 나타나는 연산을 행하며, 연산 결과를 데이터버스(192)를 통해 레지스터 파일(90)의 범용 레지스터(rd)에 저장한다.
상기 타입-2명령은 단독으로 실행할 수도 있고, 직전의 1또는 다수의 ext명령과 조합하여 실행하는 것도 가능하다.
도 10a 내지 도 10c는 타입-2명령을 단독으로 실행하는 경우 및 직전의 1 또는 2회의 ext 명령과 조합하여 실행하는 경우의 오퍼레이션을 나타낸 식과, 실행에 사용하는 즉시 데이터의 비트 필드를 나타낸 도면이다.
도 10a는 타입-2명령이 단독으로 실행된 경우의 오퍼레이션을 나타낸 식이다. 단독으로 실행되는 경우는 도시된 바와 같이, 타입-2명령의 본래의 오퍼레이션이 실행되기 때문에 즉시 데이터는 사용되지 않는다. 또, 타입-2명령이 단독으로 실행된 경우의 실행내용에 관하여는 상술한 대로이다.
도 10b는 타입-2명령이 직전의 1의 ext 명령과 조합하여 실행된 경우의 오퍼레이션을 나타낸 식과, 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터(270)의 비트 필드도이다. 도시된 바와 같이, 타입-2명령이 직전의 1의 ext 명령과 조합하여 실행된 경우는, ext 명령에 기초하여 생성되는 즉시 데이터(imm13)와 범용 레지스터(rs)내용의 연산 결과를 범용 레지스터(rd)에 기록하도록 오퍼레이션 내용이 확장한다. 즉시 데이터(270)는, ext 명령에 포함되는 즉시 데이터(imm13)가 32비트로 제로 확장하여 생성된다.
타입-2명령이 1의 ext 명령과 조합하여 실행된 경우의 실행 내용에 대하여 설명한다. 도 2에 있어서 우선, 타입-2명령은 ROM(110)으로부터 명령 데이터버스(120)를 통해 명령 레지스터(150)에 입력된다. 그리고, 명령 디코드회로(160)에서 해독되지만, 이 때 상기 명령이 타깃 명령으로 되어 있는 경우(상기 스테이트 머신의 상태가 S0이외의 경우)는, 이하의 오퍼레이션을 실행한다. 즉, 명령 코드에 지정된 범용 레지스터(rs)에 저장된 데이터가 레지스터 파일(90)에서 데이터버스(182)를 통해, ALU(190)에 입력된다. 또한, EXT1 레지스터(172)에 보유되어 있던 직전의 ext 명령의 즉시 데이터(imm13)는 즉시 데이터생성회로(170)에 의해 제로 확장되어 상기 즉시 데이터(270)가 생성되고, ALU(190)에 입력된다. 그리고, ALU(190)는 타입-2명령의 오퍼레이션 코드로 나타나는 연산을 행하여, 연산결과를 데이터버스(192)를 통해 데이터 파일(90)의 범용 레지스터(rd)에 저장한다.
또한, EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되어 있는 앞서의 ext 명령의 즉시 데이터를 사용하여, 타입-2명령의 실행에 사용하는 즉시 데이터를 생성하는 과정 및 상기 과정에 앞서 ext 명령의 즉시 데이터가 EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되는 과정은 도 3 ~도 6에서 설명한 대로이다.
따라서, 타입-2명령을 ext 명령과 조합하여 실행한 경우, 오퍼랜드로서 즉시 데이터와 2개의 범용 레지스터를 갖는 것과 같은 3 오러팬드 명령을 실행한 것과 동일한 효과를 갖는다.
도 10c는 타입-2명령이 2회의 ext 명령과 조합하여 실행된 경우의 오퍼레이션을 나타낸 식과, 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터(280)의 비트 필드도이다. 같은 식으로 나타낸 바와 같이, 타입-2명령의 2회의 ext 명령과 조합하여 실행된 경우는, 2회의 ext 명령에 기초하여 생성되는 즉시 데이터(imm26)와 범용레지스터(rs)의 내용과의 연산결과를 범용 레지스터(rd)에 기록하도록 오퍼레이션 내용이 확장한다. 즉시 데이터(280)는, 1회 째의 ext 명령에 포함되어 있는 즉시 데이터 imm13를 비트(25) 내지 비트(13)에 세트하고, 2회 째의 ext 명령에 포함되어 있는 즉시 데이터를 비트(12) 내지 비트(0)에 세트한 imm26을 32비트에 제로확장 또는 부호 확장하여 생성된다.
또한, 2회 이상 ext 명령과 조합하여 실행된 경우는 최초와 최후의 ext 명령이 유효하게 되도록 구성되어 있다. 즉, 최초의 ext 명령이 상기 1회째의 ext 명령과 같이 기능하며, 최수의 ext 명령이 상기 2회째의 ext 명령과 같이 기능한다.
타입-2 명령이 2회 또는 다수회의 ext 명령과 조합하여 실행된 경우의 실행내용은 기본적으로는, 1회의 ext 명령과 조합하여 실행된 경우와 같지만, 즉시 데이터 생성회로(170)가 상기 즉시 데이터(280)를 생성하는 과정이 달라진다.
즉, 즉시 데이터 생성회로(170)는 EXT1 레지스터(172)에 보유되어 있던 1회째의 ext 명령의 즉시 데이터(imm13)와 EXT2 레지스터(174)에 보유되어 있던 최후와 ext 명령의 즉시 데이터(inn13)를 사용하여 상기 즉시 데이터(280)를 생성한다.
또한, EXT1 레지스터 (172)와 EXT2 레지스터(174)에 보유되어 있는 앞서의 ext 명령의 즉시 데이터를 사용하여, 타입-2명령의 실행에 사용하는 즉시 데이터를 생성하는 과정 및 상기 과정에 앞서 ext 명령의 즉시 데이터가 EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되는 과정은 도 3~도 6에서 설명한 대로이다.
이와 같이, ext 명령을 사용함으로써 타깃 명령의 오퍼레이션 내용을 확장할 수 있기 때문에, 명령 디코드회로 및 즉시 데이터 생성회로는 타깃 명령 기능확장수단으로서 기능한다.
또한, 타입-2명령을 2회 또는 다수회의 ext 명령과 조합하여 실행한 경우, 2개의 ext 명령의 13비트의 즉시 데이터(imm13)를 연결한 것을 제로확장 또는 부호확장한 즉시 데이터를 사용할 수 있으므로, 1개의 ext 명령과 조합한 경우보다도 큰 유효 비트수를 갖는 즉시 데이터를 처리할 수 있다.
이와 같이, 타입-2 명령을 2회 또는 다수회의 ext 명령과 조합하여 실행한 경우, 1회의 ext 명령과 조합하여 실행한 경우에 비교하여 기능이 확장하기 때문에 명령 디코드회로 및 즉시 데이터 생성회로는 프리픽스 명령 기능 확장수단으로서 기능한다.
5. 프리픽스 명령을 사용한 타깃 명령의 어드레스의 즉시 데이터 확장의 구체예
다음에 본 발명의 프리픽스 명령에 의한 타깃 명령 실행시의 어드레스의 확장에 대하여 설명한다. 도 11은 상기 마이크로컴퓨터에 내장되어 있는 반도체 집적회로 구성의 설명에 필요한 부분을 도시한 것이다. 기본적으로는 도 2에 나타내는 구성과 같고, 도 2와 같은 기능을 갖는 부분에 관하여는, 동일 부호를 붙이고 있다. 또한, 간단하게 하기 위해서 도 2의 EXT1 레지스터(172)등은 생략하고, 명령 디코드회로(160)와 즉시 데이터 생성회로(170)만 도시하고 있다. 또한, 도 2의 구성에 덧붙여 RAM(320), 프로그램 카운터 PC(330), 어드레스 연산기 (340), X버스(350)를 도시하고 있다. 또, 설명의 형편상 프로그램 카운터PC(330)를 레지스터 파일(90)과는 별도로 도시하고 있다. 또한, 어드레스 연산기(340)는 가감승제 등의 연산을 행하지만, 본 구체예에서는 편의상 가산연산을 하는 기능만을 취하여 설명한다.
상기 RAM(320)은 실행에 사용하는 데이터 등을 기억하고 있다. 어드레스 연산기(340)는 상기 RAM(320)에 기억되어 있는 데이터의 어드레스를 연산하는 것이며, 즉시 데이터 생성회로(170)에서 생성된 즉시 데이터 및 프로그램 카운터PC(330)의 값 또는 레지스터 파일(90)에 저장된 값을 입력하도록 구성되어 있다. 프로그램 카운터 PC(330)에는, 현재 실행중의 명령 어드레스가 저장되어 있다. 그리고, 상기 어드레스 연산기(340)에서 연산된 어드레스에 의해 데이터 어드레스 버스(310)를 통해 RAM(320)의 어드레스를 지정하고, 또는, 명령 어드레스 버스(120)를 통해 ROM(110)의 명령의 어드레스를 지정한다. 그리고, 상기 각 어드레스 버스(310, 120)로 지정된 어드레스의 데이터 또는 명령코드는 데이터버스(140) 또는 명령 데이터 버스(130)를 통해 CPU(30)에 입력되도록 구성된다.
다음에, 오퍼랜드에 어드레스의 즉시 데이터를 가지며, 프로그램 카운터 PC(330)에 저장되어 있는 값에 상기 즉시 데이터를 가산한 상대 어드레스를 실행에 사용하는 타입의 명령(편의상, 이하 타입-3명령이라 한다)에 있어서의 프리픽스 명령에 의한 어드레스의 즉시 데이터의 확장을 설명한다.
도 12는 타입-3명령의 일례인 PC 상대 서브루틴 호출 명령(상대 어드레스로 서브루틴을 호출하는 명령)의 명령코드(290)의 비트 필드를 나타낸 도면이다.
도 12에 도시된 바와 같이 타입-3명령의 명령코드(290)는 비트(15)로부터 비트(13)의 3비트의 클래스 지정영역(292)과, 비트(12)로부터 (9)의 4비트의 오퍼레이션 코드를 지정하는 영역(294)과, 비트(8)의 소정의 오퍼레이션 코드에 덧붙인 비트를 지정하는 d 비트 영역(296)과 비트(7)로부터 비트(0)의 8비트의 즉시 데이터를 지정하는 영역(298)을 가지고 있다.
PC 상대 서브루틴 호출 명령은, 상기 즉시 데이터를 지정하는 영역(298)에 저장된 8비트의 즉시 데이터(imm8)를 1비트 왼쪽으로 시프트하는 것에 의해 9비트값(sin9)으로 하고, 그 sin9의 값을 부호 확장하여 얻어진 32비트의 즉시 데이터와 PC(프로그랜카운터)값을 가산한 값을 어드레스하여 그 어드레스로 분기하는 명령이다.
도 11을 이용하여, 상기 PC 상대 서브루틴 호출 명령이 단독으로 실행되는 경우의 CPU의 작동에 대하여 설명한다. 즉시 데이터 생성회로(170)에 의해서 상기 명령코드가 포함되는 8비트의 즉시 데이터는 1비트 왼쪽으로 시프트되며 부호 확장되어 32비트의 즉시 데이터(sign9)가 된다. 그리고, 상기 32비트의 즉시 데이타(sign)는 어드레스 연산기(340)에 입력된다. 또한, 프로그램 카운터 PC(330)에 저장되어 있는 어드레스의 값도 어드레스 연산기(340)에 입력된다. 어드레스 연산기(340)는 상기 즉시 데이터(sign9)와 프로그램 카운터 PC(330)에 저장되어 있는 어드레스의 값을 가산하여 분기 어드레스를 생성한다. 그리고, 분기 어드레스에 저장된 서브루틴이 실행되게 된다.
PC 상대 서브루틴 호출 명령과 같은 타입-3명령은 단독으로 실행할 수도 있고, 직전의 1 또는 다수의 ext 명령과 조합하여 실행하는 것도 가능하다. ext 명령과 조합하여 실행된 경우의 실행내용에 대하여도, 기본적으로는 상기 단독 실행인 경우와 같지만 명령 디코드회로(160)의 즉시 데이터 생성회로(170)에 의해 명령코드에서 추출된 즉시 데이터(imm8)로부터 확장된 즉시 데이터가 생성되는 과정이 달라진다. 즉, ext 명령과 조합하여 실행된 경우는 EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되어 있는 앞서의 ext 명령의 즉시 데이터를 사용하여 imm8의 확장이 행하여진다. 상기 과정 및 상기 과정에 앞서 ext 명령의 즉시 데이터가 EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되는 과정은, 도 3 내지 도 6에서 설명한 대로이다. 따라서, 타입-3명령이 단독으로 실행되었는가, 직전의 1 또는 다수의 ext 명령과 조합하여 실행되었는가에 의해, 선행분기의 어드레스를 전환할 수 있다.
도 13a 내지 도 13c는 상기 각 경우의 타입-3명령의 오퍼레이션을 나타낸 식과 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터의 필드도이다.
도 13a는 타입-3명령이 단독으로 실행된 경우의 오퍼레이션을 나타낸 식과 실행에 사용되는 확장된 즉시 데이터(400)의 비트 필드도이다. CPU(30)는 16비트 고정길이의 명령코드를 사용하고 있기 때문에, 명령 어드레스의 값은 항상 짝수 바이트 어드레스로 되고, 그 결과 명령 어드레스의 최하위 비트는 항상 '0'이 된다. 그 때문에, 확장의 경우에는 같은 도면에 도시된 바와 같이, 타입-3명령의 8비트의 즉시 데이터(imm8)는 1비트 왼쪽으로 시프트된 9비트의 즉시 데이터가 된다. 그리고 상기 9비트의 즉시 데이터는 부호 확장되어 32비트의 즉시 데이터(400)(sign9)로 된다.
도 13b는 타입-3명령이 직전의 1의 ext 명령과 조합하여 실행된 경우의 오퍼레이션을 나타낸 식과, 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터(410)의 비트 필드도이다. 도 13b에 도시된 바와 같이, 타입-3명령의 8비트의 즉시 데이터(imm8)와 ext 명령의 13비트의 즉시 데이터(imm13)를 결합한 21비트의 즉시 데이터는 1비트 왼쪽으로 시프트되어, 22비트의 즉시 데이터로 된다. 상기 22비트의 즉시 데이터는 부호 확장되어 32비트의 즉시 데이터(410)(sign22)가 된다.
도 13c은, 타입-3명령이 2회의 ext 명령과 조합하여 실행된 경우의 오퍼레이션을 나타낸 식과, 상기 오퍼레이션의 실행에 사용되는 확장된 즉시 데이터(420)의 비트 필드도이다. 도 13c에 도시된 바와 같이 타입-3명령의 8비트의 즉시 데이터(imm8)와 1회 째의 ext 명령의 10비트의 즉시 데이터(imm10)와, 2회 째의 ext 명령의 13비트의 즉시 데이터(imm13)를 결합한 31비트의 즉시 데이터는 1비트 왼쪽으로 시프트되어 32비트의 즉시 데이터(sign32)가 된다.
또한, 2회 이상 ext 명령과 조합하여 실행한 경우는 최초와 최후의 ext 명령이 유효하게 되도록 구성되어 있다. 즉, 최초의 ext 명령이 상기 1회 째의 ext 명령과 같이 가능하여, 최후의 ext 명령이 상기 2회 째의 ext 명령과 같이 가능하다.
6. 프리픽스 명령을 사용하여 타깃 명령의 명령 중에 변위(displacement)를 부가하는 구체예
다음에, 오퍼랜드에는 즉시 데이터를 갖지 않는, 오퍼랜드에 지정된 레지스터에 저장된 값을 어드레스로서 사용하여 실행을 행하는 타입의 명령(편의상, 이하 타입-4명령이라 한다)에 있어서, 프리픽스 명령을 사용하여 어드레스의 변위를 부가하는 예를 설명한다.
명령코드의 구성을 도 9에 나타내는 타입-2명령과, 2개의 레지스터의 지정영역을 오퍼랜드에 갖는 점에서 공통이다. 오퍼레이션코드의 내용이 달라지지만, 본 실시예의 설명에 있어서 특히 영향은 없기 때문에 설명을 생략한다. 타입-4명령의 일레인 로드명령(load instruction)을 예로 들어 설명한다. 로드명령은, rs에 지정된 어드레스에 기억되어 있는 데이터를 rd에 의해 나타내는 레지스터에 로드하기 위한 명령이다.
우선, 상기 로듬이 단독으로 실행되는 경우의 CPU의 작동에 대하여 설명한다. CPU는 명령코드에 지정된 범용 레지스터(rs)에 저장된 값을 어드레스로 하는 데이터를 RAM(320)으로부터 판독하고, 명령코드에 지정된 범용 레지스터(rd)에 저장한다.
로드명령과 같은 타입-4명령은, 단독으로 실행할 수도 있고, 직전의 1 또는 다수의 ext 명령과 조합하여 실행하는 것도 가능하다. ext 명령과 조합하여 실행된 경우는 ext 명령의 명령코드에 포함되는 즉시 데이터에 의해서 변위가 부가되어 타입-4명령이 실행된다.
도 14a, 도 14b는 타입-4명령을 직전의 1또는 2회의 ext 명령과 조합하여 실행하는 경우에 생성되는 변위를 나타낸 도면이다.
도 14a는 타입-4명령이 1회의 ext 명령과 조합하여 실행된 경우의 변위를 나타내고 있다. 도 14a에 도시된 바와 같이 직전의 1의 ext 명령의 즉시 데이터(imm13)를 제로 확장하여 32비트 즉시 데이터(imm13)(430)가 생성된다.
타입-4명령이 1의 ext 명령과 조합하여 실행된 경우의 실행내용에 대하여 도 11을 사용하여 설명한다. 우선, 타입-4명령은 ROM(110)으로부터 명령 데이터버스(130)를 통해 명령 레지스터(150)에 입력된다. 그리고, 명령 디코드회로(160)로 해독되지만, 이 때 상기 명령이 타깃 명령을 되어 있는 경우(상기 스테이트 머신의 상태가 S0이외의 경우)는 명령코드에 지정된 범용 레지스터(rs)에 저장된 어드레스를 레지스터 파일(90)로부터 추출하여 X 비트(350)를 통해 어드레스 연산기(340)에 입력한다.
또한, HXT1 레지스터(172)에 보유되어 있던 직전의 ext 명령의 즉시 데이터(imm13)는 즉시 데이터 생성회로(170)에 이해 제로 확장되어 32비트의 즉시 데이터(430)가 생성되어, 어드레스 연산기(340)에 입력된다. 어드레스 연산기(340)는 이들의 2개의 입력을 가산하여 어드레스를 생성한다. 생성된 어드레스에 의하여 데이터 어드레스버스(310)를 통해, RAM(320)의 어드레스를 지정하고, 상기 어드레스에 저장된 데이터를 데이터버스(140)를 통해 레지스터 파일(90)에 입력하며 명령코드에 지정된 범용 레지스터(rd)에 저장한다.
도 14b는 타입-4명령이 2회의 ext 명령과 조합하여 실행된 경우의 변위를 나타낸다. 도 14b에 도시된 바와 같이, 1회 째의 ext 명령의 즉시 데이터(imm13)를 비트(25)로부터 비트(13)의 13비트의 필드(444)에 세트하여, 2회 째의 ext 명령의 즉시 데이터(imm13)를 비트(12)로부터 비트(0)의 13비트의 필드(446)에 세트하고, 제로 확장하여 32비트의 즉시 데이터(440)(imm26)가 생성된다.
타입-4명령이 2회의 ext 명령과 조합하여 실행된 경우의 실행내용에 대하여 도 11을 이용하여 설명한다. 상기의 경우도 1회의 ext 명령과 조합한 경우와 기본적으로는 같지만, 변위로서 생성되는 즉시 데이터가 달라진다. 2회의 ext 명령과 조합한 경우는 EXT1 레지스터(173) 및 EXT2 레지스터(174)에 보유되어 있던 2회의 ext 명령의 즉시 데이터를 사용하여, 도 14b에 나타내는 것 같은 즉시 데이터(440)가 생성되고, 상기 즉시 데이터(440)가 변위로서 어드레스 연산기(340)에 입력된다.
또, EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되어 있는 앞서의 ext 명령의 즉시 데이터를 사용하여, 타입-4명령의 실행에 사용하는 즉시 데이터를 생성하는 과정 및 상기 과정에 앞서 ext 명령의 즉시 데이터가 EXT1 레지스터(172)와 EXT2 레지스터(174)에 보유되는 과정은 도 3 내지 도 6에서 설명한 대로이다.
따라서, 타입-4명령을 ext 명령과 조합하여 실행한 경우, 오퍼랜드에 변위를 부가하여 실행하도록 오퍼레이션내용이 확장한다.
[실시예 2]
도 15는 본 실시예의 마이크로컴퓨터의 하드웨어 블럭도이다.
상기 마이크로컴퓨터(10)는 32비트 마이크로컨트롤러이고, CPU(30)와 ROM(110)과 RAM(320), 고주파 발신회로(710), 저주파 발신회로(720), 리세트 회로(730), 프리스케일러(740), 16비트 프로그램가능 타이머(750), 8비트 프로그램 가능 타이머(760), 클럭 타이머(770), 인텔리전트 DMA(780), 고속 DMA(790), 인터셉트 컨트롤러(600), 직렬 인터페이스(610), 버스 컨트롤 유닛(BCU)(620), A/D 변환기(630), D/A 변환기(640), 입력포트(660), 출력포트(660), I/O포트(670) 및 이들을 접속하는 각종 버스(680)등, 각종 핀(690)등을 포함한다.
상기 CPU(30)는 16비트 고정길이 명령코드를 처리하고, 실행시의 데이터 사이즈는 32비트의 CPU이다. 상기 CPU(30)은, 상술한 실시예(1)의 구성을 가지고 있고, 명령코드 해석수단, 즉시 데이터 확장수단, 타깃 명령 기능 확장수단, 프리픽스 명령 기능확장수단, 명령 실행수단으로서 기능한다.
따라서, 16비트의 명령코드를 사용하더라도, 큰 즉시 데이터의 취급이라든지, 짧은 명령코드로 기술할 수 없는 3-오퍼랜드 명령의 실행을 행할 수 있기 때문에, 메모리의 사용효율이 좋은 마이크로컴퓨터를 제공할 수 있다. 또한, 상기 마이크로컴퓨터를 반도체 집적회로로서 구성하는 경우, 기억시키는 명령수가 동일하면, 32비트폭의 고정길이 명령코드를 사용하는 경우에 비해, 용량은 반이라도 좋다. 따라서, 칩의 사이즈를 작게 할 수 있고 원료에 대한 제품비가 좋은 반도체 집적회로장치를 제조할 수 있다.
본 발명의 마이크로컴퓨터는 예컨대, 프린터 등의 퍼스널 컴퓨터 주변기기라든지, 휴대기기 등의 각종의 전자 기기에 적용가능하다. 이렇게 하면, 간단한 구성으로 메모리의 사용효율이 좋는 정보처리회로를 내장할 수 있기 때문에, 염가로 고기능인 전자 기기를 제공할 수 있다.
또 본 발명은, 상기 실시예에서 설명한 것에 한정되지 않고 여러 가지의 변형실시가 가능하다.
예컨대 상기 실시예에서는 메모리의 사용효율을 높이는 데에 있어서 특히 유효한 예, 즉 32비트의 데이터가 처리가능한 CPU 또는 마이크로컴퓨터에 있어서, 16비트의 고정길이 명령코드를 사용하는 경우를 예로 하여 설명하였지만 이것에 한하지 않는다. CPU 또는 마이크로컴퓨터로 처리가능한 비트수 및 명령코드의 비트수에 상관없이 본 발명을 적용할 수 있다. 또한 명령코드가 고정길이인가 아닌가에 상관없이 본 발명을 적용할 수 있다.
그리고, 본 발명을 적용함으로써, 명령코드의 즉시 데이터의 확장 및 오퍼레이션 내용 변경을 간단한 구성으로 용이하게 행할 수 있는 CPU 또는 마이크로컴퓨터를 제공할 수 있다.
또한, 상기 본 실시예에서는 ext 명령을 2회 이상 연속 실행한 경우는 1회째와 최후의 ext 만 유효하게 기능하는 경우를 설명하였지만, 3회 이상 ext 명령을 유효하게 하도록 구성하여도 좋다. 또한, 유효하게 하는 ext 명령의 선택은 1회 째와 마지막에 한정되지 않고 소정의 룰에 따라 결정하면 좋다.
또한, 다수의 ext 명령을 조합함으로써 ext 명령의 기능을 변화시키는 예도 상기 실시예에 한정되지 않는다.
또한, 상기 본 실시예로서는 프리픽스 명령이 ext 명령 한 종류만인 경우를 설명하였지만 다수가 다른 종류의 프리픽스 명령을 설정하여도 좋다.
본 발명의 마이크로컴퓨터는 예컨대, 프린터 등의 퍼스널 컴퓨터 주변기기라든지, 휴대기기 등의 각종의 전자 기기에 적용가능하다. 이렇게 하면, 간단한 구성으로 메모리의 사용효율이 좋은 정보처리회로를 내장할 수 있기 때문에, 염가로 고기능인 전자 기기를 제공할 수 있다.

Claims (27)

  1. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령이 입력되는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하여, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 상기 프리픽스 명령에 기초하여, 타깃 명령의 명령코드에 즉시 데이터로서 포함되어 있지 않지만 타깃 명령을 실행할 때에 사용하는 데이터를 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 데이터에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  2. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령을 포함하는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 상기 프리픽스 명령에 기초하여, 타깃 명령의 명령코드에 즉시 데이터로서는 포함되어 있지 않지만 타깃 명령을 실행할 때에 사용하는 데이터를 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 데이터에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  3. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령이 입력되는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여, 명령은 실행하는 명령실행수단을 포함하여, 상기 명령코드 해석 수단은, 상기 프리픽스 명령에 기초하여, 타깃 명령의 명령코드에 즉시 데이터로서 포함되어 있지 않지만 타깃 명령을 실행할 때에 사용하는 어드레스를 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 어드레스에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  4. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령을 포함하는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 상기 프리픽스 명령에 기초하여, 타깃 명령의 명령코드에 즉시 데이터로서 포함되어 있지 않지만 타깃 명령을 실행할 때에 사용하는 어드레스를 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 어드레스에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  5. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령이 입력되는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 복수의 프리픽스 명령의 명령코드에 포함된 각각의 즉시 데이터를 사용하여, 타깃 명령의 실행에 필요한 데이터 및 어드레스의 적어도 한쪽을 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 데이터 및 어드레스의 적어도 한쪽에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  6. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령을 포함하는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 복수의 프리픽스 명령의 명령코드에 포함된 각 즉시 데이터를 사용하여 타깃 명령의 실행에 필요한 데이터 및 어드레스의 적어도 한쪽을 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 데이터 및 어드레스의 적어도 한쪽에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  7. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령을 포함하는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 복수의 프리픽스 명령의 명령 코드에 포함된 각 즉시 데이터를 사용하여, 타깃 명령의 명령코드에 포함되는 즉시 데이터를 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 데이터에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  8. 제2항에 있어서, 상기 확장 수단은, 복수의 프리픽스 명령의 명령코드에 포함된 각 즉시 데이터를 사용하여, 타깃 명령의 명령코드에 즉시 데이터로서는 포함되어 있지 않지만 타깃 명령을 실행할 때에 사용하는 데이터를 확장하는 것을 특징으로 하는 정보처리 회로.
  9. 제4항에 있어서, 상기 확장 수단은, 복수의 프리픽스 명령의 명령코드에 포함된 각 즉시 데이터를 사용하여, 타깃 명령의 명령코드에 즉시 데이터로서는 포함되어 있지 않지만 타깃 명령을 실행할 때에 사용하는 어드레스를 확장하는 것을 특징으로 하는 정보 처리 회로.
  10. 제5항 또는 제12항에 있어서, 상기 복수의 프리픽스 명령의 각 명령코드는 프리픽스 명령인 것을 판별하기 위한 공통의 코드를 각각 포함하는 것을 특징으로 하는 정보 처리 회로.
  11. 제5항 또는 제6항에 있어서, 상기 확장 수단은, 프리픽스 명령의 연속 입력 회수에 기초하여 결정되는 처리 상태를 기억하는 처리 상태 기억 수단과, 상기 처리 상태 기억 수단에 기억된 처리 상태에 기초하여, 입력된 프리픽스 명령의 즉시 데이터를 제1 레지스터 내지 제m레지스터(m은 1이상의 정수)에 보유하는 상기 데이터 보유 수단과, 상기 데이터 보유 수단의 제1 레지스터 내지 제m 레지스터(m은 1이상의 정수)에 보유된 즉시 데이터에 기초하여, 상기 타깃 명령의 명령 실행에 필요한 즉시 데이터를 확장하여 생성하는 수단을 포함하는 것을 특징으로 하는 정보 처리 회로.
  12. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령이 입력되는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하여, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 프리픽스 명령 입력 후에 타깃 명령을 입력한 경우, 해당 타깃 명령의 오퍼레이션 내용을 확장하여 해석하는 타깃 명령 기능 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 상기 타깃 명령 기능 확장 수단으로 확장된 오퍼레이션 내용으로 해당 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  13. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령을 포함하는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하여, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 프리픽스 명령 입력 후에 타깃 명령을 입력한 경우, 해당 타깃 명령의 오퍼레이션 내용을 확장하여 해석하는 타깃 명령 기능 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 상기 타깃 명령 기능 확장 수단으로 확장된 오퍼레이션 내용으로 해당 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  14. 제12항 또는 제13항에 있어서, 상기 타깃 명령 기능 확장 수단은, 프리픽스 명령 입력 후에 오퍼랜드 명령인 소정의 타깃 명령을 입력한 경우, 해당 타깃 명령의 2개의 오퍼랜드와 프리픽스 명령에 포함된 즉시 데이터를 사용하여, 해당 타깃 명령의 오퍼레이션 내용을 3-오퍼랜드 명령으로 확장하여 해석하는 것을 특징으로 하는 정보 처리 회로.
  15. 제12항 또는 제13항에 있어서, 상기 타깃 명령 기능 확장 수단은, 프리픽스 명령 입력 후에 레지스터 지정값을 갖는 소정의 타깃 명령을 입력한 경우, 프리픽스 명령의 명령코드에 포함된 즉시 데이터에 기초하여, 타깃 명령의 명령코드에 지정된 레지스터에 저장된 데이터 또는 어드레스를 수정하여 실행하도록 오퍼레이션 내용을 확장하는 것을 특징으로 하는 정보 처리 회로.
  16. 제15항에 있어서, 상기 타깃 명령 기능 확장 수단은 프리픽스 명령 입력 후에 레지스터 지정값을 갖는 소정의 타깃 명령을 입력한 경우, 프리픽스 명령의 명령 코드에 지정된 즉시 데이터에 기초하여, 타깃 명령의 명령 코드에 지정된 레지스터에 저장된 어드레스의 변위(displacement)를 작성하여, 상기 변위를 사용하여 실행하도록 오퍼레이션 내용을 확장하는 것을 특징으로 하는 정보 처리 회로.
  17. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령이 입력되는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하여, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 프리픽스 명령의 연속 입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 오퍼레이션 내용의 프리픽스 명령에 기초하여, 타깃 명령의 기능을 확장하여 실행하는 것을 특징으로 하는 정보 처리 회로.
  18. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령을 포함하는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하여, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 프리픽스 명령 입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능 확장 수단을 포함하도록 구성되고, 상기 명령 수행 수단은, 확장된 오퍼레이션 내용의 프리픽스 명령에 기초하여, 타깃 명령의 기능을 확장하여 실행하는 것을 특징으로 하는 정보 처리 회로.
  19. 주어진 타깃 명령과, 해당 타깃 명령의 기능을 확장하기 위한 프리픽스 명령을 포함하는 고정 길이의 명령코드를 입력하여 실행하도록 구성되어 있는 정보 처리 회로에 있어서, 상기 타깃 명령 및 프리픽스 명령을 입력하고, 해당 명령코드의 오퍼레이션 내용을 해석하는 명령코드 해석 수단과, 상기 명령코드 해석 수단이 해석한 오퍼레이션 내용에 기초하여 명령을 실행하는 명령 실행 수단을 포함하며, 상기 명령코드 해석 수단은, 프리픽스 명령의 연속 입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능 확장 수단을 포함하며, 확장된 오퍼레이션 내용의 프리픽스 명령에 기초하여, 타깃 명령의 명령코드에 포함되는 즉시 데이터를 확장하는 확장 수단을 포함하도록 구성되고, 상기 명령 실행 수단은, 확장된 즉시 데이터에 기초하여 타깃 명령을 실행하는 것을 특징으로 하는 정보 처리 회로.
  20. 제2항에 있어서, 상기 명령코드 해석 수단은, 입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능 확장 수단을 포함하도록 구성되며, 상기 명령 실행 수단은, 확장된 오퍼레이션 내용의 프리픽스 명령에 기초하여, 타깃 명령의 기능을 확장하여 실행하는 것을 특징으로 하는 정보 처리 회로.
  21. 제4항에 있어서, 상기 명령 코드 해석 수단은, 프리픽스 명령의 연속 입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능 확장 수단을 포함하도록 구성되며, 상기 명령 실행 수단은, 확장된 오퍼레이션내용의 프리픽스 명령에 기초하여, 타깃 명령의 기능을 확장하여 실행하는 것을 특징으로 하는 정보 처리 회로.
  22. 제14항에 있어서, 상기 명령코드 해석 수단은, 프리픽스 명령의 연속 입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능 확장 수단을 포함하도록 구성되며, 상기 명령 실행 수단은, 확장된 오퍼레이션 내용의 프리픽스 명령에 기초하여, 타깃 명령의 기능을 확장하여 실행하는 것을 특징으로 하는 정보 처리 회로.
  23. 제15항에 있어서, 상기 명령코드 해석 수단은, 프리픽스 명령의 연속 입력 회수에 기초하여, 프리픽스 명령의 오퍼레이션 내용을 확장하는 프리픽스 명령 기능 확장 수단을 포함하도록 구성되며, 상기 명령 실행 수단은, 확장된 오퍼레이션 내용의 프리픽스 명령에 기초하여, 타깃 명령의 기능을 확장하여 실행하는 것을 특징으로 하는 정보 처리 회로.
  24. 제1항 내지 제7항, 제12항, 제13항 및 제17항 내지 제19항 중 어느 한 항에 기재된 정보 처리 회로를 포함하는 것을 특징으로 하는 반도체 집적 회로 장치.
  25. 제1항 내지 제7항, 제12항, 제13항 및 제17항 내지 제19항 중 어느 한 항에 기재된 정보 처리 회로를 포함하는 것을 특징으로 하는 마이크로컴퓨터.
  26. 제25항에 있어서, RISC 방식인 것을 특징으로 하는 마이크로컴퓨터.
  27. 제26항의 마이크로컴퓨터를 사용하여 제어하는 것을 특징으로 하는 전자 기기.
KR1019960071123A 1995-12-20 1996-12-20 정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기 KR100266337B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP95-332207 1995-12-20
JP33220795 1995-12-20
JP96-353167 1996-12-16
JP35316796A JP3711422B2 (ja) 1995-12-20 1996-12-16 情報処理回路

Publications (2)

Publication Number Publication Date
KR970049493A KR970049493A (ko) 1997-07-29
KR100266337B1 true KR100266337B1 (ko) 2000-09-15

Family

ID=26574118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960071123A KR100266337B1 (ko) 1995-12-20 1996-12-20 정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기

Country Status (6)

Country Link
US (2) US6167505A (ko)
EP (1) EP0780760B1 (ko)
JP (1) JP3711422B2 (ko)
KR (1) KR100266337B1 (ko)
DE (1) DE69622676T2 (ko)
TW (1) TW347512B (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY138001A (en) 1998-11-02 2009-04-30 Seiko Epson Corp Ink cartridge and printer using the same
KR100322277B1 (ko) * 1998-11-20 2002-03-08 권 기 홍 확장 명령어를 가진 중앙처리장치
JP2000218818A (ja) 1998-11-26 2000-08-08 Seiko Epson Corp インク容器およびそれを用いる印刷装置
US6338132B1 (en) * 1998-12-30 2002-01-08 Intel Corporation System and method for storing immediate data
US20030046516A1 (en) * 1999-01-27 2003-03-06 Cho Kyung Youn Method and apparatus for extending instructions with extension data of an extension register
US20030140437A1 (en) * 2002-01-31 2003-07-31 Eyal Eliav Powered toothbrush
US7181596B2 (en) * 2002-02-12 2007-02-20 Ip-First, Llc Apparatus and method for extending a microprocessor instruction set
US6970998B1 (en) 2002-02-22 2005-11-29 Redback Networks Inc. Decoding suffix instruction specifying replacement destination for primary instruction
US7447886B2 (en) * 2002-04-22 2008-11-04 Freescale Semiconductor, Inc. System for expanded instruction encoding and method thereof
JP3627725B2 (ja) 2002-06-24 2005-03-09 セイコーエプソン株式会社 情報処理装置及び電子機器
KR20040002305A (ko) * 2002-06-29 2004-01-07 주식회사 에이디칩스 중앙처리장치
JP3856737B2 (ja) 2002-07-19 2006-12-13 株式会社ルネサステクノロジ データ処理装置
US7707389B2 (en) * 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
US7340588B2 (en) * 2003-11-24 2008-03-04 International Business Machines Corporation Extending the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
US7734898B2 (en) * 2004-09-17 2010-06-08 Freescale Semiconductor, Inc. System and method for specifying an immediate value in an instruction
CN100543669C (zh) * 2005-04-22 2009-09-23 Mips技术公司 用于对指令进行再编码的方法与装置
US7908463B2 (en) * 2007-06-26 2011-03-15 Globalfoundries Inc. Immediate and displacement extraction and decode mechanism
JP5217431B2 (ja) * 2007-12-28 2013-06-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP5471082B2 (ja) * 2009-06-30 2014-04-16 富士通株式会社 演算処理装置および演算処理装置の制御方法
GB2486740B (en) * 2010-12-24 2019-02-13 Qualcomm Technologies Int Ltd Encapsulated instruction set
US20120284488A1 (en) * 2011-05-03 2012-11-08 Qualcomm Incorporated Methods and Apparatus for Constant Extension in a Processor
US9690583B2 (en) 2011-10-03 2017-06-27 International Business Machines Corporation Exploiting an architected list-use operand indication in a computer system operand resource pool
US9286072B2 (en) 2011-10-03 2016-03-15 International Business Machines Corporation Using register last use infomation to perform decode-time computer instruction optimization
US8615745B2 (en) 2011-10-03 2013-12-24 International Business Machines Corporation Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization
US9354874B2 (en) 2011-10-03 2016-05-31 International Business Machines Corporation Scalable decode-time instruction sequence optimization of dependent instructions
US10078515B2 (en) 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
US9329869B2 (en) * 2011-10-03 2016-05-03 International Business Machines Corporation Prefix computer instruction for compatibily extending instruction functionality
US9697002B2 (en) 2011-10-03 2017-07-04 International Business Machines Corporation Computer instructions for activating and deactivating operands
US8612959B2 (en) 2011-10-03 2013-12-17 International Business Machines Corporation Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization
US8756591B2 (en) 2011-10-03 2014-06-17 International Business Machines Corporation Generating compiled code that indicates register liveness
WO2014203035A1 (en) * 2013-06-18 2014-12-24 Freescale Semiconductor, Inc. Signal processing device and method of performing a bit-expand operation
US20150019845A1 (en) * 2013-07-09 2015-01-15 Texas Instruments Incorporated Method to Extend the Number of Constant Bits Embedded in an Instruction Set
GB2521019B (en) * 2014-05-27 2016-05-25 Imagination Tech Ltd Decoding instructions that are modified by one or more other instructions
KR102270790B1 (ko) * 2014-10-20 2021-06-29 삼성전자주식회사 데이터 처리 방법 및 장치
US10877759B2 (en) 2015-09-30 2020-12-29 International Business Machines Corporation Managing the capture of information in applications with prefix instructions
US10761852B2 (en) * 2015-09-30 2020-09-01 International Business Machines Corporation Extending data range addressing
US9870305B2 (en) 2015-09-30 2018-01-16 International Business Machines Corporation Debugging of prefixed code
US10761849B2 (en) * 2016-09-22 2020-09-01 Intel Corporation Processors, methods, systems, and instruction conversion modules for instructions with compact instruction encodings due to use of context of a prior instruction
TWI714487B (zh) * 2017-12-28 2020-12-21 慧榮科技股份有限公司 記憶卡控制器以及使用於記憶卡控制器的方法
US10572259B2 (en) * 2018-01-22 2020-02-25 Arm Limited Hints in a data processing apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0489266A2 (en) * 1990-11-07 1992-06-10 Kabushiki Kaisha Toshiba Computer and method for performing immediate calculation by utilizing the computer

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3657705A (en) * 1969-11-12 1972-04-18 Honeywell Inc Instruction translation control with extended address prefix decoding
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
JP2635057B2 (ja) * 1987-11-04 1997-07-30 株式会社日立製作所 マイクロプロセッサ
US5303358A (en) * 1990-01-26 1994-04-12 Apple Computer, Inc. Prefix instruction for modification of a subsequent instruction
JP3369204B2 (ja) * 1991-10-25 2003-01-20 株式会社東芝 プログラマブルコントローラ
JPH05197545A (ja) * 1991-12-10 1993-08-06 Mitsubishi Electric Corp マイクロコンピュータ
US5625784A (en) * 1994-07-27 1997-04-29 Chromatic Research, Inc. Variable length instructions packed in a fixed length double instruction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0489266A2 (en) * 1990-11-07 1992-06-10 Kabushiki Kaisha Toshiba Computer and method for performing immediate calculation by utilizing the computer

Also Published As

Publication number Publication date
JPH09231070A (ja) 1997-09-05
DE69622676D1 (de) 2002-09-05
EP0780760A3 (en) 1998-04-08
EP0780760A2 (en) 1997-06-25
US6167505A (en) 2000-12-26
EP0780760B1 (en) 2002-07-31
US6308258B1 (en) 2001-10-23
DE69622676T2 (de) 2003-03-20
KR970049493A (ko) 1997-07-29
TW347512B (en) 1998-12-11
JP3711422B2 (ja) 2005-11-02

Similar Documents

Publication Publication Date Title
KR100266337B1 (ko) 정보처리회로,반도체집적회로장치,마이크로컴퓨터,및전자기기
JP3592230B2 (ja) データ処理装置
KR100440841B1 (ko) 마이크로컴퓨터
US5001662A (en) Method and apparatus for multi-gauge computation
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
US5091853A (en) Chained addressing mode pipelined processor which merges separately decoded parts of a multiple operation instruction
US5794010A (en) Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
JPH04172533A (ja) 電子計算機
US5682531A (en) Central processing unit
JP2003085000A (ja) トレース情報生成装置およびその方法
JPH03218523A (ja) データプロセッサ
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH1049368A (ja) 条件実行命令を有するマイクロプロセッサ
US6687808B2 (en) Data processor using indirect register addressing
KR100322277B1 (ko) 확장 명령어를 가진 중앙처리장치
JPS6014338A (ja) 計算機システムにおける分岐機構
JP3570287B2 (ja) マイクロコンピュータ
US6223275B1 (en) 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
JPH027097B2 (ko)
JP2556182B2 (ja) デ−タ処理装置
JP3727395B2 (ja) マイクロコンピュータ
JP3841820B2 (ja) マイクロコンピュータ
US5457803A (en) Bit-field logic operation unit
US5649229A (en) Pipeline data processor with arithmetic/logic unit capable of performing different kinds of calculations in a pipeline stage
JP3765782B2 (ja) マイクロコンピュータ

Legal Events

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

Payment date: 20090609

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee