用于扩展片上系统的存储器的系统和方法与流程

文档序号:19399726发布日期:2019-12-13 19:03阅读:413来源:国知局
用于扩展片上系统的存储器的系统和方法与流程

概括地说,下面的内容涉及无线通信,并且更具体地,涉及用于扩展片上系统(soc)的存储器。



背景技术:

便携式计算设备(例如,蜂窝电话、智能电话、平板计算机、便携式数字助理(pda)和便携式游戏控制台)持续提供不断扩展的一大批特征和服务,并向用户提供前所未有的级别的对信息、资源和通信的访问。为了跟上这些服务增强,这种设备变得更强大且更复杂。便携式计算设备现在通常包括片上系统(soc),所述soc包括嵌入在单个衬底(例如,一个或多个中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器等)上的一个或多个芯片组件。

这种便携式计算设备中的系统存储器通常包括动态随机存取存储器(dram)。一个或多个dram设备可以经由高性能存储器总线电耦合到soc。dram工艺技术继续缩小以适应对较小芯片中的更大存储器容量的增长的需求。虽然更致密的dram芯片提供期望的性能和设计优点,但是增加dram容量的成本结合由于消费者期望所导致的下降的价格压力可能不利地影响原始设备制造商的利润率。

因此,需要用于在这些和其他便携式计算设备中扩展dram的改进的系统和方法。



技术实现要素:

公开了用于扩展片上系统(soc)的存储器的系统、方法和计算机程序。一种这样的方法涉及检测加载在经由扩展总线电耦合到片上系统(soc)的可扩展存储器插槽中的存储卡。所述存储卡包括第一易失性存储器设备。响应于检测到存储卡,配置扩展的虚拟存储器映射。扩展的虚拟存储器映射包括与所述第一易失性存储器设备相关联的第一虚拟存储器空间和与经由高性能存储器总线电耦合到所述soc的第二易失性存储器设备相关联的第二虚拟存储器空间。将与所述第二虚拟存储器空间相关联的一个或多个外围映像重定位至所述第一虚拟存储器空间的第一部分。将所述第一虚拟存储器空间的第二部分配置为用于执行与所述第二虚拟存储器空间相关联的交换操作的块设备。

另一实施例是一种包括经由高性能存储器总线电耦合到第一易失性存储器设备的片上系统(soc)的系统。可扩展存储器插槽经由扩展总线电耦合到soc。所述soc包括处理器,所述处理器被配置为:检测加载在所述可扩展存储器插槽中的存储卡,所述存储卡包括第二易失性存储器设备;响应于检测到所述存储卡,配置扩展的虚拟存储器映射,所述扩展的虚拟存储器映射包括与所述第一易失性存储器设备相关联的第一虚拟存储器空间和与所述第二易失性存储器设备相关联的第二虚拟存储器空间;将所述第一虚拟存储器空间中的一个或多个外围映像重定位到所述第二虚拟存储器空间的第一部分;以及将所述第二虚拟存储器空间的第二部分配置为用于执行与所述第一虚拟存储器空间相关联的交换操作的块设备。

附图说明

在附图中,除非另有说明,否则贯穿各个视图,相似的附图标记指代相似的部件。对于具有诸如“102a”或“102b”等字母字符标记的附图标记,该字母字符标记可以区分存在于同一图中的两个相似的部件或元件。当附图标记旨在包含所有附图中具有相同附图标记的所有部件时,可以省略附图标记的字母字符标记。

图1是用于扩展示例性便携式通信设备中的存储器的系统的实施例的框图。

图2是图1中的便携式通信设备的封装/衬底的俯视示意图。

图3是图2中的可扩展ram卡/插槽和soc的横截面图。

图4是示出了用于扩展图1到图3中的soc的系统存储器的方法的实施例的流程图。

图5是示出了扩展的虚拟存储器映射的实施例的框图。

图6是可以结合用于扩展系统存储器的ram卡/插槽的便携式通信设备的另一实施例的框图。

图7是示出了用于经由图5中的扩展的虚拟存储器映射来执行交换操作的方法的实施例的示意图。

具体实施方式

词语“示例性”在本文中用于表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面不必被解释为是优选的或比其它方面更有利。

在本说明书中,术语“应用”或“映像”还可以包括具有可执行内容的文件,诸如:目标代码、脚本、字节代码、标记语言文件、以及补丁。另外,本文中所提及的“应用”还可以包括本质上不可执行的文件,其例如可能需要被打开的文档或需要被访问的其他数据文件。

术语“内容”还可以包括具有可执行内容的文件,其例如目标代码、脚本、字节代码、标记语言文件、以及补丁。另外,本文中提到的“内容”也可以包括本质上不可执行的文件,其例如可能需要被打开的文档或需要被访问的其他数据文件。

如本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”等旨在表示计算机相关的实体,其是硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。作为说明,在计算设备上运行的应用和计算设备都可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,并且组件可以位于一个计算机上和/或分布在两个或多个计算机之间。另外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质来执行。组件可以例如根据具有一个或多个数据分组的信号,通过本地和/或远程进程来通信(例如,来自一个组件的数据通过信号与本地系统、分布式系统中的另一个组件交互,和/或跨越诸如因特网等网络与其他系统交互)。

术语“虚拟存储器”是指从引用存储器的应用或映像对实际物理存储器的抽象。转换或映射可以用于将虚拟存储器地址转变为物理存储器地址。映射可以简单地为1对1(例如,物理地址等于虚拟地址)、适度复杂的(例如,物理地址等于来自虚拟地址的常数偏移),或者映射可以是复杂的(例如,每4kb页唯一映射)。映射可以是静态的(例如,在启动时执行一次),或者映射可以是动态的(例如,随着存储器被分配和释放而连续地发展)。

在本说明书中,术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手机”可互换使用。随着第三代(“3g”)无线技术和四代(“4g”)的出现,更大的带宽可用性已经使更多便携式计算设备具有更多种类的无线能力。因此,便携式计算设备可以包括蜂窝电话、寻呼机、pda、智能电话、导航设备或具有无线连接或链路的手持式计算机。

图1示出了用于扩展片上系统(soc)102的存储器的系统100的实施例。系统100可以在任何计算设备中实现,所述计算设备包括个人计算机、工作站、服务器,诸如蜂窝电话、便携式数字助理(pda)、便携式游戏控制台、掌上型计算机或平板计算机等便携式计算设备(pcd)。如图1的实施例中所示,系统100包括电耦合到dram存储器系统104、非易失性存储器118和可扩展随机存取存储器(ram)卡105的片上系统(soc)102。dram存储器系统104经由高性能存储器总线134与soc对接。非易失性存储器118经由存储总线136与soc对接。非易失性存储器118可以包括任何非易失性存储器,其例如,举例来说,闪存、闪存驱动器、安全数字(sd)卡、固态驱动器(ssd)、或者其它类型。在某些实施例中,由于大量的引脚来支持高性能存储器总线134、非常接近soc102的敏感射频电路、以及高性能存储器总线134在不导致干扰的情况下可以行进的有限距离,实现可扩展dram存储器系统104可能是困难且昂贵的。

可扩展ram卡105经由扩展总线132电耦合到soc102。如下面更详细地描述的,在一个实施例中,可扩展ram卡105可以包括可移动存储卡或其他设备,后者可以加载到用户可访问的存储器插槽302中。以这种方式,系统100可以使得用户能够在购买后方便地向便携式计算设备添加额外的存储器容量。系统100提供可由原始设备制造商利用的可扩展高性能交换存储器系统。如本领域中已知的,便携式计算系统性能和应用响应性会随着ram大小的增加而提高,并且随着ram的减少而降低。用户人群安装并参与该人群的日常使用的应用程序的类型和数量可能不同。例如,简单的用户可能发现2gb的ram完全足够,而运行多个复杂应用或游戏的专家或爱好者(enthusiast)用户可能需要4gb或更多,以便他们的用户体验变得令人满意。本领域普通技术人员将理解,系统100对于原始设备制造商(oem)来说可能是期望的,因为其可以使得oem能够宣扬增强的性能,同时使得材料的oem成本最小化。使用可扩展ram卡105的其它益处可以包括例如提供比在大多数常见实践中作为交换设备的传统存储设备快得多的响应,并且以o/s120支持的、成本有效的方式来支持非对称的dram群(例如,用于dram104的lpddr4和用于可扩展ram卡105的lpddr3)。

扩展总线132包括直接存储器存取总线,其例如,举例来说,外围组件互连快速(pcie)总线。如本领域中已知的,pcie总线132包括高速串行计算机扩展总线,其提供各种期望的特性,例如更高的最大系统总线吞吐量、更低的i/o引脚数和更小的物理占用面积、对总线设备的改进的性能缩放、可靠的错误检测和报告机制、本地热插拔功能、以及硬件i/o虚拟化。如图1中所示,ram卡105可以包括被配置为经由扩展总线132与相应的pcie或其他控制器111通信的dram107和pcie或其他接口109。

soc102包括各种片上组件,所述各种片上组件包括经由soc总线互连的中央处理单元(cpu)106、dram控制器108、静态随机存取存储器(sram)110、只读存储器(rom)112、以及存储控制器114。soc102可以包括一个或多个存储器客户端,当其被加载到插槽302中时从dram104和dram107请求存储器资源。存储器客户端可以包括一个或多个处理单元(例如,中央处理单元(cpu)106、图形处理单元(gpu)、数字信号处理器(dsp)等)、视频编码器、或请求存储器读/写访问的其它客户端。

soc102上的存储控制器114经由存储总线136电耦合到非易失性存储器118。存储控制器114管理存储在非易失性存储器118上的数据。dram控制器108经由例如高性能ram总线134电耦合到dram104。dram控制器108管理去往和来自dram104的数据流。dram控制器108通常包括用于对dram104进行读取和写入的逻辑单元。

如图1中进一步所示,dram104可以包括纠错码(ecc)模块124。ecc模块124检测双比特错误并在dram操作(例如,读取和/或写入操作)期间纠正单比特错误。例如,在dram写操作期间,ecc模块124可以使用写数据作为输入,并随后生成冗余奇偶校验位。组合的写数据和奇偶校验位一起形成被称为码字的单元,并且可以被分离存储或一起存储在dram单元阵列126中。在读取操作期间,ecc模块124可以使用码字的取回的数据部分来重新计算奇偶校验位,并随后将它们与在写操作期间存储的码字的奇偶校验位部分进行比较。所读取的重新计算奇偶校验和所存储的奇偶校验之间的不匹配指示检测到错误。另外,奇偶校验位可以足够在码字内提供单个纠错。

图2和图3示出了用于将系统100结合在便携式计算设备中的封装/衬底202的实施例。soc102和/或dram104可以设置在封装/衬底202上的第一位置208处。在一个实施例中,dram104可以焊接到cpu封装上,并且组合的dram/cpu可以焊接到主板。如图3中所示,soc102和/或dram104可以由射频(rf)屏蔽体204覆盖,以屏蔽其它组件,使其免受ddr信号噪声影响。如本领域中已知的,ddr信号可以产生可能影响封装/衬底202上的其他组件的大量共模辐射。在这方面,插槽302可以远离封装/衬底202上的第二位置206。

在一个实施例中,插槽302被配置为承载pcie接口信号(例如,用于x4个通道的44个i/o引脚)。pcie4x通道向dram104提供4gb/秒的带宽。使用更多引脚的pcie8x通道可以向dram104提供8gb/秒的带宽。pcie控制器111可以被配置为转换pcie总线132,这可以包括与dram控制器108类似的存储器控制操作。在一个实施例中,可以以各种配置来提供ram卡105,包括但不限于:不同的ddrjedec标准,如lpddr1、lpddr2、lpddr3、lpddr4等;不同的容量,如512mb、1gb、2gb等;不同的性能等级,如4gb/秒、8gb/秒等;结合如pcie、emmc、或ufs闪存存储扩展等其他的功能,所述ufs闪存存储扩展例如512mbram扩展、在单卡上扩展8gb闪存。组合功能可以通过将相关能力包括在pcie控制器111中来实现。例如,pcie控制器111可以被配置为将pcie总线132转换为emmc闪存存储总线。此外,ram卡105可以包含连接到pcie控制器111的多个堆叠的存储器芯片,以提供所通告的容量。

图4是示出用于扩展系统100中的存储器的方法的实施例的流程图。在框402,系统100检测到存储卡(例如,ram卡105)被加载到可扩展存储器插槽302中。如上所述,存储器插槽302经由扩展总线132电耦合到soc102。存储卡可以包括第一易失性存储器设备(例如,具有1gb容量的dram107)。如果检测到存储卡,则在框404,系统100配置扩展的虚拟存储器映射500。图5示出了扩展的虚拟存储器映射500的实施例。存储器映射502示出了在可扩展存储器插槽302中未加载存储卡的情况下,dram104(具有2gb的容量)的虚拟存储器映射。地址范围506被分配给内核和o/s120。地址范围508和520可以分别被分配给内容保护和多媒体堆(heap)和信任区。可以向分配给特定硬件资源(例如,共享资源510、视频编解码器512、应用数字信号处理器(dsp)514、连接硬件516、调制解调器518等)的一个或多个外围映像分配额外的地址范围。如图5的实施例中所示,地址范围506到520包括300mb的存储器容量,剩余1.7gb的可用用户空间。应当理解,这仅是出于增加用户区域504的目的,可以在存储器内重新布置映像的许多可能示例中的一个示例。

当检测到存储卡时,扩展的虚拟存储器映射被配置有与第一易失性存储器设备(例如,1gbdram107)相关联的第一虚拟存储器空间。第二虚拟存储器空间与2gbdram104相关联。在框406,系统100可以将与第二虚拟存储器空间相关联的一个或多个外围映像重定位至第一虚拟存储器空间的第一部分。如图5所示,与地址范围510、512、514、516和518相关联的外围映像被重定位至1gbram卡的150mb。可以根据带宽需要来选择要重定位的外围映像。例如,如果相关联的硬件资源可以经由扩展总线132(与高性能存储器总线134相比)处理减小的带宽,则它们可以被重定位。在框408,系统100可以将第一虚拟存储器空间的第二部分配置为用于执行与第二虚拟存储器空间相关联的交换操作的块设备。

如图7中所示,可能存在对于用户可用的有限量的物理存储器700(对应于图5中的用户空间504)。在系统中运行的多个进程(如由第一进程710和第二进程720所示)可以竞争该空闲的存储器空间。尽管在图7中示出了仅两个进程,但应当理解,可以在便携式计算系统上运行更多的进程。从所有进程请求的总存储器可能超过可用的物理存储器700。内核和o/s506可以基于例如最近活动的量来将存储器使用分类为一个或多个工作集(例如工作集712和722)和一个或多个非工作集(例如,非工作集714和724)。尽管图7将该分类示出为连续的分组,但应当理解,被示出为单个矩形的存储器页可以是分散开的和/或随机的。最近被访问并且频繁被访问(即,读取和/或写入)的存储器页可以包括工作集合712和724,并且最可能被放置到物理存储器700中,而最近未被访问的存储器页可以包括非工作集合714和724,并且最不可能被放置到物理存储器700中。非工作集合714和724可以被放置到ram卡105中。随着时间的推移,进程可以访问存储器的不同部分,将一些页从非工作集改变为工作集,反之亦然。当这发生时,相关页可以在物理存储器700和ram卡105之间移动。该过程通常称为交换。ram卡105的一部分可以被配置为块设备,这意味着可以以块(例如,4kb页)来执行访问。在常规的解决方案中,交换块设备可以包括硬盘驱动器(hdd)或固态驱动器(ssd)。本领域普通技术人员将理解,ram卡105可以通过例如提供比包括hdd或ssd的交换块设备大许多倍的峰值带宽来显着地提高交换的性能。

如上所述,系统100可以并入任何期望的计算系统中。图6示出了并入示例性便携式计算设备(pcd)600中的系统100。在该实施例中,soc102可以包括多核cpu602。多核cpu602可以包括第零核610、第一核612、以及第n核614。这些核中的一个可以包括例如图形处理单元(gpu),而其它核心中的一个或多个包括cpu。

显示控制器328和触摸屏控制器330可以耦合到cpu602。继而,片上系统102外部的触摸屏显示器606可以耦合到显示控制器328和触摸屏控制器330。

图6还示出了耦合到多核cpu的视频编码器334,其例如逐行倒相(pal)编码器、顺序彩色和存储(secam)编码器或国家电视系统委员会(ntsc)编码器。此外,视频放大器336耦合到视频编码器334和触摸屏显示器606。另外,视频端口338耦合到视频放大器336。如图6中所示,通用串行总线(usb)控制器340耦合到多核cpu602。另外,usb端口342耦合到usb控制器340。存储器104和用户识别模块(sim)卡346也可以耦合到多核cpu602。

此外,如图6中所示,数字相机348可以耦合到多核cpu602。在示例性方面,数字相机348是电荷耦合器件(ccd)相机或互补金属氧化物半导体(cmos)相机。

如图6中进一步所示,立体声音频编码器-解码器(codec)350可以耦合到多核cpu602。此外,音频放大器352可以耦合到立体声音频codec350。在示例性方面,第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。图6显示了麦克风放大器358也可以耦合到立体声音频codec350。另外,麦克风360可以耦合到麦克风放大器358。在特定方面,频率调制(fm)无线调谐器362可以耦合到立体声音频codec350。另外,fm天线364耦合到fm无线调谐器362。此外,立体声耳机366可以耦合到立体声音频codec350。

图6进一步示出了射频(rf)收发机368可以耦合到多核cpu602。rf开关370可以耦合到rf收发机368和rf天线372。键盘204可以耦合到多核cpu602。另外,具有麦克风的单声道头戴式耳机376可以耦合到多核cpu602。此外,振动器设备378可以耦合到多核cpu602。

图6还显示了电源380可以耦合到片上系统102。在特定方面中,电源380是向pcd600的需要功率的各种组件提供电力的直流(dc)电源。此外,在特定方面,电源是可再充电dc电池或从连接到ac电源的交流(ac)到dc变压器导出的dc电源。

图6进一步指示pcd600还可以包括可以用于访问数据网络(例如,局域网、个域网或任何其它网络)的网卡388。网卡388可以是蓝牙网卡、wifi网卡、个域网(pan)卡、个域网超低功率技术(peanut)网卡、电视/有线/卫星调谐器、或者本领域公知的任何其它网卡。此外,网卡388可以被并入芯片中,即,网卡388可以是芯片中的完整解决方案,并且可能不是单独的网卡388。

参考图6,应当理解,存储器104、ram卡105、触摸屏显示器606、视频端口338、usb端口342、相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、fm天线364、立体声耳机366、rf开关370、rf天线372、键盘374、单声道耳机376、振动器378和电源380可以在片上系统102的外部。

应当理解,本文描述的一个或多个方法步骤可以作为计算机程序指令存储在存储器中(例如上述模块)。这些指令可以由任何适当的处理器结合或协同相应的模块组合来执行,以执行本文所描述的方法。

本说明书中描述的过程或过程流程中的某些步骤自然地先于其他步骤,以使本发明如所描述的那样起作用。然而,如果这种顺序或序列不改变本发明的功能,则本发明不限于所描述的步骤的顺序。也就是说,应认识到,在不脱离本发明的范围和精神的情况下,可以在其他步骤之前、之后或与其他步骤并行(基本上同时)执行一些步骤。在一些情况下,在不脱离本发明的情况下可以省略或不执行某些步骤。此外,诸如“其后”、“随后”、“接下来”等词语不旨在限制步骤的顺序。这些词语仅用于贯穿对示例性方法的描述来引导读者。

另外,编程领域的普通技术人员能够基于例如本说明书中的流程图和相关描述,无困难地编写计算机代码或识别适当的硬件和/或电路来实现所公开的发明。

因此,为了充分理解如何进行和使用本发明,不认为公开特定的程序代码指令集合或详细的硬件设备是必要的。在上面的描述中并且结合可以示出各种过程流程的附图来更详细地解释所要求保护的、计算机实现的过程的创造性功能。

在一个或多个示例性方面,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件来实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过其进行传输。计算机可读介质包括计算机存储介质和通信介质,所述通信介质包括有助于将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括ram、rom、eeprom、nand闪存、nor闪存、m-ram、p-ram、r-ram、cd-rom或其他光盘存储器、磁性盘存储器或其他磁存储设备或可以用于携带或存储具有指令或数据结构形式的期望的程序代码并且可以由计算机存取的任何其它介质。

另外,任何连接被适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(“dsl”)或诸如红外线、无线和微波等无线技术从网站、服务器或其它远程源传输的,那么同轴电缆、光纤电缆、双绞线、dsl或诸如红外线、无线和微波等无线技术包括在所述介质的定义中。

如本文中所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字通用光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。

在不脱离本发明的精神和范围的情况下,替代实施例对于本发明所属领域的普通技术人员来说将变得显而易见。因此,尽管已经详细地示出和描述了所选择的方面,但是将理解,在不脱离由所附权利要求所限定的、本发明的精神和范围的情况下,可以在其中进行各种替换和更改。

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