KR100379151B1 - Apparatus and method for executing a block data transfer instruction inside processor - Google Patents

Apparatus and method for executing a block data transfer instruction inside processor Download PDF

Info

Publication number
KR100379151B1
KR100379151B1 KR10-2001-0000315A KR20010000315A KR100379151B1 KR 100379151 B1 KR100379151 B1 KR 100379151B1 KR 20010000315 A KR20010000315 A KR 20010000315A KR 100379151 B1 KR100379151 B1 KR 100379151B1
Authority
KR
South Korea
Prior art keywords
register
bit
unique number
value
decryption information
Prior art date
Application number
KR10-2001-0000315A
Other languages
Korean (ko)
Other versions
KR20020057332A (en
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 패러데이 테크놀로지 코퍼레이션
Priority to KR10-2001-0000315A priority Critical patent/KR100379151B1/en
Publication of KR20020057332A publication Critical patent/KR20020057332A/en
Application granted granted Critical
Publication of KR100379151B1 publication Critical patent/KR100379151B1/en

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/30098Register 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/30145Instruction analysis, e.g. decoding, instruction word fields

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

프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치 및 방법이다. 상기 장치는 레지스터 리스트의 해독 정보로부터 처리되어야 할 레지스터와 이에 대응하는 주소를 발견할 수 있다. 지정된 레지스터들의 데이터만을 처리함으로써, 메모리 접근 사이클(memory access cycle)은 물론 프로그램 코드를 줄일 수 있고 프로세서의 성능을 향상시킬 수 있다.An apparatus and method for executing a block data transfer instruction inside a processor. The device can find the register to be processed and the corresponding address from the decryption information of the register list. By processing only the data in the specified registers, you can reduce the program code as well as the memory access cycle and improve the performance of the processor.

Description

프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치 및 방법 {APPARATUS AND METHOD FOR EXECUTING A BLOCK DATA TRANSFER INSTRUCTION INSIDE PROCESSOR}Device and method for executing block data transfer instructions inside the processor {APPARATUS AND METHOD FOR EXECUTING A BLOCK DATA TRANSFER INSTRUCTION INSIDE PROCESSOR}

본 발명은 프로세서의 명령을 실행하는 장치 및 방법에 관한 것이다. 보다 구체적으로는 프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치에 관한 것이다.The present invention relates to an apparatus and method for executing instructions of a processor. More specifically, the present invention relates to an apparatus for executing a block data transfer command in a processor.

프로세서는 많은 전자 장비에 있어서 필수 불가결한 장치이다. 예를 들면, 모든 컴퓨터는 적어도 하나의 중앙 처리 장치를 반드시 구비하여야 하며 다양한 컨트롤러는 하나 이상의 특수한 기능의 프로세서를 필요로 한다. 강력한 전자 장비가 개발됨에 따라 프로세서가 수행하는 역할도 점차 중요해지고 있다.Processors are indispensable for many electronic devices. For example, every computer must have at least one central processing unit and various controllers require one or more specially functional processors. As powerful electronic equipment develops, the role that processors play becomes increasingly important.

보다 고성능을 달성하기 위한 한 가지 명백한 해결책은 클록 사이클(clock cycle)을 감소, 즉 동작 주파수를 증가시키는 것이다. 성능을 향상시키는 다른 방법은 각각의 사이클에서 동시에 다수의 명령을 실행하는 것이다.One obvious solution to achieving higher performance is to reduce the clock cycle, ie increase the operating frequency. Another way to improve performance is to execute multiple instructions simultaneously in each cycle.

프로세서가 제공하는 명령 리스트 중에는 전체 레지스터 블록 내의 데이터를 처리하는 하나의 특수 목적 명령이 있다. 예를 들면, 하나의 명령으로 전체 레지스터 블록으로부터 데이터를 판독하고 기입할 수 있다. 일례로서 16개의 레지스터 블록을 사용하여 명령을 실행하면 프로세서는 리스트에 있는 레지스터 각각에 대하여 데이터의 전송과 같은 동일한 동작을 수행하여야 한다. 이러한 동작 모드는 16개의 레지스터 모두가 전송할 데이터를 내장하고 있는 경우, 프로세서의 실행 시간을 온전히 사용하기 때문에 경제적이다. 하지만, 실제로 처리해야 하는 레지스터의 수가 16개 미만이거나 1처럼 적다면, 16개의 레지스터 모두를 처리하는 규칙은 매우 비경제적이고 처리 효율을 떨어뜨릴 수 있다. 한편, 종래 기술을 이용하는 경우, 전송 동작의 수행에 적어도 16개의 프로그램 코드가 필요한데, 이것은 더 긴 크기의 프로그램 코드가 필요함을 의미한다. 전송 명령을 수행하는데 너무 많은 프로그램 코드를 소비한다.In the instruction list provided by the processor is one special purpose instruction that processes data in the entire register block. For example, one instruction can read and write data from an entire register block. As an example, if you execute an instruction using 16 register blocks, the processor must perform the same operation, such as transferring data, for each register in the list. This mode of operation is economical because all 16 registers contain data to be transferred, making full use of the processor's execution time. However, if the number of registers actually to be processed is less than 16 or as small as 1, then the rules for processing all 16 registers are very uneconomical and can reduce processing efficiency. On the other hand, using the prior art, at least 16 program codes are required to perform the transfer operation, which means that a longer size program code is required. Too much program code is consumed to carry out the transfer command.

따라서, 본 발명의 목적은 프로세서 내부의 블록 데이터 전송 명령을 실행하는 방법 및 장치를 제공하는 것이다. 상기 장치는 레지스터 리스트의 해독 정보로부터 처리되어야 할 레지스터들과 이에 대응하는 주소들 발견할 수 있다. 특정 레지스터의 데이터만을 처리함으로써, 프로세서의 실행 사이클은 물론 프로그램 코드를 감소시킬 수 있다. 따라서, 프로그램의 성능이 상당히 개선될 수 있다.Accordingly, it is an object of the present invention to provide a method and apparatus for executing a block data transfer command inside a processor. The device may find registers to be processed and corresponding addresses from the decryption information of the register list. By processing only the data in a specific register, the processor's execution cycle as well as the program code can be reduced. Thus, the performance of the program can be significantly improved.

도 1은 본 발명의 바람직한 실시예에 따른 프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치를 도시한 블록도이다.1 is a block diagram illustrating an apparatus for executing a block data transfer command inside a processor according to a preferred embodiment of the present invention.

도 2는 도 1에 도시한 레지스터 ID 번호 생성기 내부의 동작 상태를 보여주는 흐름도이다.FIG. 2 is a flowchart illustrating an operating state inside the register ID number generator shown in FIG. 1.

본 발명의 목적에 따른 상기한 그리고 다른 장점을 달성하기 위하여, 이후 구체적으로 그리고 광범위하게 기술하는 바와 같이, 본 발명은 프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치를 제공한다. 상기 장치는 적어도 N 비트를 가진 해독 정보를 수신할 수 있다. 상기 장치는 가산기(adder), 계수기(counter), 레지스터 고유 번호 생성기(resister identification number generator), 메모리 유니트 및 레지스터 리스트를 포함한다. 상기 가산기는 N 비트 해독 정보를 수신하고 이후 N 비트 해독 정보의 비트값을 전부 더하여 초기 계수값을 얻는다. 상기 계수기는 초기 계수값을 수신한다. 초기 계수값은 비트값이 '1'인 N 비트 해독 정보 위치를 발견할 때마다 하나씩 감소된다. 이후, 계수기는 계수 제어 신호를 출력한다. 상기 계수 제어 신호에 따라, 레지스터 고유 번호 생성기는 초기 계수값과 동일한 수의 복수의 레지스터 고유 번호(IDs)를 생성한다. 이러한 레지스터 고유 번호는 '1'의 값을 가진 N 비트 해독 정보의 위치에 대응한다. 레지스터 리스트는 복수의 레지스터를 포함한다. 레지스터 리스트는 레지스터 고유(ID) 번호를 수신한다. 레지스터 고유 번호에 따라, 메모리 유니트와 레지스터 고유 번호에 대응하는 레지스터간에 데이터가 자유로이 전송된다.In order to achieve the above and other advantages according to the object of the present invention, the present invention provides an apparatus for executing a block data transfer instruction inside a processor, as will be described in detail and broadly below. The device may receive decryption information having at least N bits. The apparatus includes an adder, a counter, a register identification number generator, a memory unit and a register list. The adder receives the N bit decryption information and then adds all the bit values of the N bit decryption information to obtain an initial count value. The counter receives an initial count value. The initial count value is decremented by one each time it finds an N bit decryption information location whose bit value is '1'. The counter then outputs a counting control signal. In accordance with the count control signal, the register unique number generator generates a plurality of register unique numbers IDs equal to the initial count value. This register unique number corresponds to the location of the N bit decryption information with a value of '1'. The register list includes a plurality of registers. The register list receives a register unique (ID) number. According to the register unique number, data is freely transferred between the memory unit and the register corresponding to the register unique number.

블록 데이터 전송 장치는 주소 계수기를 추가로 포함한다. 상기 주소 계수기는 해독 정보에 따른 주소 신호를 생성한다. 주소 신호는 메모리 유니트로 보내진다. 데이터는 특정 레지스터 ID 번호에 대응하는 레지스터와 특정 주소 신호에대응하는 메모리 유니트간에 전송된다.The block data transmission apparatus further includes an address counter. The address counter generates an address signal according to the decryption information. The address signal is sent to the memory unit. Data is transferred between a register corresponding to a specific register ID number and a memory unit corresponding to a specific address signal.

블록 데이터 전송 장치의 레지스터 ID 번호 생성기는 초기 계수값과 동일한 수의 레지스터 ID 번호를 생성하기 위한 N개의 논리 유니트를 추가로 포함한다. 계수기는 초기 계수값이 영(0)이 될 때까지 초기 계수값에서 하나를 뺀다. 상기 N 개의 논리 장치는 비트값이 '1'인 N 비트 해독 정보의 위치에 따라 대응하는 레지스터 ID 번호를 생성한다.The register ID number generator of the block data transfer apparatus further includes N logical units for generating the same number of register ID numbers as the initial count value. The counter subtracts one from the initial count until the initial count reaches zero. The N logic devices generate corresponding register ID numbers according to the position of the N bit decryption information whose bit value is '1'.

본 발명은 또한 N 비트 해독 정보를 수신한 후 프로세서 내부의 블록 데이터 전송을 실행하는 방법을 제공한다. 상기 방법은 N 비트 해독 정보의 N 비트들을 전부 더하여 초기 계수값을 형성하고, 초기 계수값과 동일한 수의 복수의 레지스터 ID 번호를 생성하는 단계를 포함한다. 레지스터 ID 번호는 비트값이 '1'인 N 비트 해독 정보의 위치에 대응한다. 레지스터 ID 번호에 따라, 레지스터 ID 번호에 대응하는 복수의 레지스터와 메모리 유니트가 연결되어 메모리 유니트와 레지스터가 저장된 데이터를 자유로이 교환할 수 있도록 한다.The present invention also provides a method of performing block data transfer inside the processor after receiving N bit decryption information. The method includes adding all N bits of the N bit decryption information to form an initial count value, and generating a plurality of register ID numbers equal to the initial count value. The register ID number corresponds to the position of N bit decryption information whose bit value is '1'. According to the register ID number, a plurality of registers and a memory unit corresponding to the register ID number are connected to freely exchange data in which the memory unit and the register are stored.

블록 데이터 전송 방법에 있어서, 레지스터 ID 번호 생성 단계는 비트값이 '1'인 N 비트 해독 정보 위치를 발견할 때마다 초기 계수값에서 하나를 빼는 단계를 추가로 포함한다. 상기 계수 동작은 영(0) 값을 얻을 때까지 초기값을 하나씩 감소시킨다. 각각의 감소 동작 후에, N 비트 해독 정보의 위치가 비트값이 '1'이냐 아니냐에 따라 레지스터 ID 번호를 생성한다.In the block data transfer method, the register ID number generating step further includes subtracting one from the initial count value each time the N bit decryption information position where the bit value is '1' is found. The counting operation decrements the initial value one by one until a zero value is obtained. After each decrement operation, the position of the N bit decryption information generates a register ID number depending on whether the bit value is '1' or not.

블록 데이터 전송 방법은 해독 정보에 따라 주소 신호를 생성하는 단계를 추가로 포함한다. 따라서, 데이터는 특정 레지스터 ID 번호에 대응하는 레지스터와주소 신호에 대응하는 메모리 위치 사이에서 교환된다.The block data transmission method further includes generating an address signal according to the decryption information. Thus, data is exchanged between a register corresponding to a specific register ID number and a memory location corresponding to an address signal.

상기한 일반적인 설명과 이후의 상세한 설명 모두는 예시적인 것이고, 청구범위에 기재된 본 발명을 추가로 설명하고자 함을 이해하여야 한다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and intended to further explain the invention described in the claims.

첨부 도면은 본 발명의 추가적인 이해를 돕고자 포함되며, 본 명세서의 일부로서 통합된다. 도면은 설명과 함께 본 발명의 실시예를 도시하며, 본 발명의 원리를 설명하는데 기여한다.The accompanying drawings are included to assist in a further understanding of the invention and are incorporated as part of this specification. The drawings, together with the description, illustrate embodiments of the invention and serve to explain the principles of the invention.

실시예Example

도면부호는 본 발명의 바람직한 실시예에서 구체화되고, 첨부도면에 도시된다. 가능한 한 어느 부분에서나 동일한 도면부호는 도면과 설명에서 동일 또는 유사한 부분을 인용하는데 사용된다.Reference numerals are embodied in a preferred embodiment of the present invention and are shown in the accompanying drawings. Wherever possible, the same reference numbers are used to refer to the same or similar parts in the drawings and the description.

본 발명은 블록 데이터 전송 명령을 실행하는 장치와 이에 대응하는 장치의 동작 방법을 제공한다. 상기 장치는 레지스터 리스트 내의 해독 정보를 이용하여 레지스터 번호와 번호에 대응하여 처리되어야 할 주소들을 찾아낸다. 궁극적으로, 지정되지 않은 레지스터를 건너뛰는 동안 지정된 레지스터의 데이터만을 처리한다.The present invention provides an apparatus for executing a block data transfer command and a method of operating the apparatus corresponding thereto. The device uses the decryption information in the register list to find the register number and addresses to be processed corresponding to the number. Ultimately, only the data in the specified register is processed while skipping the unspecified register.

도 1은 본 발명의 바람직한 실시예에 따른 프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치를 도시한 블록도이다. 상기 실시예에서, 예로서 16개의 레지스터에 대한 블록 데이터 전송을 처리할 수 있는 레지스터 리스트(register list; RL)를 선택한다. 도 1에 도시한 바와 같이, RL 내의 해독 정보는 16 비트를 함께 포함한다. 도 1에서는 16개의 레지스터를 처리하기 위해 16 비트만을 포함하지만, 본 발명이 다룰 수 있는 실제 비트수 및 이에 따른 레지스터 수는 한정되지않는다. 즉, 본 발명은 32개 또는 64개의 레지스터에 관한 데이터 전송을 포함하도록 확장될 수 있다.1 is a block diagram illustrating an apparatus for executing a block data transfer command inside a processor according to a preferred embodiment of the present invention. In this embodiment, for example, a register list (RL) is selected that can handle block data transfer for 16 registers. As shown in Fig. 1, the decryption information in the RL together includes 16 bits. Although only 16 bits are included in FIG. 1 to process 16 registers, the actual number of bits that can be handled by the present invention and the corresponding number of registers are not limited. That is, the present invention can be extended to include data transfers for 32 or 64 registers.

먼저, RL 해독 정보는 가산기(110)로 전송된다. 가산기(110) 내부에서, RL 해독 정보 내의 모든 비트들은 전부 더해진다. 즉, 비트값이 '1'인 RL 해독 정보 내의 위치 숫자가 더해져 전체 값을 형성한다. 상기 값은 계수기(120)로 입력되어 초기 계수값으로 작용한다. 사실상, 비트값이 '1'인 각 비트 번호 위치는 처리되어야 할 레지스터를 나타낸다. 예를 들면, RL 해독 정보의 우측으로부터 시작하는 제1 비트 위치의 '1'은 제1 레지스터가 처리되어야함을 지시한다. 사실상, 계수기(120)로 입력되는 값은 처리에 필요한 명령에서의 레지스터 번호를 발견하는데 사용된다. 즉, 메모리와 레지스터 사이의 데이터 전송 횟수(데이터 전송을 완료하는데 필요한 전체 시간은 메모리의 적중율(hit rate)에 달려있음)는 초기 계수값으로부터 측정할 수 있다.First, the RL decryption information is sent to the adder 110. Inside the adder 110, all the bits in the RL decryption information are all added up. That is, the position number in the RL decryption information whose bit value is '1' is added to form the total value. The value is input to the counter 120 to serve as an initial count value. In fact, each bit number position whose bit value is '1' represents a register to be processed. For example, '1' of the first bit position starting from the right side of the RL decryption information indicates that the first register should be processed. In fact, the value entered into counter 120 is used to find the register number in the instruction required for processing. That is, the number of data transfers between the memory and the registers (the total time required to complete the data transfer depends on the hit rate of the memory) can be measured from the initial count value.

각 메모리 접근 및 레지스터 저장 동작 후, 계수기(120)는 초기 계수값에서 하나를 감소시킨다. 명령은 계수기(120)가 영으로 감소할 때 완료된다. 따라서, 계수기(120)는 겨우 16회의 처리가 필요하다(실제 횟수는 해독 정보에 따라 처리에 필요한 레지스터의 수와 관련이 있음).After each memory access and register store operation, counter 120 decrements one from the initial count value. The command is complete when the counter 120 decreases to zero. Thus, the counter 120 only needs 16 processes (the actual number is related to the number of registers required for the process depending on the decryption information).

계수기(120)가 영이 되기 전, 각 동작은 레지스터 ID 번호 생성기(130)를 통하여 레지스터 ID 번호를 생성한다. 동시에 주소 계수기(140)는 메모리(150)에 주소 데이터를 전송한다. 이후 메모리(150)는 주소에 대응하는 데이터를 전송하거나 수신한다. 데이터는 레지스터 ID가 지정한 레지스터 리스트 내의 레지스터에 대응하는 레지스터로 전송된다. 이와는 달리, 레지스터 ID가 지정한 대로 레지스터 주소 리스트(160) 내의 주소에 대응하는 레지스터로부터 데이터를 판독한다. 이러한 모든 것은 메모리(150)에서 데이터를 판독하는가 메모리(150)로 전송하는가에 달려 있다. 따라서, 레지스터 ID 생성기(130)가 생성하는 레지스터 ID에 따라 레지스터 주소 리스트(160) 내의 레지스터들과 메모리(150) 사이에 데이터 교환이 시작된다.Before counter 120 is zero, each operation generates a register ID number through register ID number generator 130. At the same time, the address counter 140 transmits the address data to the memory 150. Thereafter, the memory 150 transmits or receives data corresponding to the address. The data is transferred to the register corresponding to the register in the register list specified by the register ID. Alternatively, data is read from the register corresponding to the address in register address list 160 as specified by the register ID. All of this depends on whether data is read from or transferred to memory 150. Accordingly, the data exchange between the registers in the register address list 160 and the memory 150 starts according to the register ID generated by the register ID generator 130.

상기한 동작을 도 1과 함께 설명할 수 있다. 예를 들면, 계수기(120)는 감소 동작을 수행할 수 있는 장치이다. 각각의 동작에서, 계수기(120)는 케이블(122)을 통하여 계수 제어 신호를 출력하여 레지스터 ID 생성기(130)를 제어한다. 계수 제어 신호에 따라서, 레지스터 ID 생성기(130)는 레지스터 ID를 생성할 수 있다. 따라서, 주소 계수기(140)가 제공하는 계산된 주소 및 레지스터 ID 생성기가 생성하는 ID에 따라, 생성된 레지스터 ID에 대응하는 레지스터 주소 리스트(160) 내의 레지스터들 간에 레지스터 내부의 데이터가 메모리로 전송될 수 있고 또는 계산된 주소에 대응하는 메모리(150) 내의 데이터가 레지스터 ID에 대응하는 레지스터로 전송될 수 있다.The above operation can be described with reference to FIG. 1. For example, counter 120 is a device capable of performing a reduction operation. In each operation, counter 120 outputs a coefficient control signal through cable 122 to control register ID generator 130. In accordance with the coefficient control signal, the register ID generator 130 may generate a register ID. Accordingly, according to the calculated address provided by the address counter 140 and the ID generated by the register ID generator, data in the register may be transferred to the memory between the registers in the register address list 160 corresponding to the generated register ID. Data in memory 150 corresponding to the calculated address may be transferred to a register corresponding to a register ID.

도 2는 도 1에 도시한 레지스터 ID 번호 생성기 내부의 동작 상태를 도시한 흐름도이다. 케이블(122)을 통하여 계수기(120)가 제공하는 계수 제어 신호를 수신하자마자, 먼저 레지스터 ID 생성기는 계수값이 단계(210)에서 영으로 감소하는 지를 결정한다. 만약 계수값이 영이라면, 처리는 완료된다. 그러나, 계수값이 영이 아니면, 하나 이상의 레지스터가 동작 상태로 남아 있다. 단계(212)에서, RL 해독 정보의 제1 비트를 비트값이 '1'인지 검사한다. 상기 위치에서 비트값이 '1'이라면, 이것은 레지스터 리스트에서 제1 레지스터에 접근할 필요가 있음을 뜻한다. 단계(213)에서, 레지스터의 고유 번호는 접근을 용이하게 하도록 설정된다. 예에서, ID = 0 이다. 이후, 레지스터 리스트의 제1 비트를 반복을 피하도록 '0'으로 설정한다. 즉, 레지스터 리스트의 제1 비트를 영으로 설정하여, 다음 계수값은 레지스터 리스트의 제1 레지스터에서 다시 동작하지 않는다. 마지막으로 계수값은 하나씩 감소한다.FIG. 2 is a flowchart showing an operating state inside the register ID number generator shown in FIG. Upon receiving the count control signal provided by the counter 120 over the cable 122, the register ID generator first determines whether the count value decreases to zero at step 210. If the count value is zero, the process is complete. However, if the count value is not zero, one or more registers remain in operation. In step 212, the first bit of RL decryption information is checked to see if the bit value is '1'. If the bit value in the position is '1', this means that the first register needs to be accessed from the register list. In step 213, a unique number of registers is set to facilitate access. In the example, ID = 0. The first bit of the register list is then set to '0' to avoid repetition. In other words, by setting the first bit of the register list to zero, the next count value does not operate again in the first register of the register list. Finally, the count value decreases by one.

제어는 경로(220)를 통하여 초기 상태로 돌아와서 단계(210)를 반복하도록 한다. 여기서, 영에 도달했는지를 결정하도록 다시 계수값을 문의한다. 영값이 나타나면, 이것은 명령이 완료되었음을 의미한다. 한편, 계수값이 아직 영이 아니면, 단계(212)는 레지스터 리스트의 제1 비트가 '1' 값을 갖는지를 결정하도록 실행된다. 이전 단계(213)에서 제1 비트 위치 값을 이미 영으로 설정하였으므로, 다음 단계(214)를 실행한다. 단계(214)에서, RL 해독 정보의 제2 비트를 검사하여 값이 '1'인지 결정한다. '1'의 값이 실제로 제2 비트 위치에 존재한다면, 레지스터 ID는 '1'의 값, 즉 ID = 1로 설정된다. 유사하게, 단계(215)에서, 레지스터 리스트의 제2 비트 위치는 반복을 피하도록 영으로 설정되고, 이어서 계수값을 하나씩 감소시킨다. RL 해독 정보의 제2 비트 위치 값이 초기에 '0'을 포함하면, RL 해독 정보의 제3 비트 위치 값을 검사하여 제3 레지스터의 동작이 필요한 지를 결정한다. 상기 과정은 계수기(120)의 계수값이 영이 될 때까지 반복된다. 사실, 반복 단계의 횟수는 계수기(120)의 계수값과 동일해야 한다. 따라서, 상기한 구조의 시스템에 있어서는 계수기(120)로 입력되는 초기 계수값은 데이터 전송에 필요한 레지스터의 수를 나타낸다.Control returns to the initial state via path 220 to repeat step 210. Here, the coefficient value is queried again to determine whether zero has been reached. If a zero value appears, this means that the command is complete. On the other hand, if the count value is not yet zero, step 212 is executed to determine if the first bit of the register list has a value of '1'. Since the first bit position value has already been set to zero in the previous step 213, the next step 214 is executed. In step 214, the second bit of RL decryption information is examined to determine if the value is '1'. If the value of '1' is actually present in the second bit position, the register ID is set to the value of '1', i.e., ID = 1. Similarly, in step 215, the second bit position of the register list is set to zero to avoid repetition, and then decrement the count value by one. If the second bit position value of the RL decryption information initially contains '0', the third bit position value of the RL decryption information is examined to determine if operation of the third register is necessary. The process is repeated until the counter value of the counter 120 becomes zero. In fact, the number of iteration steps should be equal to the count value of the counter 120. Therefore, in the system of the above structure, the initial count value input to the counter 120 indicates the number of registers required for data transfer.

본 발명의 원리나 범위를 벗어나지 않고 본 발명의 구조로 다양한 변형예가 이루어질 수 있음은 당업자에게 명백하다. 상기한 관점에서, 본 발명은 다음의 청구범위와 그의 균등물의 범위 내에 있는 다양한 변형예를 포함하고자 하였다.It will be apparent to those skilled in the art that various modifications may be made to the structure of the invention without departing from the spirit or scope of the invention. In view of the foregoing, it is intended that the present invention cover various modifications that fall within the scope of the following claims and their equivalents.

상기한 바와 같이, 본 발명은 프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치를 제공한다. 상기 장치는 레지스터 리스트의 해독 정보로부터 처리되어야 하는 레지스터와 이에 대응하는 주소를 발견할 수 있다. 지정된 레지스터들의 데이터만을 처리함으로써, 프로세서 실행 사이클은 물론 프로그램 코드도 줄일 수 있다. 따라서, 프로세서의 성능을 상당히 향상시킬 수 있다.As described above, the present invention provides an apparatus for executing a block data transfer command inside a processor. The device can find the register to be processed and the corresponding address from the decryption information of the register list. By processing only the data in the specified registers, the processor execution cycle as well as the program code can be reduced. Thus, the performance of the processor can be significantly improved.

Claims (6)

N 비트를 포함한 해독 정보를 수신한 후 프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치에 있어서,An apparatus for executing a block data transfer instruction inside a processor after receiving decryption information including N bits, the apparatus comprising: 상기 장치가The device N 비트 해독 정보를 수신하고 N 비트를 전부 더하여 초기 계수값을 생성하는 가산기;An adder that receives the N bit decryption information and adds all of the N bits to produce an initial count value; 상기 초기 계수값을 수신하고 계수 제어 신호를 출력한 후 상기 값을 하나씩 감소시키는 계수기;A counter for receiving the initial count value and outputting a count control signal and then decreasing the value by one; 상기 계수 제어 신호에 따라 초기 계수값과 동일한 상기 N 비트 해독 정보의 비트값이 '1'인 비트 위치에 대응하는 복수의 레지스터 고유 번호를 생성하는 레지스터 고유 번호 생성기;A register unique number generator for generating a plurality of register unique numbers corresponding to bit positions in which the bit value of the N bit decoding information equal to an initial coefficient value is '1' according to the coefficient control signal; 데이터를 유지하는 메모리 유니트; 및A memory unit for holding data; And 복수의 레지스터 데이터를 포함하며 상기 레지스터 고유 번호를 수신하여 메모리 유니트와 상기 대응 레지스터 고유 번호를 갖는 레지스터 사이에 저장된 데이터를 자유롭게 교환할 수 있도록 하는 레지스터 리스트를 포함하는 블록 데이터 전송 명령 실행 장치.And a register list including a plurality of register data and allowing a register list to receive the register unique number and to freely exchange data stored between a memory unit and a register having the corresponding register unique number. 제1항에 있어서,The method of claim 1, 상기 해독 정보에 따른 주소 신호를 생성하고 상기 메모리 유니트로 상기 주소 신호를 출력하여 상기 레지스터 고유 번호에 대응하는 레지스터와 상기 주소 신호에 따른 메모리 유니트에서의 주소지정 메모리 사이에 데이터를 자유롭게 교환할 수 있도록 하는 주소 계수기를 추가로 포함하는 블록 데이터 전송 명령 실행 장치.Generating an address signal according to the decryption information and outputting the address signal to the memory unit so that data can be freely exchanged between a register corresponding to the register unique number and an addressable memory in the memory unit according to the address signal; And a block data transfer instruction execution device further comprising an address counter. 제1항에 있어서,The method of claim 1, 상기 레지스터 고유 번호 생성기가The register unique number generator 초기 계수값과 동일한 수의 레지스터 고유 번호를 생성하며 상기 계수기가 하나씩 감소하여 영(0)이 될 때까지, 비트값이 '1'인 N 비트 해독 정보의 비트 위치에 따른 레지스터 고유 번호를 생성하도록 하는 N 논리 유니트를 추가로 포함하는 블록 데이터 전송 명령 실행 장치.Generate a register unique number equal to the initial count value and generate a register unique number according to the bit position of the N bit decryption information with a bit value of '1' until the counter is decremented to zero. And a block data transfer instruction execution device further comprising an N logical unit. N 비트 해독 정보를 수신한 후 프로세서 내부의 블록 데이터 전송 명령을 실행하는 방법에 있어서,A method for executing a block data transfer command in a processor after receiving N bit decryption information, the method comprising: N 비트를 전부 더하여 초기 계수값을 형성하는 단계;Adding all N bits to form an initial count value; 상기 초기 계수값과 동일한 수의 비트값이 '1'인 N 비트 해독 정보 정보의 비트 위치에 대응하는 복수의 레지스터 고유 번호를 생성하는 단계; 및Generating a plurality of register unique numbers corresponding to bit positions of the N bit decoding information information having the same number of bit values as '1'; And 상기 레지스터 고유 번호에 대응하는 복수의 레지스터와 레지스터 고유 번호에 따른 메모리 유니트를 연결하여 상기 메모리 유니트와 상기 레지스터 사이에 저장된 데이터를 자유롭게 교환할 수 있도록 하는 단계Connecting a plurality of registers corresponding to the register unique number and a memory unit according to the register unique number to freely exchange data stored between the memory unit and the register; 를 포함하는 블록 데이터 전송 명령 실행 방법.Block data transfer command execution method comprising a. 제4항에 있어서,The method of claim 4, wherein 상기 레지스터 고유 번호를 생성하는 단계가Generating the register unique number 상기 초기 계수값이 영이 될 때까지 상기 초기 계수값을 하나씩 감소시키는 계수 감소 동작을 수행하는 단계; 및Performing a coefficient reduction operation of decreasing the initial count value by one until the initial count value becomes zero; And 각 계수 감소 동작 후 N 비트 해독 정보에서 비트값 '1'을 발견할 때마다 레지스터 고유 번호를 생성하는 단계를 추가로 포함하는 블록 데이터 전송 명령 실행 방법.And generating a register unique number each time a bit value '1' is found in the N bit decoding information after each count reduction operation. 제4항에 있어서,The method of claim 4, wherein 해독 정보에 따른 주소 신호를 생성하여 레지스터 고유 번호에 따른 레지스터에 저장된 데이터와 상기 주소 신호에 따른 주소를 갖는 메모리 유니트 내의 데이터를 서로 교환할 수 있도록 하는 단계를 추가로 포함하는 블록 데이터 전송 명령 실행 방법.Generating an address signal according to the decryption information so that data stored in a register according to a register unique number and data in a memory unit having an address according to the address signal can be exchanged with each other; .
KR10-2001-0000315A 2001-01-04 2001-01-04 Apparatus and method for executing a block data transfer instruction inside processor KR100379151B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0000315A KR100379151B1 (en) 2001-01-04 2001-01-04 Apparatus and method for executing a block data transfer instruction inside processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0000315A KR100379151B1 (en) 2001-01-04 2001-01-04 Apparatus and method for executing a block data transfer instruction inside processor

Publications (2)

Publication Number Publication Date
KR20020057332A KR20020057332A (en) 2002-07-11
KR100379151B1 true KR100379151B1 (en) 2003-04-07

Family

ID=37488460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0000315A KR100379151B1 (en) 2001-01-04 2001-01-04 Apparatus and method for executing a block data transfer instruction inside processor

Country Status (1)

Country Link
KR (1) KR100379151B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991134A (en) * 1995-09-22 1997-04-04 Matsushita Electric Ind Co Ltd Information processor
US5682531A (en) * 1994-09-26 1997-10-28 Mitsubishi Denki Kabushiki Kaisha Central processing unit
KR19980075349A (en) * 1997-03-31 1998-11-16 구자홍 Cache Data Access Device and Method of Microprocessor
KR19990032833A (en) * 1997-10-21 1999-05-15 구본준 Semiconductor central processing unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682531A (en) * 1994-09-26 1997-10-28 Mitsubishi Denki Kabushiki Kaisha Central processing unit
JPH0991134A (en) * 1995-09-22 1997-04-04 Matsushita Electric Ind Co Ltd Information processor
KR19980075349A (en) * 1997-03-31 1998-11-16 구자홍 Cache Data Access Device and Method of Microprocessor
KR19990032833A (en) * 1997-10-21 1999-05-15 구본준 Semiconductor central processing unit

Also Published As

Publication number Publication date
KR20020057332A (en) 2002-07-11

Similar Documents

Publication Publication Date Title
KR100440841B1 (en) Microcomputer
USRE41904E1 (en) Methods and apparatus for providing direct memory access control
EP0449661B1 (en) Computer for Simultaneously executing plural instructions
US20050198471A1 (en) Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein
JPS58151648A (en) Data processor having program patching means
JPH1091443A (en) Information processing circuit, microcomputer and electronic equipment
CA2522995C (en) Processing a security message authentication control instruction
JP2001134436A (en) Circuit, system and method for processor equipped with instruction of one or both of effective grain level shift and marge
JP2845433B2 (en) Integrated circuit device
JP2006018413A (en) Processor and pipeline reconfiguration control method
EP0173040B1 (en) Vector processing system
JPH0332818B2 (en)
US7082610B2 (en) Method and apparatus for exception handling in a multi-processing environment
JPH04140880A (en) Vector processor
JP4950796B2 (en) Semiconductor device
KR100379151B1 (en) Apparatus and method for executing a block data transfer instruction inside processor
US8631173B2 (en) Semiconductor device
US6820191B2 (en) Apparatus and method for executing an instruction with a register bit mask for transferring data between a plurality of registers and memory inside a processor
JPH0619711B2 (en) Data processing system with priority branch mechanism
US6584514B1 (en) Apparatus and method for address modification in a direct memory access controller
JP2006164279A (en) Processor architecture
KR100188374B1 (en) Central processing unit and an arithmetic operation processing unit
US5889966A (en) Data processor having bus controller for controlling a plurality of buses independently of each other
JP3332606B2 (en) Microprocessor
JPH1091593A (en) Data processor provided with microprocessor and optional calculation unit

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070419

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee