BIOS 识别盘片信息的原理是什么? 例如:bios读到sata的信息包括SN,model等信息,是通过向盘片下发identity命令吗?
读取nvme盘的信息,是如何读取的,下发的什么命令?
BIOS是如何判断盘片是sata还是nvme?
BIOS 识别盘片信息的原理是什么?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在计算机系统启动的过程中,BIOS(基本输入输出系统)负责初始化硬件并识别和配置存储设备。对于SATA硬盘和NVMe固态硬盘的识别与信息读取,其原理略有不同。
-
BIOS识别SATA硬盘:
- 当系统加电自检(POST, Power-On Self Test)时,BIOS会通过AHCI(高级主机控制器接口)或IDE模式对SATA端口进行扫描。
- BIOS向SATA硬盘控制器发送
IDENTIFY DEVICE
命令,这是一个ATA/ATAPI标准定义的命令,用于获取硬盘的基本信息,如制造商ID、型号、序列号、容量等。 - 硬盘收到此命令后,会在数据FIS(帧信息结构)中返回相关信息,BIOS根据这些信息来判断硬盘的存在以及其特性。
-
BIOS识别NVMe SSD:
- NVMe SSD使用PCIe总线进行连接,并遵循NVMe规范。BIOS在POST阶段会对PCIe总线上的设备进行枚举(Enumeration)。
- BIOS通过查询PCI配置空间来找到NVMe控制器,并执行PCI功能发现过程以确定它是NVMe设备。
- 发送NVMe标准定义的命令(例如
Identify Controller
和Identify Namespace
),从NVMe控制器获取SSD的相关信息,包括制造商、模型、序列号、容量等。
-
判断硬盘类型:
- BIOS是通过检测不同的总线接口(SATA控制器或PCIe控制器)以及识别响应的设备类型来区分SATA硬盘和NVMe SSD的。
- 如果在SATA总线上找到了响应的硬盘,则可判断为SATA硬盘;如果在PCIe总线上发现了符合NVMe规范的控制器,则判断为NVMe SSD。
由于BIOS代码及交互过程相当底层且复杂,实际的实现通常涉及到硬件操作和协议解析,无法直接提供代码示例。但上述原理描述了BIOS如何识别和获取这两种类型硬盘的信息。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用-
悬赏问题
- ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
- ¥15 如何能达到用ping0.cc检测成这样?如图
- ¥15 关于#DMA固件#的问题,请各位专家解答!
- ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
- ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
- ¥20 微信小程序 canvas 问题
- ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
- ¥15 怎么把512还原为520格式
- ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
- ¥15 求高通平台Softsim调试经验