SATA协议.ppt_第1页
SATA协议.ppt_第2页
SATA协议.ppt_第3页
SATA协议.ppt_第4页
SATA协议.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SATA协议简介,SATA Protocol,第一部分 物理层,SATA Protocol,SATA Protocol,物理层的功能,以1.5Gbps、3.0Gbps或者6Gbps的速率传输DNRZ串行数据流; 发送端和接收端提供100欧姆的终端匹配电阻; 将链路层接收的并行数据进行串行化之后发送; 接收高速串行数据转换成并行数据,包括从串行数据流中进行数据提取和时钟恢复; 检测ALIGN原语,进行数据对齐; 带外信号的接收和发送; 使用带外信号进行SATA接口初始化和主从之间速率协商; 向链路层发连接状态(已连接、未连接、已连接但是速率协商失败);,SATA Protocol,物理层的主要状态,Reset COMINIT AwaitCOMWAKE AwaitNoCOMWAKE Calibrate COMWAKE SendAlign Ready Parity、Slubmber Reduce Speed,SATA Protocol,物理层上电初始化,SATA Protocol,电源管理,Partial模式:,物理层部分电路进入休眠模式,能够在10us之内被唤醒。,SATA Protocol,Slumber模式:,与Partial模式相比可以关闭更多的电路,能够在10ms之内被唤醒。,第二部分 链路层,SATA Protocol,链路层的功能,与对方的链路层相互协商传送帧和原语; 接收传输层传送的数据(Dword),计算数据的CRC校验值,给数据加上帧头、帧尾和CRC校验信息; 接收对方链路层的数据信息,进行CRC校验,移除数据中的帧头、帧尾和CRC校验信息; 帧流量控制; 向传输层报告传输状态; 8b/10b编解码; 对数据加扰、解扰;,SATA Protocol,链路层数据结构,SATA Protocol,链路层原语,SATA Protocol,DMAT原语,功能:通知发送方停止数据传送。 主机到设备的数据传输,主机收到DMAT原语之后,会停止数据发送,开始发送CRC和EOF原语,关闭DMA,保存当前DMA的状态。设备之后可以发送DMA Active FIS重新激活主机DMA,继续数据传送。 设备到主机的数据传输,设备收到DMAT原语之后,设备会永久终止本次数据传输。,SATA Protocol,CONT原语,功能:避免发送长串重复原语,减少电磁干扰。 接收方收到CONT原语之后会认为当前发送方一直发送CONT之前的最后一个原语,直到收到另外一个原语。 设备和主机必须支持接收和处理CONT原语的功能,可以选择是否支持发送CONT原语的功能。 CONT原语之后的数据要加扰。,SATA Protocol,流量控制,接收方为了避免接收数据缓冲区溢出,使用HOLD原语进行流量控制。 在接收数据缓冲区将要满的时候,接收方会发送HOLD原语通知发送方暂停数据发送,由于HOLD原语传到发送方会有一定的延时,在延时期间发送方会继续发送数据,因此接收缓冲区必须有一定的容量来继续接收接下来HOLDA之前的数据。,SATA Protocol,链路层状态,链路层状态机是链路层的控制模块,是链路层的核心,主要包括以下四个部分: 空闲状态机 发送状态机 接收状态机 电源管理状态机,SATA Protocol,空闲状态机主要完成复位操作和建立连接,主要包括以下6个状态: L_IDLE L_SyncEscape L_NoCommErr L_NoComm L_SendAlign L_RESET,空闲状态机,SATA Protocol,L_IDLE,符合以下条件保持空闲状态: 物理层连接正常; 传输层没有传送数据请求; 没有接收到X_RDY、PMREQ_P和PMREQ_S原语;,当收到传输层的数据传输请求,链路层进入数据传输状态。 当接收到X_RDY原语,链路层进入数据接收状态。 当收到传输层进入电源管理模式的请求或者收到PMREQ_P或PMREQ_S原语,链路层进入电源管理状态。 当物理层失去连接,进入L_NoCommErr状态。,SATA Protocol,L_NoCommErr、L_NoComm和L_SendAlign状态,当检测到物理层失去连接进入L_NoCommErr状态,然后进入L_NoComm状态,需要向传输层报告物理层失去连接的状态。 直到检测到物理层连接正常之后,链路层进入L_SendAlign状态,否则保持L_NoComm状态。 在SendAlign状态,链路层发送ALIGN原语,之后如果物理层报告连接正常,进入L_IDLE状态,否则进入L_NoComm状态。,SATA Protocol,发送状态机,主要响应 传输层发送请求,启动数据发送,通过各类原语的发送和接收实现与主机之间的传输通道的建立和流量控制。,SATA Protocol,L_SendData状态,传输数据状态表示正在发送数据。 如果更多的数据需要继续发送但是传输层还未准备好,链路层进入SendHold状态。 如果更多的数据需要发送但是接收端收到了HOLD原语,发送方链路层进入RecvHOLD状态(SendHOLDA)。 如果数据发送完毕或者接收到DMAT原语,链路层进入SendCRC状态发送CRC。 如果收到SYNC原语,表示接收方传输层想要取消这次数据传输,发送方链路层进入IDLE状态。 如果发送方传输层想要取消本次数据传输,链路层进入SyncEscape状态。 如果检测到物理层失去连接,链路层进入NoCommErr状态。,SATA Protocol,接收状态机,接收数据的时候,接收状态机控制原语的接收和响应,建立数据传输通道,接收数据并校验其正确性,向发送方返回接收状态。,SATA Protocol,L_SyncEscape,当链路层在数据发送或者数据接收状态的时候,如果传输层需要取消当前数据接收或发送,链路层会进入L_SyncEscape状态。 当前状态链路层发送SYNC原语。 当前状态接收到SYNC原语或者X_RDY原语之后跳到L_IDLE。 当前状态如果物理层失去连接,进入L_NoCommErr状态。,SATA Protocol,L_RcvData状态,接收数据状态,正常回应R_IP。 如果FIFO空间不足,进入Hold状态,发送HOLD原语告知发送方暂停发送数据。 如果收到HOLD原语,表示发送方暂停发送数据,链路层接收状态机进入RecvHold状态。 如果收到EOP原语,表示数据传输完毕,进入RecvEOF状态。 如果收到WTRM原语(未收到帧结束原语),表示数据传输错误,进入BadEnd状态。 如果收到SYNC原语,表示发送方传输层要取消本次数据传输,进入IDLE状态。 如果物理层失去连接,进入NoCommErr状态。 如果接收方传输层想要取消本次数据传输,进入SyncEscape状态,之后会向发送方发送SYNC原语。,SATA Protocol,第三部分 传输层,SATA Protocol,传输层,传输层在链路层和应用层之间,负责组帧和解帧,主机和设备通过传输层帧的交互来完成命令交互和数据传递。 发送FIS时,传输层完成以下功能: 根据应用层的请求组建帧; 通知链路层需要发送数据帧,并把数据帧内容传给链路层; 管理数据缓存区,给链路层发送流量控制信息; 向应用层报告传输状态;,接收FIS时,传输层完成以下功能: 从链路层接收FIS内容; 根据FIS类型,把FIS内容放到合适的位置; 向应用层报告接收状态;,SATA Protocol,传输层,FIS是以Dword为基本单元,用来在主机和设备之间传递信息的一种帧结构,SOF和EOF原语分别作为FIS的开头和结尾,传输过程中可能在FIS中间插入HOLD原语来进行流量控制。,第0个Dword的第0字节决定了FIS类型。,SATA Protocol,Set Device Bit FIS,用于更新主机映射寄存器中错误寄存器和状态寄存器的内容。 由设备应用层发起传输该FIS的请求。,DMA Activate FIS,用于同意主机向设备以DMA方式发送数据。 当设备向主机发送该数据帧的时候,设备应该准备好接收后续的Data FIS。 当主机收到该帧,如果主机DMA控制器已经配置好,主机应该开始发送Data FIS。如果主机DMA控制器未配置好,主机应该配置DMA控制器,配置好之后激活DMA控制器开始数据帧的发送。,SATA Protocol,Register FIS,Host to Device: 用来传输主机映射寄存器的内容到设备,ATA命令集就是用这个FIS发往设备的。当设备收到一个有效的Register FIS之后,设备更新它的命令寄存器和控制寄存器中的内容,然后检查FIS中的C位,如果是1,则执行命令寄存器中的命令,如果是0,则执行控制寄存器中的控制请求。 Device to Host: 用来更新主机映射寄存器的内容。当设备执行完一个命令,应该发送该帧向主机报告完成状态。,SATA Protocol,DMA Setup FIS(Bidirectional),发送方发送该帧要求对方按照帧的内容配置好DMA控制器,发送此帧是进行DMA传输的第一步。该帧中包含了DMA操作地址、DMA传输数量和传输方向等信息。一般接收方收到该帧之后需要发送DMA Activate FIS来激活DMA传输(如果DMA Setup FIS帧中的Auto-Activate位被置一,则接收方不需要回复DMA Activate FIS)。 由应用层发出该帧的传输请求。,PIO Setup Device to Host,该帧由设备发送给主机告诉主机相关PIO操作信息(比如接下来的数据传输方向、传输数量),还包括了在PIO传输前和传输后映射寄存器的状态信息。,SATA Protocol,Data FIS(Bidirectional),该帧用来传输数据,数据长度是不定的,数据净荷的长度最多2048个Dwords。 在发送数据帧之前都需要用PIO Setup FIS或DMA Setup FIS等帧建立操作参数。,SATA Protocol,设备传输层状态机,SATA Protocol,设备传输层状态机,SATA Protocol,第四部分 命令层,SATA Protocol,设备命令层,设备命令层主要完成对收到的ATA/ATAPI命令的解析(Register FIS),并做出相应的回应。 主要以下几类命令: NON_Data命令 PIO命令 DMA命令 NCQ命令 这几类命令中,每一类命令都有多种命令构成。,SATA Protocol,NON_Data命令,主机端通过NON_Data命令 来查询设备的状态,或者做功能的 设置。设备应用层软件会解析并执 行该命令,执行结果通过设备发往 主机端的寄存器FIS发给主机。,SATA Protocol,PIO IN命令,主机端通过Register Host to Device FIS发送命令到设备端,设备 端应用层收到该命令之后,准备好数 据,然后控制传输层发送PIO Setup FIS来通知主机准备接收数据,之后发 送Data FIS,Data FIS长度如果超过 2048个Dwords,需要分开发送,每个 Data FIS之前都要发送一个PIO Setup FIS。 如果传输过程中出现错误,设 备要向主机发送RegFIS(FIS内容需要 根据ATA8-ACS标准) 。,SATA Protocol,PIO OUT命令,主机端通过Register Host to Device FIS发送命令到设备端,设备 端应用层收到该命令之后,准备好存 放数据的空间,然后控制传输层发送 PIO Setup FIS来通知主机开始发送数 据,然后设备开始接收Data FIS,当 所有数据传输完成之后,设备端需要 返回一个RegFIS来告知主机接收状态。,SATA Protocol,DMA IN和DMA OUT命令,SATA Protocol,NCQ命令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论