首页> 中国专利> 用于减小加密延迟时间对标准通信的影响的方法和系统

用于减小加密延迟时间对标准通信的影响的方法和系统

摘要

提供了可在系统中使用以减小与对数据加密相关联的延迟时间对不加密数据的影响的方法和系统。可以独立发送安全和不安全数据。因而,可以将不安全数据继续转发(例如,到目标写入缓冲器),而不等待对先前发送的安全数据进行加密。因此,与使用用于安全和不安全数据的共同数据路径的传统系统相比,可以更早地使不安全数据能够用于随后的处理。

著录项

  • 公开/公告号CN1743993A

    专利类型发明专利

  • 公开/公告日2006-03-08

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200510070214.7

  • 申请日2005-05-11

  • 分类号G06F1/00(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人邸万奎;黄小临

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 16:59:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-16

    未缴年费专利权终止 IPC(主分类):G06F 1/00 专利号:ZL2005100702147 申请日:20050511 授权公告日:20080430

    专利权的终止

  • 2008-04-30

    授权

    授权

  • 2006-05-03

    实质审查的生效

    实质审查的生效

  • 2006-03-08

    公开

    公开

说明书

技术领域

本发明一般地涉及数据加密,并特别涉及用于减少与有选择地加密部分数据相关联的延迟时间的方法和装置。

背景技术

片上系统(SOC)通常在单个芯片上包括一个或多个集成的处理器内核、诸如高速缓冲存储器的某种类型的嵌入式存储器、以及诸如存储控制组件和外部总线接口的外围接口,以便形成完整的(或近乎完整的)系统。

作为增强的安全特征的一部分,一些SOC在将数据存储在外部存储器中之前将其某些部分加密。对SOC增加这种加密可以增加有价值的益处,例如防止黑客获得受版权保护的程序如视频游戏的指令(instruction)、或者可用来通过反向工程(reverse engineering)确定这种指令的数据。然而,因为传统加密方案通常使要加密的数据和不加密的数据(不加密数据)通过共同的顺序数据路径流出,所以增加加密通常影响系统性能。因此,不加密数据通常经历与加密数据相同的延迟时间。

该延迟时间可能给不加密数据的存储增加相当大的延迟。此外,该延迟时间可能在加密先前的数据时阻碍对不加密数据随后的存储。因此,需要用来使加密延迟时间导致的对不加密数据的性能影响最小化的机制。

发明内容

本发明一般地提供这样的方法和装置,其可以利用加密存储区域提高系统性能,同时保证将加密和不加密数据正确写入到其各自的存储器位置。

附图说明

因此,通过参考在附图中示出的本发明的实施例,可以得到获得并可详细理解本发明的上述特征、优点和目的的方式,对在上面简要概括的本发明的更具体的描述。

然而,应当注意,附图仅图示了本发明的典型实施例,从而不应被视为限制其范围,这是因为本发明可接受其它同等有效的实施例。

图1示出可使用本发明的实施例的包括中央处理单元(CPU)的示例系统。

图2是根据本发明一个实施例的CPU的组件的方框图。

图3是根据本发明一个实施例的CPU的加密数据路径的方框图。

图4是根据本发明一个实施例的用于减少与数据加密相关联的延迟时间的示例操作的流程图。

具体实施方式

可以在多种系统中使用本发明的实施例,以减小与对数据进行加密相关联的延迟时间对处理不加密数据的影响。可以独立地发送安全(要加密)和不安全(不加密)数据,而不是将安全和不安全数据都沿着共同的数据路径发送。因而,可以将不安全数据继续转发(例如,到目标写入缓冲器),而不等待对先前发送的安全数据加密。因此,与对安全和不安全数据使用共同数据路径的传统系统相比,可以更早地使不安全数据对随后的处理可用。

在以下描述中,对本发明的实施例进行介绍。然而,应当理解,本发明不限于所描述的特定实施例。而是,以下特征和要素的任何组合,不管其是否涉及不同的实施例,均被视为实施和实践本发明。此外,在各种实施例中,本发明提供了相对于现有技术的众多优点。然而,尽管本发明的实施例可获得相对于其它可能方案和/或现有技术的优点,但特定优点是否由给定实施例获得不是对本发明的限制。因而,以下方面、特征、实施例和优点仅仅是说明性的,并且,除非明确提出,否则不应被视为所附权利要求的要素或限制。

示例系统

现在参考图1,图示了可使用本发明的实施例的包括中央处理单元(CPU)110的示例计算机系统100。如图所示,CPU110可包括一个或多个处理器内核112,每个处理器内核可包括任何数量的不同种类的功能单元,包括但不限于算术逻辑单元(ALU)、浮点单元(FPU)和单指令多数据(SIMD)单元。使用多个处理器内核的CPU示例包括可从纽约阿芒克(Armonk,NY)的国际商业机器公司(IBM)获得的CPU的PowerPC线(line)。

如图所示,每个处理器内核112可具有对其自己的初级(primary)(L1)高速缓存114的访问权,并且可选地可以共享更大的二级(secondary)(L2)高速缓存116。通常,可以将由处理器内核112使用的数据副本本地存储在L2高速缓存116中,从而避免对外部主存储器140的相对较慢的访问或减少所述访问的数量。类似地,可以将处理器内核112经常使用的数据存储在其L1高速缓存114中,从而避免对L2高速缓存116的相对较慢的访问或减少所述访问的数量。

CPU110可通过系统或前端总线(FSB)128与外部设备如图形处理单元(GPU)130和/或存储控制器136通信。CPU110可包括FSB接口120,以便经由FSB128(通过L2高速缓存)在外部设备和处理内核112之间传递数据。GPU130上的FSB接口132可具有与FSB接口120相似的组件,并配置为与一个或多个图形处理器134、输入输出(I/O)单元138和存储控制器136(其被说明性地示出为与GPU130集成)交换数据。

如图所示,FSB接口120可包括物理层122、链路层124和事务层126。物理层122可包括用于实施通过FSB128接收和发送数据所必需的硬件协议的硬件组件。物理层122可与链路层124交换数据,其中,链路层124可以将从事务层126接收的或要发送到事务层126的数据格式化。如图所示,事务层126可以经由核心总线接口(CBI)118与处理器内核112交换数据。

如前所述,作为增强的安全特征的一部分,CPU110可以在将数据存储在主存储器140中之前将在此称为安全数据的某些部分的数据加密(这种数据加密部分被说明性地示出为主存储器140中的受保护数据142)。因此,CPU110可包括安全组件150,用于在通过FSB接口120经FSB128传送之前将这种数据加密。当稍后恢复(retrieval)加密数据时,也可以在将该加密数据传递到L2高速缓存116以供一个或多个处理器内核112使用之前,使用安全组件150将其解密。如将在下面更详细地描述的,对于某些实施例,CPU110可包括数据流控制电路,其被配置为把在存储在主存储器140中之前要加密的安全数据独立地发送到安全组件150以便加密,同时绕过(绕开)该安全组件而发送不安全数据。

如图2所示,可以建立多个数据流(也称作虚拟信道),以在处理器内核112和外部设备之间交换数据。建立分离的流可以改善整个系统性能,例如,允许一个处理内核传输数据而另一个处理内核处理数据(而不传输数据)。如图所示,多个流可以共享共同的缓冲池(buffer pool)210,其中,每个流使用缓冲池210中它自己的部分,从而实际上建立分离的缓冲器211-217。

对于某些实施例,可以通过FSB来发送数据作为分组。因此,链路层124可包含诸如被配置为将从事务层126接收的数据编码为分组或“分组化”的分组编码器233、以及将从物理层122接收的数据分组进行解码的分组解码器234的电路。如图所示,物理层122可包括分别用于生成和接收这种分组的串行化器243和解串行化器244。通常,分组解码器234将包括分组验证组件235,其被配置为例如通过比较对所接收的数据计算的校验和与该数据分组中包含的校验和,来检查所接收的数据分组的数据传输错误。

分组解码器234可将所接收的数据转发到一个或多个接收缓冲器215-217。如图所示,诸如发送到缓冲器215和216的数据请求和响应命令的一些数据可以不加密,从而可被直接传递给高速缓存116。另一方面,响应数据可包括加密和不加密数据。尽管可以将不加密数据直接传递给高速缓存116,但必须首先将加密数据251解密。因此,可以将加密数据251发送到解密引擎154。

解密引擎154可以将加密数据251解密,并将解密的数据252传回。如图所示,可以使用多路复用器电路253将解密的数据252与不加密数据合并,并将其传递给高速缓存116。例如,当可获得解密的数据252以将其传递给高速缓存116时,解密引擎154可以向多路复用器电路253断言(assert)信号。对于某些实施例,事务层126可包括被配置为在接收和验证整个数据分组之前将所接收的加密数据251通过管道传递给解密引擎154的逻辑。在同此提交并通过引用而整体合并于此的、标题为“Low-Latency Data DecryptionInterface(低延迟时间数据解密接口)”的公共转让且同样未决的申请(代理人文档第ROC920040013号)中,对这种逻辑进行了详细描述。

减小加密延迟时间对标准通信的影响

如前所述,在将安全数据外部存储在例如主存储器140中之前将其加密。因此,如图2所示,FSB事务层126可包括数据流控制电路260,其被配置为将未加密的安全数据254发送到加密引擎152。然后,加密引擎152可返回数据流控制电路260可随后转发到写入缓冲器213的加密数据256。然后,分组编码器233可以从写入缓冲器213访问该加密数据,并通过串行化器243生成要通过FSB发送出去的数据分组。

数据流控制电路260可被配置为接收和发送安全和不安全数据。尽管加密操作可能涉及相当大的延迟时间,但是可以将数据流控制电路260配置为尽力独立发送安全和不安全数据,以减小加密延迟时间对不安全数据的影响。如图所示,实际上,数据流控制电路260提供从CBI到写入缓冲器213的不同数据路径,其中,安全数据沿第一路径(通过加密引擎152)发送,而不安全数据沿第二路径发送。

图3图示数据流控制电路260的一个实施例,其可用来通过多路复用器262-265(MUX0-3)的布置独立发送安全和不安全数据。如图所示,数据流控制电路260可以从CBI接收例如在处理器内核发出的存储指令中包含的数据。如图所示,地址和命令数据可由说明性地(例如通过控制多路复用器262-265的信号)控制数据流控制电路260的操作的其它组件如命令解码器270、安全数据控制电路272和数据缓冲器写入控制器273接收。

可以同时参考图3和图4来描述数据流控制电路260通过多路复用器262-265的操作,其中,图4图示了用于独立发送安全和不安全数据的示例操作400。为了帮助理解,将图4示出的操作之一涉及的图3示出的一个或多个多路复用器在操作下面列出。在步骤402,操作400以接收存储指令中包含的数据开始。如图所示,数据流控制电路260可包括位于各种位置的锁存电路261,以便临时保存所接收的数据,直到所需的资源可用为止。

在步骤404,确定所接收的数据是安全的还是不安全的。可以使用任何合适的技术来确定数据是否是安全的。例如,可以为安全数据预留特定的地址范围。因此,安全数据控制器272可以通过检查包含该数据的指令的地址来识别安全数据。作为另一示例,可以通过页表项(page table entry)中的一个或多个位设置来识别安全数据,所述位设置指示例如对应的高速缓存线是安全的。

如果数据是安全的,则在步骤406经过加密引擎发送数据。如图3所示,可以将安全数据通过MUX0 262发送到加密引擎,其中,可以由安全数据控制电路272生成的信号来控制MUX0 262。换句话说,响应于(例如,基于数据将被写入的地址)将数据识别为安全的,安全数据控制电路272可生成mux控制信号,以便将数据发送给加密引擎152。在某些情况下,可以包括可选的锁存电路261,以支持延迟时间大于传递数据分组的时间的加密引擎。

一旦从加密引擎152返回了加密数据,如果步骤408确定包含安全数据的存储指令目标所指的写入缓冲器213可用(即,该缓冲器尚未被写入),则在步骤412,将加密数据发送到该可用的写入缓冲器。换句话说,用于缓冲的阵列通常只有单个写入端口。因此,在任何给定时间,只有一组写入数据可以通过。如图所示,可以将来自加密引擎152的加密数据经由MUX2264和MUX3 265直接发送到写入缓冲器213。换句话说,不管加密过程涉及的延迟时间量如何,都可以在对标准数据流有很小的影响或者没有影响的情况下,将加密数据合并回标准(例如未加密的)数据流中。

然而,如果目标写入缓冲器213不可用(即,当前该缓冲器正被写入),则在步骤410,可以将加密数据发送到保持缓冲器274,在那里,可以保持加密数据,直到缓冲器213可用为止。目标写入缓冲器213可能因数据流控制电路260可能正在将其它加密数据或不加密数据发送到目标写入缓冲器213而不可用。可以将加密数据从加密引擎152经由MUX1 263发送到数据保持缓冲器274。如图所示,到控制MUX1-3 262-264的信号可由数据缓冲器写入控制电路273生成,其中,数据缓冲器写入控制电路273可以监控写入缓冲器213的可用性。换句话说,数据缓冲器写入控制电路273可以在保持缓冲器274中保持加密数据,直到检测到通向写入缓冲器的通信的间隙为止。一旦检测到这一间隙,就可以将保持缓冲器274中的数据写入到写入缓冲器213中。

回到步骤404,如果数据流控制电路260接收到的数据是不安全的,那么如果在步骤414确定目标写入缓冲器213可用,则在步骤418,可以将该不安全数据直接发送到目标写入缓冲器213。如图所示,可以将不加密数据经由MUX2 264和MUX3 265直接发送到写入缓冲器213。如果目标写入缓冲器213不可用,则在步骤416,可以将不安全/不加密数据发送到保持缓冲器274,在那里,可以保持该不安全/不加密数据,直到写入缓冲器213可用为止。如前所述,可以将数据从数据保持缓冲器274经由MUX3 265发送到写入缓冲器213。

指令排序

如在此描述的,通过独立发送安全和不安全数据,即使来自先前发送的存储指令的安全数据正由加密引擎152加密,也可以在因加密延迟时间而导致的影响很小或者没有这种影响的情况下,将不安全数据发送到写入缓冲器。使用在此描述的电路,可以将加密数据合并回标准通信流,而不管加密所需的延迟时间周期的数量。

然而,作为结果,数据可以按照与其流入流控制电路260不同的页序流出数据流控制电路260。换句话说,随后发出的、包含不安全数据的存储指令可能在先前发出的、包含必须首先被加密的安全数据的存储指令之前退出流控制电路。对于某些实施例,这些指令可能被无顺序地处理,而对于其它实施例,可能施行严格的排序。

无论怎样,都可以保持包含被传递到加密引擎的数据的存储指令的地址,以确保检查包含共同地址(例如,地址冲突)的存储和加载指令的适当系统顺序。换句话说,如果在修改某地址处的数据的存储指令之后跟随着从相同地址读取数据的加载指令,则可以将逻辑配置为确保在加载指令之前发出存储指令,以避免加载指令读取无效数据。对于某些实施例,可以将数据缓冲器写入控制器273配置为检测地址冲突,并发信号通知命令解码器,所述命令解码器可以例如重新安排加载指令。

根据实施例,在此描述的流控制逻辑可被配置为在第一组加密数据返回之前处理不同数量的存储命令。对于某些实施例,可以将流控制逻辑简化为一次只允许一个存储指令通过加密路径,这可以将所述逻辑简化(例如,需要较小的缓冲器),并且对于加密带宽需求低的应用是可以接受的。对于其它实施例,更复杂的电路可以为要通过加密路径发送的更大数量的存储指令留有余地,这可用来更充分地使上游逻辑免受加密路径的性能限制的影响。

结论

通过独立发送安全数据(要加密)和不安全数据(不加密),可以将存储指令中包含的安全数据发送到加密引擎,而不阻碍随后发出的存储指令中包含的不安全数据。随后可以将从加密引擎返回的加密的安全数据与不安全数据合并回去。从而可以减小与传统加密机制相关联的时间延迟对不安全数据的影响。

尽管上文针对本发明的实施例,但可以在不脱离本发明的基本范围的情况下,设计本发明的其它和另外的实施例,而本发明的范围由所附权利要求确定。

相关申请交叉引用

本申请涉及题为“Low-Latency Data Decryption Interface(低延迟时间数据解密接口)”的公共转让且同样未决的申请(代理人文档第ROC920040013号),在此一同提交,并通过引用而将其全部合并于此。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号