会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 协处理器 / 基于电阻切换式存储器的协处理器和包括其的计算设备

基于电阻切换式存储器的协处理器和包括其的计算设备

阅读:1059发布:2020-09-04

IPRDB可以提供基于电阻切换式存储器的协处理器和包括其的计算设备专利检索,专利查询,专利分析的服务。并且本发明公开了一种基于电阻切换式存储器的协处理器和包括其的计算设备。在通过补充主机的CPU的功能或者不依赖于CPU地执行数据处理的协处理器中,对应于协处理器的核的处理元件执行从主机传输的内核,并且服务器管理根据通过处理元件的内核执行所生成的存储器请求。连接于电阻切换式存储器模块的存储控制器根据从服务器传输的存储器请求,在电阻切换式存储器模块和处理元件之间移动对应于存储器请求的数据。网络集成了处理元件、服务器以及存储控制器。,下面是基于电阻切换式存储器的协处理器和包括其的计算设备专利的具体信息内容。

1.一种协处理器,所述协处理器通过补充主机的中央处理单元(CPU)的功能或者不依赖于CPU来执行数据处理,所述协处理器包括:处理元件,所述处理元件对应于所述协处理器的核,并且执行从所述主机传输的内核;

服务器,所述服务器管理根据由所述处理元件执行所述内核生成的存储器请求;

电阻切换式存储器模块;

存储控制器,所述存储控制器连接于所述电阻切换式存储器模块,并且使所述处理元件访问所述电阻切换式存储器模块,从而在不需要计算设备的操作系统的辅助的情况下,根据从所述服务器传输的所述存储器请求,在所述电阻切换式存储器模块和所述处理元件之间移动对应于所述存储器请求的数据;以及网络,所述网络集成了所述处理元件、所述服务器以及所述存储控制器。

2.根据权利要求1所述的协处理器,其中,当所述数据在所述电阻切换式存储器模块和所述处理元件之间移动时,所述数据并没有被储存在所述主机中。

3.根据权利要求1所述的协处理器,其中,所述服务器将储存在所述电阻切换式存储器模块中的所述内核的存储器地址储存到所述处理元件,用于所述内核的执行。

4.根据权利要求3所述的协处理器,其中,所述服务器将所述内核的所述存储器地址作为启动地址储存到所述处理元件的缓存。

5.根据权利要求4所述的协处理器,还包括功率休眠控制器,所述功率休眠控制器根据所述服务器的控制来控制所述处理元件的休眠模式,其中,所述服务器在将所述内核的所述存储器地址储存到所述处理元件之前,使用所述功率休眠控制器将所述处理元件置于所述休眠模式,并且在将所述内核的所述存储器地址储存到所述处理元件之后,使用所述功率休眠控制器撤销所述处理元件。

6.根据权利要求3所述的协处理器,还包括接口模块,所述接口模块被用于与所述主机进行通信,其中,在所述服务器通过所述接口模块从所述主机接收中断之后,所述存储控制器将来自所述主机的所述内核储存到所述电阻切换式存储器模块。

7.根据权利要求1所述的协处理器,其中,所述处理元件包括缓存,其中,在所述处理元件的缓存中发生缓存缺失的时候,所述处理元件向所述服务器发出存储器请求,并且其中,在不需要所述计算设备的其他存储器的辅助的情况下,所述存储控制器从所述电阻切换式存储器模块读取对应于所述存储器请求的数据,并且将所述数据储存到所述处理元件的缓存。

8.根据权利要求1所述的协处理器,其中,所述处理元件包括缓存,其中,所述存储器请求包括用于请求写入数据的存储器请求,并且其中,在不需要所述计算设备的其他存储器的辅助的情况下,所述存储控制器从所述处理元件的缓存加载对应于所述存储器请求的数据,并且将所述数据写入所述电阻切换式存储器模块。

9.根据权利要求1所述的协处理器,其中,所述电阻切换式存储器模块采用DDR(双数据速率)接口。

10.根据权利要求9所述的协处理器,其中,所述DDR接口是非易失性存储器接口。

11.根据权利要求1所述的协处理器,其中,所述电阻式切换存储器模块包括:存储单元阵列,所述存储单元阵列包括多个电阻切换式存储单元;

多个行地址缓冲区;以及

行解码器,所述行解码器从所述存储单元阵列中选择目标行,其中,所述存储控制器根据所述存储器请求将用于访问所述电阻切换式存储器模块的行地址分成高位地址和低位地址,将所述高位地址传递到在所述多个行地址缓冲区中的目标行地址缓冲区,并且将所述低位地址传递到所述行解码器,并且其中,所述行解码器基于所述目标行地址缓冲区中储存的所述高位地址和从所述存储控制器接收的所述低位地址所组合成的地址,选择所述目标行。

12.根据权利要求11所述的协处理器,其中,所述存储控制器将用于从所述多个行地址缓冲区选择所述目标行地址缓冲区的地址传输到所述多个行地址缓冲区。

13.根据权利要求11所述的协处理器,其中,所述电阻切换式存储器模块还包括多个行数据缓冲区,其中,从所述存储单元阵列的目标行读取的数据被储存到所述多个行数据缓冲区中的目标行数据缓冲区。

14.根据权利要求11所述的协处理器,其中,所述电阻式切换存储器模块还包括:寄存器,所述寄存器被映射到所述存储单元阵列;以及

程序缓冲区,所述程序缓冲区基于所述寄存器的值储存将要被写入所述存储单元阵列的数据,其中,储存在所述程序缓冲区中的数据被写入所述存储单元阵列。

15.根据权利要求1所述的协处理器,其中,所述电阻切换式存储器模块包括相变存储器模块、电阻式存储器模块或者磁阻式存储器模块。

16.一种协处理器,所述协处理器通过补充主机的中央处理单元(CPU)的功能或者不依赖于CPU来执行数据处理,所述协处理器包括:接口模块,所述接口模块被用于与所述主机进行通信,

电阻切换式存储器模块,所述电阻切换式存储器模块储存从所述主机传输的内核;

处理元件,所述处理元件对应于所述协处理器的核,并且从所述电阻切换式存储器模块加载所述内核以执行所述内核;

服务器,所述服务器与所述主机进行通信,并且从所述处理元件接收根据所述内核的执行生成的存储器请求;

存储控制器,所述存储控制器连接于所述电阻切换式存储器模块,并且响应于从所述主机接收所述存储器请求,使所述处理元件访问所述电阻切换式存储器模块;以及网络,所述网络集成了所述接口模块、所述处理元件、所述服务器以及所述存储控制器。

17.根据权利要求16所述的协处理器,其中,所述存储控制器根据所述存储器请求访问所述电阻切换式存储器模块,以在不需要计算设备的操作系统和其他存储器辅助的情况下在所述电阻切换式存储器模块和所述处理元件之间移动数据。

18.根据权利要求17所述的协处理器,其中,在所述数据被移动时,所述数据没有被储存在主机中。

19.根据权利要求16所述的协处理器,其中,所述服务器将储存在所述电阻切换式存储器模块中的所述内核的存储器地址储存到所述处理元件,并且其中,所述处理元件基于所述存储器地址加载所述内核。

20.根据权利要求19所述的协处理器,其中,所述服务器在将所述内核的存储器地址储存到所述处理元件之前将所述处理元件置于休眠模式,并且在将所述内核的存储器地址储存到所述处理元件之后撤销所述处理元件。

21.一种计算设备,包括:

根据权利要求1所述的协处理器;

CPU;

系统存储器;以及

存储器桥,所述存储器桥将所述协处理器和所述系统存储器与所述CPU连接。

说明书全文

基于电阻切换式存储器的协处理器和包括其的计算设备

[0001] 相关申请的交叉引用
[0002] 本申请要求享有于2016年7月26日在美国专利商标局提交的美国临时申请No.62/366,667的优先权和权益、以及于2016年9月19日在韩国知识产权局提交的韩国专利申请No.10-2016-0119517和2016年11月7日在韩国知识产权局提交的韩国专利申请No.10-
2016-0147249的优先权和权益,其全部内容通过引用并入本文。
[0003] 背景
[0004] (a)领域
[0005] 所描述的技术总体涉及基于电阻切换式存储器的协处理器以及包括该协处理器的计算设备。
[0006] (b)相关技术的描述
[0007] 基于众核的协处理器正在日益普及,诸如,具有高并行计算能力和相对低功耗的图形处理单元(GPU)和集成众核(MIC)设备。在这种协处理器中,很多处理核共享执行控制,并且可以经由线程级并行和数据级并行对很多数据片段执行同样的操作。将协处理器和中央处理单元(CPU)一起使用的系统可以展示与仅CPU的系统相比显著的加速。
[0008] 协处理器可以处理比它们之前曾经具有的数据更多的数据,并且这种数据的量是所期望的。然而,协处理器采用与主机存储器相比尺寸相对较小的机载存储器。因此,协处理器使用与主机连接以处理大的数据集的非易失性存储器,例如固态盘(SSD)。
[0009] 然而,协处理器和非易失性存储器被相互完全断开且由不同的软件栈管理。结果,在用户空间和内核空间之间存在很多冗余存储器的分配/释放和数据备份,以便从非易失性存储器读取数据或将数据写入非易失性存储器。另外,由于内核模块不能直接访问用户空间存储器,因此,在内核空间和用户空间之间的存储器管理和数据备份开销是不可避免的。此外,内核模式和用户模式切换开销连同数据备份同样带来数据移动的长延迟。这些开销造成与协处理器的性能相比的加速改善不显著。
[0010] 概述
[0011] 本发明的实施例提供了基于电阻切换式存储器的协处理器和包括该基于电阻切换式存储器的协处理器的计算设备,以用于消除在CPU、储存设备和协处理器中的不必要的数据移动/备份。
[0012] 根据本发明的实施例,提供了通过补充主机的CPU的功能或者不依赖于CPU地执行数据处理的协处理器。协处理器包括处理元件、服务器、电阻切换式存储器模块、存储控制器以及网络。处理元件对应于协处理器的核并且执行从主机传输的内核。服务器管理根据处理元件执行内核生成的存储器请求。存储控制器连接于电阻切换式存储器模块并且使处理元件访问电阻切换式存储器模块,从而在不需要计算设备的操作系统的辅助的情况下根据从服务器传输的存储器请求,在电阻切换式存储器模块和处理元件之间移动对应于存储器请求的数据。网络集成了处理元件、服务器以及存储控制器。
[0013] 在一个实施例中,当数据在电阻切换式存储器模块和处理元件之间移动时,数据可以不被储存在主机中。
[0014] 在一个实施例中,服务器将储存在电阻切换式存储器模块中的内核的存储器地址储存到处理元件,用于内核的执行。
[0015] 在一个实施例中,服务器可以将内核的存储器地址作为启动地址储存到处理元件的缓存。
[0016] 在一个实施例中,协处理器还可以包括功率休眠控制器,其根据服务器的控制来控制处理元件的休眠状态,并且服务器可以在将内核的存储器地址储存到处理元件之前使用功率休眠控制器将处理元件置于休眠模式,并且在将内核的存储器地址储存到处理元件之后使用功率休眠控制器撤销处理元件。
[0017] 在一个实施例中,协处理器还可以包括用于与主机进行通信的接口模块。在这种情况下,在服务器通过接口模块从主机接收中断之后,存储控制器可以将内核从主机储存到电阻切换式存储器模块。
[0018] 在一个实施例中,处理元件可以包括缓存。在这种情况下,在处理元件的缓存中发生缓存缺失的时候,处理元件可以向服务器发出存储器请求;并且在不需要计算设备的其他存储器的辅助的情况下,存储控制器可以从电阻切换式存储器模块读取对应于存储器请求的数据,并且将数据储存到处理元件的缓存。
[0019] 在一个实施例中,处理元件可以包括缓存。在这种情况下,当存储器请求包括用于请求写入数据的存储器请求的时候,在不需要计算设备的其他存储器的辅助的情况下,存储控制器可以从处理元件的缓存加载对应于存储器请求的数据,并且将数据写入电阻切换式存储器模块。
[0020] 在一个实施例中,电阻切换式存储器模块可以采用DDR(双数据速率)接口。
[0021] 在一个实施例中,DDR接口可以是非易失性存储器接口。
[0022] 在一个实施例中,电阻切换式存储器模块可以包括存储单元阵列,其包括多个电阻切换式存储单元、多个行地址缓冲区以及从存储单元阵列选择目标行的行解码器。存储控制器可以根据存储器请求将用于访问电阻切换式存储器模块的行地址分成高位地址和低位地址,将高位地址传递到在多个行地址缓冲区中的目标行地址缓冲区,并且将低位地址传递到行解码器。行解码器可以基于在目标行地址缓冲区中储存的高位地址和从存储控制器接收的低位地址所结合成的地址,选择目标行。
[0023] 在一个实施例中,存储控制器可以将用于从多个行地址缓冲区中选择目标行地址缓冲区的地址传输到多个行地址缓冲区。
[0024] 在一个实施例中,电阻切换式存储器模块还可以包括多个行数据缓冲区。在这种情况下,从存储单元阵列的目标行读取的数据可以被储存到多个行数据缓冲区中的目标行数据缓冲区。
[0025] 在一个实施例中,电阻切换式存储器模块还可以包括映射到存储单元阵列的寄存器以及基于寄存器的值储存将要被写入存储单元阵列的数据的程序缓冲区。在这种情况下,储存在程序缓冲区中的数据可以被写入存储单元阵列。
[0026] 在一个实施例中,电阻切换式存储器模块可以包括相变存储器模块、电阻式存储器模块或者磁阻式存储器模块。
[0027] 根据另一个实施例的协处理器包括接口模块、电阻切换式存储器模块、处理元件、服务器、存储控制器以及网络。接口模块用于与主机进行通信,并且电阻切换式存储器模块储存从主机传输的内核。处理元件对应于协处理器的核,并且从电阻切换式存储器模块加载内核以执行内核。服务器与主机进行通信,并且从处理元件接收根据内核的执行生成的存储器请求。存储控制器连接于电阻切换式存储器模块,并且响应于从主机接收存储器请求,使处理元件访问电阻切换式存储器模块。网络集成了接口模块、处理元件、服务器以及存储控制器。
[0028] 在一个实施例中,存储控制器可以根据存储器请求,访问电阻切换式存储器模块,以在不需要计算设备的操作系统和其他存储器辅助的情况下,在电阻切换式存储器模块和处理元件之间移动数据。
[0029] 在一个实施例中,当数据被移动时,数据可以不被储存在主机中。
[0030] 在一个实施例中,服务器可以将储存在电阻切换式存储器模块中的内核的存储器地址储存到处理元件,并且处理元件可以基于存储器地址加载内核。
[0031] 在一个实施例中,服务器可以在将内核的存储器地址储存到处理元件之前将处理元件置于休眠模式,并且在将内核的存储器地址储存到处理元件之后唤醒该处理元件。
[0032] 根据本发明的又一个实施例,提供了计算设备,其包括根据以上实施例的协处理器、CPU、系统存储器以及将协处理器和系统存储器与CPU连接的存储器桥。
[0033] 根据本发明的再一个实施例,通过集成多个处理元件和电阻切换式存储器模块形成协处理器,可以降低归因于数据备份/移动的开销。
[0034] 附图简述
[0035] 图1是根据本发明的实施例的计算设备的示意性方框图。
[0036] 图2示意性显示PRAM中的一个存储单元。
[0037] 图3显示施加于图2中显示的存储单元的电流。
[0038] 图4显示在图3中显示的电流施加于图2中显示的存储单元的时候的温度变化。
[0039] 图5是根据本发明的实施例的基于PRAM的协处理器中的PRAM模块的示意性方框图。
[0040] 图6显示根据本发明的实施例的PRAM模块的存储单元阵列中的分区方案的示例。
[0041] 图7示意性显示根据本发明的实施例的PRAM模块中的半分区。
[0042] 图8A是显示根据本发明的实施例的基于PRAM的协处理器的示意性方框图。
[0043] 图8B是显示根据本发明的实施例的基于PRAM的协处理器中的代理的示意性方框图。
[0044] 图9显示根据本发明的实施例的基于PRAM的协处理器的三阶段寻址。
[0045] 图10显示根据本发明的实施例的基于PRAM的协处理器的运行。
[0046] 图11是显示根据本发明的实施例的基于PRAM的协处理器的数据移动方法的流程图。
[0047] 图12显示常规计算设备的协处理器上的数据移动。
[0048] 图13显示根据本发明的实施例的计算设备的基于PRAM的协处理器的数据移动。
[0049] 图14显示根据本发明的实施例的基于PRAM的协处理器上的编程模型。
[0050] 实施例的具体描述
[0051] 在以下详细描述中,仅通过例证的方式,只显示和描述了本发明的某些实施例。本领域的技术人员将会认识到,在全都不偏离本发明的精神或范围的情况下,所描述的实施例可以以各种不同的方式被修改。相应地,附图和描述被认为是本质上是说明性的而不是限制性的。在整个说明书中,相同的参考数字表示相同的元件。
[0052] 图1是根据本发明的实施例的计算设备的示意性方框图。图1显示了计算设备的示例,并且根据本发明的实施例的计算设备可以通过使用各种结构而被实现。
[0053] 参考图1,计算设备包括CPU 110、系统存储器120和基于电阻切换式存储器的协处理器130。
[0054] 作为非易失性存储器的电阻切换式存储器包括使用电阻介质(相变材料)的电阻率的相变存储器(PCM)、使用存储设备的电阻的电阻式存储器或者磁阻式存储器。虽然在以下的实施例中将PCM(具体来说,是相变随机存取存储器(PRAM))描述为电阻切换式存储器的示例,但是本发明的实施例不限于PCM(或者PRAM),而是可以适用于电阻式存储器,例如,电阻式随机存取存储器(RRAM)或者磁阻式存储器,例如,磁阻式随机存取存储器(诸如,自旋转移矩MRAM(STT-MRAM)))。
[0055] 系统存储器120是计算设备的主存储器,并且可以例如是动态随机存取存储器(DRAM)。在基于PRAM的协处理器130中使用的协处理器是与通用CPU不同的补充数据处理设备,并且可以是用于通过补充CPU的功能来执行数据处理或者不依赖于CPU地执行数据处理的计算机硬件。图形处理单元(GPU)或者集成众核(MIC)设备可以是这个协处理器的示例。
[0056] 在一些实施例中,计算设备还可以包括存储器桥140,其用于将系统存储器120和基于PRAM的协处理器130与CPU 110连接。基于PRAM的协处理器130可以连接于位于CPU侧的存储器桥140。例如,基于PRAM的协处理器130可以经由PCIe(外围组件互联快递)接口连接于存储器桥140。存储器桥140可以例如是北桥或存储控制器集线器(MCH)。
[0057] 另外,存储器桥140可以连接于输入/输出(I/O)桥150。I/O桥150可以例如是南桥或I/O控制器集线器(ICH)。I/O桥150可以接收来自(未显示的)用户输入设备的用户输入,并经由存储器桥140将用户输入传输到CPU 110。
[0058] 虽然常规协处理器仅包括用于并行的多个处理元件,但是根据本发明的实施例的基于PRAM的协处理器130是将对应于协处理器核的多个处理元件131与电阻切换式存储器模块132物理地集成的协处理器。如以上描述的,假设电阻切换式存储器模块132是PRAM模块132。正因如此,在不需要通过将协处理器130与PRAM模块132(其是非易失性存储器)集成以与储存设备交换数据的情况下,可以执行协处理器130的操作。
[0059] 在一些实施例中,可以将包括CPU 110、系统存储器120、存储器桥140和I/O桥150的系统称为主机。
[0060] 计算设备可以将内核卸载到基于PRAM的协处理器130,这允许基于PRAM的协处理器130直接执行内核。内核意为可以在协处理器130上被执行的任何种类的功能或者程序。例如,这些应用可以是将计算从主机卸载到基于PRAM的协处理器130的应用。可以将这些应用称为内核。相应地,主机可以访问基于PRAM的协处理器130,以卸载内核或者处理数据的读取/写入。在这种情况下,基于PRAM的协处理器130的处理元件可以直接访问基于PRAM的协处理器130的PRAM模块132并且执行内核。因此,可以移除由常规协处理器从外部存储器读取数据或者将数据写入外部设备所必需的很多冗余存储器的分配/释放以及数据备份。
[0061] 接下来,描述根据本发明的实施例的被包括在基于PRAM协处理器130中的PRAM模块132的示例。
[0062] 图2示意性地显示了在PRAM中的一个存储单元,图3显示了施加于图2中显示的存储单元的电流,并且图4显示了当将图3中显示的电流施加于图2中显示的存储单元的时候的温度变化。
[0063] 图2中显示的存储单元是示例存储单元,并且根据本发明的实施例的PRAM的存储单元可以以各种形式被实现。
[0064] 参考图2,PRAM的存储单元200包括相变元件210和切换元件220。可以采用各种元件(诸如,晶体管或者二极管)实现切换元件220。相变元件210包括相变层211、在相变层211之上形成的上电极212以及在相变层211之下形成的下电极213。例如,相变层210可以包括作为相变材料的锗(Ge)、锑(Sb)和碲(Te)的合金,其通常被称为GST合金。
[0065] 相变材料可以在具有相对高电阻率的无定形态和具有相对低电阻率的晶态之间被切换。可以通过加热温度和加热时间确定相变材料的状态。
[0066] 再次参考图2,当对存储单元200施加电流的时候,所施加的电流流过下电极213。当在短时间期间对存储单元200施加电流的时候,相变层211中的、临近下电极213的一部分通过电流加热。根据电流的加热分布,相变层211的交叉影线部分被切换到晶态和无定形态中的一个。晶态被称为设置状态,并且无定形态被称为重置状态。
[0067] 参考图3和图4,当具有高电流的重置脉冲RESET在短时间tRST期间被施加于存储单元200的时候,相变层211被编程到重置状态。如果随着相变层211中的相变材料通过所施加的重置脉冲RESET加热,相变材料的温度Tr达到熔点,那么相变材料熔化然后切换到无定形态。当在比时间tRST更长的时间tSET期间将具有比重置脉冲RESET更低的电流的设置脉冲SET施加到存储单元200的时候,相变材料211被编程到设置状态。如果随着相变材料通过所施加的设置电流SET加热,相变材料的温度Ts达到比熔点更低的结晶温度,那么相变材料变换为晶态。由于当以比设置脉冲SET更低的电流或者以比设置脉冲SET更短地施加脉冲的时候,可以保持重置状态和设置状态,因此可以对存储单元200编程数据。
[0068] 重置状态和设置状态可以分别被设置为“1”和“0”的数据,并且数据可以通过测量存储单元200中的相变元件210的电阻率而感测。可选地,重置状态和设置状态可以分别被设置为“0”和“1”的数据。
[0069] 因此,可以通过对存储单元200施加读取脉冲READ来读取储存在存储单元200中的数据。在非常短的时间tREAD期间以低电流施加读取脉冲READ,使得存储单元200的状态不改变。读取脉冲READ的电流可以比设置脉冲SET的电流更低,并且读取脉冲READ的施加时间可以比重置脉冲RESET的施加时间tRST更短。因为存储单元200中的相变元件210的电阻率根据相变元件210的状态而不同,所以可以通过流动到相变元件210的电流的大小或者相变元件210上的电压降来读取相变元件210的状态,即,储存在存储单元200中的数据。
[0070] 在一个实施例中,当施加读取脉冲READ的时候,可以通过在存储单元200处的电压来读取存储单元200的状态。在这种情况下,由于存储单元200的相变元件210在重置状态中具有相对高的电阻,因此状态可以在相变元件210处感测到的电压相对高的情况下被确定为重置状态,并且可以在相变元件210处感测到的电压相对低的情况下被确定为设置状态。在另一个实施例中,可以在对存储单元200施加电压的时候,通过输出电流读取存储单元
200的状态。在这种情况下,状态可以在相变元件210处感测到的电流相对低的情况下被确定为重置状态,并且在相变元件210处感测到的电流相对高的情况下被确定为设置状态。
[0071] 由于写入的数据实际上是在PRAM中的一系列的重置和设置过程,因此通过具有较长施加时间的重置脉冲的写入操作比读取操作慢得多。
[0072] 图5是根据本发明的实施例的基于PRAM的协处理器中的PRAM模块的示意性方框图。在图5中显示的PRAM模块可以是PRAM芯片或者PRAM组。
[0073] 参考图5,PRAM模块500包括存储单元阵列510、行地址缓冲区520、行数据缓冲区530、行解码器540、读出放大器550和写入驱动器560。
[0074] 存储单元阵列510包括基本上在行的方向上延伸的(未显示的)多个字线、基本上在列的方向上延伸的(未显示的)多个位线、以及连接于字线和位线并且以基本上是矩阵的形式形成的(未显示的)多个存储单元。存储单元可以例如是参考图2描述的存储单元200。
[0075] 行地址缓冲区520和行数据缓冲区530二者形成行缓冲区。在一些实施例中,为了处理写入操作比读取操作更慢的不同步延迟问题,可以提供多个行缓冲区,即,多个行地址缓冲区520和多个行数据缓冲区530。
[0076] 行地址缓冲区520储存来自(未显示的)存储控制器的命令和地址(具体来说是行地址)。在一些实施例中,可以提供多个行地址缓冲区520。在一个实施例中,可以为每个组提供一个行地址缓冲区520,并且存储控制器可以提供用于对行地址缓冲区520进行寻址的组地址(例如,缓冲区号码)。在另一个实施例中,可以为每个组提供两个或更多个行地址缓冲区422,并且可以通过组地址或者组地址中的一部分来对每个行地址缓冲区422进行寻址。
[0077] 行数据缓冲区530储存来自存储单元阵列510的数据。在一些实施例中,可以提供多个行数据缓冲区530。在一个实施例中,可以为每个组提供一个行数据缓冲区530,并且存储控制器可以提供用于对行数据缓冲区530进行寻址的组地址(例如,缓冲区号码)。在另一个实施例中,可以为每个组提供两个或更多个行数据缓冲区530,并且可以通过组地址或者组地址中的一部分来对每个行数据缓冲区530进行寻址。
[0078] 在一些实施例中,PRAM模块500可以采用非易失性存储器(NVM)接口以使用多个行缓冲区520和530。在一个实施例中,非易失性存储器接口可以是双数据速率(DDR)接口,例如,LPDDR2-NVM(低功耗双数据速率2非易失性存储器)接口。在这种情况下,行地址缓冲区520经由NVM接口接收行地址和组地址,并且行地址缓冲区530经由NVM接口输出数据。
[0079] 行解码器540将行地址解码,以从存储单元阵列510中的多个行中选择目标行。也就是说,行解码器540从存储单元阵列510的多个字线中选择用于读取数据或者写入数据的目标字线。
[0080] 在一些实施例中,从存储控制器传输的行地址可被分成高位地址和低位地址。在这种情况下,高位地址可以被传递到行地址缓冲区520,并且低位地址可以被直接传递到行解码器540。行解码器540可以将在行地址缓冲区520中容纳的高位地址与直接被传递的低位地址结合,以选择目标行。
[0081] 读出放大器550读取在存储单元阵列510中储存的数据。读出放大器550可以通过多个位线读取来自与由行解码器540选择的字线连接的多个存储单元的数据。写入驱动器560将输入数据写入存储单元阵列510。写入驱动器560可以通过多个位线将数据写入与由行解码器540选择的字线连接的多个存储单元。
[0082] 在一些实施例中,为了解决写入操作比读取操作更慢的问题,PRAM模块500可以首先将输入数据储存到缓冲区,然后将储存的数据写入存储单元阵列510。为此,PRAM模块500可以使用叠加窗口570和580,该叠加窗口570和580是映射到存储单元阵列510的区域(存储器映射区域)。叠加窗口可以包括叠加窗口寄存器570和程序缓冲区580。叠加窗口寄存器570可以是存储器映射式寄存器,并且程序缓冲区580可以通过叠加窗口寄存器570被访问。
在一个实施例中,可以将关于写入数据的信息(例如,第一数据地址和将要被编程的字节的数量)写入寄存器570,然后可以将写入的数据储存到程序缓冲区580。接下来,当预先确定的值被写入叠加窗口寄存器570的时候,储存到程序缓冲区580的数据可以被写入到存储单元阵列510。在这种情况下,存储控制器通过轮询叠加窗口寄存器570可以确定写入操作是否完成。
[0083] 图6显示根据本发明的实施例的PRAM模块的存储单元阵列中的分区方案的示例,并且图7示意性显示根据本发明的实施例的PRAM模块中的半分区。
[0084] 参考图6,在一些实施例中,存储单元阵列510可以被划分成多个分区PART0到PART15。在图6中示出,通过在行的方向上分成两部分并且在列的方向上分成八部分,存储单元阵列510被划分成十六个分区PART0到PART15。多个行缓冲区520和530可以连接于分区PART0到PART15。每个分区可以被分成两部分(称为半分区),以降低位线和字线的寄生电阻。例如,每个分区可以在行的方向上被分成两个的半分区。
[0085] 在一些实施例中,分区PART0到PART15可以被分成布置在列的方向上的偶数分区PART0、PART2、PART4、PART6、PART8、PART10、PART12和PART14的群组,以及布置在列的方向上的奇数分区PART1、PART3、PART5、PART7、PART9、PART11和PART13的群组。然后,布置在列的方向上的八个的半分区可以形成半分区群组,并且可以设置四个的半分区群组。在这种情况下,PRAM模块500还可以包括分别对应于半分区群组的多个全局列解码器(在下文中被称为“GYDEC”)610。每个GYDEC610连接于在对应的半分区群组中形成的多个全局位线GBL。
[0086] 参考图7,在一些实施例中,每个半分区可以包括被称为图块的多个子阵列。在图7中显示出一个的半分区包括64个图块,图块0到图块63。
[0087] 每个图块包括连接至多个位线BL和多个字线WL的多个存储单元。为了方便,在图7中显示在多个存储单元中的一个存储单元、以及连接于一个存储单元的一个位线BL和一个字线WL。另外,形成存储单元的相变元件和切换元件分别被显示为寄存器和二极管。
[0088] 一个局部列解码器(在下文中被称为“LYDEC”)710可以连接于每个图块。LYDEC 710连接于对应的图块的多个位线BL。在一些实施例中,两个LYDEC 710可以分别连接于对应的图块的两端。另外,在半分区群组中形成的多个全局位线GBL分别对应于多个图块,并且每个全局位线GBL连接于对应的图块的多个位线BL。在一些实施例中,可以使用LYDEC 
710连同GYDEC 610选择对应的半分区的对应的图块中的位线BL。读出放大器(图5中的550)可以通过选择的位线BL读取数据,或者写入驱动器(图5中的560)可以通过选择的位线BL写入数据。
[0089] 子字线驱动器(在下文中被成为“SWD”)720可以连接于每个图块,以使并行的程度最大化。全局字线GWL可以在半分区中形成并且可以连接于主字线驱动器(在下文中被称为“MWD”)730。在这种情况下,在半分区中形成的多个字线WL可以连接于全局字线GWL。在一些实施例中,如图7中显示的,可以在半分区中形成连接于MWD 730的两个全局字线GWL。这个方案被称为双字线方案。在这种情况下,可以将被包括在半分区中的多个图块分组为两个图块群组,并且两个全局字线GWL可以分别对应于两个图块群组。在半分区内的所有SWD连接于主字线驱动器(MWD)。另外,可以通过双字线方案将两个图块分组为一个区块。在一些实施例中,可以使用SWD 720与MWD 730一起来驱动对应的图块中的字线WL。受驱动的字线WL可以由行解码器(图5中的540)选择。
[0090] 当PRAM模块500使用图6和图7中显示的分区的时候,PRAM模块500可以在每个半分区同时执行64个I/O操作。由于可以在图6和图7中显示的分区中并行地访问四个的半分区,因此PRAM模块500可以同时操纵256位数据。为此,可以对半分区群组提供多个读出放大器550和多个写入驱动器560。
[0091] 接下来,参考图8A到图13描述根据本发明的实施例的基于PRAM的协处理器。
[0092] 图8A是显示根据本发明的实施例的基于PRAM的协处理器的示意性方框图,并且图8B是显示根据本发明的实施例的基于PRAM的协处理器中的代理的示意性方框图。
[0093] 参考图8A,基于PRAM的协处理器800包括协处理器810、存储控制器820和PRAM模块830。
[0094] 协处理器810包括多个处理元件PE0到PEn。每个处理元件对应于协处理器核并且包括缓存。在一些实施例中,缓存可以包括L1缓存(1级缓存)和L2缓存(2级缓存)。
[0095] 处理元件PE0到PEn可以根据其作用被分类为服务器PE0和代理PE1到PEn。协处理器810的大部分处理元件PE1到PEn被分配以处理由主机提供的内核。这些处理元件PE1到PEn被称为代理。协处理器810的一个或者几个处理元件PE0被分配为调度代理上的内核执行并且被称为服务器。服务器PE0可以管理由代理PE1到PEn请求的存储器流量。
[0096] 在一些实施例中,由于服务器PE0管理由代理PE1到PEn生成的存储器需求,因此可以通过控制器而非用作核的处理元件来实现服务器PE0。
[0097] 在一些实施例中,服务器PE0可以包括存储控制器单元(MCU),该存储控制器单元接管代理的缓存缺失,并且通过与存储控制器820协同来管理所关联的PRAM访问。
[0098] 在一些实施例中,如图8B中显示,代理可以包括处理元件811、缓存812a、812b和812c、缓存控制器813a、813b和813c以及片上存储控制器814a和814b。
[0099] 在一个实施例中,缓存可以包括L1指令(L1I)缓存812a、L1数据(L1D)缓存812b以及L2缓存812c。在这种情况下,缓存控制器可以包括分别连接于L1I缓存812a、L1D缓存812b以及L2缓存812c的L1I缓存控制器813a、L1D缓存控制器813b以及L2缓存控制器813c。缓存控制器813a、813b和813c中的每个均可以确定请求是对应于缓存812a、812b和812c中的一个缓存的缓存命中还是缓存缺失。L1I缓存812a和L1D缓存812b可以分别经由L1I缓存控制器813a和L1D缓存控制器813b连接于处理元件811,并且L2缓存812c可以经由连接于L1D缓存控制器813b的L2缓存控制器813c连接于处理元件811。例如,L1I缓存控制器813a可以经由128位总线连接于L1I缓存812a,L1D缓存控制器813b可以经由128位总线连接于L2缓存控制器813c,并且L2缓存控制器813c可以经由128位总线连接于L2缓存812c。L1D缓存控制器813b可以经由64位总线分别连接于处理元件811的两个寄存器regA和regB,并且可以经由八条32位总线并行连接L1D缓存812b。
[0100] 在一个实施例中,片上存储控制器可以连接于缓存控制器(具体来说是L2缓存控制器813c)。片上存储控制器可以包括两个片上存储控制器814a和814b,存储控制器814a和814b分别连接于服务器PE0和存储控制器820。例如,片上存储控制器814a可以经由256位总线连接于L2缓存控制器813c,并且经由256位总线连接于服务器PE0。片上存储控制器814b可以经由256位总线连接于L2缓存控制器813c并且分别经由128位总线连接于两个存储控制器820。
[0101] 在一个实施例中,当L2缓存812c中发生缓存缺失的时候,L2缓存控制器813c可以通过片上存储控制器814a和814b生成存储器请求。存储器请求可以经由片上存储控制器814a被传输到服务器PE0。可以经由片上存储控制器814b和L2缓存控制器813c将存储控制器820根据存储器请求从PRAM模块830读取的数据储存到L2缓存812c。
[0102] 虽然在图8A中显示将处理元件PE0到PEn中的一个分配给服务器,并且将其余的处理元件PE1到PEn分配给代理,但是可以将两个或更多个处理元件分配给服务器。
[0103] 存储控制器820经由信道(其可被称作总线)840连接于PRAM模块830。存储控制器820从服务器接收存储器请求,并且将存储器请求通过信道840传输到PRAM模块830。存储控制器820通过信道840将存储器读取/写入命令和地址传输到PRAM模块830,并且与PRAM模块
830交换数据。
[0104] 在一些实施例中,PRAM模块830可以采用NVM接口。在一个实施例中,NVM接口可以是DDR接口,例如,LPDDR2-NVM接口。在PRAM模块830采用DDR接口的情况下,信道840可以是DDR信道,例如,LPDDR信道。在一些实施例中,多个PRAM模块830可以共同连接于一个信道840。在一个实施例中,多个PRAM组(例如,十六个PRAM组)可以共同连接于一个信道840。
[0105] 在一些实施例中,可以提供多个存储控制器820。在图8A中和图8B中显示提供了两个存储控制器820。在这种情况下,多个存储控制器820分别连接于不同的信道840。
[0106] 基于PRAM的协处理器800还可以包括用于将处理元件PE0到PEn与存储控制器820连接以集成处理元件PE0到PEn、存储控制器820以及PRAM模块830的网络850。在一些实施例中,网络850可以是用于p:q通信(p和q是大于一的整数)的交叉开关网络。
[0107] 在一些实施例中,基于PRAM的协处理器800还可以包括用于与主机进行通信的接口模块860。接口模块860可以例如是用于PCIe接口的PCIe模块。主机可以通过接口模块860与协处理器810(具体来说是协处理器810的服务器PE0)和存储控制器820进行通信。对于该通信,接口模块860同样连接于网络850。
[0108] 在一些实施例中,基于PRAM的协处理器还可以包括功率休眠控制器(PSC)870。PSC 870可以根据服务器PE0的控制来控制代理PE1到PEn中的每个代理的模式。服务器PE0可以使用PSC 870把代理PE1到PEn中的每个代理都置于休眠模式(其可被称为空闲模式)或者撤销代理PE1到PEn中的每个代理。因此,服务器PE0可以使用PSC 870暂停或者恢复代理PE1到PEn中的每个中的内核执行。
[0109] 在一些实施例中,处理元件PE0到PEn中的每个处理元件都可以经由主端口和从端口连接于网络,并且存储控制器820可以经由主端口和从端口连接于网络。在一个实施例中,接口模块860可以经由主端口和从端口连接于网络850,使得主机可以与服务器PE0和存储控制器820进行通信。PSC 870可以经由主端口和从端口连接于网络850。
[0110] 根据以上实施例,服务器PE0可以经由网络850接管代理的缓存缺失,然后通过与存储控制器820协同来管理关联的PRAM访问。服务器PE0可以通过总线向存储控制器820发送存储器读取或者写入消息,并且然后,存储控制器820可以根据PRAM模块830管理事务。
[0111] 在一些实施例中,在PRAM模块830采用DDR接口(例如,LPDDR2-NVM接口)的情况下,存储控制器820可以将服务器PE0的请求转换成LPDDR2-NVM事务。为此,存储控制器820可以执行三阶段寻址。
[0112] 存储器地址(即,将要从存储控制器820传输到PRAM模块830的行地址)可以被分成高位地址和低位地址。例如,当行地址使用(n+1)位时,高位地址可以使用高的(n-m+1)位(a[n:m]),并且低位地址可以使用低的(m-x)位(a[m-1:x])(n、m和x是大于零的整数)。
[0113] 图9显示根据本发明的实施例的基于PRAM的协处理器的三阶段寻址。
[0114] 参考图9,在预活动阶段(也就是三阶段寻址中的第一阶段),存储控制器(图8A中的820)将行地址的高位地址(a[n,m])储存在目标行地址缓存区(RAB)520中。当提供了多个RAB 520的时候,可以通过指示缓冲区号码的缓冲区地址BA选择目标RAB 520。
[0115] 在活动阶段(也就是第二阶段),存储控制器820将行地址中的其余部分(即,低位地址(a[m-1,x]))传递到PRAM模块830。被传递到PRAM模块830的低位地址(a[m-1,x])与将要被传递到目标行解码器(图5中的540)的、储存在RAB 520中的高位地址(a[n,m])结合。可以通过缓冲区地址BA选择储存高位地址(a[n,m])的RAB 520。因此,行解码器使用结合的地址来选择存储单元阵列中的目标行。对于读取操作,读出放大器550可以将数据从目标行传递到目标行数据缓冲区(RDB)530。可以通过缓冲区地址BA选择目标RDB 530。
[0116] 在读取阶段(也就是最后阶段)中,存储控制器820使用缓冲区地址BA选择目标RDB 530,并且使用列地址选择所读取的数据的开始地址。因此,存储控制器820能够读取并且输出储存在RDB 530中的所读取的数据。
[0117] 正因如此,存储控制器820通过将行地址分成高位地址和低位地址来将行地址传递到PRAM模块830,使得可以使用DDR接口(具体来说是LPDDR2-NVM接口)实现基于PRAM的协处理器。
[0118] 在一些实施例中,如果在RAB 520中已经存在目标行的高位地址,那么存储控制器820可以跳过预活动阶段,并且直接实现活动阶段。在一些实施例中,如果在RDB 530上准备了目标行的数据,那么存储控制器830可以跳过活动阶段。
[0119] 在写入操作中,行解码器540可以将高位地址和低位地址的结合地址传递到叠加窗口寄存器(图5中的570)。然后,可通过叠加窗口寄存器570将写入数据储存在程序缓冲区(图5中的580)中。因此,服务器PE0或者主机可以识别写入数据被写入PRAM模块830,使得可以解决写入操作比读取操作更慢的问题。另外,由于储存在程序缓冲区580中的数据被编程到存储单元阵列510,因此存储控制器820可以通过轮询叠加窗口寄存器570来确定对存储单元阵列的写入操作实际上是否完成了。
[0120] 正因如此,由于基于PRAM的协处理器使用叠加窗口570和580执行写入操作,因此可以解决写入操作比读取操作更慢的问题。
[0121] 可选地,在一些实施例中,写入数据可以被储存在目标RDB 530中,然后从目标RDB 530被编程到存储单元阵列510。
[0122] 图10显示根据本发明的实施例的基于PRAM的协处理器的运行,并且图11是显示根据本发明的实施例的基于PRAM的协处理器的数据移动方法的流程图。
[0123] 参考图10和图11,主机对基于PRAM协处理器发出中断,例如,PCIe中断。因此,来自主机的中断从接口模块860被转发到基于PRAM的协处理器内的服务器PE0(S1110)。然后,存储控制器820通过接口模块860从主机侧存储器下载包括内核的数据,并且将数据储存到PRAM模块830(S1120)。在一些实施例中,可以将数据下载到PRAM模块830的指定图像空间中。
[0124] 一旦执行下载,服务器PE0将内核的存储器地址(即,内核储存到的PRAM模块830的地址)作为启动地址储存到多个代理中的目标代理PE1的缓存(S1140)。在一些实施例中,用于储存存储器地址的缓存可以是L2缓存。在一些实施例中,在储存内核的存储器地址之前,服务器PE0可以使用PSC 870将目标代理PE1置于休眠模式(S1130)。
[0125] 一旦内核的存储器地址被储存,目标代理PE1基于储存在缓存中的存储器地址加载来自于PRAM模块830的内核,并且自从存储器地址作为启动地址被储存在缓存中开始,目标代理PE1执行内核(S1160)。在一些实施例中,服务器PE0可以经由PSC 870撤销休眠模式的目标代理PE1(S1150)。然后,随着目标代理PE1醒来,目标代理PE1基于储存在缓存中的存储器地址从PRAM模块830加载内核,并且执行内核(S1160)。
[0126] 在内核执行期间,如果由代理PE1请求的数据命中缓存(例如,L2缓存),那么代理PE1可以使用储存在缓存中的数据。然而,在缓存缺失的情况下,代理PE1向服务器PE0发出由缓存缺失生成的存储器请求(S1170)。然后,服务器PE0将存储器请求传输到PRAM模块830的存储控制器820(S1180)。在一些实施例中,存储控制器820可以根据存储器请求,通过将行地址分成高位地址和低位地址,将用于访问PRAM模块830的行地址传输到PRAM模块830。存储控制器820将具有对应于存储器请求的数据的响应发送给代理PE1(S1190)。存储控制器820可以根据存储器请求将数据从通过PRAM模块830的行地址缓冲区(图5中的520)选择的存储单元阵列(图5中的510)的目标行移动到行数据缓冲区(图5中的530),并将被移动到行数据缓冲区530的数据传输到代理PE1。在这种情况下,如果在行数据缓冲区530上准备了数据,那么存储控制器820可以跳过将数据从存储单元阵列510移动到行数据缓冲区520。例如,存储控制器820可以将从PRAM模块830读取的数据上传到代理PE1的L2缓存。正因如此,在不需要计算设备的主存储器(图1中的120)或者其他存储器的辅助的情况下,基于PRAM的协处理器可以使用PRAM模块830的行缓冲区520和530将数据储存到代理PE1的L2缓存。
[0127] 另外,代理PE1可以向服务器PE0发出用于请求将数据写入PRAM模块830的存储器请求(S1170)。然后,服务器PE0可以将存储器请求传输到PRAM模块830的存储控制器820(S1180),并且存储控制器820可以将对应于存储器请求的数据从代理PE1写入PRAM模块830,并且将响应发送到代理PE1(S1190)。也就是说,存储控制器820可以使用行地址缓冲区
520来确定目标行地址,并且根据存储器请求将代理PE1的写入数据储存到PRAM模块830的程序缓冲区(图5中的590),然后将储存在程序缓冲区590的数据写入存储单元阵列510的目标行。例如,存储控制器820可以从代理的L2缓存抓取数据并且将数据写入PRAM模块830。正因如此,在不需要计算设备的主存储器120或者其他存储器的辅助的情况下,基于PRAM的协处理器可以加载来自代理PE1的L2缓存的数据,并且使用PRAM模块830的行缓冲区520将数据写入PRAM模块830。
[0128] 因此,服务器PE0可以通过存储控制器820在代理PE1和行数据缓冲区530之间传输数据,或者编程PRAM模块830的缓冲区590。正因如此,每个处理元件可以通过常规加载/储存指令直接访问基于PRAM的协处理器内的储存核,即,PRAM模块830。也就是说,在不需要对现有指令集架构做出任何修改并且不需要计算设备的操作系统(OS)的辅助的情况下,可以做到PRAM模块访问。因此,可以消除在主机的储存设备和协处理器之间的数据移动。
[0129] 图12显示常规计算设备的协处理器上的数据移动,以及图13显示根据本发明的实施例的计算设备的基于PRAM的协处理器的数据移动。
[0130] 参考图12,应用响应于用户的应用执行通过OS创建了对于读取和/或写入的文件描述符(S1201)。然后,虚拟存储器被分配给系统存储器(例如,用于从存储设备读取数据或者将数据写入储存设备的DRAM)(S1202)。另外,协处理器的存储器被分配用于将数据写入协处理器或者从协处理器读取数据(S1203)。
[0131] 然后,应用通过OS请求对于储存设备的文件读取(S1204),并且物理存储器被分配给DRAM(S1205)。通过OS请求对于储存设备的文件数据(S1206)。然后,将文件数据从储存设备传输到DRAM的物理存储器,并且将文件数据从DRAM的物理存储器复制到虚拟存储器(S1207)。然后,应用将文件数据从DRAM传输到协处理器的存储器(S1208)。因此,协处理器处理文件数据。接下来,文件数据的结果数据从协处理器的存储器被传输到DRAM的虚拟存储器(S1209)。
[0132] 然后,应用请求对于储存设备的文件写入(S1210)。物理存储器被分配给DRAM,使得结果数据从虚拟存储器被复制到DRAM的物理存储器(S1211)并且从DRAM被传输到储存设备(S1212)。
[0133] 接下来,应用释放用于读取和/或写入所分配的DRAM的虚拟存储器(S1213),并且释放用于写入和/或读取所分配的协处理器的存储器(S1214)。另外,应用删除了用于读取和/或写入所创建的文件描述符(S1215)。
[0134] 在图12中,步骤S1201到S1206、S1210、S1213、S1214和S1215代表系统操作,并且步骤S1207、S1208、S1209、S1211和S1212代表数据移动。
[0135] 如以上描述的,常规计算设备被需要来创建文件描述符并且分配驻留在主机侧存储器(DRAM)中的和驻留在协处理器的存储器中的多个存储空间。然后,可以执行对于储存设备的输入/输出以及在主机侧存储器和协处理器的存储器之间的数据移动。在这种情况下,经常要求CPU干预在多个用户软件和内核模块之间的、既涉及协处理器又涉及储存堆栈的数据传输。这些干预引入了用户/内核模式切换以及冗余数据备份,这将大量的周期浪费于在储存设备和协处理器之间移动数据。然而,从用户的观点来看,CPU根本不需要访问主要用在目标协处理器的输入(或者输出)数据。
[0136] 相反,根据本发明的实施例,如图13中显示,内核是由用户生成的,并且被储存在系统存储器中(S1310)。内核从系统存储器被传输到基于PRAM的协处理器(S1320),并且内核的任务在基于PRAM的协处理器内被执行和完成(S1330)。
[0137] 正因如此,根据本发明的实施例的基于PRAM的协处理器统一了计算资源和储存资源,并且因此用户可以在主机上组成内核并且仅将内核传输到用于执行的目标协处理器。因此,可以消除CPU、储存设备和协处理器之中的不必要的主机侧软件干预和存储器备份。
[0138] 图14显示根据本发明的实施例的基于PRAM的协处理器上的编程模型。
[0139] 参考图14,用户可以使用例如pushData()函数和writeMemory()函数来加载内核。pushData()函数可以限定存在内核的主机侧存储器地址,并且writeMemory()函数可以限定将要储存内核的基于PRAM的协处理器上的目标地址,即PRAM模块的地址。因此,指示将要从主机下载的内核的信息(kernel)和内核存在于其中的主机侧存储器地址(&boot_addr)可以作为参数被输入到pushData()函数,如pushData(kernel,&boot_addr)。另外,将要储存内核的PRAM模块的地址(MAGIC_ADDR)和内核存在于其中的主机侧存储器地址(&boot_addr)可以作为参数被输入到writeMemory()函数,如writeMemory(MAGIC_ADDR,&boot_addr)。
[0140] 一旦在基于PRAM的协处理器中完成数据处理,如果有必要的话,用户可以使用例如SaveOutputFile()函数来从基于PRAM的协处理器中检索数据。SaveOutputFile()函数可以指定储存地址和存储器缓冲区。因此,在基于PRAM的协处理器中储存的数据的储存地址(FPGA_ADDR)和将要储存的检索出的数据的存储器缓冲区(memBuffer)可以作为参数被输入到SaveOutputFile()函数,如SaveOutputFile(FPGA_ADDR,memBuffer)。
[0141] 虽然已经结合目前被认为是实际实施例的实施例描述了本发明,但应理解的是,本发明不限于公开的实施例,而是相反地,其旨在覆盖包括在所附权利要求书中的精神和范围内的各种修改和等效布置。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用