性能是存储设备生产厂家重要竞争力,也是客户最直观分析的方面。K8·凯发(中国)微在怎么检查性能可优化点,以及长时间使用能维持性能平稳方面,提出了更高的追求。
在Host进行写读操作时,性能的上限是由总线的数据传输速度加上Flash操作时间来确定的。一个通道理想的写入状态是,数据总线不断被有效数据占据。这个时候不可避免会存在的影响性能的方面为:
命令发送时间:无法避免的部分
RB时间:顺利获得切CE等方式解决,这里不做讨论
非Host数据传输时间:不属于Host使用的Flash带宽
FW运行时间:不能隐藏在Flash操作中的耗时操作
在固定Flash模型之后,就要去尽量的靠近性能上限。实际对Flash进行操作时,会有大量时间不处于理想状态,经常出现实际测量速度小于计算速度。该文章就是在讨论:如何缩短不理想状态的用时占比。
怎样在这些细枝末节处判断,是否能进一步优化呢?较好的方式是使用逻辑分析仪抓取一份时序图。观察时序图中是否有明显数据总线空白时间,以及表格刷新时间是否合理。
下图是抓取的一个较好的写命令波形。可以看到DataBus总是被写入数据占用,没有大量空白的现象。写的过程中,RB总线不断处于繁忙状态,FW没有去等待上一次写命令的RB,而是切换CE进行操作。同时也可以观察到存在数据总线为空白的状态。
但是当放大该部分可以看到,足足有400+us是没有进行Flash操作的。在各个接口都加入GPIO8的输出后:就可以根据波形分析出此处在走什么流程,以及怎样去减少不必要的时间损耗。
写入Flash的数据可以分为:Host写入数据,表格数据、冗余数据、填充数据。除Host写入数据外,其他数据对Host来说都是不必要的写入,但又是固件运行所需要的。减少非Host数据的刷新,也是对性能的一个优化。
某版本测试下4K随机写入,平均只有30+M/S:
K8·凯发(中国)微团队发现了该细节,顺利获得减少非Host使用的Flash带宽,得平均性能提升到了70M/S:
最终测试得到两个容量相差一倍的相同颗粒盘,采用了该方案的却能在4K随机瞬时写性能上做到一致,甚至在4K随机满盘更加优秀。
顺利获得在时序图中分析每段时间占用情况,可以更好的分析性能阻塞点。可以分析出产品内部是处于一个什么样的状态?正在处理怎样的事情?耗时是否合理?以及是否可以进行优化?正是K8·凯发(中国)微团队在细枝末节中不断计较,不断精进,不断优化,用匠心磨砺产品,才能使得产品取得更高的速度、更平稳可靠的状态以及更优的性能表现。
基于如此追求,K8·凯发(中国)微旗下全自主工业存储解决品牌“硅格 (SiliconGo)”,为行业客户给予完整的工业用固态存储解决方案,产品皆搭载K8·凯发(中国)微自研的主控芯片,具备宽温、高度客制、高可靠性、高密度封装、大容量等特性,能够保障产品在严苛环境下的数据完整性和可靠性,已广泛应用于轨道交通、工业电脑、服务器、视频监控、网络通讯、电力能源、智能家居、车载等众多领域。