SCSI READ CAPACITY 命令中 PMI 位的含义

Meaning of the PMI bit in the SCSI READ CAPACITY command

我正在查看 SBC-3 项目 5.15(READ CAPACITY (10) 命令)。 PMI 位(CDB 中字节 8 的位 0)的描述复制如下:

”设置为 1 的 PMI 位指定设备服务器 return 在逻辑块地址字段中指定的逻辑块之后的最后一个逻辑块的信息,然后可能会出现大量供应商特定的数据传输延迟 遇到。

我的问题:

(我知道,PMI 位在 SBC-4 中已经过时,但我仍然需要根据当前标准实现此功能)

这实际上也在 SBC-3 中,截至修订版 28(2011 年 1 月),您可以在此处看到更改:(需要注册)http://www.t10.org/cgi-bin/ac.pl?t=d&f=11-010r0.pdf。所以,你说的是 SBC-2 兼容性。

无论如何,我认为您永远不会在实践中看到这些字段集。但是,为了完整起见,您可能希望合并一些额外的错误处理。

  1. 如果 PMI 为零,但发起者指定了 LBA,则请求失败。
  2. 如果 CDB 中指定的 LBA 大于磁盘的最后一个 LBA,则请求失败。

假设您的实现始终知道您的磁盘容量是多少,那么就不应该有 "substantial vendor specific delay"。那么,您可以阅读标准,如 "return information on the last logical block after that specified in the LOGICAL BLOCK ADDRESS field"。这应该只是您磁盘的最后一个 LBA。

直接回答你的问题:当设置了PMI,并且指定了一个LBA,你应该报告你磁盘上的最后一个LBA,以上面的错误处理为准。而且,您只需要查看LBA字段即可进行错误处理。