보조기억장치? 인터페이스?
보조기억장치는 컴퓨터에서 'HDD(하드디스크), SSD'를 말하는 것으로 데이터를 보관하거나 보관한 데이터를 원할때마다 꺼내주는 역할을 한다. 작업을 위한 주기억장치(램, 메모리)와 차이가 있는데, 사람으로 비유하면 보조기억장치는 뇌, 주기억장치는 손이라 볼 수 있다.
인터페이스는 규격, 연결단자, 연결방식 등을 의미하는데 요소간의 연결을 목적으로 한다.
여기서 인터페이스는 컴퓨터의 메인보드와 보조기억장치를 연결하는 것을 목적으로 하는 인터페이스를 말한다. 아래에 언급하는 모든 것들은 인터페이스를 의미하며, 인터페이스 속에서도 역할이 달라 같이 쓰일 수도 있다.
PATA → SATA
불과 십년전만 해도 왼쪽과 같은 넓은 선을 활용해서 보조기억장치를 활용했다. 하지만 이 장치는 공간도 많이 차지하며, 계속해서 발전하는 다른 구성요소들과 수준을 같이 하기 위하여 지속 발전했다.
그리고 SATA라는 보다 성능 좋은 칼국수면발 선이 탄생했다. 여기서 SATA라는 것은 단순 선을 의미하는 것이 아니라, 데이터의 전송 방식 등을 포함하는 인터페이스라는 큰 개념을 가진다.
SATA는 SATA1, SATA2, SATA3라는 발전과정을 거쳐 현재 SATA3에 머물러있다.
추가로 인터페이스에는 물리적, 논리적 인터페이스가 존재하는데, SATA라는 새로운 물리적 인터페이스가 등장하면서 그 인터페이스를 잘 활용할 수 있도록 논리적 인터페이스인 AHCI (고급 호스트 컨트롤러 인터페이스)가 등장했다. 인터페이스를 위한 인터페이스라 할 수 있다.
인터페이스는 많은 것을 아우르는 개념이라 우리는 여러 인터페이스가 어렵다고 느껴진다.
HDD → SSD
PATA에서 SATA라는 인터페이스 혁신을 HDD에 적용했지만 인류는 계속 진보했고 보조기억장치를 HDD에서 SSD로 발전시켰다. 데이터 저장이라는 목적은 같지만 방식은 전혀 다르다. 속도, 안정성, 크기 등의 이점이 있다. 단, 그만큼 가격이 비싸기때문에 SSD와 HDD 같이 활용하기도 한다.
SATA3 → M.2
애초 SATA라는 물리적 인터페이스는 HDD의 성능개선에 초점을 맞추고 개발되어진 것이라 SSD라는 새로운 보조기억장치에 맞는 새로운 인터페이스가 필요했다. 또, 노트북과 같은 휴대용 PC와 다양한 컴퓨터의 경량화 작업에 가속도가 붙으며 또 다른 인터페이스가 필요하게 되었다. 그로 인해, mSATA와 같은 SATA를 발전시킨 다양한 인터페이스들이 등장한다.
최종적으로 M2라는 물리적 인터페이스가 자리를 잡았다. M2는 SATA3 기반, PCIe 기반 M2인터페이스로 존재했는데, SATA3 기반 M2 인터페이스가 적용된 SSD는 기존 SATA3 인터페이스와 성능차이가 크게 없다는게 대부분의 의견이다.
PCIe 기반 M2 인터페이스를 적용해야 비로소 성능 우위를 경험할 수 있다.
여기서, PCIe는 새로 만든 인터페이스가 아니라 기존 메인보드에 존재하는 인터페이스로 보조기억장치가 아닌 그래픽카드, 사운드카드 등과 연결하는 인터페이스였다. 그 인터페이스를 기반으로 활용해 M2 인터페이스를 만들었다.
NVMe M.2 SSD
SATA라는 물리적 인터페이스 변화에 AHCI라는 논리적 인터페이스 변화가 따라갔듯이, M2라는 물리적 인터페이스 변화에 NVMe라는 논리적 인터페이스 변화가 따라갔다. 같은 원리로 M2라는 인터페이스를 잘 활용하기 위한 인터페이스라고 볼 수 있다. 그래서 최종적으로, NVMe 논리적 인터페이스와 PCIe 기반 M2 물리적 인터페이스를 갖춘 SSD가 일반 사용자가 사용하기에 최강 스펙이라고 볼 수 있다. 물론, 엄청 비싸다. 좀 더 비싸다.
호환
모든 컴퓨터 기기가 해당되는 내용이겠지만 가장 중요한 것은 호환이다. 아무리 성능 좋은 기기를 가지고 있다하더라도 호환이 되지 않으며 실행되지 않는다. 메인보드와 보조기억장치를 연결하는 인터페이스이기때문에 메인보드가 그 인터페이스를 지원하는지를 꼭 따져봐야한다.
'Googling > cs' 카테고리의 다른 글
[DB] 트랜잭션 격리수준과 부정합 이슈 (feat. Dirty Read ~ Phantom Read) (0) | 2022.04.23 |
---|---|
[CS] 동기(synchronous)와 비동기(Asynchronous)를 쉽게 이해해보기 (feat. 싱크로나이즈드 수영과 핫도그) (0) | 2022.03.18 |
[DATA] 데이터양 단위 이해 (feat. B, MB, GB, TB + LTE 속도?) (0) | 2021.06.04 |
[HTTP] RESTful API 이해 (feat. 신입개발자 자격요건) (0) | 2021.05.18 |
[HTTP] 쿠키와 세션 (feat. 신입개발자 면접질문) (0) | 2021.05.13 |