专利名称:在计算系统中以多个存储通道对存储缓冲器的分配的制作方法
技术领域:
本发明的实施方案大体上涉及在计算系统中将多个存储通道分配给一个或多个存储缓冲器。
背景技术:
由于对提高处理速度和量的需求,许多计算机系统采用多个客户机装置(例如,计算装置)。在具有多个客户机装置的典型计算机系统中,每个客户机装置可经由系统总线与多个存储装置进行通信。系统总线低效的原因是与在客户机装置请求来自存储装置的相同存储体的连续数据传送(本文也称作“存储体争用”)时所述存储装置的还原时段有关。还原时段指的是在对存储装置的第一次存取与紧接的第二次存取之间通过所述存储装置展现的延迟时间。虽然存储装置存取数据,但是在还原时段期间不会在系统上传送数据,因此导致系统总线的低效。由于一个客户机装置仅可使用系统总线一次,所以一种用于改进总线效率的方法涉及将多个存储装置内的存储地址交错在所述系统总线上。当存储地址交错在系统总线上时,连续的存储器存储位置(例如,具有连续地址的存储位置)放置在单独的存储装置中。通过将连续的存储位置放置在单独的存储装置中,受给定存储装置的还原时段的影响可减小且因此存储体争用可减小。然而,在具有多个客户机装置的计算机系统中,交错多个存储装置内的存储地址无法导致系统总线的最佳使用。特定来说,系统总线通常进入判优状态以判定哪些客户机装置可存取所述系统总线和多个存储装置内的交错的存储地址。例如,判优状态可允许第一客户机装置在第二客户机装置之前存取系统总线和多个存储装置内的连续存储位置。然而,判优状态无法保证第二客户机装置将立即存取与第一客户机装置相同的连续存储位置,因此影响交错的存储架构的效益(例如,存储体争用的减小)。需要一种用于减小或消除具有多个客户机装置的计算机系统中的存储体争用的方法和系统。发明概述本发明的实施方案包括一种用于在计算系统中将多个存储通道分配给一个或多个存储缓冲器的方法。所述方法可包括以下步骤:使第一存储缓冲器与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道;使第二存储缓冲器与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道;使第一序列识别符和第二序列识别符分别与所述第一存储缓冲器和所述第二存储缓冲器相关联;和基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。所述方法还可包括以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作。类似地,所述方法可包括以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同。
此外,本发明的实施方案包括一种包括其上记录有计算机程序逻辑的计算机可用介质的计算机程序产品,所述计算机程序逻辑用于使处理器能够在计算系统中将多个存储通道分配给一个或多个存储缓冲器。所述计算机程序逻辑可包括以下项:第一计算机可读程序代码,其使处理器能够将第一存储缓冲器分配到第一多个存储体,其中所述第一多个存储体跨越第一组一个或多个存储通道;第二计算机可读程序代码,其使处理器能够将第二存储缓冲器分配到第二多个存储体,其中所述第二多个存储体跨越第二组一个或多个存储通道;和第三计算机可读程序代码,其使处理器能够使第一序列识别符和第二序列识别符分别与所述第一存储缓冲器和所述第二存储缓冲器相关联;和第四计算机可读程序代码,其使处理器能够基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。所述计算机程序逻辑还可包括以下项:第五计算机可读程序代码,其使处理器能够以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作;和第六计算机可读程序代码,其使处理器能够以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同。本发明的实施方案还包括一种计算系统。所述计算系统可包括第一客户机装置、第二客户机装置、多个存储通道和存储控制器。所述多个存储通道可包括多个存储装置(例如,动态随机存取存储(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的存储体O至3)的动态随机存取存储(DRAM)装置。基于本文描述,有关技术领域技术人员将明白存储装置140、150、160和170可是其它类型的存储装置,诸如(例如且不限于)静态随机存取存储装置(SRAM)、静态DRAM、快速存储装置或其组合。在实施方案中,一个或多个存储缓冲器分配到多个存储体或与多个存储体相关联,其中所述多个存储体可跨越一个或多个存储通道。图2是跨越多个存储通道140、150、160和170的多个存储缓冲器210、220、230、240和250的实施方案的图。例如,存储缓冲器210跨越存储通道140、150、160和170中的存储体O至3,存储缓冲器220跨越存储通道170中的存储体O至3,存储缓冲器230和240跨越存储通道160中的存储体O至3,并且存储缓冲器250跨越存储通道140和150中的存储体O至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的计算装置Iio和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的存储体O至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的参考,其中所述参考是分配的存储缓冲器的定址/存取序列的指示符。例如,在返回到上述的视频解码流水线实例中,序列识别符‘I’可指派给存储缓冲器250并且用于视频解码流水线的静态屏幕状态操作。序列识别符‘2’可指派给存储缓冲器240并且用于视频解码器的内部操作。序列识别符‘3’可指派给存储缓冲器230并且用于视频解码器的写入操作和来自一个或多个图块的读取操作。此外,序列识别符‘4’可指派给存储缓冲器220并且用于视频解码器的内部操作。
对于视频解码流水线操作的一部分,存储控制器130和存储装置140至170可按特定序列定址/存取存储缓冲器220、230、240和250。存储缓冲器220、230、240和250的序列识别符可用作特定序列的参数。例如,如果特定序列是‘I’、‘2’和‘4’,那么首先将定址/存取存储缓冲器250,其次将定址/存取存储缓冲器240,且最后将定址/存取存储缓冲器220。在另一实例中,如果特定序列是‘I’、‘3’和‘4’,那么首先将定址/存取存储缓冲器250,其次将定址/存取存储缓冲器230,且最后将定址/存取存储缓冲器220。在这两个实例中,特定序列‘2’和‘3’不会接连发生。因此,不仅减小或避免存储通道160中的存储体争用问题,而且还可利用多客户机计算系统100中的存储通道的全带宽。在存储器管理单元310不具有关于计算装置110和120的工作量预期的信息的示例中,根据本发明的实施方案,默认存储缓冲器排列可用于与计算装置110和120相关联的操作。在实施方案中,默认存储缓冲器排列可跨越所有存储体并且跨越所有存储通道。这个存储缓冲器排列的实例示为跨越所有存储体O至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性能通常对存储延迟更敏感。在此,根据本发明的实施方案,调度器220提供图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))或其它可用编程和/或图形捕捉工具(诸如电路捕捉工具))的使用部分完成本发明的各个实施方案的模拟、合成和/或制造。这个计算机可读代码可安置在任何已知的计算机可用介质(包括半导体、磁盘、光盘(诸如⑶-ROM、DVD-ROM))中。照此,可通过通信网络(包括互联网)传输所述代码。应了解由上文描述的系统和技术完成的功能和/或其提供的结构可表示以程序代码具体实施且可转换成硬件而作为集成电路产生的部分的内核(诸如GPU内核)。计算机系统600包括一个或多个处理器,诸如处理器604。处理器604可以是专用或通用处理器。处理器604连接到通信基础结构606 (例如,总线或网络)。计算机系统600还包括主存储器608(优选随机存取存储器(RAM)),并且还可以包括辅助存储器610。辅助存储器610可包括(例如)硬盘驱动器612、可移式存储装置驱动器614和/或记忆棒。可移式存储装置驱动器614可包括软盘驱动器、磁带驱动器、光盘驱动器、快速存储器等等。可移式存储装置驱动器614以熟知方式从可移式存储单元618读取和/或写入到其。可移式存储单元618可包括由可移式存储装置驱动器614读取或写入到其的软盘、磁带、光盘等。如有关技术领域技术人员将明白可移式存储单元618包括具有计算机软件和/或数据存储在其中的计算机可用存储介质。在替代实施方案中,辅助存储器610可包括用于允许计算机程序或其它指令加载到计算机系统600中的其它类似装置。这些装置可包括例如可移式存储单元622和接口620。这些装置的实例可包括允许软件和数据从可移式存储单元622传送到计算机系统600的程序盒式存储器和盒式存储器接口(诸如存在于视频游戏装置中的程序盒式存储器和盒式存储器接口)、可移式存储器芯片(例如,EPROM或PR0M)和相关联套接口以及其它可移式存储单元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中。本发明的实施方案还针对计算机程序产品,包括存储在任何计算机可用介质上的软件。这个软件在一个或多个数据处理装置中执行时导致数据处理装置如本文描述般操作。本发明的实施方案采用目前或将来为人所知的任何计算机可用或可读介质。计算机可用介质的实例包括但不限于主要存储装置(例如,任何类型的随机存取存储器)、辅助存储装置(例如,硬盘驱动器、软盘、⑶ROMS、ZIP磁盘、磁带、磁存储装置、光学存储装置、MEMS、纳米技术存储装置等)和通信介质(例如,有线和无线通信网络、局域网、广域网、内联网
-rf* ) O虽然上文已描述本发明的各个实施方案,但是应了解其已仅通过举例且非以限制之义呈现。有关技术领域技术人员将了解可在不脱离如随附权利要求书中定义的本发明的精神和范围的情况下进行形式和详情的不同变化。应了解本发明不限于这些实例。本发明适用于如本文描述般操作的任何元件。因此,本发明的宽度和范围不应受限于任何上文描述的示例性实施方案,但是仅应根据下文权利要求书和其等效物定义。
权利要求
1.一种用于使计算系统中的一个或多个存储缓冲器与多个存储通道相关联的方法,所述方法包括: 使第一存储缓冲器和第一序列识别符与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道; 使第二存储缓冲器和第二序列识别符与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道;和 基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。
2.根据权利要求1所述的方法,其还包括: 以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作; 以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同;和 在分别执行所述第一存储操作和所述第二存储操作之后,取消分配来自其各自的第一多个存储体和第二多个存储体的所述第一存储缓冲器和所述第二存储缓冲器。
3.根据权利要求1所述的方法,其中使所述第一存储缓冲器相关联包括将所述第一存储缓冲器分配到所述第一多个存储体。
4.根据权利要求1所述的方法,其中使所述第二存储缓冲器相关联包括将所述第二存储缓冲器分配到所述第二多个存储体,所述第二多个存储体与所述第一多个存储体不同。`
5.根据权利要求1所述的方法,其中使所述第二存储缓冲器相关联包括将所述第二存储缓冲器分配到所述第二多个存储体,所述第二多个存储体与所述第一多个存储体相同。
6.根据权利要求1所述的方法,其中存取所述第一存储缓冲器和所述第二存储缓冲器包括按序列存取所述第一存储缓冲器和所述第二存储缓冲器以避免存储体争用和利用所述多个存储通道的全带宽。
7.一种包括其上记录有计算机程序逻辑的计算机可用介质的计算机程序产品,所述计算机程序逻辑在由一个或多个处理器执行时使计算系统中的一个或多个存储缓冲器与多个存储通道相关联,所述计算机程序逻辑包括: 第一计算机可读程序代码,其使处理器能够使第一存储缓冲器和第一序列识别符与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道; 第二计算机可读程序代码,其使处理器能够使第二存储缓冲器和第二序列识别符与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道;和 第三计算机可读程序代码,其使处理器能够基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。
8.根据权利要求7所述的计算机程序产品,其中所述计算机程序逻辑还包括: 第四计算机可读程序代码,其使处理器能够以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作; 第五计算机可读程序代码,其使处理器能够以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同;和 第六计算机可读程序代码,其使处理器能够在分别执行所述第一存储操作和所述第二存储操作之后,取消分配来自其各自的第一多个存储体和第二多个存储体的所述第一存储缓冲器和所述第二存储缓冲器。
9.根据权利要求7所述的计算机程序产品,其中所述第一计算机可读程序代码包括: 第四计算机可读程序代码,其使处理器能够将所述第一存储缓冲器分配到所述第一多个存储体。
10.根据权利要求7所述的计算机程序产品,其中所述第二计算机可读程序代码包括: 第四计算机可读程序代码,其使处理器能够将所述第二存储缓冲器分配到所述第二多个存储体,所述第二多个存储体与所述第一多个存储体不同。
11.根据权利要求7所述的计算机程序产品,其中所述第二计算机可读程序代码包括: 第四计算机可读程序代码,其使处理器能够将所述第二存储缓冲器分配到所述第二多个存储体,所述第二多个存储体与所述第一多个存储体相同。
12.根据权利要求7所述的计算机程序产品,其中所述第三计算机可读程序代码包括: 第四计算机可读程序代码,其使处理器能够按序列存取所述第一存储缓冲器和所述第二存储缓冲器以避免存储体争用和利用所述多个存储通道的全带宽。
13.一 种计算系统,其包括: 第一客户机装置; 第二客户机装置; 多个存储通道,其中所述多个存储通道包括各自的多个存储装置;和存储控制器,其被构造来将所述第一客户机装置和所述第二客户机装置通信地连接到所述多个存储通道且被构造来: 将第一存储缓冲器和第一序列识别符分配到第一多个存储体,其中所述第一多个存储体跨越第一组一个或多个存储通道; 将第二存储缓冲器和第二序列识别符分配到第二多个存储体,其中所述第二多个存储体跨越第二组一个或多个存储通道;和 基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。
14.根据权利要求13所述的计算系统,其还包括: 多个数据总线,其对应所述多个存储装置,其中所述多个数据总线被构造来在所述存储控制器与所述各自的多个存储装置之间传送数据。
15.根据权利要求14所述的计算系统,其中所述存储控制器被构造来使用所述多个数据总线的整个带宽控制所述第一客户机装置与所述多个存储装置之间或所述第二客户机装置与所述多个存储装置之间的数据传送。
16.根据权利要求13所述的计算系统,其中所述第一客户机装置和所述第二客户机装置包括中央处理单元、图形处理单元和专用集成电路的至少一个。
17.根据权利要求13所述的计算系统,其中所述多个存储装置的每个包括动态随机存取存储(DRAM)装置。
18.根据权利要求13所述的计算系统,其中所述存储控制器被构造来: 以第一操作频率执行与所述第一存储缓冲器相关联的第一存储操作; 以第二操作频率执行与所述第二存储缓冲器相关联的第二存储操作,其中所述第一操作频率与所述第二操作频率不同;和在分别执行所述第一存储操作和所述第二存储操作之后,取消分配来自其各自的第一多个存储体和第二多个存储体的所述第一存储缓冲器和所述第二存储缓冲器。
19.根据权利要求13所述的计算系统,其中所述存储控制器被构造来将所述第二存储缓冲器分配到所述第二多个存储体,所述第二多个存储体与所述第一多个存储体不同。
20.根据权利要求13所述的计算系统,其中所述存储控制器被构造来将所述第二存储缓冲器分配到所述第二多个存储体,所述第二多个存储体与所述第一多个存储体相同。
21.根据权利要求13所述的计算系统,其中所述存储控制器被构造来按序列存取所述第一存储缓冲器和所述第二存储缓冲器以避免存储体争用和利用所述多个存储通道的全带宽。
22.根据权利要求13所述的计算系统,其中所述存储控制器被构造来使所述第一存储缓冲器和所述第二存储缓冲器分别与所述第一多个存储体和所述第二多个存储体相关联。
全文摘要
本发明提供了一种用于使计算系统中的一个或多个存储缓冲器与多个存储通道相关联的方法、计算机程序产品和系统。所述方法可包括使第一存储缓冲器与第一多个存储体相关联,其中所述第一多个存储体跨越第一组一个或多个存储通道。类似地,所述方法可包括使第二存储缓冲器与第二多个存储体相关联,其中所述第二多个存储体跨越第二组一个或多个存储通道。所述方法还可包括使第一序列识别符和第二序列识别符分别与所述第一存储缓冲器和所述第二存储缓冲器相关联。此外,所述方法可包括基于所述第一序列识别符和所述第二序列识别符存取所述第一存储缓冲器和所述第二存储缓冲器。
文档编号G06F13/16GK103109283SQ201180044281
公开日2013年5月15日 申请日期2011年9月12日 优先权日2010年9月14日
发明者格雷格·萨多夫斯基, 菲利普·J·罗杰斯 申请人:超威半导体公司