1 |
1
복수개의 보정 그룹들로 분할된 메모리 장치에 연결되며, 상기 각 보정 그룹에 저장된 다수의 워드들을 포함하는 데이터에서 상기 다수의 워드들 중 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하는 ECC 회로;상기 각 보정 그룹에 저장된 데이터의 패리티들을 저장하는 패리티 메모리; 및상기 에러 데이터를 수신하고, 상기 패리티들 중 상기 에러 데이터에 대응하는 패리티를 수신하며, 상기 에러 데이터와 상기 패리티의 제1 배타적 논리합 연산을 수행하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출하여 상기 ECC 회로로 전송하는 로직 회로를 구비하고,상기 ECC 회로는 상기 로직 회로에서 검출한 더블 비트 에러를 보정하며,상기 로직 회로는 상기 메모리 장치에 새로운 데이터가 기입될 때 상기 패리티 메모리에 저장된 패리티를 업데이트하기 위하여, 상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 산출하고, 상기 패리티 메모리에 저장된 패리티 중 상기 메모리 장치에 기입될 새로운 데이터가 저장되는 특정 보정 그룹의 패리티를 리드하며, 상기 특정 보정 그룹의 소정의 블록에 저장되어 있는 올드 데이터의 파셜 패리티가 존재할 경우에, 상기 올드 데이터의 파셜 패리티와 상기 특정 보정 그룹의 패리티 및 상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 제2 배타적 논리합 연산하며, 상기 제2 배타적 논리합 연산의 결과로 생성된 패리티를 상기 패리티 메모리에 저장하여 상기 패리티 메모리에 저장된 패리티를 업데이트하는 것을 특징으로 하는 에러 보정 장치
|
2 |
2
제1항에 있어서, 상기 ECC 회로는 상기 더블 비트 에러를 나타내는 비트들을 반전시켜서 상기 더블 비트 에러를 보정하는 것을 특징으로 하는 에러 보정 장치
|
3 |
3
제1항에 있어서,상기 메모리 장치의 각 보정 그룹에 저장되어있는 데이터의 패리티를 산출하여 상기 패리티 메모리에 저장하며, 외부로부터 상기 메모리 장치에 기입될 데이터의 패리티를 미리 산출하여 상기 패리티 메모리에 저장된 패리티들 중 대응되는 패리티를 업데이트시키는 캐시 메모리를 더 구비하는 것을 특징으로 하는 에러 보정 장치
|
4 |
4
제3항에 있어서, 상기 캐시 메모리는 라스트 레벨 캐시 메모리인 것을 특징으로 하는 에러 보정 장치
|
5 |
5
제3항에 있어서, 상기 캐시 메모리는 외부로부터 상기 메모리 장치에 기입될 데이터를 저장하는 복수개의 데이터 블록들, 및 상기 데이터의 패리티를 저장하기 위하여 상기 데이터 블록들보다 적은 개수로 구성되는 복수개의 패리티 블록들을 구비하는 것을 특징으로 하는 에러 보정 장치
|
6 |
6
복수개의 보정 그룹들로 분할되며 각 보정 그룹에 다수의 워드들을 포함하는 데이터가 저장되는 메모리 장치, 상기 데이터의 패리티가 저장되는 패리티 메모리를 구비하여 상기 데이터의 에러를 보정하는 방법에 있어서,(a) 상기 각 보정 그룹에 저장된 데이터를 리드하는 단계;(b) 상기 데이터에 대한 SECDED(Single Error Correction Double Error Detection) 코드워드를 디코딩하는 단계;(c) 상기 디코딩 결과, 상기 데이터에 더블 비트 에러를 갖는 워드가 존재할 경우에, 상기 더블 비트 에러를 갖는 워드를 포함하는 에러 데이터를 검출하는 단계;(d) 상기 에러 데이터와 상기 패리티 메모리에 저장된 패리티들 중 상기 에러 데이터에 대응되는 패리티를 제1 배타적 논리합(Exclusive OR) 연산하여 상기 더블 비트 에러를 갖는 워드 내에서 상기 더블 비트 에러의 위치를 검출하는 단계; 및(e) 상기 더블 비트 에러를 보정하는 단계를 포함하고,(f) 상기 메모리 장치에 새로운 데이터가 기입될 때 상기 패리티 메모리에 저장된 패리티를 업데이트하는 단계를 포함하며, 상기 (f) 단계는,상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 산출하는 단계;상기 패리티 메모리에 저장된 패리티 중 상기 메모리 장치에 기입될 새로운 데이터가 저장되는 특정 보정 그룹의 패리티를 리드하는 단계;상기 특정 보정 그룹의 소정의 블록에 저장되어 있는 올드 데이터의 파셜 패리티가 존재할 경우에, 상기 올드 데이터의 파셜 패리티와 상기 특정 보정 그룹의 패리티 및 상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 제2 배타적 논리합 연산하는 단계; 및상기 제2 배타적 논리합 연산의 결과로 생성된 패리티를 상기 패리티 메모리에 저장하여 상기 패리티 메모리에 저장된 패리티를 업데이트하는 단계를 포함하는 것을 특징으로 하는 에러 보정 방법
|
7 |
7
제6항에 있어서, 상기 SECDED 코드워드를 디코딩한 결과 상기 데이터에 싱글 비트 에러(single bit error)가 존재할 경우에, 상기 싱글 비트 에러를 보정하는 것을 특징으로 하는 에러 보정 방법
|
8 |
8
제6항에 있어서,상기 (d) 단계의 상기 에러 데이터의 워드들과 상기 패리티의 워드를 세로로 정렬시키고, 상기 에러 데이터의 워드들과 상기 패리티의 워드에 포함된 비트들을 각각 세로 방향으로 상기 제1 배타적 논리합 연산하는 것을 특징으로 하는 에러 보정 방법
|
9 |
9
삭제
|
10 |
10
제6항에 있어서, 상기 (f) 단계는, 상기 소정의 블록에 올드 데이터의 파셜 패리티가 존재하지 않을 경우에, 상기 메모리 장치로부터 상기 소정의 블록에 저장된 올드 데이터를 리드하는 단계; 및상기 올드 데이터의 파셜 패리티를 산출하는 단계를 더 진행한 후에,상기 올드 데이터의 파셜 패리티와 상기 특정 보정 그룹의 패리티 및 상기 메모리 장치에 기입될 새로운 데이터의 파셜 패리티를 배타적 논리합 연산하는 단계를 진행하는 것을 특징으로 하는 에러 보정 방법
|
11 |
11
제6항에 있어서, 상기 (f) 단계는, 캐시 메모리를 이용하여 상기 파셜 패리티를 산출하기 위하여,상기 메모리 장치에 기입될 새로운 데이터를 상기 캐시 메모리에 기입하는 단계; 및상기 캐시 메모리에서 상기 올드 데이터가 클린(비어있는 상태)이 아닐 경우에 상기 새로운 데이터를 상기 올드 데이터에 오버라이트하는 단계를 구비하는 것을 특징으로 하는 에러 보정 방법
|
12 |
12
제11항에 있어서, 상기 캐시 메모리에서 상기 올드 데이터가 클린일 경우,상기 올드 데이터의 파셜 패리티를 산출하는 단계; 및상기 산출된 올드 데이터의 파셜 패리티를 상기 캐시 메모리 내의 패리티 블록에 저장하는 단계를 더 구비하는 것을 특징으로 하는 에러 보정 방법
|
13 |
13
제11항에 있어서, 상기 캐시 메모리는 데이터를 저장하는 복수개의 데이터 블록들과 상기 데이터 블록보다 적은 개수로 구성되어 상기 파셜 패리티를 저장하는 패리티 블록들로 구성된 경우에,새로운 파셜 패리티가 상기 패리티 블록에 기입되는 단계;상기 패리티 블록들이 모두 가득차 있을 경우에 상기 데이터 블록들에 저장되어 있는 데이터 중 하나와 상기 패리티 블록들에 저장되어 있는 파셜 패리티들 중 하나를 캐시 메모리 내에 구비된 기입 버퍼로 전송하는 단계;상기 캐시 메모리 내에 구비된 상기 기입 버퍼로 전송하는 단계에 의해 비워진 데이터 블록과 비워진 패리티 블록의 상태를 변경하는 단계; 및상기 새로운 파셜 패리티를 상기 비워진 패리티 블록에 기입하는 단계를 구비하는 것을 특징으로 하는 에러 보정 방법
|
14 |
14
제13항에 있어서, 상기 비워진 데이터 블록의 상태는 더티(dirty)에서 클린(clean)으로 변경하고, 상기 비워진 패리티 블록은 밸리드(valid)에서 인벌리드(invalid)로 변경하는 것을 특징으로 하는 에러 보정 방법
|