KR960032198A - 컴퓨터에서 분기 명령어를 처리하기 위한 장치 - Google Patents
컴퓨터에서 분기 명령어를 처리하기 위한 장치 Download PDFInfo
- 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
Links
- 238000004590 computer program Methods 0.000 claims abstract 13
- 230000009977 dual effect Effects 0.000 claims 3
- 238000000034 method Methods 0.000 claims 2
- 230000006870 function Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative 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메모리내의 분기예측 엔트리에 관련된 강도 엔트리를 저장하기 위한 제2메모리를 구비하는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제1항에 있어서, 상기 제1메모리에 연결되되, 상기 제1명령어가 파이프라인 컴퓨터에서 실행되고 해석된 후, 상기 제1명령어에 상응하는 상기 제1메모리내의 분기 예측 엔트리를 업데이트하기 위한 업데이트 회로를 더 구비하는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제2항에 있어서, 상기 업데이트 회로는 , 상기 제1명령어의 예측 경로의 소정 횟수의 연속적인 예측 오류 후 상기 제1명령어에 상응하는 상기 분기 예측 비트를 반전시키는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 퓨터.
- 제3항에 있어서, 상기 분기 예측 엔트리는 예측 비트를 포함하고, 상기 업데이트 회로는 소정 횟수의 연속적인 예측 오류 후에 제1상태에서 제2상태로 예측 비트를 반전시키는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제1항에 있어서, 상기 제1메모리는 이중 포트 랜덤 억세스 메모리인 것을 특징으로 하는 컴퓨터.
- 제5항에 있어서, 상기 이중 포트 랜덤 억세스 메모리의 제1포트는 상기 제1명령어에 상응하는 상기분기예측 엔트리를 읽기위한 것이고, 상기 이중 포트 랜덤 억섹스 메모리의 제2포트는 상기 컴퓨터 프로그램내의 상기 제1명령어에 비해 이전의 명령어에 상응하는 제1메모리내의 제2분기 예측 엔트리를 업데이트하기 위한 것임을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제1항에 있어서, 상기 제2메모리는 단일 포트 랜덤 억세스 메모리인 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제1항에 있어서, 상기 제2메모리에 연결되되, 상기 제1명령어가 상기 파이프라인에서 실행되고 해석된 후 상기 제1메모리내의 상기 분기 예측 엔트리에 관련된 상기 강도 엔트리를 업데이트하기 위한 업데이트 회로를 구비하는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제8항에 있어서, 상기업데이트 회로는 제1명령어가 해석된 후 상기 제1명령어를 대한 상기 분기예측 엔트리가 정확한 것이 판명될 때 제1상태에서 상기 강도 엔트리를 유지함으로써 강도 엔트리를 업데이트하고, 상기 제1명령어가 해석된 후에 분기 예측 엔트리가 부정확한 것이 판명될 때 상기 강도 엔트리를 제2상태로 리셋하기 위한 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제1항에 있어서, 상기 다음 페치 주소 회로는 , 상기 컴퓨터 프로그램의 상기 제1명령어가 페치 된 후 컴퓨터 프로그램의 제2명령어를 페치하기 위한 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제10항에 있어서, 상기 제1명령어가 조건 분기이고 상기 제1명령어에 상응하는 제1메모리내이 상기 예측엔트리가 분기가 이루어지지 않음을 나타내면, 상기 제2명령어는 상기 제1명령어를 뒤따르는 다음의 순차적인 명령어인 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.
- 제10항에 있어서, 상기 제1명령어가 조건 분기이고 상기 제1명령어에 상응하는 상기 제1메모리내의 상기 예측 엔트리가 분기가 이루어졌음을 나타내면, 상기 제2명령어는 상기 제1명령어인 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터
- 제1항에 있어서, 상기 제1메모리는 다수의 분기 예측 엔트리를 포함하고 상기 분기 예측 엔트리 각각은 해쉬 함수를 사용하여 억세스 되는 것을 특징으로 하는 컴퓨터 프로그램의 명령어를 처리하기 위한 컴퓨터.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
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)
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 |
-
1996
- 1996-02-13 EP EP96300965A patent/EP0729095A1/en not_active Withdrawn
- 1996-02-23 KR KR1019960004399A patent/KR960032198A/ko not_active Application Discontinuation
- 1996-02-23 JP JP8060369A patent/JPH08328856A/ja active Pending
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 |