存储装置转让专利

申请号 : CN201310260163.9

文献号 : CN103513936B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 真国一起冲永隆幸东修一郎高田阳介菅原识介

申请人 : 巴法络记忆体股份有限公司

摘要 :

本发明提供一种存储装置,不对主机设备实施特别的设计变更就将通用HDD更换为存储装置。该存储装置设置有判断部和删除部,该判断部判断是否从主机设备利用由接口确定的覆盖命令指示了通过对NAND型快闪存储器内的特定区域覆盖覆盖用数据来删除存储于该特定区域内的现有数据,如果判断部判断为指示了对存储于特定区域内的现有数据进行删除,则该删除部指示对包含该特定区域的物理块进行块删除,通过去除包含特定区域的物理块的NAND型快闪存储器的电荷来删除现有数据。

权利要求 :

1.一种存储装置,具备NAND型快闪存储器以及控制针对该NAND型快闪存储器的数据的写入/读出的控制部,经由接口与主机设备相连接,该存储装置的特征在于,上述控制部具备:接口部,其从上述主机设备经由上述接口与上述主机设备相连接;

判断部,其判断是否从上述主机设备利用由上述接口确定的覆盖命令指示了通过对上述NAND型快闪存储器内的特定区域覆盖覆盖用数据来删除存储于该特定区域内的现有数据,该特定区域为上述NAND型快闪存储器内写入有扫描数据的区域;以及删除部,如果上述判断部判断为指示了对存储于上述特定区域内的上述现有数据进行删除,则该删除部指示对包含该特定区域的物理块进行块删除,通过去除包含上述特定区域的物理块的上述NAND型快闪存储器的电荷来删除上述现有数据。

2.根据权利要求1所述的存储装置,其特征在于,

上述NAND型快闪存储器被分割为多个分区,各个上述分区是从物理块的开头开始的。

3.根据权利要求1或2所述的存储装置,其特征在于,

上述存储装置还具备存储介质,

在该存储介质中保持在指示对存储于上述特定区域内的上述现有数据进行删除时从上述主机设备发送的上述覆盖用数据,上述控制部还具备传输部,如果从上述主机设备指示了读出上述特定区域内的数据,则该传输部将上述存储介质内的覆盖用数据经由上述接口部传输到上述主机设备。

说明书 :

存储装置

技术领域

[0001] 本发明涉及一种具备NAND型快闪存储器的适于用作SSD(Solid State Drive:固态驱动器)的存储装置。

背景技术

[0002] 近年来,SSD与HDD(Hard Disc Drive:硬盘驱动器)相比具有访问速度高、耗电低这样的优点,因此该SSD以代替HDD作为PC(Personal Computer:个人计算机)中的内部存储装置的用途被采用。另外,HDD并不限于PC,也作为嵌入型设备的存储装置而被使用,在该嵌入型设备中也是采用SSD的例子增多。
[0003] 作为这种嵌入型设备的一例,已知多功能数码复合一体机(下面有时适当地称为“MFP”)。该多功能数码复合一体机将打印机、传真机、扫描仪、复印机等的功能集于一台装置。在MFP中,用户将希望复印等的原稿置于原稿台,利用扫描仪对位于该原稿台的原稿进行扫描,将扫描得到的数据暂时保存在HDD等存储装置内以进行之后的处理和加工,并且,基于扫描得到的数据来执行打印、传真发送等作业。
[0004] 在这种MFP中,需要从HDD删除结束打印等作业变为已使用的扫描数据以确保安全。在将HDD用作存储装置的以往的MFP中,例如通过覆盖全是“0”的数据、全是“1”的数据、或者包含随机数的具有规定模式的数据等覆盖用数据来删除该扫描数据。
[0005] 在将装载于MFP的HDD更换为SSD的情况下,MFP主体侧通过如上所述那样指示用覆盖用数据覆盖扫描数据来进行扫描数据的删除指示。然而,SSD大多将NAND型快闪存储器用作其存储介质,该NAND型快闪存储器无法进行直接的覆盖动作,因此需要在对保存了扫描数据的块进行删除动作之后进行对该块写入覆盖用数据这样的耗费工时的动作。而且,NAND型快闪存储器对于重写次数是有一定限制的,因此也有可能会由于反复进行上述的动作导致NAND型快闪存储器的寿命缩短。
[0006] 鉴于上述问题,提出了一种从MFP主体侧对SSD发出删除命令、基于该删除命令对保存了扫描数据的块进行删除动作的MFP(参照专利文献1)。
[0007] 专利文献1:日本专利第4340327号公报

发明内容

[0008] 发明要解决的问题
[0009] 然而,在上述以往的MFP中,由MFP主体准备针对SSD的特定块的独自的删除命令,SSD接收从MFP主体送出的该删除命令,进行对应块的删除动作。一般来说,在HDD中是无法进行将特定区域一并删除的动作的,因此为了删除数据,通过将上述的覆盖用数据覆盖在特定区域来进行数据删除动作。因而,在将HDD与MFP主体等主机设备进行连接的具有通用性的接口、例如ATA(AT Attachment:高级技术附件)、SCSI(Small Computer System Interface:小型计算机系统接口)中,不准备删除命令,而使用通常的数据写入命令来进行覆盖删除。因此,在上述以往的MFP中,需要准备MFP特有的(依赖供应商的)删除命令以进行SSD删除动作,因而,MFP主体需要特别的设计变更。
[0010] 本发明是鉴于上述问题而完成的,在于提供一种无需对主机设备实施特别的设计变更就能够更换通用HDD的存储装置。
[0011] 用于解决问题的方案
[0012] 本发明应用于一种存储装置,该存储装置具备NAND型快闪存储器以及控制针对该NAND型快闪存储器的数据的写入/读出的控制部,经由接口与主机设备相连接。而且,本发明在控制部中设置有:接口部,其从主机设备经由接口与主机设备相连接;判断部,其判断是否从主机设备利用由接口确定的覆盖命令指示了通过对NAND型快闪存储器内的特定区域覆盖覆盖用数据来删除存储于该特定区域内的现有数据;以及删除部,如果判断部判断为指示了对存储于特定区域内的现有数据进行删除,则该删除部针指示对包含该特定区域的物理块进行块删除,通过去除包含特定区域的物理块的NAND型快闪存储器的电荷来删除现有数据,由此达成上述目的。
[0013] 当从主机设备通过与覆盖用数据一起的覆盖命令进行了特定区域内的现有数据的删除指示时,判断部将上述覆盖命令判断为是现有数据删除指示,基于该判断部的判断,删除部通过去除包含特定区域的物理块的NAND型快闪存储器的电荷来删除现有数据。仅以删除部所进行的删除动作来删除存储于NAND型快闪存储器内的特定区域的现有数据。
[0014] 在此,优选的是,NAND型快闪存储器被分割为多个分区,各个分区是从物理块的开头开始的。
[0015] 另外,存储装置优选具备存储介质,并且,优选在该存储介质中保持在指示对存储于特定区域内的现有数据进行删除时从主机设备发送的覆盖用数据。而且,控制部优选还具备传输部,如果从主机设备指示了读出特定区域内的数据,则该传输部将存储介质内的覆盖用数据经由接口部传输到主机设备。
[0016] 发明的效果
[0017] 本发明的存储装置具备判断部和删除部,该判断部判断是否从主机设备利用由接口确定的覆盖命令指示了通过对NAND型快闪存储器内的特定区域覆盖覆盖用数据来删除存储于该特定区域内的现有数据,如果判断部判断为指示了对存储于特定区域内的现有数据进行删除,则该删除部针对包含该特定区域的物理块指示进行块删除,通过去除包含特定区域的物理块的NAND型快闪存储器的电荷来删除现有数据,因此仅以该删除部所进行的删除动作来删除存储于NAND型快闪存储器内的特定区域的现有数据。因而,根据本发明,能够根据由接口确定的覆盖命令来可靠地删除现有数据,因此能够提供一种无需对主机设备实施特别的设计变更就能够更换通用HDD的存储装置。

附图说明

[0018] 图1是表示作为本发明的第一实施方式的SSD装置的概要结构的框图。
[0019] 图2是表示第一实施方式的SSD装置的功能的功能框图。
[0020] 图3是表示第一实施方式的SSD装置的逻辑区域、逻辑地址以及物理块的关系的图。
[0021] 图4是用于说明第一实施方式的SSD装置的动作的图。
[0022] 图5是用于说明第一实施方式的SSD装置以及装载有该SSD装置的MFP的初始动作的一例的时序图。
[0023] 图6是用于说明第一实施方式的SSD装置以及装载有该SSD装置的MFP的数据写入动作的一例的时序图。
[0024] 图7是用于说明第一实施方式的SSD装置以及装载有该SSD装置的MFP的数据删除动作的一例的时序图。
[0025] 图8是用于说明第一实施方式的SSD装置以及装载有该SSD装置的MFP的数据写入动作的另一例的时序图。
[0026] 图9是用于说明第一实施方式的SSD装置以及装载有该SSD装置的MFP的数据读出动作的一例的时序图。
[0027] 图10是用于说明第一实施方式中的模式判断的动作的详情的流程图。
[0028] 图11是用于说明第一实施方式中的分区区域分配的概要的图。
[0029] 图12是用于说明第一实施方式的SSD装置以及装载有该SSD装置的MFP的分区更新动作的一例的时序图。
[0030] 图13是用于说明第一实施方式的SSD装置以及装载有该SSD装置的MFP的数据写入动作的又一例的时序图。
[0031] 图14是用于说明作为本发明的第二实施方式的SSD装置中的模式判断的动作的详情的流程图。
[0032] 图15是用于说明作为本发明的第三实施方式的SSD装置中的模式判断的动作的详情的流程图。
[0033] 图16是用于说明作为本发明的第四实施方式的SSD装置中的模式判断的动作的详情的流程图。
[0034] 图17是用于说明作为本发明的第五实施方式的SSD装置中的模式判断的动作的详情的流程图。
[0035] 附图标记说明
[0036] 10:SSD装置;11:控制器;12:RAM;12a:覆盖用数据;12b:转换表;13:ROM;14:快闪存储器;15:CPU;16:主机接口;17:闪存接口;18:RAM接口;19:ROM接口;20:主机设备;40:控制部;41:存储介质;42:接口部;43:判断部;44:删除部;45:传输部。

具体实施方式

[0037] (第一实施方式)
[0038] 下面,参照附图来说明本发明的实施方式。
[0039] 图1是表示将本发明的存储装置应用于SSD装置的第一实施方式的概要结构的框图,图2是表示第一实施方式的SSD装置的功能的功能框图。
[0040] (SSD装置的概要结构)
[0041] 在这些图中,10是作为第一实施方式的SSD装置,该SSD装置10具备控制器11、RAM(Random Access Memory:随机存取存储器)12、ROM(Read Only Memory:只读存储器)13以及快闪存储器14。本实施方式的SSD装置10例如在本实施方式中与作为MFP的主机设备20相连接,根据来自主机设备20的写入指令来保存规定的数据,另外,根据读出指令来送出所保存的规定的数据。
[0042] 控制器11进行SSD装置10整体的控制,具备CPU(Central Processing Unit:中央处理单元)15、主机接口(I/F)16、闪存接口(I/F)17、RAM接口(I/F)18以及ROM接口(I/F)19。
[0043] CPU15在接通电源时将保存在ROM13内的固件在RAM12中展开,通过执行该固件来进行控制器11乃至SSD装置10的控制,并且,该CPU15具备图2所示的各功能部所示的功能。图2所示的各功能部在后面叙述。主机I//F16经由规定的外部接口与主机设备20相连接,在CPU15的控制下,遵循由外部接口规定的协议、命令与该主机设备20之间发送接收数据。在本实施方式中,主机I//F16与主机设备20通过多用于HDD等的具有通用性的接口、例如ATA、SCSI进行连接。闪存I/F17与快闪存储器14相连接,在CPU15的控制下对该快闪存储器14进行数据的写入/读出动作。RAM I/F18与RAM12相连接,在CPU15的控制下对该RAM12进行数据的写入/读出动作。ROM I/F19与ROM13相连接,在CPU15的控制下对该ROM13进行数据的读出动作。
[0044] RAM12被用作控制器11的工作存储器,暂时保存各种数据。另外,该RAM12中保存有从主机设备20送出的用于删除位于快闪存储器14的特定区域的扫描数据的覆盖用数据12a,并且保存有描述了快闪存储器14的逻辑地址与物理块的对应关系的逻辑地址-物理块转换表12b。主机设备20使用哪种覆盖用数据来指令覆盖删除是由主机设备20唯一地决定的,因此在SSD装置10启动时,由CPU15生成与从主机设备20送出的覆盖用数据模式相同的覆盖用数据12a,并保存在RAM12内。另外,转换表12b的详情在后面叙述。ROM13中如上所述那样保存有进行SSD装置10的控制的固件。
[0045] (快闪存储器的逻辑区域等)
[0046] 快闪存储器14在本实施例中为NAND型快闪存储器。该快闪存储器14具有如图3所示的逻辑区域、逻辑地址以及物理块。下面,参照图3来说明快闪存储器14的逻辑区域、逻辑地址以及物理块。
[0047] 如图3所示,本实施方式的快闪存储器14的逻辑区域被分割为MBR(主引导记录:Master Boot Record)30和分区A31~C33。在本实施方式中,分区A31中保存有进行主机设备20整体的控制的操作系统(OS)310,分区B32中保存有用于执行主机设备20的各种动作的应用程序320,分区C中保存有在主机设备20的各种动作时暂时使用的数据。保存于分区C的数据中包含由主机设备20扫描得到的扫描数据(现有数据)330。另外,在本实施方式中,MBR30和分区A31、B32被设为即使存在来自主机设备20的删除指令也拒绝删除动作的非Erase(擦除)区域,分区C33被设为能够根据来自主机设备的删除指令进行删除的Erase(擦除)区域。此外,在本说明书中,“分区(partition)”不仅包括由主机设备20的OS310进行管理并记载于MBR30的逻辑地址的分割,还包括不由OS310进行管理的由主机设备20的应用程序320根据数据的种类对写入目的地逻辑地址进行区别的写入区域的分割。
[0048] MBR30中保存有分区表30a和引导加载程序(boot loader)30b。分区表30a中保存有与快闪存储器14的分区有关的信息,具体地说,按每个分区保存有分区的位置信息(开始扇区地址、结束扇区地址)、种类、大小。
[0049] 引导加载程序30b是在SSD装置10启动时最初读入的代码。具体地说,当对主机设备20接通电源时,主机设备20所具备的未图示的启动程式(Bootstrap)被启动,该启动程式将快闪存储器14内的MBR(分区表30a和引导加载程序30b)读出到主机设备20侧。然后,引导加载程序30b基于记载于分区表30a的信息,读出保存在分区A31中的操作系统310,送出到主机设备20。主机设备20将该操作系统310在未图示的存储器内展开,以后通过该操作系统310进行主机设备20整体的控制。此处,分区是指将快闪存储器14所具有的逻辑地址分割为多个区域时的一个区域,从主机设备20将各分区识别为一个逻辑驱动器。这种分区与HDD中的分区概念相同。
[0050] 另外,在本实施方式中,通过逻辑地址(LBA:Logical Block Addressing)和物理块来掌握快闪存储器14内的空间,主机设备20能够通过直接指定该逻辑地址来进行针对特定区域的数据访问。当由主机设备20直接指定逻辑地址时,控制器11参照保存在RAM13内的逻辑地址-物理块转换表12b,确定实际要访问的物理块,对该物理块进行访问。
[0051] 此外,在本实施方式中,对分区A31~C33进行设定,使得对于MBR30和分区A31、B32,逻辑地址和物理块被分配大致相同的区域,另一方面,对于分区C33,物理块的区域比逻辑地址的区域小。
[0052] 另外,虽然在图3中没有进行图示,但是在本实施方式的快闪存储器14中,一个物理块具有多个页,数据的写入动作是以页为单位进行的,数据的删除动作是以块为单位进行的。另外,各页由多个扇区构成。
[0053] (SSD装置的功能结构)
[0054] 接着,图2是表示本实施方式的SSD装置10的功能的框图。本实施方式的SSD装置10具备控制部40、快闪存储器14以及存储介质41。
[0055] 控制部40用于控制针对快闪存储器14的数据的读出/写入,具备接口部42、判断部43、删除部44以及传输部45。接口部42经由具有通用性的接口、例如ATA、SCSI与主机设备20相连接,遵循由外部接口规定的协议、命令与主机设备20之间发送接收数据。判断部43根据由接口部42接收到的命令,在该命令为覆盖命令的情况下,判断是否从主机设备20指示了删除存储在快闪存储器14内的特定区域内的现有数据。在通过判断部43判断为从主机设备
20指示了删除存储在快闪存储器14内的特定区域内的现有数据时,删除部44指示对包含该特定区域的物理块进行块删除,通过去除包含特定区域的物理块的快闪存储器14的电荷来删除数据。
[0056] 另外,存储介质41中保持有与从主机设备20发送的覆盖用数据模式相同的覆盖用数据12a(参照图1)。如果从主机设备20指示了读出快闪存储器14的特定区域内的数据,则传输部45将存储介质41内的覆盖用数据12a经由接口部42传输到主机设备20。
[0057] 在以上的说明中,通过控制器11、特别是CPU15的动作来实现控制部40,通过RAM12来实现存储介质41,通过主机I//F16和CPU15来实现接口部42,通过CPU15来实现判断部43,通过闪存I/F17和CPU15来实现删除部44,通过主机I/F16和CPU15来实现传输部45。
[0058] (SSD装置的动作的概要)
[0059] 接着,参照图4来说明本实施方式的SSD装置10的动作的概要。在本实施方式的SSD装置10中,首先,从主机设备20进行以下指示:将扫描数据写入到快闪存储器14内的由特定的逻辑地址指定的特定区域51。在具有通用性的接口中,通过发出准备用来数据写入的写(Write)命令(Program命令)来进行该写入指示。
[0060] 接着,以在主机设备20中利用扫描数据的作业结束为触发,该主机设备20进行以下指示:删除存在于快闪存储器14内的特定区域51的扫描数据。如上所述,在具有通用性的接口中,并未准备直接删除数据的命令,因此主机设备20通过Write命令来对该特定区域51进行扫描数据删除指示,该Write命令是覆盖扫描数据删除用的覆盖用数据(在具有通用性的接口中大多不存在消除(删除)这样的特别的命令,因此单纯写入数据)的命令。
[0061] SSD装置10当检测到从主机设备20进行了扫描数据删除用的覆盖用数据的写入指示时,判断并解释为上述写入指示是扫描数据的删除指示,对快闪存储器14的包含特定区域51的物理块进行删除动作。以此同时,SSD装置10对转换表12b进行更新,将进行了删除动作的特定区域51的逻辑地址与物理块的对应变更为逻辑地址与RAM12内的保存覆盖用数据12a的地址。此处,通过判断Write命令是否到来以及被指示写入的数据是否为覆盖用数据、例如全部为“0”的数据、全部为“1”的数据、或者包含随机数的具有规定模式的数据,来进行是否为扫描数据的删除指示的判断。上述判断的详情在后面叙述。另外,通过从电荷层对构成特定的物理块的多个单体(cell)去除电荷来进行NAND型快闪存储器14中的删除动作。
[0062] 并且,主机设备20在进行了上述扫描数据删除指示之后,有时会在确认是否已可靠地删除了保存于快闪存储器14的特定区域51的扫描数据的目的下,通过读(Read)命令来进行在该时间点保存于该特定区域51的数据的读出指示。SSD装置10当检测到从主机设备20进行了上述数据读出指示时,参照转换表12b来从RAM12读出覆盖用数据12a,将该覆盖用数据12a送出到主机设备20。主机设备20利用逻辑地址来指定特定区域51,因此如上所述那样利用删除动作对转换表12b进行更新,由此与该逻辑地址对应的是保存覆盖用数据12a的RAM12的地址。因而,SSD装置10只要参照转换表12b,就能够访问RAM12的覆盖用数据12a,读出该覆盖用数据12a并送出到主机设备20。
[0063] (SSD装置的动作)
[0064] 接着,参照图5~图9的时序图和图10的流程图来说明图4中示出了概要的本实施方式的SSD装置10的动作。此外,在图5~图10的说明中,设SSD装置10与主机设备20是通过具有通用性的接口中的ATA接口相互连接的。
[0065] 图5是用于说明包括SSD装置10的主机设备20启动时的SSD装置10与主机设备20之间的数据发送接收以及SSD装置10的动作的时序图。首先,在步骤S1中,主机设备20为了获取作为ATA设备的SSD装置10的模型名、对应传输模式之类的ATA设备所固有的信息,而发送向SSD装置10请求这些信息的命令(Identify Device命令:识别设备命令)。当在步骤S1中接口部42接收到Identify Device命令时,SSD装置10的控制部40在步骤S2中经由接口部42将自身的信息返送给主机设备20。接着,主机设备20在步骤S3中向SSD装置10请求送出上述MBR。当接口部42接收到上述请求时,SSD装置10的控制部40在步骤S4中向快闪存储器14请求读出保存于该快闪存储器14的MBR30(参照图3)。在步骤S5中,控制部40从快闪存储器14接收MBR30的数据。在步骤S6中,控制部40对从快闪存储器14接收到的MBR30进行分析,获取Erase区域(如图3所示,在本实施方式中为分区C33)的LBA,提取出Erase区域的开始逻辑地址和结束逻辑地址。在步骤S7中,控制部40将Erase区域(分区C33)的开始逻辑地址和结束逻辑地址写入到RAM12内。然后,在步骤S8中,控制部40经由接口部42将在步骤S5中获取到的MBR的数据送出到主机设备20。
[0066] 接着,图6是用于说明向快闪存储器14的非Erase区域写入数据时的SSD装置10与主机设备20之间的数据发送接收和SSD装置10的动作的时序图。首先,在步骤S10中,从主机设备20对SSD装置10指定要写入数据的逻辑地址来进行写入指令。当接口部42接收到上述指令时,SSD装置10的控制部40在步骤S11中参照通过图5的步骤S6写入RAM12内的Erase区域的开始逻辑地址等,判断要写入数据的逻辑地址是否存在于Erase区域。在图6所示的例子中,要写入数据的逻辑地址位于非Erase区域(如图3所示,在本实施方式中为分区A31、B32中的任一个),因此在步骤S11中判断为不是Erase区域。接着,在步骤S12中,控制部40经由接口部42对主机设备20通知以下的意思:写入动作的准备已完成。在步骤S13中,主机设备20将要写入的数据送出到SSD装置10,因此,在步骤S14中,由接口部42接收该要写入的数据,控制部40对快闪存储器14写入从主机设备20送出的数据。如上所述,写入了该数据的区域为非Erase区域(分区A31、B32中的任一个)。在步骤S15中,从快闪存储器14对控制部40进行数据写入完成通知,控制部40接收该通知,在步骤S16中经由接口部42向主机设备20送出数据写入完成通知。
[0067] 接着,图7是用于说明在进行保存于快闪存储器14的Erase区域的特定区域51的扫描数据330(参照图3)的覆盖删除动作时的SSD装置10与主机设备20之间的数据发送接收和SSD装置10的动作的时序图。首先,在步骤S20中,从主机设备20对SSD装置10指定要写入数据的逻辑地址、在这种情况下指定扫描数据330所存在的特定区域51的地址来进行覆盖指令。关于SSD装置10的控制部40,在步骤S21中由接口部42接收上述覆盖指令,接着控制部40参照通过图5的步骤S6写入RAM12内的Erase区域的开始逻辑地址等,判断要覆盖数据的逻辑地址是否存在于Erase区域。在图7所示的例子中,要写入数据的逻辑地址位于Erase区域(如图3所示,在本实施方式中为分区C33),因此在步骤S21中判断为是Erase区域。接着,在步骤S22中,控制部40经由接口部42对主机设备20通知以下的意思:写入动作的准备已完成。在步骤S23中,主机设备20将覆盖用数据送出到SSD装置10。在步骤S24中,控制部40的判断部43判断从主机设备20送出而由接口部42接收的数据是否为覆盖用数据。该是否为覆盖用数据的判断的详细例程在后面叙述。在图7所示的例子中,从主机设备20送出的写入用数据是用于删除扫描数据330的覆盖用数据,因此在步骤S24中判断为是覆盖用数据。接着,在步骤S25中,控制部40的删除部44对包含特定区域51的物理块进行删除指示,并且在步骤S26中,控制部40将从主机设备20送出的覆盖用数据12a(参照图1)保存到RAM12,在步骤S27中,控制部40对RAM12内的转换表12b(参照图1)进行更新,将与进行了删除指示的特定区域51的逻辑地址对应的目的地地址从进行了删除动作的物理块变更为保存有覆盖用数据12a的RAM12的地址。在步骤S28中,从快闪存储器14对控制部40进行删除动作完成通知,控制部
40接收该通知,在步骤S29中经由接口部42向主机设备20送出数据写入完成通知。
[0068] 接着,图8是用于说明向快闪存储器14的Erase区域写入数据时的SSD装置10与主机设备20之间的数据发送接收和SSD装置10的动作的时序图。首先,在步骤S30中,从主机设备20对SSD装置10指定要写入数据的逻辑地址、在这种情况下指定扫描数据330所存在的特定区域51的地址来进行写入指令。关于SSD装置10的控制部40,在步骤S31中,由接口部42接收上述写入指令,接着,控制部40参照通过图5的步骤S6写入了RAM12内的Erase区域的开始逻辑地址等,判断要写入数据的逻辑地址是否存在于Erase区域。在图8所示的例子中,要写入数据的逻辑地址位于Erase区域(分区C33),因此在步骤S31中判断为是Erase区域。接着,在步骤S32中,控制部40经由接口部42对主机设备20通知以下的意思:写入动作的准备已完成。在步骤S33中,主机设备20将写入用数据送出到SSD装置10。在步骤S34中,控制部40的判断部43判断从主机设备20送出而由接口部42接收的数据是否为覆盖用数据。在图8所示的例子中,从主机设备20送出的写入用数据是写入用数据,因此在步骤S34中判断为不是覆盖用数据。在步骤S35中,控制部40对快闪存储器14的Erase区域(分区C33)写入从主机设备20送出的数据。在步骤S36中,从快闪存储器14对控制部40进行数据写入完成通知,控制部40接收该通知,在步骤S37中经由接口部42向主机设备20送出数据写入完成通知。
[0069] 接着,图9是用于说明在进行了保存于快闪存储器14的Erase区域的特定区域51的扫描数据330(参照图3)的覆盖删除动作之后、为了确认是否正确地对扫描数据330进行了覆盖删除而由主机设备20读出该特定区域51中当前所保存的数据时的SSD装置10与主机设备20之间的数据发送接收和SSD装置10的动作的时序图。首先,在步骤S40中,从主机设备20对SSD装置10指定扫描数据330所存在的特定区域51的逻辑地址来进行数据读出指令。关于SSD装置10的控制部40,在步骤S41中,由接口部42接收上述读出指令,接着,控制部40参照RAM12内的转换表12b,确定与由主机设备20指定的逻辑地址对应的实际要读出的区域。在图9所示的例子中,主机设备20指定扫描数据330所存在的特定区域51的逻辑地址,与该逻辑地址对应的是如上所述那样保存于RAM12的覆盖用数据12a的地址。因而,在步骤S42中,控制部40的传输部45从RAM12读出在图7的步骤S26中保存在RAM12内的覆盖用数据12a,在步骤S43中,该覆盖用数据12a被从RAM12送出到控制部40。在步骤S44中,控制部40经由接口部42将该覆盖用数据12a送出到主机设备20。
[0070] 接着,图10是用于说明在图7的步骤S24等中进行的由判断部43实施的是否为覆盖用数据的判断例程的流程图。在图10的说明中,设从主机设备20送出的覆盖用数据是全为“0”的数据。首先,在步骤S100中,获取从主机设备20传输(送出)来的数据的字节数。接着,在步骤S101中,变量C被初始化,其值被设为0。在步骤S102中,判断该变量C是否小于传输字节数,在变量C小于传输字节数(步骤S102中:“是”)时进入步骤S103,在变量C大于等于传输字节数(步骤S102中:“否”)时进入步骤S105。在步骤S103中,判断传输来的数据是否为“0”(在图10中为16进制表示的“0x00”),在传输来的数据为“0”(步骤S103中:“是”)的情况下进入步骤S104,在传输来的数据不为“0”的情况下进入步骤S105。在步骤S104中,变量C自加1,读入下一个传输数据。在步骤S105中,判断变量C是否与传输字节数相等,在变量C与传输字节数相等(步骤S105中:“是”)的情况下进入步骤S106,判断为从主机设备20传输、送出的数据是覆盖用数据,对快闪存储器14指示删除动作。另一方面,在变量C与传输字节数不相等(步骤S105中:“否”)的情况下进入步骤S107,判断为是通常的数据写入,对快闪存储器14指示写入数据。这样,在图10的例程中,针对各个数据进行是否为“0”的判断,在所有数据均为“0”时,判断为从主机设备20传输、送出的数据是覆盖用数据。
[0071] (第一实施方式的效果)
[0072] 如以上所详细说明的那样,本实施方式的SSD装置10能够判断出从主机设备20送出了用于删除存在于快闪存储器14的特定区域51的扫描数据330的覆盖用数据12a,代替该覆盖用数据12a对包含特定区域51的物理块51进行删除指示,由此删除该扫描数据330。因而,快闪存储器14仅需进行一次动作就能够可靠地删除扫描数据330。
[0073] 除此以外,在本实施方式的SSD装置10中,如果主机设备20将遵循ATA接口等具有通用性的接口的覆盖指示命令(Write命令等)和覆盖用数据12a送出到SSD装置10,则由SSD装置10判断是否为覆盖删除指示,在判断为是覆盖删除指示的情况下对快闪存储器14指示删除动作,因此无需如上述以往的MFP那样准备遵循供应商的特殊命令。由此,能够提供无需对主机设备20实施特别的设计变更就能够更换通用HDD的SSD装置10。
[0074] 并且,在本实施方式的SSD装置10中,将从主机设备20送出的覆盖用数据12a保存在RAM内,根据来自主机设备20的读出指示送出该覆盖用数据12a,因此即使由SSD装置10对快闪存储器14的特定区域51进行删除动作,也能够充分应对由主机设备20进行的数据删除确认动作。
[0075] 另外,如图3所示,在本实施方式的SSD装置10中,对各分区A31~C33进行设定,使得对于作为非Erase区域的分区A31、B32,逻辑地址和物理块被分配大致相同的区域,另一方面,对于作为Erase区域的分区C33,物理块的区域比逻辑地址小。因而,从主机设备20掌握的SSD装置10的容量是所分配的与逻辑地址对应的容量,另一方面,实际的SSD装置10的容量是与物理块对应的容量,能够削减该部分的SSD装置10的容量。
[0076] 而且,这样,即使实际的SSD装置10的容量小于与逻辑地址对应的容量,也如上所述那样将覆盖用数据12a保管在RAM12内,因此即使从主机设备20发来用于数据删除确认的数据读出指令,也只要将该覆盖用数据12a送出到主机设备20即可,能够紧接在删除动作之后释放保存扫描数据330的区域,从而能够立即写入新的扫描数据330。通过这种动作,能够高效运用作为Erase区域的分区C33,即使对于分区C33而言物理块的区域比逻辑地址小也能够顺畅地动作。
[0077] (第一实施方式中的分区更新动作的概要)
[0078] 在本实施方式的SSD装置10中,分区更新动作也存在特征。下面,参照图11~图13来说明本实施方式的SSD装置10中的分区更新动作。
[0079] 图11是说明本实施方式的SSD装置10中的分区更新动作的概要的图。通常,在分区更新动作中,根据逻辑地址对各分区进行分配,对根据上述的转换表12b确定的物理块进行实际的数据写入/读出动作。在此,例如能够以扇区为单位来对各分区的区域进行设定。因而,当以物理块为单位来看时,有可能会如图11所示那样分区的边界位于物理块之中。在本实施方式的SSD装置10中,在如图11所示那样分区的边界位于物理块之中的情况下,将下一个分区的开始位置设为下一个物理块的开头。
[0080] 考虑以下的情况:假如如图11所示那样,非Erase区域的分区与Erase区域的分区相邻,而且分区的边界存在于物理块之中。当如本实施方式那样对快闪存储器14的物理块进行删除指示时,由于以块为单位来进行删除动作,因此需要进行以下的麻烦动作:使分区边界所存在的物理块中的位于存在于非Erase区域中的部分的数据(与该处是否写入有数据无关)暂时避让,在对该物理块进行删除指示之后,再次写入所避让的数据。该动作会导致消耗快闪存储器14的重写次数。
[0081] 另一方面,根据本实施方式的SSD装置10,分区的开始位置必须为物理块的开头,因此无需进行上述的数据避让作业就能够对物理块进行删除指示,从而能够抑制消耗快闪存储器14的重写次数的情况。
[0082] (第一实施方式中的分区更新动作)
[0083] 图12是用于说明分区更新动作时的SSD装置10与主机设备20之间的数据发送接收和SSD装置10的动作的时序图。首先,在步骤S110中,主机设备20进行更新保存于快闪存储器14内的MBR的指示,以进行分区更新动作。SSD装置10的控制部40在步骤S111中向主机设备20通知MBR更新作业的准备已完成,主机设备20接收步骤S111中的MBR更新作业的准备已完成的通知,在步骤S112中发送MBR更新用的数据。接着,在步骤S113中,控制部40对在步骤S112中从主机设备20送出的MBR进行分析,获取Erase区域(分区C33)的LBA,提取Erase区域的开始逻辑地址和结束逻辑地址,并且掌握存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址。在步骤S114中,控制部40对快闪存储器14的MBR进行更新。在步骤S115中,从快闪存储器14对控制部40进行向MBR的更新数据写入完成通知,控制部40接收该通知,在步骤S116中将MBR写入完成通知送出到主机设备20。
[0084] 接着,图13是用于说明对图11所示的分区的边界与下一个分区的开始位置之间的逻辑地址进行数据的写入/读出指示时的SSD装置10与主机设备20之间的数据发送接收和SSD装置10的动作的时序图。首先,在步骤S120中,从主机设备20对SSD装置10指定要写入数据的逻辑地址来进行写入指令。在步骤S120中由主机设备20指定的要写入数据的逻辑地址与非Erase区域的分区的边界与下一个Erase区域的分区的开始位置之间的逻辑地址对应。SSD装置10的控制部40在步骤S121中,基于在图12的步骤S113中进行的MBR分析而得到的结果,判断要写入数据的逻辑地址是否为存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址。在图13所示的例子中,要写入数据的区域是存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址,因此在步骤S121中,判断为是存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址。
接着,在步骤S122中,控制部40在将逻辑地址偏移存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址的量所得的快闪存储器14的区域中写入从主机设备20送出的数据。此处所说的偏移意味着:在具有前进了存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址的量所得的值(大了存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址的量的值)的逻辑地址的位置处写入或读出数据。在步骤S123中,从快闪存储器14对控制部40进行数据写入完成通知,控制部40接收该通知,在步骤S124中向主机设备20送出数据写入完成通知。
[0085] 接着,在步骤S125中,从主机设备20对SSD装置10指定要读出数据的逻辑地址来进行读出指令。在步骤S125中由主机设备20指定的要读出数据的逻辑地址与非Erase区域的分区的边界与下一个Erase区域的分区的开始位置之间的逻辑地址对应。SSD装置10的控制部40在步骤S126中,判断要读出数据的逻辑地址是否为存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址。在图13所示的例子中,要读出数据的区域是存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址,因此在步骤S126中,判断为是存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址。接着,在步骤S127中,控制部40读出位于将逻辑地址偏移了存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址的量所得的快闪存储器14的区域的数据。在步骤S128中,从快闪存储器14读出的数据被送出到控制部40,控制部40接收该数据,在步骤S129中将读出的数据送出到主机设备20。
[0086] 如以上所说明的那样,在本实施方式的SSD装置10中,分区的开始位置必须为物理块的开头,在偏移了存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的逻辑地址的量所得的位置处写入或读出数据,因此,不对存在于非Erase区域的分区的边界与Erase区域的分区的开始位置之间的区域进行数据的写入/读出动作。因而,可以保证不对该区域写入任何数据,因此无需进行上述的数据避让作业就能够对物理块进行删除指示,从而能够抑制消耗快闪存储器14的重写次数的情况。
[0087] (第二实施方式)
[0088] 图14是用于说明在作为本发明的第二实施方式的SSD装置中由判断部43实施的是否为覆盖用数据的判断例程的流程图。除了是否为覆盖用数据的例程以外,本实施方式的SSD装置与上述的第一实施方式的SSD装置相同,因而,对同一结构要素附加同一标记,简略其说明。另外,在以后的说明中,设从主机设备20送出的覆盖用数据是全为“0”的数据。
[0089] 首先,在步骤S200中,获取从主机设备20传输(送出)的数据的字节数。接着,在步骤S201中,变量C和S被初始化,其值被设为0。在步骤S202中,判断该变量C是否小于传输字节数,在变量C小于传输字节数(步骤S202中:“是”)时进入步骤S203,在变量C大于等于传输字节数(步骤S202中:“否”)时进入步骤S205。在步骤S203中,将传输来的数据与变量S相加。在步骤S204中,变量C自加1,读入下一个传输数据。在步骤S205中,判断变量S是否与“0”(在图14中为16进制表示的“0x0000”)相等,在变量S与“0”相等(步骤S205中:“是”)的情况下进入步骤S206,判断为从主机设备20传输、送出的数据是覆盖用数据,对快闪存储器14指示删除动作。另一方面,在变量S与“0”不相等(步骤S205中:“否”)的情况下进入步骤S207,判断为是通常的数据写入,对快闪存储器14指示数据写入。这样,在图14的例程中,计算各个数据的相加值S,在该相加值为“0”时,判断为从主机设备20传输、送出的数据是覆盖用数据。
[0090] 因而,根据本实施例的SSD装置10,也能够得到与上述的第一实施方式相同的效果。
[0091] (第三实施方式)
[0092] 图15是用于说明在作为本发明的第三实施方式的SSD装置中由判断部43实施的是否为覆盖用数据的判断例程的流程图。
[0093] 首先,在步骤S300中,获取从主机设备20传输(送出)的数据的扇区数。接着,在步骤S301中,变量C被初始化,其值被设为0。在步骤S302中,判断该变量C是否小于传输扇区数,在变量C小于传输扇区数(步骤S302中:“是”)时进入步骤S303,在变量C大于等于传输扇区数(步骤S302中:“否”)时进入步骤S306。在步骤S303中,计算传输来的数据的哈希值。在此,只要通过已知的哈希函数、作为一例为MD2(Message Digest Algorithm2:消息摘要算法2)来计算哈希值即可。在步骤S304中,判断在步骤S303中计算出的哈希值是否与期待值相等,在哈希值与期待值相等(步骤S304中:“是”)的情况下进入步骤S305,在哈希值与期待值不相等(步骤S304中:“否”)的情况下进入步骤S306。此处,期待值是数据为“0”的情况下的哈希值。在步骤S305中,变量C自加1,读入下一个传输数据。在步骤S306中,判断变量C是否与传输扇区数相等,在变量C与传输扇区数相等(步骤S306中:“是”)的情况下进入步骤S307,判断为从主机设备20传输、送出的数据是覆盖用数据,对快闪存储器14指示删除动作。另一方面,在变量C与传输扇区数不相等(步骤S306中:“否”)的情况下进入步骤S308,判断为是通常的数据写入,对快闪存储器14指示数据写入。这样,在图15的例程中,计算各个数据的哈希值,在该哈希值与作为数据为“0”时的哈希值的期待值相等时,判断为从主机设备20传输、送出的数据是覆盖用数据。
[0094] 因而,根据本实施例的SSD装置10,也能够得到与上述的第一实施方式、第二实施方式相同的效果。
[0095] (第四实施方式)
[0096] 图16是用于说明在作为本发明的第四实施方式的SSD装置中由判断部43实施的是否为覆盖用数据的判断例程的流程图。
[0097] 首先,在步骤S400中,计算从主机设备20传输的数据的CRC(Cyclic Redundancy Check:循环冗余检查)值。在步骤S401中,判断在步骤S400中计算出的CRC值是否与期待值相等,在CRC值与期待值相等(步骤S401中:“是”)的情况下进入步骤S402,判断为从主机设备20传输、送出的数据是覆盖用数据,对快闪存储器14指示删除动作。另一方面,在CRC值与期待值不相等(步骤S401中:“否”)的情况下进入步骤S403,判断为是通常的数据写入,对快闪存储器14指示数据写入。这样,在图16的例程中,计算数据的CRC值,在该CRC值与作为数据为“0”时的CRC值的期待值相等时,判断为从主机设备20传输、送出的数据是覆盖用数据。
[0098] 因而,根据本实施例的SSD装置10,也能够得到与上述的第一实施方式~第三实施方式相同效果。
[0099] (第五实施方式)
[0100] 图17是用于说明在作为本发明的第五实施方式的SSD装置中由判断部43实施的是否为覆盖用数据的判断例程的流程图。
[0101] 首先,在步骤S500中,获取从主机设备20传输(送出)的数据的字节数。接着,在步骤S501中,变量C被初始化,其值被设为0。在步骤S502中,判断该变量C是否小于传输字节数,在变量C小于传输字节数(步骤S502中:“是”)时进入步骤S503,在变量C大于等于传输字节数(步骤S502中:“否”)时进入步骤S506。在步骤S503中,判断变量C是否为步骤S502中获取到的传输字节数的最初的值、中间的值或者最后的值,在变量C是传输字节数的最初的值、中间的值或者最后的值(步骤S503中:“是”)的情况下进入步骤S504,在变量C不是传输字节数的最初的值、中间的值或者最后的值(步骤S503中:“否”)的情况下进入步骤S505。在步骤S504中,判断传输来的数据是否为“0”(在图17中为16进制表示的“0x00”),在传输来的数据是“0”(步骤S504中:“是”)的情况下进入步骤S505,在传输来的数据不是“0”的情况下进入步骤S506。在步骤S505中,变量C自加1,读入下一个传输数据。在步骤S506中,判断变量C是否与传输字节数相等,在变量C与传输字节数相等(步骤S506中:“是”)的情况下进入步骤S507,判断为从主机设备20传输、送出的数据是覆盖用数据,对快闪存储器14指示删除动作。另一方面,在变量C与传输字节数不相等(步骤S506中:“否”)的情况下进入步骤S508,判断为是通常的数据写入,对快闪存储器14指示数据写入。这样,在图17的例程中,提取传输来的数据的最初、中间以及最后的值,在所提取出的值全部为“0”时,判断为从主机设备20传输、送出的数据是覆盖用数据。
[0102] 因而,根据本实施例的SSD装置10,也能够得到上述的第一实施方式~第四实施方式相同的效果。
[0103] (变形例)
[0104] 本发明的存储装置的详细部分并不限定于上述的各实施方式,能够形成各种变形例。
[0105] 作为一例,在上述的各实施方式中,设从主机设备送出的覆盖删除用的覆盖用数据是均为“0”的数据,来对覆盖删除判断的例程进行了说明,但是只要能够确定从主机设备送出的覆盖删除用的覆盖用数据,就能够适当变更例程来应对。另外,覆盖删除判断的例程并不限定于上述的各实施方式中说明的例程。
[0106] 另外,在上述的第一实施方式中,通过如图5所示那样在启动时获取快闪存储器的MBR来基于该MBR获取Erase区域的逻辑地址,但是并不限于此,例如,只要在组装有存储装置的主机设备出厂时制作分区时,获取与Erase区域对应的分区的逻辑地址,将该逻辑地址设定于从主机设备送出的存储装置初始化命令内即可。由此,存储装置能够通过存储装置初始化动作来获取Erase区域的逻辑地址。或者,也可以准备主机设备特有的(依赖供应商的)命令,在该命令内预先设定与Erase区域对应的分区的逻辑地址。
[0107] 另外,在上述的第一实施方式中,保存于RAM内的覆盖用数据是由SSD装置自己生成的,但是也可以每次都将从主机设备进行覆盖删除指示时送出的覆盖用数据保存在RAM内。