一种SSD启动控制设备以及方法与流程

文档序号:14056932阅读:109来源:国知局
一种SSD启动控制设备以及方法与流程

本发明涉及计算机存储技术领域,特别是涉及一种ssd启动控制设备以及方法。



背景技术:

固态硬盘(solidstatedrives,ssd)是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(flash芯片、dram芯片)组成。固态硬盘具有传统机械硬盘不具备的快速读写、质量轻、能耗低以及体积小等特点。

nvme标准是为ssd建立的新的存储规范标准,nvme标准使ssd支持pcie总线进行数据交互,并支持smbus总线或i2c总线作为带外管理接口。

影响ssd启动时间的因素包括ssd电源建立时间、主控启动代码(bootloader)加载时间及系统初始化时间。由于电源技术的发展,ssd电源建立时间已经缩短到毫秒级,而且随着主控、存储介质芯片的时钟频率不断提高,系统初始化时间也已经大幅缩短,因此,主控芯片启动代码加载时间已经成了制约ssd启动速度的主要因素。主控芯片的启动代码通常存储在eeprom或norflash等非易失性存储芯片中,电源建立之后,主控芯片通过串行总线(通常为spi总线或i2c总线)从存储芯片中读取启动代码,ssd的功能越丰富,则启动代码的代码量越大,在串行总线的时钟频率一定的情况下,启动代码的加载时间越长,由于目前eeprom或norflash存储芯片支持的串行总线时钟频率一般只有几m到几十m,远低于主控芯片的时钟频率,因此启动代码的加载时间可能长达数秒甚至数十秒。

因此,如何降低ssd的启动时间是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明的目的是提供一种ssd启动控制设备及方法,以解决现有ssd启动时间较长的问题。

为解决上述技术问题,本发明提供一种ssd启动控制设备,包括:

主控芯片、cpld芯片以及多个存储芯片;

其中,所述主控芯片与所述cpld芯片相连,所述cpld芯片分别与多个所述存储芯片相连;

在写入启动代码时,所述主控芯片将启动代码发送至所述cpld芯片,所述cpld芯片将接收到的数据分为与所述存储芯片数量相同的多个部分,并且将各个部分并行写入至多个所述存储芯片;在读取启动代码时,所述cpld芯片并行从多个所述存储芯片中读取启动代码,并将读取到的数据发送至所述主控芯片,以实现ssd的启动。

可选地,所述存储芯片为两片,所述cpld芯片将所述启动代码分为两个部分,将奇数字节的数据写入到第一存储芯片,将偶数字节的数据写入到第二存储芯片。

可选地,所述主控芯片通过第一串行总线与所述cpld芯片连接。

可选地,所述第一串行总线为smbus总线或i2c总线。

可选地,所述cpld芯片通过第二串行总线分别与多个所述存储芯片连接。

可选地,所述第二串行总线为spi总线或i2c总线。

可选地,所述cpld芯片与所述主控芯片之间的串行总线时钟频率为所述cpld芯片与所述存储芯片之间的串行总线时钟频率的两倍以上。

本发明还提供了一种ssd启动控制方法,包括:

在写入启动代码时,主控芯片将启动代码发送至cpld芯片,所述cpld芯片将接收到的数据分为与存储芯片数量相同的多个部分,并且将各个部分并行写入至多个所述存储芯片;

在读取启动代码时,所述cpld芯片并行从多个所述存储芯片中读取启动代码,并将读取到的数据发送至所述主控芯片,以实现ssd的启动。

可选地,所述cpld芯片将接收到的数据分为与存储芯片数量相同的多个部分,并且将各个部分并行写入至多个所述存储芯片包括:

所述存储芯片为两片,所述cpld芯片将所述启动代码分为两个部分,将奇数字节的数据写入到第一存储芯片,将偶数字节的数据写入到第二存储芯片。

本发明所提供的ssd启动控制设备,包括:主控芯片、cpld芯片以及多个存储芯片;其中,主控芯片与cpld芯片相连,cpld芯片分别与多个存储芯片相连;在写入启动代码时,主控芯片将启动代码发送至cpld芯片,cpld芯片将接收到的数据分为与存储芯片数量相同的多个部分,并且将各个部分并行写入至多个存储芯片;在读取启动代码时,cpld芯片并行从多个存储芯片中读取启动代码,并将读取到的数据发送至主控芯片,以实现ssd的启动。本申请利用cpld内部模块并行工作的特性以及cpld与主控芯片时钟频率远高于存储芯片的特点,减少了主控芯片读取启动代码所需的时间,从而大幅降低了ssd的启动时间。此外,本申请还提供了一种具有上述技术优点的ssd启动控制方法。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明所提供的ssd启动控制设备的一种具体实施方式的结构框图;

图2为本发明所提供的ssd启动控制设备的另一种具体实施方式的结构框图;

图3为本发明实施例提供的ssd启动控制方法的流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明所提供的ssd启动控制设备的一种具体实施方式的结构框图如图1所示,该设备包括:

主控芯片1、cpld芯片2以及多个存储芯片3;

其中,所述主控芯片1与所述cpld芯片2相连,所述cpld芯片2分别与多个所述存储芯片3相连;

在写入启动代码时,所述主控芯片1将启动代码发送至所述cpld芯片2,所述cpld芯片2将接收到的数据分为与所述存储芯片3数量相同的多个部分,并且将各个部分并行写入至多个所述存储芯片3;在读取启动代码时,所述cpld芯片2并行从多个所述存储芯片3中读取启动代码,并将读取到的数据发送至所述主控芯片1,以实现ssd的启动。

需要指出的是,本申请实施例中存储芯片可以为多个,不限于其数量。作为一种具体实施方式,可以使用两片存储芯片来存储系统启动代码。

本申请采用cpld芯片作为ssd的带外管理芯片,并作为启动代码存储芯片与主控芯片之间数据传输的中转。

进一步地,可以为cpld芯片对主控和存储芯片各配置一个串行通信总线接口,与主控通信的串行总线接口时钟频率为与存储芯片通信时钟频率的两倍。

本发明所提供的ssd启动控制设备,包括:主控芯片、cpld芯片以及多个存储芯片;其中,主控芯片与cpld芯片相连,cpld芯片分别与多个存储芯片相连;在写入启动代码时,主控芯片将启动代码发送至cpld芯片,cpld芯片将接收到的数据分为与存储芯片数量相同的多个部分,并且将各个部分并行写入至多个存储芯片;在读取启动代码时,cpld芯片并行从多个存储芯片中读取启动代码,并将读取到的数据发送至主控芯片,以实现ssd的启动。本申请利用cpld内部模块并行工作的特性以及cpld与主控芯片时钟频率远高于存储芯片的特点,减少了主控芯片读取启动代码所需的时间,从而大幅降低了ssd的启动时间。

作为一种具体实施方式,本申请中存储芯片可以具体为两片。cpld芯片将所述启动代码分为两个部分,将奇数字节的数据写入到第一存储芯片,将偶数字节的数据写入到第二存储芯片。

主控芯片通过第一串行总线与所述cpld芯片连接。主控芯片通过第一串行总线与所述cpld芯片连接。cpld芯片通过第二串行总线分别与多个所述存储芯片连接。所述第二串行总线为spi总线或i2c总线。

如图2本发明所提供的ssd启动控制设备的另一种具体实施方式的结构框图所示,本实施例将启动代码分为两部分分别存储到两片存储芯片中,选取的存储芯片容量可降低至原所需容量的50%,带外管理芯片选用一片cpld芯片,除带外管理芯片通常所进行的vpd信息存储、ssd运行状态监测,以及通过smbus总线或i2c总线与host(主机)进行交互等功能外,另外配置两路串行总线接口(spi总线或i2c总线,与存储芯片串行接口保持一致)分别连接到两片存储芯片,另外配置一路串行总线接口连接到主控芯片。cpld芯片与主控芯片之间的串行总线时钟频率可配置为cpld芯片与存储芯片之间的串行总线时钟频率的两倍以上。

在将启动代码写入存储芯片中时,主控芯片通过串行总线将代码发送至cpld芯片,cpld芯片通过串行总线将代码分别同时写入两片存储芯片,在写入的过程中,将奇数字节的数据写入第一存储芯片,将偶数字节的数据写入第二存储芯片。在主控芯片读取启动代码的过程中,cpld芯片同时从第一存储芯片及第二存储芯片中通过串行总线读取数据,并将读取到的数据通过串行总线发送至主控,发送的过程中,从第一存储芯片中读取的数据在前,从第二存储芯片中读取的数据在后,与代码写入时的顺序保持一致。

下面对本发明实施例提供的ssd启动控制方法进行介绍,下文描述的ssd启动控制方法与上文描述的ssd启动控制设备可相互对应参照。

图3为本发明实施例提供的ssd启动控制方法的流程图,参照图3ssd启动控制方法可以包括:

步骤s101:在写入启动代码时,主控芯片将启动代码发送至cpld芯片,所述cpld芯片将接收到的数据分为与存储芯片数量相同的多个部分,并且将各个部分并行写入至多个所述存储芯片;

步骤s102:在读取启动代码时,所述cpld芯片并行从多个所述存储芯片中读取启动代码,并将读取到的数据发送至所述主控芯片,以实现ssd的启动。

可选地,所述cpld芯片将接收到的数据分为与存储芯片数量相同的多个部分,并且将各个部分并行写入至多个所述存储芯片包括:

所述存储芯片为两片,所述cpld芯片将所述启动代码分为两个部分,将奇数字节的数据写入到第一存储芯片,将偶数字节的数据写入到第二存储芯片。

本实施例的ssd启动控制方法用于前述的ssd启动控制设备,因此ssd启动控制方法中的具体实施方式可见前文中的ssd启动控制设备的实施例部分,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明所提供的ssd启动控制方法,在写入启动代码时,主控芯片将启动代码发送至cpld芯片,cpld芯片将接收到的数据分为与存储芯片数量相同的多个部分,并且将各个部分并行写入至多个存储芯片;在读取启动代码时,cpld芯片并行从多个存储芯片中读取启动代码,并将读取到的数据发送至主控芯片,以实现ssd的启动。本申请利用cpld内部模块并行工作的特性以及cpld与主控芯片时钟频率远高于存储芯片的特点,减少了主控芯片读取启动代码所需的时间,从而大幅降低了ssd的启动时间。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的ssd启动控制设备以及方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1