APP下载

基于SATA3.0协议的数据分发技术的研究

2017-07-10霍峰

科技风 2017年2期

摘 要:随着综合化航空电子技术的发展,系统集成度的提高,针对海量数据的存储方法提出了新的要求,高速存储、信号抗干扰、支持热插拔等特点使SATA控制器的应用得到了发展,本文通过对SATA3.0协议的在某系统中的应用的描述,详细介绍了SATA控制器控制原理、比较了SATA控制器与其他控制器的区别;

关键词:SATA;FIS;海量数据存储

數字电子地图在航空电子系统中的应用,使得原有的IDE设备已满足不了高分辨率、高帧频、数据量巨大的航拍图像信息的实时存储,基于SATA3.0协议的SATA电子盘的理论数据传输速率峰值可达到600MB/S,工业级的标准SATA电子盘的容量以突破500GB,这种高吞吐量,海量数据存储的优势,使得带有SATA控制器的电子盘将高帧频,大阵列的数字航拍图得到了实时的存储。而传统的机械型ATA电子盘的传输速率仅有3.3MB/S。已远远不能满足新一代航空电子对数据高速处理的要求。

一、SATA协议

SATA(Serial Advanced Technology Attachment)设备是一种高速的串行通信的大容量电子盘的控制器,可作为并行总线的大容量电子盘替代装置。通过8b/10b的比特解码技术保障了串行连接的高速性。

SATA体系结构从上到下一共分为四层,应用层、传输层、链接层、物理层。应用层负责执行ATA规范的命令。传输层负责在活存中按照AHCI协议规定的格式组织命令和通信数据包的格式,HBA(hostbus adapter)通过PCI总线将命令包和数据包发送到ATA设备。链接层负责接收传输层发送过来的数据,并将这些数据进行解码,并以流的形式将数据传输到物理层。物理层负责在总线上以串行数据流的形式接收解码后的数据。

物理层:物理层决定了SATA控制器的电器特性,本设计采用Intel公司的工业档SATA控制器。

链路层:和传输层进行命令交换时,链路层不关心数据包的格式。链路层提供以下服务:提供协商机制,仲裁主机和设备的命令冲突。为数据加上包头和包尾标记,使数据以包头+帧数据+包尾的形式存在。然后对数据进行CRC校验,并自动将校验码添加到包尾,将整包数据同扰码值异或后再发送给物理层。和物理层进行命令交互时,链路层提供以下服务:刷新链路状态,通知数据FIFO准备接收,然后接收物理层解码后的数据,删除包头和包尾后对数据进行CRC校验,对收到的数据的CRC码同计算出来的CRC校验进行比对,对错误数据进行丢包处理。

传输层:定义了一系列FIS(Frame Information Structure),构造/解析特定类型的FIS的流程。描述主机和设备间交互的基本结构,主机和设备会随收到的FIS发生状态迁移。

命令与应用层:应用层定义了一系列SATA设备的附加特性。

二、命令的分发及处理

控制器主机中保存了一组设备寄存器的映射,称为Shadow Register Block(SRB),软件将数据读写命令写入主机的SRB, 再发送给设备若设备寄存器的值被修改,则也通过FIS传给主机更新其SRB。具体的命令及数据控制流见图1。

三、系统状态机

DMA In/Out命令采用同步方式执行,即设备收到命令后,即刻开始执行,主机在该命令执行结束前不能再向设备发送命令命令采用异步执行的方式,将命令的提交与执行分开执行。

在设备端:响应命令A的准备工作完毕构造一个DMA Setup FIS,包含命令A的DMA Buffer Identifier发送FIS给主机。

在主机端:收到一个DMA Setup FIS根据DMA Buffer Identifier找到内存空间,此内存空间中接收/发送的数据。

当设备接收到

这三种命令时,仅将命令入队后即返回空闲态,准备接收下一个命令。

一旦启动命令执行,当命令队列不为空,且运行命令所需的条件已具备时,设备即进入相应的命令处理阶段。

设备可以自行决定命令执行顺序,不必保证命令的执行顺序与提交顺序一致。

例如:命令1,2,3分别要读取位于磁道1、5、3上的数据,则磁头寻道轨迹:

四、结语

总的来说,随着大容量存储技术的发展,不仅仅带动了存储容量本身的提升,也带动了数据分发协议的完善,数据安全性的提升,从PATA到SATA,再到SATAII。相信将来,数据存储设备及其接口标准还会继续向着更稳定、高效方向发展。

参考文献:

[1] 叶朝锋,黄松岭,徐云.基于SATA的嵌入式高速大容量数据存储系统设计[J].电测与仪表,2008.

[2] 尤海峰,等.大型民用飞机IMA 系统应用分析及发展建议[J].电讯技术,2013.

[3] 刘国纪,张小华.计算机组装与维护入门.重庆大学出版社,2007,5.

基金项目:国家重大专项资助项目(2012ZX01041-006)

作者简介:

霍峰,男,辽宁铁岭人,研究方向为嵌入式软件开发技术。