반도체 메모리에 데이터를 저장하는 SSD는 읽기 및 쓰기 속도와 충격 내성이 HDD보다 우수합니다. 그런 SSD의 구조와 특성에 대해 데이터 시스템 연구가 피터 본치 씨 연구팀이 설명합니다.
Database Architects: What Every Programmer Should Know About SSDs
https://databasearchitects.blogspot.com/2021/06/what-every-programmer-should-know-about.html
HDD에 랜덤 액세스 하려면, 자기헤드를 자기디스크의 올바른 위치에 물리적으로 이동시킬 필요가 있으며, 이 동작에는 10밀리 초 정도 걸립니다. 반면 SSD의 랜덤 액세스는 플래시메모리에서 이루어지므로 100분의 1 정도의 시간으로 충분합니다.
SSD는 큰 파일을 덩어리 그대로 저장하는 것이 아니라 내부에서 저장소의 최소 단위로 분리하여 여러 플래시칩에 저장되며, 그리고 순차 액세스로 모든 플래시칩을 사용할 수 있도록 하드웨어 프리페처(Hardware Prefetcher)가 갖추어져 있습니다. 하지만 플래시칩 단독으로 볼 경우에도 순차적 액세스 및 랜덤 액세스에서 큰 차이가 있는 것은 아니고, 대부분의 SSD가 랜덤 액세스에서 최고속도를 달성할 수 있습니다. 이렇게는 모든 플래시칩을 바쁘게 작동시키기 위해서는 수백 개의 랜덤 IO요청을 동시에 관리해야 하는데, 이에 다수의 스레드를 기동하거나 libaio 등의 비동기 I/O 인터페이스를 사용하여 실현할 수 있다고 합니다.
HDD와 SSD의 또 하나의 차이로는, HDD는 하나의 자기헤드나 자기디스크로 읽거나 쓰기 때문에 순차 액세스에서만 잘 작동하는 반면, SSD는 수십 또는 수백 개의 플래시메모리칩을 사용하여 병렬 액세스를 하기 때문에 두 가지 접근방법 모두에서 잘 작동한다는 점입니다.
SSD의 쓰기속도는 읽기속도보다 10배 정도 느린 약 1ms 정도 소요된다고 합니다. 컨슈머 SSD는 쓰기 후 sync/flush 명령을 실행하여 지연시간을 측정할 수 있습니다. 쓰기의 높은 지연을 보완해 높은 쓰기 대역폭을 실현하기 위해 쓰기도 읽기 때처럼 여러 플래시칩에 동시에 액세스하는 구조를 이용합니다. 쓰기 캐시는 비동기적으로 페이지를 쓸 수 있기 때문에 좋은 성능을 얻기 위해 동시에 많은 기록을 관리할 필요가 없습니다. 그러나 쓰기는 읽기보다 10배나 긴 시간 플래시칩을 차지하기 때문에 대기시간을 완전히 제거할 수는 없습니다.
SSD는 매우 저렴한 고성능으로 진화하고 있습니다. 분치 씨 연구팀은 어떻게 성능을 실현하고 있는지에 대한 자세한 튜토리얼도 소개하고 있습니다.
'IT' 카테고리의 다른 글
Apple의 개인정보 보호기능을 우회하려고 한 중국 기업의 전말 (0) | 2021.07.07 |
---|---|
미국과 중국의 반도체 개발경쟁에서 승패를 결정지을 네덜란드 기업의 정밀기계란? (0) | 2021.07.06 |
또 다시 'iPhone을 망가지도록 하는 Wi-Fi의 이름'이 발견되다...이번에는 공장초기화가 필요 (0) | 2021.07.06 |
모든 조직이 실행해야 할 정부 공식 랜섬웨어 방지 도구 (0) | 2021.07.06 |
Google에 의해 갑자기 '연쇄살인마'로 낙인 찍힌 남성 (0) | 2021.06.25 |
약 1조 원을 은행에서 훔친 북한 해커집단의 수법이란? (0) | 2021.06.22 |
랜섬웨어 공격을 받아 몸값을 지불한 조직의 80%가 두 번째 공격을 받았다 (0) | 2021.06.21 |
자신의 Wi-Fi를 위치정보 서비스에 이용되지 않도록 하는 방법 (0) | 2021.06.17 |