一种用于SATANCQ命令的控制器与系统的制作方法

摘要: 本发明涉及微电子,具体而言,涉及一种用于satancq命令的控制器与系统。背景技术:1、原生命令队列(nativecommandqueuing,ncq)是串行a...
一种用于SATANCQ命令的控制器与系统的制作方法

本发明涉及微电子,具体而言,涉及一种用于sata ncq命令的控制器与系统。

背景技术:

1、原生命令队列(native command queuing,ncq)是串行 ata(serial advancedtechnology attachment,sata)协议中的一项重要技术,它允许硬盘根据磁头当前位置和数据请求位置,动态调整读写顺序,从而减少磁头寻道次数,降低访问延迟,提升多任务处理能力。

2、在现有的sata ncq传输方案中,主机(host)通常采用串行处理机制:即必须等待当前队列(queue)的命令列表(command list)读取完毕、帧信息结构(fis)发送完毕,并在收到设备的dma setup fis后,读取物理区域描述符表(prd)并开始数据传输。在此数据传输过程中,控制器通常处于忙等待状态,无法及时处理其他队列的命令。这种串行处理模式导致多个ncq队列无法真正并行执行,造成了传输效率的浪费,尤其是在多任务并发访问的场景下,系统吞吐量受到限制。

技术实现思路

1、本发明的目的在于提供一种用于sata ncq命令的控制器与系统,以改善上述问题。

2、为了实现上述目的,本发明实施例采用的技术方案如下:

3、第一方面,本发明实施例提供一种用于sata ncq命令的控制器,所述控制器设置有m个命令寄存器、m个中继单元、m个描述符单元以及决策模块;

4、第m命令寄存器用于存储主机下发的第m队列命令,第m队列命令包括第m基地址的存储地址和第m帧信息结构的存储地址;第m中继单元用于存储第m队列命令相关的第m基地址和第m帧信息结构;第m描述符单元用于存储第m队列命令相关的物理区域描述符,1≤m≤m;

5、所述决策模块用于对m个命令寄存器、m个中继单元、m个描述符单元进行轮询,并基于设定的优先级顺序生成并发送目标消息,其中,所述目标消息为优先级顺序依次降低的基地址读请求、帧信息结构读请求、物理区域描述符读请求以及数据读请求中的任一种。

6、可以对m个命令寄存器、m个中继单元、m个描述符单元进行轮询,并基于设定的优先级顺序生成并发送目标消息,打破单个队列命令的串行处理机制,可以并行处理多个队列命令,实现ncq多队列在命令解析、参数获取和数据传输阶段的深度重叠,有效提升系统整体iops(每秒输入/输出操作次数)。

7、第二方面,本发明实施例提供一种sata ncq命令处理系统, sata ncq命令处理系统包括第一存储器、主机、sata设备以及上述的用于sata ncq命令的控制器;

8、控制器分别与主机和sata设备连接,所述主机与所述第一存储器连接。

9、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

1. 一种用于sata ncq命令的控制器,其特征在于,所述控制器设置有m个命令寄存器、m个中继单元、m个描述符单元以及决策模块;

2. 如权利要求1所述的用于sata ncq命令的控制器,其特征在于,所述决策模块包括第一调度单元、第二调度单元、第三调度单元以及优先级调度单元;

3. 如权利要求2所述的用于sata ncq命令的控制器,其特征在于,所述第一调度单元对m个命令寄存器进行轮询,若存在待处理状态的命令寄存器,则根据第ka基地址的存储地址,生成第ka基地址读请求,所述第ka基地址读请求包括第ka基地址的存储地址和第ka命令寄存器的标识,所述第ka命令寄存器为处于待处理状态时间最久的命令寄存器。

4. 如权利要求3所述的用于sata ncq命令的控制器,其特征在于,在目标消息为第ka基地址读请求时,所述优先级调度单元用于将所述目标消息发送给第一存储器;

5. 如权利要求2所述的用于sata ncq命令的控制器,其特征在于,所述第二调度单元用于对m个中继单元进行轮询,若存在初阶中继单元,则根据第kb帧信息结构的存储地址,生成第kb帧信息结构读请求;

6. 如权利要求5所述的用于sata ncq命令的控制器,其特征在于,在目标消息为第kb帧信息结构读请求时,所述优先级调度单元用于将所述目标消息发送给第一存储器;

7. 如权利要求2所述的用于sata ncq命令的控制器,其特征在于,所述第三调度单元对m个描述符单元进行轮询,若存在待处理状态的描述符单元,则生成与第kd物理区域描述符对应的数据读请求;

8. 如权利要求7所述的用于sata ncq命令的控制器,其特征在于,在目标消息为数据读请求时,所述优先级调度单元用于将所述数据读请求发送给第一设备,当第kd物理区域描述符对应的操作类型为写数据时,第一设备为第一存储器,当第kd物理区域描述符对应的操作类型为读数据时,第一设备为sata设备;

9. 如权利要求7所述的用于sata ncq命令的控制器,其特征在于,生成与第kd物理区域描述符对应的数据读请求,包括:

10. 一种sata ncq命令处理系统,其特征在于,sata ncq命令处理系统包括第一存储器、主机、sata设备以及权利要求1-9中任一项所述的用于sata ncq命令的控制器;