KR100342802B1 - L1 데이타 캐시 패러티 에러 복구 메카니즘 - Google Patents

L1 데이타 캐시 패러티 에러 복구 메카니즘 Download PDF

Info

Publication number
KR100342802B1
KR100342802B1 KR1019990013417A KR19990013417A KR100342802B1 KR 100342802 B1 KR100342802 B1 KR 100342802B1 KR 1019990013417 A KR1019990013417 A KR 1019990013417A KR 19990013417 A KR19990013417 A KR 19990013417A KR 100342802 B1 KR100342802 B1 KR 100342802B1
Authority
KR
South Korea
Prior art keywords
cache
error
data storage
processor
instructions
Prior art date
Application number
KR1019990013417A
Other languages
English (en)
Other versions
KR19990087932A (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 KR19990087932A publication Critical patent/KR19990087932A/ko
Application granted granted Critical
Publication of KR100342802B1 publication Critical patent/KR100342802B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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

Abstract

본 발명은 인터럽트 서비스 특히, 데이타 기억 인터럽트와 같은 비관련된 시스템 리소스를 이용하여 에러를 보고함에 의해 소프트웨어적인 복구를 가능하게 하는 (패러티 에러와 같은) 캐시 에러를 처리하는 방법에 관한 것이다. 패러티 에러는 데이타 기억 인터럽트를 발생시키고 데이타 기억 인터럽트 상태 레지스터(DSISR)를 이용함에 의해 보고될 수 있어서 데이타 기억 인터럽트가 패러티 에러의 결과임을 표시한다. 프로세서의 콘텍스트는 패러티 에러를 처리하면서 완전 동기화될 수 있다.

Description

L1 데이타 캐시 패러티 에러 복구 메카니즘{RECOVERY MECHANISM FOR L1 DATA CACHE PARITY ERRORS}
본 발명은 일반적으로 컴퓨터 시스템에 관한 것으로, 특히 프로그램 명령 수행 동안 발생하는 패러티 에러와 같은 검출된 에러를 머신 체크 즉, 시스템을 '리부팅'하지 않고도 소프트웨어적으로 복구할 수 있는 방식의 컴퓨터 시스템 연산 방법에 관한 것이며, 특히 제1 레벨 데이타 캐시에서 발생하는 패러티 에러에 대해 적합한 방법에 관한 것이다.
종래의 컴퓨터 시스템의 일반적인 구조는 시스템 메모리 디바이스(랜덤 억세스 메모리 또는 RAM) 및 다양한 주변 장치, 또는 입력/출력(I/O), 디스플레이 모니터, 키보드, 그래픽 포인터(마우스)등과 같은 장치, 및 영구 기억 디바이스(하드 디스크)에 접속된 하나 또는 그 이상의 프로세싱 유닛을 포함한다. 시스템 메모리 디바이스는 프로세싱 유닛에 의해 프로그램 명령을 수행하는데 이용되고, 프로그램에 입력되거나 프로그램에 의해 발생된 데이타 값 외에 이들 명령을 기억한다. 프로세싱 유닛은 일반화된 내부 결선 또는 버스 또는 다이렉트 메모리-억세스 채널을 포함하는 다양한 수단에 의해 주변 디바이스들과 통신한다. 컴퓨터 시스템은 모뎀, 프린터, 및 네트워크 어뎁터 등으로의 접속을 위한 직렬 및 병렬 포트와 같은 많은 부가 구성 요소를 가질 수 있다. 다른 구성 요소들이 상술한 것들과 결부하여 이용될 수 있다. 예를 들면, 디스플레이 어뎁터는 비디오 디스플레이 모니터를제어하는데 이용되고, 메모리 제어기는 시스템 메모리 등에 억세스하는데 이용될 수 있다.
종래의 프로세싱 유닛은 명령을 적절한 실행 유닛으로 전송하는 브랜치 및 디스패치 유닛외에도 다양한 실행 유닛 및 레지스터를 갖는 프로세서 코어를 포함한다. 캐시는 명령 및 데이타를 위해 공통적으로 제공되어 시스템 메모리(RAM)로부터의 값들을 로딩하는 상대적으로 긴 값을 회피함에 의해 프로세싱을 가속시키도록 프로세서에 의해 반복적으로 억세스될 값들을 일시적으로 기억한다. 이러한 캐시는 단일 집적 칩 상의 프로세서 코어와 일체로 패키징되는 경우 '온-보드'로 칭한다. 각각의 캐시는 프로세서 코어와 캐시 메모리 사이의 값들의 전송을 관리하는 캐시 제어기 또는 버스 인터페이스 유닛과 관련된다.
프로세싱 유닛은 온-보드(레벨 1) 캐시를 지원하는 레벨 2(L2) 캐시와 같은 부가 캐시를 포함한다. 다시 말하면, L2 캐시는 시스템 메모리와 온-보드 캐시 사이의 중간체로서의 역할을 하며, 온-보드 캐시보다 억세스 시간이 더 긴 대신에 더 많은 양의 정보(명령 및 데이타)를 기억할 수 있다. 멀티-레벨 캐시 계층 구조는 내부 결선 캐시 레벨이 많은 경우에 제공될 수 있다.
종래의 시스템 아키텍쳐는 도 1에 도시되며, 인터네셔널 비즈니스 머신 코포레이션(IBM-본 출원의 양수인)에서 시판중인 PowerPCTM를 예로 들 수 있다. 컴퓨터 시스템(10)은 프로세싱 유닛(12a), 다양한 I/O 디바이스(14), RAM(16), 및 주 목적이 컴퓨터가 초기 턴 온될 때마다 주변 장치 중 하나로부터 운영 시스템을 검색하고 로드하는 것인 펌웨어(18)를 포함한다. 프로세싱 유닛(12a)은 시스템 버스(20)를 이용하여 주변 디바이스와 통신한다(로컬 주변 버스(즉, PCI)는 시스템 버스와 결부하여 이용될 수 있음). 프로세싱 유닛(12a)은 프로세서 코어(22) 및 고속 메모리 디바이스를 이용하여 이행되는 명령 캐시(24) 및 데이타 캐시(26)를 포함하며, 단일 집적 칩(28) 상의 프로세서 코어와 함께 집적 페키징된다.
캐시(30: L2)는 프로세서 버스(32)를 통해 캐시(24 및 26)를 지원한다. 예를 들면, 캐시(30)는 256 또는 512 킬로바이트의 기억 용량을 가지는 칩을 수 있고, 프로세서는 총 64 킬로바이트의 기억 용량을 갖는 온-보드 캐시를 갖는 PowerPCTM604-계열 프로세서일 수 있다. 캐시(30)는 버스(20)에 접속되고, 메모리(16)로부터 프로세서 코어(22)로의 모든 로딩 연산이 캐시(30)를 통과하여야 한다. 하나 이상의 프로세서가 프로세싱 유닛(12b)로 표시된 것처럼 제공될 수 있다.
0 또는 1의 값을 갖는 비트(2진수)를 이용하여 컴퓨터내에 값들이 기억된다. 주어진 캐시 블록내의 비트는 소프트 에러(예를 들면 스트레이 조사 또는 정전기 방전에 의해 야기되는 랜덤, 과도 조건) 또는 하드 에러(예를 들면 결함 셀에 의해 야기되는 영구 조건)로 인한 부정확한 값을 포함할 수 있다. 에러의 한 통상적 요인은 회로 리드(lead)와의 배선 본딩을 형성하기 위해 이용되는 땜납(C4) 범프내의 리드에 의해 방출되는 알파 방사(alpha radiation)의 결과인 소프트 에러이다. 대부분의 에러는 단일-비트 에러로서, 즉 필드내의 한 비트만이 부정확하다.
데이타 캐시(26)에서와 같은 캐시 블록이 (예를 들면, 에러-보정 코드로서는 보정될 수 없는) 에러를 갖는 경우, 데이타 캐시(26)는 프로세서 코어(22)에 패러티 에러를 통지한다. 패러티 에러는 검출될 수 있지만, 현재는 컴퓨터의 운영 시스템이 오펜딩 명령(offending instruction)을 식별하고 콘텍스트 동기화(context synchronization)를 제공하도록 하는 어떤 메카니즘도 없다. 결과적으로, 많은 시스템에서 정의된 소프트웨어적인 복구 메카니즘이 없고, 모든 패러티 에러는 머신 검사 즉, 시스템의 리부팅으로 귀결된다. '리부팅'은 대부분의 기본 프로그램 명령 즉, 운영 시스템을 리로딩함에 의한 컴퓨터 시스템의 재시작에 관한 것이고, 이는 많은 시간을 낭비하는 것이다. 이러한 제약은 불편함만을 주는 것이 아니라 파일 또는 데이타가 손실될 수 있으므로 심각한 정성적 문제점을 제시한다. 그러므로, 예를 들면 L1 데이타 캐시 패러티 에러로부터 소프트웨어적인 복구를 가능하게 하는 방법을 고안하는 것이 바람직하다. 다중 소프트웨어 복구 방식을 가능하게 하기 위해서 완전 콘텍스트 동기화를 가능하게 한다면 더욱 이득적일 것이다.
본 발명의 목적은 캐시 메모리를 포함하는 프로세서를 갖는 개선된 컴퓨터 시스템을 제공하는 것이다.
본 발명의 다른 목적은 패러티 에러와 같은 캐시 에러의 소프트웨어 복구를 가능하게 하는 개선된 컴퓨터 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 불량의 악영향을 감소하기 위해 콘텍스트 동기화를 가능하게 하는 캐시 패러티 에러에 대한 복구 메카니즘을 제공하는 것이다.
상술한 목적들은 컴퓨터 시스템내의 캐시 패러티 에러를 처리하는 방법으로 달성되는데, 일반적으로 이 방법은 캐시 패러티 에러의 정의된 조건의 발생시 컴퓨터 시스템의 프로세서의 현재 연산을 중지하기 위한 인터럽트 서비스를 구성하는 단계, 프로세서와 관련된 캐시의 패러티 에러를 검출하는 단계, 및 인터럽트 서비스를 이용하여 프로세서에 패러티 에러를 보고하는 단계를 포함한다. 본 발명은 또한 기억 명령으로부터 발생된 캐시 패러티 에러를 처리하는데 이용될 수 있지만, 상술한 이행은 로드(load) 명령으로부터 발생된 온-보드(L1) 캐시 패러티 에러를 처리하는데 적합하다. 양호한 실시예에서, 패러티 에러는 데이타 기억 인터럽트를 발생하고 데이타 기억 인터럽트가 패러티 에러의 결과임을 표시하도록 데이타 기억 인터럽트 상태 레지스터(DSISR)를 이용함에 의해 보고된다.
본 발명은 프로세서 콘텍스트의 동기화를 가능하도록 한다. 프로세서의 머신 상태 레지스터(기억/복구 레지스터 중 하나)는 완료 직전 명령 이전의 모든 명령이 이미 수행을 완료했고, 완료 직전 명령 다음에 어떠한 명령도 수행을 시작하지 않았음에 대한 완료 직전 명령에 대한 포인터를 유지하는데 이용된다. 대응하는 캐시 블록의 플러시(flush)는 데이타 기억 인터럽트에 응답하여 수행된다.
상술한 것 외의 본 발명의 부가 목적, 특징, 및 이점은 아래의 상세한 설명에서 명확해 질 것이다.
도 1은 종래 기술의 멀티프로세서 컴퓨터 시스템의 블록도.
도 2는 본 발명에 따라 L1 데이타 캐시 패러티 에러를 데이타 기억 인터럽트로 변환하는데 이용될 수 있는 프로세서 로직의 일 실시예의 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
102 : 브랜치 유닛
104 : 디스페치 유닛
106 : SRR0
108 : 로드/기억 유닛
110 : 어드레스 파이프라인
112 : L1 캐시 룩업
114 : 버스 인터페이스
116 : 멀티플렉서
118 : PREDAR
120 : 패러티 검사 회로
122 : DAR
124 : 상태 비트
본 발명의 특징으로 간주되는 신규한 특징이 첨부된 청구 범위에 개시된다. 그러나, 실시예의 아래의 상세한 설명을 참조로 첨부된 도면과 결부되어 숙독될 경우 양호한 실시예외에도 발명 자체, 목적 및 그 이점이 잘 이해될 것이다.
본 발명은 검출된 캐시 에러로부터 소프트웨어 복구를 가능하게 하는 방법에 관한 것이다. 후술되는 이행에 있어서, 본 발명은 로드 명령으로부터 발생된 L1 데이타 패러티 에러를 AIX 운영 시스템과 같은 컴퓨터의 운영 시스템(AIX는 IBM의 등록 상표임)에 가시화 되도록 하는 메카니즘을 제공한다. 소프트웨어 복구는 인터럽트 특히 명령에 대한 L1 패러티 에러에 응답하는 데이타 기억 인터럽트(DSI)를 시뮬레이팅함에 의해 가능하다.
인터럽트는 컴퓨터에서 다양한 디바이스가 서비스를 요청하기 위하여 컴퓨터 프로세서의 주목을 얻게 하거나 또는 문제를 리포트하는데 이용된다. 프로세서가 인터럽트를 수신하는 경우, 통상적으로 현재의 연산을 중지하고, 그 작업의 상태를 보존한 다음(프로세서 '콘텍스트' 형태로), 제어를 인터럽트 핸들러로 공지된 특수 루틴으로 전송한다. 인터럽트 핸들러는 인터럽트를 유발하는 특정 조건을 처리하기 위한 명령을 포함한다. 메모리내의 기억된 테이블은 인터럽트 핸들러를 보완하는 다양한 명령의 어드레스를 제공하는 포인터(벡터)를 포함한다. 주변 디바이스에 의해 발생된 외부 인터럽트 외에도, 프로세서 자체로도 (나누기 연산 동안 0으로 나누는 것과 같은 시도로 인한)프로그램 에러에 응답하여 내부 인터럽트를 발생시키거나 또는 운영 시스템 서비스를 요청할 수 있다. 동시적인 인터럽트 요청의 처리를 제어하기 위해서 상이한 인터럽트에 상이한 우선순위가 할당될 수 있다. 컴퓨터의 내부 하드웨어로서 실장된 인터럽트 요청 라인이 CPU에 인터럽트를 전송하는데 이용된다.
DSI이 이용은 의무적이지는 않으며, 당업자라면 특정 컴퓨터 아키텍쳐에 따라 다른 리소스(소프트웨어에 의해 억세스 가능한 시스템 비트)도 이용될 수 있음을 인지할 것이다. 인터럽트가 실제로는 패러티 에러의 결과임을 표시하는데 이용될 수 있는 부가 비트(DSISR의 비트 7 및 8은 스페어이고, 일반적으로 0으로 세트됨)를 데이타 기억 인터럽트 상태 레지스터(DSISR)가 가지므로 데이타 기억 인터럽트를 패러티 에러를 보고하는데 이용하는 것이 보통이다.
패러티 에러를 인터럽트로 변환시키는 것은 양호하게는 한 스테이지에서 달성되어 모든 레지스터는 임의의 추가 로직없이 적절히 세트되어 완전 콘텍스트 동기화를 구현하게 된다. 동기화는 모든 명령의 상태 및 데이타 값이 프로세서내에서 실행중인 특정 프로세스에 대해서만 유효함을 나타낸다(이는 많은 명령이 동시에 디스페치될 수 있는 수퍼스칼라 프로세서에 있어서는 중대한 문제이다). 그러한 동기화는 소프트웨어 복구 구조의 리치 셋(rich set)을 가능하게 하므로 중요하나, 동기화는 본 발명에서 필수적이진 않다. 다른 메카니즘은 콘텍스트 동기화를 제공하지 않을 수도 있다.
이에 관해서, 본 발명이 DSI 조건이 검출된 이후의 완전한 콘텍스트 동기화에 대해 글로벌 플러시를 수행하는 시스템(PowerPCTM630fp 프로세서)에서 구현될 수 있으므로 DSI의 사용이 특히 용이하다. 일반 머신 검사 경로가 디스에이블되고 패러티 에러가 DSI로 변환되는 경우, 동일한 콘텍스트 동기화가 임의의 불이익(penalty) 없이 즉, 다른 부가 하드웨어 없이 패러티 에러에 대해 달성될 수있다. 일반적으로, 아래의 요구 사항을 만족하는 경우 패러티 에러 이벤트는 콘텍스트 동기화될 것이다. (1) 연산이 명령 디스페칭을 중지하게 함; (2) 이미 실행 중인 모든 명령에 대해 발생될 모든 예외를 보고한 후에 로드 연산이 완료됨; (3) 부하 동작에 우선하는 명령이 초기화될 카테고리(특권(privilege), 재배치(relocation), 기억 보호 등)의 실행을 완료함; 및 (4) 확실치 않은(speculative) 페치 및 실행의 모든 영향이 폐기되고, 컬프리트(culprit) 로드 연산 다음 명령들이 연산에 의해 설정된 콘텍스트에서 패치되고 실행됨.
양호한 실행에 따르면, 인터럽트가 발생하는 경우, 저장/복구 레지스터 제로(SRR0)로 칭하는 머신 상태 레지스터가 모든 이전 명령이 실행을 완료하고 다음 명령이 실행을 시작하지 않는 지점까지 설정된다. SRR0에 의해 어드레스된 명령은 인터럽트 유형에 따라 실행을 완료할 수도 있고 완료하지 않을 수도 있다. SRR0가 상태 비트 및 인터럽트 유형에 따라 결정될 수 있는 인터럽트를 야기하는 명령이든 다음 명령이든, 이들은 정확하게 설정되어야 한다.
도면 특히 도 2를 참조하면, 1 데이타 캐시 패러티 에러를 DSI로 변환하는데 사용될 수 있는 프로세서 로직(100)의 일 실시예가 블록도로 도시되어 있다. 프로세서 로직(100)은 어떤 명령 시퀀스가 적절한지를 당해 분야에서는 공지된 방식으로 결정하는 브랜치 유닛(102)을 포함한다. 브랜치 유닛(102)은 개별 명령을 적절한 로직 유닛(예를 들면, 로드/기억 유닛, 고정 소수점 실행 유닛, 또는 부동 소수점 실행 유닛)으로 전송하는 디스페치 유닛(104)에 순서화된 명령을 전송한다. 브랜치 유닛(102)은 또한 기억/복구 레지스터(SRR0)(106)에 접속되어, 로드 연산이초기화되는 경우, 로드 연산을 포함하는 명령에 대한 포인터는 SRR0(106)내에 기억된다.
로드 연산은 디스페치 유닛(104)에 의해 요청된 값의 어드레스를 발생시키는 하나 또는 그 이상의 로드/기억 유닛(108)으로 전송된다. 이 어드레스는 데이타 어드레스 파이프라인(110) 및 L1 캐시 룩업(디렉토리)(112)으로 전송된다. 데이타는 버스 인터페이스(114)를 이용하여 룩업(112)으로부터 멀티플렉서(116)의 입력으로 전송된다. 멀티플렉서(116)는 '이전' 데이타 어드레스 레지스터(PREDAR: 118)에 접속된 제3 입력을 갖는다. 멀티플렉서(116)는 L1 캐시 룩업(112)가 패러티 에러를 갖고 있는 데이타를 출력하는 경우 PREDAR 라인을 선택하는 패러티 검사 회로(120)에 의해 제어된다. 에러가 되는 명령이 완료 이전에 있다면, PREDAR(118)의 내용은 데이타 어드레스 레지스터(DAR: 122)로 이동한다. 적절한 상태 비트(124)가 갱신되어 명령이 완료된지 여부를 표시하고, 동기화 머신 검사 인터럽트(예를 들면, DSI)가 발생된다. DAR(122)의 내용이 판독되고, 플러시(예를 들면, 'dcbf' PowerPCTM명령)이 DAR(122)내에 포함된 어드레스에 대응하는 캐시 블록 상에서 수행된다. 데이타가 시스템 메모리와 일치됨(예를 들면, '개조된' 캐시 간섭 상태가 아님)을 가정하면, 대응된 캐시 블록이 간략히 'invalid'로 마크되고, 인터럽트 처리로부터 복귀되는 경우, 프로그램 실행은 SRR0를 가리키는 명령으로 계속된다. 데이타가 개조되는 경우, 머신 검사가 반드시 발생되어야 한다.
DSISR 비트를 이용하지 않는 별도 수행에 있어서, 패러티 에러는 비동기 머신 검사로부터 '동기'(즉, 에러를 유발하는 명령과 연계됨) 및 복구 가능한 머신 검사로 변환된다. 이러한 수행은 다른 기억/복구 레지스터내의 비트를 설정하여 캐시 패러티 에러가 복구가능한지 여부를 표시한다. 배드 라인(bad line)(인터럽트 명령)의 어드레스는 DAR내에서 발견된다.
본 발명이 명세서의 실시예를 기준으로 설명되었지만, 이 기재 내용은 제한적 의미로 이해되어서는 안된다. 본 발명의 별도 실시예외에도 개시된 실시예의 다양한 변경이 본 발명의 기재 내용을 참조할 때 당업자에게는 분명할 것이다. 예를 들면, 상술한 수행은 로드 연산 동안 L1 데이타 캐시 패러티 에러만을 처리하는 것이 아니라(이는, 대부분의 L1 패러티 에러가 로딩 동안 발생하므로 보다 의미가 있음), 복잡성은 추가되지만 저장 연산의 결과인 패러티 에러가 또한 유사한 방식으로 처리될 수 있다. 그러므로 그러한 개조가 첨부된 청구 범위에 의해 정의되는 본 발명의 기술 사상이나 범위로부터 벗어나지 않고 실행 가능한 것으로 간주된다.

Claims (15)

  1. 컴퓨터 시스템에서의 캐시 에러를 처리하는 방법에 있어서,
    캐시 에러 이외의 정의된 조건의 발생시에 상기 컴퓨터 시스템의 프로세서의 현재의 동작을 중지(suspending)시키기 위한 인터럽트 서비스를 구축하는 단계 - 상기 구축 단계는, 연관된 데이타 기억 인터럽트 핸들러를 갖는 데이타 기억 인터럽트 서비스를 정의하는 단계를 포함함 -와,
    상기 프로세서와 연관된 캐시내의 에러를 검출하는 단계와,
    상기 인터럽트 서비스를 이용하여 상기 프로세서에 상기 에러를 보고하는 단계 - 상기 보고 단계는, 데이타 기억 인터럽트를 발생시키는 단계와, 데이타 기억 인터럽트 상태 레지스터를 이용하여 상기 데이타 기억 인터럽트가 상기 에러의 결과임을 나타내는 단계를 포함함 -와,
    상기 데이타 기억 인터럽트에 응답하여 상기 프로세서의 콘텍스트(context)를 동기화시키는 단계
    를 포함하며,
    상기 동기화 단계는
    명령 디스패칭(dispatching)을 중지(halting)하는 단계와,
    명령들이 개시된 각 카테고리에서의 프로세서에서 이미 실행 중인 명령을, 상기 명령들이 야기시킬 어떠한 예외를 보고하며 이미 실행을 완료하고 다음에 완료할(next-to-complete) 명령에 후속되는 어떠한 명령도 실행을 개시하지 않는 시점까지 완료하는 단계를 포함하는 캐시 에러 처리 방법.
  2. 제1항에 있어서, 상기 검출 단계는 상기 프로세서가 상기 캐시에 로드 명령을 발행(issuing)하는 단계에 응답하여 수행되고, 상기 에러는 패러티 에러(parity error)인 캐시 에러 처리 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 컴퓨터 시스템에 있어서,
    복수의 값들을 기억하는 메모리 수단과,
    상기 메모리 수단의 각 어드레스와 연관된 하나 이상의 값들을 기억하는 캐시 수단을 포함하며 프로그램 명령을 프로세싱하는 수단과,
    상기 프로세싱 수단을 상기 메모리 수단에 상호 결합하는 수단과,
    상기 프로세싱 수단을 제어하는 운영 시스템과,
    상기 캐시 에러 이후에, 상기 프로세싱 수단이 상기 운영 시스템을 재개시하지 않고 동작을 계속하도록 상기 캐시 수단내의 에러를 처리하는 수단 - 상기 처리 수단은, 연관된 데이타 기억 인터럽트 핸들러를 갖는 데이타 기억 인터럽트 서비스를 정의하는 수단과, 데이타 기억 인터럽트를 발생시키는 수단과, 상기 데이타 기억 인터럽트가 상기 에러의 결과임을 상기 데이타 기억 인터럽트 서비스에 지시하는 수단을 포함함 -과
    상기 프로세싱 수단의 콘텍스트를 동기화시키는 동기화 수단
    을 포함하며,
    상기 동기화 수단은 캐시 패러티 에러에 의해 발생된 데이타 기억 인터럽트에 응답하여, 상기 프로세서의 머신 상태 레지스터내의, 다음에 완료하는 명령을 가리키는 포인터를 로드하여, 다음에 완료하는 명령에 선행하는 모든 명령은 이미 실행 완료되고, 상기 다음에 완료하는 명령에 후속되는 어떠한 명령도 실행 개시되지 않도록 하는 컴퓨터 시스템.
  8. 삭제
  9. 제12항에 있어서, 상기 에러는 캐시 패러티 에러이며, 상기 프로세싱 수단은 연관된 로드 명령(load instruction)의 실행에 응답하여 상기 캐시 패러티 에러를 검출하는 수단을 포함하는 컴퓨터 시스템.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 제12항에 있어서, 상기 에러는 캐시 패러티 에러이고, 상기 동기화 수단은 상기 캐시 수단내의 상기 패러티 에러와 연관된 캐시 블록을 플러시(flush)하는 컴퓨터 시스템.
  15. 제19항에 있어서, 상기 동기화 수단은 또한 상기 캐시 블록을 무효로 마킹하는 컴퓨터 시스템.
KR1019990013417A 1998-05-04 1999-04-15 L1 데이타 캐시 패러티 에러 복구 메카니즘 KR100342802B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/072,324 1998-05-04
US09/072,324 US6332181B1 (en) 1998-05-04 1998-05-04 Recovery mechanism for L1 data cache parity errors
US9/072,324 1998-05-04

Publications (2)

Publication Number Publication Date
KR19990087932A KR19990087932A (ko) 1999-12-27
KR100342802B1 true KR100342802B1 (ko) 2002-07-03

Family

ID=22106891

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990013417A KR100342802B1 (ko) 1998-05-04 1999-04-15 L1 데이타 캐시 패러티 에러 복구 메카니즘

Country Status (4)

Country Link
US (1) US6332181B1 (ko)
JP (1) JP3663317B2 (ko)
KR (1) KR100342802B1 (ko)
TW (1) TW432284B (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901540B1 (en) * 1999-11-08 2005-05-31 International Business Machines Corporation TLB parity error recovery
KR100369684B1 (ko) * 2000-08-31 2003-01-29 엘지전자 주식회사 패리티 에러 검출 및 생성 회로
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US7552261B2 (en) * 2001-10-12 2009-06-23 Mips Technologies, Inc. Configurable prioritization of core generated interrupts
US7487339B2 (en) * 2001-10-12 2009-02-03 Mips Technologies, Inc. Method and apparatus for binding shadow registers to vectored interrupts
US7290179B2 (en) * 2003-12-01 2007-10-30 Intel Corporation System and method for soft error handling
US7275202B2 (en) * 2004-04-07 2007-09-25 International Business Machines Corporation Method, system and program product for autonomous error recovery for memory devices
US7353445B1 (en) * 2004-12-10 2008-04-01 Sun Microsystems, Inc. Cache error handling in a multithreaded/multi-core processor
TWI295771B (en) * 2005-08-08 2008-04-11 Rdc Semiconductor Co Ltd Faulty storage area self markup access control method and system
JP2007164929A (ja) * 2005-12-16 2007-06-28 Fujitsu Ltd 記憶媒体管理装置、記憶媒体管理プログラム、記憶媒体管理方法
US20070162475A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Method and apparatus for hardware-based dynamic escape detection in managed run-time environments
US7991965B2 (en) 2006-02-07 2011-08-02 Intel Corporation Technique for using memory attributes
US7953907B1 (en) 2006-08-22 2011-05-31 Marvell International Ltd. Concurrent input/output control and integrated error management in FIFO
US7610448B2 (en) * 2006-12-27 2009-10-27 Intel Corporation Obscuring memory access patterns
US7987384B2 (en) * 2008-02-12 2011-07-26 International Business Machines Corporation Method, system, and computer program product for handling errors in a cache without processor core recovery
JP4334598B1 (ja) * 2008-04-16 2009-09-30 株式会社東芝 情報処理装置およびエラー訂正方法
US8095831B2 (en) * 2008-11-18 2012-01-10 Freescale Semiconductor, Inc. Programmable error actions for a cache in a data processing system
JP2010231619A (ja) * 2009-03-27 2010-10-14 Renesas Electronics Corp 情報処理装置
JP5625329B2 (ja) * 2009-11-16 2014-11-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
KR101772020B1 (ko) 2011-05-30 2017-08-29 삼성전자주식회사 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
US8719320B1 (en) 2012-03-29 2014-05-06 Amazon Technologies, Inc. Server-side, variable drive health determination
US9792192B1 (en) 2012-03-29 2017-10-17 Amazon Technologies, Inc. Client-side, variable drive health determination
US8972799B1 (en) 2012-03-29 2015-03-03 Amazon Technologies, Inc. Variable drive diagnostics
US9037921B1 (en) * 2012-03-29 2015-05-19 Amazon Technologies, Inc. Variable drive health determination and data placement
CN110989918B (zh) 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器
CN110990175B (zh) * 2018-10-03 2023-03-14 慧荣科技股份有限公司 错误处置方法以及数据存储装置及其控制器
CN112231403B (zh) * 2020-10-15 2024-01-30 北京人大金仓信息技术股份有限公司 数据同步的一致性校验方法、装置、设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2965074B2 (ja) * 1987-08-25 1999-10-18 株式会社日立製作所 マイクロコンピュータ
US5283876A (en) 1990-10-05 1994-02-01 Bull Hn Information Systems Inc. Virtual memory unit utilizing set associative memory structure and state machine control sequencing with selective retry
US5649090A (en) * 1991-05-31 1997-07-15 Bull Hn Information Systems Inc. Fault tolerant multiprocessor computer system
US5604753A (en) 1994-01-04 1997-02-18 Intel Corporation Method and apparatus for performing error correction on data from an external memory
US5550988A (en) 1994-03-01 1996-08-27 Intel Corporation Apparatus and method for performing error correction in a multi-processor system
EP0787323A1 (en) * 1995-04-18 1997-08-06 International Business Machines Corporation High available error self-recovering shared cache for multiprocessor systems
US5630055A (en) 1995-05-05 1997-05-13 Digital Equipment Corporation Autonomous pipeline reconfiguration for continuous error correction for fills from tertiary cache or memory
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control

Also Published As

Publication number Publication date
JP3663317B2 (ja) 2005-06-22
TW432284B (en) 2001-05-01
JP2000099406A (ja) 2000-04-07
KR19990087932A (ko) 1999-12-27
US6332181B1 (en) 2001-12-18

Similar Documents

Publication Publication Date Title
KR100342802B1 (ko) L1 데이타 캐시 패러티 에러 복구 메카니즘
US9213623B2 (en) Memory allocation with identification of requesting loadable kernel module
US6530076B1 (en) Data processing system processor dynamic selection of internal signal tracing
US6480952B2 (en) Emulation coprocessor
US9524163B2 (en) Computer processor employing hardware-based pointer processing
KR970004514B1 (ko) 고장 허용 멀티프로세서 컴퓨터 시스템
US8707094B2 (en) Fault tolerant stability critical execution checking using redundant execution pipelines
US7840845B2 (en) Method and system for setting a breakpoint
US6253317B1 (en) Method and apparatus for providing and handling traps
JP3176129B2 (ja) マイクロプロセッサのオンチップキャッシュのモニタ構造及びモニタ方法
JPH0778738B2 (ja) ディジタル・コンピュータ・システム
JP2004103024A (ja) キャッシュをベースとしたソフトウェア・ブレークポイントを有するプロセッサ・システム
US6542988B1 (en) Sending both a load instruction and retrieved data from a load buffer to an annex prior to forwarding the load data to register file
GB2367648A (en) Avoidance of repeated trap handling
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
JPH1083305A (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US5862308A (en) Fault intercept and resolution process independent of operating system
US4991083A (en) Method and system for extending address space for vector processing
JP3182741B2 (ja) 分散命令完了方法及びプロセッサ
US6898738B2 (en) High integrity cache directory
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
US20100083269A1 (en) Algorithm for fast list allocation and free
US20020152330A1 (en) Apparatus, method and computer program product for stopping processors without using non-maskable interrupts
US7302690B2 (en) Method and apparatus for transparently sharing an exception vector between firmware and an operating system
JPH1040103A (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: 20070528

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee