KR20150104147A - Pcm 기록 비대칭들을 이용한 기록 가속 - Google Patents

Pcm 기록 비대칭들을 이용한 기록 가속 Download PDF

Info

Publication number
KR20150104147A
KR20150104147A KR1020157021045A KR20157021045A KR20150104147A KR 20150104147 A KR20150104147 A KR 20150104147A KR 1020157021045 A KR1020157021045 A KR 1020157021045A KR 20157021045 A KR20157021045 A KR 20157021045A KR 20150104147 A KR20150104147 A KR 20150104147A
Authority
KR
South Korea
Prior art keywords
write
stage
bits
pcm
recording
Prior art date
Application number
KR1020157021045A
Other languages
English (en)
Other versions
KR102127616B1 (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 유니버시티 오브 메인 시스템 보드 오브 트러스티스
Publication of KR20150104147A publication Critical patent/KR20150104147A/ko
Application granted granted Critical
Publication of KR102127616B1 publication Critical patent/KR102127616B1/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
    • 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/0061Timing 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/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5642Multilevel memory with buffers, latches, registers at input or output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement

Abstract

PCM의 기록 성능을 개선하기 위해, 몇몇 실시예들에서, 개시된 기술은 여기서 2-스테이지 기록이라고 불리는 새로운 기록 방식을 제공하고, 2-스테이지 기록은 0 비트 및 1 비트를 기록의 속도 및 전력 비대칭들을 이용한다. PCM에 데이터 블록을 기록하는 것은 두 개의 분리된 스테이지들, 즉, 기록-0 스테이지 및 기록-1 스테이지로 분할된다. 전력 제약들을 위반하지 않고, 기록-0 스테이지 동안, 이러한 데이터 블록 내 모든 0 비트들은 가속된 속도로 PCM에 기록되고; 기록-1 스테이지 동안, 모든 1 비트들은 PCM에 기록되고, 더 많은 비트들이 병렬로 기록된다. 몇몇 실시예들에서, 개시된 기술은 PCM에 병렬로 기록될 수 있는 비트들의 수를 더욱 증가시킴으로써 기록-1 스테이지의 속도를 개선하기 위한 새로운 코딩 방식을 제공한다.

Description

PCM 기록 비대칭들을 이용한 기록 가속{EXPLOITING PCM WRITE ASYMMETRIES TO ACCELERATE WRITE}
본 발명은 미국 국립과학재단에 의해 인정된 1117032, 0916663, 0937988하에서 정부 지원에 의해 행해졌다. 미국 연방 정부는 본 발명에서 특정 권한들을 갖는다.
본 발명은 PCM 기록 비대칭을 이용하여 기록을 가속시키기 위한 것에 관한 것이다.
가까운 미래에, 엑사스케일 컴퓨팅은 오늘날 이용가능한 것보다 1000x 더 많은 메모리 용량을 예상할 것이다. 그러나, 오늘날의 DRAM 기술은 에너지 효율 및 트랜지스터 스케일링의 벽에 부딪치고 있다. 커패시터의 효율적인 전하 배치 및 제어, DRAM에서 신뢰할 수 있는 전하 감지와 같은 어려움들 때문에 22 ㎚를 넘는 고밀도 DRAM을 제조하는 것은 거대한 도전 과제이다. 또한, 이러한 큰 용량을 갖는 DRAM의 에너지 소비 및 열 소산은 심각한 문제이다. 현 세대의 기술에서, DRAM 전력 소비는 서버 에너지 소비의 40%에 도달할 수 있다. 사실상, DRAM의 유휴 전력 소비는 DRAM 전력 사용량의 40%보다 많이 차지한다. 또한, DRAM의 전력 누설은 그의 용량과 함께 증가하고 이러한 누설 전력은 그의 동적 전력만큼 많을 수 있다.
다행스럽게도, 상 변화 메모리(PCM)는 더 양호한 프로세스 크기 조정 및 더 적은 누설 전력을 갖는다. PCM 기술은 전류들의 레벨들을 변경함으로써 생성된 열에 응답하여 다양한 저항들을 나타내기 위해 Ge2Sb2Te5(GST) 재료 속성들을 변환할 수 있다. 또한, PCM은 더 적은 누설 전류를 소비하고 그의 비휘발성 속성 때문에 리프레시 동작들을 요구하지 않는다. 이들의 매력적인 속성들은 PCM을 가까운 미래에 엑사스케일 컴퓨팅을 위한 DRAM에 대한 양호한 대체물이 되게 한다.
그러나, PCM은 일반적으로 두 개의 주요 약점들: 느린 기록 성능 및 약한 기록 내구성을 갖는다. PCM 칩 회로는 종종 잡음 최소화 때문에 최대 순간 전력을 제한하고, 따라서, 동시에 기록될 수 있는 비트들의 수는 미리 규정된 상수 N으로 제한된다. N의 일반적인 값은 2, 4, 8, 및 16이다. 이러한 제약은 기록 유닛이라고 불리는 뱅크에 동시에 기록될 수 있는 바이트들의 수를 제한한다. 따라서, 64 바이트의 캐시 라인을 기록하는 것은 다수의 순차적으로 실행된 기록 유닛들을 필요로 하고, 이는 전체 기록 성능을 느리게 한다. 느린 기록 외에, PCM 셀은 약 108 내지 1010 기록 주기들을 견딜 수 있고 반면에 DRAM 셀은 1015 번 이상의 기록들을 지원할 수 있다.
본 발명의 목적은 PCM 기록 비대칭을 이용하여 기록을 가속시키기 위한 방법을 제공하는 것이다.
몇몇 실시예들에서 개시된 기술은 여기에 2-스테이지 기록이라고 불리는 새로운 PCM 기록 방식을 제공하고, 새로운 PCM 기록 방식은 0 비트들의 기록 동작들의 속도를 높이고 1 비트들을 기록하기 위한 병렬화 정도를 증가시키기 위해 비트 1 및 비트 0을 기록하기 위해 비대칭 속성들을 이용한다. 몇몇 실시예들에서, 개시된 기술은 캐시 라인의 기록 프로세스를 두 개의 분할된 스테이지들로 분할하고: 하나는 타깃 캐시 라인(기록-1 스테이지)에서 1의 모든 비트들을 기록하고, 다른 것은 0의 모든 비트들을 기록한다(기록-0 스테이지). 0의 비트를 기록하는 것은 1의 비트를 기록하는 것보다 훨씬 빠르기 때문에, 기록-0 스테이지에서 모든 기록들은 가속된 속도로 수행될 수 있다. 기록-1 스테이지에서, 1의 비트를 기록하는 것은 0의 비트를 기록하는 것보다 훨씬 더 적은 전류를 취하기 때문에, 더 많은 PCM 셀들이 임의의 순간 전력 제약들을 위반하지 않고 기록의 병렬화 정도를 증가시키기 위해 동시에 기록될 수 있다. PCM에서 종래의 기록 방식들과 비교하면, 2-스테이지 기록은 더 양호한 자원 이용을 달성하고 캐시 라인을 기록하기 위한 서비스 시간을 감소시킬 수 있다.
몇몇 실시예들에서 개시된 기술은 회로를 포함하는 상-변화 메모리(PCM) 칩을 포함하고, 회로는: 하나 이상의 비트들을 저장하고 버퍼 신호를 출력하도록 구성된 버퍼; 출력 제어, 제 1 기록-영역 제어, 및 제 2 기록-영역 제어를 제공하도록 구성된 유한 상태 머신(FSM)으로서, 제 1 및 제 2 기록-영역 제어들은 어느 기록-영역이 스케줄링되는지를 특정하는, 상기 유한 상태 머신; 출력 제어, 제 1 기록-영역 제어, 및 반전된 버퍼 신호를 수신하도록 구성된 제 1 AND 게이트로서, 반전된 버퍼 신호는 버퍼에 의해 출력된 버퍼 신호의 반전인, 상기 제 1 AND 게이트; 버퍼 신호, 제 2 기록-영역 제어, 및 출력 제어의 반전을 수신하는 제 2 AND 게이트; 제 1 AND 게이트의 출력 신호 및 제 2 AND 게이트의 출력 신호를 수신하도록 구성된 OR 게이트, 및 OR 게이트의 출력 신호에 따라 버퍼 신호를 기록 구동기에 제공하도록 구성된 스위치로서, 기록 구동기는 버퍼에 저장된 하나 이상의 비트들을 타깃 캐시 라인에 기록하는, 상기 스위치를 포함하고, 상기 회로는 적어도 두 개의 스테이지들에서 기록 요청들을 스케줄링하도록 구성되고, 제 1 스테이지는 0의 모든 비트들을 타깃 캐시 라인에 기록하는 것을 포함하고, 제 2 스테이지는 1의 모든 비트들을 타깃 캐시 라인에 기록하는 것을 포함한다. 몇몇 실시예들에서, 제 1 스테이지는 제 2 스테이지에 선행한다.
개시된 기술의 다른 양태에서, 몇몇 실시예들에서, PCM 칩은 제어 회로를 포함하고, 상기 제어 회로는: 타깃 캐시 라인에 기록될 기록 유닛에서의 1들의 갯수를 식별하고, 기록 유닛에서의 1들의 수가 기록 유닛 크기의 절반을 초과하는지를 결정하고; 결정 단계에 기초하여, (a) 기록 유닛에서의 모든 비트들을 반전시키고, (b) 기록 유닛과 연관된 반전 플래그를 저장하도록 구성되고; 비트들은 반전되고, 반전 플래그는 제 1 스테이지 및 제 2 스테이지 전에 연관된다. 몇몇 실시예들에서, 제 1 스테이지는 0의 비트들을 순차적으로 기록하는 단계를 포함한다. 몇몇 실시예들에서, 제 2 스테이지는 1의 하나 이상의 비트들을 병렬로 기록하는 것을 포함한다. 몇몇 실시예들에서, 회로는 제어 회로를 포함한다. 몇몇 실시예들에서, PCM 칩은 단일-레벨-셀(SLC) 칩이다.
개시된 기술의 다른 양태에서, 상-변화 메모리(PCM) 칩은 적어도 두 개의 스테이지들에서 기록 요청들을 스케줄링하도록 구성된 회로를 포함하고, 적어도 두 개의 스테이지들 중 제 1 스테이지는 0의 모든 비트들을 타깃 캐시 라인에 기록하는 것을 포함하고, 적어도 두 개의 스테이지들 중 제 2 스테이지는 0의 모든 비트들을 타깃 캐시 라인에 기록하는 것을 포함한다. 몇몇 실시예들에서, 제 1 스테이지는 제 2 스테이지에 선행한다.
개시된 기술의 다른 양태에서, 몇몇 실시예들에서, PCM 칩은 제어 회로를 포함하고, 제어 회로는: 타깃 캐시 라인에 기록될 기록 유닛에서의 1들의 갯수를 식별하고; 기록 유닛에서의 1들의 수가 기록 유닛 크기의 절반을 초과하는지를 결정하고; 결정 단계에 기초하여, (a) 기록 유닛에서 모든 비트들을 반전시키고, (b) 기록 유닛과 연관된 반전 플래그를 저장하도록 구성되고; 비트들은 반전되고 반전 플래그는 제 1 스테이지 및 제 2 스테이지 전에 연관된다. 몇몇 실시예들에서, 제 1 스테이지는 0의 비트들을 순차적으로 기록하는 것을 포함한다. 몇몇 실시예들에서, 제 2 스테이지는 1의 하나 이상의 비트들을 병렬로 기록하는 것을 포함한다. 몇몇 실시예들에서, 회로는 제어 회로를 포함한다. 몇몇 실시예들에서, PCM 칩은 단일-레벨-셀(SLC) 칩이다.
본 발명은 PCM 기록 비대칭을 이용하여 기록을 가속시키기 위한 방법을 제공한다.
도 1은 플립-N-기록 및 2-스테이지-기록-반전 사이의 차이를 도시하는 도면.
도 2는 일 예시적인 PCM 회로 및 성능 차트를 도시하는 도면.
도 3은 기저 라인과 비교된 2-스테이지 기록의 가속을 도시하는 도면.
도 4는 2-스테이지-기록의 일 예시적인 구현을 도시하는 도면.
도 5는 각각의 비트에 대한 개별적인 구성 요소들 및 버퍼에서 모든 비트들에 의해 공유된 공통 구성 요소들을 포함하는 일 예시적인 2-스테이지-기록 회로를 도시하는 도면.
도 6은 2-스테이지 기록 반전이 기록-1 스테이지에서 작동하는 방법의 일 예시를 도시하는 도면.
도 7은 일 예시적인 2-스테이지-기록-반전 회로를 도시하는 도면.
도 8은 2-스테이지-기록-반전이 2-스테이지-기록보다 더 많은 비트들을 기록할 수 있는 것을 지원하기 위한 일 예시적인 멀티플렉서를 도시하는 도면.
도 9는 2-스테이지-기록 및 임의의 기록 최적화를 갖지 않은 기저 라인과 비교된 다른 방식의 판독 레이턴시 감소를 도시하는 도면.
도 10은 기저 라인과 비교될 때 다른 방식들 및 2-스테이지 기록의 총 구동 시간 감소를 도시하는 도면.
도 11은 2-스테이지-기록-반전(2StageWrtInv), 2-스테이지-기록(2StageWrt), 기록 취소(WC), 플립-N-기록(FNW), 및 이상적인 PCM 경우를 포함하는 5 개의 방식들에 대한 기저 라인에 걸친 판독 레이턴시 감소를 도시하는 도면.
도 12는 기저 라인에 걸쳐 반전을 갖는 2-스테이지 기록의 구동 시간 감소를 도시하는 도면.
도 13은 일 예시적인 클라우드 컴퓨팅 환경의 블록도.
도 14는 컴퓨팅 디바이스 및 모바일 컴퓨팅 디바이스의 블록도.
본 명세서의 전술된 및 다른 목적들, 양태들, 특징들, 및 이점들은 첨부하는 도면들과 함께 취해진 다음의 설명을 참조함으로써 더 명백해지고 더 잘 이해될 것이다.
본 명세서의 특징들 및 이점들은 도면들과 함께 취해질 때 이하에 설명된 상세한 설명으로부터 더 명백해질 것이고, 유사한 참조 문자들은 대응하는 요소들 전체를 동일하다고 간주한다. 도면들에서, 유사한 참조 번호들은 일반적으로 유사한, 기능적으로 유사한, 및/또는 구조적으로 유사한 요소들을 나타낸다.
PCM 셀에 대량의 전류를 인가하는 것은 셀이 상이한 저항을 갖게 만들 수 있다. 이러한 속성은 PCM 셀에 다수의 디지털 정보를 저장하기 위해 사용된다. 단일-레벨-셀(SLC) 셀은 단일 비트의 데이터를 저장할 수 있고, 다수-레벨-셀(MLC)은 다수의 비트들을 저장한다. MLC의 높은 저장 밀도는 더 낮은 액세스 속도를 희생한다. 개시된 기술은 SLC PCM 및 MLC PCM 모두에 적용될 수 있다. SLC PCM에서, 0의 비트 및 1의 비트를 셀에 기록하는 것의 응답 시간 및 전력 요구 사항은 매우 상이하다. 0의 비트를 기록하는 것은 훨씬 짧은 시간이 걸리지만, 1의 비트를 기록하는 것과 비교하면 훨씬 더 큰 전류를 요구한다. 종래의 PCM 시스템은 기록 요청들을 스케줄링할 때 매우 보존적이다. 이는 (1) 셀에 기록하는 응답 시간이 1의 비트를 기록하기 위해 요구되는 것만큼 많고, (2) 셀을 기록하는 전류는 0의 비트를 기록하기 위해 요구되는 것만큼 크다. 1들과 0들의 혼합을 갖는 데이터 블록을 기록할 때, 기록 대역폭은 1들 및 0들을 기록하는 불균형적인 응답 시간에 의해 야기된 불필요한 방해, 및 전력 예산의 불충분한 이용에 의해 야기된 불필요한 병렬화 때문에 열화된다.
도 1은 종래의 PCM 기록 방식과 개시된 기술의 2-스테이지 기록 사이의 차이를 강조하기 위해 간단한 예를 이용한다. 캐시 라인이 8 개의 기록 유닛들을 갖는다고 가정하자. 즉, 이는 캐시 라인에 저장할 여덟 개의 기록들을 요구한다. 종래의 방식 하에서, 각각의 기록 유닛은 기록된 실제 값들에 관계없이 1의 비트를 기록하는 서비스 시간 후에 완료된다. 종래의 방식은 시간 인스턴트(t8)에서 여덟 개의 기록 유닛들을 연속적으로 완료한다. 2-스테이지 기록에서, 다른 한편으로, 모든 0 비트들은 더 빠른 속도로 PCM 셀들로 기록되고, 기록-0 스테이지는 시간 인스턴트(t2)에서 완료된다. 다음의 기록-1 스테이지 동안, 1의 비트를 기록하는 더 낮은 전류 요구 사항은 더 많은 1 비트들이 동일한 전력 예산 하에서 동시에 기록될 수 있게 한다. 결과로서, 기록-1 스테이지에서 순차적인 기록들의 수가 감소된다. 2-스테이지 기록은 시간(t7)에서 완료된다.
2-스테이지 기록에서, 몇몇 실시예들에서, 기록 전류 요구 사항들의 정확한 추정이 행해진다. 몇몇 실시예들에서, 각각의 스테이지에서, 기록될 모든 비트들이 동일한 값을 갖기 때문에, 각각의 비트는 동일한 양의 전류를 취한다. 따라서, 요구된 총 전류는 쉽게 계산될 수 있다. 몇몇 실시예들에서, 기록될 데이터 블록의 모든 비트들이 동일한 것은 아니다. 결과로서, 개시된 기술은 기록-x 스테이지에서 x의 값을 갖는 비트들을 고려한다. 이러한 방식으로, 각각의 기록에 대한 기록 전류 요구 사항의 정확한 추정이 행해질 수 있다.
몇몇 실시예들에서, 개시된 기술은 기록-1 스테이지의 성능을 더욱 개선하기 위해 Flip-or-Not-Flip 코딩 방식을 포함한다. 목적은 각각의 데이터 블록에서 지정된 값(k)을 갖는 비트들의 수가 이러한 데이터 블록의 크기의 절반보다 더 크지 않는 것을 보장하는 것이다. 예를 들면, k가 1인 것을 가정하면, 이러한 코딩 방식은 데이터 블록에서 1들의 수가 0들의 수보다 큰지의 여부를 검사한다. 1들의 갯수가 0들의 수보다 큰 경우, 이는 이러한 데이터 블록의 모든 비트들을 플립한다. 이러한 방식에서, 1들의 수는 데이터 블록 크기의 절반을 초과하지 않는다. 동일한 순간 전류 제약들하에서, 이러한 코딩 방식은 종래의 방식들과 비교하여 PCM 셀들에 동시에 기록될 수 있는 1들의 수를 두 배로 할 수 있다. 기록-1 스테이지는 캐시 라인을 기록하는 응답 시간을 통제하기 때문에, 몇몇 실시예들에서, 이러한 코딩 방식은 기록-1 스테이지에 대한 것이다. 이러한 기록 방식은 2-스테이지-기록-반전이라고 불린다. 이러한 기록 방식은 오래된 데이터에 대해 비교할 필요가 없고 따라서 오래된 데이터 판독의 오버헤드를 갖지 않는다.
도 1은 플립-N-기록 및 2-스테이지-기록-반전 사이의 차이를 도시한다. 플립-N-기록은 시간(t1)에서 오래된 데이터를 판독하는 것을 완료한다. 오래된 데이터 및 그의 플립된 데이터를 비교한 후, 플립-N-기록은 기록될 비트들의 수를 데이터 블록 크기의 절반만큼 감소시킬 수 있고, 이는 두 개의 기록 유닛들이 전력 예산을 위반하지 않고 동시에 처리되게 한다. 플립-N-기록의 기록은 시간(t6)에 끝난다. 2-스테이지-기록-반전에서, 기록-0 스테이지는 2-스테이지-기록과 동일한 시간(t2)에 끝난다. 선택적인 반전을 통해, 기록-1 스테이지는 기록될 비트들의 수를 절반만큼 감소시키고 각각의 시간에 2-스테이지-기록의 두 배의 양의 데이터를 기록한다. 따라서, 2-스테이지-기록-반전에서 기록-1 스테이지는 시간(t4)보다 빨리 끝난다.
상 변화 메모리(PCM)는 도 2에 도시된 1-트랜지스터, 1-저항기(1T1R) 디바이스이고, 반면에 DRAM은 1-트랜지스터, 1-커패시터(1T1C) 디바이스이다. PCM은 디지털 정보를 저장하기 위해 메모리 셀에서 상 변화 재료의 현저하게 상이한 속성들을 이용한다. Ge2Sb2Te5(GST)와 같은 상 변화 재료는 두 개의 상들을 갖는다: M Ωs 범위의 높은 저항을 갖는 비정질상 및 K Ωs 범위의 낮은 저항을 갖는 결정질상. PCM은 디지털 정보를 나타내기 위해 비정질 상태에서 GST의 상이한 부분들과 연관된 상이한 저항들을 사용한다. 큰 범위의 저항들을 이용함으로써, PCM 셀은 다수의 비트들의 데이터를 저장하고 다중-레벨-셀(MLC)을 형성할 수 있다. 다른 한편으로, 단일 비트의 정보를 저장하는 셀은 단일-레벨-셀(SLC)이다. 그러나, 프로세스 변동 때문에, 이웃하는 저장 위치들 사이의 좁은 공간들 때문에 GST를 유도하기 위해 정확한 전류를 타깃 저항에 인가하는 것은 어렵다. 기록되고 있는 PCM은 그가 타깃 저항에 도달할 때까지 상이한 전류 값들을 시도한다. 셀에 저장된 비트들의 수가 더 클수록 시도하는 기록의 수가 더 커진다. 이는 MLC를 SLC보다 더 느리게 만든다.
PCM 셀을 판독하는 것은 셀의 저항에 의해 결정되는 저장 위치로부터의 전류 흐름을 감지함으로써 달성된다. PCM의 기록 레이턴시는 GST가 도 2에 도시된 바와 같이 그의 상을 변경하기 위해 가열될 필요가 있기 때문에 그의 판독 레이턴시보다 훨씬 크다.
0의 비트 및 1의 비트를 PCM 셀에 기록하는 것은 기록 전류 및 시간에 의해 큰 차이들을 나타낸다. 비트 0이 기록될 때, GST를 갑자기 가열시키고 이를 비정질상으로 이동하기 위해 큰 전류가 짧은 지속 기간 동안 셀에 인가된다. 다른 한편으로, 비트 1이 기록되는 경우, 상대적으로 더 작은 전류가 더 긴 지속 기간 동안 셀에 인가된다. 이는 GST에 더 낮은 열을 유도하고, GST는 결정질상으로 유지된다. 기록 전류들의 차이 외에, 비트 1을 기록하는 것은 비트 0을 기록하는 것보다 더 긴 시간이 걸린다. 비트 0을 기록하는 것은 높은 저항을 갖도록 GST를 변경하는 프로세스를 초래한다. 큰 전류는 프로세스 변동에 직면하여 큰 저항을 쉽게 달성할 수 있다. 그러나, 비트 1을 기록하는 것은 프로세스 변동들이 고려될 때 비트 0의 기록보다 더 도전적이다. 고밀도 PCM 셀들에서, PCM 제작 프로세스 동안의 셀들의 변동들을 제어하는 것은 어렵고, 이는 PCM 셀을 정확하게 프로그래밍하는 것을 거의 불가능하게 한다. 일반적으로, 프로그래밍-검증(PV) 기술은 산업 및 학술 검색에서 사용된다. PCM에서 마이크로-제어기는 셀에 대하여 초기 프로그래밍 펄스를 발견적으로 선택한다. 프로그래밍 후, 마이크로-제어기는 이러한 셀의 저항을 판독하고 이를 타깃 저항에 대하여 비교한다. 셀이 타깃 저항에 도달하지 않을 경우, 상이한 펄스가 시도된다. 이러한 프로세스는 셀이 타깃 저항에 도달할 때까지 반복한다. 검증의 이러한 다수의 반복들은 기록 레이턴시를 더욱 증가시킨다. 이는 비트 1을 기록하는 것이 비트 0보다 긴 하나의 이유이다.
비트 0들 및 1들이 메모리 셀들 중에 비결정론적으로 분포되기 때문에, 메모리 제어기는 가장 느린 시간, 즉, 비트 1을 기록하기 위한 시간을 비트를 기록한 후 요구되는 대기 시간으로서 선택한다. 한편, 종래의 PCM은 또한 임의의 비트를 기록하는 것은 비트 0을 기록하는 것과 동일한 양의 전류가 필요하다는 것을 보존적으로 가정한다.
기록 성능은 또한 PCM 칩 내부의 전기 회로의 제약들에 의해 제한된다. 이전에 논의된 바와 같이, 0의 비트를 기록하는 것은 GST를 가열하기 위한 대량의 전류를 필요로 한다. 기록상에서, 비트 라인은, 일반적으로 Vdd+1 내지 Vdd+3의 범위에 있는 상 변화 전압보다 높은 전압으로 상승되고, 이는 더 높은 전력 드로우를 초래한다. 몇몇 구현들에서, PCM 칩 내에서 널리 사용되는 딕슨 전하 펌프는 전류를 기록 구동기에 제공한다. 전력선상의 잡음들은 전하 펌프가 칩 내 PCM 셀들을 기록하기 위해 필요한 높은 레벨의 순간 전류를 제공하는 것을 방해한다. 또한, 전하 펌프의 나쁜 효율은 또한 병렬 기록들을 제한한다. 전류 공급의 이러한 제한은 칩에서 동시적인 기록 비트들의 수를 2, 4, 8로 제한한다. 기록 분할 모드라고 불리는 이러한 기록 방식은 큰 데이터를 기록하기 위해 증가된 시간을 초래한다. 예를 들면, 16 비트를 PCM 칩에 기록하는 것은 각각 x2, x4, 및 x8 기록 분할 모드 하에서 기록할 때 8, 4, 및 2 시간 유닛들을 취한다. 종래의 기록 방식은 기록될 데이터 블록의 각각의 비트가 전류-소비 비트(즉, 비트 0)라는 것을 보존적으로 가정하고, 따라서 이는 종종 데이터 블록을 기록하기 위한 전류 요구 사항을 과대 평가한다. 이러한 보존적인 추정은 하나의 기록 동작에서 더 많은 데이터를 기록하기 위한 기회의 손실을 초래한다. 개시된 기술은 종래의 PCM 기록 방식과 동일한 전류 전달 용량하에서 PCM 기록 성능을 개선한다.
0-비트 및 1-비트를 PCM 셀에 기록하는 것은 별개의 시간 및 전류 요구 사항들을 갖는다. 비트 1을 기록하는 것과 비교하면, 비트 0을 기록하는 것은 GST를 가열하기 위해 훨씬 더 큰 전류를 취하지만, 더 짧은 시간량을 취한다. PCM 칩이 제공할 수 있는 최대 순간 전류는 종종 PCM 칩에 동시에 기록될 수 있는 비트들의 수를 제한한다. 0들 및 1들의 혼합을 갖는 데이터 블록을 PCM 셀들에 동시에 기록할 때, 종래의 PCM 제어기는 마지막 비트의 완료를 기다려야 한다. 따라서, PCM 제어기는 현재 기록 요청의 모든 0 비트들이 성공적으로 기록되었을지라도 미해결된 요청을 발행할 수 없다. 또한, 종래의 PCM 제어기는 기록된 비트들 모두가 0이라고 가정하는 최악의 경우들에 대해 순간 전류 수요를 항상 준비한다. 따라서, 동시에 기록될 수 있는 비트들의 수는 이러한 가정하에서 작은 수로 고정된다. 결과로서, 시스템 자원들은 불충분하게 이용되는 경향이 있고, 더 나쁜 기록 성능을 초래한다.
몇몇 구현들에서, 개시된 기술은 상기 논의된 불충분한 이용 문제를 해결하기 위해 비트 0을 기록하는 것과 비트 1을 기록하는 것 사이의 비대칭적 속성들을 완전히 활용하는 2-스테이지 기록 방식을 제공한다. 한 블록의 데이터, 일반적으로, 캐시 라인을 기록할 때, 기록 방식은 2 단계들을 취한다. 여기서 기록-0 스테이지라고 불리는 제 1 단계에서, 모든 0 비트들은 고속으로 PCM 셀들에 기록된다. 여기서 기록-1 스테이지라고 불리는 제 2 단계에서, 모든 1 비트들은 증가된 기록 유닛 크기로 기록된다. 종래의 기록 방식과 유사하게, 기록-0 스테이지는 병렬 기록 한도를 준수하고, 따라서 캐시 라인을 기록하는 것은 다수의 순차적인 기록 동작들을 필요로 한다. 그러나, 1 비트들이 이러한 스테이지에서 기록되지 않기 때문에, 기록-0 스테이지가 훨씬 더 빠른 속도로 수행되기 때문이다. 기록-1 스테이지는 종래의 PCM 기록 방식들과 병렬로 더 많은 비트들을 기록할 수 있다. 비트-1을 기록하는 것은 비트-0을 기록하는 것보다 더 적은 전류를 취하고 따라서 개시된 기술은 순간 전력 제약들을 위반하지 않고 기록 유닛의 크기를 증가시킬 수 있고, 이는 캐시 라인을 기록할 때 더 적은 수의 순차 기록들을 초래한다.
몇몇 구현들에서, 개시된 기술은 0 비트를 기록하기 위해 요구된 더 짧은 시간 및 1 비트를 기록하기 위해 요구된 더 적은 전류라는 사실을 완전히 이용하기 위해 2 개의 분리된 스테이지들에서 1들 및 0들을 배타적을 기술한다. 종래의 기록 방식들에서, 1들 및 0들은 각각의 기록 요청에서 혼합되고, 따라서 제어기는 모든 비트들이 1인 최악의 경우의 시나리오에 대해 동시에 기록될 수 있는 비트들의 수를 보존적으로 제한해야 하고, 이는 충분히 이용되지 않은 자원들을 초래한다. 예를 들면, 도 1에 도시된 바와 같이, WU0 내지 WU7을 기록하는 것은 종래의 PCM 기록하에서 동일한 시간량이 걸리도록 보존적으로 설정된다. 종래의 기록 방식과 비교하면, 기록 방식은 동일한 전력 제약들하에서 더 빠른 속도를 갖고 모든 0 비트들 및 더 큰 병렬화의 정도를 갖고 모든 1 비트들을 기록할 수 있다. 이러한 예에서, 0-WU(0-7)를 포함하는 기록-0 스테이지는 t2에서 완료되고 이는 0 비트들을 기록하기 위한 더 짧은 시간 때문에 더 빠르게 수행한다. 1-WU(0-7)를 포함하는 기록-1 스테이지는 1 비트를 기록하기 위해 더 적은 전력 요구 사항 때문에 각 시간에 두 개의 데이터 블록들을 기록할 수 있고, 따라서, 데이터 블록(WU(0-7))을 기록하기 위한 전체 시간을 상당히 감소시킨다. 2-스테이지 기록에서, 1들 및 0들은 분리되고 따라서, 동시에 기록된 비트들의 수는 각 스테이지에서 정확하게 결정될 수 있다. 2-스테이지 기록의 하나의 이점은 더 조밀한 스케줄을 갖고 모든 0 비트들 및 더 넓은 기록 대역폭을 갖고 모든 1 비트들을 기록할 수 있다는 것이다. 여분의 기록-0 스테이지가 몇몇 성능 오버헤드를 생성하는 동안, 가속된 기록-1 스테이지는 다른 기록 방식들과 비교하여 상당한 성능 이득을 달성한다. 본질적으로, 2-스테이지 기록은 1 비트들에 대한 더 큰 기록 유닛 크기를 0 비트들에 대한 더 짧은 기록 시간으로 교환한다.
2-스테이지 기록 및 종래의 기록 방식에서 캐시 라인을 기록하는 시간은 이하에 보여지는 것과 같이 분석될 수 있다. 0 비트를 기록하기 위해 Treset 시간이 걸리고, 0 비트를 기록하기 위해 Tset 시간이 걸린다고 가정하자. 비트 1을 기록하는 것은 비트 0을 기록하는 것보다 훨씬 느리고, Tset = K×Treset이고, K는 시간 비율이고, 8로 설정된다. 0비트를 기록하기 위한 전류가 1 비트를 기록하는 L시간이고, L은 2라고 가정하자. 기록 유닛 크기는 M 바이트이고 캐시 라인 크기는 N 바이트이다. 간략함을 위해, M = 8 및 N = 64. 간략함을 위해, 비트 1 및 비트 0은 동일한 확률로 존재한다고 가정하자. 종래의 기록 방식 및 2-스테이지-기록 방식하에서 캐시 라인을 기록하기 위한 시간은 다음의 두 개의 식들로 계산될 수 있다.
Figure pct00001
Figure pct00002
식 2에 도시된 바와 같이, 기록-0 스테이지는 N/M 순차 기록들을 갖고, 그의 총 시간은 N/M Treset이다. 기록-1 스테이지는 기록 유닛 크기를 L의 팩터만큼 증가시킨다. 일반적으로, 기록-0 스테이지는 기록-1 스테이지보다 더 짧은 시간이 걸린다. 현재 비율(L)이 2이고 K는 8이 되도록 보고된다고 가정하면, 식 1 및 식 2에 따라, Tconventional = 64 Treset이고 T2stages = 40 Treset이다. 이러한 계산은 2-스테이지-기록에서 캐시 라인을 기록하는 시간이 단지 종래의 기록의 62.5%라는 것을 보여준다.
Figure pct00003
식 3은 종래의 방식을 통해 2-스테이지 기록 방식의 가속이 기록 분할 모드의 정도에 민감하지 않지만 기록 유닛 크기가 캐시 라인보다 적은 경우 시간 비율(K) 및 전력 비율(L)에 민감하다는 것을 나타낸다. 가속이 기록 유닛이 캐시 라인보다 작을 때 기록 분할 모드의 증가도에 민감하지 않기 때문에, 기록 분할 모드의 증가도는 가속에 영향을 미치지 않는다.
도 3은 시간 비율(K) 및 전력 비율(L)이 표시 범위에서 변할 때 기저 라인에 걸친 2-스테이지 기록의 가속을 도시한다. K는 일반적으로 3.75 내지 18 사이에 있다. L은 일반적으로 2와 3 사이에 있다. K 및 L이 이러한 표시 범위하에서 변하기 때문에, 가속은 계속 1보다 크다.
2-스테이지 기록은 또한 이하에 보여진 플립-N-기록(FNW)과 비교된다. 식 4에서, 데이터는 비트에 관한 비교 전에 먼저 판독될 필요가 있다. 평균적으로, 비트의 단지 절반은 비교 후 PCM 셀들로 기록될 것이다. Treset이 Tread에 매우 가깝기 때문에, TFNW = 33Treset이고, 이는 2-스테이지-기록보다 약간 양호하다(T2stages = 40 Treset). 나중에 나타낸 실험 결과들은 이러한 기록 시간 갭이 다양한 4-코어 SPEC 2006 CPU 작업 부하들하에서 2-스테이지-기록에서 평균적으로 4.3% 판독 레이턴시 증가 및 2.6% 성능 열화를 야기하는 것을 보여줄 것이다. 그러나, 몇몇 구현들에서, 2-스테이지-기록은 일반적인 설정에서 총 PCM 저장 공간의 6.25%를 필요로 하는 플립-N-기록에 의해 사용된 데이터 반전 플래그들을 저장하는 오버헤드를 갖지 않는다.
도 4는 데이터 경로가 도 4에 도시된 삼성사로부터의 제품 등급 PCM 프로토타입에 기초하여 2-스테이지-기록의 예시적인 구현을 도시한다. 이러한 프로토타입은 요청을 판독하기 위한 버퍼를 도입함으로써 8-워드 프리페치를 지원하고 병렬 기록된 비트들의 최대 수를 각각의 칩에 대해 16으로 제한한다. 버퍼는 다수의 감지 증폭기들 및 기록 구동기들과 연결된다. 2-스테이지-기록 회로들은 도 4에 도시된 바와 같이 x128 버퍼와 이들 기록 구동기들 사이의 데이터 경로에 놓인다. 이러한 회로는 16 비트들의 0을 기록할 수 있고 128 비트를 기록하는 것은 기록-0 스테이지에서 8 개의 직렬 기록들을 필요로 한다. 비트 0과 비트 1을 기록하는 것 사이의 전류 비율은 2인 것이 가정되는 경우, 2-스테이지-기록은 각 시간에 32 비트의 1을 기록할 수 있고 128 비트를 기록하는 것은 단지 기록-1 스테이지에서 4 개의 직렬 기록들을 필요로 한다. 각각의 직렬 기록은 오프셋에 의해 지정될 수 있는 버퍼에서 비트들의 대응하는 영역을 갖는다. 이러한 영역은 여기서 기록-영역이라고 불린다.
2-스테이지-기록 회로는 각각의 비트에 대한 개별 구성 요소 및 도 5에 도시되는 버퍼 내 모든 비트들에 의해 공유된 공통 구성 요소를 포함한다. 공유된 유한 상태 머신(FSM)은 출력 제어 신호들 기록-스테이지(s0), 비트 0을 기록하기 위한 지정된 직렬 기록(Z), 및 비트 1을 기록하기 위한 버퍼의 지정된 부분(O)을 생성한다. s0가 0인 경우, 기록 스테이지는 기록-0 스테이지에 있다. 그렇지 않은 경우, 기록 스테이지는 기록-1 스테이지에 있다. 각 시간에 상이한 기록-영역들이 상이한 스테이지들에서 기록되기 때문에(도 5를 참조), FSM에 의해 생성된 O 및 Z는 기록 영역이 기록-1 스테이지 및 기록-0 스테이지에서 각각 스케줄링된 것을 지정한다. 개시된 기술에서, 기록-1 스테이지는 4 개의 기록-영역들을 기록하고 기록-0 스테이지는 8 개의 기록-영역들을 기록한다. O 신호는 3 비트를 갖고 Z 신호는 2 비트를 갖는다. 버퍼에서 각각의 비트는 도 5에 도시된 개별적인 구성 요소의 입력이다. 버퍼가 비트 0을 저장할 때, 기록-0 스테이지 신호(s0) 및 이러한 버퍼가 스테이지-0에서 j번째 직렬 기록에 속하는 것을 의미하는 대응하는 Zj는 AND0 게이트를 인에이블하고 이러한 비트 0을 PCM 셀에 전달한다. 버퍼가 비트 1을 저장할 때, 기록-1 스테이지 신호(s0) 및 이러한 버퍼가 스테이지-1에서 i번째 직렬 기록에 속한다는 것을 의미하는 대응하는 Oi가 AND0 게이트를 인에이블하고 이러한 비트 1을 PCM 셀에 전달한다.
몇몇 구현들에서, 각각의 비트에 대한 입력(Zj, Oi)은 이러한 비트가 각각 기록-0 스테이지 및 기록-1 스테이지에서 j번째 및 i번째 직렬 기록에 포함되는지의 여부를 지정한다. 예를 들면, 몇몇 구현들에서, 기록-0 스테이지에서 제 1 직렬 기록은 그의 오프셋이 x16 기록 분할 모드하에 버퍼에서 0번째 내지 15 번째의 범위에 있는 16 비트들을 포함하고, 기록-0 스테이지에서 i번째 기록-영역에서 각각의 비트들은 도 5에 도시되는 그의 직렬 기록 순서(Zj)와 연관된다. 이후 몇몇 구현들에서, 각각의 PCM은 128-비트 버퍼를 갖고, 2-스테이지-기록은 기록-0 스테이지에서 8 개의 직렬 기록들을 갖는다. 그러나, 몇몇 구현들에서, 기록-1 스테이지는 단지 4 개의 직렬 기록들을 갖는다. 이는 비트 1에 대한 기록 전류가 기록 전류의 절반이고, 비트 1로 32 비트를 기록하는 것은 x16 기록 분할 모드하에 전류 공급 예산을 초과하지 않고 동시에 기록될 수 있기 때문이다. 결과로서, 기록-1에서 제 1 기록 영역은 도 5에 도시된 버퍼에서 0번째 내지 31번째의 범위에 있다. FSM에 의해 생성된 Z 및 O가 상이한 기록 스테이지에서 지정된 기록의 순서를 나타낼 수 있기 때문에, MUX0 및 MUX1은 지정된 기록-0 및 기록-1 동작 각각에 대해 버퍼에서 데이터의 대응하는 부분을 지정하기 위해 Z 및 O를 사용한다. 기록 동작이 성능 최상 경로에 있지 않기 때문에, 2-스테이지-기록 회로들과 연관된 오버헤드는 무시할 수 있다. 이러한 구현은 단지 기록 데이터 경로를 변경하고 판독 경로는 변경되지 않게 유지한다는 것을 주의하라.
몇몇 구현들에서, 코딩 방식은 2-스테이지 기록의 성능을 더욱 개선하기 위해 사용된다. 몇몇 구현들에서, 데이터 코딩 방식은 각각의 데이터 블록에서 지정된 값(k)을 갖는 비트들의 수가 이러한 데이터 블록의 절반 크기보다 크지 않다는 것을 보장하기 위해 사용된다. 기록-1 스테이지가 2-스테이지 기록에서 캐시 라인에 대해 기록하는 것을 통제하기 때문에, 이러한 코딩 방식은 비트 1에 적용된다.
예시적인 코딩 방식이 이하의 알고리즘 1에서 보여진다. 기록 유닛을 기록하기 전에, 1을 갖는 비트들의 수(라인 5)가 카운트된다. 비트 1의 출현이 기록 유닛 크기의 절반보다 큰 경우(라인 6), 이러한 기록 유닛의 모든 비트들이 반전된다(라인 7). 그렇지 않은 경우, 이러한 기록 유닛은 변경되지 않고 유지된다(라인 10). 이러한 방식으로, 기록될 1들의 수는 기록 유닛 크기의 절반보다 적다. 또한, 몇몇 구현들에서, 기록-1 스테이지에서 기본 2-스테이지-기록 방식의 기록 유닛의 크기는 순간 전류 제약들을 위반하지 않고 두 배가 될 수 있다. 몇몇 구현들에서, 이전에 도입된 기본 2-스테이지-기록과 조합하여, 이러한 선택적인 비트에 관한 반전은 기록 성능을 더욱 개선할 수 있다. 이러한 조합된 기록 방식은 2-스테이지-기록-반전이라고 불린다.
Figure pct00004
도 6은 2-스테이지 기록 반전이 기록-1 스테이지에서 작동하는 방법의 일 예를 도시한다. 뱅크가 16의 전력 예산을 갖고 0 비트 및 1 비트를 기록하는 것은 2 및 1의 전력을 각각 소비한다고 가정하자. 총 4 바이트(D0 내지 D3)가 PCM에 기록된다. 제 1 경우에, 각각의 바이트는 2 개의 1 비트들을 갖는다고 가정하자. 이후 반전 없는 2-스테이지 기록은 뱅크가 더 많은 비트들을 기록하기 위한 충분한 전력 균형을 가질 때조차 매시간 2 바이트를 기록할 수 있다. 제 1 경우에서 각각의 바이트 내 1 비트들의 수가 4보다 적기 때문에, 2-스테이지 기록 반전은 전력 예산을 위반하지 않고 4 바이트를 기록할 수 있다. 제 2 경우에서, 각각의 바이트가 6 개의 1 비트들을 갖는다고 가정하자. 따라서 4 바이트는 반전 없이 2-스테이지 기록에 의해 동시에 기록될 수 없다. 그러나, 반전을 갖는 2-스테이지 기록은 원래의 데이터를 먼저 플립하고, 이후 각각의 변환된 데이터는 단지 2 개의 1 비트들만을 갖는다. 따라서, 전력 제약을 위반하지 않고 4 바이트를 PCM에 안전하게 기록할 수 있다.
Figure pct00005
몇몇 구현들에서, 2-스테이지-기록-반전은 최신의 PCM 기록 방식들 중 하나인 플립-N-기록보다 캐시 라인을 기록하는 것이 더 적은 시간이 걸린다. 오래된 데이터의 비교를 통해, 플립-N-기록은 오버헤드가 무시되는 경우 기록될 비트들의 수를 평균의 절반으로 감소시키기 위해 유사한 코딩 방식을 사용한다. 2-스테이지-기록-반전은 상이한 코딩 방식을 적응시키고, 이는 기록될 1들의 수를 기록-1 스테이지에서 평균의 절반으로 감소시킨다. 명확한 파라미터를 식 4 및 식 5에 넣으면, 플립-N-기록 및 2-스테이지-기록-반전하에서 캐시 라인을 기록하기 위한 시간은 Tread = Treset의 가정에 의해 계산된다. 캐시 라인을 기록하는 것은 플립-N-기록 및 2-스테이지-기록-반전에서 각각 33 Treset 및 24 Treset이 걸린다. 이러한 간단한 백-오브-엔벨로프(back-of-envelop) 평가는 2-스테이지-기록-반전이 27% 더 빨라질 수 있다는 것을 보여준다.
몇몇 구현들에서, 2-스테이지-기록-반전은 도 7에 도시되는 비트에 관한 반전을 검사 및 수행하기 위해 여분의 회로를 추가함으로써 2-스테이지-기록의 구현을 확장한다. 1들의 그의 수에 기초하여 데이터를 선택적으로 반전시키기 때문에, 여분의 셀은 데이터 비트들의 고정된 수에 대한 이러한 반전 플래그를 저장하기 위해 사용되고, 따라서 PCM 칩은 더 많은 비트들로 증분된다. 이하에 보여진 예에서, 비트의 고정된 수는 16이다.
Figure pct00006
몇몇 구현들에서, 반전 제어 회로는 1들의 수를 카운트하기 위한 카운터를 사용하고 그의 출력은 감산기에 대한 입력이다. 감산기는 카운터 및 칩에서 최대 병렬 비트들의 절반인 8의 상수를 비교한다. 감산기의 부호는 반전을 제어하기 위해 사용되고, 또한 반전 플래그로서 PCM에 기록될 x17 DMUX에 대한 입력이다. 2-스테이지-기록-반전은 캐시 라인에 대한 기록 동작들의 수를 감소시키고 2-스테이지-기록 로직에서 FSM은 기록 상태를 기록하기 위해 요구된다. 선택적인 반전 코딩 알고리즘은 기록될 비트들의 수를 평균의 절반으로 감소시키고 이러한 감소는 기록-1 스테이지에서 더 큰 기록 유닛 크기로 해석된다. 따라서, 두 개의 작은 변화들이 2-스테이지-기록 로직에 대해 행해진다. 첫째로, 기록 유닛들의 수가 감소되기 때문에, FSM은 기록-1 스테이지에서 기록 동작들의 수에 대해 감소되고 그의 출력은 O이다. 둘째로, MUX1은 2-스테이지-기록-반전이 도 8에 도시되는 2-스테이지-기록보다 더 많은 비트들을 기록할 수 있도록 지원하기 위해 직접 데이터 스위칭으로 변경된다.
성능은 실행-구동 프로세서 시뮬레이터(M5) 및 PCM을 시뮬레이팅하기 위해 변경되는 주기-레벨 메모리 시뮬레이터(DRAMsim)를 사용하여 평가된다. 표 1은 시뮬레이팅된 프로세서 및 제품 등급(PCM)의 파라미터들을 보여준다. 메모리 액세스를 정확하게 모델링하기 위해, 순서외 코어들이 순서내 코어들보다 더 많은 병렬 및 독립적인 메모리 액세스들을 생성하기 때문에, 순서외 코어들이 사용된다. 캐시를 통과한 후, 메모리 액세스들은 PCM으로 직접 이어진다. 시뮬레이팅된 프로세서는 32 MB L3 캐시를 갖는 네 개의 코어들을 구비한다. PCM 판독 및 기록 레이턴시는 57 ㎱ 및 430 ㎱로 각각 설정된다.
PCM 칩 제약들이 고려되고, PCM 기록 유닛은 8 바이트가 되도록 모델링된다. 결과로서, 종래의 기록 방식에서, 64 바이트의 캐시 라인을 PCM에 기록하는 것은 8x430㎱ = 3440㎱가 걸리고, 반면에 캐시 라인을 판독하는 것은 칩-레벨 프리-페치에 의해 100㎱보다 적게 요구한다. 느린 PCM 기록을 허용하기 위해, 큰 오프-칩 L3 DRAM 캐시가 추가된다. 또한, 메모리 라이트 백(memory write back)은 성능 최상 경로내에 있지 않기 때문에, 판독 명령 및 페치 우선(RIFF) 스케줄링 알고리즘이 성능을 개선하기 위해 사용된다.
SPEC CPU 2006 기준 맞춤은 집중적인 메모리 액세스들과 함께 13 개의 멀티-프로그램된 작업 부하들을 구성하기 위해 사용된다. 각각의 작업 부하에서 모든 검사 애플리케이션들은 병렬로 구동하고 각각의 애플리케이션은 150억개의 명령들이 고속 전송되고 이후 10억 개의 명령들이 시뮬레이팅된다. 표 2는 각각의 작업 부하에 대하여 천 개의 명령들당 메모리 판독(RPKI), 천 개의 명령들당 메모리 기록(WPKI), 메모리 레벨 병렬화(MLP) 및 뱅크 레벨 병렬화(BLP)를 요약한다. RPKI 및 WPKI는 작업 부하의 메모리 액세스 강도의 표시자들이고 그들의 대부분은 1보다 크다. L3 캐시가 32MB를 가질 수 있지만, 작업 부하들에서 측정된 메모리 액세스들의 강도는 그들의 것과 매우 가깝고, 따라서, L3 캐시보다 큰 것은 불필요하다.
개시된 기술의 몇몇 실시예들은 표 1에 나열된 것과 동일한 파라미터들을 사용하지만 임의의 PCM 최적화를 갖지 않는 기저 라인 방식과 비교된다. 개시된 기술의 몇몇 실시예들은 또한 기록 취소(WC) 및 플립-N-기록(FNW)을 포함하는 두 개의 최근에 제안된 PCM 기록 최적화 기술들에 대하여 비교된다. 오래된 데이터에 대한 비트에 관한 비교를 통해, 플립-N-기록은 PCM에 실제로 기록될 비트들의 수의 평균의 절반으로 감소시키는 것이 필요한 경우 모든 비트들을 플립한다. 기록 취소는 기록 동작이 완료에 가깝지 않은 경우 동일한 뱅크에 타깃된 새롭게 도착한 판독 요청에 대한 진행중인 기록을 중단시킨다. 판독 요청들이 존재하지 않을 때, 모든 취소된 기록 요청들이 재실행될 것이다. 기록 취소에 대한 통계적인 임계값은 SPEC 2006하에서 최적인 것으로 보고되는 75%가 되도록 설정된다. 개시된 기술의 몇몇 실시예들은 또한, PCM에 대한 상이한 기록 최적화 기술들을 연구하기 위한 이론적 상한의 역할을 하는, 기록 레이턴시가 매우 작은(57㎱, 판독 레이턴시와 동일함) 이상적인 PCM에 대해 비교된다.
PCM 시뮬레이션에서, 비트 0을 기록하기 위한 전류는 비트 1을 기록하기 위한 전류의 두 배이다. 동일한 순간 전력 제한하에서, 병렬로 기록될 수 있는 1들의 수는 0들의 수의 두 배이다. 따라서, 기록-1 스테이지에서 기록 유닛의 크기는 두 배가 될 수 있고, 네 개의 여분의 기록 유닛들이 64 바이트의 캐시 라인을 기록하기 위해 요구된다.
비트 0을 기록하기 위한 시간은 비트 0을 기록하기 위한 시간의 단지 1/8이다. 평균적으로, 기록-1 및 기록-0 스테이지는 2-스테이지 기록하에서 캐시 라인을 기록하기 위해 각각 4 × 430 = 1720㎱ 및 8 × 50 = 400㎱가 걸린다. 결과로서, 2-스테이지-기록에서 총 430 + 1720 = 2120㎱가 걸린다. 표 3은 상이한 기록 방식 하에서 캐시 라인을 기록하기 위해 요구되는 시간을 요약한다.
도 9는 2-스테이지-기록 및 어떠한 기록 최적화를 갖지 않는 기저 라인과 비교되는 다른 방식의 판독 레이턴시 감소를 나타낸다. 연구된 13 개의 작업 부하들 중 대부분에서, 2-스테이지-기록은 기록 취소(WC)보다 많은 판독 레이턴시를 성공적으로 감소시킬 수 있다. 평균적으로, 2-스테이지-기록의 판독 레이턴시 감소는 기저 라인보다 45.8% 작고, 반면에 기록 취소 및 플립-N-기록(FNW)은 각각 2.89% 및 52.1%만을 달성한다.
2-스테이지-기록은 13 개의 작업 부하들 중 10 개의 기록 취소보다 더 적은 판독 레이턴시를 달성한다. 기록 취소에서, 캐시 라인을 기록하는 시간 중 x%보다 많이 끝낸 경우, 진행중인 기록은 판독 요청들을 여전히 차단하고, x%는 미리 결정된 임계치이다. 75%의 임계치를 갖는 실험들에서, 기록 취소는 860㎱까지 동안 판독 요청을 차단할 수 있다. 판독을 차단하는 가능성은 취소된 기록들의 재실행의 더 많은 발생들에 의해 증가한다. 이는 기록 취소에 대하여 판독 차단의 가능성을 증가시키고 기록 재실행들을 갖지 않는 2-스테이지-기록보다 더 큰 판독 레이턴시를 초래한다. 그러나, 기록 취소는 작업 부하(MIX1)에서 가장 적은 판독 레이턴시를 제공한다는 것이 또한 주의된다. 이는, 작업 부하의 뱅크 레벨 병렬화(BLP)가 그의 메모리 레벨 병렬화(MLP)에 가까운 경우, 기록 취소는 잘 작동하기 때문이다. 예를 들면, 표 2에서 보여지는 바와 같이, BLP 및 MLP는 MIX1에서 각각 6.02 및 8.11이다. 요청들이 상이한 뱅크들 위에 고르게 분배되는 작업 부하들에서, 기록 취소는 취소된 기록들을 재실행하는 가능성을 감소시킬 수 있고, 그와 같이 판독 레이턴시를 효율적으로 감소시킬 수 있다. 이들 작업 부하들은 여기서 기록 취소 우호적인 작업 부하들이라고 불린다.
그러나, 기록 취소는 현저하게 상이한 BLP 및 MLP를 갖는 비우호적인 작업 부하들에 대해 덜 효율적이다. 결과로서, 매우 상이한 BLP 및 MLP를 갖는 비우호적인 작업 부하들에 대하여, 대부분의 요청들은 더 적은 수의 뱅크들로 클러스트되고, 이는 기록 취소들의 높은 빈도의 발생들을 초래한다. 실험들에서 대부분의 작업 부하들은 기록 취소 비우호적이고, 따라서, 2-스테이지 기록은 평균 판독 레이턴시의 면에서 기록 취소를 능가한다.
Figure pct00007
Figure pct00008
2-스테이지-기록 판독 레이턴시는 플립-N-기록에 가깝다. 그러나, 2-스테이지-기록은 저장 오버헤드를 갖지 않는다. 비트를 플립하는 것에 의해, 플립-N-기록은 기록 유닛의 크기를 두 배로 하고 판독 레이턴시를 감소시킨다. 플립-N-기록의 성능 오버헤드는 PCM으로부터 오래된 버전의 데이터를 판독하고 있고, 2-스테이지--기록에서 비트 0을 기록하는 것이 실행되기 때문에, 이러한 오버헤드는 2-스테이지-기록들 성능 오버헤드보다 작다. 그래서, 2-스테이지-기록에 대한 기록 서비스 시간은 표 3에 보여지는 플립-N-기록보다 긴 347㎱이다. 플립-N-기록에 대해 이러한 10.39% 낮은 것은 평균적으로 6.3% 판독 레이턴시 증가를 초래한다. 이는 큰 L3 DRAM 캐시의 도입이 성능에 대한 PCM 느린 기록의 부정적 영향을 완화할 수 있기 때문이다. 그러나, 2-스테이지-기록에 걸친 플립-N-기록의 성능 이점은 데이터 블록들에 대한 비트들에 대한 플립핑을 저장하기 위해 6.25% PCM 저장 공간을 요구한다.
도 10은 기저 라인과 비교될 때 2-스테이지 기록 및 다른 방식들의 총 구동 시간 감소를 보여준다. 2-스테이지 기록의 감소된 판독 레이턴시는 성능 이득으로 직접 해석된다. 평균적으로, 2-스테이지 기록은 기저 라인보다 21.9% 성능 개선을 제공한다. 2-스테이지 기록의 평균 구동 시간은 오래된 데이터를 판독하는 그의 적은 오버헤드 때문에 플립-N-기록보다 2.6% 길다. 몇몇 작업 부하들 하에서, 기록 취소는 총 구동 시간을 증가시키지만 기저 라인보다 더 적은 판독 레이턴시를 갖는다는 것이 주의된다. 예를 들면, 작업 부하(MIX2)에서, 그의 판독 레이턴시는 44.9%만큼 감소되고, 반면에 그의 구동 시간은 22.5%만큼 증가된다(도 9를 참조). 이는 취소된 기록들의 재실행이 기록을 실행하는 것이 종료될 때 판독 요청을 차단하는 가능성을 75%보다 많이 증가시키기 때문이다. 다른 한편으로, 기록 요청들을 취소함으로써, 기록 취소는 BLP를 개선할 수 있다. 예를 들면, MIX5의 BLP는 기록 취소 및 기저 라인에서 각각 3.15 및 2.91이다. 성능은 판독 레이턴시 및 BLP 모두에 의해 영향을 받는다. 그래서, 이는 MIX5의 구동 시간이 3.72%만큼 감소되지만, 판독 레이턴시는 기저 라인과 비교될 때 3.09%만큼 증가되는 이유를 설명한다.
도 11은, 2-스테이지-기록-반전(2StageWrtInv), 2-스테이지-기록(2stageWrt), 기록 취소(WC), 플립-N-기록(FNW), 및 이상적인 PCM 경우를 포함하는, 5 개의 방식들에 대하여 기저 라인 위의 판독 레이턴시 감소를 비교한다. 2-스테이지-기록-반전은 플립-N-기록보다 판독 레이턴시의 더 많은 감소를 달성한다. 평균적으로, 2-스테이지-기록-반전에 대한 레이턴시 감소는 68.4%이고, 플립-N-기록 및 2-스테이지-기록은 각각 52.1% 및 45.8%이다. 2-스테이지-기록과 비교하면, 2-스테이지-기록-반전의 판독 레이턴시는 22.6%보다 적다. 이는 기록-1 스테이지에서 기록 유닛의 크기를 두 배로 할 수 있고 캐시 라인을 기록하는 서비스 시간에 영향을 받는 기록-1 스테이지에서 절반의 시간이 걸리기 때문이다. 또한, 2-스테이지-기록-반전은 판독 레이턴시의 면에서 평균적으로 16.3%만큼 플립-N-기록을 능가한다. 기록-1 시간이 기록 서비스 시간에 영향을 주기 때문에, 이러한 부분의 감소의 네 개의 폴드들은 가속 비율이 2로 제한되는 플립-N-기록보다 많이 판독 레이턴시를 감소시키는 것을 확실히 도울 수 있다. 요컨대, 2-스테이지-기록-반전은 판독 레이턴시의 면에서 모든 작업 부하들에 대해 플립-N-기록 및 기본 2-스테이지-기록을 항상 능가한다.
기저 라인에 걸친 구동 시간 감소가 도 12에 보여진다. 2-스테이지-기록-반전이 새로운 코딩 방식을 통해 다른 기록 방식들보다 더 조밀한 기록 전류 할당을 갖기 때문에, 이는 캐시 라인을 기록하는 시간을 상당히 감소시킬 수 있다. 연구된 13 개의 작업 부하들 하에서, 2-스테이지-기록-반전은 평균적으로 기저 라인에 걸쳐 33.9% 구동 시간 감소를 달성하고, 2-스테이지-기록 및 플립-N-기록을 각각 12.9% 및 9.2%만큼 능가한다.
컴퓨터 하드웨어 및 소프트웨어
본 섹션에서 정보가 본 발명의 실시예들을 행하거나 사용하도록 통합, 적용, 사용 및/또는 적응될 수 있다는 것이 고려된다.
도 13에 도시된 바와 같이, 개시된 기술과 함께 디바이스와 함께 사용하는 네트워크 환경(1300)의 구현이 도시되고 기술된다. 간략한 개요에서, 지금 도 13을 참조하여, 예시적인 클라우드 컴퓨팅 환경(1300)의 블록도가 도시되고 기술된다. 클라우드 컴퓨팅 환경(1300)은 하나 이상의 자원 제공자들(1302a, 1302b, 1302c)(집합적으로, 1302)을 포함할 수 있다. 각각의 자원 제공자(1302)는 컴퓨팅 자원들을 포함할 수 있다. 몇몇 구현들에서, 컴퓨팅 자원들은 데이터를 처리하기 위해 사용된 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 예를 들면, 컴퓨팅 자원들은 알고리즘들, 컴퓨터 프로그램들, 및/또는 컴퓨터 애플리케이션들을 실행할 수 있는 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 몇몇 구현들에서, 예시적인 컴퓨팅 자원들은 저장 및 검색 능력들을 갖는 애플리케이션 서버들 및/또는 데이터베이스들을 포함할 수 있다. 각각의 자원 제공자(1302)는 클라우드 컴퓨팅 환경(1300)에서 임의의 다른 자원 제공자(1302)에 연결될 수 있다. 몇몇 구현들에서, 자원 제공자들(1302)은 컴퓨터 네트워크(1308)를 통해 연결될 수 있다. 각각의 자원 제공자(1302)는 컴퓨터 네트워크(1308)를 통해 하나 이상의 컴퓨팅 디바이스(1304a, 1304b, 1304c)(집합적으로, 1304)에 연결될 수 있다.
클라우드 컴퓨팅 환경(1300)은 자원 관리자(1306)를 포함할 수 있다. 자원 관리자(1306)는 컴퓨터 네트워크(1308)를 통해 자원 제공자들(1302) 및 컴퓨팅 디바이스들(1304)에 연결될 수 있다. 몇몇 구현들에서, 자원 관리자(1306)는 하나 이상의 자원 제공자들(1302)에 의해 하나 이상의 컴퓨팅 디바이스들(1304)에 컴퓨팅 자원들의 제공을 용이하게 할 수 있다. 자원 관리자(1306)는 특정한 컴퓨팅 디바이스(1304)로부터 자원을 컴퓨팅하기 위한 요청을 수신할 수 있다. 자원 관리자(1306)는 컴퓨팅 디바이스(1304)에 의해 요청된 컴퓨팅 자원을 제공할 수 있는 하나 이상의 자원 제공자들(1302)을 식별할 수 있다. 자원 관리자(1306)는 컴퓨팅 자원을 제공하기 위한 자원 제공자(1302)를 선택할 수 있다. 자원 관리자(1306)는 자원 제공자(1302)와 특정한 컴퓨팅 디바이스(1304) 사이의 연결을 용이하게 할 수 있다. 몇몇 구현들에서, 자원 관리자(1306)는 특정한 자원 제공자(1302)와 특정한 컴퓨팅 디바이스(1304) 사이의 연결을 확립할 수 있다. 몇몇 구현들에서, 자원 관리자(1306)는 특정한 컴퓨팅 디바이스(1304)를 요청된 컴퓨팅 자원을 갖는 특정한 자원 제공자(1302)로 재지향시킬 수 있다.
도 14는 본 명세서에 기술된 기술들을 구현하기 위해 사용될 수 있는 컴퓨팅 디바이스(1400) 및 모바일 컴퓨팅 디바이스(1450)의 일 예시를 도시한다. 컴퓨팅 디바이스(1400)는 랩탑들, 데스크탑들, 워크스테이션들, 개인 휴대 정보 단말들, 서버들, 고밀도 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 모바일 컴퓨팅 디바이스(1450)는 개인 휴대 정보 단말들, 휴대 전화들, 스마트폰들, 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태들의 이동 디바이스들을 나타내도록 의도된다. 여기에 도시된 구성 요소들, 그들의 연결들 및 관계들, 및 그들의 기능들은 단지 예들인 것을 의미하고, 제한을 의미하는 것은 아니다.
컴퓨팅 디바이스(1400)는 프로세서(1402), 메모리(1404), 저장 디바이스(1406), 메모리(1404) 및 다수의 고속 확장 포트들(1410)로 연결하는 고속 인터페이스(1408), 및 저속 확장 포트(1414) 및 저장 디바이스(1406)에 연결하는 저속 인터페이스(1412)를 포함한다. 프로세서(1402), 메모리(1404), 저장 디바이스(1406), 고속 인터페이스(1408), 고속 확장 포트들(1410), 및 저속 인터페이스(1412)의 각각은 다수의 버스들을 사용하여 상호 접속되고, 공통 마더보드상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(1402)는 고속 인터페이스(1408)에 결합되는 디스플레이(1416)와 같은 외부 입력/출력 디바이스상에 GUI에 대한 그래픽 정보를 디스플레이하기 위해 메모리(1404)에 또는 저장 디바이스(1406)상에 저장된 명령들을 포함하는, 컴퓨팅 디바이스(1400) 내에 실행을 위한 명령들을 처리할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 메모리의 형태들에 따라 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들은 필요한 동작들의 부분들을 제공하는 각각의 디바이스(예를 들면, 서버 뱅크, 일 그룹의 고밀도 서버들, 또는 멀티-프로세서 시스템과 같은)와 연결될 수 있다.
메모리(1404)는 컴퓨팅 디바이스(1400) 내에 정보를 저장한다. 몇몇 구현들에서, 메모리(1404)는 휘발성 메모리 유닛 또는 유닛들이다. 몇몇 구현들에서, 메모리(1404)는 비휘발성 메모리 유닛 또는 유닛들이다. 메모리(1404)는 또한 자기 또는 광학 디스크와 같은 다른 형태의 컴퓨터-판독가능 매체일 수 있다.
저장 디바이스(1406)는 컴퓨팅 디바이스(1400)에 대한 대량의 저장을 제공할 수 있다. 몇몇 구현들에서, 저장 디바이스(1406)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고상 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들에 디바이스들을 포함하는 디바이스들의 어레이와 같은 컴퓨터-판독가능 매체이거나 그를 포함할 수 있다. 명령들은 정보 캐리어에 저장될 수 있다. 하나 이상의 처리 디바이스들(예를 들면, 프로세서(1402))에 의해 실행될 때, 명령들은 상기에 기술된 것들과 같은 하나 이상의 방법들을 수행한다. 명령들은 컴퓨터-판독가능 매체 또는 머신-판독가능 매체와 같은 하나 이상의 저장 디바이스들(예를 들면, 메모리(1404), 저장 디바이스(1406), 또는 프로세서(1402)상의 메모리)에 의해 또한 저장될 수 있다.
고속 인터페이스(1408)는 컴퓨팅 디바이스(1400)에 대한 대역폭-집중 동작들을 관리하고, 반면에 저속 인터페이스(1412)는 하위 대역폭-집중 동작들을 관리한다. 기능들의 이러한 할당은 단지 예이다. 몇몇 구현들에서, 고속 인터페이스(1408)는 메모리(1404), 디스플레이(1416)(예를 들면, 그래픽 프로세서 또는 가속기를 통하여), 및 다수의 확장 카드들(도시되지 않음)을 끼울 수 있는 고속 확장 포트들(1410)에 결합된다. 구현에서, 저속 인터페이스(1412)는 저장 디바이스(1406) 및 저속 확장 포트(1414)에 결합된다. 다수의 통신 포트들(예를 들면, USB, Bluetooth®, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트(1414)는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스들, 또는 스위치 또는 라우터와 같은 네트워킹 디바이스에, 예를 들면, 네트워크 어댑터를 통해 결합될 수 있다.
컴퓨팅 디바이스(1400)는 도면에 도시되는 다수의 상이한 형태들로 구현될 수 있다. 예를 들면, 이는 표준 서버(1420)로서, 또는 이러한 서버들의 그룹에서 다수회 구현될 수 있다. 또한, 이는 랩탑 컴퓨터(1422)와 같은 개인용 컴퓨터에서 구현될 수 있다. 이는 랙 서버 시스템(1424)의 부분으로서 또한 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(1400)로부터의 구성 요소들은 모바일 컴퓨팅 디바이스(1450)와 같은 이동 디바이스(도시되지 않음)에서 다른 구성 요소들과 조합될 수 있다. 이러한 디바이스들의 각각은 컴퓨팅 디바이스(1400) 및 이동 컴퓨팅 디바이스(1450) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 연결하는 다수의 컴퓨팅 디바이스(1450)로 구성될 수 있다.
모바일 컴퓨팅 디바이스(1450)는 다른 구성 요소들 중에서 프로세서(1452), 메모리(1464), 디스플레이(1454)와 같은 입력/출력 디바이스, 통신 인터페이스(1466), 및 트랜시버(1468)를 포함한다. 모바일 컴퓨팅 디바이스(1450)는 추가의 저장을 제공하기 위해 마이크로-드라이브 또는 다른 디바이스와 같은 저장 디바이스가 또한 제공될 수 있다. 프로세서(1452), 메모리(1464), 디스플레이(1454), 통신 인터페이스(1466), 및 트랜시버(1468)의 각각은 다수의 버스들을 사용하여 상호 연결되고, 수 개의 구성 요소들은 공통 마더보드상에 및 적절한 다른 방식으로 장착될 수 있다.
프로세서(1452)는 메모리(1464)에 저장된 명령들을 포함하는 모바일 컴퓨팅 디바이스(1450) 내 명령들을 실행할 수 있다. 프로세서(1452)는 개별적이고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서(1452)는, 예를 들면, 사용자 인터페이스들, 이동 컴퓨팅 디바이스(1450)에 의해 구동된 애플리케이션들, 및 모바일 컴퓨팅 디바이스(1450)에 의한 무선 통신의 제어와 같은 모바일 컴퓨팅 디바이스(1450)의 다른 구성 요소들의 조정을 제공할 수 있다.
프로세서(1452)는 디스플레이(1454)에 결합된 제어 인터페이스(1458) 및 디스플레이 인터페이스(1456)를 통해 사용자와 통신할 수 있다. 디스플레이(1454)는, 예를 들면, TFT(박막 트랜지스터 액정 디스플레이) 디스플레이 또는 OLED(유기 발광 다이오드) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(1456)는 그래픽 및 다른 정보를 사용자에게 나타내기 위해 디스플레이(1454)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(1458)는 사용자로부터의 명령들을 수신할 수 있고 그의 프로세서(1452)로의 제출을 위해 변환할 수 있다. 또한, 외부 인터페이스(1462)는 다른 디바이스들과 모바일 컴퓨팅 디바이스(1450)의 근거리 영역 통신을 가능하게 하기 위해 프로세서(1452)와의 통신을 제공할 수 있다. 외부 인터페이스(1462)는, 예를 들면, 몇몇 구현들에서 유선 통신 또는 다른 구현들에서 무선 통신을 제공할 수 있고, 다수의 인터페이스들이 또한 사용될 수 있다.
메모리(1464)는 모바일 컴퓨팅 디바이스(1450) 내에 정보를 저장한다. 메모리(1464)는 컴퓨터-판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 또는 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 확장 메모리(1474)는, 예를 들면, SIMM(단일 인라인 메모리 모듈) 카드 인터페이스를 포함할 수 있는, 확장 인터페이스(1472)를 통해 모바일 컴퓨팅 디바이스(1450)에 또한 제공 및 연결될 수 있다. 확장 메모리(1474)는 모바일 컴퓨팅 디바이스(1450)에 대한 여분의 저장 공간을 제공할 수 있거나, 또는 모바일 컴퓨팅 디바이스(1450)에 대한 애플리케이션들 또는 다른 정보를 또한 저장할 수 있다. 구체적으로, 확장 메모리(1474)는 상기에 기술된 프로세스들을 실행하거나 보완하기 위한 명령들을 포함할 수 있고, 보안 정보를 또한 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(1474)는 모바일 컴퓨팅 디바이스(1450)에 대한 보안 모듈로서 제공될 수 있고, 모바일 컴퓨팅 디바이스(1450)의 안전한 사용을 허용하는 명령들로 프로그래밍될 수 있다. 또한, 보안 애플리케이션들이 해킹가능하지 않은 방식으로 SIMM 카드상에 식별하는 정보를 배치하는 것과 같이, 추가의 정보와 함께, SIMM 카드들을 통해 제공될 수 있다.
메모리는, 예를 들면, 이하에 논의되는, 플래시 메모리 및/또는 NVRAM 메모리(비휘발성 랜덤 액세스 메모리)를 포함할 수 있다. 몇몇 구현들에서, 명령들은 정보 캐리어에 저장된다. 하나 이상의 처리 디바이스들(예를 들면, 프로세서(1452))에 의해 실행될 때, 명령들은 상기에 기술된 것들과 같은 하나 이상의 방법들을 수행한다. 명령들은 하나 이상의 컴퓨터-판독가능 또는 머신-판독가능 매체들과 같은 하나 이상의 저장 디바이스들(예를 들면, 메모리(1464), 확장 메모리(1474), 또는 프로세서(1452)상의 메모리)에 의해 또한 저장될 수 있다. 몇몇 구현들에서, 명령들은, 예를 들면, 트랜시버(1468) 또는 외부 인터페이스(1462)를 통해 전파된 신호로 수신될 수 있다.
모바일 컴퓨팅 디바이스(1450)는 필요한 경우 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(1466)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(1466)는 그 중에서 GSM 음성 호출들(이동 통신들을 위한 글로벌 시스템), SMS(단문 메시지 서비스), EMS(인핸스드 메시징 서비스), 또는 MMS 메시징(멀티미디어 메시징 서비스), CDMA(코드 분할 다중 액세스), TDMA(시분할 다중 액세스), PDC(개인용 디지털 셀룰러), WCDMA(광대역 코드 분할 다중 액세스), CDMA2000, 또는 GPRS(범용 패킷 무선 서비스)와 같은 다수의 모드들 또는 프로토콜들 하에서 통신들을 제공할 수 있다. 이러한 통신은, 예를 들면, 무선-주파수를 사용하여 트랜시버(1468)를 통해 발생할 수 있다. 또한, 단거리 통신은 Bluetooth®, Wi-FiTM 또는 다른 이러한 트랜시버(도시되지 않음)를 사용하는 것과 같이 발생할 수 있다. 또한, GPS(글로벌 위치 확인 시스템) 수신기 모듈(1470)은, 모바일 컴퓨팅 디바이스(1450)상에 구동하는 애플리케이션들에 의해 적절하게 사용될 수 있는, 추가의 내비게이션-관련 및 위치-관련 무선 데이터를 모바일 컴퓨팅 디바이스(1450)에 제공할 수 있다.
모바일 컴퓨팅 디바이스(1450)는 또한 사용자로부터 구두로 말해진 정보를 수신하고 이를 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(1460)을 사용하여 들을 수 있게 전달할 수 있다. 오디오 코덱(1460)은 스피커를 통해, 예를 들면, 모바일 컴퓨팅 디바이스(1450)의 핸드셋에서와 같이 사용자에 대해 가청의 사운드를 유사하게 생성할 수 있다. 이러한 사운드는 음성 전화 호출들로부터의 사운드를 포함할 수 있고, 기록된 사운드(예를 들면, 음성 메시지들, 음악 파일들, 등)를 포함할 수 있고, 모바일 컴퓨팅 디바이스(1450)상에 동작하는 애플리케이션들에 의해 생성된 사운드를 또한 포함할 수 있다.
모바일 컴퓨팅 디바이스(1450)는 도면에 도시되는 다수의 상이한 형태들로 구현될 수 있다. 예를 들면, 이는 휴대 전화(1480)로서 구현될 수 있다. 이는 스마트폰(1482), 개인 휴대 정보 단말, 또는 다른 유사한 이동 디바이스의 부분으로서 또한 구현될 수 있다.
여기에 기술된 시스템들 및 기술들의 다양한 구현들은 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASICs(주문형 집적 회로들), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 그의 조합들로 실현될 수 있다. 이들 다수의 구현들은 데이터 및 명령들을 수신하고, 데이터 및 명령들을 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스에 송신하기 위해 결합된 특수 또는 일반 목적일 수 있는 적어도 하나의 프로그램 가능 프로세서를 포함하는 프로그램가능 시스템상에 실행가능 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로서 또한 알려진)은 프로그램 가능 프로세서에 대한 머신 명령들을 포함하고, 고레벨 절차 및/또는 객체-지향형 프로그래밍 언어로 및/또는 어셈블리/머신 언어로 구현될 수 있다. 여기에 사용되는 바와 같이, 용어들 "머신-판독가능 매체" 및 "컴퓨터-판독가능 매체"는 머신 명령들 및/또는 데이터를 머신 명령들을 머신-판독가능 신호로서 수신하는 머신-판독가능 매체를 포함하는 프로그램 가능 프로세서에 제공하기 위해 사용되는 임의의 컴퓨터 프로그램 제품, 장치, 및/또는 디바이스(예를 들면, 자기 디스크들, 광 디스크들, 메모리, 프로그램 가능 로직 디바이스들(PLDs))를 말한다. 용어 "머신-판독가능 신호"는 머신 명령들 및/또는 데이터를 프로그램가능 프로세서로 제공하기 위해 사용된 임의의 신호를 말한다.
사용자와 상호 작용을 제공하기 위해, 여기에 기술된 시스템들 및 기술들은 사용자에게 정보를 디스플레이하기 위해 디스플레이 다바이스(예를 들면, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 입력을 컴퓨터에 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들면, 마우스 또는 트랙볼)를 갖는 컴퓨터상에 구현될 수 있다. 다른 종류들의 디바이스들이 사용자와 상호작용을 제공하기 위해 또한 사용될 수 있다; 예를 들면, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백(예를 들면, 비주얼 피드백, 청각 피드백, 또는 촉각 피드백)일 수 있고; 사용자로부터의 입력은 음향, 스피치, 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다.
여기에 기술된 시스템들 및 기술들은 백 엔드 구성 요소(예를 들면, 데이터 서버로서)를 포함하거나, 또는 미들웨어 구성 요소(예를 들면, 애플리케이션 서버)를 포함하거나, 또는 프론트 엔드 구성 요소(예를 들면, 사용자가 여기에 기술된 시스템들 및 기술들의 구현과 상호작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터), 또는 이러한 백 엔드, 미들웨어, 또는 프론트 엔드 구성 요소들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소들은 임의의 형태 또는 디지털 데이터 통신의 매개체(예를 들면, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크들의 예들은 근거리 통신망(LAN), 광역 통신망(WAN), 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로로부터 멀리 떨어져 있고 통상 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들상에 구동하고 서로에 대한 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
구조의 관점에서, 방법들 및 시스템들의 기능들 및 장치가 여기에 기술되었고, 몇몇 구현들에서, 기록 방식들을 위한 시스템 및 방법이 제공된다. 기록 방식들을 지원하기 위한 방법들 및 장치의 특정한 구현들이 기술되고, 여기서 명세서의 개념들을 통합하는 다른 구현들이 사용될 수 있다는 것이 당업자에게 명백해질 것이다. 그러므로, 명세서는 특정한 구현들로 제한되지 않아야 하고, 오히려 다음의 청구항들의 정신 및 범위로만 제한되어야 한다.
설명의 전체를 통하여, 장치 및 시스템들은 특정 구성요소들을 갖거나, 구비하거나, 포함한다고 기술되거나, 또는 프로세스들 및 방법들이 특정한 단계들을 갖거나, 구비하거나, 또는 포함하는 것으로 기술되고, 이는 추가적으로 인용된 성분들로 반드시 구성되거나 구성하는 본 발명의 장치 및 시스템들이 존재하고, 인용된 처리 단계들로 반드시 구성되거나 그로 구성하는 본 발명에 따른 프로세스들 및 방법들이 존재하는 것이 고려된다.
특정한 동작을 수행하기 위한 순서 또는 단계들의 순서는 본 발명이 동작가능할 수 있게 유지되는 한 중요하지 않다는 것이 이해되어야 한다. 더욱이, 두 개 이상의 단계들 또는 동작들은 동시에 행해질 수 있다.

Claims (14)

  1. 회로를 포함하는 상-변화 메모리(PCM) 칩에 있어서,
    상기 회로는:
    하나 이상의 비트들을 저장하고 버퍼 신호를 출력하도록 구성된 버퍼;
    출력 제어, 제 1 기록-영역 제어, 및 제 2 기록-영역 제어를 제공하도록 구성된 유한 상태 머신(FSM)으로서, 상기 제 1 및 제 2 기록-영역 제어들은 어느 기록-영역이 스케줄링되는지를 지정하는, 상기 유한 상태 머신;
    상기 출력 제어, 상기 제 1 기록-영역 제어, 및 반전된 버퍼 신호를 수신하도록 구성된 제 1 AND 게이트로서, 상기 반전 버퍼 신호는 상기 버퍼에 의해 출력된 상기 버퍼 신호의 반전인, 상기 제 1 AND 게이트;
    상기 버퍼 신호, 상기 제 2 기록-영역 제어, 및 상기 출력 제어의 반전을 수신하도록 구성된 제 2 AND 게이트;
    상기 제 1 AND 게이트의 출력 신호 및 상기 제 2 AND 게이트의 출력 신호를 수신하도록 구성된 OR 게이트; 및
    상기 OR 게이트의 출력 신호에 따라 상기 버퍼 신호를 기록 구동기에 제공하도록 구성된 스위치로서, 상기 기록 구동기는 상기 버퍼에 저장된 하나 이상의 비트들을 타깃 캐시 라인에 기록하는, 상기 스위치를 포함하고,
    상기 회로는 적어도 두 개의 스테이지들에서 기록 요청들을 스케줄링하도록 구성되고, 제 1 스테이지는 상기 타깃 캐시 라인에 0의 모든 비트들을 기록하는 것을 포함하고, 제 2 스테이지는 상기 타깃 캐시 라인에 1의 모든 비트들을 기록하는 것을 포함하는, 상-변화 메모리 칩.
  2. 제 1 항에 있어서,
    상기 제 1 스테이지는 상기 제 2 스테이지에 선행하는, 상-변화 메모리 칩.
  3. 제 1 항 또는 제 2 항에 있어서,
    제어 회로를 포함하고,
    상기 제어 회로는:
    상기 타깃 캐시 라인에 기록될 기록 유닛에서의 1들의 갯수를 식별하고,
    상기 기록 유닛에서의 상기 1들의 갯수가 상기 기록 유닛 크기의 절반을 초과하는지를 결정하고,
    상기 결정에 기초하여, (a) 상기 기록 유닛에서의 모든 비트들을 반전시키고, (b) 상기 기록 유닛과 연관된 반전 플래그를 저장하도록 구성되고,
    상기 비트들은 반전되고, 상기 반전 플래그는 상기 제 1 스테이지 및 상기 제 2 스테이지 전에 연관되는, 상-변화 메모리 칩.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제 1 스테이지는 0의 비트들을 순차적으로 기록하는 것을 포함하는, 상-변화 메모리 칩.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 제 2 스테이지는 1의 하나 이상의 비트들을 병렬로 기록하는 것을 포함하는, 상-변화 메모리 칩.
  6. 제 3 항에 있어서,
    상기 회로는 상기 제어 회로를 포함하는, 상-변화 메모리 칩.
  7. 제 1 항에 있어서,
    상기 PCM 칩은 단일-레벨-셀(SLC) 칩인, 상-변화 메모리 칩.
  8. 회로를 포함하는 상-변화 메모리(PCM) 칩에 있어서,
    상기 회로는 적어도 두 개의 스테이지들에서 기록 요청들을 스케줄링하도록 구성되고, 상기 적어도 두 개의 스테이지들 중 제 1 스테이지는 0의 모든 비트들을 타깃 캐시 라인에 기록하는 것을 포함하고 상기 적어도 두 개의 스테이지들 중 제 2 스테이지는 1의 모든 비트들을 상기 타깃 캐시 라인에 기록하는 것을 포함하는, 상-변화 메모리 칩.
  9. 제 8 항에 있어서,
    상기 제 1 스테이지는 상기 제 2 스테이지에 선행하는, 상-변화 메모리 칩.
  10. 제 8 항 또는 제 9 항에 있어서,
    제어 회로를 포함하고,
    상기 제어 회로는:
    상기 타깃 캐시 라인에 기록될 기록 유닛에서의 1들의 갯수를 식별하고,
    상기 기록 유닛에서의 상기 1들의 갯수가 상기 기록 유닛 크기의 절반을 초과하는지를 결정하고,
    상기 결정에 기초하여, (a) 상기 기록 유닛에서의 모든 비트들을 반전시키고, (b) 상기 기록 유닛과 연관된 반전 플래그를 저장하도록 구성되고,
    상기 비트들은 반전되고, 상기 반전 플래그는 상기 제 1 스테이지 및 상기 제 2 스테이지 전에 연관되는, 상-변화 메모리 칩.
  11. 제 8 항에 있어서,
    상기 제 1 스테이지는 0의 비트들을 순차적으로 기록하는 것을 포함하는, 상-변화 메모리 칩.
  12. 제 8 항에 있어서,
    상기 제 2 스테이지는 1의 하나 이상의 비트들을 병렬로 기록하는 것을 포함하는, 상-변화 메모리 칩.
  13. 제 10 항에 있어서,
    상기 회로는 상기 제어 회로를 포함하는, 상-변화 메모리 칩.
  14. 제 10 항에 있어서,
    상기 PCM 칩은 단일-레벨-셀(SLC) 칩인, 상-변화 메모리 칩.
KR1020157021045A 2013-01-04 2013-12-20 Pcm 기록 비대칭들을 이용한 기록 가속 KR102127616B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361749041P 2013-01-04 2013-01-04
US61/749,041 2013-01-04
PCT/US2013/076913 WO2014107335A1 (en) 2013-01-04 2013-12-20 Exploiting pcm write asymmetries to accelerate write

Publications (2)

Publication Number Publication Date
KR20150104147A true KR20150104147A (ko) 2015-09-14
KR102127616B1 KR102127616B1 (ko) 2020-06-30

Family

ID=51062423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021045A KR102127616B1 (ko) 2013-01-04 2013-12-20 Pcm 기록 비대칭들을 이용한 기록 가속

Country Status (3)

Country Link
US (1) US9601191B2 (ko)
KR (1) KR102127616B1 (ko)
WO (1) WO2014107335A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061855A (ko) * 2017-11-28 2019-06-05 에스케이하이닉스 주식회사 저항성 메모리 장치를 구비한 메모리 시스템 및 그의 동작 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2524003A (en) 2014-03-10 2015-09-16 Ibm Storage device with 2D configuration of phase change memory integrated circuits
US10497441B2 (en) 2015-07-14 2019-12-03 Hewlett Packard Enterprise Development Lp Determining first write strength
US9691479B1 (en) 2016-04-29 2017-06-27 Hewlett Packard Enterprise Development Lp Method of operating and apparatus of memristor arrays with diagonal lines interconnect between memristor cells

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019943B2 (en) 2000-01-06 2011-09-13 Super Talent Electronics, Inc. High endurance non-volatile memory devices
JP4241175B2 (ja) 2003-05-09 2009-03-18 株式会社日立製作所 半導体装置
US20110029723A1 (en) * 2004-08-06 2011-02-03 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems
KR100909358B1 (ko) * 2007-04-16 2009-07-24 삼성전자주식회사 신뢰성 높은 초기화 데이터를 제공하는 플래시 메모리 장치및 그것의 초기화 방법
KR100882125B1 (ko) 2007-09-06 2009-02-05 주식회사 하이닉스반도체 상 변화 메모리 장치 및 그 동작방법
TWI328816B (en) 2007-12-06 2010-08-11 Ind Tech Res Inst Phase change memory and method of controlling phase change memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
X. Dong 외, "NVSim: A Circuit-Level Performance, Energy, and Area Model for Emerging ...," IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 31, no. 7, 2012. 07.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061855A (ko) * 2017-11-28 2019-06-05 에스케이하이닉스 주식회사 저항성 메모리 장치를 구비한 메모리 시스템 및 그의 동작 방법

Also Published As

Publication number Publication date
US9601191B2 (en) 2017-03-21
US20150340091A1 (en) 2015-11-26
KR102127616B1 (ko) 2020-06-30
WO2014107335A1 (en) 2014-07-10

Similar Documents

Publication Publication Date Title
CN107466418B (zh) 用于多级别单元模式非易失性存储器的成本优化单级别单元模式非易失性存储器
US9524771B2 (en) DRAM sub-array level autonomic refresh memory controller optimization
Yue et al. Accelerating write by exploiting PCM asymmetries
Park et al. Power management of hybrid DRAM/PRAM-based main memory
US8386701B2 (en) Apparatus and method for multi-level cache utilization
KR102484069B1 (ko) 3d 메모리에 대한 액세스 동작들을 위한 계층 모드
US8239613B2 (en) Hybrid memory device
CN106527652B (zh) 用于控制功耗的系统和方法
KR20170053373A (ko) 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
US20060248275A1 (en) Selecting a command to send to memory
KR101944378B1 (ko) 메모리 장치에서의 동적 캐시 사이징 방법 및 이를 포함하는 프로세서
US8385146B2 (en) Memory throughput increase via fine granularity of precharge management
US20180052785A1 (en) Low power data transfer for memory subsystem
JP2019121350A (ja) ストレージデバイスの容量利用率の関数であるプログラミング済みセル記憶密度モードを有するストレージデバイス
KR102127616B1 (ko) Pcm 기록 비대칭들을 이용한 기록 가속
US10528111B2 (en) Apparatuses and methods for indicating an operation type associated with a power management event
Sayed et al. A cross-layer adaptive approach for performance and power optimization in STT-MRAM
Lee et al. Leveraging power-performance relationship of energy-efficient modern DRAM devices
US20190227732A1 (en) Magnetoresistive memory module and computing device including the same
US20200041355A1 (en) Adaptive throttling
Stevens et al. An integrated simulation infrastructure for the entire memory hierarchy: Cache, dram, nonvolatile memory, and disk
US10078447B2 (en) Memory activity driven adaptive performance measurement
US20180137050A1 (en) Low power memory sub-system using variable length column command
CN114556478A (zh) 提高存储器装置中的读取可靠性的方法和系统
US20190042139A1 (en) Moving average valid content on ssd

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant