CN104995611A - 用于存取存储器的系统及方法 - Google Patents

用于存取存储器的系统及方法 Download PDF

Info

Publication number
CN104995611A
CN104995611A CN201480008496.5A CN201480008496A CN104995611A CN 104995611 A CN104995611 A CN 104995611A CN 201480008496 A CN201480008496 A CN 201480008496A CN 104995611 A CN104995611 A CN 104995611A
Authority
CN
China
Prior art keywords
region
address
accumulator system
memory
physical channels
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.)
Granted
Application number
CN201480008496.5A
Other languages
English (en)
Other versions
CN104995611B (zh
Inventor
罗伯特·沃克尔
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN104995611A publication Critical patent/CN104995611A/zh
Application granted granted Critical
Publication of CN104995611B publication Critical patent/CN104995611B/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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the 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/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address 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/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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)
  • Software Systems (AREA)
  • Memory System (AREA)

Abstract

本发明描述将存储器单元映射到应用程序的方法、存取存储器单元的方法、系统及存储器控制器。在一些实施例中,将包含多个物理通道的存储器系统映射到若干区域中,使得任一区域横跨所述存储器系统的每一物理通道。将应用程序分配给所述区域中的存储器,且使所述应用程序的性能及功率要求与所述区域相关联。还描述额外方法及系统。

Description

用于存取存储器的系统及方法
本申请案主张2013年1月21日提出申请的第13/746,141号美国申请案的优先权权益,所述美国申请案以其全文引用方式并入本文中。
背景技术
存储器系统用于例如个人数字助理(PDA)、膝上型计算机、移动电话及数字相机的许多电子装置中。这些存储器系统中的一些存储器系统包含具有用于与存储器系统的存储器单元通信的物理引脚的多个物理通道。借助一些存储器映射方案,产生存储器映射以将使用存储器系统的应用程序的逻辑地址映射到存储器系统的物理通道。可基于将在所述存储器空间中运行的应用程序的性能要求或功率要求而映射多个物理通道中的一或多者的部分。在应用程序开始或终止时,可在存储器映射中产生间隙且其可变得越来越难以在存储器系统中发现可用区域以适合任何新开始的应用程序的需要。
已提出一些其它存储器映射方案以将一或多个物理通道映射到处理器或处理器群组,其中每一通道提供相同的性能点或功率规格。尽管可避免间隙,但此均一方案可能不会满足具有变化的性能或功率要求的处理器的需要。
附图说明
在随附图式的各图中以实例方式而非限制方式图解说明所揭示技术的一些实施例,在随附图式中:
图1是根据各种实施例的系统的图式;
图2是根据各种实施例的存储器系统的图式;
图3是根据各种实施例的地址映射的图式;
图4是图解说明根据各种实施例的用于映射地址的方法的流程图;
图5是图解说明根据各种实施例的用于对存储器单元执行事务的方法的流程图;
图6是根据各种实施例的根据寻址方法配置的地址的图式;
图7是根据各种实施例的根据另一寻址方法配置的地址的图式;及
图8是图解说明根据各种实施例的用于分配存储器的方法的流程图。
具体实施方式
图1是图解说明根据各种实施例的用于映射及存取多通道存储器系统中的存储器单元的系统100的图式。系统100可包含通过第一总线120耦合到存储器控制器115的处理器110。存储器控制器115可通过第二总线130耦合到存储器系统125。存储器控制器115可执行来自处理器110的存储器事务请求。存储器控制器115经由第一总线120及第二总线130在处理器110与存储器系统125之间传送数据。第一总线120及第二总线130可采用已知协议来将处理器110连接到存储器控制器115且将存储器控制器115连接到存储器系统125。系统100的一些实例可包含个人计算机、膝上型计算机、个人数字助理(PDA)、数字相机、电子游戏、数字媒体播放机/记录等。
存储器系统125可包括一或多个物理装置(未展示),其各自由一或多个物理通道(未展示)组成,所述物理通道根据存储于存储器控制器115中的映射RAM 140中的数据结构(在下文通过实例称为“表”)映射到区域。在下文关于图2更详细地描述存储器系统125及物理装置与物理通道之间的关系。表可进一步冗余地存储于存储器控制器115的第二映射RAM(未展示)上。一或多个映射RAM 140可为(举例来说)静态随机存取存储器(SRAM)。
处理器110还可称为主装置,且在系统100中可存在一个以上主装置。操作系统(OS)150及一或多个应用程序160可在处理器110上执行。OS 150可代表一或多个应用程序160请求存储器系统125中的存储器。OS 150可将定义待存储器系统的映射到映射应用程序160的区域的开始地址及结束地址编程于RAM 140中。OS 150可进一步将存储器系统的区域的通道深度值编程于映射RAM 140中。
在其它实施例中,存储器控制器115可与处理器110共定位。在实施例中,处理器110可为系统单芯片(SOC)且处理器110可使用存储器控制器115来对存储器系统125执行存储器操作。
系统100可包含其上存储有体现本文中所描述的方法或功能中的任何一或多者的一或多个指令180集(例如,软件)的机器可读媒体。指令180可在其由系统100执行期间完全或至少部分地驻存于处理器110或存储器控制器115内,其中处理器110及存储器控制器115还构成机器可读媒体。
机器可读媒体可为单个媒体或可为存储一或多个指令集的多个媒体(例如,集中式或分布式数据库,及/或相关联的快取存储器及服务器。“机器可读媒体”可包含能够存储、编码或携载由机器执行的指令集的任何非暂时媒体。以实例方式而非限制方式,“机器可读媒体”可包含固态存储器、光学媒体或磁性媒体。
图2是根据各种实施例的存储器系统125的框图。在说明性实例中,存储器系统125包括并联配置的物理通道210-1到210-8。物理通道可包括用于与存储器系统125的存储器库B0-Bb中的对应存储器单元通信的一组物理引脚(未展示)。物理装置可包含一或多个物理通道。物理装置的实例可包含动态随机存取存储器(DRAM)装置、同步动态随机存取存储器(SDRAM)装置及快闪存储器装置。在下文中,术语“物理通道”可解释为意指单通道物理装置的物理通道、多通道物理装置的物理通道,或多个物理装置的物理通道。存储器系统125可包括任何自然数N个物理装置及因此任何数目M个物理通道,其中M为N的自然数倍数。如所展示,OS页可横跨物理通道210-1到210-8中的每一者。下文关于图3更详细地描述OS页。除在图2中所展示的并联配置外,物理通道210-1到210-8中的每一者还可以平面方式放置。
存储器控制器115可根据地址映射方案将从处理器110接收的地址转换成装置地址信号。这些装置地址信号可包含用于存取存储器系统125中的物理存储器的所要部分的库、行及列地址信号。
一些存储器控制器(举例来说)可实施地址映射方案以跨越系统的物理通道子组映射地址,使得映射到一个特定应用程序的区域可横跨(举例来说)八个物理通道中的两者,而映射到不同应用程序的区域可横跨八个物理通道中的又四者。此外,不同应用程序可具有在变化的存储器要求且因此所映射区域将包括在变化的数目个存储器单元行。尽管以此方式映射所述区域将通过允许物理通道针对不同应用程序配置于不同通道深度处而允许不同应用程序在不同性能点处或在不同功率用途规范下操作,但在应用程序开始及停止时可在存储器映射中产生不可填充间隙。举例来说,某一宽度且包括某一数目个存储器页的间隙可为不可用的,除非稍后起始需要特定接口宽度或存储器量的应用程序。
实施例提供非均一存储器映射方法,其经调适以在于存储器映射中不留下低效间隙的情况下准许针对不同应用程序的不同存储器性能点。图3是可在根据一些实施例实施映射方法时产生的实例性映射的图式。作为说明性实例,OS 150可将存储器系统的区域310映射到请求过程,例如应用程序160需要三个OS页的量的存储器。每一OS页横跨物理通道210-1到210-8以包含物理通道210-1到210-8中的每一者的至少相应部分。在实施例中,OS页在物理通道210-1到210-8中的每一者中包含相同行。每一OS页包含等于物理通道210-1到210-8的数目乘以每一物理通道210-1到210-8中的库数目且进一步乘以(举例来说)DRAM页中的字节数目(通常约为256千字节或512千字节)的存储器量。
根据实施例,OS 150可将自然数倍数的OS页分配到后续应用程序160。区域可对应于若干存储器单元行及存储器映射中的若干行。因此,假定所请求存储器量在存储器系统125中为可用的,那么无论应用程序160的I/O宽度或通道深度需要,可由OS 150基于请求应用程序的存储器要求而分配适当数目个OS页而不随时间产生不可填充间隙。适当数目个OS页借此映射到对应应用程序160。使用如下文更详细地描述的区域定义(例如与这些区域的物理开始及结束地址及这些区域的通道深度相关联地存储的数据值),存储器控制器115可根据个别应用程序160的性能及/或功率要求控制存储器事务。
图4是图解说明根据各种实施例的映射具有两个或两个以上物理通道的存储器系统的方法的流程图。在实施例中,与应用程序160启动或初始化同时或相关联地,应用程序160可向OS 150请求某一存储器量(在下文为存储器分配)。OS 150检查存储于映射RAM 140中的表以确定具有所要大小的存储器的可用部分的开始及结束地址。OS 150将用于应用程序160的开始地址及结束地址存储于表中,从而定义存储器系统的区域。所述区域将包括所请求大小的存储器(其为自然数倍数的OS页),使得每一OS页包含每一物理通道210-1到210-8的至少相应部分。OS 150将所述区域的开始地址及结束地址编程到映射RAM 140中的表中,借此在操作410中将所述区域映射到请求过程(例如,应用程序160)的逻辑存储器。由OS 150映射所述区域以在物理通道210-1到210-8中的每一者中包含相同存储器单元行。所述区域将未必包括存储器系统内的连续OS页。下文关于图3更详细地描述非连续OS页。
OS 150可将与区域相关联的值存储于映射RAM 140中的表中。所述值可指示在映射到所述区域的地址递增到不同通道中之前待从两个或两个以上物理通道中的每一者存取的字节的数目。此值可被称为“通道深度”,如下文更详细地描述。
在一些实施例中,应用程序160可进一步把所要通道深度通知OS 150,其中通道深度为将在地址移动(例如,卷动、递增或横穿)到另一物理通道中之前从所述物理通道存取的字节的数目。通道深度可反映请求应用程序160的所要性能点及/或所要功率规范。通道深度可根据各种实施例基于功率要求与性能要求之间的所要平衡来选择,如下文更详细地描述。
在一些实施例中,OS 150可存取其中存储应用程序160的所要通道深度的存储器单元。在一些实施例中,应用程序160可把其所要通道深度通知OS 150。在进一步实施例中,OS 150可(举例来说)通过收集与应用程序160性能有关的测量数据获悉用于应用程序160的最优通道深度。OS 150可接着存储所要通道深度使得其与映射到所述应用程序160的区域相关联。如将在下文描述,存储器控制器115将使用区域的通道深度来确定如何处置对区域中的存储器的存取。由于区域映射为OS页的倍数,因此最小区域大小等于一个OS页的大小。另外,OS页为存储器控制器115将能够在下文所描述的操作中借以控制通道深度的最小粒度。
在实施例中,存储器控制器115可冗余地维持两个映射RAM(未展示)。OS 150可检查并编程映射RAM 140中的一者,同时存储器控制器115可使用另一映射RAM(未展示)来控制存储器系统125的存储器单元上的事务。在此时间处,由于OS 150具有新区域的经编程开始及结束地址以及相关联的通道深度,因此OS 150可通知存储器控制器115经更新映射RAM 140为可用的,且存储器控制器115接着可切换为使用经更新映射RAM 140。
参照图3,尽管所述图图解说明连续OS页的区域,但区域内的OS页不需要为连续的。举例来说,区域310中的OS页可位于任何下部可用行(举例来说,行11)处,而区域310中的其它OS页位于行0及1处。根据本文所描述的实施例的方法根据类似原理操作,而无论区域内的OS页是否为连续的。
区域因此已映射到应用程序160及应用程序性能点,存储器控制器115(例如)根据与每一区域相关联的通道深度基于至少一个映射RAM 140中的表中的区域定义控制对区域内的存储器的存取。应用程序160可根据在图5中所图解说明的方法经由处理器110且在存储器控制器115的控制下存取存储器系统125。
在操作500中,存储器控制器115接收对存取存储器系统125的请求。所述存取请求包含请求应用程序160的逻辑存储器地址。所述存取请求可为对存储器系统125的存储器单元执行事务(例如,读取操作或写入操作)的请求。取决于配置区域的方式,逻辑存储器地址可根据特定寻址方法来配置。下文关于图6及7描述实例性寻址方法。
关于图6描述第一实例性寻址方法。在一个实例性实施例中,在制造存储器系统125时,可在存储器系统125硬件中固定区域大小。区域可固定为相同大小,或区域可固定为不同大小。在说明性实例中,区域各自包括在物理通道210-1到210-8中的每一者中的四个OS页(例如,四个存储器单元行)。因此,每一区域处的行数目为已知的且可基于行数目(通常为逻辑存储器地址500中的上部位)推断正寻址的区域。存储器控制器115接着查找在OS 150将区域映射到应用程序160时针对所述区域所定义的通道深度。在实例中,存储器控制器115检查存储于映射RAM 140(参见图1)中的表以查找对应通道深度。
在图7中所展示的第二实例性寻址方法中,区域可不为固定的且可为或可不为相等大小或对称的。而是,可在(举例来说)OS 150代表(举例来说)应用程序160请求存储器的分配时确定区域大小。OS 150可包含识别应用程序160所映射到其的区域的区域识别位。存储器控制器115基于逻辑地址中的区域识别位而查找在将区域映射到应用程序160时针对所述区域所定义的通道深度。在说明性实例中,存储器控制器115检查存储于映射RAM 140(参见图1)中的表,其中所述表使区域(例如,如由区域识别位所识别)与用于所述应用程序160的所要通道深度相关联。
再次参照图5,在操作510中,存储器控制器115从映射RAM 140检索与对应于所接收逻辑地址的区域相关联的通道深度。如先前所描述,区域跨越两个或两个以上物理通道210-1到210-8而分布以包含两个或两个以上物理通道210-1到210-8的相应部分,且所述部分位于一或多个物理通道210-1到210-8中的每一者内的相同位置处。接着,在操作520中存储器控制器115基于所述区域的经定义通道深度对存储器系统执行操作(在对应于逻辑存储器地址的区域中的存储器单元处开始)。在以下段落中参照图3更详细地描述操作520。
再次参照图3,多通道存储器系统中的每一区域可具有不同通道深度。如先前所描述,每一区域的通道深度存储于映射RAM 140中使得每一通道深度与通道深度的对应区域相关联。通道深度可定义为将在地址移动(例如,卷动、递增或横穿)到另一通道中之前从所述通道存取的字节的数目。在实施例中,区域的相关联通道深度将确定区域的接口将如何显现给映射到所述区域的应用程序160。例如,如果区域的通道深度为8字节,那么操作520并行地存取全部八个物理通道使得存储器系统显现为如在图3的区域320中具有x64接口。在此说明性实例中,请求应用程序160可为由于大量通道并行操作而需要低延时及高性能的应用程序。因此可为需要低延时的应用程序请求较浅通道深度。
另一方面,延时不敏感的应用程序可请求较深通道深度,其导致较窄接口。如果通道深度将为16字节,那么操作520将并行地存取四个物理通道使得存储器系统显现为具有x32接口。作为说明性实例,图3的区域310以16字节通道深度映射到应用程序。如箭头所展示,在OS页0的右端处开始,存储器存取在右边开始,且朝向左边发展。如果区域行并非连续映射的,那么OS 150将保持追踪下一行的开始地址,且存取将在适当点处继续进行到所述下一行处。在行0的端部处,存取立即向下移动到行0且从左到右继续进行。将被存取的四个物理通道将取决于存储器控制器115在操作400的存取请求期间所接收的事务的逻辑地址。
类似地,如果通道深度将为32字节,那么将并行地存取两个物理通道使得存储器系统显现为具有x16接口。将被存取的两个物理通道将取决于事务的地址,其中存取根据图3的方向箭头继续进行。最终,如果通道深度将为64字节,那么将每次存取一个物理通道使得存储器系统125显现为具有x8接口。待存取的物理通道将取决于事务的地址。
应用程序延时可在通道深度变浅且更多物理通道被平行存取时降低。另一方面,功率要求可随通道深度变浅而增加。因此,较深通道深度可为优选的以减小可接受更多延时的应用程序的功率消耗。
图8是图解说明根据各种实施例的分配存储器系统125中的存储器的方法的流程图。在操作800中,OS 150接收来自应用程序160的存储器分配请求。在操作810中,OS 150基于所述请求而分配存储器系统125中的区域。如先前所描述,存储器系统125包含一或多个物理装置内的多个物理通道210-1到210-8。区域经分布以包含多个物理通道210-1到210-8中的每一者的相同部分。对应于包括区域的若干个OS页,OS 150将至少一个开始物理地址及对应结束物理地址写入到存储器控制器115的映射RAM140,其中所述若干个OS页包括足够存储器以满足应用程序160的存储器分配请求。存储器分配请求可包含应用程序160的所要通道深度值。如先前所描述,OS 150可从应用程序160接收待对存储器系统125执行的事务的逻辑存储器地址。逻辑存储器地址可基于上文关于图6到7所描述的寻址方法来配置。
各种实施例的设备包含或可包含于用于高速计算机中的电子电路、通信及信号处理电路、存储器模块、便携式存储器存储装置(例如,拇指驱动器)、单处理器或多处理器模块、单个或多个嵌入式处理器、多核心处理器、数据交换机及包含多层、多芯片模块的特殊应用模块。此些设备可进一步作为子组件包含于各种电子系统内,例如电视、存储器蜂窝式电话、个人计算机(例如,膝上型计算机、桌上型计算机、掌上型计算机、平板计算机等)、工作站、无线电、视频播放器、音频播放器(例如,MP3(运动图像专家组,音频层3)播放器)、运载工具、医疗装置(例如,心脏监视器、血压监视器等)、机顶盒及其它。
以上描述及图式图解说明实施例以使所属领域的技术人员能够实践所述实施例。其它实施例可并入有结构改变、逻辑改变、电改变、过程改变及其它改变。在图式中,遍及数个视图,相似特征或相似元件符号描述实质上类似特征。一些实施例的部分及特征可包含于其它实施例中或替代其它实施例的部分及特征。在阅读并理解了以上描述后,所属领域的技术人员将明了许多其它实施例。
本发明的【发明摘要】经提供以符合37 C.F.R.§1.72(b),从而需要允许读者迅速弄清技术性揭示内容的性质的发明摘要。提交本说明书摘要是基于以下理解:其将不用来解释或限制权利要求书。

Claims (25)

1.一种映射具有两个或两个以上物理通道的存储器系统的方法,所述方法包括:
将所述存储器系统的区域映射到请求过程,其中所述存储器系统的映射到相应请求过程的每一区域包含所述两个或两个以上物理通道中的每一者的至少相应部分。
2.根据权利要求1所述的方法,其进一步包括:
存储与所述区域相关联的值,所述值指示在映射到所述区域的地址移动到不同物理通道中之前待从所述两个或两个以上物理通道中的每一者存取的字节的数目。
3.根据权利要求2所述的方法,其中所述值基于所述请求过程的性能要求及功率要求中的至少一者。
4.根据权利要求1所述的方法,其中
所述两个或两个以上物理通道中的每一者包括相应多个存储器单元行,且
所述映射包含映射所述区域使得所述区域横跨所述两个或两个以上物理通道以包含所述两个或两个以上物理通道中的每一者的相同存储器单元行。
5.根据权利要求4所述的方法,其中
所述区域包含所述两个或两个以上物理通道中的每一者的至少两个相同的存储器单元行,且
所述至少两个存储器单元行中的一者与所述至少两个存储器单元行中的另一者为不连续的。
6.一种用于存取存储器系统的方法,所述存储器系统包含两个或两个以上物理通道,所述方法包括:
接收存取请求,所述请求包含逻辑存储器地址;
检索与所述存储器系统的对应于所述逻辑存储器地址的区域相关联的通道深度,所述存储器系统的每一区域跨越所述两个或两个以上物理通道而分布以包含所述两个或两个以上物理通道中的每一者的至少相应部分,所述相应部分位于所述两个或两个以上物理通道中的每一者内的相同位置处;及
基于所述所检索通道深度且基于所述存取请求,在对应于所述逻辑存储器地址的所述区域中对所述存储器系统执行操作。
7.根据权利要求6所述的方法,其中所述逻辑存储器地址进一步包括用于指示所述逻辑存储器地址已映射到的所述区域的身份识别的至少一个位,且所述至少一个位是由做出所述存取请求的处理器添加到所述逻辑存储器地址。
8.根据权利要求6所述的方法,其进一步包括:
使用所述所接收逻辑地址、针对所述区域存储的开始物理地址及针对所述区域存储的结束物理地址来确定所述区域内的对其执行所述所请求操作的地址。
9.根据权利要求6所述的方法,其中检索通道深度包括检索所述区域的通道深度值;且其中基于所述所检索通道深度而对所述存储器系统执行操作包括基于所述通道深度值而确定移动所述物理通道中的一者内的物理地址以存取所述物理地址的点。
10.根据权利要求9所述的方法,其中对所述存储器系统执行操作进一步包括从一定数目个所述物理通道中的每一者并行存取相应存储器单元,所述数目基于所述区域的所述通道深度值。
11.一种方法,其包括:
接收存储器分配请求;及
基于所述请求而编程存储器控制器的数据结构以包含存储器系统的区域的开始地址及结束地址,所述存储器系统包含多个物理通道,所述存储器系统的每一区域包含所述多个物理通道中的每一者的至少相应部分。
12.根据权利要求11所述的方法,其进一步包括:
接收第二存储器分配请求;
检查所述数据结构以确定所述第二存储器分配的第二开始地址;及
编程所述数据结构以包含所述第二开始地址作为第二区域的所述开始地址。
13.根据权利要求11所述的方法,其进一步包括:
接收存取所述存储器系统中的所述区域的请求,所述请求包含请求存取所针对的地址;
将至少一个区域识别位附加到所述地址;及
将所述地址传达到存储器控制器。
14.根据权利要求11所述的方法,其中
所述请求包含通道深度值,所述通道深度值指示在映射到所述区域的地址移动到所述存储器系统的不同物理通道中之前待从所述系统的所述多个物理通道中的每一者存取的字节的数目,且
所述区域基于应用程序的要求而包含所述多个物理通道的一定数目个行。
15.根据权利要求14所述的方法,其中所述通道深度值基于请求所述存储器分配的过程的性能要求及功率要求中的至少一者。
16.一种用于具有至少两个物理通道的存储器系统的存储器控制器,所述存储器控制器包括:
存储器,其经配置以存储定义所述存储器系统的区域的数据结构,所述存储器系统的每一区域包括所述两个或两个以上物理通道中的每一者的至少相应部分。
17.一种系统,其包括:
存储器系统,其具有两个或两个以上物理通道,每一物理通道包含相应多个存储器单元行;
处理器,其经配置以将在所述处理器上执行的应用程序映射到所述存储器系统的多个区域中的相应区域;及
存储器控制器,其经配置以存储定义所述存储器系统的所述多个区域的数据结构,其中所述存储器系统的所述多个区域中的每一区域包含所述两个或两个以上物理通道中的每一者的至少相应部分。
18.根据权利要求17所述的系统,其中所述存储器进一步经配置以存储所述区域中的每一者的相应通道深度值,所述通道深度值指示在映射到所述区域的地址移动到不同物理通道中之前待从所述两个或两个以上物理通道中的每一者存取的字节的数目。
19.一种包括指令的计算机可读媒体,所述指令在于机器上实施时致使所述机器:
请求对存储器系统中的存储器的分配,所述请求包含指示在所述机器上执行的应用程序的所要性能点的性能点值。
20.根据权利要求19所述的计算机可读媒体,其中所述性能点值为将执行所述应用程序的存储器事务的所要通道深度。
21.根据权利要求19所述的计算机可读媒体,其进一步包括用以执行以下操作的指令:
确定所述应用程序的所要性能点或功率要求。
22.根据权利要求21所述的计算机可读媒体,其中基于所述应用程序的类型而确定所述所要性能点。
23.根据权利要求21所述的计算机可读媒体,其中所述所要性能点或功率点基于从所述应用程序接收的值。
24.一种包括指令的计算机可读媒体,所述指令在于机器上实施时致使所述机器:
将第一地址及第二地址写入到存储器,所述第一地址及所述第二地址分别表示存储器系统的待分配给软件应用程序的区域的开始地址及所述存储器系统的所述区域的结束地址,所述存储器系统包含两个或两个以上物理通道,且其中所述区域中的每一者包含所述两个或两个以上物理通道中的每一者的至少相应部分。
25.一种维持具有两个或两个以上物理通道的存储器系统的存储器映射的方法,所述方法包括:
存储所述存储器映射的区域的开始地址及结束地址,所述区域包含所述两个或两个以上物理通道中的每一者的至少相应部分且所述区域包括分配给第一应用程序的存储器量;
基于所述第一应用程序的性能要求及功率要求中的至少一者而存储通道深度值,使得所述通道深度值与所述区域相关联;及
基于第二应用程序的分配请求而用额外开始地址、额外结束地址及额外通道深度更新所述存储器映射。
CN201480008496.5A 2013-01-21 2014-01-20 用于存取存储器的系统及方法 Active CN104995611B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,141 US9183057B2 (en) 2013-01-21 2013-01-21 Systems and methods for accessing memory
US13/746,141 2013-01-21
PCT/US2014/012205 WO2014113758A1 (en) 2013-01-21 2014-01-20 Systems and methods for accessing memory

Publications (2)

Publication Number Publication Date
CN104995611A true CN104995611A (zh) 2015-10-21
CN104995611B CN104995611B (zh) 2017-04-12

Family

ID=51208685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480008496.5A Active CN104995611B (zh) 2013-01-21 2014-01-20 用于存取存储器的系统及方法

Country Status (5)

Country Link
US (2) US9183057B2 (zh)
EP (1) EP2946303B1 (zh)
CN (1) CN104995611B (zh)
TW (1) TWI512469B (zh)
WO (1) WO2014113758A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061709B2 (en) 2013-01-21 2018-08-28 Micron Technology, Inc. Systems and methods for accessing memory
CN113039531A (zh) * 2019-02-13 2021-06-25 谷歌有限责任公司 缓存存储器请求流
CN113994313A (zh) * 2019-05-28 2022-01-28 美光科技公司 基于存储器即服务的分布式计算

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9686191B2 (en) * 2015-08-21 2017-06-20 KnuEdge Incorporation Performing read operations in network on a chip architecture
CN108614732B (zh) * 2016-12-09 2021-07-09 中标软件有限公司 龙芯平台动态前景下的操作系统硬件设备快速映射方法
KR20210034726A (ko) * 2019-09-20 2021-03-31 삼성전자주식회사 메모리 모듈, 그것을 제어하는 메모리 제어기의 에러 정정 방법, 및 그것을포함하는 컴퓨팅 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090150576A1 (en) * 2007-12-06 2009-06-11 Joaquin Madruga Dynamic logical data channel assignment using channel bitmap
US7882307B1 (en) * 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US20110153908A1 (en) * 2009-12-23 2011-06-23 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
WO2012033662A2 (en) * 2010-09-10 2012-03-15 Rambus Inc. Memory controller and method for tuned address mapping
WO2012161659A1 (en) * 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0663636B1 (en) 1994-01-12 2001-10-31 Sun Microsystems, Inc. Logically addressable physical memory for a virtual memory computer system that supports multiple page sizes
US5765032A (en) * 1996-01-11 1998-06-09 Cisco Technology, Inc. Per channel frame queuing and servicing in the egress direction of a communications network
US6226724B1 (en) 1997-09-03 2001-05-01 Motorola, Inc. Memory controller and method for generating commands to a memory
US6477612B1 (en) 2000-02-08 2002-11-05 Microsoft Corporation Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process
US6523104B2 (en) 2001-07-13 2003-02-18 Mips Technologies, Inc. Mechanism for programmable modification of memory mapping granularity
DE602004016947D1 (de) * 2004-03-10 2008-11-20 Ericsson Telefon Ab L M Addressgenerator für einen Verschachtelungsspeicher und einen Entschachtelungsspeicher
US7269708B2 (en) 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US8683250B2 (en) * 2009-06-25 2014-03-25 International Business Machines Corporation Minimizing storage power consumption
US8898381B2 (en) * 2009-12-08 2014-11-25 OCZ Storage Solutions Inc. Raid storage systems having arrays of solid-state drives and methods of operation
US8892844B2 (en) 2011-03-07 2014-11-18 Micron Technology, Inc. Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers
EP3451176B1 (en) * 2011-09-30 2023-05-24 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US9183057B2 (en) 2013-01-21 2015-11-10 Micron Technology, Inc. Systems and methods for accessing memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882307B1 (en) * 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US20090150576A1 (en) * 2007-12-06 2009-06-11 Joaquin Madruga Dynamic logical data channel assignment using channel bitmap
US20110153908A1 (en) * 2009-12-23 2011-06-23 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
WO2012033662A2 (en) * 2010-09-10 2012-03-15 Rambus Inc. Memory controller and method for tuned address mapping
WO2012033662A4 (en) * 2010-09-10 2012-07-19 Rambus Inc. Memory controller and method for tuned address mapping
WO2012161659A1 (en) * 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061709B2 (en) 2013-01-21 2018-08-28 Micron Technology, Inc. Systems and methods for accessing memory
CN113039531A (zh) * 2019-02-13 2021-06-25 谷歌有限责任公司 缓存存储器请求流
CN113039531B (zh) * 2019-02-13 2023-12-01 谷歌有限责任公司 用于分配缓存资源的方法、系统和存储介质
CN113994313A (zh) * 2019-05-28 2022-01-28 美光科技公司 基于存储器即服务的分布式计算
CN113994313B (zh) * 2019-05-28 2023-12-01 美光科技公司 基于存储器即服务的分布式计算

Also Published As

Publication number Publication date
EP2946303A1 (en) 2015-11-25
EP2946303B1 (en) 2019-01-16
US20160062909A1 (en) 2016-03-03
WO2014113758A1 (en) 2014-07-24
TWI512469B (zh) 2015-12-11
US20140208060A1 (en) 2014-07-24
EP2946303A4 (en) 2017-02-08
TW201443646A (zh) 2014-11-16
US10061709B2 (en) 2018-08-28
US9183057B2 (en) 2015-11-10
CN104995611B (zh) 2017-04-12

Similar Documents

Publication Publication Date Title
CN104995611A (zh) 用于存取存储器的系统及方法
US11573742B2 (en) Dynamic data placement for collision avoidance among concurrent write streams
US20180004659A1 (en) Cribbing cache implementing highly compressible data indication
US20130329491A1 (en) Hybrid Memory Module
US20140101370A1 (en) Apparatus and method for low power low latency high capacity storage class memory
EP2829969A1 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM)
EP3220277A1 (en) Memory accessing method, storage-class memory, and computer system
KR20220150437A (ko) 고체 상태 드라이브의 판독 성능을 개선시키는 방법 및 장치
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
CN108062201A (zh) 用于固态驱动器的自虚拟化闪速存储器
US20190042415A1 (en) Storage model for a computer system having persistent system memory
CN103500075A (zh) 一种基于新材料的外接的计算机加速设备
US20220300165A1 (en) Cooperative Storage Architecture
CN113986773A (zh) 基于固态硬盘的写放大优化方法、装置及计算机设备
CN116795735B (zh) 固态硬盘空间分配方法、装置、介质及系统
WO2016180063A1 (zh) 写请求的处理方法和内存控制器
US11966610B2 (en) Storage device capable of adjusting size of zoned namespace and operating method thereof
US11474717B2 (en) Memory systems having semiconductor memory modules therein that support page fault processing
CN115357182A (zh) 分层存储器系统中的对象管理
CN115357522A (zh) 分层存储器系统中的对象管理
US11106559B2 (en) Memory controller and memory system including the memory controller
US20190095122A1 (en) Memory management system, computing system, and methods thereof
CN111352581B (zh) 在存储设备中写入数据的方法、存储设备、和存储系统
EP4071593A1 (en) Stacked cache system based on sedram, and control method and cache device
CN110297784B (zh) 一种虚拟权重存储器系统及数据处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant