KR20180017376A - 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법 - Google Patents

별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR20180017376A
KR20180017376A KR1020160101106A KR20160101106A KR20180017376A KR 20180017376 A KR20180017376 A KR 20180017376A KR 1020160101106 A KR1020160101106 A KR 1020160101106A KR 20160101106 A KR20160101106 A KR 20160101106A KR 20180017376 A KR20180017376 A KR 20180017376A
Authority
KR
South Korea
Prior art keywords
address
information
area
data
input
Prior art date
Application number
KR1020160101106A
Other languages
English (en)
Other versions
KR101884913B1 (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 고려대학교 산학협력단
Priority to KR1020160101106A priority Critical patent/KR101884913B1/ko
Priority to US15/486,932 priority patent/US10325672B2/en
Priority to CN201710266600.6A priority patent/CN107704330B/zh
Publication of KR20180017376A publication Critical patent/KR20180017376A/ko
Application granted granted Critical
Publication of KR101884913B1 publication Critical patent/KR101884913B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법을 개시한다. 즉, 본 발명은 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 시스템에서 결함 리페어를 적용함으로써, 전체 정보 저장 공간을 활용하여 영역별로 균등하게 사용하여 전체 시스템의 성능을 향상시키며, 정보 저장 공간을 활용하여 정보 저장 공간의 효율성을 극대화시킬 수 있다.

Description

별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법{Memory apparatus having a plurality of information storage table managed separate virtual region and control method thereof}
본 발명은 메모리 장치 및 그의 제어 방법에 관한 것으로, 특히 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 시스템에서 결함 리페어를 적용하는 메모리 장치 및 그의 제어 방법에 관한 것이다.
다수의 서브어레이(subarray)로 구성된 메모리 시스템에서는 서브어레이 단위로 스페어 로우(spare row), 스페어 컬럼(spare column) 등을 두고, 결함 리페어를 실행한다.
이러한 시스템에서는 특정 서브어레이에 결함이 많이 발생할 경우, 결함 위치에 대한 정보를 저장할 수 있는 저장 공간이 부족하여 기존의 스페어 셀 매핑 정보를 담는 구조로는 리페어할 수 없는 상황이 발생한다.
해당 문제를 해결하기 위해 정보 저장 위치를 해싱하는 해당 단위 영역을 물리 기본영역으로 매핑하고, 상기 매핑된 물리 기본영역을 동일한 크기의 복수의 물리 서브영역으로 나눈 상태에서, 구성 가능한 모든 조합 중 미리 설정된 목표값을 만족하는 가상 기본영역의 조합을 확인하고, 목표값을 만족하는 가상 기본영역의 조합과 관련한 위치 정보와, 그에 대응하는 결함 위치 정보를 정보 저장 테이블에 저장하는 메모리 장치가 있다.
하지만 위와 같은 시스템에서는 물리 기본영역에서 하나의 컬럼(column)에 여러 개의 에러가 발생했을 경우, 물리 기본영역을 복수의 물리 서브영역으로 분할하고, 이를 가상 기본영역으로 조합하므로, 가상 기본영역으로 관리되는 정보 저장 테이블의 여러 엔트리(entry)를 차지하게 되는 문제가 발생한다.
한국공개특허 제10-2014-0015591호 [명칭: 동적 언어들의 해시테이블들에 대한 하드웨어 지원]
본 발명의 목적은 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 시스템에서 결함 리페어를 적용하는 메모리 장치 및 그의 제어 방법을 제공하는 데 있다.
본 발명의 다른 목적은 복수의 정보 저장 테이블을 이용하여 여러 개의 물리 서브영역에 걸쳐서 컬럼 에러가 발생하는 경우, 각각 별개의 가상 영역 조합으로 관리되는 복수의 정보 저장 테이블에 결함 정보를 저장하는 메모리 장치 및 그의 제어 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 메모리 장치의 제어 방법은 복수의 정보 저장 테이블을 가지는 메모리 장치의 제어 방법에 있어서, 데이터 입출력부를 통해, 장치로부터 전달되는 메모리 요청을 수신하는 단계; 주소 변환기를 통해, 상기 메모리 요청에 포함된 입력 주소 및 저장 매체 내의 설정된 저장 영역에 저장된 복수의 위치 정보 벡터를 연산하여 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환하는 단계; 정보 제공부를 통해, 상기 변환된 복수의 가상 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계; 상기 정보 제공부를 통해, 상기 확인된 결함 주소를 대체할 스페어 셀 정보, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 최종 주소를 선택하는 단계; 주소 디코더를 통해, 상기 선택된 최종 주소를 근거로 상기 최종 주소에 대응하는 데이터의 위치 정보를 제공하는 단계; 및 메모리 셀을 통해, 상기 최종 주소에 대응하는 데이터의 위치 정보 및 상기 데이터 요청을 근거로, 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 요청은, 입력 주소, 명령 및 쓰기 데이터 중 적어도 하나를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환하는 단계는, 상기 주소 변환기를 통해, 상기 입력 주소 및 상기 복수의 위치 정보 벡터를 연산하여 복수의 정보 저장 테이블에 대응하는 복수의 가상 영역 주소를 생성하는 과정; 및 상기 주소 변환기를 통해, 상기 생성된 가상 영역 주소를 근거로 상기 저장 매체 내의 복수의 정보 저장 테이블의 엔트리에 접근하여 정보를 획득하는 과정을 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 결함 주소를 대체할 스페어 셀 정보는, 결함 주소를 대체할 스페어 컬럼에 대한 정보 및 결함 주소를 대체할 스페어 로우에 대한 정보 중 어느 하나일 수 있다.
본 발명과 관련된 일 예로서 상기 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계는, 상기 입력 주소를 결함 주소에서 스페어 셀의 주소로 교체하여, 결함이 발생한 주소가 아닌 스페어 셀의 주소에 접근하여 결함을 리페어할 수 있다.
본 발명과 관련된 일 예로서 상기 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계는, 스페어 로우를 이용한 결함 리페어의 경우, 물리 주소 영역에 속한 스페어 로우의 주소로 교체되며, 스페어 컬럼을 이용한 결함 리페어의 경우, 가상 주소 영역에 속한 스페어 컬럼의 주소로 교체될 수 있다.
본 발명과 관련된 일 예로서 상기 최종 주소를 선택하는 단계는, 상기 입력 주소가 상기 미리 설정된 복수의 컬럼 주소 및 로우 주소 중 어느 하나와 같을 때, 상기 정보 제공부를 통해, 상기 결함 주소를 스페어 셀의 주소로 대체한 값을 최종 주소로 선택하는 과정; 및 상기 입력 주소가 상기 결함 주소와 같지 않을 때, 상기 정보 제공부를 통해, 상기 입력 주소를 상기 최종 주소로 선택하는 과정 중 어느 하나의 과정을 수행할 수 있다.
본 발명과 관련된 일 예로서 상기 최종 주소에 대응하는 데이터의 위치 정보를 제공하는 단계는, 상기 최종 주소가 결함 주소를 스페어 셀의 주소로 대체한 값일 때, 상기 스페어 셀의 주소에 대응하는 데이터의 위치 정보를 제공하는 과정; 및 상기 최종 주소가 상기 입력 주소일 때, 상기 입력 주소에 대응하는 데이터의 위치 정보를 제공하는 과정 중 어느 하나의 과정을 수행할 수 있다.
본 발명과 관련된 일 예로서 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 단계는, 상기 데이터 요청 내에 읽기 명령이 포함된 상태일 때, 상기 최종 주소에 대응하는 데이터의 위치 정보와 관련한 외부로 출력할 데이터를 상기 메모리 셀 내의 상기 데이터의 위치 정보에 대응하는 위치로부터 읽어올 수 있다.
본 발명과 관련된 일 예로서 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 단계는, 상기 데이터 요청 내에 쓰기 명령이 포함된 상태일 때, 상기 메모리 요청 내에 포함된 쓰기 데이터 및 상기 최종 주소에 대응하는 데이터의 위치 정보를 근거로 상기 메모리 셀에 상기 쓰기 데이터를 저장할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 요청 내에 읽기 명령이 포함된 상태일 때, 상기 데이터 입출력부를 통해, 상기 메모리 셀로부터 출력되는 상기 입력 주소에 대응하는 데이터를 임시 저장하는 단계; 및 상기 데이터 입출력부를 통해, 상기 임시 저장된 상기 입력 주소에 대응하는 데이터를 상기 데이터를 요청한 상기 장치에 제공하는 단계를 더 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 주소 변환기를 통해, 상기 위치 정보 벡터가 존재하지 않는 물리 영역으로 관리되는 정보 저장 테이블에 대해서, 상기 물리 기본영역 주소를 상기 복수의 가상 기본영역 주소로 변환하는 주소 변환 과정을 거치지 않고, 상기 입력 주소 또는 상기 입력 주소의 일부로 구성되는 물리 기본영역 주소를 출력하는 단계; 및 상기 정보 제공부를 통해, 상기 물리 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 메모리 장치는 복수의 정보 저장 테이블을 가지는 메모리 장치에 있어서, 장치로부터 전달되는 메모리 요청을 수신하는 데이터 입출력부; 상기 메모리 요청에 포함된 입력 주소 및 저장 매체 내의 설정된 저장 영역에 저장된 복수의 위치 정보 벡터를 연산하여 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환하는 주소 변환기; 상기 변환된 복수의 가상 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인하고, 상기 확인된 결함 주소를 대체할 스페어 셀 정보, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 최종 주소를 선택하는 정보 제공부; 상기 선택된 최종 주소를 근거로 상기 최종 주소에 대응하는 데이터의 위치 정보를 제공하는 주소 디코더; 및 상기 최종 주소에 대응하는 데이터의 위치 정보 및 상기 데이터 요청을 근거로, 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 메모리 셀을 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 주소 변환기는, 상기 입력 주소 및 상기 복수의 위치 정보 벡터를 연산하여 복수의 정보 저장 테이블에 대응하는 복수의 가상 영역 주소를 생성하고, 상기 생성된 가상 영역 주소를 근거로 상기 저장 매체 내의 복수의 정보 저장 테이블의 엔트리에 접근하여 정보를 획득할 수 있다.
본 발명과 관련된 일 예로서 상기 정보 제공부는, 상기 입력 주소가 상기 미리 설정된 복수의 컬럼 주소 및 로우 주소 중 어느 하나와 같을 때, 상기 결함 주소를 스페어 셀의 주소로 대체한 값을 최종 주소로 선택할 수 있다.
본 발명과 관련된 일 예로서 상기 정보 제공부는, 상기 입력 주소가 상기 결함 주소와 같지 않을 때, 상기 입력 주소를 상기 최종 주소로 선택할 수 있다.
본 발명과 관련된 일 예로서 상기 주소 디코더는, 상기 최종 주소가 결함 주소를 스페어 셀의 주소로 대체한 값일 때, 상기 스페어 셀의 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀에 제공할 수 있다.
본 발명과 관련된 일 예로서 상기 주소 디코더는, 상기 최종 주소가 상기 입력 주소일 때, 상기 입력 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀에 제공할 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 셀은, 상기 데이터 요청 내에 읽기 명령이 포함된 상태일 때, 상기 최종 주소에 대응하는 데이터의 위치 정보와 관련한 외부로 출력할 데이터를 상기 메모리 셀 내의 상기 데이터의 위치 정보에 대응하는 위치로부터 읽어올 수 있다.
본 발명과 관련된 일 예로서 상기 메모리 셀은, 상기 데이터 요청 내에 쓰기 명령이 포함된 상태일 때, 상기 메모리 요청 내에 포함된 쓰기 데이터 및 상기 최종 주소에 대응하는 데이터의 위치 정보를 근거로 상기 메모리 셀에 상기 쓰기 데이터를 저장할 수 있다.
본 발명과 관련된 일 예로서 상기 데이터 입출력부는, 상기 메모리 요청 내에 읽기 명령이 포함된 상태일 때, 상기 데이터 입출력부를 통해, 상기 메모리 셀로부터 출력되는 상기 입력 주소에 대응하는 데이터를 임시 저장하고, 상기 임시 저장된 상기 입력 주소에 대응하는 데이터를 상기 데이터를 요청한 상기 장치에 제공할 수 있다.
본 발명과 관련된 일 예로서 상기 주소 변환기는, 상기 위치 정보 벡터가 존재하지 않는 물리 영역으로 관리되는 정보 저장 테이블에 대해서, 상기 물리 기본영역 주소를 상기 복수의 가상 기본영역 주소로 변환하는 주소 변환 과정을 거치지 않고, 상기 입력 주소 또는 상기 입력 주소의 일부로 구성되는 물리 기본영역 주소를 출력하며, 상기 정보 제공부는, 상기 물리 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인할 수 있다.
본 발명은 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 시스템에서 결함 리페어를 적용함으로써, 전체 정보 저장 공간을 활용하여 영역별로 균등하게 사용하여 전체 시스템의 성능을 향상시키며, 정보 저장 공간을 활용하여 정보 저장 공간의 효율성을 극대화시킬 수 있는 효과가 있다.
또한, 본 발명은 복수의 정보 저장 테이블을 이용하여 여러 개의 물리 서브영역에 걸쳐서 컬럼 에러가 발생하는 경우, 각각 별개의 가상 영역 조합으로 관리되는 복수의 정보 저장 테이블에 결함 정보를 저장함으로써, 결함 리페어의 효율성을 향상시키고, 메모리 시스템의 결함 복구율을 높일 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 복수의 단위 영역으로 구성된 정보 저장 테이블과, 최적의 정보 저장을 찾기 위한 분석 장치로 구성된 전체 분석 시스템의 구성을 나타낸 블록도이다.
도 2a 및 도 2b는 본 발명의 실시예에 따른 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 관리하기 위한 분석 장치의 동작을 나타낸 흐름도이다.
도 3은 본 발명의 실시예에 따른 물리 영역과 가상 영역을 근거로 결함 리페어를 적용하는 메모리 장치의 구성을 나타낸 블록도이다.
도 4는 본 발명의 실시예에 따른 별도의 물리 영역과 가상 영역으로 관리되는 복수의 정보 저장 테이블을 근거로 결함 리페어를 적용하는 메모리 장치의 구성 중 일부를 상세히 나타낸 블록도이다.
도 5는 본 발명의 실시예에 따른 별도의 가상 영역만으로 관리되는 복수의 정보 저장 테이블을 근거로 결함 리페어를 적용하는 메모리 장치의 구성 중 일부를 자세히 나타낸 블록도이다.
도 6은 기존의 위치 정보 벡터가 하나인 메모리 시스템에서 결함 리페어를 적용한 예시를 나타낸 도이다.
도 7은 본 발명의 실시예에 따른 복수의 정보 저장 테이블을 근거로 결함 리페어를 수행하는 시스템에서 결함 리페어를 적용한 예시를 나타낸 도이다.
도 8은 본 발명의 실시예에 따른 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 근거로 한 결함 리페어를 적용한 메모리 장치의 제어 방법을 나타낸 흐름도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 본 발명의 실시예에 따른 복수의 단위 영역으로 구성된 정보 저장 테이블과, 최적의 정보 저장을 찾기 위한 분석 장치로 구성된 전체 분석 시스템(10)의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 분석 시스템(10)은 저장 매체(100) 및 분석 장치(200)로 구성된다. 도 1에 도시된 분석 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 분석 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 분석 시스템(10)이 구현될 수도 있다.
상기 저장 매체(100)는 DRAM(Dynamic Random Access Memory), 램(Random Access Memory: RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory: ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), PCM(Phase Change Memory), MRAM(Magnetorresistance Random Access Memory) 등의 저장매체 중 어느 하나일 수 있다.
또한, 상기 저장 매체(100)는 정보 저장 테이블(110)을 포함한다.
상기 정보 저장 테이블(110)은 물리 영역과 관련한 정보(또는 물리 영역과 관련한 주소 정보), 가상 영역과 관련한 정보(또는 가상 영역과 관련한 주소 정보), 데이터(또는 정보) 등으로 구성한다. 여기서, 상기 물리 영역과 관련한 정보는 물리 기본영역의 위치 정보, 물리 서브영역의 위치 정보 등을 포함한다. 또한, 상기 가상 영역과 관련한 정보는 가상 기본영역의 위치 정보, 가상 서브영역의 위치 정보 등을 포함한다. 이때, 상기 데이터(또는 정보)는 결함 정보, 결함의 위치 정보, 라우팅 정보, 패킷 정보 등을 포함한다. 또한, 상기 데이터(또는 정보)는 분석 시스템(10)이 적용되는 분야(예를 들어, 메모리 분야, 데이터 통신 분야 등 포함)에 따라 다를 수 있으며, 설계자의 설계에 따라 변경되어 적용할 수 있다. 예를 들어, 상기 데이터(또는 정보)는 리던던트 셀을 이용한 메모리 리페어를 적용하는 메모리 시스템의 경우, 해당 메모리 시스템에 제공된 스페어 셀과 교체되는 결함 셀의 위치(또는 위치 정보)일 수 있다.
상기 분석 장치(200)는 상기 분석 시스템(10)의 전반적인 제어 기능을 수행한다.
또한, 상기 분석 장치(200)는 상기 분석 시스템(10)의 최적의 정보 저장 위치(또는 미리 설정된 목표값을 만족하는 K 비트의 위치 정보 및 M+N-K 비트의 위치 정보)를 찾고, 상기 찾은 최적의 정보 저장 위치에 해당하는 K 비트의 위치 정보 및 M+N-K 비트의 위치 정보를 상기 분석 시스템(10)에 할당해주는 기능을 수행한다.
또한, 상기 분석 장치(200)는 복수의 정보 저장 테이블(110)에서 분석할(또는 관리할) 하나 이상의 정보 저장 테이블을 선택한다.
또한, 상기 분석 장치(200)는 상기 선택된 정보 저장 테이블이 물리 기본영역을 관리되는 정보 저장 테이블인지 또는 가상 기본영역으로 관리되는 정보 저장 테이블인지 여부를 판단(또는 확인)한다.
상기 판단 결과(또는 확인 결과), 상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블인 경우, 상기 분석 장치(200)는 상기 정보 저장 테이블(또는 가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블)(110)에서, 정보 저장 위치를 해싱하는 정보 관리 단위 영역(또는 단위 영역)을 물리 기본영역으로 매핑한다. 여기서, 상기 정보 저장 테이블(또는 가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블)(110)은 저장 매체(100) 내에 포함되며, 복수의 단위 영역으로 구성한다.
이때, DRAM, PCM, MRAM, SRAM 등과 같은 메모리 시스템에서 정보를 저장하고 관리하고자 하는 기본 영역이 뱅크(bank)일 경우, 상기 분석 장치(200)는 하나의 뱅크 또는 복수의 서브어레이 내의 모든 로우(row)를 하나로 합치고, 상기 합쳐진 모든 로우를 2M개의 물리 기본영역으로 나누고, 상기 단위 영역을 상기 나뉜 2M개의 물리 기본영역으로 매핑할 수도 있다.
또한, 상기 저장 매체(100) 내의 물리 기본영역이 관리를 위한 2M개가 아닌 경우, 상기 분석 장치(200)는 상기 저장 매체(100) 내의 복수의 단위 영역을 2M개로 만든 후, 상기 2M개의 단위 영역을 상기 물리 기본영역으로 매핑할 수도 있다. 여기서, 상기 M은 자연수일 수 있다.
즉, 상기 분석 장치(200)는 설계자의 설계에 따른 2M개의 단위 영역을 구성하기 위해서, 단위 영역의 개수가 2M개가 아닌 경우, 기존의 단위 영역을 설계자의 설계에 따른 2M개의 개수를 가지는 새로운 단위 영역으로 매핑하는 전처리 과정을 수행하고, 2M개의 개수를 가지는 상기 전처리된 단위 영역을 상기 물리 기본영역으로 매핑할 수도 있다.
또한, 상기 분석 장치(200)는 상기 저장 매체(100)(또는 상기 정보 저장 테이블/가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블(110)) 내의 복수의 물리 기본영역을 동일한 크기의 복수의 물리 서브영역으로 각각 분할한다.
즉, 상기 분석 장치(200)는 상기 저장 매체(100)(또는 상기 정보 저장 테이블/가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블(110)) 내의 2M개의 물리 기본영역을 2N개의 물리 서브영역으로 각각 분할한다. 여기서, 상기 N은 자연수일 수 있다. 이때, 하나의 물리 기본영역을 N개의 물리 서브영역으로 나누어 해싱하는 경우, 상기 물리 서브영역을 인덱싱하기 위해서는 추가 비트가 필요할 수 있다.
또한, 상기 분석 장치(200)는 2M+N개로 구성된 M+N 비트로 인덱싱되는 복수의 물리 서브영역에 대해서, 복수의 물리 서브영역을 조합(또는 구성)하여, 2K개의 가상 기본영역을 생성한다. 이때, 상기 K는 자연수이고, M+N보다 작거나 같을 수 있다. 여기서, 물리 기본영역에 접근하기 위한 비트가 M 비트이고, 물리 서브영역에 접근하기 위한 비트가 N 비트인 경우, 가상 기본영역을 생성하기 위해서 조합 가능한 경우의 수는 M+ NCM +N-K개가 된다. 또한, 상기 K의 크기는 상기 정보 저장 테이블(110)을 접근하기 위한 비트 수일 수 있다.
또한, 상기 분석 장치(200)는 상기 생성된 2K개의 가상 기본영역을 각각 동일한 크기의 2M+N-K개의 가상 서브영역으로 분할(또는 재설정)한다.
즉, 상기 분석 장치(200)는 물리 서브영역을 조합하여 2M+N개로 구성된 M+N 비트 중에서, 미리 설정된 최상위 비트에서 최하위 비트에 대해 미리 설정된 비트 단위로 가상 기본영역의 키 값을 설정하고, 상기 M+N 비트 중에서 상기 가상 기본영역의 키 값으로 설정되고 남은 비트(또는 남은 영역)를 가상 서브영역의 키 값으로 설정하여, 전체 가상 영역의 키를 구성한다. 여기서, 상기 분석 장치(200)는 상기 가상 영역의 키(또는 전체 가상 영역의 키)를 구성하기 위해서, 상기 가상 기본영역의 키 값을 얻기 위한 K 비트의 위치 정보와, 상기 가상 서브영역의 키 값을 얻기 위한 M+N-K 비트의 위치 정보를 각각 생성한다.
이와 같이, 상기 분석 장치(200)는 상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우, 상기 M+N 비트 중에서, K 비트의 위치 정보를 이용하여 가상 기본영역의 키 값을 얻고(또는 설정하고), 상기 M+N 비트 중에서 상기 가상 기본영역의 키 값으로 설정되고 남은 비트의 위치 정보를 이용하여 가상 서브영역의 키 값을 얻을 수 있는 해시 함수를 구성할 수 있다. 여기서, 상기 해시 함수는 물리 영역 주소를 근거로 가상 영역과 관련한 위치 정보(예를 들어 K 비트의 위치 정보, M+N-K 비트의 위치 정보 등 포함)를 제공한다.
또한, 상기 판단 결과(또는 확인 결과), 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블인 경우, 상기 분석 장치(200)는 물리 기본영역의 개수와 관계없이 상기 가상 기본영역으로 관리되는 정보 저장 테이블에 대해서 수행된 상기 전처리 과정 및 매핑 과정을 수행하지 않고, 물리 기본영역 주소를 그대로 사용하여 정보 저장 테이블에 접근할 수도 있다.
또한, 상기 분석 장치(200)는 상기 물리 기본영역(또는 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블일 경우) 또는 임시로 조합된(또는 구성된) 상기 가상 기본영역(또는 가상 기본영역의 조합/상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 미리 설정된 목표값을 만족하는지 여부를 확인한다. 여기서, 상기 목표값은 저장할 정보에 대응하여 미리 설정된 값(또는 해당 저장할 정보를 만족시키기 위한 값)으로, 리던던트 셀(redundant cell)을 이용한 메모리 리페어(또는 메모리 복구)를 적용하는 메모리 시스템의 경우, 해당 메모리 시스템에 제공된 미리 설정된 사용 가능한(또는 해당 메모리 시스템에서 사용 가능한) 스페어 셀(spare cell)의 수(예를 들어 스페어 로우(spare row)의 수, 스페어 컬럼(spare column)의 수 등 포함)일 수 있다. 즉, 상기 목표값은 상기 저장할 정보에 대응하여 미리 설정된 값으로 매핑된 모든 물리 기본영역에 사용가능한 동일한 리소스의 수일 수 있다. 또한, 결함 메모리 블록을 회피하는 메모리 시스템의 경우, 상기 목표값은 상기 메모리 시스템의 모든 물리 기본영역에 사용가능한 동일한 메모리 블록의 수일 수 있다.
상기 확인 결과, 상기 선택된 정보 저장 테이블 내의 저장할 정보의 수가 상기 목표값을 만족하는 경우, 상기 분석 장치(200)는 상기 저장 매체(100) 내의 미리 설정된 저장 영역에 저장된 위치 정보 벡터 또는 물리 기본영역 주소를 근거로 상기 정보 저장 테이블(110)에 상기 가상 영역의 위치 정보(또는 상기 가상 영역에 대한 위치 정보) 또는 상기 물리 영역의 위치 정보(또는 상기 물리 영역에 대한 위치 정보)에 대응하는 데이터를 저장한다. 여기서, 상기 데이터(또는 정보)는 결함 정보, 결함의 위치 정보, 라우팅 정보, 패킷 정보 등을 포함한다. 또한, 상기 데이터(또는 정보)는 분석 시스템(10)이 적용되는 분야(예를 들어 메모리 분야, 데이터통신 분야 등 포함)에 따라 다를 수 있으며, 설계자의 설계에 따라 변경되어 적용할 수 있다. 예를 들어, 상기 데이터(또는 정보)는 리던던트 셀을 이용한 메모리 리페어를 적용하는 메모리 시스템의 경우, 해당 메모리 시스템에 제공된 스페어 셀과 교체되는 결함 셀의 위치(또는 위치 정보)일 수 있다.
즉, 상기 확인 결과, 상기 물리 기본영역(또는 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수가 상기 목표값을 만족하는 경우, 상기 분석 장치(200)는 상기 물리 기본영역의 주소를 근거로 물리 영역의 위치 정보(또는 상기 물리 영역에 대한 위치 정보)에 대응하는 데이터를 저장한다.
또한, 상기 확인 결과, 상기 임시로 조합된 가상 기본영역(또는 가상 기본영역의 조합/상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 상기 목표값을 만족하는 경우, 상기 분석 장치(200)는 M+N 비트 중에서, 해당 목표값을 만족하는 해당 가상 기본영역과 관련한 K 비트의 위치 정보와, 해당 목표값을 만족하는 해당 가상 서브영역과 관련한 M+N-K 비트의 위치 정보를 상기 저장 매체(100) 내의 미리 설정된(또는 미리 할당된) 저장 영역에 저장한다. 여기서, 상기 K 비트의 위치 정보의 값과 상기 M+N-K 비트의 위치 정보의 값은 벡터 형태로 구성되며, 각 비트의 위치를 상기 가상 기본영역의 키 값(또는 K 비트의 위치)에 대응하는 '0'(또는 K 비트)과, 상기 가상 서브영역의 키 값(또는 M+N-K 비트의 위치)에 대응하는 '1'(또는 M+N-K 비트)로 구성하고, 이러한 벡터 형태의 위치 정보를 위치 정보 벡터라 정의한다.
즉, 상기 조합된(또는 구성된/생성된) 가상 기본영역(또는 가상 기본영역의 조합/상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 상기 미리 설정된 목표값을 만족하는 경우, 상기 분석 장치(200)는 M+N 비트 중에서, 해당 목표값을 만족하는 가상 기본영역에 대응하는 K 비트의 위치를 생성하고, 해당 목표값을 만족하는 가상 서브영역에 대응하는 M+N-K 비트의 위치를 생성한다. 또한, 상기 분석 장치(200)는 상기 생성된 K 비트의 위치(또는 K 비트의 위치 정보) 및 상기 생성된 M+N-K 비트의 위치(또는 M+N-K 비트의 위치 정보)를 벡터 형태로 상기 저장 매체(100) 내의 상기 미리 설정된 저장 영역에 저장한다.
또한, 상기 확인 결과, 상기 물리 기본영역(또는 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수가 상기 목표값을 만족하지 않는 경우, 상기 분석 장치(200)는 상기 정보 저장 테이블(또는 물리 기본영역으로 관리되는 정보 저장 테이블)을 저장할 수 없는 것(또는 상기 정보 저장 테이블(110)을 성공적으로 관리하지 못하는 것)으로 판단하며, 전체 과정을 종료한다.
또한, 상기 확인 결과, 상기 임시로 조합된 가상 기본영역(또는 가상 기본영역의 조합/상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 상기 목표값을 만족하지 않는 경우, 상기 분석 장치(200)는 상기 조합 가능한 경우의 수(예를 들어 M+ NCM +N-K) 중에서 앞서 조합된 경우(또는 상기 해싱 방법에 따라 조합된 복수의 경우/재조합된 복수의 경우)를 제외하고, 미리 설정된 해싱 방법에 따라(또는 미리 설정된 해시 함수를 근거로/다른 K 비트의 위치에 대하여) 상기 복수의 물리 서브영역을 재조합하여, 재조합된 가상 기본영역을 확인하고, 상기 확인된 재조합된 가상 기본영역 내의 저장할 정보의 수가 상기 미리 설정된 목표값을 만족하는지 여부를 확인하는 과정을 반복 수행한다.
또한, 상기 가상 기본영역으로 관리되는 정보 저장 테이블에서 상기 M+N 비트 중 모든 K 비트의 위치 조합(또는 위치 정보 벡터)에 대하여 상기 목표값을 만족하지 않을 경우, 상기 분석 장치(200)는 상기 데이터를 저장할 수 없는 것(또는 상기 정보 저장 테이블(110)을 성공적으로 관리하지 못하는 것)으로 판단하여, 전체 과정을 종료한다.
또한, 상기 분석 장치(200)는 복수의 정보 저장 테이블(110) 중에서, 모든 정보 저장 테이블(110)(예를 들어 물리 기본영역으로 관리되는 정보 저장 테이블, 가상 기본영역으로 관리되는 정보 저장 테이블 등 포함)에 대해 분석이 완료(또는 종료)되었는지 여부를 판단한다.
상기 판단 결과, 상기 모든 정보 저장 테이블(110)에 대한 분석이 완료된 경우(또는 모든 정보 저장 테이블(110)과 위치 정보 벡터 저장 공간에 대해 저장이 완료된 경우), 상기 분석 장치(200)는 상기 데이터를 성공적으로 저장한 것(또는 상기 복수의 정보 저장 테이블(110)을 성공적으로 관리할 수 있는 것)으로 판단하며, 전체 과정을 종료한다.
또한, 상기 판단 결과, 상기 모든 정보 저장 테이블(110)에 대한 분석이 완료되지 않은 경우(또는 모든 정보 저장 테이블(110)과 위치 정보 벡터 저장 공간에 대해 저장이 완료되지 않은 경우), 상기 분석 장치(200)는 목표값을 재설정한다. 여기서, 상기 재설정되는 목표값은 이전의 목표값과 같거나 다를 수 있다.
또한, 상기 목표값을 재설정한 이후, 상기 분석 장치(200)는 분석할 정보 저장 테이블을 선택하는 단계로 복귀하여 모든 정보 저장 테이블과 위치 정보 벡터 저장 공간에 대해 분석이 완료될 때까지 앞선 전체 과정을 반복하여 수행한다.
이와 같이, 상기 분석 장치(200)는 모든 정보 저장 테이블(110)에 대해서 상기 선택된 정보 저장 테이블(110)이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우, 상기 복수의 물리 서브영역에 대해서 모든 구성 가능한 조합에서의 가상 기본영역이 설계하고자 하는 목표값을 만족하는 물리 서브영역의 조합을 확인하며, 상기 선택된 정보 저장 테이블(110)이 물리 기본영역으로 관리되는 정보 저장 테이블일 경우, 상기 물리 기본영역에서 정보 관리를 위한 목표값을 만족하는지 여부를 확인한다.
또한, 가상 기본영역으로 관리되는 정보 저장 테이블에서 M+N 비트 중 모든 K 비트의 위치 조합에 대하여 상기 목표값을 만족하지 않거나 또는 물리 기본영역으로 관리되는 정보 저장 테이블에서 상기 목표값을 만족하지 않을 경우, 상기 분석 장치(200)는 상기 데이터를 저장할 수 없는 것(또는 상기 정보 저장 테이블(110)을 성공적으로 관리하지 못하는 것)으로 판단하며, 전체 과정을 종료한다.
도 2a 및 도 2b는 본 발명의 실시예에 따른 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 관리하기 위한 분석 장치의 동작을 나타낸 흐름도이다.
먼저, 분석 장치(200)는 복수의 정보 저장 테이블(110)에서 하나 이상의 분석할(또는 관리할) 정보 저장 테이블을 선택한다(S210).
이후, 상기 분석 장치(200)는 상기 선택된 정보 저장 테이블이 물리 기본영역을 관리되는 정보 저장 테이블인지 또는 가상 기본영역으로 관리되는 정보 저장 테이블인지 여부를 판단(또는 확인)한다(S220).
상기 판단 결과(또는 확인 결과), 상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블인 경우, 상기 분석 장치(200)는 상기 정보 저장 테이블(또는 가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블)(110)에서 정보 저장 위치를 해싱하는 해당 정보 관리 단위 영역(또는 단위 영역)을 물리 기본영역으로 매핑한다. 여기서, 상기 정보 저장 테이블(또는 가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블)(110)은 저장 매체(100) 내에 포함되며, 복수의 단위 영역으로 구성한다.
이때, DRAM, PCM, MRAM, SRAM 등과 같은 메모리 시스템에서 정보를 저장하고 관리하고자 하는 기본 영역이 뱅크일 경우, 상기 분석 장치(200)는 하나의 뱅크 내의 모든 로우를 하나로 합치고, 상기 합쳐진 모든 로우를 2M개의 물리 기본영역으로 나누고, 상기 단위 영역을 상기 나뉜 2M개의 물리 기본영역으로 매핑할 수도 있다.
또한, 상기 저장 매체(100) 내의 물리 기본영역이 관리를 위한 2M개가 아닌 경우, 상기 분석 장치(200)는 상기 저장 매체(100) 내의 복수의 단위 영역을 2M개로 만든 후, 상기 2M개의 단위 영역을 상기 물리 기본영역으로 매핑할 수도 있다. 여기서, 상기 M은 자연수일 수 있다.
즉, 상기 분석 장치(200)는 설계장의 설계에 따른 2M개의 단위 영역을 구성하기 위해서, 단위 영역의 개수가 2M개가 아닌 경우, 기존의 단위 영역을 설계자의 설계에 따른 2M개의 개수를 가지는 새로운 단위 영역으로 매핑하는 전처리 과정을 수행하고, 2M개의 개수를 가지는 상기 전처리된 단위 영역을 상기 물리 기본영역으로 매핑할 수도 있다.
일 예로, 상기 분석 장치(200)는 상기 정보 저장 테이블(110) 내의 단위 영역을 물리 기본영역으로 매핑한다(S230).
이후, 상기 분석 장치(200)는 상기 저장 매체(100)(또는 상기 정보 저장 테이블/가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블(110)) 내의 복수의 물리 기본영역을 동일한 크기의 복수의 물리 서브영역으로 각각 분할한다.
즉, 상기 분석 장치(200)는 상기 저장 매체(100)(또는 상기 정보 저장 테이블/가상 기본영역으로 관리되는 상기 선택된 정보 저장 테이블(110)) 내의 2M개의 물리 기본영역을 2N개의 물리 서브영역으로 각각 분할한다. 여기서, 상기 N은 자연수일 수 있다. 이때, 하나의 물리 기본영역을 N개의 물리 서브영역으로 나누어 해싱하는 경우, 상기 물리 서브영역을 인덱싱하기 위해서는 추가 비트가 필요할 수 있다(S240).
이후, 상기 분석 장치(200)는 2M+N개로 구성된 M+N 비트로 인덱싱되는 복수의 물리 서브영역에 대해서, 복수의 물리 서브영역을 조합(또는 구성)하여, 2K개의 가상 기본영역을 생성한다. 이때, 상기 K는 자연수이고, M+N보다 작거나 같을 수 있다. 여기서, 물리 기본영역에 접근하기 위한 비트가 M 비트이고, 물리 서브영역에 접근하기 위한 비트가 N 비트인 경우, 가상 기본영역을 생성하기 위해서 조합 가능한 경우의 수는 M+ NCM +N-K개가 된다. 또한, 상기 K의 크기는 상기 정보 저장 테이블(110)을 접근하기 위한 비트 수일 수 있다.
또한, 상기 분석 장치(200)는 상기 생성된 2K개의 가상 기본영역을 각각 동일한 크기의 2M+N-K개의 가상 서브영역으로 분할(또는 재설정)한다.
즉, 상기 분석 장치(200)는 물리 서브영역을 조합하여 2M+N개로 구성된 M+N 비트 중에서, 미리 설정된 최상위 비트에서 최하위 비트에 대해 미리 설정된 비트 단위로 가상 기본영역의 키 값을 설정하고, 상기 M+N 비트 중에서 상기 가상 기본영역의 키 값으로 설정되고 남은 비트(또는 남은 영역)를 가상 서브영역의 키 값으로 설정하여, 전체 가상 영역의 키를 구성한다. 여기서, 상기 분석 장치(200)는 상기 가상 영역의 키(또는 전체 가상 영역의 키)를 구성하기 위해서, 상기 가상 기본영역의 키 값을 얻기 위한 K 비트의 위치 정보와, 상기 가상 서브영역의 키 값을 얻기 위한 M+N-K 비트의 위치 정보를 각각 생성한다.
이와 같이, 상기 분석 장치(200)는 상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우, 상기 M+N 비트 중에서, K 비트의 위치 정보를 이용하여 가상 기본영역의 키 값을 얻고(또는 설정하고), 상기 M+N 비트 중에서 상기 가상 기본영역의 키 값으로 설정되고 남은 비트의 위치 정보를 이용하여 가상 서브영역의 키 값을 얻을 수 있는 해시 함수를 구성할 수 있다. 여기서, 상기 해시 함수는 물리 영역 주소를 근거로 가상 영역과 관련한 위치 정보(예를 들어 K 비트의 위치 정보, M+N-K 비트의 위치 정보 등 포함)를 제공한다(S250).
또한, 상기 판단 결과(또는 확인 결과), 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블인 경우, 상기 분석 장치(200)는 물리 기본영역의 개수와 관계없이 상기 가상 기본영역으로 관리되는 정보 저장 테이블에 대해서 수행된 상기 전처리 과정 및 매핑 과정을 수행하지 않고, 물리 기본영역 주소를 그대로 사용하여 정보 저장 테이블에 접근할 수도 있다(S260).
이후, 상기 분석 장치(200)는 상기 물리 기본영역(또는 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블일 경우) 또는 상기 임시로 조합된(또는 구성된) 가상 기본영역(또는 가상 기본영역의 조합/상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 미리 설정된 목표값을 만족하는지 여부를 확인한다. 여기서, 상기 목표값은 저장할 정보에 대응하여 미리 설정된 값(또는 해당 저장할 정보를 만족시키기 위한 값)으로, 리던던트 셀(redundant cell)을 이용한 메모리 리페어(또는 메모리 복구)를 적용하는 메모리 시스템의 경우, 해당 메모리 시스템에 제공된 미리 설정된 사용 가능한(또는 해당 메모리 시스템에서 사용 가능한) 스페어 셀(spare cell)의 수(예를 들어 스페어 로우(spare row)의 수, 스페어 컬럼(spare column)의 수 등 포함)일 수 있다. 즉, 상기 목표값은 상기 저장할 정보에 대응하여 미리 설정된 값으로 매핑된 모든 물리 기본영역에 사용가능한 동일한 리소스의 수일 수 있다. 또한, 결함 메모리 블록을 회피하는 메모리 시스템의 경우, 상기 목표값은 상기 메모리 시스템의 모든 물리 기본영역에 사용가능한 동일한 메모리 블록의 수일 수 있다(S270).
상기 확인 결과, 상기 물리 기본영역(또는 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수가 상기 목표값을 만족하는 경우, 상기 분석 장치(200)는 상기 물리 기본영역의 주소를 근거로 물리 영역의 위치 정보(또는 상기 물리 영역에 대한 위치 정보)에 대응하는 데이터를 저장한다. 여기서, 상기 데이터(또는 정보)는 결함 정보, 결함의 위치 정보, 라우팅 정보, 패킷 정보 등을 포함한다. 또한, 상기 데이터(또는 정보)는 분석 시스템(10)이 적용되는 분야(예를 들어 메모리 분야, 데이터통신 분야 등 포함)에 따라 다를 수 있으며, 설계자의 설계에 따라 변경되어 적용할 수 있다. 예를 들어, 상기 데이터(또는 정보)는 리던던트 셀을 이용한 메모리 리페어를 적용하는 메모리 시스템의 경우, 해당 메모리 시스템에 제공된 스페어 셀과 교체되는 결함 셀의 위치(또는 위치 정보)일 수 있다(S280).
또한, 상기 확인 결과, 상기 물리 기본영역(또는 상기 선택된 정보 저장 테이블이 물리 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수가 상기 목표값을 만족하지 않는 경우, 상기 분석 장치(200)는 상기 정보 저장 테이블(또는 물리 기본영역으로 관리되는 정보 저장 테이블)을 저장할 수 없는 것(또는 상기 정보 저장 테이블(110)을 성공적으로 관리하지 못하는 것)으로 판단하며, 전체 과정을 종료한다(S290).
또한, 상기 확인 결과, 상기 임시로 조합된 가상 기본영역(또는 가상 기본영역의 조합/상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 상기 목표값을 만족하는 경우, 상기 분석 장치(200)는 M+N 비트 중에서, 해당 목표값을 만족하는 해당 가상 기본영역과 관련한 K 비트의 위치 정보와, 해당 목표값을 만족하는 해당 가상 서브영역과 관련한 M+N-K 비트의 위치 정보를 상기 저장 매체(100) 내의 미리 설정된(또는 미리 할당된) 저장 영역에 저장한다. 여기서, 상기 K 비트의 위치 정보의 값과 상기 M+N-K 비트의 위치 정보의 값은 벡터 형태로 구성되며, 각 비트의 위치를 상기 가상 기본영역의 키 값(또는 K 비트의 위치)에 대응하는 '0'과, 상기 가상 서브영역의 키 값(또는 M+N-K 비트의 위치)에 대응하는 '1'로 구성한다.
즉, 상기 조합된(또는 구성된/생성된) 가상 기본영역(또는 가상 기본영역의 조합//상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 상기 목표값을 만족하는 경우, 상기 분석 장치(200)는 M+N 비트 중에서, 해당 목표값을 만족하는 가상 기본영역에 대응하는 K 비트의 위치를 생성하고, 해당 목표값을 만족하는 가상 서브영역에 대응하는 M+N-K 비트의 위치를 생성한다. 또한, 상기 분석 장치(200)는 상기 생성된 K 비트의 위치(또는 K 비트의 위치 정보) 및 상기 생성된 M+N-K 비트의 위치(또는 M+N-K 비트의 위치 정보)를 벡터 형태로 상기 저장 매체(100) 내의 상기 미리 설정된 저장 영역에 저장한다.
또한, 상기 분석 장치(200)는 상기 저장된 위치 정보 벡터를 이용하여 연산된 가상 기본영역의 주소를 근거로 물리 영역의 위치 정보(또는 상기 물리 영역에 대한 위치 정보)에 대응하는 데이터를 저장한다(S300).
또한, 상기 확인 결과, 상기 임시로 조합된 가상 기본영역(또는 가상 기본영역의 조합/상기 선택된 정보 저장 테이블이 가상 기본영역으로 관리되는 정보 저장 테이블일 경우) 내의 저장할 정보의 수(또는 조합된/재조합된 정보의 수)가 상기 목표값을 만족하지 않는 경우, 상기 분석 장치(200)는 상기 조합 가능한 경우의 수(예를 들어 M+ NCM +N-K) 중에서 앞서 조합된 경우(또는 상기 해싱 방법에 따라 조합된 복수의 경우/재조합된 복수의 경우)를 제외하고, 미리 설정된 해싱 방법에 따라(또는 미리 설정된 해시 함수를 근거로/다른 K 비트의 위치에 대하여) 상기 복수의 물리 서브영역을 재조합하여, 재조합된 가상 기본영역을 확인하고, 상기 확인된 재조합된 가상 기본영역 내의 저장할 정보의 수가 상기 미리 설정된 목표값을 만족하는지 여부를 확인하는 과정을 반복 수행한다.
또한, 상기 가상 기본영역으로 관리되는 정보 저장 테이블에서 상기 M+N 비트 중 모든 K 비트의 위치 조합(또는 위치 정보 벡터)에 대하여 상기 목표값을 만족하지 않을 경우, 상기 분석 장치(200)는 상기 데이터를 저장할 수 없는 것(또는 상기 정보 저장 테이블(110)을 성공적으로 관리하지 못하는 것)으로 판단하여, 전체 과정을 종료한다(S310).
이후, 상기 분석 장치(200)는 복수의 정보 저장 테이블(110) 중에서, 모든 정보 저장 테이블(110)에 대한 분석이 완료되었는지 여부를 판단한다(S320).
상기 판단 결과, 상기 모든 정보 저장 테이블(110)에 대한 분석이 완료된 경우(또는 모든 정보 저장 테이블(110)과 위치 정보 벡터 저장 공간에 대해 저장이 완료된 경우), 상기 분석 장치(200)는 상기 데이터를 성공적으로 저장한 것(또는 상기 복수의 정보 저장 테이블(110)을 성공적으로 관리할 수 있는 것)으로 판단하며, 전체 과정을 종료한다(S330).
또한, 상기 판단 결과, 상기 모든 정보 저장 테이블(110)에 대한 분석이 완료되지 않은 경우(또는 모든 정보 저장 테이블(110)과 위치 정보 벡터 저장 공간에 대해 저장이 완료되지 않은 경우), 상기 분석 장치(200)는 목표값을 재설정한다. 여기서, 상기 재설정되는 목표값은 이전의 목표값과 같거나 다를 수 있다.
또한, 상기 목표값을 재설정한 이후, 상기 분석 장치(200)는 분석할 정보 저장 테이블을 선택하는 단계(S210 단계)로 복귀하여 모든 정보 저장 테이블과 위치 정보 벡터 저장 공간에 대해 분석이 완료될 때까지 앞선 전체 과정(예를 들어 S210 단계 내지 S330 단계)을 반복하여 수행한다(S340).
도 3은 본 발명의 실시예에 따른 물리 영역과 가상 영역을 근거로 결함 리페어를 적용하는 메모리 장치(20)의 구성을 나타낸 블록도이다.
도 3에 도시한 바와 같이, 메모리 장치(또는 메모리 디바이스)(20)는 저장 매체(100), 데이터 입출력부(300), 주소 변환기(400), 정보 제공부(500), 주소 디코더(600) 및 메모리 셀(700)로 구성된다. 도 3에 도시된 메모리 장치(20)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 3에 도시된 구성 요소보다 많은 구성 요소에 의해 메모리 장치(20)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 메모리 장치(20)가 구현될 수도 있다.
상기 도 1에 도시된 바와 같이, 상기 저장 매체(100)는 복수의 정보 저장 테이블(110)을 포함한다. 또한, 상기 복수의 정보 저장 테이블(110)은 물리 기본영역으로 관리되는 정보 저장 테이블(110)과 가상 기본영역으로 관리되는 정보 저장 테이블(110)로 구성되며, 설계자의 의도(또는 설계)에 따라 정보 저장 테이블(110)의 관리 방식 및 개수가 변경될 수 있다.
즉, 상기 복수의 정보 저장 테이블(110)은 모두 가상 기본영역으로 관리되는 정보 저장 테이블(110)로 구성되거나, 모두 물리 기본영역으로 관리되는 정보 저장 테이블(110)로 구성되거나, 가상 기본영역으로 관리되는 정보 저장 테이블(110)과 물리 기본영역으로 관리되는 정보 저장 테이블(110)이 혼합되어 구성될 수 있다.
또한, 상기 저장 매체(100)(또는 상기 정보 저장 테이블(110))는 상기 분석 장치(200)의 제어에 의해, 상기 저장 매체(100) 내의 미리 설정된 저장 영역에 각 가상 영역의 조합에 대응하는 복수의 위치 정보 벡터를 저장한다.
또한, 상기 저장 매체(100)(또는 상기 정보 저장 테이블(110))는 상기 분석 장치(200)의 제어에 의해, 물리 기본영역 주소 또는 상기 저장 영역에 저장된 위치 정보 벡터를 근거로, 상기 정보 저장 테이블(110)(또는 상기 저장 매체(100) 내의 위치 정보 벡터에 대응하는 결함 주소 저장 공간)에 상기 물리 영역의 위치 정보(또는 상기 물리 영역에 대한 위치 정보) 또는 상기 가상 영역의 위치 정보(또는 상기 가상 영역에 대한 위치 정보)에 대응하는 데이터(예를 들어, 결함 위치 정보 등 포함)를 저장한다. 이때, 가상 기본영역으로 관리되는 정보 저장 테이블(110)에 대응하는 위치 정보 벡터가 필요하므로, 상기 위치 정보 벡터의 개수는 상기 정보 저장 테이블(110)의 개수보다 작거나 같다. 여기서, 상기 데이터(또는 정보)는 결함 정보, 결함의 위치 정보, 라우팅 정보, 패킷 정보 등을 포함한다. 또한, 상기 데이터(또는 정보)는 분석 시스템(10)이 적용되는 분야(예를 들어, 메모리 분야, 데이터 통신 분야 등 포함)에 따라 다를 수 있으며, 설계자의 설계에 따라 변경되어 적용할 수 있다. 예를 들어, 상기 데이터(또는 정보)는 리던던트 셀을 이용한 메모리 리페어를 적용하는 메모리 시스템의 경우, 해당 메모리 시스템에 제공된 스페어 셀과 교체되는 결함 셀의 위치(또는 위치 정보)일 수 있다.
또한, 상기 저장 매체(100)는 복수의 컬럼 주소, 복수의 로우 주소(또는 결함 위치 정보 등 포함) 등을 저장한다.
상기 데이터 입출력부(300)는 장치(또는 디바이스)(미도시)로부터 전달되는 메모리 장치(20)(또는 메모리 셀(700)) 접근을 위한 메모리 요청을 수신한다. 여기서, 상기 장치(또는 디바이스)는 데이터를 요청하는 캐시(미도시), CPU(미도시), 상위 메모리(미도시) 등을 포함할 수 있다. 이때, 상기 메모리 요청은 입력 주소(또는 주소), 명령(예를 들어, 읽기 명령, 쓰기 명령 등 포함), 쓰기 데이터 등을 포함한다.
또한, 상기 메모리 요청 내에 읽기 명령이 포함된 경우, 상기 데이터 입출력부(300)는 상기 메모리 셀(700)로부터 출력되는 상기 메모리 요청에 포함된 입력 주소에 대응하는 데이터를 임시 저장한다.
또한, 상기 데이터 출력부(300)는 상기 임시 저장된 상기 메모리 요청에 포함된 입력 주소에 대응하는 데이터를 해당 데이터를 요청한 상기 장치(또는 디바이스)에 제공한다.
상기 주소 변환기(400)는 상기 데이터 입출력부(300)에서 수신된 상기 메모리 요청에 포함된 입력 주소 및 저장 매체((100)(또는 정보 저장 테이블(110)) 내의 미리 설정된(또는 미리 할당된) 저장 영역에 저장된 복수의 위치 정보 벡터 값(또는 복수의 위치 정보 벡터)이 존재하는 경우, 상기 입력 주소 및 상기 위치 정보 벡터 값(또는 상기 복수의 위치 정보 벡터 값)을 연산하여 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환한다.
즉, 상기 입력 주소 및 상기 위치 정보 벡터가 존재하는 경우, 상기 주소 변환기(400)는 하나의 입력 주소에 대해서 복수의 위치 정보 벡터 값을 이용하여 상기 물리 기본영역 주소를 각 위치 정보 벡터 값에 대응하는 복수의 가상 기본영역 주소로 변환한다. 이때, 상기 변환되는 가상 기본영역의 주소의 개수는 상기 위치 정보 벡터의 개수와 동일하다.
또한, 상기 주소 변환기(400)는 상기 입력 주소에 대해, 위치 정보 벡터가 존재하지 않는 경우, 위의 변환 과정(예를 들어 상기 입력 주소 및 상기 위치 정보 벡터 값을 연산하여 상기 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환하는 과정)을 수행하지 않고, 물리 기본영역의 주소를 그대로 출력한다.
상기 정보 제공부(500)는 상기 주소 변환기(400)를 통해 변환된 복수의 가상 기본영역 주소, 물리 기본영역 주소, 상기 저장 매체(100)에 미리 설정된(또는 등록된/저장된) 복수의 컬럼 주소/로우 주소, 상기 입력 주소 등을 근거로 상기 저장 매체(100)의 복수의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보(예를 들어, 결함 주소를 대체할 스페어 컬럼에 대한 정보, 결함 주소를 대체할 스페어 로우에 대한 정보 등 포함)를 확인한다.
또한, 상기 정보 제공부(500)는 상기 확인된 결함 주소를 대체할 스페어 셀 정보, 상기 저장 매체(100)에 미리 설정된 복수의 컬럼 주소/로우 주소 및 상기 입력 주소를 근거로 주소(또는 최종 주소)를 선택한다.
즉, 상기 입력 주소가 미리 설정된 복수의 컬럼 주소 및/또는 로우 주소(예를 들어, 결함 주소 등 포함) 중 어느 하나와 같은 경우, 상기 정보 제공부(500)는 상기 결함 주소를 스페어 셀의 주소로 대체한 값(또는 주소/최종 주소)을 선택한다.
또한, 상기 입력 주소가 미리 설정된 복수의 컬럼 주소 및/또는 로우 주소 중 어느 하나와 같지 않을 경우(또는 상기 입력 주소가 상기 결함 주소와 같지 않을 경우), 상기 정보 제공부(500)는 상기 입력 주소를 그대로 최종 주소로 선택한다.
또한, 상기 정보 제공부(500)는 상기 선택된 주소를 주소 디코더(600)에 제공한다. 여기서, 상기 선택된 주소(또는 최종 주소)는 상기 결함 주소를 스페어 셀의 주소로 대체한 값에 해당하는 주소 및 상기 입력 주소 중 어느 하나일 수 있다.
이와 같이, 결함 주소에 대해서, 입력 주소를 결함 주소에서 스페어 셀의 주소로 교체함으로써, 결함이 발생한 주소가 아닌 스페어 셀의 주소에 접근한다. 이때, 스페어 로우를 이용한 결함 리페어는 효율성을 위하여 물리 주소 영역에 속한 스페어 로우에 의하여 교체되며, 스페어 컬럼을 이용한 결함 리페어는 가상 영역 주소에 속한 스페어 컬럼에 의하여 교체된다. 또한, 상기 스페어 로우와 스페어 컬럼의 위치가 제한되는 것은 아니며, 설계자의 설계에 따라 물리 주소 영역이 스페어 컬럼을 이용하여 결함 리페어를 하고, 가상 주소 영역이 스페어 로우를 이용하여 결함 리페어를 할 수도 있다.
상기 주소 디코더(address decoder)(600)는 로우 디코더(row decoder), 컬럼 디코더(column) 등을 포함한다.
또한, 상기 주소 디코더(600)는 상기 정보 제공부(500)로부터 제공되는 주소(또는 최종 주소)를 근거로 해당 주소에 대응하는 데이터(또는 상기 선택된 주소에 대응하여 읽어야 할 데이터)의 위치 정보를 상기 메모리 셀(700)에 제공한다.
즉, 상기 주소(또는 최종 주소)가 결함 주소를 스페어 셀의 주소로 대체한 값(또는 주소)인 경우, 상기 주소 디코더(600)는 해당 스페어 셀의 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀(700)에 제공한다.
또한, 상기 주소(또는 최종 주소)가 상기 입력 주소인 경우, 상기 주소 디코더(600)는 상기 입력 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀(700)에 제공한다.
상기 메모리 셀(700)은 상기 주소 디코더(600)로부터 제공되는 주소(또는 최종 주소)에 대응하는 데이터의 위치 정보 및 상기 데이터 입출력부(300)를 통해 수신된 상기 데이터 요청을 근거로, 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행한다.
즉, 상기 데이터 요청 내에 읽기 명령이 포함된 경우, 상기 메모리 셀(700)은 상기 주소(또는 최종 주소)에 대응하는 데이터의 위치 정보와 관련한 외부로 출력할 데이터를 상기 메모리 셀(700) 내의 해당 데이터의 위치 정보(또는 상기 최종 주소에 대응하는 데이터의 위치 정보)와 대응하는 위치로부터 읽어온다.
또한, 상기 데이터 요청 내에 쓰기 명령이 포함된 경우, 상기 메모리 셀(700)은 상기 메모리 요청 내에 포함된 쓰기 데이터 및 상기 주소(또는 최종 주소)에 대응하는 데이터의 위치 정보를 근거로 상기 메모리 셀(600) 내의 특정 위치에 해당 쓰기 데이터를 저장한다.
도 4는 본 발명의 실시예에 따른 별도의 물리 영역과 가상 영역으로 관리되는 복수의 정보 저장 테이블을 근거로 결함 리페어를 적용하는 메모리 장치의 구성 중 일부를 상세히 나타낸 블록도이다.
데이터 입출력부(300)를 통해 입력 주소가 들어오면, 주소 변환기(400)는 저장 매체(100)에 저장된 복수의 위치 정보 벡터(예를 들어 제 1 위치 정보 벡터 내지 제 2 위치 정보 벡터)와 상기 입력 주소를 연산하여 복수의 가상 영역 주소를 각각 생성(또는 변환)한다. 여기서, 상기 생성된(또는 변환된) 복수의 가상 영역 주소는 각각 제 1 정보 저장 테이블 내지 제 2 정보 저장 테이블에 접근하기 위한 인덱스로 이용된다. 또한, 상기 도 4에 도시된 제 3 정보 저장 테이블은 물리 영역으로 관리되는 정보 저장 테이블로, 위치 정보 벡터와 연산하여 주소를 변환하지 않고, 입력 주소(또는 입력 주소의 일부)인 물리 영역 주소를 그대로 인덱스로 사용하여 정보 제공부(500)를 통해 해당 제 3 정보 저장 테이블에 접근할 수 있다.
상기 주소 변환기(400)는 상기 생성된(또는 변환된) 복수의 가상 영역 주소와 물리 영역 주소를 근거로 상기 저장 매체(100) 내의 복수의 정보 저장 테이블(110)의 엔트리에 접근하여 정보(또는 데이터, 결함 위치 정보 등 포함)를 획득한다.
예를 들어, 상기 도 4에 도시된 바와 같이, 상기 주소 변환기(400)는 상기 제 2 위치 정보 벡터와 상기 입력 주소를 연산하여 상기 제 2 정보 저장 테이블에 접근하기 위한 가상 주소를 생성하며, 상기 생성된 제 2 정보 저장 테이블의 가상 주소(또는 상기 생성된 가상 주소)를 근거로 상기 제 2 정보 저장 테이블에 접근하여 정보(또는 데이터, 결함 위치 정보 등 포함)를 획득한다.
다른 예를 들어, 상기 주소 변환기(400)는 상기 입력 주소(또는 상기 입력 주소 중 일부)인 물리 영역 주소를 근거로 상기 제3 정보 저장 테이블에 접근하여 정보(또는 데이터, 결함 위치 정보 등 포함)를 획득한다.
또한, 리던던트 셀을 이용한 메모리 리페어를 적용하는 메모리 시스템에서, 정보 저장 테이블(110)의 각 엔트리가 저장하는 정보는 스페어 셀과 교체되는 결함 셀의 정보일 수 있다.
또한, 물리 기본 영역의 개수인 N개는 가상 기본영역의 개수인 2K개와 같거나 다를 수 있다. 따라서, 물리 기본영역으로 관리되는 정보 저장 테이블(110)에서 각 스페어 셀에 대응하는 엔트리의 개수는 N개일 수 있다. 또한, 가상 기본영역으로 관리되는 정보 저장 테이블(110)에서 각 스페어 셀에 대응하는 엔트리의 개수는 2K개일 수 있다. 여기서, 상기 N과 2K의 값은 설계자의 설계에 따라 변경될 수 있다.
또한, 상기 주소 변환기(400)는 상기 획득된 정보를 정보 제공부(500)에 제공한다.
또한, 상기 정보 제공부(500)는 상기 획득된 정보를 이용하여 주소를 선택한다.
즉, 상기 정보 제공부(500)는 상기 입력 주소와 상기 획득된 정보를 비교하여 주소를 선택한다.
도 5는 본 발명의 실시예에 따른 별도의 가상 영역만으로 관리되는 복수의 정보 저장 테이블을 근거로 결함 리페어를 적용하는 메모리 장치의 구성 중 일부를 자세히 나타낸 블록도이다. 상기 도 5의 실시예에서는 설계자의 설계에 따라 물리 기본영역으로 관리되는 정보 저장 테이블이 없으며, 상기 도 4 내지 도 5에 도시된 바와 같이, 각 정보 저장 테이블의 구성 및 관리 방법은 설계자의 목적(또는 설계 목적)에 따라 다를 수 있다.
데이터 입출력부(300)를 통해 입력 주소가 들어오면, 주소 변환기(400)는 저장 매체(100)에 저장된 복수의 위치 정보 벡터(예를 들어 제 11 위치 정보 벡터 내지 제 14 위치 정보 벡터)와 상기 입력 주소를 연산하여 복수의 정보 저장 테이블에 대응하는 복수의 가상 영역 주소를 각각 생성(또는 변환)한다.
이후, 상기 주소 변환기(400)는 상기 생성된 가상 영역 주소를 근거로 상기 저장 매체(100) 내의 복수의 정보 저장 테이블의 엔트리에 접근하여 정보(또는 데이터, 결함 위치 정보)를 획득한다.
예를 들어, 상기 도 5에 도시된 바와 같이, 상기 주소 변환기(400)는 제 13 정보 저장 테이블의 가상 영역 주소는, 입력 주소와 제 13 위치 정보 벡터를 연산하여 생성되며, 상기 생성된 제 13 정보 저장 테이블의 가상 영역 주소를 이용하여 제 13 정보 저장 테이블에 접근하여 정보(또는 데이터, 결함 위치 정보)를 획득한다.
또한, 리던던트 셀을 이용한 메모리 리페어를 적용하는 메모리 시스템에서, 정보 저장 테이블의 각 엔트리가 저장하는 정보는 스페어 셀과 교체되는 결함 셀의 정보일 수 있다.
또한, 상기 주소 변환기(400)를 통해 획득한 정보는 정보 제공부(400)로 제공되어, 입력 주소와 비교하여 주소를 선택하는 데에 이용된다.
도 6은 기존의 위치 정보 벡터가 하나인 메모리 시스템에서 결함 리페어를 적용한 예시를 나타낸 도이고, 도 7은 본 발명의 실시예에 따른 복수의 정보 저장 테이블을 근거로 결함 리페어를 수행하는 시스템에서 결함 리페어를 적용한 예시를 나타낸 도이다.
상기 도 6에 도시된 바와 같이, 각 영역은 스페어 컬럼(spare column) 2개를 가지고 있으며, 이에 따라 가상 영역으로 관리되는 결함 주소 정보 저장 공간은 각 스페어 컬럼에 대응하는 엔트리(entry) 2개를 가지고 있다.
또한, 가상 영역에 대응하는 위치 정보 벡터는 '100'이고, F0 및 F1은 물리 기본영역 '00'의 같은 컬럼에 위치하며, F4 및 F5 또한 물리 기본영역 '10'의 같은 컬럼에 위치한다.
또한, 상기 도 6의 경우, 위치 정보 벡터 값 '100'에 따라 가상 기본영역 '00'번은 물리 영역 '000' 및 물리 영역 '100'으로 구성되고, 가상 기본영역 '10'번은 물리 영역 '001' 및 물리 영역 '101'로 구성되고, 가상 기본영역 '10'번은 물리 영역 '010' 및 물리 영역 '110'으로 구성되고, 가상 기본영역 '11'번은 물리 영역 '011' 및 물리 영역 '111'로 구성된다.
또한, 상기 도 6과 같이 에러가 발생했을 경우, F0 및 F1은 서로 다른 가상 기본영역으로 매핑되고, F4 및 F5는 서로 다른 가상 기본영역으로 매핑된다. 각 가상 기본영역에 저장할 수 있는 결함 주소 정보는 2개가 최대이므로, F6 결함은 결함 주소 정보 저장 공간의 남은 엔트리가 없어 리페어되지 않고, 결함 복구가 실패하게 된다.
상기 도 7에 도시된 바와 같이, 각 영역은 스페어 컬럼 2개를 가지고 있으며, 상기 스페어 컬럼 각각에 대응하는 결함 주소 정보 저장 공간을 가지고 있다. 여기서, 상기 결함 주소 정보 저장 공간 중 하나는 물리 기본영역의 주소로 인덱싱되어 관리되며, 나머지 하나는 위치 정보 벡터 100으로 구성되는 가상 기본영역의 주소로 인덱싱되어 관리된다.
또한, 결함 주소 정보 저장 공간의 개수와 스페어 컬럼의 개수가 같으므로 하나의 결함 주소 정보 저장 공간에 대응하는 스페어 컬럼은 1개이다.
또한, 본 발명의 실시예에서는, 물리 기본영역으로 관리되는 결함 주소 정보 저장 공간에 첫 번째 스페어 컬럼이 대응하며, 가상 기본영역으로 관리되며 위치 정보 벡터가 '100인 결함 주소 정보 저장 공간에 두 번째 스페어 컬럼이 대응한다.
또한, F0 및 F1은 물리 기본영역 '00'의 같은 컬럼에 위치하므로 본 발명의 실시예에 따른 상기 도 7에서는 상기 도 6의 F0 및 F1을 합쳐 F0로 도시하였으며, F4 및 F5는 물리 기본영역 '10'의 같은 컬럼에 위치하므로 본 발명의 실시예에 따른 상기 도 7에서는 상기 도 6의 F4 및 F5를 합쳐 F4로 도시하였다.
또한, 두 번째 결함 주소 정보 저장 공간은 위치 정보 벡터 '100'으로 관리되며, 이때는 가상 기본영역 '00'번은 물리 영역 '000' 및 물리 영역 '100'으로 구성되고, 가상 기본영역 '01'번은 물리 영역 '001' 및 물리 영역 '101'로 구성되고, 가상 기본영역 '10'번은 물리 영역 '010' 및 물리 영역 '110'으로 구성되고, 가상 기본영역 '11'번은 물리 영역 '011' 및 물리 영역 '111'로 구성된다.
상기 도 7의 실시예에서, F0은 결함의 개수는 2개이지만, 한 개의 스페어 컬럼으로 대체할 수 있으므로, 물리 기본영역으로 관리되는 결함 주소 정보 저장 공간의 '00' 엔트리에 F0이 저장된다. 또한, 물리 기본영역으로 관리되는 결함 주소 정보 저장 공간의 '01' 엔트리에는 F2가 저장되며, 이때 (F2)도 함께 첫 번째 스페어 컬럼으로 교체된다. 또한, 물리 기본영역으로 관리되는 결함 주소 정보 저장 공간의 '10' 엔트리에는 F4가 저장되며, F4 또한 결함은 2개이지만 같은 영역의 같은 컬럼에 위치하므로 한 개의 스페어 컬럼으로 대체할 수 있다.
위치 정보 벡터 '100'으로 관리되는 결함 주소 저장 공간의 '01' 엔트리에는 F6이 저장되며, 이때 같은 영역의 같은 컬럼에 위치하는 (F6)에 대응하는 주소 또한 스페어 컬럼으로 교체된다. 또한, 위치 정보 벡터 '100'으로 관리되는 결함 주소 저장 공간의 '10' 엔트리에는 F3가 저장되며, 이때 같은 영역의 같은 컬럼에 위치하는 (F3)에 대응하는 주소 또한 스페어 컬럼으로 교체된다.
이와 같이, 상기 도 6 및 도 7의 경우, 같은 스페어 컬럼의 개수와 같은 결함 개수를 가지지만, 상기 도 7에서는 결함 주소 저장 공간을 물리 영역과 가상 영역을 이용하도록 각각 관리함으로써, 상기 도 6에서 복구하지 못했던 결함을 복구할 수 있다.
또한, 이와 같이, 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 시스템에서 결함 리페어를 적용할 수 있다.
또한, 이와 같이, 복수의 정보 저장 테이블을 이용하여 여러 개의 물리 서브영역에 걸쳐서 컬럼 에러가 발생하는 경우, 각각 별개의 가상 영역 조합으로 관리되는 복수의 정보 저장 테이블에 결함 정보를 저장할 수 있다.
이하에서는, 본 발명에 따른 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 근거로 한 결함 리페어를 적용한 메모리 장치의 제어 방법을 도 1 내지 도 8을 참조하여 상세히 설명한다.
도 8은 본 발명의 실시예에 따른 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 근거로 한 결함 리페어를 적용한 메모리 장치의 제어 방법을 나타낸 흐름도이다.
먼저, 데이터 입출력부(300)는 장치(또는 디바이스)(미도시)로부터 전달되는 메모리 장치(20)(또는 메모리 셀(700)) 접근을 위한 메모리 요청을 수신한다. 여기서, 상기 장치(또는 디바이스)는 데이터를 요청하는 캐시(미도시), CPU(미도시), 상위 메모리(미도시) 등을 포함할 수 있다. 이때, 상기 메모리 요청은 입력 주소(또는 주소), 명령(예를 들어, 읽기 명령, 쓰기 명령 등 포함), 쓰기 데이터 등을 포함한다.
일 예로, 상기 데이터 입출력부(300)는 상기 메모리 셀(700) 내의 데이터 접근(예를 들어, 데이터 읽기 명령 수행)을 위해 CPU로부터 전달되는 제 1 메모리 요청을 수신한다. 여기서, 상기 제 1 메모리 요청은 제 1 입력 주소, 제 1 읽기 명령 등을 포함한다.
다른 일 예로, 상기 데이터 입출력부(300)는 상기 메모리 셀(700) 내의 데이터 접근(예를 들어, 데이터 쓰기 명령 수행)을 위해서 상위 메모리로부터 전달되는 제 2 메모리 요청을 수신한다. 여기서, 상기 제 2 메모리 요청은 제 2 입력 주소, 제 2 쓰기 명령, 제 2 쓰기 데이터 등을 포함한다(S810).
이후, 주소 변환기(400)는 상기 데이터 입출력부(300)에서 수신된 상기 메모리 요청에 포함된 입력 주소 및 저장 매체((100)(또는 정보 저장 테이블(110)) 내의 미리 설정된(또는 미리 할당된) 저장 영역에 저장된 복수의 위치 정보 벡터를 연산하여 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환한다. 이때, 상기 주소 변환기(400)는 위치 정보 벡터가 존재하지 않는 물리 영역으로 관리되는 정보 저장 테이블(110)에 대해서는 주소 변환 과정을 거치지 않고, 상기 입력 주소(또는 상기 입력 주소의 일부)로 구성되는 물리 기본영역 주소를 그대로 출력한다.
일 예로, 도 7에 도시된 바와 같이, 상기 주소 변환기(400)는 상기 제 1 입력 주소를 상기 저장 매체(100) 내의 저장 영역에 저장된 가상 영역과 관련한 위치 정보 벡터인 '100'과 각각 연산하여 상기 제 1 입력 주소에 대응하는 제 1 물리 영역 주소인 '010'과 상기 위치 정보 벡터 '100'을 연산하여 제 2 가상 영역 주소로 변환하고, 제 1 물리 기본영역 주소인 '01'과 제 2 가상 기본영역 주소인 '10'을 출력한다.
다른 일 예로, 상기 주소 변환기(400)는 상기 제 2 입력 주소를 상기 저장 매체(100) 내의 저장 영역에 저장된 가상 영역과 관련한 위치 정보 벡터인 '100'과 연산하여 상기 제 2 입력 주소에 대응하는 제 11 물리 기본영역 주소인 '100'을 제 12 가상 기본영역 주소로 변환하고, 제 11 물리 기본영역 주소인 '10'과 제 12 가상 기본영역 주소인 '00'을 출력한다(S820).
이후, 정보 제공부(500)는 상기 주소 변환기(400)를 통해 변환된 복수의 가상 기본영역 주소, 물리 기본영역 주소, 상기 저장 매체(100)에 미리 설정된(또는 등록된/저장된) 복수의 컬럼 주소/로우 주소, 상기 입력 주소 등을 근거로 상기 저장 매체(100)의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보(예를 들어, 결함 주소를 대체할 스페어 컬럼에 대한 정보, 결함 주소를 대체할 스페어 로우에 대한 정보 등 포함)를 확인한다.
일 예로, 상기 도 7에 도시된 바와 같이, 상기 정보 제공부(500)는 상기 변환된 제 2 가상 기본영역 주소, 상기 저장 매체(100)에 미리 설정된 복수의 컬럼 주소 및 상기 제 1 입력 주소를 근거로, 상기 저장 매체(100)의 결함 주소 저장 공간 내의 물리 영역으로 관리되는 결함 주소 저장 공간의 00 엔트리에서 결함 주소(예를 들어, F0 및 F1에 대한 주소 정보)를 대체할 스페어 셀 정보(예를 들어, 제 1-1 스페어 컬럼에 대한 정보)를 확인하고, 상기 저장 매체(100)의 결함 주소 저장 공간 내의 위치 정보 벡터 '100'으로 관리되는 결함 주소 저장 공간의 01 엔트리에서 결함 주소(예를 들어 F6에 대한 주소 정보)를 대체할 스페어 셀 정보(예를 들어 제 1-2 스페어 컬럼에 대한 정보)를 확인한다.
다른 일 예로, 상기 정보 제공부(500)는 상기 변환된 제 11 물리 기본영역 주소 및 제 12 가상 기본영역 주소, 상기 저장 매체(100)에 미리 설정된 복수의 컬럼 주소 및 상기 제 2 입력 주소를 근거로, 상기 저장 매체(100)의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보(예를 들어, 제 11 스페어 컬럼에 대한 정보 등 포함)를 확인한다(S830).
이후, 상기 정보 제공부(500)는 상기 확인된 결함 주소를 대체할 스페어 셀 정보, 상기 저장 매체(100)에 미리 설정된 복수의 컬럼 주소/로우 주소 및 상기 입력 주소를 근거로 주소(또는 최종 주소)를 선택한다.
즉, 상기 입력 주소가 미리 설정된 복수의 컬럼 주소 및/또는 로우 주소 중 어느 하나와 같은 경우, 상기 정보 제공부(500)는 상기 결함 주소를 스페어 셀의 주소로 대체한 값(또는 주소/최종 주소)을 선택한다.
또한, 상기 입력 주소가 미리 설정된 복수의 컬럼 주소 및/또는 로우 주소 중 어느 하나와 같지 않을 경우(또는 상기 입력 주소가 상기 결함 주소와 같지 않을 경우), 상기 정보 제공부(500)는 상기 입력 주소를 그대로 최종 주소로 선택한다.
또한, 상기 정보 제공부(500)는 상기 선택된 주소를 주소 디코더(600)에 제공한다. 여기서, 상기 선택된 주소(또는 최종 주소)는 상기 결함 주소를 스페어 셀의 주소로 대체한 값에 해당하는 주소 및 상기 입력 주소 중 어느 하나일 수 있다.
일 예로, 상기 도 7에 도시된 바와 같이, 상기 정보 제공부(500)는 상기 저장 매체(100)의 결함 주소 저장 공간 내의 물리 영역으로 관리되는 결함 주소 저장 공간의 00 엔트리에서 결함 주소(예를 들어, F0 및 F1에 대한 주소 정보)를 대체할 스페어 셀 정보(예를 들어, 제 1-1 스페어 컬럼에 대한 정보), 상기 저장 매체(100)에 미리 설정된 복수의 컬럼 주소(또는 결함 주소, 예를 들어 F0 및 F1에 대한 주소 정보) 및 상기 제 1 입력 주소를 근거로, 상기 제 1 입력 주소가 F0일 때 상기 F0를 대체할 제 1-1 스페어 컬럼의 주소를 선택하고, 상기 선택된 제 1-1 스페어 컬럼의 주소를 상기 주소 디코더(500)에 제공한다.
다른 일 예로, 상기 정보 제공부(500)는 상기 저장 매체(100)의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보(예를 들어, 제 11 스페어 컬럼에 대한 정보 등 포함), 상기 저장 매체(100)에 미리 설정된 복수의 컬럼 주소(또는 결함 주소) 및 상기 제 2 입력 주소를 근거로, 상기 제 2 입력 주소가 F4일 때 상기 F4를 대체할 제 11 스페어 컬럼의 주소를 선택하고, 상기 선택된 제 11 스페어 컬럼의 주소를 상기 주소 디코더(500)에 제공한다(S840).
이후, 상기 주소 디코더(600)는 상기 정보 제공부(500)로부터 제공되는 주소(또는 최종 주소)를 근거로 해당 주소(또는 최종 주소)에 대응하는 데이터(또는 상기 선택된 주소에 대응하여 읽어야 할 데이터)의 위치 정보를 상기 메모리 셀(700)에 제공한다.
즉, 상기 주소(또는 최종 주소)가 결함 주소를 스페어 셀의 주소로 대체한 값(또는 주소)인 경우, 상기 주소 디코더(600)는 해당 스페어 셀의 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀(700)에 제공한다.
또한, 상기 주소(또는 최종 주소)가 상기 입력 주소인 경우, 상기 주소 디코더(600)는 상기 입력 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀(700)에 제공한다.
일 예로, 상기 주소 디코더(600)는 상기 제 1-1 스페어 컬럼의 주소에 대응하는 제 1 데이터의 위치 정보를 상기 메모리 셀(700)에 제공한다.
다른 일 예로, 상기 주소 디코더(600)는 상기 제 11 스페어 컬럼의 주소에 대응하는 제 11 데이터의 위치 정보를 상기 메모리 셀(700)에 제공한다(S850).
이후, 상기 메모리 셀(700)은 상기 주소 디코더(600)로부터 제공되는 주소(또는 최종 주소)에 대응하는 데이터의 위치 정보 및 상기 데이터 입출력부(300)를 통해 수신된 상기 데이터 요청을 근거로, 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행한다.
즉, 상기 데이터 요청 내에 읽기 명령이 포함된 경우, 상기 메모리 셀(700)은 상기 주소(또는 최종 주소)에 대응하는 데이터의 위치 정보와 관련한 외부로 출력할 데이터를 상기 메모리 셀(700) 내의 해당 데이터의 위치 정보(또는 상기 최종 주소에 대응하는 데이터의 위치 정보)와 대응하는 위치로부터 읽어온다.
또한, 상기 데이터 요청 내에 쓰기 명령이 포함된 경우, 상기 메모리 셀(700)은 상기 메모리 요청 내에 포함된 쓰기 데이터 및 상기 주소(또는 최종 주소)에 대응하는 데이터의 위치 정보를 근거로 상기 메모리 셀(600) 내의 특정 위치에 해당 쓰기 데이터를 저장한다.
일 예로, 상기 제 1 메모리 요청 내에 상기 제 1 읽기 명령이 포함된 상태일 때, 상기 메모리 셀(700)은 상기 제 1 데이터의 위치 정보를 근거로 해당 제 1 데이터의 위치 정보에 대응하는 제 1 데이터를 상기 메모리 셀(700) 내의 특정 위치로부터 읽어온다.
다른 일 예로, 상기 제 2 메모리 요청 내에 상기 제 2 쓰기 명령이 포함된 상태일 때, 상기 메모리 셀(700)은 상기 제 2 메모리 요청에 포함된 제 2 쓰기 데이터 및 상기 제 11 데이터의 위치 정보를 근거로 상기 메모리 셀(700) 내의 특정 위치에 상기 제 2 쓰기 데이터를 저장한다(S860).
이후, 상기 메모리 요청 내에 읽기 명령이 포함된 경우, 상기 데이터 입출력부(300)는 상기 메모리 셀(700)로부터 출력되는 상기 메모리 요청에 포함된 입력 주소에 대응하는 데이터를 임시 저장한다.
또한, 상기 데이터 출력부(300)는 상기 임시 저장된 상기 메모리 요청에 포함된 입력 주소에 대응하는 데이터를 해당 데이터를 요청한 상기 장치(또는 디바이스)에 제공한다.
일 예로, 상기 제 1 메모리 요청 내에 상기 제 1 읽기 명령이 포함된 상태일 때, 상기 데이터 입출력부(300)는 상기 메모리 셀(700)로부터 읽은 제 1 데이터(또는 상기 제 1 메모리 요청 내에 포함된 제 1 입력 주소에 대응하는 제 1 데이터)를 상기 제 1 데이터를 요청한 상기 CPU에 제공한다(S870).
본 발명의 실시예는 앞서 설명된 바와 같이, 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 시스템에서 결함 리페어를 적용하여, 전체 정보 저장 공간을 활용하여 영역별로 균등하게 사용하여 전체 시스템의 성능을 향상시키며, 정보 저장 공간을 활용하여 정보 저장 공간의 효율성을 극대화시킬 수 있다.
또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 복수의 정보 저장 테이블을 이용하여 여러 개의 물리 서브영역에 걸쳐서 컬럼 에러가 발생하는 경우, 각각 별개의 가상 영역 조합으로 관리되는 복수의 정보 저장 테이블에 결함 정보를 저장하여, 결함 리페어의 효율성을 향상시키고, 메모리 시스템의 결함 복구율을 높일 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 시스템에서 결함 리페어를 적용함으로써, 전체 정보 저장 공간을 활용하여 영역별로 균등하게 사용하여 전체 시스템의 성능을 향상시키며, 정보 저장 공간을 활용하여 정보 저장 공간의 효율성을 극대화시킬 수 있는 것으로, 메모리 분야 등의 정보 저장 디바이스에서 광범위하게 이용될 수 있다.
10: 분석 시스템 100: 저장 매체
110: 정보 저장 테이블 200: 분석 장치
20: 메모리 장치/메모리 디바이스 300: 데이터 입출력부
400: 주소 변환기 500: 정보 제공부
600: 주소 디코더 700: 메모리 셀

Claims (24)

  1. 복수의 정보 저장 테이블을 가지는 메모리 장치의 제어 방법에 있어서,
    데이터 입출력부를 통해, 장치로부터 전달되는 메모리 요청을 수신하는 단계;
    주소 변환기를 통해, 상기 메모리 요청에 포함된 입력 주소 및 저장 매체 내의 설정된 저장 영역에 저장된 복수의 위치 정보 벡터를 연산하여 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환하는 단계;
    정보 제공부를 통해, 상기 변환된 복수의 가상 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계;
    상기 정보 제공부를 통해, 상기 확인된 결함 주소를 대체할 스페어 셀 정보, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 최종 주소를 선택하는 단계;
    주소 디코더를 통해, 상기 선택된 최종 주소를 근거로 상기 최종 주소에 대응하는 데이터의 위치 정보를 제공하는 단계; 및
    메모리 셀을 통해, 상기 최종 주소에 대응하는 데이터의 위치 정보 및 상기 데이터 요청을 근거로, 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 단계를 포함하는 메모리 장치의 제어 방법.
  2. 제 1 항에 있어서,
    상기 메모리 요청은,
    입력 주소, 명령 및 쓰기 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  3. 제 1 항에 있어서,
    상기 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환하는 단계는,
    상기 주소 변환기를 통해, 상기 입력 주소 및 상기 복수의 위치 정보 벡터를 연산하여 복수의 정보 저장 테이블에 대응하는 복수의 가상 영역 주소를 생성하는 과정; 및
    상기 주소 변환기를 통해, 상기 생성된 가상 영역 주소를 근거로 상기 저장 매체 내의 복수의 정보 저장 테이블의 엔트리에 접근하여 정보를 획득하는 과정을 포함하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  4. 제 1 항에 있어서,
    상기 결함 주소를 대체할 스페어 셀 정보는,
    결함 주소를 대체할 스페어 컬럼에 대한 정보 및 결함 주소를 대체할 스페어 로우에 대한 정보 중 어느 하나인 것을 특징으로 하는 메모리 장치의 제어 방법.
  5. 제 1 항에 있어서,
    상기 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계는,
    상기 입력 주소를 결함 주소에서 스페어 셀의 주소로 교체하여, 결함이 발생한 주소가 아닌 스페어 셀의 주소에 접근하여 결함을 리페어하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  6. 제 1 항에 있어서,
    상기 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계는,
    스페어 로우를 이용한 결함 리페어의 경우, 물리 주소 영역에 속한 스페어 로우의 주소로 교체되며,
    스페어 컬럼을 이용한 결함 리페어의 경우, 가상 주소 영역에 속한 스페어 컬럼의 주소로 교체되는 것을 특징으로 하는 메모리 장치의 제어 방법.
  7. 제 1 항에 있어서,
    상기 최종 주소를 선택하는 단계는,
    상기 입력 주소가 상기 미리 설정된 복수의 컬럼 주소 및 로우 주소 중 어느 하나와 같을 때, 상기 정보 제공부를 통해, 상기 결함 주소를 스페어 셀의 주소로 대체한 값을 최종 주소로 선택하는 과정; 및
    상기 입력 주소가 상기 결함 주소와 같지 않을 때, 상기 정보 제공부를 통해, 상기 입력 주소를 상기 최종 주소로 선택하는 과정 중 어느 하나의 과정을 수행하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  8. 제 1 항에 있어서,
    상기 최종 주소에 대응하는 데이터의 위치 정보를 제공하는 단계는,
    상기 최종 주소가 결함 주소를 스페어 셀의 주소로 대체한 값일 때, 상기 스페어 셀의 주소에 대응하는 데이터의 위치 정보를 제공하는 과정; 및
    상기 최종 주소가 상기 입력 주소일 때, 상기 입력 주소에 대응하는 데이터의 위치 정보를 제공하는 과정 중 어느 하나의 과정을 수행하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  9. 제 1 항에 있어서,
    상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 단계는,
    상기 데이터 요청 내에 읽기 명령이 포함된 상태일 때, 상기 최종 주소에 대응하는 데이터의 위치 정보와 관련한 외부로 출력할 데이터를 상기 메모리 셀 내의 상기 데이터의 위치 정보에 대응하는 위치로부터 읽어오는 것을 특징으로 하는 메모리 장치의 제어 방법.
  10. 제 1 항에 있어서,
    상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 단계는,
    상기 데이터 요청 내에 쓰기 명령이 포함된 상태일 때, 상기 메모리 요청 내에 포함된 쓰기 데이터 및 상기 최종 주소에 대응하는 데이터의 위치 정보를 근거로 상기 메모리 셀에 상기 쓰기 데이터를 저장하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  11. 제 1 항에 있어서,
    상기 메모리 요청 내에 읽기 명령이 포함된 상태일 때, 상기 데이터 입출력부를 통해, 상기 메모리 셀로부터 출력되는 상기 입력 주소에 대응하는 데이터를 임시 저장하는 단계; 및
    상기 데이터 입출력부를 통해, 상기 임시 저장된 상기 입력 주소에 대응하는 데이터를 상기 데이터를 요청한 상기 장치에 제공하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  12. 제 1 항에 있어서,
    상기 주소 변환기를 통해, 상기 위치 정보 벡터가 존재하지 않는 물리 영역으로 관리되는 정보 저장 테이블에 대해서, 상기 물리 기본영역 주소를 상기 복수의 가상 기본영역 주소로 변환하는 주소 변환 과정을 거치지 않고, 상기 입력 주소 또는 상기 입력 주소의 일부로 구성되는 물리 기본영역 주소를 출력하는 단계; 및
    상기 정보 제공부를 통해, 상기 물리 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인하는 단계를 더 포함하는 것을 특징으로 하는 메모리 장치의 제어 방법.
  13. 복수의 정보 저장 테이블을 가지는 메모리 장치에 있어서,
    장치로부터 전달되는 메모리 요청을 수신하는 데이터 입출력부;
    상기 메모리 요청에 포함된 입력 주소 및 저장 매체 내의 설정된 저장 영역에 저장된 복수의 위치 정보 벡터를 연산하여 물리 기본영역 주소를 복수의 가상 기본영역 주소로 각각 변환하는 주소 변환기;
    상기 변환된 복수의 가상 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인하고, 상기 확인된 결함 주소를 대체할 스페어 셀 정보, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 최종 주소를 선택하는 정보 제공부;
    상기 선택된 최종 주소를 근거로 상기 최종 주소에 대응하는 데이터의 위치 정보를 제공하는 주소 디코더; 및
    상기 최종 주소에 대응하는 데이터의 위치 정보 및 상기 데이터 요청을 근거로, 상기 데이터 요청에 포함된 읽기 명령 기능 및 쓰기 명령 기능 중 어느 하나의 기능을 수행하는 메모리 셀을 포함하는 메모리 장치.
  14. 제 13 항에 있어서,
    상기 메모리 요청은,
    입력 주소, 명령 및 쓰기 데이터 중 적어도 하나를 포함하는 것을 특징으로 하는 메모리 장치.
  15. 제 13 항에 있어서,
    상기 주소 변환기는,
    상기 입력 주소 및 상기 복수의 위치 정보 벡터를 연산하여 복수의 정보 저장 테이블에 대응하는 복수의 가상 영역 주소를 생성하고, 상기 생성된 가상 영역 주소를 근거로 상기 저장 매체 내의 복수의 정보 저장 테이블의 엔트리에 접근하여 정보를 획득하는 것을 특징으로 하는 메모리 장치.
  16. 제 13 항에 있어서,
    상기 결함 주소를 대체할 스페어 셀 정보는,
    결함 주소를 대체할 스페어 컬럼에 대한 정보 및 결함 주소를 대체할 스페어 로우에 대한 정보 중 어느 하나인 것을 특징으로 하는 메모리 장치.
  17. 제 13 항에 있어서,
    상기 정보 제공부는,
    상기 입력 주소가 상기 미리 설정된 복수의 컬럼 주소 및 로우 주소 중 어느 하나와 같을 때, 상기 결함 주소를 스페어 셀의 주소로 대체한 값을 최종 주소로 선택하는 것을 특징으로 하는 메모리 장치.
  18. 제 13 항에 있어서,
    상기 정보 제공부는,
    상기 입력 주소가 상기 결함 주소와 같지 않을 때, 상기 입력 주소를 상기 최종 주소로 선택하는 것을 특징으로 하는 메모리 장치.
  19. 제 13 항에 있어서,
    상기 주소 디코더는,
    상기 최종 주소가 결함 주소를 스페어 셀의 주소로 대체한 값일 때, 상기 스페어 셀의 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀에 제공하는 것을 특징으로 하는 메모리 장치.
  20. 제 13 항에 있어서,
    상기 주소 디코더는,
    상기 최종 주소가 상기 입력 주소일 때, 상기 입력 주소에 대응하는 데이터의 위치 정보를 상기 메모리 셀에 제공하는 것을 특징으로 하는 메모리 장치.
  21. 제 13 항에 있어서,
    상기 메모리 셀은,
    상기 데이터 요청 내에 읽기 명령이 포함된 상태일 때, 상기 최종 주소에 대응하는 데이터의 위치 정보와 관련한 외부로 출력할 데이터를 상기 메모리 셀 내의 상기 데이터의 위치 정보에 대응하는 위치로부터 읽어오는 것을 특징으로 하는 메모리 장치.
  22. 제 13 항에 있어서,
    상기 메모리 셀은,
    상기 데이터 요청 내에 쓰기 명령이 포함된 상태일 때, 상기 메모리 요청 내에 포함된 쓰기 데이터 및 상기 최종 주소에 대응하는 데이터의 위치 정보를 근거로 상기 메모리 셀에 상기 쓰기 데이터를 저장하는 것을 특징으로 하는 메모리 장치.
  23. 제 13 항에 있어서,
    상기 데이터 입출력부는,
    상기 메모리 요청 내에 읽기 명령이 포함된 상태일 때, 상기 데이터 입출력부를 통해, 상기 메모리 셀로부터 출력되는 상기 입력 주소에 대응하는 데이터를 임시 저장하고, 상기 임시 저장된 상기 입력 주소에 대응하는 데이터를 상기 데이터를 요청한 상기 장치에 제공하는 것을 특징으로 하는 메모리 장치.
  24. 제 13 항에 있어서,
    상기 주소 변환기는,
    상기 위치 정보 벡터가 존재하지 않는 물리 영역으로 관리되는 정보 저장 테이블에 대해서, 상기 물리 기본영역 주소를 상기 복수의 가상 기본영역 주소로 변환하는 주소 변환 과정을 거치지 않고, 상기 입력 주소 또는 상기 입력 주소의 일부로 구성되는 물리 기본영역 주소를 출력하며,
    상기 정보 제공부는,
    상기 물리 기본영역 주소, 상기 저장 매체에 미리 설정된 복수의 컬럼 주소 또는 로우 주소 및, 상기 입력 주소를 근거로 상기 저장 매체의 결함 주소 저장 공간 내에서 결함 주소를 대체할 스페어 셀 정보를 확인하는 것을 특징으로 하는 메모리 장치.
KR1020160101106A 2016-08-09 2016-08-09 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법 KR101884913B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160101106A KR101884913B1 (ko) 2016-08-09 2016-08-09 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법
US15/486,932 US10325672B2 (en) 2016-08-09 2017-04-13 Memory apparatus having plurality of information storage tables managed by separate virtual regions and control method thereof
CN201710266600.6A CN107704330B (zh) 2016-08-09 2017-04-21 具有由单独的虚拟区域管理的多个信息存储表的存储器设备及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160101106A KR101884913B1 (ko) 2016-08-09 2016-08-09 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법

Publications (2)

Publication Number Publication Date
KR20180017376A true KR20180017376A (ko) 2018-02-21
KR101884913B1 KR101884913B1 (ko) 2018-08-02

Family

ID=61159333

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160101106A KR101884913B1 (ko) 2016-08-09 2016-08-09 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법

Country Status (3)

Country Link
US (1) US10325672B2 (ko)
KR (1) KR101884913B1 (ko)
CN (1) CN107704330B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220140367A (ko) 2021-04-09 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100128225A (ko) * 2009-05-27 2010-12-07 삼성전자주식회사 정보 저장 매체, 기록 재생 방법 및 기록 재생 장치
JP2012173778A (ja) * 2011-02-17 2012-09-10 Sony Corp 管理装置、および管理方法
KR20140015591A (ko) 2011-05-27 2014-02-06 퀄컴 인코포레이티드 동적 언어들의 해시테이블들에 대한 하드웨어 지원
KR20160061899A (ko) * 2014-11-24 2016-06-01 삼성전자주식회사 컴퓨터의 메모리 및 그것의 메모리 내 변환을 수행하는 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010092576A1 (en) * 2009-02-11 2010-08-19 Xsignnet Ltd. Virtualized storage system and method of operating it
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
IN2014DN05977A (ko) * 2012-02-08 2015-06-26 Hitachi Ltd
US8898430B2 (en) * 2012-12-05 2014-11-25 Arm Limited Fault handling in address translation transactions
CN103984607A (zh) * 2013-02-08 2014-08-13 华为技术有限公司 分布式存储的方法、装置和系统
CN103984647B (zh) * 2013-02-08 2017-07-21 上海芯豪微电子有限公司 存储表替换方法
KR101805028B1 (ko) * 2016-06-28 2017-12-06 고려대학교 산학협력단 물리 영역과 가상 영역을 근거로 결함 리페어를 적용하는 메모리 장치 및 그의 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100128225A (ko) * 2009-05-27 2010-12-07 삼성전자주식회사 정보 저장 매체, 기록 재생 방법 및 기록 재생 장치
JP2012173778A (ja) * 2011-02-17 2012-09-10 Sony Corp 管理装置、および管理方法
KR20140015591A (ko) 2011-05-27 2014-02-06 퀄컴 인코포레이티드 동적 언어들의 해시테이블들에 대한 하드웨어 지원
KR20160061899A (ko) * 2014-11-24 2016-06-01 삼성전자주식회사 컴퓨터의 메모리 및 그것의 메모리 내 변환을 수행하는 방법

Also Published As

Publication number Publication date
US10325672B2 (en) 2019-06-18
CN107704330A (zh) 2018-02-16
KR101884913B1 (ko) 2018-08-02
US20180047459A1 (en) 2018-02-15
CN107704330B (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
KR101805028B1 (ko) 물리 영역과 가상 영역을 근거로 결함 리페어를 적용하는 메모리 장치 및 그의 제어 방법
US10083115B2 (en) Memory controller and data storage apparatus including the same
US8738624B1 (en) Increasing distributed database capacity
CN110858128B (zh) 数据存储装置及其共享控制器中存储器的方法
CN113986818B (zh) 芯片的地址重构方法、芯片、电子设备以及存储介质
US11113145B2 (en) Memory device, semiconductor device, and semiconductor system
US9886339B2 (en) Semiconductor device using fuse arrays to store weak cell addresses
US10776227B2 (en) Memory management system and method thereof
US20180197968A1 (en) Nonvolatile storage circuit and semiconductor memory device including the same
KR101884913B1 (ko) 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법
US9275756B2 (en) Semiconductor test device and method of generating address scramble using the same
TW201327168A (zh) 使用記憶體和暫時記憶體的修補方法及使用其之修補伺服器和客戶端
KR20210141156A (ko) 페이지 장애에 기초하여 메모리 고장을 예견하고, 예견되는 메모리 고장을 관리하는 시스템의 운영 체계 핸들링
KR101754348B1 (ko) 정보 저장 테이블을 관리하는 분석 시스템 및 그의 제어 방법
KR102031191B1 (ko) 비휘발성 메모리 및 이의 부트업 동작 방법
KR20190062879A (ko) 스페어 피봇 고장 특성을 이용한 메모리 분석 방법 및 장치
US20190042404A1 (en) Allocating shared memory blocks to table entries to store in a memory device
US9443618B2 (en) Semiconductor memory device mapping external address as internal address wherein internal addresses of spare cells of two blocks differ by upper most bit and internal addresses of main cells of two blocks differ by upper most bit and the internal addresses of main cell and spare cell of each block differ by one bit and operating method for the same
US20100251013A1 (en) Method for processing bad block in redundant array of independent disks
CN108121569B (zh) 一种接口配置方法和装置
JP2021060748A (ja) 演算装置および演算方法
TW483085B (en) Architecture and method for patching DRAM by a slicing table of generating memory page fault distribution
CN117742572A (zh) 存储器、控制器、存储器系统及存储器系统的操作方法
US20110188332A1 (en) Semiconductor memory device having regular area and spare area
JP2005196843A (ja) メモリの冗長救済装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right