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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims 24
- 230000002708 enhancing effect Effects 0.000 title 1
- 238000003491 array Methods 0.000 claims 1
- 238000004590 computer program Methods 0.000 claims 1
- 230000004044 response Effects 0.000 claims 1
- 238000001698 laser desorption ionisation Methods 0.000 abstract 3
- 230000000295 complement effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
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/22—Microcontrol or microprogram arrangements
-
- 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/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- 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
-
- 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
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/3885—Concurrent 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
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따라 컴퓨터 처리 장비의 구성을 나타낸 블록도, 제2도는 제1도의 병렬엔진의 구성을 나타낸 블록도, 제3도는 제2도의 DIB의 엔트리 포맷을 나타낸 블록도.
Claims (40)
- 적어도 하나의 실행 유니트에 의해 실행되는 명령들을 저장하기 위한 제1메모리와 페치 제어 신호를 따라 상기 제1 메모리로부터 명령 큐에 상기 명령들을 페치하는 명령 페치 유니트와 상기 실행 유니트에 의해 실행하기 위해 상기 명령 큐에 저장된 명령들을 디스패치하는 디스패치 유니트와 상기 실행 유니트에 의해 수행되는 명령들의 실행에 따라 상기 페치 제어 신호를 갱신하기 위한 수단을 포함하는 제1처리 엔진과, 상기 제1처리 엔진의 상기 실행 유니트에 의한 상기 명령들의 시퀀스들의 실행과 동시에 상기 디스패치 유니트의 실행을 위하여 디스패치된 명령들의 시퀀스들의 대체 엔코딩을 생성하기 위한 그룹 포맷터를 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제1항에 있어서, 상기 그룹 포맷터는 상기 제1 처리 엔진의 상기 실행 유니트에 의한 상기 명령들의 시퀀스들에 연속하는 상기 대체 엔코딩을 생성하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제1항에 있어서, 상기 그룹 포맷터에 의해 생성된 상기 대체 엔코딩은 병렬 실행에 적합한 것을 특징으로 하는 컴퓨터 처리 장치.
- 제1항에 있어서, 상기 그룹 포맷터에 의해 생성된 상기 대체 엔코딩을 저장하기 위한 제2 메모리와, 상기 페치 제어 신호가 상기 제2 메모리에 저장된 상기 대체 엔코딩과 일치한다는 것을 감지할 때 상기 제2 메모리에 저장된 상기 대체 엔코딩과 일치한다는 것을 감지할 때 상기 제2 메모리에 저장된 상기 대체 엔코딩을 실행하기 위한 대체 엔코딩 실행 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제4항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 제1처리 엔진의 상기 실행 유니트와 다른 것을 특징으로 하는 컴퓨터 처리 장치.
- 제4항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 제1처리 엔진의 상기 실행 유니트를 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제4항에 있어서, 상기 그룹 포맷터에 의해 생성되는 상기 대체 엔코딩은 상기 대체 엔코딩 실행 수단에 의한 병렬 실행에 적합한 것을 특징으로 하는 컴퓨터 처리 장치.
- 제7항에 있어서, 상기 대체 엔코딩 실행 수단은 복수의 실행 유니트들을 포함하며, 상기 그룹 포맷터에 의해 생성되는 상기 대체 엔코딩은 긴 디코딩된 명령들의 집합을 포함하고 상기 긴 디코딩된 명령들의 집합의 각각의 긴 디코딩된 명령(LDI)은 상기 대체 엔코딩 실행 수단의 상기 복수의 실행 유니트들 중 하나에 각각 관련된 op-필드들을 포함하며, 각각의 op-필드는 단일 머신 사이클에서 상기 대체 엔코딩 실행 수단의 상기 관련된 실행 유니트에 의해 수행될 수 있는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제8항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 op-필드가 사용 및/또는 정의할 수 있는 복수의 레지스터 리소스들을 포함하며, 상기 그룹 포맷터는 상기 디스패치 유니트에 의한 실행을 위해 디스패치된 명령들의 상기 시퀀스들에 따라 상기 op-필드들을 생성하는 op-필드 대코더와, 상기 긴 엔코딩된 명령들의 집합의 어떤 LDI상에서 상기 관련된 레지스터 리소스가 사용가능한지를 식별하며 각각의 상기 레지스터 리소스에 관련된 시간 스램프 식별자들을 저장하기 위한 시간 스램프 테이블과, 상기 명령들의 시퀀스들내 명령들 사이의 의존 관계와 상기 시간 스탬프테이블 안에 저장된 상기 시간 스탬프 식별자들과 상기 op-필드 부호기에 의해 생성된 상기 op-필드들에 따라 상기 긴 디코딩된 명령들의 집합을 구축하는 할당자를 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제9항에 있어서, 상기 할당자는 상기 명령들의 시퀀스들내에서 명령들의 지연에 따라 상기 긴 디코딩된 명령들의 집합을 구축하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제9항에 있어서, 상기 할당자는 상기 명령들의 시퀀스에서 하나의 명령이 사전 정의된 정지 명령과 대응하는 것을 감지할 때 상기 긴 디코딩된 명령들의 집합을 닫는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제9항에 있어서, 상기 명령들이 시퀀스들 중 하나의 명령이 현재 그룹의 op-필드에 의해 이전에 정의된 리소스를 정의하는 것을 감지할 때, 상기 할당자는 상기 리소스를 자유 리소스로 재 명명하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제9항에 있어서, 상기 시간 스탬프 테이블은 로드와 저장 오퍼레이션 각각에 관련된 상기 시간 스탬프 식별자들을 포함하며, 상기 할당자는 상기 로드와 저장 오퍼레이션의 순서를 유지하기 위해 상기 로드와 저장 오퍼레이션에 관련된 상기 시간 스탬프 식별자들을 이용하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제9항에 있어서, 상기 제2메모리는 상기 긴 디코딩된 명령들의 집합을 각각 포함하는 엔트리들의 배열과, 상기 엔트리들의 배열들 중 하나의 엔트리가 상기 페치 제어 신호와 대응하는지를 판단하기 위한 수단과, 상기 하나의 엔트리가 상기 페치 제어 신호와 일치한다고 판단할 때 상기 하나의 엔트리의 상기 긴 디코딩된 명령들의 집합을 읽어내는 수단을 포함하며, 상기 대체 엔코딩 실행 수단은 상기 제2메모리로부터 읽어낸 상기 긴 디코딩된 명령들을 저장하는 버퍼와, 상기 복수의 실행 유니트들이 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합의 상기 op-필드들을 실행하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제14항에 있어서, 상기 대체 엔코딩 실행 수단은 상기 op-필드들의 실행 결과들에 따라 상기 페치 제어 신호를 갱신하기 위한 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제14항에 있어서, 상기 복수의 실행 유니트들의 각각의 LDI의 실행을 끝낸 후 적당한 레지스터 리소스들에 각각의 LDI의 상기 op-필드의 실행 결과들을 두는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제14항에 있어서, 상기 복수의 실행 유니트들은 상기 긴 디코딩된 명령들의 집합의 실행을 끝낸 후 상기 긴 디코딩된 명령들의 지합의 상기 op-필드들의 실행 결과를 두는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제14항에 있어서, 어떤 예외를 경험할 때, 상기 버퍼 안에 저장된 상기 긴 엔코딩된 명령들의 집합에서 엔코딩된 제1명령과 대응하는 상기 페치 제어 신호를 갱신하고, 상기 제1처리 엔진에 관련된 레지스터 리소스들을 상기 제1명령 이전의 근원 상태로 갱신하며, 상기 제1처리 엔진이 상기 제1명령의 처리를 시작할 수 있도록 하는 예외 제어기를 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제14항에 있어서, 상기 제2메모리 안에 저장된 하나 또는 그 이상의 상기 긴 디코딩된 명령들은 압축되며, 상기 대체 엔코딩 실행 수단은 실행 전에 압축된 각각의 긴 디코딩된 명령을 압축을 풀기 위한 수단을 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 제14항에 있어서, 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 상기 op-필드들 중 하나가 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합으로부터 분기 명령으로 해독되는 것을 감지할 때, 이어지는 처리를 위해 상기 버퍼에 현재 저장된 상기 긴 디코딩된 명령들의 집합을 상기 그룹 포맷터에 로드하기 위한 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 처리 장치.
- 명령 시퀀스들이 제1메모리에 저장된 명령실행 시스템에 있어서, 페치 제어 신호에 따라 상기 제1메모리로부터 명령큐로 명령들을 페치하는 단계와, 적어도 하나의 실행 유니트에 의해 실행하기 위해 상기 명령큐에 저장된 명령을 디스패치하는 단계와, 상기 실행 유니트에 의해 수행되는 명령실행에 따라 상기 페치 제어 신호를 갱신하는 단계와, 상기 실행 유니트에 의해 상기 명령 시퀀스들의 실행과 동시에 실행하기 위해 디스패치된 명령 시퀀스들의 대체 엔코딩을 생성하는 단계를 포함하는 것을 특징으로 하는 명령실행 방법.
- 제21항에 있어서, 상기 대체 엔코딩들은 상기 실행 유니트에 의해 상기 명령 시퀀스들의 실행에 이어서 생성되는 것을 특징으로 하는 명령실행 방법.
- 제21항에 있어서, 상기 그룹 포맷터에 의해 생성된 상기 대체 엔코딩이 병렬 실행에 적합한 것을 특징으로 하는 명령실행 방법.
- 제21항에 있어서, 상기 대체 엔코딩을 제2메모리에 저장하는 단계와, 상기 페치 제어가 상기 제2메모리에 저장된 상기 대체 엔코딩과 일치한다는 것을 감지할 때 상기 제2메모리에 저장된 상기 대체 엔코딩을 실행하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제24항에 있어서, 상기 대체 엔코딩은 복수개의 실행 유니트들에 의한 병렬 실행에 적합한 것을 특징으로 하는 명령실행 방법.
- 제25항에 있어서, 상기 대체 엔코딩은 긴 디코딩된 명령들(Long Decoded Instructions; LDI)의 집합을 포함하며, 상기 긴 디코딩된 명령들의 집합의 각각의 긴 디코딩된 명령은 상기 복수 개의 실행 유니트들 중 하나에 관련된 각각의 op-필드들을 포함하고, 각각의 op-필드는 단일 머신 사이클 내에 관련된 실행 유니트에 의해 수행될 수 있는 것을 특징으로 하는 명령실행 방법.
- 제26항에 있어서, 상기 컴퓨터 처리 시스템은 상기 op-필드들이 사용 및/또는 정의할 수 있는 복수 개의 레지스터 리소스들과, 실행을 위해 디스패치된 상기 명령 시퀀스들에 따라 상기 op-필드를 생성하는 op-필드 엔코더와, 상기 각각의 레지스터 리소스들에 관련된 시간 스탬프 식별자들을 저장하기 위한 시간 스탬프 테이블을 포함하고, 상기 시간 스탬프 식별자들은 상기 긴 디코딩된 명령들의 집합의 어떤 긴 디코딩된 명령에서 상기 관련된 레지스터 리소스가 이용가능한지를 식별하며, 상기 명령 시퀀스들 내의 명령들과, 상기 시간 스탬프 테이블 안에 저장된 시간 스탬프 식별자들과 그리고 상기 op-필드 엔코더에 의해 생성된 상기 op-필드들 사이의 의존도에 따라 상기 긴 디코딩된 명령의 지합을 구축하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제27항에 있어서, 상기 긴 디코딩된 명령의 집합은 상기 명령들의 시퀀스들 내에 명령들의 지연(latency of instructions)에 따라 구축되는 것을 특징으로 하는 명령실행 방법.
- 제27항에 있어서, 상기 명령들의 시퀀스들내 하나의 명령이 사전 정의된 정지 명령(predefined stopping instruction)과 일치하는 것을 감지할 때 상기 긴 디코딩된 명령들의 집합을 닫는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제27항에 있어서, 상기 명령들의 시퀀스들 중 하나의 명령이 상기 긴 디코딩된 명령들의 집합 내의 하나의 LDI의 op-필드에 의해 사전 정의된 리소스를 정의하는 것을 감지할 때, 상기 리소스를 자유 리소스(free resource)로 개명하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제27항에 있어서, 상기 시간 스탬프 테이블은 로드와 저장 오퍼레이션들 각각에 관련된 시간 스탬프 식별자들을 포함하며, 로드와 저장 오퍼레이션들에 관련된 상기 시간 스탬프 식별자들에 따라 상기 로드와 저장 오퍼레이션들의 순서를 유지하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제27항에 있어서, 상기 제2메모리는 긴 디코딩된 명령들의 집합을 포함하는 각각의 엔트리들의 배열을 포함하며, 상기 엔트리들의 배열의 하나의 엔트리가 상기 페치 제어 신호와 일치하는지를 판단하는 단계와, 상기 하나의 엔트리가 상기 페치 제어 신호와 일치한다고 판단할 때 상기 하나의 엔트리의 긴 디코딩된 명령들의 집합을 판독하는 단계와, 상기 제2메모리로부터 판독된 상기 긴 디코딩된 명령들의 집합을 저장하는 단계와, 그리고 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 상기 op-필드들을 실행하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제32항에 있어서, 상기 op-필드들의 실행 결과들에 따라 상기 페치 제어 신호를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제32항에 있어서, 각각의 긴 디코딩된 명령의 실행을 종료한 후 상기 각각의 긴 디코딩된 명령의 상기 op-필드들의 실행 결과들을 적당한 레지스터 리소스들에 남겨두는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제32항에 있어서, 상기 긴 디코딩된 명령들의 집합의 실행을 종료한 후 상기 긴디코딩된 명령들의 상기 op-필드들의 실행 결과들을 남겨두는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제32항에 있어서, 어떤 예외를 경험할 때, 상기 버퍼 안에 저장된 상기 긴디코딩된 명령들의 집합에서 엔코딩된 제1명령과 일치하도록 상기 페치 제어 신호를 갱신하는 단계와, 상기 적어도 하나의 실행 유니트에 관련된 레지스터 리소스들을 상기 제1명령 이전의 근원 상태로 갱신하는 단계와, 상기 적어도 하나의 실행 유니트에 의한 실행을 이해 상기 제1명령의 처리를 가능하게; 하는 단계를 더 포함하는 것을 특징으로 하는 명령 실행 방법.
- 제32항에 있어서, 상기 제2메모리에 상기 하나 또는 그 이상의 상기 디코딩된 명령들을 저장하기 전에 상기 하나 또는 그 이상의 긴 디코딩된 명들을 압축하는 단계와, 상기 하나 또는 그 이상의 긴 디코딩된 명령들을 실행하기 전에 압축된 각각의 긴 디코딩된 명령을 압축하는 푸는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제32항에 있어서, 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합의 상기 op-필드들 중 하나가 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합으로부터 분기 명령으로 해독되는 것을 감지할 때, 상기 버퍼에 현재 저장된 상기 긴 디코딩된 명령들의 집합을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 명령실행 방법.
- 제32항에 있어서, 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합의 상기 갱신 단계는 상기 명령들의 시퀀스들과 상기 명령들의 시퀀스들내 명령들 사이의 의존도에 따라 적어도 하나의 긴 디코딩된 명령을 상기 긴 디코딩된 명령들의 집합에 추가하는 단계를 포함하는 것을 특징으로 하는 명령실행 방법.
- 제39항에 있어서, 상기 적어도 하나의 긴 디코딩된 명령은 상기 명령들의 시퀀스들내 상기 명령들의 지연에 따라 상기 버퍼에 저장된 상기 긴 디코딩된 명령들의 집합에 추가되는 것을 특징으로 하는 명령실행 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/421,272 US5699536A (en) | 1995-04-13 | 1995-04-13 | Computer processing system employing dynamic instruction formatting |
US8/421,272 | 1995-04-13 | ||
US08/421,272 | 1995-04-13 |
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)
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 (39)
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 |
JP2003525493A (ja) | 2000-02-28 | 2003-08-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マルチコマンド命令語を有するデータプロセッサ |
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 |
US11954491B2 (en) | 2022-01-30 | 2024-04-09 | Simplex Micro, Inc. | Multi-threading microprocessor with a 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 |
US11829187B2 (en) | 2022-01-30 | 2023-11-28 | Simplex Micro, Inc. | Microprocessor with time counter for statically dispatching instructions |
US12001848B2 (en) | 2022-01-30 | 2024-06-04 | Simplex Micro, Inc. | Microprocessor with time counter for statically dispatching instructions with phantom registers |
US20230315474A1 (en) * | 2022-04-05 | 2023-10-05 | Simplex Micro, Inc. | Microprocessor with apparatus and method for replaying instructions |
Family Cites Families (20)
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 |
EP0394624B1 (en) * | 1989-04-24 | 1997-06-18 | International Business Machines Corporation | Multiple sequence processor system |
US5197137A (en) * | 1989-07-28 | 1993-03-23 | International Business Machines Corporation | Computer architecture for the concurrent execution of sequential programs |
DE69123629T2 (de) * | 1990-05-04 | 1997-06-12 | International Business Machines Corp., Armonk, N.Y. | Maschinenarchitektur für skalaren Verbundbefehlssatz |
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 |
US5408658A (en) * | 1991-07-15 | 1995-04-18 | International Business Machines Corporation | Self-scheduling parallel computer system and method |
US5347639A (en) * | 1991-07-15 | 1994-09-13 | International Business Machines Corporation | Self-parallelizing computer system and method |
-
1995
- 1995-04-13 US US08/421,272 patent/US5699536A/en not_active Expired - Fee Related
- 1995-10-06 EP EP95115748A patent/EP0737915B1/en not_active Expired - Lifetime
- 1995-10-06 AT AT95115748T patent/ATE210851T1/de not_active IP Right Cessation
- 1995-10-06 ES ES95115748T patent/ES2168329T3/es not_active Expired - Lifetime
- 1995-10-06 DE DE69524570T patent/DE69524570T2/de not_active Expired - Fee Related
- 1995-10-07 TW TW084110576A patent/TW274600B/zh active
-
1996
- 1996-02-06 CA CA002168896A patent/CA2168896A1/en not_active Abandoned
- 1996-04-01 CN CN96104502A patent/CN1122227C/zh not_active Expired - Fee Related
- 1996-04-04 KR KR1019960010200A patent/KR100230552B1/ko not_active IP Right Cessation
- 1996-04-09 JP JP08086944A patent/JP3093629B2/ja not_active Expired - Fee Related
Cited By (2)
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 |
---|---|
ATE210851T1 (de) | 2001-12-15 |
DE69524570T2 (de) | 2002-08-22 |
US5699536A (en) | 1997-12-16 |
CN1122227C (zh) | 2003-09-24 |
EP0737915A1 (en) | 1996-10-16 |
TW274600B (en) | 1996-04-21 |
KR100230552B1 (ko) | 1999-11-15 |
CA2168896A1 (en) | 1996-10-14 |
ES2168329T3 (es) | 2002-06-16 |
EP0737915B1 (en) | 2001-12-12 |
CN1136184A (zh) | 1996-11-20 |
JP3093629B2 (ja) | 2000-10-03 |
DE69524570D1 (de) | 2002-01-24 |
JPH0922354A (ja) | 1997-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960038600A (ko) | 데이터 처리 시스템 성능 향상을 위한 장치 및 그 방법(method and apparatus for improving system performance in a data processing system) | |
US6542985B1 (en) | Event counter | |
CN106227671B (zh) | 程序运行性能分析方法及装置 | |
KR920001321A (ko) | 고속 프로세서에서의 브랜치 처리 방법 및 장치 | |
JP2001508907A (ja) | 仮想マシン命令を実行するための処理装置 | |
RU2000125538A (ru) | Полное устранение избыточной загрузки для архитектур, поддерживающих спекуляцию по управлению и данным | |
CN102063286A (zh) | 程序流控制 | |
KR950027561A (ko) | 처리 시스템 및 그의 동작 방법 | |
CN111813670A (zh) | 一种非侵入式mc/dc覆盖率统计分析方法 | |
JPH0682320B2 (ja) | データ処理装置 | |
KR940018743A (ko) | 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템 | |
KR960701399A (ko) | 명령 인출 및 해제제어를 함유한 슈퍼스칼라 마이크로프로세서 명령파이프라인 | |
US6668306B2 (en) | Non-vital loads | |
KR970066863A (ko) | 정보처리장치와 방법 및 스케줄링 디바이스 | |
EP0600583A1 (en) | Vector processing device | |
JPH0454638A (ja) | 電子計算機 | |
JP3035108B2 (ja) | 並列演算処理装置 | |
JPH09288595A (ja) | 演算処理装置 | |
JPH0784797A (ja) | ロードモジュールへのソースコード行番号登録方法および装置 | |
JP2729795B2 (ja) | 並列計算機及びその制御方法 | |
US5838953A (en) | Information processing apparatus | |
JP2880658B2 (ja) | マルチタスクプログラムの暴走検出装置 | |
JP2843844B2 (ja) | 並列演算処理装置 | |
JPS5829051A (ja) | 演算処理装置 | |
JP3057732B2 (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 |