CN106462504B - 最终级高速缓存***和对应的方法 - Google Patents

最终级高速缓存***和对应的方法 Download PDF

Info

Publication number
CN106462504B
CN106462504B CN201480066082.8A CN201480066082A CN106462504B CN 106462504 B CN106462504 B CN 106462504B CN 201480066082 A CN201480066082 A CN 201480066082A CN 106462504 B CN106462504 B CN 106462504B
Authority
CN
China
Prior art keywords
dynamic random
random access
access memory
data
storage drive
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.)
Active
Application number
CN201480066082.8A
Other languages
English (en)
Other versions
CN106462504A (zh
Inventor
S·苏塔德加
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.)
Flc Global Co ltd
Original Assignee
Flc Global Co ltd
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 Flc Global Co ltd filed Critical Flc Global Co ltd
Priority to CN202311023201.9A priority Critical patent/CN117215971A/zh
Publication of CN106462504A publication Critical patent/CN106462504A/zh
Application granted granted Critical
Publication of CN106462504B publication Critical patent/CN106462504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/061Improving I/O performance
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0638Organizing or formatting or addressing of data
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40607Refresh operations in memory devices with an internal cache or data buffer
    • 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
    • G06F12/0607Interleaved addressing
    • 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/1016Performance improvement
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • 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/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/161Portable computer, e.g. notebook
    • 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
    • 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/202Non-volatile memory
    • 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/22Employing cache memory using specific memory technology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种数据访问***包括处理器和最终级高速缓存模块。处理器被配置为生成用于访问第一物理地址的请求。最终级高速缓存模块包括动态随机访问存储器(DRAM)、最终级高速缓存控制器和DRAM控制器。最终级高速缓存控制器被配置为(i)从处理器接收请求,并且(ii)将第一物理地址转换为第一虚拟地址。DRAM控制器被配置为(i)将第一虚拟地址转换为第二物理地址,并且(ii)基于第二物理地址来访问DRAM存储器。

Description

最终级高速缓存***和对应的方法
相关申请的交叉引用
本申请要求于2014年10月21日提交的第14/519,826号美国专利申请的优先权并且还要求于2013年10月21日提交的第61/893,662号美国临时申请、于2013年10月21日提交的第61/893,675号美国临时申请以及于2013年10月21日提交的第61/893,683号美国临时申请以及于2013年10月24日提交的第61/895,049号美国临时申请的权益。通过引用将以上提及的申请的全部内容并入本文。
技术领域
本公开内容涉及集成电路,并且更具体地涉及与片上***相关联的高速缓存。
背景技术
为了总体呈现本公开内容的背景提供本文提供的背景技术。当前署名的发明人的到在该背景技术部分中描述的工作的程度的工作以及可能另外在提交时未评定为现有技术的说明书的各方面既未明确地也未隐含地被认可为针对本公开内容的现有技术。
诸如计算机、移动电话、平板电脑等等的设备通常包括片上***(SoC)。图1示出了包括SoC 12和一个或多个动态随机访问存储器(DRAM)14的设备10的示例。DRAM 14能够被实现为连接到SoC 12但与SoC 12分离的一个或多个集成电路。设备10还能够包括连接到SoC 12的端口17的一个或多个存储驱动器16。存储驱动器16能够包括闪速存储器、固态驱动器、硬盘驱动器和/或混合驱动器。混合驱动器包括具有固态存储器的固态驱动器和具有旋转存储介质的硬盘驱动器。
SoC 12能够包括一个或多个图像处理设备20、***总线22和存储器控制器24。图像处理设备20中的每个能够包括例如:具有中央处理器(或中央处理单元(CPU))28的控制模块26;图形处理器(或图形处理单元(GPU))30;录像机32;相机图像信号处理器(ISP)34;诸如吉比特(Gb)以太网接口36的以太网接口;诸如通用串行总线(USB)接口38和串行高级技术附件(SATA)接口40的串行接口;以及***组件互连快速(PCIe)接口42。图像处理设备20经由***总线22和存储器控制器24访问DRAM 14。DRAM 14被用作主存储器。例如,图像处理设备20中的一个图像处理设备当访问DRAM 14中的一个DRAM中的对应物理位置时将物理地址提供给存储器控制器24。图像处理设备20还能够经由***总线22访问存储驱动器16。
SoC 12和/或存储器控制器24能够经由SoC 12的一个或多个访问端口44连接到DRAM 14。DRAM 14存储用户数据、***数据和/或程序。SoC 12能够使用第一数据来运行程序以生成第二数据。第一数据能够在运行程序之前被存储在DRAM 14中。SoC 12能够在运行程序期间和/或之后将第二数据存储在DRAM 14中。DRAM 14能够具有高带宽接口和每比特低成本存储器存储容量并且能够处置广泛的应用。
SoC 12包括高速缓存存储器,其能够包括以下各项中的一项或多项:零级(L0)高速缓存、一级(L1)高速缓存、二级(L2)高速缓存或三级(L3)高速缓存。L0-L3高速缓存被布置在SoC 12上、紧密靠近图像处理设备20中的对应的图像处理设备。在示出的示例中,控制模块26包括中央处理器28和L1-L3高速缓存50。中央处理器28包括L0高速缓存52。中央处理器28还包括存储器管理单元(MMU)54,其能够控制对高速缓存50、52的访问。
随着高速缓存的级增加,高速缓存的访问延时和存储容量增大。例如,L1高速缓存通常具有比L2高速缓存和L3高速缓存少的存储容量。然而,L1高速缓存通常具有比L2高速缓存和L3高速缓存低的延时。
SoC 12内的高速缓存通常被实现为静态随机访问存储器(SRAM)。由于高速缓存到图像处理设备20的紧密靠近,高速缓存能够以与图像处理设备20相同的时钟频率来操作。因此,高速缓存展示出比DRAM 14短的延时时间段。
SoC 12中的高速缓存的数量和大小取决于应用。例如,电话听筒(或移动电话)可以不包括L3高速缓存并且与个人计算机相比能够具有尺寸更小的L1高速缓存和L2高速缓存。类似地,DRAM 14中的每个DRAM的数量和大小取决于应用。例如,移动电话当前具有1-4吉字节(GB)的DRAM,个人计算机当前具有4-16GB的DRAM,并且服务器当前具有32GB-512GB的DRAM。一般地,成本随DRAM的量增大而增大。
除了DRAM的成本,针对相同量的存储容量减小DRAM的封装大小变得越来越困难。此外,随着在设备中包含的DRAM的大小和数量增大,DRAM的电容增大,与DRAM相关联的导电元件的数量和/或长度增大,并且与DRAM相关联的缓冲增大。另外,随着DRAM的电容增大,DRAM的操作频率减小并且DRAM的延时时间段增大。
在操作期间,根据需要将程序和/或数据从DRAM 14传送到SoC12中的高速缓存。这些传送与在(i)各高速缓存,以及(ii)对应的处理器和/或图像处理设备之间的数据交换相比具有更高的延时。出于这个原因,归因于较长的延时时间段通常避免对DRAM 14的访问。
在启动期间,能够将程序从存储驱动器16传送到DRAM 14。例如,中央处理器28能够在启动期间将程序从存储驱动器16传送到DRAM 14。在启动期间,中央处理器28能够尝试访问存储在DRAM14中的数据。与该访问尝试相关联的命中率可以最初接近或等于0%。然而,命中率在启动的最后接近100%。
发明内容
提供了一种数据访问***并且其包括处理器和最终级高速缓存模块。处理器被配置为生成用于访问第一物理地址的请求。最终级高速缓存模块包括动态随机访问存储器(DRAM)、最终级高速缓存控制器和DRAM控制器。最终级高速缓存控制器被配置为(i)从处理器接收请求,并且(ii)将第一物理地址转换为第一虚拟地址。DRAM控制器被配置为(i)将第一虚拟地址转换为第二物理地址,并且(ii)基于第二物理地址来访问DRAM存储器。
提供了一种用于访问最终级高速缓存模块的动态随机访问存储器的方法。该方法包括:经由处理器生成用于请求访问第一物理地址的请求;在最终级高速缓存控制器处从处理器接收请求;经由最终级高速缓存控制器将第一物理地址转换为第一虚拟地址;经由动态随机访问存储器控制器将第一虚拟地址转换为第二物理地址;以及基于第二物理地址来访问动态随机访问存储器。
本公开内容的适用性的另外的领域将从详细描述的说明书、权利要求书和附图变得显而易见。详细描述的说明书和具体示例仅仅旨在为了说明的目的而不旨在限制本公开内容的范围。
附图说明
图1是根据现有技术的设备的功能框图。
图2是根据本公开内容的实施例的数据访问***的功能框图。
图3是图示了图2的数据访问***的DRAM和存储驱动器的功能框图。
图4图示了操作图2的数据访问***的方法。
在附图中,附图标记可以被重复利用以识别相似的和/或相同的元件。
具体实施方式
下面的示例中的至少一些示例包括最终级高速缓存(final level cache“FLC”)模块和存储驱动器。FLC模块被用作虚拟存储,并且存储驱动器被用作物理存储。数据在从物理存储读取或写入物理存储之前首先从虚拟存储读取或被写入虚拟存储。FLC模块和存储驱动器中的存储器在本文中被称为内容可寻址存储器(CAM)。FLC模块的控制模块使用下面描述的CAM技术来控制对FLC模块和存储驱动器中的存储器的访问。CAM技术和其他所公开的特征在使存储器访问速率最大化并使功率消耗最小化的同时减小设备中的DRAM的所需要的存储能力。该设备可以是网络设备或无线网络设备。设备的示例包括但不限于计算机、移动电话、平板电脑、相机等等。下面的示例中的DRAM一般不被用作主存储器,而是相反被用作虚拟存储器和/或被用作最终级的高速缓存。
图2示出了数据访问***70,其包括图像处理设备72、***总线74、FLC模块76和存储驱动器78。数据访问***70可以被实现在例如计算机、移动电话、平板电脑、服务器和/或其他设备中。图像处理设备72可以包括例如:中央处理器(或中央处理单元(CPU));图形处理器(或图形处理单元(GPU));录像机;相机图像信号处理器(ISP);诸如吉比特(Gb)以太网接口的以太网接口;诸如通用串行总线(USB)接口和串行高级技术附件(SATA)接口的串行接口;以及***组件互连快速(PCIe)接口;和/或其他图像处理设备。图像处理设备72可以被实现在一个或多个模块中。作为示例,图像处理设备72中的第一图像处理设备被示出为包括高速缓存存储器,例如以下各项中的一项或多项:零级(L0)高速缓存、一级(L1)高速缓存、二级(L2)高速缓存或三级(L3)高速缓存。在示出的示例中,第一图像处理设备可以包括中央处理器73和L1-L3高速缓存75。中央处理器73可以包括L0高速缓存77。中央处理器73还可以包括存储器管理模块(MMM)79,其能够控制对高速缓存75、77的访问。下面描述的由图像处理设备执行的任务可以由例如中央处理器73和/或MMM 79执行。
图像处理设备72还经由***总线74连接到FLC模块76。图像处理设备72经由总线和(i)在图像处理设备72与***总线74之间以及(ii)在***总线74与存储驱动器78之间的接口连接到存储驱动器78。接口可以包括例如以太网接口、串行接口、PCIe接口和/或嵌入式多媒体控制器(eMMC)接口。存储驱动器78可以位于世界上的远离图像处理设备72和/或FLC控制器80的任何地方。存储驱动器78可以经由一个或多个网络(例如,WLAN、互联网络或远程存储网络(云))与图像处理设备72和/或FLC控制器80进行通信。
FLC模块76包括FLC控制器80、DRAM控制器82和DRAM IC84。DRAM IC 84主要被用作虚拟存储,而存储驱动器78被用作物理存储。图像处理设备72对DRAM IC 84和存储驱动器78进行寻址,如同它们是单个存储设备。当读取和/或写入数据时,图像处理设备72将存储请求发送到FLC控制器80。FLC控制器80经由DRAM控制器82访问DRAM IC 84和/或访问存储驱动器78。FLC控制器80可以(如由虚线所指示的)直接地或经由***总线74访问存储驱动器。
本文描述了数据访问***70的各种示例。在第一示例中,FLC模块76被实现在与图像处理设备72、***总线74和存储驱动器78分离的SoC中。在第二示例中,图像处理设备72中的一个图像处理设备是CPU实现的图像处理设备。图像处理设备72中的一个图像处理设备可以被实现在与FLC模块76和存储驱动器78分离的SoC中。作为另一示例,图像处理设备72和***总线74被实现在与FLC模块76和存储驱动器78分离的SoC中。在另一示例中,图像处理设备72、***总线74和FLC模块76被实现在与存储驱动器78分离的SoC中。下面描述了数据访问***70的其他示例。
DRAM IC 84可以被用作最终级的高速缓存。DRAM IC 84可以具有各种存储容量。例如,DRAM IC 84可以具有用于移动电话应用的1-4GB的存储容量,用于个人计算机应用的4-32GB的存储容量,以及用于服务器应用的32GB-1太字节(T)的存储容量。
存储驱动器78可以包括闪速存储器(例如,NAND闪速存储器)、固态存储器、固态驱动器(SSD)、硬盘驱动器(HHD)和/或其他非易失性存储器。存储驱动器78可以是混合驱动器并且包括例如固态存储器和旋转存储介质。存储驱动器78可以具有比DRAM IC 84多的存储容量。例如,存储驱动器78可以包括比DRAM IC 84多4-16倍的存储。作为另一示例,存储驱动器78可以具有比DRAM IC 84多一数量级的存储容量。DRAM IC 84可以包括高速DRAM,并且存储驱动器78可以包括低速DRAM。换言之,DRAM IC 84的速度比存储驱动器78中的DRAM的速度快。
存储在DRAM IC 84中的数据可以是最近访问的、最经常访问的和/或具有最高相关联的优先级的数据。存储在DRAM IC 84中的数据可以包括被锁定的数据。被锁定的数据指的是总是存储在DRAM IC84中的数据。被锁定的数据可以被更新。存储在DRAM IC 84中的数据可以比存储在存储驱动器78中的数据更频繁地被访问和/或具有更高优先级。
在一些示例中,存储在DRAM IC 84中的数据不包括不频繁(例如,在比预定时间段内被访问多于预定次数)使用的软件应用、字体、软件代码、支持不同口语的备选代码和数据等等。这能够帮助使DRAM IC 84的大小要求最小化。不频繁使用的软件代码可以被称为“垃圾代码”并且可以不在启动过程期间从存储驱动器78被下载到DRAM IC 84。启动过程可以包括加载仅仅频繁使用的数据。随着DRAM IC 84的大小减小,性能提高并且功率消耗、电容和缓冲减小。随着电容和缓冲减小,延时减小。此外,通过消耗较少的功率,提高对应的设备的电池寿命。
FLC控制器80响应于从图像处理设备72接收到请求来执行CAM技术。CAM技术包括将由图像处理设备72提供的请求的第一物理地址转换为虚拟地址。这些虚拟地址与由图像处理设备72原先生成的虚拟地址无关且不同,并被映射到由图像处理设备72寻址的第一物理地址。DRAM控制器82将由FLC控制器80生成的虚拟地址转换(或映射)到第二物理地址。如果第二物理地址未处于DRAM IC 84中,则FLC控制器80可以(i)从存储驱动器78取读数据,或者(ii)可以向图像处理设备72中的对应的图像处理设备指示(或信号通知)已经发生高速缓存未命中。从存储驱动器78取读数据可以包括将由FLC控制器80生成的虚拟地址映射到第三物理地址以访问存储驱动器78中的数据。高速缓存未命中可以由FLC控制器80在将物理地址转化为虚拟地址时检测到和/或由DRAM控制器82在将虚拟地址转换为第二物理地址时检测到。DRAM控制器82可以信号通知FLC控制器80已经发生高速缓存未命中,并且接着FLC控制器80可以信号通知图像处理设备72中的一个图像处理设备高速缓存未命中或者可以针对数据对存储驱动器78进行访问。
如果FLC控制器80信号通知图像处理设备72中的一个图像处理设备已经发生高速缓存未命中,则图像处理设备72中的对应的图像处理设备可以访问存储驱动器78中的数据。这可以包括(i)基于第一物理地址来访问存储驱动器78中的数据,(ii)将原先生成的虚拟地址映射到第三物理地址并且接着基于第三物理地址来访问存储驱动器78,或者(iii)将第一物理地址映射到第三物理地址并且接着基于第三物理地址来访问存储驱动器78。CAM技术包括在DRAM IC 84与存储驱动器78之间进行地址映射。
例如,CAM技术可以提供全集关联地址转化。这可以包括将第一物理地址与存储在FLC控制器80的目录中的所有虚拟地址进行比较。全集关联地址转化可以由FLC控制器80用于将对应的数据请求的第一物理地址转化为第二虚拟地址(或由FLC控制器80生成的虚拟地址)。这可以包括将第一物理地址与第一目录中的所有地址进行比较以找到用于转换到虚拟地址的匹配。全集关联地址转化还可以由DRAM控制器82用于将第二虚拟地址与第二目录、DRAM IC 84和/或存储驱动器78中的所有入口的所有地址进行比较以找到用于转换到第二虚拟地址的匹配。在初始启动之后位于DRAM IC 84中的数据的命中率可以取决于DRAMIC 84的大小高达100%。DRAM IC 84的大小可以被调整以确保在处理器和/或图像处理器设备的最小空闲时间的情况下接近100%的命中率。例如,这可以使用用于移动电话应用的1-4GB DRAM IC、用于个人计算机应用的4-32GB DRAM IC以及用于服务器应用的32-500GBDRAM IC来完成。
除了图2,图3示出了数据访问***70的DRAM IC 84和存储驱动器78的入口。DRAMIC 84可以包括DRAM入口00-MN。存储驱动器78可以具有驱动器入口00-MN。DRAM入口00-MN中的每个入口的地址可以被映射到驱动器入口00-MN中的一个或多个地址。结果,存储在DRAM入口00-MN中的一个或多个DRAM入口中的数据的第一部分可以对应于存储在驱动器入口00-MN中的数据的第二部分。存储在DRAM入口00-MN中的数据可以包括提供关于存储在驱动器入口00-MN中的数据的信息的元数据。该信息可以包括存储在驱动器入口00-MN中的数据的数据类型和/或数据长度。
作为示例,DRAM入口00-MN中的每个DRAM入口可以具有例如16KB的存储容量。驱动器入口00-MN中的驱动器入口可以具有16GB的存储容量。如果数据要从DRAM入口00-MN中的一个DRAM入口被读取或被写入DRAM入口00-MN中的一个DRAM入口并且DRAM入口00-MN中的一个DRAM入口是满的和/或不具有与请求相关联的所有数据,则访问驱动器入口00-MN中的对应的驱动器入口。因此,DRAM IC 84和存储驱动器78可以被划分成存储器块。DRAM IC 84中的每个存储器块可以具有存储驱动器78中的相应的一个或多个存储器块。存储器的这种映射和划分对于图2的图像处理设备72可以是透明的。
在操作期间,图像处理设备72中的一个图像处理设备可以生成针对数据块的请求信号。如果数据块不位于DRAM IC 84中,则FLC控制器80可以访问存储驱动器78中的数据块。当FLC控制器80正在从存储驱动器78访问数据时,FLC控制器80可以将总线错误信号(或警报信号)发送回到请求数据的图像处理设备。总线错误信号可以指示FLC控制器80正在访问数据并且结果***总线74未准备好将数据传送到图像处理设备72。总线错误信号的传输可以被称为从FLC模块76到图像处理设备和/或图像处理设72的SoC的“总线终止”。图像处理设备72可以在等待总线准备好的同时执行其他任务。其他任务可以包括使用已经存储在例如图像处理设备的SoC中的一个或多个高速缓存(例如,L0-L3高速缓存)中的数据。这还使处理器和/或图像处理设备的空闲时间最小化。
如果执行顺序访问,则FLC控制器80和/或DRAM控制器82可以执行对存储在预计要在未来被访问的地址处的数据的预测性取读。这可以发生在启动期间和/或在启动之后。FLC控制器80和/或DRAM控制器82可以:跟踪数据和/或软件使用;评价要被运行的代码行;跟踪存储器访问模式;并且基于该信息来预测预计要被访问的数据的下一地址。下一地址可以是DRAM IC 84和/或存储驱动器78的地址。作为示例,FLC控制器80和/或DRAM控制器82在独立于和/或没有先前接收针对数据的请求的情况下可以访问存储在存储驱动器78中的数据并将数据传送到DRAM IC 84。作为另一示例,FLC控制器80和/或DRAM控制器82在独立于和/或没有先前接收针对数据的请求的情况下可以访问存储在DRAM IC 84中的数据并将数据传送到***总线74和/或图像处理设备72中的一个。
参考图4的方法进一步描述数据访问***70的操作。尽管下面的任务主要参考图2-4中的示例进行描述,但是这些任务可以容易地被修改以适用于本公开内容的其他示例。这些任务可以迭代地被执行。
该方法在100处开始。在102处,FLC控制器80从图像处理设备72中的一个图像处理设备接收请求。该请求可以是读取请求或写入请求。
在104处,FLC控制器80确定接收到的请求是否为读取请求。在该请求为读取请求时执行任务106,否则执行任务122。在106处,FLC控制器80将在接收到的请求中提供的第一物理地址转换为虚拟地址。虚拟地址可以与DRAM IC 84中的物理地址和/或存储驱动器78中的物理地址相关联。
在108处,DRAM控制器82将虚拟地址转换为第二物理地址。FLC控制器80和/或DRAM控制器82可以包括用于将第一物理地址映射到虚拟地址和用于将虚拟地址映射到第二物理地址的一个或多个转化映射表。这些表可以在FLC控制器80与DRAM控制器82之间共享。
在110处,DRAM控制器82确定第二物理地址是否处于DRAM IC 84中并且因此确定对应的数据块是否处于DRAM IC 84的所分配的空间中。如果第二物理地址处于DRAM IC 84中,则执行任务112,否则执行任务114。
在112处并且基于第二物理地址,DRAM控制器82从DRAM IC84读取与接收到的请求相关联的一个或多个第一数据块。第一数据块中的每个数据块可以具有DRAM IC 84中的对应的物理地址。
在114处并且基于第二物理地址,FLC控制器80从存储驱动器78读取与接收到的请求相关联的一个或多个第二数据块。一个或多个第二数据块可以包括第一数据块。第二数据块中的每个数据块可以具有存储驱动器78中的对应的物理地址。第二数据块和存储驱动器78的对应地址可以分别对应于第一数据块和DRAM IC 84的对应地址。
在116处,将从DRAM IC 84或存储驱动器78读取的数据转发到发送接收到的请求的图像处理设备。在118处,针对在102处接收到的请求,FLC控制器80和/或DRAM控制器82可以确定是否存在要从DRAM IC 84和/或存储驱动器78读取的额外的数据。如果存在要读取的额外的数据,则执行任务110,否则该方法可以在120处结束。作为返回到任务110的备选并且针对在102处接收到的请求,如果存在要读取的额外的数据并且如果存在要转换的另一物理地址,则可以在任务118之后执行任务106。
在122处,FLC控制器80确定接收到的请求是否为写入请求。如果接收到的请求为写入请求,则执行任务126,否则该方法可以在124处结束。在126处,FLC控制器80将在接收到的请求中提供的第一物理地址转换为虚拟地址。虚拟地址可以与DRAM IC 84中的物理地址和/或存储驱动器78中的物理地址相关联。在128处,DRAM控制器82将虚拟地址转换为第二物理地址。任务126和128可以使用以上提到的映射表来完成。
在130处,DRAM控制器82确定第二物理地址是否处于DRAM IC 84中并且因此确定对应的数据块是否要被写入DRAM IC 84中的所分配的空间。如果第二物理地址处于DRAMIC 84中,则执行任务132,否则执行任务134。
在132处并且基于第二物理地址,DRAM控制器82将接收到的请求相关联的一个或多个第一数据块写入DRAM IC 84。第一数据块中的每个数据块可以具有DRAM IC 84中的对应的物理地址。
在134处并且基于第二物理地址,FLC控制器80将与接收到的请求相关联的一个或多个第二数据块写入存储驱动器78。一个或多个第二数据块可以包括第一数据块。第二数据块中的每个数据块可以具有存储驱动器78中的对应的物理地址。第二数据块和存储驱动器78的对应地址可以分别对应于第一数据块和DRAM IC 84的对应地址。
在136处,针对在102处接收到的请求,FLC控制器80和/或DRAM控制器82可以确定是否存在要写入DRAM IC 84和/或存储驱动器78的额外的数据。如果存在要写入的额外的数据,则执行任务130,否则该方法可以在138处结束。作为返回到任务130的备选并且针对在102处接收到的请求,如果存在要写入的额外的数据并且如果存在要转换的另一物理地址,则可以在任务136之后执行任务126。
图4的上述任务旨在为说明性示例;可以取决于应用顺序地、同步地、同时地、连续地、在交叠的时间段期间或者以不同的顺序来执行这些任务。此外,取决于示例和/或事件的顺序,可以不执行或跳过这些任务中的任何。
上述示例可以经由网络中的服务器(可以被称为“云”)实现。各服务器中的每个服务器可以包括FLC模块(例如,FLC模块76)并相互通信。各服务器可以共享存储在DRAM IC和存储驱动器中的DRAM和/或存储器。各服务器中的每个服务器可以经由网络访问其他服务器中的DRAM和/或存储驱动器。FLC模块中的每个FLC模块可以与图2的FLC模块类似地操作,但是还可以经由云访问其他服务器中的每个服务器中的DRAM和/或存储器。在服务器与云之间传输的信号可以在传输之前被加密并在到达云的服务器和/或网络设备后解密。服务器还可以共享和/或访问云中的存储器。作为示例,由各服务器中的一个服务器的FLC控制器生成的虚拟地址可以对应于以下中的物理地址:FLC控制器的FLC模块的DRAM;各服务器中的一个服务器的存储驱动器;其他服务器中的一个服务器的FLC模块的DRAM;其他服务器中的一个服务器的存储驱动器;或者云的存储设备。各服务器中的一个服务器的FLC控制器和/或图像处理设备可以在发生高速缓存未命中时访问其他FLC模块、存储驱动器和/或存储设备中的DRAM和/或存储器。
上述示例还可以被实现在包括以下的数据访问***中:具有多个芯片的多芯片模块;交换机;具有初级FLC模块的初级芯片。多芯片模块经由交换机连接到初级芯片模块。FLC模块中的每个FLC模块可以与图2的FLC模块类似地操作,但是还可以经由交换机访问其他芯片中的每个芯片中的DRAM和/或存储器。作为示例,由各芯片中的一个芯片的FLC控制器生成的虚拟地址可以对应于以下中的物理地址:FLC控制器的FLC模块的DRAM;各芯片中的一个芯片的存储驱动器;其他芯片中的一个芯片的FLC模块的DRAM;其他芯片中的一个芯片的存储驱动器;或者云的存储设备。各芯片中的一个芯片的FLC控制器和/或图像处理设备可以在发生高速缓存未命中时访问其他FLC模块、存储驱动器和/或存储设备中的DRAM和/或存储器。
作为示例,多芯片模块中的次级DRAM和初级芯片中的初级DRAM中的每个可以具有1GB的存储容量。初级芯片中的存储驱动器可以具有例如64GB的存储容量。作为另一示例,数据访问***可以被使用在汽车中。初级芯片可以为例如中央控制器、模块、处理器、引擎控制模块、传输控制模块和/或混合控制模块。初级芯片可以被用于控制相关***的对应方面,例如油门位置、火花定时、燃油定时、在传动轮之间的转变等等。多芯片模块中的次级芯片中的每个次级芯片可以与特定车辆***相关联,特定车辆***例如照明***、娱乐***、空调***、排气***、导航***、音频***、视频***、制动***、操纵***等等并且被用于控制对应***的各方面。
作为又一示例,上述示例还可以被实现在包括主机(或SoC)和混合驱动器的数据访问***中。主机可以包括中央处理器或其他图像处理设备并且经由接口与混合驱动器进行通信。接口例如为例如GE接口、USB接口、SATA接口、PCIe接口或其他适当的接口。混合驱动器可以包括第一存储驱动器和第二存储驱动器。第一存储驱动器包括FLC模块(例如,图2的FLC模块76)。FLC模块的FLC控制器在确定是否从FLC模块和第二存储驱动器的DRAM读取数据和/或将数据写入FLC模块和第二存储驱动器的DRAM时执行CAM技术。
作为另一示例,上述示例还可以被实现在包括SoC、第一DRAM(或高速缓存)、第二DRAM和非易失性存储器的存储***中。SoC与第一DRAM、分立DRAM和非易失性存储器是分离的。第一DRAM可以存储高优先级和/或频繁访问的数据。高百分比的数据访问请求可以被指向存储在第一DRAM中的数据。作为示例,99%或更多的数据访问请求可以被指向存储在第一DRAM中的数据和/或剩余的1%或更少的数据访问请求可以被指向存储在第二DRAM和/或非易失性存储器中的数据。低优先级和/或较不频繁地访问的数据可以被存储在第二DRAM和/或非易失性存储器中。作为示例,用户可以打开多个网页浏览器。第二DRAM能够具有高带宽接口和每位低成本的存储器存储容量并且能够处置广泛的应用。第二DRAM通常展示比高速缓存或第一DRAM长的延时时间段。针对当前使用的或最频繁使用的网页浏览器的内容可以被存储在第二DRAM和/或非易失性存储器中。
SoC可以包括一个或多个控制模块、接口模块、高速缓存(或FLC)模块以及图形模块。高速缓存模块可以与图2的FLC模块类似地操作。控制模块经由接口模块连接到高速缓存模块。高速缓存模块被配置为基于相应的层次级别来访问第一DRAM、第二DRAM和非易失性存储器。各控制模块中的每个控制模块可以包括相应的L1高速缓存、L2高速缓存和L3高速缓存。各控制模块中的每个控制模块还可以包括一个或多个额外的高速缓存,例如L4高速缓存或其他最高级高速缓存。许多信号线(或导电元件)可以存在于SoC与第一DRAM之间。这允许在SoC与第一DRAM之间对数据的快速并行和/或串行传送。在SoC与第一DRAM之间的数据传送比(i)在SoC与第二DRAM之间以及(ii)在SoC与非易失性存储器之间的数据传送快。
第一DRAM可以含有具有与L3高速缓存622、L4高速缓存和/或最高级高速缓存相同或比其高的层次级别的第一部分。第一DRAM的第二部分可以具有与第二DRAM和/或非易失性存储器相同或比其低的层次级别。第二DRAM可以具有比第一DRAM高的层次级别。非易失性存储器可以具有与第二DRAM相同或比其高的层次级别。控制模块可以基于高速缓存需要来改变第一DRAM、第二DRAM和/或非易失性存储器中的每个的部分或全部的层次级别。
控制模块、连接到接口模块的图形模块和/或连接到接口模块的(在SoC的内部或外部的)其他设备可以将请求信号发送到高速缓存模块以存储和/或访问第一DRAM、第二DRAM和/或非易失性存储器中的数据。高速缓存模块可以控制对第一DRAM、第二DRAM和非易失性存储器的访问。作为示例,控制模块、图像模块和/或连接到接口模块的其他设备可以不知道连接到SoC的DRAM的数量和/或大小。
高速缓存模块可以将从控制模块、图像模块和/或连接到接口模块的其他设备接收到的第一逻辑块地址和请求转换为(i)第一DRAM、第二DRAM和/或非易失性存储器的物理块地址,或者(ii)第二逻辑块地址。第二逻辑块地址可以通过第一DRAM、第二DRAM和/或非易失性存储器被转换为物理块地址。高速缓存模块可以存储用于将第一逻辑块地址转换为第二逻辑块地址和/或将第一逻辑块地址转换为物理块地址的一个或多个查找表(例如,全集关联查找表)。结果,高速缓存模块以及第一DRAM、第二DRAM和非易失性存储器中的一个或多个可以用作与控制模块、图像模块和/或连接到接口模块的其他设备相关的单个存储器。图形模块可以控制视频数据从控制模块和/或SoC到显示器和/或其他视频设备的输出。
控制模块可以在(i)高速缓存模块以及(ii)L1高速缓存、L2高速缓存和L3高速缓存之间交换(或传送)数据、数据集、程序和/或其部分。高速缓存模块可以在第一DRAM、第二DRAM和非易失性存储器中的两个或更多个之间交换(或传送)数据、数据集、程序和/或其部分。这可以独立于控制模块和/或在没有从控制模块接收到执行传送的控制信号的情况下来执行。数据、数据集、程序和/或其部分在第一DRAM、第二DRAM和非易失性存储器中的一个或多个中的存储位置可以基于对应的优先级、使用的频率、访问的频率和/或与数据、数据集、程序和/或其部分相关联的其他参数。对数据、数据集、程序和/或其部分的传送可以包括传送数据块。数据块中的每个数据块可以具有预定大小。作为示例,从第二DRAM到第一DRAM的数据的交换可以包括多个传送事件,其中每个传送事件包括传送数据块(例如,16KB的数据)。
高速缓存模块可以使用第一DRAM作为关联高速缓存、指向的映射的高速缓存和/或全关联高速缓存并使用对应的高速缓存协议来访问第一DRAM。高速缓存模块可以被称为最末(或最高)级高速缓存(LLC)控制器。
第一DRAM可以具有第一预定量的存储容量(例如,0.25GB、0.5GB、1GB或8GB)。0.5GB第一DRAM是典型L2高速缓存的512倍。第二DRAM可以具有第二预定量的存储容量(例如,针对非基于服务器的***为1GB或更多或者针对基于服务器的***为256GB或者更多)。非易失性存储器可以具有第三预定量的存储容量(例如,256GB或更多)。非易失性存储器可以包括固态存储器,例如闪速存储器或磁阻随机访问存储器(MRAM)和/或旋转磁性介质。非易失性存储器可以包括SSD和HDD。尽管存储***具有第二DRAM和非易失性存储器,但是第二DRAM和非易失性存储器中的任一个可以不被包含在存储***中。
作为另一示例,上述示例还可以被实现在包括SoC和DRAM IC的存储***中。SoC可以包括经由环形总线访问DRAM IC的多个控制模块(或处理器)。环形总线可以是使访问延时最小化的双向总线。如果成本比性能更重要,则环形总线可以为单向总线。中介设备可以位于控制模块与环形总线之间和/或在环形总线与DRAM IC之间。例如,上述高速缓存模块可以位于控制模块与环形总线之间或者在环形总线与DRAM IC之间。
DRAM IC可以为L3高速缓存、L4高速缓存和/或最高级高速缓存。控制模块可以共享DRAM IC和/或具有DRAM IC的指定部分。例如,DRAM IC的第一部分可以被分配为针对第一控制模块的高速缓存。DRAM IC的第二部分可以被分配为针对第二控制模块的高速缓存。DRAM IC的第三部分可以被分配为针对第三控制模块的高速缓存。DRAM IC的第四部分可以不被作为高速缓存分配。
作为另一示例,上述示例还可以被实现在服务器***中。服务器***可以被称为存储***并且包括多个服务器。服务器包括相应的存储***,其经由网络(或云)相互通信。各存储***中的一个或多个存储***可以位于云中。存储***中的每个存储***可以包括相应的SoC。
SoC可以具有相应的第一DRAM、第二DRAM、固态非易失性存储器、非易失性存储器和I/O端口。I/O端口可以经由诸如***组件互连快速(PCIe)信道的相应的I/O信道和诸如***组件互连快速(PCIe)信道的相应网络接口与云进行通信。I/O端口、I/O信道和网络接口可以为以太网端口、信道和网络接口并且以预定速度(例如,每秒1吉比特(Gb/s)、10Gb/s、50Gb/s等等)传送数据。网络接口中的一些可以位于云中。多个存储***的连接提供低成本的分布式的且可扩展的服务器***。所公开的存储***和/或服务器***中的多个可以相互通信并且被包含在网络(云)中。
固态非易失性存储器中的每个固态非易失性存储器可以包括例如NAND闪速存储器和/或其他固态存储器。非易失性存储器中的每个非易失性存储器可以包括固态存储器和/或旋转磁性介质。非易失性存储器中的每个非易失性存储器可以包括SSD和/或HDD。
服务器***的架构提供DRAM作为高速缓存。DRAM可以被分配作为针对相应SoC的L3高速缓存、L4高速缓存和/或最高级高速缓存并且具有高带宽和大存储容量。堆叠的DRAM可以包括例如DDR3存储器、DDR4存储器、低功率两倍数据速率类型四(LPDDR4)存储器、宽I/O2存储器、HMC存储器和/或其他适当的DRAM。SoC中的每个SoC可以具有一个或多个控制模块。控制模块经由相应的环形总线与对应的DRAM进行通信。环形总线可以是双向总线。这提供在控制模块与对应的DRAM之间的高带宽和最小延时。
控制模块中的每个可以访问存储在以下各项中的数据和/或程序:相同SoC或不同SoC的控制模块;DRAM中的任何DRAM;固态非易失性存储器中的任何固态非易失性存储器;和/或非易失性存储器中的任何非易失性存储器。
SoC和/或SoC的端口可以具有媒体访问控制器(MAC)地址。SoC的控制模块(或处理器)可以具有相应的处理器集群地址。控制模块中的每个控制模块可以使用对应的MAC地址和处理器集群地址来访问相同SoC中或另一SoC中的其他控制模块。SoC的控制模块中的每个控制模块可以访问DRAM。第一SoC的控制模块可以通过发送具有第二SOC的MAC地址和第二SoC中的第二控制模块的处理器集群地址的请求信号来请求存储在连接到第二SoC的DRAM中的数据和/或程序。
SoC和/或SoC中的控制模块中的每个可以存储一个或多个地址转化表。地址转化表可以包括和/或提供针对以下的转化:SoC的MAC地址;控制模块的处理器集群地址;DRAM、固态非易失性存储器以及非易失性存储器中的存储器单元的逻辑块地址;和/或DRAM、固态非易失性存储器以及非易失性存储器中的存储器单元的物理块地址。
作为示例,数据和程序可以被存储在固态非易失性存储器和/或非易失性存储器中。数据和程序和/或其部分可以通过网络被分布到SoC和控制模块。由控制室模块运行所需要的程序和/或数据可以在本地被存储在控制模块位于其中的SoC的DRAM、固态非易失性存储器和/或非易失性存储器中。控制模块可以接着从DRAM、固态非易失性存储器和/或非易失性存储器访问运行所需要的程序和/或数据并将这些程序和数据传送到控制模块中的高速缓存。在SoC与网络之间和/或在各SoC之间的通信可以包括无线通信。
作为另一示例,上述示例还可以被实现在包括SoC的服务器***中。SoC中的一些SoC可以被包含在相应的服务器中并且可以被称为服务器SoC。SoC中的一些SoC(被称为同伴SoC)可以被包含在第一SoC的服务器中或者可以与第一SoC的服务器是分离的。第一SoC包括相应的:控制模块(例如,中央处理模块)的集群;集群内环形总线、FLC模块、存储器控制模块、FLC环形总线以及一个或多个跳跃总线。跳跃总线(i)经由芯片间总线构件和对应的端口在服务器SoC与同伴SoC之间延伸以及(ii)通过同伴SoC延伸。跳跃总线可以指的是延伸到跳跃总线站、适配器或节点以及一个或多个SoC的对应端口和从其延伸的总线。跳跃总线可以通过跳跃总线和/或一个或多个SoC延伸。往来于跳跃总线的单次数据传送可以被称为单跳。可以当在发送设备与接收设备之间传送数据时执行多跳。数据可以在每个时钟周期在各总线站之间行进直到数据到达目的地。本文公开的每个总线站可以被实现为模块并且包括用于基于时钟信号来将数据在各设备之间进行传送的逻辑。此外,本文公开的每个总线可以具有用于数据的串行和/或并行传输的任何数量的信道。
控制模块的集群中的每个集群具有集群内环形总线中的对应集群内环形总线。集群内环形总线是双向的并且提供在集群中的每个集群中的控制模块之间的通信。集群内环形总线可以具有用于由控制模块访问在集群内环形总线上传输的数据信号的环形总线站。环形总线站可以变现为信号复示器(repeater)和/或访问节点。控制模块可以经由环形总线站连接到集群内环形总线并访问集群内环形总线。数据可以围绕集群内环形总线从在环形总线站的第一环形总线站处的第一控制模块被传输到在环形总线站的第二环形总线站处的第二控制模块。控制模块中的每个控制模块可以是中央处理单元或处理器。
存储器控制模块中的每个存储器控制模块可以控制对FLC模块中的相应FLC模块的访问。FLC模块可以被堆叠在服务器SoC上。FLC模块中的每个FLC模块包括FLC(或DRAM)并且可以被实现为本文所公开的FLC模块中的任何FLC模块并且与本文所公开的FLC模块中的任何FLC模块类似地操作。存储器控制模块可以访问在FLC环形总线上的相应环形总线站处的FLC环形总线并且在环形总线站与FLC模块之间传送数据。备选地,FLC模块可以直接访问在相应环形总线站处的FLC环形总线。存储器控制模块中的每个存储器控制模块可以包括存储器时钟,其生成针对FLC模块中的相应FLC模块和/或针对环形总线和/或跳跃总线的总线站的存储器时钟信号。总线站可以间接地经由环形总线和/或跳跃总线或者直接从存储器控制模块接收存储器时钟信号。数据可以基于存储器时钟信号通过总线站进行循环。
FLC环形总线可以是双向总线并且具有两种类型的环形总线站SRB和SRH。环形总线站中的每个环形总线站可以执行为信号复示器和/或访问节点。环形总线站SRB连接到除了跳跃总线之外的设备。该设备可以包括:集群间环形总线0;FLC模块和/或存储器控制模块;以及图形处理模块。集群间环形总线提供(i)在各集群之间以及(ii)在交叉环形站之间的连接。交叉环形总线站提供对集群间环形总线的访问并且可以将集群间环形总线连接到在在(i)各集群以及(ii)环形总线站之间延伸的环形总线延伸。环形总线站处于FLC环形总线上。集群间环形总线和交叉环形总线站提供(iii)在第一集群与第二FLC环形总线的环形总线站之间以及(iv)在第二集群与第一FLC环形总线的环形总线站之间的连接。这允许控制模块访问第二FLC模块的FLC并且允许控制模块访问第一FLC模块的FLC。
集群间环形总线可以包括芯片内迹线和芯片间迹线。芯片内迹线在服务器SoC的内部并且在(i)环形总线站中的一个与(ii)端口中的一个之间延伸。芯片外迹线在服务器SoC的外部并且在端口的相应对之间延伸。
服务器SoC中的每个服务器SoC的环形总线站SRH连接到FLC环形总线和跳跃总线中的对应一者。跳跃总线中的每个跳跃总线具有多个跳跃总线站SHB,其提供对跳跃总线中的每个跳跃总线的相应接口访问。跳跃总线站SHB可以被执行为信号复示器和/或访问节点。
第一跳跃总线、环形总线站和第一跳跃总线站提供在(i)FLC环形总线与(ii)服务器SoC中的液晶显示器(LCD)接口以及同伴SoC的接口之间的连接。LCD接口可以连接到显示器并且可以经由GPM控制。同伴SoC的接口包括串行附接小型计算机***接口(SAS)接口和PCIe接口。同伴SoC的接口是图像处理器(IP)接口。
接口连接到相应的端口,相应的端口可以连接到诸如***设备的设备。SAS接口和PCIe接口可以分别经由端口连接到SAS兼容设备和PCIe兼容设备。作为示例,存储驱动器可以连接到端口。存储驱动器可以是硬盘驱动器、固态驱动器或混合驱动器。端口可以连接到图像处理设备。以上公开了图像处理设备的示例。第四SoC可以经由芯片间总线构件(还被称为菊链构件)菊链到第三SoC。芯片间总线构件是第一跳跃总线的构件。额外的SoC可以经由连接到第一跳跃总线的端口菊链到第四SoC。服务器SoC、控制模块和FLC模块可以经由FLC环形总线、第一跳跃总线和/或第三SoC来与第四SoC进行通信。作为示例,SoC可以是南桥芯片并且控制在(i)服务器SoC与(ii)连接到端口的***设备之间的通信和中断的传送。
第二跳跃总线提供经由环形总线站和第二跳跃总线站在(i)FLC环形总线与(ii)服务器SoC中的接口之间的连接。服务器SoC中的接口可以包括以太网接口、一个或多个PCIe接口以及混合(或组合)接口。以太网接口可以为10GE接口并且经由第一以太网总线连接到网络。以太网接口可以经由第一以太网总线、网络和第二以太网总线与第二SoC进行通信。网络可以为以太网络、云网络和/或其他以太网兼容网络。一个或多个PCIe接口可以包括例如第三代PCIe接口PCIe3和迷你型PCIe接口(mPCIe)。PCIe接口可以连接到固态驱动器。混合接口可以是SATA和PCIe兼容的以根据SATA和/或PCIe协议来将数据传送到SATA兼容的设备和/或PCIe兼容的设备和/或从SATA兼容的设备和/或PCIe兼容的设备传送。作为示例,PCIe接口可以连接到存储驱动器,例如固态驱动器或混合驱动器。接口具有用于连接到在服务器SoC的外部的设备的相应端口。
第三跳跃总线可以经由环形总线站连接到环形总线并且可以经由跳跃总线站连接到LCD接口和端口。LCD接口可以连接到显示器并且可以经由GPM控制。端口可以连接到一个或多个同伴SoC。第四跳跃总线可以经由环形总线站连接到(i)环形总线并且(ii)可以经由跳跃总线站连接到接口。接口可以为以太网接口、PCIe接口和混合接口。接口具有相应的端口。
服务器SoC和/或其他服务器SoC可以经由集群间环形总线互相通信。服务器SoC和/或其他服务器SoC可以经由相应的以太网接口和网络互相通信。
同伴SoC可以包括相应的控制模块。控制模块可以访问和/或控制经由跳跃总线站对接口的访问。在一个实施例中,不包括控制模块。控制模块可以连接到各跳跃总线站的对应的跳跃总线站和/或各接口的对应的接口并且与其进行通信。
作为另一示例,上述示例还可以被实现在移动设备的电路中。移动设备可以是计算机、蜂窝电话、或其他无线网络设备。电路包括SoC。SoC可以被称为移动SoC。SoC可以被称为同伴SoC。移动SoC包括:控制模块的集群;集群内环形总线,FLC模块,存储器控制模块,FLC环形总线,以及一个或多个跳跃总线。跳跃总线(i)经由芯片间总线构件和对应的端口在移动SoC与同伴SoC之间以及(ii)通过同伴SoC延伸。
集群内环形总线是双向的并且提供在各控制模块之间的通信。集群内环形总线可以具有用于由控制模块访问在集群内环形总线上传输的数据信号的环形总线站。环形总线站可以执行为信号复示器和/或访问节点。控制模块可以经由环形总线站连接到集群内环形总线并访问集群内环形总线。数据可以围绕集群内环形总线从在环形总线站的第一环形总线站处的第一控制模块被传输到在环形总线站的第二环形总线站处的第二控制模块。数据可以在在每个时钟周期行进在总线站之间直到数据到达目的地。控制模块中的每个控制模块可以是中央处理单元或处理器。
存储器控制模块可以控制对FLC模块的访问。在一个实施例中,不包括存储器控制模块。FLC模块可以被堆叠在移动SoC上。FLC模块可以为FLC或DRAM并且可以被实现为本文所公开的FLC模块中的任何FLC模块并且与本文所公开的FLC模块中的任何FLC模块类似地操作。存储器控制模块可以访问在FLC环形总线上的相应环形总线站处的FLC环形总线并且在环形总线站与FLC模块之间传送数据。备选地,FLC模块可以直接访问在相应环形总线站处的FLC环形总线。存储器控制模块可以包括存储器时钟,其生成针对FLC模块、环形总线和/或跳跃总线的总线站的存储器时钟信号。总线站可以间接地经由环形总线和/或跳跃总线或者直接从存储器控制模块接收存储器时钟信号。数据可以基于存储器时钟信号而通过总线站进行循环。
FLC环形总线可以是双向总线并且具有两种类型的环形总线站SRB和SRH。环形总线站中的每个环形总线站可以执行为信号复示器和/或访问节点。环形总线站SRB连接到除了跳跃总线之外的设备。该设备可以包括:集群;FLC模块和/或存储器控制模块;以及图形处理模块。
移动SoC的环形总线站SRH连接到FLC环形总线和跳跃总线中的对应一个。跳跃总线中的每个跳跃总线具有多个跳跃总线站SHB,其提供对跳跃总线的对应的跳跃总线的接口访问。跳跃总线站SHB可以执行为信号复示器和/或访问节点。
第一跳跃总线、环形总线站和第一跳跃总线站连接在(i)FLC环形总线与(ii)液晶显示器(LCD)接口、视频处理模块(VPM)、以及同伴SoC的接口之间。LCD接口处于服务器SoC中并且可以连接到显示器并且可以经由GPM控制。同伴SoC的接口包括蜂窝接口、无线局域网(WLAN)接口以及图像信号处理器接口。蜂窝接口可以包括用于与其他移动和/或无线设备进行无线通信的物理层设备。物理层设备可以根据长期演进(LTE)标准和/或第三代(3G)移动电信标准、***(4G)移动电信标准和/或第五代(5G)移动电信标准来操作和/或发送和接收信号。WLAN接口可以根据 和/或其他WLAN协议来操作并且与移动设备的WLAN设备中的其他网络设备进行通信。ISP接口可以连接到在同伴SoC的外部的图像处理设备(或图像信号处理设备),例如存储驱动器或其他图像处理设备。接口可以经由相应的端口连接到在同伴SoC的外部的设备。ISP接口可以连接到在移动设备的外部的设备。
同伴SoC可以经由芯片间总线构件连接到移动SoC。芯片间总线构件是第一跳跃总线的构件。额外的SoC可以经由连接到第一跳跃总线的端口菊链到同伴SoC。移动SoC、控制模块和FLC模块可以经由FLC环形总线和第一跳跃总线与同伴SoC进行通信。
第二跳跃总线提供经由环形总线站和第二跳跃总线站在(i)FLC环形总线与(ii)移动SoC中的接口之间的连接。移动SoC中的接口可以包括以太网接口、一个或多个PCIe接口以及混合(或组合)接口。以太网接口可以为10GE接口并且经由端口连接到以太网络。一个或多个PCIe接口可以包括例如第三代PCIe接口PCIe3和迷你型PCIe接口(mPCIe)。PCIe接口可以连接到固态驱动器。混合接口可以是SATA和PCIe兼容的以根据SATA和/或PCIe协议来将数据传送到SATA兼容的设备和/或PCIe兼容的设备和/或从SATA兼容的设备和/或PCIe兼容的设备传送。作为示例,PCIe接口可以经由端口连接到存储驱动器。存储驱动器可以为固态驱动器或混合驱动器。接口具有用于连接到在移动SoC的外部的设备的相应端口。
同伴SoC可以包括控制模块。控制模块可以经由跳跃总线站访问和/或控制对VPM和接口的访问。在一个实施例中,不包括控制模块。控制模块可以连接到跳跃总线站、VPM1198和/或接口并且与跳跃总线站、VPM 1198和/或接口进行通信。
本公开内容中描述的无线通信能够以与IEEE标准802.11-2012、IEEE标准802.16-2009、IEEE标准802.20-2008和/或蓝牙核心规范v4.0完全或部分兼容地来执行。在各种实施方案中,蓝牙核心规范v4.0可以通过蓝牙核心规范附录2、3或4中的一个或多个来修改。在各种实施方案中,IEEE 802.11-2012可以由制定的IEEE标准802.11ac、制定的IEEE标准802.11ad和/或制定的IEEE标准802.11ah来补充。
尽管术语第一、第二、第三等等可以在本文中用于描述各种芯片、模块、信号、元件和/或组件,但是这些项目不应由这些术语限制。这些术语可以仅仅被用于将一个项目与另一项目区分开。诸如“第一”、“第二”和其他数值术语的术语当在本文中使用时不暗示序列或顺序,除非由上下文清楚地指示。因此,下面讨论的第一项目能够被命名为第二项目,而不脱离示例性示例的教导。
此外,各种术语被用于描述在各组件之间的物理关系。当第一元件被称为“连接到”、“接合到”或“耦合到”第二元件时,第一元件可以直接连接、接合、设置、应用或耦合到第二元件,或者可以存在居间元件。相反,当元件被称为“直接连接到”、“直接接合到”或“直接耦合到”另一元件时,可以不存在居间元件。以第一元件“连接到”、“接合到”或“耦合到”第二元件开始暗示第一元件可以“直接连接到”、“直接接合到”或“直接耦合到”第二元件。用于描述在各元件之间的关系的其他词语应当以类似的方式来解读(例如,“在…之间”对比“直接在…之间”,“相邻”对比“直接相邻”,等等)。
前面的描述实质上仅仅是说明性的并且不旨在以任何方式限制本公开内容、其应用或使用。本公开内容的广泛教导能够以各种形式来实现。因此,当本公开内容包括特定示例时,本公开内容的真实范围不应当受此限制,因为其他修改在研究附图、说明书和下面的权利要求书后将变得显而易见。如本文中所使用的,短语A、B和C中的至少一个应当被理解为意味着使用非排他性的逻辑OR的逻辑(A OR B OR C),并且不应当被理解为意味着“A中的至少一个、B中的至少一个和C中的至少一个”。应当理解,方法内的一个或多个步骤可以以不同顺序(或并发地)来运行而不改变本公开内容的原理。
在本申请中,包括下面的定义,术语‘模块’或术语‘控制器’可以利用术语‘电路’来代替。术语‘模块’和术语‘控制器’可以指代以下各项、为其的部分或者包括以下各项:专用集成电路(ASIC);数字分立电路、模拟分立电路或混合的模拟/数字分立电路;数字集成电路、模拟集成电路或混合的模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);运行代码的(共享、专用或组)处理器电路;存储由处理器电路运行的代码的(共享、专用或组)存储器电路;提供所描述的功能的其他适当的硬件组件;或者以上的一些或全部的组合(例如片上***中)。
模块或控制器可以包括一个或多个接口电路。在一些示例中,接口电路可以包括连接到局域网(LAN)、互联网、广域网(WAN)或其组合的有线接口或无线接口。本公开内容的任何给出的模块或控制器的功能可以被分布在经由接口电路连接的多个模块和/或控制器之中。例如,多个模块和/或控制器可以允许负载均衡。在另一示例中,服务器(也被称为远程或云)模块或(远程或云)控制器可以代表客户端模块和/或客户端控制器来完成某种功能。
如以上所使用的术语代码可以包括软件、固件和/或微代码,并且可以指代程序、例程、函数、类、数据结构和/或对象。术语共享处理器包括运行来自多个模块和/或控制器的一些或所有代码的单个处理器电路。术语组处理器电路包括与额外的处理器电路组合地运行来自一个或多个模块和/或控制器的一些或所有代码的处理器电路。对多个处理器的引用包括在分立管芯上的多个处理器电路、在单个管芯上的多个处理器电路、单个处理器电路的多核心、单个处理器电路的多线程、或者以上的组合。术语共享存储器电路包括存储来自多个模块和/或控制器的一些或所有代码的单个存储器电路。术语组存储器电路包括与额外的存储器组合地存储来自一个或多个模块和/或控制器的一些或所有代码的存储器电路。
术语存储器电路是术语计算机可读介质的子集。如本文中所使用的计算机可读介质不包括通过介质(例如在载波上)传播的瞬态电信号或电磁信号;术语计算机可读介质可以因此被认为是有形的且非瞬态的。非瞬态的有形的计算机可读介质的非限制性示例是非易失性存储器电路(例如闪速存储器电路、可擦可编程只读存储器电路或者掩码只读存储器电路)、易失性存储器电路(例如静态随机访问存储器电路或动态随机访问存储器电路)、磁性存储介质(例如模拟或数字磁带或硬盘驱动器)以及光学存储介质(例如CD、DVD或蓝光碟)。
本申请中描述的装置和方法可以部分地或完全地由通过将通用计算机配置为运行体现在计算机程序中的一个或多个特定功能的专用计算机实现。以上描述的功能框和流程图元件用作软件说明,其能够由技术人员或程序员的日常工作转化成计算机程序。
计算机程序包括存储在至少一个非瞬态的有形的计算机可读介质上的机器可执行指令。计算机程序还可以包括或依靠所存储的数据。计算机程序可以包括与专用计算机的硬件交互的基本输入/输出***(BIOS)、与专用计算机的特定设备交互的设备驱动器、一个或多个操作***、用户应用、背景服务、背景应用等等。
计算机程序可以包括:(i)要解析的描述性文本,例如HTML(超文本标记语言)或XML(可扩展标记语言),(ii)汇编代码,(iii)由编译器从源代码生成的目标代码,(iv)用于由解释器运行的源代码,(v)用于由即时编译器编译和运行的源代码,等等。仅仅作为示例,源代码可以使用来自包括以下的语言的语法来编写:C、C++、C#、面向对象C、Haskell、Go、SQL、R、Lisp、Fortran、Perl、Pascal、Curl、OCaml、/>HTML5、Ada、ASP(动态服务器页面)、PHP、Scala、Eiffel、Smalltalk、Erlang、Ruby、/>VisualLua和/>
权利要求书中记载的元件中没有一个旨在为35U.S.C.§112(f)的意义内的装置加功能元件,除非元件使用短语“用于…的装置”来明确记载,或者在使用“用于…的操作”或“用于…的步骤”的方法权利要求的情况下。

Claims (45)

1.一种数据访问***,包括:
中央处理单元,包括:
处理器,其被配置为生成用于访问第一物理地址的请求;以及
与所述处理器通信的处理器高速缓存,所述处理器高速缓存包括:
一级处理器高速缓存;
二级处理器高速缓存;以及
处理器高速缓存存储器管理模块,被配置为管理所述处理器高速缓存;
最终级高速缓存模块,所述最终级高速缓存模块与所述中央处理单元分离并且不是所述中央处理单元的一部分,所述最终级高速缓存模块包括:
动态随机访问存储器,
最终级高速缓存控制器,其被配置为(i)从所述处理器接收所述请求,并且(ii)将所述第一物理地址转换为第一虚拟地址,以及
动态随机访问存储器控制器,其被配置为(i)将所述第一虚拟地址转换为第二物理地址,并且(ii)确定所述第二物理地址是否处于所述动态随机访问存储器中,响应于确定所述第二物理地址处于所述动态随机访问存储器中,基于所述第二物理地址来访问所述动态随机访问存储器;以及
***总线,被配置为将所述中央处理单元与所述最终级高速缓存模块相连接以通过所述***总线来支持所述中央处理单元与所述最终级高速缓存模块之间的通信。
2.根据权利要求1所述的数据访问***,其中所述最终级高速缓存控制器被配置为执行所述第一物理地址到所述第一虚拟地址的全集关联转化。
3.根据权利要求1所述的数据访问***,还包括存储驱动器,其中:
所述存储驱动器与所述动态随机访问存储器是分离的;
所述第二物理地址是所述动态随机访问存储器或所述存储驱动器中的地址;并且
所述最终级高速缓存控制器被配置为基于所述第二物理地址来确定是要访问所述动态随机访问存储器还是所述存储驱动器。
4.根据权利要求3所述的数据访问***,其中所述存储驱动器具有比所述动态随机访问存储器多的存储容量。
5.根据权利要求3所述的数据访问***,其中所述存储驱动器具有比所述动态随机访问存储器多一数量级的存储容量。
6.根据权利要求3所述的数据访问***,其中往来于所述动态随机访问存储器的数据传送速率比往来于所述存储驱动器的数据传送速率快。
7.根据权利要求3所述的数据访问***,其中所述存储驱动器包括固态存储器或旋转存储介质。
8.根据权利要求3所述的数据访问***,其中:
所述存储驱动器包括动态随机访问存储器;并且
所述存储驱动器的所述动态随机访问存储器具有比所述最终级高速缓存模块的所述动态随机访问存储器慢的数据传送速率。
9.根据权利要求1所述的数据访问***,还包括存储驱动器,其中:
所述动态随机访问存储器被实现为高速缓存并且与所述存储驱动器和所述处理器高速缓存是分离的;并且
所述最终级高速缓存控制器被配置为:(i)基于所述第一物理地址来确定是否要访问所述动态随机访问存储器,并且(ii)确定针对所述第一物理地址已经发生高速缓存未命中,并且(iii)基于所述高速缓存未命中,信号通知所述处理器已经发生所述高速缓存未命中,或者访问所述存储驱动器。
10.根据权利要求1所述的数据访问***,还包括存储驱动器,其中:
所述动态随机访问存储器被实现为高速缓存并且与所述存储驱动器和所述处理器高速缓存是分离的;
所述动态随机访问存储器控制器被配置为:(i)基于所述第一虚拟地址来确定是否要访问所述动态随机访问存储器,并且(ii)确定针对所述第一虚拟地址已经发生高速缓存未命中,并且(iii)基于所述高速缓存未命中,信号通知所述最终级高速缓存控制器已经发生所述高速缓存未命中;并且
所述最终级高速缓存控制器被配置为响应于指示已经发生所述高速缓存未命中的信号来访问所述存储驱动器。
11.根据权利要求1所述的数据访问***,还包括存储驱动器,其中:
所述动态随机访问存储器被实现为高速缓存;
所述动态随机访问存储器控制器被配置为:(i)基于所述第一虚拟地址来确定是否要访问所述动态随机访问存储器,并且(ii)确定针对所述第一虚拟地址已经发生高速缓存未命中,并且(iii)基于所述高速缓存未命中,生成第一信号以向所述最终级高速缓存指示已经发生所述高速缓存未命中;
所述最终级高速缓存控制器被配置为响应于所述第一信号来生成第二信号以向所述处理器指示已经发生所述高速缓存未命中;并且
所述处理器被配置为响应于所述第二信号来访问所述存储驱动器。
12.根据权利要求1所述的数据访问***,还包括存储驱动器,其中:
所述存储驱动器与所述动态随机访问存储器是分离的;
所述处理器被配置为生成用于传送数据的请求;
所述请求指示所述第一物理地址;并且
所述最终级高速缓存控制器被配置为:
基于所述请求来将所述第一物理地址转换为所述第一虚拟地址,并且
所述最终级高速缓存控制器被配置为基于所述第二物理地址来确定是要(i)在所述处理器与所述动态随机访问存储器之间,还是(ii)在所述处理器与所述存储驱动器之间传送所述数据。
13.根据权利要求12所述的数据访问***,还包括加密设备,所述加密设备被配置为在所述数据在所述处理器与所述存储驱动器之间被传送之前对所述数据加密。
14.根据权利要求1所述的数据访问***,其中所述处理器被配置为:(i)生成第二虚拟地址,并且(ii)将所述第二虚拟地址转换为所述第一物理地址。
15.根据权利要求1所述的数据访问***,其中:
所述动态随机访问存储器包括第一部分和第二部分;
所述第一部分被实现为最终级高速缓存;并且
所述第二部分不被实现为高速缓存并且具有比所述第一部分低的层次级别。
16.根据权利要求15所述的数据访问***,其中所述动态随机访问存储器控制器被配置为基于所述层次级别来访问所述第一部分和所述第二部分。
17.根据权利要求1所述的数据访问***,其中:
所述动态随机访问存储器包括第一部分和第二部分;
所述第一部分被实现为虚拟存储器;并且
所述第二部分不被实现为虚拟存储器并且具有比所述第一部分低的层次级别。
18.根据权利要求1所述的数据访问***,还包括存储驱动器,其中所述存储驱动器与所述动态随机访问存储器是分离的,并且其中所述最终级高速缓存控制器被配置为:
从所述处理器接收用于传送第二数据的多个请求,其中所述多个请求指示第一多个物理地址;
将所述第一多个物理地址转换为多个虚拟地址;
将所述多个虚拟地址转换为第二多个物理地址,其中所述第二多个物理地址中的一些物理地址处于所述动态随机访问存储器中,并且所述第二多个物理地址中的其他物理地址处于所述存储驱动器中;并且
基于所述第二多个物理地址来确定是要(i)在所述处理器与所述动态随机访问存储器之间,还是(ii)在所述处理器与所述存储驱动器之间传送所述第二数据。
19.根据权利要求1所述的数据访问***,其中所述最终级高速缓存模块通过仅一个集成电路实现。
20.根据权利要求1所述的数据访问***,还包括存储驱动器,其中:
所述存储驱动器与所述动态随机访问存储器是分离的;
所述动态随机访问存储器包括第一入口;
所述存储驱动器包括第二入口,其中所述第二入口被映射到所述第一入口;
所述最终级高速缓存控制器被配置为:基于所述第一入口中的一个第一入口中的剩余存储容量在所述处理器与所述存储驱动器的所述第二入口中的一个第二入口之间传送数据;并且
所述第二入口中的所述一个第二入口被映射到所述第一入口中的所述一个第一入口。
21.根据权利要求20所述的数据访问***,其中所述动态随机访问存储器中的每个入口被映射到所述存储驱动器中的一个或多个入口。
22.根据权利要求20所述的数据访问***,其中所述动态随机访问存储器中的一个或多个入口被映射到所述存储驱动器中的一个或多个入口。
23.根据权利要求1所述的数据访问***,其中所述最终级高速缓存控制器被配置为基于以下各项中的至少一项来将数据存储在所述动态随机访问存储器中:(i)对所述数据的使用的频率,(ii)所述数据的优先级,或者(iii)所述数据是否处于锁定状态中。
24.一种用于访问根据权利要求1至23中任一项所述的数据访问***中的存储器的方法,所述方法包括:
经由所述处理器生成用于访问所述第一物理地址的请求;
通过***总线,从所述处理器发送所述请求;
在所述最终级高速缓存控制器处经由所述***总线从所述处理器接收所述请求;
经由所述最终级高速缓存控制器将所述第一物理地址转换为所述第一虚拟地址;
经由所述动态随机访问存储器控制器将所述第一虚拟地址转换为所述第二物理地址;
确定所述第二物理地址是否处于所述动态随机访问存储器中;以及
响应于确定所述第二物理地址处于所述动态随机访问存储器中,基于所述第二物理地址来访问所述动态随机访问存储器。
25.根据权利要求24所述的方法,其中将所述第一物理地址转换为所述第一虚拟地址包括执行所述第一物理地址到所述第一虚拟地址的全集关联转化。
26.根据权利要求24所述的方法,还包括基于所述第二物理地址经由所述最终级高速缓存控制器确定是要访问所述动态随机访问存储器还是存储驱动器,其中:
所述存储驱动器与所述动态随机访问存储器是分离的;并且
所述第二物理地址是所述动态随机访问存储器或所述存储驱动器中的地址。
27.根据权利要求26所述的方法,其中所述存储驱动器具有比所述动态随机访问存储器多的存储容量。
28.根据权利要求26所述的方法,其中所述存储驱动器具有比所述动态随机访问存储器多一数量级的存储容量。
29.根据权利要求26所述的方法,其中往来于所述动态随机访问存储器的数据传送速率比往来于所述存储驱动器的数据传送速率快。
30.根据权利要求26所述的方法,其中所述存储驱动器包括固态存储器或旋转存储介质。
31.根据权利要求26所述的方法,其中:
所述存储驱动器包括动态随机访问存储器;并且
所述存储驱动器的所述动态随机访问存储器具有比所述最终级高速缓存模块的所述动态随机访问存储器慢的数据传送速率。
32.根据权利要求24所述的方法,还包括:
基于所述第一物理地址来确定是否要访问所述动态随机访问存储器,其中所述动态随机访问存储器被实现为高速缓存;
确定针对所述第一物理地址已经发生高速缓存未命中;以及
基于所述高速缓存未命中,信号通知所述处理器已经发生所述高速缓存未命中,或者访问存储驱动器,其中所述存储驱动器与所述动态随机访问存储器是分离的。
33.根据权利要求24所述的方法,还包括:
基于所述第二物理地址来确定是否要访问所述动态随机访问存储器,其中所述动态随机访问存储器被实现为高速缓存;
确定针对所述第一虚拟地址已经发生高速缓存未命中;
基于所述高速缓存未命中,信号通知所述最终级高速缓存控制器已经发生所述高速缓存未命中;以及
响应于指示已经发生所述高速缓存未命中的信号来访问存储驱动器,其中所述存储驱动器与所述动态随机访问存储器是分离的。
34.根据权利要求24所述的方法,还包括:
基于所述第二物理地址来确定是否要访问所述动态随机访问存储器,其中所述动态随机访问存储器被实现为高速缓存;
经由所述动态随机访问存储器控制器确定针对所述第一虚拟地址已经发生高速缓存未命中;
基于所述高速缓存未命中,生成第一信号以向所述最终级高速缓存指示已经发生所述高速缓存未命中;
响应于所述第一信号,在所述最终级高速缓存控制器处生成第二信号以向所述处理器指示已经发生所述高速缓存未命中;以及
响应于所述第二信号,访问存储驱动器,其中所述存储驱动器与所述动态随机访问存储器是分离的。
35.根据权利要求24所述的方法,还包括:
生成用于传送数据的请求,其中所述请求指示所述第一物理地址;
基于所述请求,将所述第一物理地址转换为所述第一虚拟地址;以及
基于所述第二物理地址,确定是要(i)在所述处理器与所述动态随机访问存储器之间,还是(ii)在所述处理器与存储驱动器之间传送所述数据,其中所述存储驱动器与所述动态随机访问存储器是分离的。
36.根据权利要求35所述的方法,还包括在所述数据在所述处理器与所述存储驱动器之间被传送之前对所述数据进行加密。
37.根据权利要求24所述的方法,还包括:
在所述处理器处生成第二虚拟地址;并且
将所述第二虚拟地址转换为所述第一物理地址。
38.根据权利要求24所述的方法,还包括基于所述动态随机访问存储器的部分的层次级别来访问所述部分,其中:
所述动态随机访问存储器包括第一部分和第二部分;
所述第一部分被实现为最终级高速缓存;并且
所述第二部分不被实现为高速缓存并且具有比所述第一部分低的层次级别。
39.根据权利要求24所述的方法,还包括基于所述动态随机访问存储器的部分的层次级别来访问所述部分,其中:
所述动态随机访问存储器包括第一部分和第二部分;
所述第一部分被实现为虚拟存储器;并且
所述第二部分不被实现为虚拟存储器并且具有比所述第一部分低的层次级别。
40.根据权利要求24所述的方法,还包括:
从所述处理器接收用于传送第二数据的多个请求,其中所述多个请求指示第一多个物理地址;
将所述第一多个物理地址转换为多个虚拟地址;
将所述多个虚拟地址转换为第二多个物理地址,其中所述第二多个物理地址中的一些物理地址处于所述动态随机访问存储器中,并且所述第二多个物理地址中的其他物理地址处于存储驱动器中,并且其中所述存储驱动器与所述动态随机访问存储器是分离的;并且
基于所述第二多个物理地址,确定是要(i)在所述处理器与所述动态随机访问存储器之间,还是(ii)在所述处理器与所述存储驱动器之间传送所述第二数据。
41.根据权利要求24所述的方法,其中所述最终级高速缓存模块通过仅一个集成电路实现。
42.根据权利要求24所述的方法,还包括:
基于所述动态随机访问存储器的第一入口中的一个第一入口中的剩余存储容量,在所述处理器与存储驱动器的第二入口中的一个第二入口之间传送数据,其中所述存储驱动器与所述动态随机访问存储器是分离的,并且其中所述第二入口被映射到所述第一入口;并且
所述第二入口中的所述一个第二入口被映射到所述第一入口中的所述一个第一入口。
43.根据权利要求42所述的方法,其中所述动态随机访问存储器中的每个入口被映射到所述存储驱动器中的一个或多个入口。
44.根据权利要求42所述的方法,其中所述动态随机访问存储器中的一个或多个入口被映射到所述存储驱动器中的一个或多个入口。
45.根据权利要求24所述的方法,还包括基于以下各项中的至少一项来将数据存储在所述动态随机访问存储器中:(i)对所述数据的使用的频率,(ii)所述数据的优先级,或者(iii)所述数据是否处于锁定状态中。
CN201480066082.8A 2013-10-21 2014-10-21 最终级高速缓存***和对应的方法 Active CN106462504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311023201.9A CN117215971A (zh) 2013-10-21 2014-10-21 最终级高速缓存***和对应的方法

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201361893662P 2013-10-21 2013-10-21
US201361893683P 2013-10-21 2013-10-21
US201361893675P 2013-10-21 2013-10-21
US61/893,683 2013-10-21
US61/893,675 2013-10-21
US61/893,662 2013-10-21
US201361895049P 2013-10-24 2013-10-24
US61/895,049 2013-10-24
PCT/US2014/061603 WO2015061337A1 (en) 2013-10-21 2014-10-21 Final level cache system and corresponding method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311023201.9A Division CN117215971A (zh) 2013-10-21 2014-10-21 最终级高速缓存***和对应的方法

Publications (2)

Publication Number Publication Date
CN106462504A CN106462504A (zh) 2017-02-22
CN106462504B true CN106462504B (zh) 2023-09-01

Family

ID=52827224

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311023201.9A Pending CN117215971A (zh) 2013-10-21 2014-10-21 最终级高速缓存***和对应的方法
CN201480066082.8A Active CN106462504B (zh) 2013-10-21 2014-10-21 最终级高速缓存***和对应的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311023201.9A Pending CN117215971A (zh) 2013-10-21 2014-10-21 最终级高速缓存***和对应的方法

Country Status (6)

Country Link
US (7) US9477611B2 (zh)
EP (1) EP3060993B1 (zh)
JP (2) JP6431536B2 (zh)
KR (3) KR102432754B1 (zh)
CN (2) CN117215971A (zh)
WO (1) WO2015061337A1 (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454991B2 (en) 2013-10-21 2016-09-27 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
US10097204B1 (en) 2014-04-21 2018-10-09 Marvell International Ltd. Low-density parity-check codes for WiFi networks
US9559722B1 (en) 2013-10-21 2017-01-31 Marvell International Ltd. Network devices and methods of generating low-density parity-check codes and performing corresponding encoding of data
US11822474B2 (en) 2013-10-21 2023-11-21 Flc Global, Ltd Storage system and method for accessing same
CN117215971A (zh) 2013-10-21 2023-12-12 Flc环球有限公司 最终级高速缓存***和对应的方法
CN104765587B (zh) * 2014-01-08 2018-12-14 雅特生嵌入式计算有限公司 用于使处理器同步到相同的计算点的***和方法
US9888077B2 (en) * 2014-04-22 2018-02-06 Western Digital Technologies, Inc. Metadata based data alignment in data storage systems
TWI540871B (zh) * 2014-04-29 2016-07-01 緯創資通股份有限公司 混合式資料傳輸之方法及其相關混合式系統
EP3138099A1 (en) 2014-05-02 2017-03-08 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
US10013352B2 (en) * 2014-09-26 2018-07-03 Intel Corporation Partner-aware virtual microsectoring for sectored cache architectures
KR102314138B1 (ko) * 2015-03-05 2021-10-18 삼성전자 주식회사 모바일 장치 및 모바일 장치의 데이터 관리 방법
JP5992592B1 (ja) 2015-09-16 2016-09-14 株式会社東芝 キャッシュメモリシステム
US9910482B2 (en) * 2015-09-24 2018-03-06 Qualcomm Incorporated Memory interface with adjustable voltage and termination and methods of use
US9842651B2 (en) 2015-11-25 2017-12-12 Sunrise Memory Corporation Three-dimensional vertical NOR flash thin film transistor strings
US9892800B2 (en) 2015-09-30 2018-02-13 Sunrise Memory Corporation Multi-gate NOR flash thin-film transistor strings arranged in stacked horizontal active strips with vertical control gates
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US10121553B2 (en) 2015-09-30 2018-11-06 Sunrise Memory Corporation Capacitive-coupled non-volatile thin-film transistor NOR strings in three-dimensional arrays
US10416887B1 (en) 2016-05-18 2019-09-17 Marvell International Ltd. Hybrid storage device and system
US10056147B1 (en) * 2016-06-02 2018-08-21 Marvell International Ltd. Two-level storage device with faster front end
US10268395B1 (en) * 2016-06-09 2019-04-23 Marvell International Ltd. Systems and methods for communicating addressable requests to a programmable input/output memory over a hardware bridge
US9927975B2 (en) 2016-08-03 2018-03-27 Micron Technology, Inc. Hybrid memory drives, computer system, and related method for operating a multi-mode hybrid drive
EP3504728A4 (en) * 2016-08-26 2020-09-09 Sunrise Memory Corporation CAPACITIVE-COUPLING NON-VOLATILE THIN-LAYER TRANSISTOR CHAIN IN THREE-DIMENSIONAL NETWORKS
KR101777660B1 (ko) * 2016-10-25 2017-09-12 주식회사 티에스피글로벌 플래시 스토리지 디바이스 및 그 동작 제어 방법
CN109219804B (zh) * 2016-12-28 2023-12-29 华为技术有限公司 非易失内存访问方法、装置和***
US10649943B2 (en) * 2017-05-26 2020-05-12 Dell Products, L.P. System and method for I/O aware processor configuration
WO2018226658A1 (en) * 2017-06-05 2018-12-13 Worcester Polytechnic Institute Weatherproof cover
US10608008B2 (en) 2017-06-20 2020-03-31 Sunrise Memory Corporation 3-dimensional nor strings with segmented shared source regions
EP3642841A4 (en) 2017-06-20 2021-07-28 Sunrise Memory Corporation 3-DIMENSIONAL NOR MEMORY ARCHITECTURE AND MANUFACTURING PROCESS FOR IT
US10692874B2 (en) 2017-06-20 2020-06-23 Sunrise Memory Corporation 3-dimensional NOR string arrays in segmented stacks
KR102319189B1 (ko) 2017-06-21 2021-10-28 삼성전자주식회사 스토리지 장치, 이를 포함하는 스토리지 시스템 및 스토리지 장치의 동작 방법
US20190155735A1 (en) * 2017-06-29 2019-05-23 NVXL Technology, Inc. Data Software System Assist
US20190057045A1 (en) * 2017-08-16 2019-02-21 Alibaba Group Holding Limited Methods and systems for caching based on service level agreement
US10372371B2 (en) * 2017-09-14 2019-08-06 International Business Machines Corporation Dynamic data relocation using cloud based ranks
US10671460B2 (en) 2018-02-05 2020-06-02 Micron Technology, Inc. Memory access communications through message passing interface implemented in memory systems
US10853168B2 (en) * 2018-03-28 2020-12-01 Samsung Electronics Co., Ltd. Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM)
CN112997161A (zh) * 2018-06-18 2021-06-18 Flc技术集团股份有限公司 将储存***用作主存储器的方法和装置
US11036807B2 (en) 2018-07-31 2021-06-15 Marvell Asia Pte Ltd Metadata generation at the storage edge
KR102518095B1 (ko) * 2018-09-12 2023-04-04 삼성전자주식회사 스토리지 장치 및 시스템
CN111240581B (zh) * 2018-11-29 2023-08-08 北京地平线机器人技术研发有限公司 存储器访问控制方法、装置和电子设备
CN113424319A (zh) 2019-02-11 2021-09-21 日升存储公司 垂直薄膜晶体管以及作为用于三维存储器阵列的位线连接器的应用
WO2021127218A1 (en) 2019-12-19 2021-06-24 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor
US20200136943A1 (en) * 2019-12-27 2020-04-30 Intel Corporation Storage management in a data management platform for cloud-native workloads
WO2021159028A1 (en) 2020-02-07 2021-08-12 Sunrise Memory Corporation High capacity memory circuit with low effective latency
WO2021173209A1 (en) 2020-02-24 2021-09-02 Sunrise Memory Corporation High capacity memory module including wafer-section memory circuit
US11507301B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation Memory module implementing memory centric architecture
WO2021207050A1 (en) 2020-04-08 2021-10-14 Sunrise Memory Corporation Charge-trapping layer with optimized number of charge-trapping sites for fast program and erase of a memory cell in a 3-dimensional nor memory string array
WO2022108848A1 (en) 2020-11-17 2022-05-27 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations
US11848056B2 (en) 2020-12-08 2023-12-19 Sunrise Memory Corporation Quasi-volatile memory with enhanced sense amplifier operation
KR20230000638A (ko) * 2021-06-25 2023-01-03 한국전자통신연구원 저전력 시스템 온 칩
TW202310429A (zh) 2021-07-16 2023-03-01 美商日升存儲公司 薄膜鐵電電晶體的三維記憶體串陣列
US11979176B2 (en) 2021-09-09 2024-05-07 Hughes Network Systems, Llc Configurable modem architecture for satellite communications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5349651A (en) * 1989-02-03 1994-09-20 Digital Equipment Corporation System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation
US7428617B2 (en) * 2004-07-29 2008-09-23 Fujitsu Limited Cache memory and method to maintain cache-coherence between cache memory units
WO2013101158A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Metadata management and support for phase change memory with switch (pcms)

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0772829A1 (en) 1995-05-26 1997-05-14 National Semiconductor Corporation A pipelined microprocessor that makes memory requests to a cache memory and an external memory controller during the same clock cycle
US6490658B1 (en) * 1997-06-23 2002-12-03 Sun Microsystems, Inc. Data prefetch technique using prefetch cache, micro-TLB, and history file
US6795894B1 (en) 2000-08-08 2004-09-21 Hewlett-Packard Development Company, L.P. Fast disk cache writing system
US6658538B2 (en) * 2001-06-21 2003-12-02 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control
US6978355B2 (en) 2001-11-13 2005-12-20 Seagate Technology Llc Cache memory transfer during a requested data retrieval operation
US20040117587A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corp. Hardware managed virtual-to-physical address translation mechanism
WO2004095201A2 (en) 2003-04-09 2004-11-04 Intervideo Inc. Systems and methods for caching multimedia data
US7111153B2 (en) 2003-09-30 2006-09-19 Intel Corporation Early data return indication mechanism
US7395495B2 (en) 2004-01-12 2008-07-01 Intel Corporation Method and apparatus for decoding forward error correction codes
US7165205B2 (en) 2004-05-14 2007-01-16 Motorola, Inc. Method and apparatus for encoding and decoding data
US7752521B2 (en) 2004-10-12 2010-07-06 Nortel Networks Limited Low density parity check (LDPC) code
US7996746B2 (en) 2004-10-12 2011-08-09 Nortel Networks Limited Structured low-density parity-check (LDPC) code
US7783961B2 (en) 2005-07-01 2010-08-24 Nec Laboratories America, Inc. Rate-compatible low density parity check coding for hybrid ARQ
JP4160589B2 (ja) 2005-10-31 2008-10-01 富士通株式会社 演算処理装置,情報処理装置,及び演算処理装置のメモリアクセス方法
US8132072B2 (en) 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications
US7774556B2 (en) 2006-11-04 2010-08-10 Virident Systems Inc. Asymmetric memory migration in hybrid main memory
US8015361B2 (en) * 2007-12-14 2011-09-06 International Business Machines Corporation Memory-centric page table walker
KR101449524B1 (ko) * 2008-03-12 2014-10-14 삼성전자주식회사 스토리지 장치 및 컴퓨팅 시스템
US7800856B1 (en) 2009-03-24 2010-09-21 Western Digital Technologies, Inc. Disk drive flushing write cache to a nearest set of reserved tracks during a power failure
US8255742B2 (en) * 2009-11-18 2012-08-28 Microsoft Corporation Dynamically replicated memory
US8688897B2 (en) 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US10133676B2 (en) * 2010-07-28 2018-11-20 Rambus Inc. Cache memory that supports tagless addressing
US8599510B1 (en) 2011-05-04 2013-12-03 Western Digital Technologies, Inc. Disk drive adjusting data track density based on write condition when writing to contiguous data tracks
WO2012174128A1 (en) * 2011-06-13 2012-12-20 Paneve, Llc General purpose digital data processor, systems and methods
US9229879B2 (en) 2011-07-11 2016-01-05 Intel Corporation Power reduction using unmodified information in evicted cache lines
KR101572403B1 (ko) * 2011-12-22 2015-11-26 인텔 코포레이션 메모리 채널 셧다운에 의한 전력 절약
US9081706B2 (en) * 2012-05-10 2015-07-14 Oracle International Corporation Using a shared last-level TLB to reduce address-translation latency
US8593748B1 (en) 2012-06-04 2013-11-26 HGST Netherlands B.V. Shingled magnetic recording disk drive with compensation for the effect of far track erasure (FTE) on adjacent data bands
US8797672B2 (en) 2012-06-14 2014-08-05 HGST Netherlands B.V. Dynamic track pitch control for shingled magnetic recording (SMR)
US20140181402A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Selective cache memory write-back and replacement policies
US9286223B2 (en) * 2013-04-17 2016-03-15 Advanced Micro Devices, Inc. Merging demand load requests with prefetch load requests
US20150013025A1 (en) * 2013-05-19 2015-01-08 Mice With Horns, Llc Transgenic animals with customizable traits
US9785564B2 (en) * 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
US9454991B2 (en) 2013-10-21 2016-09-27 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
CN117215971A (zh) 2013-10-21 2023-12-12 Flc环球有限公司 最终级高速缓存***和对应的方法
US9559722B1 (en) 2013-10-21 2017-01-31 Marvell International Ltd. Network devices and methods of generating low-density parity-check codes and performing corresponding encoding of data
EP3138099A1 (en) 2014-05-02 2017-03-08 Marvell World Trade Ltd. Caching systems and methods for hard disk drives and hybrid drives
US9129628B1 (en) 2014-10-23 2015-09-08 Western Digital Technologies, Inc. Data management for data storage device with different track density regions
US9703493B2 (en) 2015-12-14 2017-07-11 Qualcomm Incorporated Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5349651A (en) * 1989-02-03 1994-09-20 Digital Equipment Corporation System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation
US7428617B2 (en) * 2004-07-29 2008-09-23 Fujitsu Limited Cache memory and method to maintain cache-coherence between cache memory units
WO2013101158A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Metadata management and support for phase change memory with switch (pcms)

Also Published As

Publication number Publication date
US20170177481A1 (en) 2017-06-22
JP6431536B2 (ja) 2018-11-28
CN117215971A (zh) 2023-12-12
US9594693B2 (en) 2017-03-14
US20160239429A1 (en) 2016-08-18
JP6796304B2 (ja) 2020-12-09
US9928172B2 (en) 2018-03-27
US20160062906A1 (en) 2016-03-03
KR20160074648A (ko) 2016-06-28
KR102329269B1 (ko) 2021-11-22
US10684949B2 (en) 2020-06-16
US20180293167A1 (en) 2018-10-11
KR102432754B1 (ko) 2022-08-16
US9182915B2 (en) 2015-11-10
KR20220116362A (ko) 2022-08-22
KR102614631B1 (ko) 2023-12-19
WO2015061337A1 (en) 2015-04-30
US20150113214A1 (en) 2015-04-23
US9477611B2 (en) 2016-10-25
US20200301836A1 (en) 2020-09-24
CN106462504A (zh) 2017-02-22
KR20210111881A (ko) 2021-09-13
JP2019067417A (ja) 2019-04-25
US11360894B2 (en) 2022-06-14
JP2016541046A (ja) 2016-12-28
US9323688B2 (en) 2016-04-26
US20150242137A1 (en) 2015-08-27
EP3060993A1 (en) 2016-08-31
EP3060993B1 (en) 2023-03-08

Similar Documents

Publication Publication Date Title
CN106462504B (zh) 最终级高速缓存***和对应的方法
US11880305B2 (en) Method and apparatus for using a storage system as main memory
US20140068125A1 (en) Memory throughput improvement using address interleaving
US20240193084A1 (en) Storage System and Method for Accessing Same
US20230144038A1 (en) Memory pooling bandwidth multiplier using final level cache system
US20240220411A1 (en) Method and apparatus for using a storage system as main memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20180306

Address after: Bermuda Hamilton

Applicant after: MARVELL INTERNATIONAL Ltd.

Address before: Babado J San Mega Le

Applicant before: MARVELL WORLD TRADE Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190418

Address after: Nevada

Applicant after: FLC Global Co.,Ltd.

Address before: Bermuda Hamilton

Applicant before: MARVELL INTERNATIONAL Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant