首页 / 专利库 / 化学元素和化合物 / 电子 / 片上系统、操作片上系统的方法和存储系统

片上系统、操作片上系统的方法和存储系统

阅读:918发布:2023-01-27

专利汇可以提供片上系统、操作片上系统的方法和存储系统专利检索,专利查询,专利分析的服务。并且提供了片上系统(SOC)、操作片上系统的方法和存储系统。所述SOC包括安全处理器。安全处理器包括:加密/ECC编码处理器,所述加密/ECC编码处理器被配置为使用元数据对所述数据执行加密操作,并通过对加密数据和所述元数据执行ECC编码处理来生成ECC数据;解密/ECC解码处理器,所述解密/ECC解码处理器被配置为通过使用所述ECC数据执行ECC解码处理来提取所述加密数据和所述元数据,并通过使用所述元数据对所述加密数据执行解密操作来恢复所述数据;以及地址 控制器 ,所述地址控制器被配置为接收与所述数据的存储有关的第一地址,基于所述第一地址生成第二地址,以及基于所述第二地址执行识别 存储器 中的用于存储所述元数据和所述ECC数据的同一区域的地址生成操作。,下面是片上系统、操作片上系统的方法和存储系统专利的具体信息内容。

1.一种片上系统,所述片上系统包括:
安全处理器,所述安全处理器被配置为对数据执行加密/解密操作以及对所述数据执行纠错码操作,
其中,所述安全处理器包括:
加密/纠错码编码处理器,所述加密/纠错码编码处理器被配置为使用元数据对所述数据执行加密操作,并通过对加密数据和所述元数据执行纠错码编码处理来生成纠错码数据;
解密/纠错码解码处理器,所述解密/纠错码解码处理器被配置为通过使用所述纠错码数据执行纠错码解码处理来提取所述加密数据和所述元数据,并通过使用所述元数据对所述加密数据执行解密操作来恢复所述数据;以及
地址控制器,所述地址控制器被配置为接收与所述数据的存储有关的第一地址,基于所述第一地址生成第二地址,以及执行识别存储器中的用于存储所述元数据和所述纠错码数据的同一区域的地址生成操作。
2.根据权利要求1所述的片上系统,所述片上系统还包括主控制器,所述主控制器被配置为接收所述数据的外部写入请求或外部读取请求并输出控制信息;
其中,所述地址控制器还被配置为根据外部请求的种类执行所述地址生成操作。
3.根据权利要求1所述的片上系统,所述片上系统还包括地址调度器,所述地址调度器被配置为从所述加密/纠错码编码处理器接收多个加密数据和纠错码数据,从所述地址控制器接收分别与纠错码数据相对应的多个第二地址,以及调度所述加密数据和所述纠错码数据以及所述多个第二地址的输出操作。
4.根据权利要求3所述的片上系统,
其中,所述加密/纠错码编码处理器包括缓冲器,所述缓冲器被配置为存储在不同时间生成的所述元数据和所述纠错码数据,
其中,所述缓冲器被配置为将所述元数据和所述纠错码数据并行地提供给所述地址调度器。
5.根据权利要求3所述的片上系统,其中,所述地址调度器被配置为输出所述多个加密数据和分别与所述多个加密数据相对应的第一地址,并执行与所述多个加密数据相对应的元数据和纠错码数据以及与所述元数据和所述纠错码数据相对应的第二地址的输出调度。
6.根据权利要求1所述的片上系统,
其中,所述纠错码数据包括通过使用所述加密数据生成的第一纠错码数据和通过使用所述元数据生成的第二纠错码数据,
其中,所述第一纠错码数据和所述第二纠错码数据响应于所述第二地址而存储在所述存储器中。
7.根据权利要求6所述的片上系统,其中,所述元数据、所述第一纠错码数据和所述第二纠错码数据中的至少一些基于所述第二地址而存储在所述存储器的同一行中。
8.根据权利要求6所述的片上系统,其中,所述元数据、所述第一纠错码数据和所述第二纠错码数据中的至少一些基于所述第二地址而存储在所述存储器的同一列中。
9.根据权利要求1所述的片上系统,
其中,所述存储器是与所述片上系统通信的存储器并且包括逻辑上划分的第一区域和第二区域,
其中,所述存储器被配置为基于所述第二地址将所述元数据和所述纠错码数据同时存储在所述第二区域中。
10.根据权利要求1所述的片上系统,
其中,所述地址控制器包括地址存储电路,所述地址存储电路被配置为存储所生成的第二地址,
其中,在对所述数据执行的读取操作中,所述地址控制器被配置为接收与所述数据的读取有关的所述第一地址,并从所述地址存储电路读取与所接收的第一地址对应的所述第二地址。
11.根据权利要求1所述的片上系统,其中,所述存储器是外部存储器,并且所述片上系统还包括存储器控制器,所述存储器控制器被配置为与所述外部存储器通信,其中,所述存储器控制器还被配置为:当不对所述数据执行加密操作时,将所述数据提供给所述外部存储器而不通过所述安全处理器传递所述数据,
其中,所述存储器控制器还被配置为:当对所述数据执行加密操作时,通过所述安全处理器传递所述数据来将所述数据提供给所述外部存储器。
12.根据权利要求1所述的片上系统,
其中,所述地址控制器还被配置为生成用于访问由不同的芯片实现的第一存储器芯片和第二存储器芯片的所述第二地址,以及
其中,所述地址控制器还被配置为执行用于将所述元数据和所述纠错码数据存储在同一存储器芯片中的地址生成操作。
13.一种操作片上系统的方法,所述方法包括:
接收数据和与所述数据对应的第一地址;
通过使用元数据对所述数据执行加密操作来生成加密数据;
通过对所述加密数据和所述元数据执行纠错码编码处理来生成纠错码数据;以及基于所述第一地址生成表示所述元数据和所述纠错码数据存储在存储器中的位置的第二地址,
其中,所述第二地址包括信息,借助于所述信息,所述元数据和所述纠错码数据中的至少一些存储在所述存储器中的同一行或同一列中。
14.根据权利要求13所述的方法,
其中,所述纠错码数据包括通过使用所述加密数据生成的第一纠错码数据和通过使用所述元数据生成的第二纠错码数据,
其中,所述元数据、所述第一纠错码数据和所述第二纠错码数据基于所述第二地址而存储在所述存储器中的同一行或同一列中。
15.根据权利要求13所述的方法,其中,所述第二地址是响应于数据单元而生成的,所述数据单元包括响应于加密单元的数据而生成的所述元数据和所述纠错码数据。
16.根据权利要求13所述的方法,所述方法还包括:
存储所生成的第二地址;
接收读取与所述第一地址对应的数据的请求;以及
通过使用存储的地址中的与所述第一地址对应的所述第二地址从所述存储器中读取所述元数据和所述纠错码数据中的至少一些。
17.根据权利要求13所述的方法,
其中,所述存储器包括由不同的芯片实现的第一存储器芯片和第二存储器芯片,其中,所述元数据和所述纠错码数据响应于生成所述第二地址而存储在所述第一存储器芯片和所述第二存储器芯片之一中。
18.根据权利要求13所述的方法,
其中,所述片上系统被配置为根据预定带宽与所述存储器通信,
其中,所述元数据的大小和所述纠错码数据的大小之和不大于所述预定带宽,其中,所述元数据和所述纠错码数据通过执行单次写入操作而存储在所述存储器中。
19.一种存储系统,所述存储系统包括:
存储器控制器,所述存储器控制器与存储器通信,
其中,所述存储器控制器包括:
加密/纠错码编码处理器,所述加密/纠错码编码处理器被配置为通过使用元数据对数据执行加密操作,并通过对加密数据和所述元数据执行纠错码编码处理来生成纠错码数据;
解密/纠错码解码处理器,所述解密/纠错码解码处理器被配置为通过使用所述纠错码数据执行纠错码解码处理来提取所述加密数据和所述元数据,并通过使用所述元数据对所述加密数据执行解密操作来恢复所述数据;
地址控制器,所述地址控制器被配置为接收与所述数据的存储有关的第一地址,基于所述第一地址生成第二地址,以及执行用于将所述元数据和所述纠错码数据存储在所述存储器的同一区域中的地址生成操作;以及
接口电路,所述接口电路被配置为与所述存储器接口连接以基于所述第一地址和所述第二地址进行数据访问。
20.根据权利要求19所述的存储系统,
其中,所述纠错码数据包括通过使用所述加密数据生成的第一纠错码数据和通过使用所述元数据生成的第二纠错码数据,
其中,所述地址控制器还被配置为基于所述第二地址执行用于将所述第一纠错码数据和所述第二纠错码数据存储在所述存储器中的所述地址生成操作。
21.根据权利要求19所述的存储系统,其中,所述第二地址包括信息,借助于所述信息,所述元数据、所述第一纠错码数据和所述第二纠错码数据中的至少一些存储在所述存储器的同一行或同一列中。
22.根据权利要求19所述的存储系统,其中,所述存储器包括一个或更多个动态随机存取存储器
其中,所述动态随机存取存储器包括逻辑上划分的第一区域和第二区域,其中,所述第二地址包括信息,借助于所述信息,所述元数据和所述纠错码数据存储在所述第二区域中。
23.根据权利要求19所述的存储系统,其中,所述存储器包括由不同的芯片实现的第一动态随机存取存储器芯片和第二动态随机存取存储器芯片,
其中,将所述元数据和所述纠错码数据存储在所述存储器的同一区域中包括:将所述元数据和所述纠错码数据存储在所述第一动态随机存取存储器芯片和所述第二动态随机存取存储器芯片之一中。

说明书全文

片上系统、操作片上系统的方法和存储系统

[0001] 相关申请的交叉引用
[0002] 本申请要求于2018年10月2日向韩国知识产权局提交的韩国专利申请No.10-2018-0117870的优先权,其整体内容通过引用被并入本文。

技术领域

[0003] 本发明构思涉及片上系统(SOC),并且更具体地,涉及包括具有改进的使用效率的安全处理器的SOC和存储系统以及操作SOC的方法。

背景技术

[0004] 随着存储在电子系统中的信息量增加,处理数据的SOC和存储器的数量可能增加。例如,纠错码(ECC)功能和加密/解密信息的功能可以应用于需要承受高温并且需要高安全性的汽车SOC和存储器,因此,汽车SOC和存储器可以被保护使得其中处理和/或存储的信息免受安全攻击。
[0005] 为了应用上述ECC功能和加密/解密功能,可能需要生成除实际数据(原始数据)之外的附加数据(例如,元数据和ECC数据)并将附加数据存储在存储器中。然而,因为ECC功能和加密/解密功能是分开执行的,所以元数据和ECC数据是分开管理的,因此,存储器使用效率可能劣化,并且由于与处理附加数据相关的写入/读取时间的增加,系统的性能可能劣化。

发明内容

[0006] 本发明构思可以提供包括安全处理器的片上系统(SOC)和存储系统以及操作SOC的方法,所述安全处理器能够减少在数据加密处理上花费的时间和功率并且有效地使用存储器。
[0007] 根据本发明构思的一个方面,提供了一种包括安全处理器的片上系统(SOC),所述安全处理器被配置为对数据执行加密/解密操作以及对所述数据执行纠错码(ECC)操作。所述安全处理器包括:加密/ECC编码处理器,所述加密/ECC编码处理器被配置为使用元数据对数据执行加密操作,并通过对加密数据和所述元数据执行ECC编码处理来生成ECC数据;解密/ECC解码处理器,所述解密/ECC解码处理器被配置为通过使用所述ECC数据执行ECC解码处理来提取所述加密数据和所述元数据,并通过使用所述元数据对所述加密数据执行解密操作来恢复所述数据;以及地址控制器,所述地址控制器被配置为接收与所述数据的存储有关的第一地址,基于所述第一地址生成第二地址,以及执行识别存储器中的用于存储所述元数据和所述ECC数据的同一区域的地址生成操作。
[0008] 在根据本发明构思的包括安全处理器的SOC和存储系统以及操作SOC的方法中,在具有对存储在存储器中的信息的安全功能的系统中,可以减少在处理信息(诸如数据加密/解密)上花费的时间和功率。
[0009] 此外,在根据本发明构思的包括安全处理器的SOC和存储系统以及操作SOC的方法中,因为各种信息项可以被整体管理并且可以存储在存储器中或从存储器读取,所以可以提高存储器使用效率并增加存储在存储器中的信息的量。附图说明
[0010] 通过下面结合附图进行的详细描述,将更清楚地理解本发明构思的实施例,其中:
[0011] 图1是示出了根据本发明构思的一些实施例的片上系统(SOC)以及包括该片上系统的信息处理系统的框图
[0012] 图2是示出了在图1的信息处理系统的存储器中存储信息的示例的框图;
[0013] 图3和图4是分别示出了其中元数据和纠错码(ECC)数据存储在存储器中并且分别管理元数据和ECC数据的示例的框图以及元数据和纠错码(ECC)数据存储在存储器中并且将元数据和ECC数据一起管理的示例的框图;
[0014] 图5是示出了根据本发明构思的一些实施例的操作SOC的方法的流程图
[0015] 图6和图7分别是示出了根据本发明构思的一些实施例的加密操作和ECC编码操作的示例的概念图和流程图;
[0016] 图8是示出了根据本发明构思的一些实施例的解密操作和ECC解码操作的示例的流程图;
[0017] 图9和图10是示出了根据本发明构思的一些实施例的安全处理器的示例的框图;
[0018] 图11是示出了根据本发明构思的一些实施例的安全处理器的操作的框图;
[0019] 图12A和12B是示出了根据本发明构思的一些实施例的元数据和ECC数据存储在存储器中的示例的框图;
[0020] 图13是示出了根据本发明构思的一些实施例的安全处理器的框图;
[0021] 图14是示出了根据本发明构思的其他实施例的安全处理器的框图;
[0022] 图15是示出了根据本发明构思的一些实施例的安全处理器应用于边带ECC方法的示例的框图;
[0023] 图16是示出了根据本发明构思的一些实施例的SOC的示例的框图;
[0024] 图17是示出了根据本发明构思的其他实施例的SOC的示例的框图;
[0025] 图18是示出了根据本发明构思的一些实施例的安全处理器实现在车辆中使用的自动驾驶系统中的示例的框图。

具体实施方式

[0026] 现在将参考附图更全面地描述本发明构思,附图中示出了本发明构思的示例实施例。贯穿本申请,相同的附图标记可以指代相同的元件。如本文所使用的,术语“和/或”包括一个或更多个相关所列项目的任意和所有组合。应注意,关于一个实施例描述的方面可以结合在不同的实施例中,尽管没有相对于其具体描述。也就是说,所有实施例和/或任何实施例的特征可以以任何方式和/或组合进行组合。
[0027] 由于诸如联网汽车、V2X和高级驾驶员辅助系统(ADAS)的技术,安装在车辆上的片上系统(SOC)和存储器的数量总体上在增加。以动态随机存取存储器(DRAM)为例,汽车DRAM必须承受严苛的温度条件,这与其他产品中的DRAM使用不同,并且可以提供汽车DRAM中的安全性。因此,纠错码(ECC)功能可以应用于汽车DRAM。此外,为了保护诸如由ADAS中使用的SOC(例如,ADAS SOC)处理的自动驾驶信息和支付信息之类的信息,可以使用加密和解密功能来保护信息免受安全攻击。
[0028] 当在SOC和存储器中使用ECC功能和加密功能时,会与实际数据(例如,原始数据)一起请求附加数据,并且附加数据可以与通过加密原始数据获得的加密数据一起存储在存储器中。例如,当应用ECC功能时,根据ECC算法和纠错范围,可以为每32比特数据生成从1比特到10比特的附加奇偶校验或校正子。此外,当使用加密功能时,版本信息用于加密操作以执行更安全的加密,或者消息认证码(MAC)可以用于完整性检查,并且用于加密操作的元数据项可以与加密数据一起存储在存储器中。
[0029] 图1是示出了根据本发明构思的一些实施例的SOC和包括该SOC的信息处理系统10的框图。例如,信息处理系统10可以包括由半导体芯片实现为数据处理设备100的SOC以及将数据DATA(例如图像)发送到数据处理设备100的设备11和存储器12。设备11可以提供各种数据DATA。例如,当信息处理系统10对应于自动驾驶系统(或自动驾驶模)时,设备11可以是通过使用相机镜头执行拍摄操作的相机设备。此外,当信息处理系统10对应于自动驾驶系统时,数据处理设备100可以被称为ADAS SOC。
[0030] 根据本发明构思的实施例,可以提供一种整体地执行和管理纠错码(ECC)功能以及加密和解密功能的方法。例如,可以提供一种通过整体执行ECC功能以及加密和解密功能的设备整体地管理ECC数据和元数据(即,各种功能所使用的附加数据项),来有效地利用存储器12的存储空间和带宽的方法。ECC数据和元数据的目的和对象通常彼此不同。然而,从存储器12读取的ECC数据和元数据的定时和访问模式可以彼此类似。因此,与分别执行ECC功能以及加密和解密功能的示例相比,通过一起管理ECC数据和元数据,可以提高性能并且可以降低功耗。
[0031] 存储器12可以由各种易失性存储器和/或非易失性存储器中的一种或更多种实现。例如,存储器12可以由诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率(LPDDR)SDRAM、图形双倍数据速率(GDDR)SDRAM和Rambus动态随机存取存储器(RDRAM)之类的各种动态随机存取存储器(DRAM)中的一种或更多种实现。
[0032] 数据处理设备100可以包括安全处理器110。安全处理器110可以包括加密/ECC编码处理器111、解密/ECC解码处理器112和地址控制器113。加密/ECC编码处理器111可以对数据处理设备100生成的数据或来自设备11的数据DATA执行加密操作。加密数据DATA_EN可以在数据处理设备100的控制下存储在存储器12中。
[0033] 加密/ECC编码处理器111可以根据各种方法执行加密操作。例如,可以执行基于对称密钥算法(诸如高级加密标准(AES)算法或数据加密标准(DES)算法)的加密操作,或者可以执行基于非对称密钥算法(例如Rivest Shamir Adleman(RSA)算法和椭圆曲线密码(ECC)算法)的各种加密操作。本发明构思的实施例不限于特定种类的加密操作。此外,元数据可以用于加密操作。元数据也可以存储在存储器12中。解密/ECC解码处理器112对从存储器12读取的加密数据DATA_EN执行解密操作,并且可以通过解密操作生成原始数据。例如,通过使用加密数据DATA_EN的操作来执行解密处理,并且可以基于应用于加密操作的算法和原始数据来生成元数据。
[0034] 在本发明构思的其他实施例中,在执行数据DATA的安全功能时,还可以执行包括ECC编码和解码的ECC操作。例如,加密/ECC编码处理器111可以在存储器12中的写入操作中执行ECC编码处理。此外,解密/ECC解码处理器112可以在从存储器12的读取操作中执行ECC解码处理。在一些实施例中,在将数据DATA写入存储器12的过程中,加密/ECC编码处理器111执行加密操作,并且可以通过对加密数据DATA_EN和元数据的ECC编码处理来生成ECC数据。ECC数据可以包括与加密数据DATA_EN有关的第一ECC数据和与元数据有关的第二ECC数据。
[0035] 数据处理设备100可以执行用于将如上所述生成的加密数据DATA_EN、元数据和ECC数据存储在存储器12中的控制操作。例如,地址控制器113可以生成指示元数据和ECC数据被存储在存储器12中的位置的地址。此外,地址控制器113可以生成指示加密数据DATA_EN被存储在存储器12中的位置的地址。
[0036] 例如,安全处理器110可以与写入数据DATA的请求一起接收表示数据DATA存储在存储器12中的位置的第一地址,并且地址控制器113可以基于第一地址生成表示存储元数据和ECC数据的位置的第二地址。根据一些实施例,安全处理器110可以执行控制操作,使得加密数据DATA_EN根据外部请求存储在存储器12中的由第一地址指示的位置。在其他实施例中,地址控制器113还可以基于第一地址生成表示存储加密数据DATA_EN的位置的第三地址,并且加密数据DATA_EN可以存储在存储器12中的由第三地址表示的位置。
[0037] 根据上述实施例,由于整体地管理元数据和ECC数据,所以元数据和ECC数据可以存储在由第二地址指示的位置。在整体管理中,不为元数据和ECC数据分别生成地址,而是生成与包括元数据和ECC数据的数据单元相对应的地址。可以根据由第二地址指示的存储器12的存储空间的大小生成一个或更多个第二地址。可以通过第二地址将元数据和ECC数据中的至少一些存储在存储器12中。
[0038] 根据示例性实施例,元数据和ECC数据中的至少一些可以存储在位于存储器12的同一行或同一列中的存储空间中。因此,存储元数据和ECC数据所用的时间(例如,写入周期)可以减少,并且读取元数据和用于解码加密数据DATA_EN的ECC数据所用的时间(例如,读取周期)可以减少。
[0039] 此外,当接收到对数据DATA的写入或读取请求时,生成用于存储元数据和ECC数据的地址的操作可以由地址控制器113独立于加密/ECC编码处理器111和解密/ECC解码处理器112来执行。例如,在写入数据DATA的操作期间,用于生成加密数据DATA_EN的元数据的大小和由ECC操作生成的ECC数据的大小可以具有预先设置的值。可以基于ECC数据的大小生成用于整体存储元数据和ECC数据的第二地址。根据一些实施例,存储器12的存储空间可以包括第一区域和第二区域(未示出)。加密数据DATA_EN响应于第一地址存储在第一区域中,元数据和ECC数据响应于第二地址存储在第二区域中。
[0040] 根据本发明构思的上述实施例,因为可以整体管理元数据和ECC数据,所以可以更有效地使用存储器12并且可以提高访问效率。
[0041] 如图1所示,加密/ECC编码处理器111和解密/ECC解码处理器112被示为单独的功能块。然而,本发明构思的实施例不限于此。例如,加密处理器、解密处理器、ECC编码处理器和ECC解码处理器可以被示为不同的功能块。在其他实施例中,加密处理器和解密处理器可以被示为同一功能块,ECC编码处理器和ECC解码处理器可以被示为同一功能块。换句话说,安全处理器提供的功能可以被划分为一个或更多个功能块来实现,其中各种功能能以任何组合分配给一个或更多个块中的每个。
[0042] 在本发明构思的其他实施例中,安全处理器110可以包括硬件组件,因此,安全处理器110的一个或更多个功能方面可以通过信号处理被实现为硬件。在其他实施例中,安全处理器110的一个或更多个功能方面可以由执行计算机程序的处理器实现为软件。在其他实施例中,安全处理器110的一个或更多个功能方面可以通过硬件和软件的组合来实现。
[0043] 图2是示出了在图1的信息处理系统的存储器中存储信息的示例的框图。
[0044] 参考图1和图2,地址控制器113可以提供用于存储加密数据DATA_EN的第一地址ADD1以及用于存储元数据和ECC数据的第二地址ADD2,可以由DRAM实现的存储器12可以包括第一区域和第二区域。用于存储加密数据DATA_EN的第一地址ADD1可以由地址控制器113生成。在其他实施例中,第一地址ADD1从外部(例如,数据处理设备100的外部、安全处理器110的外部,和/或地址控制器113的外部但在安全处理器110内)提供给地址控制器113,地址控制器113可以将接收的第一地址ADD1提供给存储器12。在图2中,示出了通过存储器控制器120将第一地址ADD1和第二地址ADD2从地址控制器113提供给存储器12的示例。在本发明构思的一些实施例中,可以在数据处理设备100中提供存储器控制器120。
[0045] 地址控制器113可以例如从外部(例如,从数据处理设备100的外部、安全处理器110的外部,和/或地址控制器113的外部但是在安全处理器110内)接收第一地址ADD1,并可以通过使用第一地址ADD1生成用于存储元数据和ECC数据的第二地址ADD2。当采用数据写入操作作为示例时,地址控制器113可以接收在SOC 100中的预定功能块(例如,CPU)的控制下生成的第一地址ADD1。
[0046] 第一地址ADD1可以表示加密数据DATA_EN存储在存储器12中的位置。分别由加密操作和ECC操作生成的元数据和ECC数据的大小可以与加密数据DATA_EN的大小成预定比率。地址控制器113可以计算第二区域的位置以及存储元数据和ECC数据的存储空间的大小,根据计算结果生成第二地址ADD2,并且可以将生成的第二地址ADD2提供给存储器控制器120。例如,第二地址ADD2可以包括关于存储元数据和ECC数据的起始位置以及元数据和ECC数据的大小的信息。
[0047] 作为实现示例,地址控制器113可以包括地址计算器113_1和地址存储电路113_2。地址计算器113_1可以参考上述第一地址ADD1和附加数据的大小(或附加数据的大小与数据DATA的大小的比率)来计算第二地址ADD2。此外,地址存储电路113_2可以存储与第一地址ADD1对应的第二地址ADD2。当接收到对第一地址ADD1的数据读取请求时,可以将先前计算和存储的第二地址ADD2提供给存储器12。
[0048] 存储器控制器120可以与存储器12通信,向存储器12提供命令和地址,根据预定带宽将加密数据DATA_EN、元数据和ECC数据发送到存储器12,并且可以从存储器12读取加密数据DATA_EN、元数据和ECC数据。根据预定的所定义的大小单元(size unit),可以对数据DATA执行加密操作。当以第一数据为例时,通过加密第一数据获得的第一加密数据DATA_EN_1存储在存储器12的第一区域中,与第一加密数据DATA_EN_1对应的元数据Meta data_1和ECC数据ECC data_1可以存储在存储器12的第二区域中。当元数据和ECC数据之和小于存储器12和存储器控制器120之间的数据带宽时,元数据和ECC数据可以通过执行单次写入操作一起写在存储器12的第二区域中。
[0049] 图3和图4的框图分别示出了在分别管理元数据和ECC数据的情况下以及在将元数据和ECC数据一起进行管理的情况下,元数据和ECC数据存储在存储器中的示例。
[0050] 参考图3,当分别执行加密/解密操作和ECC操作时,因为加密器/解密器和ECC处理器彼此分离,所以加密器/解密器和ECC处理器可以独立地执行功能。由于用于存储来自加密器/解密器的元数据的地址和用于存储来自ECC处理器的ECC数据的地址彼此分离,所以元数据和ECC数据可以存储在存储器中的不同位置。
[0051] 例如,数据的加密操作可以由高速缓存行(cache line)执行。当AES(其是一种块代码标准,其中高速缓存行被配置为64B并被处理为128b)被用作加密算法时,一个高速缓存行的数据可以被加密和解密为四组128比特-加密数据。此外,可以根据各种操作模式执行加密操作。例如,当使用CounTeR(CTR)模式时,关于加密操作使用的密钥流可以包括69比特随机数、32比特地址和27比特版本计数器。因为每当在相应的高速缓存行中写入新数据时27比特版本计数器增加,所以关于加密操作,27比特版本计数器可以作为元数据存储在存储器中。
[0052] 存储器包括多个区域,例如,第一区域(加密数据区域)、第二区域(元数据区域)和第三区域(ECC数据区域)。以128b为单位的加密数据密文可以存储在第一区域中。此外,由于分别执行加密操作和ECC操作,所以元数据和ECC数据可以存储在不同的区域中。例如,元数据存储在第二区域中,ECC数据可以存储在第三区域中。此外,对于完整性检查,可以为64B加密的数据密文生成56比特MAC,并且版本计数器和MAC可以作为元数据存储在第二区域中。MAC可以通过诸如SHA、SHA256和SHA384或算法MD5的各种算法生成。当读取加密的数据密文时,可以一起读取MAC。由加密的数据密文计算的MAC和从存储器读取的MAC相互比较,因此可以检测伪造(forgery)。根据一些实施例,版本计数器和MAC可以存储在存储器中而不被加密和解密。
[0053] 在一些实施例中,ECC处理可以通过各种算法或方法来执行。例如,在一些实施例中,可以使用单比特纠错和双比特检错(SEC-DED),其中对于128比特单元,可以纠正一个错误并且可以检测两个错误。在SEC-DED方法的示例中,可以每128比特生成9比特ECC数据,并且可以针对64B加密数据密文生成36比特ECC数据。此外,可以对元数据执行ECC处理,并且可以为所有83比特元数据生成9比特ECC数据。因此,生成45比特ECC数据,并且ECC数据可以存储在存储器的第三区域中。根据图3所示的示例,元数据和ECC数据可以存储在不同的区域中。此外,因为ECC处理器可以确定出加密数据密文和要对其执行ECC编码的元数据是不同的数据项,所以加密数据密文的ECC数据(例如,第一ECC数据)和元数据的ECC数据(例如,第二ECC数据)可以存储在第三区域中的不同位置。
[0054] 参考图4,根据本发明构思的一些实施例,可以整体管理元数据和ECC数据。例如,可以生成用于对元数据和ECC数据进行整体访问的地址。例如,元数据、第一ECC数据和第二ECC数据可以整体存储在存储器中的同一连续区域中。因此,元数据、第一ECC数据和第二ECC数据可以通过相对少次数的访问被存储在存储器中或从存储器读取。例如,可以控制地址生成操作,因此,存储器包括用于存储加密数据密文的第一区域,并且元数据、第一ECC数据和第二ECC数据被映射在存储器的同一区域(例如,第二区域)中。在图4中,示出了这样的示例,即,元数据和ECC数据被存储在存储器的一行中,这是因为存储器的一行中提供的存储大小比56比特MAC的大小、27比特版本计数器的大小和45比特ECC数据的大小的总和大。
[0055] 用于在存储器和存储器控制器之间发送和接收数据的带宽(例如,数据带宽)根据不同实施例可以是不同的大小。可以根据带宽来定义存储器和存储器控制器之间的输入和输出单元。由于元数据的大小和ECC数据的大小的总和可以小于带宽,所以可以在一个输入和输出单元中管理元数据和ECC数据。因此,与图3所示的实施例相比较,可以减少用于加密和解密数据的访问存储器的次数。
[0056] 在图3和图4中,CTR模式被示为加密操作的示例。然而,本发明构思的实施例不限于此。根据本发明构思的各种实施例,可以使用各种模式,诸如电码本(ECB)模式、密码块链接(CBC)模式、密码反馈(CFB)模式和输出反馈(OFB)模式。
[0057] 图5是示出了根据本发明构思的一些实施例的操作SOC的方法的流程图。在图5中,示出了数据写入操作。然而,地址生成操作和数据访问操作可以在数据读取操作中相同或类似地执行。
[0058] 参考图5,SOC包括根据上述实施例的安全处理器,并且安全处理器可以对数据执行加密/解密操作和ECC操作。此外,可以通过对数据执行加密/解密操作和ECC操作来生成各种附加数据。例如,可以生成与加密/解密操作有关的元数据和与ECC处理操作有关的ECC数据。
[0059] 当在操作S11中,来自外部(例如,来自数据处理设备100外部、安全处理器110外部、和/或地址控制器113外部但在安全处理器110内)的数据访问请求被提供给SOC时,SOC中的组件(例如,中央处理单元(CPU))可以向安全处理器提供要对其执行写入的数据(例如,原始数据)和表示数据被存储的位置的地址(例如,第一地址)。此外,在操作S12中,安全处理器可以基于用于存储加密数据的第一地址生成第二地址。例如,可以基于与原始数据相对应的附加数据(例如,元数据和ECC数据)的大小生成第二地址。例如,因为第二地址包括关于开始存储元数据和ECC数据的位置以及元数据和ECC数据的大小的信息,所以存储器控制器120可以将元数据和ECC数据存储在由来自安全处理器的第二地址指示的位置。
[0060] 在其他实施例中,安全处理器可以在操作S13中通过对所接收的原始数据执行加密操作来生成加密数据和元数据。此外,可以在操作S14中通过对加密数据和元数据执行ECC编码处理来生成ECC数据。如在上述实施例中,ECC数据可以包括通过对加密数据执行ECC编码处理而获得的第一ECC数据和通过对元数据执行ECC编码处理而获得的第二ECC数据。
[0061] 安全处理器可以以两个区域管理存储器。例如,可以执行地址生成操作,因此,存储加密数据的区域(例如,第一区域)与存储元数据和ECC数据的区域(例如,第二区域)被区分开。基于安全处理器的控制,在操作S15中根据第一地址将加密数据存储在存储器的第一区域中,并且在操作S16中可以根据第二地址将元数据和ECC数据存储在存储器的第二区域中。
[0062] 根据上述实施例,与一个加密数据项对应的元数据和ECC数据可以存储在存储器中的同一行或同一列中。此外,在存储器控制器和存储器之间的通信中,因为元数据和ECC数据的大小比数据带宽小,所以可以通过执行单次访问操作将与一个加密数据项对应的元数据和ECC数据存储在存储器中。
[0063] 图6和图7是分别示出了根据本发明构思的一些实施例的加密操作和ECC编码操作的示例的概念图和流程图。在下面的实施例中,CTR模式被示出为加密操作的示例。然而,如上所述,本发明构思的实施例不限于特定种类的加密操作。
[0064] 如图6所示,在对数据进行加密并将加密数据存储在存储器中时,可以读取先前存储在存储器中的版本计数器。为此目的,可以对关于先前存储的加密数据的元数据和ECC数据执行读取操作。此外,可以使用69比特随机数、32比特地址和27版本计数器生成用于数据的加密操作(例如,使用AES算法的加密操作)的128比特密钥流。可以通过使用128比特原始数据明文和128比特密钥流的操作(例如,XOR)生成加密数据密文。此外,可以一起生成27比特版本计数器的9比特ECC数据和128比特加密数据密文的36比特ECC数据。此外,可以通过使用128比特加密数据密文和MAC密钥的操作来生成56比特MAC。
[0065] 在图7中示出了根据上述加密操作和ECC编码操作的整个流程的实施例。例如,当以对应于128比特*4的数据(例如,第一数据项至第四数据项)的加密操作为示例时,在操作S21中,从存储器读取元数据和ECC数据,在操作S22中,通过ECC解码操作提取元数据,并且可以在操作S23中执行包括版本计数器的密钥流生成操作。此外,在操作S24中执行使用密钥流的加密操作,在操作S25中执行对第一加密数据的ECC编码操作,并且在操作S26中可以将第一加密数据写入存储器中。
[0066] 可以分别在操作S27和S28中执行对第二加密数据的ECC编码操作和写入第二加密数据的操作。可以分别在操作S29和S30中执行对第三加密数据的ECC编码操作和写入第三加密数据的操作。此外,可以分别在操作S31和S32中执行对第四加密数据的ECC编码操作和写入第四加密数据的操作。此外,根据上述实施例,在操作S33中通过使用加密数据的MAC操作生成MAC,在操作S34中执行对包括版本计数器和MAC的元数据的ECC编码操作,并且可以将所生成的元数据和ECC数据存储在存储器中。
[0067] 在处理数据时,在图7示出的流程中在写入和读取数据上通常花费相对大量的时间和功率。然而,根据本发明构思的一些实施例,因为元数据和ECC数据可以从存储器整体读取并且元数据和ECC数据可以整体存储在存储器中,所以可以减少在处理数据上花费的时间和功率。
[0068] 图8是示出了根据本发明构思的一些实施例的解密操作和ECC解码操作的示例的流程图。因为可以在本发明构思的实施例中使用的解码操作和ECC解码操作的概念可以以与图6的加密操作和ECC编码操作相反的顺序执行,所以将不再给出其详细描述。
[0069] 如图8所示,当以对与128比特*4相对应的加密数据的解码操作为示例时,可以在操作S41中从存储器中读取包括版本计数器和MAC的元数据以及ECC数据,并且读取的信息可以由安全处理器临时地保管。此外,在操作S42中通过ECC解码操作提取元数据,并且可以在操作S43中执行包括版本计数器的密钥流生成操作。此外,可以在操作S44中从存储器读取ECC编码的第一加密数据,并且可以在操作S45中通过执行ECC解码操作来提取第一加密数据。可以分别在操作S46和S47中通过读取操作提取第二加密数据以及执行对第二加密数据的ECC解码操作,可以分别在操作S48和S49中通过读取操作提取第三加密数据以及执行对第三加密数据的ECC解码操作。此外,可以分别在操作S50和S51中通过读取操作提取第四加密数据以及执行对第四加密数据的ECC解码操作。此外,根据上述实施例,通过使用加密数据的MAC操作生成MAC,可以在操作S52中在所生成的MAC和从存储器读取的MAC之间执行比较操作,并且可以在操作S53中执行使用密钥流的解码操作。
[0070] 根据上述实施例,可以通过一次读取操作来执行读取元数据以及加密数据的ECC数据和元数据的ECC数据的过程。因此,可以减少对存储器的访问次数,因此,可以减少在解码加密数据的过程上花费的时间和功率。
[0071] 图9和图10是示出了根据本发明构思的一些实施例的安全处理器300的实现示例的框图。
[0072] 参考图9,安全处理器300可以包括主控制器310、加密和ECC编码模块320、解密和ECC解码模块330、地址生成器340和地址数据调度器350。加密和ECC编码模块320可以对应于图1的加密/ECC编码处理器111,解密和ECC解码模块330可以对应于图1的解密/ECC解码处理器112。此外,地址生成器340可以被包括在图1的地址控制器113中。
[0073] 根据一些实施例,安全处理器300可以被包括在SOC(或高级驾驶员辅助系统(ADAS)SOC)中。安全处理器300的操作可以由SOC中提供的CPU(未示出)控制。或者,根据其他实施例,可以在用于控制存储器的存储器控制器中提供安全处理器300。或者,根据其他实施例,SOC可以包括安全处理器300和存储器控制模块。图9中示出的一些组件可以被提供在安全处理器300中,并且其他组件可以被提供在存储器控制模块中。
[0074] 外部设备可以请求SOC来读取和存储数据。根据本发明构思的实施例,安全处理器300可以通过对请求存储的原始数据执行加密操作和ECC编码处理来将加密数据存储在存储器(未示出)中,从存储器读取加密数据,通过对读取的加密数据执行解密操作和ECC解码处理来生成原始数据,并且可以在SOC中使用原始数据或者可以将原始数据提供给外部设备。主控制器310可以控制安全处理器300的操作,因此,安全处理器300可以执行根据本发明构思的实施例的操作。
[0075] 当数据访问请求被提供给SOC时,安全处理器300从SOC的内部组件(例如,CPU)接收第一地址ADD1和写入数据,并且可以提供读取数据。根据上述实施例,地址生成器340可以从第一地址ADD1计算表示元数据和ECC数据要被存储的位置的第二地址ADD2。来自外部的第一地址ADD1和来自地址生成器340的第二地址ADD2可以被提供给地址数据调度器350。根据一些实施例,地址生成器340可以基于来自外部的第一地址ADD1重新生成表示加密数据要被存储的位置的地址。新生成的地址可以被提供给地址数据调度器350。
[0076] 根据上述实施例,在数据的读取和写入操作中,对存储器的访问次数可能变化。例如,在数据的写入操作的情况下,可能添加从存储器读取对原始数据执行加密操作所需的元数据的过程。因为存储器访问操作可以根据对数据执行的读取或写入操作而变化,所以主控制器310可以基于读取或写入操作将控制信息提供给地址生成器340。也就是说,地址生成器340可以基于第一地址ADD1和控制信息计算至少一个地址,并且可以存储计算出的地址。此外,当根据读取请求从外部接收到第一地址ADD1时,地址生成器340可以参考存储在地址生成器340中的地址信息生成与第一地址ADD1相对应的至少一个地址,并且可以将所生成的地址提供到地址数据调度器350。
[0077] 根据上述实施例,加密和ECC编码模块320可以对数据执行加密操作和ECC编码处理,并且可以将加密的数据、元数据和ECC数据提供给地址数据调度器350。此外,解密和ECC解码模块330可以通过使用从存储器读取的加密数据、元数据和ECC数据来执行解密操作和ECC解码处理,并且可以执行用于完整性检查的MAC生成和比较操作。
[0078] 主控制器310可以一起控制与加密/解密操作和ECC操作有关的过程以及对地址生成器340的控制操作。例如,主控制器310可以管理用于加密/解密操作的信息,可以根据安全处理结果管理警报操作,或者可以对由ECC操作发现的错误执行管理操作。
[0079] 地址数据调度器350可以调度与存储器操作有关的总线事务。例如,可能从外部设备提供对多个数据项的访问请求。地址数据调度器350可以调度数据和地址的输出操作,因此,多个加密数据项和与加密数据项对应的元数据和ECC数据可以被存储在存储器中,或者可以从存储器中读取。来自地址数据调度器350的数据和地址可以通过存储器控制器(未示出)提供给外部存储器。
[0080] 图9中所示的安全处理器300的功能可以通过电路作为硬件、软件或硬件和软件的组合来执行。例如,当安全处理器300的功能作为软件执行时,主控制器310可以包括被配置为执行程序的处理器。可以通过执行加载在安全处理器300内部或外部的存储器上的程序来执行上述实施例中的一个或更多个功能。
[0081] 在图10中,示出了根据本发明构思的一些实施例的加密和ECC编码模块320以及解密和ECC解码模块330的实现示例。参考图10,加密和ECC编码模块320可以包括加密引擎321、MAC生成器322和ECC编码器323。此外,解密和ECC解码模块330可以包括解密引擎331、MAC生成器332、MAC比较器333和ECC解码器334。ECC编码器323可以执行将元数据和ECC数据整体提供给地址数据调度器350的功能(例如,打包)。例如,当缓冲器被提供在ECC编码器
323中,顺序接收的元数据和ECC数据可以被存储在缓冲器中,并且存储在缓冲器中的元数据和ECC数据可以整体地提供给地址数据调度器350。解密和ECC解码模块330可以包括用于临时存储整体读取的元数据和ECC数据的缓冲器,并且可以执行在不同时间将元数据和ECC数据提供给相应处理块的功能(例如,解包)。
[0082] 图11是示出了根据本发明构思的一些实施例的安全处理器的示例操作的框图。
[0083] 参考图11,安全处理器包括地址数据调度器400,并且可以在数据写入操作期间根据上述实施例接收加密数据、元数据、ECC数据和地址。例如,作为不同的加密数据项,第一加密数据DATA_EN_1以及与第一加密数据DATA_EN_1对应的第一元数据Meta data_1和第一ECC数据ECC Data_1可以被提供给地址数据调度器400。然后,第二加密数据DATA_EN_2以及与第二加密数据DATA_EN_2对应的第二元数据Meta data_2和第二ECC数据ECC data_2可以被提供给地址数据调度器400。地址还可以从地址生成器(未示出)被提供给地址数据调度器400。
[0084] 地址数据调度器400可以调度输出与将数据项存储在存储器中的操作有关的数据项和地址的操作。例如,当第一元数据Meta data_1和第一ECC数据ECC data_1的大小与第二元数据Meta data_2和第二ECC数据ECC data_2的大小之和小于存储器控制器与存储器(未示出)之间的带宽时,可以执行调度,使得元数据项和ECC数据项被一起存储在存储器中。例如,在地址数据调度器400输出第一加密数据DATA_EN_1和与第一加密数据DATA_EN_1对应的第一地址ADD1_1以及第二加密数据DATA_EN_2和与第二加密数据DATA_EN_2对应的第一地址ADD1_1之后,地址数据调度器400可以输出与第一加密数据项DATA_EN_1和第二加密数据项DATA_EN_2有关的元数据项和ECC数据项以及与元数据项和ECC数据项对应的第二地址ADD2。即,基于地址数据调度器400的调度,与至少两个加密数据项有关的元数据项和ECC数据项可以被整体存储在存储器中和/或可以从存储器中读取。
[0085] 图12A和12B是示出了根据本发明构思的一些实施例的元数据和ECC数据存储在存储器中的示例的框图。
[0086] 参考图12A,根据数据加密操作生成加密数据DATA_EN,并且加密数据DATA_EN可以存储在作为存储器的DRAM的第一区域中。此外,与加密数据DATA_EN对应的元数据和ECC数据可以基于地址生成操作被存储在存储器的第二区域中。
[0087] 当执行地址生成操作,并且因此,元数据和ECC数据被存储在少量行中时,元数据和ECC数据中的至少一些可以存储在同一行中。例如,当ECC数据包括加密数据DATA_EN的第一ECC数据ECC data_1和元数据的第二ECC数据ECC data_2时,元数据和第一ECC数据ECC data_1响应于来自地址生成器的行地址R_ADD2_1被存储在同一行中,第二ECC数据ECC_Data_2可以响应于来自地址生成器的地址R_ADD2_2被存储在相邻的行中。
[0088] 图12B示出了其中元数据和ECC数据被存储在相对少量的列中的地址生成操作的执行。元数据和ECC数据中的至少一些可以存储在同一列中。例如,元数据和第一ECC数据ECC data_1可以响应于来自地址生成器的列地址C_ADD2_1存储在同一列中,第二ECC数据ECC data_2可以响应于来自地址生成器的列地址C_ADD2_2存储在相邻的列中。
[0089] 本发明构思的实施例不限于图12A和图12B中所示的存储方法。元数据和ECC数据可以基于元数据和ECC数据的大小被存储在更多的行或列中。此外,存储在同一行或同一列中的数据项种类可以变化。
[0090] 图13是示出了根据本发明构思的一些实施例的安全处理器500的框图。在图13中,示出了选择性地执行数据的加密操作的示例。
[0091] 参考图13,安全处理器500可以包括主控制器510、地址生成器520、加密和ECC编码模块530以及地址数据调度器540。此外,主控制器510可以控制安全处理器500的操作,并且加密和ECC编码模块530可以包括加密引擎531、MAC生成器532和ECC编码器533。
[0092] 在将数据存储在存储器中时,安全处理器500或包括安全处理器500的SOC(未示出)可以确定是否对数据进行加密。当假设SOC确定是否对数据进行加密时,在写入数据的操作中,可以将表示是否对数据进行加密的信息Info_EN提供给主控制器510,并且主控制器510可以基于信息Info_EN控制加密和ECC编码模块530。
[0093] 例如,假设对第一数据DATA1执行加密操作并且对第二数据DATA2不执行加密操作,可以执行以下操作:加密引擎531对第一数据DATA1执行加密操作,将加密数据提供给MAC生成器532,并且可以将加密数据和元数据(例如,诸如版本计数器的信息)提供给ECC编码器533。此外,来自MAC生成器532的MAC可以作为元数据被提供给ECC编码器533,并且ECC编码器533可以生成加密数据的第一ECC数据和元数据的第二ECC数据。ECC编码器533可以生成第二数据DATA2的ECC数据而不对第二数据DATA2执行加密操作。
[0094] 主控制器510可以基于信息Info_EN来控制地址生成器520的操作。根据上述实施例,地址生成器520可以通过使用与第一数据项DATA1和第二数据项DATA2的存储有关的地址(例如,第一地址)来计算第二地址,可以计算用于存储与第一数据DATA1有关的元数据和ECC数据的第二地址ADD2_1,并且可以计算用于存储与第二数据DATA2有关的ECC数据的第二地址ADD2_2。如上所述生成的数据和地址可以被提供给地址数据调度器540。
[0095] 地址生成器520可以在生成与第一数据DATA1有关的第二地址ADD2_1时执行地址生成操作以具有用于存储更多数据的信息。当生成与第二数据DATA2有关的第二地址ADD2_2时,可以执行地址生成操作以具有用于存储相对少量数据的信息。因此,当不执行加密操作时,与更多数据项有关的ECC数据可以存储在存储器的同一行或同一列中。此外,根据上述实施例,地址数据调度器540可以控制地址和/或数据项被输出的顺序,当不执行加密操作时输出更多数量的数据项和与数据项对应的地址,并且可以执行调度,因此,可以将与更多数量的数据项有关的ECC数据项整体地提供给存储器。
[0096] 图14是示出了根据本发明构思的其他实施例的安全处理器600的框图。
[0097] 参考图14,安全处理器600可以包括主控制器610、地址生成器620、加密和ECC编码模块630、以及解密和ECC解码模块640。此外,主控制器610可以控制安全处理器600的操作。基于安全处理器600或包括安全处理器600的SOC的控制,可以选择用于加密/解密操作的算法和用于ECC操作的算法。此外,元数据的大小和ECC数据的大小可以根据用于加密/解密操作的算法和用于ECC操作的算法而改变。
[0098] 当基于主控制器610的控制选择一种算法时,主控制器610可以将加密算法信息Algo_EN和ECC编码算法信息Algo_ECC_E提供给加密和ECC编码模块630。此外,主控制器610可以将解密算法信息Algo_DE和ECC解码算法信息Algo_ECC_D提供给解密和ECC编码模块640。此外,主控制器610可以根据所选的算法将关于由加密操作和ECC操作生成的附加数据的大小的信息Info_size提供给地址生成器620,并且地址生成器620可以进一步参考信息Info_size来生成第二地址。
[0099] 假设生成具有比第一数据的大小大的第一大小的附加数据并且生成具有比第二数据的大小小的第二大小的附加数据,则地址生成器620可以生成第二地址ADD2_1和ADD2_2用于具有不同大小的附加数据项。例如,当附加数据的大小相对小时,元数据和ECC数据可以被存储在少量的行或列中,并且与更多数据项有关的附加数据(元数据和ECC数据)可以被存储在存储器的同一行或同一列中。此外,根据上述实施例,地址数据调度器(未示出)的调度操作可以基于附加数据的大小而改变。
[0100] 图15是示出了在边带ECC方法中使用根据本发明构思的一些实施例的安全处理器的示例的框图。
[0101] 在上述实施例中,示出了加密数据和附加数据被存储在同一存储器(例如,同一DRAM芯片)中的不同区域中,其可以对应于其中存储器的空间在逻辑上划分以分配用于ECC数据的存储空间的联机(in-line)ECC方法。在本发明构思的一些实施例中,可以管理存储加密数据和附加数据的操作,以对应于另一ECC方法。例如,可以以与边带ECC方法相同的方法或类似的方法来管理存储操作,在边带ECC方法中,ECC数据存储在与存储公共数据(例如,用户数据)的DRAM芯片不同的DRAM芯片中。DRAM芯片可以根据各种规范(例如,LPDDR(诸如LPDDR4、LPDDR4X或LPDDR5))中的一种执行数据访问操作。
[0102] 例如,参考图15,数据处理系统700包括SOC 710和多个存储器,并且SOC 710可以包括根据上述实施例的安全处理器711。此外,多个存储器可以包括用于存储加密数据的一个或更多个第一DRAM芯片721和722以及用于存储包括元数据和ECC数据的附加数据的一个或更多个第二DRAM芯片731和732。在图15中,示出了两个第一DRAM芯片721和722以及两个第二DRAM芯片731和732。然而,本发明构思的实施例不限于此。可以在数据处理系统700中提供各种数量的第一DRAM芯片和第二DRAM芯片。
[0103] 预定单元的加密数据DATA_EN可以存储在第一DRAM芯片721和722中的至少一个中。此外,根据安全处理器711中的地址生成器(未示出)生成的地址,元数据和ECC数据可以存储在第二DRAM芯片731和732中的至少一个中。根据一些实施例,因为元数据和ECC数据可以存储在与存储加密数据DATA_EN的DRAM芯片不同的DRAM芯片中,所以安全处理器711中的地址生成器可以进一步生成表示DRAM芯片的位置的芯片地址。因此,可以为元数据和ECC数据整体地生成芯片地址。
[0104] 当数据由如上所述的边带ECC方法管理时,因为可以提供专用于元数据和ECC数据的通信的附加带宽,所以可以减少对数据的访问次数并且可以提高访问速度。此外,在由于第二DRAM芯片的生产规范而未被使用的被放弃的存储空间可以用于存储元数据。因此,可以提高存储器的使用效率。
[0105] 图16是示出了根据本发明构思的一些实施例的SOC 800的实现示例的框图。以下实施例中描述的SOC可以包括应用处理器。
[0106] 参考图16,SOC 800可以包括CPU 810、显示控制器820、只读存储器(ROM)830、存储器控制器840和随机存取存储器(RAM)850。此外,SOC 800还可以包括GPU 860。此外,当SOC 800还包括调制解调器870时,SOC 800可以被称为ModAP。SOC 800还可以包括各种功能块,例如电源管理单元和时钟单元。
[0107] CPU 810可以处理或执行存储在ROM 830和/或RAM 850中的程序或数据。例如,CPU 810可以根据操作时钟来处理或执行程序和数据。CPU 810可以由多核处理器实现。多核处理器是具有两个或更多个独立处理器(例如,核)的计算组件。每个处理器可以读取和执行程序指令。
[0108] ROM 830可以以非易失性方法存储程序和/或数据。ROM 830可以由可擦除可编程只读存储器(EPROM)或电可擦除可编程只读存储器实现。此外,RAM 850可以临时存储程序、数据和指令。例如,存储在ROM 830中的程序和/或数据可以根据CPU 810的控制被临时存储在RAM 850中。RAM 850可以由诸如动态RAM(DRAM)或静态RAM(SRAM)的各种类型的存储器实现。
[0109] 存储器控制器840包括用于与外部存储器设备进行接口连接的接口电路(I/F)841,根据数据访问请求控制外部存储器设备,并且写入或读取数据。此外,显示控制器820可以通过驱动显示设备来控制屏幕的显示操作。
[0110] 根据本发明构思的一些实施例,安全处理器842可以被提供在SOC 800中的各种位置中的一个位置中。在图16中,示出了安全处理器842被实现在存储器控制器840中。即,上述实施例中的安全处理器842的功能可以由存储器控制器840执行。存储器控制器840可以执行用于存储加密数据和元数据/ECC数据的控制操作。例如,加密数据和元数据/ECC数据可以存储在SOC800的RAM 850中或外部存储设备中。此外,可以整体管理元数据/ECC数据。例如,外部存储设备的存储空间可以逻辑上划分为第一区域和第二区域,并且可以被相应地管理。元数据/ECC数据可以存储在第二区域中。在其他实施例中,外部存储设备可以包括多个存储器芯片,并且可以管理元数据/ECC数据以存储在同一存储器芯片中。
[0111] 在图16的实施例中,示出了存储器控制器840被提供在SOC 800中。然而,本发明构思的实施例不限于此。例如,存储器控制器840可以由附加半导体芯片实现,并且根据本发明构思的一些实施例,安全处理器842可以被提供在由附加半导体芯片实现的存储器控制器840中。此外,由附加半导体芯片实现的存储器控制器840和存储器(例如,外部存储设备)可以根据本发明构思的一些实施例配置存储系统MEM SYS。
[0112] 图17是示出了根据本发明构思的一些实施例的SOC 900的实现示例的框图。尽管为了便于描述,在图17中未示出图16中示出的一些组件,但是根据本发明构思的实施例的SOC还可以包括其他各种组件。此外,在描述图17中所示的SOC的配置和操作示例时,先前关于上述实施例提供的描述将不再重复。
[0113] 参考图17,SOC 900可以包括CPU 910、GPU 920、显示控制器930、安全处理器940和存储器控制器950。DRAM控制器可以是存储器控制器950的示例。此外,存储器控制器950可以控制外部存储设备,并且外部存储设备可以根据存储数据的种类而被划分为多个区域。
[0114] CPU 910可以控制SOC 900的操作。例如,CPU 910向安全处理器940或存储器控制器950提供请求访问的数据和地址。例如,各种数据项可以被存储在外部存储设备中。不需要加密的数据可以通过CPU 910和存储器控制器950经由明数据路径(plain data path)提供给外部存储设备。相反地,需要加密的数据可以通过CPU 910和安全处理器940经由加密数据路径提供给外部存储设备。
[0115] 图17中所示的SOC 900可以通过各种方法中的一种来处理数据。当对不需要加密的数据执行ECC操作时,存储器控制器950可以通过对数据DATA的ECC操作来生成ECC数据。需要加密的数据可以由根据上述实施例的安全处理器940处理,因此,可以生成加密数据DATA_EN和与加密数据DATA_EN相对应的元数据/ECC数据。此外,可以执行地址生成操作,因此,元数据/ECC数据被存储在外部存储设备的同一区域中。
[0116] 图18是示出了根据本发明构思的一些实施例的安全处理器被实现在车辆中使用的自动驾驶系统1000中的示例的框图。图18所示的系统可以对应于自动驾驶系统1000,自动驾驶系统1000可以包括传感器信息收集器1100、导航信息收集器1200、自动驾驶模块1300、CPU 1400和存储器1500。此外,自动驾驶模块1300可以包括神经网络设备1310和安全处理器1320。
[0117] 神经网络设备1310使用各种图像和语音信息项执行神经网络操作,并且可以基于执行结果生成诸如图像识别结果和语音识别结果的信息信号。例如,传感器信息收集器1100包括可以收集各种图像和语音信息项的设备,例如相机和麦克,并且可以将收集的各种图像和语音信息项提供给自动驾驶模块1300。此外,导航信息收集器1200可以向自动驾驶模块1300提供与车辆驾驶相关的各种信息项(例如,位置信息)。神经网络设备1310通过使用来自传感器信息收集器1100和/或导航信息收集器1200的信息作为输入来执行各种神经网络模型,并且可以生成信息信号。当传感器信息收集器1100包括相机或麦克风时,自动驾驶模块1300的安全处理器1320可以执行加密/解密操作和ECC操作,作为对来自传感器信息收集器1100的语音数据或图像数据的安全处理。根据上述实施例,加密数据和元数据/ECC数据可以存储在存储器1500中。
[0118] 在图18中,示出了在自动驾驶系统中使用本发明构思的实施例。然而,可以在诸如IoT和监控摄像机的其中相机传感器需要安全功能的产品中使用本发明构思的实施例。
[0119] 尽管已经参考本发明构思的实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈