這個禮拜同事提出了他的疑問,就是關於如何在BIOS分辨一般硬碟和SSD固態硬碟的方法,我一開始就想到,應該是由HDD的INFO去查,在ATA的spec中,有個identify device的指令0xEC,可以識別硬碟的型號等資訊,但是這SPEC可能是在SSD開發前就定好的,我們應該看哪一個欄位來判斷呢?
如果我們判斷identify info 有設"Compact Flash" (word 7, 8),那麼只能代表它"有可能"是SSD。
在我Google後的結果,並不容易找到答案,也許問硬碟廠商是最快的。找到的是在Linux 下有一個指令可以查,它會回傳rotational,它的作法是判斷identify Word[217]欄位,它原本spec定義的是rotation rate(轉速),它如果設為0x0001,就代表它是SSD,這是現在SSD硬碟廠的作法。下表為ATA8 的定義:
在BIOS要實作這個判斷,也不會很困難,我們只要找一個硬碟初始化好的點去下硬碟指令,把identify data給讀出來判斷第217 word是否為1即可。
沒有留言:
張貼留言