一种SSD主控内部负载均衡系统及方法技术方案

技术编号:15251128 阅读:126 留言:0更新日期:2017-05-02 14:22
本发明专利技术公开了一种SSD主控内部负载均衡系统及方法,均衡系统包括主机接口:用于负责接收来自主机的命令和数据,同时向主机返回响应和向主机传送数据;NFC:负责完成SSD主控和NAND Flash之间的命令交互和数据传输;IO命令均衡引擎:负责分发来自主机接口的IO命令请求到CPU处理,同时转发来自CPU的响应到主机接口;多个CPU:用于负责对IO命令均衡引擎分发过来的IO命令的调度处理,并控制数据传输。本发明专利技术解决了偏硬件型系统设计面临的芯片面积和功耗问题,同时解决了通常软件型系统方案中,多CPU处理带来的时延增加问题。

SSD main control internal load balancing system and method

The invention discloses an internal SSD main control load balancing system and method, balanced system includes a host interface: responsible for receiving commands from the host and returns the response data, and the transfer of data to the host to host at the same time; NFC: responsible for command interaction and data transmission between SSD and NAND master Flash IO command; balanced engine: responsible for distributing from the host interface IO command requests to the CPU processing, and forwarding the response to the host interface from CPU; multiple CPU for scheduling process is responsible for the IO command balanced engine distributed over the IO command and control data transmission. The invention solves the problem of chip area and power consumption in the design of the partial hardware system, and solves the problem of increasing the delay caused by the multi CPU processing in the software system.

【技术实现步骤摘要】

本专利技术涉及SSD主控,特别是一种SSD主控内部负载均衡系统及方法
技术介绍
SSD主控为SSD固态硬盘的关键部件,其处理性能决定了SSD固态硬盘能够达到的最高性能。近几年,企业级PCIeSSD主控性能已经进入百万级IOPS,而业界主流设计厂商在不断追求SSD主控极致性能的过程中,主要产生了两种架构类型:偏硬件型,以逻辑RTL实现SSD主控的FTL表项管理,CPU主要用于各种异常处理;偏软件型,表项管理主要由软件实现,采用非常强大的CPU来支撑算法实现。偏硬件性系统设计的特点就是,整个IO路径的所有主要功能,包括FTL表项管理这块,都由硬件逻辑门电路实现,CPU主要用于极少发生的异常处理。这种设计方式由于主要关键功能都采用硬件门电路实现,一方面会增加芯片面积提升芯片成本,一方面还会增加芯片功耗。同时该类型设计的技术复杂度非常高,稳定周期长,会对产品带来更多的技术风险和商业风险。偏软件型系统设计的特点就是,硬件主要负责数据通路,CPU负责控制调度IO命令在硬件模块间的交互和数据传输。由于CPU参与了更多IO处理,在追求最高IOPS的同时,通常面临处理资源瓶颈,进而限制了系统的最大IOPS规格。综上,偏硬件型表项管理设计,无法避免的问题就是功耗过高,稳定周期偏长,技术门槛高的问题;而偏软件型主要面临的就是CPU资源不够,通常受限CPU资源瓶颈,而无法达到最大性能。为了突破CPU资源瓶颈问题,当前软件型主流方案主要通过增加片内CPU个数来解决。将IO处理的主流程分解为多个子流程,每个子流程由1个CPU单独处理,所有CPU一起完成整个IO的处理,进而达到提升整个系统性能的目的。这种方法需要进行CPU间信息交互,交互次数取决于分解的子流程。如果分解的子流程到单个CPU太少,则达不到增加CPU资源的目的;而分解太多,则CPU间交互太多,总的CPU内部消耗也会增大,那么每个IO的时延也就增大了。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术不足,提供一种SSD主控内部负载均衡系统及方法,解决偏硬件型系统设计面临的芯片面积和功耗问题,同时解决通常软件型系统方案中,多CPU处理带来的时延增加问题。为解决上述技术问题,本专利技术所采用的技术方案是:一种SSD主控内部负载均衡系统,包括:主机接口:用于负责接收来自主机的命令和数据,同时向主机返回响应和向主机传送数据;NFC:负责完成SSD主控和NANDFlash之间的命令交互和数据传输;IO命令均衡引擎:负责分发来自主机接口的IO命令请求到CPU处理,同时转发来自CPU的响应到主机接口;多个CPU:用于负责对IO命令均衡引擎分发过来的IO命令的调度处理,并控制数据传输。所述IO命令均衡引擎包括:CMDSlot:硬件RAM资源,用于存放CMD上下文信息,将命令请求和响应进行匹配;;CMD上下文信息即IO命令上下文;处理引擎:用于管理CPU资源和CMDSlot资源,并为IO命令选择合适的CPU;IORouter:用于根据处理引擎为IO命令选择目的CPU,将IO命令通过多路复用器/多路分配器分发到对应的CPU;多路复用器/多路分配器:用于将IO命令分发到不同的CPU,并将各个CPU处理的IO响应复用给处理引擎做进一步处理。IO命令均衡引擎分发IO命令的过程包括:1)收到IO命令后,判断是否还存在CMDSlot资源,若存在,则进入步骤2);否则,处理结束,即挂起当前IO命令;2)遍历下一个CMDSlot记录的正在处理的IO命令;3)若待处理的IO命令与CMDSlot记录的正在处理的IO命令存在访问LBA(LogicalBlockAddress)地址冲突,则选择后者对应的CPU来处理该当前待处理的IO命令,同时分配新的CMDSlot资源来存放当前IO命令上下文,进入步骤4);否则,分配新的CMDSlot资源给当前待处理的IO命令,并选择当前处理IO命令数最少的CPU处理该当前待处理的IO命令,进入步骤4);4)将当前待处理的IO命令通过IORouter转发给选出的CPU处理;5)在CMDSlot记录当前IO命令的上下文信息,并将所述选出的CPU处理的IO命令个数加1;6)结束。将各个CPU处理的响应复用给处理引擎做进一步处理的步骤包括:1)多路复用器/多路分配器收到CPU发来的IO响应;2)将对应的CPU的IO处理个数减1,并释放IO响应对应的CMDSlot资源;3)处理引擎转发IO响应到主机接口,并判断是否有挂起的待处理IO命令在等待队列中;若有,则读取并处理等待队列里的IO命令,进入步骤4);否则,进入步骤4);4)结束。本专利技术还通过了一种利用上述系统均衡SSD主控内部负载的方法,该方法主要实现过程为:通过IO命令均衡引擎在CPU间分发IO命令,每个CPU独立处理分发给自己的整个IO命令,各CPU间互不交互。保证CPU间互不交互的方法包括以下步骤:1)若当前待处理的IO命令与CMDSlot记录的正在处理的IO命令存在访问LBA地址冲突,则分配新的CMDSlot资源给当前待处理的IO命令,则选择后者对应的CPU来处理该当前待处理的IO命令,同时分配新的CMDSlot资源来存放当前IO命令上下文,进入步骤2);否则,分配新的CMDSlot资源给当前待处理的IO命令,并选择当前处理IO命令数最少的CPU处理该当前待处理的IO命令,进入步骤2);2)将当前待处理的IO命令转发给选出的CPU处理。与现有技术相比,本专利技术所具有的有益效果为:本专利技术在SSD主控内部利用IO命令负载均衡引擎,在多个CPU间分发IO命令,各CPU间互不交互,通过内部IO命令负载均衡引擎的IO地址冲突机制,来保证各个CPU间的IO处理真正独立,互不干扰,解决了偏硬件型系统设计面临的芯片面积和功耗问题,同时解决了通常软件型系统方案中,多CPU处理带来的时延增加问题。本专利技术通过使用IO均衡引擎,能够在使用多CPU资源处理IO命令的同时,让多个CPU能够独立、完整的处理每一个IO,有效避免了CPU间消息交互的开销给单个IO命令所带来的时延增加;本专利技术的SSD主控系统,各个CPU独立完成相同功能,互不影响。可以通过简单配置IO均衡引擎管理的CPU资源个数和实际物理布局的CPU资源,不用更改IO路径和处理流程,就能够设计实现出各种性能规格的SSD主控芯片。附图说明图1为本专利技术SSD主控内部负载均衡整体框图;图2为本专利技术IO命令均衡引擎结构示意图;图3为本专利技术IO分发响应时序图;图4为本专利技术IO均衡引擎分发IO命令流程图;图5为本专利技术IO均衡引擎处理IO命令响应流程图。具体实施方式本专利技术利用一个IO命令均衡引擎,负责将来自HIF接口的IO命令分发到内部各个CPU,各CPU再负责自己所接收到的IO进行处理。每个CPU在系统内都有唯一编号。如图1,本专利技术的各模块功能如下:HIF:HostInterface,主机接口,负责接收来自主机的命令和数据,同时向主机返回响应和向主机传送数据。NFC:NandFlashController,NANDFlash控制器,负责完成SSD主控和NANDFlash之间的命令交互和数据传输。IOCommandBalanceEngine:IO命令均衡引擎,负责完成分发来自HIF模块的I本文档来自技高网
...

【技术保护点】
一种SSD主控内部负载均衡系统,其特征在于,包括:主机接口:用于负责接收来自主机的命令和数据,同时向主机返回响应和向主机传送数据;NFC:负责完成SSD主控和NAND Flash之间的命令交互和数据传输;IO命令均衡引擎:负责分发来自主机接口的IO命令请求到CPU处理,同时转发来自CPU的响应到主机接口;多个CPU:用于负责对IO命令均衡引擎分发过来的IO命令的调度处理,并控制数据传输。

【技术特征摘要】
1.一种SSD主控内部负载均衡系统,其特征在于,包括:主机接口:用于负责接收来自主机的命令和数据,同时向主机返回响应和向主机传送数据;NFC:负责完成SSD主控和NANDFlash之间的命令交互和数据传输;IO命令均衡引擎:负责分发来自主机接口的IO命令请求到CPU处理,同时转发来自CPU的响应到主机接口;多个CPU:用于负责对IO命令均衡引擎分发过来的IO命令的调度处理,并控制数据传输。2.根据权利要求1所述的SSD主控内部负载均衡系统,其特征在于,所述IO命令均衡引擎包括:CMDSlot:用于存放CMD上下文信息,CMD上下文信息信息用于将命令请求和响应进行匹配;CMD上下文信息即IO命令上下文;处理引擎:用于管理CPU资源和CMDSlot资源,并为IO命令选择合适的CPU;IORouter:用于根据处理引擎为IO命令选择目的CPU,将IO命令通过多路复用器/多路分配器分发到对应的CPU;多路复用器/多路分配器:用于将IO命令分发到不同的CPU,并将各个CPU处理的IO响应复用给处理引擎做进一步处理。3.根据权利要求2所述的SSD主控内部负载均衡系统,其特征在于,IO命令均衡引擎分发IO命令的过程包括:1)收到IO命令后,判断是否还存在CMDSlot资源,若存在,则进入步骤2);否则,处理结束,即挂起当前IO命令;2)遍历下一个CMDSlot记录的正在处理的IO命令;3)若待处理的IO命令与CMDSlot记录的正在处理的IO命令存在访问LBA地址冲突,则选择后者对应的CPU来处理该当前待处理的IO命令,同时分配新的CMDSlot资源来存放当前IO命令上下文,进入步骤4);否则,分配新的CMDSlot资源给...

【专利技术属性】
技术研发人员:杨万云周士兵彭鹏马翼田达海
申请(专利权)人:湖南国科微电子股份有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1