Serial ATA AHCI 1.3.1 规范详解

需积分: 50 26 下载量 187 浏览量 更新于2024-07-19 收藏 3.37MB PDF 举报
"AHCI1.3.1规范文档提供了Serial ATA AHCI(Advanced Host Controller Interface)1.3.1版本的详细规范,涵盖了控制器与SATA设备间的接口定义、控制器寄存器等内容。该规范旨在促进主机系统与SATA设备间的高效通信,并规定了与传统软件交互的方式。" AHCI(Advanced Host Controller Interface)是一种接口标准,由Intel开发,旨在简化Serial ATA(SATA)设备与主机系统之间的通信。AHCI1.3.1规范是这个标准的一个重要版本,它详细定义了如何通过统一的接口管理多个SATA设备,包括硬盘驱动器和其他SATA设备,如光驱。 1. **概述**:AHCI规范提供了一种标准化的方法来实现串行ATA设备的热插拔、高级电源管理以及3Gbps及以上的高速数据传输。它不仅支持传统的块I/O操作,还支持中断重定向、命令列表轮询等高级特性。 2. **范围**:AHCI规范主要关注主机系统中的SATA控制器设计,包括硬件设计和驱动程序接口。它定义了控制器如何与系统内存交互,以及如何处理命令和数据传输。 3. **不在范围内的内容**:AHCI规范不涵盖SATA设备本身的实现,也不涉及物理连接器或电缆的电气规格,这些通常由SATA接口规范定义。 4. **块图**:AHCI规范中的块图通常用来展示系统架构,包括主机系统、SATA控制器、SATA设备和它们之间的通信路径。 5. **约定**和**定义**:规范中列出了各种术语和缩写,例如: - **active command slot**:活动命令槽,指当前正在执行的命令。 - **command list**:命令列表,包含待执行的命令信息。 - **command slot**:命令槽,用于存储和管理每个SATA设备的命令。 - **D2H**:设备到主机的数据FIS(帧信息结构),用于设备向主机发送数据。 - **device**:SATA设备,如硬盘或光驱。 - **FIS**:帧信息结构,SATA通信中的基本数据单元。 - **H2D**:主机到设备的数据FIS,启动或响应设备操作。 - **HBA**:主机总线适配器,即SATA控制器。 - **n/a**:不适用,表示某些功能在特定情况下无效。 - **port**:SATA端口,控制器可以管理多个SATA设备。 - **PRD**:数据偏移寄存器,指示数据传输的起始地址和长度。 - **queue**:命令队列,用于存储待处理的命令。 - **register memory**:寄存器内存,控制器用以存储状态和控制信息。 - **Task File**:任务文件,存储设备状态和控制信息的集合。 - **system memory**:系统内存,用于存储命令列表和数据缓冲区。 6. **工作原理**:AHCI通过使用队列和任务文件简化了命令管理和数据传输,允许并行处理多个命令,提高了I/O性能。同时,它支持中断重定向,使处理器能更高效地处理I/O请求。 7. **与传统软件的交互**:AHCI规范描述了如何在不支持AHCI的旧版操作系统中实现兼容性,通常通过模拟传统的ATAPI(ATA Packet Interface)接口来实现。 8. **配置寄存器**:规范详细列出了HBA配置寄存器,如PCI头信息、标识符、命令和设备状态,这些寄存器用于设置和监控控制器的运行状态。 以上只是AHCI1.3.1规范的部分要点,完整的规范还包括更多关于错误处理、热插拔支持、命令完成、电源管理等方面的内容,对于理解SATA设备的底层工作原理和进行相关硬件或驱动程序设计至关重要。
2016-07-21 上传