태그가 지정된 명령 대기열

Tagged Command Queuing

TCQ(Tagged Command Queuing)는 특정 ATASCSI[1] 하드 드라이브에 내장된 기술이다.그것은 운영 체제가 하드 드라이브에 여러 개의 읽기 및 쓰기 요청을 보낼 수 있게 한다.ATA TCQ는 SATA 드라이브에서 사용하는 NCQ(Native Command Queuing)와 기능이 동일하지 않다.[2]SCSI TCQ는 ATA TCQ와 동일한 제한을 받지 않는다.

TCQ가 없다면 운영체제는 한 번에 하나의 요청을 보내는 것으로 제한되었다.성능을 향상시키기 위해 OS는 하드 드라이브 활동에 대한 자체적인 관점(틀렸을 가능성이 있음)을 바탕으로 요청 순서를 결정해야 했다(다른 경우에는 I/O 스케줄링이라고도 함).TCQ를 통해 드라이브는 요청을 주문하는 방법에 대한 자체 결정을 내릴 수 있으며, 이는 운영 체제가 그렇게 해야 하는 필요성을 덜어준다.따라서 TCQ는 올바르게 구현될 경우 하드 드라이브의 전반적인 성능을 향상시킬 수 있다.

개요

효율성 증대를 위해 섹터는 받은 주문이 아니라 현재 헤드 포지션에 근접하게 서비스되어야 한다.대기열은 끊임없이 새로운 요청을 수신하고, 기존 요청을 이행 및 제거하고, 현재 보류 중인 읽기/쓰기 요청과 헤드의 변경 위치에 따라 대기열을 재정렬하고 있다.정확한 재순서 알고리즘은 컨트롤러와 드라이브 자체에 따라 달라질 수 있지만 호스트 컴퓨터는 필요에 따라 요청만 할 뿐 자세한 사항은 컨트롤러가 알아서 처리하도록 한다.

이 대기열 메커니즘은 때때로 "엘리베이터 탐색"이라고 부르기도 하는데, 이는 여러 통화를 서비스하고 여행을 최소화하기 위해 그것들을 처리하는 건물의 현대적인 엘리베이터의 이미지가 아이디어를 잘 보여준다.

5층, 2층, 4층 버튼을 1층에서 시작하여 순서대로 누르면, 오래된 엘리베이터가 요청된 순서대로 층으로 갈 것이다.현대식 엘리베이터는 불필요한 이동 없이 논리적인 순서 2, 4, 5로 층에 정차하라는 요청을 처리한다.비대기 디스크 드라이브는 오래된 엘리베이터와 같이 수신된 순서대로 요청을 처리하며, 대기열은 서비스 요청을 가장 효율적인 순서로 처리한다.이것은 단일 사용자가 사용하는 시스템에서 성능을 약간 향상시킬 수 있지만, 디스크 표면에서 광범위하게 다양한 요청을 하는 많은 사용자가 있는 시스템에서 성능을 극적으로 향상시킬 수 있다.

SCSI TCQ, ATA TCQ 및 SATA NCQ 비교

SCSI TCQ

SCSI TCQ는 TCQ의 첫 번째 인기 버전이었고 오늘날에도 여전히 인기가 있다.다음과 같은 세 가지 모드 중 하나를 사용하여 태스크를 대기열에 입력할 수 있다.[3]

  • 줄 맨 앞머리
  • 주문된
  • 소박한

SCSI TCQ에만 해당하는 대기열 모드의 헤드에서는 대기 중인 다른 대기열 헤드 태스크를 포함한 다른 모든 태스크보다 먼저 태스크가 대기열 전면에 푸시된다.[2][3][4]이 모드는 악용될 경우 자원 기아를 유발할 수 있기 때문에 많이 쓰이지 않는다.

순서가 지정된 모드에서는 모든 이전 작업이 완료된 후 새로운 모든 태스크가 실행되기 전에 태스크가 실행되어야 한다(새로운 대기열 태스크의 헤드 제외).[3]

단순모드는 다른 두 모드의 작업 제약을 위반하지 않는 순서로 작업을 실행할 수 있도록 한다.[3]태스크의 명령이 완료되면 명령을 완료한 장치에 의해 호스트 버스 어댑터에 알림이 전송된다.[3]

SCSI TCQ의 대규모 인터럽트 오버헤드 발생 여부는 SCSI 호스트 버스 어댑터 연결에 사용되는 버스에 따라 달라진다.Commonary PCI, PCI-X, PCI Express 및 이를 허용하는 기타 버스에서 제1자 DMA는 낮은 인터럽트 오버헤드를 허용한다.이전 ISA 버스는 CPU가 제3자 DMA 엔진을 프로그래밍하여 전송을 수행하도록 하는 인터럽트를 생성하기 위해 SCSI 호스트 어댑터가 필요했고,[2] 그 후 대기열에 있는 작업이 완료되었음을 CPU에 알리기 위해 또 다른 인터럽트를 요구하여 높은 CPU 오버헤드를 초래했다.

SCSI TCQ 태그 길이

SCSI-3 프로토콜은 64비트를 태그 필드에 사용할 수 있도록 허용하여, 더 이상의 명령을 실행하기 전에 작업 세트 중 일부를 완료하도록 요구하기 전에 한 작업 세트에서 최대 2개의64 작업을 실행할 수 있다.[3]그러나 SCSI 프로토콜을 구현하는 다른 프로토콜은 모든 64비트의 사용을 허용하지 않을 수 있다.예를 들어, 이전 병렬 SCSI는 8비트의 태그 비트를 허용하고, iSCSI는 32비트의 태그 비트를 허용하며, 파이버 채널은 태그와 함께 최대 16비트의 태그를 허용한다.0xFFFF 예약됨.이러한 유연성 덕분에 프로토콜 설계자는 대기열 처리 능력을 비용과 바꿀 수 있다.iSCSI 네트워크와 같이 크기가 클 수 있는 네트워크는 네트워크의 더 많은 디스크 수와 이와 같은 더 큰 대기 시간을 처리하는 데 더 많은 태그 비트의 이점을 제공하는 반면, 병렬 SCSI 체인과 같은 소규모 네트워크는 많은 태그 비트를 필요로 할 충분한 디스크나 지연 시간을 가지고 있지 않으며 시스템 suppo를 사용하여 비용을 절감할 수 있다.더 적은 비트를 핥는 것.

ATA TCQ

ATA TCQ는 ATA 드라이브에 SCSI와 동일한 이점을 제공하기 위해 개발되었다.병렬 및 직렬 ATA에서 모두 사용할 수 있다.

ATA 버스가 축소 핀 카운트 ISA 버스로 시작했기 때문에 이러한 노력은 그리 성공적이지 못했다.소프트웨어 호환성 요구 사항으로 인해 ATA 호스트 버스 어댑터는 1차 DMA 없이 ISA 버스 장치처럼 작동하게 되었다. 드라이브가 전송 준비가 되었을 때 CPU를 중단해야 했고, CPU가 디스크에서 어떤 명령을 실행할 준비가 되었는지 물을 때까지 기다렸으며, 실행할 준비가 되었다는 명령으로 응답하고, CPU가 호스트 b를 프로그래밍할 때까지 기다려야 했다.us 어댑터의 제3자 DMA 엔진은 해당 명령의 결과에 기초하여, 제3자 DMA 엔진이 명령을 실행할 때까지 기다린 다음, DMA 엔진이 작업을 마치면 CPU를 다시 중단시켜 요청된 작업이 완료되었음을 CPU가 통지할 수 있도록 해야 했다.[2]인터럽트에 대한 응답은 CPU 시간을 사용하기 때문에 ATA TCQ가 활성화되었을 때 CPU 활용도가 빠르게 상승하였다.[2]또한 인터럽트 서비스 시간은 예측할 수 없기 때문에 디스크가 데이터를 전송할 준비가 되었지만 CPU가 인터럽트에 응답하기를 기다려야 CPU가 제3자 DMA 엔진을 프로그래밍할 필요가 있음을 알 수 있기 때문에 그렇게 할 수 없는 경우가 있다.[2]

따라서 이 표준은 이를 가치 있게 만들 만큼 성능을 향상시키지 않고 높은 CPU 활용도를 초래했기 때문에 거의 구현되지 않았다.[2]이 표준은 장치당 최대 32개의 미결 명령을 허용한다.[4]

SATA NCQ

SATA NCQ는 ATA TCQ에 비해 필요한 CPU 인터럽트 수를 획기적으로 줄여주는 최신 표준이다.ATATCQ처럼지만 SATA호스트 버스 어댑터의 평행한 ATA행동을 흉내내지 않는 능력 대신에 전에 이 일은 호스트 버스 어댑터의 DMA엔진 프로그램을 짜도록 강요하는 것은 CPU차단의 제1당사자 DMA.[2]지원하도록 활용하도록 설계되었다, 하드 드라이브하려면 코트 샘플 및 팁을 말한다 device,[2]은 시속 32 뛰어난 명령을 허용한다.e그의명령을 실행하려는 t 버스 어댑터로 인해 호스트 버스 어댑터가 처음 실행될 때 하드 드라이브가 선택한 명령에 포함된 매개 변수를 사용하여 통합 1차 DMA 엔진을 프로그래밍한 다음 DMA 엔진은 명령을 실행하는 데 필요한 데이터를 이동시킨다.[2]인터럽트 오버헤드를 더욱 줄이기 위해 드라이브는 작업 완료 메시지의 많은 부분을 한 번에 보낼 때까지 작업 완료 메시지의 인터럽트를 보류할 수 있으며, 운영 체제가 여러 스레드에 작업이 완료되었음을 동시에 알릴 수 있다.[2]이러한 인터럽트를 보낸 후 다른 작업이 완료되면 첫 번째 완료 메시지가 CPU로 전송되지 않은 경우 호스트 버스 어댑터가 완료 메시지를 함께 연결할 수 있다.[2]이를 통해 하드 디스크 펌웨어 설계는 보류 시점과 완료 메시지 전송 시점을 결정함으로써 디스크 성능을 CPU 활용률과 바꿀 수 있다.[2]

참조

  1. ^ 병렬 SCSI, SAS(Serial Attached SCSI) 및 Fibre Channel 드라이브의 형태로
  2. ^ a b c d e f g h i j k l m Dees, Brian (November–December 2005). "Native command queuing - advanced performance in desktop storage". IEEE Potentials. 24 (4): 4–7. doi:10.1109/MP.2005.1549750.
  3. ^ a b c d e f "SCSI Architecture Model - 3 (SAM-3)" (PDF). Archived from the original (PDF) on 2012-04-09. Retrieved 2007-02-24.
  4. ^ a b "1532D: AT Attachment with Packet Interface - 7 Volume 1" (PDF). 1532D: AT Attachment with Packet Interface - 7. Retrieved 2007-01-02.

외부 링크