KR0175275B1 - The internal register structure of micro controller using changeable instructio length set - Google Patents
The internal register structure of micro controller using changeable instructio length set Download PDFInfo
- Publication number
- KR0175275B1 KR0175275B1 KR1019960045149A KR19960045149A KR0175275B1 KR 0175275 B1 KR0175275 B1 KR 0175275B1 KR 1019960045149 A KR1019960045149 A KR 1019960045149A KR 19960045149 A KR19960045149 A KR 19960045149A KR 0175275 B1 KR0175275 B1 KR 0175275B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- code
- basic
- register
- operation code
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
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)
Abstract
본 발명은 마이크로 콘트롤러의 가변 길이 명령어를 사용하는 내부 레지스터 구조에 관한 것으로, 각 명령어에 대해 각각의 고유한 레지스터인 복수 개의 레지스터를 갖는 기본 레지스터 세트와, 기본 레지스터를 어드레싱하고 소정의 메모리로부터 독출된 데이터를 기본 레지스터에 로딩하는 레지스터 포인터와, 레지스터 포인터가 메모리로부터 데이터 값을 로딩할 때 세팅된 메모리 어드레스 값을 갖는 어드레스 베이스 레지스터를 포함하는 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조는, 32 비트 마이크로 콘트롤러에 있어서, 2 바이트로 최대 272개의 명령어를 사용할 수 있고, 마이크로 콘트롤러에 탑재되는 롬의 크기를 줄일 수 있다.The present invention relates to an internal register structure using a variable length instruction word of a microcontroller, comprising: a basic register set having a plurality of registers, each of which is a unique register for each instruction; An internal register structure using a variable length instruction set that includes a register pointer to load data into a base register and an address base register with a memory address value set when the register pointer loads a data value from memory, In the controller, a maximum of 272 instructions can be used with 2 bytes, and the size of the ROM mounted on the microcontroller can be reduced.
Description
본 발명은 마이크로 내부 레지스터 구조에 관한 것으로, 좀 더 구체적으로는 마이크로 콘트롤러에 탑재(搭載)되는 프로그램 롬의 크기를 줄이기 위한 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a micro internal register structure, and more particularly, to an internal register structure using a variable length instruction set to reduce the size of a program ROM loaded in a microcontroller.
현재 전세계의 마이크로 프로세서 및 마이크로 콘트롤러 시장은 하이 엔드(high-end)와 로우 엔드(low-end)로 양분되어 있다. 개인용 컴퓨터(personal computer)나 워크스테이션(work station)등과 같은 하이 엔드 시장에서는 성능이 중요시된다. 그러나 가전제품 또는 소형 통신기기 등과 같은 로우 엔드 시장에서는 성능보다는 전력 소모가 적고, 낮은 단가가 중요시되기 때문에 롬의 크기는 매우 중요하다.Today, the global microprocessor and microcontroller markets are divided into high-end and low-end markets. Performance is important in high-end markets such as personal computers and work stations. However, in low-end markets such as home appliances and small-sized communication devices, the size of the ROM is very important because power consumption is less than performance and low unit price is important.
마이크로 콘트롤러의 경우는 마이크로 프로세서와는 달리, 일반적으로 높은 성능보다는 적은 롬 크기를 갖는 제품이 넓은 시장을 차지하고 있다. 특히 내장 콘트롤러(imbedded controller)의 경우는 내부에 롬이 탑재(搭載)되기 때문에, 아직도 가격이 저렴한 8비트나 16비트 제품이 더 선호되고 있다.Unlike microprocessors in the case of microcontrollers, products with less ROM size generally occupy a larger market than higher performance. Particularly, in the case of the embedded controller, since the ROM is loaded, the 8-bit or 16-bit product which is still inexpensive is more preferred.
앞으로는 처리해야 할 데이터 양이 많아지고 정확도를 높여야 하기 때문에 32비트로 전환되고 있지만, 32비트의 경우는 기본적인 명령어 세트가 8비트에 비해 4배가 되므로, 롬 크기가 그만큼 커지게 되는 문제점을 갖는다. 또한 롬 크기가 커짐에 따라 단가도 높아지게 되기 때문에 경쟁력 있는 시스템을 얻기 위해서는, 같은 일을 수행할 때에 보다 더 적은 롬 데이터가 요구된다. 이것은 곧 명령어 세트의 설계와 이를 수행하기 위한 장치가 전체 시스템에 큰 영향을 준다는 것을 나타낸다.In the future, the amount of data to be processed is increased and the accuracy is increased. In the case of 32 bits, however, the basic instruction set is quadrupled compared to 8 bits, and thus the ROM size becomes large. Also, as the ROM size increases, the unit price also increases. Therefore, in order to obtain a competitive system, less ROM data is required than when performing the same operation. This indicates that the design of the instruction set and the device for performing it have a large impact on the overall system.
본 발명은 32 비트 마이크로 콘트롤러의 롬 크기를 줄이기 위해 내부 처리 단위(unit)와 데이터 단위는 32비트로 하고, 가장 많이 사용하는 명령어인 기본 명령어는 8 비트로 표현하며, 그 이외의 명령어는 부가 명령어로서 8 비트 이상으로 표현 가능하도록 하는 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조를 제공하는데 그 목적이 있다.In order to reduce the ROM size of the 32-bit microcontroller, the internal processing unit and the data unit are set to 32 bits. The basic instruction word, which is the most frequently used instruction word, is expressed by 8 bits. The other instruction words are 8 Bit instruction set that can be expressed in more than one bit.
도 1은 본 발명의 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조.1 is an internal register structure using a variable length instruction set of the present invention;
* 도면의 주요 부분에 대한 부호의 설명DESCRIPTION OF THE REFERENCE NUMERALS
100 : 기본 레지스터 세트 200 : 레지스터 포인터100: Basic register set 200: Register pointer
210 : 데스티네이션 220 : 소오스210: Destination 220: Source
300 : 어드레스 베이스 레지스터 400 : 메모리300: address base register 400: memory
상술한 목적을 달성하기 위해 제안된 본 발명의 특징에 의하면,According to a feature of the present invention proposed to achieve the above-mentioned object,
마이크로 콘트롤러의 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조는 : 가변 길이 명령어 세트의 각 명령어에 대해 각각의 고유한 레지스터인 복수 개의 기본 레지스터를 갖고, 상기 각 레지스터들에 의해 수행된 연산 결과를 저장하며, 이 중 복수 개의 레지스터가 스택 구조를 이루는 기본 레지스터 세트와; 데스티네이션과 소오스로 구성되며, 각각에 소정의 비트가 할당되어 상기 기본 레지스터를 어드레싱 함으로써 연속되는 덧셈, 곱셈과 같은 누산을 수행하도록 하며, 소정의 메모리로부터 독출된 데이터 값을 기본 레지스터에 로딩하는 레지스터 포인터와; 상기 레지스터 포인터가 메모리로부터 데이터 값을 로딩할 때, 이 데이터 값에 대한 세팅된 메모리 어드레스 값을 갖는 어드레스 베이스 레지스터를 포함한다.An internal register structure using a variable-length instruction set of a microcontroller includes: a plurality of basic registers, each of which is a unique register for each instruction of a variable-length instruction set, storing an operation result performed by each of the registers; A basic register set in which a plurality of registers form a stack structure; And a register for loading a data value read from a predetermined memory into a basic register so as to perform accumulation such as successive addition and multiplication by addressing the basic register by assigning a predetermined bit to each of the address and the destination, A pointer; And an address base register having a memory address value set for the data value when the register pointer loads a data value from the memory.
이 특징의 바람직한 실시예에 있어서, 상기 가변 길이 명령어 세트는 : 동작코드와 피동작코드로 구성되어 기본적인 명령을 수행하도록 정의된 복수 개의 기본 명령어와; 상기 기본 명령어에 속한 명령어로서, 기본 명령어 외의 소정의 확장된 부가 명령을 수행하도록 정의된 제 1 및 제 2 동작코드와; 상기 기본 명령어의 비트수 이상이며, 상기 제 1 및 제 2 동작코드에 의해 상기 부가 명령을 수행하도록 정의된 복수 개의 부가 명령어를 포함하여, 상기 제 1 및 제 2 동작코드 각각에 대한 기본 명령어의 제 1 및 제 2 피동작코드로 상기 부가 명령어를 위한 동작코드가 정의된다.In a preferred embodiment of this aspect, the variable length instruction set comprises: a plurality of basic instructions consisting of an operation code and an action code and defined to perform a basic instruction; Instructions belonging to the basic instruction, comprising: first and second operation codes defined to perform a predetermined extended instruction other than the basic instruction; And a plurality of additional instructions that are not less than the number of bits of the basic instruction and are defined to perform the additional instruction by the first and second operation codes, 1 and the second to-be-executed code are defined.
이 특징의 바람직한 실시예에 있어서, 상기 기본 명령어의 단위는 1 바이트이며, 상위 니블은 동작코드로, 하위 니블은 피동작코드로 사용되고, 가능한 16 가지의 동작코드 중 하나를 제 1 동작코드로하여, 기본 명령어의 피동작코드가 니블로 표현될 수 없는 경우, 첫 번째 명령어의 동작코드로 상기 제 1 동작코드를 사용하고, 두 번째 명령어의 동작코드를 실행시키고자 하는 명령어의 실제 동작코드로하여, 첫 번째 명령어의 제 1 피동작코드와 두 번째 명령어의 피동작코드를 상기 실제 동작코드에 대한 1 바이트의 피동작코드가 되게 하고, 상기 기본 명령어의 가능한 동작코드 중 또 다른 하나를 하위 니블이 피동작코드가 아님을 나타내는 제 2 동작코드로하여, 상기 제 1 피동작코드와 상기 제 2 피동작코드가 하나의 동작코드가 되게 하며, 이 동작코드를 상기 부가 명령어로 정의한다.In a preferred embodiment of this aspect, the unit of the basic instruction is one byte, the upper nibble is used as the operation code, the lower nibble is used as the to-be-operated code, and one of the 16 possible operation codes is set as the first operation code , The first operation code is used as the operation code of the first instruction and the actual operation code of the instruction to be executed as the operation code of the second instruction when the operation code of the basic instruction can not be expressed by the nibble , Causing the first to-be-operated code of the first instruction and the to-be-executed code of the second instruction to be a one-byte to-be-executed code for the actual operation code, The first to-be-operated code and the second to-be-operated code are made to be one operation code, A is defined as the additional command.
이상과 같은 본 발명에 의하면, 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조는 8 비트 가변 길이 명령어 세트를 사용하여 2 바이트로 최대 272 개의 명령어를 사용할 수 있고, 32 비트 마이크로 콘트롤러의 롬 크기를 줄일 수 있다.According to the present invention, an internal register structure using a variable length instruction set can use up to 272 instructions in 2 bytes using an 8-bit variable length instruction set and reduce the ROM size of a 32-bit microcontroller have.
실시예Example
이하, 도 1 및 표 1을 참조하여 본 발명의 실시예를 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to FIG. 1 and Table 1.
도 1은 본 발명의 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조이다.Figure 1 is an internal register structure using the variable length instruction set of the present invention.
도 1을 참조하면, 내부 레지스터 구조의 기본 레지스터 세트(basic register set)(100)는 32 비트 기본 레지스터들로 구성되며, 가변 길이 명령어 세트의 각 명령어에 대해 각각의 고유한 레지스터가 되는 복수 개의 기본 레지스터를 갖고, 상기 각 레지스터들에 의해 수행된 연산 결과를 저장한다. 이 중 레지스터 A, B, C(110)가 스택(stack) 구조를 이룬다. 레지스터 Y(120)는 곱셈 연산시 데이터가 32 비트를 넘을 때 주로 사용되는데, 예를 들어 연산 데이터가 64 비트 일 때, 상위 32 비트가 레지스터 Y(120)에 저장된다. 레지스터 A, B, C, Y(110, 120) 각각에는 2 비트의 어드레스 (00)2, (01)2, (10)2, (11)2가 할당되어 있다.Referring to FIG. 1, a basic register set 100 of an internal register structure is composed of 32-bit basic registers, and a plurality of basic registers, each of which is a unique register for each instruction of a variable- And stores the result of the operation performed by the registers. Of these, the registers A, B, and C 110 form a stack structure. The register Y 120 is mainly used when the data exceeds 32 bits in the multiplication operation. For example, when the operation data is 64 bits, the upper 32 bits are stored in the register Y 120. 2 bits (00) 2 , (01) 2 , (10) 2 and (11) 2 are assigned to the registers A, B, C and Y
레지스터 포인터(register pointer)(200)는 데스티네이션(destination)(210)과 소오스(source)(220)로 구성되며, 각각 2 비트씩 할당되어 상기 기본 레지스터를 어드레싱(addressing) 함으로써, 연속되는 덧셈이나 곱셈처럼 누산(accumulation)이 필요한 경우에, 연산 데이터를 로딩(loading)하여 지정한 상기 기본 레지스터 세트(100)의 기본 레지스터에 전달하고, 소정의 메모리(400)로부터 독출된 데이터 값을 기본 레지스터에 로딩한다.A register pointer 200 is composed of a destination 210 and a source 220. The register pointer 200 is allocated by 2 bits each to address the basic register so that successive additions When accumulation is required as a multiplication, the operation data is loaded and transferred to the designated basic register of the basic register set 100, and the data value read from the predetermined memory 400 is loaded into the basic register do.
32 비트로 된 어드레스 베이스 레지스터(address base register)(300)는 상기 레지스터 포인터(200)가 메모리(400)로부터 데이터 값을 로딩할 때, 이 데이터 값에 대한 세팅(setting)된 메모리 어드레스 값을 갖는다.A 32-bit address base register 300 has a memory address value set for this data value when the register pointer 200 loads a data value from the memory 400. [
표 1은 기본 명령어가 8 비트 명령어일 경우에 대해, 본 발명이 제안하는 기본 명령어 세트이다.Table 1 is a basic instruction set proposed by the present invention when the basic instruction is an 8-bit instruction.
표 1을 참조하면, 기본 명령어는 상위 니블(nibble ; 4 비트)에 동작에 대한 지시를 나타내는 동작코드(opcode)가 할당되어 있다. 그리고 하위 니블에 동작의 대상인 데이터 및 데이터의 위치에 대한 정보를 나타내는 피동작코드(operand)가 할당되어 있다. 이 때, load 명령을 사용하여 3을 레지스터 A에 load하는 경우, 동작코드는 0 이고 피동작코드는 3이 되어, 명령어 코드는 3이 된다. 이것은 이진 코드로는 (00000011)2로 표시된다. 본 발명이 제안하는 명령어 세트는 어드레스 필드를 갖지 않으므로 명령어에서 레지스터 A를 지정할 필요가 없고, 명령어 코드 3으로 이미 고유한 레지스터로 지정된 레지스터 A에 3이 load 된다.Referring to Table 1, an operation code (opcode) indicating an instruction for an operation is assigned to a higher nibble (4 bits) in the basic instruction. An operation code (operand) indicating information on the location of the data and the data that is the operation target is assigned to the lower nibble. At this time, when 3 is loaded into the register A by using the load instruction, the operation code is 0, the to-be-operated code is 3, and the instruction code is 3. This is represented by binary code (00000011) 2 . Since the instruction set proposed by the present invention does not have an address field, it is not necessary to designate the register A in the instruction, and 3 is loaded into the register A which is already designated by the instruction code 3.
기본 명령어에 대한 피동작코드를 확장하는 방법은 다음과 같다.Here's how to extend the work code for basic commands:
예를 들어 17을 load 한다고 하자. 이 때 17은 기본 명령어의 하위 니블로 표현될 수 없다. 그러나 본 발명에서 제시하는 표 1의 동작코드 D(prefix)를 사용하면 표현이 가능하다. 여기서 D는 그 다음 들어오는 바이트가 앞 명령어의 연속으로 인식되도록 미리 정의된 동작코드로서, 이것을 제 1 동작코드라 한다. 그러므로 처음 명령어 코드를 D1로 하고, 후속 명령어 코드를 0F로하게 되면, 상기 제 1 동작코드 D에 의해 소정의 버퍼에 저장된 1과 후속 명령어 코드에 의한 F(16)이 함께 load 된다. 그러므로 17을 load 하기 위한 명령어 코드는 D10F가 된다. 여기서 제 1 동작코드는 제 1 동작코드에 대한 제 1 피동작코드를 수행시키는 기능을 갖지 않는다. 다만, 연속된 명령어 코드 0F와 함께 사용되어 실제 동작코드 0에 대한 피동작코드 영역을 확장하도록 하는 기능을 갖는다. 다시 말해, 제 1 동작코드를 사용하면 상기 예에서와 같이 하나의 동작코드에 대해 8 비트 이상의 피동작코드를 사용할 수 있게 된다.For example, let's load 17. At this time, 17 can not be expressed as a lower nibble of the basic instruction. However, by using the operation code D (prefix) of Table 1 presented in the present invention, expression is possible. Here, D is a predefined operation code, which is the first operation code so that the next incoming byte is recognized as a continuation of the preceding instruction. Therefore, when the first instruction code is set to D1 and the subsequent instruction code is set to 0F, F (16) according to the first instruction code stored in the predetermined buffer by the first operation code D is loaded together. Therefore, the instruction code for loading 17 becomes D10F. Wherein the first operation code does not have the function of executing the first operation code for the first operation code. However, it is used together with the continuous command code 0F to expand the to-be-operated code area for the actual operation code 0. In other words, by using the first operation code, more than 8-bit operation codes can be used for one operation code as in the above example.
상기 방법에 따라 기본 명령어의 하위 니블로 된 피동작코드가 8 비트, 12 비트 16 비트 등으로 더욱 확장될 수 있다. 그것은 명령어의 동작코드로 제 1 동작코드를 계속 사용하다가 최종 명령어의 동작코드에 원하는 동작코드를 기입하는 방법으로 인해 가능하다.According to the above method, the to-be-operated code in the lower nibble of the basic instruction can be further expanded to 8 bits, 12 bits, 16 bits, and the like. This is possible because of the method of continuously using the first operation code as the operation code of the instruction and writing the desired operation code into the operation code of the final instruction.
기본 명령어로 부가 명령어를 정의 방법은 다음과 같다.How to define additional commands with basic commands is as follows.
부가 명령어는 기본 명령어의 E를 사용하여 정의된다. 여기서 E는 피동작코드가 피동작코드가 아닌 즉, non-operand로서 정의된 동작코드이며, 이것을 제 2 동작코드라 한다. 이 제 2 동작코드를 상기 제 1 동작코드 D 다음 명령어의 동작코드로 오게 함으로써 부가 명령어를 정의할 수 있다.Additional instructions are defined using E of the basic instruction. Here, E is an operation code defined as a non-operand, that is, not a to-be-operated code, and this is referred to as a second operation code. The second operation code can be defined as an operation code of the next operation code D, and an additional instruction word can be defined.
만약, 곱셈(multiply)이라는 새로운 부가 명령어를 정의 하고자 하는 경우, 그 명령어의 동작코드를 A3라 하자. 상기 부가 명령어 정의 방법에 의해 그 명령어의 첫 바이트는 DA가 되며 두 번째 바이트는 E3이 된다. 그러므로 이 명령어에 대한 명령어 코드는 DAE3이 된다. 각 바이트의 두 번째 니블이 그 명령어의 동작코드를 나타낸다. 여기서 제 2 동작코드는 실시예 2에서와 같이 A를 피동작코드로하여 동작을 수행하도록 하는 동작코드가 아니다. 다만, A가 소정의 버퍼에 저장되었다가 연속된 명령어 코드 E3과 함께 사용되어 부가적인 명령어를 수행하도록 한다. 즉, 제 2 동작코드는 피동작코드가 피동작코드가 아님을 나타냄으로써 제 1 및 제 2 동작코드에 대한 제 1 및 제 2 피동작코드가 실제 동작코드가 되도록 한다.If you want to define a new multiply instruction, say the operation code of the instruction is A3. According to the additional instruction definition method, the first byte of the instruction is DA and the second byte is E3. Therefore, the command code for this command is DAE3. The second nibble of each byte indicates the operation code of the instruction. Here, the second operation code is not an operation code for causing the operation to be performed using A as the operation code as in the second embodiment. However, A is stored in a predetermined buffer and used together with the consecutive instruction code E3 to perform additional instructions. That is, the second operation code indicates that the to-be-operated code is not the to-be-operated code so that the first and second to-be-operated codes for the first and second operation codes are the actual operation codes.
상기 방법으로 정의될 수 있는 부가 명령어의 코딩 예를 표 2에 나타내었다.Table 2 shows coding examples of additional instructions that can be defined by the above method.
2 바이트로 부가 명령어는 최대 28즉, 256개가 가능하며, 기본 명령어 개수 16과 합하면 총 272개의 명령어를 사용할 수 있게 된다.A two-byte instruction is added up to 28 words, and can be a dog 256, combined with the number of basic instructions 16 are able to use a total of 272 instructions.
더 많은 부가 명령어를 정의하고자 할 때는, 동작코드로 제 1 동작코드를 계속 사용하고 최종 명령어에서 제 2 동작코드를 사용하면 된다.To define more additional instructions, you can continue to use the first operation code with the operation code and use the second operation code with the final instruction.
예를 들어 새로운 부가 명령어의 코드가 A8B 라면 명령어 코드는 DAD8EB로 된다.For example, if the new additional instruction code is A8B, the instruction code is DAD8EB.
이러한 부가 명령어가 내부 레지스터와 어떻게 연관되는지를 다음에서 살펴보도록 한다. 부가 명령어 multiply로 4×18 이라는 연산을 수행할 때, 연산 결과를 레지스터 C에 저장한다고 하자.Let's take a look at how these additional instructions relate to internal registers. Assume that multiply instruction 4 × 18 is used to store the result of operation in register C.
레지스터 A, B, C(110)가 스택 구조를 이루기 때문에 레지스터 C를 먼저 지정하지 않으면 잘 알려진 바와 같이 스택에서 저장되는 데이터는 push되어 순차적으로 쌓이게 된다. 따라서 load되는 장소인 레지스터 C의 지정이 필요하다. 레지스터 포인터(200)에 레지스터 어드레스를 주는 동작코드를 F(reserved)라 하자. 레지스터 포인터(200)는 총 4 비트로서 한 번의 명령어로 제어가 가능하다. 따라서 동작코드 F를 사용하여 F8이라는 명령어를 주게 되면, 레지스터 C에 연산 결과가 저장된다. 다시 말하자면 F는 레지스터 포인터(200)의 데스티네이션(210)과 소오스(220)가 가리키게 되는 어드레스를 지정하는데, 8을 나타내는 이진 코드 (1000)2의 상위 2 비트가 레지스터 C의 어드레스인 (10)2와 같은 데스티네이션의 어드레스이고, 하위 2 비트가 소오스의 어드레스가 된다.Since the registers A, B, and C 110 have a stack structure, if the register C is not designated first, data stored in the stack is pushed and accumulated sequentially as is well known. Therefore, it is necessary to specify register C, which is the place to be loaded. Let F (reserved) be an operation code for giving a register address to the register pointer 200. The register pointer 200 has a total of 4 bits and can be controlled by a single command. Therefore, when the instruction F8 is given using the operation code F, the operation result is stored in the register C. In other words, F designates the destination 210 of the register pointer 200 and the address to which the source 220 is pointing. The upper two bits of the binary code 1000 2 indicating 8 indicate the address 10 of the register C, 2, and the lower two bits are the address of the source.
상기와 같은 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조로, 마이크로 콘트롤러에 대한 롬 크기는 현저하게 줄어들 수 있다.With the internal register structure using the variable length instruction set as described above, the ROM size for the microcontroller can be significantly reduced.
이상과 같은 본 발명에 의하면, 32 비트 마이크로 콘트롤러에서 가변 길이 명령어 세트를 사용하는 내부 레지스터 구조는, 2 바이트로 최대 272개의 명령어를 사용할 수 있고, 마이크로 콘트롤러에 탑재되는 롬의 크기를 줄일 수 있는 효과가 있다.According to the present invention, an internal register structure using a variable-length instruction set in a 32-bit microcontroller can use up to 272 instructions with 2 bytes, and can reduce the size of a ROM mounted on a microcontroller .
Claims (3)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1019960045149A KR0175275B1 (en) | 1996-10-10 | 1996-10-10 | The internal register structure of micro controller using changeable instructio length set |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1019960045149A KR0175275B1 (en) | 1996-10-10 | 1996-10-10 | The internal register structure of micro controller using changeable instructio length set |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR19980026641A KR19980026641A (en) | 1998-07-15 |
| KR0175275B1 true KR0175275B1 (en) | 1999-04-01 |
Family
ID=19477010
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1019960045149A Expired - Fee Related KR0175275B1 (en) | 1996-10-10 | 1996-10-10 | The internal register structure of micro controller using changeable instructio length set |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR0175275B1 (en) |
-
1996
- 1996-10-10 KR KR1019960045149A patent/KR0175275B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| KR19980026641A (en) | 1998-07-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2212049C2 (en) | Mixed file of vector/scalar registers | |
| EP0755540B1 (en) | Efficient addressing of large memories | |
| US6314504B1 (en) | Multi-mode memory addressing using variable-length | |
| US6986029B2 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
| JP2001504969A (en) | Data processor for stack | |
| KR100322277B1 (en) | Central processing unit having expansion instruction | |
| JP3201716B2 (en) | Computer equipment | |
| KR19990013576A (en) | Forced Page Zero Paging Method of Microcontroller Using Data Random Access Memory | |
| KR0175275B1 (en) | The internal register structure of micro controller using changeable instructio length set | |
| KR19990037573A (en) | Processor architecture and instruction set to maximize available opcodes and execute various addressing modes | |
| US20030046516A1 (en) | Method and apparatus for extending instructions with extension data of an extension register | |
| EP0510635A2 (en) | Address generation in a data processing unit | |
| US20050021929A1 (en) | Micro controller for processing compressed codes | |
| US6886159B2 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
| US6442058B2 (en) | Control circuit and semiconductor device including same | |
| JP2001043082A (en) | Information processor and method for coding and decoding instruction | |
| US7370159B2 (en) | Microprocessor having an extended addressable space | |
| US6198691B1 (en) | Force page paging scheme for microcontrollers of various sizes using data random access memory | |
| EP0787326A1 (en) | System and method for processing of memory data and communication system comprising such system | |
| JPS62107339A (en) | Instruction constituting method for microcomputer | |
| US5479632A (en) | Microcomputer having two-level memory to facilitate calculation of effective addresses | |
| JP3792633B2 (en) | Microcontroller and microcontroller device | |
| EP1639476A2 (en) | Microcontroller and addressing method | |
| KR19990037395A (en) | System and method for executing two word instructions in a single cycle | |
| CN118502662A (en) | Method and device for carrying codes in FLASH to RAM |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-3-3-R10-R17-oth-X000 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U11-oth-PR1002 Fee payment year number: 1 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R13-asn-PN2301 St.27 status event code: A-5-5-R10-R11-asn-PN2301 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
| FPAY | Annual fee payment |
Payment date: 20061030 Year of fee payment: 9 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 9 |
|
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee |
St.27 status event code: A-4-4-U10-U13-oth-PC1903 Not in force date: 20071110 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE |
|
| PC1903 | Unpaid annual fee |
St.27 status event code: N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20071110 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| P22-X000 | Classification modified |
St.27 status event code: A-4-4-P10-P22-nap-X000 |