存储装置、控制器及控制方法

文档序号:10724478阅读:196来源:国知局
存储装置、控制器及控制方法
【专利摘要】本发明涉及存储装置、控制器及其控制方法。存储装置具备存储介质和控制器,所述存储介质存储分别包括多个第1数据组的多个第2数据组,该多个第1数据组分别具有以同一密匙加密的用户数据和与该密匙相关的第1信息;所述控制器保持第2信息,并相应于来自外部的读取请求读取包括于所述多个第2数据组中的1个第2数据组的所述多个第1数据组中的1个第1数据组,并对读取时从所述1个第1数据组取得的所述第1信息与所述第2信息进行比较,并在所述第1信息与所述第2信息不相同的情况下停止对于包括于所述1个第2数据组的所述多个第1数据组的读取工作,所述第2信息与用于从所述外部取得的数据的加密及解码而当前正使用的最新的密匙相关。
【专利说明】存储装置、控制器及控制方法
[0001]相关申请
[0002]本申请要求以美国临时专利申请62/153,712号(申请日:2015年4月28日)为基础申请的优先权。本申请通过参照该基础申请而包括基础申请的全部的内容。
技术领域
[0003]本实施方式涉及存储装置、控制器及控制方法。
【背景技术】
[0004]近年来,正在开发可以从主机介由API (Applicat1n Programming Interface,应用程序接口)直接地存取的存储装置。存储装置以包括多个扇区而构成的数据组为单位对盘上的数据进行管理。在此,扇区在存储装置中,相当于数据相对于盘的读写的单位。从而,该存储装置以数据组为单位从主机接受读取请求。在如此的存储装置中,为了确保数据的安全性,在相对于存储介质使数据加密来进行记录的情况下,数据组的多个扇区能以同一世代的密匙加密。另一方面,现有的存储装置因为一般不存在对主机要对数据组统一进行存取这一情况进行通知的单元,所以要对密匙的世代信息以扇区为单位进行管理。从而,现有的存储装置必须按每扇区对密匙的世代信息是否一致进行判断。因此,可以从主机直接地存取的存储装置在从主机接受读取请求的情况下,必须对包括于数据组的全部的扇区进行读取,并对于各扇区检查密匙的世代信息。

【发明内容】

[0005]本发明的实施方式提供:可以省略对于各扇区的密匙的世代信息的判定处理的存储装置、控制器及控制方法。
[0006]根据本实施方式,存储装置具备存储介质和控制器,所述存储介质存储分别包括多个第I数据组的多个第2数据组,该多个第I数据组分别具有以同一密匙加密的用户数据和与该密匙相关的第I信息;所述控制器保持第2信息,并相应于来自外部的读取请求,读取包括于所述多个第2数据组之中的I个第2数据组的所述多个第I数据组之中的I个第I数据组,并对读取时从所述I个第I数据组取得的所述第I信息与所述第2信息进行比较,并在所述第I信息与所述第2信息不相同的情况下停止对于包括于所述I个第2数据组的所述多个第I数据组的读取工作,所述第2信息,与用于从所述外部取得的数据的加密及解码而当前正使用的最新的密匙相关。
【附图说明】
[0007]图1是表示第I实施方式涉及的存储装置的构成的框图。
[0008]图2A是表示在存储装置进行管理的数据单位的概念之一例的图。
[0009]图2B是表示在存储装置进行管理的数据单位的概念之一例的图。
[0010]图3是表示第I实施方式的存储装置的工作之一例的流程图。
【具体实施方式】
[0011]以下,关于实施方式参照附图进行说明。
[0012](第I实施方式)
[0013]图1是表示第I实施方式涉及的存储装置I的构成的框图。存储装置I为从外部设备介由API (Applicat1n Programming Interface)直接可以存取地构成的存储装置。存储装置I以包括数据、用于对该数据进行标识的标识符和数据的元数据(meta data)的数据组为单位对从外部设备传送的数据进行管理。在此,有时将数据组称为对象,也有时将标识符称为对象ID或关键码值(Key Value)。
[0014]该存储装置I具有数据的加密/解码功能。具有数据的加密/解码功能的存储装置有时也称为自加密装置(Self Encrypting Drive,自加密驱动器)。自加密装置在读取工作时,对用于解码所读取的数据的密匙的世代信息(以下,也称为密匙世代信息或键码世代信息)(KeyGen)进行检查,对该密匙世代信息的新旧进行判定。如果该键码世代信息为当前正在使用的最新世代的密匙(有时记为新密匙),则自加密装置通过新密匙对该数据进行解码。并且,如果该键码世代信息为旧世代的密匙(有时记为旧密匙),则自加密装置无法通过新密匙对数据进行解码,所以将预定的图形的数据向主机输出。
[0015]本实施方式的存储装置I作为具备盘10作为存储介质的盘装置进行说明。
[0016]如不于图1地,存储装置I具备后述的头盘组件(head-disk assembly:HDA)、驱动IC20、头放大集成电路(以下称为头放大IC) 30、易失性存储器70、非易失性存储器80、缓冲存储器(存储器)90和包括I芯片的集成电路的系统控制器130。存储装置I与主机系统(以下称为主机)100连接。存储装置I将从主机100传送的数据写入于盘10上,并将从盘10上读出的数据传送给主机100。
[0017]主机100为服务器、个人计算机或接口器件等。主机100所具备的应用程序等能够介由API (Applicat1n Programming Interface)直接相对于存储装置I存取。
[0018]图2A及图2B是表示在存储装置I进行管理的数据单位的概念之一例的图。存储装置I对从主机100传送的数据以数据组(第2数据组)200为单位进行管理。如示于图2A地,数据组200包括至少包括I个扇区的扇区(第I数据组)Dl?Dn、标识符ID和数据组信息IF。数据组200包括从扇区Dl到扇区Dn连续排列的多个数据。在此,扇区Dn为以扇区Dl为开头数据的第η个数据。
[0019]如示于图2Α地,扇区Dl?Dn分别包括扇区数据D12?Dn2、循环冗余校验(CyclicRedundancy Check:CRC)(以下称为 CRC)D14 ?Dn4 数据和纠错码(error correctingcode:ECC)(以下称为ECC)数据D16?Dn6。多个扇区Dl?Dn也可以分别包括这些数据以外的其他的数据。还有,如示于图2A地,扇区Dl?Dn也可以分别包括同一密匙世代信息KG1。以下,数据作为如示于图2A的数据构成的数据而进行说明。
[0020]扇区数据D12?Dn2例如为从主机100传送的用户数据。
[0021]CRC数据D14?Dn4分别为用于错误检测的数据。CRC数据D14?Dn4用于防止在后述的ECC以小概率发生的误检测而具备。CRC数据D14?Dn4分别包括同一密匙世代信息KGI。
[0022]密匙世代信息KGl为表示密匙的世代的信息。密匙世代信息KGl在每次更新密匙时递增。还有,新密匙为当前正在使用的最新的密匙,旧密匙为相对于新密匙在以前使用过的旧世代的密匙。旧密匙包括以前使用过的多个密匙。
[0023]ECC数据D16?Dn6分别为用于扇区数据D12?Dn2的纠错的数据。并且,通过使ECC数据的字节数增加,纠错的误检测的概率减小。
[0024]标识符ID为用于对数据组200进行标识的信息。数据组信息IF为数据组200的元数据。还有,数据组信息IF也可以不包括于数据组200。
[0025]如示于图1地,HDA包括盘10、主轴马达(SPM) 12、搭载头15的臂13和音圈马达(VCM) 14。盘10通过SPM12而旋转。臂13及VCM14构成致动器。致动器通过VCM14的驱动,使搭载于臂13的头15移动到盘10上的预定的位置。盘10及头15可设置I个或多个。
[0026]头15以滑块为主体,具备安装于该滑块的写入头15W及读取头15R。读取头15R读出盘10上的数据。写入头15W对盘10上写入数据。
[0027]驱动IC20对SPM12及VCM14的驱动进行控制。
[0028]头放大IC30具有读取放大器及写入驱动器。读取放大器对通过读取头15R读出的读取信号进行放大,传送于系统控制器130内的读取/写入(R/W)信道40。另一方面,写入驱动器将相应于从R/W信道40输出的写入数据的写入电流传送给写入头15W。
[0029]易失性存储器70为若断开电源供给则保存的数据丢失的半导体存储器。易失性存储器70对在存储装置I的各部分的处理中用到的数据等进行存储。易失性存储器70例如为 SDRAM (Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)。
[0030]非易失性存储器80为即使断开电源供给也保持所保存的数据的半导体存储器。非易失性存储器80例如为NOR型或NAND型的闪速ROM (Read Only Memory,只读存储器)。
[0031]缓冲存储器90为暂时保持在盘10与主机100之间发送接收的数据等的半导体存储器。缓冲存储器90也可以与易失性存储器70为一体。缓冲存储器90例如为 DRAM (Dynamic Random Access Memory,动态随机存取存储器)、SDRAM (SynchronousDynamic Random Access Memory,同步动态随机存取存储器)、FeRAM(FerroelectricRandom Access Memory,铁电随机存取存储器)及MRAM(Magnetoresistive Random AccessMemory,磁阻随机存取存储器)等。
[0032]系统控制器130包括R/W信道40、硬盘控制器(HDC)(控制器)50和微处理器(MPU)60 ο
[0033]R/W信道40执行读取数据及写入数据的信号处理。并且,R/W信道40执行:对于读取数据的纠错处理及生成对于写入数据的纠错码并附加的处理。这些处理均为ECC处理。还有,后述的HDC50也可以执行ECC处理。
[0034]HDC50对主机100与R/W信道40之间的数据传送进行控制。
[0035]HDC50具备盘控制部51、主机控制部52、指令控制部53、CRC部54、加密/解码部55和缓冲控制部56。在本实施方式中,这些各部分分别介由bus (总线)等而连接。HDC50通过这些各部分,构成:取得读取数据、写入数据及关联于这些数据的信息的取得部;和对读取数据与写入数据的传送和加密及解码的处理进行控制的控制部。
[0036]盘控制部51与R/W信道40连接,介由R/W信道40进行关联于盘10的控制。
[0037]主机控制部52进行与主机100之间的数据传送的控制。
[0038]指令控制部53进行与从主机100接收的写入指令或读取指令相关的控制。
[0039]CRC部54生成基于介由主机控制部52从主机100传送(写入)的数据的CRC数据D14?Dn4,并将对写入数据附加有CRC数据D14?Dn4所得的数据传送到R/W信道40。并且,CRC部54使用附加于从盘10上读出(要读)的数据的CRC数据D14?Dn4而执行错误检测(CRC处理)。并且,CRC部54执行:对标识新旧密匙(新密匙及旧密匙)的密匙世代信息KGl编码而使其包括于CRC数据D14?Dn4的处理和从读取数据解码密匙世代信息的处理。还有,CRC部54也可以构成为:不使密匙世代信息如示于图2A地包括于CRC数据D14?Dn4,而如示于图2B地附加于扇区数据D12?Dn2。
[0040]加密/解码部55使用保持于未图示的内部存储器的新密匙,执行数据的加密处理及解码处理。在此,加密/解码部55总是仅将当前正在使用的新密匙作为用于执行加密/解码处理的密匙保持于内部存储器。并且,加密/解码部55将在CRC部54解码的密匙世代信息保持于内部存储器(寄存器),并对密匙世代信息的新旧世代进行判定。加密/解码部55也可以按每个数据将新旧世代的判定结果作为表存储于存储器例如缓冲存储器90。
[0041]例如,加密/解码部55在从主机100接受盘10上的预定的数据组200的读取请求的情况下,首先,取得包括于预定的数据组200的扇区Dl?Dn的任I个扇区的密匙世代信息(第I键码世代信息)。加密/解码部55对取得的扇区Dl的密匙世代信息(第I键码世代信息)与所管理的新密匙的密匙世代信息(第2键码世代信息)进行比较。加密/解码部55在第I键码世代信息与第2键码世代信息不一致的情况下,生成特定的图形的数据(特定数据)。加密/解码部55介由主机控制部52将特定的图形的数据作为响应而输出给主机100。还有,也可以在第I键码世代信息与第2键码世代信息不一致的情况下接受从加密/解码部55输出的信号,由后述的MPU60生成特定的图形的数据,并向主机100输出该特定的图形的数据。在此,特定的图形的数据为预定的固有值,例如,全部为“O”的图形的数据、全部为“I”的图形的数据、以固件设定的图形的数据或随机的图形的数据等。还有,加密/解码部55在第I键码世代信息与第2键码世代信息不一致的情况下,能够停止包括于数据组200的剩余的其他的扇区例如所取得的扇区Dl以外的扇区D2?Dn的扇区数据D2?Dn的解码处理。
[0042]缓冲控制部56连接于缓冲存储器90,执行关于在与缓冲存储器90之间发送接收的数据的控制。缓冲控制部56例如将从盘10读取的数据和/或要写入于盘10的数据等,基于来自MPU60的指示,暂时存储于缓冲存储器90。
[0043]MPU60为对存储装置I的各部分进行控制的主控制器。MPU60介由驱动IC20对VCM14进行控制,执行进行头15的定位的伺服控制。而且,MPU60控制数据相对于盘10的写入工作,并执行确定从主机100传送的写入数据的保存目的地的控制。并且,MPU60相应于来自HDC50的信号,对各部分进行控制。例如,MPU60在第I键码世代信息与第2键码世代信息不一致的情况下,接受来自HDC50的信号而停止头15的读取工作。还有,MPU60在固件上执行以存储装置I的各部分执行的处理。
[0044]图3是表示本实施方式的存储装置I的工作之一例的流程图。在图3中,在存储装置I的盘10,写入有加密的多个数据组200 (参照图2)。以下,为了说明的方便,也有时将“加密的数据组200”简记为“数据组200”。在存储装置I中,包括于数据组200的多个扇区Dl?Dn以同一密匙世代信息KGl的密匙加密。
[0045]在B301中,HDC50从主机100接受读取请求。
[0046]在B302中,HDC50读取包括于从主机请求读取的盘10上的预定的数据组200的任一个扇区。
[0047]在B303中,HDC50对最初读出的扇区的密匙的密匙世代信息(第I键码世代信息(第I信息))和新密匙的密匙世代信息(第2键码世代信息(第2信息))进行比较,对第I键码世代信息与第2键码世代信息是否一致进行判断。
[0048]在判断为第I键码世代信息与第2键码世代信息不一致的情况下(B303的“否”),在B304中,HDC50判断在主机100正在存取时是否未更新密匙的密匙世代信息。
[0049]在判断为在主机正存取时密匙世代信息不相同的情况下(B304的“否”),在B305中,HDC50取得更新后的最新的密匙世代信息,向B303的处理返回。
[0050]在判断为在主机正存取时密匙世代信息相同的情况下(B304的“是”),在B306中,HDC50停止通过头15进行的读取工作。在此,HDC50在已经取得包括于在数据组200所包括的最初读出的扇区以外的扇区的扇区数据的情况下,也能够停止对于该扇区数据的解码处理。
[0051]在B307中,HDC50生成特定的图形的数据,并将生成的特定的图形的数据作为响应向主机100输出,进入B311的处理。
[0052]另一方面,在B303中,在判断为第I键码世代信息与第2键码世代信息相一致的情况下(B303的“是” ),HDC50进入B308的处理。
[0053]在B308中,HDC50读取从主机100请求的盘10上的加密了的数据组200。
[0054]在B309中,HDC50对读取的数据组200使用保持于内部存储器的新密匙进行解码。
[0055]在B310中,HDC50向主机100传送解码了的数据组200,并进入B311的处理。
[0056]在B311中,HDC50判断从主机100是否存在其他(接下来)的读取请求。在判断为存在读取请求的情况下(B311的“是”),HDC50向B302的处理返回。在判断为不存在读取请求的情况下(B311的“否”),HDC50结束处理。
[0057]还有,所述的示于图3的工作也可以通过MPU60在固件上执行。
[0058]根据本实施方式,存储装置I在从主机100接受加密了的预定的数据组200的读取请求的情况下,首先读取多个扇区的任I个扇区。存储装置I通过HDC50判定在预定的数据组最初读取的扇区的密匙世代信息是否与最新的密匙世代信息相一致。在判定为这些密匙世代信息不一致的情况下,存储装置I因为密匙世代信息在预定的数据组200内的全部的扇区中相同,所以仅以在数据组200中最初读取的扇区的密匙世代信息,就能够判断是否要读取未读的剩余的扇区。
[0059]从而,存储装置I能够避免:在读取在数据组200的最初读取的扇区以后要读取的扇区时会产生的重试工作。并且,存储装置I能够省略对于包括于数据组200的全部的扇区判定密匙世代信息的处理。其结果,存储装置I能够使对于主机100的响应高速化。
[0060]还有,所述的实施方式的存储装置I也能够应用于以NAND闪速存储器为存储介质的 SSD(Solid-state drive,固态驱动器)。
[0061]还有,在所述的实施方式的存储装置I中,HDC50在从主机100接受读取请求的情况下,虽然设为读取包括于盘10上的预定的数据组200的任一个扇区,但是也可以最初读取该数据组200的开头的扇区。
[0062]虽然对本发明的几个实施方式进行了说明,但是这些实施方式作为例子示出,并非用于对发明的范围进行限定。这些新的实施方式可以在其他的各种方式下实施,在不脱离发明的主旨的范围,能够进行各种省略、替换、变更。这些实施方式和/或其变形包括于发明的范围和/或主旨,并包括于记载于技术方案的发明及其等同的范围中。
【主权项】
1.一种存储装置,其具备: 存储介质,其对多个第2数据组进行存储,该多个第2数据组分别包括:分别具有以同一密匙加密的用户数据和与该密匙相关的第I信息的多个第I数据组;和 控制器,其保持与最新的密匙相关的第2信息,并相应于来自外部的读取请求,读取所述多个第2数据组之中的I个第2数据组所包括的所述多个第I数据组之中的I个第I数据组,对读取时从所述I个第I数据组所取得的所述第I信息与所述第2信息进行比较,在所述第I信息与所述第2信息不相同的情况下,停止对于所述I个第2数据组所包括的所述多个第I数据组的读取工作,所述最新的密匙是用于从所述外部取得的数据的加密及解码而当前正在使用的密匙。2.根据权利要求1所述的存储装置,其中, 所述控制器在所述第I信息与所述第2信息不相同的情况下,输出特定数据来作为所述I个第I数据组的读取结果。3.根据权利要求1所述的存储装置,其中, 所述控制器在停止所述读取工作之后,输出特定数据来作为所述多个第I数据组的读取结果。4.根据权利要求3所述的存储装置,其中, 所述特定数据为与所述多个第I数据组的各个不相同的数据。5.根据权利要求3所述的存储装置,其中, 所述特定数据为全部是O的图形、全部是I的图形、新设定的图形及随机的图形之中的任一图形的数据。6.根据权利要求1所述的存储装置,其中, 所述I个第I数据组为所述I个第2数据组所包括的所述多个第I数据组之中的开头的第I数据组。7.根据权利要求1所述的存储装置,其中, 所述第I信息为对用于所述I个第I数据组所包括的第I用户数据的加密的密匙进行标识的信息; 所述第2信息为用于对所述最新的密匙进行标识的信息。8.一种控制器,其具备: 取得部,其从第2数据组取得与I个第I数据组的密匙相关的第I信息,该第2数据组包括:分别具有以同一密匙加密的用户数据和与该密匙相关的第I信息的多个第I数据组;和 控制部,其保持与最新的密匙相关的第2信息,并对所述第I信息与所述第2信息进行比较,在所述第I信息与所述第2信息不相同的情况下停止对于所述多个第I数据组的解码工作,所述最新的密匙是用于从外部取得的数据的加密及解码而当前正在使用的密匙。9.根据权利要求8所述的控制器,其中, 所述控制部在所述第I信息与所述第2信息不相同的情况下,输出特定数据。10.根据权利要求9所述的控制器,其中, 所述特定数据为与所述多个第I数据组的各个不相同的数据。11.根据权利要求9所述的控制器,其中, 所述特定数据为全部是O的图形、全部是I的图形、新设定的图形及随机的图形之中的任一图形的数据。12.根据权利要求8所述的控制器,其中, 所述I个第I数据组为所述多个第I数据组之中的开头的第I数据组。13.根据权利要求8所述的控制器,其中, 所述第I信息为对用于所述I个第I数据组所包括的第I用户数据的加密的密匙进行标识的信息; 所述第2信息为用于对所述最新的密匙进行标识的信息。14.一种用于存储装置的读取工作的控制方法,该存储装置具备存储介质,该存储介质对多个第2数据组进行存储,该多个第2数据组分别包括:分别具有以同一密匙加密的用户数据和与该密匙相关的第I信息的多个第I数据组; 该控制方法中, 相应于来自外部的读取请求,读取所述多个第2数据组之中的I个第2数据组所包括的所述多个第I数据组之中的I个第I数据组; 对读取时从所述I个第I数据组所取得的所述第I信息与第2信息进行比较,所述第2信息与用于从所述外部取得的数据的加密及解码而当前正在使用的最新的密匙相关; 在所述第I信息与所述第2信息不相同的情况下,停止对于所述I个第2数据组所包括的所述多个第I数据组的读取工作。15.根据权利要求14所述的控制方法,其中, 在所述第I信息与所述第2信息不相同的情况下,输出特定数据来作为所述I个第I数据组的读取结果。16.根据权利要求14所述的控制方法,其中, 在停止所述读取工作之后,输出特定数据来作为所述多个第I数据组的读取结果。17.根据权利要求16所述的控制方法,其中, 所述特定数据为与所述多个第I数据组的各个不相同的数据。18.根据权利要求16所述的控制方法,其中, 所述特定数据为全部是O的图形、全部是I的图形、新设定的图形及随机的图形之中的任一图形的数据。19.根据权利要求14所述的控制方法,其中, 所述I个第I数据组为所述I个第2数据组所包括的所述多个第I数据组之中的开头的第I数据组。20.根据权利要求14所述的控制方法,其中, 所述第I信息为对用于所述I个第I数据组所包括的第I用户数据的加密的密匙进行标识的信息; 所述第2信息为用于对所述最新的密匙进行标识的信息。
【文档编号】G06F3/06GK106095327SQ201510543145
【公开日】2016年11月9日
【申请日】2015年8月28日
【发明人】高田和弥, 吉田贤治
【申请人】株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1