KR960038600A - 데이터 처리 시스템 성능 향상을 위한 장치 및 그 방법(method and apparatus for improving system performance in a data processing system) - Google Patents

데이터 처리 시스템 성능 향상을 위한 장치 및 그 방법(method and apparatus for improving system performance in a data processing system) Download PDF

Info

Publication number
KR960038600A
KR960038600A KR1019960010200A KR19960010200A KR960038600A KR 960038600 A KR960038600 A KR 960038600A KR 1019960010200 A KR1019960010200 A KR 1019960010200A KR 19960010200 A KR19960010200 A KR 19960010200A KR 960038600 A KR960038600 A KR 960038600A
Authority
KR
South Korea
Prior art keywords
instructions
execution
instruction
long
long decoded
Prior art date
Application number
KR1019960010200A
Other languages
English (en)
Other versions
KR100230552B1 (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 KR960038600A publication Critical patent/KR960038600A/ko
Application granted granted Critical
Publication of KR100230552B1 publication Critical patent/KR100230552B1/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/22Microcontrol or microprogram arrangements
    • 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/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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/3856Reordering of instructions, e.g. using queues or age tags
    • 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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)

Abstract

컴퓨터 처리 장치는 디코딩된 명령 버퍼(DIB)라고 부르는 버퍼를 포함한다. 상기 버퍼는 실행될 수 있는 명령을 표현하는 명령의 그룹을 저장하는데 사용된다. DIB 그룹 안의 각각의 패턴은 긴 디코딩된 명령(LDI)이라 명명되는 긴 명령의 엔코딩이다. 상기 DIB는 메모리 시스템, 명령 큐, 그리고 실행 유니트 집합에 명령을 전달하는 명령 디스패치 유니트로 구성된 종래의 컴퓨터 처리 장치와 함께 동작한다. 어떤 명령이 상기 DIB에서 사용할 수 없을 때, 상기 명령과 이어지는 명령은 상기 메모리 시스템으로부터 상기 명령 큐에 로드되고, 종래의 방법으로 실행된다. 이때 상기 종래의 방법은 사용가능 기능 유니트의 부분 집합을 이용하거나 상기 목적을 위해 전용 기능 유니트를 사용한다. 종래의 장치에 의한 명령의 실행과 동시에, 그룹 포맷터는 LDI집합을 생성하고, 이때 각각의 LDI는 병렬 실행을 할 수 있는 근원 명령 집합의 대체 엔코딩이다. LDI를 구성할 때, 상기 그룹 포맷터는 명령들 사이의 의존관계와 명령 지연을 분석한다. 그룹 포맷터에 의해 구성된 각각의 LDI 집합은 DIB에 저장되어 동일 명령 집합의 다음 실행은 기능 유니트의 풀 컴플리먼트(full complement)인 DIB로부터 직접 실행될 수 있고, 의존 관계와 지연 분석을 위한 노력을 요구하지 않는다.

Description

데이타 처리 시스템에서 시스템 성능 향상을 위한 장치 및 그 방법(METHOD AND APPARATUS FOR IMPROVING SYSTEM PERFORMANCE IN A DATA PROCESSING SYSTEM)
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따라 컴퓨터 처리 장비의 구성을 나타낸 블록도, 제2도는 제1도의 병렬엔진의 구성을 나타낸 블록도, 제3도는 제2도의 DIB의 엔트리 포맷을 나타낸 블록도.

Claims (40)

  1. 적어도 하나의 실행 유니트에 의해 실행되는 명령들을 저장하기 위한 제1메모리와 페치 제어 신호를 따라 상기 제1 메모리로부터 명령 큐에 상기 명령들을 페치하는 명령 페치 유니트와 상기 실행 유니트에 의해 실행하기 위해 상기 명령 큐에 저장된 명령들을 디스패치하는 디스패치 유니트와 상기 실행 유니트에 의해 수행되는 명령들의 실행에 따라 상기 페치 제어 신호를 갱신하기 위한 수단을 포함하는 제1처리 엔진과, 상기 제1처리 엔진의 상기 실행 유니트에 의한 상기 명령들의 시퀀스들의 실행과 동시에 상기 디스패치 유니트의 실행을 위하여 디스패치된 명령들의 시퀀스들의 대체 엔코딩을 생성하기 위한 그룹 포맷터를 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  2. 제1항에 있어서, 상기 그룹 포맷터는 상기 제1 처리 엔진의 상기 실행 유니트에 의한 상기 명령들의 시퀀스들에 연속하는 상기 대체 엔코딩을 생성하는 것을 특징으로 하는 컴퓨터 처리 장치.
  3. 제1항에 있어서, 상기 그룹 포맷터에 의해 생성된 상기 대체 엔코딩은 병렬 실행에 적합한 것을 특징으로 하는 컴퓨터 처리 장치.
  4. 제1항에 있어서, 상기 그룹 포맷터에 의해 생성된 상기 대체 엔코딩을 저장하기 위한 제2 메모리와, 상기 페치 제어 신호가 상기 제2 메모리에 저장된 상기 대체 엔코딩과 일치한다는 것을 감지할 때 상기 제2 메모리에 저장된 상기 대체 엔코딩과 일치한다는 것을 감지할 때 상기 제2 메모리에 저장된 상기 대체 엔코딩을 실행하기 위한 대체 엔코딩 실행 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  5. 제4항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 제1처리 엔진의 상기 실행 유니트와 다른 것을 특징으로 하는 컴퓨터 처리 장치.
  6. 제4항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 제1처리 엔진의 상기 실행 유니트를 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  7. 제4항에 있어서, 상기 그룹 포맷터에 의해 생성되는 상기 대체 엔코딩은 상기 대체 엔코딩 실행 수단에 의한 병렬 실행에 적합한 것을 특징으로 하는 컴퓨터 처리 장치.
  8. 제7항에 있어서, 상기 대체 엔코딩 실행 수단은 복수의 실행 유니트들을 포함하며, 상기 그룹 포맷터에 의해 생성되는 상기 대체 엔코딩은 긴 디코딩된 명령들의 집합을 포함하고 상기 긴 디코딩된 명령들의 집합의 각각의 긴 디코딩된 명령(LDI)은 상기 대체 엔코딩 실행 수단의 상기 복수의 실행 유니트들 중 하나에 각각 관련된 op-필드들을 포함하며, 각각의 op-필드는 단일 머신 사이클에서 상기 대체 엔코딩 실행 수단의 상기 관련된 실행 유니트에 의해 수행될 수 있는 것을 특징으로 하는 컴퓨터 처리 장치.
  9. 제8항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 op-필드가 사용 및/또는 정의할 수 있는 복수의 레지스터 리소스들을 포함하며, 상기 그룹 포맷터는 상기 디스패치 유니트에 의한 실행을 위해 디스패치된 명령들의 상기 시퀀스들에 따라 상기 op-필드들을 생성하는 op-필드 대코더와, 상기 긴 엔코딩된 명령들의 집합의 어떤 LDI상에서 상기 관련된 레지스터 리소스가 사용가능한지를 식별하며 각각의 상기 레지스터 리소스에 관련된 시간 스램프 식별자들을 저장하기 위한 시간 스램프 테이블과, 상기 명령들의 시퀀스들내 명령들 사이의 의존 관계와 상기 시간 스탬프테이블 안에 저장된 상기 시간 스탬프 식별자들과 상기 op-필드 부호기에 의해 생성된 상기 op-필드들에 따라 상기 긴 디코딩된 명령들의 집합을 구축하는 할당자를 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  10. 제9항에 있어서, 상기 할당자는 상기 명령들의 시퀀스들내에서 명령들의 지연에 따라 상기 긴 디코딩된 명령들의 집합을 구축하는 것을 특징으로 하는 컴퓨터 처리 장치.
  11. 제9항에 있어서, 상기 할당자는 상기 명령들의 시퀀스에서 하나의 명령이 사전 정의된 정지 명령과 대응하는 것을 감지할 때 상기 긴 디코딩된 명령들의 집합을 닫는 것을 특징으로 하는 컴퓨터 처리 장치.
  12. 제9항에 있어서, 상기 명령들이 시퀀스들 중 하나의 명령이 현재 그룹의 op-필드에 의해 이전에 정의된 리소스를 정의하는 것을 감지할 때, 상기 할당자는 상기 리소스를 자유 리소스로 재 명명하는 것을 특징으로 하는 컴퓨터 처리 장치.
  13. 제9항에 있어서, 상기 시간 스탬프 테이블은 로드와 저장 오퍼레이션 각각에 관련된 상기 시간 스탬프 식별자들을 포함하며, 상기 할당자는 상기 로드와 저장 오퍼레이션의 순서를 유지하기 위해 상기 로드와 저장 오퍼레이션에 관련된 상기 시간 스탬프 식별자들을 이용하는 것을 특징으로 하는 컴퓨터 처리 장치.
  14. 제9항에 있어서, 상기 제2메모리는 상기 긴 디코딩된 명령들의 집합을 각각 포함하는 엔트리들의 배열과, 상기 엔트리들의 배열들 중 하나의 엔트리가 상기 페치 제어 신호와 대응하는지를 판단하기 위한 수단과, 상기 하나의 엔트리가 상기 페치 제어 신호와 일치한다고 판단할 때 상기 하나의 엔트리의 상기 긴 디코딩된 명령들의 집합을 읽어내는 수단을 포함하며, 상기 대체 엔코딩 실행 수단은 상기 제2메모리로부터 읽어낸 상기 긴 디코딩된 명령들을 저장하는 버퍼와, 상기 복수의 실행 유니트들이 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합의 상기 op-필드들을 실행하는 것을 특징으로 하는 컴퓨터 처리 장치.
  15. 제14항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 op-필드들의 실행 결과들에 따라 상기 페치 제어 신호를 갱신하기 위한 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  16. 제14항에 있어서, 상기 복수의 실행 유니트들의 각각의 LDI의 실행을 끝낸 후 적당한 레지스터 리소스들에 각각의 LDI의 상기 op-필드의 실행 결과들을 두는 것을 특징으로 하는 컴퓨터 처리 장치.
  17. 제14항에 있어서, 상기 복수의 실행 유니트들은 상기 긴 디코딩된 명령들의 집합의 실행을 끝낸 후 상기 긴 디코딩된 명령들의 지합의 상기 op-필드들의 실행 결과를 두는 것을 특징으로 하는 컴퓨터 처리 장치.
  18. 제14항에 있어서, 어떤 예외를 경험할 때, 상기 버퍼 안에 저장된 상기 긴 엔코딩된 명령들의 집합에서 엔코딩된 제1명령과 대응하는 상기 페치 제어 신호를 갱신하고, 상기 제1처리 엔진에 관련된 레지스터 리소스들을 상기 제1명령 이전의 근원 상태로 갱신하며, 상기 제1처리 엔진이 상기 제1명령의 처리를 시작할 수 있도록 하는 예외 제어기를 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  19. 제14항에 있어서, 상기 제2메모리 안에 저장된 하나 또는 그 이상의 상기 긴 디코딩된 명령들은 압축되며, 상기 대체 엔코딩 실행 수단은 실행 전에 압축된 각각의 긴 디코딩된 명령을 압축을 풀기 위한 수단을 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  20. 제14항에 있어서, 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 상기 op-필드들 중 하나가 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합으로부터 분기 명령으로 해독되는 것을 감지할 때, 이어지는 처리를 위해 상기 버퍼에 현재 저장된 상기 긴 디코딩된 명령들의 집합을 상기 그룹 포맷터에 로드하기 위한 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
  21. 명령 시퀀스들이 제1메모리에 저장된 명령실행 시스템에 있어서, 페치 제어 신호에 따라 상기 제1메모리로부터 명령큐로 명령들을 페치하는 단계와, 적어도 하나의 실행 유니트에 의해 실행하기 위해 상기 명령큐에 저장된 명령을 디스패치하는 단계와, 상기 실행 유니트에 의해 수행되는 명령실행에 따라 상기 페치 제어 신호를 갱신하는 단계와, 상기 실행 유니트에 의해 상기 명령 시퀀스들의 실행과 동시에 실행하기 위해 디스패치된 명령 시퀀스들의 대체 엔코딩을 생성하는 단계를 포함하는 것을 특징으로 하는 명령실행 방법.
  22. 제21항에 있어서, 상기 대체 엔코딩들은 상기 실행 유니트에 의해 상기 명령 시퀀스들의 실행에 이어서 생성되는 것을 특징으로 하는 명령실행 방법.
  23. 제21항에 있어서, 상기 그룹 포맷터에 의해 생성된 상기 대체 엔코딩이 병렬 실행에 적합한 것을 특징으로 하는 명령실행 방법.
  24. 제21항에 있어서, 상기 대체 엔코딩을 제2메모리에 저장하는 단계와, 상기 페치 제어가 상기 제2메모리에 저장된 상기 대체 엔코딩과 일치한다는 것을 감지할 때 상기 제2메모리에 저장된 상기 대체 엔코딩을 실행하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  25. 제24항에 있어서, 상기 대체 엔코딩은 복수개의 실행 유니트들에 의한 병렬 실행에 적합한 것을 특징으로 하는 명령실행 방법.
  26. 제25항에 있어서, 상기 대체 엔코딩은 긴 디코딩된 명령들(Long Decoded Instructions; LDI)의 집합을 포함하며, 상기 긴 디코딩된 명령들의 집합의 각각의 긴 디코딩된 명령은 상기 복수 개의 실행 유니트들 중 하나에 관련된 각각의 op-필드들을 포함하고, 각각의 op-필드는 단일 머신 사이클 내에 관련된 실행 유니트에 의해 수행될 수 있는 것을 특징으로 하는 명령실행 방법.
  27. 제26항에 있어서, 상기 컴퓨터 처리 시스템은 상기 op-필드들이 사용 및/또는 정의할 수 있는 복수 개의 레지스터 리소스들과, 실행을 위해 디스패치된 상기 명령 시퀀스들에 따라 상기 op-필드를 생성하는 op-필드 엔코더와, 상기 각각의 레지스터 리소스들에 관련된 시간 스탬프 식별자들을 저장하기 위한 시간 스탬프 테이블을 포함하고, 상기 시간 스탬프 식별자들은 상기 긴 디코딩된 명령들의 집합의 어떤 긴 디코딩된 명령에서 상기 관련된 레지스터 리소스가 이용가능한지를 식별하며, 상기 명령 시퀀스들 내의 명령들과, 상기 시간 스탬프 테이블 안에 저장된 시간 스탬프 식별자들과 그리고 상기 op-필드 엔코더에 의해 생성된 상기 op-필드들 사이의 의존도에 따라 상기 긴 디코딩된 명령의 지합을 구축하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  28. 제27항에 있어서, 상기 긴 디코딩된 명령의 집합은 상기 명령들의 시퀀스들 내에 명령들의 지연(latency of instructions)에 따라 구축되는 것을 특징으로 하는 명령실행 방법.
  29. 제27항에 있어서, 상기 명령들의 시퀀스들내 하나의 명령이 사전 정의된 정지 명령(predefined stopping instruction)과 일치하는 것을 감지할 때 상기 긴 디코딩된 명령들의 집합을 닫는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  30. 제27항에 있어서, 상기 명령들의 시퀀스들 중 하나의 명령이 상기 긴 디코딩된 명령들의 집합 내의 하나의 LDI의 op-필드에 의해 사전 정의된 리소스를 정의하는 것을 감지할 때, 상기 리소스를 자유 리소스(free resource)로 개명하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  31. 제27항에 있어서, 상기 시간 스탬프 테이블은 로드와 저장 오퍼레이션들 각각에 관련된 시간 스탬프 식별자들을 포함하며, 로드와 저장 오퍼레이션들에 관련된 상기 시간 스탬프 식별자들에 따라 상기 로드와 저장 오퍼레이션들의 순서를 유지하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  32. 제27항에 있어서, 상기 제2메모리는 긴 디코딩된 명령들의 집합을 포함하는 각각의 엔트리들의 배열을 포함하며, 상기 엔트리들의 배열의 하나의 엔트리가 상기 페치 제어 신호와 일치하는지를 판단하는 단계와, 상기 하나의 엔트리가 상기 페치 제어 신호와 일치한다고 판단할 때 상기 하나의 엔트리의 긴 디코딩된 명령들의 집합을 판독하는 단계와, 상기 제2메모리로부터 판독된 상기 긴 디코딩된 명령들의 집합을 저장하는 단계와, 그리고 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 상기 op-필드들을 실행하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  33. 제32항에 있어서, 상기 op-필드들의 실행 결과들에 따라 상기 페치 제어 신호를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  34. 제32항에 있어서, 각각의 긴 디코딩된 명령의 실행을 종료한 후 상기 각각의 긴 디코딩된 명령의 상기 op-필드들의 실행 결과들을 적당한 레지스터 리소스들에 남겨두는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  35. 제32항에 있어서, 상기 긴 디코딩된 명령들의 집합의 실행을 종료한 후 상기 긴디코딩된 명령들의 상기 op-필드들의 실행 결과들을 남겨두는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  36. 제32항에 있어서, 어떤 예외를 경험할 때, 상기 버퍼 안에 저장된 상기 긴디코딩된 명령들의 집합에서 엔코딩된 제1명령과 일치하도록 상기 페치 제어 신호를 갱신하는 단계와, 상기 적어도 하나의 실행 유니트에 관련된 레지스터 리소스들을 상기 제1명령 이전의 근원 상태로 갱신하는 단계와, 상기 적어도 하나의 실행 유니트에 의한 실행을 이해 상기 제1명령의 처리를 가능하게; 하는 단계를 더 포함하는 것을 특징으로 하는 명령 실행 방법.
  37. 제32항에 있어서, 상기 제2메모리에 상기 하나 또는 그 이상의 상기 디코딩된 명령들을 저장하기 전에 상기 하나 또는 그 이상의 긴 디코딩된 명들을 압축하는 단계와, 상기 하나 또는 그 이상의 긴 디코딩된 명령들을 실행하기 전에 압축된 각각의 긴 디코딩된 명령을 압축하는 푸는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  38. 제32항에 있어서, 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합의 상기 op-필드들 중 하나가 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합으로부터 분기 명령으로 해독되는 것을 감지할 때, 상기 버퍼에 현재 저장된 상기 긴 디코딩된 명령들의 집합을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
  39. 제32항에 있어서, 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합의 상기 갱신 단계는 상기 명령들의 시퀀스들과 상기 명령들의 시퀀스들내 명령들 사이의 의존도에 따라 적어도 하나의 긴 디코딩된 명령을 상기 긴 디코딩된 명령들의 집합에 추가하는 단계를 포함하는 것을 특징으로 하는 명령실행 방법.
  40. 제39항에 있어서, 상기 적어도 하나의 긴 디코딩된 명령은 상기 명령들의 시퀀스들내 상기 명령들의 지연에 따라 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합에 추가되는 것을 특징으로 하는 명령실행 방법.
KR1019960010200A 1995-04-13 1996-04-04 동적 명령어 포맷팅을 이용한 컴퓨터 처리 시스템 KR100230552B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/421,272 1995-04-13
US8/421,272 1995-04-13
US08/421,272 US5699536A (en) 1995-04-13 1995-04-13 Computer processing system employing dynamic instruction formatting

Publications (2)

Publication Number Publication Date
KR960038600A true KR960038600A (ko) 1996-11-21
KR100230552B1 KR100230552B1 (ko) 1999-11-15

Family

ID=23669880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960010200A KR100230552B1 (ko) 1995-04-13 1996-04-04 동적 명령어 포맷팅을 이용한 컴퓨터 처리 시스템

Country Status (10)

Country Link
US (1) US5699536A (ko)
EP (1) EP0737915B1 (ko)
JP (1) JP3093629B2 (ko)
KR (1) KR100230552B1 (ko)
CN (1) CN1122227C (ko)
AT (1) ATE210851T1 (ko)
CA (1) CA2168896A1 (ko)
DE (1) DE69524570T2 (ko)
ES (1) ES2168329T3 (ko)
TW (1) TW274600B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100679362B1 (ko) * 1998-11-16 2007-02-05 인피네온 테크놀로지스 아게 메모리 요청 재정렬에 의해 버스 이용도를 향상시키는메모리 제어기
KR20140110705A (ko) * 2013-03-08 2014-09-17 삼성전자주식회사 패킹된 소스 및 목적지 필드들을 포함하는 마이크로-오퍼레이션

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105124A (en) * 1996-01-26 2000-08-15 Intel Corporation Method and apparatus for merging binary translated basic blocks of instructions
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
US5913054A (en) * 1996-12-16 1999-06-15 International Business Machines Corporation Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US5923862A (en) * 1997-01-28 1999-07-13 Samsung Electronics Co., Ltd. Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions
US6009263A (en) * 1997-07-28 1999-12-28 Institute For The Development Of Emerging Architectures, L.L.C. Emulating agent and method for reformatting computer instructions into a standard uniform format
US6237077B1 (en) * 1997-10-13 2001-05-22 Idea Corporation Instruction template for efficient processing clustered branch instructions
US5913047A (en) * 1997-10-29 1999-06-15 Advanced Micro Devices, Inc. Pairing floating point exchange instruction with another floating point instruction to reduce dispatch latency
US6249855B1 (en) * 1998-06-02 2001-06-19 Compaq Computer Corporation Arbiter system for central processing unit having dual dominoed encoders for four instruction issue per machine cycle
US6240510B1 (en) 1998-08-06 2001-05-29 Intel Corporation System for processing a cluster of instructions where the instructions are issued to the execution units having a priority order according to a template associated with the cluster of instructions
US6304960B1 (en) 1998-08-06 2001-10-16 Intel Corporation Validating prediction for branches in a cluster via comparison of predicted and condition selected tentative target addresses and validation of branch conditions
US6247097B1 (en) 1999-01-22 2001-06-12 International Business Machines Corporation Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions
JP2001005675A (ja) * 1999-06-21 2001-01-12 Matsushita Electric Ind Co Ltd プログラム変換装置及びプロセッサ
US6708267B1 (en) * 2000-02-04 2004-03-16 International Business Machines Corporation System and method in a pipelined processor for generating a single cycle pipeline stall
WO2001065362A1 (en) * 2000-02-28 2001-09-07 Koninklijke Philips Electronics N.V. Data processor with multi-command instruction words
GB2367653B (en) 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
US6622269B1 (en) * 2000-11-27 2003-09-16 Intel Corporation Memory fault isolation apparatus and methods
US6877089B2 (en) 2000-12-27 2005-04-05 International Business Machines Corporation Branch prediction apparatus and process for restoring replaced branch history for use in future branch predictions for an executing program
US7072347B2 (en) * 2001-02-23 2006-07-04 International Business Machines Corporation Assignment of packet descriptor field positions in a network processor
US7356673B2 (en) * 2001-04-30 2008-04-08 International Business Machines Corporation System and method including distributed instruction buffers for storing frequently executed instructions in predecoded form
US7114058B1 (en) * 2001-12-31 2006-09-26 Apple Computer, Inc. Method and apparatus for forming and dispatching instruction groups based on priority comparisons
US7761852B2 (en) * 2003-11-26 2010-07-20 International Business Machines Corporation Fast detection of the origins of memory leaks when using pooled resources
US7665070B2 (en) * 2004-04-23 2010-02-16 International Business Machines Corporation Method and apparatus for a computing system using meta program representation
US7730470B2 (en) * 2006-02-27 2010-06-01 Oracle America, Inc. Binary code instrumentation to reduce effective memory latency
TWI348135B (en) 2006-06-05 2011-09-01 Chunghwa Picture Tubes Ltd Image contrast correct system and method thereof
US8301870B2 (en) * 2006-07-27 2012-10-30 International Business Machines Corporation Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system
JP4996945B2 (ja) * 2007-02-28 2012-08-08 公立大学法人広島市立大学 データ処理装置、データ処理方法
US8281109B2 (en) 2007-12-27 2012-10-02 Intel Corporation Compressed instruction format
CN101290589B (zh) * 2007-12-27 2010-06-16 华为技术有限公司 一种并发指令操作方法和装置
CN102063330B (zh) * 2011-01-05 2013-04-24 北京航空航天大学 一种大规模并行程序性能数据采集方法
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
US20150220343A1 (en) * 2014-02-05 2015-08-06 Mill Computing, Inc. Computer Processor Employing Phases of Operations Contained in Wide Instructions
GB2539411B (en) * 2015-06-15 2017-06-28 Bluwireless Tech Ltd Data processing
US11829187B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Microprocessor with time counter for statically dispatching instructions
US11829762B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Time-resource matrix for a microprocessor with time counter for statically dispatching instructions
US11829767B2 (en) 2022-01-30 2023-11-28 Simplex Micro, Inc. Register scoreboard for a microprocessor with a time counter for statically dispatching instructions
US11954491B2 (en) 2022-01-30 2024-04-09 Simplex Micro, Inc. Multi-threading microprocessor with a time counter for statically dispatching instructions
US20230315474A1 (en) * 2022-04-05 2023-10-05 Simplex Micro, Inc. Microprocessor with apparatus and method for replaying instructions

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4466061A (en) * 1982-06-08 1984-08-14 Burroughs Corporation Concurrent processing elements for using dependency free code
US4484272A (en) * 1982-07-14 1984-11-20 Burroughs Corporation Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4679141A (en) * 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table
GB8521672D0 (en) * 1985-08-30 1985-10-02 Univ Southampton Data processing device
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
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
US4825360A (en) * 1986-07-30 1989-04-25 Symbolics, Inc. System and method for parallel processing with mostly functional languages
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5127104A (en) * 1986-12-29 1992-06-30 Dataflow Computer Corporation Method and product involving translation and execution of programs by automatic partitioning and data structure allocation
US4992938A (en) * 1987-07-01 1991-02-12 International Business Machines Corporation Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers
DE69030931T2 (de) * 1989-04-24 1998-01-15 Ibm Mehrfachsequenzprozessorsystem
US5197137A (en) * 1989-07-28 1993-03-23 International Business Machines Corporation Computer architecture for the concurrent execution of sequential programs
EP0454985B1 (en) * 1990-05-04 1996-12-18 International Business Machines Corporation Scalable compound instruction set machine architecture
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
US5299321A (en) * 1990-12-18 1994-03-29 Oki Electric Industry Co., Ltd. Parallel processing device to operate with parallel execute instructions
CA2109799A1 (en) * 1991-05-24 1992-12-10 Daniel Mark Nosenchuck Optimizing compiler for computers
US5347639A (en) * 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
US5408658A (en) * 1991-07-15 1995-04-18 International Business Machines Corporation Self-scheduling parallel computer system and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100679362B1 (ko) * 1998-11-16 2007-02-05 인피네온 테크놀로지스 아게 메모리 요청 재정렬에 의해 버스 이용도를 향상시키는메모리 제어기
KR20140110705A (ko) * 2013-03-08 2014-09-17 삼성전자주식회사 패킹된 소스 및 목적지 필드들을 포함하는 마이크로-오퍼레이션

Also Published As

Publication number Publication date
ES2168329T3 (es) 2002-06-16
JP3093629B2 (ja) 2000-10-03
TW274600B (en) 1996-04-21
CA2168896A1 (en) 1996-10-14
CN1136184A (zh) 1996-11-20
CN1122227C (zh) 2003-09-24
ATE210851T1 (de) 2001-12-15
JPH0922354A (ja) 1997-01-21
DE69524570D1 (de) 2002-01-24
EP0737915B1 (en) 2001-12-12
KR100230552B1 (ko) 1999-11-15
EP0737915A1 (en) 1996-10-16
US5699536A (en) 1997-12-16
DE69524570T2 (de) 2002-08-22

Similar Documents

Publication Publication Date Title
KR960038600A (ko) 데이터 처리 시스템 성능 향상을 위한 장치 및 그 방법(method and apparatus for improving system performance in a data processing system)
CN106227671B (zh) 程序运行性能分析方法及装置
KR920001321A (ko) 고속 프로세서에서의 브랜치 처리 방법 및 장치
JP2001508907A (ja) 仮想マシン命令を実行するための処理装置
CN102063286A (zh) 程序流控制
KR970016945A (ko) 다중 인스트럭션 실행 방법 및 수퍼스칼라 마이크로프로세서
CN111813670B (zh) 一种非侵入式mc/dc覆盖率统计分析方法
KR950027561A (ko) 처리 시스템 및 그의 동작 방법
KR970066861A (ko) 데이터 정밀도 모드 지시기를 갖는 다중 파이프라인 마이크로프로세서
JPH0682320B2 (ja) データ処理装置
KR960701399A (ko) 명령 인출 및 해제제어를 함유한 슈퍼스칼라 마이크로프로세서 명령파이프라인
JPH1031595A (ja) シミュレーション装置及びシミュレーション方法
US6668306B2 (en) Non-vital loads
EP0762271A2 (en) Early completion of floating-point operations during load/store multiple operations
KR970066863A (ko) 정보처리장치와 방법 및 스케줄링 디바이스
EP0600583A1 (en) Vector processing device
JPH0454638A (ja) 電子計算機
JPH09288595A (ja) 演算処理装置
JPH0784797A (ja) ロードモジュールへのソースコード行番号登録方法および装置
US5838953A (en) Information processing apparatus
JP2880658B2 (ja) マルチタスクプログラムの暴走検出装置
JP2843844B2 (ja) 並列演算処理装置
JPS5829051A (ja) 演算処理装置
JP3057732B2 (ja) 情報処理装置
JPS58169262A (ja) 構造化プログラムの実行状態データ収集方法および構造化プログラム処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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