KR100266886B1 - 논캐셔블반복연산명령을갖는중앙처리장치 - Google Patents

논캐셔블반복연산명령을갖는중앙처리장치 Download PDF

Info

Publication number
KR100266886B1
KR100266886B1 KR1019960044102A KR19960044102A KR100266886B1 KR 100266886 B1 KR100266886 B1 KR 100266886B1 KR 1019960044102 A KR1019960044102 A KR 1019960044102A KR 19960044102 A KR19960044102 A KR 19960044102A KR 100266886 B1 KR100266886 B1 KR 100266886B1
Authority
KR
South Korea
Prior art keywords
instruction
cache
data
cacheable
string
Prior art date
Application number
KR1019960044102A
Other languages
English (en)
Other versions
KR970049498A (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 KR970049498A publication Critical patent/KR970049498A/ko
Application granted granted Critical
Publication of KR100266886B1 publication Critical patent/KR100266886B1/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
    • 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/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/3824Operand accessing
    • G06F9/383Operand prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

CPU 명령어 형태들을 판별하기 위한 명령어 처리기를 구비한 중앙 처리 장치가 제공된다. 판별된 명령어가 논 캐셔블(non-cacheable) 반복 연산 명령어인지 여부를 판별하기 위한 명령어 검출기가 CPU 내에 포함되어 있다. CPU는 명령어를 실행하여 명령어에 연관된 데이타가 캐셔블한지 여부를 나타내는 CPU 신호를 출력하는 실행 장치를 구비하고 있다.

Description

논 캐셔블 반복 연산 명령을 갖는 중앙 처리 장치{A CENTRAL PROCESING UNIT HAVING NON-CACHEABLE REPEAT OPERATION INSTRUCTION}
본 발명은 중앙 처리 장치(CPU) 분야에 관한 것으로, 특히 캐시 메모리(cache memory)를 지원하는 CPU에 관한 것이다.
더 좋은 성능을 가진 컴퓨터 시스템에 대한 요구가 늘어감에 따라 이러한 시스템에 내장된 중앙 처리 장치(CPU) 설계도 더욱 복잡해지고 있다. 고성능 CPU를 만들기 위해서 시스템 메모리에 비해 CPU에 더 가까운 곳에 있도록 설계된 내부(L1) 또는 외부(L2) 캐시 메모리를 이용한다. 캐시는 CPU와 메모리 사이에 존재하는 고속 기억 장치이다. 통상적으로 데이타 또는 명령어들이 메인 메모리로부터 액세스되면 카피(copy)가 캐시내에 설치된다. 이 데이타 또는 명령어가 다시 액세스되면 메모리보다 더 빠른 속도의 캐시에 의해서 이 데이타 또는 명령어는 더 고속으로 검색될 수 있다. 그러나, 통상적으로는 캐시가 갖는 기억량은 메인 메모리가 갖는 기억량보다 훨씬 작다. 따라서 캐시내에서 데이타와 명령어들을 어떻게 유지시킬 것인지를 결정하는 캐시 일관성(cache coherency) 기술들이 존재하게 된다. 이러한 기술들은 '고적중율(high hit rate)'을 유지하는데(가능한 자주 캐시로부터 데이타와 명령어들을 읽어내는데) 기초를 두고 있다.
스태틱 랜덤 액세스 메모리(SRAM)과 같은 고속 디바이스로 구성된 캐시 메모리는 CPU에 의해 가장 최근에 사용된 데이타를 기억함으로써 CPU 성능을 증가시킨다. 이 캐시 메모리는 CPU 가까이에 있고 또 고속이기 때문에 CPU는 시스템 메모리로부터 데이타를 읽어내기 위해 긴 메모리 싸이클을 가동(initiate)하지 않고서도 필요한 데이타를 훨씬 더 빨리 액세스할 수가 있다.
SRAM 디바이스와 연관된 비용때문에 캐시 메모리의 크기는 한정되어 있다. 오늘날, 전형적인 L1 캐시 크기는 8 킬로바이트 내지 64 킬로바이트 사이에 있고, L2 캐시 크기는 128 킬로바이트 내지 1 메가바이트 사이에 있다. 일반적으로, 컴퓨터 시스템 및 CPU는 새로운(new) 캐시 데이타 전송량이 캐시의 크기 한계를 초과하는 경우에는 구(old) 캐시 데이타를 폐기하도록 설계되어 있다.
널리 보급되어 있는 CPU 플랫폼들 중 하나는 인텔의 X86 패밀리의 프로세스들로서, 이들 중 일부는 L1 캐시 메모리를 갖는 CPU들을 제공한다. 예컨대, 인텔의 486 프로세서들 중 일부는 8 킬로바이트의 내부 L1 캐시를 포함한다. 반면에, 인텔의 펜티엄 프로(R)는 16K L1 캐시와 512K L2 캐시를 갖고 있다.
그러나, X86 패밀리의 프로세서들에 이용될 수 있는 소프트웨어 중에는 무용한 데이타에 의해 유용한 캐시 데이타가 제거되게 하는 반복(REP) 명령어와 같은 특정 명령어 형태를 이용하는 것이 많다. 유용한 CPU 데이타를 제거하는 것은 CPU 성능을 저하시키는데 그 이유는 이러한 데이타는 CPU에 의해 생성된 긴 시스템 메모리 싸이클만큼 재공급되어야만 하기 때문이다. REP 명령어들은 데이타 블록들을 조작하는데 사용된다. 조작 목적은 메모리의 한 영역에서 다른 영역으로 데이타를 옮겨서 한 데이타 블록을 다른 데이타 블록과 비교하여 특정 패턴을 위한 데이타 블록을 탐색하는 것 또는 이와 유사한 동작이 될 수 있다. REP 명령어들의 장점은 데이타 블록이 하나의 명령어로 조작될 수 있다는 것이다. 불행히도, REP 명령어는 캐시를 '제거' 하려는 경향이 있다. 즉, 반복 연산이 한 데이타 블록을 이동시키고 있는 경우에 이 데이타 블록은 캐시 내에도 놓여지게 되어 이에 따라 캐시 내에 이미 있던 것이 제거된다. 많은 경우에 데이타가 캐시 내에 놓여 있어도 CPU는 더 이상 이 데이타를 필요로 하지 않는다. 그러나, CPU가 필요로 했을 지도 모르는 데이타가 제거되는 바람에 관련 성능이 저하된 채로 이 데이타는 메모리로부터 액세스되어야만 한다.
그러므로, 반복 문자열 탐색 명령에 의해서 L1 캐시 메모리에는 유용한 캐시 데이타는 손실되고 무용한 문자열 데이타가 채워지게 된다.
그러므로, CPU에 의해서 특정 명령들이 실행될 때 CPU 성능을 향상시킬 필요성이 존재하게 된다.
요약해서, 본 발명에 따라서, 소정폭을 갖는 데이타 버스를 통해 캐시 메모리 디바이스에 접속된 중앙 처리 장치가 제공된다. CPU는 명령어 형태 필드를 갖는 CPU 명령어들을 처리하기 위한 명령어 처리 장치를 포함한다. 명령어 처리 장치는 캐셔블 또는 논-캐셔블 명령어 형태를 검출하기 위한 명령어 형태 검출기를 포함한다. CPU는 또 명령어들을 실행하기 위한 실행 장치도 포함한다. 실행 장치는 명령어 형태 검출기에서 검출된 명령어 형태에 응답하여, 검출된 명령어 형태에 연관된 데이타가 캐셔블한지 여부를 표시하는 CPU 출력 신호를 공급한다.
도 1은 본 발명의 CPU를 구비한 예시적 컴퓨터 시스템의 블록도.
도 2는 본 발명에 따른 CPU의 블럭도.
도 3은 도 1의 CPU에 의해 실행된 명령어 형식도.
<도면의 주요 부분에 대한 부호의 설명>
103 : CPU
104 : L1 캐시
105 : L2 캐시
106 : 캐시 제어기
107 : 호스트 메모리
109 : 메모리 제어기
111 : 입/출력 브리지 인터페이스
113 : 로컬 인터페이스 제어기
114 : 기억 장치
115 : 로컬 디바이스
130 : 입/출력 확장 버스
이하, 첨부 도면을 참조로 바람직한 실시예를 통하여 본 발명을 상세히 설명한다.
도 1에는 본 발명을 구비한 예시적인 컴퓨터 시스템의 블록도이다. 컴퓨터 시스템(100)은 IBM PC와 같은 개인용 컴퓨터 시스템일 수 있다. 컴퓨터 시스템(100)은 독립 데스크 톱 워크 스테이션으로서 동작할 수 있으며 또는 클라이언트 또는 서버 스테이션으로서 동작하는 더 큰 컴퓨터 네트워크의 일부가 될 수 있다. 도 1에는 본 발명을 구비한 예시적인 컴퓨터 시스템(100)의 블록도가 도시되어 있다. 컴퓨터 시스템(100)은 IBM 개인용 컴퓨터와 같은 개인용 컴퓨터나 이와 호환성이 있는 시스템일 수 있다. 컴퓨터 시스템(100)은 독립 워크 스테이션으로 동작할 수 있으며 또는 클라이언트 스테이션이나 서버 스테이션으로서 동작하는 더 큰 컴퓨터 네트워크의 일부가 될 수 있다.
컴퓨터 시스템(100)은 2개의 처리측, 즉 운영 체계와 응용 프로그램으로 규정된 것들과 같은 하이 레벨 처리 기능을 수행하는 호스트 처리측(110)과 컴퓨터 시스템(100)에 기억 매체 인터페이스 또는 통신 인터페이스를 제공하는 것과 같은 주변 기능을 수행하는 로컬 처리측(120)으로 이루어진다. 호스트 처리측(110)과 로컬 처리측(120)은 입/출력(I/O) 확장 버스(130)를 통해 서로 결합되어 있다. I/O 확장 버스(130)는 로컬 인터페이스 제어기가 I/O 확장 버스(130)를 가로 질러 데이타 블록들을 전송하는 것과 같은 특정의 기능을 수행하기 위한 버스를 제어할 수 있도록 해주는 많은 적당한 I/O 확장 버스 포르토콜들 중의 어느 하나를 따른다. 이러한 버스 프로토콜들의 예로서는 본 명세서에 참조로 내포된 PCI 또는 마크로채널(Mrcro Channel) 명세에 의해 정해진 것들이 있다.
호스트 처리측(110)은 하나의 중앙 처리 장치(103)를 포함할 수 있으며, 또는 다중 처리 시스템에서는 컴퓨터 시스템(100)의 전체 기능을 제어하기 위한 다수의 중앙 처리 장치를 포함할 수 있다. 중앙 처리 장치(103)는 인텔(R)사에서 제공하는 펜티엄 프로세서(R), IBM(R)사에서 제공하는 파워 PC(R) 프로세서와 같은 시판되는 많은 중앙 처리 장치 중 어느 것이어도 좋다. 잘 알려진 바와 같이, 중앙 처리 장치(103)는 초기에 읽기 전용 메모리(ROM)(101)에 기억되어 있는 펌웨어(firmware) 명령어를 실행함으로써 동작한다. 베이직 I/O 시스템, 즉 BIOS로도 알려져 있는 펌웨어 명령어는 부착된 디바이스들을 검출하기 위한 명령어와 파워 온 자체 테스트(power on self test; POST)를 위한 명령어를 포함한다. 일반적으로, 펌웨어 명령어가 실행 완료되면 중앙 처리 장치(103)는 로컬측 기억 장치(114)에서 시스템 메모리(107)로 운영 체계를 로드(load)시킴으로써 OS 명령어를 실행한다. 중앙 처리 장치(103), ROM(101) 및 시스템 메모리(107) 간의 데이타 전송은 메모리 제어기(109)에 의해 제어된다. 반면에, 호스트 처리측(110)과 I/O 확장 버스(130) 간의 데이타 전송은 I/O 브리지(bridge) 인터페이스(111)에 의해 제어된다. 처리기 성능을 향상시키기 위해서 중앙 처리(103)는, 가장 최근 사용된 데이타와 명령어들을 기억함으로써 긴 시스템 메모리 액세스 싸이클을 개시할 필요가 없도록 하기 위한 내부 캐시(L1 캐시)(104)와 선택적 외부 캐시(L2 캐시)(105)를 포함할 수 있다. 일반적으로 캐시 메모리는 중앙 처리 장치(103)에 가까운 곳에 위치한 고속 스태틱 랜덤 액세스 메모리(SRAM)이다. L1 및 L2 캐시의 데이타 입출력은 잘 알려져 있는 캐시 제어기(106)에 의해 제어된다. 캐시 제어기는 캐시 라인이라고 불리는 다수의 데이타 버스 폭에서 데이타를 기억하고 인출(fetch)한다. I/O 브리지 인터페이스(111)는 메모리 제어기(109), 외부 캐시 제어기(106)를 통해 중앙 처리 장치(103), 및 I/O 확장 버스(130) 간을 인터페이스하도록 설계된다. 중앙 처리 장치(103)는 I/O 확장 버스(130)와 인터페이스하는데, 그 결과 적당한 I/O 브리지 인터페이스(111)를 통해 로컬 처리측(120)과 인터페이스한다.
이하에 상세히 설명되는 바와 같이, 기억 장치(114)는 로컬 인터페이스 제어기(113)를 통해 I/O 확장 버스(130)와 인터페이스한다. 본 기술 분야의 통상의 전문가라면 상술된 호스트 처리측(110)은 단지 예시적인 것일 뿐, 응용하기에 따라서는 호스트 처리측(110)의 기능적 요구 사항을 구현하기 위하여 유니프로세싱(uniprocessing)이나 멀티프로세싱(multiprocessing)과 같은 여러가지 시스템 구조를 설계할 수 있음을 잘 알 수 있을 것이다.
로컬 처리측(120)에서 컴퓨터 시스템(100)은 여러가지 주변 장치(115)에 결합된 SCSI(Small Computer System Interface) 제어기와 같은 다수의 로컬 인터페이스 제어기(113)를 포함할 수 있다. 기억 장치, 통신 장치, 프린트 장치, 네트워킹 장치, 촬상(imaging) 장치 등과 같은 것도 시스템 기능과 특징을 보충하기 위해서 부가될 수 있다. 예컨대, 컴퓨터 시스템(100)은 기억 장치로서 RAID(Redundant Array of Inexpensive Drive)를 갖는 패스트 와이드(Fast Wide) SCSI 로컬 인터페이스 제어기를 구비한 서버 스테이션으로 이용될 수 있다.
도 2에는 예시적인 중앙 처리 장치(200)의 블록도가 도시되어 있다. CPU(200)는 내부 L1 명령 캐시 장치(205)로부터 명령어를 수신하는 명령어 처리 장치(201)를 포함한다. L1 명령어 캐시 장치(205)는 명령어 인출 제어기(203)에서의 처리를 위해 인출되는 다수의 명령어를 기억한다.
잘 알려져 있는 바와 같이, L1 명령어 캐시 장치(205)는 데이타 버스(235), 어드레스 버스(237), 및 제어 버스(239)로 구성된 CPU 버스(130)를 통해 명령어들을 수신 및 기억한다. CPU 로컬 버스는 CPU를 도 1에 도시된 L2 외부 캐시 및 시스템 메모리와 같은 외부 구성 요소와 인터페이스시키기 위한 CPU 인터페이스 장치(223)에 결합되어 이 장치(223)와 인터페이스한다. 데이타 버스(235)와 어드레스 버스(237)는 소정수의 비트로 구성된 소정폭을 갖는다. 데이타 및 어드레스 버스폭은 데이타 전송 능력과 CPU에 의한 시스템 메모리의 어드레스가능 영역의 크기를 특징짓는다. 따라서, 데이타 버스(235)는 예컨대 16비트, 32비트, 또는 64 비트폭으로 될 수 있고, 어드레스 버스는 16 내지 64 비트 어드레스폭이 될 수 있다. 그 중에서도 특히 명령어 처리 장치는 명령어 형태를 결정하여 이것을 하나 또는 그 이상의 실행 장치(221)로 적당하게 보낸다. 잘 알려져 있는 바와 같이, 수퍼 스칼라(super scalar) CPU는 다수의 업무를 동시에 실행하기 위한 다수의 실행 장치를 포함할 수 있다. 명령어에 따라서 실행 장치는 예컨대 그 명령어에 의해 공급된 오퍼랜드(operand) 데이타에 대한 수학적 연산, 또는 논리적 연산을 수행할 수 있다. 실행 장치는, L1 명령어 캐시와 유사하게 CPU 버스를 통해 수신된 데이타 또는 E-장치(217)로 부터 수신된 데이타를 기억하는 L1 데이타 캐시(207)로부터 필요한 데이타를 수신한다. CPU는 또한 명령어(300)에 의해 지시된 명령어 오퍼랜드, 임시 데이타, 및 인덱스를 잘 알려진 방식으로 기억하기 위한 AX-EX로 식별되는 범용 레지스터 집합을 포함한다. 명령어 처리 장치는 명령어(300)를 수신하면 이것을 처리하여 디코딩에 의한 명령어 형태를 결정한다. 명령어 디코딩은 명령어 디코더(209)에 의해서 수행된다. 명령어가 실행되면 E-장치는 CPU 인터페이스 장치(223)를 통해 데이타 버스(235), 어드레스 버스(237), 및/또는 제어 버스(239) 상에 신호를 적당하게 출력한다.
도 3에는 예시적인 명령어(300)의 형식도가 도시되어 있다. 도시된 명령어(300)는 인텔사에서 제공하는 X86 프로세서 플랫폼에서 사용되는 CISC(Complex Instruct Set Command) 명령어 형식과 호환성이 있는 형식을 갖는 CISC 명령어이다. 명령어(300)는 프리픽스(prefix)부(301), 실행 장치(221)에서 수행될 논리 또는 연산 명령을 정의하는 op 코드부(303), 어드레싱 모드 특정자 필드(305), 어드레스 변위 필드(307), 및 중간 데이타 필드(309)를 포함한다. 잘 알려진 바와 같이, CISC 명령어는 가변 길이를 가지며, 일부 op 코드는 모든 명령어 필드를 이용할 수는 없다. 그러므로, 인텔 CISC 명령어 형식과 그에 따른 프로그래밍은 당업계에 매우 잘 알려져 있으며, 본 명세서에서 참조로 내포된 인텔 i486 마이크로프로세서 프로그래머의 참고 매뉴얼에 더욱 완전히 정의되어 있다.
본 발명에 따라서 명령어 처리 장치(201)는 op 코드 앞에 있는 명령어 형태가 반복가능한 형태인지 여부를 검출하기 위한 명령어 형태 검출기(211)를 포함한다. 예컨대, 프리픽스부(301)이 반복 연산을 가리킨다면, 명령어 형태 검출기(211)는 그와 같은 반복 명령어 형태를 검출하는데 적합하다. E-장치(217)는 명령어 형태 검출(211)의 반복 가능한 명령어 형태 검출에 응답하여 검출된 명령어에 연관된 데이타가 캐시 내에 놓여지지 않을 것임을 나타내는 신호(215)를 발생시킨다. DNC(Does Not Cache) 표시기 신호(215)는 버스 인터페이스 장치(223)를 통해 CPU로부터 출력된다. CPU(103)는 검출된 반복 명령어들에 연관된 데이타에 대한 연산을 수행하기 위해 임시 기억 영역으로 이용되는 버퍼 세트(219)를 더 포함한다. 바람직한 실시예에서 버퍼 세트(219)는 그러한 2개의 버퍼로 구성되며, 버퍼 각각은 2개의 캐시 라인폭을 갖는다. 즉, 버퍼 세트(219)의 버퍼 각각의 폭은 캐시 라인 크기의 2배와 같다. 이 버퍼 크기가 반복 이동 명령어에 연관된 모든 데이타가 적절하게 기억되는 것을 보장해 준다.
DNC 신호는 캐셔블한(메모리 맵 I/O 등이 아님) 데이타나 명령어의 인출 또는 기억 동작에 이용되며 모든 캐시에 다음과 같은 방식으로 데이타를 취급하도록 단순하게 지시한다.
IF 데이타가 프로세서 내에 로드예정. AND DNC 신호가 설정됨.
THEN
IF 데이타가 현재 캐시 내에 있음.
THEN 데이타를 내포한 캐시 라인을 프로세서에 준다.
ELSE 데이타가 현재 캐시 내에 있지 않음.
DO
데이타의 캐시 라인을 인출한다.
데이타를 내포한 캐시 라인을 프로세서에 준다.
캐시 내에 캐시 라인을 기억시키지 않는다.
END
IF 프로세서로부터의 데이타가 기억 예정 AND DNC 신호가 설정됨
THEN
IF 데이타가 현재 캐시 내에 있음
THEN 캐시를 프로세서로부터의 데이타로 갱신함
ELSE 데이타가 현재 캐시 내에 있지 않음
DO
데이타를 내포한 캐시 라인을 출력한다.
캐시 내에 캐시 라인을 기억시키지도 캐시 갱신 시도도 하지 않는다.
END
IF DNC 신호가 설정 안됨
THEN 데이타가 REP 명령어에 관련되지 않는다.
반복(REP) 명령어는 명령어가 소정 횟수 자동으로 반복되는 명령어 부류이다. 명령이 재실행될 횟수는 명령이 CPU 내의 특정의 범용 레지스터(GPR)의 내용에 의해 실행되는 시기에 결정된다. 이 특정 GPR을 카운트 레지스터(CREG)라고 한다.
반복될 수 있는 명령어들은 다음과 같다.
<비교 문자열(CMPS)>
원시(source) 레지스터에 의해 지시된 메모리 어드레스에서 시작하는 문자열을 종착(destination) 레지스터에 의해 지시된 메모리 어드레스에서 시작하는 문자열과 비교한다. 명령어의 특정 op 코드에 따라서 비교는 바이트, 워드, 또는 2중 워드 단위로 될 수 있다. REP 동작에 있어서 원시 및 종착 어드레스가 증분되고, 그 다음 순서의 바이트, 워드, 또는 2중 워드가 비교된다. 이러한 동작은 CREG에 의해 지시된 횟수 만큼 반복된다.
<스캔 문자열(SCAS)>
원시 레지스터의 내용을 종착 레지스터에 의해 지시된 메모리 어드레스에서 시작하는 문자열과 비교한다. 명령어의 특정 op 코드에 따라서 비교는 바이트, 워드, 또는 2중 워드 단위로 될 수 있다. REP 동작에 있어서 종착 어드레스는 증분되고, 그 다음 순서의 바이트, 워드, 또는 2중 워드가 비교된다. 이 동작은 CREG에 의해 지시된 횟수 만큼 반복된다.
<기억 문자열(STDS)>
원시 레지스터의 내용을 종착 레지스터에 의해 지시된 메모리 어드레스에 기억시킨다. 명령어의 특정 op 코드에 따라서 기억은 바이트, 워드, 또는 2중 워드 단위로 될 수 있다. REP 동작에 있어서 종착 어드레스가 증분되고, 원시 레지스터의 내용은 메모리의 그 다음 순서의 바이트, 워드, 또는 2중 워드 어드레스에 기억된다. 동작은 CREG에 의해 지시된 횟수 만큼 반복된다.
<CPU 문자열(OUTS)>
원시 레지스터에 의해 지시된 메모리 위치의 내용을 종착 레지스터에 의해 지시된 I/O 포트 어드레스에 기억시킨다. 명령어의 특정 op 코드에 따라서 기억은 바이트, 워드, 또는 2중 워드 단위로 될 수 있다. REP 동작에 있어서 원시 어드레스가 증분되고, 메모리의 그 다음 순서의 바이트, 워드, 또는 2중 워드가 종착 레지스터에 의해 도시된 I/O 포트 어드레스에 기억된다. 동작은 CREG에 의해 지시된 횟수만큼 반복된다.
<IN 문자열(INS)>
원시 레지스터에 의해 지시된 I/O 포트 어드레스로부터 종착 레지스터에 의해 지시된 메모리 위치로 데이타를 로드시킨다. 명령어의 특성 op 코드에 따라서 기억은 바이트, 워드, 또는 2중 워드 단위로 될 수 있다. REP 동작에 있어서 종착 어드레스가 증분된다. 동작은 CREG에 의해 지시된 횟수만큼 반복된다.
<MOVE 문자열(MOVS)>
원시 내용에 의해 지시된 메모리 위치에 있는 데이타를 종착 위치에 의해 지시된 메모리 위치로 이동시킨다. 명령어의 특정 op 코드에 따라서 기억은 바이트, 워드, 또는 2중 워드 단위로 될 수 있다. REP 동작에 있어서 원시 및 종착 어드레스가 증분되고, 그 다음 순서의 메모리의 바이트, 워드 또는 2중 워드가 이동된다. 동작은 CREG에 의해 지시된 횟수만큼 반복된다.
상기 정의된 REP 명령에 각각에 대한 본 발명의 의사(pseudo) 코드 구현에 대해 설명한다.
먼저, 다음의 동작 모두에 대해서, 반복될 명령어를 실행시키기 전에 반복 동작의 실행 횟수를 CREG에 로드시켰다. 다음의 동작 모두에 있어서 2개의 버퍼(219)를 A 버퍼와 B 버퍼로 참조 부호를 붙인다.
REP CMPS
실행 장치의 버퍼들을 체크한다.
IF 요구되는 데이타가 현재 이들 버퍼에 있음
THEN
캐시에 액세스할 필요가 없음
ELSE
DO
실행 장치에서 데이타 읽기 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 A 버퍼 내에 로드시키고, 이 로드가 완료되면 DNC 신호를 리세트시킨다. 실행 장치에서 제2 데이타 읽기 요구를 발생시킨다. DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 B 버퍼 내에 로드시키고, 이 로드가 완료되면 DNC 신호를 리세트시킨다.
END
비교 동작을 실행한다.
CREG를 증분시키고, 만일 0이 아니면 그 동작을 반복한다.
REP SCAS
실행 장치의 버퍼를 체크한다.
IF 요구되는 데이타가 현재 버퍼 내에 있음
THEN 캐시에 액세스할 필요가 없음
ELSE
DO
실행 장치에서 데이타 읽기 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 A 버퍼 내에 로드시킨다.
WHEN 로드가 완료됨
THEN DNC 신호를 리세트시킨다.
END
스캔 동작을 실행한다.
CREG를 증분시키고, 만일 0이 아니라면 그 동작을 반복한다.
REP LODS
실행 장치의 A 버퍼를 체크한다.
IF 요구되는 데이타가 현재 버퍼 내에 있음
THEN 캐시에 액세스할 필요가 없음
ELSE
DO
실행 장치에서 데이타 읽기 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 A 버퍼 내에 로드시키고, 이 로드가 완료되면 DNC 신호를 리세트시킨다.
END
로드 동작을 실행한다.
CREG를 증분시키고, 만일 0이 아니라면 그 동작을 반복한다.
REP STDS
실행 장치에서 데이타 기억을 발생시킨다.
DNC 신호를 세트시킨다.
기억이 완료되면 DNC 신호를 리세트시킨다.
CREG를 증분시키고, 만일 0이 아니라면 그 동작을 반복한다.
REP QUTS
IF 요구되는 데이타가 현재 A 버퍼 내에 없음
THEN
DO
실행 장치에서 데이타 읽기 요구를 발생시킨다.
DNC 신호를 세트시킨다.
기억이 완료되면 DNC 신호를 리세트시킨다.
END
데이타를 포트로 보낸다.
CREG를 증분시키고, 만일 0이 아니라면 그 동작을 반복한다.
REP INS
IF 이것이 반복 동작 전체를 통해서 첫번째임
THEN
DO
실행 장치에서 데이타 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 A 버퍼에 로드시킨다.
로드가 완료되면 DNC 신호를 리세트시킨다.
END
ELSE 이것이 반복 동작 전체를 통해서 첫번째가 아님
THEN
DO
IF 요구되는 데이타 위치가 현재 A 버퍼에 있지 않음
THEN
DO
A 버퍼의 데이타 기억을 발생시킨다.
DNC 신호를 세트시킨다.
데이타 기억이 완료되면 DNC 신호를 리세트시킨다. 실행 장치에서 데이타 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 A 버퍼 내에 로드시킨다. 로드가 완료되면 DNC 신호를 리세트시킨다.
END
A 버퍼에서 B 버퍼로 데이타를 이동시킨다.
END
CREG를 증분시키고, 만일 0이 아니라면 그 동작을 반복한다.
CREG가 0이면 실행 장치에서 A 버퍼의 데이타 기억을 발생시키는 때에 REG IN을 완료시킨다.
동시에 DNC 신호를 세트시킨다. 기억이 완료되면 DNC 신호를 리세트시킨다. 포트로부터 A 버퍼로 데이타를 로드시킨다.
REP MOVS
실행 장치의 A 버퍼를 체크한다.
IF 요구되는 데이타가 현재 버퍼 내에 있음
THEN 캐시에 액세할 필요가 없음
ELSE
DO
실행 장치에서 데이타 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 A 버퍼 내에 로드시킨다. 로드가 완료되면 DNC 신호를 리세트시킨다. 실행 장치의 B 버퍼를 체크한다.
END
IF 요구되는 기억 장치가 현재 B 버퍼 내에 있음
THEN
DO
캐시에 액세할 필요가 없음
A 버퍼에서 B 버퍼로 데이타를 이동시킨다.
END
ELSE
IF 이것이 반복 동작 전체를 통해서 첫번째임
THEN
DO
실행 장치에서 데이타 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 A 버퍼 내로 로드시킨다.
WHEN 로드가 완료됨
THEN DNC 신호를 리세트시킨다.
END
ELSE 이것이 반복 동작 전체를 통해 첫번째가 아님
DO
B 버퍼의 데이타 기억을 발생시킨다.
DNC 신호를 세트시킨다.
데이타 기억이 완료되면 DNC 신호를 리세트시킨다. 실행 장치에서 데이타 요구를 발생시킨다.
DNC 신호를 세트시킨다.
데이타의 캐시 라인량을 B 버퍼내에 로드시킨다.
WHEN 로드가 완료됨
THEN
DO
DNC 신호를 리세트시킨다.
A 버퍼에서 B 버퍼로 데이타를 이동시킨다.
END
END
CREG를 증분시킨다.
IF 0이 아니면 그 동작을 반복함
CREG가 0이면 실행 장치에서 B 버퍼의 데이타 기억을 발생시키는 때에 REP MOVS를 완료시킨다. 동시에 DNC 신호를 세트시킨다. 기억이 완료되면 DNC 신호를 리세트시킨다.
본 발명은 반복 명령이 캐시(또는 다수 레벨의 CPU 캐시를 갖는 시스템용 캐시)에 충격을 가하는 것을 방지함으로써 반복 명령 중에 캐시가 제거되는 문제를 극복한다는 점을 잘 알 수 있을 것이다. DNC(Does Not Cache) 신호는 데이타가 전송될 때 그 데이타는 마치 캐시 가능한 것처럼 다루어진다는 점에서 특이하다. 데이타는 한번에 한 캐시 라인씩 전송된다. 그러나, DNC 신호가 세트되면 시스템 내의 데이타 응집(data coherency) 유지와 일치하는 캐시 내로 데이타가 로드되거나 기억되지 않을 것이다.
상술한 바와 같이, 본 발명은 DNC(Does Not Cache)로 불리는 새로운 신호를 이용함으로써 이것을 달성한다. DNC는 이러한 요구에 연관된 데이타가 캐시 내에 놓여지지 않는다는 점을 제외하고는 정상적인 캐시 액세스로서 다루어지는 캐시에 대한 표시기이다. 이것은 논 캐셔블(non-cacheable)한 요구와는 다른 것이다. 논 캐셔블 데이타는 캐시 내에 놓여져서 안되는 데이타이다. 메모리 맵 I/O는 이러한 데이타의 일례이다. 논 캐셔블 데이타는 통상적으로 시스템에 의해 다양하게 취급된다. 통상적으로 논 캐셔블 데이타가 인출될 때 이것은 캐시 라인으로서 인출되지 않는다. 또한, 논 캐셔블 데이타는 통상적으로 캐시 스누핑(snooping)에 관하여 다양하게 취급된다. 본 발명에 따라서 모든 반복 명령어 형태는 논 캐셔블한 것으로 지정된다. 즉, 이러한 명령어 형태에 연관된 데이타는 논 캐셔블이다. 이러한 지정은 가치있는 캐시 데이타를 폐기해 버리고 그 자리에 반복 이동 명령어에 포함된 무용한 데이타로 교체되는 것을 막기 위한 것이었다. 대신에 반복 명령어 형태에 연관된 데이타를 기억시키기 위하여 버퍼(219) 세트를 임시 기억 공간으로 이용한다. 그 자체로서 버퍼 각각은 CPU 버스의 다수의 데이타 폭과 동일한 폭을 갖도록 설계된다.

Claims (6)

  1. 연산 처리 장치(processor)에 있어서,
    연관된 캐시 라인 크기를 가지며, 명령어 및 연관된 데이타를 저장하기 위한 캐시(cache);
    캐셔블 반복 명령어를 검출하기 위한 명령어 유형 검출기 ―상기 반복 명령어는 소정의 회수만큼 자동으로 반복되는 명령어 부류의 하나임―; 및
    상기 명령어 유형 검출기에 의한 캐셔블 반복 명령어의 검출에 응답하여 캐시불허(Do-Not-Cache, DNC) 신호를 발생시키기 위한 실행 장치 ―상기 캐셔블 반복 명령어에 연관된 데이타는 상기 DNC 신호에 응답하여 캐시되지 않음―
    를 포함하는 연산 처리 장치.
  2. 제1항에 있어서, 상기 DNC 신호에 응답하여 적어도 하나의 캐시 라인을 저장할 수 있는 적어도 하나의 버퍼를 더 포함하며, 상기 캐셔블 반복 명령어에 연관된 데이타는 상기 캐셔블 반복 명령어의 실행 동안에 상기 실행 장치가 사용할 수 있도록 상기 버퍼 내에 저장되는 연산 처리 장치.
  3. 제1항 또는 제2항에 있어서, 상기 캐셔블 반복 명령어는, 스트링 비교(compare string), 스트링 스캔(scan string), 스트링 로드(load string), 스트링 저장(store string), 스트링 아웃(out string), 스트링 인(in string), 및 스트링 이동(move string)과 같은 명령어중 적어도 하나를 포함하는 처리 장치.
  4. 정보 처리 시스템에 있어서,
    연관된 캐시 라인 크기를 가지며, 명령어 및 연관된 데이타를 저장하기 위한 제1 캐시;
    캐셔블 반복 명령어를 검출하기 위한 명령어 유형 검출기 ―상기 반복 명령어는 소정의 회수만큼 자동으로 반복되는 명령어 부류의 하나임―;
    상기 명령어 유형 검출기에 의한 캐셔블 반복 명령어의 검출에 응답하여 캐시불허(Do-Not-Cache, DNC) 신호를 발생시키기 위한 실행 장치 ―상기 캐셔블 반복 명령어에 연관된 데이타는 상기 DNC 신호에 응답하여 캐시되지 않음―;
    명령 및 연관된 데이타를 저장하기 위한 제2 캐시; 및
    상기 제2 캐시 내의 명령어 및 연관된 데이타의 캐싱을 제어하며, 상기 DNC 신호에 응답하여 캐셔블 반복 명령어에 연관된 데이타의 상기 제2 캐시 내에서의 캐싱을 금지하는 캐시 제어기
    를 포함하는 정보 처리 시스템.
  5. 제4항에 있어서, 상기 DNC 신호에 응답하여 적어도 하나의 캐시 라인을 저장할 수 있는 적어도 하나의 버퍼를 더 포함하며, 상기 캐셔블 반복 명령어에 연관된 데이타는 상기 캐셔블 반복 명령어의 실행 동안에 상기 실행 장치가 사용할 수 있도록 상기 버퍼 내에 저장되는 정보 처리 시스템.
  6. 제4항 또는 제5항에 있어서, 상기 캐셔블 반복 명령어는, 스트링 비교(compare string), 스트링 스캔(scan string), 스트링 로드(load string), 스트링 저장(store string), 스트링 아웃(out string), 스트링 인(in string), 및 스트링 이동(move string)과 같은 명령어중 적어도 하나를 포함하는 정보 처리 시스템.
KR1019960044102A 1995-12-13 1996-10-05 논캐셔블반복연산명령을갖는중앙처리장치 KR100266886B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/572,233 1995-12-13
US8/572,233 1995-12-13
US08/572,233 US5745728A (en) 1995-12-13 1995-12-13 Process or renders repeat operation instructions non-cacheable

Publications (2)

Publication Number Publication Date
KR970049498A KR970049498A (ko) 1997-07-29
KR100266886B1 true KR100266886B1 (ko) 2000-09-15

Family

ID=24286921

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960044102A KR100266886B1 (ko) 1995-12-13 1996-10-05 논캐셔블반복연산명령을갖는중앙처리장치

Country Status (5)

Country Link
US (1) US5745728A (ko)
EP (1) EP0779581B1 (ko)
JP (1) JP3609552B2 (ko)
KR (1) KR100266886B1 (ko)
DE (1) DE69611510T2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173368B1 (en) * 1995-12-18 2001-01-09 Texas Instruments Incorporated Class categorized storage circuit for storing non-cacheable data until receipt of a corresponding terminate signal
US5905857A (en) * 1996-12-03 1999-05-18 Bull Hn Information Systems Inc. Safestore procedure for efficient recovery following a fault during execution of an iterative execution instruction
US6041351A (en) * 1997-04-17 2000-03-21 Newmoon.Com Network traffic by instruction packet size reduction
US6151662A (en) * 1997-12-02 2000-11-21 Advanced Micro Devices, Inc. Data transaction typing for improved caching and prefetching characteristics
US6275904B1 (en) 1998-03-31 2001-08-14 Intel Corporation Cache pollution avoidance instructions
US6272599B1 (en) * 1998-10-30 2001-08-07 Lucent Technologies Inc. Cache structure and method for improving worst case execution time
US7702800B2 (en) 2000-12-18 2010-04-20 International Business Machines Corporation Detecting and handling affinity breaks in web applications
US6807606B2 (en) 2000-12-18 2004-10-19 International Business Machines Corp. Distributed execution coordination for web caching with dynamic content
US20020111992A1 (en) * 2000-12-18 2002-08-15 Copeland George P. JSP composition in a cache for web applications with dynamic content
US6823360B2 (en) * 2000-12-18 2004-11-23 International Business Machines Corp. Cofetching in a command cache
US6877025B2 (en) * 2000-12-18 2005-04-05 International Business Machines Corp. Integrated JSP and command cache for web applications with dynamic content
JP4822598B2 (ja) * 2001-03-21 2011-11-24 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置およびそれを含むデータ処理装置
US6954826B2 (en) * 2003-05-21 2005-10-11 Freescale Semiconductor, Inc. Read access and storage circuitry read allocation applicable to a cache
US7930484B2 (en) * 2005-02-07 2011-04-19 Advanced Micro Devices, Inc. System for restricted cache access during data transfers and method thereof
US8230175B1 (en) * 2005-08-09 2012-07-24 Hewlett-Packard Development Company, L.P. Data throughput optimization of a storage device having sequential data access
AU2007258592B2 (en) 2006-06-06 2012-10-25 Cook Incorporated Stent with a crush-resistant zone
US8606998B2 (en) 2006-08-24 2013-12-10 Advanced Micro Devices, Inc. System and method for instruction-based cache allocation policies
WO2008057557A2 (en) * 2006-11-06 2008-05-15 Rambus Inc. Memory system supporting nonvolatile physical memory
JP2009093559A (ja) * 2007-10-11 2009-04-30 Nec Corp プロセッサ、情報処理装置、プロセッサのキャッシュ制御方法
EP2696289B1 (en) 2011-04-07 2016-12-07 Fujitsu Limited Information processing device, parallel computer system, and computation processing device control method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0405318A2 (en) * 1989-06-20 1991-01-02 Nec Corporation Microprocessor having cash bypass signal terminal

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
JPH0630075B2 (ja) * 1984-08-31 1994-04-20 株式会社日立製作所 キャッシュメモリを有するデータ処理装置
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
DE69130495T2 (de) * 1990-06-29 1999-06-24 Digital Equipment Corp., Maynard, Mass. Umwandlung der Befehle von internen Prozessorregistern in I/O-Adressraum
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5226138A (en) * 1990-11-27 1993-07-06 Sun Microsystems, Inc. Method for selectively transferring data instructions to a cache memory
US5301295A (en) * 1991-05-22 1994-04-05 Analog Devices, Inc. Data processor apparatus and method with selective caching of instructions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0405318A2 (en) * 1989-06-20 1991-01-02 Nec Corporation Microprocessor having cash bypass signal terminal

Also Published As

Publication number Publication date
US5745728A (en) 1998-04-28
EP0779581B1 (en) 2001-01-10
DE69611510D1 (de) 2001-02-15
JP3609552B2 (ja) 2005-01-12
EP0779581A3 (en) 1997-07-02
KR970049498A (ko) 1997-07-29
DE69611510T2 (de) 2001-06-13
JPH09179782A (ja) 1997-07-11
EP0779581A2 (en) 1997-06-18

Similar Documents

Publication Publication Date Title
KR100266886B1 (ko) 논캐셔블반복연산명령을갖는중앙처리장치
EP0803817B1 (en) A computer system having cache prefetching capability based on CPU request types
US5375216A (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
US6247107B1 (en) Chipset configured to perform data-directed prefetching
US5524233A (en) Method and apparatus for controlling an external cache memory wherein the cache controller is responsive to an interagent communication for performing cache control operations
CA1325283C (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
US6321326B1 (en) Prefetch instruction specifying destination functional unit and read/write access mode
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
EP0463975B1 (en) Byte-compare operation for high-performance processor
US6807616B1 (en) Memory address checking in a proccesor that support both a segmented and a unsegmented address space
EP0097790B1 (en) Apparatus for controlling storage access in a multilevel storage system
EP0463977B1 (en) Branching in a pipelined processor
US5019965A (en) Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US8046568B2 (en) Microprocessor with integrated high speed memory
US7139909B2 (en) Technique for system initial program load or boot-up of electronic devices and systems
US5671231A (en) Method and apparatus for performing cache snoop testing on a cache system
US6938127B2 (en) Reconfiguring memory to reduce boot time
JPH0997230A (ja) データ転送方法及びシステム
US5835972A (en) Method and apparatus for optimization of data writes
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
US6973541B1 (en) System and method for initializing memory within a data processing system
KR20010049340A (ko) 변환 장치의 엔트리를 무효로 하는 시스템 및 방법
EP0156307A2 (en) Pipelined processor having dual cache memories
US6336160B1 (en) Method and system for dividing a computer processor register into sectors and storing frequently used values therein
JP2501001B2 (ja) 仮想アドレス変換装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee