划分用于多客户端计算系统的存储设备的制作方法

文档序号:6362373阅读:131来源:国知局
专利名称:划分用于多客户端计算系统的存储设备的制作方法
技术领域
本发明的实施方案总体上涉及划分用于多客户端计算系统的存储设备。
背景技术
由于对于不断增加的处理速度和处理量的要求,许多计算系统使用多个客户端设备(在本文中也称为“计算设备”),如中央处理器(CPU)、图形处理器(GPU)或其组合。在具有多个客户端设备(在本文中也称为“多客户端计算系统”)和一个统一存储器体系结构(UMA)的计算机系统中,每个客户端设备都共享对UMA中的一个或多个存储设备的存取。这种通信可经由从存储控制器排布至每个存储设备的数据总线和从存储控制器排布至多个客户端设备的公用系统总线而发生。对于多客户端计算系统来说,UMA通常相对于替代存储器体系结构来说产生较低系统成本和功率。成本降低是归因于较少的存储器芯片(例如,动态随机存取存储器(DRAM)设备)并且也归因于将计算设备与存储器芯片连接的较少数目的输入/输出(I/O)接口。这些因素也产生UMA的较低功率,因为与存储器芯片和I/O接口相关联的功率开销得以降低。另外,UMA中存储器接口之间的功耗数据复制操作得以消除,而其它存储器体系结构可能需要这些功耗操作。然而,存在与存储设备的恢复时间相关的低效率来源,其中具有UMA的多客户端计算系统中的恢复时间可能增加。恢复时段出现于一个或多个客户端设备向存储设备的同一存储体请求连续数据传送(在本文中也称为“存储体争用”)时。恢复时段是指在对存储设备的第一存取与即刻第二存取之间的由存储设备展示的延迟时间。也就是说,在存储设备存取数据时,在恢复时段期间没有数据可在数据总线或系统总线上传送,由此导致多客户端计算系统中的低效率。此外,当处理速度已在多客户端计算系统中随着时间的推移而不断增加时,典型的存储 设备的恢复时段一直未能跟上,从而导致不断增大的存储器性能差距。因此,需要用以减少或消除与多客户端计算系统中的存储体争用相关的低效率的方法和系统。

发明内容
本发明的实施方案包括一种用于存取具有多个客户端设备的计算机系统中的存储设备的方法。所述方法可包括以下步骤:将存储设备的一个或多个存储体划分成第一组存储体和第二组存储体;将第一组存储体内的第一多个存储单元分配给与第一客户端设备相关联的第一存储操作;将第二组存储体内的第二多个存储单元分配给与第二客户端设备相关联的第二存储操作;当第一客户端设备请求第一存储操作时,经由将第一客户端设备和第二客户端设备连接至存储设备的数据总线来存取第一组存储体,其中来自第一组存储体的第一存储器地址与第一存储操作相关联;当第二客户端设备请求第二存储操作时,经由所述数据总线来存取第二组存储体,其中来自第二组存储体的第二存储器地址与第二存储操作相关联;以及分别基于是否存取第一存储器地址或第二存储器地址以便执行第一存储操作或第二存储操作来在第一存储操作或第二存储操作期间向第一客户端设备或第二客户端设备提供对数据总线的控制。本发明的实施方案另外包括一种计算机程序产品,所述产品包括计算机可用介质,所述介质上记录有计算机程序逻辑,所述逻辑用于使得处理器能够存取具有多个客户端设备的计算机系统中的存储设备。所述计算机程序逻辑可包括以下内容:第一计算机可读程序代码,其使得处理器能够将存储设备的一个或多个存储体划分成第一组存储体和第二组存储体;第二计算机可读程序代码,其使得处理器能够将第一组存储体内的第一多个存储单元分配给与第一客户端设备相关联的第一存储操作;第三计算机可读程序代码,其使得处理器能够将第二组存储体内的第二多个存储单元分配给与第二客户端设备相关联的第二存储操作;第四计算机可读程序代码,其使得处理器能够在第一客户端设备请求第一存储操作时,经由将第一客户端设备和第二客户端设备连接至存储设备的数据总线来存取第一组存储体,其中来自第一组存储体的第一存储器地址与第一存储操作相关联;第五计算机可读程序代码,其使得处理器能够在第二客户端设备请求第二存储操作时,经由数据总线来存取第二组存储体,其中来自第二组存储体的第二存储器地址与第二存储操作相关联;以及,第六计算机可读程序代码,其使得处理器能够分别基于是否存取第一存储器地址或第二存储器地址以便执行第一存储操作或第二存储操作来在第一存储操作或第二存储操作期间向第一客户端设备或第二客户端设备提供对数据总线的控制。本发明的实施方案还包括一种计算机系统。所述计算机系统可包括第一客户端设备、第二客户端设备、存储设备和存储控制器。存储设备可包括被划分成第一组存储体和第二组存储体的一个或多个存储体。第一组存储体内的第一多个存储单元可被分配给与第一客户端设备相关联的第一存储操作。同样地,第二组存储体内的第二多个存储单元可被分配给与第二客户端设备相关 联的第二存储操作。此外,存储控制器可被配置来执行以下功能:当第一客户端设备请求第一存储操作时,经由将第一客户端设备和第二客户端设备连接至存储设备的数据总线来控制第一客户端设备与第一组存储体之间的存取,其中来自第一组存储体的第一存储器地址与第一存储操作相关联;当第二客户端设备请求第二存储操作时,经由所述数据总线来控制第二客户端设备与第二组存储体之间的存取,其中来自第二组存储体的第二存储器地址与第二存储操作相关联;以及,分别基于是否存取第一存储器地址或第二存储器地址以便执行第一存储操作或第二存储操作来在第一存储操作或第二存储操作期间向第一客户端设备或第二客户端设备提供对数据总线的控制。本发明的其它特征和优势以及本发明的各种实施方案的结构和操作在下文中参照附图来详细描述。应注意,本发明不限于本文描述的具体实施方案。在本文中只是出于说明性目的来呈现这些实施方案。本领域技术人员将基于本文中所包含的教义而显而易知额外的实施方案。


并入本文中并且形成本说明书的一部分的附图示出本发明的实施方案,并且与描述一起进一步用来解释本发明的原理并使得本领域技术人员能够实施和使用本发明。图1是具有统一存储器体系结构(UMA)的多客户端计算系统的一个实施方案的图解。图2是存储控制器的一个实施方案的图解。图3是具有经过划分的存储体的存储设备的一个实施方案的图解。图4是存储调度器执行的CPU和GPU相关存储请求的一个示例交错布置的图解。图5是存取多客户端计算系统中的存储设备的方法的一个实施方案的图解。图6是可实施本发明的实施方案的示例计算机系统的图解。
具体实施例方式以下详细描述参看示出与本发明一致的示例性实施方案的附图。其它实施方案也是可能的,并且在本发明的精神和范围内可对实施方案进行修改。因此,详细描述不意图限制本发明。事实上,本发明的范围是由附加的权利要求书来界定。本领域技术人 员将显而易知的是,如下所述,本发明可按附图中示出的软件、硬件、固件和/或实体的许多不同实施方案来实施。因此,在给出本文提供的详细程度的情况下,在描述本发明的实施方案的操作行为时应理解,这些实施方案的修改和变化形式也是可能的。图1是具有统一存储器体系结构(UMA)的多客户端计算系统100的一个实施方案的图解。多客户端计算系统100包括第一计算设备110、第二计算设备120、存储控制器130和存储设备140。第一计算设备110和第二计算设备120经由系统总线150以通信方式连接至存储控制器130。另外,存储控制器130经由数据总线160以通信方式连接至存储设备140。本领域技术人员将认识到,具有UMA的多客户端计算系统100示出了所述系统中所包含的设备的抽象视图。举例来说,关于存储设备140,本领域技术人员将认识到UMA可被布置成“单列”配置,其中存储设备140可代表一行存储设备(例如,DRAM设备)。此外,关于存储设备140,本领域技术人员也将认识到,UMA可被布置成“多列”配置,其中存储设备140可代表附接至数据总线160的多行存储设备。在单列和多列配置中,存储控制器130可被配置来控制对存储设备的存储体的存取。单列和多列配置的益处尤其是可实现在计算设备110与120之间划分存储体的灵活性。基于本文的描述,本领域技术人员将认识到,多客户端计算系统100可包括两个以上的计算设备、一个以上的存储控制器、一个以上的存储设备或其组合。多客户端计算系统100的这些不同配置都在本文描述的实施方案的范围和精神内。然而,为了便于解释,本文包含的实施方案将在图1描绘的系统体系结构的情形中进行描述。在一个实施方案中,计算设备110和120中的每一个可为例如但不限于中央处理器(CPU)、图形处理器(GPU)、专用集成电路(ASIC)控制器、其它类似类型的处理单元或其组合。计算设备110和120被配置来执行指令并且完成与多客户端计算系统100相关联的操作。举例来说,多客户端计算系统100可被配置来渲染并且显示图形。多客户端计算系统100可包括CPU(例如,计算设备110)和GPU(例如,计算设备120),其中GPU可被配置来渲染二维和三维图形并且CPU可被配置来协调所渲染的图形在显示设备(未在图1中展示)上的显示。当执行指令和完成与多客户端计算系统100相关联的操作时,计算设备110和120可经由存储控制器130来存取存储设备140中所存储的信息。图2是存储控制器130的一个实施方案的图解。存储控制器130包括第一存储体判优器21(^第二存储体判优器210i和存储调度器220。在一个实施方案中,第一存储体判优器21(^被配置来将对存储设备(例如,图1的存储设备140)的第一组存储体的请求分类。以类似方式,第二存储体判优器210i被配置来将对存储设备(例如,图1的存储设备140)的第二组存储体的请求分类。如本领域技术人员理解,第一存储体判优器21(^和第二存储体判优器21(^被配置来将来自计算设备(例如,计算设备110和120)的存储请求(例如,读取和写入操作)按优先级排序。来自计算设备110的一组存储器地址可被分配给第一组存储体,从而导致由第一存储体判优器21(^来处理。同样地,来自计算设备120的一组存储器地址可被分配给第二组存储体,从而导致由第二存储体判优器210i来处理。参看图2,存储调度器220被配置来处理来自第一存储体判优器21(^和第二存储体判优器210i的经过分类的存储请求。在一个实施方案中,存储调度器220以优化读取和写入效率并且最大化图1的数据总线160上的带宽的方式循环地处理经过分类的存储请求。在一个实施方案中,数据总线160具有预定总线宽度,其中存储设备140与计算设备110和120之间的数据传送使用数据总线160的整个总线宽度。图2的存储调度器220可将与存储设备140中的存储体的冲突减少到最低限度,这是通过对存储请求进行分类、重新排序和群聚以避免同一存储体中的不同行的背对背(back-to-back)请求。在一个实施方案中,存储调度器220可基于进行请求的计算设备来将其对经过分类的存储请求的处理按优先级排序。举例来说,存储调度器220可处理来自第一存储体判优器21(^的经过分类的存储请求(例如,对应于来自计算设备110的一组地址请求),然后处理经过分类的存储请求(例如,对应于来自计算设备120的一组地址请求),或反之亦然。如本领域技术人员理解,存储调度器220的输出被处理以产生经由图1的数据总线160向存储设备140发送读取和写入请求所必要的地址、命令和控制信号。对应于读取和写入存储请求的地址、命令和控制信号的产生为本领域技术人员已知的。参看图1,根据本发明的一个实施方案,存储设备140是动态随机存取存储器(DRAM)设备。存储设备140被划分成第一组存储体和第二组存储体。第一组存储体中的一个或多个存储单元被分配给与计算设备110的操作相关联的第一多个存储缓冲器。同样地,第二组存储体中的一个或多个存储单元被分配给与计算设备120的操作相关联的第二多个存储缓冲器。出于简化和解释目的,以下论述假定存储设备140被划分成两组存储体一第一组存储体和第二组存储体。然而,基于本文的描述,本领域技术人员将认识到,存储设备140可被划分成两组以上的存储体(例如,三组存储体、四组存储体、五组存储体等),其中每一组存储体可被分配给特定计算设备。举例来说,如果存储设备140被划分成三组存储体,那么一个存储体可被分配给计算设备110,一个存储体可被分配给计算设备120,并且第三存储体可被分配给第三计算设备(未在图1的多客户端计算系统100中描绘)。图3是具有第一组存储体310和第二组存储体320的存储设备140的一个实施方案的图解。如图3描绘,存储设备140含有8个存储体,其中4个存储体被分配给第一组存储体310 (例如,存储体O至3)并且4 个存储体被分配给第二组存储体320 (例如,存储体4至7)。基于本文的描述,本领域技术人员将认识到,存储设备140可含有多于或少于8个存储体(例如,4和16个存储体),并且存储设备140的存储体可被划分成不同布置,例如但不限于,6个存储体被分配给第一组存储体310并且2个存储体被分配给第二组存储体320。第一组存储体310对应于下组地址并且第二组存储体320对应于上组地址。举例来说,如果存储设备140是具有8个存储体的两千兆字节(GB)存储设备,那么对应于O至IGB的存储器地址被分配给第一组存储体310并且对应于I至2GB的存储器地址被分配给第二组存储体320。基于本文的描述,本领域技术人员将认识到,存储设备140可具有小于或大于2GB的存储器容量。存储设备140的这些其它存储器容量在本文描述的实施方案的精神和范围内。第一组存储体310与计算设备110的操作相关联。同样地,第二组存储体320与计算设备320的操作相关联。举例来说,如本领域技术人员将理解,当在由计算设备(例如,计算设备110和120)执行的操作或过程之间移动数据时,通常使用存储缓冲器。如以上提及,计算设备110可为CPU,其中第一组存储体310被分配给在CPU计算设备110执行操作中使用的存储缓冲器。执行延时敏感CPU指令代码所需要的存储缓冲器可被映射到第一组存储体310中的一个或多个存储单元。将延时敏感CPU指令代码映射到第一组存储体310的益处尤其在于,可在计算设备110与120之间减少或避免存储体争用问题。计算设备120可为GPU,其中第二组存储体320被分配给在GPU计算设备120执行操作中使用的存储缓冲器。执行图形操作所需要的帧存储缓冲器可被映射到第二组存储体320中的一个或多个存储单元。由于存储设备140的一个或多个存储器区被专用于GPU操作,因此第二组存储体320的益 处尤其在于,可在计算设备110与120之间减少或避免存储体争用问题。如上文关于图2所描述,第一存储体判优器21(^可具有由计算设备110分配并且指向图3的第一组存储体310的地址。在计算设备110是CPU的以上实施例中,根据本发明的一个实施方案,计算设备110的判优可使用例如但不限于预测性页面开启策略和地址预取的技术来优化以便有效地执行延时敏感CPU指令代码。同样地,第二存储体判优器210i可具有由计算设备120分配并且指向图3的第二组存储体320的地址。在计算设备120是GPU的以上实施例中,根据本发明的一个实施方案,计算设备120的线程可针对最大带宽来加以优化。一旦第一存储体判优器21(^将用于来自计算设备110和120的存储请求的判优线程中的每一个分类,图2的存储调度器220便处理经过分类的存储请求。相对于以上实施例,其中计算设备110是CPU并且计算设备120是GPU,可通过在GPU相关存储请求之前处理CPU相关存储请求来优化调度器220。根据本发明的一个实施方案,这个过程是可能的,因为与GPU性能相比,CPU性能通常对存储器延迟更敏感。在此,存储调度器220向计算设备110提供对数据总线160的控制,以使得与CPU相关存储请求相关联的数据传送优先于与GPU相关存储请求相关联的数据传送。在另一个实施方案中,GPU相关存储请求(例如,来自图1的计算设备120)可在(PU相关存储请求(例如,来自计算设备110)之前和/或之后交错。图4是存储调度器220执行的CPU和GPU相关存储请求的示例交错布置400的图解。在交错布置400中,如果在处理GPU相关存储请求(例如,存储请求序列410)的同时发送CPU相关存储请求(例如,存储请求序列420),那么存储调度器220可被配置来在数据总线160上停止与GPU相关存储请求相关的数据传送而促进与CPU相关存储请求相关的数据传送。存储调度器220可被配置来在发出CPU相关存储请求之后立即在数据总线160上继续与GPU相关存储请求相关的数据传送。所产生的CPU和GPU相关存储请求两者的交错布置在图4的交错序列430中描绘。关于图4的交错序列430,这是可如何在将CPU相关存储请求交错至GPU相关存储请求流中的意义上来优化CPU和GPU相关存储请求的实施例。因此,CPU相关存储请求以最小延时来处理,并且GPU相关存储请求流被中断持续服务CPU相关存储请求所必要的最小时间。不存在由于存储体冲突而引起的开销,因为保证CPU和GPU相关存储请求流不彼此冲突。相对于计算设备110是CPU并且计算设备120是GPU的实施例来说,用于与计算设备110相关联的所有CPU操作的存储缓冲器可被分配给第一组存储体310中的一个或多个存储单元。同样地,用于与计算设备120相关联的所有GPU操作的存储缓冲器可被分配给第二组存储体320中的一个或多个存储单元。或者,根据本发明的一个实施方案,用于CPU操作的存储缓冲器和用于GPU操作的存储缓冲器可分别被分配给第一组存储体310和第二组存储体320两者中的一个或多个存储单元。举例来说,用于延时敏感CPU指令代码的存储缓冲器可被分配给第一组存储体310中的一个或多个存储单元,并且用于非延时敏感CPU操作的存储缓冲器可被分配给第二组存储体320中的一个或多个存储单元。对于在计算设备(例如,计算设备110与计算设备120)之间共享的数据来说,共享的存储器地址可被分配给第一组存储体310或第二组存储体320中的一个或多个存储单元。在这种情况下,来自两个计算设备的存储请求将在单一存储体判优器(例如,第一存储体判优器21(^或第二存储体判优器`210J中进行判优。与对于每个计算设备执行的独立判优相比,这个由单一存储体判优器进行的判优可产生性能影响。然而,只要共享数据在总存储器流量中占低比例,共享数据分配就可产生每个计算设备的单独存储体判优器(例如,与计算设备110相关联的第一存储体判优器21(^以及与计算设备120相关联的第二存储体判优器210D所实现的总性能增益的极少减小。鉴于图1的具有UMA的多客户端计算系统100的上述实施方案,使用分配给多客户端计算系统100中的每个客户端设备的专用存储器分区(例如,第一组存储体310和第二组存储体320)来实现许多益处。举例来说,可分离存储设备140的存储体,并且可分配用于计算设备110和120的单独存储体。以此方式,可实现存储体页面策略的集中调整以便满足计算设备110和120的个别需要。这会导致每个存储请求的较少存储体冲突。进而,这可在多客户端计算系统100中导致性能增益和/或功耗节约。在另一个实施例中,由于计算设备110与120之间的减少的或零存储体争用,可更好地预测延时。由于提前关闭另一个计算设备试图开启的存储体,因此可在多客户端计算系统100中在没有显著带宽性能损失的情况下实现此增强的预测。也就是说,多客户端计算系统通常以总系统带宽为代价来关闭较低优先级计算设备(例如,GPU)的存储体,以便服务较高优先级低延时的计算设备(例如,CPU)。在上述实施方案中,分配给用于计算设备110的存储缓冲器的存储体不会干扰分配给用于计算设备120的存储缓冲器的存储体。在又一个实施例中,多客户端计算系统的上述实施方案的另一个益处是易扩缩性。随着多客户端计算系统100中的计算设备的数目和存储设备140中的存储体的数目增力口,可简单地扩缩多客户端计算系统100。扩缩可通过适当地将存储设备140划分成分配给每个计算设备的具有一个或多个存储体的多个组来完成。举例来说,如本领域技术人员应理解,DRAM存储体增长已经从4个存储体增长至8个存储体、16个存储体,并且继续增长。当客户端设备的数目增加时,这些存储体可适当地被划分并且分配给多客户端计算系统100中的每个计算设备。图5是用于存取多客户端计算系统中的存储设备的方法500的一个实施方案的图解。方法500可使用例如但不限于图1的多客户端计算系统100来进行。在步骤510中,存储设备的一个或多个存储体被划分成第一组存储体和第二组存储体。在一个实施方案中,存储设备是具有上半部多个存储体(例如,图3的存储体O至3)和下半部多个存储体(例如,图3的存储体4至7)的DRAM设备。划分存储设备的一个或多个存储体可包括将第一组存储体与DRAM设备中的上半部多个存储体关联(例如,映射)以及将第二组存储体与DRAM设备中的下半部存储体关联(例如,映射)。在步骤520中,将第一组存储体内的第一多个存储单元分配给与第一客户端设备(例如,图1的计算设备110)相关联的存储操作。分配第一多个存储单元包括将第一组存储体内的一个或多个物理地址空间映射至与第一客户端设备(例如,图3的第一组存储体310)相关联的相应存储操作。举例来说,如果存储设备是具有8个存储体的2GB DRAM设备,那么可将4个存储体分配给第一组存储体,其中对应于O至IGB的存储器地址可与这4个存储体相关联(例如,映射到其所述存储体)。在步骤530中, 将第二组存储体内的第二多个存储单元分配给与第二客户端设备(例如,图1的计算设备120)相关联的存储操作。分配第二多个存储单元包括将第二组存储体内的一个或多个物理地址空间映射至与第二客户端设备(例如,图3的第二组存储体320)相关联的相应存储操作。举例来说,相对于存储设备是具有8个存储体的2GB DRAM设备的实施例来说,然后可将4个存储体分配给(例如,映射到)第二组存储体。在此,对应于I至2GB的存储器地址可与这4个存储体相关联(例如,映射到所述存储体)。在步骤540中,当第一客户端设备请求第一存储操作时,存取第一组存储体,其中来自第一组存储体的第一存储器地址与第一存储操作相关联。可经由将第一客户端设备和第二客户端设备连接至存储设备的数据总线(例如,图1的数据总线160)来存取第一组存储体。所述数据总线具有预定总线宽度,其中第一客户端设备或第二客户端设备与存储设备之间的数据传送使用数据总线的整个总线宽度。在步骤550中,当第二客户端设备请求第二存储操作时,存取第二组存储体,其中来自第二组存储体的第二存储器地址与第二存储操作相关联。类似于步骤540,可经由数据总线来存取第二组存储体。在步骤560中,分别基于是否存取第一存储器地址或第二存储器地址以便执行第一或第二存储操作来在第一存储操作或第二存储操作期间向第一客户端设备或第二客户端设备提供对数据总线的控制。如果第一存储操作请求在第二存储操作请求之后发生并且如果需要存取第一存储器地址以便执行第一存储操作,那么停止第二客户端设备对数据总线的控制以促进第一客户端设备对数据总线的控制。根据本发明的一个实施方案,可在第一存储操作完成之后重新建立第二客户端设备对数据总线的控制。本发明的各种方面可用软件、固件、硬件或其组合来实施。图6是示例计算机系统600的图解,其中本发明的实施方案或其部分可被实施为计算机可读代码。举例来说,图5的流程图500所示出的方法可在系统600中实施。本发明的各种实施方案按照这个示例计算机系统600来描述。在阅读此描述之后,对本领域技术人员来说变得显而易知的是,如何使用其它计算机系统和/或计算机体系结构来实施本发明的实施方案。应当指出的是,本发明的各种实施方案的模拟、合成和/或制造可部分地经由使用计算机可读代码来完成,所述代码包括一般编程语言(如C或C++)、例如Verilog HDL、VHDUAltera HDL(AHDL)等硬件描述语言(HDL),或其它可供使用的编程和/或示意性捕获工具(如电路捕获工具)。这种计算机可读代码可安置于任何已知计算机可用介质中,所述介质包括半导体、磁盘、光盘(如⑶-ROM、DVD-ROM)。因此,代码可经由包括因特网在内的通信网络来传输。应理解,由如上所述的系统和技术完成的功能和/或提供的结构可在核心(如GPU核心)中表示,所述核心以程序代码来实现并且可作为产生集成电路的一部分来转化成硬件。计算机系统600包括一个或多个处理器,如处理器604。处理器604可为专用或通用处理器。处理器604连接至通信基础设施606 (例如,总线或网络)。计算机系统600还包括主存储器1608,优选地,随机存取存储器(RAM),并且还可包括辅助存储器610。辅助存储器610可包括例如硬盘驱动器612、可拆换存储驱动器614和/或存储棒。可拆换存储驱动器614可包括软盘驱动器、磁带驱动器、光盘驱动器、闪速存储器等。可拆换存储驱动器614以众所周知的方式读取和/或写入可拆换存储单元618。可拆换存储单元618可包括软盘、磁带、光盘等,其由可拆换存储驱动器614读取和写入。如本领域技术人员将认识到,可拆换存储单元618包括计算机可用存储介质,所述介质中存储有计算机软件和/或数据。在替代实行方案中,辅助存储器610可包括用于允许计算机程序或其它指令加载至计算机系统600中的其它类似设备。这些设备可包括例如可拆换存储单元622和接口 620。这些设备的实例可包括程序盒和盒式接口(例如在视频游戏设备中所见的那些接口)、可拆换存储器芯片(例如,EPROM或PR0M)和相关联插口,以及允许软件和数据从可拆换存储单元622传送至计算机系统600的其它可拆换存储单元622和接口 620。计算机系统600还可包括通信接口 624。通信接口 624允许软件和数据在计算机系统600与外部设备之间进行传送。通信接口 624可包括调制解调器、网络接口(例如以太网卡)、通信端口、PCMCIA插槽和卡等。经由通信接口 624传送的软件和数据呈信号形式,所述信号可为能够由通信接口 624接收的电子、电磁、光学或其它信号。这些信号经由通信路径626提供至通信接口 624。通信路径626载运信号并且可使用电线或电缆、光纤、电话线、蜂窝式电话链路、RF链路或其它通信信道来实施。在本文件中,术语“计算机程序介质”和“计算机可用介质”用于总体上指代如可拆换存储单元618 、可拆换存储单元622和安装在硬盘驱动器612中的硬盘等介质。计算机程序介质和计算机可用介质还可指代存储器,如主存储器608和辅助存储器610,其可为存储器半导体(例如,DRAM等)。这些计算机程序产品向计算机系统600提供软件。计算机程序(也称为计算机控制逻辑)存储在主存储器608和/或辅助存储器610中。计算机程序还可经由通信接口 624来接收。这些计算机程序在执行时使得计算机系统600能够实施如本文论述的本发明的实施方案。具体来说,所述计算机程序在执行时使得处理器604能够实施本发明的实施方案的过程,如以上论述的图5的流程图500所示出的方法中的步骤。因此,这些计算机程序代表计算机系统600的控制器。在本发明的实施方案使用软件来实施时,软件可存储在计算机程序产品中并且使用可拆换存储驱动器614、接口620、硬盘驱动器612或通信接口 624来加载至计算机系统600中。本发明的实施方案还针对于计算机程序产品,包括存储在任何计算机可用介质上的软件。这类软件当在一个或多个数据处理设备中执行时致使数据处理设备如本文描述那样来操作。本发明的实施方案使用现在或将来知道的任何计算机可用或可读介质。计算机可用介质的实例包括但不限于主要存储设备(例如,任何类型的随机存取存储器)、次要存储设备(例如,硬盘驱动器、软盘、CD R0M、ZIP盘、磁带、磁性存储设备、光学存储设备、MEMS、纳米技术存储设备等),以及通信介质(例如,有线和无线通信网络、局域网、广域网、内部网等)。虽然上文已经描述了本发明的各种实施方案,但是应理解,其仅为了举例而提供,并且不具有限制性。本领域技术人员将理解其中可做出形式和细节上的各种变化而不背离如附加的权利要求书中界定的本发明的精神和范围。应理解,本发明不限于这些实施例。本发明适用于如本文描述那样来操作的任何元件。因此,本发明的宽度和范围不应由任何上述示例性实施方案来限制,而是 应仅根据所附权利要求书及其等效物来界定。
权利要求
1.一种用于存取多客户端计算系统中的存储设备的方法,所述方法包括: 将所述存储设备的一个或多个存储体划分成第一组存储体和第二组存储体; 配置对所述第一组存储体内的第一多个存储单元的存取,其中所述第一多个存储单元与第一客户端设备的第一存储操作相关联;以及 配置对所述第二组存储体内的第二多个存储单元的存取,其中所述第二多个存储单元与第二客户端设备的第二存储操作相关联。
2.如权利要求1所述的方法,其进一步包括: 在所述第一客户端设备请求所述第一存储操作时,经由将所述第一客户端设备和所述第二客户端设备连接 至所述存储设备的数据总线来存取所述第一组存储体,其中来自所述第一组存储体的第一存储器地址与所述第一存储操作相关联; 在所述第二客户端设备请求所述第二存储操作时,经由所述数据总线来存取所述第二组存储体,其中来自所述第二组存储体的第二存储器地址与所述第二存储操作相关联;以及 分别基于是否存取所述第一存储器地址或所述第二存储器地址以便执行所述第一存储操作或所述第二存储操作来在所述第一存储操作或所述第二存储操作期间向所述第一客户端设备或所述第二客户端设备提供对所述数据总线的控制。
3.如权利要求2所述的方法,其中所述数据总线具有预定总线宽度,并且其中所述提供对所述数据总线的控制包括使用所述数据总线的整个总线宽度在所述第一客户端设备或所述第二客户端设备与所述存储设备之间传送数据。
4.如权利要求2所述的方法,其中所述提供对所述数据总线的控制包括在需要存取所述第一存储器地址以便执行所述第一存储操作的情况下,在所述第二客户端设备之前向所述第一客户端设备提供对所述数据总线的控制。
5.如权利要求2所述的方法,其中所述提供对所述数据总线的控制包括在所述第一存储操作请求在所述第二存储操作请求之后发生的情况下并且在需要存取所述第一存储器地址以便执行所述第一存储操作的情况下,将对所述数据总线的控制从所述第二客户端设备让与所述第一客户端设备。
6.如权利要求5所述的方法,其中所述让与对所述数据总线的控制包括在所述第一存储操作完成之后重新建立所述第二客户端设备的对所述数据总线的控制。
7.如权利要求1所述的方法,其中所述存储设备包括具有上半部多个存储体和下半部多个存储体的动态随机存取存储器(DRAM)设备,并且其中所述划分所述一个或多个存储体包括将所述第一组存储体与所述DRAM设备中的所述上半部多个存储体关联并且将所述第二组存储体与所述DRAM设备中的所述下半部存储体关联。
8.如权利要求1所述的方法,其中所述配置对所述第一多个存储单元的存取包括将所述第一组存储体内的一个或多个物理地址空间映射到与所述第一客户端设备相关联的一个或多个相应存储缓冲器。
9.如权利要求1所述的方法,其中所述配置对所述第二多个存储单元的存取包括将所述第二组存储体内的一个或多个物理地址空间映射到与所述第二客户端设备相关联的一个或多个相应存储缓冲器。
10.一种计算机程序产品,其包括计算机可用介质,所述介质上记录有计算机程序逻辑,所述逻辑在由一个或多个处理器执行时存取具有多个客户端设备的计算机系统中的存储设备,所述计算机程序逻辑包括: 第一计算机可读程序代码,其使得处理器能够将所述存储设备的一个或多个存储体划分成第一组存储体和第二组存储体; 第二计算机可读程序代码,其使得处理器能够配置对所述第一组存储体内的第一多个存储单元的存取,其中所述第一多个存储单元与第一客户端设备的第一存储操作相关联;以及 第三计算机可读程序代码,其使得处理器能够配置对所述第二组存储体内的第二多个存储单元的存取,其中所述第二多个存储单元与第二客户端设备的第二存储操作相关联。
11.如权利要求10所述的计算机程序产品,所述计算机程序逻辑进一步包括: 第四计算机可读程序代码,其使得处理器能够在所述第一客户端设备请求所述第一存储操作时,经由将所述第一客户端设备和所述第二客户端设备连接至所述存储设备的数据总线来存取所述第一组存储体,其中来自所述第一组存储体的第一存储器地址与所述第一存储操作相关联; 第五计算机可读程序代码,其使得处理器能够在所述第二客户端设备请求所述第二存储操作时,经由所述数据总线来存取所述第二组存储体,其中来自所述第二组存储体的第二存储器地址与所述第二存储操作相关联;以及 第六计算机可读程序代码,其使得处理器能够分别基于是否存取所述第一存储器地址或所述第二存储器地址以便执行所述第一或所述第二存储操作来在所述第一存储操作或所述第二存储操作期间向所述第一客户端设备或所述第二客户端设备提供对所述数据总线的控制。
12.如权利要求11所述的计算机程序产品,其中所述数据总线具有预定总线宽度,并且其中所述第六计算机可读程序代码包括: 第七计算机可读程序代码,其使得处理器能够使用所述数据总线的整个总线宽度在所述第一客户端设备或所述第二客户端设备与所述存储设备之间传送数据。
13.如权利要求12所述的计算机程序产品,其中所述第六计算机可读程序代码包括: 第七计算机可读程序代码,其使得处理器能够在需要存取所述第一存储器地址以便执行所述第一存储操作的情况下,在所述第二客户端设备之前向所述第一客户端设备提供对所述数据总线的控制。
14.如权利要求12所述的计算机程序产品,其中所述第六计算机可读程序代码包括: 第七计算机可读程序代码,其使得处理器能够在所述第一存储操作请求在所述第二存储操作请求之后发生的情况下并且在需要存取所述第一存储器地址以便执行所述第一存储操作的情况下,将对所述数据总线的控制从所述第二客户端设备让与所述第一客户端设备。
15.如权利要求14所述的计算机程序产品,其中所述第七计算机可读程序代码包括: 第八计算机可读程序代码,其使得处理器能够在所述第一存储操作完成之后重新建立所述第二客户端设备的对所述数据总线的控制。
16.如权利要求10所述的计算机程序产品,其中所述存储设备包括具有上半部多个存储体和下半部多个存储体的动态随机存取存储器(DRAM)设备,并且其中所述第一计算机可读程序代码包括: 第七计算机可读程序代码,其使得处理器能够将所述第一组存储体与所述DRAM设备中的所述上部半多个存储体关联并且将所述第二组存储体与所述DRAM设备中的所述下半部存储体关联。
17.如权利要求10所述的计算机程序产品,其中所述第二计算机可读程序代码包括:第七计算机可读程序代码,其使得处理器能够将所述第一组存储体内的一个或多个物理地址空间映射到与所述第一客户端设备相关联的一个或多个相应存储缓冲器。
18.如权利要求10所述的计算机程序产品,其中所述第三计算机可读程序代码包括:第七计算机可读程序代码,其使得处理器能够将所述第二组存储体内的一个或多个物理地址空间映射到与所述第二客户端设备相关联的一个或多个相应存储缓冲器。
19.一种计算机系统,其包括: 第一客户端设备; 第二客户端设备; 具有一个或多个存储体的存储设备,所述存储体被划分成第一组存储体和第二组存储体,其中: 所述第一组存储体内的第一多个存储单元被配置来由与所述第一客户端设备相关联的第一存储操作来存取;并且 所述第二组存储体内的第二多个存储单元被配置来由与所述第二客户端设备相关联的第二存储操作来存取;以及 存储控制器,其被配置来控制所述第一客户端设备与所述第一多个存储单元之间的存取并且控制所述第二客户端设备与所述第二多个存储单元之间的存取。
20.如权利要求19所述的计算系统,其中所述第一客户端设备和所述第二客户端设备包括中央处理器、图形处理器和专用集成电路中的至少一个。
21.如权利要求19所述的计算系统,其中所述存储设备包括具有上半部多个存储体和下半部多个存储体的动态随机存取存储器(DRAM)设备,所述第一组存储体与所述DRAM设备中的所述上半部多个存储体相关联并且所述第二组存储体与所述DRAM设备中的所述下半部存储体相关联。
22.如权利要求19所述的计算系统,其中所述存储设备包括所述第一组存储体内的一个或多个物理地址空间,所述空间被映射到与所述第一客户端设备相关联的一个或多个相应存储操作。
23.如权利要求19所述的计算系统,其中所述存储设备包括所述第二组存储体内的一个或多个物理地址空间,所述空间被映射到与所述第二客户端设备相关联的一个或多个相应存储操作。
24.如权利要求19所述的计算系统,其中所述存储控制器被配置来: 在所述第一客户端设备请求所述第一存储操作时,经由将所述第一和第二客户端设备连接至所述存储设备的数据总线来存取所述第一组存储体,其中来自所述第一组存储体的第一存储器地址与所述第一存储操作相关联;在所述第二客户端设备请求所述第二存储操作时,经由所述数据总线来存取所述第二组存储体,其中来自所述第二组存`储体的第二存储器地址与所述第二存储操作相关联;以及 分别基于是否存取所述第一存储器地址或所述第二存储器地址以便执行所述第一存储操作或所述第二存储操作来在所述第一存储操作或所述第二存储操作期间向所述第一客户端设备或所述第二客户端设备提供对所述数据总线的控制
25.如权利要求24所述的计算系统,其中所述数据总线具有预定总线宽度,并且其中所述存储控制器被配置来控制使用所述数据总线的整个总线宽度的所述第一客户端设备或所述第二客户端设备与所述存储设备之间的数据传送。
26.如权利要求24所述的计算系统,其中所述存储控制器被配置来在需要存取所述第一存储器地址以便执行所述第一存储操作的情况下,在所述第二客户端设备之前向所述第一客户端设备提供对所述数据总线的控制。
27.如权利要求24所述的计算系统,其中所述存储控制器被配置来在所述第一存储操作请求在所述第二存储操作请求之后发生的情况下并且在需要存取所述第一存储器地址以便执行所述第一存储操作的情况下,将对所述数据总线的控制从所述第二客户端设备让与所述第一客户端设备。
28.如权利要求27所述的计算系统,其中所述存储控制器被配置来在所述第一存储操作完成之后重新建立所述第 二客户端设备的对所述数据总线的控制。
全文摘要
本发明提供一种用于存取存储设备的方法、计算机程序产品和系统。举例来说,所述方法可包括将所述存储设备的一个或多个存储体划分成第一组存储体和第二组存储体。所述方法还可将所述第一组存储体内的第一多个存储单元分配给第一客户端设备的第一存储操作,并且将所述第二组存储体内的第二多个存储单元分配给第二客户端设备的第二存储操作。这种存储器分配可允许在所述第一客户端设备和所述第二客户端设备分别请求第一存储操作和第二存储操作时存取所述第一组存储体和第二组存储体。此外,还可基于是否存取第一存储器地址或第二存储器地址以便执行所述第一存储操作或第二存储操作来控制对所述第一客户端设备或所述第二客户端设备与所述存储设备之间的数据总线的存取。
文档编号G06F13/16GK103229157SQ201180056983
公开日2013年7月31日 申请日期2011年11月29日 优先权日2010年12月2日
发明者托马斯·J·吉布尼, 帕特里克·J·柯兰 申请人:超威半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1