RAM을 디스크 드라이브/SSD보다 훨씬 빠르게 만드는 것이 정확히 무엇인지에 대한 세부 사항을 찾을 수 없습니다. RAM이 데이터를 읽고 쓰는 방식과 영구 저장 장치의 차이점은 무엇입니까? 그토록 급격한 차이를 초래하는 근본적으로 다른 점은 무엇입니까? 영구 저장소와 임시 저장소. 느린 읽기/쓰기 비교. RAM의 무엇이 훨씬 더 빨라지나요?
답변1
물리적 수준에서 일어나는 일과 CPU와 이러한 장치의 속도에 영향을 미치는 장치 사이의 인터페이스에서 일어나는 일 사이에는 많은 차이가 있습니다.
참고: 다른 유형의 RAM(FeRAM, PRAM 등)과 기타 저장 시스템이 있습니다. 여기서는 컴퓨터에 사용되는 주요 구성 요소만 고려합니다.
신체적 차이
RAM에서 사용되는 "단순" 전자 상태 변경과 HDD 및 SSD 장치에서 사용되는 물리적 세계 변경 사이에는 근본적인 차이가 있습니다.
기존 RAM은 상태를 유지하기 위해 소수의 트랜지스터를 사용합니다. 트랜지스터는 순수하게 전류를 기반으로 작동하는 본질적으로 빠른 장치입니다. CPU와 동일한 방식으로 작동하며 속도도 불안정하다는 단점이 있습니다. 즉, 전원이 꺼지면 데이터가 손실됩니다.
하드 드라이브에는 훨씬 더 많은 물리적 변화가 발생합니다. 전자 회로의 상태를 변경하는 대신 본질적으로 물리적 매체를 강제로 변경하려고 합니다. HDD의 경우 바늘을 재자화하는 과정과 유사합니다. 자석을 사용하여 원자를 밀어서 자기장을 정렬해야 하며 이 과정은 순수 전자 기반 트랜지스터 스위치에 비해 상대적으로 느립니다.
SSD(Solid State Drive)는 일반 RAM과 하드 드라이브 사이의 이상한 중간 지점으로, 본질적으로 전자 저장 장치이지만 SSD에 쓰기 위해서는 물리적인 변화가 여전히 발생합니다. 전자는 더 높은 전압을 사용하여 일반적으로 가고 싶지 않은 영역으로 강제로 들어가야 합니다. 더 높은 전압과 강제 쓰기 작업에는 단순한 트랜지스터 상태 변경보다 더 많은 작업이 필요합니다. 읽기는 약간 더 복잡할 뿐만 아니라 약간 더 느려지게 만듭니다. 플래시 스토리지 작동 방식에 대해 더 자세히 썼습니다.이 답변에.
인터페이스 차이점
또한 고려해야 할 이러한 장치에 대한 인터페이스의 특성도 있습니다. HDD 및 SSD와 같은 저장 장치에는 주소와 데이터 라인을 프로토콜 기반 명령 인터페이스로 결합하는 컨트롤러와 인터페이스가 있습니다. 어떤 작업을 수행하려면 컨트롤러가 디코딩하고 실행해야 하는 give me the data from block 3192
명령 을 보내야 합니다. write this <data> to block 549,321,974
물리적 HDD의 회전 특성으로 인해 각 데이터 요청이 이전 데이터를 순서대로 따를 때 가장 잘 작동합니다.
SSD는 훨씬 더 관대한 장치이며 데이터 요청이 순서대로 진행되는 것에 대해 실제로 신경 쓰지 않지만 "간단한" 인터페이스를 통해 전송된 명령을 처리하려면 장치에 컨트롤러가 여전히 필요합니다.
컨트롤러에 대한 HDD 및 SSD 인터페이스(및 일반적으로 최신 프로토콜 기반 인터페이스)는 "직렬" 모드에서 작동합니다. 이것이 의미하는 바는 기본적으로 명령을 작성하기 위해 반복적으로 전환해야 하는 단일 데이터 라인이 있다는 것입니다. 단일 바이트의 데이터를 전송하려면 직렬 회선이 최소 8번 전환되어야 합니다. 데이터 외에도 컨트롤러에 읽기 또는 쓰기를 요청하는지 여부를 알려주는 명령에 대한 바이트를 보내는 데 많은 "오버헤드"가 있습니다.
반면 RAM은 CPU에 대한 인터페이스가 매우 넓으며 "병렬" 인터페이스이기도 합니다. 여기에는 여러 개의 주소와 데이터 라인이 모두 있으며 마샬링 데이터 입출력을 처리하기 위해 실제 컨트롤러(CPU에 내장된 메모리 컨트롤러 제외)가 필요하지 않습니다. CPU는 주소 라인을 원하는 대로 변경하고 읽기 또는 쓰기 중인지 알려주는 또 다른 두 라인을 설정한 다음 여러 데이터 라인을 통해 데이터를 보내기 시작합니다. 이는 훨씬 더 복잡한 배열이지만 전용 "와이드" 데이터 버스로 인해 더 큰 데이터 블록을 한 번에 전송할 수 있어 결과적으로 더 큰 대량 속도를 달성할 수 있습니다.
나는 내 인터페이스의 차이점에 대해 더 많이 썼습니다.랜덤 액세스 메모리(Random Access Memory)가 "랜덤 액세스(Random Access)"라고 불리는 이유에 대한 답변