一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用地址签名防止未经授权的转换访问的制作方法

2023-03-19 17:12:33 来源:中国专利 TAG:

使用地址签名防止未经授权的转换访问


背景技术:

1.pci express(pcie)提供地址转换服务(ats),其中主机可以使用转换代理来将由端点(例如,与根端口接口连接的设备)提供的虚拟地址转换成存储器中的物理地址。端点可以高速缓存来自转换代理的转换,并且随后使用从高速缓存的转换中得到的物理地址来请求直接存储器访问(dma)传输。由此,可能不需要转换代理执行针对dma传送的转换,从而减少存储器访问等待时间和转换代理执行地址转换的负担。进一步,用于地址转换的高速缓存大小与端点进行缩放,而不是与主机进行缩放,这更适合于定义适当的高速缓存大小。然而,当请求dma传送时,存在请求中所包括的物理地址不是端点被授权访问的物理地址的机会。在各种情况下,例如在端点对应于外部设备的情况下,可能无法信任端点将不尝试未经授权访问,且因此ats常常被禁用。作为进一步的复杂性,主机可以包括多个虚拟机(vm),其中,端点是一个vm而非另一个vm的可信执行环境(tee)的一部分。在这种情况下,主机应当能够确保端点不能访问vm的存储器(在其tee中不包括该端点),但是这可能是不可能的。
2.一种使用ats防止端点未经授权访问物理存储器的方法包括该托管软件维护单独的表——每端点——允许端点访问该表的存储器块。然后,主机硬件可以根据需要高速缓存表和/或查询表,以验证包括在来自端点的dma请求中的物理地址被授权用于这些端点。这将缩放高速缓存大小移回主机,主机通常不处于定义适当高速缓存大小的位置。照此,使用ats的dma请求的等待时间可能存在可变性和不确定性,因为主机的高速缓存通常太小而不能容纳大量表。另外,托管软件可能需要被修改以在终止端点的访问时处理高速缓存的无效。


技术实现要素:

3.本公开的实施例涉及使用地址签名防止未经授权的转换的访问。本发明公开的系统和方法,其可验证来自端点的对于使用经转换的地址的存储器访问的请求是否包括提供到所述端点的所述转换的地址的密码地修改的版本。所公开的方法可以用于确保端点被授权用于存储器访问。
4.与常规系统(如上文描述的那些系统)相比,所公开的方法可以提供具有从第一地址转换的第二地址的密码地修改的版本的端点。来自所述端点的用于使用所述转换的地址的存储器访问的请求可随后通过确定所述请求包括所述转换的地址的所述密码地修改的版本来验证。
5.在至少一个实施例中,该第一地址可以是虚拟地址并且该第二地址可以是物理地址。所述第二地址的所述密码地修改的版本可为使用私用密钥生成的所述第二地址的散列,且可响应于转换请求而提供有所述第二地址。例如,散列和第二地址(在一些实施例中,其被加密)的组合可被包括在对转换请求的响应的转换的地址字段中,而不是单独包括在转换的地址中。端点可通过将组合存储在转换高速缓存的条目中并访问该条目以包括在存储器访问请求中来将该组合视为转换的地址。为了验证存储器访问请求,可以从请求中提取转换的地址并且使用私钥对其进行散列,将结果与请求中的散列进行比较。当比较的值
匹配时,可验证存储器访问请求,并且可使用转换的地址执行存储器访问。
附图说明
6.下面参考附图详细描述用于防止使用地址签名的未经授权的转换访问的本系统和方法,其中:
7.图1是根据本公开的一些实施例的地址转换系统的示例图;
8.图2示出了根据本公开的一些实施例的使用图1的地址转换系统中的地址签名来防止未经授权的转换访问的示例过程;
9.图3是示出了根据本发明的一些实施例的主机可以使用物理地址的签名来防止未经授权的转换访问的方法的流程图;
10.图4是示出了根据本发明的一些实施例的主机可以使用地址的密码地修改的版本来防止未经授权的转换访问的方法的流程图;
11.图5是示出了根据本公开的一些实施例的设备可以使用地址签名防止未经授权的转换访问的方法的流程图;
12.图6是适合用于实现本公开的一些实施例的示例计算设备的框图;以及
13.图7是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
14.公开了涉及使用地址签名防止未经授权的经转换访问的系统和方法。本发明公开的系统和方法,其可验证来自端点的对于使用经转换地址的存储器访问的请求是否包括提供到所述端点的所述转换地址的经密码地修改的版本。所公开的方法可以用于确保端点被授权用于存储器访问。
15.与常规系统(如上文描述的那些系统)相比,所公开的方法可以为端点提供从该第一地址转换的第二地址的密码地修改的版本。来自所述端点的用于使用所述转换地址的存储器访问的请求可随后通过确定所述请求包括所述转换地址的所述密码地修改的版本来验证。
16.在至少一个实施例中,该第一地址可以是虚拟地址并且该第二地址可以是物理地址。第二地址的经密码地修改的版本可为使用私钥生成的第二地址的散列(或其他形式的数字签名),且可响应于转换请求而提供有第二地址。例如,散列和第二地址(在一些实施例中,其被加密)的组合可被包括在对转换请求的响应的转换的地址字段中,而不是单独包括在转换的地址中。端点可通过将组合存储在转换高速缓存的条目中并访问该条目以包括在存储器访问请求中来将该组合视为转换的地址。为了验证存储器访问请求,可以从请求中提取转换的地址并且使用私钥对其进行散列,将结果与请求中的散列进行比较。当比较的值匹配时,可验证存储器访问请求,并且可使用转换的地址执行存储器访问。
17.作为示例而非限制,所公开的方法可以使用由pci express(pcie)提供的地址转换服务(ats)来实现,其中,主机可以使用转换代理来将由端点(例如,与根端口接口连接的设备)提供的虚拟地址转换成存储器中的物理地址。除了物理地址之外或替代物理地址,主机可提供物理地址的密码地修改的版本,而非将物理地址提供到端点。例如,散列和物理地址的组合可以在ats协议的转换地址字段中提供。由此,端点可能不知道所接收的数据已经
被密码地修改且将所述数据视为经转换的地址。当端点提供对转换的地址的存储器访问请求时,其随后可将其接收的转换的地址包括在ats协议的转换的地址字段中。因此,该数据可以用于验证该请求中包括的地址是否是该端点被授权访问的地址。
18.在至少一个实施例中,用于地址转换的高速缓存大小仍然可以与端点一起缩放,因为主机仅需要存储用于验证存储器访问请求的密钥(例如,每个端点、进程、和/或功能一个密钥)。另外,主机可以包括多个虚拟机(vm),并且端点可以是一个vm而不是另一个vm的可信执行环境(tee)的一部分。使用所公开的方法,主机可以保证端点不能访问vm的在其tee中不包括该端点的存储器。
19.所公开的实施例可以包括在多种不同系统中,如汽车系统(例如,用于自主或半自主机器的控制系统、用于自主或半自主机器的感知系统),使用机器人实现的系统、空中系统、内侧系统、划船系统、智能区域监视系统、用于执行深度学习操作的系统、用于执行模拟操作的系统、使用边缘设备实现的系统,合并一个或更多个虚拟机(vm)的系统、至少部分地在数据中心中实现的系统、至少部分地使用云计算资源实现的系统、和/或其他类型的系统。
20.参考图1,图1是根据本公开的一些实施例的地址转换系统100的示例图。应当理解,本文所述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,可使用其他布置和元件(例如,机器、接口、功能、次序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合、和以任何合适的组合和位置的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以通过执行存储在存储器中的指令的处理器来实现。
21.地址转换系统100可以包括主机102、一个或更多个设备(如设备104a和/或设备104b(其还可以统称为“设备104”或单独称为“设备104”))、托管软件106、一个或更多个存储器108、一个或更多个转换表110、以及一个或更多个验证条目118,以及其他元件。主机102可包括接口管理器112和存储器管理器114。设备104a或104b可以包括一个或更多个转换高速缓存,诸如设备104a的转换高速缓存120a和设备104b的转换高速缓存120b(其还可以统称为“转换高速缓存120”或单独称为“转换高速缓存120”)。
22.作为概述,主机102可以托管托管软件106,其可以包括管理托管软件106的执行。接口管理器112可以被配置为管理主机102、托管软件106和设备104之间的通信。例如,设备104可以提交访问存储器108的一个或更多个部分的请求。存储器管理器114可以被配置为管理存储器108,例如以便于访问存储器108的一个或更多个部分。例如,存储器管理器114可执行诸如使用(一个或更多个)转换表110来转换存储器地址、更新(一个或更多个)转换表110、从与存储器地址对应的位置读取数据或向与存储器地址对应的位置写入数据和/或向托管软件106的一个或更多个实体分配存储器的一个或更多个部分的功能。在一个或更多个实施例中,存储器管理器114被配置为生成转换地址的密码地修改的版本,其可被提供至一个或更多个设备104,用于存储在一个或更多个转换高速缓存120中。而且,在至少一个实施例中,存储器管理器114可经配置以基于转换地址的密码地修改的版本验证存储器访问请求,例如由设备104使用转换高速缓存120提供的存储器访问请求。
23.如本文所描述的,主机102可以托管托管软件106,这可以包括管理托管软件106的执行。主机102可包括硬件、软件和/或固件的任何组合,其促进托管软件106的托管。作为示
例而非限制,主机102可包括虚拟化软件(诸如管理程序)的一个或更多个虚拟机管理器(vmm),并且托管软件106可包括由管理程序支持的一个或更多个虚拟机(vm),诸如客户操作系统。附加地或可替代地,托管软件106的至少一个实体可以包括一个或更多个进程、服务、应用和/或其他软件实体。虽然验证条目118、存储器108、托管软件106、转换表110和设备104被示出在主机102外部,但是这些组件中的任意一个可以被包括在主机102中和/或与主机102的片上系统(soc)上。进一步,验证条目118和/或转换表110可至少部分地存储在存储器108中和/或不同的存储器中。在至少一个实施例中,存储器108包括易失性存储器,诸如随机存取存储器(ram),其可以包括动态ram(dram)。在至少一个实施例中,设备104可以包括vm或其他软件实体,诸如托管软件106的vm。
24.接口管理器112可以被配置成用于管理主机102、托管软件106与设备104之间的通信。接口管理器112可以支持多种主机控制器接口中的任意一种,诸如用于通用串行总线(usb)、火线(firewire)、蓝牙、以太网、外围组件互连(pci)、pci express(pcie)、近场通信(nfc)、车辆到万物(v2x)、汽车到汽车(car2car)、蜂窝、无线保真(wifi)、或其他类型的通信的那些主机控制器接口。
25.在至少一个实施例中,接口管理器112可以通过一个或更多个主机控制器接口提供地址转换,这样使得设备104或其他端点可以访问存储器108的一个或更多个部分。在提供转换服务时,接口管理器112可以使用存储器管理器114来将由设备104或其他端点提供的地址转换成存储器108中的转换的地址。具体地,存储器管理器可以使用一个或更多个转换表110和/或其他手段来从地址确定转换的地址。转换的地址可以被提供给设备104,设备104可以将转换的地址存储在转换高速缓存120中。随后,设备104可以使用来自转换高速缓存120的转换的地址来向存储器108提供存储器访问请求。例如,设备104可以使用转换的地址请求与存储器108的直接存储器访问(dma)传输。通过使用转换的地址,存储器管理器114不需要执行dma的地址转换。
26.在一个或更多个实施例中,由设备104提供的地址可以是虚拟地址并且经转换的地址可以是使用一个或更多个转换表110(例如,页表和/或地址转换和保护表)确定的存储器108的物理地址。然而,本发明的方面可更一般地适用于地址转换,所述地址转换可包括或可不包括虚拟到物理地址转换。作为示例,在至少一个实施例中,接口管理器112支持pcie并且包括根复合体(rc)以提供地址转换服务(ats),并且设备104可以通过由rc管理的根端口与主机102通信。在提供ats时,接口管理器112可以使用存储器管理器114的转换代理来将虚拟地址转换,假设设备104为存储器108中的物理地址。例如,存储器管理器114可包括使用用于ats的一个或更多个转换表110的系统存储器管理单元(smmu)一个或更多个页表的输入-输出存储器管理单元(iommu)。
27.当请求dma传送时,存在由设备104提供的地址不是设备104被授权访问的地址的机会。作为进一步的复杂性,设备104可以是托管软件106的一个vm或其他实体的可信执行环境(tee)的一部分,而不是另一个。本公开的实施例允许主机102保证设备104不能访问与在其tee中不包括设备104的vm相关联的存储器108的一个或更多个部分,即使在设备104提供与vm相关联的物理地址的情况下。为此,存储器管理器114可生成密码信息,例如经转换地址的经密码地修改的版本,其可提供到设备104以供存储在设备104的转换高速缓存120中。例如,除了或代替转换的地址,存储器管理器114可以提供密码信息。当设备104提供存
储器访问请求时,存储器管理器114可以加密地验证该请求以确定该请求是否被授权。例如,存储器管理器114可以确定由设备104提供的与请求相关联的数据是否匹配或以其他方式对应于提供给设备104的密码信息。在存储器管理器114确定该请求不对应于密码信息的情况下,可以拒绝该请求。在至少一个实施例中,响应于未被授权的请求,可以向设备104提供状态代码,例如错误或故障代码。
28.存储器管理器114可以实现各个潜在途径以便生成密码信息。在至少一个实施例中,存储器管理器114可以使用一个或更多个密钥以加密地修改转换的地址,诸如会话密钥。会话密钥可指用于在特定通信会话中加密地修改数据的密钥,例如使用加密(非对称或对称)、散列、循环冗余校验生成、盐析、扩展和/或其他加密函数。在至少一个实施例中,会话可以与端点的转换高速缓存的无效相关联地终止(例如,在确定已经过去的预定时间段时,在确定托管软件106的实体已经撤销对转换的地址的访问和/或修改转换的地址时,在确定转换的地址不再属于该实体时,基于终止拥有转换的地址的实体等)。
29.在至少一个实施例中,存储器管理器114使用该密钥(例如,私钥)从经转换的地址中生成数字签名,如散列。例如,存储器管理器114可使用散列函数对经转换的地址或从经转换的地址导出或以其他方式对应于经转换的地址的数据进行散列。非限制性示例包括md5、sha-1、ripemd-160、whirlpool、sha-2、sha-3、blake2、blake3等。附加地或替代地,存储器管理器114可使用一个或更多个密钥来实施消息认证码(mac),例如基于散列的mac(hmac)。附加地或替代地,存储器管理器114可对经转换的地址、散列、mac和/或从中导出或以其他方式与其对应的其他数据进行加密。例如,存储器管理器114可对经转换的地址和散列的组合进行加密。
30.存储器管理器114可以将一个或更多个密钥分配给一个或更多个特定实体(例如,设备104)、功能、进程、和/或转换的地址。此外,存储器管理器114可将这样的分配存储在验证条目118中以用于加密地验证来自实体的未来通信和/或用于向实体提供密码信息(例如,响应于转换请求)。存储器管理器114可以在任何合适的时间生成和/或分配密钥。
31.在托管软件106包括vm的实施例中,存储器管理器114可以至少基于实体(例如,端点)被移动到vm的tee中来为设备、功能、进程等分配密钥。例如,响应于将实体移动到tee中的请求,存储器管理器114可以生成一个或更多个密钥和/或向实体分配一个或更多个密钥(例如,每个实体、进程和/或功能一个密钥或密钥对)。作为进一步的示例,可以响应于来自实体的地址转换请求生成或分配密钥。在各个实施例中,实体不接收来自主机102的任何分配的密钥,并且密钥可存储在验证条目118中的实体不可访问的安全存储装置中(例如,存储器108和/或其他存储器中)。在至少一个实施例中,存储器管理器114可将密钥存储在由实体、功能、进程、会话和/或转换的地址所有者(例如,分配对应页面的vm)索引的验证条目118中,以供存储器管理器114稍后检索。另外或替代地,存储器管理器114可将使用密钥产生的密码信息存储在验证条目118中的对应条目中(例如,使用索引)。
32.存储器管理器114可以访问验证条目118中所存储的密钥以生成和/或向实体提供对应于所转换的地址的密码信息和/或验证来自该实体的一个或更多个请求。例如,存储器管理器114可使用由实体提供和/或与实体相关联的信息(例如,在来自实体的请求中)作为查找标准来访问用于生成可存储在验证条目118的索引中的密码信息和/或预先计算的密码信息的相关联密钥。
33.在至少一个实施例中,响应于转换请求将密码信息提供至设备104。例如,存储器管理器114可包括除转换地址之外或替代转换地址的密码信息。在至少一个实施例中,存储器管理器114可以从设备104接收转换请求。除其他潜在信息之外,转换请求可以包括指示要被转换的地址(例如,虚拟地址)的数据。响应于该请求,存储器管理器114可以在转换表110中查找该地址并且接收对应的转换的地址(例如,系统物理地址)。存储器管理器114还可生成和/或检索与转换的地址相关联的密码信息并且在响应中包括该密码信息。例如,密码信息的至少一部分可被包括在响应的转换地址字段的至少一部分中(例如,如由通信协议指定的)。通过将密码信息存储在转换的地址字段中,密码信息可以被提供给设备104,而不需要修改现有协议和/或修改地址转换系统100的各个实体。进一步,设备104可能不能将密码信息与转换的地址区分开。
34.在一个或更多个实施例中,在对转换请求的响应中包括所转换的地址和密码信息。例如,转换的地址可以是n位长,并且密码信息(例如,散列或签名)可以是m位长。然后,响应可以包括转换的地址和m n位长的密码信息的组合。作为示例而非限制,密码信息可被附加到地址的最高有效位(msb)以形成新值,该新值包括密码信息的m位,随后是转换的地址的n位。然而,密码信息可存储在其他位置中或可由所述位编码。在包括加密的实施例中,存储器管理器114可以对组合的密码信息和转换的地址进行加密,例如以降低实体用合成的地址攻击主机102的概率。
35.作为示例而非限制,用于存储组合值的转换地址字段可以是从40位到80位长的任何地方。在至少一个实施例中,主机102为转换的地址分配比待转换的地址少的位(例如,48或40位用于物理地址和64位用于虚拟地址)。多余位中的至少一些可以用于解释密码信息。例如,如果存在物理地址的40位和虚拟地址的64位,那么可使用多达24位来存储密码信息。
36.在至少一个实施例中,存储器管理器114可以基于与一个或更多个经转换的地址相关联的密码信息验证经转换的请求。例如,主机102可以从设备104接收转换的请求(例如,存储器访问请求,诸如dma请求)。存储器管理器114可分析从经转换的请求提取的密码信息以验证所提取的密码信息对应于与被授权用于请求端点、进程和/或功能的经转换的地址相关联的密码信息。在至少一个实施例中,密码信息可从请求的转换地址字段提取(例如,签名可从msb提取,或以其他方式使用应如何和/或何处存储各个项目的知识提取)。存储器管理器114还可检索相关联的密钥和/或预先计算的密码信息以用于验证所提取的密码信息。
37.在存储器管理器114未能识别所分配的密钥或其他密码信息的情况下,该请求可能导致错误或故障代码,该错误或故障代码可以被提供给设备104。在标识信息的情况下,存储器管理器114可以验证所提取的密码信息匹配或以其他方式与分配给端点、进程、功能等的密码信息加密兼容。(例如,所提取的签名与提供给端点的签名匹配)。在采用加密的实施例中,存储器管理器114可以首先使用一个或更多个检索的密钥来解密密码信息,然后验证经解密的密码信息(例如,使用另一密钥来散列潜在的经转换的地址)。在检索的一个或更多个密钥用于验证的情况下,可使用一个或更多个密钥即时生成用于验证的签名或其他密码信息。附加地或替代地,可如本文所述从存储器检索用于验证的预先计算的密码信息,并将其与由请求提供的值进行比较。
38.在存储器管理器114确定密码信息不匹配或以其他方式不与所分配的密码信息密
码兼容的情况下,该请求可能导致错误或故障代码,该错误或故障代码可以被提供给设备104。否则,存储器管理器114可使用由该请求提供的经转换的地址,例如以在存储器108中的对应位置上执行存储器访问。存储器管理器114还可响应于该请求向设备104提供指示经转换的请求的成功验证和/或执行的数据,诸如成功代码和/或检索的数据。
39.所公开的方法可以完全在硬件中实现,而不需要修改托管软件106。进一步,添加到处理转换服务(例如,加密、签名计算和针对传入签名的验证)的任何等待时间可以是固定的(例如,几个时钟周期)。由此,可向转换服务提供一致且可预测的定时,从而允许系统具有确定性能和工作负载,同时避免瓶颈。
40.现在参见图2,图2示出了根据本公开的一些实施例使用图1的地址转换系统100中的地址签名来防止未经授权的转换访问的示例过程200。过程200可以包括设备104a向主机102提供转换请求202(例如,ats请求)。接口管理器112可以接收转换请求202并且向存储器管理器114提供对应于转换请求202的数据。存储器管理器114可使用转换表110来执行在转换请求202中提供的地址的转换204。例如,存储器管理器114可从转换表110检索转换的地址。存储器管理器114还可以执行密码功能206以生成密码信息。这可以包括例如将用存储在与验证条目118中的设备104a、函数和/或过程相关联的密钥(和/或在其他示例中生成和存储密钥或检索预先生成的密码信息)对所转换的地址进行散列。存储器管理器114可提供用于转换响应208的密码信息和/或转换地址(例如,密码地修改的版本),接口管理器112可提供设备104a。
41.设备104a可以执行从转换响应208提取的信息(例如,转换的地址字段中的值)的转换高速缓存210,诸如ats完成,在转换高速缓存120a中。随后,设备104a可以执行转换高速缓存120a的高速缓存访问212,以检索用于包括在访问请求214(或转换请求)中的高速缓存信息,诸如dma请求。设备104a可以向主机102提供访问请求214。接口管理器112可以接收访问请求214并且向存储器管理器114提供对应于访问请求214的数据。存储器管理器114可对访问请求214中提供的数据(例如,转换的地址字段中的值)执行密码验证216。例如,存储器管理器114可使用从访问请求214识别的或与访问请求214相关联的设备104a、功能和/或进程在验证条目118中查找密钥。存储器管理器114可使用密钥来对从访问请求214提取的经转换的地址进行散列(例如,一个或更多个访问请求214消息中的占用针对经转换的地址指定的位和/或根据经转换的地址提取算法生成的位的数据),并且将经散列的地址与从访问请求214提取的经转换的地址的潜在散列进行比较(例如,一个或更多个访问请求214消息中的占用针对散列指定的位和/或根据散列提取算法生成的位的数据)。
42.在散列的地址(或更一般地签名)匹配潜在散列的情况下,存储器管理器114可以确定访问请求214被授权。响应于确定访问请求214被授权,存储器管理器114可以使用所转换的地址在对应于所转换的地址的位置处执行存储器108的存储器访问218(例如,以检索对应的页面)。在存储器访问218用于检索数据的实施例中,存储器管理器114可提供由存储器访问218检索的数据以包括在发送至设备104a的一个或更多个访问响应220中。否则,存储器管理器114可提供对设备104a的成功存储器访问的状态代码或其他指示符。在散列的地址与潜在散列不匹配的实施例中,访问响应可包括不成功存储器访问的状态代码或其他指示符,诸如故障或错误代码。
43.现在参见图3,方法300的每个框以及本文描述的其他方法包括可以使用硬件、固
件和/或软件的任何组合执行的计算过程。例如,各个功能可以通过执行存储在存储器中的指令的处理器来实现。所述方法还可实施为存储于计算机存储介质上的计算机可用指令。所述方法可由独立应用、服务或托管服务(独立或与其他托管服务组合)或到另一产品的插件提供,仅举几例。此外,通过示例的方式,关于图1的系统描述了方法。然而,这些方法可以另外地或可替代地由任何一个系统或系统的任何组合来执行,这些系统包括但不限于本文描述的那些系统。
44.图3是示出了根据本发明的一些实施例的主机可以使用物理地址的签名来防止未经授权的转换访问的方法300的流程图。在框b302处,方法300包括生成物理地址的签名。例如,主机102的存储器管理器114可以至少基于来自设备104的转换虚拟地址的请求来生成从虚拟地址转换的物理地址的签名。
45.在框b304处,方法300包括提供与物理地址和签名相对应的数据。例如,接口管理器112可以响应于转换虚拟地址的请求将对应于签名的数据和物理地址提供给设备104。
46.在框b306处,方法300包括至少基于确定包括该签名和该物理地址的请求来启用对该物理地址的存储器访问。例如,至少基于存储器管理器114确定对存储器访问的请求包括签名和物理地址,存储器管理器114可以启用对该物理地址的存储器访问。
47.参照图4,图4是示出了根据本发明的一些实施例的主机可以使用地址的密码地修改的版本来防止未经授权的转换访问的方法400的流程图。在框b402处,方法400包括提供从第一地址转换的第二地址的密码地修改的版本。例如,存储器管理器114可至少基于来自设备104的转换第一地址的请求而提供从第一地址转换的第二地址的经密码地修改的版本。
48.在框b404处,方法400包括接收与请求相关联的所述第二地址的所述密码地修改的版本。例如,存储器管理器114可接收与来自设备104的对于具有第二地址的存储器访问传送的请求相关联的第二地址的经密码地修改的版本。
49.在框b406处,方法400包括至少基于验证所述第二地址的所述密码地修改的版本来发起存储器访问传送。例如,存储器管理器114可至少基于验证第二地址的密码地修改的版本来发起与设备104的存储器访问传送。
50.参考图5,图5是示出了根据本发明的一些实施例的设备可以使用地址签名用于防止未经授权的转换访问的方法500的流程图。在框b502处,方法500包括接收从第一地址转换的第二地址的经密码地修改的版本。例如,设备104可以响应于来自设备104的转换第一地址的请求而从主机102接收从第一地址转换的第二地址的密码地修改的版本。
51.在框b504处,方法500包括提供与请求相关联的第二地址的经密码地修改的版本。例如,设备104可向主机102提供对第二地址的存储器访问的请求,所述请求包含在对所述请求的响应中接收的第二地址的密码地修改的版本。
52.在框b506处,方法500包括至少基于包括第二地址的密码地修改的版本的请求来接收与对第二地址的存储器访问相对应的数据。例如,设备104可至少基于包含第二地址的经密码地修改的版本的存储器访问的请求而从主机102接收对应于对第二地址的存储器访问的数据。
53.示例计算设备
54.图6为适合用于实现本公开一些实施例的示例计算设备600的框图。计算设备600
可以包括直接或间接耦合下列设备的互连系统602:存储器604,一个或更多个中央处理单元(cpu)606,一个或更多个图形处理单元(gpu)608,通信接口610,输入/输出(i/o)端口612,输入/输出组件614,电源616,一个或更多个呈现组件618(例如显示器)和一个或更多个逻辑单元620。在至少一个实施例中,计算设备600可以包括一个或更多个虚拟机(vm),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,一个或更多个gpu 608可以包括一个或更多个vgpu,一个或更多个cpu 606可以包括一个或更多个vcpu,和/或一个或更多个逻辑单元620可以包括一个或更多个虚拟逻辑单元。因此,计算设备600可以包括分立组件(例如,专用于计算设备600的完整gpu)、虚拟组件(例如,专用于计算设备600的gpu的一部分),或其组合。
55.尽管图6的各个框被示为经由具有线路的互连系统602连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件618可以被认为是i/o组件614(例如如果显示器为触摸屏)。作为另一个示例,cpu 606和/或gpu 608可以包括存储器(例如,存储器604可以表示除了gpu 608、cpu 606和/或其他组件的存储器以外的存储设备)。换言之,图6的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ecu)”、“虚拟现实系统”和/或其他设备或系统类型之类的类别之间不进行区分,因为所有这些都被考虑在图6的计算设备的范围内。
56.互连系统602可以表示一条或更多条链路或总线,例如地址总线、数据总线、控制总线或者其组合。互连系统602可以包括一种或更多种链路或总线类型,例如行业标准架构(isa)总线、扩展行业标准架构(eisa)总线、视频电子标准协会(vesa)总线、外围组件互连(pci)总线、外围组件互连快速(pcie)总线,和/或另一种类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,cpu 606可以直接连接到存储器604。此外,cpu 606可以直接连接到gpu 608。在组件之间存在直接或点对点连接的情况下,互连系统602可以包括pcie链路来执行该连接。在这些示例中,计算设备600中不需要包括pci总线。
57.存储器604可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备600访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
58.计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器604可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作系统)。计算机存储介质可以包括但不限于ram、rom、eeprom、闪存或者其他存储技术、cd-rom、数字多功能盘(dvd)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备600访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
59.计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中包含计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸
如有线网络或直接有线连接之类的有线介质,以及诸如声音、rf、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
60.cpu 606可以被配置为执行计算机可读指令中的至少一些,以便控制计算设备600的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。cpu 606中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。cpu 606可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备600的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备600的类型,处理器可以是使用精简指令集计算(risc)实现的高级risc机制(arm)处理器或者使用复杂指令集计算(cisc)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备600还可以包括一个或更多个cpu 606。
61.除了或替代cpu 606,gpu 608还可以被配置为执行至少一些计算机可读指令,以控制计算设备600的一个或更多个组件执行一个或更多个本文所述的方法和/或过程。一个或更多个gpu 608可以是集成gpu(例如,具有一个或更多个cpu 606)和/或一个或更多个gpu 608可以是离散gpu。在实施例中,一个或更多个gpu 608可以是一个或更多个cpu 606的协处理器。计算设备600可以使用gpu 608来渲染图形(例如,3d图形)或执行通用计算。例如,gpu 608可用于gpu上的通用计算(gpgpu)。gpu608可以包括能够同时处理数百或数千个软件线程的数百或数千个核。gpu 608可以响应于渲染命令(例如经由主机接口接收的来自cpu 606的渲染命令)而生成用于输出图像的像素数据。gpu 608可以包括诸如显示存储器之类的用于存储像素数据或任何其他合适的数据(例如gpgpu数据)的图形存储器。显示存储器可以作为存储器604的部分而被包括。gpu608可以包括(例如经由链路)并行操作的两个或更多gpu。链路可以直接连接gpu(例如,使用nvlink),也可以通过交换机(例如,使用nvswitch)连接gpu。当组合在一起时,每个gpu 608可以生成用于输出的不同部分或者用于不同输出的像素数据或gpgpu数据(例如,第一gpu用于第一图像,第二gpu用于第二图像)。每个gpu可以包括它自己的存储器,或者可以与其他gpu共享存储器。
62.除了或替代cpu 606和/或gpu 608,逻辑单元620可以被配置为执行至少一些计算机可读指令,以控制计算设备600的一个或更多个组件来执行本文描述的一种或更多种方法和/或过程。在实施例中,cpu 606、gpu608和/或逻辑单元620可以离散地或联合地执行方法、过程和/或其部分的任何组合。一个或更多个逻辑单元620可以是一个或更多个cpu 606和/或一个或更多个gpu 608的一部分和/或集成在其中,和/或一个或更多个逻辑单元620可以是cpu 606和/或gpu 608的离散组件或以其他方式在其外部。在实施例中,一个或更多个逻辑单元620可以是一个或更多个cpu606和/或一个或更多个gpu 608的处理器。
63.逻辑单元620的示例包括一个或更多个处理核心和/或其组件,例如数据处理单元(dpu)、张量核心(tc)、张量处理单元(tpu)、像素视觉核心(pvc)、视觉处理单元(vpu)、图形处理集群(gpc)、纹理处理集群(tpc)、流式多处理器(sm)、树遍历单元(ttu)、人工智能加速器(aia)、深度学习加速器(dla)、算术逻辑单元(alu))、专用集成电路(asic)、浮点单元(fpu)、输入/输出(i/o)元件、外围组件互连(pci)或外围组件互连快速(pcie)元件等。
64.通信接口610可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备600能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口610
可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如wi-fi、z波、蓝牙、蓝牙le、zigbee等等)、有线网络(例如通过以太网或infiniband通信)、低功率广域网(例如lorawan、sigfox等等)和/或因特网。在一个或更多个实施例中,一个或更多个逻辑单元620和/或通信接口610可以包括一个或更多个数据处理单元(dpu),用于将通过网络和/或通过互连系统602接收的数据直接传输至一个或更多个gpu 608(例如,其存储器)。
65.i/o端口612可以使得计算设备600能够逻辑地耦合到包括i/o组件614、呈现组件618和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备600中。说明性i/o组件614包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、浏览仪、打印机、无线设备等等。i/o组件614可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(nui)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。nui可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备600的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备600可以包括诸如立体相机系统之类的深度相机、红外相机系统、rgb相机系统、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备600可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(imu)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备600用来渲染沉浸式增强现实或者虚拟现实。
66.电源616可以包括硬接线电源、电池电源或者其组合。电源616可以向计算设备600供电以使得计算设备600的组件能够操作。
67.呈现组件618可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(hud)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件618可以接收来自其他组件(例如gpu 608、cpu 606、dpu等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
68.示例数据中心
69.图7示出了示例数据中心700,其可用于本公开的至少一个实施例中。数据中心700可以包括数据中心基础设施层710、框架层720、软件层730和应用层740。
70.如图7所示,数据中心基础设施层710可以包括资源协调器712、分组的计算资源714和节点计算资源(“节点c.r.”)716(1)-716(n),其中“n”代表任何完整的正整数。在至少一个实施例中,节点c.r.716(1)-716(n)可以包括但不限于任何数量的中央处理单元(cpu)或其他处理器(包括dpu、加速器、现场可编程门阵列(fpga)、图形处理器或图形处理单元(gpu)等),存储器设备(例如动态只读存储器),存储设备(例如固态硬盘或磁盘驱动器),网络输入/输出(nw i/o)设备,网络交换机,虚拟机(vm),电源模块和冷却模块等。在一些实施例中,节点c.r.716(1)-716(n)中的一个或更多个节点c.r.可以对应于具有一个或更多个上述计算资源的服务器。此外,在一些实施例中,节点c.r.716(1)-716(n)可以包括一个或更多个虚拟组件,例如vgpu、vcpu等,和/或节点c.r.716(1)-716(n)中的一个或更多个可以对应于虚拟机(vm)。
71.在至少一个实施例中,分组的计算资源714可以包括容纳在一个或更多个机架内的节点c.r.716的单独分组(未示出),或者容纳在各个地理位置的数据中心内的许多机架
(也未示出)。分组的计算资源714内的节点c.r.716的单独分组可以包括可以被配置或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括cpu、gpu、dpu和/或其他处理器的几个节点c.r.716分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。一个或更多个机架还可以包括以任意组合的任何数量的电源模块、冷却模块和/或网络交换机。
72.资源协调器712可以配置或以其他方式控制一个或更多个节点c.r.716(1)-716(n)和/或分组的计算资源714。在至少一个实施例中,资源协调器712可以包括用于数据中心700的软件设计基础结构(sdi)管理实体。资源协调器712可以包括硬件、软件或其某种组合。
73.在至少一个实施例中,如图7所示,框架层720可以包括作业调度器744、配置管理器734、资源管理器736和分布式文件系统738。框架层720可以包括支持软件层730的软件732和/或应用程序层740的一个或更多个应用程序742的框架。软件732或应用程序742可以分别包括基于web的服务软件或应用程序,例如由amazon web services,google cloud和microsoft azure提供的服务软件或应用程序。框架层720可以是但不限于一种免费且开源的软件网络应用框架,例如可以利用分布式文件系统738来进行大规模数据处理(例如“大数据”)的apache spark
tm
(以下称为“spark”)。在至少一个实施例中,作业调度器744可以包括spark驱动器,用于促进对数据中心700的各个层所支持的工作负载进行调度。在至少一个实施例中,配置管理器734可以能够配置不同的层,例如软件层730和包括spark和用于支持大规模数据处理的分布式文件系统738的框架层720。资源管理器736能够管理映射到或分配用于支持分布式文件系统738和作业调度器744的集群或分组计算资源。在至少一个实施例中,集群或分组计算资源可以包括数据中心基础设施层710处的分组的计算资源714。资源管理器736可以与资源协调器712协调以管理这些映射的或分配的计算资源。
74.在至少一个实施例中,包括在软件层730中的软件732可以包括由节点c.r.716(1)-716(n)的至少部分,分组的计算资源714和/或框架层720的分布式文件系统738使用的软件。一种或更多种类型的软件可以包括但不限于internet网页搜索软件、电子邮件病毒浏览软件、数据库软件和流视频内容软件。
75.在至少一个实施例中,应用层740中包括的一个或更多个应用程序742可以包括由节点c.r.716(1)-716(n)的至少部分、分组的计算资源714和/或框架层720的分布式文件系统738使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序,认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如pytorch、tensorflow、caffe等)和/或其他与一个或更多个实施例结合使用的机器学习应用程序。
76.在至少一个实施例中,配置管理器734、资源管理器736和资源协调器712中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。自我修改动作可以减轻数据中心700的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的未充分利用和/或行差的部分。
77.数据中心700可以包括工具、服务、软件或其他资源,用于根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用上文关于数据中心700描述的软件和计算资源,根据
神经网络架构计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心700所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息,例如但不限于本文所述的那些。
78.在至少一个实施例中,数据中心700可以使用cpu、专用集成电路(asic)、gpu、fpga和/或其他硬件(或与之对应的虚拟计算资源)来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行信息推理,例如图像识别、语音识别或其他人工智能服务。
79.示例网络环境
80.适用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(nas)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图6的计算设备600的一个或更多个实例上实现—例如,每个设备可以包括计算设备600的类似组件、特征和/或功能。此外,在实现后端设备(例如,服务器、nas等)的情况下,后端设备可以是作为数据中心700的一部分而被包括的,其示例本文关于图7更详细地描述。
81.网络环境的组件可以通过网络彼此通信,网络可以是有线、无线或两者。网络可以包括多个网络,或者多个网络中的网络。举例来说,网络可以包括一个或更多个广域网(wan)、一个或更多个局域网(lan)、一个或更多个公共网络(例如因特网和/或公共交换电话网(pstn))、和/或一个或更多个专用网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他组件)之类的组件可以提供无线连接。
82.兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下服务器可能不包括在网络环境中),以及一个或更多个客户端-服务器网络环境(在这种情况下一个或更多个服务器可以包含在网络环境中)。在对等网络环境中,本文描述的关于服务器的功能可以在任意数量的客户端设备上实现。
83.在至少一个实施例中,网络环境可以包括一个或更多个基于云的网络环境、分布式计算环境、它们的组合等。基于云的网络环境可以包括框架层、作业调度器、资源管理器,以及在一个或更多个服务器上实现的分布式文件系统,这些服务器可以包括一个或更多个核心网络服务器和/或边缘服务器。框架层可以包括用于支持软件层的软件和/或应用层的一个或更多个应用程序的框架。软件或应用程序可分别包括基于网络的服务软件或应用程序。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用程序(例如,通过经由一个或更多个应用程序编程接口(api)访问服务软件和/或应用程序)。框架层可以是但不限于一种类型的免费且开源软件网络应用程序框架,例如可以使用分布式文件系统进行大规模数据处理(例如,“大数据”)。
84.基于云的网络环境可以提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些各种功能中的任何一个都可以分布在来自(例如,可以分布在州、地区、国家、全球等地的一个或更多个数据中心的)中央或核心服务器的多个位置。如果到用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,仅限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云
环境)。
85.客户端设备可以包括本文关于图6描述的示例计算设备600的至少一些组件、特征和功能。作为示例而非限制,客户端设备可以体现为个人计算机(pc)、膝上型计算机、移动设备、智能手机、平板计算机、智能手表、可穿戴计算机、个人数码助理(pda)、mp3播放器、虚拟现实头戴式显示器、全球定位系统(gps)或设备、视频播放器、摄像机、监视设备或系统、车辆、船只、飞行器、虚拟机器、无人机、机器人、手持通信设备、医院设备、游戏设备或系统、娱乐系统、车载计算机系统、嵌入式系统控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描述设备的任意组合或任何其他合适的设备。
86.本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
87.如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素a、元素b和/或元素c”可以包括仅仅元素a,仅仅元素b,仅仅元素c,元素a和元素b,元素a和元素c,元素b和元素c,或者元素a、b和c。此外,“元素a或元素b中的至少一个”可以包括元素a中的至少一个,元素b中的至少一个,或者元素a中的至少一个和元素b中的至少一个。进一步,“元素a和元素b中的至少一个”可以包括元素a中的至少一个,元素b中的至少一个,或者元素a中的至少一个和元素b中的至少一个。
88.这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献