快速数据超过慢速数据的处理管线的制作方法
未命名
08-02
阅读:108
评论:0

1.本文所公开的各种示例性实施例大体上涉及用于数据的内嵌加密/解密的系统和方法,包括快数据超过慢数据的加密管线。
背景技术:
2.内嵌加密是在存取例如双倍数据速率(ddr)存储器的外部存储器时对数据进行加密或进行解密的方法。此方法允许数据安全地存储在存储器中,以便防止对数据的未授权存取。此加密和解密可以按对存取存储器的用户或系统透明的方式来实现。
技术实现要素:
3.下文呈现各种示例性实施例的概述。可以在以下概述中作出一些简化和省略,所述概述意图凸显并且引入各种示例性实施例的一些方面,而非限制本发明的范围。足以允许本领域的普通技术人员产生并使用本发明概念的示例性实施例的详细描述将在后续部分呈现。
4.各种实施例涉及被配置成处理从存储器读取的数据的存储器控制器中的内嵌加密引擎,所述内嵌加密引擎包括:第一数据管线,所述第一数据管线被配置成:接收为加密数据的数据、所述加密数据的次序标签和第一有效性标志;解密来自所述存储器的所述加密数据;并且输出解密明文数据;第二数据管线,所述第二数据管线被配置成接收为明文数据的数据、所述数据的次序标签和第二有效性标志,其中所述第二数据管线包括缓冲器,使所述第二数据管线具有与所述第一数据管线相同的长度;输出多路复用器,所述输出多路复用器被配置成选择并输出来自所述第一管线或所述第二管线的数据;以及控制逻辑,所述控制逻辑被配置成控制所述输出多路复用器,其中所述控制逻辑被配置成在所述第一管线不具有可用的有效输出解密明文数据时,输出来自所述第二管线的有效数据。
5.描述各种实施例,其另外包括密钥存储和区上下文逻辑,所述密钥存储和区上下文逻辑被配置成基于所述存储器的存储所述加密数据的区来将密码编译密钥提供到所述第一管线。
6.描述各种实施例,其中所述密钥存储和区上下文逻辑另外被配置成选择所述第一管线或所述第二管线来接收从所述存储器读取的数据。
7.描述各种实施例,其另外包括第三管线,所述第三管线包括缓冲器,使所述第三数据管线具有与所述第一数据管线相同的长度,并且所述第三管线被配置成:接收为加密数据的数据、所述数据的次序标签和第三有效性标志;解密来自所述存储器的所述加密数据;并且输出解密明文数据,其中输出多路复用器被配置成选择并输出来自所述第一管线、所述第二管线或所述第三管线的数据。
8.描述各种实施例,其中所述控制逻辑被配置成在所述第一管线不具有可用的有效输出解密明文数据时,输出来自所述第三管线的有效数据。
9.描述各种实施例,其中所述控制逻辑被配置成在所述第一管线和所述第三管线不
具有可用的有效输出解密明文数据时,输出来自所述第二管线的有效所接收数据。
10.描述各种实施例,另外包括:连接到所述内嵌加密引擎的输入的存储器接口;以及连接到所述内嵌加密引擎的所述输出的重新排序缓冲器,其中所述次序标签识别输出数据的乱序块。
11.描述各种实施例,其中所述次序标签是存储器地址。
12.其它各种实施例涉及被配置成处理从存储器读取的数据的存储器控制器中的内嵌加密引擎,所述内嵌加密引擎包括:先进先出缓冲器(fifo),所述先进先出缓冲器(fifo)被配置成接收从所述存储器读取的所述数据、与所述数据相关联的有效性标志、所述数据的地址和与所述数据相关联的旁路标志,其中所述旁路标志指示所述数据是明文数据或加密数据;密码编译管线,所述密码编译管线被配置成:接收从所述存储器读取的所述数据;并且执行来自所述存储器的数据上的密码编译函数;连接到所述fifo的每个级的旁路多路复用器,所述旁路多路复用器被配置成基于级指针,从所述fifo的所选级输出所述数据以及与所述数据相关联的所述有效性标志、旁路标志和地址;输出多路复用器,所述输出多路复用器被配置成基于第一控制信号,选择并输出来自所述旁路多路复用器或所述密码编译管线的数据;以及控制逻辑,所述控制逻辑被配置成控制所述输出多路复用器和所述旁路多路复用器,并且产生所述级指针和所述第一控制信号。
13.描述各种实施例,另外包括密钥存储和区上下文逻辑,所述密钥存储和区上下文逻辑被配置成基于所述存储器的存储所述数据的所述区来产生与所述数据相关联的所述旁路信号。
14.描述各种实施例,其中所述密钥存储和区上下文逻辑另外被配置成基于所述存储器的存储所述数据的区来将密码编译密钥提供到所述密码编译管线。
15.描述各种实施例,其中控制逻辑产生所述第一控制信号,所述第一控制信号指示所述输出多路复用器的所述输出是来自所述密码编译管线或来自连接到所述fifo的所述旁路多路复用器。
16.描述各种实施例,其中控制逻辑包括优先编码器,所述优先编码器被配置成:基于来自所述fifo的每个级的所述旁路标志和有效性标志来接收输入;并且产生所述级指针,其中所述级指针指示所述fifo的具有可用于输出的所接收有效输入数据的所述级。
17.描述各种实施例,其中所述控制逻辑被配置成产生清除启用信号,并且所述fifo被配置成基于所述清除启用信号来清除由所述级指针指示的级的所述有效性标志。
18.描述各种实施例,其中所述第一控制信号是基于来自所述fifo的最末级的旁路标志和有效性标志以及级指针有效性标志。
19.描述各种实施例,另外包括:连接到所述内嵌加密引擎的输入的存储器接口;以及连接到所述内嵌加密引擎的所述输出的重新排序缓冲器,其中所述数据的所述地址用作标签以识别输出数据的乱序块。
20.描述各种实施例,另外包括连接到所述重新排序缓冲器的片上系统接口。
21.其它各种实施例涉及被配置成处理从存储器读取的数据的存储器控制器中的内嵌加密引擎,所述内嵌加密引擎包括:具有输出寄存器的先进先出缓冲器(fifo),所述先进先出缓冲器(fifo)被配置成接收从所述存储器读取的所述数据、与所述数据相关联的有效性标志、所述数据的地址和与所述数据相关联的旁路标志,其中所述旁路标志指示所述数
据是明文数据或加密数据,所述fifo的每个级包括:寄存器;连接到所述寄存器的密码编译逻辑;以及多路复用器,所述多路复用器产生所述级的所述输出,并且接收来自所述寄存器和所述密码编译逻辑的输入,其中所述输出是基于所述旁路标志而选择;连接到所述fifo的每个级的旁路多路复用器,所述旁路多路复用器被配置成基于级指针,从所述fifo的所选级输出所述数据以及与所述数据相关联的所述有效性标志、旁路标志和地址;输出多路复用器,所述输出多路复用器被配置成基于第一控制信号,选择并输出来自所述旁路多路复用器或所述fifo的数据;以及控制逻辑,所述控制逻辑被配置成控制所述输出多路复用器和所述旁路多路复用器,并且产生所述级指针和所述第一控制信号。
22.描述各种实施例,另外包括密钥存储和区上下文逻辑,所述密钥存储和区上下文逻辑被配置成基于所述存储器的存储所述数据的所述区来产生与所述数据相关联的所述旁路信号。
23.描述各种实施例,其中所述密钥存储和区上下文逻辑另外被配置成基于所述存储器的存储所述数据的区来将密码编译密钥提供到所述密码编译逻辑。
24.描述各种实施例,其中所述第一控制信号指示所述输出多路复用器的所述输出是来自所述旁路多路复用器或所述fifo。
25.描述各种实施例,其中所述级指针指示所述fifo的可用于输出的最早所接收有效输入数据的所述级。
26.描述各种实施例,另外包括:连接到所述内嵌加密引擎的输入的存储器接口;以及连接到所述内嵌加密引擎的所述输出的重新排序缓冲器,其中所述数据的所述地址用作标签以识别输出数据的乱序块。
27.描述各种实施例,另外包括连接到所述重新排序缓冲器的片上系统接口。
附图说明
28.为了更好地理解各种示例性实施例,参考附图,其中:
29.图1示出具有不同加密管线和旁路缓冲器的iee的实施例;
30.图2示出在两个管线之间共享寄存器的iee的实施例;并且
31.图3示出使用具有旁路的aes管线的详细实施方案。
32.为了便于理解,相同参考数字已用于表示具有大体上相同或类似结构和/或大体上相同或类似功能的元件。
具体实施方式
33.描述和附图示出了本发明的原理。因此将了解,本领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但所述布置体现本发明的原理且包括在其范围内。此外,本文中所引述的所有例子主要意在明确地用于教学目的,以帮助读者理解本发明的原理和由发明人提供的用以深化本领域的概念,且所有例子应视为并不限于此类特定引述的例子和条件。另外,除非另外指示(例如,“否则”或“或在替代方案中”),否则如本文中所使用的术语“或”指非独占的“或”(即,“和/或”)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施例可以与一个或多个其它实施例组合以形成新的实施例。
34.在具有外部存储器的计算机系统中,处理器与存储器之间的路径可能会被攻击者窥探。需要加密存储在外部存储器中的数据。加密数据可能是耗时的处理。公开允许存储在存储器中的数据的快速内嵌加密和解密的内嵌加密引擎(iee)实施例和方法。术语iee意图涵盖内嵌解密和加密。ddr控制器为处理器与外部存储器之间的计算机系统内部的存储器接口逻辑。通过在ddr控制器中实施iee,可以加密并且透明地将数据存储在存储器中。iee是彻底管线化的,并且在存储器的速度下运行,但在执行加密时将添加对存储器存取的时延。
35.任何给定存储器可以存储加密和未加密数据。此外,可以使用不同加密方案对加密数据进行加密。因而,iee将具有用于读取这些不同类型的数据的不同管线,并且如果需要,那么按需要来解密/加密数据。每个不同加密方案可能耗费不同数目个时钟循环,由此招致不同时延。
36.如果对数据未加密而存储,那么未加密数据穿过相同的管线。数据可以按与其进入时相同的次序来从iee中出来。然而,未加密数据将由此具有与加密数据相同的时延惩罚。在一些情况下,取决于所使用的具体加密方案,此时延可能为例如10至15个时钟循环。本文描述的实施例将允许未加密数据经由管线超过加密数据。结果是未加密数据将具有较低时延。从管线中出来的数据可以与进来的数据不同而次序出来。数据的每个块的存储地址可以用作次序标签来跟踪从管线出来的数据的次序。在将数据加密并写入到存储器时,情况可能同样如此。对于使用具有不同时延的加密方案加密/解密的数据,情况可能也是同样如此。
37.本文描述的实施例可以在数据可以通过不同长度的多个管线,从而允许短管线数据超过长管线数据的任何应用中使用。这对于两个以上的管线也将同样起作用。此外,在所描述的实施例中,没有一个管线将停止。
38.在文本所描述的iee中,较短管线被缓冲到与最长管线相同的长度。较短管线输出的数据可以从iee输出或可以进入缓存器。这是为了考虑两个(或两个以上)管线在同一时钟循环期间已完成数据处理的情况。最长管线数据具有优先权并且被输出,而较短管线数据被缓冲。有效信号指定数据进入管线中的一个,并且指示符信号(例如,旁路标志)指定数据进入哪个管线。有效信号和指示符信号连同数据和存储器地址一起穿过管线。优先权编码器确定哪个短管线级(或缓冲器)具有有效数据(如果存在)。当短管线具有有效数据并且长管线不具有有效数据时,输出在沿着短管线数据的最远位置的所缓冲的有效数据,并且接着否定所述数据的有效信号。
39.数据可以在每一时钟循环进入管线中的一个,并且数据可以在可从任何管线或缓冲器获得数据的任何时间退出iee。有效信号连同数据和存储器地址一起退出管线,以指示数据在所述时钟循环期间已准备就绪。如果超过一个管线具有可用数据,那么来自较长管线的数据获得优先权,并且较短管线数据再缓冲另一时钟。较短管线要求缓冲恰好与最长管线相同的长度。在iee的一个实施例中,优化允许所有管线共享一组管线寄存器以减小区域。
40.在以下例子中,将描述对来自存储器的数据的读取,其中所述数据可以是未加密数据或待由请求处理器解密以使用的加密数据。举例来说,这可以应用到已加密并且清除其中存储的数据的闪存存储器。可替换的是,这可以应用于在操作期间在其中已写入加密
和未加密数据的存储器。本文描述的实施例可以同等地应用于将数据写入到存储器,其中所述数据可以存储为未加密数据,或其中所述iee在数据存储在存储器中之前加密所述数据。
41.应注意,加密管线可以使用不同加密方案和操作模式。在以下给定的例子中,使用高级加密标准(aes)和prince加密/解密方案。还可以使用其它加密标准/方案。此外,可以使用电码本(ecb)、计数器模式(ctr)或不使用链接的任何其它模式来使用aes和prince,使得需要一个操作的结果才能处理下一个操作。在ecb模式中,使用密钥来解密/加密输入数据。在计数器模式中,解密/加密计数器,并且接着用输入数据进行异或(xor)运算。
42.图1示出具有不同加密管线和旁路缓冲器的iee的实施例。图1示出读取来自存储器的数据,但相同基本iee结构还可以用于将数据写入到存储器,但数据流将在相反的方向上,并且将出现加密而不是解密。使用ddr接口102从存储器读取数据,并且iee 110按需要解密所读取数据。ddr重新排序缓冲器104接收来自iee 110的数据块,并且按需要重新排序数据,并且将数据提供到片上系统(soc)接口106。密文132的存储器地址134用作用于重新排序缓冲器的次序标签以识别数据块。在其它实施例中,不同次序标签可以代替所述地址使用或连同所述地址一起使用。
43.iee 110包括旁路缓冲器112、aes管线114、prince管线116、密钥存储和区上下文逻辑118和“与”门120、122、124。当读取来自ddr存储器的数据时,ddr接口102向iee 110提供数据和有效数据标志130、密文132、地址134和区136。有效数据标志130指示在密文线132和地址线134上接收的数据是有效的,并且iee将在有效数据标志指示此数据是有效的时,仅读取来自密文线132和地址线134的数据。密文线132提供已从ddr存储器读取的数据。此数据可以是密文数据或明文数据,因为任一类型的数据可以存储在ddr存储器中,并且从所述存储器读取。地址线提供与从存储器读取的数据相关联的地址134。
44.区指示符136提供区编号。ddr存储器可以分成多个区,每个区用其自身的密钥保护,或在明文存储的情况下无密钥保护。这允许使用其自身密钥在不同区中的不同处理。因此,区指示符136由iee 110使用以确定适当的解密密钥来用以解密加密数据,或确定数据是明文并且无需解密。
45.密钥存储和区上下文逻辑118接收区指示符136。密钥存储和区上下文逻辑118输出待由解密管线使用的密钥和随机数(如果使用)138。在明文的情况下,密钥存储和区上下文逻辑118可以输出预定密钥值,所述预定密钥值指示从ddr存储器读取的数据是明文或可以是某一未确定值。密钥存储和区上下文逻辑118还产生管线选择信号140,所述管线选择信号140指示iee对于从ddr存储器上读取的数据将使用哪个处理管线。管线中的每个可以具有相关联的“与”门120、122、124,所述“与”门120、122、124接收管线选择信号和有效数据信号130,并且接着启用所选择管线来接收待由所述管线处理的密文132和地址132。
46.在此例子中,示出三个管线:旁路112、aes 114和prince 116。此外,可以仅呈现包括旁路缓冲器和解密管线的两个管线。可替换的是,可以呈现包括一个旁路缓冲器和多个解密管线的三个以上的管线。在此例子中,解密管线包括aes管线114和prince管线116。举例来说,aes管线可以包括20个级,所述20个级耗费20个时钟循环用于输入数据经由管线前进,并且prince管线可以包括15个级,所述15个级耗费15个时钟循环用于输入数据经由管线前进。
47.如上文所提及,因为解密管线与旁路缓冲器可能具有不同长度,所以碰撞可以出现在iee 110的输出处,其中管线中的两个(例如,aes管线114和prince管线116)同时产生输出。为了防止此碰撞,向旁路缓冲器112给出的长度等于最长加密管线(即,在此情况下的aes管线114)的长度。此外,任何其它加密管线在加密管线的末端处添加缓冲器,以产生具有与最长加密管线相同长度的组合管线。在此情况下,prince管线116具有额外的缓冲器142,使得其组合管线与aes管线114(即最长解密管线)具有相同的长度。
48.旁路缓冲器112可以被实施为先进先出缓冲器(fifo)。此fifo接收有效指示符130、密文132(在此情况下,其实际上是明文数据)和地址134,并且将数据通过fifo转移。fifo的每个寄存器是可读取的,使得可以提早读取出旁路缓冲器112中的数据。
49.aes管线114可以使用aes解密处理的各种已知实施方案来实施。aes管线可以包括使数据移动通过管线的fifo,并且在数据移动通过fifo时,针对数据执行在每个级处所需的密码编译处理。
50.同样,prince管线可以使用prince解密算法的各种已知实施方案来实施。prince管线可以包括使数据移动通过管线的fifo,并且在数据移动通过fifo时,针对数据执行在每个级处所需的密码编译处理。此外,prince管线缓冲器142可以是具有提早读取的fifo,就像在旁路缓冲器112中所述,只是较短。
51.具有使每个管线具有相同长度的缓冲器将防止当管线重载时各种管线之间的输出碰撞。举例来说,当从存储器连续地读取出数据时,数据将在每个级处移动经过管线中的仅一个管线。数据准备好在不同级处从不同管线输出。在旁路缓冲器112中,进入此管线的任何数据立即准备好从iee 110输出。在prince管线116中,数据仅在已彻底地解密解密数据的级15之后才准备好输出。其中在aes管线114中,输出仅在已彻底地解密解密数据的级20之后才可获得。
52.如上文所描述,如果迫使明文在从iee 110输出之前前进通过其整个旁路缓冲器112,那么在某些情形下此增加了不必要的时延以输出此数据。存在几个情形,其中明文数据可以绕过在其相关联解密管线中处理的先前读取的加密数据。举例来说,当不存在准备好从解密管线中的任何一个输出的数据时,在所述时间期间可以输出旁路缓冲器中的数据。以下处理可以用于确定从iee 110输出何种数据。
53.在确定从iee 110输出何种数据时,首先针对有效输出数据检查最长解密管线。如果此管线具有数据要输出,那么数据在所述时钟循环变成iee输出。应注意,如果存在超过一个最长(即,相同长度)管线,那么可以对这些最长管线循环地进行评估,直到发现具有有效输出数据的管线为止,或可以并行地评估以确定是否这些管线中的任何一个具有有效输出数据。这些方法中的任一个都起作用,因为对于每个时钟循环仅将一组所读取数据馈送到管线中,这意味着仅一个跨越各种管线的并行级将具有从ddr存储器读取的数据,因此这些最长管线中仅有一个管线在每个时钟循环将具有有效输出数据。如果最长管线不具有有效输出数据,那么针对有效输出数据,以相同的方式对下一个最长解密管线的最末级进行检查。针对所有较短解密管线,可以重复此处理,直到具有有效输出数据的管线可用为止。如果在最末级中的管线中没有一个具有有效数据,那么可以从具有有效数据的旁路缓冲器的最晚级获取来自iee 110的输出数据(即,最早进入管线的数据)。在替代实施例中,下一个最短管线(其中所述管线的长度限定为解密数据所需的时钟循环的数目,并且限定为旁
路缓冲器的长度)。将提供一些例子以描述如何数据可以如何从iee输出。
54.在第一例子中,前五个读取请求使用aes管线114。接着,第六数据读取出现于明文数据中。当aes管线不具有已完全处理的数据时,可以从iee 110直接读取出数据,并且aes管线114将不会具有准备好输出的数据,直到第20个时钟循环为止。在此例子中,将直接读取出由iee接收的任何明文数据,直到aes管线114完成处理其数据为止。当从iee输出明文数据时,还将清除所述明文数据的有效位,从而防止第二次输出所述数据。从第21个时钟循环处开始,并且直到第25个时钟循环,将从aes管线输出数据。因此,如果在第21个时钟循环到第25个时钟循环期间从存储器读取明文数据,那么其将前进通过旁路缓冲器112,直到所述明文数据达到旁路缓冲器的末端为止,或直到其它管线中没有一个具有准备好输出的数据为止。
55.在第二例子中,管线中的每个具有移动通过的各种数据,但在当前时钟循环处,管线中没有一个在第20级中具有数据。在此情形中,具有可以输出的数据的下一个最高级将由iee 110输出。因此,可以输出prince缓冲器142中的数据或旁路缓冲器中的数据。因此,如果旁路缓冲器112在第18级中具有数据,并且prince缓冲器142在第17级中具有数据,那么将从旁路缓冲器110输出数据。如果prince缓冲器142在第16级中具有数据,并且旁路缓冲器在大于第16级的任何级中不具有数据,那么prince管线将从第16级输出数据。如果aes管线114和prince管线116都不具有准备好输出的数据,那么旁路缓冲器112将输出其最高级的数据。当输出数据时,清除所述数据的有效位,从而防止第二次输出所述数据。
56.在替代实施例中,当级中没有一个在第20级中具有有效数据时,接着将选择下一个具有有效数据的最长管线来输出数据。因此,在此实施例中,即使首先接收旁路缓冲器112中的明文数据,prince缓冲器142中准备好输出的有效数据也将比旁路缓冲器112中的数据具有优先权。接着将清除prince输出的有效位。
57.ddr重新排序缓冲器104接收从iee 110输出的数据。在将所接收数据发送到soc接口106之前,ddr重新排序缓冲器104按需要对所接收数据进行重新排序。数据的地址用作次序标签,使得重新排序缓冲器能够识别输出数据的各个块。可以使用ddr重新排序缓冲器104和soc接口106的各种已知实施方案。
58.因为从ddr存储器读取的数据将仅放置在管线中的一个中,所以各种管线可以共享寄存器以简化iee的实施方案,并且这样可以减小实施iee所要求的区域。图2示出在两个管线之间共享寄存器的iee的实施例。如在图1中,所述系统包括ddr接口102、iee 210、ddr重新排序缓冲器104和soc接口106。ddr接口102、ddr重新排序缓冲器104和soc接口106与相对于图1所描述的那些装置相同,并且以相同的方式起作用。从输入和输出的角度来看,iee 210以与iee 110相同的方式起作用,但iee 210使用不同的结构来实现相同的功能。
59.iee 210包括类似于密钥存储和区上下文逻辑118操作的密钥存储和区上下文逻辑218。一个差异在于,密钥存储和区上下文逻辑218产生旁路信号244而不是管线选择信号140。旁路信号244指示从ddr接口接收的数据是否为明文数据。如果所述数据是明文数据,那么处理管线绕过解密处理,并且在无任何改变的情况下将数据从寄存器移动到寄存器。来自ddr存储器的一组给定输入数据的旁路信号值与所述数据一起移动通过寄存器。
60.在图2的例子中,将假设存在两个管线。一个用于明文,并且另一个用于解密从ddr存储器读取的加密数据。应注意,还可以使用此架构实施更多管线,在所述架构中,可以在
功能上扩展旁路信号以指示待在进入管线的数据上使用的解密处理的类型。管线可以包括:寄存器251、252、253、254;多路复用器271、272、273;旁路多路复用器280;输出多路复用器282,和密码编译逻辑261、262、263。如上文所描述,iee 210从ddr接口102接收有效数据标志130、密文132、地址134和区136。将有效数据标志130、密文132和地址134馈送到第一寄存器251。密钥存储和区上下文逻辑218接收区信号136,其中区信号136如上文所描述来操作。密钥存储和区上下文逻辑218产生旁路信号244和与所接收的数据存储在ddr存储器中的区相关联的密钥138。还将旁路信号244和密钥138(如果存在)连同有效标志130、密文132和地址134一起馈送到第一寄存器中。在下一个时钟循环处,将第一寄存器251中的密文输出到密码编译逻辑261、多路复用器271和多路复用器280。还将有效标志130、地址134、旁路244和密钥138从第一多路复用器271输出,并且馈送到第二寄存器252中。还将密钥138馈送到密码编译逻辑261中。
61.密码编译逻辑261接收来自第一寄存器251的密文132,并且处理密文132以执行密文132的解密的一个级。将密码编译逻辑261的输出输入到多路复用器271中。在此例子中,密码编译逻辑261仅根据一个密码编译方案(例如aes或prince)执行加密处理。在其它实施例中,密码编译逻辑261可以能够根据旁路信号指示将哪个加密处理应用于所接收密文的超过一个密码编译方案来执行不同加密处理。
62.从第一寄存器251输出的旁路信号244用于控制第一多路复用器271。如果旁路信号244指示第一寄存器251中的数据是密文,那么第一多路复用器271将密码编译逻辑261的输出输出到下一个寄存器252。如果旁路信号244指示第一寄存器251中的数据是明文,那么第一多路复用器271将从第一寄存器251接收的明文输出到下一个寄存器252。
63.第二寄存器252、第二密码编译逻辑252、第二多路复用器272以与其第一对应部分261、261、271相同的方式操作。对于第三寄存器253、第三密码编译逻辑253和第三多路复用器273同样如此。第四寄存器254接收来自第三寄存器253、第二密码编译逻辑253和第二多路复用器273的输出。
64.针对从ddr存储器读取的数据,输出多路复用器282提供iee 210的输出,所述输出包括有效标志、明文、地址和区信息。输出多路复用器接收来自控制器284的控制信号,所述控制信号指示是否将输出寄存器254中的数据,或是否将输出来自先前寄存器中的一个的旁路数据。如先前论述,如果在最终寄存器254中存在当前有效数据,那么将输出数据,并且控制器284可以基于寄存器中的有效标志确定有效数据的存在。如果最终寄存器中的数据是无效的,即,在此循环中不存在数据,那么控制器284可以确定将改为输出管线中的其它有效数据。基于所述确定,由控制器284将控制信号发送到旁路多路复用器280,以选择从第一寄存器251、第二寄存器252和第三寄存器253接收的输入中的哪个将由旁路多路复用器280输出。将旁路多路复用器280的输出输入到输出多路复用器282中。因此,由输出多路复用器282从控制器284接收的控制信号指示到输出多路复用器282的输入中的哪个将被选择并且从iee 210输出。优先编码器用于始终选择最旧旁路数据以用于输出。当输出旁路时,清除有效位,从而防止再次输出所述旁路。
65.在图2中,仅示出三个级以简化描述。在典型实施方案中,管线可以包括任何数目个级,例如相对于上文图1所描述的20个级。图2的方法具有简化iee 210的整体结构以使得一个共享管线可用以将数据移动通过管线的优势。这是可能的,因为即使当存在多个管线
时,仅在跨越管线的每个级的一个管线中存在数据。
66.图3示出使用具有旁路的aes管线的详细实施方案。iee 300包括aes管线302、旁路多路复用器304、上下文fifo 306、优先编码器308、输出多路复用器310、“与”门312、314、318和“或”门318。如前文所述,iee300接收从存储器读取的旁路标志344、有效标志330、地址334和数据332。从存储器读取的数据332可以是加密数据或明文数据。可以由密钥存储和区上下文逻辑来基于ddr存储器中存储数据332的区产生旁路标志344。
67.aes管线302接收数据332,并且使用由密钥存储和区上下文逻辑提供的密钥来解密数据。应注意,可以将aes管线302替换为使用不同解密方案的不同管线。将aes管线302的输出提供到输出多路复用器310的第一输入。
68.从ddr存储器读取的旁路标志344、有效标志330、地址334和数据332还全部输入到上下文fifo 306中,在所述上下文fifo 306中,数据可以输入到第一寄存器中。通过每个时钟循环,上下文fifo 306中的数据向前前进通过上下文fifo 306中的系列寄存器。上下文fifo 306还输出来自最后一个寄存器并且提供到输出多路复用器310的第一输入的旁路标志、有效标志和地址。
69.旁路多路复用器304具有各自连接到上下文fifo 306中的寄存器中的一个的输入。旁路多路复用器304接收控制信号head_ptr,所述控制信号head_ptr选择输入中的一个作为旁路多路复用器304的输出。控制信号还可以称为级指针。将来自所选寄存器的包括旁路标志、有效标志、地址和数据的输出提供到输出多路复用器310的第二输入。
70.优先编码器308包括以下逻辑,所述逻辑确定何时应随后将来自上下文fifo 306的数据经由旁路多路复用器304输出到输出多路复用器310,以及应随后将来自上下文fifo 306的哪些数据经由旁路多路复用器304输出到输出多路复用器310。“与”门312连接到上下文fifo 306中的寄存器。“与”门312中的每个从上下文fifo 306中的每个相应寄存器接收有效标志和旁路标志。当输入旁路标志和有效标志为“1”时,即,当寄存器中的数据是有效的,并且寄存器中的数据是明文数据时,“与”门312的输出将为“1”。优先编码器308可以接着设置head_ptr值以指示具有有效旁路数据的最高编号寄存器。这将使得旁路多路复用器304选择并输出来自上下文fifo 306中所指示的寄存器的数据。还将head_ptr值提供到上下文fifo 306的clr_ptr输入。上下文fifo 306的clr_valid输入还接收clear_en标志,所述clear_en标志指示待清除由head_ptr指示的寄存器,因为数据将从iee输出,所以随着所述寄存器已自iee写入,继续向前需要忽略所述寄存器。因此,将由head_ptr指示的寄存器中的有效指针设置为无效的。优先编码器308还产生指示head_ptr是有效的id_valid标志,即,上下文fifo 306中存在至少一个值准备好输出。
[0071]“与”门314从最后一个寄存器接收旁路标志和有效标志。当旁路标志是无效的并且数据是有效的时,即,当aes数据是最后一个级中的有效数据时,“与”门314用有效标志对反向旁路标志进行“与”运算,因此“与”门314的输出为“1”。
[0072]“与”门316产生clear_en标志。“与”门从优先编码器308接收id_valid和“与”门314的输出作为输入。当“与”门314的输出为“0”并且id_valid为“1”时,即,当aes数据是无效的时,并且当id_valid标志指示head_ptr是有效的时,“与”门316的输出为“1”。在此情况下,应清除由head_ptr指示的寄存器中的数据。
[0073]“或”门318产生控制输出多路复用器310的aes有效标志。当aes有效标志指示有效
数据时,输出多路复用器310接着在第一输入处选择并输出从aes管线302接收的数据和来自上下文fifo 306中的最后一个寄存器的所述数据相关联的地址、旁路和有效数据。如果aes有效标志不指示有效数据,那么输出多路复用器310选择并输出在第二输入处接收的来自旁路多路复用器304的输出的数据。“或”门接收id_valid标志和“与”门314的输出作为输入。当aes数据基于上下文fifo 306的最后一个寄存器中的旁路标志和有效标志而指示为有效的时,或当id_valid是无效的时,aes有效标志将是有效的。输出多路复用器310提供iee 300的输出,所述输出包括旁路标志346、有效标志340、地址340和数据338,其中数据338是明文数据。
[0074]
已经描述各种实施例,其考虑到当恰当条件出现时,明文数据绕过iee中的加密数据。如上文所描述,数据在每个时钟循环进入管线(如果存在超过一个)中的一个,并且数据在每个时钟循环从管线中出来。本文所描述的实施例防止iee中的停止和碰撞。如所描述,使管线中的每个具有与最长管线相等的长度。当较长管线(即,解密管线)不具有待输出的有效数据时,可以改为输出来自较短管线的数据,由此绕过其它各种管线中的数据,并且最小化通过管线的明文数据的时延。
[0075]
本文所公开的iee可以为控制读取来自存储器的数据的存储器控制器的一部分。对正读取的数据进行加密并且将其存储于存储器的事实将对终端用户透明,同时存储器控制器解密加密数据,并且将明文数据呈现给用户。此外,还可以针对将数据写入到ddr存储器执行此处理,其中明文数据可以在加密管线中加密数据之前写入到存储器。
[0076]
尽管上文所描述的实施例使用加密/解密处理,但所述实施例可以应用于在不同数据管线上操作的任何类型的并行处理管线。举例来说,可以存在具有不同时延的两个不同处理管线,并且在每个时钟循环接收包括数据、标签、有效信号和管线选择信号的信息块。管线选择信号用于将信息块馈送到所选管线中。接着,可以在每个时钟循环(即,如果存在可用的有效数据)从数据处理引擎输出信息块,其中当存在可用的有效数据时,所述信息块来自较长管线。否则,如果存在可用的有效数据,那么信息块来自较短管线。
[0077]
本领域的技术人员应了解,本文中的任何框图表示体现本发明的原理的说明性电路系统的概念视图。
[0078]
尽管已特定参考各种示例性实施例的特定示例性方面详细地描述各种示例性实施例,但应理解,本发明能够容许其它实施例,且能够容许在各种显而易见的方面修改本发明的细节。因此,上述公开内容、描述和图式仅用于说明目的并且不以任何方式限制本发明,本发明的范围仅由权利要求书限定。因此,前述公开内容、描述和图式仅出于说明性目的并且不以任何方式限制本发明,本发明仅由权利要求书限定。
技术特征:
1.一种被配置成处理从存储器读取的数据的存储器控制器中的内嵌加密引擎,其特征在于,包括:第一数据管线,所述第一数据管线被配置成:接收为加密数据的数据、所述加密数据的次序标签和第一有效性标志;解密来自所述存储器的所述加密数据;并且输出解密明文数据;第二数据管线,所述第二数据管线被配置成接收为明文数据的数据、所述数据的次序标签和第二有效性标志,其中所述第二数据管线包括缓冲器,使所述第二数据管线具有与所述第一数据管线相同的长度;输出多路复用器,所述输出多路复用器被配置成选择并输出来自所述第一管线或所述第二管线的数据;以及控制逻辑,所述控制逻辑被配置成控制所述输出多路复用器,其中所述控制逻辑被配置成在所述第一管线不具有可用的有效输出解密明文数据时,输出来自所述第二管线的有效数据。2.根据权利要求1所述的内嵌加密引擎,其特征在于,另外包括密钥存储和区上下文逻辑,所述密钥存储和区上下文逻辑被配置成基于所述存储器的存储所述加密数据的区来将密码编译密钥提供到所述第一管线。3.根据权利要求1所述的内嵌加密引擎,其特征在于,另外包括第三管线,所述第三管线包括缓冲器,使所述第三数据管线具有与所述第一数据管线相同的长度,并且所述第三管线被配置成:接收为加密数据的数据、所述数据的次序标签和第三有效性标志;解密来自所述存储器的所述加密数据;并且输出解密明文数据,其中输出多路复用器被配置成选择并输出来自所述第一管线、所述第二管线或所述第三管线的数据。4.根据权利要求1所述的内嵌加密引擎,其特征在于,另外包括:连接到所述内嵌加密引擎的输入的存储器接口;以及连接到所述内嵌加密引擎的所述输出的重新排序缓冲器,其中所述次序标签识别输出数据的乱序块。5.一种被配置成处理从存储器读取的数据的存储器控制器中的内嵌加密引擎,其特征在于,包括:先进先出缓冲器(fifo),所述先进先出缓冲器(fifo)被配置成接收从所述存储器读取的所述数据、与所述数据相关联的有效性标志、所述数据的地址和与所述数据相关联的旁路标志,其中所述旁路标志指示所述数据是明文数据或加密数据;密码编译管线,所述密码编译管线被配置成:接收从所述存储器读取的所述数据;并且对来自所述存储器的数据执行密码编译函数;连接到所述fifo的每个级的旁路多路复用器,所述旁路多路复用器被配置成基于级指针,从所述fifo的所选级输出所述数据以及与所述数据相关联的所述有效性标志、旁路标
志和地址;输出多路复用器,所述输出多路复用器被配置成基于第一控制信号,选择并输出来自所述旁路多路复用器或所述密码编译管线的数据;以及控制逻辑,所述控制逻辑被配置成控制所述输出多路复用器和所述旁路多路复用器,并且产生所述级指针和所述第一控制信号。6.根据权利要求5所述的内嵌加密引擎,其特征在于,另外包括密钥存储和区上下文逻辑,所述密钥存储和区上下文逻辑被配置成基于所述存储器的存储所述数据的所述区来产生与所述数据相关联的所述旁路信号。7.根据权利要求5所述的内嵌加密引擎,其特征在于,控制逻辑包括优先编码器,所述优先编码器被配置成:基于来自所述fifo的每个级的所述旁路标志和有效性标志来接收输入;并且产生所述级指针,其中所述级指针指示所述fifo的具有可用于输出的所接收有效输入数据的所述级。8.一种被配置成处理从存储器读取的数据的存储器控制器中的内嵌加密引擎,其特征在于,包括:具有输出寄存器的先进先出缓冲器(fifo),所述先进先出缓冲器(fifo)被配置成接收从所述存储器读取的所述数据、与所述数据相关联的有效性标志、所述数据的地址和与所述数据相关联的旁路标志,其中所述旁路标志指示所述数据是明文数据或加密数据,所述fifo的每个级包括:寄存器;连接到所述寄存器的密码编译逻辑;以及多路复用器,所述多路复用器产生所述级的所述输出,并且接收来自所述寄存器和所述密码编译逻辑的输入,其中所述输出是基于所述旁路标志而选择;连接到所述fifo的每个级的旁路多路复用器,所述旁路多路复用器被配置成基于级指针,从所述fifo的所选级输出所述数据以及与所述数据相关联的所述有效性标志、旁路标志和地址;输出多路复用器,所述输出多路复用器被配置成基于第一控制信号,选择并输出来自所述旁路多路复用器或所述fifo的数据;以及控制逻辑,所述控制逻辑被配置成控制所述输出多路复用器和所述旁路多路复用器,并且产生所述级指针和所述第一控制信号。9.根据权利要求8所述的内嵌加密引擎,其特征在于,另外包括密钥存储和区上下文逻辑,所述密钥存储和区上下文逻辑被配置成基于所述存储器的存储所述数据的所述区来产生与所述数据相关联的所述旁路信号。10.根据权利要求8所述的内嵌加密引擎,其特征在于,所述级指针指示所述fifo的可用于输出的最早所接收有效输入数据的所述级。
技术总结
各种实施例涉及被配置成处理从存储器读取的数据的存储器控制器中的内嵌加密引擎,所述内嵌加密引擎包括:被配置成接收为明文数据的数据和第一有效性标志的第一数据管线;具有与所述第一数据管线相同的长度的第二数据管线,所述第二数据管线被配置成:接收为加密数据的数据和第二有效性标志;解密来自所述存储器的所述加密数据并且输出解密明文数据;输出多路复用器,所述输出多路复用器被配置成选择并输出来自所述第一管线或所述第二管线的数据;以及控制逻辑,所述控制逻辑被配置成控制所述输出多路复用器,其中所述控制逻辑被配置成在所述第二管线不具有可用的有效输出解密明文数据时,输出来自所述第一管线的有效数据。据。据。
技术研发人员:托马斯
受保护的技术使用者:恩智浦有限公司
技术研发日:2023.01.19
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/