Sep 12, 2007

ATA/100 인터페이스 - 속도


HDD와 CD-ROM을 같이 연결하면 HDD가 느려질까?


지난번에 먼저 포스팅되었던 ATA/100의 비밀 - 1. 케이블 편에 이어서 ATA/100 및 기타 ATA 인터페이스와 관련된 속도를 다루게 됩니다. 흔히, 하드디스크 드라이브와 CD-ROM 드라이브 등을 서로 연결한다거나 빠른 하드디스크 드라이브와 느린 하드디스크 드라이브를 연결하는 등 속도가 서로 다른 디바이스를 연결할 경우 그 속도가 전체적으로 '하향평준화'된다고 알려져 있습니다. 그러나 이것은 정확한 것이 아니며, 보다 자세히 이야기해볼 필요가 있습니다. 또한, ATA/100이나 ATA/66 등이 기존의 인터페이스에 비해서 어떠한 면에서 속도의 잇점을 가질 것이며 실질적으로 어디에서 이득을 볼 수 있을지도 역시 이 강좌 안에서 고려해볼 것입니다.


하위호환성


이러한 이야기들을 끌어가기 전에 무엇보다도 하위호환성에 대해서 먼저 언급해야 할 것 같다. 하위호환성이라는 것은 간단히 이야기하면 '이전의 규격들과 그대로 호환될 수 있다'는 것을 말한다.


기존의 규격들과 호환될 수 있다는 것은 많은 잇점을 가질 수 있다. 우선, 기존의 사용자층을 그대로 흡수할 수 있다. 기존에 A라는 하드웨어를 사용하고 있었는데, 이후에 B라는 완전히 새로운 규격이 나온다면 사용자들은 A라는 하드웨어에 맞도록 구성된 자신의 시스템을 완전히 갈아엎어야만 새로운 규격을 사용할 수 있다. 그러나 새로 나온 규격이 '하위호환성을 가지고 있는' AA라는 규격이라면, AA라는 규격의 하드웨어를 그대로 자신의 시스템에 사용할 수 있을 것이다. 물론 AA는 본래의 성능을 모두 발휘할 수는 없겠지만 여하튼 사용할 수는 있다.


하드웨어가 발달되어 온 것을 보면 8bit ISA, 16bit ISA, EISA 등과 같이 물리적인 하위호환성을 유지해오다가 어느순간 완전히 다른 인터페이스(예를 들어서 PCI..)로 변경된다. 이것은 그러한 기기들의 발전이 한계에 도달했다는 것을 의미한다. 스토리지 분야의 하드웨어 규격도 마찬가지로써, 지금까지는 ATA라는 범용적 인터페이스와 SCSI라는 고성능 인터페이스의 두가지로 나뉘어서 각기 서로의 하위호환성을 유지하면서 발전해왔다.


하드디스크 드라이브같은 저장매체에서는 하위호환성이 더욱 중요해진다. 새로운 시스템을 구입했는데, 기존의 하드디스크 드라이브를 사용하지 못한다면? 만약 그 하드디스크 드라이브 안에 중요한 데이터가 들었다면 상황은 더욱 복잡해질 것이다. 그래서 스토리지 분야는 어지간해서는 하위호환성을 그대로 유지한다. 또한 이러한 하위호환성을 유지하기 위해서 표준이 제정되고, 제조업체들은 이를 지켜서 제품을 만드는 것이다. ATA의 표준을 정하는 곳은 ANSI(American National Standard Institute : 미국 표준국) 산하의 T13 위원회이다. T13 위원회의 홈페이지를 방문하면 지금까지 나왔던 모든 ATA에 대한 정보를 얻을 수 있다.(마찬가지로, SCSI에 관련한 정보를 얻으려면 T10 위원회를 찾으면 된다.)


모든 EIDE, ATA 기기가 서로의 호환성을 가지고 있다고는 했지만, 필자는 위에서 'AA라는 기기가 본래의 성능을 모두 발휘할 수는 없다'라고 이야기했다. 이것은 하위호환성을 유지하는 방법 때문이다.




CD-ROM과 HDD


흔히들 CD-ROM 드라이브, 혹은 여하튼 그 비슷한 종류의 기기들과 HDD를 같이 묶어놓으면 HDD가 느려진다고들 한다. 그리고 실제로도 '거의' 그렇다. 그 까닭을 찾아보자.


우선, 하위호환성을 유지하기 위한 방법을 알아야한다. 예를 들어서 초당 33MB/s의 데이터를 전송할 수 있는 UDMA 33 모드인 제품과 초당 66MB/s의 데이터를 전송할 수 있는 UDMA 66 모드인 제품을 하나의 채널, 즉 하나의 케이블에 물려놓은 상황을 생각해보자. 하나의 케이블 내에서는 하나의 모드만이 존재해야한다. 각각의 모드라는 것은 데이터의 전송 프로토콜, 즉 데이터를 어떻게 전송하는가를 규정하는 방법이다. 하나의 케이블 안에서 다수의 모드가 공존한다면 데이터의 전송은 혼란에 빠지게되며, 그래서 한가지의 모드만이 존재해야 하는 것이다. 결국, 두가지 하드웨어가 가지고 있는 각각의 데이터 전송 모드는 한가지로 통일되어야 한다.


UDMA 33 모드가 최대 동작모드인 기기는 당연히 UDMA 66 모드로 동작할 수 없지만, UDMA 66 모드가 최대 동작모드인 기기라면 하위호환성을 가지고 있으므로 그 하위 모드로 동작이 가능하다. 그래서 이들 기기는 모두 UDMA 33 모드로 통일되어서 동작하게 된다.


이는 다른 모든 모드에도 해당한다. 대개의 CD-ROM 드라이브의 경우 일반적으로 PIO 모드 4 정도에서 동작한다. 그래서 UDMA 33/66/100 등의 모드로 동작하고 있는 하드디스크 드라이브와 이들을 하나의 케이블에 연결한다면 당연히 하드디스크 드라이브까지 PIO 모드 4로 하향조정되는 것이다. 최근에 출시되고 있는 대다수의 7,200RPM 급 하드디스크 드라이브들은 30MB/s가 넘는 연속 데이터 전송률을 가진다. 물론 버스트 모드에서는 더욱 빠르다. 이 때문에 PIO 모드까지 떨어져서 동작하게 된다면 하드디스크의 성능에는 상당한 제약을 받게되는 것이다. 여기서, 각각의 드라이브의 속도의 관계가 직접적으로 언급되지 않았음을 주의하자. 즉, 드라이브의 속도 자체는 '전체 기기 성능의 하향평준화'와는 무관하며, 이들이 가지고 있는 인터페이스가 중요한 부분이다.







LSI Logic사의 버스 아이솔레이터 칩셋인 SYM53C141
큰 사진을 보려면 사진을 클릭


이러한 '인터페이스의 하향평준화'는 비단 ATA에서뿐만이 아니라, SCSI에도 마찬가지로 적용될 수 있다. 특히나 SCSI는 ATA 처럼 하나의 케이블에 2개까지만 연결되는 것이 아니라, 많을 경우 7개, 15개까지도 연결될 수 있어서 그러한 하위호환성의 문제가 더욱 중요해진다. 아무리 빠른 하드디스크 드라이브가 잔뜩 물려있다고 하더라도, 그 중간에 CD-ROM 드라이브 하나가 포함되어 있다면 전체 SCSI 체인상에서의 속도는 CD-ROM 드라이브가 가지는 인터페이스의 한계로 제한되어버린다. 이 때문에 SCSI 컨트롤러에는 '버스 분리기(bus isolator)'가 탑재되는 경우가 많다.


버스 아이솔레이터는 전체 SCSI 체인 중간에 위치해서 그 양단의 인터페이스가 다르더라도 각각의 최대 속도를 내게 만들어주는 칩셋이다. 그래서 SCSI 컨트롤러에서는 하나의 컨트롤러에 서로 다른 속도를 가지는 인터페이스를 혼용해서 사용할 수 있는 것이다. 물론 이 칩셋이 컨트롤러 위에 있기 때문에 '하나의 케이블에 서로 다른 속도의 인터페이스를 혼용'한다면 당연히 앞서 언급한 '하향평준화'가 이루어진다.


정리하자면, 빠른 하드웨어의 발목을 잡고, 그 속도를 제한하는 것은 '느린 하드웨어'가 아니라, 그 하드웨어의 '느린 인터페이스'이다. 아무리 CD-ROM이라고 해도, 아무리 느린 RPM의 하드디스크라고 해도 그 인터페이스가 빠르다면, 빠른 기기와 같이 물려도 속도를 잡아먹는 일은 없다는 것이다.



그러면 어떻게 연결해야 하나?


위의 이야기들에서 어느정도의 답은 나왔을 것이라고 생각한다. '같은 모드로 동작하는 것이라면' 그 하드웨어들의 속도에 상관없이 같이 물려도 아무런 지장이 없다. 5,400RPM의 회전속도를 가지는 하드디스크 드라이브라 하더라도 이것이 ATA/100을 지원한다면, ATA/100 지원의 7,200RPM 하드디스크 드라이브와 같이 연결해도 속도저하의 원인이 되지 않는다. 똑같이 7,200RPM의 속도를 가지는 하드디스크라 하더라도, 한쪽이 ATA/66이나 ATA/33으로 동작하는 것이라면 그 기기와 같은 케이블에 연결된 다른 기기의 속도까지도 깎아내리는 결과를 가져온다.


CD-ROM 드라이브는 CD-ROM 드라이브끼리, HDD는 HDD끼리 연결해야 한다는 속설은 '어느정도 한도 내에서'만 맞는 것이다라고 할 수 있다. 이것을 보다 정확하게 표현해 보자면 '느린 인터페이스를 가지는 기기끼리 연결하고, 빠른 인터페이스를 가지는 기기끼리 연결하는 것'이 가장 이상적이다.다.




ATA100과 ATA33은 정말로 세배나 차이가 날까..


드라이브의 성능과 데이터 전송률


흔히 볼 수 있는 질문중에서 이런것이 있다. 'ATA 66은 ATA 33보다 2배가 빠른가?' 같은 것이다. 이러한 질문은 일면 옳을수도 있고, 다르게 생각하면 틀릴수도 있다. 문제는 저 명제에서 지칭하고 있는 각각의 대상이 어떤것이냐이다. 여기서 이야기하고 있는 ATA 66/33이라는 것이 인터페이스 그 자체를 지칭하는 것이라면, ATA 66이 ATA 33보다 2배의 데이터 전송능력을 가지고 있다는 것이 맞다. 그러나 대개의 사용자들이 질문하는 저 내용에서의 'ATA 66'이라는 것은 인터페이스를 지칭하는 것이 아니라 'ATA 66 인터페이스를 가지고 있는 디바이스(하드디스크 드라이브, CD-ROM 드라이브, 등등)'를 지칭하는 것이며, 문제는 바로 여기에서 발생한다.



일반적으로 사용하는 7,200RPM 하드디스크 드라이브의 지속적 데이터 전송속도
가장 빠른 구간에서도 40MB/s 정도에 불과하다.


일반적인 하드디스크 드라이브의 전송속도는 7,200RPM을 기준으로 약 30~40MB/s 정도이다. 물론 플래터 밀도에 따라서 달라지겠지만, '지속적인 데이터 전송속도'는 그정도에 불과하다. 물론 5,400RPM이라면 더욱 떨어진다. 여기서 필자가 '지속적인'이라는 표현을 사용한 것에 유의하자. '지속적인' 데이터 전송속도와 '순간적인' 데이터 전송속도에 대해서는 뒤에서 다시 이야기할 것이다. 여하튼, 하드디스크 드라이브가 10,000RPM이라고 하더라도 지속적인 데이터 전송속도는 아무리 높게 잡아도 80MB/s에 불과하다. 결국, ATA/66이나 100이라는 인터페이스를 가지고 있다고 해도 실질적으로 '거대한' 데이터를 옮기는데에는 거의 도움이 되지 않는다. 하물며, 5,400RPM 짜리 하드디스크 드라이브라면야 ATA/33이나 66이나 100이나 일단은 거기서 거기라고 할 수 있겠다.


고속 인터페이스의 용도 - 1. RAID


RAID라는 것은 'Redundant Array of Independent Disk'의 약자이다. 그대로 해석자면, 독자적인 여분의 디스크를 가지고 있는 디스크들의 집합' 정도가 되는데, 그 목적은 '여분의 디스크에 여분의 정보를 담아서 디스크가 손상되었을 경우 이러한 여분의 데이터를 사용하에 본래의 데이터를 복구하는 것'이다. 최근에는 그 의미가 약간 변질되어서 여러개의 디스크를 묶어서 사용하면 죄다 RAID로 간주하기도 한다. RAID의 특징과 장단점, 종류들에 대해서는 나중에 더 자세한 강좌를 통해서 소개하겠지만, 간단한 종류와 특징은 이전의 리뷰에서 잠시 언급한 적이 있으므로 해당 글을 참조하도록 하자.


관련리뷰 Link >> RAID에 대한 간략한 소개 (Abit VP6 메인보드 리뷰 중)


RAID는 다수의 디스크 드라이브를 사용해서 데이터의 신뢰도를 향상시키기도 하지만, I/O 성능을 극대화하기도 한다. 이 때, 다수의 드라이브가 동시에 동작함으로써 극대화되는 I/O 성능을 받쳐주기 위해서 고속의 인터페이스가 필요해진다. 예를 들어서 RAID 0으로 구성된 2개의 7,200RPM 하드디스크 드라이브가 있다고 치자. 이 때, 하나의 디스크가 최대 40MB/s의 전송속도를 가지므로 이론적으로 이 때 만들어진 레이드 셋은 최대 80MB/s의 데이터 전송속도를 가질 수 있다. 아래의 그래프를 보자.



단일 디스크와 RAID 0일 경우의 데이터 전송률의 차이
5,400RPM의 HDD를 사용했기 때문에 단일디스크의 최대전송률은 30MB/s 정도이다


RAID 0은 2개의 디스크 드라이브를 사용해서 2배의 I/O 성능과 2배의 용량을 얻는다.(물론, 데이터 신뢰도는 단일 디스크일때보다 떨어진다.) 그래서 하나의 HDD를 사용할 때 최대 30MB/s 정도이던 전송률이 RAID 0이 되면서 좀 불안하기는 하지만(EIDE RAID라는 것 자체가 본래 불안한 것이다. -_-;) 최대 60MB/s 정도의 전송률을 보일 정도로 향상되었음을 알 수 있다.


고속 인터페이스는 바로 이러한 용도에서 큰 역할을 한다. 앞서 언급한것과 같은 7,200RPM의 HDD를 2개 연결했을 때, 데이터 전송률은 최대 80MB/s에 달한다. 그러나 여기서 ATA 66이나 그 이하의 인터페이스가 사용된다면, 결국 RAID 셋의 성능을 제한하는 격이 된다. HDD 자체는 더욱 빠른 속도를 낼 수 있으나 인터페이스가 그 속도를 막고있는 격이며, 페라리가 68번 지방국도를 어기적거리며 달리고 있는 꼴이 된다.(68번 지방국도가 있던가? -_-;) 이 때라면 당연히 ATA/100 정도의 고속 인터페이스를 제공해 주어야 하며, 그래야 제대로 된 성능을 발휘할 수 있다.


고속 인터페이스의 용도 - 2. 버퍼


버퍼(buffer), 혹은 캐시(cache)라는 것은 빠른 기기와 느린 기기의 중간에서 속도의 완충재 역할을 하는 부분이다. CD-RW에서 사용되는 버퍼를 제외한 나머지는 모두 한가지 원리에 기반하고 있다. 바로 '한번 A라는 데이터가 사용되었을 경우 그 다음에는 A라는 데이터가 다시 사용되거나 A 바로 다음에 있는 데이터가 사용될 확률이 높다'라는 원리이다. 이것에 의해서 버퍼는 다음과 같이 동작한다.



위 일러스트의 상황은 이러하다. 우선, 빠른 기기와 느린 기기가 서로 연결되어 있는데, 이 중간에 버퍼가 끼여있다. 그리고, 느린 기기에는 빠른 쪽에서 데이터 처리를 위해서 필요로 하는 데이터가 들어있다. 빠른 쪽에서 데이터를 요구하면 느린 쪽에서는 데이터를 보내주기 시작한다. 다만, 속도가 느리기 때문에 빠른 쪽에서는 시간을 낭비하고 있다.



전달되는 데이터는 버퍼를 거쳐서 빠른 쪽으로 전해진다. 이 때, 버퍼를 거치면서 버퍼는 전달되는 데이터의 사본을 남겨둔다. 그리고, 빠른 쪽에서 데이터를 처리하거나 다른 일을 하느라 데이터의 요구가 없어도 버퍼는 버퍼의 용량이 닿는 한도까지 느린 쪽에서 데이터를 읽어서 채워놓는다. 물론 이 때 읽어들이는 데이터는 앞서 읽어들인 것의 바로 다음에 이어지는 데이터들이다.



이 상황에서 빠른 기기가 데이터를 요구하게 될 때, 버퍼 안에 요구되는 데이터가 들어있다면, 느린 기기에서 데이터를 읽어가는 것이 아니라, 버퍼에서 직접 데이터를 읽어간다. 버퍼는 용량이 작은 대신에 그 속도가 대개 빠른 쪽의 속도에 더 가깝다. 그래서 느린쪽에서 데이터를 읽어들이는 것보다는 월등히 수월하게 데이터를 읽어들일 수 있다.


이제 본론으로 돌아가서, 버퍼가 인터페이스와 어떤 관계를 가지는지를 생각해보자. 위의 일러스트에서 Fast라고 쓰여 있는 빠른 기기는 바로 시스템을 의미한다. 그리고, Slow는 하드디스크 드라이브의 내부, 그리고 버퍼는 하드디스크에 탑재되는 바로 그 버퍼를 말한다.



그리고, ATA 인터페이스는 버퍼에 연결되어 있고, 버퍼와 디스크 자체는 하드디스크 드라이브의 내부 인터페이스에 의해서 연결되어 있다. 디스크와 버퍼 사이의 내부 인터페이스는 사실 사용자가 관여할 부분이 아니다. 하드디스크 드라이브 조립공정에서만 관여될 뿐이다. 다만, 눈여겨 보아야 하는것은 바로 '버퍼와 시스템을 이어주는' ATA 인터페이스이다. 중요한 것은 ATA 인터페이스가 시스템과 '버퍼' 사이에 있다는 것이다.







후지쯔 알레그로 7 하드디스크 드라이브에 탑재된 8MB의 버퍼메모리
큰 사진을 보려면 사진을 클릭


하드디스크 드라이브의 버퍼는 대개 SDRAM을 사용한다. SDRAM의 종류에 따라 다르겠지만, 대개 800MB/s에서 1GB/s 정도의 메모리 입출력 대역폭을 갖는다. 이는 ATA 인터페이스가 가지고 있는 데이터 전송 대역폭의 열배 정도에 해당하는 것이다.


이제, 눈치빠른 독자라면 필자가 무엇을 말하고자 하는지를 이해했을 것이라고 생각한다. 바로, ATA 인터페이스(를 비롯한 모든 스토리지 기기의 인터페이스)는 버퍼에서 데이터를 읽어오거나 버퍼로 기록할 때 가장 큰 성능을 가진다. 버퍼 메모리는 외부 인터페이스에 비해서는 월등히 빠른 속도로 동작하므로, 아무리 인터페이스가 빨라져도 버퍼와의 데이터 전송이 일어나는 동안이라면 그 인터페이스는 최고의 효율로 동작한다. 그래서, 버퍼가 크면 클수록 빠른 인터페이스의 잇점을 많이 활용할 수 있다. 그래서 최근 만들어지고 있는 고가의 하드디스크 드라이브들에서는 대개 8MB 혹은 16MB 등의 대용량 버퍼 메모리를 탑재하고 있는 것을 자주 볼 수 있다.


기본적으로 하드디스크 드라이브의 속도는 40MB/s 이하, 즉 ATA 66 정도면 충분히 커버하고도 남음이 있으며, 5,400RPM 하드디스크 드라이브라면 ATA 33으로도 '전송률'은 충분히 충족시켜주지만, 버퍼에서 옮겨지는 데이터에 대해서는 인터페이스가 빠르면 빠를수록 그 효율도 높아진다.


앞서의 질문을 생각해보자. ATA 33 에서 ATA 66이나 100으로 업그레이드했을때의 속도 향상은 하드디스크 드라이브의 성능에 비추어본다면 거의 없다고 보아도 좋다. 그러나 버퍼 메모리로 인한 성능향상을 감안해야 한다. 그 용량에 따라서 다르겠지만 최근 출시되는 하드디스크 드라이브에 탑재되어 있는 2MB의 버퍼 메모리는 약 5% 정도의 성능향상을 가져올 수 있다. 물론 이러한 성능향상은 자잘한 데이터를 자주 긁어올 때 더욱 커지며, 거대한 데이터를 다루는 작업에서는 거의 이득을 볼 수 없다는 것도 고려해야 할 것이다.



1. 고속 SCSI HDD VS. ATA HDD RAID, 어느쪽이 빠른가?

요즘 출시되는 메인보드들을 보면 ATA RAID 기능을 탑재하고 있는 경우가 많다.(특히 Abit. -_-; 이 회사는 자사의 모든 메인보드가 ATA RAID 기능을 가지기를 희망하는 것 같다.) 그래서 몇몇 사용자들은 이것을 사용해서 서버를 꾸미면 SCSI와 맞먹는 성능을 보여주지 않을까라고 생각한다. 이것이 옳은 것일까?

결론부터 말하자면 '절대 아니다'이다. 일단, ATA RAID는 서버 등에서 사용되는 용도로 구현하는 것이 아니다. 또한 RAID 자체의 특성도 제대로 이해해야 한다. RAID는 다수의 디스크 드라이브를 사용해서 I/O 성능을 극대화시켜 주기는 하지만, 여기서 극대화되는 성능에는 '억세스타임'이라는 개념이 포함되어 있지 않다. 또한, 메인보드 위에 내장되는 ATA RAID가 추구하는 것은 '전송률의 극대화'이지, 절대로 '안정성의 극대화'가 아니다. 물론 RAID 1이나 RAID 0+1이라는 모드가 있지만 이들은 충분한 안정성을 제공해주기에는 무리가 있다.

ATA RAID의 초기 개발목적은 '고가의 SCSI AV HDD를 대체하자'라는 것이었다. 여기서 말하는 AV는 Audio and Video(절대로 Adult Video가 아니다. -_-;)의 약자이다. 오디오 및 비디오의 실시간 처리를 위해서는 대단히 높은 전송률이 지속적으로 유지되어야 한다. AV HDD라는 분류가 따로 있던 당시에는 ATA는 그러한 요구를 충족시켜 줄 수 없었고, 당연히 높은 가격의 SCSI 하드디스크 드라이브만이 사용될 수 있었다. 그러나 역시 가격대가 너무 높았던지라, 몇몇 컨트롤러 제조사는 ATA 디스크를 여러대 묶어서 'SCSI를 능가할 정도로 높은, 지속적인 데이터 전송률'을 구현하기 위해서 ATA RAID를 제작하였다. 그 목적은 충분히 달성되어서, ATA 하드디스크로도 초당 40MB/s, 60MB/s가 넘는 데이터 전송률을 구현할 수 있게 되었고, 이는 비디오 편집 장비 등에서 원가절감, 성능향상을 위해 많이 사용되었다. 하지만 이러한 비디오 편집장비에서 요구하는 성능과 서버 등에서 요구하는 성능에는 큰 차이가 있다. 비디오 편집장비 등은 거대한 데이터가 지속적으로 기록되거나 읽어진다. 그러나 서버는 절대다수의 클라이언트들로부터 오는 자잘한 요청에 반응해야 하기 때문에 그 데이터의 성격이 앞서 말한 분야와는 판이하다. 결국, ATA RAID는 서버에서 요구하는 성능을 제대로 충족시켜 줄 수 없을뿐더러, 데이터의 신뢰도 역시 떨어뜨릴 수 있다.

물론, ATA RAID의 성능에서 '데이터 전송률'만은 고가의 SCSI 하드디스크 드라이브에 필적한다. 앞서도 보았듯이, ATA RAID는 전송률 면에서는 최대 60~80MB/s의 성능을 낼 수 있으며, 이는 최근 출시되는 10,000~15,000RPM 급의 SCSI 하드디스크 드라이브도 마찬가지이다. 그러나, 이들 SCSI HDD들이 가지는 접근시간 및 레이턴시 등은 ATA HDD의 그것보다 두배 이상 빠르다는 점을 간과해서는 안된다. 이들이 가지는 대단히 빠른 접근속도와 적은 레이턴시는 다수의 데이터 요청을 신속하게 처리할 수 있다는 것을 의미하며, 그러한 측면에서 바라보자면 ATA RAID에 비할 수 없는, 월등히 뛰어난 성능을 보인다.

2. 케이블의 절단


HDD를 하나만 사용할 경우 케이블을 잘라서 커넥터 하나만으로 사용할 수 있지 않을까라는 궁리를 해본 사용자도 있을 것이다. 물론 짧은 케이블을 사용할 수도 있다. 그러나 앞서의 강좌에서 언급했듯이, 케이블의 길이는 최소 254mm(10")를 넘어야한다. 즉, 시스템쪽에 하나, 그리고 끝단에 하나, 이렇게 두개의 커넥터를 가지는 케이블을 사용할 수도 있기는 하지만, 최소한 254mm를 넘어야지만 사용이 가능한데, 문제는 일부 케이블들이 그렇지 못하다는데에 있다. 시스템쪽 커넥터에서 시작해서 첫번째 커넥터까지의 길이가 254mm를 넘는다면 그 뒷부분을 잘라버리고 하나만 사용할 수 있겠지만, 그렇지 못할 경우는 케이블을 건드리지 말고 그냥 사용하는 것이 좋다.


3. 커넥터 위의 막힌 구멍



ATA 커넥터. 핀 하나가 빠져있으며, 커넥터 자체에는 돌기가 있다.


위 일러스트(사진이 아니랍니다. :D)를 보면, 중간의 핀 구멍 하나가 막혀있고, 커넥터의 아래쪽에는 돌기가 있는 것을 볼 수 있다. 여기서 막혀있는 핀 구멍은 20번 핀의 자리이며, 이것을 키 핀(key pin)이라고 부른다. 키 핀의 역할은 커넥터를 뒤집어서 꽂지 못하도록 막아주는 것이다.(이와 같은것을 FDD 커넥터나 50핀 SCSI 케이블에서도 볼 수 있다. 68핀 SCSI 케이블은 커넥터의 형태가 비대칭이기 때문에 어차피 제방향 이외의 방향으로는 꽂을 수 없다.) 커넥터의 돌기 역시 이와 같은 목적을 가지는 안전장치이다. 이는 케이블 키(cable key)라고 부른다. 이 두가지는 모두 ATA  규격의 권장사항에 속한다. 예전에는 케이블을 커넥터의 연결부분에 단지 핀만이 있었기 때문에 케이블을 밀려서 꽂지 않도록 하는 목적에서 키 핀이 만들어졌으나 최근에는 연결부에 위치를 잡아주는 브라켓이 있는데다가, 케이블 키가 있기 때문에 사실 키 핀의 역할은 거의 없다고 보아도 무방하다.