KR20000076615A - 프로그램 실행제어 시스템 및 그 방법 - Google Patents

프로그램 실행제어 시스템 및 그 방법 Download PDF

Info

Publication number
KR20000076615A
KR20000076615A KR1020000005695A KR20000005695A KR20000076615A KR 20000076615 A KR20000076615 A KR 20000076615A KR 1020000005695 A KR1020000005695 A KR 1020000005695A KR 20000005695 A KR20000005695 A KR 20000005695A KR 20000076615 A KR20000076615 A KR 20000076615A
Authority
KR
South Korea
Prior art keywords
condition
execution
instruction
field
command
Prior art date
Application number
KR1020000005695A
Other languages
English (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 KR20000076615A publication Critical patent/KR20000076615A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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 or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification

Landscapes

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

Abstract

본 발명은, 명령을 파이프라인 처리하는 정보처리 장치에 있어서 분기 해저드의 억제를 위하여 짧은 길이의 실행제어 명령으로 많은 후속명령의 조건부 실행을 제어할 수 있도록 하는 것이다.
실행조건을 지정하는 조건 필드(42)와, 실행제어의 대상 명령 수를 2진 코드로 지정하는 명령지정 필드(43)를 갖는 실행제어 명령을 채용한다. 무효화 제어기(30)는, 실행제어 명령을 수취하면 조건 필드(42)에 의하여 지정된 특정 실행조건(EC) 성립의 유무를 연산부의 제어 플래그(CF)에 기초하여 판정하고, 또 이 판정 결과에 따라 실행제어 명령의 후속명령 중 명령지정 필드(43)에 의하여 지정된 N개(N은 자연수)의 명령을 무효화하는지의 여부를 결정한다. 무효화 제어기(30)는, 실행조건(EC)이 비성립이므로 N개의 후속명령을 무효화해야 한다고 결정한 경우에는 연산부로의 무효화 신호(NUL)를 어써트한다.

Description

프로그램 실행제어 시스템 및 그 방법{SYSTEM AND METHOD FOR CONTROLLING PROGRAM EXECUTION}
본 발명은 명령을 파이프라인 처리하는 정보처리 장치에서의 프로그램 실행제어에 관한 것이다.
마이크로 프로세서나 DSP(digital signal processor) 등의, 명령을 파이프라인 처리하는 정보처리 장치에서는 조건 분기명령에 기인한 파이프라인 해저드(hazard), 즉 분기 해저드가 발생한다. 특히 파이프라인의 스테이지수가 많은 경우에는 분기 해저드가 큰 문제가 된다.
조건 분기명령의 사용빈도를 저감시키기 위해서는 조건실행 명령의 채용이 유효하다. 예를 들어 일본국 특개평 10-49368호 공보(공개일:1998년 2월 20일)의 기술에 의하면, 개개의 조건실행 명령이 자신의 실행조건을 지정하는 조건 필드를 갖는다. 이 조건 필드에 의하여 지정된 실행조건 성립의 유무에 따라 당해 명령을 실행하는지의 여부가 결정되는 것이다. 그러나 짧은 길이의 명령어를 갖는 정보처리 장치에서는 개개의 명령에 조건 필드를 설치할 여유가 없으므로 이 기술을 채용하기 어렵다는 문제가 있었다.
짧은 길이의 명령어를 갖는 정보처리 장치에서는 후속명령의 조건부 실행을 제어하기 위한 전용 명령, 즉 실행제어 명령의 채용이 유효하다. 예를 들어 일본국 특개평 7-253882호 공보(공개일:1995년 10월 3일)의 기술에 의하면, 실행제어 명령이 복수의 레지스터를 지정하는 조건 필드를 갖는다. 이 조건 필드 중에서 지정되는 레지스터의 수는 당해 실행제어 명령의 후속명령 중 실행제어 대상이 되는 명령 수와 반드시 일치하고 또 고정수이다. 그리고 각 레지스터의 값에 따라 개개의 레지스터에 대응하는 후속명령의 실행 여부가 결정되는 것이다. 이로써 조건 분기 명령의 사용빈도가 저감된다.
상기 일특개평 7-253882호 공보의 기술에 의하면, 실행제어의 대상 명령 수를 늘리기 위해서는 실행제어 명령의 조건 필드 중에 지정하는 레지스터의 개수를 많게 할 필요가 있어 명령어의 길이를 길게 할 수밖에 없게 되어 버린다. 따라서 짧은 길이의 명령어를 갖는 정보처리 장치에서는, 실행제어 명령으로 그다지 많은 후속명령의 조건부 실행을 제어할 수 없다는 과제가 있었다.
본 발명의 목적은, 명령을 파이프라인 처리하는 정보처리 장치에 있어서 분기 해저드의 억제를 위하여 짧은 실행제어 명령어로써 많은 후속명령의 조건부 실행을 제어할 수 있도록 하는 데 있다.
도 1은 본 발명에 관한 프로그램 실행제어 시스템의 개략 구성예를 도시한 블록도.
도 2는 본 발명에 관한 실행제어 명령의 기본 형식도.
도 3은 본 발명의 제 1 실시예에 관한 실행제어 명령의 형식도.
도 4는 본 발명의 제 1 실시예에 관한 프로그램 실행제어의 흐름도.
도 5의 (a) 및 (b)는 본 발명의 제 1 실시예에 관한 프로그램 실행제어의 구체적인 예를 나타낸 도면.
도 6은 본 발명의 제 2 실시예에 관한 실행제어 명령의 형식도.
도 7은 본 발명의 제 2 실시예에 관한 프로그램 실행제어의 흐름도.
도 8의 (a) 및 (b)는 본 발명의 제 2 실시예에 관한 프로그램 실행제어의 구체적인 예를 나타낸 도면.
도 9는 본 발명의 제 3 실시예에 관한 실행제어 명령의 형식도.
도 10은 본 발명의 제 3 실시예에 관한 프로그램 실행제어의 흐름도.
도 11의 (a) 및 (b)는 본 발명의 제 3 실시예에 관한 프로그램 실행제어의 구체적인 예를 나타낸 도면.
도 12는 본 발명의 제 4 실시예에 관한 실행제어 명령의 형식도.
도 13은 본 발명의 제 4 실시예에 관한 프로그램 실행제어의 흐름도.
도 14의 (a)∼(d)는 본 발명의 제 4 실시예에 관한 프로그램 실행제어의 구체적인 예를 나타낸 도면.
도 15는 본 발명의 제 5 실시예에 관한 실행제어 명령의 형식도.
도 16은 본 발명의 제 5 실시예에 관한 프로그램 실행제어의 흐름도.
도 17의 (a)∼(d)는 본 발명의 제 5 실시예에 관한 프로그램 실행제어의 구체적인 예를 나타낸 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 명령 공급부 20 : 명령 실행부
30 : 무효화 제어기 41 : 명령 필드
42 : 조건 필드 42a, 42b : 조건 서브 필드
43 : 명령지정 필드 43a, 43b : 명령지정 서브 필드
NUL : 무효화 신호 CF : 제어 플래그
INST: 명령 열 N, N1, N2 : 실행제어 대상 명령 수
OP : 실행제어 명령의 오퍼레이션 코드
EC, EC1, EC2 : 특정 실행조건
상기 목적을 달성하기 위하여 본 발명은 실행제어 대상 명령 수를 2진 코드로 지정하는 명령지정 필드를 실행제어 명령 중으로 도입하도록 한 것이다.
구체적으로 설명하자면 본 발명에서는 실행조건을 지정하는 조건 필드와, 명령 수를 2진 코드로 지정하는 명령지정 필드를 갖는 실행제어 명령을 채용하고, 이 실행제어 명령의, 조건 필드에 의하여 지정된 실행조건의 성립 유무를 판정하며, 이 판정 결과에 따라 실행제어 명령의 후속명령 중 당해 실행제어 명령의 명령지정 필드에 의하여 지정된 수의 명령을 무효화하는지의 여부를 결정하는 것으로 한다.
상술한 목적 및 기타의 목적과 본 발명의 특징 및 이점은 첨부 도면과 관련한 다음의 상세한 설명을 통해 보다 분명해 질 것이다.
(실시예)
도 1은 본 발명에 관한 프로그램 실행제어 시스템의 개략 구성을 나타낸다. 도 1의 시스템은 명령을 파이프라인 처리하는 정보처리 장치에서의 프로그램 실행제어 시스템으로서, 명령 공급부(10)와 명령 실행부(20)와 무효화 제어기(30)를 구비하고 있다. 명령 공급부(10)는 어드레스를 순차 생성하기 위한 프로그램 카운터(11)와, 실행제어 명령을 포함하는 프로그램을 구성하는 명령이 상기 생성된 어드레스에 따라 순차 판독되는 메모리(12)와, 이 판독된 명령을 순차 유지하기 위한 명령 레지스터(13)를 갖는다. 명령 레지스터(13)로부터 공급된 명령 열(INST)은 명령 실행부(20) 및 무효화 제어기(30)로 보내진다. 명령 실행부(20)는 부여된 명령 열(INST)에 따른 연산을 실행하기 위한 연산부(21)와, 이 연산의 실행 결과에 따른 복수의 플래그를 유지하기 위한 플래그 레지스터(22)를 갖는다. 무효화 제어기(30)는 플래그 레지스터(22)로부터 제어 플래그(CF)를 수취한다. 여기서는 제어 플래그(CF)가 2개의 플래그(F1, F2)를 포함하는 것으로 한다. F1과 F2는 각각 연산부(21)에 의하여 값 1 또는 값 0으로 설정되는 것이다.
도 2는 본 발명에 관한 실행제어 명령의 기본 형식을 나타낸다. 본 발명에 의하면 실행제어 명령은, 당해 명령이 실행제어 명령인 것을 나타내는 명령 필드(41)와, 실행조건을 지정하는 조건 필드(42)와, 실행제어의 대상 명령 수를 2진 코드로 지정하는 명령지정 필드(43)를 갖는다. 무효화 제어기(30)는 실행제어 명령을 받으면 조건 필드(42)에 의하여 지정된 특정 실행조건(EC)의 성립 유무를 제어 플래그(CF)에 기초하여 판정하고, 또 이 판단 결과에 따라 실행제어 명령의 후속명령 중 명령지정 필드(43)에 의하여 지정된 N개(N은 자연수)의 명령을 무효화시키는지의 여부를 결정한다. 무효화 제어기(30)는, 실행조건(EC)이 비성립이므로 N개의 후속명령을 무효화해야 된다고 결정했을 경우에는 연산부(21)로의 무효화 신호(NUL)를 어써트한다. 이로써 실행제어 명령에 뒤따르는 N개의 명령이 파이프라인의 도중까지 진행해 있어도 연산부(21)에서 무효가 되어 이들 명령 대신에 NOP(no operation) 명령이 실행된 것과 같은 결과로 된다. 이와는 반대로 실행조건(EC)이 성립되었으므로 N개의 후속명령을 무효화해서는 안된다고 무효화 제어기(30)가 결정하였을 경우에는, 무효화 신호(NUL)는 어써트되지 않고 실행제어 명령에 뒤따르는 N개의 명령이 연산부(21)에 의하여 유효하게 실행된다.
이하 도 3∼도 17을 참조하면서 본 발명의 제 1∼제 5 실시예를 상세하게 설명하기로 한다.
(제 1 실시예)
도 3은 본 발명의 제 1 실시예에 관한 실행제어 명령의 16비트 형식을 나타내고 있다. 도 3에 있어서 41은 12비트의 명령 필드이고 실행제어 명령을 식별하기 위한 오퍼레이션 코드(OP)가 설정된다. 42는 2비트의 단일 조건 필드이며 4종류의 실행조건이 지정 가능하게 되어있다. 여기에 지정되는 특정의 실행조건(EC)은 "F1=1", "F1=0", "F2=1", "F2=0" 중 어느 하나를 나타내는 2진 코드인 것으로 한다. 43은 2비트의 단일 명령지정 필드이며 실행제어 대상 명령 수 N(N=1∼4)을 2진 코드로 지정하도록 되어 있다. 여기서는 코드(00)가 "N=1"을, 코드(01)가 "N=2"를, 코드(10)가 "N=3"을, 코드(11)가 "N=4"를 각각 의미하는 것으로 한다.
도 4는 본 발명의 제 1 실시예에 관한 프로그램 실행제어의 순서를 나타내고 있다. 스텝(S1)에서는 조건 필드(42)에 특정의 실행조건(EC)을 설정하고 명령지정 필드(43)에 실행제어의 대상 명령 수(N)를 설정한다. 스텝(S2)에서는 실행제어 명령을 실행한다. 스텝(S3)에서는 실행조건(EC)이 성립인지 비성립인지를 제어 플래그(CF)에 기초하여 판정한다. 실행조건(EC)이 비성립인 경우에는 스텝(S4)에서 실행제어 명령의 N개 후속명령을 무효화한다. 실행조건(EC)이 성립인 경우에는 스텝(S5)에서 실행제어 명령의 N개 후속명령을 실행한다.
도 5의 (a) 및 도 5의 (b)는 본 발명의 제 1 실시예에 관한 프로그램 실행제어의 구체예를 나타내고 있다. 여기서는 "F1=1"을 실행조건(EC)으로 하고 "N=4"로 하고 있다. 이 경우에 있어서 실행조건 비성립(F1=0) 시에는 도 5의 (a)에 도시한 바와 같이 실행제어 명령의 후속 4명령(후속명령1∼4)이 무효화된다. 또 실행조건 성립(F1=1) 시에는 도 5의 (b)에 도시한 바와 같이 실행제어 명령의 후속 4명령(후속명령1∼4)이 무효화되지 않고 실행된다.
본 실시예에서는 조건 필드(42)의 비트수를 2로 하였지만 이 비트수를 늘리면 실행조건의 수를 늘릴 수 있다. 또 본 실시예에서는 명령지정 필드(43)의 비트수를 2로 하였지만 이 비트수를 늘리면 실행제어의 대상 명령 수를 늘릴 수 있다. 이들 변형예는 이하의 각 실시예에서도 마찬가지로 가능하다.
(제 2 실시예)
도 6은 본 발명의 제 2 실시예에 관한 실행제어 명령의 16비트 형식을 나타내고 있다. 이 형식은 도 3의 형식과 동일하다.
도 7은 본 발명의 제 2 실시예에 관한 프로그램 실행제어의 순서를 나타내고 있다. 스텝(S11)에서는 조건 필드(42)에 특정의 실행조건(EC)을 설정하고 명령지정 필드(43)에 실행제어 대상 명령 수(N)를 설정한다. 스텝(S12)에서는 실행제어 명령을 실행한다. 스텝(S13)에서는 실행조건(EC)이 성립인지 비성립인지를 제어 플래그(CF)에 기초하여 판정한다. 실행조건(EC)이 비성립인 경우에는 스텝(S14a)에서 실행제어 명령의 N개 후속명령을 무효화한 후, 스텝(S14b)에서 다음의 N개 후속명령을 실행한다. 실행조건(EC)이 성립인 경우에는 스텝(S15a)에서 실행제어 명령의 N개 후속명령을 실행한 후, 스텝(S15b)에서 다음의 N개 후속명령을 무효화한다.
도 8의 (a) 및 도 8의 (b)는 본 발명의 제 2 실시예에 관한 프로그램 실행제어의 구체예를 나타내고 있다. 여기서는 "F1=1"을 실행조건(EC)으로 하고 "N=2"로 한다. 이 경우에 있어서 실행조건 비성립(F1=0) 시에는, 도 8의 (a)에 도시한 바와 같이 실행제어 명령의 후속 2명령(후속명령 1, 2)이 무효화되며 다음의 2명령(후속명령 3, 4)이 실행된다. 또한 실행조건 성립(F1=1) 시에는, 도 8의 (b)에 도시한 바와 같이 실행제어 명령의 후속 2명령(후속명령 1, 2)이 실행되며 다음의 2명령(후속명령 3, 4)이 무효화된다. 즉 본 실시예에 의하면 IF-THEN-ELSE문 형식의 조건부 실행을 달성할 수 있다.
(제 3 실시예)
도 9는 본 발명의 제 3 실시예에 관한 실행제어 명령의 16비트 형식을 나타내고 있다. 도 9에 있어서 41은 10비트의 명령 필드이고 실행제어 명령을 식별하기 위한 오퍼레이션 코드(OP)가 설정된다. 42는 2비트의 단일 조건 필드이고 4종류의 실행조건이 지정 가능하게 되어 있다. 43은 4비트의 명령지정 필드이고 각각 1개의 명령 수를 2진 코드로 지정하는 제 1 및 제 2 명령지정 서브 필드(43a 및 43b)를 갖는다. 제 1 명령지정 서브 필드(43a)는 2비트의 필드이고 제 1 실행제어 대상 명령 수 (N1(N1=1∼4))를 2진 코드로 지정하도록 되어 있다. 또한 제 2 명령지정 서브 필드(43b)는 2비트의 필드이고 제 2 실행제어 대상 명령 수(N2(N2=1∼4))를 2진 코드로 지정하도록 되어 있다.
도 10은 본 발명의 제 3 실시예에 관한 프로그램 실행제어의 순서를 나타내고 있다. 스텝(S21)에서는 조건 필드(42)에 특정의 실행조건(EC)을 설정하고 제 1 명령지정 서브 필드(43a)에 제 1 실행제어 대상 명령 수(N1)를 설정하며, 제 2 명령지정 서브 필드(43b)에 제 2 실행제어 대상 명령 수(N2)를 설정한다. 스텝(S22)에서는 실행제어 명령을 실행한다. 스텝(S23)에서는 실행조건(EC)이 성립인지 비성립인지를 제어 플래그(CF)에 기초하여 판정한다. 실행조건(EC)이 비성립인 경우에는 스텝(S24a)에서 실행제어 명령의 N1개 후속명령을 무효화한 후, 스텝(S24b)에서 다음의 N2개 후속명령을 실행한다. 실행조건(EC)이 성립인 경우에는 스텝(S25a)에서 실행제어 명령의 N1개 후속명령을 실행한 후, 스텝(S25b)에서 다음의 N2개 후속명령을 무효화한다.
도 11의 (a) 및 도 11의 (b)는 본 발명의 제 3 실시예에 관한 프로그램 실행제어의 구체예를 나타내고 있다. 여기서는 "F1=1"을 실행조건(EC)으로 하고 "N1=1" 또한 "N2=3"으로 한다. 이 경우에 있어서, 실행조건 비성립(F1=0) 시에는 도 11의 (a)에 도시한 바와 같이 실행제어 명령의 후속 1명령(후속명령 1)이 무효화되고 다음의 3명령(후속명령 2, 3, 4)이 실행된다. 또한 실행조건 성립(F1=1) 시에는 도 11의 (b)에 도시한 바와 같이 실행제어 명령의 후속 1명령(후속명령 1)이 실행되고 다음의 3명령(후속명령 2, 3, 4)이 무효화된다. 즉 본 실시예에 의하면 IF-THEN-ELSE문 형식의 조건부 실행을 달성할 수 있으며, 또 THEN문, ELSE문 각각에 대응하는 명령 수를 개별로 지정할 수 있다.
(제 4 실시예)
도 12는 본 발명의 제 4 실시예에 관한 실행제어 명령의 16비트 형식을 나타내고 있다. 도 12에 있어서 41은 10비트의 명령 필드이고 실행제어 명령을 식별하기 위한 오퍼레이션 코드(OP)가 설정된다. 42는 4비트의 조건 필드이고 각각 1개의 실행조건을 지정하는 제 1 및 제 2 조건 서브 필드(42a 및 42b)를 갖는다. 제 1 조건 서브 필드(42a)는 2비트의 필드이고 제 1 실행조건(EC1)으로서 4종류의 실행조건이 지정 가능하게 되어 있다. 제 2 조건 서브 필드(42b)는 2비트의 필드이고 제 2 실행조건(EC2)으로서 4종류의 실행조건이 지정 가능하게 되어 있다. 43은 2비트의 단일 명령지정 필드이고 실행제어의 대상 명령 수(N(N=1∼4))를 2진 코드로 지정하도록 되어 있다.
도 13은 본 발명의 제 4 실시예에 관한 프로그램 실행제어의 순서를 나타내고 있다. 스텝(S31)에서는 제 1 조건 서브 필드(42a)에 제 1 실행조건(EC1)을 설정하고, 제 2 조건 서브 필드(42b)에 제 2 실행조건(EC2)을 설정하며, 명령지정 필드(43)에 실행제어 대상 명령 수(N)를 설정한다. 스텝(S32)에서는 실행제어 명령을 실행한다. 스텝(S33a)에서는 제 1 실행조건(EC1)이 성립인지 비성립인지를, 그리고 스텝(S33b)에서는 제 2 실행조건(EC2)이 성립인지 비성립인지를 각각 제어 플래그(CF)에 기초하여 판정한다. 제 1 실행조건(EC1)이 비성립이고 제 2실행조건(EC2)이 비성립인 경우에는, 스텝(S34a)에서 실행제어 명령의 N개 후속명령을 무효화한 후 스텝(S34b)에서 다음의 N개 후속명령을 무효화한다. 제 1 실행조건(EC1)이 비성립이고 제 2실행조건(EC2)이 성립인 경우에는, 스텝(S35a)에서 실행제어 명령의 N개 후속명령을 무효화한 후 스텝(S35b)에서 다음의 N개 후속명령을 실행한다. 제 1 실행조건(EC1)이 성립이고 제 2실행조건(EC2)이 비성립인 경우에는, 스텝(S36a)에서 실행제어 명령의 N개 후속명령을 실행한 후 스텝(S36b)에서 다음의 N개 후속명령을 무효화한다. 제 1 실행조건(EC1)이 성립이고 제 2실행조건(EC2)이 성립인 경우에는, 스텝(S37a)에서 실행제어 명령의 N개 후속명령을 실행한 후 스텝(S37b)에서 다음의 N개 후속명령을 실행한다.
도 14의 (a)∼도 14의 (d)는 본 발명의 제 4 실시예에 관한 프로그램 실행제어의 구체예를 나타내고 있다. 여기서는 "F1=1"을 제 1 실행조건(EC1)으로 하고 "F2=0"을 제 2 실행조건(EC2)으로 하며, "N=2"로 한다. 이 경우에 있어서 제 1 실행조건 비성립(F1=0)이고 제 2 실행조건 비성립(F2=1) 시에는, 도 14의 (a)에 도시한 바와 같이 실행제어 명령의 후속 4명령(후속명령 1∼4)이 무효화된다. 또 제 1 실행조건 비성립(F1=0)이고 제 2 실행조건 성립(F2=0) 시에는, 도 14의 (b)에 도시한 바와 같이 실행제어 명령의 후속 2명령(후속명령 1, 2)이 무효화되며 다음의 2명령(후속명령 3, 4)이 실행된다. 제 1 실행조건 성립(F1=1)이고 제 2 실행조건 비성립(F2=1) 시에는, 도 14의 (c)에 도시한 바와 같이 실행제어 명령의 후속 2명령(후속명령 1, 2)이 실행되며 다음의 2명령(후속명령 3, 4)이 무효화된다. 그리고 제 1 실행조건 성립(F1=1)이고 제 2 실행조건 성립(F2=0) 시에는, 도 14의 (d)에 도시한 바와 같이 실행제어 명령의 후속 4명령(후속명령 1∼4)이 무효화되는 일없이 실행된다.
또한 실행제어 명령의 조건 서브 필드의 수는 3 이상의 수(M)라도 된다. 이 경우에는 실행제어 명령의 후속명령 중 명령지정 필드(43)에 의하여 지정된 N개의명령을 제어대상 명령으로 간주하고, M개의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건(ECm(m=1∼M))이 비성립인 경우에는 지정된 실행조건(ECm)에 대응하는 위치의 N개 제어대상 명령을 무효화하는 스텝이 실행된다. 그리고 M개의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건(ECm(m=1∼M))이 성립인 경우에는 지정된 실행조건(ECm)에 대응하는 위치의 N개 제어대상 명령을 실행시키는 스텝이 실행된다.
(제 5 실시예)
도 15는 본 발명의 제 5 실시예에 관한 실행제어 명령의 16비트 형식을 나타내고 있다. 도 15에 있어서 41은 8비트의 명령 필드이고 실행제어 명령을 식별하기 위한 오퍼레이션 코드(OP)가 설정된다. 42는 4비트의 조건 필드이고 각각 1개의 실행조건을 지정하는 제 1 및 제 2 조건 서브 필드(42a 및 42b)를 갖는다. 제 1 조건 서브 필드(42a)는 2비트의 필드이고 제 1 실행조건(EC1)으로서 4종류의 실행조건이 지정 가능하게 되어 있다. 제 2 조건 서브 필드(42b)는 2비트의 필드이고 제 2 실행조건(EC2)으로서 4종류의 실행조건이 지정 가능하게 되어 있다. 43은 4비트의 명령지정 필드이고 각각 1개의 명령 수를 2진 코드로 지정하는 제 1 및 제 2 명령지정 서브 필드(43a 및 43b)를 갖는다. 제 1 명령지정 서브 필드(43a)는 2비트의 필드이고 제 1 실행제어 대상 명령 수(N1(N1=1∼4))를 2진 코드로 지정하도록 되어 있다. 또 제 2 명령지정 서브 필드(43b)는 2비트의 필드이고 제 2 실행제어의 대상 명령 수(N2(N2=1∼4))를 2진 코드로 지정하도록 되어 있다.
도 16은 본 발명의 제 5 실시예에 관한 프로그램 실행제어의 순서를 나타내고 있다. 스텝(S41)에서는 제 1 조건 서브 필드(42a)에 제 1 실행조건(EC1)을 설정하고 제 2 조건 서브 필드(42b)에 제 2 실행조건(EC2)을 설정하며, 제 1 명령지정 서브 필드(43a)에 제 1 실행제어 대상 명령 수(N1)를 설정하고 제 2 명령지정 서브 필드(43b)에 제 2 실행제어 대상 명령 수(N2)를 설정한다. 스텝(S42)에서는 실행제어 명령을 실행한다. 스텝(S43a)에서는 제 1 실행조건(EC1)이 성립인지 비성립인지를, 스텝(S43b)에서는 제 2 실행조건(EC2)이 성립인지 비성립인지를 각각 제어 플래그(CF)에 기초하여 판정한다. 제 1 실행조건(EC1)이 비성립이고 제 2 실행조건(EC2)이 비성립인 경우에는, 스텝(S44a)에서 실행제어 명령의 N1개 후속명령을 무효화한 후 스텝(S44b)에서 다음의 N2개 후속명령을 무효화한다. 제 1 실행조건(EC1)이 비성립이고 제 2 실행조건(EC2)이 성립인 경우에는, 스텝(S45a)에서 실행제어 명령의 N1개 후속명령을 무효화한 후 스텝(S45b)에서 다음의 N2개 후속명령을 실행한다. 제 1 실행조건(EC1)이 성립이고 제 2 실행조건(EC2)이 비성립인 경우에는, 스텝(S46a)에서 실행제어 명령의 N1개 후속명령을 실행한 후 스텝(S46b)에서 다음의 N2개 후속명령을 무효화한다. 제 1 실행조건(EC1)이 성립이고 제 2 실행조건(EC2)이 성립인 경우에는, 스텝(S47a)에서 실행제어 명령의 N1개 후속명령을 실행한 후 스텝(S47b)에서 다음의 N2개 후속명령을 실행한다.
도 17의 (a)∼도 17의 (d)는 본 발명의 제 5 실시예에 관한 프로그램 실행제어의 구체예를 나타내고 있다. 여기서는 "F1=1"을 제 1 실행조건(EC1)으로 하고 "F2=0"을 제 2 실행조건(EC2)으로 하며, "N1=1"이고 "N2=3"으로 한다. 이 경우에 있어서 제 1 실행조건 비성립(F1=0)이고 제 2 실행조건 비성립(F2=1) 시에는, 도 17의 (a)에 도시한 바와 같이 실행제어 명령의 후속 4명령(후속명령 1∼4)이 무효화된다. 또 제 1 실행조건 비성립(F1=0)이고 제 2 실행조건 성립(F2=0) 시에는, 도 17의 (b)에 도시한 바와 같이 실행제어 명령의 후속 1명령(후속명령 1)이 무효화되며 다음의 3명령(후속명령 2, 3, 4)이 실행된다. 또한 제 1 실행조건 성립(F1=1)이고 제 2 실행조건 비성립(F2=1) 시에는, 도 17의 (c)에 도시한 바와 같이 실행제어 명령의 후속 1명령(후속명령 1)이 실행되며 다음의 3명령(후속명령 2, 3, 4)이 무효화된다. 그리고 제 1 실행조건 성립(F1=1)이고 제 2 실행조건 성립(F2=0) 시에는, 도 17의 (d)에 도시한 바와 같이 실행제어 명령의 후속 4명령(후속명령 1∼4)이 무효화되는 일없이 실행된다.
여기서 실행제어 명령의 조건 서브 필드의 수는 3 이상의 수(M)라도 된다. 이 경우에는 실행제어 명령의 명령지정 필드는 M개의 조건 서브 필드 각각에 대응하여 M개의 명령지정 서브 필드를 갖는 것으로 한다. 그리고 실행제어 명령의 후속명령 중 M개의 명령지정 서브 필드 중 대응하는 명령지정 서브 필드에 의하여 지정된 Nm(m=1∼M)개의 명령을 제어대상 명령으로 간주하고, M개의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건(ECm(m=1∼M))이 비성립인 경우에는 지정된 실행조건(ECm)에 대응하는 위치의 Nm개 제어대상 명령을 무효화하는 스텝이 실행된다. 그리고 M개의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건(ECm(m=1∼M))이 성립인 경우에는 지정된 실행조건(ECm)에 대응하는 위치의 Nm개 제어대상 명령을 실행시키는 스텝이 실행된다.
이상에서 설명한 바와 같이 본 발명에 의하면 명령을 파이프라인 처리하는 정보처리 장치에 있어서, 실행제어 대상 명령 수를 2진 코드로 지정하는 명령지정 필드를 실행제어 명령 중으로 도입하는 것으로 함으로써 분기 해저드의 억제를 위하여 짧은 실행제어 명령어로써 많은 후속명령의 조건부 실행을 제어할 수 있다.

Claims (12)

  1. 명령을 파이프라인 처리하는 정보처리 장치에서의 프로그램 실행제어 시스템에 있어서,
    실행조건을 지정하는 조건 필드와, 명령의 개수를 2진 코드로 지정하는 명령지정 필드를 갖는 실행제어 명령을 포함하는 명령 열을 공급하기 위한 제 1 수단과,
    상기 실행제어 명령의 조건 필드에 의하여 지정된 실행조건의 성립 유무를 판정하기 위한 제 2 수단과,
    상기 판정 결과에 따라 상기 실행제어 명령의 후속명령 중 당해 실행제어 명령의 명령지정 필드에 의하여 지정된 수의 명령을 무효화하는지의 여부를 결정하기 위한 제 3 수단을 구비하는 것을 특징으로 하는 프로그램 실행제어 시스템.
  2. 명령을 파이프라인 처리하는 정보처리 장치에서의 프로그램 실행제어 방법에 있어서,
    실행조건을 지정하는 조건 필드와, 명령의 수를 2진 코드로 지정하는 명령지정 필드를 갖는 실행제어 명령을 공급하는 제 1 스텝과,
    상기 실행제어 명령의 조건 필드에 의하여 지정된 실행조건의 성립 유무를 판정하는 제 2 스텝과,
    상기 판정 결과에 따라 상기 실행제어 명령의 후속명령 중 당해 실행제어 명령의 명령지정 필드에 의하여 지정된 수의 명령을 무효화하는지의 여부를 결정하는 제 3 스텝을 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  3. 제 2항에 있어서,
    상기 실행제어 명령의 조건 필드는 실행조건을 지정하기 위한 단일 필드이고,
    상기 실행제어 명령의 명령지정 필드는 명령 수를 지정하기 위한 단일 필드이고 또,
    상기 제 3 스텝은 상기 실행제어 명령의 후속명령 중 상기 명령지정 필드에 의하여 지정된 수의 명령을 제어대상 명령으로 간주하여, 상기 조건 필드에 의하여 지정된 실행조건이 비성립인 경우에는 상기 제어대상 명령을 무효화하는 스텝을 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  4. 제 3항에 있어서,
    상기 제 3 스텝은 상기 조건 필드에 의하여 지정된 실행조건이 성립인 경우에는 상기 제어대상 명령을 실행시키는 스텝을 추가로 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  5. 제 2항에 있어서,
    상기 실행제어 명령의 조건 필드는 실행조건을 지정하기 위한 단일 필드이며,
    상기 실행제어 명령의 명령지정 필드는 명령 수를 지정하기 위한 단일 필드이고 또,
    상기 제 3 스텝은,
    상기 실행제어 명령의 후속명령 중 상기 명령지정 필드에 의하여 지정된 수의 명령을 제 1 제어대상 명령으로 간주하고, 상기 조건 필드에 의하여 지정된 실행조건이 비성립인 경우에는 상기 제 1 제어대상 명령을 무효화하는 스텝과,
    상기 제 1 제어대상 명령의 후속명령 중 상기 명령지정 필드에 의하여 지정된 수의 명령을 제 2 제어대상 명령으로 간주하고, 상기 조건 필드에 의하여 지정된 실행조건이 성립인 경우에는 상기 제 2 제어대상 명령을 무효화하는 스텝을 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  6. 제 5항에 있어서,
    상기 제 3 스텝은,
    상기 조건 필드에 의하여 지정된 실행조건이 성립인 경우에는 상기 제 1 제어대상 명령을 실행시키는 스텝과,
    상기 조건 필드에 의하여 지정된 실행조건이 비성립인 경우에는 상기 제 2 제어대상 명령을 실행시키는 스텝을 추가로 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  7. 제 2항에 있어서,
    상기 실행제어 명령의 조건 필드는 실행조건을 지정하기 위한 단일 필드이며,
    상기 실행제어 명령의 명령지정 필드는 각각 1개의 명령 수를 2진 코드로 지정하는 제 1 명령지정 서브 필드 및 제 2 명령지정 서브 필드를 가지며, 또,
    상기 제 3 스텝은,
    상기 실행제어 명령의 후속명령 중 상기 제 1 명령지정 서브 필드에 의하여 지정된 수의 명령을 제 1 제어대상 명령으로 간주하고, 상기 조건 필드에 의하여 지정된 실행조건이 비성립인 경우에는 상기 제 1 제어대상 명령을 무효화하는 스텝과,
    상기 제 1 제어대상 명령의 후속명령 중 상기 제 2 명령지정 서브 필드에 의하여 지정된 수의 명령을 제 2 제어대상 명령으로 간주하고, 상기 조건 필드에 의하여 지정된 실행조건이 성립인 경우에는 상기 제 2 제어대상 명령을 무효화하는 스텝을 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  8. 제 7항에 있어서,
    상기 제 3 스텝은,
    상기 조건 필드에 의하여 지정된 실행조건이 성립인 경우에는 상기 제 1 제어대상 명령을 실행시키는 스텝과,
    상기 조건 필드에 의하여 지정된 실행조건이 비성립인 경우에는 상기 제 2 제어대상 명령을 실행시키는 스텝을 추가로 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  9. 제 2항에 있어서,
    상기 실행제어 명령의 조건 필드는 각각 1개의 실행조건을 지정하는 복수의 조건 서브 필드를 가지고,
    상기 실행제어 명령의 명령지정 필드는 명령 수를 지정하기 위한 단일 필드이며 또,
    상기 제 3 스텝은, 각각 상기 실행제어 명령의 후속명령 중 상기 명령지정 필드에 의하여 지정된 수의 명령을 제어대상 명령으로 간주하고, 상기 복수의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건이 비성립인 경우에는 상기 지정된 실행조건에 대응하는 위치의 상기 제어대상 명령을 무효화하는 복수의 스텝을 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  10. 제 9항에 있어서,
    상기 제 3 스텝은, 각각 상기 복수의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건이 성립인 경우에는 상기 지정된 실행조건에 대응하는 위치의 상기 제어대상 명령을 실행시키는 복수의 스텝을 추가로 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  11. 제 2항에 있어서,
    상기 실행제어 명령의 조건 필드는 각각 1개의 실행조건을 지정하는 복수의 조건 서브 필드를 가지고,
    상기 실행제어 명령의 명령지정 필드는 상기 복수의 조건 서브 필드 각각에 대응하여 각각 1개의 명령 수를 2진 코드로 지정하는 복수의 명령지정 서브 필드를 가지며, 또,
    상기 제 3 스텝은, 각각 상기 실행제어 명령의 후속명령 중에서, 상기 복수의 명령지정 서브 필드 중 대응하는 명령지정 서브 필드에 의하여 지정된 수의 명령을 제어대상 명령으로 간주하고, 상기 복수의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건이 비성립인 경우에는 상기 지정된 실행조건에 대응하는 위치의 상기 제어대상 명령을 무효화하는 복수의 스텝을 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
  12. 제 11항에 있어서,
    상기 제 3 스텝은 각각 상기 복수의 조건 서브 필드 중 대응하는 조건 서브 필드에 의하여 지정된 실행조건이 성립인 경우에는 상기 지정된 실행조건에 대응하는 위치의 상기 제어대상 명령을 실행시키는 복수의 스텝을 추가로 구비하는 것을 특징으로 하는 프로그램 실행제어 방법.
KR1020000005695A 1999-02-08 2000-02-08 프로그램 실행제어 시스템 및 그 방법 KR20000076615A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2956899 1999-02-08
JP???11-029568 1999-02-08

Publications (1)

Publication Number Publication Date
KR20000076615A true KR20000076615A (ko) 2000-12-26

Family

ID=12279740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000005695A KR20000076615A (ko) 1999-02-08 2000-02-08 프로그램 실행제어 시스템 및 그 방법

Country Status (5)

Country Link
US (1) US6842852B1 (ko)
EP (1) EP1026581B1 (ko)
KR (1) KR20000076615A (ko)
DE (1) DE60039738D1 (ko)
TW (1) TW530262B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988187B2 (en) * 2002-03-21 2006-01-17 Sony Computer Entertainment Inc. Counting instructions to skip in superscaler processor
JP3851228B2 (ja) 2002-06-14 2006-11-29 松下電器産業株式会社 プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム
US9535876B2 (en) 2009-06-04 2017-01-03 Micron Technology, Inc. Conditional operation in an internal processor of a memory device

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4514804A (en) * 1981-11-25 1985-04-30 Nippon Electric Co., Ltd. Information handling apparatus having a high speed instruction-executing function
JPS62262140A (ja) 1986-05-08 1987-11-14 Nec Ic Microcomput Syst Ltd マイクロコンピユ−タ
US5371862A (en) 1991-02-27 1994-12-06 Kabushiki Kaisha Toshiba Program execution control system
JP2977951B2 (ja) 1991-06-18 1999-11-15 富士電機株式会社 演算装置
US5815695A (en) * 1993-10-28 1998-09-29 Apple Computer, Inc. Method and apparatus for using condition codes to nullify instructions based on results of previously-executed instructions on a computer processor
JP3335735B2 (ja) 1993-12-17 2002-10-21 株式会社東芝 演算処理装置
JPH07253882A (ja) 1994-03-15 1995-10-03 Hitachi Ltd 命令制御装置
US5574927A (en) * 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US5724565A (en) * 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems
JPH1049368A (ja) 1996-07-30 1998-02-20 Mitsubishi Electric Corp 条件実行命令を有するマイクロプロセッサ
US5930158A (en) * 1997-07-02 1999-07-27 Creative Technology, Ltd Processor with instruction set for audio effects
EP0992891A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. A processor

Also Published As

Publication number Publication date
EP1026581A3 (en) 2001-09-26
EP1026581A2 (en) 2000-08-09
EP1026581B1 (en) 2008-08-06
US6842852B1 (en) 2005-01-11
TW530262B (en) 2003-05-01
DE60039738D1 (de) 2008-09-18

Similar Documents

Publication Publication Date Title
US20020078330A1 (en) Computer system for executing branch instructions
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US20060095746A1 (en) Branch predictor, processor and branch prediction method
KR20090101061A (ko) 프로세서 및 정보 처리 장치
JP2008146544A (ja) 演算処理装置
US20060224861A1 (en) Condition branch instruction encoding within a multiple instruction set data processing system
KR100974401B1 (ko) 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치
KR20000076615A (ko) 프로그램 실행제어 시스템 및 그 방법
JP4160705B2 (ja) プロセッサ及びプロセッサシステム
JP3437135B2 (ja) プログラム実行制御システム及びその方法
JP2008299729A (ja) プロセッサ
JP2878792B2 (ja) 電子計算機
JP2002342075A (ja) マイクロプロセッサ
US5187782A (en) Data processing system
JP3325309B2 (ja) サブルーチンリターン命令処理装置
JP2591325B2 (ja) 分岐制御装置
US20090119492A1 (en) Data Processing Apparatus and Method for Handling Procedure Call Instructions
JP2856784B2 (ja) 電子計算機
JP2000347858A (ja) マイクロプロセッサ
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
US7003543B2 (en) Sticky z bit
JPH1139160A (ja) プログラマブルコントローラ
JPH05241825A (ja) マイクロプロセッサ
JP2004062427A (ja) マイクロプロセッサ
JP2002073326A (ja) プログラム実行装置及びプログラム実行方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid