KR20200073108A - Pram 블록들 내 카피백 및 쓰기의 통합을 위한 방법 - Google Patents

Pram 블록들 내 카피백 및 쓰기의 통합을 위한 방법 Download PDF

Info

Publication number
KR20200073108A
KR20200073108A KR1020190072835A KR20190072835A KR20200073108A KR 20200073108 A KR20200073108 A KR 20200073108A KR 1020190072835 A KR1020190072835 A KR 1020190072835A KR 20190072835 A KR20190072835 A KR 20190072835A KR 20200073108 A KR20200073108 A KR 20200073108A
Authority
KR
South Korea
Prior art keywords
block
target block
ram
write
pages
Prior art date
Application number
KR1020190072835A
Other languages
English (en)
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 KR20200073108A publication Critical patent/KR20200073108A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0097Erasing, e.g. resetting, circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

Abstract

RAM(random access memory)의 쓰기 동작을 수행하기 위한 방법은 RAM 내 가장 큰 개수의 무효 페이지들을 갖는 타깃 블록을 선택하는 단계, 타깃 블록으로부터 유효 페이지들을 읽는 단계, 무효 페이지들의 개수가 사전에 결정된 문턱값보다 크면 RAM 내 타깃 블록의 비트라인 단위 블록 소거를 수행하는 단계, 및 행 단위의 셋 동작에서 소거된 타깃 블록으로 유효 데이터를 카피백하는 단계를 포함하되, 소거된 타깃 블록에 유효 데이터가 쓰여진다. 비트라인 단위 블록 소거를 수행하는 단계는 사전에 결정된 리셋 전압으로 각 비트라인을 순차적으로 작동시키는 단계를 포함하고 여기서 다른 모든 비트라인들 및 워드라인들은 접지된다.

Description

PRAM 블록들 내 카피백 및 쓰기의 통합을 위한 방법{METHOD FOR CONSOLIDATION OF COPY-BACK AND WRITE IN PRAM BLOCKS}
본 발명의 실시 예들은 PRAM(phase change random access memory)의 쓰기 동작들의 효율을 향상시키기 위한 방법들에 관한 것이다.
PRAM(Phase-Change RAM)은 현재 선두적인 차세대 메모리 접근법이다. 그러나, 단일 셀 쓰기와 읽기 전력이 저비용이고 경쟁력이 있으나, 밀집한 크로스 포인트 어레이(cross-point array) 구조들에서 다수의 셀들을 패킹(packing)하는 것은 메모리 동작들이 선택되지 않은 셀들에 영향을 미치기 때문에 고전력을 소비하게 한다. 그 결과 에너지 크기가 셀의 장점들을 상쇄한다. 그러므로, 어레이 규모 프로세스 설계 및 데이터 관리 알고리즘들이 불필요한 전력 문제들을 다루기 위해 필요하다.
고저항(high-resistance) 상태에서 저저항 상태로 셀을 전환(switch)시키기 위해, 고전압 강하(drop)가 필요하다. 해당 워드라인 및 비트라인에 필요한 전위들(potentials)이 할당되나, 그러나 동일한 행(row) 또는 열(column) 상에 위치하는 선택되지 않은 셀들도 전압 변동(variation)들을 겪는다. 선택되지 않은 비트라인들 상의 추가 전압을 이용함으로써 야기되는 원치 않는 전위들을 줄이기 위한 시도들은 문제를 이들 열들 상의 선택되지 않은 셀들과 다른 워드라인들에서의 전압의 할당으로 넘긴다. 결국, 선택된 그리고 선택되지 않은 행들과 열들을 위한 4개 전압들의 집합은 원치 않는 전력 및 쓰기 방해(disturb)를 완화하는데 사용된다. 셀들이 저저항 상태에서 고저항 상태로 변화(transform)될 때, 동일한 프로세스가 아마도 다른 값들에서, 역 전압 강하들을 이용하여 수행된다.
쓰기 동작들은 PRAM과 같이 최근 생겨난 PCM(phase change memory) 기술들에서의 전력 소비의 근원이다. 크로스 포인트 수직 어레이 구조에서, 전압들의 집합 또는 고임피던스들(impedances)이 모든 워드라인들과 비트라인들에 인가되어 의도된 쓰기 전압이 타깃 셀들에 걸리는 전위차이고, 그들의 저항이 전환(switch)되는 것을 야기한다. 그러나, 선택되지 않은 셀들도 의도되지 않은 전압 강하들을 갖는다. 낮은 셀 상태와 높은 셀 상태 사이의 저항 차이(gap)는 적어도 약 10배이므로, 거의 모든 원치 않은 전력, 그리고 결과적으로 총 쓰기 전력의 대부분이, 선택되지 않은 워드라인들에 위치하는 저저항 셀들에 의해 소비된다.
본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 PRAM 블록들 내 카피백 및 쓰기의 통합을 위한 방법을 제공할 수 있다.
본 발명의 예시적인 실시 예들은 선택적인 유효 페이지들을 읽는 것을 이용하는 쓰기 알고리즘과 카피백을 결합함으로써 PRAM 쓰기 알고리즘들을 향상시키기 위한 시스템들 및 방법들에 관한 것이다. 분석은 이전 기술 알고리즘들에 비해 40%까지의 전력 절감이 얻어질 수 있음을 보여준다. 본 발명의 실시 예에 따른 방법은 PRAM 블록들이 더 많은 워드라인들을 사용함에 따라 확장 가능하다.
본 발명의 실시 예에 따라, RAM 내 최대 개수의 무효 페이지들을 갖는 타깃 블록을 선택하는 단계, 무효 페이지들의 개수가 사전에 결정된 문턱값보다 크면 타깃 블록으로부터 유효 페이지들을 읽는 단계, RAM 내 타깃 블록의 비트라인 단위 블록 소거를 수행하는 단계, 및 행 단위의 셋 동작에서 소거된 타깃 블록으로 유효 데이터를 카피백하는 단계를 포함하되, 소거된 타깃 블록에 유효 데이터가 쓰여지는, RAM(random access memory)의 쓰기 동작을 수행하기 위한 방법이 제공된다.
본 발명의 추가 실시 예에 따라, 방법은 인커밍 쓰기 요청을 수신하는 단계, 및 행 단위의 셋 동작에서 인커밍 쓰기 요청의 데이터를 타깃 블록에 쓰는 단계를 포함하되, 인커밍 데이터는 유효 데이터와 함께 소거된 블록에 쓰여진다.
본 발명의 추가 실시 예에 따라, 방법은 인커밍 쓰기 요청의 데이터를 RAM의 컨트롤러의 쓰기 버퍼에 위치시키는 단계를 포함한다.
본 발명의 추가 실시 예에 따라, 비트라인 단위 블록 소거를 수행하는 단계는 사전에 결정된 리셋 전압으로 각 비트라인을 순차적으로 작동시키는 단계를 포함하고, 다른 모든 비트라인들과 워드라인들은 접지된다.
본 발명의 추가 실시 예에 따라, 방법은 무효 페이지들의 개수가 사전에 결정된 문턱값 이하이면 쓰기 요청으로 수신된 데이터의 서브 블록 쓰기 동작을 수행하는 단계를 포함한다.
본 발명의 추가 실시 예에 따라, RAM은 PRAM(phase change random-access memory), RRAM(resistive random-access memory), FRAM(ferroelectric random-access memory), 및 MRAM(magnetoresistive random-access memory)을 포함하는 그룹으로부터 선택된 하나이다.
본 발명의 추가 실시 예에 따라, 비트라인 단위 블록 소거는 부분 블록 소거 또는 완전 블록 소거 중 하나이다.
본 발명의 추가 실시 예에 따라, 타깃 블록을 선택하고, 타깃 블록으로부터 유효 페이지들을 읽고, 타깃 블록의 비트라인 블록 소거를 수행하고, 그리고 유효 데이터를 소거된 타깃 블록으로 카피백하는 단계들은 자동 리프레쉬 동작으로 또는 유저에 의해 개시되는 동작으로 수행된다.
본 발명의 추가 실시 예에 따라, 방법은
Figure pat00001
에 따라 타깃 블록의 비트라인의 논리 어드레스를 가상 어드레스에 매핑하는 단계를 포함하되,
Figure pat00002
는 n 비트 논리 어드레스이고,
Figure pat00003
는 가상 어드레스이고, n은 상기 논리 어드레스 공간 사이즈의 로그(밑 2)이고, P는 가역 n X n 순열 행렬이고,
Figure pat00004
는 2진 n 비트 어드레스를 자연수로 변환하는 벡터이고, z는 여분 라인들의 현재 개수이고,
Figure pat00005
, r은 라운드 번호이고, 라운드는 타깃 블록의 모든 라인들을 다시 매핑하는 동작이고, s는 단계 번호이고, 단계는 하나의 비트라인을 다시 매핑하는 동작이다.
본 발명의 추가 실시 예에 따라, 방법은 가상 어드레스 vv+i로 매핑함으로써 타깃 블록의 비트라인의 가상 어드레스를 물리 어드레스로 매핑하는 단계를 더 포함하되, i는 최대값 s의 인덱스이며 s i < v이고,
Figure pat00006
, s i 의 값은 b i 이하 물리 어드레스로 매핑하는 가장 큰 가상 어드레스이고, b i ∈ (b 1 , …, b l ), 배드 라인들의 물리 어드레스들의 정렬된 리스트이고, l은 배드 라인들의 현재 개수이다.
발명의 다른 실시 예에 따라, RAM(random access memory)의 쓰기 동작의 방법 단계들을 수행하는 컴퓨터에 의해 실행되는 명령어들의 프로그램을 실질적으로 구현하는, 컴퓨터에 의해 판독 가능한 비일시적 프로그램 저장 장치가 제공된다.
본 발명의 다른 실시 예에 따라, RAM 내 최대 개수의 무효 페이지들을 갖는 타깃 블록을 선택하는 단계, 및 무효 페이지들의 개수가 사전에 결정된 문턱값 이하이면 쓰기 요청으로 수신된 데이터의 서브 블록 쓰기 동작을 수행하는 단계를 포함하는 RAM(random access memory)의 쓰기 동작을 수행하는 방법이 제공된다.
본 발명의 예시적인 실시 예들은 선택적인 유효 페이지들을 읽는 것을 이용하는 쓰기 알고리즘과 카피백을 결합함으로써 PRAM 쓰기 알고리즘들을 향상시키기 위한 시스템들 및 방법들에 관한 것이다. 분석은 이전 기술 알고리즘들에 비해 40%까지의 전력 절감이 얻어질 수 있음을 보여준다. 본 발명의 실시 예에 따른 방법은 PRAM 블록들이 더 많은 워드라인들을 사용함에 따라 확장 가능하다.
도 1a 및 도 1b는 본 발명의 실시 예에 따라, 크로스 포인트 PRAM의 단일 워드라인 쓰기 동작의 전압 구성을 도시한다.
도 2a 내지 도 2c는 본 발명의 실시 예에 따라, 카피백 및 쓰기 동작들의 통합을 도시한다.
도 3은 본 발명의 실시 예들에 따라, 다양한 전력 소모 모델들의 결과들을 요약하는 표이다.
도 4는 본 발명의 실시 예들에 따라, 통합 문턱값의 결정을 도시하는 표이다.
도 5는 본 발명의 실시 예들에 따라, 다양한 쓰기 알고리즘들을 위한 PRAM 블록 내 무효 페이지들의 개수의 함수로서 전력 소비 결과들의 그래프이다.
도 6은 본 발명의 실시 예들에 따라, 전력 평가에서 고려된 장치 및 어레이 변수들을 보여주는 표이다.
도 7은 본 발명의 실시 예에 따라, L2V(logical-to virtual) 어드레스 매핑이 고정된 요소 및 변경되는 요소를 포함하는 것을 도시한다.
도 8은 본 발명의 실시 예에 따라, 각 라운드 내에서 라인들이 내림차순으로 업데이트되도록, 웨어 레벨링이 순서로부터 마지막 라인을 새로이 이동된 라인을 위한 타깃으로서 어떻게 이용하는지를 도시한다
도 9는 본 발명의 실시 예에 따라, X들인 가상 어드레스들이 배드 라인들로 표시되는, V2P 매핑의 예시를 도시하는 표이다.
도 10은 본 발명의 실시 예에 따라, 선택적인 유효 페이지들을 읽기 및 카피백을 쓰기 알고리즘과 결합하기 위한 방법을 구현하는 시스템의 블록도이다.
본문에서 설명된 바와 같이 본 발명의 예시적인 실시 예들은 선택적인 유효 페이지들(selective valid pages) 읽기 및 카피백(copy-back)을 쓰기(write) 알고리즘과 결합(통합)함으로써 PRAM(phase change random access memory) 쓰기 알고리즘들을 향상시키기 위한 시스템들과 방법들을 일반적으로 제공한다. 실시 예들은 다양한 변형들 및 대체적인 형태들에 영향을 받기 쉽지만, 특정한 실시 예들은 도면들의 예시로 도시되고 그리고 본문에서 상세하게 설명될 것이다. 그러나, 게시된 특정한 형태들로 본 발명을 제한하려는 것으로 의도는 없고, 오히려, 본 발명은 본 발명의 사상 및 범위 내의 모든 변형들, 등가물들, 및 대안들을 포함하는 것으로 이해되어야 한다.
과거의 연구는 워드라인이 아닌 블록 해상도로 페이지들을 쓰면 쓰기 전력이 감소될 수 있음을 나타내었다. 이 방식은, 서브 블록 쓰기 집합(sub-block write aggregation)으로 지칭되며, 쓰기 요청들의 그룹(group)을 버퍼링(buffering)하고, 가장 많은 무효(invalid) 워드라인들을 갖는 블록을 선택하고, 그리고 행 단위의 방식으로(행별로), 셀들을 고저항으로 수정(변경)하는 모든 리셋(RESET) 단계들을 수행하며, 그룹 셀들로의 셋(SET)이 별개로 모든 리셋(RESET) 단계들을 뒤따른다. 이 알고리즘에서, 의도되지 않은 전압 강하들이 고저항 셀들 상에 주로 위치한다(발생한다). 결과들의 분석은 랜덤(random) 워드라인 쓰기들과 비교하여 85%까지 에너지 감소가 있었음을 보여준다. 이 방식은 MLC(multi-level cell) 쓰기들을 포함하고 그리고 기회적(opportunistic) 전력 절감 쓰기들을 관리하기 위해 확대된다.
본 발명의 실시 예들은 쓰기 알고리즘들을 선택적인 유효 페이지들 읽기 및 카피백과 결합함으로써, 추가적인 에너지를 절약하는 PRAM 쓰기 알고리즘들을 향상시키는 방법들에 관한 것이다. 모든 워드라인들이 0 볼트(volts)에서 접지된 동안에 모든 비트라인들을 리셋(RESET) 전압으로 설정함으로써, 전체 블록에 대한 비트라인 단위 리셋(bitline-wise RESET)을 수행하는 것은 매우 전력 효율적인 것으로 관찰되었다. 그러므로, 본 발명의 실시 예들은 유효 페이지들을 복사(copy(카피))하고, 비트라인 단위 블록 소거(bitline-wise block erase)를 실행하고, 그리고 새로운 인커밍(incoming) 쓰기 요청들과 함께 유효 데이터를 다시 쓰는(write back) 경우에 관한 것이다. 무효 워드라인들의 개수가 작으면, 이전의 서브 블록 쓰기 방식이 좀 더 전력 효율적일 것으로 예상되나, 반면에 워드라인들 대부분이 무효이면, 유효 페이지들을 읽고, 비트라인 단위 소거들을 수행하고, 그리고 새로운 데이터 쓰기와 함께 데이터를 카피백하는 것이 더 좋다. 실시 예에 따른 통합 방식은 무효 페이지들의 개수를 계산하며 이러한 프로세스는 서브 블록 쓰기 집합보다 장점을 갖는다. 전력 소모는 카피백이 서브 블록을 능가하는 무효 페이지들의 개수를 찾는 프로세스들 모두에서 모델링(modeling)될 수 있고, 그리고 이 선택은 온라인 쓰기 알고리즘과 통합될 수 있다.
표기법들과 정의들
표기 1 (크로스 포인트 어레이 사이즈): 메모리 셀들 행렬 내 (행들) X (열들)의 개수는 M X N으로 표현되고, 크로스 포인트 어레이 워드라인들(행들)과 비트라인들(열들)은 M과 N으로 표현된다. 또한, WL/BL은 각각 워드라인/비트라인을 위한 약어들이다.
표기 2(데이터 분포 및 셀의 상태들): 실시 예들에 따른 데이터는 베르누이(Bernoulli)-(1/2) 확률로 이진법으로 분포될 것으로 가정한다. 장치는 RL로 표시되는 LRS(low-resistance state; 저저항 상태)와 RH로 표시되는 HRS(high-resistance state; 고저항 상태)를 갖는 2진법(단일 설정 레벨 셀 - SLC)으로 간주된다. MLC 일반화는 이하에서 주어진다.
표기 및 정의 3 (랜덤 워드라인 쓰기): 실시 예에 따른 쓰기 프로세스는 두 단계들을 포함한다: 셋(SET; 설정) 및 리셋(RESET; 재설정) (또는 반대). 리셋(RESET) 단계에서, 워드라인 상에 리셋 전압(VRST)이 인가되고 그리고 타깃 셀 비트라인들이 접지(0 볼트)됨으로써 셀들이 HRS (RESET)로 전환된다. 선택되지 않은(비선택) 행들/열들은 VRWL/VRBL로 작동된다(선택되지 않은 행들/열들로 VRWL/VRBL가 공급된다). 이전(prior) 읽기가 수행되고 관련된 셀들 중 LRS 셀들만이 선택되면, 전력 소비가 감소한다. 셋(SET) 단계에서, 셀들은 LRS (SET)로 전환된다. 전압(VSET)이 타깃 워드라인에 사용되고, 의도된 셀들 비트라인들은 접지되고 그리고 VSWL/VSBL이 선택되지 않은 워드라인들/비트라인들에 사용된다.
표기 및 정의 4 (서브 블록 쓰기): 실시 예에 따른 알고리즘은 몇몇의 쓰기 요청들을 버퍼링하고, 가장 많은 무효 페이지들을 갖는 블록을 선택하고, 새로운 데이터에 따라 모둔 무효 페이지들에 대한 리셋(RESET)을 수행하고, 이전 읽기를 이용하여 전력 낭비를 피하고 이어서 적절한 행 단위 셋(SET)을 수행한다.
표기 및 정의 5 ( 비트라인 단위 블록 소거 및 셋(SET)): 실시 예에 따른 첫 번째 소거 단계는 각 비트라인에 VRST를 설정하되 다른 비트라인들은 접지되고, 그리고 모든 워드라인들을 접지시킨다. 그 다음, 블록은 워드라인 셋(SET) 동작들, 즉, 타깃 워드라인 상의 VSET으로 쓰여지며, 선택된 셀들 비트라인들은 접지되고 그리고 선택되지 않은 행들/열들은 VSWL/VSBL로 작동된다.
표기 및 정의 6 (리셋(RESET)/셋(SET) 및 읽기 전력): 실시 예들에 따라, 저저항 상태에서 고저항 상태로, 또는 고저항 상태에서 저저항 상태로 셀을 전환하는 전력은 P RST 또는 P SET 으로 각각 표현된다. 워드라인 읽기 동안 소비된 전력은 P RD 로 표현된다.
표기 및 정의 7 (단일 메모리 셀의 쓰기 전력): 실시 예들에 따라, 단일 셀을 저저항 상태에서 고저항 상태로 변경(리셋)하는데 필요한 전력은 수학식 1로서 표현되고 정의된다:
Figure pat00007
여기서 I(R)은 저항(R)에서 PRAM 장치를 통하는(통해 흐르는) 전류이다. 상반되게 셀의 고저항 상태에서 저저항 상태로의 쓰기 (셋) 전력은 수학식 2와 같다:
Figure pat00008
셋 그리고 리셋의 지연 시간(latency)들은 비교적 동일한 것으로 가정한다: tSET = tRST, 그러므로 에너지는 전력에 비례한다. 셋 시간이 리셋 시간과 다른 경우에도, 위 분석은 그대로 유지되고 그리고 에너지 데이터의 유도는 전력에 해당 시간 기간을 곱하는 것이 필요할 것이다.
표기 및 정의 8 (읽기 동작 및 전력): 실시 예들에 따라, 읽기는 모든 비트라인들이 접지(0v)될 때 타깃 워드라인을 VRD로 작동시킴으로써(타깃 워드라인에 VRD를 공급함으로써) 수행된다. 각 비트라인에서의 전류는 셀의 저항 평가를 위해 측정된다. (랜덤 읽기 방해를 갖는) 읽기 프로세스의 전력은 수학식 3과 같다:
Figure pat00009
읽기 전력은 스니크(sneak) 전류로부터 비롯되는 기생 성분을 포함한다. 이 부분은 전체 전력과 비교되면 무시될 수 있는 것으로 간주될 수 있고 그리고 이득 분석에서 생략될 수 있다.
도 1a 및 도 1b는 본 발명의 실시 예에 따라, 크로스 포인트 PRAM의 단일 워드라인 쓰기 동작의 전압 구성을 도시한다. 도 1a에서 도시된 셋(SET) 동작에서, 중간 워드라인은 제 2, 제 3, 및 제 5 셀들(왼쪽에서 오른쪽으로, 검은 원들로 표시됨)이 전압 강하들(VSET)을 이용하여 LRS로 전환되도록 쓰여진다. 선택되지 않은 워드라인들 및 비트라인들은 VSWL 및 VSBL로 작동된다. 도 1b에서 도시된 리셋(RESET) 동작에서, 중간 워드라인에 있는 제 1 및 제 4 셀들은 -VRST의 전압 강하에 의해 HRS로 전환된다. 나머지 선택되지 않은 워드라인들 및 비트라인들은 VRWL 및 VRBL로 작동된다. 순서는 리셋(RESET) 이전 셋(SET) 또는 셋(SET) 이전 리셋(RESET) 중 어느 하나일 수 있다.
쓰기 방법들의 전력 비교
실시 예에 따라, 전력 소비의 분석적 모델이 통합된 카피백 및 쓰기 방법에 대해 구성된다.
1) 이전 읽기를 이용하는 랜덤 워드라인 리셋(RESET) 및 셋(SET)
실시 예에 따른 계획된 읽기 동작에서, HRS 셀들의 위치가 알려져 있다. N/2개의 계획된 HRS 중에서, 절반은 이미 그 상태에 있고 그리고 리셋이 N/4개의 셀들에 대해 실행된다. 타깃 워드라인 상의 선택되지 않은 셀들은 N/2 개의 HRS 및 LRS의 N/4개이고 VRBL에 의해 영향을 받는다. 나머지 워드라인들은 VRST-VRWL에 의해 영향을 받는 N/4개의 셀들과 VRBL-VRWL에 의해 영향을 받는 3N/4개의 셀들이며, 동일하게 분포된 LRS 및 HRS 셀들을 갖는다. 알려진 워드라인들의 리셋 단계의 전력은 수학식 4와 같다:
Figure pat00010
유사하게, LRS 셀들은 셋 단계 이전에 알려져 있고 그리고 계획된 N/2개들 중에서 N/4개는 이미 LRS에 있다. 나머지 워드라인 셀들은 이전 리셋 단계로 인하여 HRS에 있다(수학식 5).
Figure pat00011
이전 읽기를 이용하는 셋 이전 리셋에서의 전체 전력은 수학식 6과 같다:
Figure pat00012
셋(SET) 이전 리셋(RESET) 및 리셋(RESET) 이전 셋(SET)은 랜덤 워드라인에 대해 대략 동일한 전력 소비를 갖는 것으로 드러났다.
2) 이전 읽기를 이용하는 서브 블록 리셋(RESET) 및 셋(SET) 집합
전체 블록이 무효 페이지들을 포함하는 것은 흔하지 않기 때문에, 실시 예에 따른 쓰기 동작은 서브 블록 해상도로 수행될 수 있다. 선택된 블록은 (각 행이 별개로) 순차적으로 먼저 모두 리셋(RESET)되고 그 다음 (워드라인 단위) 셋(SET)되는 i개의 무효 워드라인들을 갖는다. 리셋(RESET) 단계에서, 선택되지 않은 셀들의 전력은 점진적으로 감소한다. 첫 번째 리셋(RESET) 동작에서, 다른 모든 행들(M-1개의 행들)은 LRS에서 셀들 중 절반의 기대를 갖는다. 설정(SET) 단계에서 타깃 워드라인에서의 모든 셀들이 HRS이고 읽기는 정보를 드러내지 않기 때문에 서브 블록 쓰기 흐름에 이전 읽기를 추가하는 것은 리셋 단계에서만 전력을 감소시킨다. 읽기는 모든 행 셀들에 대해 리셋(RESET)을 수행하는 것 대신에, 특정한 비트라인 및 워드라인 구성으로, 리셋(RESET)이 필요한 셀들만을 목표로 한다. 첫 번째 행(W1) 리셋은 이전 읽기를 이용하는 단일 워드라인 셋(SET) 전의 리셋(RESET)과 동등하다(수학식 7):
Figure pat00013
두 번째 행 리셋(RESET)에서, ¾ HRS 셀들을 갖는 단일 행과 랜덤 데이터를 갖는 (M-2)개의 행들이 있다(수학식 8):
Figure pat00014
세 번째 워드라인에 대한 리셋(RESET)을 수행할 때의 전력 소비는 수학식 9와 같다:
Figure pat00015
M개의 행들 중 마지막 i번째 행 리셋(RESET)에서, (i-1)개의 행들은 ¾ 셀들 HRS를 갖는다. 소비된 전력은 수학식 10과 같다:
Figure pat00016
이전 읽기 데이터가 주어지면, M개 중 i개의 행들의 리셋(RESET) 전력의 합은 수학식 11과 같다:
Figure pat00017
셋(SET) 단계에서, 데이터 읽기는 수행되지 않는다. i개의 행들에서 모든 셀들이 HRS에 있고 그리고 다른 M-1개의 행들이 랜덤 데이터를 가질 때 첫 번째 워드라인이 쓰여진다. 각 워드라인 셋(SET)에서, HRS 행들의 개수는 하나씩 감소하고 랜덤 데이터 행들은 하나씩 증가한다. 그러므로, 이것은 이전 읽기가 없는 서브 블록 셋(SET)과 동등하다(수학식 12).
Figure pat00018
리셋(RESET) 단계에서 이전 읽기를 이용하는 서브 블록의 전체 쓰기 전력은 수학식 13과 같다:
Figure pat00019
단일 워드라인 당 정규화된 결과는 수학식 14와 같다:
Figure pat00020
3) 통합된 카피백 및 쓰기
M개의 무효 워드라인들 중 i개를 갖는 블록이 주어지면, 실시 예에 따른 첫 번째 단계는 유효 페이지들을 읽어내는(read out) 것이다(수학식 15):
Figure pat00021
그 다음, 에너지 효율적인 비트라인 단위 소거는 열 단위로(열별로) 블록 내 모든 셀들에 대해 수행된다(수학식 16):
Figure pat00022
실시 예에 따라, 소거 이후에, 읽기 유효 페이지들은 총 M개의 새로운 읽기 요청들에 대한 추가적인 새로운 데이터와 함께 그룹핑(grouping)된다(묶인다). 집합된 쓰기는 행 단위로(행별로) 수행된다. 더 많은 페이지들이 쓰여질수록, LRS에서의 더 많은 셀들이 원치 않은 전압 강하들을 갖기 때문에 워드라인 쓰기 당 전력이 늘어난다.
첫 번째 워드라인(W1)의 셋(SET) 전력은 수학식 17과 같다:
Figure pat00023
두 번째 워드라인(W2)의 셋(SET)에서, 소모된 전력은 수학식 18과 같다:
Figure pat00024
세 번째 워드라인(W3)에서 전력은 수학식 19와 같다:
Figure pat00025
(블록 당 총 M개의 워드라인들이 있는) 마지막 워드라인에서 (수학식 20):
Figure pat00026
M개 중 워드라인의 i 인덱스에 대한 셋(SET) 프로세스에 대한 전력 표현들은, 이전 (i-1)개의 워드라인들이 이미 쓰여졌을 때, 수학식 21과 같다:
Figure pat00027
블록이 소거된 이후에 행 단위 셋(SET)의 누적된(accumulated) 전력을 합치면 수학식 22와 같다:
Figure pat00028
i개의 무효 페이지들을 갖는 블록이 주어지면, CBWR(consolidated copy-back and write; 통합된 카피백 및 쓰기)의 전체 전력은 수학식 23과 같다:
Figure pat00029
i개의 워드라인들에 대한 쓰기 경우의 워드라인 당 정규화된 전력은 수학식 24와 같다:
Figure pat00030
실시 예에 따라 카피백 및 쓰기 동작들의 통합이 도 2a 내지 도 2c에 도시되었다. 도 2a에서, 3개 무효 데이터 페이지들을 갖는 타깃 PRAM 블록(1011)이 통합을 위해 선택된다. 유효 데이터 페이지들(1, 2)은 읽혀지고 워드라인들(1, 3)에 위치한다. 호스트(104)로부터 인커밍 쓰기 요청들(1, 2, 3)이 PRAM 컨트롤러(103)에 의해 수신되고 그리고 새로운/인커밍 데이터는 통합 관리(1032)에 의해 PRAM 컨트롤러(103)의 쓰기 버퍼(1031) 내에 위치한다. 도 2b에서, 다른 모든 비트라인들/워드라인들이 접지되는 각 비트라인을 VRST로 순차적으로 작동함으로써, 비트라인 단위 블록 소거가 타깃 블록(1011)에 대해 수행된다. 도 2c에서, 유효 데이터 페이지들(1, 2) 및 인커밍 데이터(1, 2, 3)가 행 단위 셋(SET)에 의해 타깃 블록(1011)으로 카피백되어, 소거된 블록은 인커밍 데이터(1, 2, 3) 및 이전 데이터 페이지들(1, 2)로 쓰여진다. 실시 예들에 따라, 통합된 카피백 및 쓰기, 이전 읽기를 이용하는 서브 블록 셋(SET) 및 리셋(RESET), 그리고 이전 읽기를 이용하는 단일 워드라인 쓰기의 전력 소모 모델들의 결과들의 요약이 도 3의 표 1에서 도시된다.
문턱값 기반의 통합 알고리즘
실시 예에 따라, 통합이 서브 블록 쓰기보다 더 전력 효율적인, i로 표현되는 무효 페이지들의 개수를 결정하기 위해, 수식들이 비교되고 그리고 결과 방정식이 풀린다(수학식 25):
Figure pat00031
이들 방정식들이 2차이므로, 2가지 가능한 해법들이 있고, 그리고 다른 것은 범위 밖이므로 더 작은 것이 고려된다. 해법은 도 6의 표 3에 도시되었다. 문턱값은 카피백 및 쓰기의 통합을 수행할지 또는 서브 블록 쓰기 알고리즘을 수행할지 여부를 결정하는데 사용된다. 알고리즘 1에 상세한 단계들이 주어진다.
알고리즘 1: 카피백과 쓰기의 통합
입력: 표 2에서 계산된 문턱값 t
(1) 가장 많은 무효 페이지들을 갖는 블록을 선택
(2) 만약 무효 페이지들의 개수(#) > t
(2.1) 유효 페이지들을 읽음
(2.2) 비트라인 단위 블록 소거
(2.3) 유효 페이지들 및 인커밍 쓰기 요청들을 다시 쓰기(write back)
(3) 그렇지 않으면
(3.1) 서브 블록 쓰기 알고리즘을 수행
(4) 종료
에너지 절약 및 구현 부담
실시 예에 따라, 표 1의 표현의 정확한 전력은 이전 읽기를 이용하는 랜덤 워드라인 쓰기에 따라 계산되고 정규화된다. 도 4는 읽기를 이용하는 단일 워드라인 RBS(셋 이전 리셋)/SBR(리셋 이전 셋)(301), 읽기를 이용하는 서브 블록 리셋(RESET)/셋(SET)(302), 및 카피백 및 쓰기가 통합된 클럭 소거(ERASE)/셋(SET)(303)에 대해 PRAM 블록 내의 무효 페이지들의 개수(i)의 함수로서의 전력 소비 결과들의 그래프이다. 전력은 단일 랜덤 워드라인 쓰기에 대해 정규화되고, 그리고 초기 블록은 균일하게 랜덤 데이터를 차지하는 것으로 가정한다. 전력 평가에서 고려된 장치 및 어레이 변수들은 도 5의 표 2에 도시되었다. 또한, 상이한 장치 변수들과 블록 사이들이 있는 적절한 교차점들을 이용하여 그래프를 계산하는 평가 소프트웨어가 부록에 첨부되었다.
실시 예에 따라, 서브 블록 쓰기 알고리즘만에 비해 40%까지 그리고 현재 랜덤 워드라인 쓰기에 비해 60%까지 전력 감소가 관찰되었다. 이득은 문턱값 이상에서 지수적으로 증가한다. 정확한 이득은 워크로드(workload) 특성들 및 블록들 내 무효 페이지들의 분포에 따라 결정된다.
실시 예에 따라, 카피백과 쓰기가 통합된 구현은 다음과 같은 컨트롤러의 수정을 포함한다.
쓰기 데이터 버퍼:
컨트롤러는 인커밍 쓰기 요청들 데이터와 타깃 블록의 유효 페이지들 데이터를 모을 수 있어야 한다(accumulate). 그러나, 이 버퍼는 또한 서브 블록 쓰기 알고리즘들에 의해 사용되고 그러므로 이전 알고리즘 부하보다 더 작은 변화들이 이루어진다.
컨트롤러 로직 및 소프트웨어:
실시 예에 따라, 통합 프로세스는 컨트롤러에 의해 관리되어야 하고 그리고, 현재 쓰기 메커니즘들(mechanisms)에 이미 존재하는 블록 내 무효 페이지들의 메타 데이터 관리, 유효 페이지들을 읽기 위한 스케줄러, 쓰기 버퍼 관리 그리고 카피백과 쓰기 인커밍 페이지들을 타깃 블록에 할당하는 것을 포함한다. 서브 블록 쓰기에 대한 추가적인 부담은 문턱값 고려이다.
실시 예에 따라, 비트라인 단위 소거들을 위한 PRAM 어레이 전압들은 보통의(regular) 리셋(RESET) 프로세스들의 서브 그룹이고, 그리고 종래의 메모리 칩 내에서 구현될 수 있다.
실시 예에 따른 통합 프로세스의 멀티 레벨 셀들로의 확장은 추가 수정들을 요구하지 않는다. 또한, 선택되지 않은 셀들에 대한 전력 강하 감소는 쓰기 방해를 감소시키므로, 실시 예에 따른 통합 프로세스는 데이터 신뢰성을 향상시키기 위해 다른 쓰기 알고리즘과 결합될 수 있다. 실시 예에 따른 통합 프로세스는 블록 사이즈가 증가함에 따라 더 많은 이득, 즉 더 낮은 전력을 달성하기 때문에 확장 가능하다(scalable). 부담은 실용적인 것으로 나타날 수 있고, 그리고 실시 예에 따른 알고리즘이 이전 서브 블록 쓰기 방식의 위에서 구현되면 더 감소할 수 있다.
웨어 레벨링 배드 행 관리
실시 예에 따라 웨어 레벨링(wear leveling) 프로세스 동안, 라인(line) 데이터는 다른 라인으로 복사(copy)되고 다시 쓰여진다(re-write). 새로운 라인으로의 다시 쓰기 프로세스는 배드(bad) 행을 검출할 수 있고 그리고 웨어 레벨링 프로세스 내에서 배드 행 관리를 활성화할 수 있다.
웨어 레벨링
본 발명의 실시 예에 따른 웨어 레벨링(wear-leveling; WL) 알고리즘은 L2V(logical-to virtual) 어드레스 매핑(mapping)을 끊임없이 변경하고, 그리고 새로운 매핑에 따라 메모리 라인들을 다시 매핑(재매핑; re-mapping)함으로써 동작한다. 1회 전체 매핑을 변경하는 동작은 “라운드(round)”로 지칭될 수 있고, 그리고 새로운 매핑에 따라 하나의 메모리 라인을 다시 매핑하는 동작은 “단계(step)”로서 지칭될 수 있다. 새로운 매핑에 따라, 모든 메모리 라인들이 다시 매핑되고, 즉, 단계 당 하나씩, 하나의 라운드가 완료되면, 매핑이 변경되고, 그리고 새로운 라운드가 시작한다.
실시 예에 따른 매핑 함수는 두 가지 요소들을 포함한다: 첫 번째 고정된 요소, 그리고 첫 번째 (요소)에 대해 구성되는, 두 번째 변경 요소. 도 7에서 도시된 대로, 고정된 부분은 고정 2진 가역 행렬에 의해 2진 벡터로 여겨지는 논리 어드레스(LA)의 곱셈이고, 그리고 변경 부분은 이전 단계의 결과에 대한 고정된 오프셋의 라인들의 개수를 모듈로(modulo)로 하는 추가로써 이번에는 2진수로 표현되는 자연수로 본다. 각 라운드에서, 이 오프셋은 물리적 라인들의 개수를 모듈로 하나씩 증가한다. 결과는 가상 어드레스들(VA)의 이진 벡터이다.
실시 예에 따라, 배드 행 관리(bad row management; BRM) 알고리즘은 WL-알고리즘의 위에서 동작한다. BRM 알고리즘은 가상 어드레스들을 나쁘지 않은(배드가 아닌) 물리적 어드레스들로 매핑함으로써, 배드 블록들을 걸러낸다.
실시 예에 따라 WL-알고리즘을 인에이블(enable)하기 위해, 여분의(spare) 물리적 라인이 사용되어, 현재 업데이트되는 라인을 이동시킬 수 있는 자유로운(free) 라인이 항상 있고; 이 현재 업데이트되는 라인이 이동하면, 그것의 이전 위치는 그 다음에 다시 매핑되는 라인을 위한 타깃이고, 이러한 방식으로 반복된다. 그러나, 실시 예에 따라, WL-알고리즘 및 BRM-알고리즘은 결합하여 동작한다: BRM은 OP(over-provisioning)를 요구하기 때문에, 임의의 주어진 시간에서 일련의 여분의 라인들이 있고; 각 단계에서 WL 알고리즘은 새로이 이동된 라인에 대한 타깃으로서 이 일련의 여분의 라인들부터 마지막 라인을 사용하고; 그것의 이전 위치는 일련의 여분의 라인들로 들어가며; 이러한 방식으로 반복된다. 따라서, 일련의 여분의 라인들은 물리적 공간을 따라 움직이고, 그리고 각 라운드 내의 라인들이 도 8에서 도시된 대로, 내림차순으로 업데이트된다.
PRAM의 생애 동안, 새로운 라인들이 “배드”로 선언됨에 따라, 일련의 여분의 라인들의 사이즈가 감소한다. 오류 메커니즘은 온도 변경들로 인하여, 칩 회로와 라인 컨택(contact) 간의 물리적인 컨택이 끊어지게 되어, 라인 그 자체가 작동하지 않게 되는 것이다.
실시 예에 따라, 시스템 타이밍 정책에 따라 단계가 수행된다. 몇몇 가능한 정책들은 다음과 같다:
● 쓰기 동작들의 사전에 결정된(매개 변수화된) 횟수마다 하나의 단계를 실행.
● 시스템이 유휴(idle)이면 다수의 단계들을 실행.
● 상술한 두 가지의 혼합: 유휴 구간들을 이용하여 쓰기 동작들의 횟수와 실행된 단계들 간의 균형을 유지하여 그러한 구간들이 존재하면 단계들을 실행하나, 그러나 유휴 구간들이 없고 시스템이 균형으로부터 다소 벗어나면, 균형에 다시 도달할 때까지 단계 실행들을 개시.
실시 예에 따라, L2V 매핑은 다음과 같이 정의된다:
라운드(r)에서, 단계(s)를 실행하는 것은 주소
Figure pat00032
를 매핑하는 것을 포함한다(수학식 26):
Figure pat00033
여기서:
n은 논리 어드레스 공간 사이즈의 로그(밑 2)이고;
P는 순열 (가역) n X n 행렬이고;
2진 벡터를 그것이 나타내는 자연수로 변환하는데 본문에서 사용되는,
Figure pat00034
;
z는 여분 라인들의 현재 개수이고; 그리고
Figure pat00035
, 즉, c는 물리 어드레스
Figure pat00036
가 현재 라운드에서 업데이트 되지 않으면 0이고, 그렇지 않으면 1이다.
Figure pat00037
를 곱하는 것은 본문에서 형식적 이유들로 쓰여진 것이고, 이것은 하드웨어 내 임의의 동작에 대응하지 않는다. 하드웨어에서,
Figure pat00038
의 결과는
Figure pat00039
에 간단히 더해진다.
배드 행 관리
실시 예에 따라, L2V 모듈(module)의 출력은 BRM 알고리즘으로의 입력으로서 제공되고, BRM 알고리즘은 가상 어드레스들을 배드로 선언되지 않은 라인들의 집합으로 매핑함으로써 배드로 선언된 라인들을 필터링한다. 이것은, 특히, 가상 공간의 사이즈가 정확하게 배드가 아닌 라인들의 개수인 것을 의미한다.
라인들은 제조 시점에서, 또는 PRAM의 생애 동안에 배드로 선언될 수 있으나, 본 발명의 실시 예들은 두 경우들을 모두 유사하게 다룰 수 있다.
V2P(virtual-to-physical) 어드레스 매핑은 간단하다: 가상 어드레스(v)는 배드가 아닌 v번째 라인으로 매핑된다. 구성은 다음과 같다: 배드 라인들의 물리적 주소들의 정렬된 리스트가 (b 1, …, b l )이라 하고, 여기서 l은 배드 라인들의 현재 개수이다.
실시 예에 따른 BRM 알고리즘은 다음과 같이 배드 라인들의 집합으로부터 도출된 리스트 S=(s 1, …, s l )를 유지한다: s i 의 값은 b i 이하 물리적 어드레스로 매핑된 가장 큰 가상 주소이다. 공식으로는: s i = b i - i. 또한, 편의를 위해, s 0 = -1 로 정의한다.
그러면, 가상 어드레스(v)는 v+i로 매핑되고 여기서 is i < v 인 최대 값 s의 인덱스이다. 값 i는 이진 검색을 통해 찾을 수 있다.
도 9의 표는 V2P 매핑의 예시를 도시하고, 여기서 X들인 가상 어드레스들은 배드 라인들을 표현한다.
실시 예에 따라, 리스트 S는 다음과 같이 유지될 수 있다.
초기화:
1. s 0 ← -1
2. i = 1 에서 l까지
2.1. s i ← ∞
삽입:
입력: 새로운 배드 물리적 라인 b
1. 이진 검색을 통해 s j +j<b 인 최대 j를 찾음
// b-(j+1)을 s j +1로 입력:
2. i = l 에서 j+2까지
2.1. s i s i -1
3. s j +1 b - (j+1)
실시 예에 따라, BRM 알고리즘은 이진 검색을 기반으로 하므로, 지원되는 배드 블록들의 개수는 이진 검색이 지원할 수 있는 단계들의 개수에 의해 제한된다. 보다 큰 개수의 배드 라인들을 지원하기 위해, 실시 예에 따른 대체 접근법은 라인들보다 더 큰 “배드” 유닛들로 선언하는 것이다. 이들 유닛들이 2 q 라인들을 가지면, q 단계들은 이진 검색에서 저장된다. 이들 유닛들은 이전과 같이 유사하게 관리되나, 그러나 2 q 로 나뉘어진 사이즈의 공간보다, 그리고 유닛 내의 첫 번째 라인이 배드로 돌아서면 배드로서 유닛을 선언한다. 이전 매핑은 f로 표현되고, 매핑은 다음과 같이 수행된다:
입력: 가상 어드레스(v)
출력: 물리 어드레스(p)
변수: BRM 세분성(q)
1.
Figure pat00040
q
Figure pat00041
2. rv - q
3. pf(q) + r
시스템 구현들
본 발명의 실시 예들은 하드웨어, 소프트웨어, 펌웨어, 특수 목적의 프로세스들, 또한 이들의 조합의 다양한 형태들로 구현될 수 있음이 이해될 것이다. 일부 실시 예들에서, 본 발명은 ASIC(application-specific integrated circuit), 또는 FPGA(field programmable gate array)와 같은 하드웨어로 구현될 수 있다. 다른 실시 예에서, 본 발명은 컴퓨터 판독 가능한 프로그램 스토리지 장치 상에서 실질적으로 구현되는 응용 프로그램과 같은 소프트웨어로 구현될 수 있다. 응용 프로그램은 임의의 적합한 구조를 포함하는 머신(machine)에 업로드될 수 있고, 그리고 머신에 의해 실행될 수 있다.
도 10은 저전력을 소비하고 요구된 정확성을 유지하는 본 발명의 실시 예에 따라 쓰기 알고리즘을 선택적인 유효 페이지들 읽기 및 카피백과 결합하기 위한 방법을 구현하는 시스템의 블록도이다. 도 10을 참조하면, 본 발명을 구현하기 위한 컴퓨터 시스템(91)은 그 중에서도, CPU(central processing unit, 92), 메모리(93), 및 입력/출력(I/O) 인터페이스(94)를 포함할 수 있다. 컴퓨터 시스템(91)은 I/O 인터페이스(94)를 통해 디스플레이(95) 및 마우스 및 키보드와 같은 다양한 입력 장치들(96)에 일반적으로 연결된다. 지원 회로들은 캐시, 전원 장치들, 클럭 회로들, 및 통신 버스와 같은 회로들을 포함할 수 있다. 메모리(93)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브(disk drive), 테이프 드라이브(tape drive), 또는 그것들의 조합을 포함할 수 있다. 본 발명은 메모리(93)에 저장되고 그리고 CPU(92)에 의해 실행되는 루틴(routine, 97)으로서 구현되어 신호원(98)으로부터의 신호를 처리한다. 이와 같이, 컴퓨터 시스템(91)은 본 발명의 루틴(97)이 실행되면 특정한 목적의 컴퓨터 시스템이 되는 범용 컴퓨터 시스템이다. 대안으로, 전술한 바와 같이, 본 발명의 실시 예들은 CPU(92)와 신호 통신하는 ASIC 또는 FPGA(97)로서 구현되어 신호원(98)으로부터 신호를 처리할 수 있다.
컴퓨터 시스템(91)은 운영 체제 및 마이크로 명령어 코드를 또한 포함한다. 본문에서 설명된 다양한 프로세스들 및 기능들은 운영 체제를 통해 실행되는 마이크로 명령어 코드의 일부 또는 응용 프로그램의 일부 (또는 그것들의 조합) 일 수 있다. 또한, 다양한 다른 주변 장치들이 추가적인 데이터 저장 장치 및 프린트 장치와 같은 컴퓨터 플랫폼에 연결될 수 있다.
첨부된 도면들에 도시된 구성 시스템 구성 요소들 및 방법 단계들의 일부는 소프트웨어로 구현될 수 있으므로, 시스템 구성 요소들(또는 프로세스 단계들) 간의 실제 연결들은 본 발명이 프로그램된 방식에 따라 다를 수 있는 것이 더 이해되어야 한다. 본문에서 제공된 본 발명의 교시들을 고려하면, 당업자는 이들 및 유사한 구현들 또는 본 발명의 구성들을 고려할 수 있을 것이다.
본 발명이 예시적인 실시 예들을 참조하여 상세하게 설명되었지만, 당업자는 다양한 수정들 및 대체들이 첨부된 청구항들에 제시된 본 발명의 사상 및 범위로부터 벗어나지 않고 이루어질 수 있다는 것을 이해할 것이다.

Claims (10)

  1. RAM(random access memory)의 쓰기 동작을 수행하는 방법에 있어서:
    상기 RAM 내 가장 큰 개수의 무효 페이지들을 갖는 타깃 블록을 선택하는 단계;
    상기 무효 페이지들의 개수가 사전에 결정된 문턱값보다 크면, 상기 타깃 블록으로부터 유효 페이지들을 읽는 단계;
    상기 RAM 내 상기 타깃 블록의 비트라인 단위 블록 소거를 수행하는 단계; 및
    행 단위의 셋 동작에서 상기 소거된 타깃 블록으로 유효 데이터를 카피백(copy-back)하는 단계를 포함하되,
    상기 소거된 타깃 블록에 상기 유효 데이터가 쓰여지는 방법.
  2. 제 1 항에 있어서,
    인커밍 쓰기 요청을 수신하는 단계; 및
    행 단위의 셋 동작에서 상기 인커밍 쓰기 요청의 데이터를 상기 타깃 블록에 쓰는 단계를 더 포함하되,
    상기 인커밍 쓰기 요청의 상기 데이터는 상기 유효 데이터와 함께 상기 소거된 타깃 블록으로 쓰여지는 방법.
  3. 제 2 항에 있어서,
    상기 인커밍 쓰기 요청의 상기 데이터를 상기 RAM의 컨트롤러의 쓰기 버퍼에 위치시키는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 비트라인 단위 블록 소거를 수행하는 단계는 사전에 결정된 리셋 전압으로 각 비트라인을 순차적으로 작동시키는 단계를 포함하되, 다른 모든 비트라인들 및 워드라인들은 접지되는 방법.
  5. 제 1 항에 있어서,
    상기 무효 페이지들의 상기 개수가 상기 사전에 결정된 문턱값 이하이면, 쓰기 요청으로 수신된 데이터의 서브 블록 쓰기 동작을 수행하는 단계를 더 포함하는 방법.
  6. 제 1 항에 있어서,
    상기 RAM은 PRAM(phase change random-access memory), RRAM(resistive random-access memory), FRAM(ferroelectric random-access memory), 및 MRAM(magnetoresistive random-access memory)을 포함하는 그룹으로부터 선택된 하나인 방법.
  7. 제 1 항에 있어서,
    상기 비트라인 단위 블록 소거는 부분 블록 소거 또는 완전 블록 소거 중 하나인 방법.
  8. 제 1 항에 있어서,
    타깃 블록을 선택하고, 타깃 블록으로부터 유효 페이지들을 읽고, 상기 타깃 블록의 비트라인 단위 블록 소거를 수행하고, 그리고 상기 소거된 타깃 블록으로 유효 데이터를 카피백하는 상기 단계들은 자동(automatic) 리프레쉬(refresh) 동작으로 또는 유저에 의해 개시되는 동작으로 수행되는 방법.
  9. RAM(random access memory)의 쓰기 동작을 위한 방법 단계들을 수행하는 컴퓨터에 의해 실행되는 명령어들의 프로그램을 실질적으로 구현하는, 컴퓨터에 의해 판독 가능한 비일시적 프로그램 저장 장치에 있어서, 상기 방법은:
    상기 RAM 내 가장 큰 개수의 무효 페이지들을 갖는 타깃 블록을 선택하는 단계;
    상기 무효 페이지들의 개수가 사전에 결정된 문턱값보다 크면, 상기 타깃 블록으로부터 유효 페이지들을 읽는 단계; 및
    상기 RAM 내 상기 타깃 블록의 비트라인 단위 블록 소거를 수행하는 단계를 포함하되,
    상기 비트라인 단위 블록 소거를 수행하는 단계는 사전에 결정된 리셋 전압으로 각 비트라인을 순차적으로 작동시키는 단계를 포함하고 그리고 다른 모든 비트라인들 및 워드라인들은 접지되는 저장 장치.
  10. RAM(random access memory)의 쓰기 동작을 수행하는 방법은:
    상기 RAM 내 가장 큰 개수의 무효 페이지들을 갖는 타깃 블록을 선택하는 단계; 및
    상기 무효 페이지들의 개수가 사전에 결정된 문턱값 이하이면, 쓰기 요청으로 수신된 데이터의 서브 블록 쓰기 동작을 수행하는 단계를 포함하는 방법.
KR1020190072835A 2018-12-12 2019-06-19 Pram 블록들 내 카피백 및 쓰기의 통합을 위한 방법 KR20200073108A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/218,210 US10783970B2 (en) 2018-12-12 2018-12-12 Consolidation of copy-back and write in PRAM blocks
US16/218,210 2018-12-12

Publications (1)

Publication Number Publication Date
KR20200073108A true KR20200073108A (ko) 2020-06-23

Family

ID=71072876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190072835A KR20200073108A (ko) 2018-12-12 2019-06-19 Pram 블록들 내 카피백 및 쓰기의 통합을 위한 방법

Country Status (2)

Country Link
US (1) US10783970B2 (ko)
KR (1) KR20200073108A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112802530B (zh) * 2021-01-12 2023-11-21 成都佰维存储科技有限公司 Nand测试方法、装置、可读存储介质及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160008365A (ko) * 2014-07-14 2016-01-22 삼성전자주식회사 저장 매체, 메모리 시스템 및 메모리 시스템에서의 저장 영역 관리 방법
KR102231441B1 (ko) * 2014-12-17 2021-03-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Also Published As

Publication number Publication date
US10783970B2 (en) 2020-09-22
US20200194080A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
US9952766B2 (en) Memory system, including memory device capable of overwrite operation, and method of operating the memory system
US11262939B2 (en) Memory system, memory controller, and operation method
KR20220005111A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US20220130438A1 (en) Memory system and operating method thereof
KR20220013661A (ko) 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법
US11301174B2 (en) Memory system, memory controller and method for operating memory system
KR20210101785A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20210079549A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
KR20210004503A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20210130341A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR102599046B1 (ko) 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템
KR20200073108A (ko) Pram 블록들 내 카피백 및 쓰기의 통합을 위한 방법
US11775221B2 (en) Memory system, memory controller, and method for operating same
KR20210041233A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20210079552A (ko) 메모리 시스템 및 메모리 컨트롤러
KR20210012123A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR102341698B1 (ko) 메모리 동작을 위한 전용 명령
KR20230049858A (ko) 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
KR20220025405A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20220079264A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20220068535A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210028335A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11507509B2 (en) Memory system, memory controller and method for operating memory system for determining whether to perform direct write based on reference write size
US20240004566A1 (en) Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system
KR20230050719A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination