CN114398300B - 方法、集成电路及计算机可读存储介质 - Google Patents

方法、集成电路及计算机可读存储介质 Download PDF

Info

Publication number
CN114398300B
CN114398300B CN202111162115.7A CN202111162115A CN114398300B CN 114398300 B CN114398300 B CN 114398300B CN 202111162115 A CN202111162115 A CN 202111162115A CN 114398300 B CN114398300 B CN 114398300B
Authority
CN
China
Prior art keywords
memory
memory interface
interface controller
narrowband
mode
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
Application number
CN202111162115.7A
Other languages
English (en)
Other versions
CN114398300A (zh
Inventor
王雨豪
薛菲
韩伟
牛迪民
段立德
郑宏忠
李双辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Damo Institute Hangzhou Technology Co Ltd
Original Assignee
Alibaba Damo Institute Hangzhou Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Damo Institute Hangzhou Technology Co Ltd filed Critical Alibaba Damo Institute Hangzhou Technology Co Ltd
Publication of CN114398300A publication Critical patent/CN114398300A/zh
Application granted granted Critical
Publication of CN114398300B publication Critical patent/CN114398300B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)

Abstract

本申请提供了一种方法、集成电路及计算机可读存储介质。其中,计算系统的双模式存储器接口,可配置来向计算系统的不同处理器呈现具有不同等级带宽容量的存储器接口。存储器接口控制器的模式切换控制器可至少基于写入配置寄存器的仲裁规则,在窄带模式和宽带模式之间切换存储器接口控制器。在每种模式中,存储器接口控制器可根据第一总线标准禁用存储器接口控制器的多个窄带存储器接口,或者根据第二总线标准禁用存储器接口控制器的宽带存储器接口。存储器接口控制器根据第二总线标准将计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元,或者根据第一总线标准将计算系统的系统存储单元虚拟化为虚拟窄带存储单元。

Description

方法、集成电路及计算机可读存储介质
技术领域
本公开涉及计算机领域,具体而言,涉及一种方法、集成电路及计算机可读存储介质。
背景技术
现代计算系统越来越多地被设计为处理专用任务,在系统中实现专用任务的处理器通常被称为加速器。和通用处理器相比,加速器被配置为更高效地执行某些操作,例如算数运算。通用处理器实施通用指令集架构(instruction set architectures,ISAs)以将处理器配置为执行各种计算机可执行指令,而专用处理器(例如加速器)可以实施上述指令集架构中的一些子集或实施专用指令集架构。
计算系统的存储器提供了高效执行指令所必需的暂存空间,处理器执行指令时需要在处理器与一个或多个系统的存储器之间传输数据。这样的数据传输发生在各个总线连接上,每根总线的连接都具有固定的数字带宽容量,来表征该总线上的最大数据传输速率。如果处理器到存储器的数据吞吐率超过了连接处理器和存储器的总线的带宽容量,则可能导致瓶颈(bottleneck),即在总线的带宽容量被填满时暂停指令执行。
在实践中,不同处理器架构的不同设计导致不同处理器(例如加速器)的数据传输需求不同。最大化数据总线的带宽容量以防止瓶颈并不是适用于所有计算系统甚至同一计算系统中的所有处理器的一刀切解决方案。在一些处理器的数据吞吐率较小的情况下,总线连接可能未被充分利用甚至闲置,导致计算系统的电力浪费。因此,在设计包含新型和异构的处理器(例如加速器)的计算系统时,不仅需要避免数据传输瓶颈,还需要充分利用总线连接。
发明内容
为解决上述问题,本公开实施例提供一种方法、集成电路及计算机可读存储介质。
根据本公开实施例的第一方面,提供一种方法,包括:
通过计算系统的存储器接口控制器的模式切换控制器,将所述存储器接口控制器切换至第一模式,所述第一模式选自至少一种窄带模式和宽带模式;以及
通过所述存储器接口控制器禁用以下中的一个:
根据第一总线标准的所述存储器接口控制器的多个窄带存储器接口的一个,或根据第二总线标准的所述存储器接口控制器的宽带存储器接口。
可选地,还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准将所述计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准将所述计算系统的所述系统存储单元虚拟化为虚拟窄带存储单元;
其中,所述存储器接口控制器通过根据多主、多从的第一总线标准构建的存储器互连在虚拟窄带存储单元和多个存储用户之间传输数据。
可选地,还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
可选地,还包括:将一个或多个仲裁规则和/或配置值写入所述存储器接口控制器的配置寄存器,
其中,所述模式切换控制器至少基于写入所述配置寄存器的所述仲裁规则将所述存储器接口控制器切换到所述第一模式。
可选地,还包括:通过所述模式切换控制器将所述存储器接口控制器切换至第二模式,所述第二模式选自至少一种窄带模式和宽带模式,以及
通过所述存储器接口控制器禁用以下的另一个:根据所述第一总线标准的所述存储器接口控制器的所述多个窄带存储器接口,或根据所述第二总线标准的所述存储器接口控制器的所述宽带存储器接口。
根据本公开实施例的第二方面,提供一种集成电路,包括:
计算系统的存储器接口控制器,所述存储器接口控制器包括:
模式切换控制器,被配置为将所述存储器接口控制器切换到选自至少一种窄带模式和宽带模式中的第一模式;
并被配置为禁用以下中的一个:根据第一总线标准的所述存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的所述存储器接口控制器的宽带存储器接口。
可选地,所述存储器接口控制器还被配置为:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准将所述计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准将所述计算系统的所述系统存储单元虚拟化为虚拟窄带存储单元;
其中,所述存储器接口控制器被配置通过根据多主、多从第一总线标准构建的存储器互连在所述虚拟窄带存储单元和所述多个存储用户之间传输数据。
可选地,所述存储器接口控制器还被配置为:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
可选地,所述存储器接口控制器还包括配置寄存器,所述配置寄存器具有写入其中的一个或多个仲裁规则和/或配置值,
其中,所述模式切换控制器被配置为至少基于写入所述配置寄存器的仲裁规则将所述存储器接口控制器切换到所述第一模式。
可选地,所述模式切换控制器还被配置为将所述存储器接口控制器切换至第二模式,所述第二模式选自至少一种所述窄带模式和所述宽带模式;以及
所述存储器接口控制器进一步被配置为禁用以下中的另一个:根据所述第一总线标准的所述存储器接口控制器的所述多个窄带存储器接口,或根据所述第二总线标准的所述存储器接口控制器的所述宽带存储器接口。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,存储可由一个或多个处理器执行的计算机可读指令,当由所述一个或多个处理器执行时,使所述一个或多个处理器执行以下操作,包括:
通过计算系统的存储器接口控制器的模式切换控制器,将所述存储器接口控制器切换至第一模式,所述第一模式选自至少一种窄带模式和宽带模式;以及
通过所述存储器接口控制器禁用以下中的一个:
根据第一总线标准的所述存储器接口控制器的多个窄带存储器接口,或
根据第二总线标准的所述存储器接口控制器的宽带存储器接口。
可选地,所述操作还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准将所述计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准将所述计算系统的所述系统存储单元虚拟化为虚拟窄带存储单元。
可选地,所述操作还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输;
其中,所述存储器接口控制器通过根据多主、多从第一总线标准构建的存储器互连在所述虚拟窄带存储单元和所述多个存储用户之间传输数据。
可选地,所述操作还包括:通过所述模式切换控制器将所述存储器接口控制器切换至第二模式,所述第二模式选自至少一种窄带模式和宽带模式;以及
通过所述存储器接口控制器禁用以下中的另一个:根据所述第一总线标准的所述存储器接口控制器的所述多个窄带存储器接口,或根据所述第二总线标准的所述存储器接口控制器的所述宽带存储器接口。
本公开实施例提供的方法,通过存储器接口控制器的模式切换控制器在至少两个模式之间进行切换,以达到避免数据传输瓶颈,并充分利用总线连接的目的。
附图说明
具体描述将与附图一起描述。在附图中,附图标记中最左边的数字表示其第一次出现的附图。在不同的附图中,使用相同的附图标记表示相同/相似的元件/特征。
图1示出了根据本公开示例性的实施例提供的被配置为用于任意通用或专用计算的系统的系统架构;
图2示出了根据本公开示例性的实施例提供的处理器和存储器互连的架构图;
图3A示出了从每个存储用户角度来看的架构图;
图3B示出了从宽带存储用户角度来看的架构图;
图4A示出了运行在窄带模式下的存储器接口控制器;
图4B示出了运行在宽带模式下的存储器接口控制器;
图5A和5B示出了根据本公开示例性的实施例提供的存储器接口模式切换方法的流程图。
具体实施方式
本文讨论的系统和方法涉及存储器接口,并且更具体地实现了一种计算系统的双模式存储器接口,其可配置为向计算系统的不同处理器提供具有不同等级带宽容量的存储器接口。
图1示出了根据本公开示例性的实施例提供的被配置为用于任意通用或专用计算的系统100的系统架构。
本文描述的技术和机制可以由系统100的多个示例以及由任何其他计算设备、系统和/或环境来实现。系统100可以是任何种类的计算设,例如个人计算机、个人平板电脑、移动设备、可操作以执行矩阵算术计算的其他此类计算设备。图1所示的系统100仅是系统的一个示例,并非旨在对用于执行上述过程和/或程序的任何计算设备的使用范围或功能性的任何限制。适用于实施例的其他众所周知的计算设备、系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、游戏机、可编程消费电子产品、网络PC、小型计算机、大型计算机、包括上述任何系统或设备的分布式计算环境、使用现场可编程门阵列(Field Programmable Gate Arrays,FPGAs)的各种实现、专用集成电路(Application Specific Integrated Circuits,ASICs)和/或类似装置。
在根据本公开示例性的实施例提供的系统100内,如图1所示的元件以及下文描述的元件可被实现为物理集成到片上系统的模块和电路。
根据本公开示例性的实施例提供的系统100可以包括一个或多个通用处理器102,可以包括一个或多个专用处理器104,或者可以包括一个或多个通用处理器102和一个或多个专用处理器104。通用处理器102和/或专用处理器104可以执行存储如下文描述的计算机可读存储介质上的一个或多个指令,以使通用处理器102和/或专用处理器104执行各种功能。通用处理器102可以是被计算机可执行指令集配置以执行各种功能的计算设备,例如中央处理器(central processing unit,CPU)。专用处理器104可以是具有用于加快专用数学计算任务的硬件或软件的计算设备。例如,专用处理器104可以是加速器,例如是神经网络处理单元(Neural Network Processing Units,NPUs)、图形处理单元(GraphicsProcessing Units,GPUs)、张量处理单元(Tensor Processing Units,TPUs)、使用现场可编程门阵列(Field Programmable Gate Arrays,FPGAs)的各种实现、专用集成电路(Application Specific Integrated Circuits,ASICs)和/或类似装置。为了促进专用计算,专用处理器104可以实现例如进行数学运算(例如矩阵运算)的可操作引擎。
根据本公开示例性的实施例,系统100可以包括多个通用处理器102和多个专用处理器104。如下文所描述,每个这样的通用处理器102和专用处理器104在下文中被称为系统存储器106的“存储用户”。
系统100还可以包括经由存储器接口控制器108通信耦合到通用处理器102和/或专用处理器104的系统存储器106。取决于系统100的实际配置和类型,系统存储器106可以是易失性的(例如随机存取存储器(Random Access Memory,RAM))、非易失性的(例如只读存储器(Read-Only Memory,ROM)、闪存、微型硬盘驱动器、存储卡和类似的存储器)存储器或者它们的某种组合。
构成系统存储器106的每个存储器设备在下文中被称为“系统存储单元”。除非另有说明,否则在下文描述的各种存储器资源实质上是可互换的。
此外,每个通用处理器102和/或专用处理器104可以拥有其自己的本地存储器(未示出),其可以存储程序模块、程序数据和/或更多操作系统。
存储器接口控制器108可以包括一个或多根总线连接,用于在通用处理器102和系统存储器106之间传输数据,和/或在专用处理器104和系统存储器106之间传输数据,和/或在通用处理器102和专用处理器104之间传输数据。此外,数据总线110可以在通用处理器102和专用处理器之间传输数据。存储器接口控制器108和/或数据总线110可以根据例如外围组件互连快速(Peripheral Component Interconnect Express,PCIe)总线标准、高级可扩展接口(Advanced eXtensible Interface,AXI)总线标准,以及本领域技术人员所知的符合随机存取存储器(例如双倍数据速率同步动态随机存取存储器(Double Data RateSynchronous Dynamic Random-Access Memory,DDR SDRAM))的某类总线标准进行操作。如下文所述,存储器接口控制器108尤其可以实现多于一种的总线标准。如本领域技术人员所知,某些这样的接口适合作为处理器与其他处理器之间的接口;某些这样的接口适合作为处理器和存储器之间的接口;以及某些这样的接口适合作为处理器和持久存储器之间的接口。
根据本公开示例性的实施例,存储器接口控制器108进一步被实现为双模式存储器接口。双模式存储器接口在至少两种模式下有效,其中至少第一模式可以被称为窄带模式,并且至少第二模式可以被称为宽带模式。在任一模式中,存储器接口控制器108可操作地将一个或多个虚拟输入/输出(input/output,I/O)接口提供给如上所述的任何一个、部分或所有存储用户。存储器接口控制器108还可操作地对存储用户隐藏单独的系统存储单元和一些系统存储单元的单独存储器接口,例如这些系统存储单元的任何物理接口。替代地,通过一个或多个虚拟I/O接口,存储用户可对由与一个或多个虚拟I/O接口对应的存储器接口提供的一个或多个虚拟存储单元执行I/O操作。每个虚拟存储单元可以与多个系统存储单元中的一个对应,也可以不一一对应;例如,对虚拟存储单元的一系列存储器地址的读或写请求可以映射到对一个或多个系统存储单元的存储器地址的读或写请求。
系统100还可以包括物理I/O接口(未示出)和通信模块(未示出),以允许系统100通过网络与其他系统和设备通信,例如如上所述的服务器主机。网络可以包括因特网(Internet)、有线媒体(例如有线网络(wired network)或直线直连(direct-wiredconnections))以及无线媒体(例如声学(acoustic)、射频(radio frequency,RF)、红外线和其他无线媒体)。
本文描述的方法中的一些或所有操作可以通过执行存储在计算机可读存储介质上的计算机可读指令来执行,如下文所定义。在说明书和权利要求中使用的术语“计算机可读指令”或“计算机可执行指令”包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品及其组合等。
计算机可读存储介质可以包括易失性存储器(例如随机存取存储器(RandomAccess Memory,RAM))和/或非易失性存储器(例如只读存储器(Read-Only Memory,ROM)、闪存等)和/或如上所述的持久存储器。计算机可读存储介质还可以包括附加的可移动存储和/或不可移动存储,不限于闪存、磁存储、光存储和/或磁带存储,它们可以提供对计算机可读指令、数据结构、程序模块等的非易失性存储。
非暂态(non-transient)计算机可读存储介质作为计算机可读介质的一个示例。计算机可读介质包括至少两种类型的计算机可读介质,即计算机可读存储介质和通信介质。计算机可读存储介质包括以任何过程或技术实现的易失性和非易失性、可移动和不可移动介质,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息。计算机可读存储介质包括但不限于相变存储器(Phase Change Memory,PRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)、动态随机存取存储器(Dynamic Random-AccessMemory,DRAM)、其他类型的随机存取存储器(Random-Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、非易失性存储器(Nonvolatile Memory,NVM)、闪存或其他存储技术,光盘只读存储器(Compact Disk Read only Memory,CD-ROM)、数字通用磁盘(Digital Versatile Disks,DVD)或其他光存储,盒式磁带、磁带、磁盘存储或其他磁存储设备,或任何其他用于存储计算设备可访问信息的非传输介质。相比之下,通信介质可以在调制数据信号(例如载波或其他传输机制)中包含计算机可读指令、数据结构、程序模块或其他数据。如本文所定义,计算机可读存储介质不包括通信介质。
存储在一个或多个非暂态计算机可读存储介质上的计算机可读指令在由一个或多个处理器执行时可执行本文所描述的操作。通常来说,计算机可读指令包括执行特定功能或实现特定抽象数据类型的规范(routines)、程序、对象、组件、数据结构等。操作的描述顺序不旨于限制,相反,可以以任何顺序和/或以并行方式组合任意数量的操作以实现流程。
因此,根据本公开示例性的实施例,作为存储用户的通用处理器102和专用处理器104可以通过虚拟I/O接口访问被虚拟化为虚拟存储单元的系统存储器106。根据本公开示例性的实施例,“虚拟化(Virtualization)”指由存储器接口控制器108将系统存储单元的存储器地址映射到虚拟存储单元的存储器地址的映射。这种架构设计的好处至少包括在具有不同等级带宽容量的不同I/O接口集合之间提供模式选择,这将在下文中更详细地描述。
图2示出了根据本公开示例性的实施例的处理器和存储器互连(processor-memory interconnections)的架构图。
处理器和存储器的互连系统200包括上述系统100的结构的子集,例如至少包括通用处理器102和专用处理器104(在此图中示为一定数量的存储用户202和宽带存储用户204)、系统存储器106(在此图中示为一定数量的系统存储单元206)和存储器接口控制器108(在此图中示为存储器接口控制器208)。
每个存储用户202可以是用以执行指令集架构(Instruction Set Architecture,ISA)中指令的任何通用处理器102或任何专用处理器104,其中,基于理论和/或经验确定,单个存储用户202执行的指令不会导致具有超过阈值的数据吞吐率的读操作和/或写操作。
宽带存储用户204可以是用以执行指令集架构中的指令的专用处理器104,其中,基于理论和/或经验确定,由单个存储用户204在某一时刻执行的指令会导致具有超过阈值的数据吞吐率的读操作和/或写操作。应当理解的是,虽然图2中仅示出了一个宽带存储用户204,但是系统100可以在多个专用处理器104中包括不止一个类似的宽带存储用户204。
根据本公开示例性的实施例,阈值可以是特定数据吞吐率,其定义了低数据吞吐率与高数据吞吐率之间的边界,低数据吞吐率可以由具有“窄”带宽容量的总线连接承载而不会使总线连接饱和,高数据吞吐率可以由具有“宽”带宽容量的总线连接承载,如果由具有“窄”带宽容量的总线连接承载高数据吞吐率将使总线连接饱和。存储用户202的数据吞吐率可能低于阈值,宽带存储用户204的数据吞吐率可能高于阈值。
例如,存储用户202可以是仅实现标量处理单元而非矢量处理单元的任何处理器,而宽带存储用户204可以是实现标量处理单元和矢量处理单元的组合的任何处理器。此外,在用于实现矢量处理单元的处理器中,由于存储用户具有特别高的数据吞吐率从而需要特别高的带宽,因此该处理器可能是算术逻辑单元(Arithmetic Logic Units,ALUs)和浮点单元(Floating-Point Units,FPU)的某种组合的处理器,其包括一些矢量浮点单元,而不是实现算术逻辑单元但不实现浮点单元的处理器。应当理解,存储用户202和宽带存储用户204之间的区别可以是如上的分类,但可替代地,也可以基于预期数据吞吐率或观察到的数据吞吐率从理论上和/或经验上确定分类。
进一步地如图2所示,每个存储用户202通过I/O接口210与存储器互连212连接。存储器互连212例如可以包括常规系统总线,其具有控制总线、地址总线和数据总线作为另外的组件。例如,控制总线、地址总线和数据总线可以分别是实现支持多主、多从总线连接的第一总线标准的接口(其中,多个存储用户,例如CPUs,可以发起读写信号),例如高级可扩展接口(AXI)。为了理解本公开的示例实施例的目的,控制总线、地址总线和数据总线可以被抽象为由存储器互连212示意的一公共元件。
存储器互连212还可以进一步连接到存储器接口控制器208的各个窄带虚拟存储器接口214。每个这样的窄带虚拟存储器接口214可以被配置为以与系统100的物理或虚拟系统存储单元的存储器接口相同的方式,从存储器互连212的控制总线、地址总线和数据总线传输数据,和向存储器互连212的控制总线、地址总线和数据总线传输数据。可以根据本公开示例性的实施例在架构上配置存储器互连212,以将来自每个存储用户202的读取和写入请求发送到每个窄带虚拟存储器接口214,并根据第一总线标准,在每个存储用户202和每个窄带虚拟存储器接口214之间传输数据。
因此,从每个存储用户202(如图3A的架构图中所示)的角度来看,存储用户202可以向每个窄带虚拟存储器接口214发送读取和写入请求。每个窄带虚拟存储器接口214作为窄带虚拟存储单元302的存储器接口提供给存储器互连212。这些窄带虚拟存储单元302如图3A所示,在图2中未示出。
进一步地如图2所示,宽带存储用户204通过I/O接口216与存储器接口控制器208的宽带虚拟存储器接口218连接。宽带虚拟存储器接口218被配置为以与系统100的物理或虚拟系统存储单元的存储器接口相同的方式,从I/O接口216传输数据和向I/O接口216传输数据。宽带虚拟存储器接口218例如可以是实现支持如上定义的高带宽容量的第二总线标准的接口,例如任何支持至少1024位带宽容量的标准。
根据本公开示例性的实施例,第一总线标准和第二总线标准可以是不同的总线标准,并且第一总线标准不需要支持如上定义的“宽”带宽容量。例如,第一总线标准可能只需要支持128位的带宽容量。
因此,从宽带存储用户204(如图3B的架构图中所示)的角度来看,宽带存储用户204可以向宽带虚拟存储器接口218发送读取和写入请求。宽带虚拟存储器接口218作为宽带虚拟存储单元304的存储器接口提供给宽带存储用户204。这些宽带虚拟存储单元304如图3B所示,在图2中未示出。
进一步地如图2所示,系统存储单元206均连接到存储器接口控制器208的公共存储器接口220。公共存储器接口220例如可以是实现符合随机存取存储器的总线标准的接口,例如DDR SDRAM。公共存储器接口220可以被配置将来自每个存储用户202和来自宽带存储用户204的读取和写入请求传送到每个系统存储单元206,在每个存储用户202和每个系统存储单元206之间传输数据,以及在宽带存储用户204和每个系统存储单元206之间传输数据,具体取决于模式切换控制器222(这将在下文描述)。
每个系统存储单元206可以是具有属于如上定义的窄范围内的带宽的存储器接口的存储器设备。通过为系统100提供窄带宽容量的存储单元,根据本公开示例性的实施例的存储器接口控制器208可以具有灵活性,该灵活性是将任意数量的窄带宽容量的系统存储单元连同宽带虚拟存储单元一起虚拟化,或者将任意数量的窄带宽容量的系统存储单元单独虚拟化为一个窄带虚拟存储单元,如下文所述。
进一步地如图2所示,存储器接口控制器208还包括模式切换控制器222、配置寄存器224和编程接口226。模式切换控制器222可以是被配置为执行存储器接口控制器208的至少两种操作模式的处理器,包括如上所述的窄带模式和宽带模式。配置寄存器224可以是用户可编程数字寄存器,其可以用作存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令将模式切换控制器222配置为执行所存储的指令。模式切换控制器222可以由存储在配置寄存器224上的指令配置以基于存储在配置寄存器224中的仲裁规则(arbitration rules)和/或配置值在窄带模式和宽带模式之间切换。此外,可以通过调用编程接口226来设置配置值。编程接口226例如可以是具有可调用命令的一个或多个应用编程接口(Application Programming Interfaces,APIs),这些命令使存储器接口控制器208设置配置寄存器224的配置值。后文将描述窄带模式和宽带模式之间的切换以及在窄带模式和宽带模式下工作的细节。
如图4A所示,存储器接口控制器208工作在窄带模式下时,可以根据上述第二总线标准,通过广播命令、消息、信号等禁止宽带虚拟存储器接口218连接到I/O接口216,并通过宽带虚拟存储器接口218来表明宽带虚拟存储器接口218正忙碌,以推迟未决的读或写请求等。可以根据第二总线标准将这些命令、消息等广播给宽带存储用户204。在此期间,宽带存储用户204可以根据第二总线标准将未决的读和/或写请求排队。存储器接口控制器208可以在切换到宽带模式时停止广播这样的命令、消息、信号等。
因此,当工作在窄带模式时,存储器接口控制器208可以将每个系统存储单元206中虚拟化为如图3A所示的窄带虚拟存储单元302。每个系统存储单元206可以根据第一总线标准通过存储器互连212虚拟互连到每个存储用户202,其中,每个存储用户202可以通过窄带虚拟存储器接口214利用存储器互连212向每个窄带虚拟存储单元302发送读写请求,并根据第一总线标准通过窄带虚拟存储器接口214与每个窄带虚拟存储单元302进行数据传输。
根据第一总线标准,每个存储用户202可以是主设备,且每个窄带虚拟存储单元302可以是由多主设备、多从设备的总线连接所限定的从设备。因此,第一总线标准可以使每个主设备能够通过存储器互连212向任何从设备发送读写请求并与其进行数据传输;并且第一总线标准可以使多个主设备可以通过存储器互连212并行地向多个相应的从设备发送和写入请求以及与多个相应的从设备进行数据传输。
如图4B所示,存储器接口控制器208工作在宽带模式下时,可以根据上述第一线标准,通过广播命令、消息、信号等禁止每个窄带虚拟存储器接口214连接到存储器互连212,并通过窄带虚拟存储器接口214来表明每个窄带虚拟存储器接口214正忙碌,以推迟未决的读写请求等。可以根据第一总线标准将这些命令、消息等广播给每个存储用户202。例如,根据本公开示例性的实施例,第一总线标准是AXI总线标准,可以根据第一总线标准向每个存储用户202广播“not_ready”信号。在此期间,每个存储用户202可以根据第二总线标准将未决读取和/或写入请求排队。存储器接口控制器208可以在切换到窄带模式时停止广播这样的命令、消息、信号等。
因此,当工作在宽带模式时,存储器接口控制器208可以将一些或所有系统存储单元206虚拟化为宽带虚拟存储单元304,如图3B所示。系统存储单元206可以通过第二总线标准虚拟互连到宽带存储用户204,其中,宽带存储用户204可以通过宽带虚拟存储器接口218向宽带虚拟存储单元304发送读写请求,并根据第二总线标准通过宽带虚拟存储器接口218与宽带虚拟存储单元304进行数据传输。
有效地,宽带虚拟存储器接口218的带宽容量可以等于窄带虚拟存储器接口214的带宽容量乘以虚拟化为宽带虚拟存储单元304的系统存储单元206的数量。例如,如果每个窄带虚拟存储器接口214具有128位的带宽容量,并且8个系统存储单元206将被虚拟化为宽带虚拟存储单元304,则宽带虚拟存储器接口218可以具有1024位的带宽容量。
图5A和5B示出了根据本公开示例性的实施例的存储器接口模式切换方法500的流程图。
在步骤502中,将一个或多个仲裁规则和/或配置值写入计算系统的存储器接口控制器的配置寄存器。
在上文中已经参考图1和图2对存储器接口控制器进行了大致描述。用户在操作运行配置寄存器的计算系统时,可以执行编译器来编译计算机可执行指令,编译器调用存储器接口控制器的编程接口,以使编译后的计算机可执行指令被写入到配置寄存器。可替代地,用户调用存储器接口控制器的编程接口,以根据存储器接口控制器的指令集架构,将手动编写的计算机可执行指令写入配置寄存器。计算机可执行指令可以包括仲裁规则、配置值等。
根据本公开示例性的实施例的仲裁规则,可以是本领域技术人员已知的用于在存储器控制器的多个主设备之间的共享总线访问的仲裁的任何总线仲裁规则,或者是适用于本领域技术人员已知的用于在存储器控制器的多个主设备之间的共享总线访问的仲裁的任何总线仲裁规则。仲裁规则可以将模式切换控制器配置为至少在存储器接口控制器的窄带模式和宽带模式之间切换,以使存储用户和宽带存储用户根据预定义的模式或行为轮流交替获得总线访问和存储器访问,如上文所述。通过这样的机制,每种类型的存储用户都可以得到至少部分时间的总线访问和存储器访问,从而没有一种类型的存储用户始终获得总线访问和存储器访问。仲裁规则可以通过配置值被进一步修改。
在步骤504中,存储器接口控制器的模式切换控制器至少基于写入配置寄存器的仲裁规则,将存储器接口控制器切换至第一模式,第一模式选自至少一种窄带模式和宽带模式。
例如,写入配置寄存器的仲裁规则可以配置模式切换控制器通过时间分区在窄带和宽带模式之间切换。总线访问时间和存储器访问时间可以被分区以提供多个时隙(timeslots),在每个时隙中一种类型的存储用户或另一种类型的存储用户获得总线访问和存储器访问。时间分区可以包括由系统存储单元的一个或多个存储设备的时钟频率定义的一定数量的工作周期。
又例如,写入配置寄存器的用户定义的配置值可以将模式切换控制器配置为以大致相等的工作周期切换窄带模式和宽带模式,从而存储用户约一半的时间获得总线访问和存储器访问,且宽带存储用户约一半的时间获得总线访问和存储器访问。
再例如,写入配置寄存器的用户定义的配置值可以将模式切换控制器配置为在较多工作周期切换到窄带模式,并在较少工作周期切换到宽带模式,以便优先考虑存储用户的总线访问和存储器访问,或者在较少工作周期切换到窄带模式,在较多工作周期切换到宽带模式,以便优先考虑宽带存储用户的总线访问和存储器访问。
在步骤506中,存储器接口控制器禁用以下中的一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或者根据第二总线标准的存储器接口控制器的宽带存储器接口。
在存储器接口控制器处于窄带模式的情况下,存储器接口控制器可以禁用宽带存储器接口。在存储器接口控制器处于宽带模式的情况下,存储器接口控制器可以禁用窄带存储器接口。因此,如上文所述,可以根据第一总线标准或第二总线标准通过广播命令、消息、信号等来执行禁用。
在步骤508中,在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准将计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元,在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准将计算系统的系统存储单元虚拟化为虚拟窄带存储单元。
当工作在窄带模式时,存储器接口控制器可以使计算系统中的每个存储用户能够利用窄带存储器接口与单独的窄带存储单元进行数据传输,这适配于存储用户的数据吞吐率并且避免了未充分利用。因此,利用这些存储单元和接口,可以避免计算系统的功耗浪费。
当工作在宽带模式时,存储器接口控制器可以使计算系统中的宽带存储用户能够利用虚拟宽带存储器接口,从而允许比实现在计算系统中的单个窄带存储器接口多几倍的吞吐量。这种虚拟宽带存储器接口有望适应宽带存储用户的数据吞吐率并避免了瓶颈。因此,可以有效地进行数据吞吐量密集型任务的计算,例如用于加速深度学习的矩阵算术。
在步骤510中,在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输,在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
数据传输可以通过存储器互连完成,其可以针对多主、多从总线标准(例如上文所述的AXI总线标准)进行构建,以对计算系统的多个存储用户提供服务,无需同时针对单主、单从总线标准进行构建来对计算系统的单个宽带存储用户提供服务。在缺乏双模式存储器接口控制器的情况下,这种单用途存储器互连的构建避免了服务两种类型的存储器用户的多用途存储器互连导致的制造复杂性。
在步骤512中,模式切换控制器至少基于仲裁规则将存储器接口控制器切换至第二模式,第二模式选自至少一种窄带模式和宽带模式。
在步骤514中,存储器接口控制器禁用以下中的另一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或者根据第二总线标准的存储器接口控制器的宽带存储器接口。
在步骤516中,在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准将计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元,在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准将计算系统的系统存储单元虚拟化为虚拟窄带存储单元。
在步骤518中,在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输,如果存储器接口控制器的宽带存储器接口被禁用,存储器接口控制器根据第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
计算系统继续执行任务的同时,上述步骤可以在步骤504到510和步骤512到518之间循环。两种类型的存储用户可以继续通过存储器接口控制器的两种不同模式来满足他们的数据吞吐率要求。
通常,两种不同模式之间的切换可以以任意频率发生,然而,为了避免模式切换过于频繁可能导致的性能问题,从处理器周期的角度来看,模式切换不应过于频繁。
通过以上技术方案,本公开提供了一种计算系统的双模式存储器接口,可配置为将具有不同等级带宽容量的存储器接口提供给计算系统的不同处理器。一个或多个仲裁规则和/或配置值被写入计算系统的存储器接口控制器的配置寄存器。存储器接口控制器的模式切换控制器,至少基于写入配置寄存器的仲裁规则,在选自至少一种窄带模式和宽带模式的第一模式和第二模式之间切换存储器接口控制器。在每种模式下,存储器接口控制器禁用以下中的一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的存储器接口控制器的宽带存储器接口。在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准将计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元。在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准将计算系统的系统存储单元虚拟化为虚拟窄带存储单元。在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输,在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
示例条款
A.一种方法,包括:通过计算系统的存储器接口控制器的模式切换控制器,将存储器接口控制器切换至第一模式,第一模式选自至少一种窄带模式和宽带模式;以及通过存储器接口控制器禁用以下中的一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的存储器接口控制器的宽带存储器接口。
B.如段落A所述的方法,还包括:在存储器接口控制器的多个窄带存储器接口被禁用的情况下,利用存储器接口控制器根据第二总线标准将计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及在存储器接口控制器的宽带存储器接口被禁用的情况下,利用存储器接口控制器根据第一总线标准将计算系统的系统存储单元虚拟化为虚拟窄带存储单元。
C.如段落A所述的方法,还包括:在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
D.如段落C所述的方法,其中,存储器接口控制器通过根据多主、多从的第一总线标准构建的存储器互连在虚拟窄带存储单元和多个存储用户之间传输数据。
E.如段落A所述的方法,还包括:将一个或多个仲裁规则和/或配置值写入存储器接口控制器的配置寄存器。
F.如段落E所述的方法,其中,模式切换控制器至少基于写入配置寄存器的仲裁规则将存储器接口控制器切换到第一模式。
G.如段落A所述的方法,还包括:通过模式切换控制器将存储器接口控制器切换至第二模式,第二模式选自至少一种窄带模式和宽带模式。
H.如段落G所述的方法,还包括:通过存储器接口控制器禁用以下中的另一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的存储器接口控制器的宽带存储器接口。
I.一种集成电路,包括:计算系统的存储器接口控制器,所述存储器接口控制器包括:模式切换控制器,被配置为将存储器接口控制器切换至第一模式,第一模式选自至少一种窄带模式和宽带模式;并被配置为禁用以下中的一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的存储器接口控制器的宽带存储器接口。
J.如段落I所述的集成电路,其中,存储器接口控制器还被配置为:在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准将计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准将计算系统的系统存储单元虚拟化为虚拟窄带存储单元。
K.如段落I所述的集成电路,其中,存储器接口控制器还被配置为:在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
L.如段落K所述的集成电路,其中,存储器接口控制器被配置为通过根据多主、多从第一总线标准构建的存储器互连在虚拟窄带存储单元和多个存储用户之间传输数据。
M.如段落I所述的集成电路,其中,存储器接口控制器还包括配置寄存器,所述配置寄存器具有写入其中的一个或多个仲裁规则和/或配置值。
N.如段落M所述的集成电路,其中,模式切换控制器被配置为至少基于写入配置寄存器的仲裁规则将存储器接口控制器切换到第一模式。
O.如段落I所述的集成电路,其中,模式切换控制器还被配置为将存储器接口控制器切换至第二模式,第二模式选自至少一种窄带模式和宽带模式。
P.如段落O所述的集成电路,其中,存储器接口控制器进一步被配置为禁用以下中的另一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的存储器接口控制器的宽带存储器接口。
Q.一种计算机可读存储介质,存储可由一个或多个处理器执行的计算机可读指令,当由一个或多个处理器执行时,使该一个或多个处理器执行以下操作,包括:通过计算系统的存储器接口控制器的模式切换控制器,将存储器接口控制器切换至第一模式,第一模式选自至少一种窄带模式和宽带模式;以及通过存储器接口控制器禁用以下中的一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的存储器接口控制器的宽带存储器接口。
R.如段落Q所述的计算机可读存储介质,其中,所述操作还包括:在存储器接口控制器的多个窄带存储器接口被禁用的情况下,利用存储器接口控制器根据第二总线标准将计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及在存储器接口控制器的宽带存储器接口被禁用的情况下,利用存储器接口控制器根据第一总线标准将计算系统的系统存储单元虚拟化为虚拟窄带存储单元。
S.如段落Q所述的计算机可读存储介质,其中,所述操作还包括:在存储器接口控制器的多个窄带存储器接口被禁用的情况下,存储器接口控制器根据第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;在存储器接口控制器的宽带存储器接口被禁用的情况下,存储器接口控制器根据第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
T.如段落S所述的计算机可读存储介质,其中,存储器接口控制器通过根据多主、多从第一总线标准构建的存储器互连在虚拟窄带存储单元和多个存储用户之间传输数据。
U.如段落Q所述的计算机可读存储介质,其中,所述操作还包括:将一个或多个仲裁规则和/或配置值写入存储器接口控制器的配置寄存器。
V.如段落U所述的计算机可读存储介质,其中,模式切换控制器至少基于写入配置寄存器的仲裁规则将存储器接口控制器切换到第一模式。
W.如段落Q所述的计算机可读存储介质,其中,所述操作还包括:通过模式切换控制器将存储器接口控制器切换至第二模式,第二模式选自至少一种窄带模式和宽带模式。
X.如段落W所述的计算机可读存储介质,其中,所述操作还包括:通过存储器接口控制器禁用以下中的另一个:根据第一总线标准的存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的存储器接口控制器的宽带存储器接口。
尽管已经以结构特征和/或方法动作的特定语言描述了主题,但是应当理解,本公开中定义的主题不一定限于上述特定的特征或动作。相反,上面描述的特定的特征和动作是以实现本公开的示例的形式被公开的。

Claims (14)

1.一种控制计算系统的方法,包括:
通过计算系统的存储器接口控制器的模式切换控制器,将所述存储器接口控制器切换至第一模式,所述第一模式选自至少一种窄带模式和宽带模式;以及
通过所述存储器接口控制器禁用以下中的一个:
根据第一总线标准的所述存储器接口控制器的多个窄带存储器接口,或
根据第二总线标准的所述存储器接口控制器的宽带存储器接口,
其中,所述禁用包括指示所述多个窄带存储器接口或所述宽带存储器接口忙碌,以推迟未决的读或写请求。
2.根据权利要求1所述的方法,还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准将所述计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准将所述计算系统的所述系统存储单元虚拟化为虚拟窄带存储单元;
其中,所述存储器接口控制器通过根据多主、多从的第一总线标准构建的存储器互连在虚拟窄带存储单元和多个存储用户之间传输数据。
3.根据权利要求2所述的方法,还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
4.根据权利要求1所述的方法,还包括:将一个或多个仲裁规则和/或配置值写入所述存储器接口控制器的配置寄存器,
其中,所述模式切换控制器至少基于写入所述配置寄存器的所述仲裁规则将所述存储器接口控制器切换到所述第一模式。
5.根据权利要求1所述的方法,还包括:通过所述模式切换控制器将所述存储器接口控制器切换至第二模式,所述第二模式选自至少一种窄带模式和宽带模式,以及
通过所述存储器接口控制器禁用以下的另一个:根据所述第一总线标准的所述存储器接口控制器的所述多个窄带存储器接口,或根据所述第二总线标准的所述存储器接口控制器的所述宽带存储器接口。
6.一种集成电路,包括:
计算系统的存储器接口控制器,所述存储器接口控制器包括:
模式切换控制器,被配置为将所述存储器接口控制器切换到选自至少一种窄带模式和宽带模式中的第一模式;
并被配置为禁用以下中的一个:根据第一总线标准的所述存储器接口控制器的多个窄带存储器接口,或根据第二总线标准的所述存储器接口控制器的宽带存储器接口,
其中,所述禁用包括指示所述多个窄带存储器接口或所述宽带存储器接口忙碌,以推迟未决的读或写请求。
7.根据权利要求6所述的集成电路,其中,所述存储器接口控制器还被配置为:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准将所述计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准将所述计算系统的所述系统存储单元虚拟化为虚拟窄带存储单元;
其中,所述存储器接口控制器被配置通过根据多主、多从第一总线标准构建的存储器互连在所述虚拟窄带存储单元和计算系统的多个存储用户之间传输数据。
8.根据权利要求6所述的集成电路,其中,所述存储器接口控制器还被配置为:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输。
9.根据权利要求6所述的集成电路,其中,所述存储器接口控制器还包括配置寄存器,所述配置寄存器具有写入其中的一个或多个仲裁规则和/或配置值,
其中,所述模式切换控制器被配置为至少基于写入所述配置寄存器的仲裁规则将所述存储器接口控制器切换到所述第一模式。
10.根据权利要求6所述的集成电路,其中,所述模式切换控制器还被配置为将所述存储器接口控制器切换至第二模式,所述第二模式选自至少一种所述窄带模式和所述宽带模式;以及
所述存储器接口控制器进一步被配置为禁用以下中的另一个:根据所述第一总线标准的所述存储器接口控制器的所述多个窄带存储器接口,或根据所述第二总线标准的所述存储器接口控制器的所述宽带存储器接口。
11.一种计算机可读存储介质,存储可由一个或多个处理器执行的计算机可读指令,当由所述一个或多个处理器执行时,使所述一个或多个处理器执行以下操作,包括:
通过计算系统的存储器接口控制器的模式切换控制器,将所述存储器接口控制器切换至第一模式,所述第一模式选自至少一种窄带模式和宽带模式;以及
通过所述存储器接口控制器禁用以下中的一个:
根据第一总线标准的所述存储器接口控制器的多个窄带存储器接口,或
根据第二总线标准的所述存储器接口控制器的宽带存储器接口,
其中,所述禁用包括指示所述多个窄带存储器接口或所述宽带存储器接口忙碌,以推迟未决的读或写请求。
12.根据权利要求11所述的计算机可读存储介质,其中,所述操作还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准将所述计算系统的多个系统存储单元虚拟化为虚拟宽带存储单元;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准将所述计算系统的所述系统存储单元虚拟化为虚拟窄带存储单元。
13.根据权利要求11所述的计算机可读存储介质,其中,所述操作还包括:
在所述存储器接口控制器的所述多个窄带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第二总线标准在虚拟宽带存储单元和计算系统的宽带存储用户之间进行数据传输;以及
在所述存储器接口控制器的所述宽带存储器接口被禁用的情况下,利用所述存储器接口控制器,根据所述第一总线标准在虚拟窄带存储单元与计算系统的多个存储用户之间进行数据传输;
其中,所述存储器接口控制器通过根据多主、多从第一总线标准构建的存储器互连在所述虚拟窄带存储单元和所述多个存储用户之间传输数据。
14.根据权利要求11所述的计算机可读存储介质,其中,所述操作还包括:通过所述模式切换控制器将所述存储器接口控制器切换至第二模式,所述第二模式选自至少一种窄带模式和宽带模式;以及
通过所述存储器接口控制器禁用以下中的另一个:根据所述第一总线标准的所述存储器接口控制器的所述多个窄带存储器接口,或根据所述第二总线标准的所述存储器接口控制器的所述宽带存储器接口。
CN202111162115.7A 2020-10-16 2021-09-30 方法、集成电路及计算机可读存储介质 Active CN114398300B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/072581 2020-10-16
US17/072,581 US11604744B2 (en) 2020-10-16 2020-10-16 Dual-modal memory interface controller

Publications (2)

Publication Number Publication Date
CN114398300A CN114398300A (zh) 2022-04-26
CN114398300B true CN114398300B (zh) 2024-04-26

Family

ID=81185132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111162115.7A Active CN114398300B (zh) 2020-10-16 2021-09-30 方法、集成电路及计算机可读存储介质

Country Status (2)

Country Link
US (1) US11604744B2 (zh)
CN (1) CN114398300B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074033B1 (en) * 2009-01-12 2011-12-06 Ixys Ch Gmbh Cooperating memory controllers that share data bus terminals for accessing wide external devices
US9564186B1 (en) * 2013-02-15 2017-02-07 Marvell International Ltd. Method and apparatus for memory access
CN106575274A (zh) * 2014-09-26 2017-04-19 英特尔公司 用于低功率存储器设备的公用管芯实现

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889304B2 (en) 2001-02-28 2005-05-03 Rambus Inc. Memory device supporting a dynamically configurable core organization
US9171585B2 (en) 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US8074022B2 (en) 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
US20080082750A1 (en) 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
US9195602B2 (en) 2007-03-30 2015-11-24 Rambus Inc. System including hierarchical memory modules having different types of integrated circuit memory devices
US8700830B2 (en) 2007-11-20 2014-04-15 Spansion Llc Memory buffering system that improves read/write performance and provides low latency for mobile systems
US8880696B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US8018752B2 (en) 2009-03-23 2011-09-13 Micron Technology, Inc. Configurable bandwidth memory devices and methods
WO2011106049A1 (en) 2010-02-23 2011-09-01 Rambus Inc. Time multiplexing at different rates to access different memory types
US8799553B2 (en) 2010-04-13 2014-08-05 Apple Inc. Memory controller mapping on-the-fly
TWI425362B (zh) * 2010-12-07 2014-02-01 Alpha Imaging Technology Corp 對應不同記憶體之記憶體介面晶片及建立記憶體傳輸通道之方法
US9417687B2 (en) 2011-07-12 2016-08-16 Rambus Inc. Dynamically changing data access bandwidth by selectively enabling and disabling data links
US9009362B2 (en) * 2012-12-20 2015-04-14 Intel Corporation Variable-width command/address bus
JP6398309B2 (ja) * 2013-11-27 2018-10-03 株式会社リコー 情報処理装置、および情報処理方法
US10769073B2 (en) * 2018-03-28 2020-09-08 Qualcomm Incorporated Bandwidth-based selective memory channel connectivity on a system on chip
US11409450B2 (en) * 2019-06-17 2022-08-09 Micron Technology, Inc. Channel architecture for memory devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074033B1 (en) * 2009-01-12 2011-12-06 Ixys Ch Gmbh Cooperating memory controllers that share data bus terminals for accessing wide external devices
US9564186B1 (en) * 2013-02-15 2017-02-07 Marvell International Ltd. Method and apparatus for memory access
CN106575274A (zh) * 2014-09-26 2017-04-19 英特尔公司 用于低功率存储器设备的公用管芯实现

Also Published As

Publication number Publication date
US11604744B2 (en) 2023-03-14
CN114398300A (zh) 2022-04-26
US20220121586A1 (en) 2022-04-21

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
US8082418B2 (en) Method and apparatus for coherent device initialization and access
KR101310044B1 (ko) 복수의 코어 프로세서들에서의 하나 이상의 코어들의 워크로드 성능을 증가시키는 방법
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US8762994B2 (en) Power-optimized interrupt delivery
US20150012723A1 (en) Processor using mini-cores
US11150899B2 (en) Selecting a precision level for executing a workload in an electronic device
US10599595B2 (en) Communications interface circuit architecture
US10120798B1 (en) Dynamic FPGA re-configuration using a virtual FPGA controller
US11061841B2 (en) System and method for implementing a multi-threaded device driver in a computer system
EP4145284A1 (en) Technologies to offload workload execution
CN117751367A (zh) 用于使用存储元素指针执行机器学习操作的方法和设备
CN114398300B (zh) 方法、集成电路及计算机可读存储介质
CN114008589A (zh) 用于在顺序处理器上进行多次执行的动态代码加载
CN113568734A (zh) 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备
US20160328317A1 (en) System and Method for Optimizing System Memory and Input/Output Operations Memory
US20180341614A1 (en) System and Method for I/O Aware Processor Configuration
EP4365747A1 (en) Apparatus and method for dynamically reconfiguring memory region of memory device
US11620120B1 (en) Configuration of secondary processors
EP4016315B1 (en) Configurable memory architecture for computer processing systems
US20240037030A1 (en) Runtime de-interleave and re-interleave of system memory
US11068200B2 (en) Method and system for memory control
US20220229795A1 (en) Low latency and highly programmable interrupt controller unit
WO2024000443A1 (en) Enforcement of maximum memory access latency for virtual machine instances
EP4158485A1 (en) Inference in memory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20240308

Address after: 311121 Room 516, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba Dharma Institute (Hangzhou) Technology Co.,Ltd.

Country or region after: China

Address before: 200131 floor 5, No. 366, Shangke road and No. 2, Lane 55, Chuanhe Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant before: Pingtouge (Shanghai) semiconductor technology Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant