小飞猪0907-li 2024-03-04 14:52 采纳率: 33.3%
浏览 2
已结题

BIOS 识别盘片信息的原理是什么?

BIOS 识别盘片信息的原理是什么? 例如:bios读到sata的信息包括SN,model等信息,是通过向盘片下发identity命令吗?
读取nvme盘的信息,是如何读取的,下发的什么命令?
BIOS是如何判断盘片是sata还是nvme?

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-04 14:54
    关注

    引自免费微信小程序:皆我百晓生

    在计算机系统启动的过程中,BIOS(基本输入输出系统)负责初始化硬件并识别和配置存储设备。对于SATA硬盘和NVMe固态硬盘的识别与信息读取,其原理略有不同。

    1. BIOS识别SATA硬盘

      • 当系统加电自检(POST, Power-On Self Test)时,BIOS会通过AHCI(高级主机控制器接口)或IDE模式对SATA端口进行扫描。
      • BIOS向SATA硬盘控制器发送IDENTIFY DEVICE命令,这是一个ATA/ATAPI标准定义的命令,用于获取硬盘的基本信息,如制造商ID、型号、序列号、容量等。
      • 硬盘收到此命令后,会在数据FIS(帧信息结构)中返回相关信息,BIOS根据这些信息来判断硬盘的存在以及其特性。
    2. BIOS识别NVMe SSD

      • NVMe SSD使用PCIe总线进行连接,并遵循NVMe规范。BIOS在POST阶段会对PCIe总线上的设备进行枚举(Enumeration)。
      • BIOS通过查询PCI配置空间来找到NVMe控制器,并执行PCI功能发现过程以确定它是NVMe设备。
      • 发送NVMe标准定义的命令(例如Identify ControllerIdentify Namespace),从NVMe控制器获取SSD的相关信息,包括制造商、模型、序列号、容量等。
    3. 判断硬盘类型

      • BIOS是通过检测不同的总线接口(SATA控制器或PCIe控制器)以及识别响应的设备类型来区分SATA硬盘和NVMe SSD的。
      • 如果在SATA总线上找到了响应的硬盘,则可判断为SATA硬盘;如果在PCIe总线上发现了符合NVMe规范的控制器,则判断为NVMe SSD。

    由于BIOS代码及交互过程相当底层且复杂,实际的实现通常涉及到硬件操作和协议解析,无法直接提供代码示例。但上述原理描述了BIOS如何识别和获取这两种类型硬盘的信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 创建了问题 3月4日

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验