当前位置: 首页 > 专利查询>辉达公司专利>正文

公平利用多个上下文共享加密硬件制造技术

技术编号:38888253 阅读:10 留言:0更新日期:2023-09-22 14:14
本发明专利技术涉及公平利用多个上下文共享加密硬件。支持多个上下文共享加密硬件的公平性的设备、系统和技术。加速器电路包括具有AES

【技术实现步骤摘要】
公平利用多个上下文共享加密硬件


[0001]至少一个实施例涉及用于执行和促进机密数据传送的处理资源。例如,至少一个实施例涉及用于公平利用多个上下文共享加密(cryptographic)硬件的硬件电路。

技术介绍

[0002]加速器电路包括直接存储器传送(DMA)电路以独立于中央处理单元(CPU)来访问系统存储器。DMA电路还可用于存储器到存储器的复制或在存储器内或存储器之间的数据移动。当数据需要被保护时,DMA电路可以实现加密电路来加密和解密正从安全存储器复制和复制到安全存储器的数据。一些加密算法使用需要对数据进行顺序分析的顺序操作。这些顺序操作为多个客户共享加密电路带来了一些挑战,例如当数据中心中的加速器电路在多个用户之间共享时。一些实现对传送大小进行了限制以支持跨使用进行仲裁的公平性。这并不理想,因为一些传送大小非常大,而一些传送大小相比之下非常小。或者,一些实现为加密数据流中的每个块创建认证标签并使用单独的初始化向量(IV)。然而,这增加了利用加密硬件的内存占用。
附图说明
[0003]图1是根据至少一些实施例的、具有加速器电路的计算系统的框图,该加速器电路包括支持加速器电路的多个用户之间的或单个应用程序中的或属于单个用户的多个数据流之间的公平性的复制引擎;
[0004]图2是根据至少一些实施例的、加速器电路的复制引擎的框图;
[0005]图3是根据至少一些实施例的、调度要由DMA电路执行的单个数据传送的流程的功能图;
[0006]图4图示了根据至少一些实施例的、具有多个推送缓冲区的第一应用程序和具有单个推送缓冲区的第二应用程序;
[0007]图5A

5B示出了根据至少一些实施例的、在多个时间片期间的DMA引擎的处理流程;
[0008]图6是根据至少一些实施例的、用于部分传送的加密操作的流程图;
[0009]图7是根据至少一些实施例的、用于部分传送的解密操作的流程图;
[0010]图8是根据至少一些实施例的、调度部分传送以支持多个应用程序之间的公平性的方法的流程图;以及
[0011]图9是根据至少一些实施例的、具有加速器的计算系统的框图,该加速器包括支持计算系统的多个用户或多个数据流之间的公平性的复制引擎。
具体实施方式
[0012]如上所述,DMA电路可以用于存储器到存储器的复制或存储器内的数据移动,并且可以包括用于保护数据的加密硬件。使用顺序操作的顺序加密算法为多个客户端共享加密
硬件带来了一些挑战。特别是,高级加密标准伽罗瓦计数器模式(AES

GCM)是一种经过认证的加密算法,该加密算法执行数据流的加密和认证两者。由于需要被同时加密的每16个字节要求128位乘法器,AES

GCM电路的硬件的实现非常昂贵。AES

GCM是一种顺序操作,要求顺序分析数据来计算GHASH函数。单个AES密钥K用于加密数据和获得经认证的数据。GCM用来产生消息认证码的组件称为GHASH。如果多个用户企图利用AES

GCM硬件引擎,则由于块计数器、初始化向量(IV)、密钥(KEY)和GHASH需要状态追踪,一个用户的操作在另一个用户的操作被序列化和完成之前被序列化并完成。这并不能保证用户之间的任何公平性,因为一个用户的一次传送可能比另一个用户的另一次传送大得多。此外,如果单个用户或应用程序企图将AES

GCM硬件引擎用于属于该用户或应用程序内的多个加密流,则由于块计数器、IV、密钥和GHASH需要状态跟踪,一个加密流的操作在另一个加密流的操作被序列化和完成之前被序列化并完成。这并不能保证应用程序中的多个加密流的任何公平性。
[0013]本公开的多个方面和实施例通过提供将数据传送拆分成一组部分传送(或部分)(例如,8KB)的调度器电路来解决这些挑战以及其他挑战,其中每个部分传送具有固定大小,并且具有在上下文切换到另一个应用程序启动之前将被完成的要求。复制引擎(CE)可以使用第一上下文在一时间段(例如,直到发生时间片超时)为第一应用程序顺序地执行一组部分传送。CE在该应用程序的安全存储器中存储一个或更多个用于加密或解密的数据(例如,散列键、块计数器等),该数据是根据最后部分传送(例如,在时间片超时之前完成的最后部分传送)计算得出的。IV值在整个单次复制中不会改变,并且计数器被附加到IV并每一指定块增加一次。例如,IV可以是96位的,计数器可以是每16字节块增加一次的32位计数器。当由CE恢复应用程序的数据传送(例如,对于随后的时间片)时,用于加密或解密的一个或更多个数据被检索并使用。CE在第二时段使用检索到的值顺序执行剩余的部分传送(例如,直到另一个时间片超时)。一旦完成所有部分传送,CE存储或输出在该组部分传送的最后部分传送中计算的认证标签。以这种方式,加速器电路支持多个上下文共享加密硬件的公平性。加速器电路在某些情况下可以保证多个上下文共享加密硬件的公平性。加速器电路可以是图形处理单元(GPU)、深度学习加速器(DLA)电路、智能处理单元(IPU)、神经处理单元(NPU)、张量处理单元(TPU)、神经网络处理器(NNP)、数据处理单元(DPU)、视觉处理单元(VPU)、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。加速器电路可以通过提供加速核心深度学习操作的构建块来解决神经网络推理阶段的计算需求。例如,深度学习加速器可用于加速不同的神经网络,例如卷积神经网络(CNN)、递归神经网络(RNN)、全连接神经网络等等。
[0014]加速器电路可以由耦合到加速器电路的主机中央处理单元(CPU)调度。或者,加速器电路可以由固件在本地进行调度以确保最小延迟。加速器电路可用于这些神经网络中不同类型的层,例如用于卷积的固定功能引擎、激活函数、池化、批量归一化等。应该注意,从算法的角度来看,神经网络可以用一组层(在本文中称为“原始层”)来指定,例如偏置和批量归一化。这些原始层可以被编译或转换成另一组层(在本文中称为“硬件层”),其中每个硬件层被用作用于调度以在加速器电路上执行的基本元素。原始层和硬件层之间的映射可以是m:n,其中m是原始层数,n是硬件层数。例如,在神经网络中,原始层偏置、批量归一化和局部响应归一化(LRN),例如整流线性单元(ReLU),可以被编译到一个硬件层中。在这种情况下,m:n是3:1。每个硬件层都可以由加速器电路的用于执行操作的基本硬件指令来表示,
并且每个层都可以通过存储器接口与另一层通信。例如,可以由DLA电路中的第一固定功能引擎执行第一层(第一层接收输入张量),对输入张量执行操作以生成输出张量,并将输出张量存储在系统存储器中,例如耦合到加速器的动态随机存取存储器(DRAM)。第二固定功能引擎可以执行第二层,第二层从存储器中接收来自第一层的输出张量作为第二输入张量,对第二输入张量执行操作以生成第二输出张量,并将第二输出张量存储在DRAM中。每次通信都会在存储器接口中引入张量读操作的和张量写操作。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加速器电路,包括:安全存储器;调度器电路;以及直接存储器访问DMA电路,其耦合到所述调度器电路和所述安全存储器,其中所述DMA电路包括加密电路,所述加密电路实施经认证的加密算法来加密从所述安全存储器检索的数据或解密接收到的将被存储在所述安全存储器中的数据,其中所述调度器电路用于:从第一应用程序接收第一大小的第一数据传送的第一描述符,所述第一描述符指定所述安全存储器中对应于所述第一应用程序的第一索引;以及将所述第一数据传送拆分为第一组部分,每个部分小于或等于所述第一大小并且需要在上下文切换到另一个应用程序之前完成执行;其中所述DMA电路用于:在第一时段期间,使用与所述第一应用程序相关联的第一初始化向量IV和第一加密密钥顺序地执行所述第一组部分的第一子集,并在指定的第一索引处将第一计算的散列键和第一块计数器存储在所述安全存储器中;以及在所述第一时段随后的第二时段期间,使用在指定的第一索引处存储在所述安全存储器中的所述第一计算的散列键和所述第一块计数器顺序地执行所述第一组部分的第二子集,并存储与所述第一数据传送相关联的第一认证标签。2.根据权利要求1所述的加速器电路,其中:所述调度器电路进一步用于:从第二应用程序接收第二大小的第二数据传送的第二描述符,所述第二描述符指定所述安全存储器中对应于所述第二应用程序的第二索引;以及将所述第二数据传送拆分成第二组部分,每个部分小于或等于所述第二大小,并且需要在上下文切换到另一个应用程序之前完成执行;所述DMA电路进一步用于:在第三时段期间,使用与所述第二应用程序相关联的第二IV和第二加密密钥顺序地执行所述第二组部分的第一子集;在所述第三时段结束时,在指定的第二索引处将第二计算的散列键和第二块计数器存储在所述安全存储器中;在所述第三时段随后的第四时段期间,使用在指定的第二索引处存储在所述安全存储器中的所述第二计算的散列键和所述第二块计数器顺序地执行第二组部分的第二子集;以及在所述第四时段结束时,存储与所述第二数据传送相关联的第二认证标签。3.根据权利要求1所述的加速器电路,其中,所述经认证的加密算法是高级加密标准伽罗瓦计数器模式AES

GCM。4.根据权利要求1所述的加速器电路,其中,所述第一描述符是加密操作描述符,其中所述DMA电路还用于:从所述安全存储器中检索所述第一IV和所述第一加密密钥;通过使用所述第一加密密钥的第一块密码对所述第一IV和所述第一块计数器的第一
值进行加密来获得第一结果;通过使用所述第一加密密钥的第二块密码对所述第一IV和所述第一块计数器的第二值进行加密来获得第二结果;将所述第二结果与第一明文组合来获得第一密文;将所述第一密文与零块组合来获得所述第一计算的散列键的第一值,其中所述第一值是用于所述第一数据传送的部分认证标签;检索所述第一IV、所述第一块计数器的当前值和所述第一计算的散列键的当前值;通过使用所述第一加密密钥的第三块密码对所述第一IV和所述第一块计数器的所述当前值进行加密来获得第三结果;将所述第三结果与第二明文组合来获得第二密文;将所述第二密文与所述第一计算的散列键的所述当前值组合来获得第四结果;将所述第四结果与一段密文组合来获得第五结果;以及将所述第五结果与所述第一结果组合来获得第一认证标签。5.根据权利要求1所述的加速器电路,其中,所述第一描述符是解密操作描述符,其中所述DMA电路进一步用于:从所述安全存储器中检索所述第一IV和所述第一加密密钥;通过使用所述第一加密密钥的第一块密码对所述第一IV和所述第一块计数器的第一值进行加密来获得第一结果;通过使用所述第一加密密钥的第二块密码对所述第一IV和所述第一块计数器的第二值进行加密来获得第二结果;将所述第二结果与第一密文组合来获得第一明文;将所述第一密文和零块组合来获得所述第一计算的散列键的第一值,其中所述第一值是用于所述第一数据传送的部分认证标签;检索所述第一IV、所述第一块计数器的当前值和所述第一计算的散列键的当前值;通过使用所述第一加密密钥的第三块密码对所述第一IV和所述第一块计数器的所述当前值进行加密来获得第三结果;将所述第三结果与第二密文组合来获得第二明文;将所述第二明文与所述第一计算的散列键的所述当前值组合来获得第四结果;将所述第四结果与一段密文组合来获得第五结果;以及将所述第五结果与所述第一结果组合来获得第一认证标签。6.根据权利要求2所述的加速器电路,其中所述第一大小和所述第二大小是不同的,并且其中所述调度器电路被配置为保证跨所述第一应用程序和所述第二应用程序的服务质量QoS要求的公平性,而不管所述第一大小和所述第二大小。7.根据权利要求1所述的加速器电路,其中,所述加速器电路是图形处理单元(GPU)、深度学习加速器(DLA)电路、智能处理单元(IPU)、神经处理单元(NPU)、张量处理单元(TPU)、神经网络处理器(NNP)、数据处理单元(DPU)、视觉处理单元(VPU)、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。8.根据权利要求2所述的加速器电路,还包括DMA缓冲器,用于存储用于第一应用程序的第一推送缓冲区和用于第二应用程序的第二推送缓冲区,其中所述第一推送缓冲区存储
将针对所述第一应用程序执行的操作的规范和所述第一索引,并且其中所述第二推送缓冲区存储将针对所述第二应用程序执行的操作的规范和所述第二索引。9.根据权利要求8所述的加速器电路,其中,所述DMA缓冲器用于存储用于所述第二应用程序的第三推送缓冲区,其中所述第二推送缓冲区在所述第二推送缓冲区的末端存储信号量,所述信号量将由所述DMA电路释放。10.根据权利要求1所述的加速器电路,其中,所述DMA电路包括:逻辑计算引擎LCE;第一物理计算引擎PCE,其耦合到所述LCE并包括所述加密电路、第一读取流水线和第一写入流水线;以及第二PCE,其耦合到所述LCE并包括第二加密电路、第二读取流水线和第二写入流水线。11.一种方法,包括:由加速器电路接收与第一应用程序相关联的第一大小的第一数据传送的第一描述符,所述第一描述符指定安全存储器中对应于所述第一应用程序的第一索引;由所述加速器电路将所述第一数据传送拆分为第一组部分,每个部分小于或等于所述第一大小并且需要在上下文切换到另一个应用程序之前完成执行;在第一时段期间,由所述加速器电路,使用与所述第一应用程序相关联的第一初始化向量IV和第一加密密钥,通过经认证的加密算法顺序地执行所述第一组部分的第一子集,并且由所述加速器电路在指定的第一索引处将第一计算的散列键和第一块计数器存储在所述安全...

【专利技术属性】
技术研发人员:A
申请(专利权)人:辉达公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1