本发明属于日志解析,具体公开了一种基于fpga的软硬协同的nvme ssd日志解析系统。
背景技术:
1、nvme固态硬盘solidstatedrive,ssd,是当前最流行的大容量存储器,广泛地应用于交互式ai、云存储和智能网络等新兴产业。由于固态硬盘存储海量的数据信息,固态硬盘工作的出错可能导致无法估量的成本损失,因此,业界越来越关注对nvmei/o日志的详细解析以掌握固态硬盘的工作状态,但是nvmei/o命令的详细信息往往难以从主机中直接获取。此外,由于传统的闪存flash存储器存在写擦除操作的性能限制,新型的固态硬盘存储器正在采用异构的存储介质来组成存储设备,为研究不同存储介质对固态硬盘的i/o性能影响,现有技术需要分类收集nvmei/o日志信息,调试主机发送的nvmei/o操作对不同存储介质的访问情况。因此,需要一种专用于nvme固态硬盘的日志分析系统,可以详细地解析nvmei/o命令的字段信息,并区分nvmei/o对异构存储介质的访问信息。
2、现场可编辑逻辑门阵列fieldprogramminggatearray,fpga,是专用集成电路领域中的一种半定制电路,布线资源丰富,拥有可重复编程和集成度高的优点,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。现有的fpga板卡,还集成了片上处理器,使fpga可以设计system-on-chip,soc系统。片上处理器可以使用软件代码来辅助硬件电路完成复杂数据结构的处理,且可以利用驱动软件较方便地调用片上接口。现已有一些用于收集nvme固态硬盘日志的专利工作。中国专利“cn114661502a一种ssd日志管理系统”提出了一种轻量更新固态硬盘日志的系统结构,包含信息收集模块和信息缓存模块等,可以预缓存系统对ssd操作的日志信息,使用事件驱动的方式更新日志缓存,但只关注了收集固态硬盘日志的方式,没有关注对所收集到的日志数据的解析。中国专利“cn112631819收取ssd错误日志的方法、装置、计算机设备及存储介质”提出了一种简单收集固态硬盘错误日志的方法,借助winpe系统的工具u盘来获取ssd的报错信息并对报错信息进行分析和预警,通过winpe系统中的工具收集日志,但只对的部分报错信息进行了判断,没有对固态硬盘日志信息进行更为详细的分析。目前还没有关于对固态硬盘异构存储介质的日志信息收集工作。针对上述存在的问题,研究设计一种新型的基于fpga的软硬协同的nvme ssd日志解析系统,克服现有收集nvme固态硬盘日志技术中所存在的问题是十分必要的。
技术实现思路
1、本发明为解决现有nvme固态硬盘日志解析技术中,难以完成对nvme日志的细粒度记录且对所记录的日志缺乏解析过程的问题,提出了一种基于fpga的软硬协同的nvme ssd日志解析系统。
2、本发明提供了一种基于fpga的软硬协同的nvme ssd日志解析系统,包括片上处理器、逻辑端块存储控制器、数据缓冲区、处理器端块存储控制器、片上接口控制器和片上接口;
3、所述片上处理器与所述片上接口控制器、逻辑端块存储控制器和处理器端块存储控制器连接,所述片上处理器通过所述片上接口控制器接收主机的nvme i/o命令,并将所述nvme i/o命令传输给所述逻辑端块存储控制器;
4、所述逻辑端块存储控制器一端与存储模拟系统连接,另一端与所述数据缓冲区连接,所述逻辑端块存储控制器用于接收主机的所述nvme i/o命令后从存储模拟系统内读取日志数据,并将所述日志数据传输给所述数据缓冲区,所述逻辑端块存储控制器将所述日志数据传输完成后生成中断信号,并将所述中断信号传输给所述片上处理器;
5、所述数据缓冲区与所述处理器端块存储控制器连接,所述数据缓冲区用于存储所述日志数据,并供所述处理器端块存储控制器读取所述日志数据;
6、所述处理器端块存储控制器与所述片上处理器连接,所述片上处理器根据所述中断信号向所述处理器端块存储控制器发送读取信号,所述处理器端块存储控制器用于根据所述读取信号来从所述数据缓冲区内读取所述日志数据,并将所述日志数据发送给所述片上处理器,所述片上处理器对所述日志数据进行解析,得到日志解析结果并将所述日志解析结果传输给所述片上接口控制器;
7、所述片上接口控制器与所述片上接口连接,所述片上接口控制器将所述日志解析结果通过片上接口传输给主机和sd存储卡;
8、所述片上接口与主机和sd存储卡连接。
9、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述片上处理器包括通信模块、日志数据解析模块、访问次数计数器和驱动模块;
10、所述通信模块分别与所述片上接口控制器、逻辑端块存储控制器、处理器端块存储控制器、日志数据解析模块、访问次数计数器和驱动模块连接,所述通信模块用于接收来自所述片上接口控制器的主机的nvme i/o命令,并将所述nvme i/o命令传输给所述逻辑端块存储控制器,所述通信模块还用于接收来自逻辑端块存储控制器的中断信号,并将所述中断信号传输给所述驱动模块,所述驱动模块根据所述中断信号生成读取信号并传输给所述通信模块,所述通信模块将所述读取信号传输给所述处理器端块存储控制器,所述通信模块还用于接收来自所述处理器端块存储控制器的日志数据,并将所述日志数据传输给所述日志数据解析模块和所述访问次数计数器,所述日志数据解析模块和访问次数计数器对所述日志数据进行解析得到所述日志解析结果,并将所述日志解析结果传输给所述通信模块,所述通信模块将所述日志解析结果传输给所述片上接口控制器;
11、所述日志数据解析模块与所述访问次数计数器连接,所述日志数据解析模块接收到所述日志数据后,按照所述日志数据的日志数据结构,对所述日志数据内字段进行解析,得到当前nvme i/o访问的id、当前nvme i/o访问的地址、当前nvme i/o访问的数据、当前nvme i/o访问的操作类型、当前nvme i/o访问的状态、当前nvme i/o访问的目标介质以及所访问的目标设备的i/o分类,且所述日志数据解析模块将所述当前nvme i/o访问的目标介质传输给所述访问次数计数器;
12、所述访问次数计数器根据所述当前nvme i/o访问的目标介质确定目标介质类型,为已访问的目标介质类型的访问数目加一,得到每个目标介质类型的访问数目,并将每个目标介质类型的访问数目发送给所述通信模块;
13、所述驱动模块还向所述通信模块传输用于驱动所述片上接口控制器工作的驱动信号,所述通信模块将所述驱动信号传输给所述片上接口控制器。
14、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述日志解析结果包括当前nvme i/o访问的id、当前nvme i/o访问的地址、当前nvme i/o访问的数据、当前nvme i/o访问的操作类型、当前nvme i/o访问的状态、当前nvme i/o访问的目标介质、所访问的目标设备的i/o分类以及所访问的目标设备的i/o计数。
15、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述逻辑端块存储控制器包括相互连接的逻辑端总线接口模块和逻辑端块存储接口模块;
16、所述逻辑端总线接口模块通过处理器总线与所述通信模块连接,所述逻辑端总线接口模块用于接收所述nvme i/o命令,并将所述nvme i/o命令传输给所述逻辑端块存储接口模块;
17、所述逻辑端块存储接口模块还与存储模拟系统及所述数据缓冲区连接,所述逻辑端块存储接口模块根据所述nvme i/o命令从存储模拟系统内读取所述日志数据,并将所述日志数据传输给所述数据缓冲区,在所述日志数据写入所述数据缓冲区完成后,所述逻辑端块存储接口模块生成中断信号,并将所述中断信号传输给所述逻辑端总线接口模块,所述逻辑端总线接口模块将所述中断信号传输给所述通信模块。
18、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述数据缓冲区包括逻辑端块存储控制器端口和处理器块存储控制器端口,所述逻辑端块存储控制器端口用于与所述逻辑端块存储接口模块连接,所述处理器块存储控制器端口用于与所述处理器块存储控制器连接。
19、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述处理器端块存储控制器包括相互连接的处理器端总线接口模块和处理器端块存储接口模块;
20、所述处理器端总线接口模块通过处理器总线与所述通信模块连接,所述处理器端总线接口模块用于接收所述读取信号,并将所述读取信号传输给所述处理器端块存储接口模块;
21、所述处理器端块存储接口模块还与所述数据缓冲区连接,所述处理器端块存储接口模块根据所述读取信号从所述数据缓冲区内读取所述日志数据,并将所述日志数据传输给所述处理器端总线接口模块,所述处理器端总线接口模块将所述日志数据传输给所述通信模块。
22、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述片上接口包括uart接口和sd卡接口,所述uart接口用于与主机连接并向主机传输所述日志解析结果,所述sd卡接口用于与sd存储卡连接并向sd存储卡传输所述日志解析结果。
23、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述片上接口控制器包括uart接口控制模块和sd卡接口控制模块,所述uart接口控制模块用于控制所述uart接口的传输,所述sd卡接口控制模块用于控制所述sd卡接口的传输。
24、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述片上接口控制器通过处理器总线与所述片上处理器连接。
25、根据本技术一些实施例的一种基于fpga的软硬协同的nvme ssd日志解析系统,所述处理器总线的总线架构为amba4总线架构,处理器总线的接口规范为axi4。
26、本发明提出的一种基于fpga的软硬协同的nvme ssd日志解析系统,提升了nvme固态硬盘的排错效率。与现有技术相比,本发明的日志解析系统能够提供更详细、细粒度的nvme i/o访问记录,从而快速定位固态硬盘访问出错的i/o请求,并根据日志解析结果迅速分析出错原因,本发明具有多种日志记录方式,日志解析结果可以通过片上接口及时地报告给主机,也可以保存在sd存储卡中。本发明使用片上处理器分析nmve i/o日志时,根据当前nvme i/o访问的目标介质确定目标介质类型,并每个目标介质类型的访问数目,为研究nvme i/o对固态硬盘异构存储介质的访问提供了调测平台。此外,本发明便于功能扩展,本发明使用fpga进行开发,利用其可重复编程的灵活性,便于硬件通路的优化和解耦,引入了片上处理器解析日志数据,可以优化处理器的缓存设计,存储更多nvme i/o日志,适应更大规模的nvme i/o日志记录情形。
1.一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,包括片上处理器、逻辑端块存储控制器、数据缓冲区、处理器端块存储控制器、片上接口控制器和片上接口;
2.根据权利要求1所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述片上处理器包括通信模块、日志数据解析模块、访问次数计数器和驱动模块;
3.根据权利要求2所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述日志解析结果包括当前nvme i/o访问的id、当前nvme i/o访问的地址、当前nvmei/o访问的数据、当前nvme i/o访问的操作类型、当前nvme i/o访问的状态、当前nvme i/o访问的目标介质、所访问的目标设备的i/o分类以及所访问的目标设备的i/o计数。
4.根据权利要求2所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述逻辑端块存储控制器包括相互连接的逻辑端总线接口模块和逻辑端块存储接口模块;
5.根据权利要求4所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述数据缓冲区包括逻辑端块存储控制器端口和处理器块存储控制器端口,所述逻辑端块存储控制器端口用于与所述逻辑端块存储接口模块连接,所述处理器块存储控制器端口用于与所述处理器块存储控制器连接。
6.根据权利要求5所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述处理器端块存储控制器包括相互连接的处理器端总线接口模块和处理器端块存储接口模块;
7.根据权利要求1所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述片上接口包括uart接口和sd卡接口,所述uart接口用于与主机连接并向主机传输所述日志解析结果,所述sd卡接口用于与sd存储卡连接并向sd存储卡传输所述日志解析结果。
8.根据权利要求7所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述片上接口控制器包括uart接口控制模块和sd卡接口控制模块,所述uart接口控制模块用于控制所述uart接口的传输,所述sd卡接口控制模块用于控制所述sd卡接口的传输。
9.根据权利要求8所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述片上接口控制器通过处理器总线与所述片上处理器连接。
10.根据权利要求9所述的一种基于fpga的软硬协同的nvme ssd日志解析系统,其特征在于,所述处理器总线的总线架构为amba4总线架构,处理器总线的接口规范为axi4。