CN103109283B - 在计算系统中以多个存储通道对存储缓冲器的分配 - Google Patents
在计算系统中以多个存储通道对存储缓冲器的分配 Download PDFInfo
- Publication number
- CN103109283B CN103109283B CN201180044281.5A CN201180044281A CN103109283B CN 103109283 B CN103109283 B CN 103109283B CN 201180044281 A CN201180044281 A CN 201180044281A CN 103109283 B CN103109283 B CN 103109283B
- Authority
- CN
- China
- Prior art keywords
- storage
- storage buffer
- memory
- buffer
- computing device
- 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
Links
- 239000012536 storage buffer Substances 0.000 title claims abstract description 173
- 238000003860 storage Methods 0.000 claims abstract description 167
- 239000000872 buffer Substances 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 11
- 238000000151 deposition Methods 0.000 claims description 6
- 230000014759 maintenance of location Effects 0.000 claims description 6
- 230000006399 behavior Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims 5
- 238000000034 method Methods 0.000 abstract description 21
- 238000004590 computer program Methods 0.000 abstract description 17
- 238000004891 communication Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- 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/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
-
- 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/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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)
- Information Transfer Systems (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种用于使计算系统中的一个或多个存储缓冲器与多个存储通道相关联的方法、计算机程序产品和系统。所述方法可包括使第一存储缓冲器与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道。类似地,所述方法可包括使第二存储缓冲器与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道。所述方法还可包括使第一序列识别符和第二序列识别符分别与所述第一存储缓冲器和所述第二存储缓冲器相关联。此外,所述方法可包括基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。
Description
背景
技术领域
本发明的实施方案大体上涉及在计算系统中将多个存储通道分配给一个或多个存储缓冲器。
发明背景
由于对提高处理速度和量的需求,许多计算机系统采用多个客户机装置(例如,计算装置)。在具有多个客户机装置的典型计算机系统中,每个客户机装置可经由系统总线与多个存储装置进行通信。系统总线低效的原因是与在客户机装置请求来自存储装置的相同存储体的连续数据传送(本文也称作“存储体争用”)时所述存储装置的还原时段有关。还原时段指的是在对存储装置的第一次存取与紧接的第二次存取之间通过所述存储装置展现的延迟时间。虽然存储装置存取数据,但是在还原时段期间不会在系统上传送数据,因此导致系统总线的低效。
由于一个客户机装置仅可使用系统总线一次,所以一种用于改进总线效率的方法涉及将多个存储装置内的存储地址交错在所述系统总线上。当存储地址交错在系统总线上时,连续的存储器存储位置(例如,具有连续地址的存储位置)放置在单独的存储装置中。通过将连续的存储位置放置在单独的存储装置中,受给定存储装置的还原时段的影响可减小且因此存储体争用可减小。
然而,在具有多个客户机装置的计算机系统中,交错多个存储装置内的存储地址无法导致系统总线的最佳使用。特定来说,系统总线通常进入判优状态以判定哪些客户机装置可存取所述系统总线和多个存储装置内的交错的存储地址。例如,判优状态可允许第一客户机装置在第二客户机装置之前存取系统总线和多个存储装置内的连续存储位置。然而,判优状态无法保证第二客户机装置将立即存取与第一客户机装置相同的连续存储位置,因此影响交错的存储架构的效益(例如,存储体争用的减小)。
需要一种用于减小或消除具有多个客户机装置的计算机系统中的存储体争用的方法和系统。
发明概述
本发明的实施方案包括一种用于在计算系统中将多个存储通道分配给一个或多个存储缓冲器的方法。所述方法可包括以下步骤:使第一存储缓冲器与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道;使第二存储缓冲器与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道;使第一序列识别符和第二序列识别符分别与所述第一存储缓冲器和所述第二存储缓冲器相关联;和基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。所述方法还可包括以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作。类似地,所述方法可包括以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同。
此外,本发明的实施方案包括一种包括其上记录有计算机程序逻辑的计算机可用介质的计算机程序产品,所述计算机程序逻辑用于使处理器能够在计算系统中将多个存储通道分配给一个或多个存储缓冲器。所述计算机程序逻辑可包括以下项:第一计算机可读程序代码,其使处理器能够将第一存储缓冲器分配到第一多个存储体,其中所述第一多个存储体跨越第一组一个或多个存储通道;第二计算机可读程序代码,其使处理器能够将第二存储缓冲器分配到第二多个存储体,其中所述第二多个存储体跨越第二组一个或多个存储通道;和第三计算机可读程序代码,其使处理器能够使第一序列识别符和第二序列识别符分别与所述第一存储缓冲器和所述第二存储缓冲器相关联;和第四计算机可读程序代码,其使处理器能够基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。所述计算机程序逻辑还可包括以下项:第五计算机可读程序代码,其使处理器能够以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作;和第六计算机可读程序代码,其使处理器能够以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同。
本发明的实施方案还包括一种计算系统。所述计算系统可包括第一客户机装置、第二客户机装置、多个存储通道和存储控制器。所述多个存储通道可包括多个存储装置(例如,动态随机存取存储(DRAM)装置)。所述存储控制器被构造来将所述第一客户机装置和所述第二客户机装置通信地连接到所述多个存储通道。所述存储控制器还被构造来执行以下功能:将第一存储缓冲器分配到第一多个存储体,其中所述第一多个存储体跨越第一组一个或多个存储通道;将第二存储缓冲器分配到第二多个存储体,其中所述第二多个存储体跨越第二组一个或多个存储通道;使第一序列识别符和第二序列识别符分别与所述第一存储缓冲器和所述第二存储缓冲器相关联;和基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。此外,所述存储控制器还被构造来以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作;和以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同。
下文参考附图更详细描述本发明的其它特征和优点以及本发明的各个实施方案的结构和操作。应注意本发明不限于本文描述的特定实施方案。本文仅出于说明目的而呈现这些实施方案。基于本文包含的教学,有关技术领域技术人员将明白另外的实施方案。
附图简述
并入本文且形成说明书的一部分的附图示出了本发明的实施方案,并且连同本发明描述进一步用于说明本发明的原理且使有关技术领域技术人员能够开发和使用本发明。
图1是具有多个客户机装置的示例性系统的图,其中可实施本发明的实施方案。
图2是跨越多个存储通道的多个存储缓冲器的实施方案的图。
图3是存储控制器的实施方案的图。
图4是示例性案例的图,其中可用存储空间小于从计算装置请求的存储缓冲器。
图5是用于在计算系统中将多个存储通道分配给一个或多个存储缓冲器的方法的实施方案的图。
图6是示例性计算机系统的图,其中可实施本发明的实施方案。
具体实施方式
下文详述参考示出了符合本发明的示例性实施方案的附图。其它实施方案是可能的,并且在本发明的精神和范围内可对所述实施方案作出修改。因此,详述并非意在限制本发明。更确切地说,由随附权利要求书定义本发明的范围。
所属技术领域技术人员将明白可以附图所示的软件、硬件、固件和/或实体的许多不同实施方案实施如下文描述的本发明。因此,在本发明的实施方案的修改和变化有可能的情况下,将根据本文呈现的详情的层次描述所述实施方案的操作行为。
图1是多客户机计算系统100的实施方案的图。多客户机计算系统100包括第一计算装置110、第二计算装置120、存储控制器130以及存储装置140、150、160和170。第一计算装置110和第二计算装置120经由系统总线180通信地连接到存储控制器130。存储控制器130又分别经由数据总线141、151、161和171通信地连接到存储装置140、150、160和170。存储装置140、150、160和170在本文也称作存储通道140、150、160和170。
基于本文描述,有关技术领域技术人员将明白多客户机计算系统100可包括两个以上或两个以下计算装置、一个以上存储控制器、四个以上或四个以下存储装置或其组合。多客户机计算系统100的这些不同构造是在本文描述的实施方案的范围和精神内。然而,为了便于说明,将在图1描绘的系统架构的上下文中描述本文包含的实施方案。
在实施方案中,计算装置110和120的每个可是例如且不限于中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)控制器、其它类似类型的处理单元或其组合。计算装置110和120被构造来执行指令并实行与多客户机计算系统100相关联的操作。例如,多客户机计算系统100可被构造来重现和显示图形。多客户机计算系统100可包括CPU(例如,计算装置110)和GPU(例如,计算装置120),其中GPU可被构造来重现二维和三维图形并且CPU可被构造来将所述重现的图形的显示整合到显示装置(图1中未示出)上。计算装置110和120可是单独的装置(例如,单独的半导体集成电路或单独的“芯片”)、相同包装中的单独装置、单个装置上的组合装置(例如,单个半导体装置上的装置)或其变形。
参考图1,根据本发明的实施方案,存储装置140、150、160和170的每个是具有四个存储体(例如,下图2的存储体0至3)的动态随机存取存储(DRAM)装置。基于本文描述,有关技术领域技术人员将明白存储装置140、150、160和170可是其它类型的存储装置,诸如(例如且不限于)静态随机存取存储装置(SRAM)、静态DRAM、快速存储装置或其组合。
在实施方案中,一个或多个存储缓冲器分配到多个存储体或与多个存储体相关联,其中所述多个存储体可跨越一个或多个存储通道。图2是跨越多个存储通道140、150、160和170的多个存储缓冲器210、220、230、240和250的实施方案的图。例如,存储缓冲器210跨越存储通道140、150、160和170中的存储体0至3,存储缓冲器220跨越存储通道170中的存储体0至3,存储缓冲器230和240跨越存储通道160中的存储体0至3,并且存储缓冲器250跨越存储通道140和150中的存储体0至3。根据本发明的实施方案,多个存储缓冲器210至250是交错在存储通道140至170中的一个或多个存储体上。用于将存储地址交错在多个存储体上的方法和技术是为有关技术领域一般人员所知。
参考图1,当执行指令并实行与多客户机计算系统100相关联的操作时,计算装置110和120可经由存储控制器130存取存储在存储装置140、150、160和170中的信息。图3是存储控制器130的实施方案的图。存储控制器130包括存储器管理单元310和调度器320。
存储器管理单元310的其中一个功能是分配一个或多个存储缓冲器用于与计算装置110和120相关联的操作或使一个或多个存储缓冲器相关联于与计算装置110和120相关联的操作。在实施方案中,存储器管理单元310以某一存储通道/存储体粒度分配存储缓冲器(或使其相关联)。这个粒度指的是被分配用于一个或多个存储缓冲器的多个存储通道和(所述存储通道内的)多个存储体。在实施方案中,如下文更详细描述,可由计算装置110和120决定粒度。
在实施方案中,存储器管理单元310被构造来将第一存储缓冲器分配到第一多个存储体或使第一存储缓冲器与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道。第一存储缓冲器的实例是图2的存储缓冲器220。根据本发明的实施方案,存储器管理单元310还被构造来将第二存储缓冲器分配到第二多个存储体或使第二存储缓冲器与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道。第二存储缓冲器的实例是图2的存储缓冲器250。在实施方案中,第二多个存储体与第一多个存储体不同。例如,存储缓冲器220占有与存储缓冲器250不同的多个存储体。在另一实施方案中,第二多个存储体与第一多个存储体相同。例如,存储缓冲器230占有与图2的存储缓冲器240相同的多个存储体。
如有关技术领域技术人员将了解,通常在由计算装置(例如,图1的计算装置110和120)执行的操作或过程之间移动数据时使用计算系统(例如,多客户机计算系统100)中的存储缓冲器。在实施方案中,计算装置110是CPU并且第一多个存储体被分配用于第一存储缓冲器(例如,图2的存储缓冲器220)。根据本发明的实施方案,执行对延时敏感的CPU指令代码所要的存储缓冲器可映射到第一存储缓冲器。将对延时敏感的CPU指令代码映射到第一存储缓冲器的其中一个益处是可减小或避免计算装置110与计算装置120之间的存储体争用问题。
在实施方案中,计算装置120是GPU并且可在由计算装置120执行操作时使用第二存储缓冲器(例如,图2的存储缓冲器250)。例如,执行图形操作所要的帧存储缓冲器可映射到第二存储缓冲器。由于一个或多个存储体专用于GPU操作,所以第二存储缓冲器的其中一个益处是可减小或避免计算装置110与计算装置120之间的存储体争用问题。
在另一实施方案中,可在由计算装置110或计算装置120执行操作时使用第一存储缓冲器和第二存储缓冲器。在实施方案中,计算装置110是CPU并且可在由计算装置110执行操作时使用第一存储缓冲器和第二存储缓冲器。例如,图2的存储缓冲器210可被分配用于与帧缓冲相关联的GPU操作,存储缓冲器220、230和240可被分配用于与视频解码相关联的GPU操作,并且存储缓冲器250可被分配用于与静态屏幕状态相关联的GPU操作。基于本文描述,有关技术领域技术人员将明白图2的存储缓冲器210至250可被分配用于在本文描述的实施方案的范围和精神内的其它GPU操作。而且,基于本文描述,有关技术领域技术人员将明白存储缓冲器210至250可被分配用于与其它类型的计算装置(例如,CPU和ASIC控制器)相关联且在本文描述的实施方案的范围和精神内的操作。
跨图1的多计算系统100中的所有存储通道(例如,图2的存储通道140至170)分配存储缓冲器210至250的其中一个益处是不仅可减小或避免存储体争用问题,而且可利用存储通道的全带宽。在使用多客户机计算系统100中的存储通道的全带宽中,多客户机计算系统100的功率和效率得以改进。
参考图3,存储器管理单元310被构造来以(诸如)使存储空间中的“孔洞”最小化的方式分配一个或多个存储缓冲器用于与图1的计算装置110和120相关联的操作。“孔洞”指的是可用存储缓冲器小于由计算装置110或计算装置120请求的存储缓冲器并且所述请求的存储缓冲器被分配到更高的地址空间的情况。因此,这使可用存储缓冲器空间未被使用。在实施方案中,存储器管理单元310被构造来维持存储缓冲器的会计和状态以使在存储空间中出现孔洞最小化或避免在存储空间中出现孔洞。这个会计和状态信息在本文也称作“追踪信息”。在实施方案中,追踪信息可提供以下信息:(1)分配的存储缓冲器是在使用中还是闲置或是已预约;(2)分配的存储缓冲器的存储通道/存储体粒度;(3)与分配的存储缓冲器相关联的序列识别符;(4)分配的存储缓冲器的性能参数。下文更详细描述与分配的存储缓冲器相关联的序列识别符和性能参数。
图4是示例性案例的图,其中可用存储空间410小于从计算装置110或计算装置120请求的存储缓冲器420。在实施方案中,为了利用所有存储通道(例如,存储通道140至170)的全带宽,希望并且最佳是将存储缓冲器420分配到可用存储空间410中。根据本发明的实施方案,图3的存储器管理单元310被构造来追踪存储空间到与图1的计算装置110和120的操作相关联的存储缓冲器的分配,使得可在针对未来操作的存储空间分配中使用追踪信息。例如,在图4所示的示例性案例中,由存储器管理单元310维护的追踪信息可用来调整针对计算装置的未来操作的存储缓冲器210、230、240和250的存储空间分配,使得可跨存储通道170的存储体0至3分配存储缓冲器420(例如,与图2所示的存储缓冲器排列类似)。因此,可利用图1的多客户机计算系统100中的存储通道的全带宽,从而导致多客户机计算系统100的功率和效率的改进。
参考图3,存储器管理单元310还被构造来基于图1的计算装置110和120的工作量预期分配一个或多个存储缓冲器用于与计算装置110和120相关联的操作。在实施方案中,计算装置110是GPU并且请求一个或多个存储缓冲器以特定带宽或速率执行一个或多个GPU操作。基于由计算装置110(例如,GPU)请求的GPU操作的类型,存储器管理单元310可分配适量的存储空间和存储缓冲器用于GPU操作。例如,参考图2,可使用存储缓冲器220、230、240和250执行视频解码流水线操作。例如,可在视频解码流水线的静态屏幕状态下使用存储缓冲器250。在流水线中存储缓冲器230和240可用于供视频解码器在内部使用。此外,在视频解码流水线中存储缓冲器220可用于(例如)视频解码器的写入操作和来自一个或多个图块的读取操作。
根据本发明的实施方案,可对存储缓冲器220、230、240和250的每个指派序列识别符。在实施方案中,序列识别符提供对图1的存储控制器130以及存储装置140、150、160和170的参考,其中所述参考是分配的存储缓冲器的定址/存取序列的指示符。例如,在返回到上述的视频解码流水线实例中,序列识别符‘1’可指派给存储缓冲器250并且用于视频解码流水线的静态屏幕状态操作。序列识别符‘2’可指派给存储缓冲器240并且用于视频解码器的内部操作。序列识别符‘3’可指派给存储缓冲器230并且用于视频解码器的写入操作和来自一个或多个图块的读取操作。此外,序列识别符‘4’可指派给存储缓冲器220并且用于视频解码器的内部操作。
对于视频解码流水线操作的一部分,存储控制器130和存储装置140至170可按特定序列定址/存取存储缓冲器220、230、240和250。存储缓冲器220、230、240和250的序列识别符可用作特定序列的参数。例如,如果特定序列是‘1’、‘2’和‘4’,那么首先将定址/存取存储缓冲器250,其次将定址/存取存储缓冲器240,且最后将定址/存取存储缓冲器220。在另一实例中,如果特定序列是‘1’、‘3’和‘4’,那么首先将定址/存取存储缓冲器250,其次将定址/存取存储缓冲器230,且最后将定址/存取存储缓冲器220。在这两个实例中,特定序列‘2’和‘3’不会接连发生。因此,不仅减小或避免存储通道160中的存储体争用问题,而且还可利用多客户机计算系统100中的存储通道的全带宽。
在存储器管理单元310不具有关于计算装置110和120的工作量预期的信息的示例中,根据本发明的实施方案,默认存储缓冲器排列可用于与计算装置110和120相关联的操作。在实施方案中,默认存储缓冲器排列可跨越所有存储体并且跨越所有存储通道。这个存储缓冲器排列的实例示为跨越所有存储体0至3并且跨越所有存储通道140至170的图2的存储缓冲器210。
除评估计算装置110和120的工作量预期外,存储器管理单元310被构造来以特定操作频率操作存储通道140、150、160和170的每个。因此,可基于跨一个或多个存储通道分配的存储缓冲器评估每个存储通道的带宽。例如,基于跨存储通道140、150、160和170的存储缓冲器(例如,图2的存储缓冲器210、220、230、240和250)的特定排列,可增大或减小每个存储通道的时钟频率以评估图1的多客户机计算系统100的性能(例如,吞吐量)是否基于存储缓冲器的排列得以改进。基于这个信息,最佳时钟频率可用于与一个或多个存储缓冲器相关联的一个或多个存储通道,使得可使与计算装置相关联的存储操作最佳化。在实施方案中,(上文描述的)追踪信息的性能参数部分包括用于存储通道140、150、160和170的每个的最佳时钟频率。
参考图3,调度器320被构造来处理来自存储器管理单元310的存储请求。在实施方案中,调度器320基于由存储器管理单元310提供的追踪信息处理存储请求。如上文论述,在实施方案中,追踪信息可提供以下信息:(1)分配的存储缓冲器是在使用中还是闲置或是已预约;(2)分配的存储缓冲器的存储通道/存储体粒度;(3)与分配的存储缓冲器相关联的序列识别符;和(4)分配的存储缓冲器的性能参数。基于这个追踪信息,调度器320生成分别经由图1的数据总线141、151、161和171将读取和写入操作发送到存储通道140、150、160和170所必需的地址、命令和控制信号。对应来自图1的计算装置110和120的读取和写入存储请求的地址、命令和控制信号的生成是为有关技术领域技术人员所知。
在实施方案中,调度器320结合存储器管理单元310操作以对图1的计算装置110与计算装置120之间的判优线程进行分类。在实施方案中,图1的存储控制器130可管理两个判优线程——分配用于来自计算装置110的存储请求的一个判优线程和分配用于来自计算装置120的存储请求的另一判优线程。可通过在处理其它计算装置的存储请求之前处理一个计算装置的存储请求使调度器320最佳化。例如,如果计算装置110是CPU并且计算装置120是GPU,那么调度器320可在处理GPU有关的存储请求之前处理CPU有关的存储请求,因为相比于GPU性能,CPU性能通常对存储延迟更敏感。在此,根据本发明的实施方案,调度器320提供图1的系统总线180对计算装置110的控制,使得与CPU有关的存储请求相关联的数据传送优先于与GPU有关的存储请求相关联的数据传送。
在实施方案中,在(例如,使用图2的存储缓冲器210至250)执行与图1的计算装置110和120相关联的操作之后,图3的存储器管理单元310取消分配与来自存储空间的操作相关联的一个或多个存储缓冲器。此时,存储器管理单元310可分配闲置的存储空间用于与计算装置110和120的操作相关联的其它存储缓冲器。存储器管理单元310可以与先前操作相同的排列(例如,被分配用于与先前操作相关联的存储缓冲器的存储体和通道的数量相同)或与先前操作不同的排列(例如,被分配用于与先前操作相关联的其它存储缓冲器的存储体和通道的数量不同)分配闲置的存储空间用于其它存储缓冲器。存储器管理单元310被构造来以与上文参考图3描述的方式相同的方式分配其它存储缓冲器用于计算装置110和120的操作。
图5是用于在计算系统中将多个存储通道分配给一个或多个存储缓冲器的方法500的实施方案的图。方法500可使用(例如且不限于)图1的多客户机计算系统100而发生。
在步骤510中,将第一存储缓冲器分配到或使其与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道。图3的存储器管理单元310可(例如)用于执行步骤510。
在步骤520中,将第二存储缓冲器分配到或使其与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道。在实施方案中,第二多个存储体与第一多个存储体不同(在步骤510)。在另一实施方案中,第二多个存储体与第一多个存储体相同。图3的存储器管理单元310可(例如)用于执行步骤520。
在步骤530中,使第一序列识别符和第二序列识别符分别与第一存储缓冲器和第二存储缓冲器相关联。图3的存储器管理单元310可(例如)用于执行步骤530。
在步骤540中,基于第一序列识别符和第二序列识别符存取第一存储缓冲器和第二存储缓冲器。在实施方案中,按序列存取第一存储缓冲器和第二存储缓冲器以避免存储体争用和利用多个存储通道的全带宽。图3的存储器管理单元310和调度器320可(例如)用于执行步骤540。
此外,在实施方案中,当执行与第一存储缓冲器相关联的第一存储操作和与第二存储缓冲器相关联的第二存储操作时,分别以第一操作频率和第二操作频率执行所述第一存储操作和所述第二存储操作。根据本发明的实施方案,第一操作频率与第二操作频率是彼此不同的。
在步骤550中,在执行分别与第一存储缓冲器和第二存储缓冲器相关联的第一存储操作和第二存储操作之后,取消分配来自其各自的存储空间的第一存储缓冲器和第二存储缓冲器。在取消分配第一存储缓冲器和第二存储缓冲器的情况下,与其它存储操作相关联的存储缓冲器可分配到闲置的存储空间。
可以以软件、固件、硬件或其组合实施本发明的各个方面。图6是示例性计算机系统600的图,其中本发明的实施方案或其部分可作为计算机可读代码实施。例如,可在系统600中实施由图5的流程图500所示的方法。本发明的各个实施方案是对这个示例性计算机系统600进行描述。在阅读这个描述之后,有关技术领域技术人员将明白如何使用其它计算机系统和/或计算机架构实施本发明的实施方案。
应注意可通过计算机可读代码(包括通用编程语言(诸如C或C++)、硬件描述语言(HDL)(诸如(例如),Verilog HDL、VHDL、Altera HDL(AHDL))或其它可用编程和/或图形捕捉工具(诸如电路捕捉工具))的使用部分完成本发明的各个实施方案的模拟、合成和/或制造。这个计算机可读代码可安置在任何已知的计算机可用介质(包括半导体、磁盘、光盘(诸如CD-ROM、DVD-ROM))中。照此,可通过通信网络(包括互联网)传输所述代码。应了解由上文描述的系统和技术完成的功能和/或其提供的结构可表示以程序代码具体实施且可转换成硬件而作为集成电路产生的部分的内核(诸如GPU内核)。
计算机系统600包括一个或多个处理器,诸如处理器604。处理器604可以是专用或通用处理器。处理器604连接到通信基础结构606(例如,总线或网络)。
计算机系统600包括显示接口602和显示器630。计算机系统600还包括主存储器608(优选随机存取存储器(RAM)),并且还可以包括辅助存储器610。辅助存储器610可包括(例如)硬盘驱动器612、可移式存储装置驱动器614和/或记忆棒。可移式存储装置驱动器614可包括软盘驱动器、磁带驱动器、光盘驱动器、快速存储器等等。可移式存储装置驱动器614以熟知方式从可移式存储单元618读取和/或写入到其。可移式存储单元618可包括由可移式存储装置驱动器614读取或写入到其的软盘、磁带、光盘等。如有关技术领域技术人员将明白可移式存储单元618包括具有计算机软件和/或数据存储在其中的计算机可用存储介质。
在替代实施方案中,辅助存储器610可包括用于允许计算机程序或其它指令加载到计算机系统600中的其它类似装置。这些装置可包括例如可移式存储单元622和接口620。这些装置的实例可包括允许软件和数据从可移式存储单元622传送到计算机系统600的程序盒式存储器和盒式存储器接口(诸如存在于视频游戏装置中的程序盒式存储器和盒式存储器接口)、可移式存储器芯片(例如,EPROM或PROM)和相关联套接口以及其它可移式存储单元622和接口620。
计算机系统600还可包括通信接口624。通信接口624允许在计算机系统600与外部装置之间传送软件和数据。通信接口624可包括调制解调器、网络接口(诸如以太网卡)、通信端口、PCMCIA槽和卡等等。经由通信接口624传送的软件和数据是以可以是能够由通信接口624接收的电子信号、电磁信号、光学信号或其它信号的形式。这些信号经由通信路径626提供到通信接口624。通信路径626载送信号并且可使用电线或电缆、光纤、电话线、蜂窝电话连接、RF链路或其它通信通道进行实施。
在本文档中,术语“计算机程序介质”和“计算机可用介质”一般来说是用来指诸如可移式存储单元618、可移式存储单元622和安装在硬盘驱动器612中的硬盘的介质。计算机程序介质和计算机可用介质还可指诸如可以是存储半导体(例如,DRAM等)的主存储器608和辅助存储器610的存储器。这些计算机程序产品向计算机系统600提供软件。
计算机程序(也称作计算机控制逻辑)存储在主存储器608和/或辅助存储器610。还可以经由通信接口624接收计算机程序。这些计算机程序在执行时使计算机系统600能够实施如本文论述的本发明的实施方案。特定来说,计算机程序在执行时使处理器604能够实施本发明的实施方案的过程,诸如由上文论述的图5的流程图500所示的方法中的步骤。因此,这些计算机程序表示计算机系统600的控制器。在使用软件实施本发明的实施方案的情况下,所述软件可存储在计算机程序产品中并且使用可移式存储装置驱动器614、接口620、硬盘驱动器612或通信接口624加载到计算机系统600中。
本发明的实施方案还针对计算机程序产品,包括存储在任何计算机可用介质上的软件。这个软件在一个或多个数据处理装置中执行时导致数据处理装置如本文描述般操作。本发明的实施方案采用目前或将来为人所知的任何计算机可用或可读介质。计算机可用介质的实例包括但不限于主要存储装置(例如,任何类型的随机存取存储器)、辅助存储装置(例如,硬盘驱动器、软盘、CD ROMS、ZIP磁盘、磁带、磁存储装置、光学存储装置、MEMS、纳米技术存储装置等)和通信介质(例如,有线和无线通信网络、局域网、广域网、内联网等)。
虽然上文已描述本发明的各个实施方案,但是应了解其已仅通过举例且非以限制之义呈现。有关技术领域技术人员将了解可在不脱离如随附权利要求书中定义的本发明的精神和范围的情况下进行形式和详情的不同变化。应了解本发明不限于这些实例。本发明适用于如本文描述般操作的任何元件。因此,本发明的宽度和范围不应受限于任何上文描述的示例性实施方案,但是仅应根据下文权利要求书和其等效物定义。
Claims (22)
1.一种计算方法,所述方法包括:
使第一存储缓冲器与第一多个存储体相关联,并且将第一序列识别符指派给所述第一存储缓冲器,其中所述第一存储缓冲器跨越第一组存储通道中的多个存储体,其中存储通道包括存储装置;
使第二存储缓冲器与第二多个存储体相关联,并且将第二序列识别符指派给所述第二存储缓冲器,其中所述第二存储缓冲器跨越第二组存储通道中的多个存储体;和
基于所述第一序列识别符和所述第二序列识别符利用第一计算装置和第二计算装置存取所述第一存储缓冲器和所述第二存储缓冲器中的相应的一种,其中所述序列识别符提供所述第一存储缓冲器和所述第二存储缓冲器的存取序列。
2.根据权利要求1所述的计算方法,其还包括:
以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作;
以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同;和
在分别执行所述第一存储操作和所述第二存储操作之后,取消所述第一存储缓冲器和所述第二存储缓冲器与其各自的第一多个存储体和第二多个存储体的关联。
3.根据权利要求1所述的计算方法,其中所述第二多个存储体与所述第一多个存储体不同。
4.根据权利要求1所述的计算方法,其中所述第二多个存储体与所述第一多个存储体相同。
5.根据权利要求1所述的计算方法,其中所述利用第一计算装置和第二计算装置存取所述第一存储缓冲器和所述第二存储缓冲器中的相应的一种包括按序列存取所述第一存储缓冲器和所述第二存储缓冲器以避免存储体争用和利用多个所述存储通道的全带宽。
6.一种计算设备,包括:
第一装置,用于使第一存储缓冲器与第一多个存储体相关联,并且将第一序列识别符指派给所述第一存储缓冲器,其中所述第一存储缓冲器跨越第一组存储通道中的多个存储体,其中存储通道包括存储装置;
第二装置,用于使第二存储缓冲器与第二多个存储体相关联,并且将第二序列识别符指派给所述第二存储缓冲器,其中所述第二存储缓冲器跨越第二组存储通道中的多个存储体;和
第三装置,用于基于所述第一序列识别符和所述第二序列识别符利用第一计算装置和第二计算装置存取所述第一存储缓冲器和所述第二存储缓冲器中的相应的一种,其中所述序列识别符提供所述第一存储缓冲器和所述第二存储缓冲器的存取序列。
7.根据权利要求6所述的计算设备,其还包括:
第四装置,用于以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作;
第五装置,用于以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同;和
第六装置,用于在分别执行所述第一存储操作和所述第二存储操作之后,取消所述第一存储缓冲器和所述第二存储缓冲器与其各自的第一多个存储体和第二多个存储体的关联。
8.根据权利要求6所述的计算设备,其中所述第二多个存储体与所述第一多个存储体不同。
9.根据权利要求6所述的计算设备,其中所述第二多个存储体与所述第一多个存储体相同。
10.根据权利要求6所述的计算设备,其中所述利用所述第一计算装置和所述第二计算装置存取所述第一存储缓冲器和第二存储缓冲器中的相应的一种包括按序列存取所述第一存储缓冲器和所述第二存储缓冲器以避免存储体争用和利用多个所述存储通道的全带宽。
11.一种计算系统,其包括:
第一计算装置;
第二计算装置;
多个存储通道,其中所述多个存储通道包括各自的多个存储装置;和
存储控制器,其被构造来将所述第一计算装置和所述第二计算装置通信地连接到所述多个存储通道且被构造来:
将第一序列识别符和第一多个存储体分配到第一存储缓冲器,其中所述第一存储缓冲器跨越第一组存储通道中的多个存储体;
将第二序列识别符和第二多个存储体分配到第二存储缓冲器,其中所述第二存储缓冲器跨越第二组存储通道中的多个存储体;和
基于所述第一序列识别符和所述第二序列识别符利用第一计算装置和第二计算装置存取所述第一存储缓冲器和所述第二存储缓冲器,其中所述序列识别符提供所述第一存储缓冲器和所述第二存储缓冲器的存取序列。
12.根据权利要求11所述的计算系统,其还包括:
多个数据总线,其对应所述多个存储装置,其中所述多个数据总线被构造来在所述存储控制器与所述各自的多个存储装置之间传送数据。
13.根据权利要求12所述的计算系统,其中所述存储控制器被构造来使用所述多个数据总线的整个带宽控制所述第一计算装置与所述多个存储装置之间或所述第二计算装置与所述多个存储装置之间的数据传送。
14.根据权利要求11所述的计算系统,其中所述第一计算装置和所述第二计算装置包括中央处理单元、图形处理单元和专用集成电路中的至少一个。
15.根据权利要求11所述的计算系统,其中所述多个存储装置中的每个包括动态随机存取存储(DRAM)装置。
16.根据权利要求11所述的计算系统,其中所述存储控制器被构造来:
以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作;
以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同;和
在分别执行所述第一存储操作和所述第二存储操作之后,取消分配来自其各自的第一多个存储体和第二多个存储体的所述第一存储缓冲器和所述第二存储缓冲器。
17.根据权利要求11所述的计算系统,其中所述第二多个存储体与所述第一多个存储体不同。
18.根据权利要求11所述的计算系统,其中所述第二多个存储体与所述第一多个存储体相同。
19.根据权利要求11所述的计算系统,其中所述存储控制器被构造来按序列存取所述第一存储缓冲器和所述第二存储缓冲器以避免存储体争用和利用所述多个存储通道的全带宽。
20.根据权利要求11所述的计算系统,其中所述存储控制器被构造来针对每个存储缓冲器维持追踪信息以实质上消除存储空间中的孔洞。
21.根据权利要求20所述的计算系统,其中所述追踪信息包括下列的至少一者:
存储缓冲器是在使用中还是空闲或是已预约的指示;
与分配的存储缓冲器相关联的存储通道和存储体;
与所述分配的存储缓冲器相关联的序列识别符;和
所述分配的存储缓冲器的性能参数。
22.根据权利要求21所述的计算系统,其中所述性能参数包括用于与所述分配的存储缓冲器相关联的所述存储通道的预定时钟频率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/881,663 US20120066444A1 (en) | 2010-09-14 | 2010-09-14 | Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation |
US12/881,663 | 2010-09-14 | ||
PCT/US2011/051156 WO2012037002A1 (en) | 2010-09-14 | 2011-09-12 | Allocation of memory buffers in computing system with multiple memory channels |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103109283A CN103109283A (zh) | 2013-05-15 |
CN103109283B true CN103109283B (zh) | 2018-12-18 |
Family
ID=44658881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180044281.5A Active CN103109283B (zh) | 2010-09-14 | 2011-09-12 | 在计算系统中以多个存储通道对存储缓冲器的分配 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20120066444A1 (zh) |
EP (1) | EP2616945B1 (zh) |
JP (1) | JP5947302B2 (zh) |
KR (1) | KR101812300B1 (zh) |
CN (1) | CN103109283B (zh) |
WO (1) | WO2012037002A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558247B2 (en) * | 2010-08-31 | 2017-01-31 | Samsung Electronics Co., Ltd. | Storage device and stream filtering method thereof |
US9418109B2 (en) * | 2011-03-18 | 2016-08-16 | Emc Corporation | Memory quota |
WO2013095456A1 (en) * | 2011-12-21 | 2013-06-27 | Intel Corporation | Power management in a discrete memory portion |
US9092327B2 (en) | 2012-12-10 | 2015-07-28 | Qualcomm Incorporated | System and method for allocating memory to dissimilar memory devices using quality of service |
CN110177279B (zh) * | 2014-03-28 | 2021-10-08 | 联咏科技股份有限公司 | 视频处理装置与其视频处理电路 |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US9916274B2 (en) * | 2015-07-23 | 2018-03-13 | Cavium, Inc. | Apparatus and method for on-chip crossbar design in a network switch using benes network |
US10082963B2 (en) * | 2016-04-18 | 2018-09-25 | Super Micro Computer, Inc. | Low capacity latency storage enclosure with expander |
US10481816B2 (en) * | 2017-10-18 | 2019-11-19 | Western Digital Technologies, Inc. | Dynamically assigning data latches |
FR3085075A1 (fr) * | 2018-08-17 | 2020-02-21 | Stmicroelectronics (Grenoble 2) Sas | Controleur memoire |
US11030127B2 (en) | 2019-10-22 | 2021-06-08 | Nxp Usa, Inc. | Multi-threaded architecture for memory controller data paths |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401176B1 (en) * | 1997-11-14 | 2002-06-04 | Agere Systems Guardian Corp. | Multiple agent use of a multi-ported shared memory |
CN1601501A (zh) * | 2003-09-08 | 2005-03-30 | 索尼株式会社 | 存储器带宽控制装置 |
Family Cites Families (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4530090A (en) * | 1983-07-29 | 1985-07-16 | International Standard Electric Corporation | Telecommunications systems with user programmable features |
US4912698A (en) * | 1983-09-26 | 1990-03-27 | Siemens Aktiengesellschaft | Multi-processor central control unit of a telephone exchange system and its operation |
JPS61150059A (ja) * | 1984-12-24 | 1986-07-08 | Sony Corp | デ−タ処理装置 |
US4970666A (en) * | 1988-03-30 | 1990-11-13 | Land Development Laboratory, Inc. | Computerized video imaging system for creating a realistic depiction of a simulated object in an actual environment |
US6070003A (en) * | 1989-11-17 | 2000-05-30 | Texas Instruments Incorporated | System and method of memory access in apparatus having plural processors and plural memories |
US5392443A (en) * | 1991-03-19 | 1995-02-21 | Hitachi, Ltd. | Vector processor with a memory assigned with skewed addresses adapted for concurrent fetching of a number of vector elements belonging to the same vector data |
US5526507A (en) * | 1992-01-06 | 1996-06-11 | Hill; Andrew J. W. | Computer memory array control for accessing different memory banks simullaneously |
US6278645B1 (en) * | 1997-04-11 | 2001-08-21 | 3Dlabs Inc., Ltd. | High speed video frame buffer |
US6032219A (en) * | 1997-08-01 | 2000-02-29 | Garmin Corporation | System and method for buffering data |
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
US6460125B2 (en) * | 1998-08-07 | 2002-10-01 | Ati Technologies, Inc. | Dynamic memory clock control system and method |
US6370073B2 (en) * | 1998-10-01 | 2002-04-09 | Monlithic System Technology, Inc. | Single-port multi-bank memory system having read and write buffers and method of operating same |
US6347344B1 (en) * | 1998-10-14 | 2002-02-12 | Hitachi, Ltd. | Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor |
US6347366B1 (en) * | 1998-12-10 | 2002-02-12 | Genuity Inc. | System and method for automatically optimizing software performance |
US6377268B1 (en) * | 1999-01-29 | 2002-04-23 | Micron Technology, Inc. | Programmable graphics memory apparatus |
US6961084B1 (en) * | 1999-10-07 | 2005-11-01 | Ess Technology, Inc. | Programmable image transform processor |
US6678813B1 (en) * | 1999-10-28 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Dynamically adaptive buffer mechanism |
TW504694B (en) * | 2000-01-12 | 2002-10-01 | Hitachi Ltd | Non-volatile semiconductor memory device and semiconductor disk device |
US6567091B2 (en) * | 2000-02-01 | 2003-05-20 | Interactive Silicon, Inc. | Video controller system with object display lists |
US6449701B1 (en) * | 2000-09-20 | 2002-09-10 | Broadcom Corporation | Out of order associative queue in two clock domains |
US6658546B2 (en) * | 2001-02-23 | 2003-12-02 | International Business Machines Corporation | Storing frame modification information in a bank in memory |
JP2002342266A (ja) * | 2001-05-14 | 2002-11-29 | Hitachi Ltd | データプロセッサ |
DE10134985B4 (de) * | 2001-07-18 | 2012-09-13 | Qimonda Ag | Test eines Halbleiterspeichers mit mehreren Speicherbänken |
US6598132B2 (en) * | 2001-07-18 | 2003-07-22 | Zettacom, Inc. | Buffer manager for network switch port |
US6918019B2 (en) * | 2001-10-01 | 2005-07-12 | Britestream Networks, Inc. | Network and networking system for small discontiguous accesses to high-density memory devices |
JP3878508B2 (ja) * | 2001-11-08 | 2007-02-07 | 松下電器産業株式会社 | 回路群制御システム |
US6769047B2 (en) * | 2002-03-21 | 2004-07-27 | Intel Corporation | Method and system for maximizing DRAM memory bandwidth through storing memory bank indexes in associated buffers |
US6836831B2 (en) * | 2002-08-08 | 2004-12-28 | International Business Machines Corporation | Independent sequencers in a DRAM control structure |
US9207958B1 (en) * | 2002-08-12 | 2015-12-08 | Arm Finance Overseas Limited | Virtual machine coprocessor for accelerating software execution |
US6948030B1 (en) * | 2002-09-04 | 2005-09-20 | Cypress Semiconductor Corporation | FIFO memory system and method |
US6851030B2 (en) * | 2002-10-16 | 2005-02-01 | International Business Machines Corporation | System and method for dynamically allocating associative resources |
US7003628B1 (en) * | 2002-12-27 | 2006-02-21 | Unisys Corporation | Buffered transfer of data blocks between memory and processors independent of the order of allocation of locations in the buffer |
JP2004265162A (ja) * | 2003-03-03 | 2004-09-24 | Renesas Technology Corp | 記憶装置およびアドレス管理方法 |
US8861515B2 (en) * | 2003-04-22 | 2014-10-14 | Agere Systems Llc | Method and apparatus for shared multi-bank memory in a packet switching system |
US7240143B1 (en) * | 2003-06-06 | 2007-07-03 | Broadbus Technologies, Inc. | Data access and address translation for retrieval of data amongst multiple interconnected access nodes |
JP4291664B2 (ja) * | 2003-10-14 | 2009-07-08 | 株式会社日立製作所 | 通信バッファ予約機能を備えるストレージ装置およびシステム |
US20050253858A1 (en) * | 2004-05-14 | 2005-11-17 | Takahide Ohkami | Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams |
US7339592B2 (en) * | 2004-07-13 | 2008-03-04 | Nvidia Corporation | Simulating multiported memories using lower port count memories |
US7360035B2 (en) * | 2004-09-01 | 2008-04-15 | International Business Machines Corporation | Atomic read/write support in a multi-module memory configuration |
JP2006331008A (ja) * | 2005-05-25 | 2006-12-07 | Matsushita Electric Ind Co Ltd | メモリインタフェース |
CN101194242A (zh) * | 2005-06-09 | 2008-06-04 | Nxp股份有限公司 | 存储器控制器和用于连接网络和存储器的方法 |
EP1894108A2 (en) * | 2005-06-13 | 2008-03-05 | Nxp B.V. | Memory controller |
US8244971B2 (en) * | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US9171585B2 (en) * | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US7738451B2 (en) * | 2005-07-01 | 2010-06-15 | Faraday Technology Corp. | Method and device for flexible buffering in networking system |
US8069466B2 (en) * | 2005-08-04 | 2011-11-29 | Nds Limited | Advanced digital TV system |
US20070147115A1 (en) * | 2005-12-28 | 2007-06-28 | Fong-Long Lin | Unified memory and controller |
US8572349B2 (en) * | 2006-01-31 | 2013-10-29 | Agere Systems Llc | Processor with programmable configuration of logical-to-physical address translation on a per-client basis |
US7769942B2 (en) * | 2006-07-27 | 2010-08-03 | Rambus, Inc. | Cross-threaded memory system |
JP2008060700A (ja) * | 2006-08-29 | 2008-03-13 | Oki Electric Ind Co Ltd | バッファ制御装置及びバッファ制御方法 |
US20080147915A1 (en) * | 2006-09-29 | 2008-06-19 | Alexander Kleymenov | Management of memory buffers for computer programs |
US8270295B2 (en) * | 2007-05-21 | 2012-09-18 | International Business Machines Corporation | Reassigning virtual lane buffer allocation during initialization to maximize IO performance |
US8001338B2 (en) * | 2007-08-21 | 2011-08-16 | Microsoft Corporation | Multi-level DRAM controller to manage access to DRAM |
JP4497184B2 (ja) * | 2007-09-13 | 2010-07-07 | ソニー株式会社 | 集積装置およびそのレイアウト方法、並びにプログラム |
US8195907B2 (en) * | 2007-12-21 | 2012-06-05 | Rambus Inc. | Timing adjustment in a reconfigurable system |
US7934052B2 (en) * | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
KR20110005788A (ko) * | 2008-02-19 | 2011-01-19 | 램버스 인코포레이티드 | 할당 가능 자원을 갖는 멀티-뱅크 플래시 메모리 구조 |
US20090322784A1 (en) * | 2008-02-27 | 2009-12-31 | Gabriele Sartori | System and method for virtual 3d graphics acceleration and streaming multiple different video streams |
US7991921B2 (en) * | 2008-03-11 | 2011-08-02 | Freescale Semiconductor, Inc. | System and method for reducing power consumption of memory in an I/O controller |
JP5040773B2 (ja) * | 2008-03-31 | 2012-10-03 | 富士通株式会社 | メモリバッファ割当装置およびプログラム |
US8060692B2 (en) * | 2008-06-27 | 2011-11-15 | Intel Corporation | Memory controller using time-staggered lockstep sub-channels with buffered memory |
US20100169519A1 (en) * | 2008-12-30 | 2010-07-01 | Yong Zhang | Reconfigurable buffer manager |
US9442846B2 (en) * | 2009-03-17 | 2016-09-13 | Cisco Technology, Inc. | High speed memory systems and methods for designing hierarchical memory systems |
US8510496B1 (en) * | 2009-04-27 | 2013-08-13 | Netapp, Inc. | Scheduling access requests for a multi-bank low-latency random read memory device |
US8527993B2 (en) * | 2010-06-01 | 2013-09-03 | Qualcomm Incorporated | Tasking system interface methods and apparatuses for use in wireless devices |
US8725915B2 (en) * | 2010-06-01 | 2014-05-13 | Qualcomm Incorporated | Virtual buffer interface methods and apparatuses for use in wireless devices |
US8959291B2 (en) * | 2010-06-04 | 2015-02-17 | Lsi Corporation | Two-port memory capable of simultaneous read and write |
-
2010
- 2010-09-14 US US12/881,663 patent/US20120066444A1/en not_active Abandoned
-
2011
- 2011-09-12 WO PCT/US2011/051156 patent/WO2012037002A1/en active Application Filing
- 2011-09-12 JP JP2013529213A patent/JP5947302B2/ja active Active
- 2011-09-12 KR KR1020137008490A patent/KR101812300B1/ko active IP Right Grant
- 2011-09-12 CN CN201180044281.5A patent/CN103109283B/zh active Active
- 2011-09-12 EP EP11758654.5A patent/EP2616945B1/en active Active
-
2018
- 2018-04-20 US US15/958,805 patent/US10795837B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6401176B1 (en) * | 1997-11-14 | 2002-06-04 | Agere Systems Guardian Corp. | Multiple agent use of a multi-ported shared memory |
CN1601501A (zh) * | 2003-09-08 | 2005-03-30 | 索尼株式会社 | 存储器带宽控制装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5947302B2 (ja) | 2016-07-06 |
JP2013542493A (ja) | 2013-11-21 |
US20120066444A1 (en) | 2012-03-15 |
EP2616945B1 (en) | 2017-08-16 |
KR101812300B1 (ko) | 2017-12-26 |
KR20130106392A (ko) | 2013-09-27 |
WO2012037002A1 (en) | 2012-03-22 |
US20180239722A1 (en) | 2018-08-23 |
US10795837B2 (en) | 2020-10-06 |
CN103109283A (zh) | 2013-05-15 |
EP2616945A1 (en) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103109283B (zh) | 在计算系统中以多个存储通道对存储缓冲器的分配 | |
EP3729281B1 (en) | Scheduling memory requests with non-uniform latencies | |
KR102380670B1 (ko) | 메모리 제어기에서의 세분화된 대역폭 프로비저닝 | |
US9098462B1 (en) | Communications via shared memory | |
US20140168242A1 (en) | Techniques for setting up and executing draw calls | |
JP4493626B2 (ja) | マルチプロセッサシステム、ライブラリモジュール、および描画処理方法 | |
US20210019185A1 (en) | Compute task state encapsulation | |
JP2016521417A (ja) | 仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイス | |
CN101344870B (zh) | 一种复用性强的fifo控制模块及其管理内存的方法 | |
CN111684427A (zh) | 高速缓存控制感知的存储器控制器 | |
US8972693B2 (en) | Hardware managed allocation and deallocation evaluation circuit | |
US9436625B2 (en) | Approach for allocating virtual bank managers within a dynamic random access memory (DRAM) controller to physical banks within a DRAM | |
JP6739617B2 (ja) | メモリリクエスト情報に基づきキャッシュメモリのクロック速度/電圧を設定する装置及び方法 | |
EP3991131B1 (en) | Methods and apparatus for wave slot management | |
WO2007135532A2 (en) | Method and system for managing buffers pool | |
CN110007853A (zh) | 一种Nandflash命令处理方法、装置、终端及存储介质 | |
US9367487B1 (en) | Mitigating main crossbar load using dedicated connections for certain traffic types | |
CN116897581A (zh) | 计算任务调度装置、计算装置、计算任务调度方法和计算方法 | |
EP4111408A1 (en) | Fully utilized hardware in a multi-tenancy graphics processing unit | |
Garrido | Virtual 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |