KR100995269B1 - 프로세서 장치 및 복합 조건 처리 방법 - Google Patents

프로세서 장치 및 복합 조건 처리 방법 Download PDF

Info

Publication number
KR100995269B1
KR100995269B1 KR1020080053387A KR20080053387A KR100995269B1 KR 100995269 B1 KR100995269 B1 KR 100995269B1 KR 1020080053387 A KR1020080053387 A KR 1020080053387A KR 20080053387 A KR20080053387 A KR 20080053387A KR 100995269 B1 KR100995269 B1 KR 100995269B1
Authority
KR
South Korea
Prior art keywords
condition
compound
branch
instruction
comparison
Prior art date
Application number
KR1020080053387A
Other languages
English (en)
Other versions
KR20080108053A (ko
Inventor
마사루 데라시마
Original Assignee
르네사스 일렉트로닉스 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 르네사스 일렉트로닉스 가부시키가이샤 filed Critical 르네사스 일렉트로닉스 가부시키가이샤
Publication of KR20080108053A publication Critical patent/KR20080108053A/ko
Application granted granted Critical
Publication of KR100995269B1 publication Critical patent/KR100995269B1/ko

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/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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

Landscapes

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

Abstract

과제
본 발명은, 사이클 수, 명령 길이의 증대를 억제하고, 조건 분기 처리를 고속화시키는 처리 장치를 제공한다.
해결수단
개시되는 처리 장치는, 명령 세트로서, 1 개 또는 복수 조건 각각에 대응하는 비교 연산을 실시하고, 상기 비교 연산의 결과와, 지정된 분기 조건치 사이에서의 비교 연산에 기초하여, 지정된 분기처에 분기되는 복합 조건 분기 명령과, 상기 조건을 설정하는 조건 설정 명령을 포함하고, 조건 설정 명령으로 지정된 복합 조건을 기억하는 복합 조건 설정 기억부 (1) 와, 복합 조건 분기 명령의 실행시에, 복합 조건 설정 기억부 (1) 중 복합 조건 분기 명령으로 지정된 복합 조건의 각 조건을 비교하는 복수의 비교기를 갖는 조건 비교부 (2) 와, 상기 조건 비교부 (2) 의 복수의 비교기에서 실시된 비교 연산의 결과와, 복합 조건 분기 명령으로 지정된 분기 조건치를 비교한 결과를 이용하여, 상기 분기처에 분기되는지의 여부를 판정하는 복합 조건 분기 판정부 (3) 를 구비하고 있다.
Figure R1020080053387
프로세서, 복합 조건, 연산, 비교기, 분기 판정부

Description

프로세서 장치 및 복합 조건 처리 방법{PROCESSOR APPARATUS AND COMPLEX CONDITION PROCESSING METHOD}
본 발명은, 명령을 페치, 디코드하여 실행하는 프로세서에 관한 것으로, 특히, 복합 조건 분기 처리의 방법과 장치에 관한 것이다.
이런 종류의 복합 조건 처리 방식으로서, 예를 들어 특허 문헌 1 에는, 복수의 명령을 병렬 처리하는 구성으로서, 복수의 비교 명령 실행 결과의 진위치(眞僞値)에 따라 독립적으로 또한 병렬로 비트를 세트/리셋할 수 있는 플래그 레지스터 수단과, 이 플래그 레지스터 수단의 유지 내용과, 조건 분기 명령에 의해 지정된 마스크치의 비트마다의 논리곱을 취하는 논리곱 수단과, 논리곱 수단의 출력치가 제로 (0) 인지의 여부에 따라 상기 조건 분기 명령이 지정되는 분기처 어드레스 또는 조건 분기 명령의 다음 명령 어드레스를, 다음으로 실행해야 하는 명령 어드레스로서 선택하는 명령 페치 어드레스 선택 수단을 구비하고, 마스크치에 의해 지정된 플래그 레지스터의 각 비트 위치의 비트 상태를 복합 조건으로 하여 분기를 실행하는지의 여부를 결정하는 구성이 개시되어 있다.
특허 문헌 1 에 기재된 병렬 처리 장치에 있어서는, 비교 명령 디코더를 복 수 가짐으로써, 동시에 복수의 비교 명령을 실행하고, 실행 결과를 플래그 레지스터에 저장해두고, 플래그 레지스터 상태에 따라 조건 분기시킨다.
먼저, 특허 문헌 1 에 기재된 복합 조건 처리 방식에 대해 개략적으로 설명한다. 프로그램으로서 C 언어에 의한 프로그램,
if (X>1 && X<10 && X!=5)
{복합 조건 성립시의 처리}
에 대응하는 어셈블러 명령 (컴파일 결과) 을 예로써 설명한다. 또한, C 언어의 상기 프로그램은, 3 개의 조건 X>1 과 X<10 과 X!=5 가 모두 성립되어 있는 경우에는 (&& 는 AND 연산을 나타낸다), 다음의 명령, 즉 {복합 조건 성립시의 처리} 가 실행되고, 3 개의 조건 중 1 개라도 성립되지 않을 때, {복합 조건 성립시의 처리} 를 실행하지 않도록 분기된다. 특허 문헌 1 에 의하면, C 언어의 상기 프로그램의 컴파일 결과는 이하와 같이 된다.
SLE X, 1, 0 SGE X, 10, 1 SEQ X, 5, 2
BNZ 7, $1
(복합 조건 성립시의 처리)
$1 : (분기처의 처리)
1 번째의 비교 명령 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" 으로 세트하는 비교 명령이다.
2 번째의 조건 분기 명령 BNZ 7, $1 은, 복합 조건의 비교 연산 결과와, 분기 조건치 (마스크치) "7" 와의 비트 연산을 실시하여, 조건이 성립되지 않으면, 어드레스 $1 로 점프한다. BNZ 조건 분기 명령은 "BNZ M, L" 형식으로 이루어져, M (4 비트 마스크치) 과 플래그 레지스터의 대응 비트의 논리곱을 취하고, 제로 판정 회로는 논리곱 결과가 모두 "0" 인지의 여부를 판정하여, 모두 "0" 인 경우 "1", 그렇지 않으면 "0" 을 출력하고, 제로 판정 회로의 출력 신호 (제로/비제로 판정 결과) 를 분기 성립/분기 불성립 신호로서 출력하고, 분기 성립시, L 이 지정하는 어드레스에 분기된다. 또한, BNZ 7, $1 에 있어서 마스크치는 "0111" 이고, 플래그 레지스터의 비트 0 ∼ 3 중 비트 0 ∼ 2 의 값에 따른 조건 분기를 실시한다.
이와 같이, 비교 명령 SLE X, 1, 0, … 과, 조건 분기 명령 BNZ 의 2 개의 명령을 이용하고 있다.
이 프로그램 예에서는, 값 X (레지스터에 상당) 에 대한 3 개의 비교 조건 (X>1, X<10, X!=5) 중 1 개라도 성립되지 않을 때, 즉, 어셈블러 코드에 의하면, 3 개의 비교 조건 (X<=1, X>=10, X=5) 중 어느 1 개라도 성립되었을 때에, 분기처 $1 로 점프하는 경우를 나타내고 있는데, 비교 결과의 반전을 실시함으로써 모두 OR 조건으로 할 수도 있도록 되어 있다.
또한, 특허 문헌 2 에는, 파이프라인 레지스터가 출력하는 명령을 이용하여, 외부 상태 신호를 선택하기 위한 값과 부호 제어를 위한 값을 조건치 선택기에서 선택하고, 선택된 값을 이용하여, 외부 상태 신호로부터 신호를 조건 부호 선택기에서 선택하고, 부호 제어기에서 극성 판정을 실시함으로써, 다음 번지 선택기는, 비분기 어드레스 혹은 분기 어드레스를 선택하여 출력할 수 있으므로, 프로그램 순서의 분기 조건 혹은 극성 판정 조건을 변경하는 경우, 명령 메모리의 명령어를 변경하지 않고, 조건 레지스터의 내용을 변경하는 것만으로, 분기 조건 혹은 극성 판정 조건을 변경할 수 있도록 한 구성이 개시되어 있다.
특허 문헌 1 : 일본 공개특허공보 평5-274143호
특허 문헌 2 : 일본 공개특허공보 평6-290044호
특허 문헌 1 에 기재된 복합 조건 처리 방식은, 복합 조건을 1 회만 연산하는 경우에는, 특별히 문제는 생기지 않는다. 그러나, 동일한 조건을 반복하여 실행하는 루프 처리에 이용하고자 한 경우, 이하와 같은 문제점을 갖고 있다 (이하는, 본 발명자의 분석 결과에 의한다).
제 1 문제점은, 복합 조건의 비교 명령과 조건 분기 명령을 세트로 실행할 필요가 있기 때문에, 매회, 조건 분기 처리에 2 단계분의 실행 사이클이 필요하게 된다는 것이다. 이 점에 대해 이하에 설명한다.
특허 문헌 1 에 기재된 복합 조건 처리 방식에서는, 도 11 에 나타내는 바와 같이, 2 명령분의 사이클 수가 필요해진다. 또한, 도 11 은 특허 문헌 1 에 기재된 복합 조건 처리 방식의 동작을 설명하기 위해, 본 발명자가 작성한 것이다.
도 11 에 나타낸 예에서는, 1 회에 있어서, 비교 명령 (SLE X, 1, 0, …) 과 조건 분기 명령 (BNZ) 의 2 명령분의, 6 사이클 (F (명령 페치), D (명령 디코드), EX (실행), F, D, EX) 을 필요로 하고 있다 (도 11 의 8-1, 8-2, 8-3 등 참조). 복합 조건의 비교 명령 (SLE X, 1, 0, …) 에서는, 복합 조건의 각 조건에 대응하는 비교 연산을 병렬 실행하고, 비교 연산 결과를, 플래그 레지스터의 지정 비트로 설정하고, 조건 분기 명령 (BNZ) 에서는, 플래그 레지스터의 값과 마스크치의 논리 연산 결과에 기초하여 분기 판정이 실시된다. 이와 같이, 특허 문헌 1 에 기재된 복합 조건 처리 방식에 있어서는, 명령이 비교 명령과 조건 분기 명령의 2 개로 나누어져 있기 때문에, 명령 페치와 명령 디코드의 사이클이 적어도 2 회 필요하고, 사이클 수가 증가되어 루프 처리에서의 사이클 수의 증대가 현저해져 율속 (律速) 요인이 된다.
제 2 문제점은, 특허 문헌 1 에 기재된 복합 조건 처리 방식에 있어서는, 비교 명령은, 복합 조건을 모두 1 명령으로 병렬 실행하는 구성으로 되어 있고, 복수의 조건을 나타내기 위해, 명령 길이가 길어진다는 것이다.
예를 들어, 비교 명령
SLE X, 1, 0 SGE X, 10, 1 SEQ X, 5, 2
에 있어서,
·명령 코드를 8 비트 (256 종류까지의 명령을 갖는 프로세서로 가정),
·비교기의 종류는 6 종류이므로, 비교기 종류의 선택에 3 비트,
·오퍼랜드 X 는, 16 개의 레지스터에서 1 개를 선택하는 것으로 하면, 레지스터 선택용으로 4 비트,
·오퍼랜드의 조건치 (예를 들어 "SLE X, 1, 0" 의 1 은, 비교 조건 X<=1 에 있어서의 우변의 1 에 대응한다) 를, 0 ∼ 15 까지 지정할 수 있는 것으로서 4 비트,
·오퍼랜드의 플래그 레지스터 내의 비트 위치 지정 (비트 0 ∼ 3 중 어느 하나) 을 2 비트로 하면, 합계로,
8+4+(3+4+2)×3=39 비트가 필요해진다 (표 1 참조).
Figure 112008040700306-pat00001
이와 같이, 명령 길이가 길어지는 것은, 특허 문헌 1 의 병렬 처리 장치에서는, 복합 조건을 모두 1 개의 명령 (비교 명령) 으로 지정하고 있기 때문이다.
본원에서 개시되는 발명은, 상기 과제를 해결하기 위해 개략 이하의 구성으로 이루어진다.
본 발명의 하나의 양태 (측면) 에 관련된 장치는, 명령 세트로서, 조건 성립의 유무에 따라, 분기처에 분기/비분기되는 조건 분기 명령과, 상기 조건을 설정하는 조건 설정 명령을 포함한다. 본 발명에 있어서, 상기 조건 설정 명령의 실행시, 상기 조건 설정 명령으로 지정된 조건을 기억하는 조건 설정 기억부와, 상기 조건 분기 명령의 실행시, 상기 조건 설정 기억부에 기억된 조건 중 상기 조건 분기 명령에서 선택된 조건에 대응하는 비교 연산을 실시하는 조건 비교부와, 상기 조건 비교부에서의 비교 연산 결과에 기초하여, 분기처에 분기되는지의 여부를 판정하는 조건 분기 판정부를 구비하고 있다.
본 발명에 있어서, 상기 조건 분기 명령이, 분기 판정용의 조건으로서, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 조건 분기 명령으로 이루어진다. 본 발명에 있어서, 상기 조건 설정 기억부는, 상기 복합 조건 분기 명령의 복합 조건을 구성하는 복수의 조건을 기억하는 복합 조건 기억부를 적어도 1 개 구비함과 함께, 상기 복합 조건 분기 명령으로 지정된 복합 조건 기억부를 유효로 하는 회로를 구비하고 있다. 본 발명에 있어서, 상기 조건 비교부는, 상기 복합 조건 분기 명령의 실행시, 상기 복합 조건 분기 명령으로 지정된 복합 조건 기억부에 유지된 복수 조건 각각에 대해 비교 연산을 실행하도록 해도 된다.
본 발명에 있어서, 상기 조건 비교부가, 상기 복합 조건 분기 명령으로 지정된 복합 조건 기억부의 복수의 조건을 병렬로 비교하는 복수의 비교기를 구비하고 있다. 본 발명에 있어서, 상기 조건 분기 판정부는, 상기 복수의 비교기에서의 비교 결과에 기초하여, 분기처에 분기되는지의 여부를 판정하도록 해도 된다.
본 발명에 있어서, 상기 조건 설정 명령은, 상기 조건 설정 기억부의 복합 조건 기억부 중, 어떠한 복합 조건 기억부를 이용하여, 상기 복합 조건 기억부에 있어서 몇번째의 조건을 설정하는지를 오퍼랜드로 지정하도록 해도 된다.
본 발명에 있어서는, 프로세서는 명령 세트로서, 지정된 복합 조건을 구성하는 복수 조건 각각에 대응하는 비교 연산을 실시하고, 상기 비교 연산의 결과와, 지정된 분기 조건치 사이에서의 비교 연산에 기초하여, 지정된 분기처에 분기되는 처리를 실시하는 복합 조건 분기 명령과,
복합 조건과, 그 복합 조건을 구성하는 복수의 조건 중 어느 조건인지를 지정하여, 상기 조건을 설정하는 처리를 실시하는 조건 설정 명령을 포함한다. 본 발명에 있어서, 프로세서는, 상기 조건 설정 명령으로 지정된 복합 조건을 복수 세트 기억하는 조건 설정 기억부와, 상기 복합 조건 분기 명령의 실행시에, 상기 조건 설정 기억부에 기억 유지되어 있는 복수 세트의 복합 조건 중, 상기 복합 조건 분기 명령으로 지정된 복합 조건을 구성하는 복수 조건 각각에 대해 비교 연산을 실행하는 조건 비교부와, 상기 조건 비교부에서 실시된 비교 연산의 결과와, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건치를 비교한 결과를 이용하여, 상기 분기처에 분기되는지의 여부를 판정하는 복합 조건 분기 판정부를 구비하고 있다.
본 발명에 관련된 방법에 있어서, 명령 세트에, 조건 성립의 유무에 따라, 분기처에 분기/비분기되는 조건 분기 명령과, 상기 조건을 기억시키는 조건 설정 명령을 포함하는 프로세서가, 복수의 조건 설정을 위해, 상기 조건 설정 명령을 복수회 실행함으로써 복수의 조건을 기억부에 기억해 두고,
상기 조건 분기 명령의 실행시, 상기 조건 설정 명령에 의해 미리 기억되어 있는 복수의 상기 조건 중, 상기 조건 분기 명령에서 선택된 조건에 관하여 비교 연산을 실시하고,
상기 비교 연산 결과에 기초하여, 분기처에 분기되는지의 여부를 판정한다.
본 발명에 관련된 방법에 있어서, 상기 조건 분기 명령은, 분기 판정용에, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 조건 분기 명령으로 이루어지고,
복수의 상기 조건 설정 명령을 실행함으로써, 상기 복합 조건 분기 명령의 복합 조건을 구성하는 복수의 조건을 1 세트로서 1 또는 복수 세트를 기억해 두고,
상기 복합 조건 분기 명령의 실행시, 상기 조건 분기 명령에 의해 미리 설정된 복합 조건 중, 복합 조건 분기 명령으로 지정된 복합 조건이 선택되고, 선택된 복합 조건 각각의 조건에 대응하는 비교 연산이 실행되어, 복수 조건의 비교 연산의 결과에 기초하여, 분기 판정을 실시하고, 상기 복합 조건에 의한 조건 분기 처리를 1 개의 복합 조건 분기 명령으로 실행할 수 있도록 하고 있다.
본 발명에 의하면, 조건 설정 명령을 실행함으로써 조건을 미리 기억해 두고, 조건 분기 명령에서는, 미리 설정된 조건을 선택하는 구성으로 함으로써, 사이클 수, 명령 길이의 증대를 억제하여 조건 분기 처리를 고속화시킬 수 있다. 본 발명에 의하면, 동일 조건의 처리를 반복하여 실행하는 횟수가 많을수록, 처리 성능의 향상 효과는 커진다.
본 발명에 있어서는, 조건 설정 명령에 의해 복합 조건을 복수개 기억해 두고 (단, 1 개의 복합 조건을 기억해도 된다), 기억된 복합 조건 중, 임의의 복합 조건을, 복합 조건 분기 명령 실행시에 호출하여, 조건 분기 처리를 실행할 수 있도록 한 것이다. 이러한 구성에 의해, 보다 복잡한 조건이나 다중 루프 처리 등에 적용할 수 있어, 조건 분기를 고속화시킬 수 있다.
본 발명에 관련된 프로세서 장치는, 1 개의 양태로서, 명령 세트로서,
(A) 지정된 복합 조건을 구성하는 복수 조건 각각에 대응하는 비교 연산을 실시하고, 상기 비교 연산의 결과와, 지정된 분기 조건치 사이에서의 비교 연산에 기초하여, 지정된 분기처에 분기되는 처리를 실시하는 복합 조건 분기 명령과,
(B) 복합 조건과, 그 복합 조건을 구성하는 복수의 조건 중 어느 조건인지를 지정하여, 상기 조건을 설정하는 처리를 실시하는 조건 설정 명령을 포함한다.
본 발명에 관련된 프로세서 장치에 있어서는, 명령 디코더로 디코드된 명령을 실행하는 실행부로서, 상기 조건 설정 명령으로 지정된 복합 조건을 1 또는 복수 세트 기억하는 복합 조건 설정 기억부 (1) 와, 상기 복합 조건 분기 명령의 실행시에, 복합 조건 설정 기억부 (1) 에 기억 유지되어 있는 복합 조건 중, 상기 복합 조건 분기 명령으로 지정된 복합 조건을 구성하는 복수 조건 각각에 대해 비교 연산을 실행하는 조건 비교부 (2) 와, 상기 조건 비교부 (2) 에서 실시된 비교 연산의 결과와, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건치를 비교한 결과를 이용하여, 상기 분기처에 분기되는지의 여부를 판정하는 복합 조건 분기 판정부 (3) 를 구비하고 있다.
본 발명에 있어서, 상기 조건 설정 명령은,
오퍼랜드에, 상기 복합 조건 설정 기억부에 있어서의 복합 조건의 저장처의 지정 정보, 및 상기 복합 조건을 구성하는 복수의 조건 중 몇번째의 조건인지의 지정 정보와,
비교 연산의 종별과,
비교 연산 대상의 연산용 레지스터의 레지스터 어드레스, 또는, 상기 연산용 레지스터의 레지스터 어드레스와 즉치 (卽値, immediate) 데이터를 포함하도록 해도 된다.
본 발명에 있어서, 상기 복합 조건 분기 명령은,
오퍼코드에, 비교 연산의 종별 (복합 조건의 복수의 조건에 관한 복수의 비교 연산 결과의 비교 연산의 종별, NE, EQ 등) 을 포함하고,
오퍼랜드에, 상기 복합 조건 설정 기억부에 있어서의 복합 조건의 저장처의 지정 정보와, 상기 분기 조건치와, 상기 분기처를 포함하도록 해도 된다.
본 발명에 있어서, 복합 조건 설정 기억부 (1) 는,
비교 대상의 2 개의 연산용 레지스터의 제 1 및 제 2 어드레스와,
즉치 데이터와,
연산용 레지스터의 데이터간의 비교 연산, 또는, 연산용 레지스터의 데이터와 즉치 데이터와 비교 연산의 종별을 저장하는 플래그와,
비교기 연산의 종별로 이루어지는 조건을, 1 세트로서, 기억하는 조건 기억부 (101, 102, 103) 를, 복합 조건 분기 명령의 복합 조건을 구성하는 복수 조건의 개수에 대응하여 구비한 복합 조건 기억부를, 복수 구비하고 있다 (도 2 의 100, 200, 300, 400).
복합 조건 기억부 (도 2 의 100, 200, 300, 400) 의 각각은, 상기 조건 설정 명령에 의해 지정된 조건 기억부를 선택하는 셀렉터 (104) 를 구비하고 있다.
복합 조건 설정 기억부 (1) 는, 복수의 복합 조건 기억부 (도 2 의 100, 200, 300, 400) 중, 복합 조건 분기 명령에 의해 지정된 복합 조건에 대응하는 복합 조건 기억부를 선택하는 셀렉터 (500) 를 구비하고 있다. 셀렉터 (500) 는, 조건 설정 명령에 의해 지정된 복합 조건 기억부의 선택도 실시한다. 또한, 복합 조건 설정 기억부 (1) 에 있어서, 프로그램의 구성 여하에 따라서는, 4 개의 복 합 조건 기억부 (도 2 의 100, 200, 300, 400) 의 모두를 이용하지 않고, 1 개 혹은 2 개의 복합 조건 기억부를 이용하여 처리를 실행하는 경우도 있다. 4 개의 복합 조건 기억부를 구비한 경우, 4 개의 상이한 복합 조건을 복합 조건 분기 명령의 실행에 앞서 기억 유지해 둘 수 있다는 것이다. 또, 조건 기억부 (101, 102, 103) 의 기억 내용은, 기본적으로, 다음의 조건 설정 명령으로 개서가 실시될 때까지 유지된다.
조건 비교부 (2) 는, 조건 기억부 (예를 들어 도 3 의 101) 에 기억된 상기 제 1 및 제 2 어드레스를 디코드하고, 상기 연산용 레지스터에 제 1, 제 2 레지스터 어드레스를 각각 출력함과 함께, 상기 연산용 레지스터로부터 판독 출력된 데이터를 각각 유지하는 제 1 및 제 2 디코더 (도 3 의 201a, 201b) 와,
상기 복합 조건 기억부에 기억된 즉치 데이터와, 상기 제 2 디코더의 값을 받고, 상기 플래그의 출력에 기초하여 일방을 선택하는 셀렉터 (도 3 의 201c) 와,
상기 제 3 셀렉터의 출력과 상기 제 1 디코더의 출력을 입력으로 하여 받고, 상기 복합 조건 기억부에 기억된 연산 종별에 대응한 연산을 실시하는 비교기 (201d) 와의 세트 (도 3 의 201, 202, 203) 를, 상기 복합 조건 기억부의 조건 기억부 (101, 102, 103) 에 대응하여 구비하고 있다.
상기 복합 조건 설정 기억부에 있어서, 상기 조건 설정 명령의 실행에 의해 설정된 조건은, 상기 조건 설정 명령 후에 별도의 조건 설정 명령이 실행되어, 상기 별도의 조건 설정 명령에 의해 상기 복합 조건 설정 기억부가 다시 선택되어 별도의 조건으로 개서된다.
산술 논리 연산 장치 (도 1 의 7) 에서의 연산 결과를 반영하는 플래그 레지스터 (도 1 의 8) 에 기초하여, 조건 판정을 실시하는 조건 분기 판정부 (9) 의 출력과, 상기 복합 조건 분기 판정부 (3) 로부터의 출력에 입력이 접속되어, 명령 디코더 (4) 로 디코드된 조건 분기 명령이, 상기 복합 조건 분기 명령시에는, 상기 복합 조건 분기 판정부로부터의 출력을 선택하고, 상기 복합 조건 분기 명령 이외의 조건 분기 명령시에는, 상기 조건 분기 판정부의 출력을 선택하는 제 4 셀렉터 (10) 와, 셀렉터 (10) 로부터 출력된 결과의 진위치를 받고, 참(眞)인 경우에는, 명령 디코더 (4) 에서 디코드된 조건 분기 명령으로 지정된 분기처 어드레스를 선택하고, 거짓인 경우에는, 프로그램 카운터 (12) 의 값+1 의 어드레스를 선택하여 프로그램 카운터 (12) 로 설정하는 셀렉터 (11) 를 추가로 구비하고 있다. 이하 실시예에 의거하여 설명한다.
실시예
도 1 은, 본 발명의 일 실시예의 구성을 나타내는 도면이다. 도 1 을 참조하면, 본 실시예의 마이크로 컴퓨터는, 복수의 복합 조건을 기억할 수 있는 복합 조건 설정 기억부 (1) 와, 복합 조건의 개개의 조건에 대해 비교 연산을 실시하는 조건 비교부 (2) 와, 복합 조건 분기 명령에 있어서 프로그램의 분기를 실시하는지의 여부를 판정하는 복합 조건 분기 판정부 (3) 와, 명령 코드를 유지 및 해석하고, 그 명령에 관련하는 블록을 제어하는 명령 디코더 (4) 와, 명령 코드를 기억하고 있는 명령 메모리 (5) 와, 프로세서가 연산을 위해 사용하는 범용의 연산용 레지스터군 (6) 과, 연산 명령에 대응하는 산술 연산이나 논리 연산 등을 실시하는 연산 유닛 (Arithmetic and Logic Unit ; ALU)(7) 과, 연산 유닛의 연산 결과를 기초로 생성되는 각종 플래그를 유지하는 플래그 레지스터 (8) 와, 조건 분기 명령에 있어서 프로그램의 분기를 실시하는지의 여부를 판정하는 조건 분기 판정부 (9) 와, 조건 분기 명령이나 복합 조건 분기 명령으로 입력치를 선택하는 셀렉터 (10) 와, 셀렉터 (10) 의 값을 기초로, 분기처 어드레스나 다음 명령의 어드레스 (현재 프로그램 카운터의 값 PC+1) 를 선택하는 셀렉터 (11) 와, 프로세서의 명령 실행 위치를 나타내는 프로그램 카운터 (PC)(12) 를 구비하고 있다.
여기에서, 발명의 이해를 위해, 특허 문헌 1 등을 참조하여 설명한 복합 조건 분기가 아닌 통상적인 조건 분기 동작에 대해, 도 10 에 나타낸 비교예 (참고 예) 를 이용하여 설명한다. 조건 분기는, 도 10(b) 에 나타내는 바와 같이, 먼저 산술 연산 명령 (ADD r1, 5) 이나 비교 명령 (CMP r1, 100) 과 같은 명령 (i) 를 실행한 후, 조건 분기 명령 (BEQ L1)(ii) 을 실시한다. 이 동작을, 도 10(a) 의 블록도를 이용하여 설명한다.
처음으로 프로그램 카운터 (PC ; 12) 의 값이 나타내는 명령 메모리 (5) 의 어드레스로부터 데이터, 즉 명령 코드가 명령 디코더 (4) 에 페치된다.
이 명령은, 비교 명령 (도 10(b) 의 CMP r1, 100 (i)) 이다.
명령 디코더 (4) 는, 명령 코드를 해석하고, 연산 유닛 (ALU)(7) 에 오퍼코드 (CMP) 와 오퍼랜드 (r1 과 100) 를 부여한다.
연산 유닛 (7) 내의 연산기 (7a) 에서 연산용 레지스터 (6) 로부터 1 번째 레지스터 (r1) 의 값을 판독 출력하고, 값 (100)(즉치 데이터) 과 비교 연산을 실 시한다.
그 연산 결과를 기초로, 플래그 생성부 (7b) 는 각종 플래그치를 계산하고, 플래그 레지스터 (8) 에 저장한다. 도 10 에 있어서의 플래그 (Z, S, E, C, O) 는 이하와 같다.
플래그 (Z) 는 Zero 플래그이며, 연산 결과가 제로일 때 1, 제로 이외일 때 O 의 값을 취한다.
플래그 (S) 는 Sign 플래그이며, 연산 결과가 부(負)의 값일 때 1, 정(正)일때 O 이 된다.
플래그 (E) 는 Even 플래그이며, 연산 결과가 짝수일 때 1, 홀수일 때 0 이 된다.
플래그 (C) 는 Carry 플래그이며, 연산 결과가 자릿수 올림/내림했을 때 1 이 된다
플래그 (O) 는 Overflow 플래그이며, 연산 결과가 자릿수 초과했을 때에 1 이 된다.
명령 디코더 (4) 는, 이 비교 명령은 분기를 수반하지 않은 명령으로 판단하고, 셀렉터 (11) 는 거짓 (F) 을 선택하도록 제어한다.
이로 인해, 다음 어드레스의 명령이 명령 디코더 (4) 에 페치되는 것이 된다.
다음 명령은, 조건 분기 명령 (도 10(b) 의 BEQ L1 (ii)) 이다.
명령 디코더 (4) 는, 명령 코드를 해석하고, 조건 분기 판정부 (9) 에 오퍼 코드 (BEQ) 를 부여하고, 오퍼랜드 (L1), 즉, 분기처 어드레스를 셀렉터 (11) 에 출력한다 (이 값은 명령 디코더 (4) 내의 레지스터에서 유지되어 있다).
조건 분기 판정부 (9) 는, 오퍼코드의 종류에서 Zero 플래그를 선택하고, Zero 플래그의 값이 1 이면 (EQ 가 성립), 참 (T) 을 셀렉터 (11) 에 출력하고, Zero 플래그의 값이 0 이면 (EQ 가 불성립), 거짓 (F) 을 셀렉터 (11) 에 출력한다.
여기에서, 셀렉터 (11) 에 있어서, 조건 분기 판정부 (9) 의 결과가 진 (T) 인 경우에는, 분기처 어드레스 (L1) 가 선택되고, 다음은 그 분기처에 있는 명령이 실행된다. 또, 거짓 (F) 인 경우에는, "PC+1" 이 선택되어, 다음 어드레스의 명령이 실행된다.
이와 같이, 통상적인 조건 분기는, 미리 산술 논리 연산 명령이나 비교 명령 등을 실행되고, 플래그 레지스터 (8) 에 조건 분기하기 위한 정보를 기억해 두고, 그 직후에 실행하는 조건 분기 명령에 있어서, 플래그 레지스터 (8) 에 기억되어 있는 값을, 명령 코드로 지정된 분기 조건에 비추어 평가하여, 분기를 실시하는지의 여부를 판정한다. 즉, 산술 논리 연산 명령이나 비교 명령과, 조건 분기 명령의 2 개의 명령이 쌍으로 실행된다. 이 경우, 루프 내에, 통상적인 조건 분기가 실행되면, 항상 2 개의 명령이 실행되는 것이 된다.
다음으로, 본 발명에 있어서의 복합 조건 분기 명령의 동작에 관하여 설명한다. 본 발명의 일 실시예에 있어서는, 도 1 에 나타낸 바와 같이, 도 10(a) 의 구성에, 조건 설정 명령과, 복합 조건 분기 명령을 명령 세트로서 추가하고 (명령 디코더는, 이들의 추가 명령을 해석할 수 있도록 구성된다), 추가된 명령 (조건 설정 명령과, 복합 조건 분기 명령) 을 실행하는 실행부로서, 복합 조건 설정 기억부 (1), 조건 비교부 (2), 복합 조건 분기 판정부 (3), 복합 조건 분기 판정부 (3) 와 조건 분기 판정부 (9) 의 판정 결과를 선택하는 셀렉터 (10) 를 구비한 것이다.
도 2 는, 도 1 에 나타낸 복합 조건 설정 기억부 (1) 의 구성을 나타내는 도면이다. 도 2 를 참조하면, 복합 조건 설정 기억부 (1) 는, 각각, 복합 조건 분기 명령의 분기 판정에 사용되는 복합 조건을 기억하는 복합 조건 기억부 (100, 200, 300, 400) 와, 복수의 복합 조건 기억부 (100 ∼ 400) 중 어느 것을 유효로 하는지를 선택하는 셀렉터 (500) 를 구비하고 있다.
복합 조건 기억부 (100) 는, 복합 조건을 구성하는 복수의 조건 중 1 번째의 조건을 기억하는 조건 기억부 (101), 복합 조건을 구성하는 복수의 조건 중 2 번째의 조건을 기억하는 조건 기억부 (102), 복합 조건을 구성하는 복수의 조건 중 3 번째의 조건을 기억하는 조건 기억부 (103) 와, 복수의 조건 기억부 (101 ∼ 103) 중 어느 것을 유효로 하는지를 선택하는 셀렉터 (104) 를 구비하고 있다. 또한, 도 2 에서는, 간략화를 위해, 복합 조건 기억부 (200, 300, 400) 의 내부 구성은 도시되지 않았는데, 이들은, 모두 복합 조건 기억부 (100) 와 동일한 구성으로 이루어진다.
조건 기억부 (101) 에 있어서,
r101a 는 연산용 레지스터 (6) 의 제 1 레지스터 어드레스를 기억하는 레지스터,
r101b 는 연산용 레지스터 (6) 의 제 2 레지스터 어드레스를 기억하는 레지스터,
r101c 는 즉치 데이터를 기억하는 레지스터,
r101d 는 R/I 플래그를 기억하는 레지스터 (R=Register : 레지스터 어드레스), I=Immediate : 즉치 (卽値) 의 의미),
r101e 는 비교기 연산의 종류를 기억하는 레지스터이다.
도 3 은, 도 1 의 조건 비교부 (2) 의 구성을 나타내는 도면이다. 본 실시예에서는, 조건 비교부 (2) 는, 비교 연산을 실시하는 조건 비교부 (201, 202, 203) 중 3 개를 갖고 있고, 각각, 조건 기억부 (101, 102, 103) 에 대응하고 있다.
조건 비교부 (201) 는,
연산용 레지스터 (6) 의 레지스터 어드레스를 저장하는, 복합 조건 기억부 (100) 의 조건 기억부 (1O1) 의 레지스터 (「어드레스 레지스터」라고도 한다) (r101a, r101b) 로부터의 어드레스를 받아 디코드하고, 연산용 레지스터 (6) 의 레지스터를 선택하는 디코더 (201a, 201b) 와, 복합 조건 기억부 (100) 의 조건 기억부 (101) 의 R/I 플래그 (r101d) 의 값을 선택 제어 신호로서 입력하고, 복합 조건 기억부 (100) 의 조건 기억부 (1O1) 의 레지스터 (r101c) 로부터의 즉치와, 디코더 (201b) 의 출력을 입력하고, 어느 일방을 선택하는 셀렉터 (201c) 와, 연산용 레지스터 (6) 내의 레지스터치 (디코더 (201a) 의 출력 (r1)) 와, 셀렉터 (201c) 로부터 출력된 값 (r12) 을 비교 연산하는 비교기 (201d) 를 구비하고 있다. 또한, 도 3 에서는, 간략화를 위해, 조건 비교부 (202, 203) 의 내부 구성은 도시되지 않 았는데, 이들은, 모두 조건 비교부 (201) 와 동일한 구성으로 이루어진다.
본 발명에서는, 프로세서의 명령 세트에, 새롭게 조건 설정 명령, 복합 조건 분기 명령을 준비한다.
조건 설정 명령은, 비교 연산을 실시하는 조건을 설정하는 명령이며, 어셈블러의 니모닉에서는 하기와 같이 표시된다.
SETCMP s0, c0, r1, L, r11…(1)
"SETCMP" 는, 조건 설정 명령의 이름을 나타내고 있다.
"sO" 는, 1 번째의 복합 조건 설정을 나타내고 있고, 복합 조건 설정 기억부 (1) 에 있어서의 복합 조건 기억부 (100)(도 2 참조) 를 나타내고 있다. 동일하게, "s1", "s2", "s3" 은, 각각, 복합 조건 설정 기억부 (1) 에 있어서의, 복합 조건 기억부 (200, 300, 400)(도 2 참조) 에 대응한다.
"c0" 는, 1 번째의 조건을 나타내고 있고, 조건 기억부 (101)(도 2 참조) 를 나타내고 있다.
"c1", "c2" 는, 각각 조건 기억부 (102, 103)(도 2 참조) 에 대응한다.
"r1" 및 "r11" 은, 연산용 레지스터 (6) 내의 레지스터 어드레스 (1 및 11) 의 레지스터를 나타내고 있다.
"L" 은 r1 과 r11 의 값을 비교할 때에 사용하는 비교 연산기의 종류 "<" (Less) 를 나타내고 있다.
도 2 에 있어서, 명령 디코더 (4) 에는, 상기 (1) 의 조건 설정 명령의 명령 코드를 해석하여, 비트열로 분해된 상태가 모식적으로 나타나 있다.
즉,
"s0" (00b)(b 는 2 진 표시를 나타낸다) 는 셀렉터 (500) 에 입력되고, 셀렉터 (500) 는 복합 조건 기억부 (100) 를 선택한다.
"c0" (00b) 는 셀렉터 (104) 에 입력되고, 셀렉터 (104) 는 조건 기억부 (101) 를 선택한다.
"r1" (0001b) 는 레지스터 (r101a) 에 입력되어 유지된다.
"r11" (1011b) 는 레지스터 (r101b) 에 입력되어 유지된다.
R/I 플래그 (0b) 는 레지스터 (r101d) 에 입력되어 유지된다.
비교기의 종류 "L" (010b) 은 레지스터 (r101e) 에 입력되어 유지된다.
이 경우, 도 2 의 조건 기억부 (101)(셀렉터 (104) 는 조건 기억부 (101) 를 선택) 의 레지스터 (r101a, r101b, r101d, r101e) 에는, 2진값 1, 11, 0 과, 2 항 연산자 "<" 에 대응하는 부호가 각각 기억 유지된다. 즉치 (r101c) 에는 값은 설정되지 않는다.
이들의 값은, 다음으로 동일한 장소의 조건 기억부에 대한 조건 설정 명령이 실행되지 않는 한 유지된다.
복합 조건 분기 명령이란, 조건 설정 명령으로 설정된 각 조건의 비교 연산을 실시하고, 그 결과와 분기 조건치와의 비교 연산을 실시하는 명령으로, 어셈블러의 니모닉으로는, 하기와 같이 표시된다.
XBNE s0, 0111b, L1…(2)
"XBNE" 는 복합 조건 분기 명령의 이름으로, "NE" 의 부분은 비교 연산기의 종류 "!=" 를 나타내고 있다. 또한, 선두의 "X" 는 통상적인 조건 분기 명령 BNE 의 확장 명령 (복합 조건 분기 명령) 인 것을 나타내고 있다.
"s0" 는 1 번째의 복합 조건 설정을 의미하고, 도 2 의 복합 조건 기억부 (100) 를 선택하는 것을 나타내고 있다.
"0111b" 는 분기 조건치로, 각 조건의 비교 연산 결과와 비교를 실시하는 값을 2 진수로 나타내고 있다.
"L1" 은 조건 분기의 판정 결과가 참인 경우에 분기되는 프로그램의 분기처 어드레스를 나타내고 있다.
도 4 에는, 명령 디코더 (4) 에 있어서, 상기 (2) 의 복합 조건 분기 명령의 명령 코드를 해석하여 비트열로 분해된 상태가 나타나고 있다.
"s0" (00b) 는 셀렉터 (500) 에 입력되고, 셀렉터 (500) 는 복합 조건 기억부 (100) 를 선택한다. 이로 인해, 조건 기억부 (101, 102, 103) 에 각각 기억되어 있는 값 (레지스터 어드레스, 즉치, R/I 플래그, 비교기 선택) 이 조건 비교부 (201, 202, 203) 에 각각 입력되고, 조건 비교부 (201, 202, 203) 에서의 비교 연산 결과 (C0, C1, C2) 가 복합 조건 분기 판정부 (3) 에 각각 2a, 2b, 2c 로서 판독 출력된다.
복합 조건 분기 판정부 (3) 에 있어서, 분기 조건치 (3a) 와 비교 연산 결과 (2a, 2b, 2c) 가 비교기 (3c) 에서 비교 연산되고, 결과 (참 (T)/거짓 (F)) 가 셀렉터 (10) 에 판독 출력된다.
비교기 (3c) 에는, 명령 디코더 (4) 로부터 분기 조건치 (3a) 로서 "0111b" 가 입력되고, 연산 종별 (3b) 로서, "NE" (NOT EQUAL, "!=" 로 표기) 가 입력된다.
분기 조건치 "0111b" 와 비교 연산 결과 (2a, 2b, 2c) 가 "NE" (NOT EQUAL) 인 경우, 비교기 (3c) 의 출력은 참 (T) 이 된다.
여기에서, 비교 연산 결과 (2a, 2b, 2c) 는, 도 8(a) 에서 나타내는 바와 같이, 분기 조건치 (3a) 의 비트 0, 1, 2 에 각각 대응된다. 또한, 분기 조건치 (3a) 의 값이 "0011b" 인 경우에는, 도 8(b) 와 같이 된다.
명령 디코더 (4) 는, 복합 조건 분기 명령 ("XBNE" 등, "X" 로 시작되는 니모닉) 인 경우에는, 출력 신호 (10a) 의 값 1 (2 진값) 을 선택 제어 신호로서 셀렉터 (10) 에 출력한다. 이 때문에, 셀렉터 (10) 로부터는, 복합 조건 분기 판정부 (3) 에서의 비교 연산 결과가, 그대로 셀렉터 (11) 로 출력된다.
한편, 통상적인 조건 분기 명령인 경우에는, 명령 디코더 (4) 는, 신호 (10a) 로서 0 을 셀렉터 (10) 에 출력하고, 셀렉터 (10) 는, 조건 분기 판정부 (9) 의 출력을 선택하여 셀렉터 (11) 에 출력한다. 조건 분기 판정부 (9) 는, 통상적인 분기 명령에 대해, 연산 유닛 (7) 에 있어서의 연산의 결과가 설정되는 플래그 레지스터 (8) 에 관한 조건 분기 판정을 실시한다.
복합 조건 분기 판정부 (3) 에서의 비교 연산 결과가 참 (T) 인 경우에는, 셀렉터 (11) 는 분기처 어드레스 "L1" 을 선택하여 프로그램 카운터 (12) 에 설정한다. 이 때문에, 다음의 사이클에서는, 분기처 어드레스 "L1" 에 있는 명령이 페치되어, 명령 디코더 (4) 에 입력되어 실행된다.
복합 조건 분기 판정부 (3) 에서의 비교 연산 결과가 거짓 (F) 인 경우에는, 셀렉터 (11) 는 "PC+1" 을 선택하여 프로그램 카운터 (12) 에 설정된다. 이 때문에, 어드레스 "PC+1" 의 명령이 페치·디코드·실행된다.
이와 같이 하여 복합 조건 분기 명령은, 복합 조건 설정 기억부 (1) 에 기억되어 있는 특정의 복합 조건을 선택함과 함께, 비교 연산을 동시에 평가하고, 분기를 실시하는지의 여부를 판정하는 것을 1 개의 명령으로 실행한다.
본 실시예에 있어서의 복합 조건 분기 명령의 동작에 대해 도 9 의 타이밍 차트를 참조하여 설명한다.
도 9 의 페치 사이클 6-1 에 있어서의 1 회째의 복합 조건 분기 명령
XBNE s0, 0111b, L1
에 있어서, 명령 페치 사이클 F 에서, 명령 디코더 (4) 에 명령 코드가 명령 메모리 (5) 로부터 입력된다.
다음의 명령 디코드 사이클 D 에서, 입력된 명령 코드는 명령 디코더 (4) 에서, 도 4 에 나타내는 바와 같이 해석된다.
명령 디코더 (4) 에 있어서, XBNE 의 "NE" (!=) 는 "001b" 이고, 비교기 (3c) 에 설정된다. 또한, 복합 조건 분기 명령이므로, 출력 신호 (10a) 의 값 1 (2 진치) 을 선택 제어 신호로서 셀렉터 (10) 에 출력된다. 1 번째의 복합 조건 설정으로 "00b" 가 복합 조건 설정 기억부 (1) 의 셀렉터 (500) 에 공급된다. 분기 조건치 "0111b" 는 "0111b" 로서 비교기 (3c) 에 설정된다. "L1" 은 "XXXXXXXXb" (점프처 어드레스 (L1) 를 나타내는 값) 로서 셀렉터 (11) 에 출력된다.
명령 실행 사이클 EX (6-A) 에 있어서, 복합 조건의 3 개의 조건에 대응하고, 조건 비교부 (2) 의 조건 비교부 (201, 202, 203)(도 3 참조) 에서는 연산용 레지스터 (6) 의 레지스터를 지정하는 조건 기억부 (101, 102, 103) 의 레지스터 (r101a, r101b) 를 이용하여, 디코더 (201a, 201b) 가 연산용 레지스터 (6) 중에서 해당하는 연산용 레지스터 (6) 의 값을 판독 출력하고, 1 번째의 복합 조건 설정의 복합 조건의 비교 연산이 실시되어, 조건 비교부 (2) 의 조건 비교부 (201, 202, 203) 로부터 각각 비교 연산 결과 (c0, c1, c2) 가 출력된다. 이어지는 명령 실행 사이클 EX (6-B) 에 있어서, 비교기 (3c) 에서는, 비교 연산 결과 (c0, c1, c2)=(1, 0, 0) 를 분기 조건치 "0111b" 와 비교하여, 비교 연산 결과 (c0, c1, c2) 가 모두 1 이 아니므로 조건 NE (!=) 가 성립되고, 비교기 (3c) 는 참 (T) 을 출력하고, 셀렉터 (11) 는 점프처 어드레스 (L1) 를 출력한다. 다음의 명령 페치 사이클 (6-C) 에 있어서, 프로그램 카운터 (PC)(12) 에 설정된 점프처 어드레스 (L1) 의 명령이 페치된다.
도 9 의 페치 사이클 (6-2) 에 있어서의 2 회째의 복합 조건 분기 명령
XBNE s0, 0111b, L1
의 명령 실행 사이클 EX (6-D) 에 있어서, 조건 비교부 (201, 202, 203) 의 비교 연산 결과 (c0, c1, c2) 는 (1, 1, 1) 이 된다. 이어지는 명령 실행 사이클 EX (6-E) 에 있어서, 비교기 (3c) 는, 분기 조건치 "0111b" 와 비교하여, 비교 연산 결과 (c0, c1, c2) 가 모두 1 이므로, 조건 NE 가 성립되지 않게 되고, 비교기 (3c) 는 거짓 (F) 을 출력하고, 셀렉터 (11) 는 다음의 어드레스 (n+1) 를 출력 한다. 다음의 명령어 페치 사이클 (6-F) 에 있어서, 프로그램 카운터 (PC)(12) 에 설정된 어드레스 (n+1) 의 명령이 페치된다.
도 5 에는, 본 실시예에 있어서, 복합 조건을 1 개만 사용한 프로그램의 예가 나타나 있다. 미리, 상기 (1) 의 조건 설정 명령에 의해, 3 개의 조건 (복합 조건) 을 설정하고 있다 (도 5(a)). 도 5 에 있어서 "//" 는 주석 기호이며, 오른쪽란이 주석인 것을 나타내고 있다.
도 5(a) 에 있어서, SETCMP s0, c0, r1, L, r11 은, 도 1 의 복합 조건 기억부 (100), 조건 기억부 (101) 를 선택하고, r1<r11 의 비교 연산을 설정 기억한다.
SETCMP s0, c1, r2, GE, 10 은, 도 1 의 복합 조건 기억부 (100), 조건 기억부 (102) 를 선택하고, r2≥10 의 비교 연산을 설정 기억한다.
SETCMP s0, c2, r3, EQ, 13 은, 도 1 의 복합 조건 기억부 (100), 조건 기억부 (102) 를 선택하고, r3=R13 의 비교 연산을 설정 기억한다.
다음으로, 이들의 조건을 변화시키는 어떠한 처리를 실시한 후, 상기 (2) 의 복합 조건 분기 명령을 실행한다 (도 5(b)).
여기에서, 복합 조건, 조건 c0, c1, c2 가 모두 성립하지 않을 때에는, 라벨 L1 로 점프하고, 처리를 반복하여 실시한다 (명령 XBNE S0, 0111b, L1 참조).
도 6 및 도 7 에는, 본 실시예에 있어서, 복합 조건을 복수 사용한 프로그램의 예가 나타나 있다. 또한, 도 6 및 도 7 은 단순히 도면의 작성 상황에 의해 나뉘어져 있고, 도 6 의 최하행의 명령 (SETCMP s3, c2, r6, NE, 4) 에 이어, 도 7 의 최상행의 명령 (LD r10, 0) 이 계속되는 것으로 한다.
제 1 복합 조건을, 3 개의 조건 설정 명령 (SETCMP) 을 이용하여, 도 6(a) 와 같이 설정한다. 도 6(a) 의 3 개의 조건 설정 명령 (SETCMP) 은, 모두 복합 조건 설정 기억부 (1) 의 복합 조건 기억부 (100) 를 지정하고 있고, 복합 조건 기억부 (100) 내의 조건 기억부 (101, 102, 103)(도 2 참조) 에 각각의 조건이 설정되어 기억 유지된다.
동일하게, 제 2 ∼ 4 의 복합 조건을, 각각, 3 개의 조건 설정 명령을 이용하여, 도 6(b), 도 6(c), 도 6(d) 와 같이 설정한다. 도 6(b), 도 6(c), 도 6(d) 에 있어서, 3 개의 조건 설정 명령 (SETCMP) 에 의해 설정되는 복합 조건은, 복합 조건 설정 기억부 (1) 의 복합 조건 기억부 (200, 300, 400) 내의 조건 기억부 (101, 102, 103)(도 2 참조) 에 설정되어 기억 유지된다.
복합 조건 분기 명령은, 예를 들어 도 7(e) 와 같이 기술된다. 이 어셈블러 언어의 기술에 대응하는 언어 C 의 소스 프로그램은, 도 7(f) 에 나타난다.
도 7(e) 의 어셈블러 언어에 의한 소스, 도 7(f) 의 언어 C 에 의한 소스 순서의 개략을 이하에 설명한다. 루프 (do 루프) 의 직전에 연산용 레지스터 (6) 의 r10 을 0 으로 한다. do 루프에서는, 먼저 처리 A (r1 ∼ r3, r11, r13 의 값을 갱신하는 처리) 에 이어, 복합 조건 (r1<r11) 또한 (r2≥10) 또한 (r3==r13)(조건 s0c0, s0c1, s0c2) 가 성립되는지의 여부를 판단하여, 성립되는 경우, 처리 B 를 실행시킨다. 그 복합 조건 성립되지 않는 경우에는, (r2==0)(조건 s1c0), (r4>r12) 또한 (r4!=r14)(조건 s1c1, s1c2) 가 성립되는 경우, 처리 C 를 실행시킨다.
(r2==0) 이 성립되지 않는 경우, (r2=5)(조건 s2c0) 가 성립되는 경우, 처리 D 를 실행하고, 이어서, (r5≥3) 또한 (r5<12) 가 성립되는지의 여부를 판단하여, 성립되는 경우, 처리 E 를 실행하고, 성립되지 않는 경우, (r6≥1) 또한 (r6<10) 또한 (r6!=4) 가 성립되는지의 여부를 판단하여, 성립되는 경우, 처리 F 를 실행하고, 그 후 처리 G 를 실행하고, 이어서, do 루프의 엑시트 (exit) 조건 (r10==0) 이 성립되는 한, 라벨 L_LOOP 로부터의 처리를 반복한다는 것이다. 또한, 연산용 레지스터 (6) 의 r10 은, 처리 A 내지 G 중에서 갱신되는 것으로 한다.
본 실시예에 의하면, 도 7(e) 에 나타내는 바와 같은 어셈블러 프로그램에 의해, 도 7(f) 에 나타내는 바와 같은 복잡한 조건 판단을, 고속으로 처리할 수 있다. 즉, 도 7(f) 와 같은, 복잡한 조건 판단 분기 처리를 실시할 때, 본 실시예에서는, 복합 조건을, 도 6(a) 내지 도 6(d) 의 조건 설정 명령에 의해, 사전에, 복합 조건 설정 기억부 (1) 에 기억해 둠으로써, 예를 들어 루프 처리 내에, 조건 분기 명령과, 그 조건 분기 명령의 직전에 놓여 그 조건 분기 명령으로 사용되는 조건을 설정하는 명령 (예를 들어 비교 명령) 의 세트를 삽입하는 것은 불필요해져, 루프 처리 내에 있어서, 조건 분기 명령만으로 조건 판단 (분기 성립·비성립의 판정을 위한 조건 판단) 을 실시할 수 있다.
또한, 본 실시예에서는, 복합 조건 설정 기억부 (1) 로서, 4 개의 복합 조건 기억부 (100, 200, 300, 400) 를 구비하고, 각 복합 조건 기억부가 3 개의 조건 기억부 (101, 102, 103) 를 구비한 구성을 예로서 설명하였는데, 본 발명은 이러한 구성에 제한되는 것이 아니고, 복합 조건 기억부, 조건 기억부는 각각 적어도 1 개 구비한 구성이면 되고, 그 수는 임의이다.
또한, 본 실시예의 변형예로서, 복수의 복합 조건 기억부 (100, …400) 를 구비한 복합 조건 설정 기억부 (1) 를 2 개 이상 구비한 구성으로 해도 된다.
이 경우, 복합 조건 분기 명령에 복합 조건 설정 기억부 (1) 를 선택하는 비트를 추가하여 명령으로 선택하도록 해도 된다. 예를 들어, 복합 조건 설정 기억부의 1 개를 인터럽트 처리용으로 하고, 인터럽트 처리에 들어가면, 그 복합 조건 설정 기억부를 자동적으로 선택하도록 제어해도 된다.
혹은, 멀티태스크 환경에 있어서의 태스크마다 복수의 복합 조건 설정 기억부 (1) 를 각각 자동적으로 선택하도록 제어해도 된다. 복수의 복합 조건 설정 기억부 (1) 를 태스크 ID 에 관련지어 관리하고, 태스크 ID 로 복합 조건 설정 기억부 (1) 를 선택하도록 해도 된다. 또한, 본 실시예에서는, 조건 기억부, 복합 조건 기억부, 복합 조건 설정 기억부 (혹은, 복수의 복합 조건 설정 기억부) 라는 구성을 예로 설명하였는데, 이러한 구성으로 한정되지 않고, 복합 조건 설정 기억부의 기억 구조 계층화의 레벨은 임의이다.
상기 본 실시예에서는, 조건 비교부 (2) 에, 조건 비교용의 비교기를 3 개 구비한 예를 설명하였는데, 조건 비교용의 비교기는 1 개 이상이면 되고, 그 개수는 임의이다. 단, 복합 조건 명령으로 동시에 평가하는 복합 조건의 개수보다 적은 경우, 2 사이클 이상의 클록으로 나누어 비교 연산을 실시하게 되어, 그 만큼 복합 조건 분기 명령의 클록 사이클 수가 증가하게 된다.
본 실시예의 작용 효과에 대해 이하에 설명한다 (상기 특허 문헌 1, 2 등의 차이점에 대해서도 설명한다).
특허 문헌 1 및 도 10 의 비교예에서는, 비교와 분기의 2 개의 명령을 조합시켜 조건 분기를 실시하고 있다. 이에 대하여, 본 발명에 의하면, 복합 조건을 복합 조건 설정 기억부 (1) 내의 지정된 기억 영역 (저장처) 에 저장하는 조건 설정 명령 (SETCMP) 과, 지정된 복합 조건을, 명령 실행시에, 복합 조건 설정 기억부 (1) 내의 저장처의 기억 영역으로부터 꺼내어 비교 연산할 수 있도록 한 복합 조건 분기 명령을 갖고, 조건 설정 명령에 의해 미리 조건의 설정을 실시해 둠으로써, 조건 분기되는 단계에서는, 1 개의 조건 분기 명령의 실행에 필요한 단계 수만 필요로 한다. 이 때문에, 본 실시예에 의하면, 보다 고속으로 분기 처리할 수 있다. 특히, 동일한 조건을 반복하여 실행하는 루프 처리에 적용함으로써, 관련 기술과 비교하여, 고속성이 증가되는 효과가 있다. 또, 본 실시예에 있어서는, 복수의 복합 조건 기억부 (도 2 의 100, 200, 300, 400) 를 구비함으로써, 복합 조건을 복수개 기억시킬 수 있다. 이 때문에, 보다 복잡한 조건의 조합이나 다중 루프 처리에 적용시킬 수 있어 고속화를 도모할 수 있다.
또한, 상기한 특허 문헌 2 의 경우, 복합 조건 설정 기억부 내의 조건 기억부에 상등하는 것은 1 세트 (단일 조건) 밖에 없다. 이에 대하여, 본 발명에 있어서는, 조건 기억부를 복수 세트 (복합 조건) 갖고, 그들의 세트 중 어느 것을 선택하는지를 지정하는 셀렉터를 구비하고, 추가로 복합 조건을 복수개를 구비하고 있다. 특허 문헌 2 에 있어서는, 종래의 일반적인 수법과 동일하게, 비교 또는 연산 명령 후에, 조건 분기 명령을 실행한다는 2 개의 명령을 세트로서, 조건 분기 를 실시하는 방식의 구성으로 되어 있다. 특허 문헌 2 에 있어서는, 제 1 및 제 2 조건 레지스터에서 기억하고 있는 내용 (초과, 제로, 부호 등) 에 대해서는, 단일 조건을 기억하고 있다. 또, 특허 문헌 2 에 있어서는, 연산기 (도시되어 있지 않다) 로부터, 연산 결과의 출력 신호 (외부 상태 신호) 중 어느 것을 조건 부호 선택기에서 선택하고 있는 점에서, 외부 상태 신호를 생성하는 연산은, 조건 분기 명령보다 전에 실행되어 있어야 한다. 이와 같이, 특허 문헌 2 에 개시된 발명은, 복합 조건 분기를 위한 복수의 조건을 미리 설정 (기억) 하거나, 설정된 조건을, 조건 분기 명령을 처리할 때에 실행한다는 구성과는 완전히 다르다는 것을 알 수 있다.
또한, 상기 특허 문헌의 각 개시를, 본서에 인용하여 도입하는 것으로 한다. 본 발명의 전체 개시 (청구의 범위를 포함한다) 의 범위 내에 있어서, 더욱 그 기본적 기술 사상에 기초하여, 실시 형태 내지 실시예의 변경·조정이 가능하다. 또, 본 발명의 청구의 범위의 범위 내에 있어서 여러 가지의 개시 요소의 다양한 조합 내지 선택이 가능하다. 즉, 본 발명은, 청구의 범위를 포함한 전체 개시, 기술적 사상에 따라 당업자이면 할 수 있는 각종 변형, 수정을 포함하는 것은 물론이다.
도 1 은 본 발명의 일 실시예의 구성을 나타내는 도면.
도 2 는 본 발명의 일 실시예에 있어서의 복합 조건 기억부의 구성을 나타내는 도면.
도 3 은 본 발명의 일 실시예에 있어서의 조건 비교부와 그 관련 부분의 구성을 나타내는 도면.
도 4 는 본 발명의 일 실시예에 있어서의 복합 조건 분기 판정부와 그 관련 부분의 구성을 나타내는 블록도.
도 5 는 본 발명의 일 실시예에 있어서 조건 설정 명령과 복합 조건 분기 명령을 사용한 프로그램의 예를 나타내는 도면.
도 6 은 본 발명의 일 실시예에 있어서 조건 설정 명령과 복합 조건 분기 명령을 사용한 프로그램의 예를 나타내는 제 1 도면.
도 7 은 본 발명의 일 실시예에 있어서 조건 설정 명령과 복합 조건 분기 명령을 사용한 프로그램의 예를 나타내는 제 2 도면.
도 8 은 본 발명의 일 실시예에 있어서의 비교 연산 결과와 분기 조건치 비트의 대응을 나타내는 도면.
도 9 는 본 발명의 일 실시예의 동작을 나타내는 타이밍 차트.
도 10 은 비교예의 구성과 조건 분기 명령을 설명하는 도면.
도 11 은 특허 문헌 1 의 동작을 설명하기 위한 타이밍 차트.
※도면의 주요 부분에 대한 부호의 설명
1 복합 조건 설정 기억부
2 조건 비교부
3 복합 조건 분기 판정부
3c 비교기
4 명령 디코더
5 명령 메모리
6 연산용 레지스터
7 연산 유닛
7a 연산기
7b 플래그 생성부
8 플래그 레지스터
9 조건 분기 판정부
10 셀렉터
11 셀렉터
12 프로그램 카운터
100, 200, 300, 400 복합 조건 기억부
101, 102, 103 조건 기억부
104 셀렉터
201, 202, 203 조건 비교부
201a, 201b 디코더
201c 셀렉터
201d 비교기
500 셀렉터

Claims (14)

  1. 명령 세트로서, 조건 성립의 유무에 따라, 분기처에 분기/비분기되는 조건 분기 명령과, 상기 조건을 설정하는 조건 설정 명령을 포함하고,
    상기 조건 설정 명령의 실행시, 상기 조건 설정 명령으로 지정된 조건을 기억하는 조건 설정 기억부와,
    상기 조건 분기 명령의 실행시, 상기 조건 설정 기억부에 기억된 조건 중 상기 조건 분기 명령으로 선택된 조건에 대응하는 비교 연산을 실시하는 조건 비교부와,
    상기 조건 비교부에서의 비교 연산 결과에 기초하여, 분기처에 분기되는지의 여부를 판정하는 조건 분기 판정부를 구비하고,
    상기 조건 분기 명령이 분기 판정용의 조건으로서, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 조건 분기 명령으로 이루어지고,
    상기 복합 조건 분기 명령은 오퍼코드에 비교 연산의 종별을 포함하고,
    오퍼랜드에,
    상기 조건 설정 기억부에 있어서의 복합 조건의 저장처의 지정 정보와,
    분기 조건치와,
    분기처를 포함하는 것을 특징으로 하는 프로세서 장치.
  2. 제 1 항에 있어서,
    상기 조건 설정 기억부는 상기 복합 조건 분기 명령의 복합 조건을 구성하는 복수의 조건을 기억하는 복합 조건 기억부를 적어도 1 개 구비함과 함께, 상기 복합 조건 분기 명령으로 지정된 복합 조건 기억부를 선택하는 회로를 구비하고,
    상기 조건 비교부는 상기 복합 조건 분기 명령의 실행시, 상기 복합 조건 분기 명령으로 지정된 복합 조건 기억부에 유지된 복수 조건 각각에 대해 비교 연산을 실시하는 것을 특징으로 하는 프로세서 장치.
  3. 제 2 항에 있어서,
    상기 조건 비교부는 상기 복합 조건 분기 명령으로 지정된 복합 조건 기억부의 복수의 조건을 병렬로 비교하는 복수의 비교기를 구비하고,
    상기 조건 분기 판정부는 상기 복수의 비교기에서의 비교 결과에 기초하여, 분기처에 분기되는지의 여부를 판정하는 것을 특징으로 하는 프로세서 장치.
  4. 제 2 항에 있어서,
    상기 조건 설정 명령은 상기 조건 설정 기억부의 복합 조건 기억부 중, 어느 복합 조건 기억부를 이용하고, 상기 복합 조건 기억부에 있어서 몇번째의 조건을 설정할지를 오퍼랜드로 지정하는 것을 특징으로 하는 프로세서 장치.
  5. 명령 세트로서, 지정된 복합 조건을 구성하는 복수 조건 각각에 대응하는 비교 연산을 실시하고, 상기 비교 연산의 결과와, 지정된 분기 조건치 사이에서의 비교 연산에 기초하여, 지정된 분기처에 분기되는 처리를 실시하는 복합 조건 분기 명령과,
    복합 조건과, 그 복합 조건을 구성하는 복수의 조건 중 어느 조건인지를 지정하고, 상기 조건을 설정하는 처리를 실시하는 조건 설정 명령을 포함하고,
    복수의 상기 조건 설정 명령의 실행에 의해 설정되는 복수의 조건으로 이루어지는 복합 조건을 기억하는 복합 조건 설정 기억부와,
    상기 복합 조건 분기 명령의 실행시에, 상기 복합 조건 설정 기억부에 기억 유지되어 있는 복합 조건 중, 상기 복합 조건 분기 명령으로 지정된 복합 조건을 구성하는 복수 조건 각각에 대해 비교 연산을 실시하는 조건 비교부와,
    상기 조건 비교부에서 실시된 비교 연산의 결과와, 상기 복합 조건 분기 명령으로 지정된 상기 분기 조건치를 비교한 결과를 이용하여, 상기 분기처에 분기 되는지의 여부를 판정하는 복합 조건 분기 판정부를 구비하고,
    상기 복합 조건 분기 명령은 오퍼코드에 비교 연산의 종별을 포함하고,
    오퍼랜드에,
    상기 복합 조건 설정 기억부에 있어서의 복합 조건의 저장처의 지정 정보와,
    분기 조건치와,
    분기처를 포함하는 것을 특징으로 하는 프로세서 장치.
  6. 제 5 항에 있어서,
    상기 조건 설정 명령은, 오퍼랜드에,
    상기 복합 조건 설정 기억부에 있어서의 복합 조건의 저장처의 지정 정보, 및, 상기 복합 조건을 구성하는 복수의 조건 중 몇번째의 조건인지의 지정 정보와,
    비교 연산의 종별과,
    비교 연산 대상의 연산용 레지스터의 레지스터 어드레스, 또는, 상기 연산용 레지스터의 레지스터 어드레스와 즉치 데이터를 포함하는 것을 특징으로 하는 프로세서 장치.
  7. 삭제
  8. 제 5 항에 있어서,
    상기 복합 조건 설정 기억부는,
    비교 대상의 2 개의 연산용 레지스터의 제 1 및 제 2 어드레스와,
    즉치 데이터와,
    연산용 레지스터의 데이터간의 비교 연산, 또는, 연산용 레지스터의 데이터와 즉치 데이터와 비교 연산의 종별을 저장하는 플래그와,
    비교기 연산의 종별로 이루어지는 조건을 1 세트로 하여 기억하는 조건 기억부를, 상기 복합 조건 분기 명령의 복합 조건을 구성하는 복수 조건의 개수에 대응하여 구비한 복합 조건 기억부를 복수 구비하고,
    상기 복합 조건 기억부 각각은, 상기 조건 설정 명령에 의해 지정된 조건 기억부를 선택하는 제 1 셀렉터를 구비하고,
    상기 복합 조건 설정 기억부는, 상기 복수의 복합 조건 기억부 중, 상기 복합 조건 분기 명령에 의해 지정된 복합 조건에 대응하는 복합 조건 기억부를 선택하는 제 2 셀렉터를 구비하고,
    상기 제 2 셀렉터는, 상기 조건 설정 명령에 의해 지정된 복합 조건 기억부 의 선택도 실시하는 것을 특징으로 하는 프로세서 장치.
  9. 제 8 항에 있어서,
    상기 조건 비교부는 상기 조건 기억부에 기억된 상기 제 1 및 제 2 어드레스를 디코드하고, 상기 연산용 레지스터에 제 1, 제 2 레지스터 어드레스를 각각 출력함과 함께, 상기 연산용 레지스터로부터 판독 출력된 데이터를 각각 유지하는 제 1 및 제 2 디코더와,
    상기 복합 조건 기억부에 기억된 즉치 데이터와, 상기 제 2 디코더의 값을 받아, 상기 플래그의 출력에 기초하여 일방을 선택하는 제 3 셀렉터와,
    상기 제 3 셀렉터의 출력과 상기 제 1 디코더의 출력을 입력으로 하여 받고, 상기 복합 조건 기억부에 기억된 연산 종별에 대응한 연산을 실시하는 비교기와의 세트를, 상기 복합 조건 기억부 내의 상기 복수의 조건 기억부에 대응하여 구비하고 있는 것을 특징으로 하는 프로세서 장치.
  10. 제 5 항에 있어서,
    상기 복합 조건 설정 기억부에 있어서, 상기 조건 설정 명령의 실행에 의해 기억된 조건은, 상기 조건 설정 명령 후에 별도의 조건 설정 명령이 실행되고, 상기 별도의 조건 설정 명령에 의해 상기 복합 조건 설정 기억부가 다시 선택되어 별도의 조건을 새로 기록할 때까지 유지되는 것을 특징으로 하는 프로세서 장치.
  11. 제 5 항, 제 6 항, 제 8 항 내지 제 10 항 중 어느 한 항에 있어서,
    산술 논리 연산 장치에서의 연산 결과를 반영하는 플래그 레지스터에 기초하여, 조건 판정을 실시하는 조건 분기 판정부의 출력과, 상기 복합 조건 분기 판정부로부터의 출력에 입력이 접속되고, 명령 디코더로 디코드된 조건 분기 명령이, 상기 복합 조건 분기 명령시에는, 상기 복합 조건 분기 판정부로부터의 출력을 선택하고, 상기 복합 조건 분기 명령 이외의 조건 분기 명령시에는, 상기 복합 조건 분기 판정부의 출력을 선택하는 제 4 셀렉터와,
    상기 제 4 셀렉터로부터 출력된, 상기 복합 조건 분기 판정부 또는 상기 조건 분기 판정부의 출력을 받아, 참인 경우에는, 실행하는 조건 분기 명령의 분기 어드레스를 선택하고, 거짓인 경우에는, 현재의 프로그램 카운터의 값을 1 개 증분시킨 어드레스를 선택하여, 프로그램 카운터에 설정하는 제 5 셀렉터를 추가로 구비하고 있는 것을 특징으로 하는 프로세서 장치.
  12. 제 5 항, 제 6 항, 제 8 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 복합 조건 설정 기억부를 복수 구비하고, 상기 복수의 복합 조건 설정 기억부 중 1 개를 선택하는 수단을 구비하고 있는 것을 특징으로 하는 프로세서 장치.
  13. 프로세서에 있어서의 조건 분기의 처리 방법으로서,
    명령 세트에 조건 성립의 유무에 따라, 분기처에 분기/비분기되는 조건 분기 명령과, 상기 조건을 기억시키는 조건 설정 명령을 포함하고,
    복수의 조건 설정을 위해, 상기 조건 설정 명령을 복수회 실행함으로써 복수의 조건을 기억부에 기억해 두고,
    조건 비교부가, 상기 조건 분기 명령의 실행시, 상기 조건 설정 명령에 의해 미리 기억되어 있는 복수의 상기 조건 중, 상기 조건 분기 명령으로 선택된 조건에 관하여 비교 연산을 실시하고,
    조건 분기 판정부가, 상기 비교 연산 결과에 기초하여, 분기처에 분기되는지의 여부를 판정하고,
    상기 조건 분기 명령이 분기 판정용의 조건으로서, 복수의 조건으로 이루어지는 복합 조건을 포함하는 복합 조건 분기 명령으로 이루어지고,
    상기 복합 조건 분기 명령은 오퍼코드에 비교 연산의 종별을 포함하고,
    오퍼랜드에,
    상기 기억부에 있어서의 복합 조건의 저장처의 지정 정보와,
    분기 조건치와,
    분기처를 포함하는 것을 특징으로 하는 조건 분기 처리 방법.
  14. 제 13 항에 있어서,
    복수의 상기 조건 설정 명령을 실행함으로써, 상기 복합 조건 분기 명령의 복합 조건을 구성하는 복수의 조건을 1 세트로 하여 1 세트 또는 복수 세트를 기억해 두고,
    상기 복합 조건 분기 명령의 실행시, 상기 조건 분기 명령에 의해 미리 설정된 복합 조건 중 상기 복합 조건 분기 명령으로 지정된 복합 조건이 선택되고, 선택된 복합 조건을 구성하는 복수 조건 각각에 대응하는 비교 연산이 실시되어, 복수 조건의 비교 연산 결과에 기초하여 분기 판정을 실시하고,
    상기 복합 조건에 의한 조건 분기 처리를 1 개의 복합 조건 분기 명령으로 실행할 수 있도록 하여 이루어지는 것을 특징으로 하는 조건 분기 처리 방법.
KR1020080053387A 2007-06-07 2008-06-05 프로세서 장치 및 복합 조건 처리 방법 KR100995269B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2007-00151927 2007-06-07
JP2007151927A JP2008305185A (ja) 2007-06-07 2007-06-07 プロセッサ装置及び複合条件処理方法

Publications (2)

Publication Number Publication Date
KR20080108053A KR20080108053A (ko) 2008-12-11
KR100995269B1 true KR100995269B1 (ko) 2010-11-19

Family

ID=40133452

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080053387A KR100995269B1 (ko) 2007-06-07 2008-06-05 프로세서 장치 및 복합 조건 처리 방법

Country Status (5)

Country Link
US (1) US7797519B2 (ko)
JP (1) JP2008305185A (ko)
KR (1) KR100995269B1 (ko)
CN (1) CN101320324A (ko)
TW (1) TWI375909B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332620B2 (en) * 2008-07-25 2012-12-11 Freescale Semiconductor, Inc. System, method and computer program product for executing a high level programming language conditional statement
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
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
US8660132B2 (en) * 2010-06-28 2014-02-25 Avaya Inc. Control plane packet processing and latency control
WO2020181670A1 (en) * 2019-03-11 2020-09-17 Huawei Technologies Co., Ltd. Control flow optimization in graphics processing unit
CN111679785A (zh) 2019-03-11 2020-09-18 三星电子株式会社 用于处理操作的存储器装置及其操作方法、数据处理系统
US11029920B1 (en) * 2020-10-21 2021-06-08 Chariot Technologies Lab, Inc. Execution of a conditional statement by an arithmetic and/or bitwise unit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100764895B1 (ko) * 1991-07-08 2007-10-09 세이코 엡슨 가부시키가이샤 고성능 알아이에스씨 마이크로프로세서 구조

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59165141A (ja) * 1983-03-11 1984-09-18 Hitachi Ltd デ−タ処理装置
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
JP2928680B2 (ja) 1992-03-30 1999-08-03 株式会社東芝 複合条件処理方式
JPH06290044A (ja) * 1992-06-04 1994-10-18 Matsushita Electric Ind Co Ltd 順序制御回路
JPH06309165A (ja) * 1993-04-26 1994-11-04 Matsushita Electric Ind Co Ltd 情報処理装置
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
JP3494489B2 (ja) * 1994-11-30 2004-02-09 株式会社ルネサステクノロジ 命令処理装置
JPH1055275A (ja) * 1996-08-09 1998-02-24 Nissan Motor Co Ltd 情報処理装置
US6598153B1 (en) * 1999-12-10 2003-07-22 International Business Machines Corporation Processor and method that accelerate evaluation of pairs of condition-setting and branch instructions
JP2001344100A (ja) * 2000-06-02 2001-12-14 Sharp Corp 複数のフラグレジスタを備えた中央演算処理装置
KR20050078703A (ko) 2004-01-31 2005-08-08 삼성전자주식회사 하나 이상의 조건들을 동시에 결정하는 마이크로 프로세서
JP2007272353A (ja) * 2006-03-30 2007-10-18 Nec Electronics Corp プロセッサ装置及び複合条件処理方法
JP2009163624A (ja) * 2008-01-09 2009-07-23 Nec Electronics Corp プロセッサ装置及び条件分岐処理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100764895B1 (ko) * 1991-07-08 2007-10-09 세이코 엡슨 가부시키가이샤 고성능 알아이에스씨 마이크로프로세서 구조

Also Published As

Publication number Publication date
TWI375909B (en) 2012-11-01
CN101320324A (zh) 2008-12-10
US20080313443A1 (en) 2008-12-18
KR20080108053A (ko) 2008-12-11
JP2008305185A (ja) 2008-12-18
US7797519B2 (en) 2010-09-14
TW200915177A (en) 2009-04-01

Similar Documents

Publication Publication Date Title
KR100995269B1 (ko) 프로세서 장치 및 복합 조건 처리 방법
JP2009163624A (ja) プロセッサ装置及び条件分岐処理方法
US5442756A (en) Branch prediction and resolution apparatus for a superscalar computer processor
JP2007272353A (ja) プロセッサ装置及び複合条件処理方法
US20080141229A1 (en) Processor, program conversion apparatus, program conversion method, and computer program
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH0810428B2 (ja) データ処理装置
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP4159586B2 (ja) 情報処理装置および情報処理の高速化方法
JP2007004475A (ja) プロセッサ及びプログラム実行方法
JP2883035B2 (ja) パイプライン・プロセッサ
KR900010552A (ko) 명령을 페치(fetch)하기 위한 제어 시스템
JP2011028506A (ja) プログラムの難読化方法とプログラムと装置
JPH1196001A (ja) プログラム実行装置及びプログラム変換方法
EP1026581A2 (en) System and method for controlling program execution
JP3060917B2 (ja) プロセッサ
JP4006887B2 (ja) コンパイラ、プロセッサおよび記録媒体
JP2825315B2 (ja) 情報処理装置
JPS62157944A (ja) マイクロプログラム制御装置
JP2004005738A5 (ko)
JP2005149297A (ja) プロセッサおよびそのアセンブラ
JPS60157635A (ja) マイクロプログラム制御装置
JPH06168121A (ja) データ処理装置
WO2007015258A1 (en) A microprocessor with a configurable control unit
JPH05113886A (ja) 計算機

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee