CN106575273B - 用于扩展片上系统的存储器的系统和方法 - Google Patents

用于扩展片上系统的存储器的系统和方法 Download PDF

Info

Publication number
CN106575273B
CN106575273B CN201580044312.5A CN201580044312A CN106575273B CN 106575273 B CN106575273 B CN 106575273B CN 201580044312 A CN201580044312 A CN 201580044312A CN 106575273 B CN106575273 B CN 106575273B
Authority
CN
China
Prior art keywords
memory
soc
virtual
bus
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201580044312.5A
Other languages
English (en)
Other versions
CN106575273A (zh
Inventor
D·T·全
S·C·希图卢里
Y·李
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN106575273A publication Critical patent/CN106575273A/zh
Application granted granted Critical
Publication of CN106575273B publication Critical patent/CN106575273B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/171Portable consumer electronics, e.g. mobile phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

本申请公开了用于扩展片上系统(SoC)的存储器的系统和方法。存储卡电加载在可扩展存储器插槽中并且经由扩展总线耦合到片上系统(SoC)。存储卡包括第一易失性存储器设备。响应于检测到存储卡,配置扩展的虚拟存储器映射。扩展的虚拟存储器映射包括与第一易失性存储器设备相关联的第一虚拟存储器空间和与经由存储器总线电耦合到SoC的第二易失性存储器设备相关联的第二虚拟存储器空间。将与第二虚拟存储器空间相关联的一个或多个外围映像重定位至第一虚拟存储器空间的第一部分。将第一虚拟存储器空间的第二部分配置为用于执行与第二虚拟存储器空间相关联的交换操作的块设备。

Description

用于扩展片上系统的存储器的系统和方法
技术领域
概括地说,下面的内容涉及无线通信,并且更具体地,涉及用于扩展片上系统(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、非常接近SoC 102的敏感射频电路、以及高性能存储器总线134在不导致干扰的情况下可以行进的有限距离,实现可扩展DRAM存储器系统104可能是困难且昂贵的。
可扩展RAM卡105经由扩展总线132电耦合到SoC 102。如下面更详细地描述的,在一个实施例中,可扩展RAM卡105可以包括可移动存储卡或其他设备,后者可以加载到用户可访问的存储器插槽302中。以这种方式,系统100可以使得用户能够在购买后方便地向便携式计算设备添加额外的存储器容量。系统100提供可由原始设备制造商利用的可扩展高性能交换存储器系统。如本领域中已知的,便携式计算系统性能和应用响应性会随着RAM大小的增加而提高,并且随着RAM的减少而降低。用户人群安装并参与该人群的日常使用的应用程序的类型和数量可能不同。例如,简单的用户可能发现2GB的RAM完全足够,而运行多个复杂应用或游戏的专家或爱好者(enthusiast)用户可能需要4GB或更多,以便他们的用户体验变得令人满意。本领域普通技术人员将理解,系统100对于原始设备制造商(OEM)来说可能是期望的,因为其可以使得OEM能够宣扬增强的性能,同时使得材料的OEM成本最小化。使用可扩展RAM卡105的其它益处可以包括例如提供比在大多数常见实践中作为交换设备的传统存储设备快得多的响应,并且以O/S 120支持的、成本有效的方式来支持非对称的DRAM群(例如,用于DRAM 104的LPDDR4和用于可扩展RAM卡105的LPDDR3)。
扩展总线132包括直接存储器存取总线,其例如,举例来说,外围组件互连快速(PCIE)总线。如本领域中已知的,PCIE总线132包括高速串行计算机扩展总线,其提供各种期望的特性,例如更高的最大系统总线吞吐量、更低的I/O引脚数和更小的物理占用面积、对总线设备的改进的性能缩放、可靠的错误检测和报告机制、本地热插拔功能、以及硬件I/O虚拟化。如图1中所示,RAM卡105可以包括被配置为经由扩展总线132与相应的PCIE或其他控制器111通信的DRAM 107和PCIE或其他接口109。
SoC 102包括各种片上组件,所述各种片上组件包括经由SoC总线互连的中央处理单元(CPU)106、DRAM控制器108、静态随机存取存储器(SRAM)110、只读存储器(ROM)112、以及存储控制器114。SoC 102可以包括一个或多个存储器客户端,当其被加载到插槽302中时从DRAM104和DRAM 107请求存储器资源。存储器客户端可以包括一个或多个处理单元(例如,中央处理单元(CPU)106、图形处理单元(GPU)、数字信号处理器(DSP)等)、视频编码器、或请求存储器读/写访问的其它客户端。
SoC 102上的存储控制器114经由存储总线136电耦合到非易失性存储器118。存储控制器114管理存储在非易失性存储器118上的数据。DRAM控制器108经由例如高性能RAM总线134电耦合到DRAM 104。DRAM控制器108管理去往和来自DRAM 104的数据流。DRAM控制器108通常包括用于对DRAM 104进行读取和写入的逻辑单元。
如图1中进一步所示,DRAM 104可以包括纠错码(ECC)模块124。ECC模块124检测双比特错误并在DRAM操作(例如,读取和/或写入操作)期间纠正单比特错误。例如,在DRAM写操作期间,ECC模块124可以使用写数据作为输入,并随后生成冗余奇偶校验位。组合的写数据和奇偶校验位一起形成被称为码字的单元,并且可以被分离存储或一起存储在DRAM单元阵列126中。在读取操作期间,ECC模块124可以使用码字的取回的数据部分来重新计算奇偶校验位,并随后将它们与在写操作期间存储的码字的奇偶校验位部分进行比较。所读取的重新计算奇偶校验和所存储的奇偶校验之间的不匹配指示检测到错误。另外,奇偶校验位可以足够在码字内提供单个纠错。
图2和图3示出了用于将系统100结合在便携式计算设备中的封装/衬底202的实施例。SoC 102和/或DRAM 104可以设置在封装/衬底202上的第一位置208处。在一个实施例中,DRAM 104可以焊接到CPU封装上,并且组合的DRAM/CPU可以焊接到主板。如图3中所示,SoC 102和/或DRAM 104可以由射频(RF)屏蔽体204覆盖,以屏蔽其它组件,使其免受DDR信号噪声影响。如本领域中已知的,DDR信号可以产生可能影响封装/衬底202上的其他组件的大量共模辐射。在这方面,插槽302可以远离封装/衬底202上的第二位置206。
在一个实施例中,插槽302被配置为承载PCIE接口信号(例如,用于x4个通道的44个I/O引脚)。PCIE 4x通道向DRAM 104提供4GB/秒的带宽。使用更多引脚的PCIE 8x通道可以向DRAM 104提供8GB/秒的带宽。PCIE控制器111可以被配置为转换PCIE总线132,这可以包括与DRAM控制器108类似的存储器控制操作。在一个实施例中,可以以各种配置来提供RAM卡105,包括但不限于:不同的DDR JEDEC标准,如LPDDR1、LPDDR2、LPDDR3、LPDDR4等;不同的容量,如512MB、1GB、2GB等;不同的性能等级,如4GB/秒、8GB/秒等;结合如PCIE、eMMC、或UFS闪存存储扩展等其他的功能,所述UFS闪存存储扩展例如512MB RAM扩展、在单卡上扩展8GB闪存。组合功能可以通过将相关能力包括在PCIE控制器111中来实现。例如,PCIE控制器111可以被配置为将PCIE总线132转换为eMMC闪存存储总线。此外,RAM卡105可以包含连接到PCIE控制器111的多个堆叠的存储器芯片,以提供所通告的容量。
图4是示出用于扩展系统100中的存储器的方法的实施例的流程图。在框402,系统100检测到存储卡(例如,RAM卡105)被加载到可扩展存储器插槽302中。如上所述,存储器插槽302经由扩展总线132电耦合到SoC 102。存储卡可以包括第一易失性存储器设备(例如,具有1GB容量的DRAM 107)。如果检测到存储卡,则在框404,系统100配置扩展的虚拟存储器映射500。图5示出了扩展的虚拟存储器映射500的实施例。存储器映射502示出了在可扩展存储器插槽302中未加载存储卡的情况下,DRAM 104(具有2GB的容量)的虚拟存储器映射。地址范围506被分配给内核和O/S 120。地址范围508和520可以分别被分配给内容保护和多媒体堆(heap)和信任区。可以向分配给特定硬件资源(例如,共享资源510、视频编解码器512、应用数字信号处理器(DSP)514、连接硬件516、调制解调器518等)的一个或多个外围映像分配额外的地址范围。如图5的实施例中所示,地址范围506到520包括300MB的存储器容量,剩余1.7GB的可用用户空间。应当理解,这仅是出于增加用户区域504的目的,可以在存储器内重新布置映像的许多可能示例中的一个示例。
当检测到存储卡时,扩展的虚拟存储器映射被配置有与第一易失性存储器设备(例如,1GB DRAM 107)相关联的第一虚拟存储器空间。第二虚拟存储器空间与2GB DRAM104相关联。在框406,系统100可以将与第二虚拟存储器空间相关联的一个或多个外围映像重定位至第一虚拟存储器空间的第一部分。如图5所示,与地址范围510、512、514、516和518相关联的外围映像被重定位至1GB RAM卡的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。在该实施例中,SoC 102可以包括多核CPU 602。多核CPU602可以包括第零核610、第一核612、以及第N核614。这些核中的一个可以包括例如图形处理单元(GPU),而其它核心中的一个或多个包括CPU。
显示控制器328和触摸屏控制器330可以耦合到CPU 602。继而,片上系统102外部的触摸屏显示器606可以耦合到显示控制器328和触摸屏控制器330。
图6还示出了耦合到多核CPU的视频编码器334,其例如逐行倒相(PAL)编码器、顺序彩色和存储(SECAM)编码器或国家电视系统委员会(NTSC)编码器。此外,视频放大器336耦合到视频编码器334和触摸屏显示器606。另外,视频端口338耦合到视频放大器336。如图6中所示,通用串行总线(USB)控制器340耦合到多核CPU 602。另外,USB端口342耦合到USB控制器340。存储器104和用户识别模块(SIM)卡346也可以耦合到多核CPU 602。
此外,如图6中所示,数字相机348可以耦合到多核CPU 602。在示例性方面,数字相机348是电荷耦合器件(CCD)相机或互补金属氧化物半导体(CMOS)相机。
如图6中进一步所示,立体声音频编码器-解码器(CODEC)350可以耦合到多核CPU602。此外,音频放大器352可以耦合到立体声音频CODEC 350。在示例性方面,第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。图6显示了麦克风放大器358也可以耦合到立体声音频CODEC 350。另外,麦克风360可以耦合到麦克风放大器358。在特定方面,频率调制(FM)无线调谐器362可以耦合到立体声音频CODEC350。另外,FM天线364耦合到FM无线调谐器362。此外,立体声耳机366可以耦合到立体声音频CODEC 350。
图6进一步示出了射频(RF)收发机368可以耦合到多核CPU 602。RF开关370可以耦合到RF收发机368和RF天线372。键盘204可以耦合到多核CPU 602。另外,具有麦克风的单声道头戴式耳机376可以耦合到多核CPU 602。此外,振动器设备378可以耦合到多核CPU 602。
图6还显示了电源380可以耦合到片上系统102。在特定方面中,电源380是向PCD600的需要功率的各种组件提供电力的直流(DC)电源。此外,在特定方面,电源是可再充电DC电池或从连接到AC电源的交流(AC)到DC变压器导出的DC电源。
图6进一步指示PCD 600还可以包括可以用于访问数据网络(例如,局域网、个域网或任何其它网络)的网卡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)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
在不脱离本发明的精神和范围的情况下,替代实施例对于本发明所属领域的普通技术人员来说将变得显而易见。因此,尽管已经详细地示出和描述了所选择的方面,但是将理解,在不脱离由所附权利要求所限定的、本发明的精神和范围的情况下,可以在其中进行各种替换和更改。

Claims (30)

1.一种用于扩展片上系统SoC的存储器的方法,所述方法包括,所述方法包括:
检测加载在经由扩展总线电耦合到片上系统SoC的可扩展存储器插槽中的存储卡,所述存储卡包括第一易失性存储器设备;
响应于检测到所述存储卡,配置扩展的虚拟存储器映射,所述扩展的虚拟存储器映射包括与所述第一易失性存储器设备相关联的第一虚拟存储器空间和与经由高性能存储器总线电耦合到所述SoC的第二易失性存储器设备相关联的第二虚拟存储器空间;
将与所述第二虚拟存储器空间相关联并且分配给硬件资源的一个或多个外围映像重定位至所述第一虚拟存储器空间的第一部分;以及
将所述第一虚拟存储器空间的第二部分配置为用于执行与所述第二虚拟存储器空间相关联的交换操作的块设备。
2.根据权利要求1所述的方法,其中,所述扩展总线包括外围组件互连高速(PCIE)总线。
3.根据权利要求1所述的方法,其中,所述扩展总线包括直接存储器存取总线。
4.根据权利要求1所述的方法,其中,所述第一易失性存储器设备和第二易失性存储器设备包括动态随机存取存储器(DRAM)。
5.根据权利要求1所述的方法,其中,所述存储卡是从所述可扩展存储器插槽中可移除的。
6.根据权利要求1所述的方法,其中,所述SoC和第一易失性存储器设备和第二易失性存储器设备是在便携式通信设备中实现的。
7.根据权利要求6所述的方法,其中,所述SoC和所述第二易失性存储器设备设置在射频RF屏蔽体下方,并且所述第一易失性存储器设备远离所述RF屏蔽体。
8.一种用于扩展与片上系统SoC相关联的系统存储器的系统,所述系统包括:
用于检测加载在经由扩展总线电耦合到片上系统SoC的可扩展存储器插槽中的存储卡的单元,所述存储卡包括第一易失性存储器设备;
用于响应于检测到所述存储卡,配置扩展的虚拟存储器映射的单元,所述扩展的虚拟存储器映射包括与所述第一易失性存储器设备相关联的第一虚拟存储器空间和与经由高性能存储器总线电耦合到所述SoC的第二易失性存储器设备相关联的第二虚拟存储器空间;
用于将与所述第二虚拟存储器空间相关联并且分配给硬件资源的一个或多个外围映像重定位至所述第一虚拟存储器空间的第一部分的单元;以及
用于将所述第一虚拟存储器空间的第二部分配置为用于执行与所述第二虚拟存储器空间相关联的交换操作的块设备的单元。
9.根据权利要求8所述的系统,其中,所述用于检测加载在所述可扩展存储器插槽中的存储卡的单元包括位于所述SoC上的外围组件互连高速(PCIE)控制器。
10.根据权利要求8所述的系统,其中,所述扩展总线包括直接存储器存取总线。
11.根据权利要求8所述的系统,其中,所述第一易失性存储器设备和第二易失性存储器设备包括动态随机存取存储器(DRAM)。
12.根据权利要求8所述的系统,其中,所述存储卡是从所述可扩展存储器插槽中可移除的。
13.根据权利要求8所述的系统,其中,所述SoC和第一易失性存储器设备和第二易失性存储器设备是在便携式通信设备中实现的。
14.根据权利要求13所述的系统,其中,所述SoC和所述第二易失性存储器设备设置在射频RF屏蔽体下方,并且所述可扩展存储器插槽远离所述RF屏蔽体。
15.一种计算机可读介质,其上存储有用于扩展与片上系统SoC相关联的存储器的计算机程序,其特征在于,所述计算机程序可由处理器执行以进行以下操作:
检测加载在经由扩展总线电耦合到片上系统SoC的可扩展存储器插槽中的存储卡,所述存储卡包括第一易失性存储器设备;
响应于检测到所述存储卡,配置扩展的虚拟存储器映射,所述扩展的虚拟存储器映射包括与所述第一易失性存储器设备相关联的第一虚拟存储器空间和与经由高性能存储器总线电耦合到所述SoC的第二易失性存储器设备相关联的第二虚拟存储器空间;
将与所述第二虚拟存储器空间相关联并且分配给硬件资源的一个或多个外围映像重定位至所述第一虚拟存储器空间的第一部分;以及
将所述第一虚拟存储器空间的第二部分配置为用于执行与所述第二虚拟存储器空间相关联的交换操作的块设备。
16.根据权利要求15所述的计算机可读介质,其中,所述扩展总线包括外围组件互连高速(PCIE)总线。
17.根据权利要求15所述的计算机可读介质,其中,所述扩展总线包括直接存储器存取总线。
18.根据权利要求15所述的计算机可读介质,其中,所述第一易失性存储器设备和第二易失性存储器设备包括动态随机存取存储器(DRAM)。
19.根据权利要求15所述的计算机可读介质,其中,所述存储卡是从所述可扩展存储器插槽中可移除的。
20.根据权利要求15所述的计算机可读介质,其中,所述SoC和第一易失性存储器设备和第二易失性存储器设备是在便携式通信设备中实现的。
21.根据权利要求20所述的计算机可读介质,其中,所述SoC和所述第二易失性存储器设备设置在射频RF屏蔽体下方,并且所述第一易失性存储器设备远离所述RF屏蔽体。
22.一种用于扩展片上系统SoC的存储器的系统,所述系统包括:
经由高性能存储器总线电耦合到第一易失性存储器设备的片上系统SoC;以及
经由扩展总线电耦合到所述SoC的可扩展存储器插槽;
其中,所述SoC包括处理器,所述处理器被配置为:
检测加载在所述可扩展存储器插槽中的存储卡,所述存储卡包括第二易失性存储器设备;
响应于检测到所述存储卡,配置扩展的虚拟存储器映射,所述扩展的虚拟存储器映射包括与所述第一易失性存储器设备相关联的第一虚拟存储器空间和与所述第二易失性存储器设备相关联的第二虚拟存储器空间;
将与所述第二虚拟存储器空间相关联并且分配给硬件资源的一个或多个外围映像重定位到所述第一虚拟存储器空间的第一部分;以及
将所述第二虚拟存储器空间的第二部分配置为用于执行与所述第二虚拟存储器空间相关联的交换操作的块设备。
23.根据权利要求22所述的系统,其中,所述SoC和所述第一易失性存储器设备和第二易失性存储器设备驻留在便携式通信设备中。
24.根据权利要求23所述的系统,其中,所述SoC和所述第一易失性存储器设备设置在射频RF屏蔽体下方。
25.根据权利要求24所述的系统,其中,所述可扩展存储器插槽远离所述RF屏蔽体。
26.根据权利要求23所述的系统,其中,所述便携式通信设备包括移动电话、平板计算机、以及便携式游戏控制台中的一个。
27.根据权利要求22所述的系统,其中,所述扩展总线包括外围组件互连高速PCIE总线,并且所述SoC包括用于将所述PCIE总线转换为所述高性能存储器总线的PCIE控制器。
28.根据权利要求22所述的系统,其中,所述第一易失性存储器设备和第二易失性存储器设备包括动态随机存取存储器(DRAM)。
29.根据权利要求22所述的系统,其中,所述存储卡可由用户加载到所述可扩展存储器插槽中。
30.根据权利要求22所述的系统,其中,所述扩展总线包括直接存储器存取总线。
CN201580044312.5A 2014-08-20 2015-08-13 用于扩展片上系统的存储器的系统和方法 Expired - Fee Related CN106575273B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/464,598 2014-08-20
US14/464,598 US9823846B2 (en) 2014-08-20 2014-08-20 Systems and methods for expanding memory for a system on chip
PCT/US2015/045133 WO2016028607A1 (en) 2014-08-20 2015-08-13 Systems and methods for expanding memory for a system on chip

Publications (2)

Publication Number Publication Date
CN106575273A CN106575273A (zh) 2017-04-19
CN106575273B true CN106575273B (zh) 2019-12-13

Family

ID=54015206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580044312.5A Expired - Fee Related CN106575273B (zh) 2014-08-20 2015-08-13 用于扩展片上系统的存储器的系统和方法

Country Status (5)

Country Link
US (1) US9823846B2 (zh)
EP (1) EP3183661B1 (zh)
JP (1) JP6297208B2 (zh)
CN (1) CN106575273B (zh)
WO (1) WO2016028607A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10582017B2 (en) * 2015-12-24 2020-03-03 Intel Corporation Techniques to provide wireless storage and processing capabilities
CN107835986B (zh) * 2016-06-30 2021-04-20 华为技术有限公司 一种电子设备的数据操作方法及电子设备
EP3333709B1 (en) * 2016-12-06 2019-07-24 NXP USA, Inc. Memory management
US20180335828A1 (en) * 2017-05-19 2018-11-22 Qualcomm Incorporated Systems and methods for reducing memory power consumption via device-specific customization of ddr interface parameters
WO2020132962A1 (zh) * 2018-12-26 2020-07-02 华为技术有限公司 安全元件、数据处理装置及数据处理方法
CN110209360A (zh) * 2019-06-28 2019-09-06 深圳市亿道数码技术有限公司 基于PCIe信号转eMMC的M.2形式的存储装置
CN113595844B (zh) * 2021-08-03 2022-07-08 北京国科天迅科技有限公司 一种数据交互的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793620A (en) * 1996-03-12 1998-08-11 Rave Engineering Computer extension board connected to an expansion board
CN101145400A (zh) * 2006-09-13 2008-03-19 上海华虹Nec电子有限公司 内嵌存储器的soc位映射实现方法
CN103942009A (zh) * 2013-01-18 2014-07-23 三星电子株式会社 扩展终端中存储器的设备和方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09106370A (ja) * 1995-10-12 1997-04-22 Canon Inc メモリ制御装置及びその方法及び情報処理装置
US6141712A (en) 1998-01-30 2000-10-31 Object Technology Licensing Corporation Apparatus and method for modeling behavior of expansion boards in a computer system
JP3669889B2 (ja) 1999-04-28 2005-07-13 シャープ株式会社 半導体集積回路装置
DE10015193A1 (de) 2000-03-27 2001-10-25 Infineon Technologies Ag Hochintegrierte System-on-Chip-Systeme mit nichtflüchtigen Speichereinheiten
JP4695348B2 (ja) 2004-05-27 2011-06-08 株式会社リコー カード型メモリ、画像形成装置、画像形成装置起動方法
JP2007141066A (ja) * 2005-11-21 2007-06-07 Toshiba Corp 情報処理装置およびメモリアドレス空間割り当て方法
US7613876B2 (en) * 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
US20080183945A1 (en) * 2007-01-31 2008-07-31 Hughes Nathan J Firmware relocation
US8209463B2 (en) 2008-02-05 2012-06-26 Spansion Llc Expansion slots for flash memory based random access memory subsystem
US8417870B2 (en) * 2009-07-16 2013-04-09 Netlist, Inc. System and method of increasing addressable memory space on a memory board
US8069300B2 (en) * 2008-09-30 2011-11-29 Micron Technology, Inc. Solid state storage device controller with expansion mode
US8341380B2 (en) * 2009-09-22 2012-12-25 Nvidia Corporation Efficient memory translator with variable size cache line coverage
US9032411B2 (en) * 2009-12-25 2015-05-12 International Business Machines Corporation Logical extended map to demonstrate core activity including L2 and L3 cache hit and miss ratio
US8396998B2 (en) * 2010-12-10 2013-03-12 Kingston Technology Corp. Memory-module extender card for visually decoding addresses from diagnostic programs and ignoring operating system accesses
US9110795B2 (en) * 2012-12-10 2015-08-18 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US8959298B2 (en) * 2012-12-10 2015-02-17 Qualcomm Incorporated System and method for managing performance of a computing device having dissimilar memory types
US9501222B2 (en) * 2014-05-09 2016-11-22 Micron Technology, Inc. Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793620A (en) * 1996-03-12 1998-08-11 Rave Engineering Computer extension board connected to an expansion board
CN101145400A (zh) * 2006-09-13 2008-03-19 上海华虹Nec电子有限公司 内嵌存储器的soc位映射实现方法
CN103942009A (zh) * 2013-01-18 2014-07-23 三星电子株式会社 扩展终端中存储器的设备和方法

Also Published As

Publication number Publication date
JP6297208B2 (ja) 2018-03-20
WO2016028607A1 (en) 2016-02-25
EP3183661A1 (en) 2017-06-28
US9823846B2 (en) 2017-11-21
JP2017528813A (ja) 2017-09-28
EP3183661B1 (en) 2019-10-23
US20160054928A1 (en) 2016-02-25
CN106575273A (zh) 2017-04-19

Similar Documents

Publication Publication Date Title
CN106575273B (zh) 用于扩展片上系统的存储器的系统和方法
US11733869B2 (en) Apparatus and method to share host system RAM with mass storage memory RAM
JP6378325B2 (ja) 非対称な記憶容量を有する複数チャネルメモリアーキテクチャにわたってデータを均一にインターリーブするためのシステムおよび方法
EP3289465B1 (en) Systems and methods for optimizing memory power consumption in a heterogeneous system memory
US9299457B2 (en) Kernel masking of DRAM defects
EP2997459B1 (en) System and method for high performance and low cost flash translation layer
CN109785882B (zh) 具有虚拟体化架构的sram及包括其的系统和方法
US20180365425A1 (en) Systems and methods for securely booting a system on chip via a virtual collated internal memory pool
US9747038B2 (en) Systems and methods for a hybrid parallel-serial memory access
JP6674460B2 (ja) 不均一メモリアーキテクチャにおける改善されたレイテンシのためのシステムおよび方法
WO2017080383A1 (zh) 加载软件模块的方法和装置
KR20160004728A (ko) 메모리 시스템 및 데이터 저장 장치
US11392470B2 (en) Information handling system to allow system boot when an amount of installed memory exceeds processor limit
JP6676052B2 (ja) 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法
US9817759B2 (en) Multi-core CPU system for adjusting L2 cache character, method thereof, and devices having the same
US20160077959A1 (en) System and Method for Sharing a Solid-State Non-Volatile Memory Resource
US11907141B1 (en) Flexible dual ranks memory system to boost performance

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191213

Termination date: 20210813