KR100336773B1 - 지연 분기 구조를 갖는 자바 프로세서 - Google Patents

지연 분기 구조를 갖는 자바 프로세서 Download PDF

Info

Publication number
KR100336773B1
KR100336773B1 KR1019990050153A KR19990050153A KR100336773B1 KR 100336773 B1 KR100336773 B1 KR 100336773B1 KR 1019990050153 A KR1019990050153 A KR 1019990050153A KR 19990050153 A KR19990050153 A KR 19990050153A KR 100336773 B1 KR100336773 B1 KR 100336773B1
Authority
KR
South Korea
Prior art keywords
branch
instruction
instructions
delay
java processor
Prior art date
Application number
KR1019990050153A
Other languages
English (en)
Other versions
KR20010046393A (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 박종섭
Priority to KR1019990050153A priority Critical patent/KR100336773B1/ko
Publication of KR20010046393A publication Critical patent/KR20010046393A/ko
Application granted granted Critical
Publication of KR100336773B1 publication Critical patent/KR100336773B1/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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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

Landscapes

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

Abstract

본 발명은 지연 분기 구조를 갖는 자바 프로세서에 관한 것으로, 종래 기술에 있어서 분기 명령이 주어졌을 경우, 분기 아래의 명령은 수행하지 않음에 따라 2 싸이클의 시간 손해를 보게 되며, 자바 프로세서의 밉스(Million Instructions Per Second)치를 높이는데 한계가 있으며, 특히, 씨언어(C Language)와 같은 고차원 언어로 프로그래밍시 상기 분기 명령의 수행 횟수가 전체의 약 20%를 차지함에 따라 전체적인 시스템의 성능이 저하되는 문제점이 있었다. 따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창안한 것으로, 지연 분기 구조를 통해 사용하지 않던 지연 슬롯을 사용하여 약 2∼8개의 명령을 수행함으로써, 자바 프로세서의 분기 명령 수행시 시간 손실을 최소화함과 아울러 밉스 성능이 크게 향상됨에 따라 전체적인 시스템의 성능을 향상시키는 효과가 있다.

Description

지연 분기 구조를 갖는 자바 프로세서{JAVA PROCESSOR HAVING DELAYED BRANCH STRUCTURE}
본 발명은 지연 분기 구조를 갖는 자바 프로세서에 관한 것으로, 특히 자바 프로세서에 있어서 지연 분기 구조를 갖게 함으로써 분기 명령(Branch Instruction) 수행시 시간 손실을 최소화하여 성능을 향상시킨 지연 분기 구조를 갖는 자바 프로세서에 관한 것이다.
도 1은 종래 자바 프로세서에서 분기 명령이 입력되었을 때 파이프 라인을 제어하는 유효 신호 발생기의 구성을 보인 회로도로서, 이에 도시된 바와 같이 분기테이큰바 신호(NOT in_brtaken_e), 트랩바 신호(NOT in_trap_c), 파워다운바 신호(NOT powerdown_e)등과 같은 복수의 명령 신호를 논리곱 연산하는 논리곱 게이트(AND1)와; 상기 논리곱 게이트(AND1)의 출력신호를 입력단으로 입력받아 클럭에 의해 유효 명령(inst_vld[0])으로 출력하는 플립플롭(FF1)과; 상기 플립플롭(FF1)의 출력신호(inst_vld[0])와 복수의 명령어를 논리곱 연산하는 논리곱 게이트(AND2)와; 상기 논리곱 게이트(AND2)의 출력신호를 입력단으로 입력받아 클럭에 의해 유효 명령(inst_vld[1])으로 출력하는 플립플롭(FF2)과; 상기 플립플롭(FF2)의 출력신호(inst_vld[1])와 복수의 명령어를 논리곱 연산하는 논리곱 게이트(AND3)와; 상기 논리곱 게이트(AND3)의 출력신호를 입력단으로 입력받아 클럭에 의해 유효 명령(inst_vld[2])으로 출력하는 플립플롭(FF3)으로 구성된다.
또한, 무효 신호 발생기는 도 2에 도시된 바와 같이 분기테이큰 신호(in_brtaken_e), 트랩 신호(trap_vld_e), 파워다운 신호(powerdown_e)등과 같은복수의 명령어를 논리합 연산하여 무효 명령(kill_inst_d)으로 출력하는 논리합 게이트(OR1)로 구성되며, 스톡 캐쉬 제어기는 도 3에 도시된 바와 같이 데이터 쓰기 신호(in_data_we_e)와 상기 유효 명령(inst_vld[0])을 논리곱 연산하는 논리곱 게이트(AND4)와; 상기 논리곱 게이트(AND4)의 출력신호를 입력단으로 입력받아 클럭에 의해 출력하는 플립플롭(FF4)과; 상기 플립플롭(FF4)의 출력신호와 유효 명령(inst_vld[1])을 논리곱 연산하는 논리곱 게이트(AND5)와; 상기 논리곱 게이트(AND5)의 출력신호를 입력단으로 입력받아 클럭에 의해 출력하는 플립플롭(FF5)과; 상기 플립플롭(FF5)의 출력신호와 유효 명령(inst_vld[2])을 논리곱 연산하는 논리곱 게이트(AND6)로 구성되며, 이와 같이 구성된 종래 기술에 따른 동작과정을 첨부한 도 4를 참조하여 설명한다.
우선, 자바 프로세서에서의 분기 명령은 하기와 같다.
lcmp, fcmpl, fcmpg, dcmpl, dcmpg, ifeq, ifnw, ifnt, ifge, ifgt, ifle, if_icmpeq, if_icmpne, if_icmplt, if_icmpgw, if_icmpgt, if_icmple, if_acmpeq, if_acmpne
여기서, 예를 들어 상기 if_icmpne와 같은 분기 명령이 입력되면, 우선, 상기 분기 명령을 팻치하게 되고, 이 후 다음 클럭에서 다음 명령을 팻치함과 동시에 상기 펫치된 분기 명령을 디코딩하게 되고, 그 다음 클럭에서 상기 분기 명령은 스톡 캐쉬를 억세스하게 된다.
그리고, 다음 클럭에서 상기 분기 명령에 해당하는 조건이 성립하는 경우, 분기테이큰 신호(in_brtaken_e)가 어써트(assert)됨에 따라 무효 신호 발생기내 논리합 게이트(OR1)는 트랩 신호(in_trap_c), 파워다운 신호(powerdown_e)등과 같은 복수의 명령어를 논리합 연산하여 무효 명령(kill_inst_d)을 액티브시키게 되며, 디어써트(deassert)된 분기테이큰바 신호(NOT in_brtaken_e)에 의해 유효 신호 발생기내 논리곱 게이트(AND1)는 저전위를 출력하게 된다.
그리고, 상기 논리곱 게이트(AND1)의 저전위 출력신호를 입력받은 플립플롭(FF1)은 다음 클럭에서 유효 명령(inst_vld[0])을 디써트시키게 된다.
즉, 분기 명령이 주어지면, E 단계(stage)에서 상기 유효 신호 발생기로 어써트된 분기테이큰 신호(in_brtacken_e)가 인가되고 상기 무효 신호 발생기로 디어써트된 분기테이큰바 신호(NOT in_brtaken_e)가 인가됨에 따라 상기 유효 신호 발생기 및 무효 신호 발생기는 각각 유효 명령(inst_vld[2:0]) 및 무효 명령(kill_inst_d)을 각기 디어써트 및 어써트시켜 출력하게 된다.
그리고, W 단계에서 상기 디어써트된 유효 명령(inst_vld[2:0])을 입력받은 상기 스톡 캐쉬 제어기는 쓰기 인에이블 신호(iu_data_w)를 디어써트(deassert)시켜 분기의 아래 명령에 대해서는 스톡 캐쉬에 쓰기하는 동안 블록킹(Blocking)하게 된다.
따라서, 분기 명령의 수신지(Destination)를 펫치하기까지 상기 분기의 수신지 어드레스의 계산과 분기의 수신 여부가 'E' 단계에서 결정됨에 따라 2 싸이클의 시간 손해를 보게 되며, 이에 따라 분기 명령 다음으로 펫치된 2개의 명령은 결과적으로 플러시(flush)되어 2 싸이클동안 상기 자바 프로세서는 명령을 수행하지 않게 된다.
상기와 같이 종래의 기술에 있어서 분기 명령이 주어졌을 경우, 분기 아래의 명령을 수행하지 않음에 따라 2 싸이클의 시간 손해를 보게 되며, 자바 프로세서의 밉스(Million Instructions Per Second)치를 높이는데 한계가 있으며, 특히, 씨언어(C Language)와 같은 고차원 언어로 프로그래밍시 상기 분기 명령의 수행 횟수가 전체의 약 20%를 차지함에 따라 전체적인 시스템의 성능이 저하되는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창안한 것으로, 자바 프로세서에 있어서 사용하지 않던 지연 슬롯을 사용하여 명령을 수행하는 지연 분기 구조를 갖게 함으로써 분기 명령 수행시 시간 손실을 최소화하여 성능을 향상시킨 지연 분기 구조를 갖는 자바 프로세서를 제공함에 그 목적이 있다.
도 1은 종래 자바 프로세서의 유효 신호 발생기의 구성을 보인 회로도.
도 2는 종래 자바 프로세서의 무효 신호 발생기의 구성을 보인 회로도.
도 3은 종래 자바 프로세서의 스톡 캐쉬 제어기의 구성을 보인 회로도.
도 4는 종래 자바 프로세서에서 분기 명령 수행시의 파이프 라인 패턴 및 제어 신호 타이밍도.
도 5는 본 발명의 유효 신호 발생기의 구성을 보인 회로도.
도 6은 본 발명의 무효 신호 발생기의 구성을 보인 회로도.
도 7은 본 발명에서 분기 명령 수행시의 일실시 파이프 라인 패턴도.
***도면의 주요 부분에 대한 부호의 설명***
AND1 ∼ AND6 : 논리곱 게이트 OR1 : 논리합 게이트
FF1 ∼ FF5 : 플립플롭
상기와 같은 목적을 달성하기 위한 본 발명은 분기 명령에 의해 다음 2 싸이클동안 명령을 수행하지 않는 자바 프로세서에 있어서, 제1,제2 지연슬롯의 명령을 수행하도록 상기 분기 명령에 의해 유효 명령을 디어써트시키지 않는 유효 신호 발생기와; 상기 분기 명령에 의해 무효 명령을 어써트시키지 않는 무효 신호 발생기를 구비하여 된 것을 특징으로 한다.
이하, 본 발명에 따른 일실시예에 대한 동작과 작용효과를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도 5 및 도 6은 본 발명의 유효 신호 발생기 및 무효 신호 발생기의 구성을 보인 회로도로서, 이에 도시한 바와 같이 종래 도 1 및 도 2의 유효 신호 발생기 및 무효 신호 발생기와 동일하게 구성하나 각각의 논리곱 게이트 및 논리합 게이트로 각기 분기 테이큰바 신호와 분기 테이큰 신호를 인가받지 않도록 구성한다.
그리고, 도 7은 분기 명령 수행시의 일실시 파이프 라인 패턴도로서, 이에 도시한 바와 같이 분기 명령 바로 아래 명령이 들어갈 자리인 제1 지연슬롯과 두번째 아래에 명령이 들어갈 자리인 제2 지연 슬롯을 구비하며, 이와 같이 구성한 본 발명에 따른 동작과정을 상세히 설명한다.
우선, 자바의 명령 타입은 하기 표 1과 같이 6개가 있으며, 폴딩 그룹은 하기 표 2와 같이 9개의 그룹으로 나눈다.
이때, 상기 분기 명령 아래 구비된 제1,제2 지연 슬롯에 들어갈 수 없는 명령은 하기와 같다.
1. 트랩(Trap), 마이크로 코드(Microcode)로 처리되는 명령을 제외한다.
2. 비지1(BG1),비지2(BG2),엔에프(NF)에서 분기 명령을 제외한다.
3. 기타 프로그램 카운터(Program Counter)값을 변화시키는 명령을 제외한다.
여기서, 기본적인 동작은 분기 명령이 주어지면, 무효 신호 발생기는 어써트된 분기테이큰 신호(in_brtaken_e)를 입력받지 않기 때문에 무효 명령(kill_inst_d)을 어써트시키지 않으며, 또한, 디어써트된 분기테이큰바 신호(NOT in_brtaken_e)를 입력받지 않은 유효 신호 발생기는 유효 명령(inst_vld[2:0])을 디어써트시키지 않는다.
그리고, 스톡 캐쉬에 데이터 쓰기 동작을 제어하는 스톡 캐쉬 제어기가 상기 유효 명령(inst_vld[2:0])에 의해 정상적으로 동작함에 따라 상기 제1,제2 지연 슬롯상의 명령을 수행한 연산 결과를 쓰는 동작을 수행한다.
즉, 분기 명령 아래의 2그룹의 명령을 분기 수신지로 점핑(jumping)하기 전에 실행한다.
여기서, 이를 예를 들어 설명하면, 분기 명령이 인가된 이후 상기 제1,제2 지연 슬롯에 각각 제1 폴딩 그룹(folding group)(LV, LV, OP, MEM)의 명령이 인가되는 경우를 가정하자.
예) if_icmpeq 0x1122 : 분기 명령
(LV Type) iload_1 : 제1 폴딩 그룹 (제1 지연슬롯)
(LV Type) iload_2 : 제1 폴딩 그룹 (제1 지연슬롯)
(OPype) iadd : 제1 폴딩 그룹 (제1 지연슬롯)
(MEM Type) istore_3 : 제1 폴딩 그룹 (제1 지연슬롯)
(LV Type) iload_4 : 제1 폴딩 그룹 (제2 지연슬롯)
(LV Type) iload_5 : 제1 폴딩 그룹 (제2 지연슬롯)
(OP Type) isub : 제1 폴딩 그룹 (제2 지연슬롯)
(MEM Type) istore_4 : 제1 폴딩 그룹 (제2 지연슬롯)
:
sipush 0x3300 : 수신지 어드레스 : PC + 0x1122
sethi 0x55
:
여기서, PC는 프로그램 카운터이다.
그리고, 상기 분기 명령이후 제1,제2 지연슬롯에 팻치된 명령은 상기 무효 명령 발생기와 유효 명령 발생기가 각기 분기 명령에 의해 무효 명령(kill_inst_d) 및 유효 명령(inst_vld[2:0])을 어써트 및 디어써트시키지 않음에 따라 상기 제1,제2 지연슬롯으로 팻치된 명령을 수행한다.
이때, 상기 제1,제2 지연슬롯에 들어가는 명령의 최대 갯수는 최대의 효율을 내는 제1 그룹으로 폴딩이 되었을 때인 8개이다.
상기에서 상세히 설명한 바와 같이, 본 발명은 지연 분기 구조를 통해 사용하지 않던 지연 슬롯을 사용하여 약 2∼8개의 명령을 수행함으로써, 자바 프로세서의 분기명령 수행시 시간 손실을 최소화함과 아울러 밉스 성능이 크게 향상됨에 따라 전체적인 시스템의 성능을 향상시키는 효과가 있다.

Claims (3)

  1. 분기 명령에 의해 다음 2 싸이클동안 명령을 수행하지 않는 자바 프로세서에 있어서, 분기 테이큰바 신호를 인가받지 않고 제1,제2 지연슬롯의 명령을 수행하도록 상기 분기 명령에 의해 유효 명령을 디어써트시키지 않는 유효 신호 발생기와; 분기 테이큰바 신호를 인가받지 않고 상기 분기 명령에 의해 무효 명령을 어써트시키지 않는 무효 신호 발생기를 구비하여 된 것을 특징으로 하는 지연 분기 구조를 갖는 자바 프로세서.
  2. 삭제
  3. 제1항에 있어서, 상기 제1,제2 지연 슬롯은 트랩 또는 마이크로코드로 처리되는 명령, 비지1, 비지2, 엔에프에서의 분기 명령, 프로그램 카운터의 값을 변화시키는 명령을 인가받지 않도록 한 것을 특징으로 하는 지연 분기 구조를 갖는 자바 프로세서.
KR1019990050153A 1999-11-12 1999-11-12 지연 분기 구조를 갖는 자바 프로세서 KR100336773B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990050153A KR100336773B1 (ko) 1999-11-12 1999-11-12 지연 분기 구조를 갖는 자바 프로세서

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990050153A KR100336773B1 (ko) 1999-11-12 1999-11-12 지연 분기 구조를 갖는 자바 프로세서

Publications (2)

Publication Number Publication Date
KR20010046393A KR20010046393A (ko) 2001-06-15
KR100336773B1 true KR100336773B1 (ko) 2002-05-16

Family

ID=19619748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990050153A KR100336773B1 (ko) 1999-11-12 1999-11-12 지연 분기 구조를 갖는 자바 프로세서

Country Status (1)

Country Link
KR (1) KR100336773B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131180A (ja) * 1992-10-15 1994-05-13 Oki Electric Ind Co Ltd 命令処理方式および命令処理装置
US5784603A (en) * 1996-06-19 1998-07-21 Sun Microsystems, Inc. Fast handling of branch delay slots on mispredicted branches
JPH10222367A (ja) * 1997-01-24 1998-08-21 Texas Instr Inc <Ti> ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US5809294A (en) * 1991-07-12 1998-09-15 Mitsubishi Denki Kabushiki Kaisha Parallel processing unit which processes branch instructions without decreased performance when a branch is taken
KR19990017121A (ko) * 1997-08-21 1999-03-15 구자홍 디지탈신호처리기의 조건부 분기 명령수행 방법
KR20000055226A (ko) * 1999-02-04 2000-09-05 김영환 단일 사이클을 이용한 자바 프로세서

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809294A (en) * 1991-07-12 1998-09-15 Mitsubishi Denki Kabushiki Kaisha Parallel processing unit which processes branch instructions without decreased performance when a branch is taken
JPH06131180A (ja) * 1992-10-15 1994-05-13 Oki Electric Ind Co Ltd 命令処理方式および命令処理装置
US5784603A (en) * 1996-06-19 1998-07-21 Sun Microsystems, Inc. Fast handling of branch delay slots on mispredicted branches
JPH10222367A (ja) * 1997-01-24 1998-08-21 Texas Instr Inc <Ti> ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
KR19990017121A (ko) * 1997-08-21 1999-03-15 구자홍 디지탈신호처리기의 조건부 분기 명령수행 방법
KR20000055226A (ko) * 1999-02-04 2000-09-05 김영환 단일 사이클을 이용한 자바 프로세서

Also Published As

Publication number Publication date
KR20010046393A (ko) 2001-06-15

Similar Documents

Publication Publication Date Title
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
KR930018378A (ko) 캐쉬 메모리 시스템의 성능최적화 방법 및 장치
JPH0922318A (ja) プロセッサ及びその制御方法
JPH06274352A (ja) コンパイラ、及びデータ処理装置
KR20070004705A (ko) 전자 회로와 그 동작 방법
KR100336773B1 (ko) 지연 분기 구조를 갖는 자바 프로세서
CN108920188B (zh) 一种扩展寄存器堆的方法及装置
KR100705872B1 (ko) 몇몇의 명령원으로부터의 명령 실행 프로세서 및 방법
US7000135B2 (en) Clock control method and information processing device employing the clock control method
JP3462245B2 (ja) 中央演算処理装置
KR100284287B1 (ko) 가변 리셋 어드레스를 가지는 마이크로프로세서
KR100635111B1 (ko) 지정 가능한 지연 슬롯과 스쿼싱 조건을 가지는 분기 처리프로세서
KR100347138B1 (ko) 프로세서의 데이터처리방법
KR100300875B1 (ko) 캐쉬 미스 시 처리 방법
JP2721611B2 (ja) プログラマブルコントローラ
JP2721610B2 (ja) プログラマブルコントローラ
JPH08272608A (ja) パイプライン処理装置
KR20030067365A (ko) Eisc 프로세서의 명령어 폴딩 장치 및 방법
JP2770420B2 (ja) マイクロプログラム制御方式
JP2000259409A (ja) 処理装置
JPH07191845A (ja) 即値データ転送装置
KR20030080160A (ko) Risc 프로세서의 동작 제어 방법
KR19990017020A (ko) 마이크로 프로세서 제어회로
JPH07152581A (ja) 命令配置装置および命令配置方法
JPH02234227A (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
FPAY Annual fee payment

Payment date: 20050422

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee