微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 串行ATA总线应用技术

串行ATA总线应用技术

时间:07-30 来源:电子技术应用 点击:

性。AHCI[6](Advanced Host Controller Interface)是一种理想的实现本地设备策略的方案,它通过PCI BAR(Base Address Register)实现原生的SATA功能。

AHCI本质是一种PCI类设备,在系统内存总线和串行ATA设备内部逻辑之间扮演一种通用接口的角色。这个类设备描述了一个含控制和状态区域、命令序列入口表的通用系统内存结构;每个命令表入口包含SATA设备编程信息,和一个指向(用于在设备和主机传输数据的)描述表的指针。

本地设备方案通过集成SATA到芯片组实现,它可以充分利用SATA减少信号数量的优点,表现SATA的高速度,节省了板空间,增加了可靠性,减少了功耗,实施更简单容易。不足是由于SATA接口是高速信号,给读取信道带来干扰,所以在设计芯片和主板时必须考虑采取适当的信号完整性保护措施。由于AHCI统一接口的研发成功,使得支持串行ATA产品的开发工作大为简化,操作系统和设备制造商省去了单独开发接口的工作,取而代之的是直接在统一接口上进行操作,就能实现包括NCQ在内的诸多功能。

  2.3 桥与本地设备方案的比较

桥和本地设备方案除了具有上述的技术实质差别外,还有如表1给出的多个不同之处。从比较中也可以看出桥对SATA支持的局限性,从一个侧面表现了技术对现状的妥协,也注定了桥属于技术发展过渡阶段的产物。

3 SATA设备编程

  3.1 SATA的数据流

在SATA系统中,数据操作对象按粒度大小分为Primitive、FIS和Command三种。数据在(主机)适配器和存储设备之间交换,参与交换的对象和数据结构关系[7]如图1所示。在图中,箭头从父对象指向子对象,数字1和n代表父对象拥有子对象的数目。适配器对象代表控制板或HBA,它有一个与适配器相关的适配器信息数据结构。适配器可以拥有多个控制器,每个控制器有自己独立的控制器信息,内含控制器公共寄存器数据结构和其他控制信息。而每个控制器又有多个供连接目标设备的端口。每个端口连接一个存储设备,每个设备有一个深度为1或更大的命令队列,而每条命令由与数据结构和DMA对象相关的命令对象代表。另外,对于一些含有多口的存储设备,允许它连到其他控制器的端口上,以提高设备的可用性和可靠性。


   3.2 SATA的编程结构

SATA的编程结构如图2(其中右部是各层次API关系),特定操作系统模块(图2中①)完成把不同操作系统对低层驱动器件的请求翻译成低层器件能够识别的格式。SATA库模块(图2中②)包括通用SATA逻辑和SATA控制逻辑两个组件,为不同操作系统的驱动器模块提供独立于操作系统的标准API。其中,通用SATA逻辑模块是独立于控制器、操作系统和结构的,主要实现所有的算法和例程。SATA控制逻辑描述的是所有专用控制器代码,具体内容依赖于控制器的主控制芯片。操作系统服务层(图2中③)提供一个独立于操作系统的与SATA库层的接口。它与具体的操作系统相关,能把上层操作系统类的请求翻译成目标操作系统能够识别的请求格式。

  3.3 操作系统对SATA应用支持

  3.3.1 Windows平台
  Windows平台中,桥是通过仿真Windows支持的PATA模式控制器,加载和使用PATA控制器实现。为了提供对SATA两种模式的支持,微软开发了支持最新ATA/ATAPI命令集的Ataport,该命令集支持PATA、SATA混合应用环境。应用Ataport开发的SATA控制器,一般提供两个微口(Miniport),其中一个是支持现PATA控制器的默认微口驱动器,替换现有的PATA和SATA仿真PATA的驱动栈功能实体;另一个是支持AHCI SATA的微口驱动器,在未来的Windows系统中实现本地设备模式。在Ataport中,每个设备的工作模式通过PCI规范中基类01(块存储器)的子类代码设置,当SATA设备运行在仿真并行模式时,子类代码设置为01h;运行在本地SATA模式时,应设置为06h。要说明的是,Windows 2003 Server及以前的所有版本都不提供对本地设备的支持。

  3.3.2 Linux平台
  Linux平台对SATA设备的支持是通过借鉴成熟的PATA,并对PATA与SATA相异部分加以改进,扩充一些SATA支持的新功能实现。

IDE设备驱动器模块(ide.c)含有一些特定的设备子驱动器如ide-pci.c、ide-probe.c、ide-pnp.c、ide-dma.c、ide-proc等。根据SATA的新特性,对SATA设备的物理发现和传输进行完善和改进,即对原有的PATA的ide-probe.c、ide-dma.c子驱动器等进行修订,其他子驱动器可以直接借鉴PATA。用户只需通过驱动器层的可选择配置,即实现对桥和本地两种模式的支持。

4 发展趋势

SATA是一种新兴的总线技术,是PATA的理想的替代技术,对它的研究和应用已成为一种趋势。这种趋势表现在:

(1) 标准化工作将进一步加快 主

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top