KR20100109365A - 캐시 제어 장치, 정보 처리 장치 및 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 - Google Patents

캐시 제어 장치, 정보 처리 장치 및 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20100109365A
KR20100109365A KR1020100016704A KR20100016704A KR20100109365A KR 20100109365 A KR20100109365 A KR 20100109365A KR 1020100016704 A KR1020100016704 A KR 1020100016704A KR 20100016704 A KR20100016704 A KR 20100016704A KR 20100109365 A KR20100109365 A KR 20100109365A
Authority
KR
South Korea
Prior art keywords
cache
time
memory
data
unit
Prior art date
Application number
KR1020100016704A
Other languages
English (en)
Other versions
KR101139151B1 (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 KR20100109365A publication Critical patent/KR20100109365A/ko
Application granted granted Critical
Publication of KR101139151B1 publication Critical patent/KR101139151B1/ko

Links

Images

Classifications

    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(과제) 캐시 메모리에서의 소프트 에러의 발생 확률을 감소시킨다.
(해결수단) 캐시 메모리(30)가, 태그 메모리(40)를 이용하여 관리되고, 라이트스루 방식으로 운용된다. 그리고, 캐시 메모리(30)에의 액세스 시각을 감시하는 감시부(51A)와, 이 감시부(51A)에 의한 감시 결과에 따라서 캐시 메모리(30)의 하나 이상의 캐시 라인에서의 데이터를 메인 메모리로부터 재차 판독하여 보존하는 리프레시부(52A)가 포함된다.

Description

캐시 제어 장치, 정보 처리 장치 및 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체{CACHE CONTROLLING APPARATUS, INFORMATION PROCESSING APPARATUS, AND COMPUTER-READABLE RECORDING MEDIUM ON OR IN WHICH CACHE CONTROLLING PROGRAM IS RECORDED}
본 발명은, 처리부에 의해 사용되도록 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리를 관리하는 기술에 관한 것이다.
일반적으로, 캐시 메모리를 갖춘 정보 처리 시스템에서, CPU(Central Processing Unit) 등의 처리부는, 액세스 대상인 데이터를 메인 메모리(주메모리)로부터 캐시 메모리에 판독하여, 판독된 데이터에 대한 액세스를 행한다. 캐시 메모리를 사용함으로써, CPU로부터의 액세스 시간이 단축된다. 이러한 시스템에서, 통상 캐시 메모리는, 예를 들어 SRAM(Static Random Access Memory)으로 구성되고, 메인 메모리는, 예를 들어 DRAM(Dynamic Random Access Memory)으로 구성된다.
이러한 캐시 메모리의 운용 방식으로는, 라이트백(write-back) 방식과 라이트스루(write-through) 방식이 알려져 있다. 라이트백 방식은, 캐시 메모리에 보존되어 있는 데이터가 재기록되었다 하더라도 메인 메모리에서의 대응 데이터의 재기록을 즉시 하지는 않고, 캐시 메모리의 데이터를 이후에 통합하여 메인 메모리에 재기록하는 방식이다. 또, 라이트스루 방식은, 캐시 메모리에 보존되어 있는 데이터가 재기록된 경우에, 그와 동시에 메인 메모리에서의 대응 데이터의 재기록도 하는 방식이다. 따라서, 라이트스루 방식을 채택한 시스템에서는, 캐시 메모리의 데이터와 메인 메모리에서의 대응 데이터는 항상 동일한 상태가 유지되게 된다.
그런데, 중성자 등에 의한, SRAM의 소프트 에러에 관해서는, 예를 들어 하기 특허문헌 1에도 기재되어 있는 바와 같이, 최근 프로세스의 미세화에 따른 증가 경향이 있어, 시스템의 신뢰도에 미치는 영향이 현저해지고 있다.
메인 메모리로서 사용되는 DRAM에서는, 통상 보존 데이터에 비트 에러가 발생하면, ECC(Error Check and Correct; Error Correction Code)로 불리는 에러 검출 수정 회로에 의해 비트 에러가 검출ㆍ정정된다. 이 ECC에 의해, 메인 메모리에서는, 1 비트 에러의 정정 및 2 비트 에러의 검출이 가능하여, 소프트 에러에 대한 신뢰성이 유지된다.
한편, 캐시 메모리로서 사용되는 SRAM에서는, CPU로부터의 액세스를 고속으로 실행 가능하게 해야 하지만, ECC에 의한 에러 검출/정정에 일정한 시간이 필요하기 때문에, ECC를 채택하면 고속성이 희생된다. 따라서, 캐시 메모리에서는, 통상 고속 연산 가능한 패리티 방식에 의한 에러 검출만이 채택된다. 이러한 패리티 방식에서는, 패리티 비트를 이용하여 1 비트 에러를 검출할 뿐이며, 2 비트 이상의 다중 비트 에러를 검출할 수 없어, 시스템의 오동작을 초래할 우려가 있다. 즉, 패리티 방식만을 채택한 캐시 메모리에서는, 소프트 에러에 대한 신뢰성을 유지할 수 없다. 캐시 메모리에서 1 비트 에러가 검출된 경우에는, 에러가 검출된 데이터가 캐시 메모리로부터 폐기되고, 대응 데이터가 새롭게 메인 메모리로부터 리로드되게 된다.
라이트백 방식으로 운용되는 캐시 메모리의 소프트 에러 대책으로는, 예를 들어 하기 특허문헌 2에 개시되는 기술이 제안되어 있다. 라이트백 방식의 캐시 메모리에서는, 데이터를 재기록하더라도 즉시 메인 메모리에 재기록되지 않기 때문에, 데이터의 보존 시간이 길어져, 소프트 에러의 영향을 받기 쉽다. 따라서, 하기 특허문헌 2에 개시된 기술에서는, 라이트백 방식의 캐시 메모리에서, 사용 빈도가 낮은 데이터를 효율적으로 메인 메모리에 재기록함으로써, 신뢰성이 높은 메인 메모리로 데이터를 보존하여, 소프트 에러에 의한 시스템에의 영향을 감소시켰다.
특허문헌1:일본특허공개2007-59042호공보 특허문헌2:일본특허공개2005-92311호공보
그러나, 라이트백 방식 및 라이트스루 방식 모두의 캐시 메모리에서도, 사용 빈도가 높은 데이터는 캐시 메모리에 장기간에 걸쳐 보존되게 되기 때문에, 중성자 등에 의한 소프트 에러(비트 에러)가 생길 가능성이 높다. 상술한 바와 같이, 캐시 메모리(SRAM)에서, 1 비트 에러는 패리티 방식에 의해 검출되어 메인 메모리로부터의 리로드에 의해 해소되지만, 2 비트 이상의 다중 비트 에러에는 대응할 수 없어, 시스템의 오동작을 초래할 우려가 있다.
본 발명의 목적의 하나는, 캐시 메모리에서의 소프트 에러의 발생 확률을 감소시키는 것이다.
상기의 목적 이외에, 후술하는 발명을 실시하기 위한 형태에 나타내는 각 구성에 의해 유도되는 작용 효과이며, 종래의 기술에 의해서는 얻을 수 없는 작용 효과를 나타내는 것도, 본 발명의 다른 목적의 하나로 볼 수 있다.
본 발명의 캐시 제어 장치는, 처리부에 의해 사용되도록 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리를, 태그 메모리를 이용하여 관리하고 라이트스루 방식으로 운용하는 것이다. 그리고, 본 발명의 캐시 제어 장치는, 상기 캐시 메모리에의 액세스 시각을 감시하는 감시부와, 상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부를 갖고 있다.
본 발명의 정보 처리 장치는, 처리부와, 주메모리와, 상기 처리부에 의해 사용되도록 상기 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리와, 상기 캐시 메모리에서의 각 캐시 라인을 관리하는 태그 메모리와, 상기 태그 메모리를 이용하여 상기 캐시 메모리를 관리하고 라이트스루 방식으로 운용하는 캐시 제어부를 갖는 것이다. 그리고, 상기 캐시 제어부는, 상기 캐시 메모리에의 액세스 시각을 감시하는 감시부와, 상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부를 갖고 있다.
본 발명의 캐시 제어 프로그램은, 처리부에 의해 사용되도록 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리를, 태그 메모리를 이용하여 관리하고 라이트스루 방식으로 운용하는 캐시 제어 장치로서 컴퓨터를 기능시키는 것이다. 그리고, 본건의 캐시 제어 프로그램은, 상기 캐시 메모리에의 액세스 시각을 감시하는 감시부, 및 상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부로서 상기 컴퓨터를 기능시킨다.
개시된 기술에서는, 감시부에 의한 캐시 메모리의 감시 결과에 따라서, 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터가 주메모리로부터 재차 판독되어 보존된다. 이것에 의해, 소프트 에러로 파괴됐을지도 모르는 캐시 메모리의 데이터가, 주메모리에서의 신뢰성이 높은 대응 데이터로 리로드/리프레시되어, 캐시 메모리에서의 소프트 에러의 발생 확률이 감소하게 된다. 따라서, 캐시 메모리를 사용하는 시스템에서의, 소프트 에러에 기인하는 오동작의 발생을 확실하게 억제할 수 있다.
도 1은 제1 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다.
도 2는 제1 실시형태의 동작을 설명하기 위한 플로우차트이다.
도 3은 제2 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다.
도 4는 제2 실시형태의 동작을 설명하기 위한 플로우차트이다.
도 5는 제3 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다.
도 6은 제3 실시형태의 동작을 설명하기 위한 플로우차트이다.
도 7은 제4 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다.
도 8은 제4 실시형태의 동작을 설명하기 위한 플로우차트이다.
이하, 도면을 참조하여 본 발명의 실시형태를 설명한다.
[1] 제1 실시형태
[1-1] 제1 실시형태의 구성
도 1은 제1 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다. 이 도 1에 나타낸 바와 같이, 제1 실시형태의 정보 처리 장치(1A)는, CPU(10), 메인 메모리(20), 캐시 메모리(30), 태그 메모리(40) 및 캐시 제어부(캐시 제어 장치; 50A)를 갖고 있다.
CPU(처리부; 10)는, 캐시 메모리(30) 및 캐시 제어부(50A)를 통해 메인 메모리(주메모리; 20)에 접속되어, 액세스 대상인 데이터를 메인 메모리(20)로부터 캐시 메모리(30)에 판독하여, 판독된 데이터에 대하여 액세스하고 있다. 즉, CPU(10)는, 캐시 메모리(30)를 액세스(리드/라이트)의 대상으로 하고 있고, 메인 메모리(20)와 캐시 사이의 데이터 전송은, 예를 들어 64 바이트분의 캐시 라인을 단위로 하여 이루어진다.
상술한 바와 같이, 메인 메모리(20)는, 예를 들어 DRAM으로 구성되고, 캐시 메모리(30)는, 예를 들어 SRAM으로 구성된다. 또, 메인 메모리(20)에서는 상술한 에러 검출 수정 회로(ECC)에 의해 에러가 정정되고, 캐시 메모리(30)에서는 역시 상술한 패리티 방식에 의해 에러가 검출된다.
태그 메모리(태그 어레이; 40)는, 캐시 메모리(30)에 일시적으로 보존된 데이터를 캐시 라인(태그 엔트리)마다 관리하기 위한 관리 정보를 저장하는 영역을 갖고 있다. 이 태그 메모리(40)는, 관리 정보로서, 캐시 라인마다 태그부, 라인 어드레스, LRU(Least Recently Used) 정보, VALID 비트 및 타임 스탬프 정보(TIME)를 유지하고 있다.
여기서, 태그부는, 각 캐시 라인에서의 데이터의 상위 어드레스(어드레스의 상위 복수 비트, 메인 메모리(20)에서의 번지 데이터)이고, 라인 어드레스는, 태그부 이외의 하위 어드레스(어드레스의 하위 복수 비트)이다. 또, LRU 정보는, 가장 오랫동안 액세스되지 않은 데이터(캐시 라인)를 특정하기 위한 정보이고, VALID 비트는, 대응 캐시 라인의 데이터가 유효한 경우에 「1」이 설정되는 한편, 무효인 경우에 「0」이 설정되는 비트이다. 또한, 타임 스탬프 정보(TIME)는, 대응 캐시 라인에 대하여, 후술하는 타임 스탬프 발행부(511A)에 의해 발행된 타임 스탬프다.
캐시 제어부(50A)는, 캐시 메모리(데이터 어레이; 30)를, 태그 메모리(40)의 관리 정보를 이용하여 관리하고 라이트스루 방식으로 운용하는 것이다. 이 캐시 제어부(50A)는, CPU(10)로부터의 메모리 액세스를 받으면, 액세스 대상 데이터의 어드레스로부터 상위 어드레스를 추출하고, 그 상위 어드레스를 키로 하여, VALID 비트에 「1」이 설정된 캐시 라인(유효 캐시 라인)에 관한 태그부를 검색한다.
그리고, 캐시 제어부(50A)는, 추출된 상위 어드레스에 일치하는 태그부가 태그 메모리(40)에 등록되어 있는 경우(캐시 히트한 경우), 그 태그부를 유지하는 캐시 라인에 대응하는, 캐시 메모리(30)의 데이터를 CPU(10)에 전송한다. 이것에 의해, 액세스 대상 데이터에 대한 액세스가 CPU(10)에서 행해진다. 이 때, 메모리 액세스로서 데이터의 재기록이 행해진 경우에는, 동일한 재기록이 메인 메모리(20)에서의 대응 데이터에 대해서도 행해진다.
한편, 캐시 제어부(50A)는, 추출된 상위 어드레스에 일치하는 태그부가 태그 메모리(40)에 등록되지 않은 경우(캐시 미스한 경우), 액세스 대상 데이터를 메인 메모리(20)로부터 캐시 메모리(30)에 판독하고, 판독된 데이터를 CPU(10)에 전송한다. 이것에 의해, 액세스 대상 데이터에 대한 액세스가 CPU(10)에서 행해진다. 이 때, 메인 메모리(20)로부터의 데이터는, VALID 비트에 「0」이 설정된 캐시 라인(무효 캐시 라인), 또는 LRU 정보를 참조하여 가장 오랫동안 액세스되지 않은 캐시 라인에 기록된다. 또, 이 때에도, 메모리 액세스로서 데이터의 재기록을 행하는 경우에는, 동일한 재기록이 메인 메모리(20)에서의 대응 데이터에 대해서도 행해진다.
또, 캐시 제어부(50A)는, 캐시 메모리(30)에서 패리티 에러(1 비트 에러)가 검출된 경우, 에러가 검출된 데이터를 캐시 메모리(30)로부터 폐기하고, 대응 데이터를 새롭게 메인 메모리(20)로부터 리로드하는 기능도 한다.
제1 실시형태의 캐시 제어부(50A)는, 상술한 바와 같은 기본적인 제어 동작을 행하는 것 외에, 감시부(51A) 및 리프레시부(52A)로서의 기능도 갖고 있다.
감시부(51A)는, 캐시 메모리(30)(후술하는 캐시 메모리(30)에의 액세스 시각(현재 시각)이나 캐시 메모리(30)에의 데이터 보존 시각 등)를 감시하는 것이다. 제1 실시형태의 감시부(51A)는, 타임 스탬프 발행부(511A) 및 비교부(512A)로서의 기능을 갖고 있다.
타임 스탬프 발행부(511A)는, 상술한 바와 같이 메인 메모리(20)로부터 캐시 메모리(30)에 데이터를 판독하여 보존할 때, 그 데이터의 보존처인 캐시 메모리(30)의 캐시 라인에의 보존 시각을 나타내는 타임 스탬프를 발행하는 것이다. 그리고, 타임 스탬프 발행부(511A)는, 그 타임 스탬프를 태그 메모리(40)의 대응 캐시 라인의 TIME에 기록한다. 타임 스탬프 발행부(511A)가 보존 시각을 발행하기 위해, 타임 스탬프 발행부(511A) 또는 캐시 제어부(50A)에는, 현재 시각을 나타내는 시각 정보를 계시하여 출력하는 시계 기능이 마련되어 있다.
비교부(512A)는, 태그 메모리(40)에서의 태그부(태그 정보)에 기초하여 CPU(10)의 메모리 액세스 대상 데이터가 캐시 메모리(30)에 보존되어 있는 것이 인식된 시점, 즉 캐시 히트한 시점에서, 이하와 같은 비교 처리를 행하는 것이다. 즉, 비교부(512A)는, 그 대상 데이터를 보존하는 캐시 라인에 관한 타임 스탬프를 태그 메모리(40)로부터 판독하여, 그 타임 스탬프가 나타내는 보존 시각과, 상기 시계 기능 등에 의해 얻어지는 현재 시각(실제로는 액세스 시각 또는 캐시 히트 인식 시각)을 비교한다. 그리고, 비교부(512A)는, 액세스 시각/캐시 히트 인식 시각이 보존 시각으로부터 소정 시간 T 이상 경과했는지의 여부, 즉, 액세스 시각/캐시 히트 인식 시각이 보존 시각에 소정 시간 T을 가산하여 얻어지는 시각을 경과했는지의 여부를, 감시부(51A)에 의한 감시 결과로서 출력한다. 소정 시각(T)은, 예를 들어 후술하는 연산식에 따라서 미리 산출되어, 캐시 제어부(50A) 내의 기억부에 미리 등록 보존되어 있다.
리프레시부(52A)는, 감시부(51A)에 의한 감시 결과에 따라서, 캐시 메모리(30)의 하나 이상의 캐시 라인에서의 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행하는 것이다. 보다 구체적으로, 제1 실시형태의 리프레시부(52A)는, 감시부(51A)로부터의 감시 결과가, 액세스 시각(캐시 히트 인식 시각)이 보존 시각으로부터 소정 시간 T 이상 경과한 것을 나타내는 경우, 대응하는 하나의 캐시 라인에서의 액세스 대상 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행한다. 즉, 이 때 그 액세스 대상 데이터에 대해 캐시 히트 판정이 이루어졌지만, 리프레시부(52A)는, 캐시 히트라 하더라도 상술한 바와 같은 경우, 그 액세스 대상 데이터에 대해 캐시 미스했을 때와 동등한 동작을 행한다.
즉, 제1 실시형태의 캐시 제어부(50A)는, 액세스 대상 데이터가, 소정 시각(T)을 넘어 캐시 메모리(30)에 보존되어 있는 경우에 중성자 등에 의한 소프트 에러가 발생할 가능성이 높다고 인식한다. 그리고, 그 인식에 따라서, 그 액세스 대상 데이터가 메인 메모리(20)로부터 리로드된다.
여기서, 소정 시간 T은, 예를 들어 일정한 소프트 에러 발생 주기 τ(MTBF : Mean Time Between Failure : 평균 고장 간격)보다 짧은 시간 간격이다. 즉, 본 실시형태에서, 소정 시간 T은, 캐시 메모리(30)의 메모리셀의 CMOS 구조에 의해 기생적으로 존재하고 중성자에 의해 활성화되는 사이리스터 구조의 래치업이 메모리셀의 데이터를 파괴하기까지의 시간(시정수; 데이터 파괴 시간) τ보다 짧은 시간 간격으로 설정된다.
이러한 데이터 파괴 시간 τ은, 데이터를 유지하는 메모리셀의 노드 용량 C과, 상기 사이리스터 구조에서 래치업 발생시에 누설 전류 I가 통과하는 확산 저항의 저항치 R에 기초하여 산출된다.
즉, 메모리셀의 축적 전하 Q는, 전원 전압 V와 노드 용량 C에 의해, 하기 식 (1)에 나타낸 바와 같이 나타낼 수 있다.
Q=CVㆍㆍㆍ(1)
한편, 축적 전하 Q는, 하기 식 (2)에 나타낸 바와 같이, 사이리스터 구조에서의 래치업 현상에 의한 누설 전류 I의 적분치로서 나타낼 수 있다.
Q=∫Idtㆍㆍㆍ(2)
여기서, 식 (2)에서의 ∫dt를 "τ"로 치환하면, 하기 식 (3)을 얻을 수 있고, 따라서 이 "τ"는 데이터 파괴 시간을 나타내는 것이라고 할 수 있다.
Q=Iτㆍㆍㆍ(3)
그리고, 상기 식 (1), (3)에서 하기 식 (4)가 성립된다.
CV=Iτㆍㆍㆍ(4)
그런데, 누설 전류 I는 확산 저항의 저항치 R에 의해, 하기 식 (5)로 나타낼 수 있기 때문에, 하기 식 (5)를 상기 식 (4)에 대입함으로써, 하기 식 (6)을 얻을 수 있다.
I=V/Rㆍㆍㆍ(5)
CV=(V/R)τㆍㆍㆍ(6)
이 식 (6)을 데이터 파괴 시간 τ에 대해 푸는 것에 의해 하기 식 (7)을 얻을 수 있고, 산출부는, 하기 식 (7)에 기초하여 데이터 파괴 시간 τ을 산출한다.
τ=CRㆍㆍㆍ(7)
그리고, 이 식 (7)에 의해 산출된 데이터 파괴 시간 τ보다 짧은 시간 간격이, 상기 소정 시간 T로서 설정된다.
[1-2] 제1 실시형태의 동작
다음으로, 상술한 바와 같이 구성된 제1 실시형태의 캐시 제어부(50A)를 갖는 정보 처리 장치(1A)의 동작에 관해, 도 2에 나타내는 플로우차트(단계 S11∼S18)에 따라서 설명한다.
캐시 제어부(50A)는, CPU(10)로부터의 메모리 액세스를 받으면(단계 S11), 액세스 대상 데이터의 어드레스로부터 상위 어드레스를 추출한다. 그리고, 캐시 제어부(50A)는, 그 상위 어드레스를 키로 하여, 태그 메모리(40)에서 VALID 비트에 「1」이 설정된 캐시 라인(유효 캐시 라인)에 관한 태그부를 검색한다.
검색의 결과, 추출된 상위 어드레스에 일치하는 태그부가 태그 메모리(40)에 등록되지 않은 경우(캐시 미스한 경우; 단계 S12의 No 루트), 캐시 제어부(50A)는, 액세스 대상 데이터의 어드레스를 태그 메모리(40)의 태그부 및 라인 어드레스에 등록한다(단계 S13). 그리고, 캐시 제어부(50A)는, 액세스 대상 데이터를 메인 메모리(20)로부터 캐시 메모리(30)에 판독하고, 캐시 메모리(30)에 전송하여 보존한다(단계 S14).
이 때, 타임 스탬프 발행부(511A)가, 그 액세스 대상 데이터의 보존처인 캐시 메모리(30)에의 보존 시각을 나타내는 타임 스탬프를 발행하고, 그 타임 스탬프를 태그 메모리(40)의 대응 캐시 라인에 TIME으로서 기록하여 부가한다(단계 S15). 그 후, 캐시 메모리(30)에 판독된 데이터가, 액세스 대상 데이터로서 캐시 메모리(30)로부터 CPU(10)에 전송된다(단계 S18). 이것에 의해, 액세스 대상 데이터에 대한 액세스가 CPU(10)에서 행해진다.
한편, 상위 어드레스를 키로 한 태그부의 검색의 결과, 추출된 상위 어드레스에 일치하는 태그부가 태그 메모리(40)에 등록되어 있는 경우(캐시 히트한 경우; 단계 S12의 Yes 루트), 캐시 제어부(50A)의 비교부(512A)가 기능한다. 즉, 비교부(512A)는, 그 액세스 대상 데이터를 보존하는 캐시 라인에 관한 타임 스탬프를 태그 메모리(40)로부터 판독하여, 현재 시각이 보존 시각으로부터 소정 시간 T 이상 경과했는지의 여부를 비교 판단한다(단계 S16).
현재 시각이 보존 시각으로부터 소정 시간 T 이상 경과하지 않은 경우(현재 시각이 제한 시간내인 경우; 단계 S17의 Yes 루트), 캐시 메모리(30)에 보존되어 있는 액세스 대상 데이터가, 캐시 메모리(30)로부터 CPU(10)에 전송된다(단계 S18). 이것에 의해, 액세스 대상 데이터에 대한 액세스가 CPU(10)에서 행해진다.
또, 현재 시각이 보존 시각으로부터 소정 시간 T 이상 경과한 경우(현재 시각이 제한 시간외인 경우; 단계 S17의 No 루트), 캐시 제어부(50A)의 리프레시부(52A)가 기능한다. 즉, 리프레시부(52A)는, 캐시 메모리(30)에 현재 보존되어 있는 액세스 대상 데이터를 폐기하고, 그 액세스 대상 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행한다(단계 S14).
이 때에도, 타임 스탬프 발행부(511A)가, 그 액세스 대상 데이터의 보존처인 캐시 메모리(30)에의 보존 시각을 나타내는 타임 스탬프를 발행하고, 그 타임 스탬프를 태그 메모리(40)의 대응 캐시 라인에 TIME으로서 기록하여 부가한다(단계 S15). 그 후, 캐시 메모리(30)에 판독된 데이터가, 액세스 대상 데이터로서 캐시 메모리(30)로부터 CPU(10)에 전송된다(단계 S18). 이것에 의해, 액세스 대상 데이터에 대한 액세스가 CPU(10)에서 행해진다.
[1-3] 제1 실시형태의 효과
이와 같이, 제1 실시형태의 캐시 제어 장치(50A)를 갖는 정보 처리 장치(1A)에 의하면, 액세스 대상 데이터에 대해 캐시 히트하더라도, 그 데이터가 소정 시간 T을 넘어 캐시 메모리(30)에 보존되어 있는 경우에는, 캐시 미스시와 동등한 처리가 행해진다. 즉, 액세스 대상 데이터가, 소정 시간 T을 넘어 캐시 메모리(30)에 보존되어 있는 경우에 중성자 등에 의한 소프트 에러가 발생할 가능성이 높다고 인식하여, 그 액세스 대상 데이터가 메인 메모리(20)로부터 리로드된다.
메인 메모리(20)에서는, 항상 최신 데이터가 ECC 등에 의해 보호된 상태로 저장되어 있다. 따라서, 상술한 바와 같이 캐시 메모리(30)에서의 보존 시간이 길어 소프트 에러로 파괴됐을지도 모르는 캐시 메모리(30)의 데이터가, 메인 메모리(20)에서의 신뢰성이 높은 대응 데이터로 리로드/리프레시된다. 이것에 의해, 캐시 메모리(30)에서의 소프트 에러가 구제되어 소프트 에러의 발생 확률이 감소하여, 캐시 메모리(30)를 사용하는 시스템(CPU(10))에서의, 소프트 에러에 기인하는 오동작의 발생을 확실하게 억제할 수 있다.
[2] 제2 실시형태
[2-1] 제2 실시형태의 구성
도 3은 제2 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다. 이 도 3에 나타낸 바와 같이, 제2 실시형태의 정보 처리 장치(1B)는, 제1 실시형태와 동일한 CPU(10), 메인 메모리(20), 캐시 메모리(30) 및 태그 메모리(40)를 가지며, 제1 실시형태의 캐시 제어부(50A) 대신 캐시 제어부(캐시 제어 장치; 50B)를 갖고 있다. 도 3 중, 상술한 부호와 동일한 부호는 동일하거나 또는 거의 동일한 부분을 나타내기 때문에, 그 설명은 생략한다.
제2 실시형태의 캐시 제어부(50B)도, 제1 실시형태의 캐시 제어부(50A)와 동일한 기본적인 제어 동작을 행하는 것 외에, 감시부(51B) 및 리프레시부(52B)로서의 기능도 갖고 있다.
감시부(51B)도, 감시부(51A)와 마찬가지로 캐시 메모리(30)(캐시 메모리(30)에의 액세스 시각(현재 시각)이나 캐시 메모리(30)에의 데이터 보존 시각 등)를 감시하는 것이다. 제2 실시형태의 감시부(51B)는, 타임 스탬프 발행부(511B) 및 비교부(512B)로서의 기능을 갖고 있다.
타임 스탬프 발행부(511B)는, 제1 실시형태의 타임 스탬프 발행부(511A)와 동일하게 기능하는 것이다. 즉, 타임 스탬프 발행부(511B)도, 메인 메모리(20)로부터 캐시 메모리(30)에 데이터를 판독하여 보존할 때, 그 데이터의 보존처인 캐시 메모리(30)의 캐시 라인에의 보존 시각을 나타내는 타임 스탬프를 발행하는 것이다. 그리고, 타임 스탬프 발행부(511B)는, 그 타임 스탬프를 태그 메모리(40)의 대응 캐시 라인의 TIME에 기록한다. 타임 스탬프 발행부(511B)가 보존 시각을 발행하기 위해, 타임 스탬프 발행부(511B) 또는 캐시 제어부(50B)에는, 현재 시각을 나타내는 시각 정보를 계시하여 출력하는 시계 기능이 마련되어 있다.
비교부(512B)는, 캐시 히트한 시점에서 제1 실시형태의 비교부(512A)와 동일한 비교 처리를 행하는 것 외에, 제2 실시형태에서는, 예를 들어 미리 설정되어 있는 규정 시각이 되면, 이하와 같은 비교 처리를 행하는 것이다. 즉, 비교부(512B)는, 규정 시각이 되면, 캐시 메모리(30)에 보존되어 있는 전체 데이터에 대해 캐시 라인마다 타임 스탬프를 태그 메모리(40)로부터 판독하여, 그 타임 스탬프가 나타내는 보존 시각과, 상기 시계 기능 등에 의해 얻어지는 현재 시각(비교 실행 시각)을 비교한다. 그리고, 비교부(512B)는, 비교 실행 시각이 보존 시각으로부터 소정 시간 T 이상 경과했는지의 여부, 즉, 비교 실행 시각이 보존 시각에 소정 시간 T을 가산하여 얻어지는 시각을 경과했는지의 여부를, 감시부(51B)에 의한 감시 결과로서 출력한다. 소정 시각(T)은, 예를 들어, 제1 실시형태에서 상술한 바와 같이 산출되어, 캐시 제어부(50B) 내의 기억부에 미리 등록 보존되어 있다. 또, 상기 규정 시각은 랜덤으로 설정되어도 되고 주기적으로 설정되어도 된다. 이 규정 시각은, 소정 시각(T)과 마찬가지로, 예를 들어, 캐시 제어부(50B) 내의 기억부에 미리 등록 보존되어 있다.
리프레시부(52B)는, 제1 실시형태의 리프레시부(52A)와 마찬가지로, 감시부(51B)에 의한 감시 결과에 따라서, 캐시 메모리(30)의 하나 이상의 캐시 라인에서의 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행하는 것이다. 보다 구체적으로, 제2 실시형태의 리프레시부(52B)도, 제1 실시형태의 비교부(52A)와 마찬가지로, 감시부(51B)로부터의 감시 결과가, 액세스 시각(캐시 히트 인식 시각)이 보존 시각으로부터 소정 시간 T 이상 경과한 것을 나타내는 경우, 대응하는 하나의 캐시 라인에서의 액세스 대상 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행한다. 즉, 이 때 그 액세스 대상 데이터에 대해 캐시 히트 판정이 이루어지고 있지만, 리프레시부(52B)는, 캐시 히트라 하더라도 상술한 바와 같은 경우, 그 액세스 대상 데이터에 대해 캐시 미스했을 때와 동등한 동작을 행한다.
또한, 제2 실시형태의 리프레시부(52B)는, 감시부(51B)로부터의 감시 결과가, 비교 실행 시각이 보존 시각으로부터 소정 시간 T 이상 경과한 것을 나타내는 경우, 그 캐시 라인을 무효화하는 무효화부로서 기능한다. 구체적으로, 리프레시부(52B)는, 태그 메모리(40)의 VALID 비트를 「0」으로 설정함으로써 그 캐시 라인을 무효화한다. 이것에 의해, 무효화 처리 이후에 그 캐시 라인에 보존되어 있던 데이터가 CPU(10)의 메모리 액세스의 대상 데이터가 되면, 그 데이터에 대해서는 캐시 미스 판정이 되어, 제1 실시형태와 마찬가지로 메인 메모리(20)로부터 재차 판독된다. 즉, 그 데이터가, 새롭게 메인 메모리(20)로부터 판독되어 캐시 메모리(30)에 보존되고, 그 데이터에 관한 관리 정보가 태그 메모리(40)에 등록된다. 상술한 바와 같이 리프레시부(52B)가 그 캐시 라인을 무효화함으로써, 실질적으로 그 캐시 라인에서의 데이터가 리로드/리프레시되게 된다. 이 때, 제1 실시형태와 마찬가지로, 타임 스탬프 발행부(511B)에 의해 보존 시각을 나타내는 타임 스탬프가 발행되어, 태그 메모리(40)의 대응 캐시 라인에 기록된다.
[2-2] 제2 실시형태의 동작
다음으로, 상술한 바와 같이 구성된 제2 실시형태의 캐시 제어부(50B)를 갖는 정보 처리 장치(1B)의 동작에 관해, 도 4에 나타내는 플로우차트(단계 S21∼S25)에 따라서 설명한다. 캐시 제어부(50B)는, CPU(10)로부터의 메모리 액세스를 받은 경우에는, 제1 실시형태의 캐시 제어부(50A)와 마찬가지로, 도 2에 나타내는 플로우차트(단계 S11∼S18)에 따라서 동작을 행한다.
한편, 제2 실시형태의 캐시 제어부(50B)는, CPU(10)로부터의 메모리 액세스를 받았을 때 이외에, 상기 시계 기능에 의해 얻어지는 현재 시각이 미리 설정된 규정 시각이 되면, 캐시 제어부(50B)의 비교부(512B)가 기능한다. 즉, 비교부(512B)는, 하나의 캐시 라인에 대응하는 타임 스탬프를 태그 메모리(40)로부터 판독하여(단계 S21), 비교 실행 시각(현재 시각)이 보존 시각으로부터 소정 시간 T 이상 경과했는지의 여부를 비교 판단한다(단계 S22).
비교 실행 시각이 보존 시각으로부터 소정 시간 T 이상 경과한 경우(현재 시각이 제한 시간외인 경우; 단계 S23의 No 루트), 캐시 제어부(50B)의 리프레시부(52B)가 기능한다. 즉, 리프레시부(무효화부; 52B)는, 소정 시간 T 이상인 동안, 캐시 메모리(30)에 보존되어 있는 그 데이터(캐시 라인)에 대해, 태그 메모리(40)의 VALID 비트를 「0」으로 설정함으로써 그 캐시 라인을 무효화한다(단계 S25).
이것에 의해, 상술한 바와 같이, 무효화 처리 이후에 그 캐시 라인에 보존되어 있던 데이터가 CPU(10)의 메모리 액세스의 대상 데이터가 되면, 그 데이터에 대해서는 캐시 미스 판정이 된다(도 2의 단계 S12의 No 루트 참조). 따라서, 그 데이터는, 새롭게 메인 메모리(20)로부터 판독되어 캐시 메모리(30)에 보존되고, 그 데이터에 관한 관리 정보(어드레스나 타임 스탬프)가 태그 메모리(40)에 등록된다(도 2의 단계 S14, S15, S18 참조). 이러한 무효화 처리에 의해, 실질적으로 그 캐시 라인에서의 데이터가 리로드/리프레시된다. 그 후, 캐시 제어부(50B)는 단계 S25의 처리로 이행한다.
그리고, 비교 실행 시각이 보존 시각으로부터 소정 시간 T 이상 경과하지 않은 경우(현재 시각이 제한 시간내인 경우; 단계 S23의 Yes 루트), 캐시 제어부(50B)는 특별히 처리를 행하지 않고 단계 S25의 처리로 이행한다. 단계 S25에서, 캐시 제어부(50B)는, 모든 데이터(캐시 라인)에 대해 보존 시각을 체크했는지의 여부를 판단하여(단계 S25), 모두 행한 경우(Yes 루트), 처리를 종료한다. 한편, 아직 완료하지 않는 경우(No 루트), 캐시 제어부(50B)는 단계 S21로 되돌아가, 다른 캐시 라인을 하나 선택하여 상술한 것과 동일하게 처리한다.
[2-3] 제2 실시형태의 효과
이와 같이, 제2 실시형태의 캐시 제어 장치(50B)를 갖는 정보 처리 장치(1B)에 의하면, 미리 설정되어 있는 규정 시각이 되면, 캐시 메모리(30)에 보존되어 있는 데이터에 관한 타임 스탬프가 캐시 라인마다 체크된다. 그리고, 데이터가 소정 시간 T을 넘어 캐시 메모리(30)에 보존되는 경우에는, 그 데이터(캐시 라인)가 무효화되어 다음번 액세스시에 리로드/리프레시되게 된다.
따라서, 제2 실시형태에서는, 캐시 히트 시점 뿐만 아니라 규정 시각이 되면 보존 시간이 체크되어, 소프트 에러로 파괴됐을지도 모르는 캐시 메모리(30)의 데이터가, 메인 메모리(20)에서의 신뢰성이 높은 대응 데이터로 리로드/리프레시된다. 이것에 의해, 캐시 메모리(30)에서의 소프트 에러가 구제되어 소프트 에러의 발생 확률이 감소하여, 캐시 메모리(30)를 사용하는 시스템(CPU(10))에서의, 소프트 에러에 기인하는 오동작의 발생을 확실하게 억제할 수 있다.
[3] 제3 실시형태
[3-1] 제3 실시형태의 구성
도 5는 제3 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다. 이 도 5에 나타낸 바와 같이, 제3 실시형태의 정보 처리 장치(1C)는, 제1 실시형태와 동일한 CPU(10), 메인 메모리(20), 캐시 메모리(30) 및 태그 메모리(40)를 가지며, 제1 실시형태의 캐시 제어부(50A) 대신 캐시 제어부(캐시 제어 장치; 50C)를 갖고 있다. 도 5 중, 상술한 부호와 동일한 부호는 동일하거나 또는 거의 동일한 부분을 나타내기 때문에, 그 설명은 생략한다.
제3 실시형태의 캐시 제어부(50C)도, 제1 실시형태의 캐시 제어부(50A)와 동일한 기본적인 제어 동작을 행하는 것 외에, 감시부(51C) 및 리프레시부(52C)로서의 기능도 갖고 있다.
감시부(51C)도, 감시부(51A)와 마찬가지로, 캐시 메모리(30)(캐시 메모리(30)에의 액세스 시각(현재 시각)이나 캐시 메모리(30)에의 데이터 보존 시각 등)를 감시하는 것이다. 제3 실시형태의 감시부(51C)는, 타임 스탬프 발행부(511C) 및 비교부(512C)로서의 기능을 갖고 있다.
타임 스탬프 발행부(511C)는, 제1 실시형태의 타임 스탬프 발행부(511A)와 동일하게 기능하는 것이다. 즉, 타임 스탬프 발행부(511C)도, 메인 메모리(20)로부터 캐시 메모리(30)에 데이터를 판독하여 보존할 때, 그 데이터의 보존처인 캐시 메모리(30)의 캐시 라인에의 보존 시각을 나타내는 타임 스탬프를 발행하는 것이다. 그리고, 타임 스탬프 발행부(511C)는, 그 타임 스탬프를 태그 메모리(40)의 대응 캐시 라인의 TIME에 기록한다. 타임 스탬프 발행부(511C)가 보존 시각을 발행하기 위해, 타임 스탬프 발행부(511C) 또는 캐시 제어부(50C)에는, 현재 시각을 나타내는 시각 정보를 계시하여 출력하는 시계 기능이 마련되어 있다.
비교부(512C)는, 제1 실시형태의 비교부(512A)와 마찬가지로, 캐시 히트한 시점에서 제1 실시형태의 비교부(512A)와 동일한 비교 처리를 행하는 것이다.
또, 리프레시부(52C)는, 제1 실시형태의 리프레시부(52A)와 마찬가지로, 감시부(51C)에 의한 감시 결과에 따라서, 캐시 메모리(30)의 하나 이상의 캐시 라인에서의 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행하는 것이다. 보다 구체적으로, 제3 실시형태의 리프레시부(52C)도, 제1 실시형태의 리프레시부(52A)와 마찬가지로, 감시부(51C)로부터의 감시 결과가, 액세스 시각(캐시 히트 인식 시각)이 보존 시각으로부터 소정 시간 T 이상 경과한 것을 나타내는 경우, 대응하는 하나의 캐시 라인에서의 액세스 대상 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행한다. 즉, 이 때 그 액세스 대상 데이터에 대해 캐시 히트 판정이 이루어지고 있지만, 리프레시부(52C)는, 캐시 히트라 하더라도 상술한 바와 같은 경우, 그 액세스 대상 데이터에 대해 캐시 미스했을 때와 동등한 동작을 행한다.
또한, 제3 실시형태의 리프레시부(52C)는, 감시부(51C)로부터의 감시 결과가, 액세스 시각(캐시 히트 인식 시각)이 보존 시각으로부터 소정 시간 T 이상 경과한 것을 나타내는 경우, 리프레시 처리를 행한 캐시 라인 이외의 캐시 라인을 전부 무효화하는 무효화부로서도 기능한다. 구체적으로, 리프레시부(52C)는, 태그 메모리(40)의 VALID 비트를 「0」으로 설정함으로써 캐시 라인을 무효화한다. 이것에 의해, 무효화 처리 이후에, 무효화된 캐시 라인에 보존되어 있던 데이터가 CPU(10)의 메모리 액세스의 대상 데이터가 되면, 그 데이터에 대해서는 캐시 미스 판정이 되어, 제1 실시형태와 마찬가지로 메인 메모리(20)로부터 재차 판독된다. 즉, 그 데이터가, 새롭게 메인 메모리(20)로부터 판독되어 캐시 메모리(30)에 보존되고, 그 데이터에 관한 관리 정보가 태그 메모리(40)에 등록된다. 상술한 바와 같이 리프레시부(52C)가 그 캐시 라인을 무효화함으로써, 실질적으로 캐시 라인에서의 데이터가 리로드/리프레시되게 된다. 이 때, 제1 실시형태와 마찬가지로, 타임 스탬프 발행부(511C)에 의해 보존 시각을 나타내는 타임 스탬프가 발행되어, 태그 메모리(40)의 대응 캐시 라인에 기록된다.
[3-2] 제3 실시형태의 동작
다음으로, 상술한 바와 같이 구성된 제3 실시형태의 캐시 제어부(50C)를 갖는 정보 처리 장치(1C)의 동작에 관해, 도 6에 나타내는 플로우차트(단계 S31∼S39)에 따라서 설명한다. 단계 S31∼S37 및 S39는, 기본적으로 도 2에서의 단계 S11∼S18에 대응한다.
캐시 제어부(50C)는, CPU(10)로부터의 메모리 액세스를 받으면(단계 S31), 액세스 대상 데이터의 어드레스로부터 상위 어드레스를 추출한다. 그리고, 캐시 제어부(50C)는, 그 상위 어드레스를 키로 하여, 태그 메모리(40)에서 VALID 비트에 「1」이 설정된 캐시 라인(유효 캐시 라인)에 관한 태그부를 검색한다.
검색의 결과, 추출된 상위 어드레스에 일치하는 태그부가 태그 메모리(40)에 등록되지 않은 경우(캐시 미스한 경우; 단계 S32의 No 루트), 캐시 제어부(50C)는, 액세스 대상 데이터의 어드레스를 태그 메모리(40)의 태그부 및 라인 어드레스에 등록한다(단계 S33). 그리고, 캐시 제어부(50C)는, 액세스 대상 데이터를 메인 메모리(20)로부터 캐시 메모리(30)에 판독하여, 캐시 메모리(30)에 전송하여 보존한다(단계 S34).
이 때, 타임 스탬프 발행부(511C)가, 그 액세스 대상 데이터의 보존처인 캐시 메모리(30)에의 보존 시각을 나타내는 타임 스탬프를 발행하고, 그 타임 스탬프를 태그 메모리(40)의 대응 캐시 라인에 TIME으로서 기록하여 부가한다(단계 S35). 그 후, 캐시 메모리(30)에 판독된 데이터가, 액세스 대상 데이터로서 캐시 메모리(30)로부터 CPU(10)에 전송된다(단계 S39). 이것에 의해, 액세스 대상 데이터에 대한 액세스가 CPU(10)에서 행해진다.
한편, 상위 어드레스를 키로 한 태그부의 검색의 결과, 추출된 상위 어드레스에 일치하는 태그부가 태그 메모리(40)에 등록되어 있는 경우(캐시 히트한 경우; 단계 S32의 Yes 루트), 캐시 제어부(50C)의 비교부(512C)가 기능한다. 즉, 비교부(512C)는, 그 액세스 대상 데이터를 보존하는 캐시 라인에 관한 타임 스탬프를 태그 메모리(40)로부터 판독하여, 현재 시각이 보존 시각으로부터 소정 시간 T 이상 경과했는지의 여부를 비교 판단한다(단계 S36).
현재 시각이 보존 시각으로부터 소정 시간 T 이상 경과하지 않은 경우(현재 시각이 제한 시간내인 경우; 단계 S37의 Yes 루트), 캐시 메모리(30)에 보존되어 있는 액세스 대상 데이터가, 캐시 메모리(30)로부터 CPU(10)에 전송된다(단계 S39). 이것에 의해, 액세스 대상 데이터에 대한 액세스가 CPU(10)에서 행해진다.
또, 현재 시각이 보존 시각으로부터 소정 시간 T 이상 경과한 경우(현재 시각이 제한 시간외인 경우; 단계 S37의 No 루트), 캐시 제어부(50C)의 리프레시부(52C)가 기능한다. 즉, 리프레시부(52C)는, 캐시 메모리(30)에 현재 보존되어 있는 액세스 대상 데이터를 폐기하고, 그 액세스 대상 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행한다(단계 S34, S35).
이것과 동시에, 리프레시부(52C)는, 단계 S34에서 리프레시 처리를 행한 캐시 라인 이외의 캐시 라인을 전부 무효화한다(단계 S38).
이와 같이 무효화된 캐시 라인에 보존되어 있던 데이터가, 무효화후에 CPU(10)의 메모리 액세스의 대상 데이터가 되면, 그 데이터에 대해서는 캐시 미스 판정이 된다(단계 S32의 No 루트 참조). 따라서, 그 데이터는, 새롭게 메인 메모리(20)로부터 판독되어 캐시 메모리(30)에 보존되고, 그 데이터에 관한 관리 정보(어드레스나 타임 스탬프)가 태그 메모리(40)에 등록된다(단계 S34, S35, S39 참조). 이러한 무효화 처리에 의해, 실질적으로 그 캐시 라인에서의 데이터가 리로드/리프레시된다.
[3-3] 제3 실시형태의 효과
이와 같이, 제3 실시형태의 캐시 제어 장치(50C)를 갖는 정보 처리 장치(1C)에 의하면, 제1 실시형태와 동일한 작용 효과를 얻을 수 있다.
또, 제3 실시형태에서는, 캐시 히트한 데이터가 소정 시간 T을 넘어 캐시 메모리(30)에 보존되는 경우, 그 데이터가 리프레시될 뿐만 아니라, 그 데이터가 보존되는 캐시 라인 이외의 캐시 라인이 무효화된다. 즉, 하나의 캐시 라인에서의 데이터가 소정 시간 T을 넘어 보존되는 경우, 다른 캐시 라인에서의 데이터도 소정 시간 T을 넘어 보존될 가능성이 높다고, 즉 소프트 에러로 파괴될 가능성이 높다고 판단하여, 다른 모든 캐시 라인의 무효화를 행하고 있다.
따라서, 제3 실시형태에서도, 소프트 에러로 파괴됐을지도 모르는 캐시 메모리(30)의 데이터가, 메인 메모리(20)에서의 신뢰성이 높은 대응 데이터로 리로드/리프레시된다. 이것에 의해, 캐시 메모리(30)에서의 소프트 에러가 구제되어 소프트 에러의 발생 확률이 감소하여, 캐시 메모리(30)를 사용하는 시스템(CPU(10))에서의, 소프트 에러에 기인하는 오동작의 발생을 확실하게 억제할 수 있다.
[4] 제4 실시형태
[4-1] 제4 실시형태의 구성
도 7은 제4 실시형태의 캐시 제어 장치를 갖는 정보 처리 장치의 구성을 나타내는 블록도이다. 이 도 7에 나타낸 바와 같이, 제4 실시형태의 정보 처리 장치(1D)는, 제1 실시형태와 동일한 CPU(10), 메인 메모리(20), 캐시 메모리(30) 및 태그 메모리(40)를 가지며, 제1 실시형태의 캐시 제어부(50A)대신 캐시 제어부(캐시 제어 장치; 50D)를 갖고 있다. 도 7 중, 상술한 부호와 동일한 부호는 동일하거나 또는 거의 동일한 부분을 나타내기 때문에, 그 설명은 생략한다.
제4 실시형태의 캐시 제어부(50D)도, 제1 실시형태의 캐시 제어부(50A)와 동일한 기본적인 제어 동작을 행하는 것 외에, 감시부(51D) 및 리프레시부(52D)로서의 기능도 갖고 있다.
감시부(51D)도, 감시부(51A)와 마찬가지로, 캐시 메모리(30)(캐시 메모리(30)에의 액세스 시각(현재 시각)이나 캐시 메모리(30)에의 데이터 보존 시각 등)를 감시하는 것이다. 제4 실시형태의 감시부(51D)는, 타임 스탬프 발행부(계시부; 511D) 및 비교부(512D)로서의 기능을 갖고 있다.
타임 스탬프 발행부(511D)는, 제1 실시형태의 타임 스탬프 발행부(511A)와 동일하게 기능하는 것 외에, 시간을 계시하는 계시부(계시 기능/타이머)로서의 기능도 갖고 있다. 즉, 타임 스탬프 발행부(511D)도, 메인 메모리(20)로부터 캐시 메모리(30)에 데이터를 판독하여 보존할 때, 그 데이터의 보존처인 캐시 메모리(30)의 캐시 라인에의 보존 시각을 나타내는 타임 스탬프를 발행하는 것이다. 그리고, 타임 스탬프 발행부(511D)는, 그 타임 스탬프를 태그 메모리(40)의 대응 캐시 라인의 TIME에 기록한다. 타임 스탬프 발행부(511D)가 보존 시각을 발행하기 위해, 타임 스탬프 발행부(511D) 또는 캐시 제어부(50D)에는, 현재 시각을 나타내는 시각 정보를 계시하여 출력하는 시계 기능이 마련되어 있다.
또, 타임 스탬프 발행부(511D)의 계시부로서의 기능은, 상기 시계 기능을 이용하여 실현된다. 이 계시부(511D)는, 후술하는 타이밍으로 리셋되고(도 8의 단계 S44 참조), 후술하는 비교부(512D)에 의해, 리셋후의 경과 시간이 미리 설정된 소정 시간 T에 도달했는지의 여부를 검지하기 위해 이용된다.
비교부(512D)는, 캐시 히트한 시점에서 제1 실시형태의 비교부(512A)와 동일한 비교 처리를 행하는 것 외에, 제4 실시형태에서는, 계시부(511D)에 의한 계시 시간과 소정 시간 T을 비교하여, 계시 시간이 소정 시간 T 이상이 되었는지의 여부를 검지하여 감시 결과로서 출력하는 것이다. 소정 시각(T)은, 예를 들어, 제1 실시형태에서 상술한 바와 같이 산출되어, 캐시 제어부(50D) 내의 기억부에 미리 등록 보존되어 있다.
리프레시부(52D)는, 제1 실시형태의 리프레시부(52A)와 마찬가지로, 감시부(51D)에 의한 감시 결과에 따라서, 캐시 메모리(30)의 하나 이상의 캐시 라인에서의 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행하는 것이다. 보다 구체적으로, 제4 실시형태의 리프레시부(52D)도, 제1 실시형태의 리프레시부(52A)와 마찬가지로, 감시부(51D)로부터의 감시 결과가, 액세스 시각(캐시 히트 인식 시각)이 보존 시각으로부터 소정 시간 T 이상 경과한 것을 나타내는 경우, 대응하는 하나의 캐시 라인에서의 액세스 대상 데이터를 메인 메모리(20)로부터 재차 판독하여 보존하는 리프레시 처리를 행한다. 즉, 이 때 그 액세스 대상 데이터에 대해 캐시 히트 판정이 이루어지고 있지만, 리프레시부(52D)는, 캐시 히트라 하더라도 상술한 바와 같은 경우, 그 액세스 대상 데이터에 대해 캐시 미스했을 때와 동등한 동작을 행한다.
또한, 제4 실시형태의 리프레시부(52D)는, 감시부(51D)로부터의 감시 결과가, 계시부(511D)에 의한 계시 시간이 소정 시간 T 이상이 된 것을 나타내는 경우, 캐시 메모리(30)에서의 모든 캐시 라인을 무효화하는 무효화부로서 기능한다. 구체적으로, 리프레시부(52D)는, 태그 메모리(40)의 VALID 비트를 「0」으로 설정함으로써 캐시 라인을 무효화한다. 이것에 의해, 무효화 처리 이후에, 무효화된 캐시 라인에 보존되어 있던 데이터가 CPU(10)의 메모리 액세스의 대상 데이터가 되면, 그 데이터에 대해서는 캐시 미스 판정이 되어, 제1 실시형태와 마찬가지로, 메인 메모리(20)로부터 재차 판독된다. 즉, 그 데이터가, 새롭게 메인 메모리(20)로부터 판독되어 캐시 메모리(30)에 보존되고, 그 데이터에 관한 관리 정보가 태그 메모리(40)에 등록된다. 상술한 바와 같이 리프레시부(52D)가 그 캐시 라인을 무효화함으로써, 실질적으로 캐시 라인에서의 데이터가 리로드/리프레시되게 된다. 이 때, 제1 실시형태와 마찬가지로, 타임 스탬프 발행부(511D)에 의해 보존 시각을 나타내는 타임 스탬프가 발행되어, 태그 메모리(40)의 대응 캐시 라인에 기록된다.
[4-2] 제4 실시형태의 동작
다음으로, 상술한 바와 같이 구성된 제4 실시형태의 캐시 제어부(50D)를 갖는 정보 처리 장치(1D)의 동작에 관해, 도 8에 나타내는 플로우차트(단계 S41∼S44)에 따라서 설명한다. 캐시 제어부(50D)는, CPU(10)로부터의 메모리 액세스를 받은 경우에는, 제1 실시형태의 캐시 제어부(50A)와 마찬가지로, 도 2에 나타내는 플로우차트(단계 S11∼S18)에 따라서 동작을 행한다.
한편, 제4 실시형태의 캐시 제어부(50D)에서는, 비교부(512D)가, 계시부(511D)에 의한 계시 시간과 소정 시간(제한 시간; T)을 비교하고 있고(단계 S41), 그 비교 결과(감시 결과)가 리프레시부(52D)에 출력된다. 그리고, 계시 시간이 소정 시간 T내이면(단계 S42의 Yes 루트), 캐시 제어부(50D)는 단계 S41의 처리로 되돌아가고, 계시 시간이 소정 시간 T 이상이면(단계 S42의 No 루트), 캐시 제어부(50D)의 리프레시부(52D)가 기능한다. 즉, 리프레시부(무효화부; 52D)는, 캐시 메모리(30)/태그 메모리(40)에서의 캐시 라인을 전부 무효화하고(단계 S43), 계시부(511D)를 리셋하고(단계 S44), 캐시 제어부(50D)는 단계 S41의 처리로 되돌아간다.
그 후, 상술한 바와 같이 단계 S43에서 무효화된 캐시 라인에 보존되어 있던 데이터가 CPU(10)의 메모리 액세스의 대상 데이터가 되면, 그 데이터에 대해서는 캐시 미스 판정이 된다(도 2의 단계 S12의 No 루트 참조). 따라서, 그 데이터는, 새롭게 메인 메모리(20)로부터 판독되어 캐시 메모리(30)에 보존되고, 그 데이터에 관한 관리 정보(어드레스나 타임 스탬프)가 태그 메모리(40)에 등록된다(도 2의 단계 S14, S15, S18 참조). 이러한 무효화 처리에 의해, 실질적으로 그 캐시 라인에서의 데이터가 리로드/리프레시된다.
[4-3] 제4 실시형태의 효과
이와 같이, 제4 실시형태의 캐시 제어 장치(50D)를 갖는 정보 처리 장치(1D)에서는, 소정 시간 T만큼 경과하면 캐시 메모리(30)에서의 데이터가 소프트 에러로 파괴될 가능성이 높아지는 것을 전제로 하고 있다. 그 전제에 기초하여, 소프트 에러 발생 주기 τ보다 짧은 시간 간격인 소정 시간 T만큼 경과할 때마다, 캐시 메모리(30)에서의 모든 캐시 라인이 무효화된다.
따라서, 제4 실시형태에서도, 소프트 에러로 파괴됐을지도 모르는 캐시 메모리(30)의 데이터가, 메인 메모리(20)에서의 신뢰성이 높은 대응 데이터로 리로드/리프레시된다. 이것에 의해, 캐시 메모리(30)에서의 소프트 에러가 구제되어 소프트 에러의 발생 확률이 감소하여, 캐시 메모리(30)를 사용하는 시스템(CPU(10))에서의, 소프트 에러에 기인하는 오동작의 발생을 확실하게 억제할 수 있다.
[5] 기타
본 발명은 상술한 실시형태에 한정되지 않고, 본 발명의 취지를 일탈하지 않는 범위에서 다양하게 변형하여 실시할 수 있다.
또, 상술한 감시부(51A∼51D)(타임 스탬프 발행부(511A∼511D) 및 비교부(512A∼512D) 및 리프레시부(52A∼52D)로서의 기능의 전부 또는 일부는, CPU, 정보 처리 장치, 각종 단말을 포함하는 컴퓨터가 소정 애플리케이션 프로그램(캐시 제어 프로그램)을 실행함으로써 실현된다.
그 프로그램은, 예를 들어 플렉서블 디스크, CD(CD-ROM, CD-R, CD-RW 등), DVD(DVD-ROM, DVD-RAM, DVD-R, DVD-RW, DVD+R, DVD+RW, 블루레이 디스크 등) 등의 컴퓨터 판독 가능한 기록 매체에 기록된 형태로 제공된다. 이 경우, 컴퓨터는 그 기록 매체로부터 프로그램을 판독하여 내부 기억 장치 또는 외부 기억 장치에 전송하고 저장하여 이용한다.
여기서, 컴퓨터는 하드웨어와 OS를 포함하는 개념이며, OS의 제어하에 동작하는 하드웨어를 뜻한다. 또, OS가 불필요하고 애플리케이션 프로그램 단독으로 하드웨어를 동작시키는 경우에는, 그 하드웨어 자체가 컴퓨터에 해당한다. 하드웨어는, 적어도, CPU 등의 마이크로프로세서와, 기록 매체에 기록된 컴퓨터 프로그램을 판독하기 위한 수단을 포함하고 있다. 상기 프로그램은, 상술한 바와 같이 컴퓨터에 감시부(51A∼51D) 및 리프레시부(52A∼52D)로서의 기능을 실현시키는 프로그램 코드를 포함하고 있다. 또, 그 기능의 일부는, 애플리케이션 프로그램이 아니라 OS에 의해 실현되어도 된다.
[6] 부기
이상의 본 실시형태를 포함하는 실시형태에 관해 이하의 부기를 개시한다.
(부기 1)
처리부에 의해 사용되도록 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리를, 태그 메모리를 이용하여 관리하고 라이트스루 방식으로 운용하는 캐시 제어 장치로서,
상기 캐시 메모리에의 액세스 시각을 감시하는 감시부와,
상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부를 갖는 것을 특징으로 하는 캐시 제어 장치.
(부기 2)
상기 감시부는,
상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 소정 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 것을 특징으로 하는 부기 1에 기재된 캐시 제어 장치.
(부기 3)
상기 감시부는,
상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
상기 캐시 메모리의 각 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 소정 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 것을 특징으로 하는 부기 1에 기재된 캐시 제어 장치.
(부기 4)
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인을 무효화하는 것을 특징으로 하는 부기 3에 기재된 캐시 제어 장치.
(부기 5)
상기 감시부는,
상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 소정 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하고, 그 캐시 라인 이외의 캐시 라인에 대해서는 전부 무효화하는 것을 특징으로 하는 부기 1에 기재된 캐시 제어 장치.
(부기 6)
상기 감시부는,
시간을 계시하는 계시부와,
상기 계시부에 의한 계시 시간과 소정 시간을 비교하여, 상기 계시 시간이 상기 소정 시간 이상이 되었는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 계시 시간이 상기 소정 시간 이상이 된 것을 나타내는 경우, 상기 캐시 메모리에서의 모든 캐시 라인을 무효화하는 것을 특징으로 하는 부기 1에 기재된 캐시 제어 장치.
(부기 7)
상기 캐시 메모리는 SRAM(Static Random Access Memory)이며,
상기 리프레시부가, 중성자에 의한 소프트 에러에 의해 상기 SRAM의 메모리셀에서의 데이터가 파괴되는 것을 방지하기 위해 동작하는 것을 특징으로 하는 부기 2∼부기 6 중 어느 하나에 기재된 캐시 제어 장치.
(부기 8)
상기 비교부에서 비교 기준으로서 이용되는 상기 소정 시간이, 상기 메모리셀의 구조에 의해 기생적으로 존재하고, 상기 중성자에 의해 활성화되는 사이리스터 구조의 래치업에 의해 상기 데이터가 파괴될 때까지의 데이터 파괴 시간보다 짧은 시간 간격인 것을 특징으로 하는 부기 7에 기재된 캐시 제어 장치.
(부기 9)
상기 데이터를 유지하는 상기 메모리셀의 노드 전하와, 상기 사이리스터 구조에서 누설 전류가 통과하는 저항의 저항치에 기초하여, 상기 데이터 파괴 시간이 산출되는 것을 특징으로 하는 부기 8에 기재된 캐시 제어 장치.
(부기 10)
처리부와, 주메모리와, 상기 처리부에 의해 사용되도록 상기 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리와, 상기 캐시 메모리에서의 각 캐시 라인을 관리하는 태그 메모리와, 상기 태그 메모리를 이용하여 상기 캐시 메모리를 관리하고 라이트스루 방식으로 운용하는 캐시 제어부를 갖는 정보 처리 장치로서,
상기 캐시 제어부는,
상기 캐시 메모리에의 액세스 시각을 감시하는 감시부와,
상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부를 갖는 것을 특징으로 하는 정보 처리 장치.
(부기 11)
상기 감시부는,
상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 소정 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 것을 특징으로 하는 부기 10에 기재된 정보 처리 장치.
(부기 12)
상기 감시부는,
상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
상기 캐시 메모리의 각 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 소정 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 것을 특징으로 하는 부기 10에 기재된 정보 처리 장치.
(부기 13)
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인을 무효화하는 것을 특징으로 하는 부기 12에 기재된 정보 처리 장치.
(부기 14)
상기 감시부는,
상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 소정 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하고, 그 캐시 라인 이외의 캐시 라인에 대해서는 전부 무효화하는 것을 특징으로 하는 부기 10에 기재된 정보 처리 장치.
(부기 15)
상기 감시부는,
시간을 계시하는 계시부와,
상기 계시부에 의한 계시 시간과 소정 시간을 비교하여, 상기 계시 시간이 상기 소정 시간 이상이 되었는지의 여부를 상기 감시 결과로서 출력하는 비교부를 가지며,
상기 리프레시부는,
상기 감시부로부터의 상기 감시 결과가, 상기 계시 시간이 상기 소정 시간 이상이 된 것을 나타내는 경우, 상기 캐시 메모리에서의 모든 캐시 라인을 무효화하는 것을 특징으로 하는 부기 10에 기재된 정보 처리 장치.
(부기 16)
상기 캐시 메모리는 SRAM(Static Random Access Memory)이며,
상기 리프레시부는, 중성자에 의한 소프트 에러에 의해 상기 SRAM의 메모리셀에서의 데이터가 파괴되는 것을 방지하기 위해 동작하는 것을 특징으로 하는 부기 11∼부기 15 중 어느 하나에 기재된 정보 처리 장치.
(부기 17)
상기 비교부에서 비교 기준으로서 이용되는 상기 소정 시간은, 상기 메모리셀의 구조에 의해 기생적으로 존재하고, 상기 중성자에 의해 활성화되는 사이리스터 구조의 래치업에 의해 상기 데이터가 파괴될 때까지의 데이터 파괴 시간보다 짧은 시간 간격인 것을 특징으로 하는 부기 16에 기재된 정보 처리 장치.
(부기 18)
상기 데이터를 유지하는 상기 메모리셀의 노드 전하와, 상기 사이리스터 구조에서 누설 전류가 통과하는 저항의 저항치에 기초하여, 상기 데이터 파괴 시간이 산출되는 것을 특징으로 하는 부기 17에 기재된 정보 처리 장치.
(부기 19)
처리부에 의해 사용되도록 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리를, 태그 메모리를 이용하여 관리하고 라이트스루 방식으로 운용하는 캐시 제어 장치로서 컴퓨터를 기능시키는 캐시 제어 프로그램으로서,
상기 캐시 메모리에의 액세스 시각을 감시하는 감시부 및
상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부로서, 상기 컴퓨터를 기능시키는 것을 특징으로 하는 캐시 제어 프로그램.
(부기 20)
상기 컴퓨터를 상기 감시부로서 기능시킬 때,
상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부, 및
상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 소정 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부로서 상기 컴퓨터를 기능시키고,
상기 컴퓨터를 상기 리프레시부로서 기능시킬 때,
상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 소정 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하도록, 상기 컴퓨터를 기능시키는 것을 특징으로 하는 부기 19에 기재된 캐시 제어 프로그램.
1A, 1B, 1C, 1D : 정보 처리 장치 10 : CPU(처리부)
20 : 메인 메모리(주메모리) 30 : 캐시 메모리
40 : 태그 메모리
50A, 50B, 50C, 50D : 캐시 제어부(캐시 제어 장치)
51A, 51B, 51C, 51D : 감시부
511A, 511B, 511C : 타임 스탬프 발행부
511D : 타임 스탬프 발행부(계시부)
512A, 512B, 512C, 512D : 비교부 52A : 리프레시부
52B, 52C, 52D : 리프레시부(무효화부)

Claims (10)

  1. 처리부에 의해 사용되도록 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리를, 태그 메모리를 이용하여 관리하고 라이트스루(write-through) 방식으로 운용하는 캐시 제어 장치로서,
    상기 캐시 메모리에의 액세스 시각을 감시하는 감시부와,
    상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부
    를 갖는 것을 특징으로 하는 캐시 제어 장치.
  2. 제1항에 있어서,
    상기 감시부는,
    상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
    상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 미리 결정된 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부
    를 가지며,
    상기 리프레시부는,
    상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 미리 결정된 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 것을 특징으로 하는 캐시 제어 장치.
  3. 제1항에 있어서,
    상기 감시부는,
    상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
    상기 캐시 메모리의 각 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 미리 결정된 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부
    를 가지며,
    상기 리프레시부는,
    상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 미리 결정된 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 것을 특징으로 하는 캐시 제어 장치.
  4. 제3항에 있어서,
    상기 리프레시부는,
    상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 미리 결정된 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인을 무효화하는 것을 특징으로 하는 캐시 제어 장치.
  5. 제1항에 있어서,
    상기 감시부는,
    상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
    상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 미리 결정된 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부
    를 가지며,
    상기 리프레시부는,
    상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 미리 결정된 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하고, 그 캐시 라인 이외의 캐시 라인에 대해서는 전부 무효화하는 것을 특징으로 하는 캐시 제어 장치.
  6. 제1항에 있어서,
    상기 감시부는,
    시간을 계시하는 계시부와,
    상기 계시부에 의한 계시 시간과 미리 결정된 시간을 비교하여, 상기 계시 시간이 상기 미리 결정된 시간 이상이 되었는지의 여부를 상기 감시 결과로서 출력하는 비교부
    를 가지며,
    상기 리프레시부는,
    상기 감시부로부터의 상기 감시 결과가, 상기 계시 시간이 상기 미리 결정된 시간 이상이 된 것을 나타내는 경우, 상기 캐시 메모리에서의 모든 캐시 라인을 무효화하는 것을 특징으로 하는 캐시 제어 장치.
  7. 처리부와, 주메모리와, 상기 처리부에 의해 사용되도록 상기 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리와, 상기 캐시 메모리에서의 각 캐시 라인을 관리하는 태그 메모리와, 상기 태그 메모리를 이용하여 상기 캐시 메모리를 관리하고 라이트스루 방식으로 운용하는 캐시 제어부를 갖는 정보 처리 장치로서,
    상기 캐시 제어부는,
    상기 캐시 메모리에의 액세스 시각을 감시하는 감시부와,
    상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부
    를 갖는 것을 특징으로 하는 정보 처리 장치.
  8. 제7항에 있어서,
    상기 감시부는,
    상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부와,
    상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 미리 결정된 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부
    를 가지며,
    상기 리프레시부는,
    상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 미리 결정된 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 것을 특징으로 하는 정보 처리 장치.
  9. 처리부에 의해 사용되도록 주메모리로부터 판독된 데이터를 일시적으로 보존하는 캐시 메모리를, 태그 메모리를 이용하여 관리하고 라이트스루 방식으로 운용하는 캐시 제어 장치로서 컴퓨터를 기능시키는 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    상기 캐시 메모리에의 액세스 시각을 감시하는 감시부, 및
    상기 감시부에 의한 감시 결과에 따라서, 상기 캐시 메모리의 하나 이상의 캐시 라인에서의 데이터를 상기 주메모리로부터 재차 판독하여 보존하는 리프레시부
    로서 상기 컴퓨터를 기능시키는 것을 특징으로 하는 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  10. 제9항에 있어서,
    상기 컴퓨터를 상기 감시부로서 기능시킬 때,
    상기 주메모리로부터 상기 캐시 메모리에 데이터를 판독하여 보존할 때, 상기 태그 메모리에, 그 데이터의 보존처인 상기 캐시 메모리의 캐시 라인에의 그 데이터의 보존 시각을 나타내는 타임 스탬프를 기록하는 타임 스탬프 발행부, 및
    상기 태그 메모리에서의 태그 정보에 기초하여 상기 처리부의 메모리 액세스의 대상 데이터가 상기 캐시 메모리에 보존되어 있는 것이 인식된 시점에서, 그 대상 데이터를 보존하는 캐시 라인에 관한 상기 타임 스탬프가 나타내는 상기 보존 시각과 현재 시각을 비교하여, 상기 현재 시각이 상기 보존 시각으로부터 미리 결정된 시간 이상 경과했는지의 여부를 상기 감시 결과로서 출력하는 비교부
    로서 상기 컴퓨터를 기능시키고,
    상기 컴퓨터를 상기 리프레시부로서 기능시킬 때,
    상기 감시부로부터의 상기 감시 결과가, 상기 현재 시각이 상기 보존 시각으로부터 상기 미리 결정된 시간 이상 경과한 것을 나타내는 경우, 그 캐시 라인에서의 그 대상 데이터를 상기 주메모리로부터 재차 판독하여 보존하도록 상기 컴퓨터를 기능시키는 것을 특징으로 하는 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020100016704A 2009-03-30 2010-02-24 캐시 제어 장치, 정보 처리 장치 및 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 KR101139151B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2009-081888 2009-03-30
JP2009081888A JP2010237739A (ja) 2009-03-30 2009-03-30 キャッシュ制御装置,情報処理装置およびキャッシュ制御プログラム

Publications (2)

Publication Number Publication Date
KR20100109365A true KR20100109365A (ko) 2010-10-08
KR101139151B1 KR101139151B1 (ko) 2012-04-26

Family

ID=42785699

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100016704A KR101139151B1 (ko) 2009-03-30 2010-02-24 캐시 제어 장치, 정보 처리 장치 및 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Country Status (5)

Country Link
US (1) US20100250857A1 (ko)
JP (1) JP2010237739A (ko)
KR (1) KR101139151B1 (ko)
CN (1) CN101853217B (ko)
TW (1) TW201101029A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101319670B1 (ko) * 2010-11-09 2013-10-17 후지쯔 가부시끼가이샤 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법
KR20140137634A (ko) 2013-05-23 2014-12-03 에스케이플래닛 주식회사 캐시 데이터와 현재 데이터의 실시간 처리 현황 및 처리 순위를 보여주기 위한 장치 및 방법

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788758B1 (en) * 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8739010B2 (en) * 2010-11-19 2014-05-27 Altera Corporation Memory array with redundant bits and memory element voting circuits
JP5737753B2 (ja) * 2011-03-30 2015-06-17 日本電気株式会社 ネットワーク装置、ネットワーク装置の管理方法、管理プログラム、パケットネットワークシステム
TWI459201B (zh) * 2012-04-27 2014-11-01 Toshiba Kk Information processing device
US8886890B2 (en) 2012-06-27 2014-11-11 Sap Portals Israel Ltd Adaptive configuration of cache
JP6066831B2 (ja) 2013-05-28 2017-01-25 株式会社日立製作所 計算機システム及びキャッシュ制御方法
CN104346295B (zh) * 2013-08-09 2017-08-11 华为技术有限公司 一种缓存刷新方法和装置
US9262415B2 (en) * 2013-11-08 2016-02-16 Sybase, Inc. Cache efficiency in a shared disk database cluster
US9589606B2 (en) * 2014-01-15 2017-03-07 Samsung Electronics Co., Ltd. Handling maximum activation count limit and target row refresh in DDR4 SDRAM
CN105404595B (zh) * 2014-09-10 2018-08-31 阿里巴巴集团控股有限公司 缓存管理方法及装置
CN105553722B (zh) * 2015-12-16 2019-01-08 深圳市迪菲特科技股份有限公司 一种基于时间戳的数据交换方法、装置及系统
US10691572B2 (en) 2017-08-30 2020-06-23 Nvidia Corporation Liveness as a factor to evaluate memory vulnerability to soft errors
US11237972B2 (en) 2017-12-29 2022-02-01 Advanced Micro Devices, Inc. Method and apparatus for controlling cache line storage in cache memory
US10892012B2 (en) * 2018-08-23 2021-01-12 Intel Corporation Apparatus, video processing unit and method for clustering events in a content addressable memory
CN110941569B (zh) * 2019-11-18 2021-01-26 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695962A (ja) * 1992-09-09 1994-04-08 Hitachi Ltd 並列アクセスバスをもつプロセッサ
KR960011280B1 (ko) * 1993-08-31 1996-08-21 삼성전자 주식회사 캐쉬메모리 억세스 타임조정회로
US20030131277A1 (en) * 2002-01-09 2003-07-10 Taylor Richard D. Soft error recovery in microprocessor cache memories
US7502901B2 (en) * 2003-03-26 2009-03-10 Panasonic Corporation Memory replacement mechanism in semiconductor device
JP2005092311A (ja) * 2003-09-12 2005-04-07 Fujitsu Ltd キャッシュ制御装置
US7353329B2 (en) * 2003-09-29 2008-04-01 Intel Corporation Memory buffer device integrating refresh logic
JP4291225B2 (ja) * 2004-06-30 2009-07-08 富士通株式会社 パラレルデータを受信する装置および方法
JP2006031383A (ja) * 2004-07-15 2006-02-02 Hitachi Global Storage Technologies Netherlands Bv リアルタイム性能向上方式を実装したディスク装置
US20070025141A1 (en) * 2005-07-26 2007-02-01 Fujitsu Limited SRAM, semiconductor memory device, and method for maintaining data in SRAM
JP5066855B2 (ja) * 2005-07-26 2012-11-07 富士通株式会社 Sram,半導体記憶装置,sramにおけるデータ維持方法,及び電子装置
US7493523B2 (en) * 2006-03-14 2009-02-17 International Business Machines Corporation Method and apparatus for preventing soft error accumulation in register arrays
US20070250755A1 (en) * 2006-03-29 2007-10-25 Wayne Burleson Dormant error checker
US7937531B2 (en) * 2007-02-01 2011-05-03 Cisco Technology, Inc. Regularly occurring write back scheme for cache soft error reduction
US8397130B2 (en) * 2008-11-26 2013-03-12 Arizona Board Of Regents For And On Behalf Of Arizona State University Circuits and methods for detection of soft errors in cache memories

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101319670B1 (ko) * 2010-11-09 2013-10-17 후지쯔 가부시끼가이샤 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법
KR20140137634A (ko) 2013-05-23 2014-12-03 에스케이플래닛 주식회사 캐시 데이터와 현재 데이터의 실시간 처리 현황 및 처리 순위를 보여주기 위한 장치 및 방법

Also Published As

Publication number Publication date
US20100250857A1 (en) 2010-09-30
JP2010237739A (ja) 2010-10-21
CN101853217A (zh) 2010-10-06
TW201101029A (en) 2011-01-01
KR101139151B1 (ko) 2012-04-26
CN101853217B (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
KR101139151B1 (ko) 캐시 제어 장치, 정보 처리 장치 및 캐시 제어 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR102333297B1 (ko) 압축 데이터 및 태그가 있는 캐시
JP4283221B2 (ja) 繰返し失敗したメモリ位置を無効にする実行をイネーブルにするため、失敗したメモリ位置を追跡する各種方法及び装置
US8725936B2 (en) Storage system with flash memory, and storage control method
KR101291525B1 (ko) 에러 정정 디바이스 및 그 방법
US8271853B2 (en) Cache memory, computer system and memory access method
US20110113281A1 (en) Data storage system and method
TWI655574B (zh) Memory system and processor system
KR102515417B1 (ko) 캐시 메모리 장치 및 그것의 동작 방법
CN108701070B (zh) 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理
US9081719B2 (en) Selective memory scrubbing based on data type
CN1318972C (zh) 用于存储设备的自主错误恢复方法、系统及高速缓存
US9081693B2 (en) Data type dependent memory scrubbing
KR100972807B1 (ko) 에러 정정 코드 생성 방법 및 메모리 관리 장치
CN106933494A (zh) 混合存储设备的操作方法和装置
US20030131277A1 (en) Soft error recovery in microprocessor cache memories
KR20170078592A (ko) 메모리 컨트롤러, 기억 장치, 정보 처리 시스템 및 메모리의 제어 방법
US10496546B2 (en) Cache memory and processor system
JP2014026589A (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
US9141451B2 (en) Memory having improved reliability for certain data types
JP3130796B2 (ja) 制御記憶装置
JPH0673111B2 (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