stringtranslate.com

Помечено как очередь команд

Tagged Command Queuing ( TCQ ) — это технология, встроенная в некоторые жесткие диски ATA и SCSI [1] . Она позволяет операционной системе отправлять несколько запросов на чтение и запись на жесткий диск . ATA TCQ по функциям не идентичен более эффективному Native Command Queuing (NCQ), используемому дисками SATA . [2] SCSI TCQ не страдает от тех же ограничений, что и ATA TCQ.

Без TCQ операционная система была ограничена отправкой одного запроса за раз. Чтобы повысить производительность, ОС должна была определять порядок запросов на основе собственной — возможно, неправильной — перспективы активности жесткого диска (иначе называемой планированием ввода-вывода ). С 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. На обычных шинах PCI , PCI-X , PCI Express и других, которые это допускают, DMA первой стороны обеспечивает низкие накладные расходы на прерывания. Старая шина ISA требовала, чтобы адаптер хоста SCSI генерировал прерывание, чтобы заставить ЦП запрограммировать сторонний механизм DMA для выполнения передачи, а затем требовала еще одного прерывания, чтобы уведомить ЦП о том, что задача в очереди завершена, [2] вызывая высокие накладные расходы ЦП.

Длина тега SCSI TCQ

Протокол SCSI-3 допускает использование 64 бит в поле тега, что позволяет выдавать до 2 64 задач в одном наборе задач, прежде чем некоторые из них будут завершены, прежде чем будут выданы дополнительные команды. [3] Однако различные протоколы, реализующие протокол SCSI, могут не разрешать использование всех 64 бит. Например, старый параллельный SCSI допускает 8 бит бит тега, iSCSI допускает до 32 бит тега, а Fibre Channel допускает до 16 бит тега с зарезервированным тегом 0xFFFF . Эта гибкость позволяет разработчику протокола найти компромисс между возможностью организации очередей и стоимостью. Сети, которые могут быть большими, такие как сети iSCSI, выигрывают от большего количества бит тега, чтобы справиться с большим количеством дисков в сети и большими задержками, которые генерируют такие большие сети, в то время как сети меньшего масштаба, такие как параллельные цепочки SCSI, не имеют достаточного количества дисков или задержек, чтобы нуждаться во многих битах тега, и могут сэкономить деньги, используя систему, поддерживающую меньшее количество бит.

АТА TCQ

ATA TCQ был разработан в попытке принести те же преимущества, что и SCSI, для дисков ATA. Он доступен как в Parallel, так и в Serial ATA.

Эти усилия не были очень успешными, поскольку шина ATA изначально была шиной ISA с уменьшенным количеством контактов. Требование совместимости с программным обеспечением заставило адаптеры хост-шины ATA действовать как устройства шины ISA без прямого доступа к памяти (DMA) первой стороны . Когда диск был готов к передаче, он должен был прервать работу ЦП, дождаться, пока ЦП спросит диск, какая команда готова к выполнению, ответить командой, что он готов к выполнению, дождаться, пока ЦП запрограммирует сторонний механизм DMA адаптера хост-шины на основе результата этой команды, дождаться, пока сторонний механизм DMA выполнит команду, а затем снова прервать работу ЦП, чтобы уведомить его, когда механизм DMA завершит задачу, чтобы ЦП мог уведомить поток, запросивший задачу, о том, что запрошенная задача завершена. [2] Поскольку реагирование на прерывания использует время ЦП, загрузка ЦП быстро возросла при включении ATA TCQ. [2] Кроме того, поскольку время обслуживания прерывания может быть непредсказуемым, бывают случаи, когда диск готов к передаче данных, но не может этого сделать, поскольку он должен ждать ответа ЦП на прерывание, чтобы ЦП знал, что ему нужно запрограммировать сторонний механизм прямого доступа к памяти (DMA). [2]

Таким образом, этот стандарт редко внедрялся, поскольку он вызывал высокую загрузку ЦП, не повышая производительность настолько, чтобы это было оправдано. [2] Этот стандарт допускает до 32 невыполненных команд на устройство. [4]

SATA-NCQ

SATA NCQ — это современный стандарт, который радикально сокращает количество требуемых прерываний ЦП по сравнению с ATA TCQ. Как и ATA TCQ, он допускает до 32 невыполненных команд на устройство [2] , но был разработан для использования возможностей адаптеров хост-шины SATA, которые не эмулируют параллельное поведение ATA, для поддержки прямого доступа к памяти (DMA) первой стороны. [2] Вместо того, чтобы прерывать ЦП перед задачей, чтобы заставить его запрограммировать механизм DMA адаптера хост-шины, жесткий диск сообщает адаптеру хост-шины, какую команду он хочет выполнить, заставляя адаптер хост-шины запрограммировать свой интегрированный механизм DMA первой стороны с параметрами, которые были включены в команду, выбранную жестким диском при ее первой выдаче, а затем механизм DMA перемещает данные, необходимые для выполнения команды. [2] Для дальнейшего снижения накладных расходов на прерывания диск может удерживать прерывание с сообщениями о завершении задачи, пока он не соберет много из них для одновременной отправки, что позволяет операционной системе уведомлять множество потоков одновременно о том, что их задачи завершены. [2] Если после отправки такого прерывания завершается другая задача, адаптер шины хоста может объединить сообщения о завершении, если первый набор сообщений о завершении не был отправлен в ЦП. [2] Это позволяет конструкции встроенного ПО жесткого диска найти компромисс между производительностью диска и загрузкой ЦП, определяя, когда приостанавливать, а когда отправлять сообщения о завершении. [2]

Ссылки

  1. ^ в виде дисков Parallel SCSI , Serial attached SCSI и Fibre Channel
  2. ^ abcdefghijklm Диз, Брайан (ноябрь–декабрь 2005 г.). «Собственная очередь команд — повышенная производительность в настольных системах хранения». IEEE Potentials . 24 (4): 4–7. doi :10.1109/MP.2005.1549750. S2CID  36264057.
  3. ^ abcdef "SCSI Architecture Model - 3 (SAM-3)" (PDF) . Архивировано из оригинала (PDF) 2012-03-17 . Получено 2007-02-24 .
  4. ^ ab "1532D: AT Attachment with Packet Interface - 7 Volume 1" (PDF) . 1532D: AT Attachment with Packet Interface - 7 . Получено 2007-01-02 .

Внешние ссылки