2015-04-01 151 views
1

我正在查看SBC-3項目5.15(READ CAPACITY(10)命令)。對PMI位(CDB中字節8的位0)的描述複製如下:SCSI READ CAPACITY命令中的PMI位的含義

「設置爲1的PMI位指定設備服務器返回LOGICAL BLOCK中指定的最後一個邏輯塊的信息ADDRESS字段在數據傳輸的實際供應商特定延遲之前可能會遇到 。「

我的問題:

  • 如果兩個PMI位和邏輯塊地址(在CDB字節2-5)不爲零,應我(作爲目標)還是我的報告磁盤上的最後一個LBA ?
  • 如果不是以上情況,應該在這種情況下報告什麼?
  • 當PMI位置1時,應該如何處理LOGICAL BLOCK ADDRESS(字節2-5)值?

(我知道,那PMI位在SBC-4就過時了,但我仍然需要按照目前的標準來實現這個功能)

回答

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,則請求失敗。

假定您的實施始終知道您的磁盤容量是多少,那麼永遠不應該存在「重大的供應商特定延遲」。然後,您可以讀取該標準,作爲「在LOGICAL BLOCK ADDRESS字段中指定的最後一個邏輯塊之後返回信息」。這應該只是您磁盤的最後一個LBA。

要直接回答您的問題:設置了PMI並指定了LBA時,應根據上述錯誤處理情況報告磁盤上的最後一個LBA。而且,您只需查看LBA字段即可進行錯誤處理。