温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
PCIE
SATA
多通
高速
存储
电路设计
原型
验证
王琪
www.ChinaAET.comMicroelectronic Technology微电子技术基于 PCIE 转 SATA 多通道高速存储电路设计与原型验证王琪,张梅娟,邓佳伟,杨楚玮,周迁(中国电子科技集团公司第五十八研究所,江苏 无锡 214035)摘 要:针对传统 SATA 控制器接口单一且无法充分发挥固态盘性能的问题,设计了一款基于 PCIE 转 SATA 多通道高速存储电路。充分利用 PCIE 总线高带宽低延时特性,并遵循 AHCI 协议,大幅缩短硬盘无用的寻道次数和数据查找时间,提高固态盘的读写性能,同时本设计可支持 4 路 SATA 通道,具有良好的可拓展性。设计结合 PCIE 和 SATA协议特点,介绍了 PCIE 转 SATA 高速存储电路的系统架构,详细阐述了基于 AHCI 协议的数据流传输过程。最后基于 FPGA 原型验证对电路进行测试,电路的单盘读写速率分别为 562 MB/s 和 527 MB/s,相比传统 SATA 控制器的读写性能具有较大提升,测试结果表明设计的 PCIE 转 SATA 高速存储电路读写性能优异,且具备良好的稳定性和可拓展性。关键词:PCIE 转 SATA;AHCI 协议;多通道;FPGA 验证中图分类号:TN401 文献标志码:A DOI:10.16157/j.issn.0258-7998.223077中文引用格式:王琪,张梅娟,邓佳伟,等.基于 PCIE 转 SATA 多通道高速存储电路设计与原型验证J.电子技术应用,2023,49(3):72-76.英 文 引 用 格 式:Wang Qi,Zhang Meijuan,Deng Jiawei,et al.Design and prototype verification of multi-channel high-speed storage circuit base on PCIE to SATAJ.Application of Electronic Technique,2023,49(3):72-76.Design and prototype verification of multi-channel high-speed storage circuit base on PCIE to SATAWang Qi,Zhang Meijuan,Deng Jiawei,Yang Chuwei,Zhou Qian(China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214035,China)Abstract:Aiming at the problem that the traditional SATA controller has a single interface and cannot give full play to the performance of the SSD,a multi-channel high-speed storage circuit based on PCIE to SATA is designed.This design makes full use of the high-bandwidth and low-latency characteristics of the PCIE bus and follows the AHCI protocol,which can greatly reduce the useless seek times and data search time of the hard disk,and improve the read performance.At the same time,the design can support 4 SATA channels and has good scalability.This design combines the characteristics of PCIE and SATA protocols,introduces the system architecture of PCIE to SATA high-speed storage circuit,and elaborates the data stream transmission process based on AHCI protocol.Finally,the circuit is tested based on the FPGA prototype verification.The single-disk read and write rates of the circuit are 562MB/s and 527MB/s,respectively.Compared with the traditional SATA controller,the read and write performance is greatly improved.The test results show that the designed PCIE to SATA high-speed storage circuit has excellent read and write performance,and has good stability and scalability.Key words:PCIE to SATA;AHCI protocol;multi-channel;FPGA verification0 引言随着信息化时代的到来,面对数据的爆发式增长,人 们 对 高 速 存 储 需 求 日 益 迫 切1。由 于 SATA(Serial ATA,串行 ATA)接口采用串行方式数据传输,具备结构简单、支持热插拔等特点,这使得 SATA 固态盘应用于各种数据存储场景23。PCI Express 总线是第三代高性能IO 总线,具备点对点串行互连、传输速率快、传输带宽高等特点,广泛地应用于嵌入式、服务器、通信平台和计算系统等领域4。传统的 SATA 控制器接口单一且无法充分发挥固态盘读写性能,同时市场上常见的 PCIE 转 SATA 存储芯片多为国外芯片,价格昂贵,而且安全性低5。在高稳定性72Microelectronic Technology微电子技术电子技术应用 2023年 第49卷 第3期和高安全性要求的航天航空系统和电子军工系统对国产自主安全的 PCIE转 SATA 存储电路需求日益激增。本文基于 PCIE 和 SATA 协议设计了一款基于 PCIE转 SATA 的多通道高速存储电路,本设计采用 PCIE2.0 x4 接口,最高带宽为 20 Gb/s,与上游测试主机的 PCIE主控制器相连;下游采用 4 路 SATA3.1 接口与固态盘相连,单路 SATA 接口,最高带宽为 6 Gb/s,从而该电路具备较高的读写性能和良好的可拓展性。本设计充分利用 PCIE 总线的高带宽低延时特性,结合 AHCI 协议的 NCQ、TCQ 技术,增加命令队列最大长度,大幅缩短硬盘无用的寻道次数和数据查找时间,从而提高固态盘的读写性能。1 架构设计1.1 系统架构本设计系统架构如图 1 所示,分别包括 PCIE 模块、SATA 模块、时钟模块、复位模块、中断模块、调试模块和配置模块。(1)PCIE 接口模块:实现 PCIE 协议物理层和数据链路层,包括时钟恢复、串并转换等功能;(2)PCIE 控制器:实现 PCIE 逻辑层和事务层,完成发送/解析事务层数据包(TLP),数据包队列管理等功能;(3)片内总线:采用标准总线,实现各模块之间的互联,完成 PCIE/SATA/SPI 模块数据通路;(4)SATA AHCI 控 制 器:支 持 AHCI1.3 协 议,兼 容SATA3.0 标准,实现 SATA Port 提交的事务类型,数据包路由,以及数据包转发;(5)SATA Port 接口模块:实现 SATA 协议物理层和数据链路层,完成 SATA3.0 全双工串行通信,并具备 4 路独立通道;(6)中断模块:实现收集 SATA 的中断信号、出错信号以及内部状态,并形成中断事务包,反馈给 PCIE模块;(7)调试模块:实现 JTAG 接口访问 SATA 控制器寄存器,同时支持将数据自动加载到 PCIE CDM 寄存器;(8)配置模块:实现对片外 EEPROM 的读/写操作,完成 PCIE/SATA 配置空间进行配置。1.2 系统工作流程概述测试主机通过 PCIE 总线连接至本设计电路的 PCIE模块,PCIE 模块完成发送/解析事务层数据包,并通过片内总线模块完成 PCIE 到 SATA 数据包转换,SATA 模块将主机针对 SATA 盘数据读写命令进行打包,通过 SATA 总线将读写命令包传输到 SATA 设备。SATA 设备执行相关命令后,将执行结果及数据打包传输到 SATA 控制器,并通过中断触发方式,等待测试主机通过 DMA 方式写入内存,从而完成测试主机到 SATA 设备的数据通信。2 基于 AHCI 协议的数据流分析本设计遵循 AHCI 1.3 协议,大幅缩短硬盘寻道次数和数据查找时间,从而提高固态盘的读写效率。AHCI主机遵循 AHCI 协议的 PCIE 类设备要求,实现系统内存和 SATA 设备之间数据交流的引擎,完成数据传输68。2.1 AHCI 数据结构描述本设计电路作为 PCIE 设备,测试主机通过深度枚举算法对 PCIE 兼容配置空间的寄存器进行读写访问,将PCIE 配置空间的 BAR5 用于 HBA(Host Bus Adapter)寄存器基地址,实现通过内存操作直接访问 HBA 寄存器。HBA 寄存器共分为三类,通用控制寄存器、特殊寄存器以及端口寄存器。每个端口包含两个内存描述结构(如图 2 所示),包括:一个指向存放命令列表基地址的 寄 存 器。另 一 个 指 向 接 收 FIS(Frame Information Structure,帧信息结构)结构基地址的寄存器,用于接收设备传输的数据,实现与 SATA 设备之间的通信9。通过上述各端口通过命令列表和接收 FIS 结构,实现系统内存和 SATA 设备数据传输。主机的系统内存空间存放命令列表和接收 FIS 结构10。命令列表最多可由32 个命令头组成,并指向命令结构,每个命令结构由 32字节组成,包括命令物理描述控制字、发送命令地址及长度11;接收 FIS 结构用于存放设备端发送的 FIS 命令,例如 DMA、PIO 设置、设备到主机的 FIS 命令等,分别由四 个 种 类 型 FIS 报 文 组 成,包 括 DFIS、PFIS、RFIS、SDFIS 和 UFIS1215。图 1电路系统架构框图图 2HBA 内存分配73Microelectronic Technology微电子技术www.ChinaAET.com2.2 HBA 初始化过程HBA 初始化过程如图 3 所示。系统上电后,首先通过 HBA 的通用控制寄存器进行 HBA 设置,包括:设置GHC.HR 位,复位 HBA 和各个端口 link 状态,并重新进行训练;等待 HBA 复位成功后,GHC.HR 位由硬件自动清 0;设置 GHC.AE 位,使能 AHCI 机制,软件代码通过AHCI 驱动进行通信;设置 GHC.IE 位,使能 HAB 中断。然后通过端口寄存器进行端口设置,包括:设置 PxCMD.POD 位,端口上电状态使能;设置 PxIE 位,端口中断使能;设置 PxCMD.ST 位,端口进入空闲状态,准备数据收发。最后完成 HBA 初始化,主机和 SATA 设备之间通过FIS 命令,完成数据之间传输。2.3 DMA 读数据流程以典型的主机 HBA 的 DMA 读数据例,阐述主机通过 SATA HBA 获取 SATA 设备数据过程,如图 4 所示