CN102760061B - 屏蔽固态硬盘存储接口差异的方法及存储系统 - Google Patents
屏蔽固态硬盘存储接口差异的方法及存储系统 Download PDFInfo
- Publication number
- CN102760061B CN102760061B CN201210190644.2A CN201210190644A CN102760061B CN 102760061 B CN102760061 B CN 102760061B CN 201210190644 A CN201210190644 A CN 201210190644A CN 102760061 B CN102760061 B CN 102760061B
- Authority
- CN
- China
- Prior art keywords
- solid state
- hard disc
- state hard
- abstraction
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明适用于固态硬盘技术领域,提供了一种屏蔽固态硬盘存储接口差异的方法及存储系统,所述方法包括:在固态硬盘的存储系统中设置固态硬盘抽象层和驱动适配层;所述固态硬盘的访问及存储功能通过所述固态硬盘抽象层和驱动适配层与所述固态硬盘的驱动模块和/或所述存储系统的上层应用模块进行交互。借此,本发明降低了固态硬盘的存储系统中上层应用模块与底层驱动模块的耦合性,提高了固态硬盘存储系统的稳定性和可扩展性。
Description
技术领域
本发明涉及固态硬盘技术领域,尤其涉及一种屏蔽固态硬盘存储接口差异的方法及存储系统。
背景技术
固态硬盘(SolidStateDisk,简称SSD)是一种基于永久性存储器,如闪存,或非永久性存储器,SDRAM(同步动态随机存取存储器,SynchronousDynamicRandomAccessMemory)的计算机外部存储设备。其具有读写速度快,低功耗,无噪音,抗震动,低热量,体积小,工作范围大,广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。如果能够克服容价比低,和寿命限制,将会得到更广泛的应用。
在消费级领域,固态硬盘仅仅作为普通硬盘使用。在高端应用领域,追求性能和环保的需要,固态硬盘将取代机械盘,作为存储系统的一部分。固态硬盘接口种类多元,主要包括PATA(ParallelAdvancedTechnologyAttachment,并行ATA硬盘接口规格)、SATA(SerialAdvancedTechnologyAttachment,串行硬件驱动器接口)、PCIe(PeripheralComponentInterfaceExpress,新一代总线接口标准)与USB(UniversalSerialBus,通用串行总线)。作为企业级应用,需要在驱动程序之上建立RAID(RedundantArrayofIndependentDisk,磁盘阵列)和Cache(高速缓冲存储器)的相关的应用,以及实现跨Flash控制器之间的磨损均衡(WearLeveling)和垃圾回收(GarbageCollection)。
由于固态硬盘接口种类的多样,造成了固态硬盘的驱动程序实现方法和方式的不同,底层接口包括IDE(IntegratedDriveElectronics,电子集成驱动器),SATA,PATA,SCSI(SmallComputerSystemInterface,小型计算机系统接口),等等,当前固态硬盘高端应用需要实现存储的RAID和Cache等相关功能。这样会造成在底层固态硬盘存储接口不同时,上层软件会因为接口的不同,而造成上层软件修改比较比较大。普通的固态硬盘存储软件架构如图1A和图1B所示,在图1A和图1B中可以看到,在固态硬盘的驱动程序之间建立上RAID/Cache等应用,上层软件模块包括一些应用软件读取。
综上可知,现有的固态硬盘存储技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种屏蔽固态硬盘存储接口差异的方法及存储系统,降低了固态硬盘存储系统中上层应用模块与底层驱动模块的耦合性,提高了固态硬盘存储系统的稳定性和可扩展性。
为了实现上述目的,本发明提供一种屏蔽固态硬盘存储接口差异的方法,所述方法包括:
在固态硬盘的存储系统中设置固态硬盘抽象层和驱动适配层;
所述固态硬盘的访问及存储功能通过所述固态硬盘抽象层和驱动适配层与所述固态硬盘的驱动模块和/或所述存储系统的上层应用模块进行交互。
根据所述的方法,在所述存储系统检测到所述固态硬盘连接到所述存储系统时,将与所述固态硬盘对应的功能函数注册到所述固态硬盘抽象层,以及将所述固态硬盘的静态信息存储到所述固态硬盘抽象层。
根据所述的方法,所述固态硬盘对应的功能函数包括IO功能函数和/或IO返回函数和/或所述存储系统上层应用模块的管理请求的相关管理函数。
根据所述的方法,在所述存储系统的上层应用模块下发IO请求时,在所述固态硬盘抽象层内注册的IO功能函数把所述IO请求的数据格式转化成所述固态硬盘的驱动程序能够识别的格式,并将转化后的IO请求发送到所述固态硬盘的固件;
在所述固件将所述IO请求返回时,由在所述固态硬盘抽象层注册的IO返回函数,把所述固态硬盘的固件返回的IO请求的数据格式转换成所述上层应用模块能够识别的格式。
根据所述的方法,所述固态硬盘为PCIE固态硬盘,所述固态硬盘抽象层设置于所述存储系统中的Raid/Cache层与驱动适配层之间;所述驱动适配层设置于所述固态硬盘抽象层与所述固态硬盘的驱动程序层之间;
并且将处于所述存储系统底层的PCIE卡和FD分别抽象成为所述固态硬盘抽象层中的Card对象和FD对象;所述静态信息对应存储到所述Card对象和FD对象的相关成员中。
根据所述的方法,在所述固态硬盘的上层应用模块下发管理请求时,若所述管理请求获取的为所述固态硬盘的动态管理数据,则由在所述固态硬盘抽象层所注册的与所述管理请求相关的管理函数通过所述驱动模块获取相关信息并返回所述上层应用模块;
若所述管理请求获取的为所述固态硬盘的动态管理数据,则由在所述固态硬盘抽象层中的Card对象或者FD对象的相关成员直接向所述上层应用模块返回所述动态管理数据。
根据所述的方法,所述固态硬盘的存储系统的底层接口包括IDE,SATA,PATA,SCSI接口。
根据所述的方法,所述驱动适配层将所述固态硬盘抽象层与所述驱动模块进行适配;在所述功能函数被调用时,所述功能函数在所述驱动适配层处理。
为了实现本发明的另一发明目的,本发明还提供了一种用于实现上述任一项所述的屏蔽固态硬盘存储接口差异的方法的存储系统,所述存储系统包括固态硬盘抽象层和驱动适配层;
所述固态硬盘的访问及存储功能通过所述固态硬盘抽象层和驱动适配层与所述固态硬盘的驱动模块和/或所述存储系统的上层应用模块进行交互。
本发明通过在固态硬盘存储软件系统中增加了固态硬盘抽象层和驱动适配层所述固态硬盘的访问及存储功能通过所述固态硬盘抽象层和驱动适配层与所述固态硬盘的驱动模块和/或所述存储系统的上层应用模块进行交互。减少了固态硬盘存储系统上层RAID/Cache层与底层驱动的耦合,屏蔽因为接口和驱动的不同造成上层软件的修改。具体的,把底层硬件的PCIE卡和FD在固态硬盘抽象层中抽象成Card和FD(FlashDisk)对象,把上层软件需要实现的功能在驱动适配层实现,在PCIE卡和FD上线时,注册到固态硬盘抽象层。在底层硬件接口和驱动程序发生变化时,固态硬盘抽象层起到了屏蔽这种变化的作用,只需要注册新的实现函数到固态硬盘抽象层,就可以把上层存储软件移植到新的存储接口和硬件上。该方法极大的降低了PCIE固态硬盘存储软件和底层驱动的耦合性,提高了PCIE固态硬盘存储软件的稳定性和可扩展性。
附图说明
图1A是现有技术中固态硬盘存储系统结构示意图;
图1B是现有技术中固态硬盘存储系统结构示意图;
图2是本发明第一实施例提供的固态硬盘的存储系统结构示意图;
图3是本发明一个实施例提供的屏蔽固态硬盘存储接口差异的方法流程图;
图4是本发明一个实施例提供的固态硬盘的存储系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图2,本发明的第一实施例中,提供了一种用于实现屏蔽固态硬盘101存储接口差异的方法的存储系统100,存储系统100包括固态硬盘抽象层10和驱动适配层20;
所述固态硬盘101的访问及存储功能通过固态硬盘抽象层10和驱动适配层20与所述固态硬盘101的驱动模块30和/或所述存储系统100的上层应用模块40进行交互。
在该实施例中,通过在固态硬盘101的存储系统100中设置固态硬盘抽象层10和驱动适配层20,通过固态硬盘抽象层10和驱动适配层20与上层应用模块40、驱动模块30进行访问及存储的交互。例如,接收上层应用模块40发送的数据请求;以及底层驱动模块30上报的数据信息等。驱动模块30还包括对于固态硬盘101的驱动程序。在存储系统100检测到有固态硬盘101上线连接时,将所述固态硬盘101对应的功能函数注册到固态硬盘抽象层10,以及将固态硬盘101的静态信息存储到固态硬盘抽象层10。并且驱动适配层20将固态硬盘抽象层10与驱动模块30进行适配;在所述功能函数被调用时,所述功能函数在驱动适配层20实现。
因此,通过设置固态硬盘抽象层10和驱动适配层20,可以与所述固态硬盘101的驱动模块30和/或存储系统100的上层应用模块40的交互,减少上层RAID和Cache层与底层驱动的耦合,屏蔽因为接口和驱动的不同造成上层软件的修改,对上层软件的稳定性有很重大的意义。
在本发明的第二实施例中,提供了一种屏蔽固态硬盘101存储接口差异的方法,所述方法包括:
在固态硬盘101的存储系统100中设置固态硬盘抽象层10和驱动适配层20;
所述固态硬盘101的访问及存储功能通过所述固态硬盘抽象层10和驱动适配层20与所述固态硬盘101的驱动模块30和/或存储系统100的上层应用模块40进行交互。
在该实施例中,在存储系统100中加入固态硬盘抽象层10和驱动适配层20,使得存储功能RAID/Cache不与固态硬盘101的驱动模块30直接进行交互,例如不与SCSI驱动模块30、SATA驱动模块30等驱动直接交互。因此,减少上层RAID和Cache层与底层驱动的耦合,屏蔽因为固态硬盘101的接口和驱动的不同造成上层软件的修改。
在本发明的第三实施例中,所述固态硬盘101为PCIE固态硬盘101,所述固态硬盘抽象层10设置于存储系统100中的Raid/Cache层50与驱动适配层20之间;所述驱动适配层20设置于所述固态硬盘抽象层10与所述固态硬盘101的驱动程序层之间;
并且将处于存储系统100底层的PCIE卡和FD分别抽象成为所述固态硬盘抽象层10中的Card对象和FD对象;所述静态信息对应存储到所述Card对象和FD对象的相关成员中。
在该实施例中,固态硬盘抽象层10的主要功能是把底层硬件PCIE卡和FD分别抽象成FD(FlashDisk,闪存盘)对象和Card(板卡)对象两个对象。驱动适配层20的主要功能是在尽量不修改原始驱动的情况下,做驱动和固态硬盘抽象层10的适配。因为Flash芯片控制器厂商一般会提供原始驱动程序,在厂商驱动版本升级的情况下,减少整个存储软件系统的修改,保持存储软件系统的稳定性和可扩展性。
在本发明的第四实施例中,在存储系统100检测到所述固态硬盘101连接到存储系统100时,将与所述固态硬盘101对应的功能函数注册到所述固态硬盘抽象层10,以及将所述固态硬盘101的静态信息存储到所述固态硬盘抽象层10。
其中,所述固态硬盘101对应的功能函数包括IO功能函数和/或IO返回函数和/或存储系统100的上层应用模块40的管理请求的相关管理函数。
当存储系统100检测到PCIE卡和FD时,在固态硬盘抽象层10注册相关的对象。具体的,首先会在软件初始化时,在内存中分配相关的资源,随着探测函数发现相关对象时,上报到固态硬盘抽象层10,并且进行注册。当上层应用模块40需要访问Card或者FD时,不需要直接和底层驱动交互,直接访问固态硬盘抽象层10的Card或者FD。而底层的驱动模块30需要向上层应用模块40提供信息时,直接访问固态硬盘抽象层10中Card对象或者FD对象的相关成员,例如卡的温度,FD的坏块数,不需要直接与上层应用模块40交互。减少上层应用模块40,如存储软件和底层驱动模块30的耦合性,提高了存储软件的稳定性和扩展性。固态硬盘101的存储系统100的底层接口包括IDE,SATA,PATA,SCSI接口等多种接口。对应于不同的接口,可以驱动适配层20有相应的变化。
在本发明的第五实施例中,在存储系统100的上层应用模块40下发IO请求时,在所述固态硬盘抽象层10内注册的IO功能函数把所述IO请求的数据格式转化成所述固态硬盘101的驱动程序能够识别的格式,例如BIO格式,并将转化后的IO请求发送到所述固态硬盘101的固件;
在所述固件将所述IO请求返回时,由在所述固态硬盘抽象层10注册的IO返回函数,把所述固态硬盘101的固件返回的IO请求的数据格式转换成所述上层应用模块40能够识别的格式。例如,把上层IO请求转换成ata_queue_cmd的格式。
在本发明的第六实施例中,在所述固态硬盘101的上层应用模块40下发管理请求时,若所述管理请求获取的为所述固态硬盘101的动态管理数据,则由在所述固态硬盘抽象层10所注册的与所述管理请求相关的管理函数通过驱动模块30获取相关信息并返回上层应用模块40;
若所述管理请求获取的为所述固态硬盘101的动态管理数据,则由在所述固态硬盘抽象层10中的Card对象或者FD对象的相关成员直接向上层应用模块40返回所述动态管理数据。
当上层应用模块40提供的管理请求为动态管理数据时,例如固态硬盘101的温度,不走IO数据处理通道,而是调用之前注册到固态硬盘抽象层10的处理函数,这样处理在于可以提高程序的健壮性和可扩展性,对于增加和删除相关功能不会影响整个程序架构和系统的稳定性,由驱动适配层20实现的处理函数。由该函数与驱动模块30或者直接与Firmware(固件)进行交互。
上层应用模块40提供的管理请求为静态管理数据时,例如固态硬盘101的物理容量,不用走IO处理函数通道,也不调用相关的处理函数,而是直接从固态硬盘抽象层10内相关的Card对象或者FD对象中获取相关的值。这样处理的目的可以避免多次获取不变的信息,减少了程序处理,提高了效率。
参见图3,在本发明一个实施例中,提供的屏蔽固态硬盘101存储接口差异的方法,描述如下:
步骤S301中,初始化固态硬盘抽象层10;
步骤S302中,接收上层应用模块40发送的请求消息;
步骤S303中,根据请求消息的类型转入相应的处理流程;若该请求消息的类型为动态数据请求,则执行步骤S304;若该请求消息的类型为IO请求,则执行步骤S307;若该请求是静态数据请求,则执行步骤S310;
步骤S304中,在固态硬盘抽象层10中调用相关处理函数;
步骤S305中,驱动适配层20获得所述调用的相关处理函数;
步骤S306中,驱动模块30根据所述调用的相关处理函数执行驱动处理;
步骤S307中,固态硬盘抽象层10中调用IO处理函数;
步骤S308中,驱动适配层20根据所述调用IO处理函数执行IO请求处理;
步骤S309中,驱动模块30根据所述调用的IO处理函数执行驱动处理;
步骤S310中,直接从固态硬盘抽象层10的Card对象或者FD对象中获取静态数据。
对于IO读写请求,通过驱动适配层20注册的IO处理函数下发。根据请求类型的不同,进行不同的操作。当软件上层下发IO请求时,会提供相关的参数信息,主要包括SG表的数量,LBA(LogicalBaseAddress,逻辑地址块)和数据的长度。根据驱动适配层20注册的处理函数,会把相关的信息转换成驱动程序能够识别的结构发下给Firmware,完成相关的IO操作。例如,当上层软件需要一个写请求时,调用IO处理请求,实质是注册到适配层的函数把相关参数转换成标准的SCSI命令,然后写到固态硬盘101。
对于管理请求,分两种情况,对于静态的数据,可以在Card或者FD对象中作为全局变量长期存储;对于动态数据,例如温度等,可以通过和IO请求类似的方法,通过在驱动适配层20注册的函数进行交互。例如:当要获取Card的生产日期时,可以直接通过Card对象的变量直接获取。而动态信息温度,则通过调用在驱动适配层20注册的温度获取函数,通过GPIO(GeneralPurposeInputOutput,通用输入/输出)口从温度传感器获取温度。
从以上技术方案可以看出,在软件架构中加入固态硬盘抽象层10和驱动适配层20,可以有效的减少上层存储软件和驱动程序之间的耦合性,当底层驱动因为下层存储接口的不同,发生很大变化时,上层存储软件可以不必发生变化。或者上层软件发生改变时,也不需要修改相关的驱动程序。
本发明是一种屏蔽固态硬盘101存储接口差异的方法,采取以下措施,可以使存储系统100的软件架构更清晰,减少了上层存储软件和底层驱动程序和存储接口的耦合性,在存储接口和驱动程序发生变化的情况下,上层软件可以保持不明,极大的提高了软件的稳定性和可扩展性。
参见图4,在本发明的一个实施例中,固态硬盘101的接口为SCSI接口或者SATA接口,驱动适配层20为SCSI/SATA适配层20;驱动模块30为SCSI/SATA驱动模块30。其中,固态硬盘抽象层10:屏蔽底层接口差异,功能和结构不因为底层接口更改而改变。
SCSI/SATA适配层20:具体实现函数,功能是把上层的请求转换成SCSI命令或者SATA命令;
SCSI/SATA驱动模块30:执行具体的SCSI或者SATA命令;
以Linux下基于PCIE的SCSI接口的固态磁盘为例子,在原有软件架构的基础上,增加了固态硬盘抽象层10和SCSI驱动适配层20。在驱动程序初始化时,初始化固态硬盘抽象层10,分配内存等相关资源,其中FD作为Card中的对象,每个FD自身由双向链表组成。当驱动函数的Probe函数侦测到相关Card或者FD时,通过设备上线函数在固态硬盘抽象层10注册,包括注册相关的IO处理函数,设备管理函数和上报部分静态信息,其中静态信息被保存到Card和FD对象的相关成员中。当上层有IO请求时,调用在固态硬盘抽象层10注册的相关IO处理函数,把来自上层的IO请求转换成相关的SCSI命令,然后通过驱动函数的queuecommand函数下发到Firmware。IO请求返回时,通过SCSI命令的done函数把相关的IO数据返回,有上层软件对相关的IO数据进行处理。当上层有管理类请求时,如果是动态信息,比如是获取温度,或者点亮面板上的灯,调用在固态硬盘抽象层10注册的相关函数来进行具体执行。当上层有管理类静态信息请求时,比如获取序列号,电子标签等,可以直接在Card或者FD结构里面获取。如果希望扩充新的功能,只需要在固态硬盘抽象层10注册新的函数即可,可扩展性极好如果底层存储接口发生了变化,只需要注册新的函数和驱动,上层RAID和Cache的相关内容可以不变。
综上所述,本发明通过在固态硬盘存储软件系统中增加了固态硬盘抽象层和驱动适配层。所述固态硬盘的访问及存储功能通过所述固态硬盘抽象层和驱动适配层与所述固态硬盘的驱动模块和/或所述存储系统的上层应用模块进行交互。减少了固态硬盘存储系统上层RAID/Cache层与底层驱动的耦合,屏蔽因为接口和驱动的不同造成上层软件的修改。具体的,把底层硬件的PCIE卡和FD在固态硬盘抽象层中抽象成Card和FD对象,把上层软件需要实现的功能在驱动适配层实现,在PCIE卡和FD上线时,注册到固态硬盘抽象层。在底层硬件接口和驱动程序发生变化时,固态硬盘抽象层起到了屏蔽这种变化的作用,只需要注册新的实现函数到固态硬盘抽象层,就可以把上层存储软件移植到新的存储接口和硬件上。该方法极大的降低了PCIE固态硬盘存储软件和底层驱动的耦合性,提高了PCIE固态硬盘存储软件的稳定性和可扩展性。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (6)
1.一种屏蔽固态硬盘存储接口差异的方法,其特征在于,所述方法包括:
在固态硬盘的存储系统中设置固态硬盘抽象层和驱动适配层;
所述固态硬盘抽象层设置于所述存储系统中的Raid/Cache层与驱动适配层之间;所述驱动适配层设置于所述固态硬盘抽象层与所述固态硬盘的驱动程序层之间;
所述固态硬盘的访问及存储功能通过所述固态硬盘抽象层和驱动适配层与所述固态硬盘的驱动模块和/或所述存储系统的上层应用模块进行交互;
在所述存储系统检测到所述固态硬盘连接到所述存储系统时,将与所述固态硬盘对应的功能函数注册到所述固态硬盘抽象层,以及将所述固态硬盘的静态信息存储到所述固态硬盘抽象层;
所述固态硬盘对应的功能函数包括IO功能函数和/或IO返回函数和/或所述存储系统上层应用模块的管理请求的相关管理函数;
在所述存储系统的上层应用模块下发IO请求时,在所述固态硬盘抽象层内注册的IO功能函数把所述IO请求的数据格式转化成所述固态硬盘的驱动程序能够识别的格式,并将转化后的IO请求发送到所述固态硬盘的固件;
在所述固件将所述IO请求返回时,由在所述固态硬盘抽象层注册的IO返回函数,把所述固态硬盘的固件返回的IO请求的数据格式转换成所述上层应用模块能够识别的格式。
2.根据权利要求1所述的方法,其特征在于,所述固态硬盘为PCIE固态硬盘,所述方法还包括:将处于所述存储系统底层的PCIE卡和FD分别抽象成为所述固态硬盘抽象层中的Card对象和FD对象;所述静态信息对应存储到所述Card对象和FD对象的相关成员中。
3.根据权利要求2所述的方法,在所述固态硬盘的上层应用模块下发管理请求时,若所述管理请求获取的为所述固态硬盘的动态管理数据,则由在所述固态硬盘抽象层所注册的与所述管理请求相关的管理函数通过所述驱动模块获取相关信息并返回所述上层应用模块;
若所述管理请求获取的为所述固态硬盘的静态管理数据,则由在所述固态硬盘抽象层中的Card对象或者FD对象的相关成员直接向所述上层应用模块返回所述动态管理数据。
4.根据权利要求1所述的方法,其特征在于,所述固态硬盘的存储系统的底层接口包括IDE,SATA,PATA,SCSI接口。
5.根据权利要求1所述的方法,其特征在于,所述驱动适配层将所述固态硬盘抽象层与所述驱动模块进行适配;在所述功能函数被调用时,所述功能函数在所述驱动适配层处理。
6.一种用于实现权利要求1~5任一项所述的屏蔽固态硬盘存储接口差异的方法的存储系统,其特征在于,所述存储系统包括固态硬盘抽象层和驱动适配层;
所述固态硬盘的访问及存储功能通过所述固态硬盘抽象层和驱动适配层与所述固态硬盘的驱动模块和/或所述存储系统的上层应用模块进行交互;
在所述存储系统检测到所述固态硬盘连接到所述存储系统时,将与所述固态硬盘对应的功能函数注册到所述固态硬盘抽象层,以及将所述固态硬盘的静态信息存储到所述固态硬盘抽象层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210190644.2A CN102760061B (zh) | 2012-06-11 | 2012-06-11 | 屏蔽固态硬盘存储接口差异的方法及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210190644.2A CN102760061B (zh) | 2012-06-11 | 2012-06-11 | 屏蔽固态硬盘存储接口差异的方法及存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102760061A CN102760061A (zh) | 2012-10-31 |
CN102760061B true CN102760061B (zh) | 2016-01-13 |
Family
ID=47054528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210190644.2A Expired - Fee Related CN102760061B (zh) | 2012-06-11 | 2012-06-11 | 屏蔽固态硬盘存储接口差异的方法及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102760061B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543960A (zh) * | 2013-10-12 | 2014-01-29 | 创新科存储技术有限公司 | 一种存储数据的方法 |
CN104964682B (zh) * | 2015-05-07 | 2018-01-09 | 大唐终端技术有限公司 | 定位设备切换方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841295A (zh) * | 2005-03-28 | 2006-10-04 | 辉达公司 | 通用存储总线适配器 |
CN101566923A (zh) * | 2008-04-25 | 2009-10-28 | 中兴通讯股份有限公司 | 一种目标端scsi设备统一驱动模块及方法 |
CN101657801A (zh) * | 2007-03-13 | 2010-02-24 | 微软公司 | 对固态存储的统一支持 |
-
2012
- 2012-06-11 CN CN201210190644.2A patent/CN102760061B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841295A (zh) * | 2005-03-28 | 2006-10-04 | 辉达公司 | 通用存储总线适配器 |
CN102411547A (zh) * | 2005-03-28 | 2012-04-11 | 辉达公司 | 通用存储总线适配器 |
CN101657801A (zh) * | 2007-03-13 | 2010-02-24 | 微软公司 | 对固态存储的统一支持 |
CN101566923A (zh) * | 2008-04-25 | 2009-10-28 | 中兴通讯股份有限公司 | 一种目标端scsi设备统一驱动模块及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102760061A (zh) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4109230B1 (en) | Storage system, file storage and reading method, and terminal device | |
US8230160B2 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
US20130166818A1 (en) | Memory logical defragmentation during garbage collection | |
CN109901794A (zh) | 使用主机空闲来操作垃圾收集的设备和方法 | |
CN103077121B (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
CN103500076A (zh) | 一种基于多通道slc nand与dram缓存的新usb协议计算机加速设备 | |
CN105190525A (zh) | 管理在节电模式中对混合式驱动器的访问 | |
US20160062659A1 (en) | Virtual memory module | |
US20190155641A1 (en) | Method and apparatus for collecting information, and method and apparatus for releasing memory | |
CN110543435A (zh) | 存储单元的混合映射操作方法、装置、设备及存储介质 | |
CN111666184B (zh) | 固态驱动器ssd硬盘测试方法、装置及电子设备 | |
CN102760061B (zh) | 屏蔽固态硬盘存储接口差异的方法及存储系统 | |
CN101788888A (zh) | 一种实现目标端驱动的方法及该目标端驱动 | |
KR20200114086A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
CN102543184B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN108334453B (zh) | 一种文件调试方法、装置、终端设备及存储介质 | |
CN113485713B (zh) | 快速编译程序的方法及装置、电子设备和存储介质 | |
CN115963977A (zh) | 一种固态硬盘及其数据操作方法、装置及电子设备 | |
CN117555607A (zh) | 嵌入式多媒体卡的开卡方法及相关设备 | |
CN115576863A (zh) | 一种数据读写方法、存储设备及存储介质 | |
US8370599B2 (en) | Storage system and controlling system and method thereof | |
US9208072B2 (en) | Firmware storage and maintenance | |
CN109032859A (zh) | 一种nvme ssd逻辑块检测方法、系统及相关装置 | |
CN102622301A (zh) | 一种闪存文件的读取和更新方法及系统 | |
CN114706715B (zh) | 一种基于bmc的分布式raid的控制方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |