SATA3.2协议传输层Flow Control机制解析
2018-01-03 14:41
225 查看
传输层中Tx/Rx buffer只有7 DWs,也就是28 Bytes, 而我们Data FIS的最大长度是2049 DWs(8196 Bytes)。在Data传输过程中,如果不加管理和控制的话,就会出现欠载(UnderRuns)和过载(OverRuns)的情况。
在Data flow control的过程中,主要用了两个Primitive基元:HOLD和HOLDA。
HOLD的作用是告知对方中止FIS传输;
HOLDA的作用是告知HOLD发送者:“您的HOLD中止指令已收到,并且已中止FIS传输”。
发送端(Tranmitter)和接收端(Reciver)均可以启动Data flow control机制,主要分为以下四种情况:
发送端Tx Buffer接近空的时候;
发送端Tx Buffer接近满的时候;
接收端Rx Buffer接近满的时候;
接收端Rx Buffer接近空的时候;
(1)发送端Tx Buffer接近空的时候
Data FIS传输过程中,首先是接收端检测到FIS并且回复Primitive基元"R_IP"(Reception in Progress)给发送端(如下图)。
当发送端Tx buffer接近空的时候,发送端会给接收端发送Primitive基元“HOLD”,告知接收端,data传输将会被暂停;
注:发送端会一直发送HOLD,直到data传输被恢复。
当接收端接收到HOLD之后,会反馈HOLDA给发送端。
(2)发送端Tx Buffer接近满的时候
前面提到发送端会一直发送HOLD,直到data传输被恢复。一旦发送端Tx Buffer快满了,就会取消HOLD,并恢复data传输。接收端也会在HOLD之后立马检测到数据的传输,并且释放HOLDA。
(3)接收端Rx Buffer接近满的时候
当接收端Rx buffer快满的时候,发送HOLD给接收端,告知发送端"先不要发送数据了,我快承受不来了,呜呜~"。
当发送端接到HOLD之后,会立马发送HOLDA安抚接收端"遵命~传输已中止~"。
(4)接收端Rx Buffer接近空的时候
当接收端Rx buffer快空的时候,会释放HOLD,欢快的告知发送端“快发送数据啦,我现在很空呢~”,同时会发送R_IP。发送端收到接收端R_IP的指示,恢复data传输。
传输层中Tx/Rx buffer只有7 DWs,也就是28 Bytes, 而我们Data FIS的最大长度是2049 DWs(8196 Bytes)。在Data传输过程中,如果不加管理和控制的话,就会出现欠载(UnderRuns)和过载(OverRuns)的情况。
在Data flow control的过程中,主要用了两个Primitive基元:HOLD和HOLDA。
HOLD的作用是告知对方中止FIS传输;
HOLDA的作用是告知HOLD发送者:“您的HOLD中止指令已收到,并且已中止FIS传输”。
发送端(Tranmitter)和接收端(Reciver)均可以启动Data flow control机制,主要分为以下四种情况:
发送端Tx Buffer接近空的时候;
发送端Tx Buffer接近满的时候;
接收端Rx Buffer接近满的时候;
接收端Rx Buffer接近空的时候;
(1)发送端Tx Buffer接近空的时候
Data FIS传输过程中,首先是接收端检测到FIS并且回复Primitive基元"R_IP"(Reception in Progress)给发送端(如下图)。
当发送端Tx buffer接近空的时候,发送端会给接收端发送Primitive基元“HOLD”,告知接收端,data传输将会被暂停;
注:发送端会一直发送HOLD,直到data传输被恢复。
当接收端接收到HOLD之后,会反馈HOLDA给发送端。
(2)发送端Tx Buffer接近满的时候
前面提到发送端会一直发送HOLD,直到data传输被恢复。一旦发送端Tx Buffer快满了,就会取消HOLD,并恢复data传输。接收端也会在HOLD之后立马检测到数据的传输,并且释放HOLDA。
(3)接收端Rx Buffer接近满的时候
当接收端Rx buffer快满的时候,发送HOLD给接收端,告知发送端"先不要发送数据了,我快承受不来了,呜呜~"。
当发送端接到HOLD之后,会立马发送HOLDA安抚接收端"遵命~传输已中止~"。
(4)接收端Rx Buffer接近空的时候
当接收端Rx buffer快空的时候,会释放HOLD,欢快的告知发送端“快发送数据啦,我现在很空呢~”,同时会发送R_IP。发送端收到接收端R_IP的指示,恢复data传输。
相关文章推荐
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA3.2协议传输层Flow Control机制解析
- SATA 3.2协议 Error handing机制
- SATA 3.2协议 Error handing机制
- SATA 3.2协议 Error handing机制
- iOS网络编程解析协议二:XML数据传输解析
- 【Android】远程文件管理传输协议解析