KR960032198A - 컴퓨터에서 분기 명령어를 처리하기 위한 장치 - Google Patents

컴퓨터에서 분기 명령어를 처리하기 위한 장치 Download PDF

Info

Publication number
KR960032198A
KR960032198A KR1019960004399A KR19960004399A KR960032198A KR 960032198 A KR960032198 A KR 960032198A KR 1019960004399 A KR1019960004399 A KR 1019960004399A KR 19960004399 A KR19960004399 A KR 19960004399A KR 960032198 A KR960032198 A KR 960032198A
Authority
KR
South Korea
Prior art keywords
instruction
memory
computer
entry
computer program
Prior art date
Application number
KR1019960004399A
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 KR960032198A publication Critical patent/KR960032198A/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Landscapes

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

Abstract

본 발명은 컴퓨터 프로그램의 명령어들을 처리할 수 있는 프로세서에 관한 것이다. 프로세서는 컴퓨터 프로그램의 명령어들을 페칭하기 위한 다음 페치 주소 회로 및 다음 페치 주소 회로에 연결되고 페치된 명령어가 조건 분기인지를 결정하기 위해 페치된 명령어들을 부분적으로 디코딩하기 위한 디코드 회로를 포함한다. 컴퓨터는 또한 다음 페치 주소 회로에 연결되고, 프로그램의 조건 분기 명령어를 위한 다수의 분기 예측 엔트리들을 저장하기 위한 제1메모리도 포함한다. 컴퓨터는 또한 제1메모리내의 다수의 분기 예측 엔트리들과 관련된 다수 의 강도 엔트리들을 저장하기 위한 별도의 제2메모리도 포함한다. 조건 분기 명령어가 파이프라인 컴퓨터에서 실행 및 해석된 후에 제1 및 제2메모리 각각에 상응하는 분기 예측 엔트리 및 관련 강도 엔트리를 업데이트하기 위해서 제1메모리 및 제2메모리에 연결된 업데이트 회로도 또한 제공된다.

Description

컴퓨터에서 분기 명령어를 처리하기 위한 장치
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 파이프란인 마이크로프로세서의 스테이지들을 설명하기 위한 도면,
제2도는 종래 기술에 따른 마이크로프로세서를 위한 다음 페치 주소 및 분기 예측 테이블을 설명하기 위한 도면,
제3도는 본 발명에 따른 마이크로프로세서를 위한 다음 페치 주소 회로 및 분기 예측 테이블을 설명하기 위한 도면,
제4도는 본 발명에 따른 마이크로프로세서를 위한 분기 예측 테이블을 업데이트하기 위해 사용되는 업데이트 회로를 설명하기 위한 도면.

Claims (13)

  1. 컴퓨터 프로그램의 명령어들을 실행하기 위한 파이프라인; 상기 파이프라인에 연결되되, 컴퓨터 프로그램의 제1명령어를 페치하기 위한 다음 페치 주소 회로; 상기 다음 페치주소 회로에 연결되되, 상기 제1명령어가 페치된 후 상기 제1명령어를 부분적으로 디코딩하고, 상기 제1명령어가 조건 분기인가를 결정하기 위한 디코드회로; 상기 다음 페치 주소 회로에 연결되되, 상기 제1명령어가 조건 분기이면 사익 제1명령어에 상응하는 분기 예측 엔트리를 저장하기 위한 제1메모리; 상기 파이프라인에 연결되되, 상기 제1메모리내의 분기예측 엔트리에 관련된 강도 엔트리를 저장하기 위한 제2메모리를 구비하는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  2. 제1항에 있어서, 상기 제1메모리에 연결되되, 상기 제1명령어가 파이프라인 컴퓨터에서 실행되고 해석된 후, 상기 제1명령어에 상응하는 상기 제1메모리내의 분기 예측 엔트리를 업데이트하기 위한 업데이트 회로를 더 구비하는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  3. 제2항에 있어서, 상기 업데이트 회로는 , 상기 제1명령어의 예측 경로의 소정 횟수의 연속적인 예측 오류 후 상기 제1명령어에 상응하는 상기 분기 예측 비트를 반전시키는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 퓨터.
  4. 제3항에 있어서, 상기 분기 예측 엔트리는 예측 비트를 포함하고, 상기 업데이트 회로는 소정 횟수의 연속적인 예측 오류 후에 제1상태에서 제2상태로 예측 비트를 반전시키는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  5. 제1항에 있어서, 상기 제1메모리는 이중 포트 랜덤 억세스 메모리인 것을 특징으로 하는 컴퓨터.
  6. 제5항에 있어서, 상기 이중 포트 랜덤 억세스 메모리의 제1포트는 상기 제1명령어에 상응하는 상기분기예측 엔트리를 읽기위한 것이고, 상기 이중 포트 랜덤 억섹스 메모리의 제2포트는 상기 컴퓨터 프로그램내의 상기 제1명령어에 비해 이전의 명령어에 상응하는 제1메모리내의 제2분기 예측 엔트리를 업데이트하기 위한 것임을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  7. 제1항에 있어서, 상기 제2메모리는 단일 포트 랜덤 억세스 메모리인 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  8. 제1항에 있어서, 상기 제2메모리에 연결되되, 상기 제1명령어가 상기 파이프라인에서 실행되고 해석된 후 상기 제1메모리내의 상기 분기 예측 엔트리에 관련된 상기 강도 엔트리를 업데이트하기 위한 업데이트 회로를 구비하는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  9. 제8항에 있어서, 상기업데이트 회로는 제1명령어가 해석된 후 상기 제1명령어를 대한 상기 분기예측 엔트리가 정확한 것이 판명될 때 제1상태에서 상기 강도 엔트리를 유지함으로써 강도 엔트리를 업데이트하고, 상기 제1명령어가 해석된 후에 분기 예측 엔트리가 부정확한 것이 판명될 때 상기 강도 엔트리를 제2상태로 리셋하기 위한 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  10. 제1항에 있어서, 상기 다음 페치 주소 회로는 , 상기 컴퓨터 프로그램의 상기 제1명령어가 페치 된 후 컴퓨터 프로그램의 제2명령어를 페치하기 위한 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  11. 제10항에 있어서, 상기 제1명령어가 조건 분기이고 상기 제1명령어에 상응하는 제1메모리내이 상기 예측엔트리가 분기가 이루어지지 않음을 나타내면, 상기 제2명령어는 상기 제1명령어를 뒤따르는 다음의 순차적인 명령어인 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
  12. 제10항에 있어서, 상기 제1명령어가 조건 분기이고 상기 제1명령어에 상응하는 상기 제1메모리내의 상기 예측 엔트리가 분기가 이루어졌음을 나타내면, 상기 제2명령어는 상기 제1명령어인 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터
  13. 제1항에 있어서, 상기 제1메모리는 다수의 분기 예측 엔트리를 포함하고 상기 분기 예측 엔트리 각각은 해쉬 함수를 사용하여 억세스 되는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019960004399A 1995-02-23 1996-02-23 컴퓨터에서 분기 명령어를 처리하기 위한 장치 KR960032198A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US39271695A 1995-02-23 1995-02-23
US08/392,716 1995-02-23

Publications (1)

Publication Number Publication Date
KR960032198A true KR960032198A (ko) 1996-09-17

Family

ID=23551725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960004399A KR960032198A (ko) 1995-02-23 1996-02-23 컴퓨터에서 분기 명령어를 처리하기 위한 장치

Country Status (3)

Country Link
EP (1) EP0729095A1 (ko)
JP (1) JPH08328856A (ko)
KR (1) KR960032198A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647477B2 (en) * 2004-05-11 2010-01-12 Sun Microsystems, Inc. Branch target aware instruction prefetching technique

Also Published As

Publication number Publication date
JPH08328856A (ja) 1996-12-13
EP0729095A1 (en) 1996-08-28

Similar Documents

Publication Publication Date Title
US4847753A (en) Pipelined computer
KR920001321A (ko) 고속 프로세서에서의 브랜치 처리 방법 및 장치
KR940022253A (ko) 컴파일러 및 데이타처리장치
US6865667B2 (en) Data processing system having redirecting circuitry and method therefor
US5446849A (en) Electronic computer which executes squash branching
KR910012914A (ko) 서브 루틴 복귀 예상 메카니즘
JPS58125148A (ja) 条件付きブランチ命令の予測装置
KR960042344A (ko) 작은 하드웨어 규모로 많은 인터럽트 처리에 유연하게 대응하는 인터럽트 제어장치
KR950009454A (ko) 다중 실행 장치 처리 시스템 상태의 선택적 저장방법 및 시스템
KR930016884A (ko) 데이터 처리장치
SE9704476L (sv) Utökad instruktionsavkodning
KR960706124A (ko) 워드 정렬 브랜치 타겟을 가지는 처리 시스템(Processing system with word aligned branch target)
KR950033761A (ko) Rom 프로그램 변경기능을 가진 마이크로컴퓨터
JPH056894B2 (ko)
KR890000973A (ko) 마이크로코드 판독 제어 시스템
US5732235A (en) Method and system for minimizing the number of cycles required to execute semantic routines
KR900003738A (ko) 가변단어길이명령의 병렬해독 및 병렬실행을 하는 데이터처리장치
KR960032198A (ko) 컴퓨터에서 분기 명령어를 처리하기 위한 장치
US6732257B1 (en) Reducing the length of lower level instructions by splitting and recombining an immediate
KR970012141A (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
KR940009822A (ko) 서브루틴분기명령실행방법
JPS578851A (en) Parallel processing system
JPH02144626A (ja) マイクロプロセッサ
JPS6421628A (en) Arithmetic processing unit
KR100471137B1 (ko) 단축된 레지스터 클리어 인스트럭션 실행 사이클을 갖는 데이터처리 장치

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