KR100448675B1 - 확장기능을지정하기위한명령어필드를사용하는마이크로프로세서 - Google Patents

확장기능을지정하기위한명령어필드를사용하는마이크로프로세서 Download PDF

Info

Publication number
KR100448675B1
KR100448675B1 KR1019970708910A KR19970708910A KR100448675B1 KR 100448675 B1 KR100448675 B1 KR 100448675B1 KR 1019970708910 A KR1019970708910 A KR 1019970708910A KR 19970708910 A KR19970708910 A KR 19970708910A KR 100448675 B1 KR100448675 B1 KR 100448675B1
Authority
KR
South Korea
Prior art keywords
microprocessor
address
segment
instruction
unit
Prior art date
Application number
KR1019970708910A
Other languages
English (en)
Other versions
KR19990022430A (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
Priority claimed from US08/479,782 external-priority patent/US5680578A/en
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR19990022430A publication Critical patent/KR19990022430A/ko
Application granted granted Critical
Publication of KR100448675B1 publication Critical patent/KR100448675B1/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

마이크로프로세서는 투과적 및/또는 비투과적인 방법으로 구현된 구조의 기능 및/또는 수행능력을 확장시키도록 제공된다. 본 마이크로프로세서는 플랫 메모리 모드에서 실행되는 명령어 코드 시퀀스에서 세그먼트 레지스터 오버라이드 프리픽스(segment register override prefix)의 존재를 감지하여, 이 프리픽스 값을 사용하여 내부 및/또는 외부 기능을 조절할 수 있도록 구성되었다. 또한, 본 마이크로프로세서는 후속 명령어(들)의 정상적인 실행이 변화 또는 수정되는가를 신호하도록 구성될 수 있다. 세그먼트 레지스터 오버라이드 프리픽스를 사용하여 마이크로프로세서의 수행 및 용량을 확장시키는 다수의 실시예가 나타나 있다. 투과적 실시예구현될 때, 종전에 구현된 x86구조의 역호환성(backward compatibility)이 유지될 수 있다.

Description

확장기능을 지정하기 위한 명령어 필드를 사용하는 마이크로프로세서
마이크로프로세서 제조 업체들은 이전의 80x86계열 - 8086/8, 80286, 80386, 80486 - 용으로 개발된 다량의 소프트웨어와의 호환성을 유지하기 위해 x86명령어를 실행하는 신제품 개발을 지속해 왔다. 소프트웨어의 호환성 유지는 계속되는 신제품에 있어서 많은 구조적 절충안을 요구해 왔다. 종래 제품의 기능을 유지하기 위하여, 하드웨어는 주로 간단하게 수정되거나 확장되어 용량 및 수행 능력을 증가시켜 왔다. 용량 및 수행 능력 증가를 위해 주로 확장된 분야는 메모리 어드레싱 모델(memory addressimg model)이다.
초기 x86 마이크로프로세서는 세그멘테이션(segmentation)을 사용하여 메모리 어드레싱 모델을 구현했다. 세그멘테이션에서 메모리 어드레스는 두 부분-세그먼트와 세그먼트내의 오프셋-을 사용하여 명령어에 의해 지정된다. 세그먼트 셀렉터(segment selector)는 세그먼트 레지스터에 저장되어서 주 기억장치내에 세그먼트가 위치한 곳을 표시하거나(프로세서가 비보호 모드(unprotected mode)로 동작하는 경우), 주 기억장치의 세그먼트 디스크립터 테이블(segment descriptor table)에 저장된 세그먼트 디스크립터를 포인트한다. 세그먼트 디스크립터는 세그먼트와 세그먼트의 베이스 어드레스에 관한 정보를 포함한다. 베이스 어드레스는 오프셋에 가산되어 물리적 어드레스를 형성한다. 메모리 억세스가 가능한 x86명령어의 각각은 세그먼트 데이터를 도출하는 디폴트(default) 세그먼트 레지스터를 가진다. x86구조는 여섯 개의 세그먼트 레지스터를 규정한다: CS, DS, SS, ES, FS, GS. CS는 코드(명령어) 저장용으로 사용되는 디폴트 세그먼트 레지스터이다. DS는 스택값을 조작하지 않는 명령어용으로 사용되는 디폴트 세그먼트 레지스터이다. SS는 스택 억세스용 디폴트 세그먼트 레지스터이다. ES는 스트링 조작 명령어에 사용되는 디폴트 세그먼트 레지스터이다. 디폴트 세그먼트는 세그먼트 오버라이드 프리픽스 바이트(segment override prefix byte)를 명령어에 부가시킴으로써 특정 명령어의 다른 세그먼트 레지스터를 위하여 무시될 수도 있다. 세그먼트 오버라이드 프리픽스 바이트는 명령어의 한 필드(field)이다. 여기서 사용되는 "명령어 필드"라는 용어는 명령어를 형성하는 바이트들내의 하나 이상의 바이트를 말한다.
80386부터는, 페이지드 메모리 시스템(paged memory system)을 구현하기 위해 특별한 페이징 회로가 세그먼트된 어드레스 생성(segmented address generation) 하드웨어에 추가되었다. 프로그래머들은 페이지드 메모리 시스템을 사용하는 오퍼레이팅 시스템을 개발하고 있다. 페이지드 메모리 시스템은 어느 때라도 주 기억장치로 더 적은 프로그램 분량을 로드(load)시킬 수 있는 능력을 제공하며, 동시에 수행되는 프로그램을 위한 부가적인 내장된 프로텍션 검사(built-inprotection checking) 기능을 제공한다. x86구조의 페이징 구조 및 세그멘테이션에 관한 부가 정보는 Crawford, et al.,의 "프로그래밍 80386" (SYBEX, Inc., San Francisco, 1987) 간행물에서 얻을 수 있다. 이 간행물은 그 전체를 참조용으로 여기에 완전히 병합한다.(incorporated by reference)
메모리 세그멘테이션은 통상적으로 이러한 페이지 메모리 시스템을 채용할 때에는 사용되지 않는다. 메모리 세그멘테이션은 "턴 오프(turn off)"될 수 없으나, "플랫(flat)" 메모리 모델의 사용으로 사실상 디스에이블(disable)될 수도 있다. 플랫 메모리 모델은 모든 세그먼트 레지스터를 동일한 메모리 세그먼트로 포인트함으로써 (즉, 모든 메모리 세그먼트를 겹치도록(overlap)함으로써) 만들어 진다. 이 오버래핑은 모든 세그먼트 레지스터에 동일한 세그먼트 정보를 저장함으로써 이뤄진다. 페이징 메카니즘을 사용하는 프로그래머는 통상적으로 플랫 메모리 모델을 채용한다.
플랫 메모리 모델은 주로 세그먼트 레지스터의 응용분야에 영향을 끼친다. 중복되는 세그먼트 어드레스 정보의 유지는 80286 마이크로프로세서와 함께 부가된 두 개의 일반용 세그먼트 레지스터(general purpose segment register) FS 와 GS를 사실상 쓸모없게 만든다(나머지 다른 세그먼트 레지스터는 묵시적으로 80x86 명령어에 의해 참조되지만, 중복되는 정보를 가지므로 단지 최소한도로 유용할 뿐이다). 또한, 운영 체제는 이들 레지스터를 다른 유용한 용도로 사용하려는 시도를 감지할 수도 있으며 예외를 발생시킬 수도 있다. 이들 레지스터는 어드레스 생성용으로 사용되기 때문에, 부적절한 값을 세그먼트 레지스터에 로드하면 다른 프로그램 또는 운영체제 자체에 의해 사용되는 메모리 스페이스를 훼손시킬 수 있다. 플랫 메모리 모델에서 세그먼트 레지스터를 명시적으로 참조하기 위한 건설적인 사용이 요망된다.
발명의 요약
상기 대략적으로 설명된 문제점들은 대부분 본 발명에 따른 마이크로프로세서에 의해 해결된다. 본 마이크로프로세서는 플랫 메모리 모드에서 실행되는 명령어 코드 시퀀스에서 세그먼트 오버라이드 프리픽스(segment override prefix)의 존재를 감지하여, 프리픽스값 또는 관련 세그먼트 레지스터에 저장된 값을 이용하여 내부 및/또는 외부 기능을 제어하도록 구성되어 있다. 또한, 본 마이크로프로세서는 후속 명령어(들)의 정상적인 실행의 변화 또는 수정을 신호하도록 구성될 수 있다. 세그먼트 오버라이드 프리픽스를 유용하게 사용하여, 마이크로프로세서의 성능 또는 용량이 확장되는 다수의 실시예가 보여진다. 투과적(transparent) 및 비투과적(non-transparent) 실시예 모두 고찰되었다. 본 마이크로프로세서는 x86구조를 변화시키지 않고 다수의 유용한 기능을 제공하도록 구성될 수 있다. 그러므로, 이전에 구현된 x86구조와의 역호환성(backward compatibility)은 투과적 실시예를 구현 할 때 유리하게 유지될 수 있다. 비투과적 실시예의 구현시에는, 역호환성은 유지되지 않을 수 있으나, 여전히 x86구조는 수정되지 않는다. 그러므로, 몇 개의 인코딩이 주의깊게 다뤄질 것이지만 명령어세트의 전반적인 성질은 불변하므로 코드는 새로운 기능을 구현하는 프로세서로 용이하게 포트(port)될 수 있다. 그러나, 명령어 세트의 전반적인 성질은 불변한다.
광범위하게 말하면, 본 발명은 어드레스 해석 유닛, 복수의 세그먼트 레지스터, 제1 제어 유닛, 구성 레지스터, 제2 제어 유닛을 구비하는 마이크로프로세서에 관해 고찰한 것이다. 어드레스 해석 유닛은 논리 어드레스와 세그먼트 값으로부터 물리적 어드레스를 산출하도록 구성되어 있다. 어드레스 해석 유닛과 밀접하게 연결되어 있는 복수의 세그먼트 레지스터 중 최소한 어느 하나는 전술한 세그먼트 값을 저장한다. 제1 제어 유닛은 복수의 세그먼트 레지스터 중 하나를 나타내는 명령어 필드를 감지하고 복수의 세그먼트 레지스터 중 하나를 나타내는 신호를 어드레스 해석 유닛으로 전달하도록 구성되어 있다. 구성 레지스터는 시스템의 어드레스 해석 모드를 나타내는 값을 저장한다. 마지막으로, 제2 제어 유닛은 구성 레지스터에 저장된 값과 제1 제어 유닛으로부터의 시그널에 따라 기능을 수행하도록 구성되었다. 이외에도 본 발명은 상기 전술한 마이크로프로세서 및 주 기억장치를 구비하는 컴퓨터 시스템에 관해서도 고찰하였다.
본 발명은 또한 어드레스 해석 유닛, 복수의 세그먼트 레지스터, 제1 제어 유닛, 제 2제어 유닛, 구성 레지스터를 구비하는 마이크로프로세서에 관해서도 고찰하였다. 어드레스 해석 유닛은 논리 어드레스 및 세그먼트 값으로부터 물리적 어드레스를 산출하도록 구성되어 있다. 세그먼트 레지스터들은 복수의 세그먼트 레지스터 중 최소한 어느 하나는 세그먼트 값을 저장하는 것을 특징으로 하는 어드레스 해석 유닛에 연결된다. 또한 어드레스 해석 유닛에 연결된 제1 제어 유닛은 복수의 세그먼트 레지스터 중 하나를 나타내는 명령어 필드를 감지하여 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 하나를 나타내는 시그널을 전달하도록구성되었다. 구성 레지스터는 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장한다. 구성 레지스터 및 세그먼트 레지스터에 연결된 제2제어 유닛은 구성 레지스터에 저장된 값과 세그먼트 값에 따라 기능을 수행하도록 구성되었다. 또한 본 발명은 상기 전술한 마이크로프로세서 및 주 기억장치를 구비하는 컴퓨터 시스템에 관해서도 고찰한다.
본 발명은 마이크로프로세서 분야에 관한 것으로, 더 자세하게는 기존의 마이크로프로세서 구조안에서 마이크로프로세서 기능을 확장하기 위한 메카니즘에 관한 것이다.
본 발명의 다른 목적 및 잇점들은 다음의 상세한 설명과 첨부 도면을 참조로 하여 명백해 질 것이다.
도1은 80x86 마이크로프로세서를 포함하는 컴퓨터 시스템의 블록도,
도2는 리얼모드(real mode)의 80x86 마이크로프로세서 동작에서 물리적 메모리 어드레스를 생성하는 구조를 포함하는 제1도의 어드레스 해석 유닛의 블록도,
도3은 보호모드(protected mode)의 80x86 마이크로프로세서 동작에서 물리적 메모리 어드레스를 생성하는 구조를 포함하는 제1도의 어드레스 해석 유닛의 블록도,
도4는 세그먼트 레지스터 선택 정보에 의해 선택적으로 인에이블(enable)된 캐시 제어기(cache controller)를 포함하는 마이크로프로세서 일부의 블록도,
도5는 세그먼트 레지스터 선택 정보에 의해 선택적으로 인에이블되는 데이터 프리페치 유닛(data prefetch unit)을 포함하는 마이크로프로세서 일부의 블록도,
도6은 세그먼트 레지스터 선택 정보에 의해 제어 정보를 수신하는 분기 예측 유닛(branch prediction unit)을 포함하는 마이크로프로세서 일부의 블록도이다.
본 발명의 다양한 형태의 수정 및 대체적 구조도 가능하지만, 도면에는 이에 관한 특정 실시예들이 예로써 보여지며, 이하에서 상세히 설명될 것이다. 그러나 도면 및 상세한 설명은 본 발명을 개시된 특정 형태로 한정하고자 함이 아니며, 다음의 청구 범위에 의해 정의된 바에 따라 본 발명의 범위내에 속하는 여러 가지 변형물, 균등물 및 대체물을 모두 포함하고자 함은 물론이다.
도1에 마이크로프로세서(101)를 포함하는 컴퓨터 시스템(100)의 블록도가 도시되어 있다. 일실시예에 있어서, 마이크로프로세서(101)는 80x86 마이크로프로세서 구조를 구현한다. 마이크로프로세서(101)는 외부 캐시 유닛(102)과 주 기억장치(104)에 연결되어 있다. 어떤 실시예에 있어서는 외부 캐시 유닛(102)이 포함되어 있지 않다. 외부 캐시 유닛(102)은 마이크로프로세서(101)의 내부 캐시에 저장되지 않은 최근에 억세스된 데이터와 명령어의 전송속도를 증가시키기 위해 사용된다. 마이크로프로세서(101)는 마이크로프로세서(101)의 내부 유닛에서 외부 캐시 유닛(102) 및/또는 주 기억장치(104)로의 정보의 전송을 조절하는 버스 인터페이스 유닛(bus interface unit)(106)을 포함한다. 내부 캐시 유닛(108)은 페치 유닛(110) 및 실행 유닛(112)에 의하여 사용될 명령어와 데이터 정보를 저장한다. 일실시예에 있어서, 내부 캐시 유닛(108)에는 명령어와 데이터 캐시가 통합되어 있다. 다른 실시예에 있어서, 명령어와 데이터 캐시는 분리되어 내부 캐시 유닛(108)을 구성하도록 되어 있다.
본 발명의 독특한 특성을 설명하기 전에, 마이크로프로세서 유닛(101)이 설명될 것이다. 페치 유닛(110)이 내부 캐시 유닛(108)에서 명령어를 페치하여 명령어 디코드 유닛(114)으로 전달한다. 명령어 디코드 유닛(114)은 실행 유닛(112)으로의 전송을 위해 수신된 명령어를 디코드(decode)한다. 레지스터에 들어 있는 오퍼랜드(operand)는 명령어 디코드 유닛(114)에 의하여 페치되어 명령어가 실행 유닛(112)에 전송되었을 때에 명령어를 제공받는다. 실행 유닛(112)은 오퍼랜드가 사용 가능하기만 하면 즉시 명령어를 실행하도록 구성되었다. 당업자가 인정하고 있듯이, 경우에 따라 x86 명령어는 오프셋 또는 레지스터와 오프셋의 조합에 의하여 레지스터에 지정된 어드레스의 기억장치내에 저장된 오퍼랜드를 갖는 경우가 있다. 기억장치에 저장된 오퍼랜드를 읽어오기 위해, 실행 유닛(112)은 세그먼트 레지스터 식별 정보 및 계산된 오프셋을 어드레스 해석 유닛(116)으로 보낸다. 세그먼트 레지스터 식별 정보는 세그먼트 오버라이드 프리픽스 바이트 또는 관련된 명령어에 대한 디폴트 세그먼트 레지스터로부터 생성된다. 마이크로프로세서(101)의 해석 모드에 따라 어드레스 해석 유닛(116)은 세그멘테이션 방법이나 조건에 따라서는 상기 전술된 페이징 방법을 이용하여 어드레스를 해석한다.
일실시예에 있어서, 해석된 어드레스는 어드레스 해석 유닛(116)에 의하여 내부 캐시 유닛(108)으로 전달된다. 다른 실시예에 있어서, 캐시 억세스는 실행 유닛(112)에 의하여 시작되어 어드레스 해석 유닛(116)에서의 해석된 어드레스를 사용하여 종결된다. 또다른 실시예에 있어서, 내부 캐시 유닛(108)이 해석되지 않은 어드레스와 함께 어드레스되어있다. 이 실시예에서, 어드레스 해석 유닛(116)은 캐시 미스 발생시, 또는 캐시 라인이 내부 캐시 유닛(108)에서 제거되어 주기억장치(104)로 복귀되었을 때 억세스된다.
일반적으로 어드레스 해석 유닛(116)은 세그먼트 레지스터 식별 정보 및 오프셋을 수신하여 이 정보들을 물리적 어드레스로 해석하도록 구성되었다. 플랫 어드레싱 모드가 사용된다면 세그먼트 레지스터 각각은 동일한 값을 가지므로 세그먼트 레지스터 식별 정보는 중요하지 않게 된다. 그러므로, 어드레스 해석 유닛(116)으로 전달된 세그먼트 식별 정보를 해석하는 방법이 마이크로프로세서(101)의 특징으로 부가될 수 있다. 본 특성을 이용하기 위해 씌여진 코드는 x86 구조를 구현하지만 본 특성을 구현하지 않는 프로세서상에서 올바르게 동작하고 본 특성을 이용하지 않고 씌여진 코드가 본 특성을 구현하는 프로세서상에서 올바르게 동작될 것이라는 점에서 이러한 특성은 "투과적"(transparent)이라고 할 수 있다. 또한 이러한 방법으로 부가된 특성은 본 특성을 사용하기 위해 씌여진 코드가 본 특성이 구현되지 않은 프로세서상에서 올바르게 동작하지 않을 수 있다는 점 및 본 특성을 이용하지 않고 씌여진 코드가 본 특징을 구현하는 프로세서상에서 동작하지 않을 수 있다는 점에서 "비투과적"(non-transparent)이라고도 할 수 있다. 또한, 본 특성을 제어하기 위하여 선택된 세그먼트 레지스터(즉, 세그먼트 레지스터 오버라이드 프리픽스에 의해 지정된 세그먼트 레지스터)내에 저장된 값을 사용하여 본 특성은 비투과적인 방법으로 부가될 수 있다. 저장된 값이 사용될 때, 어드레스 해석 유닛(114)은 본 특성을 조절하기 위해 사용되는 세그먼트 레지스터의 일부를 무시하도록(해석 수행시) 구성되어 있으므로 본 특성은 비투과적이다. 이 기능은 80x86구조의 일부에 해당하지 않으므로 세그먼트 레지스터내에 저장된 값에 의해 조절되는 특성의 부가는 비투과적이다. 어드레스 해석 유닛(116)에 대한 보다 상세한 논의후 다른 여러 가지 다양한 특성들이 이하에서 고찰될 것이다.
도2에서는 리얼모드의 물리적 어드레스를 생성하는 경우의 제1도에서의 어드레스 해석 유닛(116)이 보다 상세하게 도시되어 있다. 리얼모드에서, 어드레스 해석 유닛(116)은 20비트의 물리적 어드레스를 생성한다. 어드레스 해석 유닛(116)에는 세그먼트 레지스터 식별 정보와 16비트의 오프셋 값이 제공된다. 멀티플렉서(204)(multiplexor)는 세그먼트 레지스터 선택 정보를 사용하여 세그먼트 레지스터 중 하나의 내용을 쉬프트 레지스터(shift register)(206)에 제공한다. (8086/8 마이크로프로세서는 도시된 여섯 개의 세그먼트 레지스터 중 네 개의 세그먼트 레지스터만 가진다: CS, DS, ES, SS). 그리고 쉬프트 레지스터(206)는 이 값을 4비트만큼 좌측으로 쉬프트시켜서 메모리 세그먼트의 20비트의 베이스 어드레스를 형성한다. 애더(adder)(208)는 16비트의 오프셋을 20비트의 세그먼트 베이스 어드레스에 더해서 기억장치에 대한 20비트의 물리적 어드레스를 생성한다.
도3에는 보호 모드에서 물리적 어드레스를 생성하는 경우의 제1도에서의 어드레스 해석 유닛(116)이 보다 상세하게 도시되어 있다. 보호 모드는 8086/8 마이크로프로세서에서는 사용할 수 없다. 리얼모드에서처럼 어드레스 해석 유닛(116)에는 세그먼트 레지스터 식별 정보와 오프셋 값이 들어 있다. 그러나, 보호 모드의 경우에 세그먼트 레지스터는 주 기억장치안에 있는 메모리 세그먼트 정보에 관한 두 개의 테이블 중 하나로의 인덱스(index)를 포함하고 있다. 테이블들에는 세그먼트의 베이스 어드레스와 세그먼트의 크기를 포함하는 어드레스 해석에 관한 정보를가진다.
80286 마이크로프로세서부터는 두 개의 범용 세그먼트 레지스터(general purpose segment register)(FS, GS)가 부가되어, 세그먼트 레지스터는 모두 6개가 되었다. 6개의 메모리 세그먼트 정보는 6개의 세그먼트 레지스터로 로드될 수 있다. 통상적으로, 각각의 세그먼트 레지스터와 관련된 섀도우 레지스터(shadow register)는 세그먼트의 베이스 어드레스를 포함하여 관련된 세그먼트 디스크립터로부터 데이터를 저장한다. 80286에서 세그먼트 베이스 어드레스는 24비트 길이이다. 80386 및 80486에서 세그먼트 베이스 어드레스는 32비트 길이이다. 멀티플렉서(304)는 세그먼트 레지스터 식별 정보를 사용하여 해당하는 메모리 세그먼트의 베이스 어드레스 중 하나의 내용을 제공해 준다. 애더(306)는 오프셋을 세그먼트 베이스 어드레스에 더해서 기억장치내의 위치에 대한 물리적 어드레스를 산출해 낸다(페이징 회로(308)가 디스에이블된 경우). 80286에서 오프셋은 16비트 길이이며, 물리적 어드레스는 24비트 길이이다. 80386 및 80486에서, 오프셋은 16비트 또는 32비트 길이이며, 물리적 어드레스는 32비트 길이이다. 페이징 회로(308)가 인에이블되었다면, 애더(306)에 의하여 형성된 어드레스는 페이징 알고리즘에 따라 다시 한번 해석된다. 페이징 알고리즘은 애더(306)에 의하여 형성된 어드레스의 상위 비트들을 사용하여 페이지 테이블의 어드레스를 포함하는 페이지 디렉토리로 인덱스한다. 페이지 테이블의 어드레스는 애더(306)의 제2 범위 비트에 더해져서 특정한 페이지 디렉토리 엔트리(page directory entry)를 찾아낸다. 여기에 저장된 정보는 애더(306)에 의하여 형성된 어드레스를 물리적 어드레스로 해석하는데사용된다.
플랫 어드레싱 모드에서는, 어드레스 해석을 위해 페이징 알고리즘이 사용되고, 상기 전술한 바와 같이 애더(306)에 의하여 생성된 어드레스는 논리 어드레스와 동일하다. 따라서 세그먼트 레지스터는 거의 사용되지 않는다. x86 명령어용 디폴트 세그먼트 레지스터가 아닌 FS 및 GS는 특히 사용되지 않는 세그먼트 레지스터이다. 그러므로 FS 및 GS 레지스터에 관한 세그먼트 레지스터 오버라이드 프리픽스는 마이크로프로세서(101)의 확장된 특징을 인에이블하는데 사용될 수 있다. 또한, 명령어용 디폴트 세그먼트 레지스터를 지정하는 세그먼트 레지스터 오버라이드 바이트는 다른 실시예에서 사용될 수 있다. 또한 플랫 메모리 어드레싱이 사용되지 않을때 다른 실시예가 사용될 수도 있음을 유의해야 한다.
도4는 캐시 제어 유닛(404)을 포함하는 마이크로프로세서(101) 일부의 블록도이다. 캐시 제어 유닛(404)은 내부 캐시 유닛(108)내에 구성되었고, 실행 유닛(112)과 제어 레지스터(402)에 연결되어 있다. 캐시 제어 유닛(404)은 실행 유닛(112)에 의하여 제공된 세그먼트 레지스터 식별 정보 및 제어 레지스터(402)의 인에이블링 비트(400)의 내용을 사용하여 선택적으로 인에이블된다. 인에이블링 비트(400)가 세트되었을 때, 캐시 제어기(404)는 내부 캐시 유닛(108)에서 세그먼트 레지스터 식별 정보를 주는 명령어에 관련된 데이터를 선택적으로 저장한다. 이러한 캐시능력 선택성(cacheability selection)은 페이지 테이블 엔트리의 PCD 비트에서 실시된 것 처럼, x86 구조의 구조적 캐시능력 선택성에 부가된 것이다. 일실시예에 있어서, FS 세그먼트 레지스터가 관련된 명령어용 세그먼트 레지스터 오버라이드 프리픽스에 의하여 지정되지 않는다면, 데이터는 저장된다. 다른 실시예에서는 본 기능을 위해 다른 세그먼트 레지스터 오버라이드를 사용할 수도 있다.
다른 실시예에서, 선택된 세그먼트 레지스터내에 저장된 값이 캐시 제어 유닛(404)에 전달되었다. 따라서, 특정 어드레스의 캐시능력은 전달된 값에 의하여 결정된다.
인에이블링 비트(400)가 클리어(clear)되었다면, 세그먼트 레지스터 식별 정보는 특정 어드레스의 캐시능력을 결정하는데 사용되지 않는다. 다른 실시예에서, 어드레스용 캐시능력 특성은 외부 캐시 유닛(102)(제1도)에 전달되었다.
또다른 실시예에서, 캐시 제어기(404)는 라이트쓰루(write-through) 모드나 라이트백(writeback)모드로 라인(lne)을 선택적으로 저장할 수 있도록 구성되었다. 인에이블링 비트(400)가 세트되었을 때, 캐시 제어기(404)는 라이트쓰루 모드나 또는 라이트백 모드에서 내부 캐시 유닛(108)의 세그먼트 레지스터 식별 정보를 생성하는 명령어와 관련된 데이터를 선택적으로 저장한다. 본 모드 선택은 페이지 테이블 엔트리의 PWT 비트에서 실시된 것 처럼, x86 구조의 구조적 라이트쓰루 선택성에 부가된 것이다. 일실시예에 있어서, FS 세그먼트 레지스터가 관련된 명령어용 세그먼트 레지스터 오버라이드 프리픽스 바이트에 의하여 지정되지 않는다면, 데이터는 라이트백 모드로 저장된다. 다른 실시예에서 본 기능을 위해 다른 세그먼트 레지스터 오버라이드 프리픽스 바이트가 사용될 수도 있다. 또다른 실시예에서, 선택된 세그먼트 레지스터내에 저장된 값이 캐시 제어 유닛(404)에 전달되었다. 따라서, 특정 어드레스의 라이트쓰루 또는 라이트백 모드는 전달된 값에 의하여 결정된다. 인에이블링 비트(400)가 클리어되었다면, 세그먼트 레지스터 식별 정보는 특정 어드레스의 라이트쓰루 또는 라이트백 모드를 결정하는데 사용되지 않는다. 다른 실시예에서, 어드레스용 라이트쓰루 또는 라이트백 특성은 외부 캐시 유닛(102)(도1)에 전달되었다.
캐시 제어 유닛(404)에 관해서는 임의의 명령어에 관련된 세그먼트 레지스터 식별 정보의 특정 값에 의존하는 캐시 플러시(flush) 또는 캐시 클린(clean)동작이 구현된 또다른 실시예가 있다. 캐시 플러시 동작은 캐시 플러시 동작의 어드레스를 포함하는 캐시 라인을 캐시로부터 제거시킨다. 라인이 주 기억장치에 대해서 수정되었다면, 수정된 값은 주 기억장치에 다시 기록된다. 캐시 클린 동작은 수정된 캐시 라인이 주 기억장치로 다시 기록된다는 점에서 플러시 동작과 유사하다. 그러나, 캐시 클린 동작은 캐시에서 라인을 제거시키지 않는다. 이들 동작은 한번에 전체 캐시에 영향을 끼치는 x86구조의 INVD 및 WBINVD 명령어와는 달리, 단일 캐시 라인에만 영향을 끼친다. 본 실시례에서 GS세그먼트 레지스터 오버라이드 프리픽스 바이트는 플러시 동작을 발생시키는 데 사용되며, ES 세그먼트 레지스터 오버라이드 프리픽스 바이트는 클린 동작을 발생시키는 데 사용된다. 다른 실시예에서 이러한 기능들을 위한 다른 세그먼트 레지스터 오버라이드 프리픽스 바이트가 사용될 수 있으며, 이러한 기능들을 지정하도록 선택된 세그먼트 레지스터내에 저장된 값을 사용하여도 된다. 선택된 세그먼트 레지스터내에 저장된 값이 사용된다면, 그 값은 세그먼트 식별 값과 함께 캐시 제어 유닛(404)으로 전달된다.
다른 실시예에 있어서, 캐시 제어 유닛(404)은 FS 세그먼트 레지스터 오버라이드 프리픽스 바이트를 사용하여 추론적 미스 라인 필 기능(speculative miss line fill funtion)을 구현한다. 본 실시예에서 FS세그먼트 레지스터 오버라이드 프리픽스 바이트가 특정한 명령어에 대하여 지정되고, 그 명령어와 관련된 어드레스가 내부 캐시 유닛(108)에서 미스(miss)된다면, 어드레스를 포함하는 캐시 라인은 비록 명령어가 실행 유닛(112)에 의하여 추론적으로 실행되더라도 주 기억장치로부터 페치(fetch)된다. 때로는 어드레스가 정확하고, 후속 프로그램에 의해 필요하게 될 경우에라도, 특정 명령어는 마이크로프로세서(101)에 추론적이 될 수도 있다. 프로그래머 또는 컴파일러가 이러한 상황을 인식하고 있다면, 명령어에 대한 캐시 미스가 내부 캐시 유닛(108)으로 추론적으로 페치되는 것을 지정하도록 할 수 있다. 명령어 실행 과정에서 사용될 때, "추론적"이란 용어는 프로그램에서 명령어의 순차적 실행에 의하여 요구되는 것을 인식하기 전에 명령어가 실행된다는 것을 의미한다.
캐시 제어기(404)의 다른 실시예는 ES세그먼트 레지스터 오버라이드 프리픽스 바이트가 저장(store)명령어에 포함되는 경우, 내부 캐시 유닛(108)에서 미스된 저장 명령어에 대한 캐시 라인을 할당하도록 구성되었다. 인에이블링 비트(400)가 세트되지 않았다면, 내부 캐시 유닛(108)에서 미스된 저장 명령어는 관련된 캐시 라인을 내부 캐시 유닛(108)으로 페칭하지 않고 주 기억장치에 기록된다. 인에이블링 비트(400)가 세트된 경우에는, 내부 캐시 유닛(108)에서 미스된 저장 명령어는 ES세그먼트 레지스터 오버라이드 프리픽스 바이트를 포함할 때, 관련 데이터 바이트의 캐시 라인 필이 발생하도록 할 것이다. ES세그먼트 레지스터 오버라이드 프리픽스 바이트가 포함되지 않는다면, 캐시 라인 필은 발생하지 않고 저장 데이터는 주 기억장치에 기록된다. 또다른 실시예에서, 캐시에서 미스된 저장 명령어는 캐시 라인을 할당하지만, 관련 데이터 바이트가 기억장치로부터 페치되지는 않는다. 저장 명령어에 의하여 제공된 데이터 바이트는 캐시 라인으로 저장된다. 그러나, 캐시 라인의 나머지 데이터 바이트들은 다른 저장 명령어가 그 나머지 데이터 바이트를 유효하게 만들 때까지, 내부 캐시 유닛(108)에서 무효(invalid)로 표시된다. 다른 실시예에 있어서, 나머지 데이터 바이트들은 영(zero)으로 세트되어 있다. 캐시 제어 유닛(404)의 다른 실시예는 상기 전술한 추론적 미스 라인 필 기능을 지정하는 선택된 세그먼트 레지스터내에 저장된 값을 사용하도록 구성되어 있다.
일실시예에 있어서, 제어 레지스터(402)는 80386과 그 이후의 마이크로프로세서에 존재하는 제어 레지스터0이다. 인에이블링 비트(400)는 페이징 비트인 제어 레지스터0의 비트 31이다. 비트 31이 세트되었을 때, 페이징이 인에이블된다.
도5는 데이터 프리페치 유닛(500)을 포함하는 마이크로프로세서(101) 일부의 블록도이다. 데이터 프리페치 유닛(500)은 실행 유닛(112)과 제어 레지스터(402)에 연결되어 있다. 데이터 프리페치 유닛(500)은 실행 유닛(112)에 의하여 제공된 세그먼트 레지스터 식별 정보 및 제어 레지스터(402)의 인에이블링 비트(400)의 내용을 사용하여 선택적으로 인에이블된다. 인에이블링 비트(400)가 세트되었을 때, 데이터 프리페치 유닛(500)은 명령어에 의하여 지정된 어드레스로부터 시작하여 주 기억장치(104)(제1도)의 바이트의 연속적인 그룹에 저장된 캐시 라인과 관련된 데이터를 프리페치(prefetch)한다. 캐시 라인은 내부 캐시 유닛(108)에 의하여 저장된다. 인에이블링 비트(400)가 세트되지 않았다면, 이후 데이터 프리페치 유닛(500)은 아이들(idle) 상태가 된다. 일실시예에 있어서, 데이터 프리페치 유닛(500)은 FS세그먼트 레지스터 오버라이드가 명령어용으로 사용될 때 프리페칭을 시작한다. 데이터 프리페치 유닛(500)에 의하여 페치된 연속 캐시 라인의 수는 실시예에 따라 다양하게 될 수 있다. 다른 실시예에 있어서, 데이터 프리페칭은 선택된 세그먼트 레지스터에 저장된 값에 따라 시작된다. 또한, 페치해야 할 연속 캐시 라인의 수는 선택된 세그먼트 레지스터내에 저장된 값에 의하여 지정될 수 있다.
다른 실시예에 있어서, 데이터 프리페치 유닛(500)은 다른 프리페칭 구조를 구현한다. 다수의 프리페칭 구조들이 진보된 프리페칭 설계 및 다른 "스마트"한 프리페칭 설계들을 포함하여, 데이터 프리페치 유닛(500)용으로 적합하다고 알려져 있다. 다양한 "스마트"한 프리페칭 구조들이 알려져 있다.
도6은 페치 유닛(110)에 포함되어 있는 분기 예측 유닛(branch prediction unit)(600)을 가지고 있는 마이크로프로세서(101) 일부의 블록도이다. 분기 예측 유닛(600)은 실행 유닛(112)과 제어 레지스터(402)에 연결되어 있다. 분기 예측 유닛(600)은 대체적(alternative) 구조뿐만 아니라 페치 유닛(110)내에 실시된 분기 예측 구조를 구현한다. 대체적 구조는 실행 유닛(112)에 의하여 제공된 세그먼트 레지스터 식별 정보 및 제어 레지스터(402)의 인에이블링 비트(400)의 내용을 통하여 인에이블된다. 인에이블링 비트(400)가 세트되지 않았다면, 분기 예측 유닛(600)의 분기 예측 구조가 사용된다. 인에이블링 비트(400)가 세트되었다면,분기 명령어 바로 이전의 누프(noop) 명령어가 FS 또는 GS 세그먼트 레지스터 오버라이드 프리픽스 바이트를 포함하는 경우를 제외하고는 분기 예측 유닛(600)의 분기 예측 설계가 사용된다. 이러한 경우에 대체적 구조가 사용된다.
일실시예에 있어서, 대체적 분기 예측 구조는 선행하는 누프가 FS 세그먼트 레지스터 오버라이드 프리픽스 바이트를 포함한다면 분기가 일어날 것이고 GS 세그먼트 레지스터 오버라이드 프리픽스 바이트를 포함한다면 분기가 일어나지 않을 것이라고 예측한다. 본 응용에서, "누프"라는 용어는 x86구조의 NOP명령어를 의미하는 것이 아니다. 그 대신, "누프"는 레지스터 또는 기억장치를 변화시키지 않고 기억장치 위치를 참고로 하여 세그먼트 레지스터 오버라이드 프리픽스 바이트가 명령어에 포함되도록 하는 명령어이다. 전형적인 누프 명령어는 기억장치 위치의 내용에 영(zero)을 더하는 명령어이다. 이외에도, 선택된 세그먼트 레지스터에 저장된 값은 대체적 분기 예측 구조를 인에이블 또는 디스에이블하는데 사용될 수도 있다.
전술한 세그먼트 레지스터 식별 정보의 사용은 특성을 제어하기 위하여 선택된 세그먼트 레지스터(특정 세그먼트 레지스터 오버라이드 프리픽스 바이트 대신)내에 저장된 값을 사용하는 본 실시예를 제외하고는 투과적인 사용이다. 비투과적 사용 또한 아래에서 설명된 것과 같이 고찰되었다.
두 가지 전형적인 비투과적 사용이 실행 유닛(112)내에서 구현될 수 있다. 우선, 세그먼트 레지스터 오버라이드 바이트는 상태 플래그(condition flags)들을 변경시키지 않는 명령어를 만들어 내는데 사용될 수 있다. 예를 들어, ADD 명령어는 상태 플래그들을 변경시킨다. 메모리 오퍼랜드를 사용하는 ADD 명령어는 세그먼트 레지스터 오버라이드 프리픽스 바이트를 사용함으로써 상태 플래그들을 변경시키지 않는 ADD 명령어로 수정될 수 있다. 일실시예에 있어서, FS 세그먼트 레지스터 오버라이드 프리픽스 바이트는 ADD 명령어가 상태 플래그들을 변경시키지 않을 것이라는 것을 나타낸다. 본 기능은 특정한 동작에 의하여 생성되는 상태 플래그에 의존하는 분기 스케줄링(branch scheduling)을 가능하게 한다. 명령어가 상태 플래그들을 변경시키지 않으면, 여러가지 명령어가 분기 명령어 및 분기 명령어가 의존하는 명령어 사이에서 실행될 수 있다.
분기 명령어의 스케쥴링을 도와주는 다른 실시예는 다수의 상태 플래그 세트를 구현하는 것이다. 이러한 방법으로, 다수의 상태 세트가 동시에 유지될 수 있다. 세그먼트 레지스터 오버라이드 프리픽스 바이트는 상태 플래그들을 변경시키는 명령어와 함께 사용되어, 다수의 상태 플래그들중 어느 것이 변경되어야 할 것인가를 나타낸다. 그러면, 분기명령어 바로 앞에 선행하는 누프 명령어는 분기명령어가 분기방향을 결정하기 위하여 사용해야 할 다수의 상태 플래그 세트중의 하나를 나타내는 세그먼트 레지스터 오버라이드 프리픽스 바이트를 사용하게 된다. 명령어에 대하여 어떠한 세그먼트 레지스터 오버라이드 프리픽스 바이트도 포함되지 않았다면, 상태 플래그의 디폴트 세트가 명령어에 연결지워진다. 다른 실시예에서, 선택된 세그먼트 레지스터내에 저장된 값을 사용하여 특정 명령어에 의하여 사용될 상태 프래그 세트를 선택한다.
세그먼트 레지스터 오버라이드 프리픽스 바이트의 또 다른 비투과적 사용이 명령어 디코드 유닛(114)내에서 실시될 수 있다. 상기 전술한 바와 같이, 명령어디코드 유닛(114)은 명령어의 오퍼랜드로 지정된 레지스터(들)를 읽어들여, 그 값을 명령어와 함께 실행 유닛(112)으로 전달한다. 본 실시예에서, 세그먼트 레지스터 오버라이드 프리픽스 바이트는 데이터를 저장할 다수의 레지스터 뱅크 중 하나를 선택하는 데 사용된다. 레지스터 뱅크들 각각은 X86 레지스터 모두를 완전히 포함한다. 이러한 방법으로, 본 구조의 레지스터 세트는 명령어 인코딩의 변화없이 확장될 수 있다. 당업자가 인정하는 바와 같이, 더 많은 레지스터 세트는 더 많은 오퍼랜드 값을 레지스터(신속히 억세스될 수 있는)내에 유지할 수 있고, 따라서 기억장치(통상적으로 긴 시간 간격을 요하는)로의 억세스가 감소하게 된다. 일실시예에 있어서, 어떠한 세그먼트 레지스터 오버라이드 프리픽스 바이트도 레지스터의 제 1뱅크를 지정하지 않으며, FS세그먼트 레지스터를 나타내는 세그먼트 레지스터 오버라이드 프리픽스 바이트는 레지스터의 제2 뱅크를 지정하며, GS세그먼트 레지스터를 나타내는 세그먼트 레지스터 오버라이드 프리픽스 바이트는 레지스터의 제3 뱅크를 지정하며, ES세그먼트 레지스터를 나타내는 세그먼트 레지스터 오버라이드 프리픽스 바이트는 레지스터의 제4 뱅크를 지정한다. 다른 실시예에서, 선택된 세그먼트 레지스터내에 저장된 값이 다수의 레지스터 뱅크로부터 적절한 레지스터 뱅크를 선택하는데 사용된다.
세그먼트 레지스터 오버라이드 프리픽스 바이트에 관하여 여러가지 다른 비투과적 사용법이 창작될 수 있다. 본 발명은 세그먼트 레지스터 오버라이드 프리픽스 바이트의 사용으로 구현된 투과적 및 비투과적 기능을 고찰한 것이다. 또한, 상기의 실시예들은 80x86 마이크로프로세서들이지만, 어떠한 종류의 마이크로프로세서 구조에 의해 구현된 어떠한 종류의 마이크로프로세서에서도 본 구조의 유사한 확장의 잇점을 사용할 수 있다.
마이크로프로세서의 기타 부분들에 대한 것은 1993년 10월 29일에 출원되어 특허 공개중인 출원인 Witt, et al.의 "High Performance Superscalar Microprocessor", 일련 번호 08/146,382에서 얻을 수 있다. 또한, 1995년 1월 25일에 출원되어 특허 공개중인 출원인 Tran, et al.의 "High Performance Superscalar Instruction Alignment Unit", 일련 번호 08/377865에서 얻어도 된다. 상기 전술한 두 출원 모두의 공개가 여기에서 참조용으로 완전하게 첨부되었다.
상기 개시된 내용을 완전히 이해한다면, 당업자들이 여러 가지 변형과 응용을 할 수 있음이 명백하게 될 것이다. 다음의 청구 범위는 이러한 모든 변형과 응용을 포함하여 해석되도록 한 것이다.

Claims (54)

  1. 논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛(address translation unit);
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 제1제어 유닛 및 상기 구성 레지스터에 연결되어, 상기 구성 레지스터에 저장된 상기 값 및 상기 제1 제어 유닛으로부터의 상기 신호에 의존하여 기능을 수행하도록 구성된 제2 제어 유닛
    을 구비하는 마이크로프로세서.
  2. 제 1 항에 있어서, 상기 제2 제어 유닛이 캐시 제어 유닛(cache control unit)인 것을 특징으로 하는 마이크로프로세서.
  3. 제 2 항에 있어서, 상기 캐시 제어 유닛이 상기 명령어 필드를 포함하는 명령어에 관련된 데이터 바이트를 무시하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  4. 제 3 항에 있어서, 상기 캐시 제어 유닛에 연결된 버스 인터페이스 유닛(bus interface unit)을 더 구비하는 마이크로프로세서.
  5. 제 4 항에 있어서, 상기 버스 인터페이스 유닛이 외부 캐시 유닛으로 상기 무시 기능을 나타내는 신호를 전달하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  6. 제 2 항에 있어서, 상기 캐시 제어 유닛이 상기 명령어 필드를 포함하는 명령어에 관련된 어드레스를 포함하는 캐시 라인에 대하여 캐시 플러시 동작(cache flush operation)을 실행하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  7. 제 2 항에 있어서, 상기 캐시 제어 유닛이 상기 명령어 필드를 포함하는 명령어에 관련된 어드레스를 포함하는 캐시 라인에 대해서 캐시 클린 동작(cache clean operation)을 실행하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  8. 제 2 항에 있어서, 상기 캐시 제어 유닛이 상기 명령어가 추론적(speculative)인 경우에도, 상기 명령어 필드를 포함하는 명령어에 관련된 어드레스에 관련된 데이터 바이트들을 요청하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  9. 제 2 항에 있어서, 상기 캐시 제어 유닛이 라이트쓰루(write-through) 모드로 상기 명령어 필드를 포함하는 명령어에 관련된 데이터 바이트들을 저장하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  10. 제 2 항에 있어서, 상기 캐시 제어 유닛이 라이트백(writeback) 모드로 상기 명령어 필드를 포함하는 명령어와 관련된 데이터 바이트들을 저장하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  11. 제 2 항에 있어서, 저장(store) 명령어가 관련된 데이터 캐시에서 미스(miss)된 경우에, 상기 캐시 제어 유닛이 상기 저장 명령어와 관련된 데이터 바이트들을 주 기억장치로부터 상기 관련된 데이터 캐시로 전송하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  12. 제 2 항에 있어서, 상기 캐시 제어 유닛이 상기 저장 명령어와 관련된 데이터 바이트들에 대하여 관련된 데이터 캐시내에 캐시 라인을 할당하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  13. 제 1 항에 있어서, 상기 제2 제어 유닛이 데이터 프리페치 유닛(data prefetch unit)인 것을 특징으로 하는 마이크로프로세서.
  14. 제 13 항에 있어서, 상기 데이터 프리페치 유닛이 상기 명령어 필드를 포함하는 명령어와 관련된 어드레스에서부터 시작되는 연속 캐시 라인을 프리페치하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  15. 논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛;
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 구성 레지스터 및 상기 복수의 세그먼트 레지스터에 연결되어, 상기 구성 레지스터에 저장된 상기 값 및 상기 세그먼트값에 의존하여 기능을 수행하도록구성된 제2 제어 유닛
    을 구비하는 마이크로프로세서.
  16. 제 15 항에 있어서, 상기 제2 제어 유닛이 캐시 제어 유닛인 것을 특징으로 하는 마이크로프로세서.
  17. 제 16 항에 있어서, 상기 캐시 제어 유닛이 상기 세그먼트 값에 따라 상기 명령어 필드를 포함하는 명령어와 관련된 데이터 바이트들을 무시하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  18. 제 17 항에 있어서, 상기 캐시 제어 유닛에 연결된 버스 인터페이스 유닛을 더 구비하는 마이크로프로세서.
  19. 제 18 항에 있어서, 상기 버스 인터페이스 유닛이 외부 캐시 유닛으로 상기 무시 기능을 지시하는 신호를 전달하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  20. 제 16 항에 있어서, 상기 캐시 제어 유닛이 상기 세그먼트 값에 따라 상기 명령어 필드를 포함하는 명령어에 관련된 어드레스를 포함하는 캐시 라인에 대하여 캐시 플러시 동작을 실행하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  21. 제 16 항에 있어서, 상기 캐시 제어 유닛이 상기 세그먼트 값에 따라 상기 명령어 필드를 포함하는 명령어에 관련된 어드레스를 포함하는 캐시 라인에 대하여 캐시 클린 동작을 실행하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  22. 제 16 항에 있어서, 상기 캐시 제어 유닛이 상기 명령어가 추론적인 경우에도 상기 명령어 필드를 포함하는 명령어에 관련된 어드레스와 관련된 데이터 바이트들을 요구하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  23. 제 16 항에 있어서, 상기 캐시 제어 유닛이 라이트쓰루 모드로 상기 명령어 필드를 포함하는 명령어에 관련된 데이터 바이트들을 저장하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  24. 제 16 항에 있어서, 상기 캐시 제어 유닛이 라이트백 모드로 상기 명령어 필드를 포함하는 명령어에 관련된 데이터 바이트들을 저장하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  25. 제 16 항에 있어서, 저장 명령어가 관련된 데이터 캐시에서 미스된 경우에, 상기 캐시 제어 유닛이 상기 저장 명령어와 관련된 데이터 바이트들을 주 기억장치로부터 상기 관련된 데이터 캐시로 전송하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  26. 제 16 항에 있어서, 상기 캐시 제어 유닛이 상기 저장 명령어와 관련된 데이터 바이트들에 대하여 관련된 데이터 캐시내에 캐시 라인을 할당하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  27. 제 15 항에 있어서, 상기 제2제어 유닛이 데이터 프리페치 유닛인 것을 특징으로 하는 마이크로프로세서.
  28. 제 27 항에 있어서, 상기 데이터 프리페치 유닛이 상기 세그먼트 값에 따라 상기 명령어 필드를 포함하는 명령어와 관련된 어드레스에서부터 시작되는 연속적인 캐시 라인을 프리페치하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  29. 주 기억장치와, 상기 주 기억장치에 연결된 마이크로프로세서를 구비하는 컴퓨터 시스템에 있어서, 상기 마이크로프로세서가
    논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛(address translation unit);
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 제1제어 유닛 및 상기 구성 레지스터에 연결되어, 상기 구성 레지스터에 저장된 상기 값 및 상기 제1 제어 유닛으로부터의 상기 신호에 의존하여 기능을 수행하도록 구성된 제2 제어 유닛
    을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  30. 제 29 항에 있어서, 상기 주 기억장치 및 상기 마이크로프로세서 사이에 연결된 외부 캐시 메모리 유닛을 더 구비하는 컴퓨터 시스템.
  31. 주 기억장치와, 상기 주 기억장치에 연결된 마이크로프로세서를 구비하는 컴퓨터 시스템에 있어서, 상기 마이크로프로세서가
    논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛;
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 구성 레지스터 및 상기 복수의 세그먼트 레지스터에 연결되어, 상기 구성 레지스터에 저장된 상기 값 및 상기 세그먼트값에 의존하여 기능을 수행하도록 구성된 제2 제어 유닛
    을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  32. 제 31 항에 있어서, 상기 주 기억장치 및 상기 마이크로프로세서 사이에 연결된 외부 캐시 메모리 유닛을 더 구비하는 컴퓨터 시스템.
  33. 논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛;
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 신호을 수신하여 상기 신호에 따라 상기 명령어의 실행을 수정하도록 구성된, 명령어 실행을 위한 실행 유닛
    을 구비하는 마이크로프로세서.
  34. 제 33 항에 있어서, 상기 실행 유닛이 명령어 실행 결과에 따라 상태 플래그(condition flag) 세트를 수정하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  35. 제 34 항에 있어서, 상기 실행 유닛이 상기 명령어 필드를 포함하는 명령어를 실행할 때, 상기 상태 플래그 세트를 수정하지 않도록 구성된 것을 특징으로 하는 마이크로프로세서.
  36. 제 34 항에 있어서, 상기 실행 유닛이 명령어 실행 결과를 나타내는 다수의 상태 플래그 세트를 포함하는 것을 특징으로 하는 마이크로프로세서.
  37. 제 36 항에 있어서, 상기 실행 유닛이 상기 명령어 필드를 포함하는 명령어의 실행 결과에 따라 상기 다수의 상태 플래그 세트 중 수정해야 할 하나를 선택하도록 구성되어 있으며, 상기 실행 유닛이 상기 명령어 필드에 따라 상기 다수의 상태 플래그 세트 중 상기 하나를 선택하도록 구성되어 있는 것을 특징으로 하는 마이크로프로세서.
  38. 논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛;
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 세그먼트값을 수신하여 상기 세그먼트값에 따라 상기 명령어의 실행을 수정하도록 구성된, 명령어 실행을 위한 실행 유닛
    을 구비하는 마이크로프로세서.
  39. 제 38 항에 있어서, 상기 실행 유닛이 명령어 실행 결과에 따라 상태 플래그 세트를 수정하도록 구성된 것을 특징으로 하는 마이크로프로세서.
  40. 제 39 항에 있어서, 상기 실행 유닛이 상기 세그먼트 값에 따라 상기 명령어 필드를 포함하는 명령어를 실행할 때, 상기 상태 플래그 세트를 수정하지 않도록 구성된 것을 특징으로 하는 마이크로프로세서.
  41. 제 39 항에 있어서, 상기 실행 유닛이 명령어 실행 결과를 나타내는 다수의 상태 플래그 세트를 포함하는 것을 특징으로 하는 마이크로프로세서.
  42. 제 41 항에 있어서, 상기 실행 유닛이 상기 명령어 필드를 포함하는 명령어의 실행 결과에 따라 상기 다수의 상태 플래그의 세트중 수정해야 할 하나를 선택하도록 구성되어 있으며, 상기 실행 유닛이 상기 세그먼트 값에 따라 상기 다수의 상태 플래그 세트 중 상기 하나를 선택하도록 구성되어 있는 것을 특징으로 하는 마이크로프로세서.
  43. 주 기억장치와, 상기 주 기억장치에 연결된 마이크로프로세서를 구비하는 컴퓨터 시스템에 있어서, 상기 마이크로프로세서가
    논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛(address translation unit);
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 신호를 수신하여 상기 신호에 따라 상기 명령어의 실행을 수정하도록 구성된, 명령어 실행을 위한 실행 유닛
    을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  44. 제 43 항에 있어서, 상기 주 기억장치 및 상기 마이크로프로세서 사이에 연결된 외부 캐시 메모리 유닛을 더 구비하는 컴퓨터 시스템.
  45. 주 기억장치와, 상기 주 기억장치에 연결된 마이크로프로세서를 구비하는 컴퓨터 시스템에 있어서, 상기 마이크로프로세서가
    논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛(address translation unit);
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 세그먼트값을 수신하여 상기 세그먼트값에 따라 상기 명령어의 실행을 수정하도록 구성된, 명령어 실행을 위한 실행 유닛
    을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  46. 제 45 항에 있어서, 상기 주 기억장치 및 상기 마이크로프로세서 사이에 연결된 외부 캐시 메모리 유닛을 더 구비하는 컴퓨터 시스템.
  47. 논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛;
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 신호을 수신하며, 상기 신호에 따라 명령어 디코딩을 수정하도록 구성된 제2 제어 유닛
    을 구비하는 마이크로프로세서.
  48. 제 47 항에 있어서, 상기 제2 제어 유닛이 다수의 레지스터 뱅크 중 하나에서 명령어와 관련된 레지스터 값을 선택하도록 구성되며, 상기 제2 제어 유닛이 상기 명령어 필드에 따라 상기 다수의 레지스터 뱅크 중 상기 하나를 선택하는 것을 특징으로 하는 마이크로프로세서.
  49. 논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛;
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 세그먼트 값을 수신하고, 상기 세그먼트 값에 따라 명령어 디코딩을 수정하도록 구성된 제2제어 유닛
    을 구비하는 마이크로프로세서.
  50. 제 49 항에 있어서, 상기 제2 제어 유닛이 다수의 레지스터의 뱅크 중 하나에서 명령어와 관련된 레지스터 값을 선택하도록 구성되며, 상기 제2 제어 유닛이 상기 세그먼트 값에 따라 상기 다수의 레지스터 뱅크 중 상기 하나를 선택하는 것을 특징으로 하는 마이크로프로세서.
  51. 주 기억장치와, 상기 주 기억장치에 연결된 마이크로프로세서를 구비하는 컴퓨터 시스템에 있어서, 상기 마이크로프로세서가
    논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛(address translation unit);
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 신호을 수신하며, 상기 신호에 따라 명령어 디코딩을 수정하도록 구성된 제2 제어 유닛
    을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  52. 제 51 항에 있어서, 상기 주 기억장치 및 상기 마이크로프로세서 사이에 연결된 외부 캐시 메모리 유닛을 더 구비하는 컴퓨터 시스템.
  53. 주 기억장치와, 상기 주 기억장치에 연결된 마이크로프로세서를 구비하는 컴퓨터 시스템에 있어서, 상기 마이크로프로세서가
    논리 어드레스 및 세그먼트 값에서 물리적 어드레스를 생성하도록 구성된 어드레스 해석 유닛(address translation unit);
    복수의 세그먼트 레지스터 중 최소한 어느 하나가 상기 세그먼트 값을 저장하는, 상기 어드레스 해석 유닛에 연결된 복수의 세그먼트 레지스터;
    상기 복수의 세그먼트 레지스터 중 어느 하나를 나타내는 명령어 필드를 감지하여, 상기 어드레스 해석 유닛으로 상기 복수의 세그먼트 레지스터 중 상기 어느 하나를 나타내는 신호을 전달하도록 구성된, 상기 어드레스 해석 유닛에 연결된 제1 제어 유닛;
    상기 마이크로프로세서의 어드레스 해석 모드를 나타내는 값을 저장하기 위한 구성 레지스터(configuration register);
    상기 세그먼트 값을 수신하고, 상기 세그먼트 값에 따라 명령어 디코딩을 수정하도록 구성된 제2제어 유닛
    을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  54. 제 53 항에 있어서, 상기 주 기억장치 및 상기 마이크로프로세서 사이에 연결된 외부 캐시 메모리 유닛을 더 구비하는 컴퓨터 시스템.
KR1019970708910A 1995-06-07 1996-06-07 확장기능을지정하기위한명령어필드를사용하는마이크로프로세서 KR100448675B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US47440095A 1995-06-07 1995-06-07
US48170495A 1995-06-07 1995-06-07
US08/481704 1995-06-07
US08/479782 1995-06-07
US08/474400 1995-06-07
US08/479,782 US5680578A (en) 1995-06-07 1995-06-07 Microprocessor using an instruction field to specify expanded functionality and a computer system employing same
US8/474400 1995-06-07
US8/481704 1995-06-07
US8/479782 1995-06-07

Publications (2)

Publication Number Publication Date
KR19990022430A KR19990022430A (ko) 1999-03-25
KR100448675B1 true KR100448675B1 (ko) 2004-12-13

Family

ID=27413282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970708910A KR100448675B1 (ko) 1995-06-07 1996-06-07 확장기능을지정하기위한명령어필드를사용하는마이크로프로세서

Country Status (6)

Country Link
EP (1) EP0834118B1 (ko)
JP (1) JP3698441B2 (ko)
KR (1) KR100448675B1 (ko)
DE (1) DE69601939T2 (ko)
ES (1) ES2129271T3 (ko)
WO (1) WO1996041257A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100353814B1 (ko) * 2000-08-18 2002-09-27 주식회사 하이닉스반도체 확장된 램 억세스 명령어를 억세스하는 시간을 향상시킨램 억세스 장치
EP1215583A1 (en) * 2000-12-15 2002-06-19 Texas Instruments Incorporated Cache with tag entries having additional qualifier fields
JP5193624B2 (ja) * 2008-02-19 2013-05-08 ルネサスエレクトロニクス株式会社 データプロセッサ
JP5610551B2 (ja) * 2013-02-04 2014-10-22 ルネサスエレクトロニクス株式会社 データプロセッサ
JP5767374B2 (ja) * 2014-07-30 2015-08-19 ルネサスエレクトロニクス株式会社 データプロセッサ

Also Published As

Publication number Publication date
JP3698441B2 (ja) 2005-09-21
KR19990022430A (ko) 1999-03-25
EP0834118A1 (en) 1998-04-08
ES2129271T3 (es) 1999-06-01
DE69601939T2 (de) 1999-12-02
EP0834118B1 (en) 1999-03-31
WO1996041257A1 (en) 1996-12-19
DE69601939D1 (de) 1999-05-06
JPH11507453A (ja) 1999-06-29

Similar Documents

Publication Publication Date Title
US5822778A (en) Microprocessor and method of using a segment override prefix instruction field to expand the register file
US5768574A (en) Microprocessor using an instruction field to expand the condition flags and a computer system employing the microprocessor
KR100230105B1 (ko) 간략화된 명령 세트 프로세서의 성능 개선 방법 및 그 프로세서 시스템
KR100230643B1 (ko) 고성능 프로세서의 브랜치 예상 동작 방법 및 장치
US5375216A (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
JP5837126B2 (ja) 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア
US6151662A (en) Data transaction typing for improved caching and prefetching characteristics
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
US5835967A (en) Adjusting prefetch size based on source of prefetch address
KR100231380B1 (ko) 감소된 명령 세트 프로세서 내부 레지스터의 데이타를 조작하는 방법 및 장치
US5835951A (en) Branch processing unit with target cache read prioritization protocol for handling multiple hits
AU654204B2 (en) Translation buffer for virtual machines with address space match
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US6456891B1 (en) System and method for transparent handling of extended register states
US5732243A (en) Branch processing unit with target cache using low/high banking to support split prefetching
US6175898B1 (en) Method for prefetching data using a micro-TLB
JPH06131178A (ja) マルチプロセッサ又はパイプラインプロセッサシステムにおい てデータの完全性を確保する方法
JPH06103067A (ja) 高性能プロセッサにおける分岐予想方法
JPH06131175A (ja) 高性能プロセッサのためのバイト比較操作方法
US6088781A (en) Stride instruction for fetching data separated by a stride amount
US6240506B1 (en) Expanding instructions with variable-length operands to a fixed length
US5958045A (en) Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor
US5732253A (en) Branch processing unit with target cache storing history for predicted taken branches and history cache storing history for predicted not-taken branches
KR100682635B1 (ko) 동일한 논리 공간을 점유하는 다중 레지스터 파일을 포함하는 마이크로프로세서
JPH06131179A (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
FPAY Annual fee payment

Payment date: 20120830

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130820

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140825

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 12

EXPY Expiration of term