KR102474288B1 - 쓰기 간섭 문제를 완화하는 상변화 메모리 모듈 - Google Patents
쓰기 간섭 문제를 완화하는 상변화 메모리 모듈 Download PDFInfo
- Publication number
- KR102474288B1 KR102474288B1 KR1020210042919A KR20210042919A KR102474288B1 KR 102474288 B1 KR102474288 B1 KR 102474288B1 KR 1020210042919 A KR1020210042919 A KR 1020210042919A KR 20210042919 A KR20210042919 A KR 20210042919A KR 102474288 B1 KR102474288 B1 KR 102474288B1
- Authority
- KR
- South Korea
- Prior art keywords
- main table
- wde
- change memory
- phase change
- command
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0004—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0026—Bit-line or column circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0028—Word-line or row circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0064—Verifying circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
- G11C2013/0047—Read destroying or disturbing the data
Landscapes
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 상변화 메모리 모듈에 관한 것으로서, 비트라인 및 워드 라인을 포함하는 상변화 메모리 장치와, 상기 상변화 메모리 장치의 동작과 관련된 커맨드를 출력하는 메모리 제어부 및 상기 메모리 제어부와 상기 상변화 메모리 장치 사이에 위치하여, 상기 메모리 제어부로부터 출력된 커맨드의 상태 전이 특성에 근거하여 재쓰기(rewrite) 작업을 수행하는 간섭완화부를 포함하는 것을 특징으로 한다.
Description
본 발명은 상변화 메모리 모듈에 관한 것이다.
고성능 컴퓨팅을 지원하기위한 서버 시스템의 기술 확장 및 스토리지 용량에 대한 수요가 증가함에 따라 상변화 메모리(Phase-Change Memory, PCM)은 이러한 요구 사항을 충족하는 차세대 비 휘발성 메모리로 주목을 받고 있다.
그러나, 쓰기 방해 오류(Write Disturbance Error, WDE)는 PCM의 일반 상용화를 방해하는 심각한 신뢰성 문제로 나타난다. 이 WDE는 열 방출로 인해 기록된 셀의 인접 셀에서 발생한다.
WDE 방지를 위한 이전 연구는 쓰기 캐시 또는 검증 후 수정을 기반으로 하지만 상당한 영역 오버 헤드와 성능 저하로 인해 고성능 컴퓨팅에 적합하지 않다. 따라서 성능 오버 헤드를 최소화하려면 주문형 수정(On-demand Correction)이 필요하다.
PCM (Phase-change memory)은 기존 DRAM 기반의 메인 메모리 시스템을 대체하거나 DRAM과 스토리지 사이에 새로운 스토리 지급 메모리 레이어를 도입하기위한 차세대 비휘발성 메모리(Non-Volatile Memory, NVM) 장치로 주목 받고 있다. 최근 NVM을 고속 스토리지로 활용하거나 사용자 수준 애플리케이션에서 상호 교환적으로 확장된 메인 메모리로 활용하기 위해 소프트웨어 정의 메모리가 제안되었다.
반면에 인-메모리 데이터베이스의 애플리케이션은 데이터를 지속적 메모리에서 더 낮은 대기 시간으로 유지해야하는 문제가 있다. PCM은 이러한 문제를 해결하기 위한 적합한 후보로 제안된다.
또한, PCM 기반 제품은 성능 평가 및 적합한 애플리케이션 탐색을 위해 다양한 환경에서 테스트되었다. 따라서 PCM 관련 기술을 활용하고 강화하는 것은 향후 저지연 및 대규모 메모리 시스템을 달성하는데 중요하다.
PCM은 매력적인 특성을 가지고 있지만 DRAM에 비해 셀 신뢰성이 낮기 때문에 상용화가 충분히 진행되지 않았다. 특히, PCM에는 셀 내구성, 저항 드리프트 및 읽기/쓰기 방해와 같은 여러 종류의 신뢰성 문제가 있다.
쓰기 방해 오류 (WDE)는 대규모 상용화를 지연시키는 주요 문제 중 하나다. WDE는 DRAM 장치의 행 해머와 유사한 인접 셀의 간섭 문제로 정의된다. 그러나, WDE는 DRAM 행 해머와 달리 리셋 중인 셀 근처의 유휴 셀에서 발생하며, 유휴 셀의 상태를 변경하고 잘못된 값을 읽는 문제이다.
또한 인 메모리 데이터베이스와 같이 널리 사용되는 애플리케이션은 캐시 라인 플러시 명령을 많이 사용하는 NVM에 데이터를 직접 저장한다. 이러한 종류의 응용 프로그램은 PCM에서 빈번한 쓰기 작업을 발생시켜 셀이 WDE에 취약하게 만든다. 이전에는 DIN, 지연 수정 및 ADAM과 같은 WDE를 완화하기위한 기존 기술이 VnC (검증 및 수정)를 기반으로 구축되어 성능이 크게 저하되고 결과적으로 고성능 컴퓨팅 플랫폼의 구현을 방해한다.
한편, 쓰기 캐시 기반 방법 인 WDE 용 솔루션은 시스템 충돌 또는 오류 발생시 데이터 플러시(Data Flush)에 필요한 슈퍼 커패시터의 크기 제한을 거의 고려하지 않는다(상용 장치의 경우 최대 100us 유지 시간).
이러한 단점 (즉, 성능 저하 및 추가 하드웨어 리소스)을 피하기 위해, 본 발명에서는 저렴한 모듈 내 쓰기 방해 장벽 (IMDB)을 제안한다.
종래 기술은 특정 확률에 대한 WDE를 발생시키는 확률 기반 WDE 트리거 모델을 기반으로 한다. 그러나 최근에는 셀이 특정 시간 동안 RESET 작업에 노출될 때 WDE가 발생되는 것이 발견되었으므로, 본 발명에서는 종래와 달리 1-to-0 비트 플립 수 (즉, RESET 수)를 기록하며, 이에 의해 대부분의 WDE 취약 데이터는 1-to-0 비트 플립이 방해 한계에 도달하기 직전에 다시 쓸 수 있다.
대부분의 데이터는 SRAM 기반 테이블에서 더 많은 쓰기 주소를 관리하기 위해 기록되는 것이 아니라 추가 하드웨어를 최소화하기 위해 배리어 버퍼라는 상위 계층의 두 번째 테이블을 제외하고 시스템 장애에 필요한 더 작은 슈퍼 커패시터 영역에도 기록된다. 한편, 대체 정책이 단지 더 적은 수의 1 대 0 플립을 보유한 항목을 퇴거 후보로 간주하면 시간적 지역성을 간과할 것이다.
본 발명의 기술적 과제는 쓰기 간섭 문제를 완화할 수 있는 상변화 메모리 모듈을 제공하는 것이다.
구체적으로, 본 발명의 과제는 상변화 메모리(PRAM)의 쓰기 간섭 문제(write disturbance error, WDE)를 해결하기 위한 것으로서, 데이터 패턴을 인코딩하거나 에러 발생 여부를 읽기 동작 때마다 확인하는 종래기술과 다르게, 쓰기 간섭 발생 임계치(Write Disturbance Error Limitation Number)를 이용하여 간섭에 취약한 주소들을 예측하고, 해당 주소에 할당된 데이터의 상태를 복원시키는 것을 특징으로 한다.
상기와 같은 본 발명의 기술적 과제를 해결하기 위해서, 본 발명에 따른 상변화 메모리 모듈은, 비트라인 및 워드 라인을 포함하는 상변화 메모리 장치와, 상기 상변화 메모리 장치의 동작과 관련된 커맨드를 출력하는 메모리 제어부 및 상기 메모리 제어부와 상기 상변화 메모리 장치 사이에 위치하여, 상기 메모리 제어부로부터 출력된 커맨드의 상태 전이 특성에 근거하여 재쓰기(rewrite) 작업을 수행하는 간섭완화부를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 종래 기술에 비해 눈에 띄는 속도 저하 및 추가 에너지 소비없이 WDE를 크게 감소시킬 수 있는 장점이 있다.
또한, 본 발명에서 제안하는 상변화 메모리 모듈에 따르면, 다른 셀에 WDE를 유발할 수 있는 불충분하게 구운 주소(Baked Address)를 쉽게 제거할 수 있다.
실험 결과, 제안된 방법은 ADAM, lazy correction, SIWC-entry에 비해 WDE를 각각 1218 배, 439 배, 202 배 감소시켰으며 속도 저하는 무시할 수 있는 수준이었다.
특히 본 발명에 따르면, WDE를 완화하기 위해 2 계층 SRAM이 지원하는 저렴한 주문형 재작성 방법의 구현이 가능하다. 이는 WDE를 줄이기 위해보다 실용적인 WDE 트리거 모델을 기반으로 한 주문형 접근 방식의 첫 번째 시도이다.
도 1은 본 발명의 일 실시예에 따른 상변화 메모리 모듈의 구성요소를 나타낸 블록도이다.
도 2는 본 발명에 따른 상변화 메모리 모듈의 제어방법을 나타낸 흐름도이다.
도 3은 셀 어레이의 WDE를 나타낸 개념도이다.
도 4는 본 발명에 따른 상변화 메모리 시스템의 아키텍쳐를 나타내는 개념도이다.
도 5는 본 발명에 따른 IMDB의 아키텍쳐를 나타내는 개념도이다.
도 6은 어드레스 수에 따라 SRAM의 필요 용량을 나타낸 그래프이다.
도 7은 공격을 받고 있는 메인 테이블의 예시를 나타낸 개념도이다.
도 8은 CACTI에서 추출한 다중 읽기 포트가 있는 256-엔트리 SRAM의 에너지, 대기 시간 및 면적을 나타낸 그래프이다.
도 9는 32 개의 읽기 포트가 있는 AppLE을 나타낸 개념도이다.
도 10은 IMDB의 동작을 나타낸 개념도이다.
도 11은 서로 다른 교체정책에 따른 성능을 나타낸 그래프이다.
도 12는 시뮬레이션 구성을 나타낸 표이다.
도 13은 워크로드 정보를 나타낸 표이다.
도 14는 메인 테이블에서 서로 다른 수의 엔트리로 정규화된 WDE를 나타낸 그래프이다.
도 15는 메인 테이블의 항목 수에 따른 평균 정규화 된 WDE 및 SRAM 용량을 나타낸 그래프이다.
도 16은 시간 기본 조건으로 정규화 된 서로 다른 수의 엔트리 별 베리어 버퍼의 성능을 나타낸 그래프이다.
도 17은 AppLE의 다양한 읽기 포트 수에 따라 정규화 된 WDE를 나타낸 그래프이다.
도 18은 AppLE의 다양한 읽기 포트 수와 관련하여 속도 향상 및 에너지 소비를 나타낸 그래프이다.
도 19는 다른 스킴(Scheme)에 따라 정규화 된 WDE를 나타낸 그래프이다.
도 20은 간섭 완화에 따른 속도 향상을 나타낸 그래프이다.
도 21은 다양한 WDE 완화 방법과 관련하여 정규화된 에너지 소비를 나타낸 그래프이다.
도 2는 본 발명에 따른 상변화 메모리 모듈의 제어방법을 나타낸 흐름도이다.
도 3은 셀 어레이의 WDE를 나타낸 개념도이다.
도 4는 본 발명에 따른 상변화 메모리 시스템의 아키텍쳐를 나타내는 개념도이다.
도 5는 본 발명에 따른 IMDB의 아키텍쳐를 나타내는 개념도이다.
도 6은 어드레스 수에 따라 SRAM의 필요 용량을 나타낸 그래프이다.
도 7은 공격을 받고 있는 메인 테이블의 예시를 나타낸 개념도이다.
도 8은 CACTI에서 추출한 다중 읽기 포트가 있는 256-엔트리 SRAM의 에너지, 대기 시간 및 면적을 나타낸 그래프이다.
도 9는 32 개의 읽기 포트가 있는 AppLE을 나타낸 개념도이다.
도 10은 IMDB의 동작을 나타낸 개념도이다.
도 11은 서로 다른 교체정책에 따른 성능을 나타낸 그래프이다.
도 12는 시뮬레이션 구성을 나타낸 표이다.
도 13은 워크로드 정보를 나타낸 표이다.
도 14는 메인 테이블에서 서로 다른 수의 엔트리로 정규화된 WDE를 나타낸 그래프이다.
도 15는 메인 테이블의 항목 수에 따른 평균 정규화 된 WDE 및 SRAM 용량을 나타낸 그래프이다.
도 16은 시간 기본 조건으로 정규화 된 서로 다른 수의 엔트리 별 베리어 버퍼의 성능을 나타낸 그래프이다.
도 17은 AppLE의 다양한 읽기 포트 수에 따라 정규화 된 WDE를 나타낸 그래프이다.
도 18은 AppLE의 다양한 읽기 포트 수와 관련하여 속도 향상 및 에너지 소비를 나타낸 그래프이다.
도 19는 다른 스킴(Scheme)에 따라 정규화 된 WDE를 나타낸 그래프이다.
도 20은 간섭 완화에 따른 속도 향상을 나타낸 그래프이다.
도 21은 다양한 WDE 완화 방법과 관련하여 정규화된 에너지 소비를 나타낸 그래프이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 도면 및 실시예에 한정되는 것은 아니다. 또한, 도면에서 본 발명을 명확하게 설명하기 위하여 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.
이하에서는 먼저 상-변화 메모리(Phase-Change Memory, PCM)의 개념에 대해 설명한다.
도 3을 참조하면, PCM은 열로 셀을 프로그래밍하기 위해 두 가지 물질 상태, 즉 비정질 및 결정질을 이용하는 GST 물질로 구성된 저항성 메모리 장치다. 비정질 상태는 장치의 하단 전극을 섭씨 600도까지 단시간 가열하여 달성되며, 이에 따라 셀 저항이 증가한다 (즉, RESET). 반면에 결정 상태는 비정질 상태에 비해 섭씨 300도를 더 오래 공급함으로써 달성된다. PCM에 저장된 데이터는 셀에 감지 전압을 공급하여 동시에 감지할 수 있다. 따라서 읽기 지연 시간은 쓰기 지연 시간보다 훨씬 짧게 형성된다.
도 1에서는 본 발명의 일 실시예에 따른 상변화 메모리 모듈의 구성요소가 나타난다.
도 1에 도시된 것과 같이, 상변화 메모리 모듈(100)은, 비트라인 및 워드 라인을 포함하는 상변화 메모리 장치(103)와, 상변화 메모리 장치의 동작과 관련된 커맨드를 출력하는 메모리 제어부(101), 및 메모리 제어부와 상변화 메모리 장치 사이에 위치하여, 메모리 제어부로부터 출력된 커맨드의 상태 전이 특성에 근거하여 재쓰기(rewrite) 작업을 수행하는 간섭완화부(102) 중 적어도 하나를 포함할 수 있다.
도 2는 상변화 메모리 모듈의 동작 다이어그램이 도시된다.
도 2를 참조하면, 간섭완화부(102)는 메모리 제어부(101)로부터 출력되는 커맨드의 1-to-0 플립 수를 산출하고, 산출된 플립 수가 미리 설정된 한계치를 초과하는 경우, 상기 커맨드에 대해 재쓰기 작업을 수행할 수 있다.
참고로, 간섭완화부(102)는 이하에서 IMDB(In-Module Disturbance Barrier)로 정의될 수 있다.
구체적으로, 간섭완화부(102)는 재쓰기 작업 및 산출된 플립 수의 누적 값을 저장하기 위한 메인 테이블과, 재쓰기 작업 대상인 커맨드와 관련된 데이터를 저장하는 버퍼 테이블과, 메인테이블과 버퍼 테이블의 교체 정책에서 소비하는 싸이클을 최소화하기 위해, 복수의 테이블 엔트리를 하나의 그룹으로 샘플링하는 최저 수 추정기(Approximate Lowest Number Estimator, AppLE) 중 적어도 하나를 포함할 수 있다.
구체적으로, 메인 테이블에 포함된 각 엔트리의 데이터 구조는, 커맨드에 대응되는 주소를 저장하는 주소변수(Row & Col)와, 간섭완화부에 의해 재쓰기 작업이 수행될 때마다 미리 설정된 수치만큼 증가시키는 재쓰기제어변수(RewriteCntr)와, 1-to-0 플립의 누적 수를 기록하는 제로플립제어변수(ZeroFlipCntr)와, 제로플립제어변수 중 가장 큰 값에 대응되는 인덱스를 기록하는 맥스제로플립제어변수(MaxZFCidx) 중 적어도 하나를 포함하여 구성될 수 있다.
일 실시예에서, 간섭 완화부(102)는 일 엔트리의 제로플립제어변수가 미리 설정된 한계치를 초과하는 경우, 해당 엔트리에 대해 재쓰기 작업을 수행할 수 있다.
한편, 간섭완화부(102)는 일 커맨드에 대해 재쓰기 작업이 수행되는 경우, 상기 커맨드에 대응되는 상기 메인테이블 내의 데이터를 상기 버퍼테이블에 기록할 수 있다.
이때, 버퍼테이블에 포함된 엔트리의 데이터 구조는, 메인테이블의 주소변수를 옮겨 저장하는 주소변수와, 메인테이블의 재쓰기제어변수를 옮겨 저장하는 재쓰기제어변수와, 커맨드를 저장하는 커맨드변수와, 빈도제어변수(FreqCntr) 중 적어도 하나를 포함하여 구성될 수 있다.
아울러, 최저 수 추정기(AppLE)는 소정 개수의 메인 테이블 엔트리를 하나의 그룹으로 정의하고, 상기 정의된 그룹을 일 단위 싸이클로 적용하여 상기 메인 테이블에 대한 교체 정책(Replacement Policy)을 수행할 수 있다.
즉, 최저 수 추정기는 상기 정의된 그룹 별로 무작위의 오프셋을 설정하고, 설정된 오프셋에 근거하여 상기 정의된 그룹에 포함된 엔트리에 대해 읽기작업을 수행할 수 있다.
한편, 메인 테이블과 배리어 테이블은 두 세트의 정적 램(SRAM)으로 구성될 수 있다.
예를 들어, 메인 테이블은, 제1 정적 램과, 제2 정적 램으로 구성될 수 있다.
이때, 제1 정적 램은 메인 테이블의 엔트리를 인덱싱하고, 상기 메인 테이블의 주소변수로 할당되며, 상기 제2 정적 램은 상기 메인 테이블의 제로플립제어변수, 맥스제로플립제어변수, 재쓰기제어변수로 할당될 수 있다.
8GB 모듈의 PCM 장치에 대한 자세한 개요는 도 4(a)에 도시된다.
장치는 8 개의 하위 배열로 구성되며 각 하위 배열은 8 개의 MAT (매트마다 8K 워드 라인 및 4K 비트 라인)로 구성된다. 우선, 메인 워드 라인 드라이버는 각 뱅크에서 서브 어레이를 활성화하고, 행 주소는 4Kb 데이터를 전달하는 행을 선택하기 위해 활성화된 서브 어레이의 서브 워드 라인 드라이버 (SWD)에 일반적으로 공급된다. 그 후, 선택된 4Kb 데이터는 비트 라인 감지 증폭기 (BLSA)에 의해 감지되고 글로벌 비트 라인 (도 4(a)에서 음영 처리된 화살표)을 통해 전송된다. 각 열 멀티플렉서(MUX)는 전역 비트 라인에서 4Kb 데이터를 가져와 열 주소가 있는 전역 감지 증폭기 (S/A)에 8 비트 데이터를 출력한다.
출력 절차는 8 개의 연속된 비트 라인이 하나의 열을 구성함을 의미한다. 마지막으로, 도 4(b)와 같이 디바이스 당 8 개의 데이터 핀이 있다고 가정하면 8 워드 데이터가 버스트 모드로 데이터 버스로 전송되고, 도 4(b)와 같이 8 개의 디바이스가 단일 명령에 의해 대칭으로 구동되기 때문에 총 64B가 수행된다.
쓰기 작업의 경우 쓰기 드라이버(W/D)의 데이터가 차등 쓰기를 사용하여 셀 어레이에 다시 기록된다. 이 논문에서는 기둥이 서로 잘 절연되어 있다고 가정한다. 따라서 인접한 열에는 WDE가 발생하지 않는다. 그렇지 않으면 VnC가 채택될 때 각 쓰기 작업에 대해 4 개 이상의 읽기 작업이 필요하므로 기준 설계의 오버 헤드도 감소한다. 또한 PCM의 재질이 비트 라인과 겹치도록 구성되어 있기 때문에 WDE는 주로 동일한 비트 라인에 패터닝 된 인접 재질에서 발생한다.
이하, PCM의 쓰기 간섭 모델링에 대해 설명한다.
WDE는 비정질 상태에 있는 셀의 저항을 결정 상태로 이동시키는 장치의 대중화를 방해한다. 도 3에서 볼 수 있듯이 WDE는 RESET 동작 하에서 셀에 인접한 유휴 셀에서 발생한다. SET 작업 중에 발산되는 열은 RESET 작업 중 거의 절반이다. 따라서 프로그램 된 셀 옆에 있는 유휴 셀의 온도는 SET 아래에 있는 셀보다 높지만 RESET 아래에 있는 셀보다 낮다. 결과적으로 해당 유휴 셀에서 위상 전이가 발생할 수 있다. 한마디로, WDE는 저항이 높은 유휴 셀에서 발생할 가능성이 높으며, 인접 셀은 0으로 프로그래밍된다. WDE가 발생하는 시기를 알아내는 것도 시뮬레이터에서 WDE를 모델링하는 데 중요한다. 특정 확률에 대해 WDE를 발생시키는 확률 모델과는 달리, 이전 연구에서는 최근에 많은 쓰기 작업이 누적되어 WDE가 발생되는 것이 발견되었다. 특히, WDE는 셀이 상대적으로 높은 온도에 지속적으로 노출될 때 발생한다. 따라서 유휴 셀 주변의 셀이 일정 횟수 동안 RESET 상태가 되면 해당 유휴 셀은 교란 가능성이 높다.
한편, 본 발명에서는 설명의 편의를 위해, 방해 제한 수는 1K (즉, 셀이 이웃에서 1K 수의 1 대 0 플립에 노출될 때 WDE가 발생함)라고 가정한다.
참고로, PCM에서 WDE를 줄이기위한 다양한 연구가 진행되고 있다.
먼저, VnC는 WDE를 방지하는 가장 순진하고 엄격한 방법이다. 검증을 위해 데이터를 쓰기 전에 두 개의 이웃 데이터를 읽는다. 그 후 데이터를 쓴 후 데이터를 다시 읽고 WDE가 발생하면 수정이 수행된다. 효과적인 WDE 완화 방법이지만 각 쓰기 작업 (수정 포함)에 대해 4 개의 추가 읽기 작업으로 인해 상당한 성능 오버 헤드가 발생한다.
종래 기술에서 지연 보정은 ECP (Error Correction Pointer) 칩 위에 구축되어 방해된 셀의 위치가 ECP에 일시적으로 저장된다. 따라서 ECP가 초 고밀도 PCM 모듈 (SD-PCM) 내에서 가득 차게 될 때까지 수정을 가능한 한 늦게 연기할 수 있다. 그러나 일반 장치보다 더 큰 공정 기술을 가진 하나의 추가 장치가 필요하다. VnC 기반 접근 방식은 상당한 성능 오버 헤드를 발생시키기 때문에 데이터 인코딩을 활용하여 WDE 취약 패턴을 줄이기위한 몇 가지 방법이 제안되었다. 따라서 VnC가 더 적거나 전혀 필요하지 않는다.
또 다른 종래 방법인 DIN은 압축된 캐시 라인에서 연속적인 0을 "01"또는 "10"패턴으로 인코딩하는 코드북을 제안한다. 따라서 가능한 한 방해에 취약한 패턴을 제거할 수 있다. 그러나 인코딩 된 데이터는 캐시 라인의 길이 범위 (즉, 512 비트)에 있어야한다. 그렇지 않으면 VnC 방식으로 폴백해야 하므로 성능이 크게 저하된다.
또 다른 종래 방법인 MinWD는 특별한 시프트 연산을 통해 쓰기 데이터를 3 개의 후보로 인코딩하고 후보 중에서 가장 공격적인 인코딩 형식을 선택한다. 그러나 인코딩 방법은 일반적으로 다중 비트 오류 수정 코드에 의해 지원되어야 하는데, 이는 서버 측과 달리 일반적인 클라이언트 노드에서는 감당할 수 없다.
또 다른 종래 방법인 ADAM은 FPC (Frequent-pattern Compression)로 캐시 라인을 압축하고 라인을 좌우로 번갈아 가며 정렬한다. 따라서 유효한 데이터 비트를 보유한 인접 셀이 크게 낮아진다. 그러나 압축된 단어의 길이가 원래 데이터 길이의 50 %보다 길면 WDE에 여전히 취약한다. 데이터 캐시는 시스템의 처리량을 향상시키는 데 사용되었다. 그러나 자주 쓰는 데이터를 SRAM과 같은, 보다 안정적인 휘발성 영역에 일시적으로 저장하여 WDE를 줄이는데도 활용할 수 있다.
또 다른 종래 방법인 SIWC는 WDE를 줄이기 위해 비트 플립을 흡수하기 위해 쓰기 캐시를 활용한다. 확률 적 방법 인 동전 던지기를 사용하여 쓰기 캐시에서 데이터를 제거하고 특정 확률로 새 데이터를 삽입한다. WDE를 쉽게 유발할 수 있는 대부분의 데이터는 쓰기 캐시에 저장되므로 WDE의 희생자는 안전 해진다. 그러나이 방법은 더 높은 적중률을 얻기 위해 수 메가 바이트의 휘발성 메모리를 도입한다. 또한 쓰기 캐시가 메모리 모듈에 내장되어 있더라도 휘발성 영역이 커짐에 따라 시스템 장애시 데이터 플러시를 위한 슈퍼 커패시터를 확장해야 한다. 일반적으로 상용 NVDIMM은 휘발성 데이터가 100us 이내에서 플러시되어야 함을 보장한다 [20]. 따라서, 쓰기 캐시 크기는 방해에 취약한 쓰기 패턴을 충분히 활용하면서 보다 실용적인 값으로 줄여야 한다. 더욱이, WDE는 셀이 특정 시간 동안 RESET에 노출될 때 발생할 가능성이 있다고 보고되었다. 따라서 이 정보를 사용하는 것은 WDE를 크게 줄이는 데 중요한다.
이하에서는 본 발명에 따른 인-모듈 간섭 배리어(IN-MODULE DISTURBANCE BARRIER, IMDB)에 대해 설명한다.
먼저, IMDB의 개략적인 시스템은 이하와 같다.
도 4(b)는 NVM 명령이 프로세서의 통합 메모리 컨트롤러 (iMC)에서 발송되는 전체 시스템 레이아웃을 보여준다. DIMM 기반 PCM 모듈의 경우 읽기 대기열과 쓰기 대기열로 구성된 온 -DIMM 미디어 컨트롤러이다. 스케줄러는 명령을 예약하고 미디어의 적절한 뱅크에 명령을 할당하는 데 사용된다. DRAM 캐시는 주소 간접 테이블을 저장하는 데 사용된다.
본 발명에서 제안된 모듈 IMDB는 미디어 컨트롤러와 PCM 사이에 있다. 여기에는 메인 테이블, 배리어 버퍼 및 두 테이블 간의 항목 마이그레이션을 제어하는 유한 상태 머신이 포함된다. 이 모듈에 있는 쓰기 명령의 데이터 플립 패턴은 VnC를 기반으로 하는 대신 WDE가 발생하기 전에 WDE 취약 주소 재 작성을 트리거하도록 관리된다. IMDB의 도입은 트랜잭션 중에 가변 지연을 유발한다. 그러나 프로세서의 iMC는 DDR-T 프로토콜을 통해 통신할 수 있으므로 상용 영구 메모리 제품에서와 같이 다양한 대기 시간을 허용한다.
도 5은 모든 뱅크에 할당된 IMDB의 아키텍처를 보여준다. 따라서 모든 IMDB는 더 높은 명령 처리 처리량과 구현 단순성을 위해 모든 뱅크를 통해 동시에 작동한다. IMDB는 메인 테이블과 배리어 버퍼라는 두 개의 테이블로 구성되며 이하에서 각 테이블의 기능을 설명한다.
먼저, IMDB의 메인 테이블은 일련의 SRAM으로 구현된다. 따라서 제어 로직을 통해 항목의 내용이 업데이트되는 한 번에 하나의 항목 만 읽거나 쓸 수 있다. 또한 슈퍼 커패시터에 소비되는 전력을 절약하기 위해 데이터가 메인 테이블에 저장되지 않는다. 특히, 서면 주소의 WDE 정도를 추정하기 위해 네 가지 주요 필드가 사용된다.
- Row & Col : 현재 메인 테이블에서 관리하고있는 뱅크의 행과 열 주소를 포함한다.
- ZeroFlipCntr : 8 개의 하위 카운터가 필드에 있으며, 각 하위 카운터는 1에서 0으로 비트 플립 수를 계산하고 64B 캐시 라인에서 각 64 비트 데이터를 관리한다.
- MaxZFCIdx : 항목을 읽은 후 제어 논리에서 업데이트되는 ZeroFlipCntr의 최대 하위 카운터를 나타낸다. ZeroFlipCntr의 최대 값과 다시 쓰기 작업의 임계 값을 즉시 비교하는 데 사용된다.
- RewriteCntr : 8 비트 카운터는 Row & Col 주소에 대한 다시 쓰기 작업의 빈도를 나타낸다.
한 번에 하나의 항목 만 액세스 할 수 있으므로 IMDB에서 리소스 경합을 고려해야한다. 이 문제는 제어 로직에 3 상태 유한 상태 머신, 즉 IDLE, HIT 및 MISS를 구축하여 해결되며, 이는 메인 테이블의 가용성을 나타낸다. 상태가 IDLE이 아닌 경우 IMDB에서 새 명령을 시작할 수 없다. 즉, 메인 테이블을 사용할 수 없다. 미디어 컨트롤러에서 IMDB 중 하나에 명령을 삽입하면 IMDB는 테이블에서 주소를 찾을 수 있는지 여부에 관계없이 두 가지 방식으로 작동한다.
- 주 테이블에서 주소가 발견되면 상태가 HIT로 전환된다. 한편, 새로 기록된 데이터와 이전에 기록된 데이터는 모두 제어 논리로 전달되고, 1 대 0 비트 플립의 수는 제어 논리의 전용 1 대 0 카운터에 의해 업데이트된다. 해당 ZeroFlipCntr에 누적된다. ZeroFlipCntr의 최대 값이 미리 정의된 임계 값을 초과하면 인접한 워드 라인에 대한 두 번의 다시 쓰기가 생성되어 미디어 컨트롤러의 쓰기 대기열로 전송된다. 한편 RewriteCntr의 값은 증가한다. 시스템 안정성이 중요하므로 재 작성 요청에 가장 높은 우선 순위가 부여된다.
- 메인 테이블에서 주소를 찾을 수없는 경우 상태를 MISS로 변환하는 동안 삽입이 필요하다. 이 연구에서는 확률 론적 삽입 방법을 활용한다. 본 발명에서는 자주 사용하지 않는 액세스를 확률 p로 필터링하여 SRAM에서 제거를 줄이다. 삽입이 필요한 경우이 백서에 정의된 대체 정책에 따라 피해자 (섹션 IV에 설명 됨)가 결정되므로 새 항목이 피해자 항목을 대체 할 수 있다.
또한 재작성 명령 생성 임계 값과 삽입 확률 p라는 두 개의 매개 변수를 결정해야한다. 첫째, 임계 값은 WDE 제한 번호에 따라 결정되어야 한다. 두 개의 워드 라인이 워드 라인을 방해할 수 있기 때문에 임계 값은 WDE 제한 수의 절반으로 결정된다. 이 연구에서는 1K WDE 제한 수를 가정하므로 임계 값 = 511이다. 따라서 각 ZeroFlipCntr의 비트 폭은 9가된다. 삽입 확률 p와 관련하여 큰 값은 빈번한 항목 제거를 발생시키는 반면, 작은 값은 워드 라인이 WDE 제한에 도달한 후에도 다시 쓰기 프로세스를 건너 뛸 수 있다. 이 백서에서 p는 다양한 실험에서 파생된 모든 벤치 마크에 대해 대부분의 악성 공격을 포착할 수 있으므로 1/128로 가정한다.
다음으로, 배리어 버퍼에 대해 설명한다.
상위 계층 테이블 인 배리어 버퍼는 주소를 저장하는 데 활용되며, 데이터는 도 5과 같이 1 대 0 비트 플립을 자주 경험했다. 읽기 요청의 경우 배리어 버퍼가이를 직접 제공할 수 있다. 마스터 쓰기 명령의 경우 주소가 배리어 버퍼에 도달하면 데이터가 배리어 버퍼에서 직접 업데이트된다. 그렇지 않으면 위에서 설명한대로 주소가 메인 테이블에 도달하면 메인 테이블의 정상 작동이 수행된다.
도 5에서 볼 수 있듯이 녹색 상자로 둘러싸인 항목은 주 테이블에서 1 대 0 플립에 자주 노출된다. 결과적으로 RewriteCntr이 증가할 때 무효화되고 배리어 버퍼로 승격된다 (즉, 메인 테이블에서 재 작성이 발생함). 배리어 버퍼는 메인 테이블에서 주소 및 RewriteCntr 정보를 상속한다. 배리어 버퍼가 가득 차지 않은 경우 승격된 항목을 배리어 버퍼의 빈 위치에 직접 배치할 수 있다. 반대로 승격된 항목은 그림에서 파란색 상자로 묶인 LFU (Least Frequent Used) 항목을 대체한다. 따라서 실제 온라인 탐지기(PAD)에서처럼 교체 정책에 FreqCntr이 필요하다.
반면에 LFU 항목의 데이터는 더티 데이터를 다시 쓰기 위해 미디어 컨트롤러로 다시 전송되고 LFU 항목의 정보는 승격된 항목이 있는 주 테이블의 항목으로 강등된다. 결과적으로 배리어 버퍼는 자주 뒤집힌 데이터만 저장한다. 따라서 WDE를 더 줄일 수 있다. 배리어 버퍼는 메인 테이블과 동시에 작동할 수 있으므로 대기 시간을 숨길 수 있다.
실제로 IMDB의 메인 테이블과 배리어 버퍼는 두 세트의 SRAM으로 구현된다. 메인 테이블에는 두 가지 유형의 SRAM이 사용된다. 우선, 듀얼 포트 콘텐츠 주소 지정 가능 메모리 기반 (CAM) SRAM이 테이블의 항목을 인덱싱하고 테이블의 주소가 있는지 확인하기 위해 Row & Col 필드로 할당된다. 반면, ZeroFlipCntr, MaxZFCIdx, RewriteCntr로 구성된 멀티 포트 SRAM은 컨텐츠 업데이트를위한 쓰기 포트 1 개와 제안된 대체 정책을 적용하기 위해 엔트리 정보를 한 번에 얻기위한 여러 읽기 포트를 가지고 있다. 따라서 읽기 포트의 수는 테이블의 항목 수와 동일한다. 그러나 다음 하위 섹션에서는 AppLE을 채택하여 읽기 포트 수를 줄일 수 있음을 보여준다. 배리어 버퍼의 경우 이중 포트 CAM 기반 SRAM과 이중 포트 SRAM이 각각 Row & Col 및 data & RewriteCntr 및 FreqCntr에 할당된다. 섹션 VI-G3에 표시된 것처럼 배리어 버퍼의 적은 수의 항목만으로도 높은 WDE 완화 성능을 제공할 수 있으므로 에너지 소비 부담은 무시할 수 있다. 유효한 비트는 상태를 직접 조사하기위한 레지스터로만 구현된다는 점에 유의해야한다. 미디어 컨트롤러는 IMDB를 지원하도록 약간 수정되었다. 첫째, 이전에 작성된 데이터는 비트 플립 수를 계산하기 위해 미리 수집되어야 한다. 따라서 이전에 기록된 데이터를 가져오려면 사전 기록 읽기 작업이 필요하다. 컨트롤러는 이전 데이터를 전달하기 위해 하나 이상의 데이터 버퍼를 보유하고 준비된 명령과 준비되지 않은 명령 (여기서는 "준비됨"이라고 함)을 구별하기 위해 추가 비트가 필요하다. 사전 쓰기 읽기 요청은 쓰기 요청보다 먼저 생성된다. 쓰기 요청보다 우선 순위가 높지만 일반 읽기 요청보다 우선 순위가 낮다. 쓰기 큐가 가득 차면 미디어 컨트롤러의 쓰기 요청이 비워지기 때문에 PCM 미디어에서 데이터를 읽고 쓰는 사이에 긴 유휴 시간이 남아 있다. 또한 쓰기 요청의 병합 작업이 도입되었다. 다시 쓰기 작업을 동일한 주소의 기존 쓰기 요청과 병합한다. 다시 쓰기 작업은 데이터의 모든 비트를 완전히 쓰기 때문에 과도한 다시 쓰기는 인접 라인에서 연속적으로 WDE를 발생시킬 수 있다. 따라서 다시 쓰기 요청을 대기열의 기존 요청에 통합하면 WDE가 더 줄어들 수 있다.
종래기술로 소개된 SIWC에서는 각 PCM 뱅크에 대해 256x64B = 32KB의 SRAM이 필요하다 (256 개 주소가 관리되는 경우).
반면, 본 발명에 따른 방법에서는 메인 테이블 엔트리가 108바이트(=25b + 8b + 72b + 3b) 이고 배리어 버퍼 엔트리는 553바이트(= 64B + 25b + 8b + 8b)이다 (도 5 참조).
따라서 제안된 방법은 PCM 뱅크 당 메인 테이블에 256 Х 108b 3.4KB의 SRAM이 필요하며 배리어 버퍼는 PCM 뱅크 당 8 Х 553b0.6KB의 SRAM을 소비한다 (섹션 VI-E 참조). 결과적으로 (3.4KB + 0.6KB) Х 4-bank = 16KB의 SRAM은 PCM 1GB 당 2KB로 변환된다.
도 6는 SIWC와 제안된 방법 모두에 대해 SRAM의 관리 주소 수에 따른 SRAM의 용량을 보여준다. SRAM에서 256 개의 주소를 관리하는 경우 제안된 방법은 SIWC보다 4 배 작은 SRAM 영역을 소비한다. 또한 시스템 장애 시 데이터를 플러시하려면 더 많은 에너지를 슈퍼 커패시터에 저장해야 한다. SIWC는 제안된 방법 (즉, 256-entry/8-entry = 32)에 비해 슈퍼 커패시터에서 약 32 배 더 많은 에너지를 필요로 한다. 커패시터의 에너지 (E)와 면적 (A)의 관계가 E*?*이기 때문에 SIWC는 슈퍼 커패시터보다 32 배 더 많은 면적을 필요로 한다. 일부 PCM의 쓰기 지연 시간은 150ns이므로 SIWC에서와 같이 제약 조건의 256x150ns / 100us = 38.4 % 이상 (즉, 100us)이 필요하다. 따라서 제안된 방법은 종래 기술에 비해 더 실용적이다.
이하에서는 교체 정책(Replacement Policy)에 대해 설명한다.
장애에 취약한 패턴에 따라 제한된 테이블에서 WDE를 관리하는 대체 (또는 제거) 정책이 필요하다. 가장 최근에 사용된 (LRU) 정책은 제한된 데이터 구조에서 액세스 정보의 최신 성을 추적하는 대표적인 관리 정책이다. 그러나 WDE는 셀이 지나치게 뒤집힐 때 발생한다. 따라서 1 대 0 플립의 빈도를 관리하고 해당 정보에 따라 대체 항목을 선택해야한다. 요약하면, 취약한 주소 정보를 제거하기 위해 제한된 테이블에서 방해 취약 패턴의 지식을 활용하는 대체 정책이 필요하다. 이 연구에서는 ZeroFlipCntr 및 RewriteCntr을 활용하여 대체 정책을 정의한다. 전자는 현재 인접 워드 라인에 대한 간섭 정도를 나타내고 후자는 이전 섹션에서 간략하게 설명했듯이 역사적으로 인접 워드 라인에 대한 간섭 정도를 선언한다. 입력 명령이 해당 항목을 찾을 수 없는 경우 완전히 점유 된 메인 테이블의 새 항목을 요구하면 정책은 희생 항목을 선택할 준비가 된 것이다. ZeroFlipCntr의 최소 수는 현재 덜 긴급한 공격자이기 때문에 희생 후보로 메인 테이블에서 먼저 추출된다. 그러나 동일한 ZeroFlipCntr 값으로 인해 두 개 이상의 피해자 후보가 존재할 수 있다. WDE가 발생하는 공격성은 기록 정보 인 RewriteCntr에 따라 다를 수 있다. 따라서 최소 RewriteCntr 수를 보유한 항목이 최종적으로 대체 항목으로 선택된다.
제안된 대체 정책은 방해에 취약한 패턴, 즉 ZeroFlipCntr 및 RewriteCntr에 대한 지식을 잘 활용한다. 그러나 제안된 정책은 테이블 항목의 "준비"단계를 무시한다. 정책이 현재 취약성 (예: ZeroFlipCntr)을 우선 순위로 지정하여 긴급한 데이터를 필요에 따라 복원하기 때문에 최근에 삽입되었지만 불충분하게 구워진 항목은 메인 테이블에서 쉽게 제거할 수 있다. RewriteCntr에는 WDE에 대한 과거 지식이 포함되어 있지만 해당 항목이 새로 삽입된 후 다른 주소에 의해 불행히도 목록에서 밀어 낸 경우에는 유용하지 않는다.
도 7에서 볼 수 있듯이 0xBEEF 및 0xFADE는 최근에 삽입된 항목이다. 이 예시에서 0xFADE는 다행히도 0xBEEF보다 ZeroFlipCntr 값이 더 크며, 이 값은 런타임에서 동적으로 변하지 않는다. 따라서 새 입력 주소 0xDEAD는 정책에 따라 0xBEEF를 대체한다. 그러나 0xBEEF는 느리고 점진적인 1 대 0 비트 플립으로 WDE를 자주 발생시키는 경향이 있으며 이는 일종의 악의적 인 공격으로 보일 수 있다. 한마디로 eviction 술어는 더 이상 LRU 정책으로서 최신 성이 아니기 때문에 새로 삽입된 항목은 ZeroFlipCntr의 작은 값을 가질 수 있다. 따라서 이러한 항목은 IMDB 관리하에 악의적 인 액세스를 인식하지 않고 쉽게 새 주소로 대체된다. 따라서 대체 정책의 맨 위에 이러한 주소의 공격을 방지하기위한 추가 지식이 필요하다. 이 문제를 해결하기 위해이 문서에서는 항목이 조기 퇴거되지 않도록 사전 지식을 제공한다. 사전 지식은 각 데이터 블록에 있는 0의 수로 정의된다. 따라서 0 카운터는 1 대 0 카운터와 함께 IMDB의 제어 논리에 포함된다. 주소가 메인 테이블에 새로 삽입되면 필드에서 1 대 0 플립 수를 거의 기록하지 않고 바이어스 값으로 사전 지식이 ZeroFlipCntr에 기록된다.
이하에서는 최저 수 추정기(Lowest Number Estimator)에 대해 설명한다.
제거 정책은 모든 항목 중에서 희생 항목을 얻기 위해 다중 포트 SRAM 및 비교기 세트가 필요하다. 여기서 SRAM의 포트 수 또는 읽기 포트는 항목 수와 같다. 그러나 읽기 포트 수가 증가하면 지연 시간, 면적 및 에너지가 모두 커진다 (도 8 참조). 메인 테이블에 256 개의 항목이 있다고 가정하면 비교기는 대기 시간 (즉, 8주기)을 최소화하기 위해 트리 구조의 255 개의 이중 입력 비교기로 모델링 된다. 따라서 SRAM에 256 개의 읽기 포트가 필요하다. 다중 포트 SRAM은 이전 연구에서 다른 목적으로 채택되었지만, 수백 개의 읽기 포트가 있는 테이블에 수백 개의 항목이 있는 경우 지연 시간, 면적 및 에너지 모두에 대한 실제 설계에서는 실현 불가능한다.
도 8 (a)는 SRAM의 읽기 포트 수와 관련된 에너지 소비를 나타낸다. 32 개의 읽기 포트가 있으면 에너지 소비가 크게 감소한다. 또한 도 8 (b)는 SRAM의 대기 시간이 1ns 미만이고 32 개 포트에서 영역이 크게 줄어드는 것을 보여준다. DDR4의 일반적인 I / O 클럭 주파수는 800MHz보다 높기 때문에 본 백서에서는 읽기 포트의 최대 대상 수를 32 개로 설정했다. 본 백서에서는 대략적인 최저 수 추정기(AppLE)를 사용한 비교기 구조를 소개한다. 읽기 포트 수를 줄이기 위해 도 9과 같이 몇 개의 항목 (예 : 8 개 항목)을 그룹으로 바인딩하여 32 개의 그룹을 생성한다. 즉, 고비용을 확장하는 대신 32 개의 읽기 포트가 필요하다. AppLE을 채택하여 256 개의 읽기 포트. 0에서 7까지의 숫자가 각 그룹에서 무작위로 생성되어 읽기 포트의 각 주소 신호에 공급된다. 여기서 port-index Х 32의 값은 각 난수에 오프셋으로 추가된다. 결과적으로 5주기 대기 시간과 31 개의 이중 입력 하위 비교기가 있는 비교기 모듈을 얻을 수 있다. 이 방법론은 그룹 크기가 WDE 완화 성능을 결정하는 무작위 방법으로 간주할 수 있다.
이하에서는 상술한 모든 모듈이 단일 모듈로 바인딩된 예시 및 토이(Toy) 예시가 설명된다. 예시에서는 행 및 열 주소가 다음과 같다고 가정한다.
이 예에서 이웃에서 WDE를 발생시키는 대상 주소는 8비트이며, 0xBEEF로 가정한다. 여기서 행 주소와 열 주소는 각각 0xBE 및 0xEF이다. 쓰기 명령에 의해 2 바이트의 데이터가 전달되고 단일 ZeroFlipCntr이 모든 데이터를 관리한다. 메인 테이블과 배리어 버퍼는 모두 4 개의 항목으로 구성된다. 데이터 준비. 미디어 컨트롤러는 프로세서 iMC로부터 쓰기 명령을 수신하고, PCM 장치에 이미 저장된 데이터를 읽어 IMDB (1)에서 1 대 0 플립을 계산할 준비를 한다. 미디어 컨트롤러 (2)의 읽기 단계를 통해 이전 데이터가 도착하면 새 데이터와 이전 데이터와 함께 명령이 IMDB (3)에 발행된다. 메인 테이블 채우기. 이전 단계의 명령이 도착하면 제어 로직은 명령 주소를 행 및 열 주소로 분해하여 테이블에서 적중인지 실패인지 확인한다. 이 경우 배리어 버퍼와 메인 테이블 모두에서 누락이 발생한다. 그러나 주 테이블에는 입력 명령을 위한 빈 공간이 있다. 즉, 항목을 바꾸는 대신 항목을 확인하는 것만으로 명령 정보를 테이블에 직접 저장할 수 있다 (4). 섹션 IV-C에서 설명했듯이 쓰기 데이터의 0 개수는 ZeroFlipCntr에 기록되어 "예열"기간없이 테이블에서 조기 제거를 방지한다. 후속 명령이 동일한 주소에 액세스하면 1 대 0 플립 카운트가 계산되어 현재 ZeroFlipCntr (5)에 추가된다. 메인 테이블의 교체. 주 테이블이 가득 차고 다음 입력 명령에 사용할 수 있는 항목이 없으면 희생 후보를 선택하여 입력 명령 0xBEEF를위한 공간을 만들어야 한다. 그림에서 볼 수 있듯이 0xDEAD의 정보를 저장하는 항목은 AppLE (6)에서 계산된 모든 항목 중에서 ZeroFlipCntr 수가 가장 적다. 따라서 0xDEAD의 모든 정보는 한 번에 0xBEEF로 대체된다 (7). 0xBEEF에 대한 반복적 인 쓰기가 1 대 0 플립의 빈번한 횟수로 인해 ZeroFlipCntr이 임계 값에 도달하면 인접 라인 (즉, 0xBDEF 및 0xBFEF)에 대한 재 작성 명령이 생성되어 다시 전송된다. 미디어 컨트롤러 (8). 한편 배리어 버퍼는 희생 항목을 선택하고 메인 테이블로 강등한다. 또한, 퇴거 명령은 희생 항목을 기반으로 생성되어 미디어 컨트롤러 (9)로 다시 전송된다. 강등 항목과 재 작성 작업 (즉, 항목 승격)을 발생시키는 항목이 모두 테이블에서 읽혀진 후 메인 테이블과 배리어 버퍼에 서로 바꿔서 저장된다. 특히 승격 항목은 WDE가 발생하기 전에 방지하기 위해 쓰기 데이터와 함께 저장된다 (10).
도 12에서 볼 수 있듯이 PCM 시스템은 NVM 시뮬레이터 인 NVMain을 기반으로 구축되었다. 읽기 대기 시간은 100ns로 설정되고 SET 및 RESET의 쓰기 대기 시간은 각각 150ns 및 100ns로 설정되며 차등 쓰기 지원이 있다. 이 백서의 기준은 WDE 완화 방법을 채택하지 않는다. PCM 및 CAM 기반 SRAM의 액세스 당 에너지는 각각 NVSim 및 CACTI에서 얻는다. 또한, 둘 다 22nm 기술로 구성된다. CAM 기반 SRAM은 완전 연관 캐시로 구성된다는 점에 유의해야한다.
도 13은 마지막 수준 캐시의 작업 부하 및 관련 MPKI (Miss per 1000 Instruction)를 보여준다. 높고 낮은 MPKI로 구성된 SPEC CPU 2006의 일반 워크로드가 평가된다. 또한 128 개 사본 전체에 걸쳐 무작위 삽입 및 삭제를 수행하는 영구 데이터 구조가 구현된다. 이 백서에서는 이러한 데이터 구조를 합성하여 4 개의 영구 워크로드 ("pmix"로 접두어 붙임)를 생성하여 현실적인 인 메모리 데이터베이스 워크로드를 시뮬레이션한다. 영구 워크로드는 일반적으로 NVM 기반 메인 메모리 시스템에서 실행되기 때문이다. 시뮬레이션 시간을 줄이기 위해 추적 기반 시뮬레이션이 수행된다. 논의된 워크로드의 추적 파일은 도 12에 표시된 것처럼 프로세서 시뮬레이터 gem5에서 추출된다. 제안된 방법은 세 가지 대표적인 종래 기술인 지연 보정, ADAM 및 SIWC와 비교된다. SIWC-size는 SIWC에 대한 SRAM 바이트 수가 제안된 방법과 동일 함을 나타내며 SIWC-entry는 제안된 방법과 동일한 양의 항목을 보유한다. 마지막으로 지연 수정은 ECP 장치에 10 개의 오류가 있음을 나타낸다.
설계 매개 변수, 특히 메인 테이블의 항목 수 (Nmt), 배리어 버퍼의 항목 수 (Nb) 및 AppLE (Ng) 전용 읽기 포트 수 (예 : 그룹 크기)는 다음과 같은 경우에 중요한다. 제안된 방법에 대한 비용 효율적인 아키텍처를 실현하려고한다. 제안된 방법의 절충 함수는 다음의 수학식 1을 사용하여 정의할 수 있다. 여기서 W, A 및 S는 각각 WDE의 수, 면적 및 속도 향상이다.
이전 섹션에서 설명했듯이 SRAM이 소비하는 영역은 Ng = 32 (도 8 참조)에서 눈에 띄게 줄어들 수 있으며 PCM과 비교하여 Ng <32 인 경우 측정을 무시할 수 있다. 또한 제안된 방법을 사용할 때 플러시 시간 (즉, 100us)이 소비되지 않도록 배리어 버퍼의 최대 항목 수로 32를 정의한다. 결과적으로 수학식 1은 다음과 같이 수학식 2로 단순화될 수 있다.
상기 수학식 2에 따라, 이 섹션은 사전 지식의 효율성을 평가하고 주 테이블 (Nmt)의 적절한 크기도 결정한다. 그 후, 배리어 버퍼 (Nb)의 항목 수 및 AppLE (Ng)에 대한 그룹 크기에 대한 민감도 분석을 수행하여 비용 효율적인 매개 변수를 결정한다. 마지막으로 이러한 매개 변수를 적용하고 이전 연구의 매개 변수와 비교하여 제안된 방법의 성능을 보여준다.
도 11는 메인 테이블에 16 개의 항목이 있을 때 다른 대체 정책이 있는 WDE를 보여준다. 더 간단한 비교를 위해 배리어 버퍼가 적용되지 않는다는 점에 유의해야한다. 도 11 (a)에서 볼 수 있듯이 가장 최근에 사용된 (LRU) 체계가 메인 테이블의 정책으로 적용되어 평균 0.74의 정규화 된 WDE 값이 생성된다. 반대로 제안된 정책은 정규화 된 WDE가 0.54로 기존 대체 정책에 비해 27 % 더 안정적인 시스템을 나타낸다. LRU는 매우 높은 지역성 (예 : namd)을 가진 응용 프로그램에서 더 적은 WDE를 생성하지만 대부분의 일반적인 응용 프로그램에서는 훨씬 더 적은 WDE를 생성한다. 도 11 (b)는 목표 메서드의 실행 시간 동안 기준선의 실행 시간으로 정의되는 속도 향상을 보여준다. 두 방법 모두 유사한 성능 결과를 제공하며 제안된 방법은 LRU 정책보다 0.002 % 낮은 성능을 보이다. 이러한 관점에서 제안된 대체 정책은 WDE에 취약한 데이터를 효율적으로 다시 작성하므로 고성능 컴퓨팅을 손상시키지 않고 훨씬 적은 WDE를 생성한다.
도 14은 메인 테이블의 항목 수에 따라 정규화 된 WDE를 보여준다. 두 그림에서 볼 수 있듯이 WDE는 항목 수가 증가함에 따라 감소한다. 비교적 작은 테이블이 채택되면 전체 테이블에 새로 삽입된 항목이 자주 제거되므로 WDE 수가 기준선의 수를 초과한다. 또한, WDE는 도 14 (a)에 표시된 것처럼 사전 지식이 없는 2048 개 항목에서 급격히 감소한다. 반면에 256 개의 항목이 있는 사전 지식 방법은 도 14 (b)와 같이 사전 지식이 없는 방법과 2048 개의 항목이 있는 방법과 동일한 결과를 제공한다. 즉, 제안된 방법은 WDE 완화 성능의 효율성을 8 배 증가시킨다. 도 15은 평균 정규화 된 WDE와 메인 테이블에 필요한 용량을 보여준다. 그림에서 볼 수 있듯이 정규화 된 WDE는 256 개 항목에서 사전 지식이 없는 경우보다 95 % 더 낮다. 또한 메인 테이블의 용량은 512 개 항목에서 크게 증가한다. 따라서 성능과 영역 간의 균형을 고려하여 256 개의 항목을 메인 테이블의 적절한 항목 수로 선택할 수 있다. 요약하면 이 하위 섹션에서 메인 테이블의 항목 수(Nmt)는 256으로 고정된다.
1에서 0으로 자주 뒤집히는 데이터를 포함하는 작은 테이블 인 배리어 버퍼는 더 적은 WDE를 생성 할 것으로 예상된다. 도 16는 배리어 버퍼의 항목 수가 서로 다른 성능을 보여준다. 명확성을 위해 도 16의 두 그림의 결과는 메인 테이블이 256 개의 항목으로 구성되고 사전 지식 (이 하위 섹션에서만 시간적 기본 조건이라고 함)에 의해 지원되는 경우로 정규화된다. 또한이 수치는 시간 기준 조건에서 여전히 오류를 포함하는 벤치 마크의 WDE를 보여주는 반면, 다른 벤치 마크는 자유 WDE 상태를 유지한다. 도 16 (a)에서 대부분의 벤치 마크는 4 개 항목의 장벽 버퍼를 사용하여 훨씬 더 적은 수의 WDE를 산출한다. 그러나 gobmk의 경우 64 개 항목을 포함하는 배리어 버퍼가 적용될 때 WDE가 감소한다. 이것은 일부 주소가 매우 긴 쓰기 액세스 패턴을 가지고 있기 때문에 발생하며, 이는 배리어 버퍼 적용 여부에 관계없이 제안된 대체 정책의 문제가 아니다. 그러나 시간적 기본 조건에서 WDE는 기준선에 비해 90 % 감소한다. 또한 다음 하위 섹션에서는 약간 무작위 화 된 방법 인 AppLE이이 문제를 완화할 수 있음을 보여준다. 도 16 (b)는 위에서 언급 한 벤치 마크의 평균 정규화 된 WDE 및 속도 향상 값을 보여준다. 수치는 속도 향상이 모든 범위에서 현저하게 증가하지 않음을 보여준다. 따라서 S-1은 방정식 (2)에서 상수라고한다. 또한 배리어 버퍼의 용량은 Nb ≤16에 대한 메인 테이블의 최소 3 배이므로 메인 테이블에 비해 무시할 수 있다. 따라서 수학식 2에서 W를 분석하는 것은 비용 효율적인 아키텍처를 얻기에 충분하며, 도 16 (b)에서와 같이 정규화 된 WDE가 8 점에서 안정적으로 감소하기 때문에 Nb = 8이 절충점으로 선택된다.
이하에서는 AppLE의 민감도 분석에 대해 설명한다.
본 발명에서는 대체 정책을 위해 SRAM의 읽기 포트 수를 주로 줄이기 위해 AppLE이 제안되었다. 따라서 제안된 방법은 무작위 방식이므로 SRAM의 읽기 포트 수로 간주되는 그룹 크기에 대한 민감도 분석이 필요하다. 간단한 분석을 위해 배리어 버퍼는 이 평가에 적용되지 않는다. 또한 실제 시스템에서 이 값의 실현 가능성으로 인해 그룹 크기는 32부터 시작된다. 도 17 (a)는 읽기 포트 수가 다른 WDE의 절대 수를 나타낸다. 여기서 256 개의 읽기 포트는 AppLE이 시스템에 적용되지 않음을 의미한다. 도 17에서 볼 수 있듯이 WDE의 수는 대부분의 벤치 마크에서 더 적은 수의 읽기 포트로 안정화된다. 특히 장기간 쓰기 액세스 패턴을 포함하는 gobmk 벤치 마크는 무작위 방법을 적용하여 테이블에서 이러한 "까다로운 주소"가 제거되는 것을 방지하기 때문에 더 적은 수의 읽기 포트에서 더 적은 WDE를 제공한다. 그러나 WDE는 도 17 (b)에 표시된 것처럼 두 개의 읽기 포트에서 크게 증가한다. 완전 무작위 교체 정책 (즉, 읽기 포트 1 개)의 경우 WDE 수가 AppLE이 없는 경우보다 15 배 더 많으며 이는 완전히 무작위 교체 정책이 제안된 정책보다 신뢰성이 낮음을 나타낸다. 도 18는 다양한 읽기 포트 수에 따른 에너지 소비 및 속도 성능을 보여준다. 도 18 (a)에서 볼 수 있듯이 속도 성능은 포트 수에 따라 크게 달라지지 않는다. 따라서 여러 단계의 하위 비교기에서 사용하는 대기 시간은 성능에 거의 영향을 미치지 않는다. 또한 도 18 (b)는 읽기 포트 수가 줄어들수록 SRAM의 에너지 소비가 점차 감소함을 보여준다. 읽기 포트가 각각 32에서 16으로, 16에서 8로, 8에서 4로 감소하면 에너지가 20 %, 10 %, 6 % 감소한다. 이러한 관점에서 Ng = 4 또는 Ng = 8은이 연구에서 AppLE에 대한 적절한 설계 매개 변수가 될 수 있다.
상술한 바와 같이 AppLE의 그룹 크기와 메인 테이블의 항목 수 및 장벽 버퍼는 트레이드 오프 분석을 고려하여 적절하게 결정된다. 이하에서는 본 발명에서 제안된 방법을 종래 기술과 비교한다.
제안된 방법의 비용 효율적인 아키텍처는 메인 테이블의 256 개 항목, 배리어 버퍼의 8 개 항목, 8 개의 그룹 크기로 구성되며 그룹 크기 4 개는 IMDB로 표시된다. (e256b8g4)는 SRAM의 읽기 포트 수를 보다 적극적으로 줄이는 것과 관련이 있다.
도 19는 각 오류 완화 방법에 대한 정규화 된 WDE를 보여준다. SIWC-size는 모든 방법에 대해 가장 높은 정규화 된 WDE 값 0.7276을 나타낸다. 이는 SIWC가 항목 수에 크게 의존하는 캐시 기반 접근 방식이기 때문에 발생한다. 따라서 SIWC의 SRAM 용량이 제안된 방법과 동일 할 때 최악의 WDE 완화 성능이 나타난다. 반대로 SIWC가 제안된 방법에 사용된 동일한 수의 항목을 관리하면 정규화 된 WDE 값이 0.0885 (즉, SIWC 크기에 비해 87.84 % 감소)로 감소한다. 그러나 SRAM에서 512b / 108b = 4.74 배 더 많은 용량을 소비한다. ADAM의 경우 취약한 비트 수를 줄이기 위해 데이터를 압축하여 WDE를 현저하게 줄일 수 있다. 그럼에도 불구하고 압축비가 0.5를 초과하는 경우에만 유효한다. 따라서 평균 0.5341로 성능이 떨어진다. 결과적으로 지연 수정은 VnC 기반 접근 방식이므로 정규화 된 WDE 값을 0.1925만큼 낮게 만들어 속도를 희생하여 오류를 효과적으로 제거한다. 반면 IMDB (e256b8g4)는 WDE가 2.08E-3으로 크게 감소했음을 보여준다. 특히 ADAM, 지연 수정 및 SIWC 입력에 비해 각각 256 배, 93 배 및 43 배 더 적은 WDE가 있다. 또한 비용 효율적인 아키텍처, 즉 IMDB (e256b8g8)는 IMDB (e256b8g4)보다 84.04 % 적은 WDE를 제공한다. ADAM, 지연 수정 및 SIWC 입력보다 각각 1218 배, 439 배, 202 배 더 나은 WDE 완화 성능을 제공한다.
도 20은 기준과 비교한 각 방법의 속도 향상을 보여준다. 도 20에 따르면, 본 발명에 따른 방법을 사용할 경우, 고비용 ECP 장치를 활용하여 수정 횟수를 줄 임에도 불구하고 각 쓰기가 최소 4 회의 읽기 작업을 수행하기 때문에 지연 수정 속도가 0.36 배로 모든 방법 중에서 가장 낮음을 보여준다. 제안된 방법은 인접한 데이터의 두 인스턴스를 다시 작성해야 하지만 VnC와 마찬가지로 쓰기 작업 당 4 개의 읽기 작업이 발생하는 대신 온-디맨드 방식으로 다시 쓰기 작업이 수행된다. 따라서 제안된 방법은 지연 보정을 능가한다. 반면, ADAM의 속도 향상은 FPC의 오버 헤드로 인해 기준 방법에 비해 2 % 저하된다. SIWC 항목 및 SIWC 크기의 경우 쓰기 캐시는 데이터를 프로세서에 직접 제공할 수 있다. 따라서 최대 1.06 배와 1.04 배의 최고 속도를 제공한다. 이 연구의 목적은 오류 완화 방법을 채택하지 않은 기준선에 비해 성능 손실이 거의 없는 매우 안정적인 시스템을 제공하는 것이다. 이와 관련하여 제안된 방법은 평균 약 4 %의 속도 저하를 나타내며, 이는 사전 쓰기 읽기 작업으로 인해 기준선보다 약간 낮다. 또한 IMDB (e256b8g4)와 IMDB (e256b8g8) 간에는 성능 차이가 0.3 %에 불과하며, 이는 AppLE의 하위 비교기의 스테이지 수가 속도 성능에 큰 영향을 미치지 않음을 의미한다. 한편, 이전 방법에 비해 WDE가 훨씬 적다. SIWCentry가 약간 더 빠른 속도를 보여주지만 WDE 완화 성능은 제안된 방법보다 훨씬 나빠서 이전 하위 섹션에서 설명한 것처럼 시스템의 안정성이 낮다. 결과적으로 이러한 결과는 제안된 방법이 고성능 컴퓨팅을 지원할 수 있는 고 신뢰성 시스템에 적합하다는 것을 의미한다.
도 21은 시스템의 정규화 된 에너지 (예 : PCM + SRAM)를 나타낸다. 지연 수정은 VnC에서 발생하는 중복 작업으로 인해 기준선에 비해 2.18 배 더 많은 에너지를 소비한다. 이는 기준선보다 1.18 배 더 높은 ADAM보다 에너지 소비량이 45.87 % 더 많다. WDE를 완벽하게 제거한다는 사실에도 불구하고 지연 수정은 VnC가없는 방법보다 훨씬 느리고 더 많은 작업을 사용하므로 다른 방법보다 훨씬 더 많은 에너지를 소비한다. 한편, SIWCsize의 쓰기 캐시는 액세스가 많은 주소에 대한 쓰기 작업을 흡수한다. 영구 워크로드는 캐시 라인 플러시 명령으로 인해 상대적으로 높은 지역성 비율을 가지므로 쓰기 에너지 소비를 줄이다. 따라서 기준선에 비해 5 % 적은 에너지를 소비한다. 더욱이, 에너지는 SIWC-entry에 의해 선언된 대로 더 많은 수의 엔트리로 10.5 %까지 낮출 수 있다. 그러나 WDE 완화 성능은 도 19와 같이 우수하지 않는다. 제안된 방법은 SIWC보다 더 많은 에너지를 소비한다. IMDB (e256b8g8)는 SIWC 입력에 비해 9 % 더 높은 에너지 소비를 나타내지만, 이 결과는 주문형 재 작성 작업과 "작은"장벽 버퍼 (즉, 정규화 된 에너지는 0.9941)로 인해 기준선보다 여전히 0.59 % 낮다. 또한 VnC 기반 접근 방식 인 지연 수정에 비해 제안된 방법은 54.4 % 적은 에너지를 소비하면서 모든 오류를 거의 제거한다. 이러한 결과는 제안된 방법이 속도 나 에너지 효율성을 희생하지 않고 작은 영역 만 필요로 함을 보여준다.
본 발명에서는 PCM 모듈 내에서 WDE를 줄이는 주문형 테이블 기반 방법을 제안한다. 제안된 방법은 SRAM 테이블을 활용하여 쓰기 데이터의 변형을 관리하고, 이를 통해 취약한 주소를 다시 작성한다. 테이블 기반 방법에는 전용 교체 정책이 필요하며 쓰기 데이터의 0에 대한 사전 지식은 WDE 완화 성능을 향상시킬 수 있음을 선언한다. 그 후, AppLE은 제안된 정책에 의해 발생하는 SRAM의 읽기 포트 수를 효율적으로 축소하여 과부하 된 멀티 포트 SRAM에 의해 발생하는 영역 및 에너지 오버 헤드를 모두 줄이다. 또한 LRU 및 완전 무작위 대체 정책이 제안된 방법보다 덜 신뢰할 수 있음을 보여준다. 반면에, 소량의 SRAM은 추가 비트 플립을 흡수하여 시스템 장애에 필요한 수퍼 커패시터 부담을 덜어준다. 결과적으로 비용 효율적인 아키텍처를 얻기 위해 설계 매개 변수와 관련된 몇 가지 엄격한 민감도 분석이 수행된다. 분석에 따르면 제안된 작업은 ADAM, 지연 보정 및 SIWC 입력에 비해 WDE를 각각 1218 배, 439 배 및 202 배 줄이면서 작업 속도와 에너지 소비를 거의 유사한 수준으로 유지할 수 있음을 보여준다.
Claims (10)
- 비트라인 및 워드 라인을 포함하는 상변화 메모리 장치;
상기 상변화 메모리 장치의 동작과 관련된 커맨드를 출력하는 메모리 제어부; 및
상기 메모리 제어부와 상기 상변화 메모리 장치 사이에 위치하여, 상기 메모리 제어부로부터 출력된 커맨드의 1-to-0 플립 수를 산출하고, 산출된 플립 수가 미리 설정된 한계치를 초과하는 경우, 상기 커맨드에 대해 재쓰기(rewrite) 작업을 수행하는 간섭완화부를 포함하는 것을 특징으로 하는 상변화 메모리 모듈.
- 삭제
- 제 1 항에 있어서,
상기 간섭완화부는,
재쓰기 작업 및 산출된 플립 수의 누적 값을 저장하기 위한 메인 테이블과,
재쓰기 작업 대상인 커맨드와 관련된 데이터를 저장하는 버퍼 테이블과,
상기 메인테이블과 상기 버퍼 테이블의 교체 정책에서 소비하는 싸이클을 최소화하기 위해, 복수의 테이블 엔트리를 하나의 그룹으로 샘플링하는 최저 수 추정기(Approximate Lowest Number Estimator)를 포함하는 것을 특징으로 하는 상변화 메모리 모듈.
- 제 3 항에 있어서,
상기 메인 테이블에 포함된 각 엔트리의 데이터 구조는,
상기 커맨드에 대응되는 주소를 저장하는 주소변수(Row & Col)와,
상기 간섭완화부에 의해 재쓰기 작업이 수행될 때마다 미리 설정된 수치만큼 증가시키는 재쓰기제어변수(RewriteCntr)와,
1-to-0 플립의 누적 수를 기록하는 제로플립제어변수(ZeroFlipCntr)와,
상기 제로플립제어변수 중 가장 큰 값에 대응되는 인덱스를 기록하는 맥스제로플립제어변수(MaxZFCidx) 중 적어도 하나를 포함하여 구성되는 것을 특징으로 하는 상변화 메모리 모듈.
- 제 4 항에 있어서,
상기 간섭 완화부는,
상기 메인 테이블에 포함된 일 엔트리의 상기 제로플립제어변수가 상기 한계치를 초과하는 경우, 상기 일 엔트리에 대해 재쓰기 작업을 수행하는 것을 특징으로 하는 상변화 메모리 모듈.
- 제 4 항에 있어서,
상기 간섭완화부는,
상기 커맨드에 대해 재쓰기 작업이 수행되는 경우, 상기 커맨드에 대응되는 상기 메인테이블 내의 데이터를 상기 버퍼테이블에 기록하고,
상기 버퍼테이블에 포함된 엔트리의 데이터 구조는,
상기 메인테이블의 주소변수를 옮겨 저장하는 주소변수와,
상기 메인테이블의 재쓰기제어변수를 옮겨 저장하는 재쓰기제어변수와,
상기 커맨드를 저장하는 커맨드변수와,
빈도제어변수(FreqCntr) 중 적어도 하나를 포함하여 구성되는 것을 특징으로 하는 상변화 메모리 모듈.
- 제 3 항에 있어서,
상기 최저 수 추정기는,
소정 개수의 메인 테이블 엔트리를 하나의 그룹으로 정의하고,
상기 정의된 그룹을 일 단위 싸이클로 적용하여 상기 메인 테이블에 대한 교체 정책(Replacement Policy)을 수행하는 것을 특징으로 하는 상변화 메모리 모듈.
- 제 7 항에 있어서,
상기 최저 수 추정기는,
상기 정의된 그룹 별로 무작위의 오프셋을 설정하고,
설정된 오프셋에 근거하여 상기 정의된 그룹에 포함된 엔트리에 대해 읽기작업을 수행하는 것을 특징으로 하는 상변화 메모리 모듈.
- 삭제
- 제 8 항에 있어서,
상기 메인 테이블은,
제1 정적 램과, 제2 정적 램으로 구성되고,
상기 제1 정적 램은,
상기 메인 테이블의 엔트리를 인덱싱하고, 상기 메인 테이블의 주소변수로 할당되며,
상기 제2 정적 램은 상기 메인 테이블의 제로플립제어변수, 맥스제로플립제어변수, 재쓰기제어변수로 할당되는 것을 특징으로 하는 상변화 메모리 모듈.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210042919A KR102474288B1 (ko) | 2021-04-01 | 2021-04-01 | 쓰기 간섭 문제를 완화하는 상변화 메모리 모듈 |
US17/371,872 US11462266B1 (en) | 2021-04-01 | 2021-07-09 | Mitigating write disturbance errors of phase-change memory module |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210042919A KR102474288B1 (ko) | 2021-04-01 | 2021-04-01 | 쓰기 간섭 문제를 완화하는 상변화 메모리 모듈 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220136792A KR20220136792A (ko) | 2022-10-11 |
KR102474288B1 true KR102474288B1 (ko) | 2022-12-05 |
Family
ID=83448311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210042919A KR102474288B1 (ko) | 2021-04-01 | 2021-04-01 | 쓰기 간섭 문제를 완화하는 상변화 메모리 모듈 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11462266B1 (ko) |
KR (1) | KR102474288B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112565437B (zh) * | 2020-12-07 | 2021-11-19 | 浙江大学 | 一种面向跨界服务网络的服务缓存方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090201721A1 (en) * | 2008-02-11 | 2009-08-13 | Dae-Won Ha | Phase change memory device and write method thereof |
JP2010049792A (ja) | 2004-02-05 | 2010-03-04 | Renesas Technology Corp | 半導体装置 |
US20110242872A1 (en) | 2008-12-11 | 2011-10-06 | Hitachi, Ltd. | Semiconductor device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7692951B2 (en) * | 2007-06-12 | 2010-04-06 | Kabushiki Kaisha Toshiba | Resistance change memory device with a variable resistance element formed of a first and a second composite compound |
DE102009001008A1 (de) * | 2009-02-19 | 2010-08-26 | Evonik Degussa Gmbh | Reaktivextraktion von freien organischen Säuren aus deren Ammoniumsalzen |
-
2021
- 2021-04-01 KR KR1020210042919A patent/KR102474288B1/ko active IP Right Grant
- 2021-07-09 US US17/371,872 patent/US11462266B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010049792A (ja) | 2004-02-05 | 2010-03-04 | Renesas Technology Corp | 半導体装置 |
US20090201721A1 (en) * | 2008-02-11 | 2009-08-13 | Dae-Won Ha | Phase change memory device and write method thereof |
US20110242872A1 (en) | 2008-12-11 | 2011-10-06 | Hitachi, Ltd. | Semiconductor device |
Also Published As
Publication number | Publication date |
---|---|
US11462266B1 (en) | 2022-10-04 |
KR20220136792A (ko) | 2022-10-11 |
US20220319593A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109983536B (zh) | 响应标签匹配命令的存储电路 | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
US9767032B2 (en) | Systems and methods for cache endurance | |
CN106909515B (zh) | 面向混合主存的多核共享末级缓存管理方法及装置 | |
US9058870B2 (en) | Hash functions used to track variance parameters of resistance-based memory elements | |
CN111356992A (zh) | 用于预测涉及非顺序数据的多个读取命令的***和方法 | |
Xia et al. | A survey of phase change memory systems | |
Wei et al. | CBM: A cooperative buffer management for SSD | |
US10997080B1 (en) | Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address | |
US20220147279A1 (en) | Heat management solid-state data storage system | |
Lee et al. | Integration and boost of a read-modify-write module in phase change memory system | |
Margaglia et al. | Improving MLC flash performance and endurance with extended P/E cycles | |
US11016889B1 (en) | Storage device with enhanced time to ready performance | |
KR102474288B1 (ko) | 쓰기 간섭 문제를 완화하는 상변화 메모리 모듈 | |
Wang et al. | Decongest: Accelerating super-dense PCM under write disturbance by hot page remapping | |
KR20220065817A (ko) | 하이브리드 dimm의 전송 파이프라인에서의 데이터 의존도 관리 | |
Jang et al. | Data classification management with its interfacing structure for hybrid SLC/MLC PRAM main memory | |
Ware et al. | Architecting a hardware-managed hybrid DIMM optimized for cost/performance | |
Jin et al. | A group round robin based b-tree index storage scheme for flash memory devices | |
Raoufi et al. | EP-ORAM: Efficient NVM-Friendly Path Eviction for Ring ORAM in Hybrid Memory | |
CN114746848B (zh) | 用于存储装置的高速缓存架构 | |
이효근 | Mitigating Disturbance Errors and Enhancing RMW Performance for PCM | |
US20210405913A1 (en) | Host access tracking in a memory sub-system | |
Asadinia et al. | Inter-line level schemes for handling hard errors in pcms | |
Li et al. | A content-aware writing mechanism for reducing energy on non-volatile memory based embedded storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |