高手请进: SATA标准中定义的DMA setup FIS有什么用?
时间:10-02
整理:3721RD
点击:
正在学习SATA协议,物理层和链路层都很简单,一看就懂了,但看到传输层就疑惑多多,不太明白的是DMA 控制器什么的应该是在更高层次控制的,为什么在传输层要发送DMA setup这种FIS?
我的理解是SATA的部分应该不包含 ATA UDMA控制器具体控制部分,DMA identifier buffer参数 发送给Device端,Device端是没办法直接用的,是不?
是我理解错了,还是怎的? 请高手解答,谢谢!
我开始错误的认为是 SATA控制器要实现 ATA DMA控制器部分,设置DMA工作需要这个参数,所以要发送DMA SETUP 带 IDENTIFIER BUFFER参数,但后来仔细想来,好像不对,传输层还是串行这部分的实现,数据命令发送都是打包发送的(通过原语和FIS),根本用不上地址变量,是不?
急切盼高手解答,感谢!
PIO方式和DMA方式传输数据对SATA协议的串行部分(指链路层,物理层)实现上应该是差异极小的,是这样么? CPU参不参与数据传输的过程,与SATA串行部分实现应该没什么关系吧?
SATA协议区分PIO和DMA方式纯粹是“继承”ATA协议么? 为什么把这种数据传输方式的不同传递给 链路层,原因是什么啊? 实在理解不了,SATA这样设计的脉络是什么? 难道就是“简单的继承”?
哈哈, 今天看了一天SATA协议,原来是由于 First Party DMA的关系,嗨,还是知识贫乏,没见识啊!
刚看过的“关于硬盘NCQ和FPDMA”文章
First Party DMA 的应用是硬盘的NCQ实现的基础条件,这样硬盘控制器可以应用自己的最佳访问方案,来利用 FPDMA按照最佳排序来访问硬盘,提高了硬盘性能。哈哈,原来NCQ和硬盘访问优化才是FPDMA使用的目的。
现在sas协议用的比较多吧
原來如此~
小编做过Xilinx SATA 3.0的IP吗?做过请联系我,可以考虑购买IP或兼职等合作方式, QQ/微信: 59488482, 多谢!
