KR970016946A - 순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서 - Google Patents

순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서 Download PDF

Info

Publication number
KR970016946A
KR970016946A KR1019960028565A KR19960028565A KR970016946A KR 970016946 A KR970016946 A KR 970016946A KR 1019960028565 A KR1019960028565 A KR 1019960028565A KR 19960028565 A KR19960028565 A KR 19960028565A KR 970016946 A KR970016946 A KR 970016946A
Authority
KR
South Korea
Prior art keywords
floating
instruction
point
register
execution
Prior art date
Application number
KR1019960028565A
Other languages
English (en)
Other versions
KR100260680B1 (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 KR970016946A publication Critical patent/KR970016946A/ko
Application granted granted Critical
Publication of KR100260680B1 publication Critical patent/KR100260680B1/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
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

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

본 발명은 수퍼스칼라 마이크로프로세서(superscaler microprocessor)내에서 이전의 로드/저장 다중 인스트럭션에 앞서 부동 소수점 인스트럭션을 조기에 완료하는 방법 및 장치를 제공한다. 마이크로프로세서의 로드/저장 유닛(load/store execution unit)은 데이타를 범용 레지스터에 로드시키거나 혹은 이 레지스터로부터 데이타를 저장하고, 마이크로프로세서의 디스패치 유닛은 인스트럭션을 로드/저장 실행 유닛 및 부동 소수점 실행 유닛을 포함하는 다수의 실행 유닛에 디스패치시킨다. 본 발명의 방안은 다중 레지스터 인스트럭션(multi-register instruction)을 로드/저장 유닛에 디스패치하여 다중 레지스터 인스트릭션의 실행을 개시하는 디스패치 유닛을 포함하며, 저장 다중 인스트럭션 또는 로드 다중 인스트럭션과 같은 다중 레지스터 인스트럭션은 다수의 범용 레지스터들중 하나 이상의 레지스터로부터 데이타를 메모리에 저장 또는 로드시킨다. 또한, 실행을 완료하는 다중 레지스터 인스트럭션에 앞서, 디스패치 유닛은 다수의 부동 소수점 레지스터의 하나 이상의 부동 소수점 레지스터에 저장된 소스 오퍼랜드 데이타(soure operand data)에 종속하는 부동 소수점 인스트럭션을 부동 소수점 실행 유닛에 디스패치하며, 디스패치된 부동 소수점 인스트럭션은 실행을 완료하는 다중 레지스터 인스트럭션에 앞서 실행을 완료한다.

Description

순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명의 바람직한 실시예에 따라 정보를 처리하는 프로세서를 도시한 블럭도.
제2도는 종래 기술의 로드/저장 다중 인스트럭션 및 후속 부동 소수점 인스트럭션을 처리하는데 필요한 사이클의 타이밍도.
제3도는 본 발명의 바람직한 실시예에 따라 로드/저장 다중 인스트럭션 및 두개의 부동 소수점 인스트럭션을 본 발명의 마이크로프로세서내에서 처리하는데 필요한 사이클을 도시한 타이밍도.

Claims (4)

  1. 데이타를 다수의 범용 레지스터들중 하나 이상의 레지스터로부터 메모리에 저장 또는 로드(load)하는 다중-레지스터 인스트럭션중 적어도 하나(at least one multiple-regiser instruction)를 포함하고, 디스패쳐(a dispatcher)와, 다수의 범용 레지스터와, 다수의 부동-소수점 레지스터와, 로드/저장 유닛(a load/store unit) 및 부동-소수점 실행 유닛(a floating-point execution uint)이 구비된 다수의 실행 유닛을 포함하는 수퍼스칼라 마이크로프로세서(a superscalar microprocessor)내에서 순서외의 다중 인스트럭션의 완료(out-of-order completion of multiple instructions)를 지원하는 방법에 있어서, 상기 디스패쳐로부터의 다중-레지스터 인스트럭션을 상기 로드/저장 유닛에 디스패치(dispatch)하는 단계로서, 상기 로드/저장 유닛은 디스패치될 때 상기 다중-레지스터 인스트럭션의 실행을 개시하는, 상기 디스패치 단계와; 상기 디스패치된 다중-레지스터 인스트럭션에 이어서 상기 다수의 부동 소수점 레지스터의 하나 이상의 부동 소수점 레지스터에 저장된 소스 오퍼랜드 데이타(source operand data)에 종속하는 부동-소수점 인스트럭션을 프로그램 순서에 따라 상기 디스패쳐로부터 상기 부동 소수점 인스트럭션을 실행하는 상기 부동 소수점 실행 유닛에 디스패치하는 단계와; 상기 다중-레지스터 인스트럭션이 상기 로드/저장 유닛으로 완료된 후에, 그러나 실행을 완료하는 상기 다중-레지스터 인스트럭션에 앞서 상기 부동 소수점 인스트럭션을 완료하는 단계를 포함하는 순서외의 다중 인스트럭션 완료 지원 방법.
  2. 제1항에 있어서, 상기 다중-레지스터 인스트럭션은 다수의 범용 레지스터로부터의 데이타를 메모리에 저장하는 순서외의 다중 인스트럭션 완료 지원 방법.
  3. 제1항에 있어서, 상기 다중-레지스터 인스트럭션은 메모리로부터의 데이타를 다수의 범용 레지스터에 로드시키는 순서외의 다중 인스트럭션 완료 지원 방법.
  4. 이전의 로드/저장 다중 인스트럭션으로부터 순서외 부동 소수점 인스트럭션을 완료하고, 메모리에 접속되는 수퍼스칼라 마이크로프로세서에 있어서, 정수 데이타를 선택적으로 저장하는 다수의 범용 레지스터와; 부동 소수점 데이타를 선택적으로 저장하는 다수의 부동 소수점 레지스터와, 데이타를 상기 범용 레지스터에 로드시키거나 혹은 상기 범용 레지스터로부터 데이타를 저장하는 로드 이중 인스트럭션 및 저장 다중 인스트럭션을 실행하는 로드/저장 실행 유닛과; 상기 다수의 부동 소수점 레지스터에 저장된 오퍼랜드 데이타상에서 부동 소수점 오퍼레이션을 실행하는 부동 소수점 실행 유닛과; 스트럭션을 상기 로드/저장 실행 유닛 및 상기 부동 소수점 실행 유닛을 포함하는 다수의 실행 유닛에 디스패치시키는 디스패치 유닛으로서, 상기 디스패치 유닛은 다중-레지스터 인스트럭션을 상기 로드/저장 유닛에 디스패치하여 상기 다중-레지스터 인스트럭션의 실행을 개시하고, 상기 로드/저장 유닛에서 실행을 완료하는 상기 다중-레지스터 인스트럭션에 앞서, 상기 디스패치 유닛은 상기 다수의 부동 소수점 레지스터의 하나 이상의 부동 소수점 레지스터에 저장된 소스 오퍼랜드 데이타에 종속하는 부동 소수점 인스트럭션을 상기 부동 소수점 실행 유닛에 디스패치하는, 상기 디스패치 유닛을 포함하고; 상기 디스패치된 부동 소수점 인스트럭션은 실행을 완료하는 상기 다중-레지스터 인스트럭션에 앞서 실행을 완료하는 수퍼스칼라 마이크로프로세서.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019960028565A 1995-09-11 1996-07-15 순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서 KR100260680B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/526,610 1995-09-11
US08/526,610 US5850563A (en) 1995-09-11 1995-09-11 Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US08/526,610 1995-09-11

Publications (2)

Publication Number Publication Date
KR970016946A true KR970016946A (ko) 1997-04-28
KR100260680B1 KR100260680B1 (ko) 2000-07-01

Family

ID=24098036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960028565A KR100260680B1 (ko) 1995-09-11 1996-07-15 순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서

Country Status (4)

Country Link
US (1) US5850563A (ko)
EP (1) EP0762271A3 (ko)
JP (1) JP3096429B2 (ko)
KR (1) KR100260680B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035394A (en) * 1998-02-17 2000-03-07 International Business Machines Corporation System for providing high performance speculative processing of complex load/store instructions by generating primitive instructions in the load/store unit and sequencer in parallel
US6789187B2 (en) * 2000-12-15 2004-09-07 Intel Corporation Processor reset and instruction fetches
DE10210085B8 (de) * 2002-03-08 2008-11-27 Technische Universität Hamburg-Harburg Verfahren und Prozessor zur Kombination von Daten- und Kontrollflußoperationen
US7308527B2 (en) * 2005-01-24 2007-12-11 International Business Machines Corporation System for indicating a plug position for a memory module in a memory system
US20060179286A1 (en) * 2005-02-09 2006-08-10 International Business Machines Corporation System and method for processing limited out-of-order execution of floating point loads
JP6344022B2 (ja) * 2014-04-08 2018-06-20 富士通株式会社 演算処理装置および演算処理装置の制御方法
CH716218B1 (de) 2019-05-24 2024-02-15 Digitum Ag System und Verfahren zur Autorisierung von Transaktionen.

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
GB8817911D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus
JPH0673105B2 (ja) * 1988-08-11 1994-09-14 株式会社東芝 命令パイプライン方式のマイクロプロセッサ
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
US5241636A (en) * 1990-02-14 1993-08-31 Intel Corporation Method for parallel instruction execution in a computer
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
JP2556182B2 (ja) * 1990-08-29 1996-11-20 三菱電機株式会社 デ−タ処理装置
US5355457A (en) * 1991-05-21 1994-10-11 Motorola, Inc. Data processor for performing simultaneous instruction retirement and backtracking
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
JP3544214B2 (ja) * 1992-04-29 2004-07-21 サン・マイクロシステムズ・インコーポレイテッド プロセッサの状態を監視する方法及び監視システム
CA2107046A1 (en) * 1993-01-08 1994-07-09 James Allan Kahle Method and system for increased instruction dispatch efficiency in superscalar processor system
JP2742375B2 (ja) * 1993-01-08 1998-04-22 インターナショナル・ビジネス・マシーンズ・コーポレイション スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム
US5467473A (en) * 1993-01-08 1995-11-14 International Business Machines Corporation Out of order instruction load and store comparison
EP0651321B1 (en) * 1993-10-29 2001-11-14 Advanced Micro Devices, Inc. Superscalar microprocessors
US5542109A (en) * 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities
US5625789A (en) * 1994-10-24 1997-04-29 International Business Machines Corporation Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle

Also Published As

Publication number Publication date
JPH09138748A (ja) 1997-05-27
KR100260680B1 (ko) 2000-07-01
EP0762271A2 (en) 1997-03-12
US5850563A (en) 1998-12-15
JP3096429B2 (ja) 2000-10-10
EP0762271A3 (en) 2000-11-15

Similar Documents

Publication Publication Date Title
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
JP3580657B2 (ja) 並列マルチタスキングの方法及びシステム
AU639953B2 (en) Data processing system with instruction tag apparatus
US7028170B2 (en) Processing architecture having a compare capability
KR100284788B1 (ko) 데이터 처리 시스템에서 에뮬레이션 동안의 브랜치 처리 방법및 시스템
KR100341533B1 (ko) 데이타처리시스템의에뮬레이션동안의인터럽트처리방법및시스템
KR940018742A (ko) 슈퍼스칼라 프로세서 시스템에서 복수의 명령어를 단일 사이클로 디스패치하기 위한 방법 및 장치
KR19990029287A (ko) 데이터 처리 시스템 에뮬레이션 모드에서의 간접 무조건 브랜치
JPH02227731A (ja) データ処理システム
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
EP1387259B1 (en) Inter-processor control
US5872948A (en) Processor and method for out-of-order execution of instructions based upon an instruction parameter
CN113590197A (zh) 一种支持可变长向量处理的可配置处理器及其实现方法
KR950027561A (ko) 처리 시스템 및 그의 동작 방법
KR960706124A (ko) 워드 정렬 브랜치 타겟을 가지는 처리 시스템(Processing system with word aligned branch target)
KR970016946A (ko) 순서외의 다중 인스트럭션 완료 지원 방법 및 수퍼스칼라 마이크로프로세서
KR940018743A (ko) 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템
US5930495A (en) Method and system for processing a first instruction in a first processing environment in response to intiating processing of a second instruction in a emulation environment
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
US6775762B1 (en) Processor and processor system
JP2878792B2 (ja) 電子計算機
JP2843844B2 (ja) 並列演算処理装置
JP2856784B2 (ja) 電子計算機
JPH02148328A (ja) オペランドデータ先取り方式
JPH10143367A (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