Значение бита PMI в команде SCSI READ CAPACITY

Я смотрю пункт 5.15 SBC-3 (команда READ CAPACITY (10)). Описание бита PMI (бит 0 байта 8 в CDB) скопировано ниже:

«Бит PMI, установленный в единицу, указывает, что сервер устройств возвращает информацию о последнем логическом блоке после того, как указано в поле АДРЕС ЛОГИЧЕСКОГО БЛОКА, до того, как может возникнуть существенная задержка, определяемая поставщиком при передаче данных».

Мои вопросы:

  • Если и бит PMI, и АДРЕС ЛОГИЧЕСКОГО БЛОКА (байты 2-5 в CDB) не равны нулю, должен ли я (в качестве цели) по-прежнему сообщать последний LBA на моем диске?
  • Если не вышеперечисленное, то что следует сообщить в этом случае?
  • Что мне делать со значением АДРЕСА ЛОГИЧЕСКОГО БЛОКА (байты 2-5), когда установлен бит PMI?

(Я знаю, что бит PMI устарел в SBC-4, но мне все еще нужно реализовать эту функциональность в соответствии с текущим стандартом)


person HEKTO    schedule 01.04.2015    source источник


Ответы (1)


Это фактически отсутствует и в SBC-3, начиная с версии 28 (январь 2011 г.). Вы можете увидеть изменение здесь: (требуется регистрация) http://www.t10.org/cgi-bin/ac.pl?t=d&f=11-010r0.pdf . Итак, вы говорите о совместимости с SBC-2.

В любом случае, я не думаю, что вы когда-нибудь увидите эти поля на практике. Но для полноты вы можете включить некоторую дополнительную обработку ошибок.

  1. Отклонить запрос, если PMI равен нулю, но инициатор указал LBA.
  2. Отклоните запрос, если LBA, указанный в CDB, больше, чем последний LBA вашего диска.

Предполагая, что ваша реализация всегда знает, какова емкость вашего диска, тогда никогда не должно быть «существенной задержки, зависящей от поставщика». Таким образом, вы можете прочитать стандарт как «возврат информации о последнем логическом блоке после указанного в поле АДРЕС ЛОГИЧЕСКОГО БЛОКА». Это должен быть просто последний LBA вашего диска.

Чтобы ответить на ваши вопросы напрямую: когда установлен PMI и указан LBA, вы должны сообщить о последнем LBA на вашем диске с учетом описанной выше обработки ошибок. И вам нужно только посмотреть на поле LBA, чтобы выполнить обработку ошибок.

person Mike Andrews    schedule 16.04.2015