1. PCM이 나타나게 된 배경
Phase_Change Memory 또는 PCM은 오늘날 메모리 기술 분야에서 매력적인 메모리 기술입니다. PCM은 수행능력, 비용, 코드밀집도 등의 향상은 Nand ,NOR flash 메모리를 PCM 으로 바뀌도록 할 것입니다.
1970년 Electronics magazine article 에는 비휘발성이고 다시 프로그래밍이 가능한 오늘 날 Numonyx devices와 매우 유사한 메모리를 소개했습니다. 하지만 이것은 매우 긴 시간동안 수면 위로 나오지 못하고 제품으로 만들어지지 못했습니다.
두 가지의 이유가 존재하는데 가장 큰 이유는 시장 내에서 지금 존재하는 메모리가 다른 어떠한 메모리보다 경제적이기 때문입니다. 대체할 메모리들은 특정 프로세스에서 크기 대 가격 면에서 문제가 되었습니다. 가격은 시장에서 가장 중요한 요소라서 제조비용이 높다면 어떠한 칩도 기회는 없을 것입니다. 몇 년안에 PCM은 DRAM의 가격을 따라잡을 것입니다.
두 번째 이유는 전력소모입니다. 1970년 대 PCM은 쓰기 작업을 하기 위해서 200mA , 25V 를 필요로 했지만 지금은 NOR, NAND flash 칩 수준의 전력 소모가 필요할 뿐입니다.
PCM은 이제 phase-change material에서 고순도의 얇은 막을 생산할 수 있지만 지금의 플래시 메모리는 곧 확장 한계에 도달 할 것입니다. 제조업체들은 4-5년 안에 NAND, NOR 플래시 기술은 25nm, 20nm 정도의 크기 한계에 도달할 것 이라고 예상합니다.
플래시 메모리로 쓰기 작업 시 쓰기 작업은 바이트 단위이지만 덮어쓰기를 할 때는 블락 단위로 덮어 쓰기 해야 합니다. 이것은 작은 단위의 쓰기에 적합하지 않습니다. PCM을 사용할 경우 코드 영역과 데이터 영역은 NVM과 RAM 사이에서 더 이상 분리될 필요가 없습니다. 코드와 데이터 영역이 하나로 합쳐진다면 작은 시스템에선 칩 수 및 전력소모를 줄일 수 있을 뿐만 아니라 시스템디자이너에게 유연성을 제공합니다. 이러한 유연성은 대부분의 시스템에서 비용 혜택을 산출합니다
2. NOR 플래시의 문제점
NOR 플래시는 읽기 작업에 매우 간단합니다. 단지 주소를 입력하면 그 주소에 있는 데이터를 읽을 수 있습니다. 이 것은 메모리 인터페이스에서 가장 간단한 관리입니다.
쓰기 작업 시 문제가 나타나는데 블락 단위로 이루어 지고 그 블락 전체를 지우기 전까지는 다시 프로그래밍을 할 수 없습니다. 블락을 지우는 데는 몇초가 걸립니다. 또 그 블락에 프로그램을 하는 것은 그 것의 반이 걸립니다. 한 워드를 업데이트 하는 매 시간 마다 모든 데이터가 블락 밖으로 또는 안으로 움직이는 것은 바람직하지 않을 것입니다. 이 것은 명확하게 관리되어야 할 문제입니다.
그리고 지우기, 쓰기 작업을 반복한다면 그것은 닳아 없어질 것입니다. 각각의 플래시 메모리에서 블락은 지우기/쓰기 수가 제한되어 있습니다. 그 보장되는 수를 endurance라고 부르는데 보통 한 블락에서만 닳는 것을 막기 위해 wear leveling 라는 알고리즘을 이용하여 한 블락의 마모를 블락 전체로 확산 시키는 방법을 씁니다.
쓰기 작업의 문제를 해결하는 표준 방안은 작업하는 데이터를 두 공간으로 프로그램을 분리 하는 것입니다. 하나는 변화가 작게 일어나는 것, 다른 하나는 빈번하게 변화가 일어나는 것으로 분리합니다. 빈번하게 쓰기 작업이 일어나는 곳을 위해 메모리를 하나 더 추가 하지만 이 방법은 비용과 속도면에서 효율적이지 않습니다.
3. NAND 플래시의 문제점
NAND 플래시는 NOR 플래시 보다 더 많은 단점이 추가 됩니다.
NAND 플래시는 칩 공간을 최소화 하도록 설계 됩니다. 그 기술은 신뢰성이 있지만 지속적으로 데이터를 보장하지는 않습니다. 이것은 에러 코렉션 코드가 필요함을 의미합니다. 하지만 NAND는 한번에 전체 페이지를 읽거나 쓰도록 설정되어 있어서 임의 접근 시 이 방법은 효과적이지 못 합니다. 더구나 NAND의 큰 문제점은 읽기 작업 시 이웃의 비트를 잃어버리게 하는 경향이 있다는 것입니다.
지우기/쓰기 작업시에는 매우 긴 시간이 소비되고 이 때도 endurance가 문제가 된다. 따라서 많은 NAND 시스템에서는 하나의 칩이 추가로 더 사용됩니다. 그 칩은 마모, 오류 수정, 내부유지 등을 관리 합니다. 하지만 PCM을 사용할 경우 이 칩은 불필요합니다.
4. DRAM에 대해서
DRAM 은 지속적으로 비트를 갱신해야 하기 때문에 전력소비가 큽니다. 하지만 쓰기 작업이 느린 것 빼고는 PCM은 DRAM과 매우 유사합니다. 연속읽기가 동일하게 빠르고 임의 읽기는 비슷한 속도입니다.
5. PCM으로 변경
PCM은 진화의 초기 단계에 있습니다. 하지만 이미 SLC 플래시의 endurance를 넘어 섰고 wearleveling 알고리즘이 필요하지 않으면서도 그것의 endurance는 증가할 수 있습니다. 하지만 이 칩의 endurance가 크게 강화되기 전까지는 대량생산을 하지 않을 것입니다.
PCM은 에러코렉션 코드가 필요가 없습니다. 그리고 미래에는 DRAM과 PCM의 공유를 허락하는 인터페이스를 사용할 것입니다.
페이징 오퍼레이팅 시스템을 사용할 필요가 없고 PCM을 위한 소프트웨어는 NAND의 것 보다 더 간단해 질 것입니다. 즉 소프트웨어의 도움 없이 마모문제, bad block 관리, 에러 코렉션, 페이징 코드 요구 등은 더 작아지고 간단해 지며 좀 더 관리하기 쉬워질 것입니다.
'대학교시절' 카테고리의 다른 글
운영체제 과제 #2 (뮤텍스와 세마포어 사용하기) (1) | 2015.09.28 |
---|---|
운영체제 과제 #1 (fork 와 exec 사용하기) (2) | 2015.09.27 |
대학교 C언어 과제 모음 (0) | 2015.09.27 |
프롤로그(Prolog ) 언어를 이용한 교환정렬, 합병정렬, 쾌속정렬, 8-queens 구현 (2) | 2015.05.23 |
PCI Express™ (0) | 2015.04.03 |