의사 에러 발생 장치

申请号 KR1020110086489 申请日 2011-08-29 公开(公告)号 KR1020120031875A 公开(公告)日 2012-04-04
申请人 후지쯔 가부시끼가이샤; 发明人 후쿠다다카토시;
摘要 PURPOSE: A pseudo error generating device is provided to generate pseudo error corresponding to soft error in a semiconductor memory in order to predict error probability. CONSTITUTION: An information storing unit stores data including information bit and redundancy bit. A reading unit reads out data which adds information bit of a preset address and capacity bit without ECC(Error Check And Correction). A write-back unit writes back the address of the information storing unit. An error generation interval setting unit(32) sets up time interval of repeating reading operation and write-back operation.
权利要求
  • 정보 비트와 용장 비트를 포함하는 데이터를 저장하는 정보 기억부와,
    상기 정보 기억부로부터, 임의로 설정된 어드레스의, 정보 비트와 용장 비트를 합한 데이터를, 에러 검출 및 에러 정정을 하지 않고 판독하는 판독 수단과,
    그 판독된 정보 비트와 용장 비트를 합한 데이터 중, 임의로 설정된 비트 위치의 1 이상의 비트를 반전시키고, 그 비트 반전된 데이터를 상기 정보 기억부의 원래의 어드레스에 라이트백(write back)하는 라이트백 수단
    을 포함하는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 상기 판독 수단의 판독 동작과 상기 라이트백 수단의 라이트백 동작을 포함하는 일련의 동작을 반복하여 행하는 시간 간격을 설정하는 에러 발생 간격 설정부를 더 포함하는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제2항에 있어서, 상기 에러 발생 간격 설정부는, 상이한 시간 간격을 유지하는 복수의 설정부를 포함하고, 이들을 전환하여 사용할 수 있는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 상기 정보 기억부는 복수의 메모리를 포함하고,
    어느 메모리에 관해, 상기 판독 수단의 판독 동작과, 상기 라이트백 수단의 라이트백 동작을 행할지를 설정할 수 있는 메모리 선택부를 더 포함하는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, CPU의 상기 정보 기억부에 대한 액세스의 종료를 대기하여, 상기 판독 수단의 판독 동작과, 상기 라이트백 수단의 라이트백 동작을 행하는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 상기 판독 수단의 판독 동작과, 상기 라이트백 수단의 라이트백 동작을 행하고 있는 동안에는, CPU로부터의 상기 정보 기억부에 대한 액세스를 대기시키는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 상기 임의로 설정된 어드레스는, 최대값과 최소값으로 결정되는 범위내에서 발생하는 난수에 의해 지정되는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 상기 임의로 설정된 비트 위치는, 최대값과 최소값으로 결정되는 범위내에서 발생하는 난수에 의해 지정되는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 상기 정보 기억부는 캐쉬 메모리이고,
    상기 캐쉬 메모리에 저장되는 태그부를 포함하는 정보 비트와 용장 비트를 합한 데이터에 관해, 상기 판독 수단의 판독 동작과, 상기 라이트백 수단의 라이트백 동작을 행하는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 카운트업의 최대값을 n으로 했을 때, n을 설정할 수 있는 n진 카운터를 더 포함하고,
    n회의 1 비트의 의사 에러에 대하여, 1회의 2 비트 이상의 의사 에러를 발생시키는 것을 특징으로 하는 의사 에러 발생 장치.
  • 제1항에 있어서, 상기 판독 수단과 상기 라이트백 수단의 조(組)를 복수 포함하는 의사 에러 발생 장치.
  • 제1항에 있어서, 캐쉬 메모리를 포함하는 CPU를 복수개 포함하는 장치이고,
    그 복수의 CPU 내의 복수의 상기 캐쉬 메모리에 대하여 어드레스를 할당하고, 상기 어드레스도 랜덤으로 발생시키는 기구를 탑재한 의사 에러 발생 장치.
  • 제1항에 기재된 의사 에러 발생 장치를 포함하는 반도체 장치.
  • 정보 비트와 용장 비트를 포함하는 데이터를 저장하는 정보 기억부를 포함하는 정보 장치에서의 의사 에러 발생 방법으로서,
    상기 정보 기억부로부터, 임의로 설정된 어드레스의, 정보 비트와 용장 비트를 합한 데이터를, 에러 검출 및 에러 정정을 하지 않고 판독하고,
    그 판독된 정보 비트와 용장 비트를 합한 데이터 중, 임의로 설정된 비트 위치의 1 이상의 비트를 반전시키고, 그 비트 반전된 데이터를 상기 정보 기억부의 원래의 어드레스에 라이트백하는 것을 특징으로 하는 의사 에러 발생 방법.
  • 说明书全文

    의사 에러 발생 장치{SIMULATED ERROR CAUSING APPARATUS}

    이하의 실시형태는, 반도체 장치의 메모리 내에 발생하는 소프트 에러를 의사적으로 발생시키는 의사 에러 발생 장치에 관한 것이다.

    최근, 반도체 장치의 구성의 미세화가 진행되고, 반도체 메모리의 회로도 매우 미세한 구성으로 되어 있다. 따라서, 반도체 메모리의 회로는, 외부로부터의 근소한 에너지의 영향으로도 동작에 영향을 받기 쉽게 되어 있어, 반도체 메모리에 대한 α선이나 우주선(중성자선)에 의한 소프트 에러가 문제시 되고 있다. 이러한 소프트 에러에 의한 데이터의 에러를 정정하기 위해, ECC 회로에 의해 1 비트 에러를 정정하는 것이, 대용량 메모리 장치에서는 상식으로 되어 있다. 또한, 반도체 프로세스의 미세화가 진행되는 중에, 마이크로 프로세서 내의 캐쉬 메모리의 소프트 에러나, 중성자선에 의한 다(多)비트 에러의 발생이라는 문제도 나오고 있다.

    따라서, 소프트 에러에 대한 대책을 세울 필요가 있지만, 이 대책이 소프트 에러에 대하여 유효하게 동작하는지의 여부를 조사해야 한다. 그것을 위해서는, 소프트 에러를 의사적으로 발생시켜 동작을 시험해야 한다.

    종래 기술에는, 의사적으로 에러를 메모리에 주입하는 방법이 존재하지만, 이 방법에서는, 메모리 유닛이 소켓이나 커넥터를 통해 접속되어 있어야 하고, 또 CPU와 동일 패키지에 실장되어 있는 캐쉬 메모리가 대상이 될 수 없는 구성으로 되어 있다.

    일본 특허 공개 제2004-21922호 공보

    이하의 실시형태에서는, 반도체 메모리에 의사적으로 에러를 발생시키는 의사 에러 발생 장치를 제공한다.

    본 실시형태의 일측면에서의 의사 에러 발생 장치는, 정보 비트와 용장 비트를 포함하는 데이터를 저장하는 정보 기억부와, 상기 정보 기억부로부터, 임의로 설정된 어드레스의, 정보 비트와 용장 비트를 합한 데이터를, 에러 검출이나 에러 정정을 하지 않고 판독하는 판독 수단과, 그 판독된 정보 비트와 용장 비트를 합한 데이터 중, 임의로 설정된 비트 위치의 1 이상의 비트를 반전시키고, 그 비트 반전된 데이터를 상기 정보 기억부의 원래의 어드레스에 기록하는 기록 수단을 포함한다.

    이하의 실시형태에 의하면, 반도체 메모리에, 소프트 에러에 대응하는 의사적인 에러를 발생시키는 의사 에러 발생 장치가 제공된다.

    도 1은 본 실시형태의 의사 에러 발생 장치를 이용한 시스템 구성도이다.
    도 2는 의사 에러 발생부의 구성도이다.
    도 3은 캐쉬 메모리로의 에러 기록에 관해 설명하는 제1 도면이다.
    도 4는 캐쉬 메모리로의 에러 기록에 관해 설명하는 제2 도면이다.
    도 5는 도 2의 n진 카운터의 구성을 나타낸 도면이다.
    도 6은 최대값과 최소값을 갖는 도 2의 난수 발생기의 구성도이다.
    도 7은 도 2의 다(多)비트 에러 발생 비율 제어부의 상세도이다.
    도 8은 의사 다비트 에러로서, 3 비트 에러를 발생시키기 위한 의사 에러 발생부의 구성도이다.
    도 9는 도 8의 다비트 에러 발생 비율 제어부의 상세도이다.
    도 10은 본 실시형태가 적용되는 멀티 코어 정보 처리 장치의 제1 예의 구성을 나타낸 도면이다.
    도 11은 본 실시형태가 적용되는 멀티 코어 정보 처리 장치의 제2 예의 구성을 나타낸 도면이다.
    도 12는 도 11의 의사 에러 발생 기구(93)의 상세도이다.

    소프트 에러에는, α선이나 우주선(중성자선) 또는 전원 노이즈 등이 원인이 되고, 판독했을 때에는 에러가 되지만, 재기록을 행한 후에는 정상적인 판독을 행할 수 있다는 특징이 있다. 이하의 실시형태에서는, 정보 기억(메모리)부에 대하여 소프트 에러를 의사적으로 발생시키는 구성을 나타낸다. 이와 같이, 의사적으로 에러를 발생시킴으로써, 장치로서 소프트 에러가 발생한 경우의 장해의 파급 범위를 특정하는 것, 또 에러 대책이 유효하다는 것을 확인하기 위한 수단을 제공할 수 있다.

    즉, 이하의 실시형태는, α선이나 우주선(중성자선) 등에 의한 소프트 에러에 대한 대책이 필요한 정보 처리 장치에 있어서, 동작이 적절하게 행해지고 있는지의 여부의 확인 및 실제 운용 상황하에서의 에러 발생 확률을 예상하기 위해, 메모리에 대하여 의사적으로 에러를 발생시키는 것이다.

    도 1은 본 실시형태의 의사 에러 발생 장치를 이용한 시스템 구성도이다.

    도 1의 점선 안에는, 통상 반도체의 1칩(10)으로 구성되고, 여기에 메인 메모리(11)를 접속한 구성을 갖는다. 의사 에러 발생부(12)는, 정기적으로 CPU(13)가 캐쉬 메모리(14) 또는 메인 메모리(11)에 액세스하지 않는 기간을 이용하여 의사 에러를 발생시킨다. 즉, 메인 메모리(11) 및 캐쉬 메모리(14)에 대하여 용장 비트도 포함하여, 에러 정정이나 에러 검출을 행하지 않고 판독한다. 그 판독된 데이터의 랜덤으로 선택된 1 비트 또는 2 비트 이상의 정보를 반전시켜, 판독된 어드레스에 기록을 행한다. 이 때, 기록시에 ECC 생성 회로(15)나 패리티 생성 회로(16)로부터 출력되는 데이터를 기록하는 것이 아니라, 판독시의 데이터의 비트 반전 결과를 용장 비트도 포함하여 그대로 기록한다.

    이렇게 함으로써, CPU(13)로부터의 통상의 판독이, 의사 에러 발생부(12)로부터 기록된 어드레스로부터 행해지면, 1 비트 또는 2 비트 이상의 에러를 발생시킨다.

    통상의 CPU(13)의 메모리에 대한 액세스는, 제어 신호의 메인 메모리(11)에 대한 액세스 MMS(Main-Uemory-Select) 신호와 캐쉬 메모리(14)에 대한 액세스 CMS(Cache-Memory-Select) 신호와 R/W(판독/기록) 신호에 의해 행해진다.

    CPU(13)로부터 메인 메모리(11)로의 기록은, 멀티플렉서 MPX(17)에 CPU(13)측의 신호가 메인 메모리(11)에 전달되도록 의사 에러 기록 신호(PEW)를 "0"이 의사 에러 발생부로부터 입력된다. CPU는 MMS(Main-Memory-Select) 신호를 어서트(assert)하는 동시에 어드레스 신호 MADD를 발행하고, R/W 신호를 Write로 하여 Data-Out의 내용을 유효하게 한다. 이 때, CPU(13)로부터의 데이터 Out 신호로부터 ECC 생성 회로(15)에서 체크 비트가 생성되고, 이것도 메인 메모리(11)에 기록된다. 멀티플렉서 MPX(17)로부터의 기록 데이터 Wdata는, 트라이 스테이트 버퍼(tri state buffer)(22)에 보내지고, 메인 메모리(11)의 입력 데이터가 된다. 트라이 스테이트 버퍼(22)는, 기록 데이터가 "1"이 되는 상태와, 기록 데이터가 "0"이 되는 상태와, 메인 메모리(11)로부터 판독된 데이터를 통과시키는 상태의 3가지 상태를 갖는다.

    메인 메모리(11)로부터 CPU로의 판독은, MMS를 어서트하는 동시에 어드레스 신호 MADD를 발행하고, R/W 신호를 Read로 함으로써, 원하는 어드레스로부터 트라이 스테이트 버퍼(22)를 통해 데이터의 판독을 행한다. 이 때, 판독된 데이터 RdataM에는 ECC 비트도 포함되고, ECC 검사부(18)에서 검사가 행해져, 에러가 없으면, 데이터 비트가 CPU(13)에 보내져, 판독이 완결된다. 만약, 정정 가능 에러(SEC/DED : Single Error Correct/Double Error Detect 방식에서는 1 비트 에러)가 발생하면, ECC 검사부(18)에서 데이터 비트의 에러가 일어난 개소가 정정되고, 멀티플렉서 MPX(20)를 통해 CPU(13)에 보내진다. 또, 이것과 동시에 정정 가능 에러가 발생했다는 취지가 CPU(13)에 에러 신호를 통해 통지된다. 만약, 정정 불가능 에러(SEC/DED 방식에서는 2 비트 에러)가 검출되면, 에러 신호를 통해 정정 불가능 에러가 발생한 것이 CPU(13)에 통지된다.

    CPU(13)는, 에러가 통지되면 인터럽트를 발생시켜, 에러 처리 루틴을 실행하고, 에러 로그를 취하거나 하여, 장치 전체를 리셋하거나, 전원을 자동적으로 끄도록 한다.

    CPU(13)로부터 캐쉬 메모리(14)로의 기록은, 멀티플렉서 MPX(17)에 CPU(13)측의 신호가 캐쉬 메모리(14)에 전달되도록, 우선 의사 에러 발생부는 의사 에러 기록 신호(PEW)를 "0"으로 한다. CPU(13)는 CMS 신호를 어서트하고, 이것과 동시에 어드레스 신호 MADD를 발행하고, R/W 신호를 Write로 하고, Data-Out의 내용을 유효하게 한다. 이 때, 데이터 Out 신호로부터 패리티 생성 회로(16)에서 체크 비트가 생성되어, 기록 데이터 Wdata와 함께 캐쉬 메모리(14)에 기록된다.

    캐쉬 메모리(14)로부터 CPU(13)로의 판독은, CMS를 어서트하는 동시에, 어드레스 신호 MADD를 발행하고, R/W 신호를 Read로 함으로써, 원하는 어드레스로부터 데이터의 판독을 행한다. 캐쉬 메모리(14) 내에 상기 어드레스 신호 MADD에서 지정된 데이터가 있으면 캐쉬 히트가 되고, 이 취지가 CPU(13)에 통지된다. 캐쉬 메모리(14)로부터 판독된 데이터 RdataC는, 멀티플렉서 MPX(20)를 통해 CPU(13)에 보내진다. 이 때, 패리티 비트도 동시에 판독되고, 패리티 검사부(19)에서 패리티 체크가 행해져 에러가 발생하면 에러 신호선(23)을 통해 CPU(13)에 전달된다.

    CPU(13)는 에러가 통지되면 인터럽트를 발생시켜, 에러 처리 루틴을 실행하고, 에러 로그를 취하거나 하여, 장치 전체를 리셋하거나, 전원을 자동적으로 끄거나 한다.

    캐쉬 메모리(14)의 판독에서는, 그 데이터가 캐쉬 메모리(14)에 없는 경우가 있지만, 이 때에는 캐쉬 미스 히트가 되어, 캐쉬 데이터의 갱신 등이 행해진다. 통상의 시스템 동작에서는 CPU로부터의 액세스는 최초 캐쉬에 대하여 행해지고, 미스 히트일 때에만, 메인 메모리에 대한 액세스가 실행된다.

    MMS, CMS 신호는, 의사 에러 발생부(12)에 쌍방의 논리합을 취하여(도시되지 않음) CPU-Acc로서 보내진다. 또한, 이들은, 캐쉬 메모리(14) 또는 메인 메모리(11)에 보내져, CPU(13) 중 어느 하나의 메모리에 대한 액세스 중에서의 의사 에러 발생부(12)로부터의 어느 하나의 메모리에 대한 액세스를 보류하기 위해 사용된다. 메인 메모리(11)로부터 판독된 데이터 RdataM 또는 캐쉬 메모리(14)로부터 판독된 데이터 RdataPC는, 멀티플렉서 MPX(21)에 입력되고, 어느 하나가 선택되어 의사 에러 발생부(12)에 입력된다. 데이터 RdataM은, 메인 메모리로부터 의사 에러 발생부(12)로 판독된 데이터이고, 데이터 RdataPC는, 캐쉬 메모리로부터 의사 에러 발생부(12)로 판독된 데이터이다. 어느 것이 선택되는지는, 의사 에러 발생부(12)로부터 출력되는 PMMS(의사 메인 메모리 셀렉트) 신호 또는 PCMS(의사 캐쉬 메모리 셀렉트) 신호에 의해 지정된다. PMMS(의사 메인 메모리 셀렉트) 신호 또는 PCMS(의사 캐쉬 메모리 셀렉트) 신호는, 메인 메모리(11) 또는 캐쉬 메모리(14) 중 어느 것에 의사 에러를 기록할지를 지정한다. 또, 의사 에러 발생부(12)로부터의 어느 하나의 메모리에 대한 액세스 중에는, CPU(13)로부터의 액세스를 대기시키기 위해, PEW 신호가 "1"이 되어 의사 에러 발생부(12)로부터 CPU(13)로 발행된다.

    의사 에러 발생부(12)는, 일정 간격으로 어느 하나의 메모리로의 기록 동작(리드 모디파이 라이트)을 행한다. 리드 모디파이 라이트란, 리드인한 데이터를 변경한 후, 변경후의 데이터를 원래 어드레스에 라이트백하는 것을 나타낸다. 이를 위한 제어 신호 PMMS(의사 메인 메모리 셀렉트), PCMS(의사 캐쉬 메모리 셀렉트), PR/W(의사 Read/Write), PADD(의사 어드레스), PDATA-Out(의사 데이터 Out) 신호를 발행한다. 이들이 멀티플렉서 MPX(17)를 통하여 어느 하나의 메모리에 도달하도록, 멀티플렉서 MXP(17)의 제어 신호 PEW를 "1"로 한다. 또, 이 PEW 신호는 CPU(13)에 보내져, 의사 에러 발생부(12)로부터의 기록이 종료할 때까지 CPU(13)로부터 메모리에 대한 액세스를 제한한다.

    의사 에러 발생부(12)의 동작은, PMMS(의사 메인 메모리 셀렉트) 신호 또는 PCMS(의사 캐쉬 메모리 셀렉트) 신호로 지정되는 메모리의 판독으로부터 시작된다. 어드레스 신호(PADD)로 지정된 어드레스의 내용을 판독하여, 의사 에러 발생부(12)에 보낸다. 메인 메모리에 대한 액세스라면, 이 예의 경우, ECC의 체크 비트(용장 비트)도 ECC 검사부(18)를 통하지 않고 의사 에러 발생부(12)에서 판독된다. SEC/DED의 방식이라면, 판독된 데이터 중 어딘가 1 비트 또는 2 비트의 데이터가 반전되어, 전체 데이터로서 동일한 어드레스의 메모리에 라이트백된다.

    이 어드레스에 관해 CPU(13)가 판독을 실행함으로써 2 비트 또는 1 비트의 에러가 발생한다.

    의사 에러 발생부(12)로부터의 캐쉬에 대한 액세스인 경우, 이 예에서는, 태그부의 데이터나 패리티 비트도 포함하는 데이터 RdataPC가 의사 에러 발생부에 리드인되고, 리드인된 데이터의 1 비트가 반전되어 캐쉬 메모리의 동일 어드레스에 라이트백된다.

    이 어드레스에 관해 CPU(13)가 판독을 실행함으로써 패리티 에러가 발생한다.

    도 2는 의사 에러 발생부의 구성도이다.

    제어 레지스터(30)는, 메모리 선택부(31), 에러 발생 간격부(32), 다비트 에러 제어부(33)를 포함한다.

    메모리 선택부(31)에서는, 메인 메모리와 캐쉬 메모리 중 어느 것을 선택할지를 비트의 값으로 나타내게 되어 있다. 도 2의 예에서는, 메인 메모리와 캐쉬 메모리 2종을 대상으로 한 예로 되어 있지만, 캐쉬 메모리가 L1 캐쉬와 L2 캐쉬로 나뉘어져 있는 경우나, 메인 메모리가 2개 이상인 경우도, 비트수가 증가할 뿐 마찬가지이다. 이 신호는, 디코더(49)에 의해 디코드되어 기억부 선택 R/W 제어부(34)에 보내진다. 기억부 선택 R/W 제어부(34)는, CPU가 메인 메모리 또는 캐쉬 메모리에 액세스중이 아니라는 것을 나타내는 CPU-Acc 신호가 액티브가 아니라는 것을 확인하여, 메모리 선택부(31)의 비트를 디코더(49)로 디코드하고, 메인 메모리 선택 신호 PMMS 또는 캐쉬 메모리 선택 신호 PCMS 및 판독 기록 신호 PR/W를 발생시킨다. 또, CPU(13)에, 의사 에러 발생부(12)가 메인 메모리 또는 캐쉬 메모리에 액세스중인 것을 나타내는 PEW 신호를 어서트한다. 이 PEW 신호는 멀티플렉서 MPX(17)의 제어 신호도 된다.

    에러 발생 간격부(32)가 유지하는 값은, 어떠한 시간적 간격으로 메모리에 대하여 데이터의 반전을 일으키게 하는지를 결정한다. 주의할 점은, 데이터 반전을 일으키게 하더라도, 그 어드레스를 CPU가 판독하지 않으면, 에러가 발생했다고 CPU가 인식하지는 않는 것이다.

    실제 환경에서도 동일하지만, 즉, 데이터 반전을 일으킨 어드레스를 판독할지의 여부는, 시스템의 구성이나 어플리케이션에 따라 크게 변화한다. 어떠한 값을 설정할지에 관해 후술한다.

    n진 카운터(35)는, 클록(36)의 입력에 따라서 카운트업하고, 에러 발생 간격부(32)에 저장되어 있는 값과 카운트값이 일치했을 때, 메모리 데이터 반전을 위한 트리거 신호를 발행하여, 카운터 자신의 값을 클리어한다. 트리거 신호는 난수 발생기(37)를 기동시켜, 난수 발생기(37)가 생성하는 난수의 값을 갱신한다. 또 트리거 신호는 기억부 선택 R/W 제어부(34)에도 보내져, 메인 메모리 또는 캐쉬 메모리로의 PMMS, PCMS, PR/W, PEW의 각 신호를 출력시킨다.

    다비트 에러 제어부(33)는, 대상이 되는 메모리 시스템의 에러 정정 검출 기능에 따라서 설정된다. 1 또는 2 비트의 에러만 발생시키는 경우에는, 다비트 에러 제어부(33)는 2 비트이고, 다비트 에러의 발생 방법을 지시한다. 예를 들어, "00"이라면 다비트 에러가 없고, "01"일 때에는 다비트 에러 제어부(33)에 따라서 결정된 1 비트와 다비트 에러(도 2에서는, 2 비트 에러)율로 다비트 에러를 발생시키고, "10"일 때에는 항상 다비트 에러가 발생한다. "01"일 때의, 다비트 에러가 발생하는 어떤 정해진 비율로는, 미리 정해진 값이 설정된다.

    1 비트 에러와 다비트 에러의 비율은, 다비트 에러 발생 비율 제어부(38)에서 결정된다. 구체적으로는 요구되는 비율이 n:1인 경우(1 비트 에러가 n회에 관해 1회 다비트 에러를 발생시키는 경우), 다비트 에러 발생 비율 제어부(38)는, 후술하는 바와 같이, n진 카운터가 되도록 설정된다. 그리고, 카운터값에 캐리(carry)가 발생할 때에만 의사적으로 다비트 에러를 발생시키기 위해, 동일한 어드레스에 대하여 다비트의 데이터 반전의 기록을 행하고, 캐리가 발생하지 않는 카운트업의 경우는 의사적인 1 비트 에러를 발생시키기 위해, 1 비트만의 데이터 반전의 기록을 행한다. 도 2의 예에서는, 다비트 에러는 2 비트 에러다.

    난수 발생기(37)의 어드레스부(39)는, 대상으로 하는 메모리의 용량이나 대상으로 하는 데이터가 배치되어 있는 어드레스 위치에 대응하여, 그 최소값 및 최대값을 설정할 수 있다(후술함). 어드레스부(39)의 출력은, 어드레스 생성부(43)에서 처리된 후, 메모리 선택부(31)에서 선택된 메모리에 MPX(17)(도 1 참조)를 통해, 데이터 반전을 일으키게 해야 할 어드레스 PADD로서 보내지고, 원하는 메모리의 어드레스에 액세스한다.

    또 비트 선택부(40)는, 1 비트 이상의 비트 위치 선택부가 있고, 1 워드내의 어느 비트를 반전시킬지를 지정하는 데 사용된다. 즉, 첫번째 비트 위치에서 1 비트의 의사 에러가 발생되어야 할 비트 위치를 지정한다. 복수의 비트 선택부를 포함하는 경우에는, 비트 선택부의 비트수 만큼의 비트에 의사 에러를 발생시킬 수 있다. 비트 선택부의 각 비트 위치 발생부는 독립적으로 동작하고, 독립적으로 난수를 발생시켜, 의사 에러가 발생되어야 할 비트 위치를 지정한다. 또, 비트 선택부(40)는, 대상으로 하는 메모리의 비트폭에 따라서, 그 최대값 및 최소값을 설정할 수 있다.

    이들 어드레스 신호와, 캐쉬 메모리나 메인 메모리 중 어느 하나를 선택하는 선택 신호와, R/W 신호에 의해 메모리(도 2에서는 메인 메모리나 캐쉬 메모리)로의 판독이 행해지고, 판독된 데이터는 멀티플렉서 MPX(20) 또는 MPX(21)(도 1 참조)를 통해, PDATA-In으로서 리드 데이터 레지스터(41)에 축적되어, 배타적 논리합 회로(42)의 입력이 된다. 이 판독시에, 메모리의 용장부(ECC부나 패리티 비트)도 직접 리드 데이터 레지스터(41)에 리드인된다. 또, 캐쉬 메모리의 경우는, 그 태그 메모리 부분도 이 리드 데이터 레지스터(41)에 리드인된다.

    배타적 논리합 회로(42)의 다른 입력은, 난수 발생기(37)의 비트 선택부(40)의 출력을 디코더(44)에서 디코드하여, 1 워드내의 어딘가 1 비트만이 "1"인 비트열로 구성되는 데이터가 된다. 다비트 에러의 발생이 가능한 경우는, 1 워드내의 어딘가 2 이상의 비트(도 2에서는, 2 비트)가 "1"인 경우도 있다. 메모리로부터 판독된 데이터와, 이 데이터에서의 배타적 논리합이 취해짐으로써, 메모리로부터 판독된 데이터 내의 1 비트 또는 2 이상의 비트(도 2에서는, 2 비트)가 반전된다. 이 데이터가 메인 메모리 또는 캐쉬 메모리에 기록된다. 도 2의 2 비트 에러의 경우에는, 비트 선택부(40)의 두번째 비트의 비트 선택 신호를 디코더(45)에서 디코드하여, 비트열 중에서 반전시켜야 할 비트의 위치만이 "1"이 된 비트열을 생성한다. 다비트 에러 발생 비율 제어부(38)로부터, 다비트 에러를 생성하는 경우, 디코더(45)의 출력은 논리곱이 AND열(46)에서 취해지지만, AND열(46)의 또 다른 한쪽의 입력, 즉 다비트 에러 발생 비율 제어부(38)의 출력은 "1"이 되어 AND열(46)의 출력의 어딘가가 "1"이 된다. 다비트 에러를 생성하지 않는 경우에는, 다비트 에러 발생 비율 제어부(38)의 출력은 "0"이 되고 AND열(46)의 출력은 모두 "0"이 된다. 이 다비트 에러 발생 비율 제어부(38)의 출력과 디코더(45)로부터의 출력의 논리곱을 AND열(46)에서 취하여, 다비트 에러를 발생시키는 경우에는, 2 비트째의 비트 위치가 "1"이 된 비트열이 출력된다. 다비트 에러를 발생시키지 않는 경우에는, 모두 "0"의 비트열이 출력된다. 논리합 회로(47)에서, 1 비트째의 위치를 나타내는 디코더(44)로부터의 비트열과, 2 비트째의 위치를 나타내는 디코더(45)로부터의 비트열의 논리합을 취하여, 데이터 반전 레지스터(48)에 입력한다.

    메모리로부터 판독한 데이터인 리드 데이터 레지스터(41)의 데이터와, 반전시켜야 할 비트에만 "1"이 설정된 비트열인 데이터 반전 레지스터(48)의 데이터의 배타적 논리합을 배타적 논리합 회로(42)에서 취함으로써, 메모리로부터 판독한 데이터를 비트 반전시킨 데이터가 PDATA-Out으로서 출력된다.

    도 3 및 도 4는, 캐쉬 메모리로의 에러 기록에 관해 설명하는 도면이다.

    도 3은 4 웨이(WAY) 셋트 어소시에이티브 구성의 예이다. 우선 통상의 CPU로부터의 판독(캐쉬 히트)에 관해 설명한다. 캐쉬 구성의 예로서, 용량 32 K바이트, 1 Line : 32 바이트, CPU 어드레스를 0?31로 하면, CPU의 상위 어드레스(MADD31-13)는 비교기(56-1?4)의 한쪽에 각각 입력되어 있다. 캐쉬 라인 선택 어드레스(MADD12?5)가 MPX(17)를 통하여 메모리의 태그부와 Data부를 액세스하고, 판독된 태그부의 데이터가 비교기(56-1?4)의 다른쪽의 입력이 된다. 비교의 결과, 일치한다면, 그것은 캐쉬 히트가 되고, 히트한 웨이(WAY)의 데이터가 웨이 셀렉트부(59)에 의해 선택되어 CPU에 보내진다.

    다음으로 본 발명에 의한 의사 에러 발생부(12)에 의한 캐쉬 메모리의 데이터를 반전시키게 하는 동작에 관해 설명한다. 의사 에러 발생부(12)에서 캐쉬 메모리(14)에 에러 데이터 기록의 요청이 올라가는, 즉, 트리거가 걸리면, CPU가 메모리에 액세스중이 아니라는 것(CPU-Acc가 Low인 것)을 확인하여, 메모리에 대한 액세스 요구 신호 PEW를 어서트한다.

    의사 에러 발생부(12)의 어드레스 신호 PADD(하위 8 비트)는, 멀티플렉서 MPX(17)를 통하여 캐쉬 메모리(14)의 각 웨이에 전달하여, 판독이 행해진다. 이 때, 태그부도 동시에 판독된다. PADD의 상위(이 예에서는, 2 비트)는 의사 에러용 웨이 셀렉트부(55)의 선택 신호에 사용되고, 각 웨이로부터 판독된 데이터로부터 하나의 웨이의 데이터를 선택하여, 의사 에러 발생부(12)에 보낸다. 의사 에러 발생부(12)는, 데이터의 1 비트 또는 2 비트를 반전시켜, 동일 어드레스 및 동일 웨이로의 기록이 실시된다.

    또, 도 3에서는, 태그부의 정보도 데이터부 정보와 동시에 판독되고, 선택된 웨이의 정보가 의사 에러용 웨이 셀렉트부(55)를 통하여, 의사 에러 발생부(12)에 보내진다. 통상, 태그부와 데이터부는 동일 테크놀로지의 메모리셀로 구성되기 때문에, 마찬가지로 판독이 가능하다. 이와 같이, 양자를 동시에 판독하도록 함으로써, 회로의 단순화, 시험 시간의 단축이 가능해진다.

    그 후 CPU에 의해 상기 어드레스의 데이터가 판독되었을 때, 패리티 체크만의 메모리라면 패리티 에러가 발생하거나, ECC가 있는 메모리라면 ECC 정정 가능 에러(1 비트 에러)나 정정 불능 에러(2 비트 에러)가 발생하게 된다. 지금까지의 설명은 2 비트 에러까지 설명했지만, 다(n)비트 에러에 대한 에러 정정 기능을 갖는 것에 대해서는, n+1 비트를 고쳐쓰는 방식으로 확장되어도 되는 것은 물론이다.

    도 4는 본 실시형태의 동작을 설명하는 신호도이다.

    처음에, 난수 발생기에 대한 트리거가 A의 타이밍에서 발생한다. CPU의 캐쉬에 대한 액세스 종료 타이밍 B까지 대기하여 동작이 시작된다. 의사 에러를 발생시키는 어드레스의 값은, 타이밍 D에 출력되고 있지만, CPU가 캐쉬에 액세스하고 있기 때문에, 액세스가 끝나는 타이밍 B까지 대기하고 있다. 타이밍 B에서, CPU의 캐쉬에 대한 액세스가 종료하면, 다음은, CPU로부터의 캐쉬에 대한 액세스를 금지하는 PEW 신호가 타이밍 C에 출력된다. 이 타이밍 C의 직후에, 타이밍 E에, 의사 에러 발생부가 캐쉬에 액세스하여, 신호 PCMS가 로우가 된다. 의사 에러 발생부는, 처음에 캐쉬로부터 데이터를 읽기 때문에, 신호 PR/W는 리드(read) 상태로 되어 있다. 이 때, 의사 에러 발생부에서 판독된 데이터 PDATA-In이 입력되고, 비트 반전되어, 신호 PDATA-Out이 출력된다. 그 후, 의사 에러 발생부는, 캐쉬에 기록을 행하는 동작에 들어가기 때문에, 타이밍 F에서 신호 PR/W가 라이트(write) 상태가 되어, 신호 PDATA-Out가 캐쉬에 기록된다.

    도 5는 도 2의 n진 카운터(35)의 구성을 나타낸 도면이다.

    카운터(60)는, 바이너리 카운터이며 클록 신호의 입력을 받아 "0"부터 순차적으로 카운트업을 행한다. 카운터(60)는, n진 카운터를 구성하는 경우, n보다 큰 값까지 카운트업 가능한 비트수 k가 준비된다(2**k>n이 필요). 레지스터(61)에는 n-1을 설정한다. 이 값은, 도 2의 제어 레지스터(30)의 에러 발생 간격부(32)의 값이 설정된다. 구체적으로는, 원하는 메모리에 반전 데이터를 기록하는 시간 간격을 클록의 주기로 나눈 값이 된다. 컴퍼레이터(62)에서, 카운터(60)가 카운트업하는 값과 레지스터(61)의 값을 비교하여, 일치한다면, 카운터(60)에 클리어 신호를 입력하도록 구성한다.

    도 6은 최대값과 최소값을 갖는 도 2의 난수 발생기(37)의 어드레스부(39) 및 비트 선택부(40)의 구성도이다.

    도 2의 난수 발생기(37)의 어드레스부(39)와 비트 선택부(40)는, 각각 난수 발생 회로로 구성된다. 어드레스부(39)는, 랜덤으로 의사 에러를 발생시키는 어드레스를 지정하고, 비트 선택부(40)는, 랜덤으로 비트 반전을 행하는 비트 위치를 지정하는 것이다. 발생하는 어드레스 및 비트 위치는 대상이 되는 메모리의 용량이나 비트폭에 의해, 그 최대값ㆍ최소값을 규정한다. 그 예를 이하에 나타낸다.

    도 6의 (a)는, 난수 발생 회로(65)의 예이며, 이 구성에서는 1?65535까지의 값 중 임의의 난수를 발생시키다. 도 6의 (b)는, 난수 발생 회로(65)로부터 발생되는 난수에, 최대값과 최소값을 설정하는 구성이다. 최소값 레지스터(MIN; 66)에는, 난수가 취하는 최소값을 설정한다. 최대값 레지스터(MAX; 67)에는, 난수가 취하는 최대값을 설정한다. 난수 발생 회로(65)로부터 난수가 발생되면, 비교기(68)는, 최소값 레지스터(66)의 최소값과 난수를 비교하여, 난수가 작은 경우에는 "1"을 출력한다. 비교기(69)는, 최대값 레지스터(67)의 최대값과 난수를 비교하여, 난수가 큰 경우에는 "1"을 출력한다. 논리합 회로(70)에서, 비교기(68)와 비교기(69)의 출력의 논리합을 취한다. 논리합 회로(70)의 출력이 "1"인 경우에, 난수 발생 회로(65)에 리라이트(rewrite)시켜, 새로운 난수를 발생시킨다. 이것은, 발생된 난수가 최소값보다 작거나, 또는 최대값보다 큰 경우에는, 1회 더 난수를 발생시킨다는 것이다. 난수의 발생은, 랜덤인 값이 랜덤인 순서로 발생되기 때문에, 1회 난수가 최대값과 최소값 사이에서 벗어났다 하더라도, 다음에 발생되는 난수는, 이 사이에 들어갈 가능성이 있다. 발생된 난수가 최대값과 최소값 사이에 들어갈 때까지 리라이트를 반복한다. 이 회로예에서는 "0000000000000000"이 발생할 수 없다. 그것을 개선하기 위해서는 -1 연산하는 회로를 부가함으로써 회피할 수 있다.

    도 7(이 문서의 마지막에 첨부)은, 도 2의 다(多)비트 에러 발생 비율 제어부(38)의 상세도이다. 트리거 신호를 클록으로 하는 카운터(80), 레지스터(81), 컴퍼레이터(82)로 n진 카운터를 구성한다. 이 n의 값이 1 비트의 데이터 반전이 일어나는 횟수와 2 비트의 데이터 반전이 일어나는 횟수의 비율을 나타낸다. 컴퍼레이터로부터의 출력이 1일 때 및 제어 레지스터(30)의 다비트 에러 제어부(33)의 값이 01일 때에는 다비트 에러 발생 비율 제어부(38)의 출력은 n회에 1회만 1을 출력하고 메모리의 동일 어드레스에 대하여 2 비트의 반전된 데이터를 기록한다. 33이 00일 때에는 38은 항상 0이 되어, 2 비트 반전 데이터의 기록은 행해지지 않는다. 33이 10일 때에는 38의 출력은 항상 1이 되어, 매회 2 비트 반전 데이터의 기록이 행해진다.

    도 8은 의사 다비트 에러로서, 3 비트 에러를 발생시키기 위한 의사 에러 발생부의 구성도이다.

    도 8에서, 도 2와 동일한 구성요소에는 동일한 참조 부호를 붙이고 설명을 생략한다.

    도 8에서는, 비트 선택부(40a)가 3개의 비트 선택 위치를 생성하도록 되어 있고, 디코더(45a), 논리곱 회로(46a)가 새롭게 설치되어 있다. 또, 제어 레지스터(30)의 다비트 에러 제어부(33)에서는, 예로서 이하와 같은 설정이 가능하게 되어 있다. (1) 1 비트 에러만, 다비트 에러 발생 없음, (2) 1 비트 에러와 어떤 정해진 비율의 2 비트 에러가 발생, (3) 1 비트 에러와 3 비트 에러가 정해진 비율로 발생, 2 비트 에러 발생 없음, (4) 1 비트 에러와 2?3 비트 에러가 별개로 정해진 비율로 발생. 이 「어떤 정해진 비율」은, 다비트 에러 발생 비율 제어부(38)에 의해 행해진다. 도 9를 이용하여 상세하게 설명한다. 이 예에서는 카운터(80A), 레지스터(81A), 컴퍼레이터(82A)에서 레지스터(81A)의 내용을 n-1로 설정함으로써 n진 카운터를 구성하고 있다. 또 카운터(80B), 레지스터(81B), 컴퍼레이터(82B)에서 레지스터(81B)의 내용을 m-1로 설정함으로써 m진 카운터를 구성하고 있지만, 카운터(80B)의 클록이 컴퍼레이터(82A)의 출력으로 이루어져 있음으로써, 전체적으로는 n+m진 카운터로 되어 있다. 제어 레지스터(30)의 다비트 에러 제어부(33)의 2 비트가 00일 때에는 양카운터로부터의 출력은 AND 회로에서 폐쇄되고, 2 비트, 3 비트의 데이터 반전의 기록은 일으키지 않는 1 비트의 데이터 반전만이 된다. 33의 비트가 01일 때에는 레지스터(81A)에 설정된 값인 n회에 1회 2 비트의 반전 데이터의 기록이 행해지는 3 비트의 데이터 반전은 일어나지 않고, 1 비트의 반전은 n회에 n-1회가 된다. 33의 비트가 10일 때에는 n×m회에 1회 3 비트의 반전된 데이터의 기록이 행해지고, n×m회 중 n×m-1회는 1 비트의 반전 데이터의 기록이 된다. 33의 비트가 11일 때에는 n×m회에 1회 3 비트의 반전된 데이터의 기록이 행해지고, n×m회에 m-1회 2 비트의 반전 데이터의 기록이 행해지고, 1 비트의 반전 기록은 n회에 n-1회가 된다. 이렇게 함으로써 1 비트/2 비트/3 비트의 반전 데이터가 적당하게 기록되어 어떤 확률로 에러가 발생한다.

    도 10은 본 실시형태가 적용되는 CPU를 복수개 집적한 멀티코어형 정보 처리 장치의 제1예의 구성을 나타낸 도면이다.

    CPU 코어에는 각각 캐쉬가 설치되어 있다. 또, CPU 코어를 포함하는 노드(76-1?76-n)는 상호 결합망(75)으로 결합되어, 외부의 메인 메모리(11)에 액세스하는 것이다. 본 실시형태의 의사 에러 발생부는 각 노드(76-1?76-n)에 각각 설치하는 것으로 한다. 각 의사 에러 발생부는, 각 노드(76-1?76-n) 내의 캐쉬로의 의사 에러의 발생을 행할 뿐만 아니라, 메인 메모리(11)로의 의사 에러의 발생을 행한다.

    도 11은 본 실시형태가 적용되는 CPU를 복수개 집적한 멀티코어형 정보 처리 장치의 제2예의 구성을 나타낸 도면이다. CPU 코어에는 각각 캐쉬 메모리가 설치되어 있다. 각 CPU 코어(91-1, 91-2?91-n)는 종합 결합망(92)으로 결선되어 있다. 본 발명에 의한 의사 에러 발생부(93)도 이 종합 결합망(92)에 결선되어 있다. 이 발명예에서는, 하나의 의사 에러 발생부(93)에서 각 CPU 내의 캐쉬 메모리를 개별적으로 액세스할 수 있도록 하고 있다. 구체적으로는, 도 12를 참조한다. 이 도면은 도 2의 일부를 확장한 것이며, 도시되지 않은 것은, 도 2와 동일하다고 이해하기 바란다. 이 실시예에서는 도 2의 어드레스부(39)를 확장하고, 그 일부를 디코더(49)에 입력하여, 각 캐쉬의 선택 신호가 되도록 도 12 중의 표에 나타낸 바와 같이 디코드한다. 각 캐쉬 메모리 선택 신호 PCMS0?PCMSn-1은 각각, 각 CPU 코어 내의 캐쉬를 개별적으로 선택하는 신호가 된다. 다른 신호 PR/W, PEW는 각 캐쉬에 공통적으로 입력되고, PMMS는 메인 메모리의 선택 신호가 된다. 이와 같이 함으로써, 각 CPU 코어 내의 캐쉬의 데이터를 랜덤으로 반전시킬 수 있다.

    또한, 상기 본 실시형태는 소프트웨어로 대행할 수도 있다. 예를 들어, 카운터는, 정기적으로 발생하는 인터럽트 신호로 하고, 난수 발생 및 그 결과에 따라, 어느 메모리의 어드레스/비트 위치에 의사 에러를 발생시킬지 결정하거나 한다.

    또, 메모리는, 통상의 판독/기록을 행할 때의 동작 모드(Act-Mode)에 더하여, 기록된 데이터를 유지만 하고 있는 상태(Dret-Mode)에서, 소프트 에러율이 크게 다른 경우가 있다. 본 실시형태에서는, 이 동작 모드의 차이에 의한 소프트 에러율의 변동을 흡수하기 위해, 의사 에러 발생부의 의사 에러 발생 간격 레지스터를 복수개 준비하고, 동작 모드에 대응하여 의사 에러 발생 간격을 변경할 수 있도록 하는 것도 가능하다.

    상기 실시형태의 설명에서는, 메인 메모리, 캐쉬 메모리의 2종류의 메모리가 존재하는 경우, 별개로 시험하기 위해, 제어 레지스터의 대상 메모리 선택부를 어느 쪽인가로 설정하여 실시하는 예였다. 그러나, 실제 환경에서는, 양메모리에 제각각 에러가 발생하고, 따라서, 본 실시형태의 의사 에러 발생부를 복수개 준비하여, 하나는 메인 메모리용, 또 하나는 캐쉬 메모리용으로 설정하여 시험을 행함으로써, 보다 실제 환경에 근접하게 하여 시험하는 것도 가능하다.

    이하에, 실제 장치에서의 에러 발생율을, 어떻게 예측할지에 관해 설명한다.

    메인 메모리는 통상 DRAM(다이내믹 랜덤 액세스 메모리)이 사용되고, 가속(加速)한 환경하에 두는, 즉, DRAM 소자 단체에 α선이나 중성자선을 강제적으로 조사한다. 그 때의 에러 발생율(단위시간당 에러 발생건수) : A와, 가속 계수(통상 상태에서의 α선ㆍ중성자선의 선량에 대한 가속 환경하의 선량의 비) : B에서, A/B가 실제 환경하에서의 에러 발생율이 된다고 생각되지만, 이 값은 장치의 실제 동작 조건이 반영되어 있지 않다. 왜냐하면, 에러 발생율 A는 시험용 프로그램을 이용하여 측정되지만, 이 시험 프로그램은 메모리의 전체 어드레스 데이터 "1"을 기록하고, 일정 시간후 전체 어드레스에 대하여 "1"을 판독한다. 다음으로, 전체 어드레스에 데이터 "0"을 기록하고, 일정 시간후 전체 어드레스에 대하여 "0"을 판독한다. 이것을 반복하는 시험이다. 이에 비해, 실제로는, 전체 어드레스를 유효하게 사용하는 것은 드물고, 기록한 데이터를 판독하지 않는 경우도 많이 있다. 따라서 A/B를 장치의 예상 에러율로 하는 것은 문제가 있다.

    캐쉬 메모리에 관해서는, 통상 캐쉬 메모리와 동일 프로세스로 작성된 메모리칩을 이용하여, 전술한 메인 메모리와 동일한 방법으로 에러율을 예측하지만, 이 예상치도 실제 장치 환경에서의 값으로서 이용하기에는 문제가 있다. 예를 들어, 데이터 캐쉬는, 동작 모드가 라이트백인지 라이트스루인지에 따라 동작이 크게 달라진다. 왜냐하면 라이트백에서는 CPU가 기록한 데이터를 캐쉬의 미스 히트의 발생에 따라, 불특정한 시간 경과후 메인 메모리로 복귀시킨다고 하는 동작이 발생하고, 이 때 캐쉬의 판독 동작이 생겨, 만약 이 때 상기 어드레스의 내용의 일부가 반전되어 있으면 에러가 발생한다. 그러나, 라이트스루에서는, 캐쉬로의 기록과 동시에 동일한 내용을 메인 메모리에 기록하기 때문에, 이러한 캐쉬의 미스 히트시의 캐쉬의 판독 동작은 발생하지 않는다. 따라서, 만약 캐쉬의 상기 어드레스의 내용이 반전되었다 하더라도 에러는 되지 않는다. 즉 외관상 에러율은 라이트스루쪽이 낮아진다.

    이상의 것을 감안하여, 메모리 단체의 에러율 A/B를 메모리의 정보가 반전되는 확률로 정의하여, A/B에 대하여 어떤 일정한 값 D : (1000?100,000)를 곱한 값 A×D/B를 제어 레지스터의 에러 발생 간격으로서 설정한다. 제어 레지스터의 에러 발생 간격으로는, 1분?1시간 정도로 한다. 이것과, A/B의 값으로부터, 대략 D의 값이 어느 정도일지를 결정할 수 있다. 그리고, 본 실시형태의 의사 에러 발생부를 이용하여, 실제의 장치 환경, 프로세서의 동작 조건 등을, 프로그램을 포함하여 실제 동작과 동일하게 하여 에러의 발생을 관측하여, 에러 발생시의 처리 루틴이 정확하게 동작하는지 등의 평가를 행한다. 또, 이 때의 에러율을 값 D로 나눔으로써 실제 장치로서의 에러율(E)을 예측할 수 있다. 이 값(E)이 장치로서 원하는 에러율 이하이면 문제없지만, 만약 원하는 에러율 이상이면 어떠한 대책이 필요해진다.

    대책으로, 상기 실시형태에서는, 처음부터 메인 메모리에 ECC가 있는 것을 예시했지만, ECC가 없는 것을 ECC가 있는 것으로 하는 등의 방법이 있다.

    또, 캐쉬에 관해서는, 그 기록 방식으로서, 라이트백 방식과 라이트스루 방식이 있고, 성능은 라이트백이 좋지만, 소프트 에러에 대해서는 라이트스루가 강하다고 할 수 있다. 이유는, 라이트백은 기록한 내용을 메인 메모리에 라이트백하는 타이밍이, 장시간이 경과한 후인 것이 많이 있고, 그 경과 시간 동안에 내용의 반전이 생겨, 라이트백할 때 소프트 에러로서 현재화하기 때문이다. 이에 비해 라이트스루에서는, 즉시 메인 메모리에 라이트백해버리기 때문에, 장시간 경과한 내용을 판독하는 동작이 적어지므로, 소프트 에러율은 낮게 보인다. 따라서, 캐쉬의 성능을 약간 희생하여, 신뢰성을 높이기 위해 캐쉬의 방식을 라이트스루로 하는 것은 유효하다.

    이상의 본 실시형태에서는, α선이나 우주선(중성자선)에 의한 소프트 에러와 동일한 현상을 재현함으로써, 통상 매우 드물게 발생하는 소프트 에러 현상을 가속하여 발생시켜, 장치로서 소프트 에러 발생시의 처리 루틴이 정확하게 동작하는지의 여부를 확인할 수 있다. 또, 장치로서의 에러 발생율을 예측할 수 있음으로써, 어떠한 대책이 필요한지를 확인할 수 있다.

    10 : 반도체의 1칩 11 : 메인 메모리
    12 : 의사 에러 발생부 13 : CPU
    14 : 캐쉬 메모리 15 : ECC 생성 회로
    16 : 패리티 생성 회로 17, 20, 21 : 멀티플렉서
    18 : ECC 검사부 19 : 패리티 검사부
    22 : 트라이 스테이트 버퍼 23 : 에러 신호선
    30 : 제어 레지스터 31 : 메모리 선택부
    32 : 에러 발생 간격부 33 : 다비트 에러 제어부
    35 : 카운터 36 : 클록
    37 : 난수 발생기 38 : 다비트 에러 발생 비율 제어부
    39 : 어드레스부 40, 40a : 비트 선택부
    41 : 리드 데이터 레지스터 42 : 배타적 논리합 회로
    43 : 어드레스 생성부 44, 45, 45a, 49 : 디코더
    46, 46a : 논리곱 회로 47 : 논리합 회로
    48 : 데이터 반전 레지스터 55 : 의사 에러용 웨이 셀렉트부
    56-1?56-4 : 비교기 57 : 논리합 회로
    58 : 멀티플렉서 59 : 웨이 셀렉트부
    60, 80, 80A, 80B : 카운터 61, 81, 81A, 81B : 레지스터
    62, 82, 82A, 82B : 컴퍼레이터 65 : 난수 발생 회로
    66 : 최소값 레지스터 67 : 최대값 레지스터
    68, 69 : 비교기 70 : 논리합 회로
    75 : 상호 결합망 76-1?76-n : 노드
    91-1?91-n : CPU 코어, 캐쉬 포함 92 : 종합 결합망
    93 : 의사 에러 발생부 94 : 메모리 컨트롤러
    95 : 외부 메모리

    QQ群二维码
    意见反馈