本发明提供了一种双模SATA传输层优化方法,当SATA传输层状态机处于HT_HostIdle状态时,确定SAS控制器的当前模式是否为STP模式,基于SAS控制器的当前模式和预定义事件,将SATA传输层状态机跳转到与预定义事件相对应的目的状态;当SATA传输层状态机处于HT_DS_FIS状态时,如果数据方向为写方向并且auto active bit置位,则将SATA传输层状态机跳转到HT_HostIdle状态;当SATA传输层状态机接收到DMA active FIS并处于HT_DMAOTrans1状态时,将SATA传输层状态机直接跳转到HT_HostIdle状态。本发明避免了SAS控制器在并发控制的STP场景下的状态异常,并通过链路层上报的链路协商结果自动选择传输层工作模式,使用一套设计即可支持STP和SATA设备直连两种场景。