缓存管理方法及使用该方法的电子装置
技术领域
本发明涉及缓存空间的管理,尤其涉及一种缓存空间的管理方法及使用该方法的电子装置。
背景技术
现有技术中,电子设备如电脑等通常是通过PCIE(PCI-Express)总线与AHCI(Serial ATA Advanced Host Controller Interface,串行ATA高级主控接口)存储设备及NVME(Non Volatile Memory Express,非易失性存储器)存储设备等进行通讯连接。然而,目前采用PCIE(PCI-Express)总线的电子设备无法根据存储设备的类型对存储 设备进行资源分配。这样,不利于电子设备与存储设备之间数据传输效率的提高。
发明内容
有鉴于此,有必要提供一种缓存管理方法及使用该方法的电子装置以解决上述存在的问题。
一种电子装置,包括一封包交换器,该电子装置通过该封包交换器至少与两个存储设备进行通信连接,该封包交换器定义有一数据缓冲区,用于暂存电子装置与存储设备之间交换的数据,该电子装置还包括一处理单元,该处理单元运行有一缓存管理系统,该缓存管理系统包括:
识别模块,用于识别与电子装置相连接的存储设备;
信息获取模块,用于每隔一第一预设时间获取该识别出的存储设备的效能信息及数量信息,其中,该存储设备的效能信息包括存储设备的位宽、传输速度及存储设备执行的序列指令数量;及
分配模块,用于根据信息获取模块所获取到的存储设备的效能信息及数量信息计算封包交换器需分配给该存储设备缓冲空间,并将该计算出的需分配给该存储设备的缓冲空间分配给该存储设备。
一种缓存管理方法,应用在一电子装置中,该电子装置包括一封包交换器,该电子装置通过该封包交换器至少与两个存储设备进行通信连接,该封包交换器定义有一数据缓冲区,用于暂存电子装置与存储设备之间交换的数据,该方法包括步骤:
识别与电子装置相连接的存储设备;
每隔一第一预设时间获取该识别出的存储设备的效能信息及数量信息,其中,该存储设备的效能信息包括存储设备的位宽、传输速度及存储设备执行的序列指令数量;及
根据所获取到的存储设备的效能信息及数量信息计算封包交换器需分配给该存储设备缓冲空间,并将该计算出的需分配给该存储设备的缓冲空间分配给该存储设备。
本发明中的电子装置根据与其连接的存储设备的效能信息分配给每一存储设备对应的缓冲空间以使每一存储设备按照该分配的缓冲空间暂存与电子装置进行交换的数据,优化并提高了电子装置与存储设备之间数据传输的速率。
附图说明
图1为本发明一实施方式中的电子装置的运行环境的示意图。
图2为本发明一实施方式中的电子装置的系统架构示意图。
图3为本发明一实施方式中缓存管理系统的功能模块图。
图4为本发明一实施方式中缓存管理方法的步骤流程图。
主要元件符号说明
电子装置 | 1 |
封包交换器 | 2 |
存储设备 | 3 |
数据缓存区 | 4 |
存储单元 | 11 |
处理单元 | 12 |
缓存管理系统 | 20 |
识别模块 | 21 |
信息获取模块 | 22 |
分配模块 | 23 |
初始化模块 | 24 |
侦测模块 | 25 |
步骤 | S401-S406 |
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
下面结合附图及实施方式对本发明提供的缓存管理方法及使用该方法的电子装置及方法作进一步详细说明。
参阅图1所示,是本发明一实施方式的电子装置1的运行环境示意图。在本实施例中,该电子装置1包括一封包交换器2。该电子装置1通过该封包交换器(core switch)2与至少两个存储设备3进行通信连接。本实施方式中,该电子装置1与封包交换器2之间及封包交换器2与每一存储设备3之间通过PCIE总线连接。该封包交换器2中包括一个数据缓冲区(buffer)4,该数据缓冲区4定义了一固定容量的缓冲空间,用于暂存电子装置1与存储设备3之间需交换的数据。本实施方式中,该存储设备3为AHCI存储设备或NVME存储设备。该封包交换器2可以在电子装置1的控制下将数据缓冲区4所定义的缓冲空间分配给与该封包交换器2连接的存储设备3。本实施方式中,该电子装置1可以是电脑、服务器等装置,用于控制存储设备3与电子装置1之间的数据传输。
参阅图2所示,是本发明一实施方式中的电子装置1的系统架构示意图。在本实施例中,该电子装置1可包括,但不仅限于,存储单元11、处理单元12及缓存管理系统20。其中,该存储单元11可以是该电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。该存储单元11也可以是该电子装置1的外部存储设备,例如该电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(FlashCard)等。进一步地,该存储单元11还可以既包括该电子装置1的内部存储单元也包括外部存储设备。该存储单元11用于存储安装于该电子装置1内的软件程序及数据,例如该电子装置1的操作系统等。所述处理单元12可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,该处理单元12用于执行软件程序代码或运算数据,例如执行该缓存管理系统20等。
在本实施例中,该缓存管理系统20可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储单元11中,并由处理单元12所执行,以完成本发明。例如,如图3所示,该缓存管理系统20可以被分割成识别模块21、信息获取模块22及分配模块23。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述软件在该电子装置1中的执行过程。
该识别模块21识别与电子装置1相连接的存储设备3。在本实施方式中,识别模块21能夠识别存储设备3的身份信息及类型信息。本实施方式中,每一存储设备3中存储有一类代码(class code)及一子类代码(sub-class code),该类代码内包含有存储设备3的身份信息,该子类代码内包含有存储设备3的类型信息。该识别模块21通过读取存储设备3的类代码及子类代码获取存储设备3的身份信息及类型信息。本实施方式中,该存储设备3的类型信息包括AHCI存储设备或NVME存储设备。
该信息获取模块22每隔一第一预设时间获取该识别出的存储设备3的效能信息及数量信息。其中,该存储设备3的效能信息包括存储设备3的位宽、传输速度及存储设备3执行的序列指令数量。
在一实施方式中,信息获取模块22获取存储设备3的效能信息的过程可以通过下述步骤实现:首先,该信息获取模块22在每一第二预设时间读取一次存储设备3的位宽值、传输速度值及存储设备3执行的序列指令数量;然后,该信息获取模块22统计在该第一预设时间内读取存储设备3的效能信息的次数,及每次读取的存储设备3的位宽值、传输速度值及存储设备3执行的指令数量,其中,该第一预设时间大于第二预设时间;最后,该信息获取模块22根据该第一预设时间内读取的效能信息的次数及每次的效能信息值计算出一平均的效能信息,即计算出该第一预设时间内存储设备3的位宽的平均值、传输速度平均值、及执行的序列指令数量。
在另一实施方式中,该信息获取模块22每隔第一预设时间随机读取一次存储设备3的位宽值、传输速度值及存储设备3执行的序列指令数量,并将读取到的位宽值、传输速度值及存储设备3执行的序列指令数量作为该第一预设时间内的存储设备3的效能信息。
该分配模块23根据信息获取模块22所获取到的存储设备3的效能信息及数量信息计算封包交换器2需分配给该存储设备3缓冲空间,并将该计算出的需分配给该存储设备3的缓冲空间分配给该存储设备3。
本实施方式中,该分配模块23根据公式计算需分配给存储设备3的缓冲空间大小。其中,为与封包交换器2相连接的存储设备3的数量,为第个存储设备3所执行的序列指令的数量,为第个存储设备3的位宽,为第个存储设备3的传输速度,为该封包交换器2的数据缓冲区4所定义的缓冲空间,为需分配给第个存储设备3的缓冲空间大小。
本实施方式中,该缓存管理系统20还包括一初始化模块24。该初始化模块24根据识别模块21所识别出的存储设备3的类型给该存储设备3分配一特定容量的缓冲空间。如此,缓存管理系统20可根据存储设备3的类型给每一存数设备3分配适当的缓存空间,以使存储设备3能按照初始分配的特定容量的缓冲空间与电子装置1进行数据交换。例如,当存储设备3的类型为AHCI存储设备时,该初始化模块24给该存储设备3分配第一预设容量的缓冲空间给该存储设备3;当存储设备3的类型为NVME存储设备时,该初始化模块24给该存储设备3分配第二预设容量的缓冲空间给该存储设备3 。
本实施方式中,该缓存管理系统20还包括一侦测模块25。该侦测模块25用于侦测是否有新的存储设备3通过该封包交换器2与电子装置1进行连接。侦测模块25还侦测是否有存储设备3断开与电子装置1的连接。当侦测模块25侦测到有新的存储设备3通过该封包交换器2连接到电子装置1上时,该识别模块21识别与电子装置1相连接的新的存储设备3;该信息获取模块22每隔第一预设时间获取与电子装置1相连接的所有存储设备3的效能信息及数量信息;该分配模块23根据获取的存储设备3的效能信息及及数量信息计算出封包交换器2需分配给每一存储设备3的缓冲空间并将该计算出的缓冲空间分配给对应的存储设备3。
当侦测模块25侦测到有存储设备3断开与电子装置1的连接时,该侦测模块25释放该断开的存储设备3的缓冲空间;该信息获取模块22每隔第一预设时间获取与电子装置1相连接的所有存储设备3的效能信息及数量信息;该分配模块23根据获取的存储设备3的效能信息及数量信息计算出封包交换器2需分配给每一存储设备3的缓冲空间并将该计算出的缓冲空间分配给对应的存储设备3。本实施方式中,该存储设备3通过热插拔的方式与电子装置1进行连接或断开。
参阅图4所示,是本发明一实施方式中缓存管理方法的流程图。根据不同需求,该流程图中步骤的顺序可以改变,某些步骤可以省略或合并。
步骤S401:识别模块21识别与电子装置1相连接的存储设备3。
步骤S402:信息获取模块22每隔第一预设时间获取该存储设备3的效能信息及数量信息,其中,该存储设备3的效能信息包括存储设备3的位宽、传输速度及存储设备3执行的序列指令数量。
步骤S403:该分配模块23根据信息获取模块22所获取到的存储设备3的效能信息及数量信息计算封包交换器2需分配给该存储设备3缓冲空间,并将该计算出的需分配给该存储设备3的缓冲空间分配给该存储设备3。本实施方式中,该分配模块23根据公式计算需分配给存储设备3的缓冲空间大小。其中,为与封包交换器2相连接的存储设备3的数量,为第个存储设备3所执行的序列指令的数量,为第个存储设备3的位宽,为第个存储设备3的传输速度,为该封包交换器2的数据缓冲区4所定义的缓冲空间,为需分配给第个存储设备3的缓冲空间大小。
步骤S404:侦测模块25侦测是否有新的存储设备3通过该封包交换器2与电子装置1进行连接。如果侦测模块25侦测到有新的存储设备3与电子装置1进行连接,则返回步骤S401。如果侦测模块25没有侦测到有新的存储设备3与电子装置1进行连接,则进入步骤S405。
步骤S405:侦测模块25侦测是否有存储设备3断开与电子装置1的连接。如果侦测模块25侦测到有存储设备3断开与电子装置1的连接,则进入步骤S406。如果侦测模块25没有侦测到有存储设备3断开与电子装置1的连接,则进入步骤S402。
S406:该侦测模块25释放该断开的存储设备3的缓冲空间,执行完后返回步骤S402。
进一步的,该方法在步骤S401之后还包括步骤:
初始化模块24根据识别模块21所识别出的存储设备3的类型给该存储设备3分配一特定容量的缓冲空间以使存储设备3能按照分配的特定容量的缓冲空间与电子装置1进行数据交换。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行里详细的说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和实质。