AHCI 介绍

AHCI 简介

AHCI(全称:Advanced Host Controller Interface 高级主机控制器接口)个人理解就是一种接口架构规范.AHCI 由 AHCI Host Device 和 AHCI Client Device 组成。AHCI Host Device 也就是我们常说的 HBA(Host Bus Adaptor 主机总线控制器),而AHCI Client Device 可以是所有的 ATA device.AHCI 就是用来规范这两者之间的通信。

HBA

HBA 是遵循 AHCI 规范,用于完成系统内存和 ATA 设备通信的芯片,也是一个 PCI device.一般位于 chipset 里面或者连接到 PCI bus 上。

HBA 上有多个 Port,设备通过 port 连接到 HBA 上,通过这个 port 实现系统内存和设备的交互,HBA 就是中间的数据交互引擎。Port 包含一组用于控制 DMA 数据传输以及和 ATA 设备连接建立的寄存器,每个 port 只能和一个 device 直接连接,但是可以通过 Port Multiplier 使一个 port 连接多个设备。

HBA 和设备基本的连接结构有两种,如下:

IA Based System Diagram:

以及Embedded System Diagram:

两种的差别主要是看 CPU 是否有自己的本地内存,还是使用系统内存。

Command List

系统内存中有一块区域用于存放控制和状态信息以及一个用于记录命令的表也就是Command List(若是不支持Command List的话,表的长度为 1)。每个Command List包含 1~32 个 command slot,每个 slot 包含的是 SATA 设备的必要信息以及用于传输数据的指向描述符表的指针。

需要区分的是 ,HBA 控制设备状态和连接的寄存器,和控制软件访问设备状态和连接的 command list。前者是位于 HBA 自己的配置空间也就是寄存器内存,而后者是位于系统内存。

FIS

FIS是“Frame Information Structure 框架信息结构”的缩写。FIS是在主机和设备之间传输的数据包或信息帧。有关更多信息,请参阅Serial ATA 1.0a规范。

AHCI 优点

  1. 通过 AHCI 将对于 ATA 设备的一些功能支持分离出来,从而减少对 CPU/Software资源的使用。
  2. Software 与 device 的通信是通过 HBA 获取的 command FIS,从而减少创建命令的时间,此外避免了 Software 和 device 直接接触。
  3. 通过 HBA 传输都是使用 DMA 数据传输,不需要对命令进行任何压缩和解析。
  4. etc.

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值