|
기획
|
|
전송 2003-04-28 00:00
| [칼럼]
|
그것이 알고 싶다! Serial ATA!
|
|
3. Serial ATA - 기술적 특징 
|
더 넓어진
대역폭
1세대 SATA에서 한
채널당 전송 대역폭은 1.5 Ghz이다. (2세대는 3Ghz, 3세대는 6Ghz의 로드맵을 가지고 있다) 이러한 높은 대역폭을 통해서
초당 150MB를 전송할 수 있게 된다. 즉, 현재 PATA의 최대 대역폭 100~133MB/s보다 향상된 수치이다. 그러나 PATA의
한 채널에 두 개의 디바이스가 연결되어 있는 경우 두 개의 디바이스가 대역폭을 공유하기 때문에, 한 채널당 한 개의 디바이스만 연결하도록
되어 있는 SATA의 대역폭이 훨씬 여유가 많다. 또한 PATA는 같은 채널로 송신과 수신이 순차적으로 이루어지는 동기식 동작을 하지만,
SATA는 한 채널에 송신과 수신의 라인이 따로 갖춰져 있어서 비동기 동작이 이루어진다. (위의 그림에서 보았듯 한 채널에는 +A,
-A, +B, -B의 신호 선이 갖춰져 있어 A, B가 각각 송신과 수신 중 한가지 역할만 담당하게 된다)
병렬...? 직렬...!
그런데, 여기서 의문점이
생길 것이다. 병렬연결이 훨씬 핀의 갯수가 많기 때문에 많은 양을 전송할 수 있을텐데 왜 직렬연결이 더 빠른것일까? 답은 데이터
왜곡(SKEW)와 관련이 있다.
'명절에 부침개를 부치기 위해 계란 한판이 필요하다. 이것을 50미터 떨어진 슈퍼에서 사온다고 생각해보자. 계란을 사서 이것을 집으로
들고 가야 되는데, 1개씩 30명이 들고 나르는 상황을 생각 해보자. 30명이 계란을 들고 오다 보면, 집으로 돌아오는 도중에 친구를
만나서 다른 곳으로 새버리거나, 운 나쁘게 같이 들고 가던 녀석과 부딪혀서 계란이 깨져버린다든지 하는 불상사가 생길 수도 있고, 계란을
들고 가는 사람들의 걸음걸이 속도가 각기 다르다 보니 요리를 시작하려면 모든 계란이 도착할 때까지 기다려야 할 것이다. 이런 경우라면
차라리 두 명이 한번에 15개씩 들고 가는 것이 빠를 것이다.'
병렬연결과 직렬연결도
마찬가지이다. 얇아서 신호 간섭에 약한 선을 여러 가닥 쓰는 것보다 높은 주파수를 안전하게 운반할 수 있는 적은 수의 선을 쓰는 편이
효율이 좋은 것이다. 물론 심부름값(제조 단가, 신호 전송에 필요한 전류량 등...)도 적게 들테고....
Differential 전송
SATA의 신호 전송은
Differential 전송 기법을 이용한다. 이것이 무엇인고 하면...
[ 그림은 아날로그 신호를 기준으로 묘사되어 있는데, 디지털 신호는 곡선으로
표현되지 않는다 ]
일반적인 신호 전송 체계는
신호(+)와 접지(-)로 구성된다. 접지극의 위상은 항상 0이며, 신호극의 위상 변화로 신호를 읽어낸다. 그러나 Differential
전송 기법은 (+)극도 신호극이고 (-)극도 신호극이다. 일반적인 전송체계와 차이가 있다면, 접지극의 위상인 0을 기준으로 (+)극의
위상차를 계산해서 신호를 판독하는 대신, (+)신호극과 (-)신호극의 위상차를 판독하는 것이다. 물론 0011을 전송하기 위해 +극과
-극을 모두 0011로 표현하는 것은 아니며, (-)신호극을 (+)신호극의 역상인 1100으로 만들어서 (+)신호와 (-)신호를 나란히
놓고 봤을 때 2배의 신호강도를 갖게 만든다.
때문에 PATA 방식에서
5v ~ 0v 의 큰 위상차를 이용했던 것에 비해 0.5v 라는 낮은 위상차를 가지고도 +0.5 ~ -0.5v로 활용하기 때문에 신호를
정확히 전송할 수 있게 되었다. 0.5v의 위상차가 1v의 위상차의 효율을 갖는 것이다. 또한, Differential 전송은 노이즈가
발생하는 경우에도 두 신호극이 함께 변하게 되어 위상 차이는 변하지 않으므로 노이즈에 대한 면역력이 상대적으로 강하다.
※ SATA에서 활용되는
전송기법은 설명한 Differential 기법과 약간 다르다. 아래의 인코딩 알고리즘 부분을 참조.
8bit / 10bit Encoding
위에서 대역폭이
1.5Ghz, 즉 1.5Gbps 라면 이론적으로 187.5 MB/s의 대역폭을 가져야 하는데 왜 150MB/s인지 의문을 가지는 독자도
있을 것이다. 이것은 에러 보정 알고리즘(CRC)에 의해서 1Byte - 8bit의 신호를 10bit 코드로 변환해서 전송하기 때문이다.
즉, 매 8bit마다 2bit의 보정 코드가 붙기 때문에 전체 대역폭의 80% (1.2Gbps) 가 실제 데이터 전송 효율인것이다.
|
인코딩 알고리즘
: 이해해야 할 부분은 아니며, 대략 이런 과정으로 이루어진다는 것만 구경하고 넘어가도록 하자
SATA에서
1바이트, 즉 8비트의 데이터는 최종적으로 에러 보정용 비트를 포함한 10비트의 데이터로 변환된다. 8비트의 데이터는 일단
Dxx.y의 형식으로 표현하는 Character name으로 변환된다. 예를 들어[10110010]이라는 8비트의 데이터 배열이
주어지면, 앞에 있는 다섯 자리의 비트 순서를 뒤집은 [01101]가 xx에 해당하며, 뒤의 세자리 비트 순서를 뒤집은 값
[010] 이 y에 해당한다. 즉, 위의 데이터 비트는 D13.2 라는 Character name으로 나타낼 수 있다.
※ SATA가
PATA에 비해 압도적으로 에러율이 낮은 이유는 데이터변수만 에러 보정 코드를 담는 것이 아니라 제어변수에도 에러 보정 코드를
담는 이유 때문이다. 전송되는 신호를 Character name으로 나타낼 때 데이터변수는 Dxx.y의 형태로, 제어변수는
Kxx.y의 형태로 나타내며, 변환되는 차트도 별도로 구성되어 있다. 아래의 설명은 데이터변수만을 기준으로 설명한다.
결과적으로 8비트가
5비트/3비트 로 쪼개지게 되는 것인데, 나눠진 비트는 에러 보정을 위해 비트가 하나씩 추가되어 6비트/4비트 의 데이터로
변환된다. Character name은 정해진
차트 에 의해 의해 최종적으로 10bit 코드로 변환된다. 예를 들었던 D13.2는 원래의
비트코드가 [10110010]였는데, 위의 차트대로 변경된 10비트 코드는 [1011000101]이 된다.
차트를 통해 몇몇
코드가 변환된 것을 보면 (+) 신호와 (-)신호가 독립적으로 생성이 되며, 서로 위상 반전이 된 상태로 생성되는 것을 볼 수
있다. D00.0 을 예로 들어 살펴 보면 (+)극으로 [0110000100], (-)극으로 [1001111011]이 조합되어
전송된다. 그러나 일부 코드, D3,5,6, D9~D14 등은 +와 -극으로 동일한 신호가 전송되어 원래의 Differential
전송 알고리즘에서 제창된 개념과는 다르게 동작한다. 그리고 Dxx.1,2,5,6 도 위상 반전이 아닌 동일한 신호가 전송되기
때문에, 최종적으로 xx부분과 .y 부분을 합친 전체 코드가 위상 반전형태로 전송되는 경우는 극히 적다.
약간의 규칙을
발견할 수 있었는데, +와 -극으로 같은 신호가 전송되는 경우는 5b/6b일때는 변환된 코드에서 1의 갯수가 항상 홀수라는 점,
그리고 3b/4b일때는 짝수라는 점이다. 5b/6b는 EDCBA의 배열을 ABCDE의 순으로 놓은 뒤, 1이 홀수개가 되도록
0이나 1을 뒤에 붙여서 만들어진다. 그리고 3b/4b는 HGF의 배열을 FGH순으로 적고 뒤에 짝수가 되도록 0이나 1을
붙인다. 위의 규칙을 적용하면 전송된 데이터가 중간에 오염되었는지 여부를 금방 확인해 낼 수 있다. +극의 반전된 위상이 -극을
통해 전달 되도록 만들어진 부분은 위의 규칙대로 홀수/짝수 개를 맞춰서 코드를 생성하면 겹치는 코드가 생기거나, 에러 보정을 위한
알고리즘에 적용되지 않는 경우를 위해 특별히 약속해 놓은 코드로 원래의 코드와 연관성이 없게 만들어진다. |
핫플러깅
지원
혹시, 하드디스크가
동작하는 도중에 전원 케이블이나 IDE 케이블을 뽑아본 적이 있는가? 필자는 하드랙을 생각 없이 뽑았다가 MBR이 날아가고 파티션이
깨지는 사고를 겪었던 적이 있다. 이렇듯, 일반적인 하드는 전원이 들어와 있는 상태에서 제거하는 것이 위험하다. 운이 좋은 경우 아무런
문제가 없을 때도 있지만, 필자처럼 운이 나쁜 경우 소중한 자료를 통째로 잃게 되는 것이다. SATA는 핫플러깅을 지원해서 아무때나
장치를 제거하거나 추가해도 된다. 접지극이 신호 극보다 튀어나와 있는 구조로 되어있어 전기적 충격에 안전하기 때문이다.
[ 신호극이 안으로 들어와 있고, 접지극이
상대적으로 바깥쪽에 배치되어 있다 ]
핫플러깅을 지원하게 되면
서버 운용 시에 매우 유용하며(유용하다기보다 필수에 가깝다), SATA의 케이블 거리가 1미터까지 지원된다는 점을 고려하면 별도로
USB2.0이나 IEE1394 컨트롤러를 통하지 않고도 하드디스크를 이동용 드라이브로 활용할 수 있다는 장점이 생긴다. 노트북용 HDD를
별도의 외장하드케이스를 구입하지 않고 들고 다닐 수 있다면, 매력적이지 않겠는가? 물론 3.5인치 하드 역시 SATA를 지원하는 하드랙에
넣어서 들고 다니면 기존의 하드랙보다 훨씬 유용할 것이다.
아.. 핫플러깅이 지원
된다고 현재 부팅중인 운영체제가 깔린 하드를 뽑는 실험은 하지 말도록 하자. -_-
|
|
|
|
|
|
이전페이지 |
다음페이지.Native SATA와 Bridged SATA and SATA-RAID
|
|
|
|
|
|
|
2026년 09월
주간 히트 랭킹
|
|
|
|
|
|
|
실시간 댓글
|
소셜 네트워크
|
|
 |
|
 |
|