잠안오는 밤이다. 그래서 글하나 더써본다.
요즘은 ssd가 필수요소가 된듯한 느낌이 든다. 나는 hdd로 운영하는 컴도쓰고 ssd가 달린 컴도 쓰고 다 쓰는데 그러면서 받은 느낌을 적어본다.
다들 알겠지만 하드는 기계적인 장치고 슫은 전자적인 장치다. 하드는 7200rpm기준으로 플래터가 1초에 120회 회전한다. 한바퀴 회전에 8.3ms쯤 걸리는 셈이다.
게다가 정보가 위치한 플래터의 해당지점까지 보이스코일이 헤드를 옮겨줘야한다. 이것의 반응속도는 1khz라고 한다. 1ms 정도 되노.
빠르고 느린걸 떠나서 신호에 기계적으로 반응하는데 걸리는 시간동안 전기는 기판과 칩셋위에서 몇번을 왕복할수 있을까? 뭐 쉽게 얘기하자면 그래서 빠른거다.
하지만 좀 다른얘기를 해보려한다.
흔히 전송속도와 접근속도가 빨라서 슫 체감이 빠르다고 하는데 그것도 맞는말이지만 이런이유도 있다고본다. 그냥 나의 생각이다.
하드는 순차적으로 읽을땐 빠르지만 헤드가 튀기 시작하면 속도가 초운지하게된다.
플래터 외곽속도가 200메가 찍는다던 하드도 여기저기 물리적으로 위치가 떨어진 데이터를 읽고쓰기 시작하면
윈8 작업관리자상에서 사용율 100%를 찍으면서도 읽기속도가 400kb/s를 간신히 지키는 안습한 상황을 많이 봤다.
이쯤되면 cpu와 램은 자원이 많이 남아도 하드때문에 다른작업은 할 엄두가 안난다.
왜 그럴까? 전송속도와 시크타임만큼 중요한 구조적 원인이다. 하드는 헤드가 몇개든 하나의 엑추에이터가 관장한다.
그리고 이 헤드와 저 헤드가 각자 다른위치에서 정보를 읽어야 할때는 컨트롤러가 일의 우선권을 분석해서 중요한 데이터부터 읽도록 순차적으로 처리한다.
그러니까, 헤드가 따로 다니면서 원하는 위치에서 각자 작업하는게 안된다는거다. 이건 어느 하드나 다 마찬가지다.
이 헤드가 데이터를 읽다말고 저 해드가 읽어야할 데이터를 찾아 이동하는 그 순간에는 전송하는 데이터가 없게되고
헤드가 트랙을 찾고 해당되는 섹터가 플래터가 돌아서 돌아올때까지 기다리는동안 계속된다. 이것은 여기저기 퍼져있는 데이터를 다 읽을때까지 반복된다.
결과적으로 하드가 다중작업을 하게되면 다중작업의 갯수만큼 비레해서 속도가 떨어지는게 아니고 훨씬 더 많이 급락하는 것이다.
헤드가 데이터를 찾아서 튀는 사이사이에 짧지만 무수히 많은 전송속도제로(데이터미전송)의 영역이 속속들이 끼게되기 때문이다.
다수개의 헤드가 다수개의 플래터에서 다수의 동일위치의 데이터를 동시에 읽을땐 플래터와 헤드수가 많은게 좋지만 각자 다른걸 다른위치에서 불러올때는 헤드가 많으나 적으나 별 도움이 안되는 것이다.
하지만 슫은 달랐다. 위에서와 동일한 일을 시켜보아도 읽기속도가 200mb/s 이하로는 안떨어지는게 아닌가.
사용율그래프역시 하드와 동일하게 100%을 찍으며 떨어질줄을 모르고 전송속도도 일반적인 시퀀셜에 훨씬 못미치는 상황이었지만
읽기속도가 절대 200밑으로는 떨어지지 않았다. 다른프로그램을 실행하거나 작업을 더 하기에도 별다른 문제가 없었다.
왜 그럴까? 슫에는 기계적인 장치가 없다. 전부 반도체 메모리 위에서 이루어진다. 따라서 데이터가 조각이 나있든 물리적으로 위치한 칩이 다르든 상관이 없다.
메모리주소만 가지고 전자가 패턴타고가서 데이터를 읽어오는거라서 소요시간이나 접근시간이 제로에 가깝다. 또한 하드처럼 한번에 하나의 일만 하는것도 아니다.
아닌것도 있지만 대부분 슫 컨트롤러는 멀티코어화 되어있고 원래부터 여러명령을 한번에 처리할수있다.
게다가 기계적인구성이 전혀없기때문에 하드에서처럼 동시다발적으로 일을 시켜도 일의 갯수에 따라 비례해서 전송속도가 떨어질뿐 다른요인은 없다시피한다.
요약해서 한마디로 말하자면, 하드처럼 전송속도하락이 작업갯수비례보다 더 크게 급락하지 않고,
데이터가 들어오지 않는 아웃타임도 하드에 비하면 없는것과 마찬가지인점이 하드와 슫간 성능차이에 결정적인 원인이라 할수있겠다.





