솔리드 스테이트 드라이브
솔리드 스테이트 드라이브(, SSD) 또는 솔리드 스테이트 디스크()는 반도체를 이용하여 정보를 저장하는 장치이다.
솔리드 스테이트 드라이브는 순수 전자식으로 작동하므로 기계식인 하드 디스크 드라이브(HDD)의 문제인 긴 탐색 시간, 반응 시간, 기계적 지연, 실패율, 소음을 크게 줄여 준다. 반면에 DRAM이 아닌 플래시 메모리가 적용된 SSD의 경우, 데이터 접근 시간이 아닌 연속적인 읽기와 쓰기에 대해 하드 디스크보다 속도가 낮은 경우가 대부분이었다. 하지만 최신 기술이 적용된 SSD의 경우, 대부분 하드 디스크 드라이브 이상의 읽기와 쓰기 속도를 낸다.
SSD는 1950년대 두 개의 기술과 함께 탄생하였다: 자기 코어 메모리, CCROS. 이러한 보조 기억 장치들은 진공관 컴퓨터 시대에 모습을 드러냈다. 그러나 이들에 대한 사용은 더 값싼 드럼 기억 장치의 도입으로 중단되었다.
나중에 1970년대와 1980년대 SSD는 IBM, 암달(Amdahl), 크레이의 초기 슈퍼컴퓨터용 반도체 메모리에 구현되었으나 과도하게 비싼 가격으로 인해 거의 쓰이지 않았다. 1970년대 말에 제너럴 인스트루먼츠는 전기적으로 변경 가능한 ROM(EAROM)을 생산하여 차기 NAND 플래시 메모리와 어느 정도 비슷하게 동작하였다. 그러나 10년 수명을 달성하지 못했고 수많은 회사가 이 기술을 포기했다. 1976년 데이터램은 최대 2 MB의 솔리드 스테이트 스토리지를 갖춘 벌크 코어라는 이름의 제품을 판매하였으며, 디지털 이큅먼트 코퍼레이션(DEC)와 데이터 제너럴(DG) 컴퓨터와 호환되었다. 1978년 텍사스 메모리 시스템즈는 16 킬로바이트 RAM 솔리드 스테이트 드라이브를 도입하여 탄성파 자료를 위해 석유 기업에 사용되었다. 이듬해 스토리지테크는 최초의 RAM 솔리드 스테이트 드라이브를 개발하였다.
1989년 Psion MC 400 노트북 컴퓨터는 플래시 기반 "솔리드 스테이트 디스크" 카드 형태의 이동식 스토리지를 위한 4개의 슬롯을 포함하였으며, 이는 Psion Series 3에 쓰인 플래시 메모리 카드의 종류와 동일한 것을 사용한 것이다.
1991년, 샌디스크는 20 MB의 SSD를 만들어 1,000 달러에 판매하였다.
엔터프라이즈 플래시 드라이브(Enterprise flash drives, EFD)는 높은 입출력 성능(IOPS), 신뢰성, 에너지 효율성, 더 최근에는 꾸준한 성능이 필요한 응용 프로그램들을 위해 설계되었다.대부분의 SSD 제조업체들이 비휘발성 플래시 메모리를 사용하여 일반 소비자용 SSD를 제조한다. 이 플래시 메모리 기반 SSD는 "플래시 드라이브"라고 부르며 배터리가 필요하지 않다. 이들은 표준 디스크 드라이브 크기(1.8인치, 2.5인치, 3.5인치)이나 PCI 익스프레스 , SATA , M.2로 만든다. 게다가 비휘발성이므로 플래시 SSD가 전원이 꺼져 있는 상태에서도 기억 정보를 지속적으로 보유할 수 있게 해 주므로 데이터 영속성을 보장한다. 플래시 메모리 SSD는 디램 SSD보다 느리며 일부 모델은 대형 파일을 다룰 때 전통적인 하드 디스크 드라이브보다 속도가 더 느리지만 움직이는 부품이 없기에 보통의 기계적 디스크에서 찾을 수 있는 검색 시간(seek time)과 다른 지연 시간은 무시할만하다.SSD의 성능은 장치에 쓰이는 병렬 NAND 플래시 칩의 수에 따라 달라진다. 단일 낸드 칩은 좁은 (8/16비트) 비동기 입출력 인터페이스에 추가적인 높은 기본 입출력 레이턴시로 인하여 상대적으로 느리다.. 다중 낸드 기기들이 SSD 안에서 병렬로 동작할 때 부하가 장치끼리 고르게 분배된다면 대역폭은 커지며 높은 레이턴시를 숨길만도 한다.
마이크론/인텔 SSD는 데이터 스트리핑 (레이드 0과 비슷)과 인터리빙 기술을 사용하므로 더 빠른 플래시 드라이브를 만들게 되었다. 이로써 초당 250 MB에 다다르는 읽기/쓰기 속도를 갖는 매우 빠른 SSD를 만들 수 있게 되었다.
2013년 기준으로, 보급형 드라이브는 보통 멀티 레벨 셀(MLC) 플래시 메모리를 사용하며 이는 싱글 레벨 셀(SLC) 플래시 메모리에 견주어 신뢰성과 속도가 떨어진다. 이는 SSD의 내부 디자인 구조로 완화시킬 수 있는데 이를테면 웨어 레벨링 알고리즘을 위한 여분의 용량과 인터리빙이 그것이다. 이를테면 최근에 퓨전 멀티시스템즈사가 제조한 ATTO 벤치마크에서 단일 PCIe 싱글 레벨 셀 기억 장치는, RAID 0으로 설정한 4개의 MLC 기반의 인텔 X-25M의 성능을 앞지를 수 있었다. 2014년 이후로는 SLC 플래시 메모리를 사용한 SSD는 제조단가가 비싸기 때문에, 사실상 보급형에서 전문작업을 필요로 하는 기기에 사용된다. MLC 또는 TLC 플래시 메모리를 사용한 제품이 일반적으로 사용되며, 저렴하게 SSD를 이용하려는 사용자는 TLC SSD를, 오래 사용하거나 보다 안전하게 정보를 저장하려는 사용자는 MLC SSD를 사용한다. 상대적으로 TLC 플래시 메모리가 MLC에 비해 안정성이 떨어지기에, TLC 낸드 사용 제품의 경우, SSD 제조사는 TLC의 한계를 보완하기 위해 컨트롤러 개선, SLC 버퍼 등의 대책을 사용하고 있다.
셀 레벨
한 셀에 몇 단계의 데이터를 담는가에 따라 SLC와 MLC로 나누기도 한다. 그리고 MLC의 하위분류(?)로 TLC와 QLC가 있다.
현재 기술발달로 읽기 쓰기가 절대적인 차이가 나지 않게 됐다. 단적으로 SLC인 메모리보다 MLC인지 TLC인지 헷갈리는 Sandisk Z80이 더 빠른 쓰기와 4k속도를 자랑한다. MLC보다 빠른 쓰기 읽기의 TLC메모리가 나오고 있고, 읽기 속도만큼은 TLC도 100MB가 넘어가는게 보통이 되가고 있다. 다만 읽기속도는 제한을 걸어 놓은게 많다. 보통 이럴 때에는 최대130MB라고 써놓고 쓰기 속도를 알려주지 않는다.
SLC는 셀당 1비트를 담는 것이고, MLC는 한 셀에 2비트를 담는 것이다. 당연히 용량대비 가격은 MLC가 싸지만, 쓰기 속도가 매우 느리다. 다행이라면 읽는 속도는 별 차이 없다는 것이다. 싼 가격 때문에 대부분의 소비자용 제품이 MLC다. SLC 제품은 보통 전문가용이라고 광고를 하고 있는데 가격이 바로 몇 배로 올라간다. MLC의 또 하나의 단점은 기록 허용 횟수가 SLC에 비해 작다는 것이다.
디램과 같은 휘발성 메모리를 기반으로 한 SSD는 매우 빠른 데이터 접근 속도를 보인다. (0.01 밀리초 이하이며 주로 플래시 SSD나 전통적인 HDD의 레이턴시에 발목이 잡히는 응용 프로그램을 가속하는 데 쓰인다. 디램 기반의 SSD는 보통 내부 전지나 외장 AC/DC 어댑터, 그리고 백업 스토리지 시스템을 사용하여 데이터 영구성을 보장한다. 그러나 외부 자원으로부터 전력이 드라이브에 공급되지는 않는다. 전원이 손실되면 전지는 모든 정보가 램으로부터 백업 스토리지에 복사되는 동안 전원을 제공한다. 전원이 되돌아오면 정보는 백업 스토리지로부터 램으로 복사되며 SSD는 일반적인 기능을 수행한다. (이는 현대의 운영 체제에서 제공하는 최대 절전 모드와 비슷하다)
이러한 종류의 SSD는 보통 일반적인 PC와 서버에 쓰이는 같은 종류의 디램 모듈로 되어 있어 더 큰 모듈로 대체하거나 교환할 수 있다.
(직접적인) 인피니밴드 연결이나 빠른 네트워크로 된 이차 컴퓨터는 램에 기반을 둔 SSD로 사용된다.
디램 기반 SSD는 플래시 드라이브에 비해 가격이 비싸기 때문에 보통 일반 소비자는 사용하지 않는다.
SSD를 컴퓨터에 장착한 다음 가장 먼저 설정해야 할 것이 AHCI(Advanced Host Controller Interface) 설정이다. AHCI는 운영체계 등의 소프트웨어가 하드디스크 등의 S-ATA 연결 장치와 데이터를 주고 받을 수 있도록 제어하는 기술을 뜻한다. 이는 NCQ(Native Command Queuing, 데이터 입출력 성능을 효율적으로 관리하는 기술)를 지원하여 하드디스크의 입출력 속도를 향상시키고 데이터 병목현상도 방지할 수 있다. 특히 SSD의 특징인 빠른 데이터 전송속도를 가장 효과적으로 활용할 수 있게 한다.AHCI 설정은 메인보드의 바이오스(CMOS) 설정 화면에서 할 수 있는데, PC 전원을 켠 직후 ‘Delete’ 키나 ‘F2’ 키를 누르면(메인보드에 따라 다름) 설정 화면으로 들어간다. 바이오스 설정 화면 구성 역시 메인보드에 따라 다르지만, 대부분 ‘S-ATA Configuration’(또는 Storage Configuration) 메뉴에서 AHCI 기능을 활성화할 수 있다(기본 설정은 ‘IDE’다).참고로 AHCI는 운영체계를 설치하기 전에 설정하는 것이 좋다. 만약 운영체계 설치 후 AHCI를 설정하면 시스템 오류로 인해 윈도우가 부팅되지 않고 블루 스크린(오류 화면)이 나타날 수 있다.
하드 디스크의 경우, 디스크에 기록된 데이터를 읽기 위해서는 데이터를 읽어내는 헤드(바늘)가 물리적으로 데이터가 기록된 위치까지 이동해야 하므로 이동에 일정한 시간이 소요된다.
(이러한 시간을 지연시간, 혹은 레이턴시 등으로 부른다.) 따라서 하드 디스크의 경우 데이터를 읽기 위한 요청이 주어진 뒤에 데이터를 실제로 읽기 까지 일정한 시간이 소요되는데, 이 시간을 일정한 한계(약 10ms)이하로 줄이는 것이 불가능에 가까우며, 데이터가 플래터에 실제 기록된 위치에 따라서 이러한 데이터에의 접근시간 역시 차이가 나게 된다. 또한 자주 사용되는 두개의 연관된 데이터가 서로 물리적으로 떨어진 위치에 기록된 경우, 두개의 데이터를 읽기 위해 헤드는 쉴새 없이 움직여야 하며 이러한 과정 역시 시간을 소모한다.
하드 디스크의 이러한 제한을 극복하기 위해 다양한 방법이 제안되었으나, 플래터와 헤드로 이루어진 물리적 구조를 유지한 상태에서는 그 한계가 분명하였다.
이때 대안으로 등장한 것이 솔리드 스테이트 드라이브 이다.
솔리드 스테이트 드라이브의 경우 모든 데이터는 플래시 메모리에 저장되어 즉각 읽고 쓰기가 가능하므로, 하드 디스크와는 달리 지연시간이 0에 가깝다.(실제로는 약 0.1ms 정도로, 하드 디스크의 1/100 수준이다.) 또한 데이터가 파편화 되어 있는 경우에도 하드 디스크 와는 달리 지연시간이 전혀 늘어나지 않는다.