KR100379812B1 - 하드웨어에의해메모리의ecc에러를자동적으로스크러빙하는방법및장치 - Google Patents

하드웨어에의해메모리의ecc에러를자동적으로스크러빙하는방법및장치 Download PDF

Info

Publication number
KR100379812B1
KR100379812B1 KR1019950008657A KR19950008657A KR100379812B1 KR 100379812 B1 KR100379812 B1 KR 100379812B1 KR 1019950008657 A KR1019950008657 A KR 1019950008657A KR 19950008657 A KR19950008657 A KR 19950008657A KR 100379812 B1 KR100379812 B1 KR 100379812B1
Authority
KR
South Korea
Prior art keywords
memory
data
control logic
memory control
buffer
Prior art date
Application number
KR1019950008657A
Other languages
English (en)
Other versions
KR950033824A (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 KR950033824A publication Critical patent/KR950033824A/ko
Application granted granted Critical
Publication of KR100379812B1 publication Critical patent/KR100379812B1/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/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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 메모리로부터 판독된 데이타의 정정가능한 에러의 검출시에 메모리의 ECC 에러를 자동적으로 스크러빙하는 방법 및 장치를 제공한다. 상기는 메모리로의 액세스를 제어하는 메모리제어논리(MCL), 메모리로부터 판독된 데이타를 에러에 대해 검사하고 판독데이타에서 발견된 정정가능한 에러를 정정하는 ECC에러검사 및 정정장치, ECC 에러검사 및 정정장치로부터 출력된 정정된 판독데이타를 저장시키는 제 1데이타버퍼, 및 제 1데이타버퍼의 출력에 결합된 입력단과 메모리에 결합된 출력단을 가진 재기입 경로를 메모리제어기(MC)내에 제공함으로써 수행된다.
특정 기억장소로부터 판독된 데이타의 정정가능한 에러의 검출시에, ECC 에러검사 및 정정 장치는 메모리제어논리에 판독데이타의 정정가능한 에러의 존재를 신호지정한다. 그후 메모리제어논리는 제 l데이타버퍼와 재기입경로를 통해 배타적 제어를 얻어, 정정된 판독 데이타의 재기입경로 및 그후 메모리로의 기입을 제어하게 된다.

Description

하드웨어에 의해 메모리의 ECC에러를 자동적으로 스크러빙하는 방법 및 장치
발명의 분야
본 발명은 컴퓨터시스템의 데이타통신에 관하며, 더욱 특히 마이크로프로세서와 메모리 서브시스템 사이에 전송되는 데이타의 정정가능한 에러의 검출 및 정정에 관한 것이다.
기술배경
데이타 무결성(integrity)을 유지하기 위해, 오늘날 시장의 대부분의 컴퓨터시스템은 메모리제어기의 ECC( 에러 정정 코드) 회로내에 구현된 ECC설계를 활용하여 메모리로부터 판독된 데이타에서 에러를 검출하고, 어떤 경우에 검출된 에러를 정정하게 된다.
ECC설계를 활용하는 컴퓨터시스템에 있어서,메모리로 기입될 데이타는 먼저 데이타와 구축된 ECC코드의 생성행렬(generator matrix)사이의 스칼라곱을 계산하여 유도된 ECC패리티 비트를 데이타에 첨부함으로써 코드워드로 인코딩된다.
메모리에서 코드워드를 판독할시에, 생성행렬의 변형을 이용하여 디코딩되며, 이로써 임의의 발생에러를 검출하고 분류하는데 이용될 수 있는 신드롬(syndrome)에 부가하여 원래의 데이타를 생산하개 된다.
어떤 에러도 검출되지 않았다면, 판독된 데이타는 마이크로프로세서에 의한 순차적 이용을 위해 시스템버스, 또는 다른 버스대리(bus agent) 상에 배치된다. 정정불가능한 에러가 검출된다면, 데이타는 에러조건이 마이크로프로세서로 보고되는 동안 시스템버스상에 다시 배치된다. 그러나, 정정가능한 에러가 검출된다면, 코드 워드는 먼저 정정회로로 입력되어 데이타를 정정하며 그후 시스템버스로 출력된다( 컴퓨터 버스가 파이프라인 방식이라면, 시스템버스를 메모리와 인터페이스시키는데 이용된 메모리 제어기는 시스템버스와 메모리사이를 통과하는 데이타를 일시적으로 저장시키는 개별적인 판독 데이타버퍼 및 기입데이타버퍼로 구성될 수 있다는 것으로 주목된다).
상술된 처리는 시스템으로 입력되는 모든 데이타가 활용되기 이전에 ECC에러에 대해 검사되기 때문에 시스템 신뢰도를 효파적으로 증가시킨다. 그러나, 대부분의 ECC 설계는 일바이트내의 단일 및 이중 비트에러만을 정정할 수 있어, 메모리에서 단일 장소의 다중에러의 발생은 그 장소에서의 데이타를 정정불가능하게하여, 그로인해 그 데이타를 요구하는 어떤 동작에 유효하게 영향을 미친다.
따라서, 시스템 설계자는 메모리로부터 검색된 데이타의 애러를 정정하여 정정된 데이타를 다시 기입시키는 소프트웨어에 근거된 ECC 스크러빙(serubbing) 처리를 전개시켜 왔다.
첫번째 종래의 소프트웨어에 근거된 스크러빙 처리에 있어서, 메모리로부터 판독되는 데이타의 정정가능한 에러의 검출은 마이크로 코드로 에러기억장소의 논리적 주소를 저장시키고, 시스템호출을 인터럽트 루틴으로 발생시킨다.
호출된 인터럽트 루틴은 논리적 주소를 이용하여 기억장소의 물리적 주소를 계산하게 되고 특정된 기억장소로 부터 데이타를 재판독하게 된다. 데이타가 다시 메모리로부터 판독될때, 데이타는 데이타를 정정하는 ECC 검사 및 정정회로로 입력된다. 데이타가 정정되어진 이후, 일단 데이타가 시스템버스상에 배치되고 적절한 요구가 마이크로프로세서로 수행된다면 인터럽트 서비스 루틴은 마이크로프로세서로 명령을 발행하여 데이타가 메모리의 동일 장소로 다시 기입되도록 한다.
명백히, 상기 처리가 가진 주요결점은 최소의 스크러빙 동작을 수행하기 위해서라도 유효량의 소프트웨어 지원에 부가하여 상당량의 시간을 요구한다는 것이다. 상기 처리는 데이타가 메모리로부터 초기적으로 판독되는 경우 데이타의 에러를 검사하고 정정하는데 이전 이용된 것으로부터 완전히 개별적인 처리를 수반하기 때문에, 비교적 복잡한 인터럽트 루틴이 기억장소의 물리적 주소를 재계산하고, 그리고 스크러빙 동작을 제어하는 판독명령 및 기입명령을 발행하기 위해 매그로코드로 프로그래밍되어야 한다는 것을 요구한다. 따라서, 상기 소프트웨어에 근거된 처리는 전체시스템에 유효한 실제 변형을 요구할뿐만 아니라, 루틴이 적합한 주소를 재계산하고, 적합한 명령을 발생시키고, 그리고 이미 초기메모리 판독동안 수행되었던 다수의 단계를 복사하는데 시간이 걸린다는 사실에 기인하여 시스템 성능을 감소시킨다.
대안적으로, 다른 종래의 소프트웨어에 근거된 스크러빙 처리에 있어서, 소프트웨어는 메모리를 주기적으로( 그러나 지속적으로) 스캐닝(scanning)하는데 이용되어 찾는 에러에 대해 검사하고 에러를 정정하게 된다. 상기는 순차적으로 각각의 기억장소를 판독하고, 에러와 관련하여 데이타를 검사하고, 검출된 정정가능한 에러를 정정하고, 그리고 동일 장소에 다시 정정된 데이타를 기입함으로써 수행된다.
에러가 존재하지 않는 데이타는 검사된 이후에 간단히 통과된다. 상기는 상술된 메카니즘과 유사하기 때문에, 상기 처리는 또한 동작을 수행하는데 요구되는 다량의 시간과 소프트웨어 지원으로 부터 손해를 본다. 더욱이, 상기 처리는 또한 유효량의 메모리 대역폭을 활용하여, 그로인해 메모리 대역폭의 가장 효과적인 활용을 방해하고 시스템 성능에 영향을 미친다.
발명의 요약
본 발명의 목적은 메모리로부터 판독된 데이타의 정정가능한 에러의 검출시에 소프트 웨어에 투과적인 하드웨어로 구현된 메카니즘의 이용으로 메모리의 ECC에러를 자동적으로 스크러빙 하는 방법 및 장치를 제공하는 것이다.
본 발명의 또다른 목적은 메모리로부터 판독된 데이타의 정정가능한 에러의 검출시에 판독데이타버퍼와 기입데이타버퍼의 출력사이에 결합된 재기입(writebaek) 경로를 통해 메모리의 ECC에러를 자동적으로 스크러빙하는 방법 및 장치를 제공하는 것이다.
본 발명의 또다른 목적은 값비싼 인터럽트 루틴의 이용을 피하고, 그리고 메모리판독 데이타에서 특정하게 식별된 에러를 정정하는데 메모리대역폭의 소량만을 요구함으로써, 시스템성능을 실질적으로 증가시키는 메모리의 ECC에러를 자동적으로 스크러빙하는 방법 및 장치를 제공하는 것이다.
본 발명의 또다른 목적은 동일장소에 제 2단일비트에러가 메모리데이타의 손실을 초래하기 이전에 메모리데이타의 단일비트에러를 즉시 정정함으로써 시스템 신뢰도를 증가시키는 메모리의 ECC에러를 자동적으로 스크러빙하는 방법 및 장치를 제공하는 것이다. 본 발명의 또다른 목적은 ECC하드웨어애 의해 정정되었던 데이타를 메모리로 다시 기입시키는, 메모리제어기내에 효과적이고 명백한 스크러빙 메카니즘을 제공하여, 그에 따라 에러의 기억장소를 스크러빙한다.
스크러빙 메카니즘이 구현되는 메모리제어기는, 바람직한 실시예에서 개별적인 판독데이타 버퍼와 기입데이타버퍼가 제공되지만, 단일 데이타버퍼에 부가하여 메모리로 그리고 메모리로부터의 데이타의 흐름을 제어하는 메모리제어논리로 최소한 구성된다.
메모리로부처 판독된 데이타는 ECC하드웨어에 의해 에러에 대해 검사되며 판독데이타버퍼에 저장된다.
메모리재어기가 판독데이타에서 정정가능한 ECC에러를 검출한다면, 판독버퍼로 기입되고 있을때 데이타를 정정한다. 정상적으로 수행될때, 판독데이타는 그직후, 마이크로 프로세서에 의한 이용을 위해 시스템버스, 또는 그와 결합된 다른 버스대리로 배치된다. 그러나, 메모리의 에러데이타를 스크러빙하기 위해서, 재기입 경로가 판독데이타버퍼의 출력으로부터 기입데이타버퍼의 출력으로 체공된다.
준비시에, 메모리 제어논리는 메모리 스크러브 명령을 데이타경로 상태머신으로 발행하며 메모리로의 데이타 흐름 및 매모리로부터의 데이타흐름을 제어하여, 판독버퍼내의 정정된 데이타가 이전기억장소로 다시 기입될 수 있도록 신호지정하개 된다.
명령을 디코딩할시에, 상태 머신은 먼저 판독소스 선택신호를 판독데이타버퍼 제어다중화기로 발행하여, 특정버퍼를 액세스하기 위한 명령을 발행시키고 그로부터 판독동작을 개시시킬 제어소스를 선택하게 된다.
상태머신은 또한 버퍼선택신호를 출력다중화기로 발행하는데, 그 출력다중화기는 각각의 버퍼로부터의 기입데이타와 판독데이타를 입력으로써 가지며 메모리 입력/출력 버퍼 및 메모리 인터페이스 소자를 통해 매모리와 결합된 그의 출력을 가진다.
일단 상기가 수행되었다면, 선택된 제어소스는 그후 데이타를 버퍼얘서 판독하기 위해 판독스토로브(strobe)를 판독데이타버퍼로 할당한다. 데이타는 출력다중화기를 통해 ECC 코드워드 생성장치로 통과하며, 여기에서, ECC 코드워드 생성장치는 대응 코드워드를 생산시키고 매모리 입력/출력버퍼내에 저장되어 있다.
그후 제어논리는 적합한 주소를 발행하며, 속성(attribute) 신호를 메모리 인터페이스 소자에 요구하며, 차례로 적절한 RAS# 신호 및 CAS# 신호를 생성시켜 정정된 데이타가 원래의 판독요구에 의해 특정화된 기억장소에 기입되게 한다.
제 1대안적인 실시예에 따라서, 상기 메카니즘은 또한 메모리어레이의 주기적인 소프트웨어에 근거된 스크러빙을 수행하는데 이용될 수 있다. 임의의 에러장소가 에러판독데이타의 정정시에 자동적으로 스크러빙되기 때문에, 전체메모리는 각각의 기억 장소를 순차적으로 판독함으로써 스크러빙될 수 있다.
제 2대안적인 실시예에 따라서, 상기 메카니즘은 판독-변경(modify)-기입동작이 수행되는 경우 새로운 ECC코드워드를 생성시키는데 이용될 수 있다. 상기는 먼저 기입버퍼에 부분기입데이타를 저장하고, 그후 메모리로부터 변경될 데이타를 판독하고 판독데이타버퍼에 그것을 저장함으로써 수행한다. 적절한 제어신호가 제어논리로부터 발행됨에 따라, 판독 및 기입데이타는 메모리로 기입되고 있을때 출력다중화기에서 합병(merge) 된다.
발명의 상세한 설명
본 발명은 메모리로부터 판독된 데이타의 정정가능한 에러의 검출시에 메모리제어기의 판독데이타버퍼와 기입데이타버퍼의 출력사이에 결합된 재기입 경로의 이용으로 메모리의 ECC 에러를 자동적으로 스크러빙하는 방법 및 장치를 제공한다. 설명을 위해, 특정 실시예가 본 발명의 전반적인 이해를 도모하기 위해 상세히 개시된다. 그러나, 본 발명이 다른 실시예로 실행될 수 있고 모든 특정세부사항이 개시되지 않고 실행될 수 있다는 것은 본 기술의 당업자에게 명백할 것이다. 다른 실례에 있어서, 공지된 구성요소, 장치, 회로, 처리단계등은 본 발명을 불필요하게 불명료히하지 않도록 상세히 개시되지 않는다.
I. 메모리제어기의 개요
본 발명의 일 실시예에 따라서, 스크러빙 메카니즘은 제 l도에 일반적으로 도시된 파이프라인방식 마이크로프로세서 컴퓨터시스템으로 구현되며, 이 시스템은 4 마이크로 프로세서, 바람직하게 DRAM 메모리어레이를 포함하는 메모리 서브시스템 및 시스템버스, 메모리액세스 요구를 조정하는 메모리제어기(MC), 및 인터리빙(interleaving)방식 메모리로 부터 판독데이타를 다중화하고 인터리빙방식 메모리로 기입데이타를 버퍼함으로써 MC 와 메모리어레이를 인터페이싱하는 메모리 인터페이스소자(MIC) 로 구성된다.
시스템버스는 36 비트의 주소, 64비트의 데이타, 및 데이타 무결성을 지원하는데 요구된 제어신호를 체공하여, 버스 트랜잭션(transaction) 을 수행하고 다중 캐시에 앞서 응집한 공유메모리를 유지하게 한다.
시스템버스는 66.7MHz에서 8개의 물리적 로드(load)( 및 저주파수에서 그이상) 를 지원할 수 있으며, 부가적인 I/0버스 브리지, MC, 또는 다른 주문부착물이 버스에 접속될 수 있게 된다.
메모리어레이에 관해서, 3가지 다른 형태의 메모리 형으로써, 64Mbit테크놀로지를 이용하여 4GByte의 메모리에 달하는 4:1인터리빙방식 DRAM 형, 2GByte의 메모리애 달하는 2:1 인터리빙방식 DRAM 형, 및 1GByte 의 메모리에 달하는 비- 인터리빙방식 DRAM 형이 지원된다. 상기 특정 실시예에 있어서, 4개의 MC까지 시스템버스에 결합되어 완전하게 구성된 시스템이 최대의 16GByte의 주소지정가능 메모리를 가지도록 할 수 있다. MC 에 의해 지원된 메모리는 바람직하게 1, 2,또는 4인터리브를 가진 8행으로써 배열된다. 어떤 형태의 RAM디바이스가 메모리로써 구현될 수 있지만, 이산 매모리디바이스, 단측 SIMM(singlein-line memory module), 또는 양측 SIMM 으로 구성된 것이 바람직하게 이용된다. 모든 3가지 메모리구성 형태에 대해, MC는 1행당 1신호, 즉 8논리적 RAS# 신호를 제공하며, RAS#신호의 2복사신호가 팬아웃(fanout: 논리출력수) 으로 제공된다. 이산 메모리 디바이스 또는 단축 SIMM을 이용하는 구현에 대해, MC는 1행당 l신호, 즉 8논리적 CAS# 신호를 제공하며, 2복사신호가 다시 팬아웃으로 제공된다. 그러나, 양측 SIMM 의 경우에 있어서, 단지 4논리적 CAS# 신호( 한쌍의 행당 l신호) 만 있으며, CAS#신호당 로딩은 2배로 된다.
제 l도및 제 2도에 도시된 바와같이, MC는 2개의 ASIC(응용 주문형 집적회로) 로 분할 되어, 하나는 DRAM 제어기(DC)소자를 형성하고 다른 하나는 데이타 경로(DP)소자를 형성하며, 그로인해 MC를 통해 주소흐름과 데이타흐름을 분리하여 파이프라인방식 시스템의 속도 및 효율성을 개선시키게 된다.
DC소자는 메모리 액세스에 대한 주소 디코딩에 부가하여 모든 메모리액세스 요구 및 명령을 조정하는 역할이며, DP소자는 메모리로의 데이타흐름 및 메모리로부터의 데이타 흐름을 담당한다.
소자는 두소자사이의 데이타와 제어정보를 전송하는데 요구되는 통신경로 및버퍼로 구성되는 칩간 상호접속(interchip interconnect; ICIC)을 통해 함께 기능적으로 결합된다. 두 ASIC는 외부접착 요소없이 시스템버스애 직접 접속하는 것으로 설계되며, 함께 단지일 버스로드만을 구성한다. 상기 특정 실시예에서 MC가 효율성, 속도, 및 비용 효과를 개선시키기 위해 개별적인 ASIC 소자로 바람직하개 분할된다할지라도, 단일 패키지, 메모리 제어기로써 구현될 수 있으며, 더욱이 파이프라인방식과 비파이프라인방식 시스템 뿐만 아니라 마이크로프로세서 및 단일 프로세서에서도 활용될 수 있다.
제 2도를 참조하면, MC의 DC 소자는 3가지 주섹션인 버스엔진(BEC), 큐 관리장치(QMUC), 및 메모리인터페이스(MMIC)로 분할된다.
BEC는 시스템버스와의 인터페이스를 제공하며 QMUC는 BEC와 MMIC 를 결합시킨다.
버스를 제어하고 버스와 MC 데이타버스( 비도시) 사이의 데이타전송을 통제하는데 요구된 상태머신( 비도시) 에 부가하여, BEC 는 시스템버스 요구에 대한 순위 큐(in-order-queue; IRQ)를 포함한다. BEC 는 또한 DP 소자로의 버퍼할당을 담당하며 DP 소자내에 지정된 ICIC의 시스템측 인터페이스(SYSIDP)의 제어를 담당한다.
QMUC는 BEC와 MMIC 사이의 주인터페이스이며, BEC 로부터 수신된 시스템버스 요구 및 대응 주소를 버퍼링하는 아웃바운드 요구 큐(ORQ) 로 구성되어, 요구를 디코딩하고 메모리 액세스를 수행하는데 있어 MMIC에 의해 이용된다.
MMIC는 MC 의 메모리제어기 특정기능성의 모든 것을 제공한다. MMIC의 주기능은 QMUC 의 MMIC 측을 제어하고, 외부메모리를 제어하고, 그리고 DP 소자와의 칩간 인터페이스를 제어한다. 상기 장치는 또한 시스템요구를 DRAM 메모리사이클과 칩간 사이클로 변환시킨다.
MMIC와 QMUC 의 ORQ사이의 인터페이스에 관해서, MMIC는 ORQ를 이용하여, 1)ORQ로 현재요구의 유효 주소를 제공하고, 2)ORQ 로부터 다음 요구를 판독하고, 그리고 3) 다음 요구의 상태를 판독하게 된다.
상기 관계에서, MMIC는 또한 QMUC 를 통해 응답정보를 BEC로 다시 제공한다.
MMIC의 주 장치는, 1)등록된 버스요구가 MC 로 수신되는지를 결정하고 DRAM 어레이로의 엑세스에 대한 유효주소를 계산하는 주소 디코드장치(비도시), 2) 메모리어레이에서 요구가 수신된 곳을 결정하고 메모리어레이의 개방페이지의 태이블을 유지시키는 요구주소장치( 비도시), 3)QMUC 로부터의 현재요구에 근거된 다른 장치를 제어하고 메모리 서브시스템 제어 신호, 메모리측 칩간 상호접속 신호, MIC 인터페이스 신호, 및 메모리 리세트와 에러신호를 생성하는 메모리제어논리(MCL), 4) 내부 파라미터를 미리 계산하고 ICIC를 통해 구성공간의 판독 및 기입을 제어하는데 요구되는 모든 구성레지스터, 논리 및 상태머신을 포함하는 구성레지스터장치(비도시), 및 5) 메모리 리프레시 속도를 제어하는 메모리 리프레시장치( 비도시) 로 바람직하게 구성된다.
데이타경로(DP)측면상에서, MC의 DP소자는 시스템버스로부터 메모리어레이로의 데이타흐름을 지원하며, 그리고 버스 및 메모리 인터페이스에 대한 모든 제어가 DC 소자에 의해 생성되기 때문에 메모리제어 인터페이스로부터 분리된다. DP소자의주기능은 버스로 부터 메모리로 64 비트 데이타 경로를 제공하는 것이며, 버스상 및 메모리내의 데이타에 대한 ECC지원을 제공하는 것이며, 메모리어레이의 정정가능한 에러를 스크러빙( 또는 정정)하는 것이며, 그리고 단일 클록사이클 데이타전송 버스트(burst)에 대한 지원을 제공하는 것이다.
DC 소자와 유사하게, DP는 3가지 주색션인 버스엔진(BED), 큐 관리장치(QMUD), 및 메모리 인터페이스(MMID)로 기능적으로 분할된다. BED는 시스템 데이타버스와의 인터페이스를 제공하며, QMUD는 다수의 데이타버퍼를 통해 BED와 MMID 를 결합시킨다.
제 2도에 도시된 바와같이, QMUD는 데이타가 시스템버스로 배치되기 이전에 메모리로부터 판독된 데이타를 일시적으로 버퍼링하는 판독데이타버퍼의 세트, 및 데이타가 메모리로 기입되기 이전에 시스템버스로부터 수신된 기입데이타를 일시적으로 버퍼링하는 기입데이타 버퍼의 세트로 구성된다. 각각의 요구의 상태는 트랜잭션 명령이 생성되는 DC소자의 MCL에 의해 계속 유지된다. 파이프라인방식 시스템에서 시스템성능을 최대화하기 위해, 각각의 테이타버퍼의 세트는 바람직하게 4개의 버퍼로 구성되어 전부 8개의 다른 메모리액세스가 언제라도 처리중에 있을 수 있게 한다.
그럼에도 불구하고, 임의의 수의 판독데이타버퍼 및 기입데이타버퍼는 본 발명의 정신을 벗어나지 않고 파이프라인방식또는 비-파이프라인방식 시스템으로 이용될 수 있다.
또한 제 2도에 도시된 바와같이, MMID는 QMUD, BED, ICIC및 외부메모리 어레이와의 다수의 데이타 및 제어 인터페이스로 구성된다.
MMID의 주기능 장치는, 1)메모리어레이를 액세스하는데 이용된 신호를 버퍼링하는 메모리 입력/ 출력(MIO) 버퍼, 2)DP소자의 동작제어를 위해 DC 소자를 통해 프로그래밍될 수 있는 DP동작레지스터, 3)QMUD버퍼로부터의 데이타를 선택된 기억장소로 전송하고 변환시키며 그 역방향으로도 수행하는 데이타경로장치(DPU), 4)ICIC버퍼, DP소자와의 시스템측 인터페이스(SYSIDP), 및 DP소자와의 메모리측 인터페이스(MEMIDP)를 포함하여 DC 소자의 MCL로부터 수신된 데이타와 명령을 버퍼링하고 명령을 데이타전송 제어신호로 변한시키는 ICIC, 및 5)ICIC를 통해 MCL로부터의 현재 명령에 근거되어 모든 다른 블록에 제어를 제공하는 데이타경로 상태머신(DPSM)을 포함한다.
ICIC는 BED와 QMUD 데이타 트래픽과 관련된 모든 명령을 다루는 시스템측 인터페이스(SYSIDP), 및 DP소자의 구성 프로그래밍, 메모리 데이타 트래픽, QMUD와 관련된 모든 명령을 다루는 메모리측 인터페이스(MEMIDP)를 제공한다. MC를 목적으로 하는 버스 요구는 MCL 에 의해 생성되고 SYSIDP 로 전송되는 적어도 일명령을 초래할 것이며, 상기 SYSIDP 에서 명령이 처리되고 BED로부터 QMUD 로, 또는 그 역방향으로의 데이타흐름을 지시하는 제어신호로 변환된다.
SYSIDP에 의해 처리된 명령은 또한 MEMIDP 로 전송되어 메모리로의 또는 메모리로부터의 데이타전송을 개시할 것이다.
DPSM 은 DC 소자로부터 수신된 메모리명령을 처리하고 QMUD 와 메모리어레이 사이의 데이타 흐름을 제어한다. 상기는 또한 각각의 매모리 명령의 후반부에 ICIC를 통해 DC소자로 에러를 형태적으로 보고한다. DP레지스터는 시스템데이타와 메모리 데이타에 대한 ECC 검사를 인에이블(enable)하는데 이용되는 구성가능한 ECC레지스터로 다른 장치사이에 구성된다.
제 2도 및 제 3도에 도시된 DPU에 관해서, 판독데이타버스와 기입데이타버스는 각각, 메모리로부터의 데이타를 QMUD의 판독데이타버퍼로 전송시키고 QMUD 의 기입데이타버퍼로부터 메모리로 전송시키기 위해 DPU내에 제공된다.
제 3도에 도시된 바와같이, DPU 는 ECC 검사 및 정정장치, 및 ECC코드워드생성장치로 더 구성된다.
아웃바운드(outbound)인 기입데이타( 즉, 바람직한 실시예에서 64 비트 DWORD(Data WORD) 는 먼저 기입데이타버퍼에서 팝(pop) 되고, 그후 ECC코드워드 생성장치로 입력되는데, ECC 코드 워드 생성장치에서 8 패리티비트가 계산되고 DWORD에 첨부되어, MIO 버퍼를 거쳐 메모리로 이후에 기입되는 72 비트 코드워드를 형성하게 된다.
역으로, 72비트 코드워드의 형태의 인바운드(inbound) 인 판독데이타는 먼저 MIO버퍼에서 버퍼링되고, 그후, ECC 검사 및 정정장치로 지시되어 코드워드를 디코딩하고, 데이터를 에러에 대해 검사하고, 그리고 QMUD 의 판독데이타버퍼내에 저장되기 이전에 정정가능한 에러를 정정하게 된다. 상기 경우에서, 72비트 코드워드는 원래의 64 비트 DWORD로 디코딩되며, 코드워드에 대한 신드롬을 계산하는데 이용된다. 신드롬은 에러가 발생되었는지를 결정하기 위해 에러분류회로( 비도시) 로 입력된다.
에러가 발생했다면, 상기 에러조건은 정정가능한 에러인지, 또는 정정불가능한 에러인지에 따라, 에러버스를 거쳐 DC 소자의 MCL로 보고된다. 정정가능하다면, 코드워드에 대한 신드롬은 에러정정회로( 비도시) 로 입력되어 정정된 DWORD를 QMUD 의 판독데이타버퍼로의 출력으로써 생산하게 된다.
임의의 ECC코드가 본 발명에 따라 개념적으로 활용될 수 있을지라도, 본 발명의 상기 실시예에 바람직하게 이용된 ECC코드는 (72,64)SEC-DED-S4ED 회전식 에러제어코드로 구성되며, 상기 코드는 산타클라라의 인텔 코오퍼레이션에 양도된 1993.12.30.에 제출된 미합중국 특허출원 일련번호. 08/176,351에 상세히 설명되어 있다.
코드에 대한 H행렬은 72 비트 데이타경로에 대해 패리티검사를 지원하도록 설계된다. H 행렬의 모든 열을 선형적으로 독립적이고 홀수가중값(weight)를 가지며, 각각의 4비트 와이드열(wide column) 이 4비트 바이트 에러의 검출을 수행하도록 배열되어 있다. 1 및 2비트 에러는 SEC-DED특성에 의해 커버되며, 반면 3중 에러는 H의 임의의 가중값 5열과 동일하지 않은 홀수 신드롬의 가중값 5를 생성한다. 부가적으로 나중 에러는 비- 제로, 짝수가중값 신드롬을 부여한다. 따라서, 상기 특정한 ECC코드는, 1)각각의 열이 고유하기 때문에 단일 비트에러를 검출하고 정정할 수 있으며, 2)각각의 열이 홀수가중값을 가지기 때문에 이중 비트에러를 검출할 있으며, 3)상기 에러는 가중값 2와 1/2및 가중값 3과 1/2를 가진 신드롬을 초래할 것이기 때문에 니블(nibble)내에서 3비트에러를 검출할 수 있으며, 그리고 4) 상기 에러가 합계가 0이 될 수 없는 신드롬을 초래할 것이기 때문에 니블내에서 4비트에러를 검출할 수 있다.
II. 자동 ECC스크러빙 메카니즘
상술된 MC 의 실시예에 따라서, 메모리판독시에 자동 메모리 스크러빙은 QMUD 판독버퍼와 기입버퍼의 출력사이에 결합된 정정데이타 재기입경로에 의해, DPSM를 거쳐 MCL의 제어하에서 수행된다. 제 3도를 참조하여, 일단 ECC 검사 및 정정장치가 메모리로 부터 판독된 코드워드에서 정정가능한 에러를 검출하였다면, 그 장치는 에러버스를 거쳐 MCL 에 상기 조건을 신호지정하고, 에러데이타를 정정하고, 그리고 그것을 QMUD 의 다음 할당된 판독버퍼에 전송한다.
MMIC의 제어하에서, BED 는 결국 판독버퍼로 부터의 데이타를 마이크로프로세서에 의한 이용을 위해 시스템버스 또는 다른 버스대리로 배치한다. 그러나, 데이타의 복사는 DC 소자의 요구 큐에서의 대응 요구가 멈춰질때까지 할당된 판독버퍼에서 계속 유지된다.
MCL 는 버퍼할당, 특히 현재 정정된 데이타가 저장된 버퍼를 계속유지하며, 그리고 요구 큐의 대응 버스요구에 에러태그(error tag) 를 부가시킨다. 그후, MCL 은 메모리 스크러브명령을 MEMCMD버스(ICIC를 거쳐) 로 OPSM 에 발행하여 판독버퍼내의 정정된 데이타가 이전 기억장소로 다시 기입되도록 신호지정한다. MC의 파이프라인방식 성질에 기인하여, MCL 이 QMUD 의 다른 데이타버퍼를 이용하여 최고의 우선순위 트랜잭션을 수행하거나 또는 완료하는 것을 선택할 수 있기 때문에 스크러브 명령은 즉시 발행될 필요가 없다. 그러나, 일 판독데이타 버퍼만이 제공된다면, 메모리 스크러빙은 정정된 판독데이타가 버퍼로부터 제거되거나, 또는 그이후의 판독에 의해 재기입되기 이전에 수행되어야 한다.
일단 DPSM 에 의해 수신되면, 정정된 데이타가 데이타의 길이에 부가적으로 저장된 특정 버퍼를 식별하는 스크러브 명령은 디코딩되며, 스프러브 처리 상태머신(SPSM)은 스크러브 처리를 개시하기 위해 선택된다.
스크러브 처리에 있어서, SPSM은 먼저 판독소스 선택신호를 판독데이타버퍼 제어다중화기(CTL MUX) 에 발행하여, 특정버퍼를 액세스하도록 명령을 발행할 것이며 그로부터 판독 동작을 개시할 제어소스를 선택하게 된다.
판독소스 선택신호의 가정시에, CTL MUX 의 출력은 제 1" 버스대리" 제어입력( 시스템버스를 거쳐) 으로부터 제 2 MCL 제어입력(MEMCMD 버스를 거쳐) 으로 변화되어 MCL이 이제 판독 데이타 버퍼의 주소지정 및 스트로빙(strobing)을 제어하도록 한다.
SPSM 머신은 또한 버퍼선택신호를 출력다중화기(OUT MUX) 로 발행하는데, 여기서 출력 다중화기는 그들 각각의 버퍼로부터의 기입데이타 및 판독데이타를 둘다 입력으로써 가지며 MIO버퍼 및 MIC를 거쳐 메모리에 결합된 그 출력을 가진다. 일단 상기가 수행되어졌다면, 그후 SPSM은 판독데이타버퍼에서 데이타를 판독하기 위해 판독인에이블 신호를 CTL MUX에 지시한다. 데이타는 OUT MUX를 통해, 코드워드가 생산되고 MMID 의 MIO버퍼내에 저장되는 ECC코드워드 생성장치로 보내진다. 그후 MCL은 적합한 주소를 발행하고 메모리 제어버스를 거쳐 MIC와 메모리어레이에 속성신호를 요구하여 정정된 데이타가 DC소자의 요구 큐에 아직 존재하는 원래의 판독요구에 의해 특정화된 기억장소에 기입되도록 한다. 정정된 데이타가 동일 기억장소에 다시 기입되어 졌다면, DC소자의 요구 큐에 첨부된 요구는 제거되고 대응 판독데이타버퍼는 앞으로의 이용을 위해 할당해제 된다.
본 발명의 또다른 실시예에 있어서, 상술된 스크러빙 메카니즘은 하드와이어된 재기입 경로를 거쳐 메모리어레이의 주기적 스크러빙을 수행하는데 이용된다.
에러가 있는 기억장소가 에러판독데이타의 정정시에 자동적으로 스크러빙되기 때문에, 전체 메모리는 메모리의 각각의 장소를 순차적으로 판독함으로써 간단히 스크러빙될 수 있다. 더욱이, MC의 MCL이 정정가능한 에러의 검출시에 정정된 데이타의 재기입을 제어하는데 적합한 제어신호를 생성하기 때문에, 마이크로프로세서로부터 요구된 소프트웨어 지원만이 상기 특정동작에 대한 구성 레지스터를 셋업시키는데 요구되는 것이다.
제 2대안적인 실시예에 있어서, 동일 메카니즘이 판독- 변경- 기입동작이 수행되는 경우에 새로운 ECC코드워드를 생성시키는데 이용될 수 있다.
상기는 먼저 기입버퍼에 일부 기입데이타를 저장시키고 그후 메모리로부터 변경될 데이타를 판독하고 그것을 판독데이타버퍼에 저장시킴으로써 수행된다.
적합한 버퍼선택신호 및 바이트 인에이블신호를 출력다중화기에 인가시킴으로써, 그후 데이타경로 상태머신은 데이타가 메모리기로 기입될때에 출력다중화기를 거쳐 판독 및 기입데이타를 합병시킬 것이다.
상기는 판독- 변경- 기입동작에 대한 ECC를 생성하는데 간단하고 효과적인 수단을 제공할 뿐만아니라, 정정불가능한 이중비트에러가 처리중에 생산되지 않도록 보증하여 시스템 신뢰도를 증가시킨다.
따라서, 메모리로의 정정된 데이타 재기입경로로 구성되는 하드웨어 스크러빙 메카니즘의 이용을 통해, 본 발명은 종래의 소프트웨어에 근거된 스크러빙 메카니즘에 내재하는 단점을 극복할 수 있다.
이미 존재하는 ECC검사 및 정정회로와 그 동작효과를 활용함으로써, 본 발명은 이전의 ECC 스크러빙 처리를 간소화할 수 있으며, 메모리 스크러빙 동작에 요구된 메모리대역 폭의 양을 동시에 감소시키면서 전반적인 시스템 성능과 신뢰도를 개선시키게 된다.
본 발명의 정신과 영역을 벗어나지 않는 한에서 다양한 수정과 변형이 본 기술의 당업자에 의해 수행될 수 있는 것으로 평가될 것이다. 따라서, 본 발명은 앞서의 실례적인 세부사항에 의해 제한되지 않으며 첨부된 청구범위에 의해 한정될 것으로 이해 된다.
제 1도는 메모리제어기가 메모리 인터페이스 소자에 의해 매모리어레이와 결합된 메모리 서브시스템, 및 다수의 마이크로프로세서로 구성되는 범용 컴퓨터 시스템의 볼록도,
제 2도는 본 발명에 따라 제 1도에 도시된 메모리제어기의 블록도,
제 3도는 본 발명의 자동스크러빙 메카니즘을 형성하는 메모리제어기의 특정소자 및 그 상호접속의 블록도.

Claims (24)

  1. 시스템버스와 메모리사이에 결합되며, 적어도 메모리제어논리, 및 메모리와 시스템버스 사이의 데이타를 전송하는 제 1데이타버퍼를 구비한 메모리제어기에서 특정 기억 장소로부터 판독된 데이타의 정정가능한 에러의 검출시에 메모리의 ECC에러를 자동적으로 스크러빙하기 위한 방법에 있어서,
    에러판독데이타를 정정하는 단계;
    정정된 판독데이타를 제 1데이타버퍼에 저장시키는 단계;
    제 1데이타버퍼에 저장된 정정된 판독데이타를 제 1데이타버퍼와 시스템버스 사이에 결합된 입력단과 메모리에 결합된 출력단을 가진 재기입경로로 기입시키는 단계; 및
    재기입 경로로부터의 정정된 판독데이타를 메모리제어논리에 의해 생성된 메모리제어 신호에 따라 특정기억장소로 기입시키는 단계로 구성되는 것을 특징으로 하는 방법.
  2. 제 1항에 있어서, 메모리로부터 판독된 데이타의 정정가능한 에러의 검출시에 메모리제어논리에 정정가능한 에러의 존재를 신호지정하는 단계로 더 포함하는 것을 특징으로 하는 방법.
  3. 제 2항에 있어서, 제 1데이타버퍼에 저장된 정정된 판독데이타를 재기입경로로 기입시키는 단계는 메모리 제어논리에 의해 생성된 메모리 제어신호와 정정된 판독데이타의 기입을 배타적으로 제어하도록, 시스템버스에 결합된 버스대리로부터 메모리제어논리로 제 1 데이타버퍼의 제어를 전송하는 단계로 구성되는 것을 특징으로 하는 방법.
  4. 제 2항에 있어서, 메모리제어기는 다수의 데이타버퍼로 구성되어 메모리제어논리에 제시된 대응 메모리액세스 요구를 거쳐 메모리로의 동시적인 액세스를 가능하게하며, 그리고 제 1데이타버퍼에 저장된 정정된 판독데이타를 재기입경로로 기입시키는 단계는 에러판독 데이타와 연관된 메모리 액세스 요구를 식별하기 위해, 정정가능한 에러의 존재를 신호지정할시에 메모리제어논리의 요구 큐에 현재 메모리액세스 요구에 에러 태그를 연관시키는 단계;
    시스템버스에 결합된 버스대리로부터 메모리제어논리로 제 1데이타버퍼의 제어를 전송 하는 단계; 및
    메모리제어논리에 의해 생성된 메모리 제어신호와 배타적으로 정정된 판독데이타의 기입을 제어하는 단계로 구성되는 것을 특징으로 하는 방법.
  5. 제 4항에 있어서, 제 1데이타버퍼에 기억된 정정된 판독데이타를 재기입경로로 기입시키는 단계는 더 높은 우선순위를 가진 다른 메모리액세스에 뒤이어 수행되는 것을 특징으로 하는 방법.
  6. 제 2항에 있어서, 제 1데이타버퍼에 저장된 정정된 판독데이타를 재기입경로로 기입시키는 단계는
    버스대리에 의해 생성되고 시스템버스를 거쳐 전송된 메모리 제어신호를 제어다중화기로의 제 1입력으로써 제공하는 단계;
    메모리제어논리에 의해 생성된 메모리 제어신호를 제어다중화기로의 제 2입력으로써 제공하는 단계;
    정정가능한 에러의 존재를 신호지정할시에 메모리 제어논리에 의해 생성된 메모리제어 신호를 제어다중화기로부터의 출력으로써 선택하는 단계; 및
    메모리제어논리에 의해 생성된 메모리 제어신호에 따라 제 1데이타버퍼에 저장된 정정된 데이타를 판독하기 위해 제어다중화기로부터의 출력을 제 1데이타 버퍼로의 제어/ 주소입력으로써 재기입경로에 공급하는 단계로 구성되는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서, 정정된 판독데이타를 재기입경로로부터 특정기억장소로 기입시키는 단계는
    버스대리에 의해 생성되고 시스템버스를 거쳐 전송된 기입데이타를 출력다중화기로의 제 1입력으로써 제공하는 단계;
    재기입경로상의 정정된 판독데이타를 출력다중화기로의 제 2입력으로써 제공하는 단계;
    정정가능한 에러의 존재를 신호지정할시에 메모리제어논리에 의해 정정된 판독데이타를 출력다중화기로 부터의 출력으로써 선택하는 단계; 및
    출력다중화기로 부터의 선택된 데이타 출력을 특정 기억장소로 기입시키는 단계로 구성되는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서, 제 1데이타버퍼는 메모리로부터 판독된 데이타를 저장시키는 판독 데이타버퍼로 구성되며, 메모리제어기는 메모리로 기입될 데이타를 저장시키는 기입데이타 버퍼로 더 구성되며, 그리고 버스대리에 의해 생성되고 시스템버스를 거쳐 전송된 기입 데이타를 출력다중화기로의 제 1입력으로써 제공하는 단계는
    버스대리에 의해 생성된 기입데이타를 시스템버스로 부터 기입데이타버퍼로 기입시키는 단계 ; 및
    기입버퍼에 저장된 기입데이타를 출력다중화기로의 제 1입력으로써 제공하는 단계로 구성되는 것을 특징으로 하는 방법.
  9. 제 7항에 있어서, 정정가능한 에러의 존재를 메모리 제어논리에 신호지정하는 단계는 메모리로부터 판독된 데이타를 에러 검사 및 정정회로로 입력시키는 단계; 및
    정정가능한 에러의 검출시에 정정가능한 에러검출신호를 에러검사 및 정정회로로부터 제어논리로 전송하는 단계로 구성되는 것을 특징으로 하는 방법.
  10. 제 1항에 있어서, 메모리 제어기는 다수의 판독 데이타버퍼 및 기입데이타버퍼로 구성되며, 그 각각의 데이타버퍼는 이중포트 랜덤 액세스메모리를 형성하며, 제 l데이타버퍼는 판독데이타버퍼를 형성하는 것을 특징으로 하는 방법.
  11. 시스템버스와 메모리사이에 결합되며, 적어도 메모리 제어논리, 및 메모리와 시스템버스 사이의 데이타를 전송하는 제 1데이타버퍼를 구비하는 메모리제어기에서 메모리의 ECC 에러를 자동적으로 스크러빙하기 위한 방법에 있어서,
    메모리로부터 데이타를 판독하는 단계,
    판독데이타를 에러에 대해 검사하고 판독데이타의 정정가능한 에러를 정정하기 위해 판독데이타를 ECC에러검사 및 정정회로로 입력시키는 단계;
    특정 기억장소로부터 판독된 데이타의 정정가능한 에러의 검출시에 에러검사 및 정정회로로부터 메모리 제어논리로 정정가능한 에러 검출신호를 전송하는 단계;
    에러검사 및 정정회로로부터 출력된 정정된 판독데이타를 제 1데이타버퍼에 저장시키는 단계:
    에러검사 및 정정회로로부터의 정정가능한 에러검출신호의 수신시에 메모리제어논리에 의해 제 1소스선택신호와 제 2버퍼선택신호를 생성하는 단계;
    시스템버스를 거치는 버스대리 및 메모리제어논리 각각으로부터의 메모리제어신호를 입력으로써 가져 메모리제어논리로부터 입력된 메모리제어신호를 제어다중화기로부터의 출력으로써 선택하게되도록 제어다중화기로 제 1소스선택신호를 전송하는 단계;
    메모리 제어논리에 의해 배타적으로 제 1데이타버퍼에 저장된 정정된 판독데이타의 기입을 제어하기 위해 제어다중화기로부터의 출력을 제 1데이타버퍼로의 제어입력으로써 공급하는 단계;
    제 1데이타버퍼로부터의 정정된 판독데이타를, 시스템버스를 거쳐 버스대리에 의해 제공된 기입데이타를 제 2입력으로써 가진 출력다중화기로의 제 1입력과 제 1데이타버퍼의 출력사이에 결합되는 재기입 경로로 기입시키는 단계;
    출력다중화기로 부터의 출력으로써 정정된 판독데이타를 선택하기 위해 출력다중화기로의 제어입력으로써 제 2버퍼선택신호를 공급하는 단계; 및
    메모리제어논리에 의해 생성된 메모리 제어신호에 따라 특정 기억장소로 다시 정정된 판독데이타를 기입하는 단계로 구성되는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 메모리제어기는 다수의 데이타버퍼로 구성되어 메모리 제어논리에 제시된 대응 메모리액세스 요구를 거쳐 메모리로의 동시적인 액세스를 가능하게하며, 그리고
    제 1데이타버퍼로 부터의 정정된 판독데이타를 재기입경로로 기입시키는 단계는 에러검사 및 정정회로로부터의 정정가능한 에러검출신호의 수신시에 메모리제어논리의 요구큐의 현재 메모리 액세스 요구에 에러태그를 연관시키는 단계에 의해 수행되는 것을 특징으로 하는 방법.
  13. 제12항에 있어서, 제 1데이타버퍼로부터의 정정된 판독데이타를 재기입경로로 기입시키는 단계는 더높은 우선순위를 가진 다른 메모리액세스에 뒤이어 수행되는 것을 특징으로 하는 방법.
  14. 제11항에 있어서, 제 1데이타버퍼는 메모리로부터 판독된 데이타를 저장시키는 판독데이타버퍼로 구성되며, 메모리제어기는 메모리로 기입될 데이타를 저장시키는 기입데이타 버퍼로 더 구성되며, 그리고 상기 방법은
    버스대리에 의해 제공된 기입데이타를 시스템 버스로부터 기입데이타버퍼로 기입시키는 단계; 및
    기입버퍼에 저장된 기입데이타를 출력다중화기로의 제 2입력으로써 제공하는 단계로 구성되는 것을 특징으로 하는 방법.
  15. 제11항에 있어서, 메모리제어기는 다수의 판독데이타버퍼 및 기입데이타버퍼로 구성되며, 그 각각의 데이타버퍼는 이중포트 랜덤액세스메모리를 형성하고 제 1데이타버퍼는 판독데이타버퍼를 형성하는 것을 특징으로 하는 방법.
  16. 제11항에 있어서, 메모리로부터 데이타를 판독하는 단계는 주기적 스크러빙의 수행으로 각각의 기억장소를 순차적으로 판독함으로써 수행되며, 기억장소의 판독은 메모리제어논리에 의해 생성된 메모리 제어신호에 의해 제어되는 것을 특징으로 하는 방법.
  17. 마이크로프로세서, 적어도 입력/ 출력장치로 구성되는 다수의 버스대리 및 메모리에 마이크로프로세서를 결합시키는 시스템버스, 및 적어도 메모리로의 액세스를 제어하는 메모리제어논리를 가진 메모리제어기로 구성되는 컴퓨터 시스템에서 메모리로부터 판독된 데이타의 정정가능한 에러의 검출시에 메모리의 ECC에러를 자동적으로 스크러빙하기 위해 메모리 제어기예 제공된 장치에 있어서,
    메모리로부터 판독된 데이타를 에러에 대해 검사하고 판독데이타에서 발견된 정정가능한 에러를 정정하며, 정정가능한 에러의 검출시에 특정기억장소로부터 판독된 데이타의 정정가능한 에러의 존재를 메모리제어논리에 신호지정하는 ECC에러 검사 및 정정장치;
    ECC 에러 검사 및 정정장치로부터 출력된 판독데이타를 저장시키는 제 1데이타버퍼; 및
    특정 기억장소로부터 판독된 데이타의 정정가능한 에러의 존재를 신호지정하는데 반응하여 메모리제어논리에 의해 생성된 메모리제어신호에 따라, 제 1데이타버퍼의 출력에 결합된 입력단 및 제 1버퍼로부터 메모리로 정정된 데이타를 기입하기 위해 메모리에 결합된 출력단을 가진 재기입경로로 구성되는 것을 특징으로 하는 장치.
  18. 제17항에 있어서, 장치는 메모리제어논리에 의해 생성된 메모리제어신호를 제 1입력으로써, 마이크로프로세서와 버스대리중 하나에 의해 생성된 메모리제어신호를 제 2입력으로써, 그리고 특정 메모리제어신호가 선택됨에 따라 제 1데이타버퍼를 제어하는데 제 1입력과 제 2입력중 하나를 출력으로써 선택하는 메모리제어논리로 부터의 제 1선택신호를 제 3입력으로써 가지는 제어다중화기로 더 구성되며, 메모리제어논리는 정정가능한 에러의 존재의 신호지정시에 제 1선택신호를 가정하여 제 1데이타버퍼에 기억된 정정된 판독 데이타의 기입이 메모리제어논리에 의해 배타적으로 제어되도록 하는 것을 특징으로 하는 장치.
  19. 제17항에 있어서, 장치는 재기입경로상의 정정된 판독데이타를 제 1입력으로써, 마이크로 프로세서와 버스대리중 하나에 의해 제공된 기입데이타를 제 2입력으로써, 그리고 제 1입력과 제 2입력중 하나를 출력으로써 선택하는 메모리제어논리로부터의 제 2선택신호를 제 3입력으로써 가지는 출력다중화기로 더 구성되며, 메로리제어기는 정정가능한 에러의 존재의 신호지정시에 제 2선텍신호를 가정하여 메모리로의 재기입경로상에 배치된 정정된 판독데이타의 기입을 인에이블하게 되는 것을 특징을 하는 장치.
  20. 제17항에 있어서, 장치는 재기입경로상의 정정된 판독데이타를 제 1입력으로써, 마이크로 프로세서와 버스대리중 하나에 의해 제공된 기입데이타를 제 2입력으로써, 그리고 마이크로프로세서와 버스대리중 하나로부터 다중화기로 입력된 일부 기입데이타를 판독-변경- 기입동작의 수행으로 제 1버퍼에 저장된 정정된 판독데이타와 선택적으로 합병시키기 위해 메모리제어논리로 부터의 바이트 인에이블 신호를 제 3입력으로써 가지는 출력다중화기로 더 구성되는 것을 특징으로 하는 장치.
  21. 제20항에 있어서, 장치는 메모리로 다시 기입되기 이전에 출력다중화기로부터 출력된 합병된 데이타를 인코딩하는 출력다중화기의 출력에 결합된 ECC코드워드 생성장치로 더 구성되는 것을 특징으로 하는 장치.
  22. 제19항에 있어서, 제 1데이타버퍼는 메모리로부터 판독된 데이타를 저장시키는 판독데이타버퍼로 구성되며, 메모리제어기는 메모리로 기입될 데이타를 저장시키는 기입데이타 버퍼로 더 구성되며, 그리고 판독데이타버퍼에 기억된 판독데이타가 출력다중화기로의 제 1입력을 형성하고 기입데이타버퍼에 기억된 기입데이타가 출력다중화기로의 제 2입력을 형성하는 것을 특징으로 하는 장치.
  23. 제17항에 있어서, 메모리제어기는 메모리액세스 요구 큐 및 다수의 데이타버퍼로 더 구성되어, 메모리제어논리로 제시되고 요구 큐에 버퍼된 대응 메모리액세스 요구에 의해 메모리로의 동시적인 액세스를 가능하게 하며, 메모리제어논리가 에러 판독데이타와 연관된 메모리액세스 요구인 것으로써 식별된 요구 큐에 버퍼된 메모리액세스 요구에 에러 태그를 연관시키는 것을 특징으로 하는 장치.
  24. 제17항에 있어서, 메모리제어논리는 주기적 스크러빙의 수행으로 각각의 기억장소의 순차적인 판독을 개시하며, 기억장소의 판독이 메모리제어논리에 의해 생성된 메모리제어신호에 의해 제어되는 것을 특징으로 하는 장치.
KR1019950008657A 1994-05-24 1995-04-13 하드웨어에의해메모리의ecc에러를자동적으로스크러빙하는방법및장치 KR100379812B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US24829894A 1994-05-24 1994-05-24
US08/248,298 1994-05-24
US8/248,298 1994-05-24

Publications (2)

Publication Number Publication Date
KR950033824A KR950033824A (ko) 1995-12-26
KR100379812B1 true KR100379812B1 (ko) 2003-06-18

Family

ID=22938511

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950008657A KR100379812B1 (ko) 1994-05-24 1995-04-13 하드웨어에의해메모리의ecc에러를자동적으로스크러빙하는방법및장치

Country Status (9)

Country Link
US (1) US6101614A (ko)
EP (1) EP0775343B1 (ko)
KR (1) KR100379812B1 (ko)
CN (1) CN1146790C (ko)
AU (1) AU2647395A (ko)
DE (1) DE69522457T2 (ko)
GB (1) GB2289779B (ko)
SE (1) SE517214C2 (ko)
WO (1) WO1995032470A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100465421B1 (ko) * 2002-12-09 2005-01-13 한국항공우주연구원 하드웨어 메모리 스크러버
US11276451B2 (en) 2020-03-31 2022-03-15 SK Hynix Inc. Error correction methods and semiconductor devices and semiconductor systems using the same
US11921578B2 (en) 2020-03-31 2024-03-05 SK Hynix Inc. Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices

Families Citing this family (184)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
KR100462585B1 (ko) * 1997-03-31 2005-04-06 삼성전자주식회사 다운 로드 정보 처리방법
KR100287018B1 (ko) 1998-08-07 2001-04-16 윤종용 에러 정정 회로를 구비한 반도체 메모리 장치
JP2000295253A (ja) * 1999-04-01 2000-10-20 Nec Corp データ通信システムおよびデータ通信方法
US6772383B1 (en) * 1999-05-27 2004-08-03 Intel Corporation Combined tag and data ECC for enhanced soft error recovery from cache tag errors
US6560725B1 (en) * 1999-06-18 2003-05-06 Madrone Solutions, Inc. Method for apparatus for tracking errors in a memory system
US6596483B1 (en) * 1999-11-12 2003-07-22 Motorola, Inc. System and method for detecting molecules using an active pixel sensor
US6845472B2 (en) * 2000-01-25 2005-01-18 Hewlett-Packard Development Company, L.P. Memory sub-system error cleansing
US6832340B2 (en) * 2000-01-26 2004-12-14 Hewlett-Packard Development Company, L.P. Real-time hardware memory scrubbing
US6779128B1 (en) 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US6564306B2 (en) * 2000-04-25 2003-05-13 Hewlett-Packard Development Company, L.P. Apparatus and method for performing speculative cache directory tag updates
US6553536B1 (en) * 2000-07-07 2003-04-22 International Business Machines Corporation Soft error correction algebraic decoder
US6622268B2 (en) * 2000-11-29 2003-09-16 Intel Corp Method and apparatus for propagating error status over an ECC protected channel
JP4373615B2 (ja) * 2001-01-25 2009-11-25 富士通マイクロエレクトロニクス株式会社 初期不良ブロックのマーキング方法
US6681340B2 (en) 2001-02-23 2004-01-20 International Business Machines Corporation Efficient implementation of error correction code scheme
US6449203B1 (en) * 2001-03-08 2002-09-10 Micron Technology, Inc. Refresh controller and address remapping circuit and method for dual mode full/reduced density DRAMs
US6792567B2 (en) 2001-04-30 2004-09-14 Stmicroelectronics, Inc. System and method for correcting soft errors in random access memory devices
US6571317B2 (en) 2001-05-01 2003-05-27 Broadcom Corporation Replacement data error detector
US6859904B2 (en) * 2001-05-11 2005-02-22 Sun Microsystems, Inc. Apparatus and method to facilitate self-correcting memory
US6976204B1 (en) * 2001-06-15 2005-12-13 Advanced Micro Devices, Inc. Circuit and method for correcting erroneous data in memory for pipelined reads
JP4059472B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US6851070B1 (en) * 2001-08-13 2005-02-01 Network Appliance, Inc. System and method for managing time-limited long-running operations in a data storage system
US20030046630A1 (en) * 2001-09-05 2003-03-06 Mark Hilbert Memory using error-correcting codes to correct stored data in background
JP4856848B2 (ja) 2001-10-11 2012-01-18 アルテラ コーポレイション プログラマブルロジックリソース上のエラー検出
US6751159B2 (en) 2001-10-26 2004-06-15 Micron Technology, Inc. Memory device operable in either a high-power, full-page size mode or a low-power, reduced-page size mode
US7051264B2 (en) 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
US6848063B2 (en) 2001-11-20 2005-01-25 Hewlett-Packard Development Company, L.P. System and method for scrubbing errors in very large memories
US6934903B1 (en) 2001-12-17 2005-08-23 Advanced Micro Devices, Inc. Using microcode to correct ECC errors in a processor
US6718444B1 (en) * 2001-12-20 2004-04-06 Advanced Micro Devices, Inc. Read-modify-write for partial writes in a memory controller
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
US6941493B2 (en) * 2002-02-27 2005-09-06 Sun Microsystems, Inc. Memory subsystem including an error detection mechanism for address and control signals
US6838331B2 (en) * 2002-04-09 2005-01-04 Micron Technology, Inc. Method and system for dynamically operating memory in a power-saving error correction mode
US6751143B2 (en) * 2002-04-11 2004-06-15 Micron Technology, Inc. Method and system for low power refresh of dynamic random access memories
US7171610B2 (en) * 2002-06-12 2007-01-30 International Business Machines Corporation Method, system, and article of manufacture for preventing data loss
US7043679B1 (en) 2002-06-27 2006-05-09 Advanced Micro Devices, Inc. Piggybacking of ECC corrections behind loads
US6996766B2 (en) * 2002-06-28 2006-02-07 Sun Microsystems, Inc. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US6973613B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6996686B2 (en) * 2002-12-23 2006-02-07 Sun Microsystems, Inc. Memory subsystem including memory modules having multiple banks
DE10305008A1 (de) * 2003-02-07 2004-08-19 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung einer elektronischen Steuerung
US7779285B2 (en) * 2003-02-18 2010-08-17 Oracle America, Inc. Memory system including independent isolated power for each memory module
US7496822B2 (en) * 2003-05-15 2009-02-24 Texas Instruments Incorporated Apparatus and method for responding to data retention loss in a non-volatile memory unit using error checking and correction techniques
CN100346296C (zh) * 2003-07-16 2007-10-31 联想(北京)有限公司 一种避免误用非ecc内存的设计方法
US7058782B2 (en) * 2003-07-31 2006-06-06 International Business Machines Corporation Method and apparatus for coordinating dynamic memory deallocation with a redundant bit line steering mechanism
US7530008B2 (en) * 2003-08-08 2009-05-05 Sun Microsystems, Inc. Scalable-chip-correct ECC scheme
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7188296B1 (en) 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
FR2864321B1 (fr) 2003-12-23 2007-01-19 St Microelectronics Sa Memoire dynamique a acces aleatoire ou dram comportant au moins deux registres tampons et procede de commande d'une telle memoire
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
DE102004005616A1 (de) * 2004-02-04 2005-09-15 Infineon Technologies Ag Speichereinrichtung
US7278067B1 (en) * 2004-04-30 2007-10-02 Network Appliance, Inc. Method and an apparatus for aggressively detecting media errors on storage devices with negligible performance impact
US7099221B2 (en) * 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US20060010339A1 (en) 2004-06-24 2006-01-12 Klein Dean A Memory system and method having selective ECC during low power refresh
US7340668B2 (en) 2004-06-25 2008-03-04 Micron Technology, Inc. Low power cost-effective ECC memory system and method
US7116602B2 (en) * 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US6965537B1 (en) 2004-08-31 2005-11-15 Micron Technology, Inc. Memory system and method using ECC to achieve low power refresh
US7346804B2 (en) * 2004-09-23 2008-03-18 International Business Machines Corporation Hard disk drive data scrub methodology
US7346806B2 (en) * 2004-09-23 2008-03-18 International Business Machines Corporation Hard disk drive background scrub methodology
US7272692B2 (en) * 2004-11-12 2007-09-18 International Business Machines Corporation Arbitration scheme for memory command selectors
US7363442B2 (en) * 2004-11-12 2008-04-22 International Business Machines Corporation Separate handling of read and write of read-modify-write
US7392456B2 (en) 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
DE102004059392B4 (de) * 2004-12-09 2015-09-10 Infineon Technologies Ag Verfahren zur Neubelegung eines Befehlsspeichers, Subsystem zur Durchführung eines derartigen Verfahrens, sowie Mikrokontroller
FR2879337A1 (fr) * 2004-12-15 2006-06-16 St Microelectronics Sa Circuit memoire, tel que dram, comportant un mecanisme correcteur d'erreur
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7496823B2 (en) * 2005-03-16 2009-02-24 Hewlett-Packard Development Company, L.P. Hardware based memory scrubbing
JP4734003B2 (ja) * 2005-03-17 2011-07-27 富士通株式会社 ソフトエラー訂正方法、メモリ制御装置及びメモリシステム
JP4723265B2 (ja) * 2005-03-17 2011-07-13 富士通株式会社 エラー検出訂正装置の制御方法、エラー検出訂正装置、情報処理システム、エラー検出訂正装置の制御プログラム、データ処理装置
US7797610B1 (en) * 2005-07-19 2010-09-14 Xilinx, Inc. Method and apparatus for virtual quad-port random access memory
US20070061669A1 (en) * 2005-08-30 2007-03-15 Major Karl L Method, device and system for detecting error correction defects
US7650557B2 (en) * 2005-09-19 2010-01-19 Network Appliance, Inc. Memory scrubbing of expanded memory
US7447948B2 (en) * 2005-11-21 2008-11-04 Intel Corporation ECC coding for high speed implementation
US20070168754A1 (en) * 2005-12-19 2007-07-19 Xiv Ltd. Method and apparatus for ensuring writing integrity in mass storage systems
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
WO2007132452A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7894289B2 (en) 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US7900120B2 (en) 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
WO2008053473A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Memory cell readout using successive approximation
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US20080168331A1 (en) * 2007-01-05 2008-07-10 Thomas Vogelsang Memory including error correction code circuit
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US7945840B2 (en) 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
KR100882484B1 (ko) * 2007-04-10 2009-02-09 삼성전자주식회사 에러 검출 기능을 가지는 반도체 메모리 장치, 이를 구비한메모리 시스템 및 반도체 메모리 장치의 데이터 출력 방법
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8055975B2 (en) * 2007-06-05 2011-11-08 Apple Inc. Combined single error correction/device kill detection code
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US20090083495A1 (en) * 2007-09-26 2009-03-26 Khellah Muhammad M Memory circuit with ecc based writeback
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US20090106513A1 (en) * 2007-10-22 2009-04-23 Chuang Cheng Method for copying data in non-volatile memory system
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
JP2011108306A (ja) * 2009-11-16 2011-06-02 Sony Corp 不揮発性メモリおよびメモリシステム
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9003260B2 (en) * 2011-06-29 2015-04-07 Texas Instruments Incorporated Partial-writes to ECC (error check code) enabled memories
US8640006B2 (en) 2011-06-29 2014-01-28 International Business Machines Corporation Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis
US8589726B2 (en) 2011-09-01 2013-11-19 Infinidat Ltd. System and method for uncovering data errors
US8788904B2 (en) * 2011-10-31 2014-07-22 Hewlett-Packard Development Company, L.P. Methods and apparatus to perform error detection and correction
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US9454451B2 (en) * 2013-02-11 2016-09-27 Arm Limited Apparatus and method for performing data scrubbing on a memory device
US11074169B2 (en) * 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US10002044B2 (en) 2014-08-19 2018-06-19 Samsung Electronics Co., Ltd. Memory devices and modules
KR102214556B1 (ko) * 2014-08-19 2021-02-09 삼성전자주식회사 메모리 장치 및 모듈
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
WO2016175852A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Memory module error tracking
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US10628248B2 (en) 2016-03-15 2020-04-21 International Business Machines Corporation Autonomous dram scrub and error counting
US20170324425A1 (en) * 2016-05-06 2017-11-09 Infineon Technologies Ag Embedded parity matrix generator
KR20180009076A (ko) * 2016-07-18 2018-01-26 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10120749B2 (en) * 2016-09-30 2018-11-06 Intel Corporation Extended application of error checking and correction code in memory
US10423538B2 (en) 2017-11-29 2019-09-24 International Business Machines Corporation Bandwidth efficient techniques for enabling tagged memories
KR102045437B1 (ko) * 2018-09-07 2019-12-02 고려대학교 산학협력단 저복잡도 신드롬 기반 복호 장치 및 그 방법
KR102092476B1 (ko) * 2018-10-26 2020-03-23 고려대학교 산학협력단 블록 터보 부호의 신드롬 기반 복호 방법 및 장치
CN109669802A (zh) * 2018-11-13 2019-04-23 北京时代民芯科技有限公司 一种用于edac验证的可配置存储器验证***
US11334457B1 (en) 2019-06-27 2022-05-17 Samsung Electronics Co., Ltd. Semiconductor memory device and memory system including the same
US11036581B2 (en) * 2019-08-08 2021-06-15 Apple Inc. Non-volatile memory control circuit with parallel error detection and correction
DE102020133713A1 (de) 2020-02-27 2021-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Speicheraktualisierung
US11475929B2 (en) * 2020-02-27 2022-10-18 Taiwan Semiconductor Manufacturing Company, Ltd. Memory refresh
KR20210138241A (ko) 2020-05-12 2021-11-19 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
KR20220039432A (ko) 2020-09-22 2022-03-29 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US11740973B2 (en) 2020-11-23 2023-08-29 Cadence Design Systems, Inc. Instruction error handling
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
KR20230021949A (ko) * 2021-08-06 2023-02-14 삼성전자주식회사 메모리 장치 및 이의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274645A (en) * 1990-03-02 1993-12-28 Micro Technology, Inc. Disk array system

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB529945A (en) * 1938-06-20 1940-12-02 Us Hat Machinery Corp Improved method and machine for the blocking of felt hats
US3735105A (en) * 1971-06-11 1973-05-22 Ibm Error correcting system and method for monolithic memories
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
JPS5555499A (en) * 1978-10-16 1980-04-23 Nec Corp Memory control unit
US4506362A (en) * 1978-12-22 1985-03-19 Gould Inc. Systematic memory error detection and correction apparatus and method
US4336611A (en) * 1979-12-03 1982-06-22 Honeywell Information Systems Inc. Error correction apparatus and method
US4319356A (en) * 1979-12-19 1982-03-09 Ncr Corporation Self-correcting memory system
US4535455A (en) * 1983-03-11 1985-08-13 At&T Bell Laboratories Correction and monitoring of transient errors in a memory system
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
JPS6388920A (ja) * 1986-10-02 1988-04-20 Victor Co Of Japan Ltd 符号エラ−訂正回路
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4888773A (en) * 1988-06-15 1989-12-19 International Business Machines Corporation Smart memory card architecture and interface
US4920539A (en) * 1988-06-20 1990-04-24 Prime Computer, Inc. Memory error correction system
US4964129A (en) * 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. Memory controller with error logging
US4964130A (en) * 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. System for determining status of errors in a memory subsystem
US5127014A (en) * 1990-02-13 1992-06-30 Hewlett-Packard Company Dram on-chip error correction/detection
US5233616A (en) * 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
US5392302A (en) * 1991-03-13 1995-02-21 Quantum Corp. Address error detection technique for increasing the reliability of a storage subsystem
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5263032A (en) * 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US5325375A (en) * 1991-06-28 1994-06-28 Sun Microsystems, Inc. Method and apparatus for non-atomic level parity protection for storing data in a random access memory
US5311520A (en) * 1991-08-29 1994-05-10 At&T Bell Laboratories Method and apparatus for programmable memory control with error regulation and test functions
US5459839A (en) * 1991-09-05 1995-10-17 International Business Machines Corporation System and method for managing queue read and write pointers
US5267242A (en) * 1991-09-05 1993-11-30 International Business Machines Corporation Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
US5410545A (en) * 1992-07-28 1995-04-25 Digital Equipment Corporation Long-term storage of controller performance
US5644583A (en) * 1992-09-22 1997-07-01 International Business Machines Corporation Soft error correction technique and system for odd weight row error correction codes
US5367689A (en) * 1992-10-02 1994-11-22 Compaq Computer Corporation Apparatus for strictly ordered input/output operations for interrupt system integrity
US5490155A (en) * 1992-10-02 1996-02-06 Compaq Computer Corp. Error correction system for n bits using error correcting code designed for fewer than n bits
US5430742A (en) * 1992-10-14 1995-07-04 Ast Research, Inc. Memory controller with ECC and data streaming control
US5388108A (en) * 1992-10-23 1995-02-07 Ncr Corporation Delayed initiation of read-modify-write parity operations in a raid level 5 disk array
US5588112A (en) * 1992-12-30 1996-12-24 Digital Equipment Corporation DMA controller for memory scrubbing
US5367526A (en) * 1993-06-22 1994-11-22 Kong Edmund Y Memory module, parity bit emulator, and associated method for parity bit emulation
US5428630A (en) * 1993-07-01 1995-06-27 Quantum Corp. System and method for verifying the integrity of data written to a memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274645A (en) * 1990-03-02 1993-12-28 Micro Technology, Inc. Disk array system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
미국특허명세서 4, 888,773호(등록일 : 1989. 12. 19) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100465421B1 (ko) * 2002-12-09 2005-01-13 한국항공우주연구원 하드웨어 메모리 스크러버
US11276451B2 (en) 2020-03-31 2022-03-15 SK Hynix Inc. Error correction methods and semiconductor devices and semiconductor systems using the same
US11921578B2 (en) 2020-03-31 2024-03-05 SK Hynix Inc. Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices

Also Published As

Publication number Publication date
EP0775343A4 (en) 1997-10-22
CN1149344A (zh) 1997-05-07
GB2289779A (en) 1995-11-29
US6101614A (en) 2000-08-08
CN1146790C (zh) 2004-04-21
SE9501925L (sv) 1995-11-25
SE517214C2 (sv) 2002-05-07
GB2289779B (en) 1999-04-28
DE69522457D1 (de) 2001-10-04
EP0775343B1 (en) 2001-08-29
SE9501925D0 (sv) 1995-05-23
GB9504087D0 (en) 1995-04-19
KR950033824A (ko) 1995-12-26
AU2647395A (en) 1995-12-18
EP0775343A1 (en) 1997-05-28
WO1995032470A1 (en) 1995-11-30
DE69522457T2 (de) 2002-05-23

Similar Documents

Publication Publication Date Title
KR100379812B1 (ko) 하드웨어에의해메모리의ecc에러를자동적으로스크러빙하는방법및장치
US6754858B2 (en) SDRAM address error detection method and apparatus
US7206891B2 (en) Multi-port memory controller having independent ECC encoders
US5659713A (en) Memory stream buffer with variable-size prefetch depending on memory interleaving configuration
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US6996766B2 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6973613B2 (en) Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US5371870A (en) Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
US5379379A (en) Memory control unit with selective execution of queued read and write requests
EP0535086B1 (en) Multiple error correction in a computer memory
AU628528B2 (en) Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
US5701313A (en) Method and apparatus for removing soft errors from a memory
US7257762B2 (en) Memory interface with write buffer and encoder
JPH01195557A (ja) データ処理システムにおけるデータ転送方法
JP2001249854A (ja) メモリ設計のための共有式誤り訂正
US11218165B2 (en) Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US5953265A (en) Memory having error detection and correction
US5495422A (en) Method for combining a plurality of independently operating circuits within a single package
US20080301403A1 (en) System for integrity protection for standard 2n-bit multiple sized memory devices
US5369650A (en) Error detection and correction apparatus in a BY-4 RAM Device
US5838892A (en) Method and apparatus for calculating an error detecting code block in a disk drive controller
AU633898B2 (en) Method and means for interfacing a system control unit for a multi-processor system with the system main memory
JP2993099B2 (ja) 二重化メモリ装置
JPS62256061A (ja) 冗長構成設定可能主記憶装置
JPH04233052A (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: 20130228

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 12

EXPY Expiration of term