忆阻点积引擎虚拟化的制作方法

文档序号:18354393发布日期:2019-08-06 22:54阅读:291来源:国知局
忆阻点积引擎虚拟化的制作方法

通常被称为忆阻器的电阻式存储器元件是可以通过向忆阻器施加电压或电流而被编程为不同电阻状态的器件。忆阻器的交叉开关阵列可以用于各种应用中,包括非易失性存储器、可编程逻辑器件等。在这方面,忆阻交叉开关阵列可以包括若干行线以及与行线交叉的若干列线。这种布置的一个应用是忆阻点积引擎。

附图说明

为了更完整地理解各种示例,现在参考结合附图进行的以下描述,其中:

图1示出了用于虚拟化忆阻点积引擎(dpe,dotproductengine)的示例系统;

图2示出了图1的具有忆阻dpe的示例资源的示例系统;

图3示出了图2的具有忆阻dpe的资源中的区块的示例详细图示的示例系统;

图4示出了用于虚拟化忆阻dpe阵列的另一示例系统;

图5示出了用于使用加密数据交换来虚拟化忆阻dpe的另一示例系统;

图6是示出示例方法的流程图;和

图7示出了具有计算机可读存储介质的示例系统的框图,该计算机可读存储介质包括可由处理器执行用于虚拟化忆阻dpe的指令。

具体实施方式

在此描述的各种示例涉及忆阻点积引擎(dpe)的虚拟化。根据在此所述的各种示例,dpe的虚拟化允许由多个用户共享dpe资源,即使那些用户相互不信任。dpe的虚拟化通过对于每个虚拟dpe或每个dpe流层复制物理dpe的接口来实现。在这方面,流层涉及虚拟dpe的会话。在各种示例中,物理dpe的调度器可以将各种时间片分配给各个会话或流层。复制接口可以以类似于或等同于物理dpe的接口的方式而被实施为硬件、软件或固件。复制接口通信地耦接到物理dpe的控制器。控制器包括调度器以通过复制接口将时隙分配给虚拟dpe。因此,虚拟dpe的每个用户与其他虚拟dpe的用户隔离。在一些示例中,虚拟dpe的用户与物理dpe的控制器之间的通信被加密以增强安全性。在这方面,由用户提供相关联的安全密钥用于在物理dpe处或在dpe资源处解密信息。因此,例如,可以保护由用户传送的信息免于为其他用户(例如,其他虚拟dpe的用户)或物理dpe的管理员所知。

如在此所使用,“点积(dotproduct)”广义地涉及两个矢量的乘积以形成标量,标量的数值是矢量的大小与它们之间的角度的余弦的乘积。在忆阻dpe的情况下,可以通过将电压施加到输入端并将电压乘以编程到dpe中以得到电流的电导来确定点积,如以下参照图3更详细描述的。

现在参照图1,示出了用于忆阻dpe的虚拟化的示例系统。示例系统100包括忆阻dpe110。如在此所使用,术语“忆阻器”可以涉及无源双端子电路元件,其在电流的时间积分与电压的时间积分之间维持函数关系。术语“忆阻点积引擎”广义地涉及包括忆阻交叉开关阵列的点积引擎。

图1的示例忆阻dpe110包括至少一种dpe资源120。在各种示例中,dpe资源120包括至少一个忆阻交叉开关阵列,该忆阻交叉开关阵列包括若干行线以及与行线交叉的若干列线。以下参照图2和图3更详细描述示例dpe资源120。

图1的示例忆阻dpe110还包括接口130。在各种示例中,接口130是允许dpe110通信地耦接到外部组件的输入/输出接口。例如,计算系统的处理器可以通过接口130耦接到dpe110且可以获得对dpe资源120的访问。

在图1的示例系统100中,示例忆阻dpe110还提供有控制器140。在各种示例中,控制器140可以控制示例忆阻dpe110的各个特征方面。例如,控制器140可以确定哪些资源可应用于各种任务或用户、或者可以分配用于各种任务或用户。图1的示例系统100中的控制器140包括调度器142和资源管理器144。例如,控制器140或者控制器140的调度器142通信地耦接到外部接口130以促进外部组件对dpe资源120的访问。资源管理器144可以监控dpe资源120的各种部分的可应用性并且可以选择性地将资源120分配给实体,例如上述外部组件。

在各种示例中,通过复制物理忆阻dpe110的外部接口130来虚拟化忆阻dpe110。如图1中所示,示例系统100包括复制接口150a-n。在各种示例中,可以使任何实际数目的复制接口150a-n可用。在一些示例中,系统100可以设置最大数目的复制接口150以允许资源的充分可应用性。

复制提供这样的机制:单个物理忆阻dpe110由此可以对于各种用户表现为多个单独的物理设备。在这方面,物理忆阻dpe110经由每个复制接口为每个用户提供唯一的存储器空间、工作队列、中断、以及命令处理。在一个示例中,物理忆阻dpe110是基于外围组件互联快速(pcie)的dpe,该dpe可以配置以在pci配置空间中表现为多个功能。每个复制接口提供其自己的配置空间。因此,物理忆阻dpe110表现为单独的多个pcie设备。

物理忆阻dpe110的虚拟化可以通过为每个复制接口150提供单独的流层来实现。因此,与特定复制接口150相关联的用户可以通过对应的复制接口150来访问物理忆阻dpe110的资源(例如dpe资源120)作为虚拟dpe160。在这方面,每个复制接口150a-n通信地耦接到控制器140,类似于控制器140与物理忆阻dpe110的外部接口130的耦接。

例如,在图1的示例中,用户可以通过第一复制接口150a访问物理忆阻dpe110的dpe资源120。在这方面,第一复制接口150a可以与对应的虚拟dpe160a相关联。对应的虚拟dpe160a由物理忆阻dpe110的控制器140调节作为不同的流层。在各种示例中,调度器142可以将时隙、或时间片分配给各种流层或虚拟dpe160a-n。

在各种示例中,在每个时隙上,调度器142动态地选择流层或虚拟dpe160,以经由合适的复制接口150而运行。例如,调度器142可以支持各种调度算法中的任何,例如循环复用和加权循环复用。

图1的示例系统100中的控制器140的资源管理器144可以在每个时隙期间选择性地将至少一种资源分配给虚拟dpe。例如,资源管理器144可以动态地选择调度算法并通过合适的虚拟dpe160管理允许用户执行动作的类型。例如,可以防止特定的流层或虚拟dpe重新配置物理忆阻dpe。

在各种示例中,调度器142和资源管理器144可以促进从调度算法移除层。例如,在一些情况下,可以将整个物理忆阻dpe110分配给特定流程以用于扩展数目的时隙。在这方面,特定流层可以是虚拟dpe160或者通过外部接口130耦接到物理忆阻dpe110的外部组件。在这方面,也可以在延长的时间段内禁用时隙或时间片。

现在参照图2,图1的示例系统100示出为具有忆阻dpe110的示例dpe资源120。在图2的示例中,dpe资源120包括若干瓦片(tile)122。在各种示例中,每个瓦片122是dpe资源120的子集。例如,可以将若干瓦片122分配给特定任务或流层。在这方面,可以分割dpe资源120以同时容纳并支持任何数目的任务。进一步,瓦片122可以以任何各种方式布置。例如,在图2的示例中,瓦片122以阵列布置。

现在参照图3,图2的示例系统示出为具有忆阻dpe110的dpe资源120中的瓦片122的示例详细图示。图3的示例瓦片300是使用忆阻交叉开关阵列的示例架构。在这方面,图3的示例瓦片300包括存储器缓冲器310(例如,增强型动态随机存取存储器(edram)、或缓冲器),以及诸如输出寄存器(or)312以及移位和加法单元(s+a)314等各种其他组件。存储器缓冲器310可以是例如dram缓冲器或另一类型缓冲器,并且可以用于存储向以下所述的交叉开关阵列322提供的输入值。进一步,输出寄存器312可以用于聚合来自移位和加法单元314的结果,也如以下所述。dpe资源120中的每个瓦片(例如瓦片300)提供有控制单元316,该控制单元316可以通信地耦接到忆阻dpe110的控制器140。在这方面,每个瓦片122通过总线而耦接到控制器140,用于在控制器140和每个瓦片122的各种组件(例如控制单元316)之间提供连接。示例瓦片300提供有一组组件,称作原位乘法累加(ima)单元320。在图3的示例中,瓦片300提供有八个ima单元320。

在图3中详细示出了ima单元320的一个示例架构。在所示的示例中,ima单元320提供有若干忆阻器交叉开关单元322。在图3的示例中,ima单元320提供有四个忆阻器交叉开关单元322。每个交叉开关单元322耦接到数字至模拟转换器(dac)324以及采样和保持单元(s+h)326。来自dac324的信号可以组合(例如,经由输入寄存器328)并提供给一组模拟至数字转换器(adc)330。图3的ima单元320还包括控制单元332,控制单元332可以例如通过瓦片300的控制单元316而通信地耦接到忆阻dpe110的控制器140。ima单元320还包括各种其他组件,例如输出寄存器334以及移位和加法单元336。在各种示例中,ima单元320的输出寄存器334可以是瓦片300的输出寄存器312的一部分或者耦接到瓦片300的输出寄存器312。类似地,ima单元320的移位和加法单元336可以是瓦片300的移位和加法单元314的一部分或者耦接到瓦片300的移位和加法单元314。

在各种示例中,每个忆阻交叉开关阵列322包括若干行线以及与行线344交叉的若干列线342。忆阻存储器元件346位于行线344和列线342的每个交叉点处。每个忆阻元件346接收用于表示矩阵内的数值的编程矢量信号、参考矢量信号、以及用于表示将乘以矩阵的矢量值的操作矢量信号。在这方面,交叉开关阵列322的行线344耦接到dac322以根据存储在存储器缓冲器310中的输入值为行线344提供输入电压348,用于形成输入矢量信号。进一步,每个列线342耦接到采样和保持单元326以从列线342接收电流。每个采样和保持单元326耦接到adc330以及移位和加法单元336以将列线342中的电流转换为电压信号。在dpe110的各种示例中,通过将输入电压施加到行线344并收集流过列线342的电流以及测量输出电压来执行矢量和矩阵相乘。

因此,可以对交叉开关阵列322执行点积操作,并且将结果发送到adc330并将结果聚合在输出寄存器334或输出寄存器312中。例如,聚合后的结果通过s形操作器313发送并存储在存储器缓冲器310中用于进一步处理。

现在参照图4,示出了用于虚拟化忆阻dpe阵列的另一示例系统。在图4的示例系统400中,上述示例系统100的单个忆阻dpe110可以替换为或附加多个物理忆阻dpe410a-d。在图4的示例系统400中,示出了四个物理忆阻dpe410a-d。在其他示例中,可以提供任何实际数目的物理忆阻dpe410a-d。

图4的示例系统400允许形成能够管理多个物理忆阻dpe并以机架规模工作的虚拟平台。在这方面,多个或数个物理忆阻dpe410a-d以及它们的资源可以汇集在一起以提供大型资源池。忆阻dpe410a-d的池和/或忆阻dpe410a-d的dpe资源池可以由dpe网格管理器420管理。在各种示例中,dpe网格管理器420是外部组件,该外部组件使用管理接口来管理多个忆阻dpe410a-d并通过虚拟dpe430向dpe用户440提供类os服务。在这方面,用户或承租人(例如,虚拟dpe430)经由dpe网格管理器420来动态地请求、分配并释放忆阻dpe410。

现在参照图5,示出了用于使用加密数据交换来虚拟化忆阻dpe的另一示例系统。图5示出了图1的示例系统100,其中用户170通过对应的复制接口150b经由虚拟dpe160b访问物理忆阻dpe110。如图5中所示,用户可以通过与忆阻dpe以加密形式交换信息来以安全方式访问共享资源(例如物理忆阻dpe110)。例如,用户上传的数据可以是加密数据。信息的加密可以由忆阻dpe110的dpe资源120使用由用户170提供的加密密钥而解密。

对于敏感工作负荷,忆阻dpe110可以在逐层的基础上使用用户提供的加密密钥来支持加密数据的使用。因此,代替每个流层用户以明文向dpe提供数据,可以使用诸如aes等对称加密算法利用用户提供的密钥来加密数据。忆阻dpe110可以恰好在处理瓦片之前透明地解密输入数据,并且可以在输出数据离开瓦片之前重新加密输出数据。

加密的使用为共享忆阻dpe110的用户170提供安全性,例如在云环境中。在这方面,加密保护用户的信息和活动免受其他虚拟dpe(例如虚拟dpe160a)的用户以及忆阻dpe的管理员(例如图5中所示的管理员190)的影响。在图5中所示的示例中,可以提供管理员190来控制对忆阻dpe110的访问。在这方面,当用户希望访问忆阻dpe110以例如创建虚拟dpe会话时,用户170可以向管理员190提交请求。如果用户170提供的证书是令人满意的,则管理员190可以使用户170能够访问忆阻dpe并且例如创建虚拟dpe会话。例如,管理员190可以对用户170的访问施加限制,例如对虚拟dpe会话的时间限制。如上所述,来自用户170的信息的加密阻止管理员190或任何其他实体访问用户的信息。

现在参照图6,流程图示出了用于使用虚拟化dpe的示例方法。示例方法600可以实施在例如物理忆阻dpe110的控制器140中或者由另一处理器实施。示例方法600包括复制忆阻dpe的至少一个外部接口(框610)。在这方面,每个复制接口对应于虚拟dpe,并且每个虚拟dpe对应于流层用于访问忆阻dpe的资源。

示例方法还包括对于与虚拟dpe相对应的流层调度时隙用于访问dpe(框620)。如上所述,在一些示例中,物理忆阻dpe可以包括具有调度器的控制器,用于在每个时隙动态地选择流层或虚拟dpe以经由合适的复制接口运行。例如,调度器可以支持任何各种调度算法,例如循环复用和加权循环复用。

现在参照图7,示出了具有包括可由处理器执行用于粒子排序的指令的非暂时性计算机可读存储介质的示例系统的框图。系统700包括处理器710和非暂时性计算机可读存储介质720。计算机可读存储介质720包括可由处理器710执行以执行在此所述的各种功能的示例指令721-722。在各种示例中,非暂时性计算机可读存储介质720可以是任何各种存储设备,包括但不限于,随机存储器(ram)、动态ram(dram)、静态ram(sram)、闪存、只读存储器(rom)、可编程rom(prom)、电可擦除prom(eeprom)等。在各种示例中,处理器710可以是通用处理器、专用逻辑器件等。

示例指令包括将时隙调度给虚拟点积引擎的指令721。在这方面,物理忆阻dpe可以耦接到至少一个复制接口,每个复制接口对应于虚拟dpe或流层。可以通过对应的复制接口将时隙调度给虚拟点积引擎(dpe)。每个复制接口可以将对应的虚拟dpe耦接到物理忆阻dpe。

示例指令还包括用于通过复制指令将dpe资源分配给虚拟dpe的指令722。在这方面,可以对于每个时隙来选择性地将物理忆阻dpe的资源分配给虚拟dpe。

已经出于说明和描述的目的呈现了各种示例的前述描述。前述描述并非旨在穷举或限制所公开的示例,并且按照以上教导可以进行修改和变化,或者可以从各种示例的实践中获取。选择和描述在此讨论的示例,以便解释本公开的各自示例的原理和本质及其实际应用,以使本领域技术人员能够在各种示例中利用适于预期特定用途的本公开和各种修改。在此描述的示例的特征可以组合在方法、装置、模块、系统和计算机程序产品的所有可能组合中。

在此也应注意,尽管以上描述了示例,但是这些描述不应视为限制。而是,在不脱离所附权利要求限定的范围的情况下,可以进行若干变化和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1