1

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

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

我的问题:

  • 如果 PMI 位和逻辑块地址(CDB 中的字节 2-5)都不为零,我(作为目标)是否仍应报告磁盘上的最后一个 LBA?
  • 如果不是上述情况,那么在这种情况下应该报告什么?
  • 设置 PMI 位后,我应该如何处理逻辑块地址(字节 2-5)值?

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

4

1 回答 1

2

这实际上也出现在 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,则请求失败。

假设您的实现总是知道磁盘的容量是多少,那么永远不应该有“供应商特定的大量延迟”。然后,您可以将标准解读为“返回逻辑块地址字段中指定的最后一个逻辑块的信息”。这应该只是磁盘的最后一个 LBA。

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

于 2015-04-16T22:05:43.227 回答