KR20070098688A - Processor apparatus and complex condition processing method - Google Patents

Processor apparatus and complex condition processing method Download PDF

Info

Publication number
KR20070098688A
KR20070098688A KR1020070031101A KR20070031101A KR20070098688A KR 20070098688 A KR20070098688 A KR 20070098688A KR 1020070031101 A KR1020070031101 A KR 1020070031101A KR 20070031101 A KR20070031101 A KR 20070031101A KR 20070098688 A KR20070098688 A KR 20070098688A
Authority
KR
South Korea
Prior art keywords
condition
instruction
branch
register
comparison
Prior art date
Application number
KR1020070031101A
Other languages
Korean (ko)
Other versions
KR100875401B1 (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 엔이씨 일렉트로닉스 가부시키가이샤
Publication of KR20070098688A publication Critical patent/KR20070098688A/en
Application granted granted Critical
Publication of KR100875401B1 publication Critical patent/KR100875401B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30061Multi-way branch instructions, e.g. CASE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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
    • 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/30094Condition code generation, e.g. Carry, Zero flag

Abstract

A processor device and a method for processing a complex condition are provided to realize a fast processing speed by setting the complex condition before a loop process, which repeatedly processes the same condition, and performing conditional branching with one complex conditional branch command in the loop process. A plurality of condition setting comparators(2-4) set the condition set by a condition setting command, and respectively perform comparison corresponding to the condition set by the condition setting command when the complex conditional branch command is executed. A complex conditional branch determiner(7) determines branch to a branch target when the complex conditional branch command by using a result comparing the result of the condition setting comparators with a conditional branch value set by the complex conditional branch command.

Description

프로세서 장치 및 복합 조건 처리 방법{PROCESSOR APPARATUS AND COMPLEX CONDITION PROCESSING METHOD}PROCESSOR APPARATUS AND COMPLEX CONDITION PROCESSING METHOD}

도 1 은 본 발명의 일 실시예의 구성을 나타내는 도면. 1 is a view showing the configuration of an embodiment of the present invention.

도 2 는 본 발명의 일 실시예의 조건 설정 비교부 및 그 관련 부위를 나타내는 도면. 2 is a view showing a condition setting comparison unit and related portions thereof according to an embodiment of the present invention.

도 3 은 본 발명의 일 실시예의 조건 설정 비교부 및 그 관련 부위를 나타내는 도면. 3 is a view showing a condition setting comparison unit and related portions thereof according to an embodiment of the present invention.

도 4 는 본 발명의 일 실시예의 조건 설정 비교부 및 그 관련 부위를 나타내는 도면. 4 is a view showing a condition setting comparison unit and its related portion in one embodiment of the present invention.

도 5 는 본 발명의 일 실시예의 복합 조건 분기 판정부 및 그 관련 부위를 나타내는 도면.Fig. 5 is a diagram showing a compound conditional branch judging section and its related portions in one embodiment of the present invention.

도 6 은 본 발명의 일 실시예에 있어서의 조건 설정 명령 및 복합 조건 분기 명령을 어셈블러 언어로 예시한 도면. 6 is a diagram illustrating a condition setting instruction and a compound condition branch instruction in an assembler language in one embodiment of the present invention.

도 7 은 본 발명의 일 실시예에 있어서의 조건 설정 명령의 동작을 나타내는 타이밍 차트. 7 is a timing chart showing the operation of the condition setting instruction in one embodiment of the present invention;

도 8 은 본 발명의 일 실시예에 있어서의 복합 조건 분기 명령의 동작을 나타내는 타이밍 차트. 8 is a timing chart showing the operation of a compound conditional branch instruction in one embodiment of the present invention;

도 9 (a), 도 9 (b) 는 본 발명의 일 실시예를 설명하기 위한 도면으로서, 복합 조건의 비교 연산 결과와 분기 조건의 비트의 대응을 나타내는 도면.9 (a) and 9 (b) are diagrams for explaining an embodiment of the present invention, and show a correspondence between a comparison operation result of a compound condition and a bit of a branch condition;

도 10 은, 특허 문헌 1 의 복합 조건 처리 방식에 루프 처리를 적용했을 때의 복합 조건 처리 동작을 나타내는 타이밍 차트. 10 is a timing chart showing a compound condition processing operation when loop processing is applied to the compound condition processing method of Patent Document 1. FIG.

부호의 설명Explanation of the sign

1 셀렉터 1 selector

1a 레지스터 Register 1a

1b 셀렉터 1b selector

2, 3, 4 조건 설정 비교부2, 3, 4 condition setting comparison unit

2a, 2b, 3a, 3b, 4a, 4b 디코더2a, 2b, 3a, 3b, 4a, 4b decoder

2c, 2d, 3c, 3d, 4c, 4d 레지스터 (어드레스 레지스터) 2c, 2d, 3c, 3d, 4c, 4d registers (address registers)

2e, 3e, 4e 레지스터 (즉치 레지스터) 2e, 3e, 4e registers (immediate registers)

2f, 3f, 4f 레지스터 (비교기 선택 레지스터) 2f, 3f, 4f registers (comparator select register)

2h, 3h, 4h 비교기 2h, 3h, 4h comparators

5 레지스터5 registers

5a, 5b, 5c 레지스터 5a, 5b, 5c registers

6 연산용 레지스터6 Operation register

7 복합 조건 분기 판정부7 compound condition branch judgment part

7a 레지스터 (분기 조건 값 레지스터) 7a register (branch condition value register)

7b 레지스터 (비교기 선택 레지스터) 7b Register (Comparator Selection Register)

7c 비교기 7c comparator

8 점프처 어드레스 레지스터 8 Jump destination address register

9 셀렉터9 selector

10 프로그램 카운터 10 programmable counters

11 명령 디코더11 command decoder

일본 공개특허공보 평5-274143호Japanese Patent Laid-Open No. 5-274143

본 발명은 명령을 페치, 디코드하여 실행하는 프로세서에 관한 것으로, 특히, 복합 조건 분기 처리의 방법과 장치에 관한 것이다.The present invention relates to a processor for fetching, decoding, and executing instructions, and more particularly, to a method and apparatus for complex conditional branching.

이런 종류의 복합 조건 처리 방식으로서, 예를 들어 특허 문헌 1 에는, 복수의 명령을 병렬 처리하는 구성으로서, 복수의 비교 명령의 실행 결과의 진위값에 따라 독립적으로 또한 병렬로 비트를 세트/리셋트 가능한 플래그 레지스터 수단, 이 플래그 레지스터 수단의 유지 내용과 조건 분기 명령에 의해 지정된 마스크 값의 비트 마다의 논리곱을 취하는 논리곱 수단, 및 논리곱 수단의 출력값이 제로인지 아닌지에 따라 상기 조건 분기 명령이 지정하는 분기처 어드레스 또는 동명령의 다음 명령 어드레스를 다음에 실행해야 할 명령 어드레스로서 선택하는 명령 페치 어드레스 선택 수단을 구비하고, 마스크 값으로 지정된 플래그 레지스터의 각 비트 위치의 비트 상태를 복합 조건으로서 분기를 실행하는지 여부를 결정하는 구성이 개시되어 있다. As this kind of complex condition processing method, for example, Patent Document 1 has a configuration in which a plurality of instructions are processed in parallel, and sets / resets bits independently and in parallel according to the true value of the execution result of the plurality of comparison instructions. The conditional branching instruction specified by the possible flag register means, the logical product means for taking the logical contents of the bits of the mask value designated by the contents of the flag register means and the conditional branch instruction, and whether the output value of the logical product means is zero or not. Instruction fetch address selection means for selecting a branch destination address to be executed or a next instruction address of the same instruction as a next instruction address to be executed, and the branch is set as a compound condition using the bit state of each bit position of the flag register specified by the mask value. A configuration for determining whether to execute is disclosed.

특허 문헌 1 에 기재된 병렬 처리 장치에 있어서는, 비교 명령 디코더를 복수 갖음으로써, 동시에 복수의 비교 명령을 실행하고, 실행 결과를 플래그 레지스터에 저장해 두고, 플래그 레지스터의 상태에 따라 조건 분기한다. In the parallel processing apparatus described in Patent Document 1, by having a plurality of comparison instruction decoders, a plurality of comparison instructions are executed simultaneously, the execution results are stored in a flag register, and conditional branching is performed according to the state of the flag register.

먼저, 특허 문헌 1 에 기재된 복합 조건 처리 방식에 대해 개략적으로 설명한다. 프로그램으로서, C 언어에 의한 프로그램,First, the composite condition processing method described in Patent Document 1 will be described schematically. As a program, a program in C language,

if (X>1 && X<10 && X!=5) if (X > 1 && X <10 && X! = 5)

{복합 조건 성립시의 처리}{Process at the time of establishment of compound condition}

에 대응하는 어셈블러 명령 (컴파일 결과) 을 예로 설명한다. 또한 C 언어의 상기 프로그램은, 3 개의 조건 X>1 과 X<10 과 X!=5 가 모두 성립하고 있는 경우에는 (&& 는 AND 연산을 나타낸다), 다음의 명령, 즉 {복합 조건 성립시의 처리} 가 실행되고, 3 개의 조건 중 1 개라도 불성립할 때에, {복합 조건 성립시의 처리} 를 실행하지 않도록 분기된다. 특허 문헌 1 에 의하면, C 언어의 상기 프로그램의 컴파일 결과는 이하와 같이 된다. The assembler instruction (compile result) corresponding to is described as an example. In addition, in the C language program, if all three conditions X> 1 and X <10 and X! = 5 are satisfied (&& indicates AND operation), the following command, i.e. The processing} is executed, and when any one of the three conditions is not satisfied, the branching is performed so as not to execute the {process at the time of establishing the composite condition}. According to Patent Literature 1, the result of compiling the program in C language is as follows.

SLE X, 1, 0 SGE X, 10, 1 SEQ X, 5, 2 SLE X, 1, 0 SGE X, 10, 1 SEQ X, 5, 2

BNZ 7, $1BNZ 7, $ 1

(복합 조건 성립시의 처리) (Process at the time of compound condition establishment)

$1 : (분기처의 처리) 1: (Treatment of branching)

첫번째의 비교 명령 SLE X, 1, 0, …에 있어서, 복합 조건의 비교 연산을 실 시하고 있다. SLE 비교 명령은 “SLE A, B, C”형식으로 되어 A 와 B 를 비교하고, A<=B 일 때에 플래그 레지스터의 비트 C (0 ∼ 3 비트 중 어느 것) 를 “1”로, 그렇지 않은 경우에“0”으로 세트하는 비교 명령이다. SGE 비교 명령은, “SGE A, B, C”형식으로 되어 A 와 B 를 비교하고, A>=B 일 때에 플래그 레지스터의 비트 C (0 ∼ 3 비트 중 어느 것) 를“1”로, 그렇지 않은 경우에 “0”으로 세트하는 비교 명령이다. SEQ 비교 명령은, “SEQ A, B, C”형식으로 되어 A 와 B 를 비교하고, A=B 일 때에 플래그 레지스터의 비트 C (0 ∼ 3 비트 중 어느 것) 를“1”로, 그렇지 않은 경우에“0”으로 세트하는 비교 명령이다. First comparison instruction SLE X, 1, 0,... In this case, the comparison operation of the compound condition is performed. The SLE comparison instruction is in the form of “SLE A, B, C” and compares A and B. When A <= B, bit C (any of 0 to 3 bits) of the flag register is set to “1”, otherwise In this case, a comparison instruction is set to "0". The SGE comparison instruction is in the form of "SGE A, B, C" and compares A and B. When A> = B, bit C (any of 0 to 3 bits) of the flag register is set to "1", otherwise. If not, it is a comparison command to set to “0”. The SEQ comparison instruction is in the form of "SEQ A, B, C" and compares A and B. When A = B, bit C (any of 0 to 3 bits) of the flag register is set to "1", and is not. In this case, a comparison instruction is set to "0".

두번째의 조건 분기 명령 BNZ 7, $1 에서는, 복합 조건의 비교 연산 결과와, 분기 조건 값 (마스크 값) “7”의 비트 연산을 실시하고, 조건이 불성립이면 어드레스 $1 로 점프한다. BNZ 조건 분기 명령은,“BNZ M, L”형식으로 되어 M (4 비트 마스크 값) 과 플래그 레지스터의 대응 비트의 논리곱을 취하고, 제로 판정 회로는, 논리곱 결과가 모두 “0”인지 여부를 판정하여 모두“0”인 경우에 “1”, 그렇지 않으면“0”을 출력하고, 제로 판정 회로의 출력 신호 (제로/비제로 판정 결과) 를 분기 성립/분기 불성립 신호로서 출력하고, 분기 성립시, L 이 지정하는 어드레스로 분기한다. 또한, BNZ 7, $1 에 있어서 마스크 값은 “0111”이며, 플래그 레지스터의 비트 0 ∼ 3 중 비트 0 ∼ 2 의 값에 따른 조건 분기를 실시한다. In the second condition branch instruction BNZ 7, # 1, a bit operation is performed on the result of the comparison operation of the compound condition and the branch condition value (mask value) "7". If the condition is not satisfied, the jump jumps to the address # 1. The BNZ condition branch instruction takes the logical product of M (4-bit mask value) and the corresponding bit of the flag register in the form of "BNZ M, L", and the zero determination circuit determines whether the result of the logical product is all "0". If it is all "0", it outputs "1", otherwise "0", outputs the output signal of the zero determination circuit (zero / non-zero determination result) as branch establishment / branch establishment signal, and when branch establishment, Branch to the address specified by L. In BNZ7 and # 1, the mask value is "0111", and conditional branching is performed in accordance with the value of bits 0 to 2 of bits 0 to 3 of the flag register.

이와 같이, 비교 명령 SLE X, 1, 0, …과, 조건 분기 명령 BNZ 의 2 개의 명령을 사용하고 있다. Thus, the comparison instruction SLE X, 1, 0,... And two instructions of the conditional branch instruction BNZ.

이 프로그램 예에서는, 값 X (레지스터에 상당) 에 대한 3 개의 비교 조건 (X>1, X<10, X!=5) 중 1 개라도 불성립일 때에, 즉 어셈블러 코드에 의하면 3 개의 비교 조건 (X<=1, X>10, X=5) 중 어느 1 개라도 성립했을 때에,$1 로 점프하는 경우를 나타내고 있는데, 비교 결과의 반전을 실시함으로써 모두 0R 조건으로 할 수도 있다. In this program example, if any one of the three comparison conditions (X> 1, X <10, X! = 5) for the value X (equivalent to the register) is not established, that is, according to the assembler code, three comparison conditions ( When any one of X <= 1, X10, X = 5) is satisfied, the case of jumping to $ 1 is shown. However, by inverting the comparison result, all of them may be set to 0R condition.

특허 문헌 1 에 기재된 복합 조건 처리 방식은, 복합 조건을 1 회만 연산하는 경우에는 특별한 문제는 발생하지 않는다. 그러나, 동일한 조건을 반복 실행하는 루프 처리에 사용하려고 했을 경우에 이하와 같은 문제점을 갖고 있다.In the complex condition processing method described in Patent Document 1, no particular problem occurs when the compound condition is calculated only once. However, the following problems have arisen when attempting to use the same condition for loop processing to repeatedly execute the same condition.

제 1 문제점은, 복합 조건의 비교 명령과 조건 분기 명령을 세트로 실행할 필요가 있기 때문에, 매회, 조건 분기 처리에 2 단계분의 실행 사이클이 필요해진다는 것이다. 이 점에 대하여 이하에 설명한다. The first problem is that it is necessary to execute the comparison instruction and the condition branch instruction of the compound condition in a set, so that each time execution condition for the condition branch processing requires two execution cycles. This point will be described below.

특허 문헌 1 에 기재된 복합 조건 처리 방식에서는, 도 10 (a) 에 나타내는 바와 같이 2 명령분의 사이클 수가 필요하다. 도 10 (a) 의 예에서는, 1 회당, 비교 명령 (SLE X, 1, 0, …) 과 조건 분기 명령 (BNZ) 의 2 명령분의 6 사이클 (F (명령 페치), D (디코드), EX (실행), F, D, EX) 을 필요로 한다 (도 10 의 10-1, 및 10-2 참조). 복합 조건의 비교 명령 (SLE X, 1, 0, …) 에서는, 복합 조건의 각 조건에 대응하는 비교 연산을 병렬 실행하고, 비교 연산 결과를 플래그 레지스터의 지정 비트에 설정하고, 조건 분기 명령 (BNZ) 에서는 플래그 레지스터의 값과 마스크 값의 논리 연산 결과에 기초하여 분기 판정을 한다. 이와 같이, 특 허 문헌 1 에 기재된 복합 조건 처리 방식에 있어서는, 명령이 비교 명령과 조건 분기 명령의 2 개로 나누어져 있기 때문에, 명령 페치와 명령 디코드의 사이클이 적어도 2 회 필요해지고, 사이클 수가 증가하고, 루프 처리에서의 사이클 수의 증대가 현저하게 되어 율속 (律速) 요인이 된다. In the complex condition processing method described in Patent Document 1, as shown in Fig. 10A, the number of cycles for 2 instructions is required. In the example of FIG. 10 (a), six cycles (F (fetch instruction), D (decode), for two instructions of the comparison instruction (SLE X, 1, 0, ...) and the conditional branch instruction (BNZ) per one time), EX (execute), F, D, EX) (see 10-1 and 10-2 of FIG. 10). In the comparison instruction (SLE X, 1, 0, ...) of the compound condition, the comparison operation corresponding to each condition of the compound condition is executed in parallel, the result of the comparison operation is set in the designated bit of the flag register, and the conditional branch instruction (BNZ ) Makes branch determination based on the logical operation result of the flag register value and the mask value. As described above, in the complex condition processing method described in Patent Document 1, since the instruction is divided into two, a comparison instruction and a condition branch instruction, the instruction fetch and instruction decode cycles are required at least twice, and the number of cycles increases. As a result, the increase in the number of cycles in the loop processing becomes remarkable, which becomes a factor of the rate.

제 2 문제점은, 특허 문헌 1 에 기재된 복합 조건 처리 방식에 있어서는, 비교 명령은 복합 조건을 모두 1 명령으로 병렬 실행하는 구성으로 되어 있고, 복수의 조건을 나타내기 위하여 명령 길이가 길어진다는 것이다. The second problem is that in the compound condition processing method described in Patent Document 1, the comparison instruction has a configuration in which all of the compound conditions are executed in parallel in one instruction, and the instruction length is long to indicate a plurality of conditions.

예를 들어, 비교 명령For example, compare command

SLE X, 1, 0 SGE X, 10, 1 SEQ X, 5, 2 SLE X, 1, 0 SGE X, 10, 1 SEQ X, 5, 2

에 있어서,To

·명령 코드를 8 비트 (256 종류까지의 명령을 갖는 프로세서로 가정), 8-bit instruction code (assuming a processor with up to 256 instructions),

·비교기의 종류는 6 종류이기 때문에, 비교기의 종류의 선택에 3 비트,Because there are six types of comparators, 3 bits for the selection of the types of comparators,

·오퍼랜드 X 는, 16 개의 레지스터로부터 1 개를 선택하는 것으로 하면, 레지스터 선택용으로 4 비트,If the operand 것으로 selects one from 16 registers, 4 bits,

·오퍼랜드의 조건 값 (예를 들어“SLE X, 1, 0”의 1 은, 비교 조건 X<=1 에 있어서의 우변의 1 에 대응한다) 을 0 ∼ 15 까지 지정할 수 있는 것으로서 4 비트,The operand value (for example, 1 in “SLE X, 1, 0” corresponds to 1 on the right side in the comparison condition X <= 1)) can be specified from 0 to 15, 4 bits,

·오퍼랜드의 플래그 레지스터 내의 비트 위치 지정 (비트 0 ∼ 3 중 어느 것) 을 2 비트로 하면, 합계로, If the bit position designation (any of bits 0 to 3) in the flag register of the operand is 2 bits,

8+4+(3+4+2)×3=39 비트 필요해진다 (표 1 참조).8 + 4 + (3 + 4 + 2) × 3 = 39 bits are required (see Table 1).

명령 코드Command code 레지스터register 비교기 0Comparator 0 조건 값 0Condition value 0 플래그 비트 1Flag bit 1 비교기1Comparator 1 조건 값 1Condition value 1 플래그 비트 2Flag bit 2 비교기 2Comparator 2 조건 값 2Condition value 2 플래그 비트 3Flag bit 3 8비트8 bit 4비트4 bit 3비트3 bit 4비트4 bit 2비트2 bit 3비트3 bit 4비트4 bit 2비트2 bit 3비트3 bit 4비트4 bit 2비트2 bit LELE 1One 00 GEGE 1010 1One EQEQ 55 22 XXXX XXXXXXXX XXXX XXXXXXXX 011011 00010001 0000 101101 10101010 0101 000000 01010101 1010

이와 같이 명령 길이가 길어지는 것은, 특허 문헌 1 의 병렬 처리 장치에서는 복합 조건을 모두 1 명령으로 지정하고 있기 때문이다.      The instruction length is thus long because the parallel processing apparatus of Patent Document 1 designates all complex conditions as one instruction.

과제를 해결하기 위한 수단Means to solve the problem

본원에서 개시되는 발명은, 상기 과제를 해결하기 위하여 개략 이하의 구성으로 된다. The invention disclosed in the present application has a schematic structure as follows in order to solve the above problems.

본 발명의 1 개의 애스펙트 (측면) 에 관련되는 장치는, 명령 세트에, 조건 성립의 유무에 따라 분기처로 분기/비분기하는 조건 분기 명령과, 상기 조건을 설정하는 조건 설정 명령을 포함하고, 상기 조건 설정 명령의 실행시에, 상기 조건 설정 명령으로 지정된 조건을 설정하는 회로를 구비하고, 상기 회로에서는 상기 조건에 대응하는 비교 연산은 실시하지 않고, 상기 조건 분기 명령의 실행시, 상기 조건 설정 명령에 의해 미리 설정된 상기 조건에 대응하는 비교 연산을 실시하고, 상기 비교 연산 결과에 기초하여 분기처로 분기하는지 여부를 판정하는 회로를 구비하고 있다. 본 발명에 있어서, 상기 조건 분기 명령이, 분기 판정용으로, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 분기 조건 명령으로 이루어지고, 복수의 상기 조건 설정 명령을 실행함으로써 상기 복합 조건의 각 조건이 설정되고, 상기 복합 조건 분기 명령의 실행시, 상기 조건 분기 명령에 의해 미리 설 정된 복수의 조건의 각각에 대응하는 비교 연산이 병렬 실행되고, 비교 연산 결과에 기초하여 분기 판정을 실시하고, 상기 복합 조건에 의한 조건 분기 처리를 1 개의 복합 조건 분기 명령으로 실행할 수 있도록 하고 있다. An apparatus according to one aspect (side) of the present invention includes a condition branch instruction for branching / non-branching to a branch destination in accordance with the presence or absence of a condition, and a condition setting instruction for setting the condition in the instruction set. A circuit for setting a condition specified by the condition setting command when the condition setting command is executed, wherein the circuit does not perform a comparison operation corresponding to the condition; and when the condition branch instruction is executed, the condition setting command And a circuit for performing a comparison operation corresponding to the above condition set in advance and for branching to a branch destination based on the result of the comparison operation. In the present invention, the conditional branch instruction is a compound branching condition instruction including a compound condition consisting of a plurality of conditions for branch determination, and each condition of the compound condition is executed by executing the plurality of condition setting instructions. When the compound condition branch instruction is set, a comparison operation corresponding to each of a plurality of conditions preset by the condition branch instruction is executed in parallel, and branching is performed based on the result of the comparison operation. Conditional branching by condition can be executed in one compound conditional branch instruction.

본 발명의 다른 애스펙트 (측면) 에 관련되는 장치는, 명령 세트로서, 1 개 또는 복수의 조건의 각각에 대응하는 비교 연산을 실시하고, 상기 비교 연산의 결과와, 지정한 분기 조건 값 사이에서의 비교 연산에 기초하여 지정한 분기처로 분기하는 복합 조건 분기 명령과, 1 개의 상기 조건을 설정하는 조건 설정 명령을 포함하고, 상기 조건 설정 명령의 실행에 의해 선택되어 상기 조건 설정 명령으로 지정된 조건이 설정되고, 상기 복합 조건 분기 명령의 실행시에 상기 조건 설정 명령으로 설정된 조건에 대응하는 비교 연산을 각각 실행하는 복수의 조건 설정 비교부와, An apparatus according to another aspect (side) of the present invention, as an instruction set, performs a comparison operation corresponding to each of one or a plurality of conditions, and compares the result of the comparison operation with a specified branch condition value. A compound condition branch instruction for branching to a specified branch destination based on the operation, and a condition setting instruction for setting one of the above conditions, wherein a condition selected by execution of the condition setting instruction and designated by the condition setting instruction is set, A plurality of condition setting comparison sections each executing a comparison operation corresponding to a condition set by the condition setting command when the compound condition branch instruction is executed;

상기 복합 조건 분기 명령의 실행시에, 복수의 상기 조건 설정 비교부에서 각각 실시되는 비교 연산의 결과와, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건 값을 비교한 결과를 사용하여, 상기 분기처로 분기하는지 여부를 판정하는 복합 조건 분기 판정부를 구비하고 있다. At the time of execution of the compound condition branch instruction, branching to the branch destination is performed using a result of comparison operation performed in each of the plurality of condition setting comparison sections with the result of comparing the branch condition value specified by the compound condition branch instruction. It is provided with the compound condition branch determination part which determines whether or not.

본 발명에 있어서, 상기 조건 설정 명령은, 오퍼랜드에 상기 조건 설정 비교부의 지정과, 비교 연산의 종별과, 비교 대상의 연산용 레지스터의 2 개의 레지스터, 또는 상기 연산용 레지스터의 1 개의 레지스터와 즉치 데이터를 포함한다.In the present invention, the condition setting instruction includes an operand designation of the condition setting comparison section, a type of comparison operation, two registers of the calculation register to be compared, or one register and immediate data of the calculation register to be compared. It includes.

본 발명에 있어서, 상기 복합 조건 분기 명령은, 오퍼레이션 코드에 비교 연산의 종별을 포함하고, 오퍼랜드에 상기 분기 조건 값과, 상기 분기처를 포함한다.In the present invention, the compound condition branch instruction includes a type of comparison operation in an operation code, and includes the branch condition value and the branch destination in an operand.

본 발명에 있어서, 상기 조건 설정 비교부는, 비교 대상인 2 개의 연산용 레지스터의 어드레스 정보를 저장하는 제 1 및 제 2 어드레스 레지스터, 즉치 데이터를 저장하는 즉치 레지스터, 비교 연산의 종별을 저장하는 비교기 선택 레지스터, 및 비교기를 구비하고, 상기 조건 설정 명령의 실행에 의해, 상기 제 1 및 제 2 어드레스 레지스터, 또는 상기 제 1 어드레스 레지스터 및 상기 즉치 레지스터와, 상기 비교기 선택 레지스터의 각 레지스터의 값이 설정되고, 상기 복합 조건 분기 명령의 실행에 의해, 상기 제 1 및 제 2 어드레스 레지스터, 또는 상기 제 1 어드레스 레지스터의 지정으로 지정된 상기 연산용 레지스터가 판독되고, 상기 제 1 및 제 2 어드레스 레지스터에서 판독된 2 개의 상기 연산용 레지스터의 값, 또는 상기 제 1 어드레스 레지스터의 지정으로 판독된 상기 연산용 레지스터의 값 및 상기 즉치 데이터가, 상기 비교기에서 비교된다. In the present invention, the condition setting comparison section includes: first and second address registers for storing address information of two operation registers to be compared, an immediate register for storing immediate data, and a comparator selection register for storing types of comparison operations. And a comparator, and by executing the condition setting instruction, values of the first and second address registers, or the first address register and the immediate register, and each register of the comparator selection register are set; By the execution of the compound condition branch instruction, the arithmetic register designated by the designation of the first and second address registers or the first address register is read, and the two read registers are read from the first and second address registers. A value of the operation register or designation of the first address register The value of the operation register and the immediate data read as are compared in the comparator.

본 발명에 있어서, 상기 복수의 조건 설정 비교부의 비교 연산 결과를 각각 보존하는 복수의 레지스터를 구비하고 있다. In the present invention, a plurality of registers for storing the results of comparison operations of the plurality of condition setting comparison units are provided.

본 발명에 있어서, 상기 복합 조건 분기 판정부는, 상기 복합 조건 분기 명령을 디코드하는 명령 디코더로부터의 출력을 받아, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건 값을 기억하는 제 1 레지스터와, 비교 연산의 종류를 기억하는 제 2 레지스터와, 상기 복수의 조건 설정 비교부의 비교 연산 결과를 각각 보존하는 상기 복수의 레지스터의 출력과, 상기 제 1 레지스터에서 지정된 분기 조건 값에 관하여, 상기 제 2 레지스터에서 지정된 비교 연산을 실시하여 비교 결과를 출력하는 비교기를 구비하고 있다. In the present invention, the compound condition branch determination unit receives an output from an instruction decoder that decodes the compound condition branch instruction, and stores a first register configured to store the branch condition value designated by the compound condition branch instruction, and a comparison operation. A second register that stores a type, an output of the plurality of registers each storing a result of comparison operation of the plurality of condition setting comparison units, and a comparison specified in the second register with respect to branch condition values specified in the first register; A comparator for performing a calculation and outputting a comparison result is provided.

본 발명에 있어서, 명령 디코더에 의한 상기 조건 설정 명령의 디코드 결과에 기초하여, 상기 조건 설정 명령으로 지정된 상기 조건 설정 비교부를 선택하는 셀렉터를 구비하고 있다. In the present invention, a selector for selecting the condition setting comparison unit designated by the condition setting command is provided on the basis of the decoding result of the condition setting command by the command decoder.

상기 명령 디코더에서 디코드된 복합 조건 분기 명령으로 지정된 점프처 어드레스를 저장하는 점프처 어드레스 레지스터와, 상기 복합 조건 분기 판정부로부터 출력된 결과의 진위값을 받아, 진(眞)인 경우에는 점프처 어드레스를 선택하고, 위(僞)인 경우에는 프로그램 카운터의 값 + 1 의 어드레스를 선택하여 프로그램 카운터에 설정하는 셀렉터를 추가로 구비하고 있다. A jump destination address register for storing a jump destination address designated by a compound condition branch instruction decoded by the instruction decoder, and an authenticity value of the result output from the compound condition branch determination unit, and a jump destination address if the result is true; Is selected, and in the above case, a selector for selecting the address of the program counter value + 1 and setting the program counter is set.

본 발명의 다른 애스펙트에 관련되는 방법은, 프로세서에 있어서의 조건 분기의 처리 방법으로서, 명령 세트에 조건 성립의 유무에 따라 분기처로 분기/비분기하는 조건 분기 명령과, 상기 조건을 설정하는 조건 설정 명령을 포함하고,A method related to another aspect of the present invention is a method of processing a conditional branch in a processor, comprising: a conditional branching instruction branching / non-branching to a branching destination according to whether or not a condition is established in an instruction set, and a condition setting for setting the condition Contains instructions,

(a) 상기 조건 설정 명령의 실행시에, 상기 조건 설정 명령으로 지정된 조건을 설정하고, 상기 조건에 대응하는 비교 연산은 실시하지 않고,(a) At the time of execution of the condition setting command, sets a condition specified by the condition setting command and does not perform a comparison operation corresponding to the condition;

(b) 상기 조건 분기 명령의 실행시, 상기 조건 설정 명령에 의해 미리 설정된 상기 조건에 대응하는 비교 연산을 실시하고, 상기 비교 연산 결과에 기초하여 분기처로 분기하는지 여부를 판정하는 상기 각 단계를 갖는다. (b) each step of executing a comparison operation corresponding to the condition preset by the condition setting instruction when executing the conditional branch instruction, and determining whether to branch to a branch destination based on the result of the comparison operation. .

본 발명에 관련된 방법에 있어서, 상기 조건 분기 명령은 분기 판정용으로, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 분기 조건 명령으로 이루어지고, 복수의 상기 조건 설정 명령을 실행함으로써 상기 복합 조건의 각 조건이 설정되고, 상기 복합 조건 분기 명령의 실행시, 상기 조건 분기 명령에 의해 미리 설정된 복수의 조건의 각각에 대응하는 비교 연산이 병렬로 실행되고, 비교 연산 결과에 기초하여 분기 판정을 실시하고, 상기 복합 조건에 의한 조건 분기 처리를 1 개의 복합 조건 분기 명령으로 실행할 수 있도록 하고 있다. In the method according to the present invention, the conditional branching instruction is made up of a compound branching conditional instruction including a compounding condition consisting of a plurality of conditions for branch determination, and executing each of the plurality of conditional setting instructions to execute each of the complexing conditionalities. When a condition is set and the compound condition branch instruction is executed, a comparison operation corresponding to each of a plurality of conditions preset by the condition branch instruction is executed in parallel, and branching is performed based on the result of the comparison operation, Conditional branching based on the compound condition can be executed by one compound conditional branch instruction.

발명을 실시하기To practice the invention 위한 최선의 형태 Best form for

상기한 본 발명에 대하여 더욱 상세하게 설명하기 위하여 첨부 도면을 참조하여 이하에 설명한다. The present invention described above will be described below with reference to the accompanying drawings in order to explain in more detail.

본 발명은 축차 실행형 컴퓨터에 적용되고, 분기 판정에서 사용되는 비교 조건을 설정하는 조건 설정 명령을 형성하고, 이 조건 설정 명령을 복합 조건 분기 명령에 앞서 실행함으로써 복합 조건을 구성하는 복수의 비교 조건을 사전에 설정한다. 복합 조건 분기 명령의 실행시, 이 설정된 복합 조건의 각 조건에 대응하는 비교 연산을 실시하고, 비교 연산한 결과와, 명령 코드로 지정한 분기 조건 값을 비교한 결과를 사용하여, 분기하는지 여부를 판정하는 수단을 구비하고 있다.The present invention is applied to a sequential execution type computer, forms a condition setting instruction for setting a comparison condition used in branch determination, and executes this condition setting instruction in advance of the compound condition branch instruction to form a plurality of comparison conditions. Set in advance. When executing the compound condition branch instruction, a comparison operation corresponding to each condition of the set compound condition is performed, and it is determined whether to branch using the result of the comparison operation and the result of comparing the branch condition value specified by the instruction code. It is provided with a means.

보다 상세하게는, 본 발명의 바람직한 형태의 처리 장치는, 명령 세트로서 분기 판정에 사용되는 비교 조건을 설정하는 조건 설정 명령 (오퍼레이션 코드 : SETCMP) 과, 상기 조건 설정 명령으로 설정된 비교 조건에 대응하는 비교 연산을 실행하고, 상기 비교 연산의 결과와, 지정한 분기 조건 값 사이에서의 비교 연산에 기초하여, 지정한 분기처로 분기하는지 여부를 판정하는 복합 조건 분기 명령 (오퍼레이션 코드 : XBEQ, XBNE, XBL, XBLE, XBG, XBGE) 을 포함한다. 본 발명은 조건 설정 명령의 실행에 의해 선택되고, 상기 조건 설정 명령으로 지정된 비교 조건 (비교 연산의 종별, 비교 대상의 레지스터, 혹은 레지스터와 즉치 데이터) 이 설정되고, 상기 복합 조건 분기 명령의 실행시에, 상기 조건 설정 명령으로 설정된 비교 조건에 대응하는 비교 연산을 각각 실행하는 복수의 조건 설정 비교부 (도 1 의 2, 3, 4 참조) 와, 상기 복합 조건 분기 명령의 실행시, 복수의 상기 조건 설정 비교부에서의 비교 연산 결과와, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건 값을 비교한 결과를 사용하여, 상기 분기처로 분기하는지 여부를 판정하는 복합 조건 분기 판정부 (도 1 의 7) 를 구비하고 있다. More specifically, the processing apparatus of a preferred embodiment of the present invention corresponds to a condition setting instruction (operation code: SETCMP) for setting a comparison condition used for branch determination as an instruction set, and a comparison condition set in the condition setting instruction. A compound condition branch instruction (operation code: XBEQ, XBNE, XBL, XBLE) that executes a comparison operation and determines whether to branch to a specified branch destination based on a comparison operation between the result of the comparison operation and the specified branch condition value. , XBG, XBGE). The present invention is selected by execution of a condition setting instruction, and a comparison condition (the type of comparison operation, a register to be compared, or a register and immediate data) designated by the condition setting instruction is set, and at the time of executing the compound condition branch instruction. And a plurality of condition setting comparison units (see 2, 3, and 4 of FIG. 1) each executing a comparison operation corresponding to the comparison condition set by the condition setting command, and a plurality of the above when executing the complex condition branch instruction. A compound condition branch determination unit (7 of FIG. 1) that determines whether to branch to the branch destination using the result of the comparison operation in the condition setting comparison unit and the result of comparing the branch condition value specified by the compound condition branch instruction. Equipped with.

본 발명에 있어서, 조건 설정 명령 (SETCMP) 은 오퍼랜드에, 상기 조건 설정 비교부의 지정과, 비교 연산의 종별과, 비교 대상의 연산용 레지스터의 2 개의 레지스터, 또는 상기 연산용 레지스터의 1 개의 레지스터와 즉치 데이터를 포함한다.In the present invention, the condition setting instruction (SETCMP) is operable to specify the condition setting comparison section, the type of the comparison operation, two registers of the calculation registers to be compared, or one register of the calculation registers; Contains immediate data.

본 발명에 있어서, 상기 복합 조건 분기 명령은, 오퍼레이션 코드에 비교 연산의 종별을 포함하고, 오퍼랜드에 상기 분기 조건 값과 상기 분기처를 포함한다. In the present invention, the compound condition branch instruction includes a type of comparison operation in an operation code, and includes the branch condition value and the branch destination in an operand.

본 발명에 있어서 각 조건 설정 비교부는, 도 2 를 참조하면, 연산용 레지스터 (6) 의 2 개의 레지스터의 어드레스 정보를 각각 저장하는 제 1 및 제 2 어드레스 레지스터 (2c, 2d), 제 1 및 제 2 어드레스 레지스터 (2c, 2d) 의 어드레스를 각각 디코드하는 제 1 및 제 2 디코더 (2a, 2b), 즉치 데이터를 저장하는 즉치 레지스터 (2e), 비교 연산의 종별을 저장하는 비교기 선택 레지스터 (2f), 및 비교기 (2h) 를 구비하고, 조건 설정 명령 (SETCMP) 의 실행에 의해, 제 1 및 제 2 어드레스 레지스터 (2c, 2d) 와, 즉치 레지스터 (2e) 와, 비교기 선택 레지스터 (2f) 의 각 레지스터의 값이 설정되고, 복합 조건 분기 명령의 실행에 의해, 제 1 및 제 2 어드레스 레지스터 (2c, 2d) 의 어드레스를 각각 디코드하는 제 1 및 제 2 디코더 (2a, 2b) 에 의해 선택된 연산용 레지스터 (6) 의 2 개의 레지스터가 판독되고, 판독된 이 2 개의 레지스터의 값이 비교기 (2h) 에서 비교되거나, 혹은 예를 들어 제 1 어드레스 레지스터 (2c) 의 어드레스를 디코드하는 제 1 디코더 (2a) 에 의해 선택된 연산용 레지스터 (6) 의 1 개의 레지스터가 판독되고, 판독된 이 1 개 레지스터의 값과, 즉치 데이터가 비교기 (2h) 에서 비교된다. In the present invention, each condition setting comparison section, referring to Fig. 2, includes first and second address registers 2c and 2d, first and second for storing address information of two registers of the operation register 6, respectively. First and second decoders 2a and 2b for decoding the addresses of the two address registers 2c and 2d, respectively, an immediate register 2e for storing immediate data, and a comparator selection register 2f for storing the type of comparison operation. And a comparator 2h, each of the first and second address registers 2c and 2d, the immediate register 2e, and the comparator selection register 2f by executing the condition setting instruction SETCMP. For the operation selected by the first and second decoders 2a and 2b which set the value of the register and decode the addresses of the first and second address registers 2c and 2d by execution of the compound conditional branch instruction, respectively. Two registers in register (6) Registers are read, and the values of these two registers read are compared in the comparator 2h, or an arithmetic register selected by the first decoder 2a for decoding the address of the first address register 2c, for example. One register of (6) is read, and the value of this read one register and immediate data are compared in the comparator 2h.

본 발명에 있어서, 복수의 조건 설정 비교부 (도 1 의 2, 3, 4) 의 비교 연산 결과를 각각 보존하는 복수의 레지스터 (도 1 의 5a, 5b, 5c) 를 구비하고 있다. In the present invention, a plurality of registers (5a, 5b, and 5c in Fig. 1) are provided to respectively store the results of comparison operations of the plurality of condition setting comparison units (2, 3, and 4 in Fig. 1).

본 발명에 있어서 복합 조건 분기 판정부 (도 1 의 7) 는, 도 5 를 참조하면, 복합 조건 분기 명령을 디코드하는 명령 디코더 (11) 로부터의 출력을 받고, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건 값을 기억하는 제 1 레지스터 (7a) 와, 비교 연산의 종류를 기억하는 제 2 레지스터 (7b) 와, 복수의 조건 설정 비교부 (2, 3, 4) 의 비교 연산 결과를 각각 기억하는 복수의 레지스터 (5a, 5b, 5c) 의 출력과, 제 1 레지스터 (7a) 에서 지정된 분기 조건 값에 관하여, 제 2 레지스터 (7b) 에서 지정된 비교 연산을 실시하여 비교 결과를 출력하는 비교기 (7c) 를 구비하고 있다. In the present invention, referring to FIG. 5, the compound condition branch determination unit (7 in FIG. 1) receives the output from the instruction decoder 11 for decoding the compound condition branch instruction, and the branch designated by the compound condition branch instruction. A plurality of registers each storing a comparison operation result of the first register 7a storing a condition value, a second register 7b storing a kind of comparison operation, and a plurality of condition setting comparison sections 2, 3, and 4, respectively. A comparator 7c which performs a comparison operation specified in the second register 7b and outputs a comparison result with respect to the outputs of the registers 5a, 5b, and 5c of the first register 7a and the branch condition value specified in the first register 7a. Equipped.

본 발명에 있어서, 명령 디코더 (도 1 의 11) 에 의한 상기 조건 설정 명령의 디코드 결과에 기초하여, 상기 조건 설정 명령으로 지정된 조건 설정 비교부를 선택하는 셀렉터 (도 1 의 1) 를 구비하고 있다. 본 발명에 있어서는, 상기 명령 디코더에서 디코드된 복합 조건 분기 명령으로 지정된 점프처 어드레스를 저장 하는 점프처 어드레스 레지스터 (도 1 의 8) 와, 상기 복합 조건 분기 판정부 (도 1 의 7) 로부터 출력된 비교 결과를 받아, 비교 결과가 진인 경우에는 점프처 어드레스를 선택하고, 위인 경우에는 복합 조건 분기 명령의 다음 명령의 어드레스, 즉 현재의 프로그램 카운터의 값 + 1 의 어드레스를 선택하여, 프로그램 카운터 (도 1 의 10) 에 설정하는 셀렉터 (도 1 의 9) 를 구비하고 있다. In the present invention, a selector (1 in Fig. 1) is provided for selecting a condition setting comparison unit designated by the condition setting command based on the decoding result of the condition setting command by the command decoder (11 in Fig. 1). In the present invention, a jump destination address register (8 in FIG. 1) for storing a jump destination address designated by a compound condition branch instruction decoded by the instruction decoder and output from the compound condition branch determination unit (7 in FIG. 1). When the comparison result is received, if the comparison result is true, the jump destination address is selected. In the above case, the address of the next instruction of the compound condition branch instruction, that is, the address of the value + 1 of the current program counter, is selected. The selector (9 of FIG. 1) set to 10 of 1 is provided.

상기 특허 문헌 1 에 기재된 종래의 복합 조건 처리 방식에 있어서는, 비교 명령과, 조건 분기 명령의 2 개의 명령의 조합으로 실행하고 있던 조건 분기 처리를, 본 발명은 1 개의 복합 조건 분기 명령으로 실행할 수 있도록 하고 있다. 이 때문에, 동일 조건의 처리를 반복 실행하는 처리에 적용하는 경우에, 루프 처리의 직전에 복합 조건을 설정해 두고, 루프 처리 내에서는 복합 조건 분기 명령 1 개로 조건 분기할 수 있다. 즉, 본 발명에 의하면, 종래의 복합 조건 처리 방식과 같이 2 개의 명령으로 조건 분기하는 경우보다, 고속 처리를 실현할 수 있다.In the conventional compound condition processing method described in the patent document 1, the present invention can execute the condition branch processing performed by a combination of two instructions, a comparison instruction and a condition branch instruction, in one compound condition branch instruction. Doing. For this reason, when applying the process of the same condition to the process which repeatedly executes, a compound condition is set just before a loop process, and condition branching can be carried out by one compound condition branch instruction in a loop process. That is, according to the present invention, high-speed processing can be realized as compared with the case of conditional branching with two instructions as in the conventional complex condition processing method.

본 발명에 의하면, 동일 조건의 처리를 반복 실행하는 횟수가 많을수록 처리 성능의 향상 효과가 커진다. According to the present invention, the greater the number of times of repeating the processing under the same conditions, the greater the effect of improving the processing performance.

또 본 발명에 의하면, 조건 설정 명령은, 1 개의 명령에 대하여 1 개의 조건을 설정할 뿐이기 때문에, 종래의 복합 조건 처리 방식과 같이, 동시에 복수의 조건을 설정하는 경우와 비교하여 명령 길이를 줄일 수 있다. 이 때문에, 명령 메모리의 버스 폭이 비교적 좁은 시스템에 있어서도 적용이 용이한 것을 특징으로 한다. According to the present invention, since the condition setting command only sets one condition for one command, the instruction length can be shortened as compared with the case of setting a plurality of conditions at the same time as in the conventional compound condition processing method. have. Therefore, the present invention is characterized in that it is easy to apply even in a system with a relatively narrow bus width of the instruction memory.

이하, 본 발명과 특허 문헌 1 등의 종래의 복합 조건 처리 방식을 비교하여 설명한다. 종래 방식에서는, 1 회당 6 사이클 걸리는데 반해, 본 발명에 의하면, 1 명령으로 조건 분기할 수 있기 때문에 4 사이클로 된다. 반복 횟수가 2 ∼ 3 회인 경우, 본 발명에서는, 미리 조건 설정 명령의 실행 단계가 있는 만큼 실행 사이클 수는 많아지지만, 종래의 복합 조건 처리 방식과 같이, 동시에 복수의 조건 설정을 1 개의 명령으로 실행할 수 있는 병렬 시스템이면 1 명령으로 실현할 수도 있고, 이 경우에는 반복 실행이 없어도 종래의 복합 조건 처리 방식과 동일한 단계 수로 할 수 있게 된다.Hereinafter, it compares and demonstrates conventional complex condition processing methods, such as this invention and patent document 1. According to the present invention, the conventional method takes 6 cycles, but according to the present invention, since it can conditionally branch in one instruction, the cycle becomes four cycles. When the number of repetitions is two to three times, in the present invention, the number of execution cycles increases as long as there is an execution step of the condition setting instruction in advance. A parallel system can be realized with one instruction. In this case, the number of steps can be the same as that of the conventional complex condition processing method without repeated execution.

또, 본 발명에 있어서는, 하나 하나의 조건마다에, 각각 특정한 레지스터나 즉치 데이터를 지정할 수 있다. 이 기능을 종래의 복합 조건 처리 방식에 적용하면, 레지스터를 지정하는 비트 수가 2 개분 증가하고, 레지스터의 지정을 4 비트로 하면 합계로 39+4×2=47 비트가 된다 (표 2 참조). In the present invention, specific registers and immediate data can be designated for each one condition. When this function is applied to the conventional compound condition processing method, the number of bits for designating a register is increased by two, and if the designation of registers is 4 bits, the total becomes 39 + 4 x 2 = 47 bits (see Table 2).

명령 코드Command code 레지스터 0Register 0 비교기 0Comparator 0 조건 값 0Condition value 0 플래그 비트 1Flag bit 1 레지스터 1Register 1 비교기 1Comparator 1 조건 값 1Condition value 1 플래그 비트 2Flag bit 2 레지 스터 2Register 2 비교기 2Comparator 2 조건 값 2Condition value 2 플래그비트 3Flag bit 3 8비트8 bit 4비트4 bit 3비트3 bit 4비트4 bit 2비트2 bit 4비트4 bit 3비트3 bit 4비트4 bit 2비트2 bit 4비트4 bit 3비트3 bit 4비트4 bit 2비트2 bit r1r1 LELE 1One 00 r2r2 GEGE 1010 1One R3R3 EQEQ 55 22 XXXX XXXXXXXX XXXX 00010001 011011 00010001 0000 00100010 101101 10101010 0101 011011 000000 01010101 010010

명령 메모리의 버스 폭이 예를 들어 32 비트인 경우, 표 3 과 같이 1 명령이, 명령 메모리의 어드레스가 2 개분에 걸쳐지기 때문에, 도 10 (b) 의 10b -1 에 나타낸 바와 같이, 2 회의 명령 페치가 필요해지고, 명령 페치 사이클이 증가하여, 복합 조건 비교 명령의 실행 속도가 그 만큼 저하된다. When the bus width of the instruction memory is 32 bits, for example, as shown in Table 3, since one instruction has two addresses in the instruction memory, as shown in 10b-1 of FIG. Instruction fetch is required, the instruction fetch cycle is increased, and the execution speed of the compound condition comparison instruction is reduced by that much.

어드레스Address 명령 메모리의 내용Contents of command memory n-1n-1 XXXX XXXX 0001 011 0001 0010 101 1010 00XXXX XXXX 0001 011 0001 0010 101 1010 00 nn 0011 000 0101 00000 0000 0000 0000 00000011 000 0101 00000 0000 0000 0000 0000

이에 대하여, 본 발명에 의하면, 조건 설정 명령 및 복합 조건 분기 명령은 양쪽 모두, 종래 방식에 비하여 짧은 명령 길이로 실현할 수 있다. 구체적으로는, 이하와 같이 된다. In contrast, according to the present invention, both the condition setting instruction and the compound condition branch instruction can be realized with a shorter instruction length than the conventional method. Specifically, it becomes as follows.

본 발명에 있어서 명령 세트에 새로 도입된 조건 설정 명령 Condition setting instruction newly introduced in the instruction set in the present invention

SETCMP c0, r1, L, r11SETCMP c0, r1, L, r11

에서는, 조건 설정 비교부의 선택으로 2 비트, 2 개의 레지스터로 8 비트, 비교기의 종류로 3 비트가 되고, 합계로 8+2+4+4+3=21 비트가 된다 (표 4 참조).In the conditional setting comparison section, two bits, two registers, eight bits, three types of comparators, and a total of 8 + 2 + 4 + 4 + 3 = 21 bits (see Table 4).

명령 코드Command code 선택Selection 레지스터 1 Register 1 비교기Comparator 레지스터 2Register 2 8비트8 bit 2비트2 bit 4비트4 bit 3비트3 bit 4비트4 bit SETCMP SETCMP c0c0 r1r1 LL r11r11 XXXX XXXXXXXX XXXX 0000 00010001 010010 10111011

또한, SETCMP c1, r2, GE, 10 도 즉치를 4 비트로 하면, 21 비트가 된다 (표 5 참조).In addition, if SETCMP c1, r2, GE, 10 degrees is made into 4 bits immediately, it becomes 21 bits (refer Table 5).

명령 코드Command code 선택Selection 레지스터 1 Register 1 비교기Comparator 즉치 Immediate 8비트8 bit 2비트2 bit 4비트4 bit 3비트3 bit 4비트4 bit SETCMP SETCMP c1c1 r2r2 GEGE 1010 XXXX XXXXXXXX XXXX 0101 00100010 101101 10101010

또, 본 발명에 있어서 명령 세트에 새로 도입된 복합 조건 분기 명령In addition, the compound condition branch instruction newly introduced in the instruction set in the present invention.

XBNE 0111b, L1XBNE 0111b, L1

에서는, 명령 코드를 8 비트, 비교기의 종류는 3 비트, 분기 조건 값은 0 ∼ 7 까지 선택 가능하게 하면 3 비트, 점프처 어드레스 (L1) 는 명령 메모리의 어드레스 값으로 64K 워드 어드레스 공간이라고 하면 16 비트, 합계로 8+3+3+16=30비트가 되고, 명령 메모리의 버스 폭이 32 비트 이하이어도 되고, 명령 페치 사이클은 증가하지 않는다 (표 6 참조).In this case, if the instruction code is 8 bits, the type of comparator is 3 bits, and the branch condition value is selectable from 0 to 7, 3 bits and the jump destination address L1 is the address value of the instruction memory. The total number of bits is 8 + 3 + 3 + 16 = 30 bits, the bus width of the instruction memory may be 32 bits or less, and the instruction fetch cycle does not increase (see Table 6).

명령 코드Command code 비교기Comparator 분기 조건 값Branch condition value 점프처 어드레스Jump destination address 8비트8 bit 3비트3 bit 3비트3 bit 16비트16 bit XBNEXBNE NENE 0111b0111b L1L1 XXXX XXXXXXXX XXXX 001001 111111 XXXX XXXX XXXX XXXXXXXX XXXX XXXX XXXX

또한, 점프처 어드레스를 12 비트의 상대 어드레스로 했을 경우, 32-8-3-12=9 비트 만큼의 여유가 있다. 이하의 실시예에서는, 분기 조건 값을 3 비트로 나타내고 있는데, 보다 비트 수를 많이 하고, 보다 많은 복합 조건을 지정할 수도 있다. 이 경우, 조건 설정 비교부도 그 비트 수만큼의 개수가 필요해진다. 이하 구체적인 실시예에 입각하여 설명한다. When the jump destination address is a 12-bit relative address, there is a margin of 32-8-3-12 = 9 bits. In the following embodiments, the branch condition value is represented by 3 bits, but the number of bits can be increased and more complex conditions can be specified. In this case, the condition setting comparison section also needs the number of bits. It demonstrates based on a specific Example below.

실시예Example

도 1 은, 본 발명의 일 실시예의 프로세서의 주요부 구성을 나타내는 도면이다. 도 1 을 참조하면 본 실시예의 프로세서는, 셀렉터 (1), 복수의 조건 설정 비교부 (2, 3, 4), 레지스터 (5), 연산용 레지스터 (6), 복합 조건 분기 판정부 (7), 점프처 어드레스 레지스터 (8), 셀렉터 (9), 프로그램 카운터 (10), 및 명령 디코더 (11) 를 구비하고 있다. 복수의 조건 설정 비교부로서 3 개의 구성이 나타나 있는데, 본 발명에 있어서 조건 설정 비교부는 3 개로 제한되는 것이 아님은 물론이다. 1 is a diagram showing the configuration of main parts of a processor of an embodiment of the present invention. Referring to Fig. 1, the processor of the present embodiment includes a selector 1, a plurality of condition setting comparison units 2, 3, and 4, a register 5, an operation register 6, and a compound condition branch determination unit 7. , A jump destination address register 8, a selector 9, a program counter 10, and an instruction decoder 11. Three configurations are shown as a plurality of condition setting comparison sections, but of course, the condition setting comparison section is not limited to three.

셀렉터 (1) 는, 명령 디코더 (11) 에 있어서의 조건 설정 명령 (SETCMP) 의 디코드 결과를 받는 레지스터 (1a) (조건 설정 명령 (SETCMP) 에서의 조건 설정 비교부의 지정 정보에 대응하는 2 비트를 저장) 와, 레지스터 (1a) 의 값에 기초하여 조건 설정 비교부 (2, 3, 4) 를 선택하는 셀렉터 (1b) 를 구비하고 있다. The selector 1 selects two bits corresponding to the specified information of the register 1a (the condition setting comparison section in the condition setting command SETCMP) that receives the decoded result of the condition setting command SETCMP in the instruction decoder 11. Storage) and a selector 1b for selecting the condition setting comparison units 2, 3, and 4 based on the value of the register 1a.

조건 설정 비교부 (2, 3, 4) 는 셀렉터 (1) 에 의해 선택되고 (활성화되고), 각각 조건 설정 명령 (SETCMP) 으로 지정된 1 개의 조건을 설정하고, 이 조건에 대응하는 비교 연산을 실시한다. 또한 조건 설정 비교부 (2, 3, 4) 에서는, 조건 설정 명령 (SETCMP) 의 실행시에는 조건의 설정 (비교기의 종별, 비교 대상의 레지스터의 지정 등) 을 실시할 뿐이고, 조건 설정 비교부 (2, 3, 4) 에 있어서의 비교 연산의 실행은 복합 조건 분기 명령의 실행시에 이루어진다. 이러한 구성은, 본 발명의 주된 특징 중 하나를 이루고 있다. The condition setting comparison section 2, 3, 4 sets one condition selected by the selector 1 (activated), each of which is designated by the condition setting command SETCMP, and performs a comparison operation corresponding to this condition. do. In the condition setting comparison section 2, 3, and 4, when the condition setting instruction SETCMP is executed, only the condition setting (type of the comparator, designation of the register to be compared, etc.) is performed. The comparison operation in 2, 3, and 4) is executed at the time of execution of the compound conditional branch instruction. This configuration forms one of the main features of the present invention.

레지스터 (5) 는, 조건 설정 비교부 (2, 3, 4) 의 비교 연산 결과를 각각 보존하는 레지스터 (5a, 5b, 5c) 를 구비하고 있다. The register 5 is provided with the registers 5a, 5b, 5c which respectively store the result of the comparison operation of the condition setting comparison unit 2, 3, 4.

연산용 레지스터 (6) 는, 프로세서가 연산을 위해 사용하는 N 개의 레지스터 (레지스터 파일) (r1 ∼ rN) 이다. The arithmetic registers 6 are N registers (register files) r1 to rN that the processor uses for arithmetic.

복합 조건 분기 판정부 (7) 는, 복합 조건 분기 명령을 디코드하는 명령 디코더 (11) 로부터의 출력을 받고, 이 복합 조건 분기 명령으로 지정된 비교용의 분기 조건 값을 기억하는 레지스터 (7a) (도 5 참조), 비교기의 종류를 기억하는 레지스터 (7b) (도 5 참조), 및 비교 연산을 실시하는 비교기 (7c) (도 5 참조) 를 구비하고 있다.The compound condition branch determination unit 7 receives an output from the instruction decoder 11 that decodes the compound condition branch instruction, and stores a register 7a for storing the comparison branch condition value designated by this compound condition branch instruction (FIG. 5), a register 7b for storing the type of comparator (see FIG. 5), and a comparator 7c (see FIG. 5) for performing a comparison operation.

점프처 어드레스 레지스터 (8) 는, 명령 디코더 (11) 에서 디코드된 복합 조건 분기 명령으로 지정된 점프처 어드레스를 저장한다. The jump destination address register 8 stores the jump destination address specified by the compound condition branch instruction decoded by the instruction decoder 11.

프로그램 카운터 (PC) (10) 는 프로세서의 명령 실행 위치를 표시한다.Program counter (PC) 10 indicates an instruction execution position of a processor.

셀렉터 (9) 는, 점프처 어드레스 레지스터 (8) 의 어드레스와, 복합 조건 분기 명령의 다음 명령의 어드레스 (프로그램 카운터의 값 (PC) + 1) 를 입력으로 하고, 복합 조건 분기 판정부 (7) 로부터 출력된 결과의 진위값 (T/F) 을 선택 제어 신호로서 받아, 복합 조건 분기 판정부 (7) 로부터 출력된 결과가 진인 경우에는 점프처 어드레스 레지스터 (8) 의 어드레스를 선택하고, 위인 경우에는 복합 조건 분기 명령의 다음 명령의 어드레스 (프로그램 카운터의 값 (PC) + 1) 를 선택한다. 셀렉터 (9) 로부터의 출력은, 프로그램 카운터 (PC) (10) 에서 설정된다.The selector 9 inputs the address of the jump destination address register 8 and the address of the next instruction of the compound condition branch instruction (the value of the program counter (PC) + 1), and the compound condition branch determination unit 7 Receives the authenticity value (T / F) of the result output from the selection control signal, selects the address of the jump destination address register 8 when the result output from the compound condition branch determination unit 7 is true, and is above. Selects the address (program counter value (PC) + 1) of the next instruction of the compound condition branch instruction. The output from the selector 9 is set in the program counter (PC) 10.

이와 같이, 본 실시예에서는 명령 세트에 새로,Thus, in this embodiment, the instruction set is newly

·조건 설정 명령 (SETCMP),Condition setting command (SETCMP),

·복합 조건 분기 명령 (XBNE, XBEQ 등), Compound conditional branch instruction (XBNE, XBEQ, etc.)

의 2 개의 명령을 준비한다. Prepare two commands.

조건 설정 명령은, 복합 조건 분기 명령에서 사용되는 복합 판정의 각 조건을 설정하는 명령이다. 복합 조건 분기 명령은, 조건 설정 명령으로 설정된 각 조건에 대응하는 비교 연산을 실시하고, 비교 연산 결과와, 명령 코드로 지정한 분기 조건 값의 비교 연산을 실시하고, 비교 연산 결과에 기초하여 분기되는 명령이다.The condition setting instruction is an instruction for setting each condition of the compound judgment used in the compound condition branch instruction. The compound condition branch instruction performs a comparison operation corresponding to each condition set by the condition setting instruction, performs a comparison operation between the comparison operation result and the branch condition value specified by the instruction code, and branches based on the comparison operation result. to be.

먼저, 조건 설정 명령부터 설명한다. 본 실시예에서는, 어셈블러의 니모닉으로 나타내면 하기와 같이 표시된다. First, the condition setting command will be described. In the present embodiment, the mnemonic of the assembler is expressed as follows.

SETCMP c0, r1, L, r11SETCMP c0, r1, L, r11

“SETCMP”는, 조건 설정 명령의 이름 (오퍼레이션 코드) 을 표시하고 있다."SETCMP" indicates the name (operation code) of the condition setting command.

제 1 오퍼랜드의“c0”은 첫번째의 조건 설정을 의미하고, 조건 설정 비교부 (2) 를 표시하고 있다. "C0" of the first operand means setting of the first condition, and displays the condition setting comparison section 2. FIG.

제 2 , 4 오퍼랜드의“r1”과“r11”은, 연산용 레지스터 (6) 내의 레지스터 어드레스 (1 과 11) 의 레지스터를 지정하고 있다. "R1" and "r11" of the second and fourth operands designate the registers of the register addresses (1 and 11) in the operation register (6).

제 3 오퍼랜드의“L”은, r1 과 r11 의 값을 비교하는 경우에 사용하는 비교 연산기의 종류를 표시하고 있다. 비교 연산기의 종류를, 의미, C 언어 표기, 선택 값과 함께, 표 7 에 일람으로 게재한다. "L" in the third operand indicates the type of comparison operator used when comparing the values of r1 and r11. The types of comparison operators are listed in Table 7, along with their meanings, C language notation, and optional values.

종류 (니모닉 표기)Kind (Mnemonic notation) 의미meaning C 언어 표기 C language notation 선택 값Select value EQEQ 동치 (Equal)Equal ‘==’‘==’ 0 (000b)0 (000b) NENE 이치 (Not Equal)Not Equal ‘!=’‘! =’ 1 (001b)1 (001b) LL 보다 작음 (Less)Less than ‘<’‘<’ 2 (010b)2 (010b) LELE 보다 작음 또는 동치 (Less or Equal)Less or Equal ‘<=’‘<=’ 3 (011b)3 (011b) GG 보다 큼 (Greater) Greater than ‘>’‘>’ 4 (100b)4 (100b) GEGE 보다 큼 또는 동치 (Greater or Equal)Greater or Equal ‘>=’‘> =’ 5 (101b)5 (101b)

본 실시예의 구체적인 동작으로서, 도 6 의 3 개의 조건 설정 명령이 실행될 때의 동작을 도 6 을 사용하여 설명한다. 도 6 의 각 행의 문자열에 있어서, “//”이후 (우측) 의 문자열은 코멘트이다. 도 6 의 3 개의 조건 설정 명령 (SETCMP) 은, r1<r11, r2>=10, r3==r13 의 각각의 비교 조건의 설정을 실시하고 있다. 또한, 도 6 에 있어서, 3 개의 조건 설정 명령에 이어지는, 레이블 (L1) 이하에서는, 연산이 실시되고, r1 ∼ r3, r11, r13 의 각 레지스터가 갱신되고 (명령 코드는 도시되지 않는다), 다음의 복합 조건 분기 명령 (XBNE) 의 실행시에 조건 (C0 ∼ C2) 이 모두 성립되고 있지 않은 경우, 레이블 (L1) 로 분기한다. 레이블 (L1) 로부터 복합 조건 분기 명령 (XBNE) 까지가 루프 처리를 구성하고, 복합 조건 분기 명령 (XBNE) 은, 루프 처리 엑시트 판정을 실시한다.As a specific operation of the present embodiment, an operation when the three condition setting instructions in FIG. 6 are executed will be described using FIG. 6. In the character string of each line of FIG. 6, the character string after "//" (right side) is a comment. The three condition setting instructions SETCMP in FIG. 6 set the comparison conditions for each of r1 <r11, r2> = 10 and r3 == r13. In Fig. 6, under the label L1 following the three condition setting instructions, the calculation is performed, and each register of r1 to r3, r11 and r13 is updated (the instruction code is not shown). If none of the conditions C0 to C2 are satisfied at the time of execution of the compound condition branch instruction XBNE, the program branches to the label L1. From the label L1 to the compound condition branch instruction XBNE constitutes a loop process, the compound condition branch instruction XBNE performs a loop process exit determination.

첫번째의 조건 설정 명령First condition setting command

SETCMP c0, r1, L, r11SETCMP c0, r1, L, r11

이 실행될 때에, 도 7 의 7-1 에 있어서, 명령 페치 사이클 (F) 에서, 명령 디코더 (11) 로 명령 코드가 명령 메모리 (도시 생략) 로부터 판독된다.When this is executed, in 7-1 of Fig. 7, in the instruction fetch cycle F, the instruction code is read from the instruction memory (not shown) by the instruction decoder 11.

다음의 명령 디코드 사이클 (D) 에서, 판독된 명령 코드는 도 2 의 명령 디코더 (11) 에 나타내는 바와 같이 해석된다. 도 2 에는, 조건 설정 명령In the next instruction decode cycle D, the read instruction code is interpreted as shown in the instruction decoder 11 in FIG. 2, the condition setting command

SETCMP c0, r1, L, r11SETCMP c0, r1, L, r11

에 대하여, 도 1 의 명령 디코더 (11) 의 동작, 조건 설정 비교부 (2) 의 동작을 설명하는 구성이 모식적으로 나타나 있다.With respect to this, a configuration for explaining the operation of the instruction decoder 11 and the condition setting comparison unit 2 in FIG. 1 is schematically shown.

도 2 를 참조하면, 조건 설정 비교부 (2) 는, 연산용 레지스터 (6) 의 레지스터 어드레스를 저장하는 레지스터 (「어드레스 레지스터」라고도 한다) (2c, 2d), 레지스터 (2c, 2d) 로부터의 레지스터 어드레스를 받아 디코드하여 연산용 레지스터 (6) 의 레지스터를 선택하는 디코더 (2a, 2b), 즉치 데이터를 저장하는 즉치 레지스터 (2e), 비교기 선택 레지스터 (2f), 즉치 레지스터 (2e) 의 출력과 디코더 (2b) 의 출력 (선택된 연산용 레지스터 (6) 의 판독 값) 의 일방을 선택하여 출력하는 셀렉터 (2g), 및 디코더 (2a) 의 출력 (선택된 연산용 레지스터 (6) 의 판독 값) 과 셀렉터 (2g) 의 출력을 입력하고, 비교기 선택용 레지스터 (2f) 에서 선택된 비교 연산을 실시하는 비교기 (2h) 를 구비하고 있다. 또한, 도 1 의 조건 설정 비교부 (3, 4) 도 조건 설정 비교부 (2) 와 동일 구성으로 된다.Referring to Fig. 2, the condition setting comparison section 2 stores registers (also referred to as "address registers") (2c, 2d) and registers (2c, 2d) that store the register address of the register 6 for operation. Decoders 2a and 2b which receive a register address and decode and select a register of arithmetic register 6, an immediate register 2e for storing immediate data, a comparator selection register 2f, and an output of an immediate register 2e; A selector 2g which selects and outputs one of the outputs of the decoder 2b (read value of the selected calculation register 6), and an output of the decoder 2a (read value of the selected calculation register 6) and A comparator 2h for inputting the output of the selector 2g and performing a comparison operation selected in the comparator selection register 2f is provided. In addition, the condition setting comparison part 3, 4 of FIG. 1 also becomes the same structure as the condition setting comparison part 2. As shown in FIG.

명령 디코더 (11) 에 있어서, 조건 설정 명령In the instruction decoder 11, a condition setting instruction

SETCMP c0, r1, L, r11SETCMP c0, r1, L, r11

에 있어서의,In

“c0”은, “00b”(2 진수), “C0” means “00b” (binary),

“r1”은, “0001b”“R1” means “0001b”

“L”은,“010b”"L" means "010b"

“r11”은,“1011b”“R11” means “1011b”

로 디코드된다.Is decoded.

동시에, 셀렉터 (1) 의 레지스터 (1a) 에는, 명령 디코더 (11) 로부터, 조건 설정“c0”을 나타내는 값“00b”가 저장된다. At the same time, in the register 1a of the selector 1, the value "00b" indicating the condition setting "c0" is stored from the instruction decoder 11.

또한, 다음의 명령 실행 사이클 (EX) 에서, 셀렉터 (1) 의 레지스터 (1a) 의 값“c0”이 셀렉터 (1) 의 셀렉터 (1b) 에 작용하고, 조건 설정 비교부 (2) 가 선택되고 (도 2 의 셀렉터 (1) 내의 Sa 가 활성화된다), 조건 설정 비교부 (2) 의 레지스터 (2c, 2d, 및 2f) 에, 각각 명령 디코더 (11) 로부터“0001b”“1011b”및“010b”가 저장된다. Further, in the next instruction execution cycle EX, the value "c0" of the register 1a of the selector 1 acts on the selector 1b of the selector 1, and the condition setting comparison unit 2 is selected. (Sa in the selector 1 in FIG. 2 is activated) and the registers 2c, 2d, and 2f of the condition setting comparison section 2 are respectively designated as "0001b", "1011b", and "010b" from the instruction decoder 11. Is stored.

또한, 레지스터 (2c ∼ 2f) 의 값은, 조건 설정 명령 The values of the registers 2c to 2f are condition setting instructions.

SETCMP c0, r1, L, r11SETCMP c0, r1, L, r11

의 명령 실행 후에도 그대로 유지된다. 즉, 다음 조건 설정 비교부 (2) 에 작용하는 조건 설정 명령이 실행될 때까지, 조건 설정 비교부 (2) 내의 각 레지스터의 값은 재기록되지 않는다.It remains even after the command is executed. That is, the value of each register in the condition setting comparison section 2 is not rewritten until the condition setting command acting on the next condition setting comparison section 2 is executed.

도 2 는, 이 시점까지의 동작을 실행한 상태를 나타내고 있다. 2 has shown the state which performed the operation | movement to this time point.

조건 설정 비교부 (2) 의 레지스터 (2c) 에는, 연산용 레지스터 (r1) 를 나타내는 레지스터 어드레스“1” (“0001b”), In the register 2c of the condition setting comparison section 2, a register address “1” (“0001b”) indicating an arithmetic register r1,

조건 설정 비교부 (2) 의 레지스터 (2d) 에는, 연산용 레지스터 (r11) 를 나타내는 레지스터 어드레스“11”(“1011b”), In the register 2d of the condition setting comparison section 2, a register address “11” (“1011b”) indicating the register r11 for arithmetic operation,

조건 설정 비교부 (2) 의 레지스터 (2f) 에는, 비교기의 종류“L”를 나타내는 값 (표 7 에서는“2”(“010b”), 도 2 (a) 에서는“<”로 나타낸다) 이 각각 기억된다. In the register 2f of the condition setting comparison section 2, a value indicating the type of comparator “L” (“2” (“010b”) in Table 7 and “<” in FIG. 2A) is respectively. I remember.

두번째의 조건 설정 명령Second condition setting command

SETCMP c1, r2, GE, 10SETCMP c1, r2, GE, 10

에서는, 4 번째의 파라미터 (제 4 오퍼랜드) 에, 연산용 레지스터가 아닌 즉치 (immediate value)“10”이 지정되어 있다. In the fourth parameter (fourth operand), an immediate value "10" is specified rather than an operation register.

도 7 의 7-2 에 나타내는 바와 같이, 동작적으로는, 즉치“10”을 조건 설정 비교부 (3) 의 레지스터 (3e) (도 3 참조) 로 기억시키는 것 이외에는, 첫번째의 조건 설정 명령시와 동일하게 처리된다. As shown in 7-2 of FIG. 7, the first condition setting instruction is executed except that the immediate value “10” is stored in the register 3e (see FIG. 3) of the condition setting comparison section 3. Is treated the same as

결과적으로, 조건 설정 비교부 (3) 에 있어서, 도 3 에 나타내는 바와 같이,As a result, in the condition setting comparison part 3, as shown in FIG.

레지스터 (3c) 에는, 연산용 레지스터 (r2) 를 나타내는 레지스터 어드레스“2”(“0010b”), In the register 3c, a register address "2" ("0010b") representing an arithmetic register r2,

레지스터 (3e) 에는, 즉치“10”을 나타내는 값“10”(“1010b”),In the register 3e, a value "10" ("1010b") indicating an immediate value "10",

레지스터 (3f) 에는, 비교기의 종류“GE”를 나타내는 값 (표 7 에서는“5” (“101b”), 도 2 (b) 에서는“≥”로 표시한다) In the register 3f, a value indicating the type "GE" of the comparator ("5" ("101b") is shown in Table 7 and "≥" in FIG. 2B).

이 각각 기억된다. Each of these is remembered.

3 번째의 조건 설정 명령Third condition setting command

SETCMP c2, r3, EQ, r13SETCMP c2, r3, EQ, r13

에 대해서도, 조건 설정“c2”에 의해 조건 설정 비교부 (4) 가 선택되고, 첫번째의 명령 (SETCMP c0, r1, L, r11) 과 동일하게 처리되고, 도 7 의 7-3 과 같은 동작이 된다. Also, the condition setting comparison section 4 is selected by the condition setting "c2", and is processed in the same manner as the first command SETCMP c0, r1, L, r11, and the same operation as in 7-3 of FIG. do.

결과적으로, 조건 설정 비교부 (4) 에 있어서, 도 4 에 나타내는 바와 같이, As a result, in the condition setting comparison part 4, as shown in FIG.

레지스터 (4c) 에는, 연산용 레지스터 (r3) 를 나타내는 레지스터 어드레스“3”(“0011b”), In the register 4c, a register address "3" ("0011b") indicating an arithmetic register r3,

레지스터 (4d) 에는, 연산용 레지스터 (r13) 를 나타내는 레지스터 어드레스“13” (“1101b”), In the register 4d, a register address “13” (“1101b”) indicating an arithmetic register r13,

레지스터 (4f) 에는, 비교기의 종류“EQ”를 나타내는 값 (표 7 에서는“0” (“000b”), 도 2 (c) 에서는“==”로 나타낸다) In the register 4f, a value indicating the comparator type “EQ” (“0” (“000b”) in Table 7 and “==” in FIG. 2C) is shown.

이 각각 기억된다. Each of these is remembered.

이와 같이 본 실시예에 있어서는, 복합 조건 분기 명령을 실행하기 전에, 복합 조건을 구성하는 복수의 조건을 조건 설정 명령을 사용하여 설정한다. As described above, in the present embodiment, before executing the compound condition branch instruction, a plurality of conditions constituting the compound condition are set using the condition setting instruction.

또한, 조건 설정 명령은 조건을 설정하는 것일 뿐, 실제의 비교 연산은 실시하지 않는다. 왜냐하면, 이 시점에서는 비교 연산의 대상이 되는 연산용 레지스터 (6) 에, 아직 값이 저장되어 있지 않기 때문이다. 복합 조건 분기 명령의 실행으로 비교 연산이 실시된다. Incidentally, the condition setting instruction merely sets the condition, and does not perform the actual comparison operation. This is because, at this point, no value has yet been stored in the operation register 6 that is the target of the comparison operation. The comparison operation is performed by the execution of the compound conditional branch instruction.

본 실시예에서 명령 세트에 도입된, 다른 1 개의 추가 명령인 복합 조건 분기 명령은, 조건 설정 명령으로 설정한 각 조건에 대응하는 비교 연산을 실시하고, 그 결과와 분기 조건 값의 비교 연산을 실시하는 명령이며, 어셈블러의 니모닉에서는, 도 6 에 나타내는 예의 경우, 이하와 같이 나타내어진다. The compound condition branch instruction, which is another additional instruction introduced in the instruction set in this embodiment, performs a comparison operation corresponding to each condition set by the condition setting instruction, and compares the result and the branch condition value. In the assembler mnemonic, the example shown in FIG. 6 is represented as follows.

XBNE 0111b, L1XBNE 0111b, L1

“XBNE”는 명령의 이름으로서, “NE”의 부분은 비교 연산기의 종류 (표 7 참조) 를 나타내고 있다. “NE”이외에, “EQ”,“L”,“LE”,“G”,“GE”의 비교이어도 된다. "XBNE" is the name of the instruction, and the part of "NE" indicates the type of comparison operator (see Table 7). In addition to "NE", a comparison of "EQ", "L", "LE", "G", and "GE" may be used.

“0111b”는 분기 조건 값으로서, 각 조건에서의 비교 연산 결과와의 비교 (비트 비교) 를 실시하는 값을 2 진수로 표시하고 있다. "0111b" is a branch condition value, which represents a binary value indicating a value (bit comparison) to be compared with a comparison operation result in each condition.

“L1”은, 복합 조건의 분기의 판정 결과가 진이었을 경우에 분기하는, 프로그램의 점프처 어드레스를 표시하고 있다. "L1" indicates a jump destination address of the program which branches when the determination result of the branch of the compound condition is true.

본 실시예에 있어서의 복합 조건 분기 명령의 동작을 설명한다. The operation of the compound conditional branch instruction in this embodiment will be described.

도 8 의 8-1 에 있어서의 1 회째의 복합 조건 분기 명령 The first compound condition branch instruction in 8-1 of FIG. 8

XBNE 0111b, L1XBNE 0111b, L1

에 있어서, 명령 페치 사이클 (F) 에서, 명령 디코더 (11) 로 명령 코드가 명령 메모리 (도시 생략) 로부터 판독된다. In the instruction fetch cycle F, the instruction code is read from the instruction memory (not shown) by the instruction decoder 11.

다음의 명령 디코드 사이클 (D) 에서, 판독된 명령 코드는 도 5 의 명령 디코더 (11) 로, 도 5 에 나타내는 바와 같이 해석된다. 또한, 복합 조건 분기 판정부 (7) 는, 레지스터 (7a, 7b), 비교기 (7c) 를 구비하고 있다. In the next instruction decode cycle D, the read instruction code is interpreted by the instruction decoder 11 of FIG. 5 as shown in FIG. In addition, the compound condition branch determination unit 7 includes registers 7a and 7b and a comparator 7c.

명령 디코더 (11) 에 있어서,In the command decoder 11,

XBNE 의“NE”는“001b”,“NE” of XBNE is “001b”,

“0111b”는, 그대로“0111b”"0111b" is just "0111b"

“L1”은“XXXXXXXXb” (점프처 어드레스 (L1) 를 나타내는 값) 로 각각 디코드된다. "L1" is decoded into "XXXXXXXXb" (the value representing the jumper address L1), respectively.

동시에, 명령 디코더 (11) 로부터,At the same time, from the command decoder 11,

복합 조건 분기 판정부 (7) 의 레지스터 (7a) 에는, “0111b”가 세트되고,"0111b" is set in the register 7a of the compound condition branch determination unit 7.

복합 조건 분기 판정부 (7) 의 레지스터 (7b) 에는, 비교“NE”를 나타내는 값“001b”(표 7 에서는“1”, 도 5 에서는“NE”를“!=”로 표시하고 있다) 가 저장된다. In the register 7b of the compound condition branch determination unit 7, the value "001b" (comparative "NE") ("1" in Table 7 and "NE" in Fig. 5 is indicated by "! ="). Stored.

또 점프처 어드레스 레지스터 (8) 에는, 명령 디코더 (11) 로부터 점프처 어드레스“L1”가 저장된다. 각 레지스터의 값은, 도 8 에 있어서, 다음의 사이클 8-A (XBNE 의 명령 실행 사이클 (EX)) 로 반영된다. In addition, the jump destination address "L1" is stored in the jump destination address register 8 from the instruction decoder 11. The value of each register is reflected in the next cycle 8-A (XBNE instruction execution cycle EX) in FIG.

이와 동시에, 조건 설정 비교부 (2) (도 2 참조) 에 있어서, 연산용 레지스터 (6) 의 레지스터를 지정하는 레지스터 (2c, 2d) 를 사용하고, 디코더 (2a, 2b) 가, 연산용 레지스터 (6) 중으로부터, 해당하는 연산용 레지스터 (6) (이 경우, r1, r11) 의 값을 판독한다. 판독된 r1, r11 의 값은, 비교기 (2h) 에 공급된다.At the same time, in the condition setting comparison section 2 (see Fig. 2), the registers 2c and 2d which designate the registers of the register 6 for calculation are used, and the decoders 2a and 2b use the registers for calculation. From (6), the values of the corresponding operation registers 6 (in this case, r1 and r11) are read. The read values of r1 and r11 are supplied to the comparator 2h.

조건 설정 비교부 (3) 와 조건 설정 비교부 (4) 에 있어서도 동일하게 처리된다. 도 3 을 참조하면, 디코더 (3a) 에서 지정된 연산용 레지스터 (6) 의 값이 판독된다. 조건 설정 비교부 (3) 에서는, 레지스터 (3c) 에서 선택된 연산용 레지스터 (6) 의 레지스터 (r2) 가 판독되고, 레지스터 (r2) 의 값과, 셀렉터 (3g) 에서 선택된 즉치 레지스터 (3e) 의 값 10 이 비교기 (3h) 에 공급된다. The same applies to the condition setting comparison section 3 and the condition setting comparison section 4. Referring to Fig. 3, the value of the arithmetic register 6 specified in the decoder 3a is read. In the condition setting comparison section 3, the register r2 of the operation register 6 selected from the register 3c is read, and the value of the register r2 and the immediate register 3e selected from the selector 3g are read. The value 10 is supplied to the comparator 3h.

도 4 를 참조하면, 조건 설정 비교부 (4) 에 있어서, 연산용 레지스터 (6) 의 레지스터를 지정하는 어드레스 레지스터 (4c, 4d) 를 사용하고, 디코더 (4a, 4b) 가, 연산용 레지스터 (6) 중으로부터, 해당하는 연산용 레지스터 (6) (이 경우, r3, r13) 의 값을 판독한다. 판독된 연산용 레지스터 (6) 의 r3, r13 의 값은, 비교기 (4h) 에 공급된다.Referring to Fig. 4, in the condition setting comparison section 4, the address registers 4c and 4d designating the registers of the calculation register 6 are used. From 6), the value of the corresponding operation register 6 (in this case, r3, r13) is read. The values of r3 and r13 of the read operation register 6 are supplied to the comparator 4h.

XBNE 의 명령 실행 사이클 (EX) (도 8 의 8-A) 에서는, 조건 설정 비교부 (2) (도 2 참조) 에 있어서, 디코더 (2a, 2b) 에 판독된 2 개의 연산용 레지스터의 값을 사용하고, 비교기 (2h) 는 비교기 선택 레지스터 (2f) 가 나타내는 비교기에서 비교 연산을 실행하고, 결과를 레지스터 (5a) (도 5 참조) 에 저장한다.In the XBNE instruction execution cycle (EX) (8-A in FIG. 8), in the condition setting comparison section 2 (see FIG. 2), the values of two operation registers read by the decoders 2a and 2b are read. The comparator 2h executes a comparison operation in the comparator indicated by the comparator select register 2f, and stores the result in the register 5a (see FIG. 5).

여기서, 조건 설정 비교부 (3) 와 같이 비교 연산의 한쪽의 값이 즉치였을 경우에는, 즉치 레지스터 (3e) (도 3) 의 값을 셀렉터 (3g) (도 3) 에서 선택하고, 비교기 (3h) 에서 주고 받아 비교 연산한다. 조건 설정 비교부 (4) 에 있어서도 동일한 처리가 실시된다.Here, when one value of the comparison operation is instantaneous as in the condition setting comparison unit 3, the value of the immediate register 3e (FIG. 3) is selected from the selector 3g (FIG. 3), and the comparator 3h ) And exchange them. The same processing is performed in the condition setting comparison unit 4 as well.

조건 설정 비교부 (2) 의 비교기 (2h), 조건 설정 비교부 (3) 의 비교기 (3h), 조건 설정 비교부 (4) 의 비교기 (4h) 의 각각의 연산 결과를 레지스터 (5a ∼ 5c) 에 저장한다.The calculation results of the comparator 2h of the condition setting comparator 2, the comparator 3h of the condition setting comparator 3, and the comparator 4h of the condition setting comparator 4 are registered in the registers 5a to 5c. Store in

또한, 다음의 명령 실행 사이클 (EX) 에서 (도 8 의 8-B), 도 5 를 참조하면, 비교 연산 결과를 저장한 레지스터 (5a ∼ 5c) 와, 명령 코드로부터 얻어진 분기 조건 값 (레지스터 (7a) 의 값) 의 비교 연산을 비교기 (7c) 에서 실행한다. 또한, 복합 조건 분기 명령이 명령 페치 (F), 디코드 (D) 로 이어지고, 2 개의 명령 실행 사이클 (EX) (첫번째의 명령 실행 사이클 (EX) 은, 조건 설정 비교부 (2, 3, 4) 에서의 비교 연산의 실행과, 레지스터 (5) 에 대한 설정, 두번째의 명령 실행 사이클 (EX) 은 비교기 (7c) 에 의한 레지스터 (5) 의 값과 분기 조건 값의 비교에 의한 분기 판정) 을 포함한다.In addition, referring to FIG. 8 (8-B in FIG. 8) and FIG. 5 in the next instruction execution cycle EX, the registers 5a to 5c storing the result of the comparison operation and the branch condition values (register ( A comparison operation of the value 7a) is performed in the comparator 7c. Further, the compound condition branch instruction leads to instruction fetch (F) and decode (D), and two instruction execution cycles EX (the first instruction execution cycle EX is a condition setting comparison section (2, 3, 4)). The execution of the comparison operation in, and the setting for the register (5), the second instruction execution cycle (EX) includes the branch determination by comparison of the value of the register (5) and the branch condition value by the comparator (7c) do.

여기서 사용되는 비교기의 종류는, 레지스터 (7b) 에서 선택된 값“NE”(표 7 에서는“1”(“001b”), 도 3 에서는“!=”로 표시한다) 가 된다.The type of comparator used here is the value "NE" selected in the register 7b ("1" ("001b" in Table 7) and "! =" In FIG. 3).

여기서 레지스터 (5a, 5b, 5c) 는, 도 9 (a) 에서 나타내는 바와 같이, 레지스터 (7a) 의 분기 조건 값의 각각 비트 0, 1, 2 에 대응된다. 또한, 레지스터 (7a) 의 분기 조건 값이“0011b”인 경우에는, 도 9 (b) 와 같이 된다.Here, the registers 5a, 5b, and 5c correspond to bits 0, 1, and 2 of the branch condition values of the register 7a, respectively, as shown in Fig. 9A. In addition, when the branch condition value of the register 7a is "0011b", it becomes as shown in Fig. 9B.

XBNE 의 다음의 명령 실행 사이클 (EX) (도 8 의 8-B) 에서는, 비교기 (7c) 의 연산 결과 출력 T/F 가“T”, 즉, 복합 조건의 각 조건이 모두 성립되어 있지 않았을 때를 표시하고 있고, 점프처 어드레스 레지스터 (8) 의 어드레스가 셀렉터 (9) 에 의해 선택되어 프로그램 카운터 (10) 에 대입된다.In the next instruction execution cycle (EX) of XBNE (8-B in Fig. 8), when the operation result output T / F of the comparator 7c is "T", that is, each condition of the compound condition is not satisfied. , The address of the jump destination address register 8 is selected by the selector 9 and substituted into the program counter 10.

이 때, 명령 메모리 버스에 점프처 어드레스 레지스터 (8) 의 어드레스 값이 출력되고, 다음의 명령 페치 사이클에서 “L1”번지의 명령이 명령 메모리로부터 판독된다 (도 8 의 8-C).At this time, the address value of the jump destination address register 8 is output to the instruction memory bus, and the instruction at address "L1" is read from the instruction memory in the next instruction fetch cycle (8-C in Fig. 8).

그 후, 다시 복합 조건 분기 명령 XBNE 0111b, L1 을 실행할 때에 (도 8 의 8-2), 상기와 동일하게 처리되는데, 이번에는 도 8 의 8-D (XBNE 의 명령 실행 사이클 (EX)) 에 나타내는 바와 같이 모든 조건이 성립했으므로, 비교기 (7c) (도 3 참조) 의 연산 결과 출력 T/F 가“F”가 되고, 다음 명령의 어드레스 (n+1) 가, 셀렉터 (9) 에 의해 선택되어 프로그램 카운터 (10) 에 대입된다.Thereafter, when executing the compound condition branch instruction XBNE 0111b and L1 again (8-2 in FIG. 8), the same processing is performed as above, but this time in 8-D (XBNE instruction execution cycle (EX) of FIG. 8). As all the conditions are satisfied as shown, the calculation result output T / F of the comparator 7c (see FIG. 3) becomes "F", and the address (n + 1) of the next instruction is selected by the selector 9 and programmed. Substituted in the counter 10.

이 때, 명령 메모리 버스에, 다음 명령의 어드레스 값이 출력되고, 다음의 명령 페치 사이클에서, 복합 조건 분기 명령 (XBNE 0111b, L1) 의 다음 명령이, 도시 생략된 명령 메모리로부터 판독된다 (도 8 의 8-F).At this time, the address value of the next instruction is output to the instruction memory bus, and the next instruction of the compound condition branch instruction (XBNE 0111b, L1) is read out from the instruction memory (not shown) in the next instruction fetch cycle (Fig. 8). 8-F).

이상과 같이, 미리 조건 설정 명령으로 복수의 조건을 설정해 두고, 복합 조건 분기 명령으로 복수의 조건의 비교 연산을 실시하고, 또한 그 결과와, 지정한 분기 조건 값의 비교에 의해 분기의 유무를 판정함으로써, 복수 조건의 조건 분기를 1 개의 명령으로 실시할 수 있다.As described above, a plurality of conditions are set in advance by a condition setting instruction, and a comparison operation of a plurality of conditions is performed by a compound condition branch instruction, and the presence or absence of a branch is determined by comparing the result with a specified branch condition value. A conditional branch of multiple conditions can be executed by one instruction.

이하, 본 실시예의 작용 효과에 대하여, 특허 문헌 1 에 기재된 종래 방식과의 비교 대비를 섞어 설명한다.Hereinafter, the effect of this Example is mixed and compared with the conventional system of patent document 1, and it demonstrates.

상기의 종래 방식에서는 반드시 비교 명령과 조건 분기 명령의 2 개의 명령을 조합하여 조건 분기했던 것에 반해, 본 실시예에서는 조건 분기에서 사용되는 조건을 미리 설정함으로써, 조건 분기 처리를 1 개의 조건 분기 명령으로 실행할 수 있다. 이 때문에, 보다 고속화에 대응할 수 있도록 하고 있다. 특히, 동일한 조건을 반복 실행하는 처리에 적용함으로써, 종래와 비교하여 고속성이 증가하는 효과가 있다. 또한, 복합 조건 분기 명령에 있어서, 복수의 조건에 대응하는 비교 처리는 병렬 실행되기 때문에, 고속화에 대응하고 있다.In the above conventional method, the conditional branching is always performed by combining the two instructions of the comparison instruction and the conditional branching instruction. In the present embodiment, the conditional branching process is changed to one conditional branching instruction by setting the condition used in the conditional branch in advance. You can run Therefore, it is possible to cope with higher speed. In particular, by applying the same condition to a process that is repeatedly executed, there is an effect that the speed is increased as compared with the conventional one. Further, in the compound condition branch instruction, the comparison processing corresponding to the plurality of conditions is executed in parallel, so that the speed is increased.

또, 종래 방식과 같이 모든 복합 조건을 1 개의 명령으로 표현했을 경우에, 오퍼랜드 부분이 많고 명령 길이가 길어진다. 명령 메모리의 버스 폭이 비교적 좁은 시스템에서는, 명령 페치에 추가 사이클이 필요해진다.In addition, when all compound conditions are expressed by one instruction as in the conventional method, there are many operand parts and the instruction length becomes long. In systems where the bus width of the instruction memory is relatively small, additional cycles are required for instruction fetch.

이에 대하여, 본 실시예에서는, 조건 분기 명령과는 다른 조건 설정 명령을 사용하여 조건을 설정할 수 있도록 함으로써, 조건 설정 명령 및 조건 분기 명령은, 통상의 비교 명령이나 조건 분기 명령과 거의 다르지 않은 명령 길이로 실현할 수 있다. 따라서, 명령 메모리폭이 비교적 좁은 시스템에서도, 명령 페치의 추가 사이클은 없어도 되도록 할 수 있는 경우가 많아진다. 이는, 복수의 조건을 미리 설정해 둘 수 있는 조건 설정 명령과, 설정된 복합 조건의 연산 결과와 분기 조건을 비교하고, 분기하는지 여부를 판정하는 복합 조건 분기 명령을 갖기 때문이다.In contrast, in the present embodiment, the condition setting instruction and the condition branch instruction can be set using a condition setting instruction different from the condition branch instruction, so that the condition length instruction and the condition branch instruction are almost the same as those of the normal comparison instruction or the condition branch instruction. Can be realized. Therefore, even in a system where the instruction memory width is relatively narrow, it is often possible to eliminate the additional cycle of instruction fetch. This is because it has a condition setting instruction capable of setting a plurality of conditions in advance, and a compound condition branch instruction that compares the result of the calculation of the set compound condition with the branch condition and determines whether to branch.

본 실시예에 있어서, 조건 분기 처리는, 1 개의 복합 조건 분기 명령만이 실행되고, 1 명령 만큼의 실행 사이클로 족하기 때문에, 종래의 2 개의 명령으로 조건 분기하는 것보다도 고속으로 조건 분기할 수 있기 때문이다. In the present embodiment, the conditional branching process can be conditionally branched at higher speed than conditional branching with two conventional instructions because only one compound conditional branch instruction is executed and one execution cycle is satisfied. Because.

또한, 본 실시예에서는, 조건 설정을 1 개씩 실시하기 위한 셀렉터 (1), 복합 조건을 기억해 두기 위한 레지스터 (2c ∼ 2f) 와, 연산용 레지스터 (6) 로부터 값을 취득하기 위한 디코더 (2a 및 2b) 를 구비하고, 이러한 구성에 의해, 복합 조건의 비교 연산을 복합 조건 분기 명령 중에서 실행할 수 있도록 하고 있다. In the present embodiment, the selector 1 for setting the conditions one by one, the registers 2c to 2f for storing the complex condition, and the decoders 2a for acquiring the values from the arithmetic register 6; 2b), and with this structure, the comparison operation of a compound condition can be performed in a compound condition branch instruction.

이로써, 이하와 같은 작용 효과 (우위점) 를 나타낸다. Thereby, the following effect (advantage point) is exhibited.

종래 방식에서는, 복합 조건 비교 명령과, 조건 분기 명령의 2 개의 명령의 조합으로 되어 있기 때문에, 2 회분의 명령 페치와 명령 디코드의 사이클이 필요해진다. In the conventional method, since the combination is a combination of two instructions of a compound condition comparison instruction and a conditional branch instruction, two cycles of instruction fetch and instruction decode are required.

이에 대하여, 본 실시예에서는, 조건 분기 명령 1 개의 명령으로 동일한 결과가 얻어지고, 1 회분의 명령 페치와 명령 디코드로 족하기 때문에, 그 만큼 페치 사이클 수가 적어지고 보다 고속이다. 단, 미리 복수의 조건을 각각 조건 설정 명령으로 세트하고 있기 때문에, 그 만큼을 포함시키면, 1 회만의 조건 분기 처리에서는 종래 방식 쪽이 고속으로 보인다. 그러나, 동일한 복합 조건을 여러 차례 반복하는 처리에 적용했을 경우에는, 본 발명 쪽이 반복 횟수가 많을수록 고속으로 처리할 수 있다.On the other hand, in the present embodiment, the same result is obtained by one instruction of conditional branch instruction, and the instruction fetch and instruction decode are satisfied, so that the number of fetch cycles is smaller and faster. However, since a plurality of conditions are set in advance by the condition setting instruction, the conventional method is faster in the conditional branching process for only one time. However, when the same compound condition is applied to a process of repeating a number of times, the present invention can process at a higher speed as the number of repetitions increases.

종래 방식의 복합 조건 비교의 명령은, 복수의 조건을 모두 1 개의 명령으로 지정하고 있기 때문에, 명령의 오퍼랜드 부분이 길어진다. 이 때문에, 명령 메모리의 버스 폭이 그 명령 길이보다 좁으면 추가의 명령 페치 사이클이 필요해지고, 그 만큼 명령 실행 사이클 수가 증가한다.In a conventional compound condition comparison instruction, since a plurality of conditions are all designated by one instruction, the operand portion of the instruction becomes long. For this reason, if the bus width of the instruction memory is narrower than the instruction length, an additional instruction fetch cycle is required, which increases the number of instruction execution cycles.

한편, 본 실시예에서는 기본적으로는 1 개의 명령으로 1 개의 조건을 지정하고 있기 때문에, 다른 통상의 연산 명령 등과 동일한 정도의 명령 길이로 할 수 있다. 이 때문에, 추가의 명령 페치 사이클도 불필요하게 할 수 있을 가능성이 높기 때문에, 실행 사이클 수도 증가하지 않는다. On the other hand, in this embodiment, since one condition is basically specified by one instruction, the instruction length can be the same as other ordinary operation instructions. For this reason, since there is a high possibility that additional instruction fetch cycles can be made unnecessary, the number of execution cycles does not increase.

또한, 상기 실시예에서는 조건 분기 명령의 조건 (condition) 으로서, 수치의 대소를 비교하는 2 항 비교 연산을 예로 설명했는데, 본 발명은 이러한 2 항 비교 연산으로 제한되는 것은 아니고, 또 대소 비교 이외에도, 프로세서의 플래그 (제로 플래그, 캐리 플래그) 등의 판정에 의한 조건 분기에 대해서도 적용할 수 있음은 물론이다. 또, 조건의 비교 연산으로서, 논리 연산을 사용하도록 해도 됨은 물론이다. In the above embodiment, as a condition of the conditional branch instruction, a binary comparison operation for comparing the magnitude of an example is described as an example, but the present invention is not limited to such a binary comparison operation. It is, of course, also applicable to conditional branching by the determination of a processor flag (zero flag, carry flag) or the like. Moreover, of course, you may make it use a logical operation as a comparison operation of a condition.

이상, 본 발명을 상기 실시예에 입각하여 설명하였는데, 본 발명은 상기 실시예의 구성으로만 제한되는 것은 아니고, 본 발명의 범위 내에서 당업자라면 이룰 수 있을 각종 변형, 수정을 포함함은 물론이다. As mentioned above, although this invention was demonstrated based on the said Example, this invention is not limited only to the structure of the said Example, Of course, it includes the various deformation | transformation and correction which a person skilled in the art can make within the scope of this invention.

본 발명에 의하면, 종래의 복합 조건 처리 방식에 있어서 비교 명령과 조건 분기 명령의 2 개의 명령의 조합으로 실행되고 있던 조건 분기 처리를, 1 개의 복합 조건 분기 명령으로 실행할 수 있게 함으로써, 동일 조건의 처리를 반복 실행하는 루프 처리 등에 적용했을 경우에, 미리 루프 처리의 직전에 복합 조건을 설정하고, 루프 처리 내에서는 복합 조건 분기 명령 1 개로 조건 분기할 수 있다. 이 때문에, 본 발명에 의하면, 종래의 복합 조건 처리 방식과 같이 2 개의 명령으로 조건 분기하는 경우와 비교하여, 고속화를 실현할 수 있게 하고 있다.According to the present invention, in the conventional compound condition processing method, the conditional branching process performed by the combination of two instructions of the comparison instruction and the conditional branching instruction can be executed by one compound conditional branching instruction, thereby processing the same condition. Is applied to a loop process that repeatedly executes, the compound condition can be set in advance just before the loop process, and conditional branching can be performed by one compound condition branch instruction in the loop process. For this reason, according to this invention, compared with the case of conditional branching with two instructions like the conventional compound conditional processing system, it becomes possible to implement | achieve a high speed.

본 발명에 의하면, 동일 조건의 처리를 반복 실행하는 횟수가 많을수록, 처리 성능의 향상 효과가 커진다. According to the present invention, the greater the number of times of repeating the processing under the same conditions, the greater the effect of improving the processing performance.

또한, 본 발명에 의하면, 조건 설정 명령은 1 개의 명령에 대하여 1 개의 조건을 설정할 뿐이므로, 동시에 복수의 조건을 설정하는 경우와 비교하여 명령 길이를 짧게 할 수 있다.According to the present invention, since the condition setting command only sets one condition for one command, the command length can be shortened as compared with the case of setting a plurality of conditions at the same time.

Claims (13)

명령 세트로서, 조건 성립의 유무에 따라 분기처로 분기/비분기하는 조건 분기 명령과, 상기 조건을 설정하는 조건 설정 명령을 포함하고, An instruction set includes: a condition branch instruction branching / non-branching to a branch destination in accordance with the presence or absence of a condition, and a condition setting instruction setting the condition; 상기 조건 설정 명령의 실행시에, 상기 조건 설정 명령으로 지정된 조건을 설정하는 회로를 구비하고, 상기 회로는, 상기 조건에 대응하는 비교 연산은 실시하지 않고, And a circuit for setting a condition specified by the condition setting command when executing the condition setting command, wherein the circuit does not perform a comparison operation corresponding to the condition, 상기 조건 분기 명령의 실행시, 상기 조건 설정 명령에 의해 미리 설정된 상기 조건에 대응하는 비교 연산을 실시하고, 상기 비교 연산 결과에 기초하여 분기처로 분기하는지 여부를 판정하는 회로를 구비하고 있는 것을 특징으로 하는 프로세서 장치.And a circuit which, when executing the conditional branch instruction, performs a comparison operation corresponding to the condition set in advance by the condition setting instruction, and determines whether to branch to a branch destination based on the result of the comparison operation. Processor unit. 제 1 항에 있어서,The method of claim 1, 상기 조건 분기 명령이, 분기 판정용으로, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 분기 조건 명령으로 이루어지고, The conditional branch instruction is made up of a compound branch condition instruction including a compound condition consisting of a plurality of conditions for branch determination, 복수의 상기 조건 설정 명령을 실행함으로써 상기 복합 조건의 각 조건이 설정되고,By executing a plurality of said condition setting commands, each condition of said compound condition is set, 상기 복합 조건 분기 명령의 실행시, 상기 조건 분기 명령에 의해 미리 설정된 복수의 조건의 각각에 대응하는 비교 연산이 병렬로 실행되고, 복수의 상기 비교 연산의 결과에 기초하여 분기 판정을 실시하고, 상기 복합 조건에 의한 조건 분 기 처리를 1 개의 복합 조건 분기 명령으로 실행할 수 있도록 하여 이루어지는 것을 특징으로 하는 프로세서 장치.At the time of execution of the compound conditional branch instruction, comparison operations corresponding to each of a plurality of conditions preset by the conditional branch instruction are executed in parallel, and branching is performed based on the results of the plurality of comparison operations. And a conditional branching process according to a compound condition is executed by one compound conditional branching instruction. 명령 세트로서, 1 개 또는 복수의 조건의 각각에 대응하는 비교 연산을 실시하고, 상기 비교 연산의 결과와, 지정한 분기 조건 값 사이에서의 비교 연산에 기초하여 지정한 분기처로 분기하는 복합 조건 분기 명령과, A complex condition branch instruction that performs a comparison operation corresponding to each of one or a plurality of conditions, and branches to a specified branch destination based on a comparison operation between the result of the comparison operation and the specified branch condition value; , 1 개의 상기 조건을 설정하는 조건 설정 명령을 포함하고, A condition setting instruction for setting one of the above conditions, 상기 조건 설정 명령의 실행에 의해 선택되어 상기 조건 설정 명령으로 지정된 조건이 설정되고, 상기 복합 조건 분기 명령의 실행시에 상기 조건 설정 명령으로 설정된 조건에 대응하는 비교 연산을 각각 실행하는 복수의 조건 설정 비교부와, A plurality of condition settings which are selected by execution of the condition setting command and the condition specified by the condition setting command is set, and each of which executes a comparison operation corresponding to the condition set by the condition setting command at the time of execution of the compound condition branching command; With the comparison section, 상기 복합 조건 분기 명령의 실행시에, 복수의 상기 조건 설정 비교부에서 각각 실시되는 비교 연산의 결과와, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건 값을 비교한 결과를 사용하여, 상기 분기처로 분기하는지 여부를 판정하는 복합 조건 분기 판정부를 구비하고 있는 것을 특징으로 하는 프로세서 장치.At the time of execution of the compound condition branch instruction, branching to the branch destination is performed using a result of comparison operation performed in each of the plurality of condition setting comparison sections with the result of comparing the branch condition value specified by the compound condition branch instruction. And a compound condition branch determining unit that determines whether or not the present condition is determined. 제 3 항에 있어서,The method of claim 3, wherein 상기 조건 설정 명령은, 오퍼랜드에 상기 조건 설정 비교부의 지정과, 비교 연산의 종별과, 비교 연산 대상의 연산용 레지스터의 레지스터, 또는 상기 연산용 레지스터의 레지스터와 즉치 데이터를 포함하는 것을 특징으로 하는 프로세서 장 치.The condition setting instruction includes an operand including a designation of the condition setting comparison section, a type of comparison operation, a register of an operation register for comparison operation, or a register of the operation register and immediate data. Device. 제 3 항에 있어서,The method of claim 3, wherein 상기 복합 조건 분기 명령은, 오퍼레이션 코드에 비교 연산의 종별을 포함하고, 오퍼랜드에 상기 분기 조건 값과, 상기 분기처를 포함하는 것을 특징으로 하는 프로세서 장치.The compound condition branch instruction includes a type of comparison operation in an operation code, and includes the branch condition value and the branch destination in an operand. 제 3 항에 있어서,The method of claim 3, wherein 상기 조건 설정 비교부에 있어서, 상기 조건 설정 명령의 실행에 의해 설정된 조건은, 상기 조건 설정 명령 후에 다른 조건 설정 명령이 실행되고, 상기 다른 조건 설정 명령에 의해 상기 조건 설정 비교부가 다시 선택되어 다른 조건으로 재기록되기까지 유지되는 것을 특징으로 하는 프로세서 장치.In the condition setting comparison section, a condition set by the execution of the condition setting command is executed by another condition setting command after the condition setting command, and the condition setting comparison section is selected again by the other condition setting command to make another condition. And is maintained until rewritten. 제 3 항에 있어서,The method of claim 3, wherein 상기 조건 설정 비교부는, 비교 대상인 2 개의 연산용 레지스터의 어드레스 정보를 저장하는 제 1 및 제 2 어드레스 레지스터, 즉치 데이터를 저장하는 즉치 레지스터, 비교 연산의 종별을 저장하는 비교기 선택 레지스터, 비교기, 및 상기 제 1 및 제 2 어드레스 레지스터의 어드레스를 디코드하는 제 1 및 제 2 디코더를 구비하고, The condition setting comparison unit includes first and second address registers for storing address information of two operation registers to be compared, an immediate register for storing immediate data, a comparator selection register for storing types of comparison operations, a comparator, and the First and second decoders for decoding the addresses of the first and second address registers, 상기 조건 설정 명령의 실행에 의해, 상기 제 1 및 제 2 어드레스 레지스터, 또는 상기 제 1 어드레스 레지스터 및 상기 즉치 레지스터와, 상기 비교기 선택 레지스터의 각 레지스터의 값이 설정되고, By execution of the condition setting instruction, values of the first and second address registers, or the first address register and the immediate register, and each register of the comparator selection register are set, 상기 복합 조건 분기 명령의 실행에 의해, 상기 제 1 및 제 2 어드레스 레지스터, 또는 상기 제 1 어드레스 레지스터에서 지정된 상기 연산용 레지스터가 판독되고, 상기 제 1 및 제 2 어드레스 레지스터의 지정으로 판독된 2 개의 상기 연산용 레지스터의 값, 또는 상기 제 1 어드레스 레지스터의 지정으로 판독된 상기 연산용 레지스터의 값과 상기 즉치 데이터가, 상기 비교기에서 비교되는 것을 특징으로 하는 프로세서 장치.By the execution of the compound conditional branch instruction, the arithmetic register designated in the first and second address registers or the first address register is read, and two read in the designation of the first and second address registers. And a value of the operation register or the value of the operation register read by designation of the first address register and the immediate data are compared in the comparator. 제 3 항에 있어서, The method of claim 3, wherein 상기 복수의 조건 설정 비교부의 비교 연산 결과를 각각 보존하는 복수의 레지스터를 구비하고 있는 것을 특징으로 하는 프로세서 장치.And a plurality of registers for storing comparison results of the plurality of condition setting comparison units, respectively. 제 8 항에 있어서,The method of claim 8, 상기 복합 조건 분기 판정부는, 상기 복합 조건 분기 명령을 디코드하는 명령 디코더로부터의 출력을 받고, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건 값을 기억하는 제 1 레지스터와, 비교 연산의 종류를 기억하는 제 2 레지스터와, The compound condition branch determination unit receives an output from an instruction decoder that decodes the compound condition branch instruction, and stores a first register that stores the branch condition value specified by the compound condition branch instruction, and a type of comparison operation. 2 registers, 상기 복수의 조건 설정 비교부의 비교 연산 결과를 각각 보존하는 상기 복수의 레지스터의 출력과, 상기 제 1 레지스터에서 지정된 분기 조건 값에 관하여, 상 기 제 2 레지스터에서 지정된 비교 연산을 실시하여 비교 결과를 출력하는 비교기를 구비하고 있는 것을 특징으로 하는 프로세서 장치.Outputting the comparison result by performing the comparison operation specified in the second register with respect to the outputs of the plurality of registers respectively storing the comparison operation results of the plurality of condition setting comparison units and the branch condition values specified in the first register; And a comparator. 제 3 항에 있어서,The method of claim 3, wherein 명령 디코더에 의한 상기 조건 설정 명령의 디코드 결과에 기초하여, 상기 조건 설정 명령으로 지정된 상기 조건 설정 비교부를 선택하는 셀렉터를 구비하고 있는 것을 특징으로 하는 프로세서 장치.And a selector for selecting the condition setting comparison unit specified by the condition setting command based on a decoding result of the condition setting command by the command decoder. 제 10 항에 있어서,The method of claim 10, 상기 명령 디코더에서 디코드된 복합 조건 분기 명령으로 지정된 점프처 어드레스를 저장하는 점프처 어드레스 레지스터와, A jump destination address register for storing a jump destination address designated by a compound condition branch instruction decoded in the instruction decoder; 상기 복합 조건 분기 판정부로부터 출력된 결과의 진위값을 받아, 진(眞)인 경우에는 상기 점프처 어드레스를 선택하고, 위(僞)인 경우에는 프로그램 카운터의 값 + 1 의 어드레스를 선택하여 프로그램 카운터에 설정하는 셀렉터를 추가로 구비하고 있는 것을 특징으로 하는 프로세서 장치.Receive the authenticity value of the result output from the compound condition branch determination unit, select the jump destination address in the case of true, and select the address of the value +1 of the program counter in case of the above. And a selector set to the counter. 프로세서에 있어서의 조건 분기의 처리 방법으로서, As a processing method of conditional branch in a processor, 명령 세트에, 조건 성립의 유무에 따라 분기처로 분기/비분기하는 조건 분기 명령과, 상기 조건을 설정하는 조건 설정 명령을 포함하고, The instruction set includes a condition branch instruction branching / non-branching to a branch destination in accordance with the presence or absence of a condition, and a condition setting instruction setting the condition; 상기 조건 설정 명령의 실행시에, 상기 조건 설정 명령으로 지정된 조건을 설정하고, 상기 조건에 대응하는 비교 연산은 실시하지 않고, At the time of execution of the condition setting command, a condition specified by the condition setting command is set, and a comparison operation corresponding to the condition is not performed. 상기 조건 분기 명령의 실행시, 상기 조건 설정 명령에 의해 미리 설정된 상기 조건에 대응하는 비교 연산을 실시하고, 상기 비교 연산 결과에 기초하여 분기처로 분기하는지 여부를 판정하는 것을 특징으로 하는 조건 분기 처리 방법.When executing the conditional branch instruction, a comparison operation corresponding to the condition set in advance by the condition setting instruction is performed, and it is determined whether to branch to a branch destination based on the result of the comparison operation. . 제 12 항에 있어서,The method of claim 12, 상기 조건 분기 명령은, 분기 판정용으로, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 분기 조건 명령으로 이루어지고, The conditional branch instruction is made up of a compound branch condition instruction including a compound condition composed of a plurality of conditions for branch determination. 복수의 상기 조건 설정 명령을 실행함으로써, 상기 복합 조건의 각 조건의 설정이 실시되고, By executing a plurality of the above condition setting instructions, each condition of the compound condition is set, 상기 복합 조건 분기 명령의 실행시, 상기 조건 분기 명령에 의해 미리 설정된 복수의 조건의 각각에 대응하는 비교 연산이 병렬 실행되고, 복수의 상기 비교 연산의 결과에 기초하여 분기 판정을 실시하고, 상기 복합 조건에 의한 조건 분기 처리를 1 개의 복합 조건 분기 명령으로 실행할 수 있도록 하여 이루어지는 것을 특징으로 하는 조건 분기 처리 방법.At the time of execution of the compound conditional branch instruction, a comparison operation corresponding to each of a plurality of conditions preset by the conditional branch instruction is executed in parallel, branching is performed based on the result of the plurality of comparison operations, and the compound A conditional branch processing method characterized by enabling conditional branching by a condition to be executed by one compound conditional branching instruction.
KR1020070031101A 2006-03-30 2007-03-29 Processor Units and How to Handle Complex Conditions KR100875401B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00094589 2006-03-30
JP2006094589A JP2007272353A (en) 2006-03-30 2006-03-30 Processor device and compound condition processing method

Publications (2)

Publication Number Publication Date
KR20070098688A true KR20070098688A (en) 2007-10-05
KR100875401B1 KR100875401B1 (en) 2008-12-23

Family

ID=38560846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070031101A KR100875401B1 (en) 2006-03-30 2007-03-29 Processor Units and How to Handle Complex Conditions

Country Status (5)

Country Link
US (1) US20070234019A1 (en)
JP (1) JP2007272353A (en)
KR (1) KR100875401B1 (en)
CN (1) CN101046741B (en)
TW (1) TW200809621A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008048910A1 (en) 2007-10-01 2009-05-14 Lg Electronics Inc. Steam home appliance and control method for this

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305185A (en) * 2007-06-07 2008-12-18 Nec Electronics Corp Processor device and compound condition processing method
US20090198876A1 (en) * 2008-01-31 2009-08-06 Jimmy Kwok Lap Lai Programmable Command Sequencer
US8078849B2 (en) 2008-12-23 2011-12-13 Juniper Networks, Inc. Fast execution of branch instruction with multiple conditional expressions using programmable branch offset table
US8880854B2 (en) * 2009-02-11 2014-11-04 Via Technologies, Inc. Out-of-order execution microprocessor that speculatively executes dependent memory access instructions by predicting no value change by older instructions that load a segment register
GB2480285A (en) 2010-05-11 2011-11-16 Advanced Risc Mach Ltd Conditional compare instruction which sets a condition code when it is not executed
US8832417B2 (en) 2011-09-07 2014-09-09 Qualcomm Incorporated Program flow control for multiple divergent SIMD threads using a minimum resume counter
US9256429B2 (en) 2012-08-08 2016-02-09 Qualcomm Incorporated Selectively activating a resume check operation in a multi-threaded processing system
US9229721B2 (en) 2012-09-10 2016-01-05 Qualcomm Incorporated Executing subroutines in a multi-threaded processing system
US10620952B2 (en) 2015-06-24 2020-04-14 International Business Machines Corporation Conversion of boolean conditions
US10705841B2 (en) 2015-06-24 2020-07-07 International Business Machines Corporation Instruction to perform a logical operation on conditions and to quantize the Boolean result of that operation
US10698688B2 (en) * 2015-06-24 2020-06-30 International Business Machines Corporation Efficient quantization of compare results
CN106775593B (en) * 2016-12-30 2019-12-31 智车优行科技(北京)有限公司 Method and device for removing condition judgment statements in circular processing flow and application unit
CN113485748B (en) * 2021-05-31 2022-08-12 上海卫星工程研究所 Satellite condition instruction system and execution method thereof
US11886883B2 (en) * 2021-08-26 2024-01-30 International Business Machines Corporation Dependency skipping in a load-compare-jump sequence of instructions by incorporating compare functionality into the jump instruction and auto-finishing the compare instruction

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5203002A (en) * 1989-12-27 1993-04-13 Wetzel Glen F System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle
CA2038264C (en) * 1990-06-26 1995-06-27 Richard James Eickemeyer In-memory preprocessor for a scalable compound instruction set machine processor
DE69129569T2 (en) * 1990-09-05 1999-02-04 Philips Electronics Nv Machine with a very long command word for efficient execution of programs with conditional branches
JPH1185506A (en) 1997-09-11 1999-03-30 Fujitsu Ltd Data processor having plural condition code processing function

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008048910A1 (en) 2007-10-01 2009-05-14 Lg Electronics Inc. Steam home appliance and control method for this

Also Published As

Publication number Publication date
KR100875401B1 (en) 2008-12-23
TW200809621A (en) 2008-02-16
JP2007272353A (en) 2007-10-18
CN101046741A (en) 2007-10-03
US20070234019A1 (en) 2007-10-04
CN101046741B (en) 2010-05-26

Similar Documents

Publication Publication Date Title
KR100875401B1 (en) Processor Units and How to Handle Complex Conditions
JPS58114274A (en) Data processor
KR20090076848A (en) Processor apparatus and conditional branch processing method
KR100995269B1 (en) Processor apparatus and complex condition processing method
US20190391812A1 (en) Conditional execution specification of instructions using conditional extension slots in the same execute packet in a vliw processor
US11681532B2 (en) Method for forming constant extensions in the same execute packet in a VLIW processor
US20150370561A1 (en) Skip instruction to skip a number of instructions on a predicate
JPS6388636A (en) Microcomputer
JP2009526300A (en) Instruction set for microprocessors
JP2006053830A (en) Branch estimation apparatus and branch estimation method
US6842852B1 (en) System and method for controlling conditional branching utilizing a control instruction having a reduced word length
US20050015574A1 (en) Processor and method capable of executing instruction sets with different lengths
JP2002082800A (en) Device and method for executing program
GB2452151A (en) Using the concatenate bits of an instruction to obtain the length of the instruction in multi-mode processors.
JP2001344100A (en) Central processing unit equipped with plural flag registers
JPH04130924A (en) Microprogram control system for sequencer
JP2007279983A (en) Instruction processing device
US9519482B2 (en) Efficient conditional instruction having companion load predicate bits instruction
JPH0619705A (en) Pipeline control system
JPH03288228A (en) Information processor
JPH0713758A (en) Instruction decoding method
JP2001084130A (en) Selecting circuit
JPH03263222A (en) Microprogram branch processing system
US20050015575A1 (en) Processor and method capable of automatically converting instruction mode to align word boundary of a multi-mode instruction set
JPH0895781A (en) Arithmetic and logic unit of processor

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
FPAY Annual fee payment

Payment date: 20111118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20121121

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee