1 |
1
제1 테이블을 관리하는 저장 장치에 있어서,비휘발성 메모리; 및상기 비휘발성 메모리 내에 데이터의 크기에 따라 가변적으로 변하는 상기 제1 테이블, 상기 제1 테이블에 저장된 데이터를 포함하는 제2 테이블 및 상기 제1 테이블의 위치 값을 저장하는 위치 테이블을 저장하는 제어부를 포함하고,상기 제어부는,상기 제1 테이블의 제1 위치에 데이터를 기입하는 단계, 상기 위치 테이블에 상기 제1 위치를 나타내는 제1 위치 값을 기입하는 단계, 상기 제1 위치에 대응하는 상기 제2 테이블의 제2 위치에 상기 데이터를 기입하는 단계 및 상기 위치 테이블을 초기화하는 단계를 순차적으로 수행함으로써 상기 제1 테이블에 대한 업데이트를 수행하고,상기 초기화하는 단계를 수행한 이후에, 상기 저장 장치가 비정상적으로 종료되는 경우를 고려하여 상기 위치 테이블에 저장된 제2 위치 값을 독출하고, 상기 독출된 제2 위치 값에 대한 복원된 위치 값이 널 값인지 여부에 따라 제2 테이블의 데이터를 제1 테이블로 복원하거나 또는 제2 테이블을 상기 제1 테이블의 복제 테이블로 유지하는, 저장 장치
|
2 |
2
제1항에 있어서,상기 제1 위치는 상기 제1 테이블의 엔트리들 중 하나인 제1 엔트리를 나타내고, 상기 제2 위치는 상기 제2 테이블의 엔트리들 중 하나인 제2 엔트리를 나타내고, 상기 제1 엔트리의 제1 인덱스 및 상기 제2 엔트리의 제2 인덱스는 동일한, 저장 장치
|
3 |
3
제1항에 있어서,상기 초기화하는 단계에서 상기 제어부는 제1 위치 값을 널(NULL) 값으로 갱신함으로써 상기 위치 테이블을 초기화하는, 저장 장치
|
4 |
4
제3항에 있어서,상기 제어부는 상기 위치 테이블에 저장된 제2 위치 값이 널 값일 경우 상기 제2 테이블의 내용을 상기 제1 테이블로 복제함으로써 상기 제1 테이블을 복원하고, 상기 제2 위치 값이 널 값이 아닐 경우 상기 제2 위치 값을 사용하여 상기 제2 위치 값에 대응하는 상기 제1 테이블의 제3 위치에 저장된 제2 데이터를 상기 제2 위치 값에 대응하는 상기 제2 테이블의 제4 위치에 기입함으로써 상기 제2 테이블을 상기 제1 테이블의 복제 테이블로서 유지하는, 저장 장치
|
5 |
5
제1항에 있어서,상기 제1 위치 값을 기입하는 단계에서 상기 제어부는 상기 위치 테이블의 서로 상이한 3 개 이상의 위치들의 각각에 상기 제1 위치 값을 기입하는, 저장 장치
|
6 |
6
제5항에 있어서,상기 초기화하는 단계에서 상기 제어부는 상기 3 개 이상의 위치들의 각각에 널(null) 값을 기입함으로써 상기 위치 테이블을 초기화하는, 저장 장치
|
7 |
7
제6항에 있어서,상기 제어부는 상기 3 개 이상의 위치들에 기입된 값들에 대해 다수결의 원리를 적용함으로써 복원된 위치 값을 결정하고,상기 제어부는 상기 복원된 위치 값에 기반하여 상기 제1 테이블을 복원하는, 저장 장치
|
8 |
8
제7항에 있어서,상기 제어부는 상기 복원된 위치 값이 널 값일 경우 상기 제2 테이블의 내용을 상기 제1 테이블로 복제함으로써 상기 제1 테이블을 복원하고, 상기 복원된 위치 값이 널 값이 아닐 경우 상기 복원된 위치 값을 사용하여 상기 복원된 위치 값에 대응하는 상기 제1 테이블의 제3 위치에 저장된 제2 데이터를 상기 복원된 위치 값에 대응하는 상기 제2 테이블의 제4 위치에 기입함으로써 상기 제2 테이블을 상기 제1 테이블의 복제 테이블로서 유지하는, 저장 장치
|
9 |
9
비휘발성 메모리 및 제어부를 포함하는 저장 장치가 제1 테이블을 관리하는 방법에 있어서,상기 제어부가 상기 비휘발성 메모리 내에 저장된 상기 제1 테이블의 제1 위치에 제1 데이터를 기입하는 단계;상기 제어부가 상기 비휘발성 메모리 내에 저장된 위치 테이블에 상기 제1 위치를 나타내는 제1 위치 값을 기입하는 단계;상기 제어부가 상기 비휘발성 메모리 내에 저장된 상기 제1 위치에 대응하는 제2 테이블의 제2 위치에 상기 제1 데이터를 기입하는 단계; 및상기 제어부가 상기 위치 테이블을 초기화하는 단계를 포함하고,상기 위치 테이블을 초기화한 이후에, 상기 저장 장치는,상기 저장 장치가 비정상적으로 종료되는 경우를 고려하여 상기 위치 테이블에 저장된 제2 위치 값을 독출하고, 상기 독출된 제2 위치 값에 대한 복원된 위치 값이 널 값인지 여부에 따라 제2 테이블의 데이터를 제1 테이블로 복원하거나 또는 제2 테이블을 상기 제1 테이블의 복제 테이블로 유지하는, 테이블을 관리하는 방법
|
10 |
10
제9항에 있어서,상기 제1 위치는 상기 제1 테이블의 엔트리들 중 하나인 제1 엔트리를 나타내고, 상기 제2 위치는 상기 제2 테이블의 엔트리들 중 하나인 제2 엔트리를 나타내고, 상기 제1 엔트리의 제1 인덱스 및 상기 제2 엔트리의 제2 인덱스는 동일한, 테이블을 관리하는 방법
|
11 |
11
제9항에 있어서,상기 초기화하는 단계에서 상기 제어부는 제1 위치 값을 널(NULL) 값으로 갱신함으로써 상기 위치 테이블을 초기화하는, 테이블을 관리하는 방법
|
12 |
12
제11항에 있어서,상기 제어부가 상기 위치 테이블에 저장된 제2 위치 값이 널 값일 경우 상기 제2 테이블의 내용을 상기 제1 테이블로 복제함으로써 상기 제1 테이블을 복원하는 단계; 및상기 제2 위치 값이 널 값이 아닐 경우 상기 제2 위치 값을 사용하여 상기 제2 위치 값에 대응하는 상기 제1 테이블의 제3 위치에 저장된 제2 데이터를 상기 제2 위치 값에 대응하는 상기 제2 테이블의 제4 위치에 기입함으로써 상기 제2 테이블을 상기 제1 테이블의 복제 테이블로서 유지하는 단계를 더 포함하는, 테이블을 관리하는 방법
|
13 |
13
제9항에 있어서,상기 제1 위치 값을 기입하는 단계에서 상기 제어부는 상기 위치 테이블의 서로 상이한 3 개 이상의 위치들의 각각에 상기 제1 위치 값을 기입하는, 테이블을 관리하는 방법
|
14 |
14
제13항에 있어서,상기 초기화하는 단계에서 상기 제어부는 상기 3 개 이상의 위치들의 각각에 널(null) 값을 기입함으로써 상기 위치 테이블을 초기화하는, 테이블을 관리하는 방법
|
15 |
15
제14항에 있어서,상기 제어부가 상기 3 개 이상의 위치들에 기입된 값들에 대해 다수결의 원리를 적용함으로써 복원된 위치 값을 결정하는 단계; 및상기 제어부가 상기 복원된 위치 값에 기반하여 상기 제1 테이블을 복원하는 단계를 더 포함하는, 테이블을 관리하는 방법
|
16 |
16
제15항에 있어서,상기 제1 테이블을 복원하는 단계는,상기 제어부가 상기 복원된 위치 값이 널 값일 경우 상기 제2 테이블의 내용을 상기 제1 테이블로 복제함으로써 상기 제1 테이블을 복원하는 단계; 및 상기 복원된 위치 값이 널 값이 아닐 경우 상기 복원된 위치 값을 사용하여 상기 복원된 위치 값에 대응하는 상기 제1 테이블의 제3 위치에 저장된 제2 데이터를 상기 복원된 위치 값에 대응하는 상기 제2 테이블의 제4 위치에 기입함으로써 상기 제2 테이블을 상기 제1 테이블의 복제 테이블로서 유지하는 단계를 포함하는, 테이블을 관리하는 방법
|