CN105900176A - 用于基于存储器访问模式解决dram页面冲突的***和方法 - Google Patents
用于基于存储器访问模式解决dram页面冲突的***和方法 Download PDFInfo
- Publication number
- CN105900176A CN105900176A CN201580004047.8A CN201580004047A CN105900176A CN 105900176 A CN105900176 A CN 105900176A CN 201580004047 A CN201580004047 A CN 201580004047A CN 105900176 A CN105900176 A CN 105900176A
- Authority
- CN
- China
- Prior art keywords
- memory
- client
- affairs
- access
- access patterns
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1042—Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1075—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for multiport memories each having random access ports and serial ports, e.g. video RAM
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Power Sources (AREA)
- Memory System (AREA)
Abstract
公开了用于管理针对DRAM存储器设备(104)的访问请求的***、方法和计算机程序。一个实施包括在与DRAM存储器设备(104)进行相对应的存储器事务之前接收针对多个存储器客户端(110)中的至少一个的存储器访问模式数据(116)。接下来,基于所接收到的存储器访问模式数据(116)确定(114)该多个存储器客户端(110)中的第一个的未来事务会与该多个存储器客户端(110)中的第二个的当前事务形成未来页面冲突。该未来页面冲突随后通过由该第一和第二存储器客户端(110)根据所接收到的存储器访问模式数据(116)对针对该DRAM存储器设备(104)中的相关联的存储体(106)的访问进行交织而被解决。
Description
对相关申请的交叉引用
本申请要求于2014年1月10日提交的题为“System and Method forResolving DRAM Page Conflicts Based on Memory Access Patterns Providedby Memory Clients”的美国临时专利申请序列号No.61/926207的优先权权益,其不失其完整性地通过引用并入本文。
背景技术
诸如双倍数据速率(DDR)类型的存储器的动态随机访问存储器(DRAM)在各种计算设备(例如,个人计算机、膝上计算机、笔记本、视频游戏机、便携式计算设备、移动电话等)中有所使用。这样的设备通常包括片上***(SoC),后者包括与一个或多个存储器客户端(例如,(多个)中央处理单元(CPU)、(多个)图形处理单元(GPU)、(多个)数字信号处理器(DSP)等)进行通信以便控制针对DDR存储器的读或写请求的存储器控制器。在常规的存储器***中,当存储器客户端同时尝试进行DDR读或写请求时,该存储器控制器例如基于存储器客户端的优先级以及访问请求的时间而准许存储器访问。
并发工作负载的情形会产生问题。例如,当一个存储器客户端尝试进行大的数据事务时,具有更高优先级的不同的存储器客户端可以在DDR存储器中形成页面冲突情形,这迫使存储器控制器将相对较小的数据事务重新排序到该大的数据事务之前。如本领域中已知的,DDR存储器设备可以包括多个存储体(bank)。页面冲突是由于DDR存储器被配置为使得在任意给定时间都仅能够对存储体中的单个页面进行访问。因此,在并发使用的情形中,存储器控制器利用“页面关闭”操作将该大的数据事务挂起并且利用“页面打开”操作开始更高优先级的事务。当该较小的数据事务完成时,该存储器控制器执行另一个“页面关闭”并且通过另一个“页面打开”操作继续进行被挂起的事务。
虽然强制实施基于优先级的DDR访问可能是有利的,但是由于页面打开/关闭操作的可能性的增加,管理页面冲突会对存储器控制器操作的效率和节能造成不利影响。因此,本领域仍然需要用于使得页面冲突情形最小化的有所改进的***和方法。
发明内容
公开了用于管理针对DRAM存储器设备的访问请求的***、方法和计算机程序。一个实施例是一种方法,包括:在与DRAM存储器设备进行相对应的存储器事务之前接收针对多个存储器客户端中的至少一个的存储器访问模式数据;基于所接收到的存储器访问模式数据确定该多个存储器客户端中的第一个存储器客户端的未来事务会与该多个存储器客户端中的第二个存储器客户端的当前事务形成未来页面冲突;并且通过根据所接收到的存储器访问模式数据对由该第一和第二存储器客户端针对该DRAM存储器设备中的相关联的存储体所进行的访问进行交织而解决该未来页面冲突。
另一个实施例是用于管理针对DRAM存储器设备的访问请求的***。一种这样的***包括DRAM存储器、多个存储器客户端和存储器控制器。该DRAM存储器设备包括多个存储体。该存储器客户端与该存储器控制器进行通信,后者控制针对该DRAMD存储器设备的访问。该存储器客户端被配置为向该存储器控制器提供存储器访问模式数据。该存储器控制器被配置为基于来自该一个或多个存储器客户端的存储器访问模式数据而确定该多个存储器客户端中的第一个的未来事务会与该多个存储器客户端中的第二个的当前事务形成未来页面冲突。
附图说明
在附图中,除非另外有所指示,否则贯穿各个视图,同样的附图标记始终指代同样的部分。对于诸如“102A”或“102B”之类的具有字母字符命名的附图标记而言,该字母字符命名可以对出现在相同示图中的两个同样的部分或要素加以区分。附图标记的字母字符命名在该附图标记意在涵盖所有示图中具有相同附图标记的所有部分时可以被省略。
图1是用于使得存储器控制器能够根据一个或多个存储器客户端所提供的存储器访问模式数据来解决页面冲突的***的实施例的框图。
图2是图示在图1中***中所实施的用于根据一个或多个存储器客户端所提供的存储器访问模式数据来解决页面冲突的方法的实施例的流程图。
图3是在图4和图5中所图示的时序图的数据图例。
图4是图示图1中的存储器控制器所实施的用于解决与周期性业务流和非周期性的优先业务方案相关联的页面冲突的方法的一个实施例的时序图。
图5是图示图1中的存储器控制器所实施的用于解决与两个周期性业务流相关联的页面冲突的方法的另一个实施例的时序图。
图6是图示用于实施图1的***的示例性便携式计算设备的框图。
具体实施方式
词语或“示例性”在这里被用来表示“用作示例、实例或说明”。这里被描述为“示例性”的任意方面并不一定被理解为相对于其它方面是优选或有利的。
在该描述中,术语“应用”也可以包括具有可执行内容的文件,上述可执行内容诸如对象代码、脚本、字节代码、标记语言文件和补丁。此外,在这里所提到的“应用”也可以包括本质上无法执行的文件,诸如可能需要被打开的文档或者需要被访问的其它数据。
术语“内容”也可以包括具有可执行内容的文件,上述可执行内容诸如对象代码、脚本、字节代码、标记语言文件和补丁。此外,在这里所提到的“内容”也可以包括本质上无法执行的文件,诸如可能需要被打开的文档或者需要被访问的其它数据。
如该描述中所使用的,术语“组件”、“数据库”、“模块”、“***”等意在是指计算机相关的实体,其或者是硬件、固件、硬件和软件的组合、软件,或者是执行中的软件。例如,组件可以是在处理器上运行的处理、处理器、对象、可执行程序、执行的线程、程序和/或计算机,但是并不局限于此。作为说明,在计算设备上运行的应用以及该计算设备都可以是组件。一个或多个组件可以处于处理和/或执行线程之内,并且组件可以位于一台计算机上和/或在两台或更多计算机之间进行分布。此外,这些组件可以从具有存储于其上的各种数据结构的各种计算机可读媒体执行。组件诸如可以依据具有一个或多个数据分组的信号(例如,来自与本地***、分布式***中的另一个组件进行交互和/或利用信号来跨诸如互联网的网络与其它***进行交互的一个组件的数据)而利用本地和/或远程处理进行通信。
在该描述中,术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手机”能够互换使用。随着第三代(3G)和***(4G)无线技术的发展,更大的带宽可用性已经使得更多的便携式计算设备能够具有更多样的各种无线功能。因此,便携式计算设备可以包括具有无线连接或链路的蜂窝电话、寻呼机、PDA、智能电话、导航设备或者手持计算机。
图1图示了通过用于基于一个或多个存储器客户端110的存储器访问模式的先前或先验知识解决与DRAM存储器设备104相关联的页面冲突来改善存储器控制器102的效率和节能的***100。***100可以在任意计算设备中实施,包括个人计算机、工作站、服务器、便携式计算设备(PCD),诸如蜂窝电话、便携式数字助理(PDA)、便携式游戏机、掌上电脑或平板电脑。
如图1所示,***100包括存储器控制器102,多个存储器客户端110a、110b和110c,以及DRAM存储器***104。存储器客户端110可以包括请求针对DRAM存储器***104进行读/写访问的一个或多个处理器或其它客户端。在一个实施例中,存储器客户端110a、110b和110c分别包括中央处理器(CPU)、图形处理单元(GPU)和数字信号处理器(DSP)。存储器客户端110a、110b和110c分别经由接口112a、112b和112c与存储器控制器102进行通信。存储器控制器102经由接口108耦合至DRAM存储器***104。
应当意识到的是,图1所示的一个或多个组件可以处于耦合至DRAM存储器***104的片上***(SoC)上。如本领域已知的,DRAM存储器***104包括存储器的多个存储体106a-106d。在一个实施例中,DRAM存储器***104包括双倍数据速率(DDR)类型的存储器。每个存储体106包括多个存储器元件,它们均被配置为存储一个或多个比特的数据。每个存储体内的存储器部件可以被组织为页面。例如,在能够按照行和列进行寻址的存储器设备中,每个页面可以包括特定存储体中所包括的一行存储器部件。如以上所描述的,由于每次仅能够访问每个存储体106中的一个页面,所以在并发工作负载尝试访问相同的存储体106时会发生页面冲突。
如图1中进一步图示的,存储器控制器102包括基于模式的页面冲突解决组件114,该基于模式的页面冲突解决组件114通常包括用于基于存储器客户端110的存储器访问模式的先前或先验知识来解决页面冲突的逻辑。存储器客户端110a、110b和110c中的每一个可以被配置为分别确定存储器访问模式数据116a、116b和116c并且将它们提供至存储器控制器102。存储器访问模式数据116可以在存储器请求118之前被提供至存储器控制器102。应当意识到的是,存储器访问模式数据116可以包括定义周期性业务流或者以其它方式表示访问模式的模型的任意适当数据,例如包括事务频率和事务持续时间。如以下更为详细描述的,该数据还可以包括指定事务在交织过程期间可以被延迟的时间量的时延容忍度。存储器访问模式数据116可以由相对应的存储器客户端110所提供,或者以其它方式经由与存储器请求118相同或不同的(多个)接口或者经由一个或多个边带信道而提供。
图2图示了可以由***100所实施以用于解决两个或更多存储器客户端的并发工作负载期间的页面冲突的方法200的实施例。在框202,一个或多个存储器客户端110可以针对其相关联的存储器业务而确定、追踪或者以其它方式定义存储器访问模式数据116。存储器访问模式数据116可以包括以下或其它类型的用于定义周期性业务流的数据:事务持续时间、事务频率、交织时延容忍度或延迟阈值,和/或可以定义存储器访问模式的任意其它数据。应当意识到的是,存储器客户端110或者任意外部逻辑都可以确定存储器访问模式数据116。在框204,存储器控制器102从多个存储器客户端110中的至少一个接收存储器访问模式数据116。如以上所提到的,存储器访问模式数据116可以经由与存储器请求118相同的接口112或可替换接口而被提供。在框206,页面冲突解决组件114可以访问存储器访问模式数据116并且确定存储器客户端110之一的未来事务是否将会形成与存储体106之一相关联的未来页面冲突。例如,基于存储器访问模式数据116,页面冲突解决组件114可以确定存储器客户端110a(例如,CPU)的未来事务将会形成与另一个存储器客户端110b(例如,GPU)的未来页面冲突。在框208和210,存储器控制器110例如通过根据存储器访问模式数据116而对存储器客户端110a和110b针对相关联的存储体106的访问进行交织来解决该未来页面冲突。在一个实施例中,如以下更为详细描述的,访问例如可以通过将一个或多个存储器客户端110进行延迟达最大时延容忍度而被交织。该最大时延容忍度可以由***100中的任意适当组件(例如,存储器控制器102、存储器客户端110等)所生成并且被提供至基于模式的页面冲突解决组件114。
本领域技术人员将会意识到的是,页面冲突解决组件114可以被配置为使得用来应对来自一个或多个周期性业务流的并发工作负载的页面关闭和页面打开操作的数量最小化。图4和图5图示了用于对涉及与第一存储器客户端A和第二存储器客户端B相关联的业务流的并发工作流情形中的存储器访问进行交织的两个示例性实施例。图3是图4和图5中所图示的时序图中的数据信号的图例301。应当意识到的是,可以支持可替换的交织和/或延迟方案以及任意数量的业务流。图4和图5仅被呈现为参考两个业务流而对页面冲突解决组件114的总体操作进行图示。本领域技术人员将会意识到的是,可以对具有被实施为周期性事务、非周期性事务或者它们的任意组合的相对应事务的一个或多个存储器客户端110应用该优化技术。
图4图示了用于解决与周期性业务流300(存储器客户端A)和非周期性的优先业务流310(存储器客户端B)相关联的页面冲突的方法的实施例。周期性业务流300包括具有固定事务持续时间和事务频率的三个事务302、304和306。应当意识到的是,周期性业务流300可以由存储器访问模式数据116(例如,事务持续时间、事务频率和时延容忍度)所定义,后者可以在实际存储器访问请求118之前被提供至存储器控制102。非周期性业务流310则包括随机优先事务311-320。如图4中进一步图示的,周期性业务流300可以包括直至垂直虚线所表示的帧边界的持续时间390。
时序图320中图示了操作的缺省并发访问模式(类似于常规解决方案)。在该操作模式中,在并不考虑页面冲突的情况下将优先级赋予事务311至320。事务302、304和306可以在可用时被准许进行访问300。参考时序图320,存储器控制器102可以如下准许访问:
(1)优先事务311;
(2)页面打开/关闭325a;
(3)周期性事务开始302a;
(4)页面打开/关闭325b;
(5)优先事务312;
(6)页面打开/关闭325c;
(7)周期性事务的第二部分302b;
(8)页面打开/关闭325d;
(9)优先事务313;
(10)优先事务314;
(11)优先事务315;
(12)页面打开/关闭325e;
(13)周期性事务304;
(14)页面打开/关闭325f;
(15)优先事务316;
(16)优先事务317;
(17)优先事务318;
(18)优先事务319;
(19)页面打开/关闭325i;
(20)周期性事务的第一部分306a;
(21)页面打开/关闭325j;
(22)优先事务320;
(23)页面打开/关闭325k;
(24)周期性事务的第二部分306b。
与常规操作模式相比,时序图330图示了通过基于定义周期性业务流300的存储器访问模式数据116对优先事务311-320和周期性事务302、304和306进行交织来解决页面冲突的实施例。在该实施例中,存储器控制器102被配置为在向优先事务311-320赋予优先级的同时使得页面打开/关闭操作最小化。参考时序图330,存储器控制器102可以如下对访问进行交织:
(1)优先事务311;
(2)优先事务312;
(3)页面打开/关闭327a;
(4)周期性事务302;
(5)页面打开/关闭327b;
(6)优先事务313;
(7)优先事务314;
(8)优先事务315;
(9)页面打开/关闭327c;
(10)周期性事务304;
(11)页面打开/关闭327d;
(12)优先事务316;
(13)优先事务317;
(14)优先事务318;
(15)优先事务319;
(16)优先事务320;
(17)页面打开/关闭327e;
(18)周期性事务306。
本领域技术人员将会意识到,通过如图4所示对访问进行交织,存储器控制器102减少了页面打开/关闭操作的次数,由此改善了效率和节能。
图5图示了用于解决与两个周期性业务流400和410相关联的页面冲突的方法的另一个实施例。周期性业务流400包括具有固定事务持续时间和事务频率的三个事务402、404和406。周期性业务流410包括具有固定事务持续时间和事务频率的三个优先事务412、414和416。周期性业务流400和410可以由包括事务持续时间、事务频率和时延容忍度的存储器访问模式数据116所定义,该存储器访问模式数据116可以在实际存储器访问请求118之前被提供至存储器控制器102。周期性业务流400可以包括直至垂直虚线所表示的帧边界的持续时间440。
如图5(时序图420)所示,存储器控制器102可以如下以缺省的并发访问操作模式准许访问:
(1)周期性事务的第一部分402a;
(2)页面打开/关闭421a;
(3)优先事务412;
(4)页面打开/关闭421b;
(5)周期性事务的第二部分402b;
(6)周期性事务的第一部分404a;
(7)页面打开/关闭421c;
(8)优先事务414;
(9)页面打开/关闭421d;
(10)周期性事务的第二部分404b;
(11)周期性事务的第一部分406a;
(12)页面打开/关闭421e;
(13)优先事务416;
(14)页面打开/关闭421f;
(15)周期性事务的第二部分406b。
时序图430图示了用于根据定义周期性业务流400和410的相应存储器访问模式数据116对优先事务412、414和416以及周期性事务402、404和406进行交织来解决页面冲突的实施例。在该实施例中,存储器控制器102在向优先事务412、414和416赋予优先级并且避免需要挂起和恢复周期性业务流400的同时对页面冲突加以解决。存储器控制器102可以如下对访问进行交织:
(1)优先事务412;
(2)页面打开/关闭431a;
(3)周期性事务402;
(4)页面打开/关闭431b;
(5)优先事务414;
(6)页面打开/关闭431c;
(7)周期性事务404;
(8)页面打开/关闭431d;
(9)优先事务416;
(10)页面打开/关闭431e;
(11)周期性事务406;
(12)页面打开/关闭431f。
如以上所提到的,***100可以被整合到任意所期望的计算***。图6图示了整合在示例性的便携式通信设备(PCD)500中的***100。将会轻易意识到的是,***100的某些组件包括在SoC 322(图6)上,而其它组件(例如,DRAM存储器104)则可以是耦合至SoC 322的外部组件。SoC 322可以包括多核CPU 502。多核CPU 502可以包括第零内核610、第一内核612和第N内核614。内核之一例如可以包括图形处理单元(GPU),而其它一个或多个则包括CPU。
显示控制器328和触摸屏控制器330可以耦合至CPU 502。进而,片上***322之外的触摸屏显示器108可以耦合至显示控制器1206和触摸屏控制器330。
图6进一步示出了视频编码器334,例如逐行倒相(PAL)编码器、顺序存储彩电(SECAM)编码器或(多)国家电视***委员会(NTSC)编码器,其耦合至多核CPU 502。另外,视频放大器336耦合至视频编码器334和触摸屏显示器506。而且,视频端口338耦合至视频放大器336。如图6所示,通用串行总线(USB)控制器340耦合至多核CPU 502。而且,USB端口342耦合至USB控制器340。存储器104和订户身份模块(SIM)卡346也可以耦合至多核CPU 502。存储器104可以处于SoC 322上或者耦合至SoC 322。
另外,如图6所示,数字相机348可以耦合至多核CPU 502。在示例性方面,数字相机348是电荷耦合器件(CCD)相机或互补金属氧化物半导体(CMOS)相机。
如图6中进一步图示的,立体声音频编解码器(CODEC)350可以耦合至多核CPU 502。此外,音频放大器352可以耦合至立体声音频CODEC350。在示例性方面,第一立体声扬声器354和第二立体声扬声器356耦合至音频放大器352。图6示出了麦克风放大器358也可以耦合至立体声音频CODEC 350。除此之外,麦克风360可以耦合至麦克风放大器358。在特定方面,调频(FM)无线电调谐器362可以耦合至立体声音频CODEC350。而且,FM天线364耦合至FM无线电调谐器362。另外,立体声耳机366也耦合至立体声音频CODEC 350。
图6进一步图示了射频(RF)收发机368可以耦合至多核CPU 502。RF开关370可以耦合至RF收发机368和RF天线372。如图6所示,小键盘616可以耦合至多核CPU 502。而且,具有麦克风的单声道耳机376可以耦合至多核CPU 502。另外,振动器器件378可以耦合至多核CPU502。
图6还示出了电源380可以耦合至片上***322。在特定方面,电源380是直流(DC)电源,其向PCD 500中需要电力的各个组件提供电力。另外,在特定方面,该电源是可充电DC电池或者是从连接至交流(AC)电源的AC至DC变压器所得出的DC电源。
图6进一步指示了PCD 500还可以包括可以被用来访问数据网络的网卡388,上述数据网络诸如局域网、个人域网络或任意其它网络。网卡388可以是蓝牙网卡、WiFi网卡、个人域网络(PAN)网卡、个人域网络超低功率技术(PeANUT)网卡、电视/有线/卫星调谐器,或者本领域技术人员公知的任意其它网卡。另外,网卡388可以被整合到芯片之中,即网卡388可以完全融合于芯片中并且可以不是单独的网卡388。
如图6中所描绘的,触摸屏显示器506。视频端口338、USB端口342、相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、第二立体声耳机366、RF开关370、RF天线372、小键盘374、单声道耳机376、振动器378和电源380可以处于片上***322的外部。
应当意识到的是,这里所描述的一种或多种方法步骤可以作为计算机程序指令—诸如以上所描述的模块—被存储在存储器中。这些指令可以由与相对应模块进行组合或合作从而执行这里所描述的方法的任意适当处理器所执行。
该说明书中所描述的处理或处理流程中的某些步骤本质上处于本发明的其它步骤之前从而如所描述地进行工作。然而,如果所描述步骤的顺序并不改变本发明的功能,则本发明并不局限于这样的顺序。也就是说,所要认识到的是,在不背离本发明的范围和精神的前提下,一些步骤可以在其它步骤之前、之后执行或者与之并行(基本上同时)执行。在一些实例中,在不背离本发明的前提下,某些步骤可以被省略或者并不被执行。另外,诸如“随后”、“接着”、“接下来”等的词语并非意在对步骤的顺序进行限制。这些词语简单地被用来向读者引导示例性方法的描述。
此外,例如基于该说明书中的流程图和相关联描述,编程领域的技术人员能够在没有困难的情况下编写计算机代码或识别适当的硬件和/或电路来实施所公开的发明。
因此,特定程序代码指令的集合或详细硬件设备的公开对于充分理解如何制作和使用本发明而言并不认为是必要的。所请求保护的计算机所实施的处理的发明功能在以上描述中且结合附图进行了更为详细的解释,上述附图可以示出各种处理流程。
在一个或多个示例性方面,所描述的功能可以以硬件、软件、固件或者它们的任意组合来实施。如果以软件实施,则该功能可以作为一个或多个指令或代码在计算机可读介质上进行存储或传送。计算机可读媒体包括计算机存储介质和通信介质,通信介质包括促成计算机程序从一个地方传输至另一个地方的任意介质。存储媒体可以是能够由计算机进行访问的任意可用媒体。作为示例而非限制,这样的计算机可读媒体可以包括RAM、ROM、EEPROM、NAND闪存、NOR闪存、M-RAM、P-RAM、R-RAM、CD-ROM或其它光盘存储装置、磁盘存储或其它磁性存储设备,或者可以被用来携带或存储指令或数据结构形式的所期望程序代码并且可以由计算机进行访问的任意其它介质。
而且,任意连接都适当地被称之为计算机可读介质。例如,如果软件从网站、服务器或其它远程来源使用同轴线缆、光纤线缆、双绞线、数字订户线路(DSL)或者诸如红外、无线电和微波之类的无线技术进行传送,则该同轴线缆、光纤线缆、双绞线、DSL或者诸如红外、无线电和微波之类的无线技术被包括在介质的定义之中。
如这里所使用的,磁盘或碟片包括紧凑盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而碟片则利用激光以光学方式再现数据。以上的组合也应当包括在计算机可读媒体的范围之内。
可替换实施例对于本发明相关领域的技术人员将会是显而易见的而并不背离其精神和范围。因此,虽然已经详细图示并描述了所选择的多个方面,但是将要理解的是,可以在不背离如以下权利要求所限定的本发明的精神和范围的前提下,在其中进行各种替换和改变。
Claims (20)
1.一种用于管理针对DRAM存储器设备的访问请求的方法,所述方法包括:
在与DRAM存储器设备进行相对应的存储器事务之前,接收针对多个存储器客户端中的至少一个存储器客户端的存储器访问模式数据;
基于所接收到的存储器访问模式数据确定所述多个存储器客户端中的第一存储器客户端的未来事务将会与所述多个存储器客户端中的第二存储器客户端的当前事务形成未来页面冲突;以及
通过根据所接收到的存储器访问模式数据,对由所述第一和第二存储器客户端针对所述DRAM存储器设备中的相关联的存储体所进行的访问进行交织,来解决所述未来页面冲突。
2.根据权利要求1所述的方法,其中,所述存储器访问模式数据包括周期性业务数据,所述周期性业务数据包括事务频率、事务持续时间和时延容忍度中的一项或多项。
3.根据权利要求1所述的方法,其中,所述存储器访问模式数据由所述第一和第二存储器客户端之一在相对应的存储器事务之前提供至存储器控制器。
4.根据权利要求1所述的方法,其中,所述第一存储器客户端包括周期性业务流并且所述第二存储器客户端包括非周期性的优先业务流。
5.根据权利要求1所述的方法,其中,对由所述第一和第二存储器客户端针对所述DRAM存储器设备中的所述相关联的存储体所进行的访问进行交织包括使得页面关闭-页面打开操作的数量最小化。
6.根据权利要求1所述的方法,其中,对由所述第一和第二存储器客户端针对所述DRAM存储器设备中的所述相关联的存储体所进行的访问进行交织包括基于时延容忍度而对所述第一和第二存储器客户端之一进行延迟。
7.一种用于管理针对DRAM存储器设备的访问请求的***,所述***包括:
包括多个存储体的DRAM存储器设备;
多个存储器客户端,所述多个存储器客户端与用于控制针对所述DRAMD存储器设备的访问的存储器控制器进行通信,所述存储器客户端被配置为向所述存储器控制器提供存储器访问模式数据;以及
所述存储器控制器,被配置为基于一个或多个所述存储器客户端的所述存储器访问模式数据来确定所述多个存储器客户端中的第一存储器客户端的未来事务将会与所述多个存储器客户端中的第二存储器客户端的当前事务形成未来页面冲突。
8.根据权利要求7所述的***,其中,所述存储器控制器还被配置为通过根据所接收到的存储器访问模式数据,对由所述第一和第二存储器客户端针对所述DRAM存储器设备中的相关联的存储体所进行的访问进行交织,来解决所述未来页面冲突。
9.根据权利要求8所述的***,其中,所述存储器控制器还被配置为使得页面关闭-页面打开操作的数量最小化。
10.根据权利要求7所述的***,其中,所述存储器访问模式数据包括周期性业务数据,所述周期性业务数据包括事务频率、事务持续时间和时延容忍度中的一项或多项。
11.根据权利要求7所述的***,其中,所述存储器访问模式数据定义了周期性业务流。
12.根据权利要求7所述的***,其中,所述第一存储器客户端包括周期性业务流并且所述第二存储器客户端包括非周期性的优先业务流。
13.根据权利要求7所述的***,其中,所述存储器客户端包括中央处理单元、图形处理单元和数字信号处理器中的一个或多个。
14.根据权利要求1所述的***,其中,所述DRAM存储器设备包括双倍数据速率(DDR)存储器设备,并且所述***在便携式计算设备中实施。
15.一种体现于计算机可读介质中并且由处理器所执行的计算机程序,所述计算机程序用于管理针对DRAM存储器设备的访问请求,所述计算机程序包括被配置为执行以下步骤的逻辑:
在与DRAM存储器设备进行相对应的存储器事务之前,接收针对多个存储器客户端中的至少一个存储器客户端的存储器访问模式数据;
基于所接收到的存储器访问模式数据来确定所述多个存储器客户端中的第一存储器客户端的未来事务将会与所述多个存储器客户端中的第二存储器客户端的当前事务形成未来页面冲突;以及
通过根据所接收到的存储器访问模式数据,对由所述第一和第二存储器客户端针对所述DRAM存储器设备中的相关联的存储体所进行的访问进行交织,来解决所述未来页面冲突。
16.根据权利要求15所述的计算机程序,其中,所述存储器访问模式数据包括周期性业务数据,所述周期性业务数据包括事务频率、事务持续时间和时延容忍度中的一项或多项。
17.根据权利要求15所述的计算机程序,其中,所述第一存储器客户端包括周期性业务流并且所述第二存储器客户端包括非周期性的优先业务流。
18.根据权利要求15所述的计算机程序,其中,对由所述第一和第二存储器客户端针对所述DRAM存储器设备中的所述相关联的存储体所进行的访问进行交织包括使得页面关闭-页面打开操作的数量最小化。
19.根据权利要求15所述的计算机程序,其中,所述DRAM存储器设备包括双倍数据速率(DDR)存储器设备。
20.根据权利要求15所述的计算机程序,其中,所述逻辑存在于便携式计算设备中的存储器控制器中。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461926207P | 2014-01-10 | 2014-01-10 | |
US61/926,207 | 2014-01-10 | ||
US14/172,173 US20150199134A1 (en) | 2014-01-10 | 2014-02-04 | System and method for resolving dram page conflicts based on memory access patterns |
US14/172,173 | 2014-02-04 | ||
PCT/US2015/010883 WO2015106145A1 (en) | 2014-01-10 | 2015-01-09 | System and method for resolving dram page conflicts based on memory access patterns |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105900176A true CN105900176A (zh) | 2016-08-24 |
Family
ID=53521400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580004047.8A Pending CN105900176A (zh) | 2014-01-10 | 2015-01-09 | 用于基于存储器访问模式解决dram页面冲突的***和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150199134A1 (zh) |
EP (1) | EP3092648A1 (zh) |
JP (1) | JP2017502421A (zh) |
KR (1) | KR20160107216A (zh) |
CN (1) | CN105900176A (zh) |
WO (1) | WO2015106145A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023453B2 (en) * | 2015-01-29 | 2021-06-01 | Hewlett Packard Enterprise Development Lp | Hash index |
US9747209B1 (en) * | 2016-02-26 | 2017-08-29 | Qualcomm Incorporated | System and method for improved memory performance using cache level hashing |
US20190303777A1 (en) | 2018-03-30 | 2019-10-03 | Provino Technologies, Inc. | Protocol level control for system on a chip (soc) agent reset and power management |
EP3776231B1 (en) | 2018-03-30 | 2023-05-03 | Google LLC | Procedures for implementing source based routing within an interconnect fabric on a system on chip |
US10817506B2 (en) | 2018-05-07 | 2020-10-27 | Microsoft Technology Licensing, Llc | Data service provisioning, metering, and load-balancing via service units |
US10764455B2 (en) | 2018-12-31 | 2020-09-01 | Kyocera Document Solutions Inc. | Memory control method, memory control apparatus, and image forming method that uses memory control method |
US10579317B1 (en) | 2018-12-31 | 2020-03-03 | Kyocera Document Solutions Inc. | Memory control method, memory control apparatus, and image forming method that uses memory control method |
US10614001B1 (en) | 2018-12-31 | 2020-04-07 | Kyocera Document Solutions Inc. | Memory control method, memory control apparatus, and image forming method that uses memory control method |
TR201917243A2 (tr) * | 2019-11-07 | 2021-05-21 | Tobb Ekonomi Ve Teknoloji Ueniversitesi | Hücreleri̇n eri̇şi̇m örüntüsüne göre uyarlanabi̇li̇r alttaş kutuplama (body bias) geri̇li̇mli̇ bi̇r di̇nami̇k rastgele eri̇şi̇m belleği̇ (dram) yapisi |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794072A (en) * | 1996-05-23 | 1998-08-11 | Vlsi Technology, Inc. | Timing method and apparatus for interleaving PIO and DMA data transfers |
US20030005216A1 (en) * | 2001-06-27 | 2003-01-02 | Fujitsu Limited | Control device for semiconductor memory device and method of controlling semiconductor memory device |
CN1669011A (zh) * | 2002-05-14 | 2005-09-14 | 微米技术有限公司 | 无序的动态随机存取存储器序列器 |
CN102207916A (zh) * | 2011-05-30 | 2011-10-05 | 西安电子科技大学 | 一种基于指令预取的多核共享存储器控制设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6351783B1 (en) * | 1999-05-20 | 2002-02-26 | Intel Corporation | Method and apparatus for isochronous data transport over an asynchronous bus |
US8170572B2 (en) * | 2006-04-14 | 2012-05-01 | Qualcomm Incorporated | Methods and apparatus for supporting quality of service in communication systems |
US7761656B2 (en) * | 2007-08-22 | 2010-07-20 | Advanced Micro Devices, Inc. | Detection of speculative precharge |
US8099539B2 (en) * | 2008-03-10 | 2012-01-17 | Lsi Corporation | Method and system of a shared bus architecture |
CA2752917A1 (en) * | 2009-02-20 | 2010-08-26 | Entropic Communications, Inc. | Flexible reservation request and scheduling mechanisms in a managed shared network with quality of service |
US8341437B2 (en) * | 2009-06-30 | 2012-12-25 | International Business Machines Corporation | Managing power consumption and performance in a data storage system |
US9336164B2 (en) * | 2012-10-04 | 2016-05-10 | Applied Micro Circuits Corporation | Scheduling memory banks based on memory access patterns |
US9535860B2 (en) * | 2013-01-17 | 2017-01-03 | Intel Corporation | Arbitrating memory accesses via a shared memory fabric |
-
2014
- 2014-02-04 US US14/172,173 patent/US20150199134A1/en not_active Abandoned
-
2015
- 2015-01-09 EP EP15700945.7A patent/EP3092648A1/en not_active Withdrawn
- 2015-01-09 CN CN201580004047.8A patent/CN105900176A/zh active Pending
- 2015-01-09 JP JP2016544135A patent/JP2017502421A/ja active Pending
- 2015-01-09 KR KR1020167020885A patent/KR20160107216A/ko not_active Application Discontinuation
- 2015-01-09 WO PCT/US2015/010883 patent/WO2015106145A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794072A (en) * | 1996-05-23 | 1998-08-11 | Vlsi Technology, Inc. | Timing method and apparatus for interleaving PIO and DMA data transfers |
US20030005216A1 (en) * | 2001-06-27 | 2003-01-02 | Fujitsu Limited | Control device for semiconductor memory device and method of controlling semiconductor memory device |
CN1669011A (zh) * | 2002-05-14 | 2005-09-14 | 微米技术有限公司 | 无序的动态随机存取存储器序列器 |
CN102207916A (zh) * | 2011-05-30 | 2011-10-05 | 西安电子科技大学 | 一种基于指令预取的多核共享存储器控制设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2017502421A (ja) | 2017-01-19 |
KR20160107216A (ko) | 2016-09-13 |
US20150199134A1 (en) | 2015-07-16 |
EP3092648A1 (en) | 2016-11-16 |
WO2015106145A1 (en) | 2015-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105900176A (zh) | 用于基于存储器访问模式解决dram页面冲突的***和方法 | |
CN110958218B (zh) | 基于多网通信的数据传输方法及相关设备 | |
US10887165B2 (en) | Personal working system available for dynamic combination and adjustment | |
CN104662537B (zh) | 用于固态和非对称访问的集成数据保留策略 | |
CN107767265A (zh) | 一种数据共享方法及服务器 | |
CN111800462B (zh) | 微服务实例处理方法、装置、计算机设备及存储介质 | |
CN104915835A (zh) | 信用账户创建装置、***和方法 | |
CN104838368B (zh) | 用于对具有相异存储器类型的计算设备的性能进行管理的***和方法 | |
CN103516882B (zh) | 一种基于多屏互动场景图片播放方法及*** | |
CN109816481A (zh) | 账单处理方法、装置及计算机可读存储介质 | |
CN109729170A (zh) | 一种新算法的云计算数据备份和还原方法 | |
CN112199442A (zh) | 分布式批量下载文件方法、装置、计算机设备及存储介质 | |
CN110138738A (zh) | 办公会议智能化的方法、装置、***、存储介质和服务器 | |
CN104102884A (zh) | 提升求职者或招聘企业信息安全性和隐秘性的方法及*** | |
CN109271247A (zh) | 内存优化方法、装置、计算机装置以及存储介质 | |
CN104375963B (zh) | 基于缓存一致性的控制***和方法 | |
CN104407995B (zh) | 基于缓存一致性的控制***和方法 | |
CN107423302A (zh) | 缓存更新方法及装置 | |
CN106464974A (zh) | 经由多个网络连接请求媒体内容片段 | |
CN204721386U (zh) | 基于二维码实现绑定微信客户端的装置 | |
CN110168644A (zh) | 用于在存储体存储器单元阵列中提供行篡改保护的***、方法和计算机程序 | |
CN104765704A (zh) | 一种移动通讯装置及电子设备 | |
CN110535962A (zh) | 基于认证设备的数据同步方法、装置、设备和存储介质 | |
CN105069719A (zh) | 一种基于无线网络的律师委托***及方法 | |
CN104794598A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |