CN104461727A - 内存模组访问方法及装置 - Google Patents

内存模组访问方法及装置 Download PDF

Info

Publication number
CN104461727A
CN104461727A CN201310422993.7A CN201310422993A CN104461727A CN 104461727 A CN104461727 A CN 104461727A CN 201310422993 A CN201310422993 A CN 201310422993A CN 104461727 A CN104461727 A CN 104461727A
Authority
CN
China
Prior art keywords
memory access
scheduler
main memory
access request
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310422993.7A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310422993.7A priority Critical patent/CN104461727A/zh
Priority to EP14844807.9A priority patent/EP3035193A4/en
Priority to PCT/CN2014/086592 priority patent/WO2015035955A1/zh
Priority to JP2016541798A priority patent/JP2016531372A/ja
Priority to KR1020167009479A priority patent/KR20160054007A/ko
Publication of CN104461727A publication Critical patent/CN104461727A/zh
Priority to US15/070,532 priority patent/US20160196073A1/en
Pending legal-status Critical Current

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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种内存模组访问方法及装置,涉及计算机技术领域,用于解决多通道内存***中带宽资源利用率较低,导致内存访问带宽较低的问题。本发明提供的方法包括:第一调度器获取第二调度器的待发送内存访问请求的数量;所述第一调度器接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。本发明适用于计算机技术领域,用于实现内存模组访问。

Description

内存模组访问方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存模组访问方法及装置。
背景技术
在计算机技术领域中,为了提高内存访问带宽,很多计算机采用多通道内存***。多通道内存***中包括多个内存通道,内存控制器通过多个内存通道与内存模组进行通信。在多通道内存***中,会按照内存模组的划分预先确定内存地址与通道的映射关系,以使得各通道的负载均衡。当接收内存访问请求时,根据内存访问请求中的内存地址确定对应的通道作为目标通道,通过所述目标通道发送所述内存访问请求。以内存***包括2个内存模组为例,则可以以内存地址中某一比特位的取值确定该内存地址与通道的映射关系。例如,内存地址第7位为“0”的内存访问请求通过通道0发送至目标内存模组;内存地址第7位为“1”的内存访问请求通过通道1发送至目标内存模组。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
由于内存模组与内存控制器之间的通道相互独立,当接收到的多个内存访问请求在多个通道之间分布不平衡时,例如,连续接收到的n个内存访问请求都是通过通道1发送至目标内存模组,会导致通道1拥堵,其他通道处于闲置状态,造成带宽资源的浪费,同时导致内存访问带宽较低。
发明内容
本发明的实施例提供一种内存模组访问方法及装置,能够解决现有技术中当接收到的多个内存访问请求在多个通道之间分布不平衡时,造成带宽资源的浪费,导致内存访问带宽较低的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种内存模组访问方法,应用于内存***,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路,所述第一调度器和第二调度器之间建立有传输链路;
所述方法包括:
第一调度器获取所述第二调度器的待发送内存访问请求的数量;
所述第一调度器接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
在第一种可能的实现方式中,所述第一调度器接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求,包括:
所述第一调度器接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求;
当通过所述第一调度器对应的第一内存通道发送所述第一内存访问请求时,所述第二内存访问请求处于待发送状态;如果所述第二调度器对应的第二内存通道处于空闲状态,则所述第一调度器通过所述第二调度器对应的第二内存通道发送所述第二内存访问。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述第一调度器通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求之前,还包括:
所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;
所述第一调度器接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组。
结合第一方面或第一方面的第一种可能的实现方式、或第二种可能的实现方式、或第三种可能的实现方式,在第四种可能的实现方式中,所述第一调度器配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
第二方面,本发明实施例提供了一种内存模组访问方法,应用于内存***,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述方法包括:
所述第一调度器接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;
所述第一调度器通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
在第一种可能的实现方式中,所述第一调度器通过所述第二内存通道发送所述第二内存访问请求,包括:
当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述通过所述第二内存通道发送所述第二内存访问请求之前,包括:
所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
结合第二方面或第二方面的第一种可能的实现方式、或第二种可能的实现方式、或第三种可能的实现方式,在第四种可能的实现方式中,每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
第三方面,本发明实施例提供了一种内存模组访问方法,应用于内存***,所述内存***至少包括第一内存通道和第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述方法包括:
接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组;
通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
在第一种可能的实现方式中,所述通过所述第二内存通道发送所述第二内存访问请求,包括:
当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应所述第一内存通道,所述第二调度器对应所述第二内存通道;
所述通过所述第二内存通道发送所述第二内存访问请求之前,还包括:
所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第三方面或第三方面的第一种可能的实现方式、或第二种可能的实现方式,在第三种可能的实现方式中,每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
第四方面,本发明实施例提供一种内存控制器,应用于内存***,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路,所述第一调度器和第二调度器之间建立有传输链路;
所述第一调度器用于获取所述第二调度器的待发送内存访问请求的数量;
所述第一调度器还用于接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
在第一种可能的实现方式中,所述第一调度器用于接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求;
所述第一调度器还用于当所述第二内存请求处于待发送状态时,如果所述第二调度器对应的第二内存通道处于空闲状态,则通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述第一调度器接收的所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组。
结合第一方面或第一方面的第一种可能的实现方式、或第二种可能的实现方式、或第三种可能的实现方式,在第四种可能的实现方式中,所述第一调度器配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
第五方面,本发明实施例提供了一种内存控制器,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存控制器中包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述第一调度器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
在第一种可能的实现方式中,所述第一调度器用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述第一调度器接收到的所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
结合第五方面或第五方面的第一种可能的实现方式、或第二种可能的实现方式、或第三种可能的实现方式,在第四种可能的实现方式中,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
第六方面,本发明实施例提供了一种内存控制器,所述内存控制器至少包括第一内存通道和第二内存通道,每个内存通道对应一个内存模组;所述内存控制器包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述内存控制器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于第一内存通道对应的内存模组;
所述内存控制器还用于通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
在第一种可能的实现方式中,所述内存控制器具体用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述内存控制器中至少包括第一调度器和第二调度器,所述第一调度器对应所述第一内存通道,所述第二调度器对应所述第二内存通道;
所述第一调度器用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第六方面或第六方面的第一种可能的实现方式、或第二种可能的实现方式,在第三种可能的实现方式中,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
第七方面,本发明实施例提供了一种中央处理器CPU,应用于内存***,所述CPU包括内存控制器,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模块,所述多个内存模组之间建立有传输链路,所述第一调度器和第二调度器之间建立有传输链路;
所述第一调度器用于获取所述第二调度器的待发送内存访问请求的数量;
所述第一调度器还用于接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
在第一种可能的实现方式中,所述第一调度器用于接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求;
所述第一调度器还用于当所述第二内存请求处于待发送状态时,如果所述第二调度器对应的第二内存通道处于空闲状态,则通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述第一调度器接收的所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组,所述第一内存通道为所述第一调度器对应的内存通道。
结合第七方面或第七方面的第一种可能的实现方式、或第二种可能的实现方式、或第三种可能的实现方式,在第四种可能的实现方式中,所述第一调度器配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
第八方面,本发明实施例提供了一种CPU,包括内存控制器,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存控制器中包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述第一调度器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
在第一种可能的实现方式中,所述第一调度器用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第二种可能的实现方式,在第三种可能的实现方式中,所述第一调度器接收到的所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
结合第八方面或第八方面的第一种可能的实现方式、或第二种可能的实现方式、或第三种可能的实现方式,在第四种可能的实现方式中,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
第九方面,本发明实施例提供了一种CPU,包括内存控制器,所述内存控制器至少包括第一内存通道和第二内存通道,每个内存通道对应一个内存模组;所述内存控制器包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述内存控制器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于第一内存通道对应的内存模组;
所述内存控制器还用于通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
在第一种可能的实现方式中,所述内存控制器具体用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
结合第一种可能的实现方式,在第二种可能的实现方式中,所述内存控制器中至少包括第一调度器和第二调度器,所述第一调度器对应所述第一内存通道,所述第二调度器对应所述第二内存通道;
所述第一调度器用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
结合第九方面或第九方面的第一种可能的实现方式、或第二种可能的实现方式,在第三种可能的实现方式中,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
本发明实施例提供的内存模组访问方法及装置,当接收到多个内存访问请求时,可以将接收到的多个内存访问请求通过多个内存通道进行发送。采用本发明实施例提供的方法,即使当接收到的多个内存访问请求在多个内存通道之间分布不平衡时,能够利用其他处于空闲状态的内存通道对接收到的多个内存访问请求进行发送,从而提高带宽资源利用率,提高内存访问带宽。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1、图2为本发明实施例一提供的内存模组访问方法的流程示意图;
图3、图4为本发明实施例二提供的内存控制器的结构框图;
图5、图6为本发明实施例三提供的CPU的结构框图;
图7、图8为本发明实施例四提供的内存模组访问方法的流程示意图;
图9为本发明实施例五提供的内存控制器的结构框图;
图10为本发明实施例六提供的CPU的结构框图;
图11、图12为本发明实施例七提供的内存模组访问方法的流程示意图;
图13为本发明实施例八提供的内存控制器的结构框图;
图14、图15为本发明实施例九提供的CPU的结构框图;
图16为本发明实施例十提供的双通道内存***的结构图;
图17为本发明实施例十一提供的三通道内存***的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种内存模组访问方法,应用于内存***,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路,所述第一调度器和第二调度器之间建立有传输链路。
如图1所示,所述方法包括:
101、第一调度器获取第二调度器的待发送内存访问请求的数量。
102、所述第一调度器接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
本实施例中,所述内存***包括多个调度器,所述多个调度器之间建立有通信链路,以使得每个调度器能够获取其他调度器中的待发送内存访问请求的数量,从而在接收到内存访问请求后,能够确定空闲的内存通道,通过该空闲内存通道发送内存访问请求。
进一步的,在图1所示方法的基础上,本发明实施例还提供了一种较为详细的内存模组访问方法,如图2所示,所述方法包括:
201、第一调度器实时获取其他调度器的待发送内存访问请求的数量,其中,所述第一调度器为所述多个调度器中的任一调度器,所述其他调度器为所述多个调度器中除所述第一调度器之外的剩余调度器。
202、所述第一调度器接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求。
值得说明的是,一般的,所述第一调度器接收到的内存访问请求的目的地址均位于所述第一调度器自身所对应的内存模组,即:如果将所述第一调度器对应的内存通道记作第一内存通道,则所述第一内存访问请求和第二内存访问请求的目的地址均位于第一内存通道对应的内存模组。
203、所述第一调度器通过所述第一内存通道发送所述第一内存访问请求,则所述第二内存访问请求处于待发送状态。
204、所述第一调度器查询其他调度器对应的内存通道的状态,确定辅助调度器,所述辅助调度器对应的内存通道处于空闲状态。
具体的,所述第一调度器可以采用如下方法确定辅助调度器:所述第一调度器查询其他调度器的待发送内存访问请求的数量,确定待发送内存访问请求数量为0的调度器作为辅助调度器。
为了便于理解,本实施例中将确定的辅助调度器记作第二调度器,则所述第二调度器当前的待发送内存访问请求的数量为0,所述第二调度器对应的内存通道处于空闲状态。
值得说明的是,所述第二调度器当前的待发送内存访问请求数量为0,表示所述第二调度器对应的内存通道处于绝对的空闲状态。需要强调的是,作为一种可选方案,当所述第二调度器对应的内存通道处于相对的空闲状态时(例如第二调度器中的待发送内存访问请求数量不为0,但第二调度器中的待发送内存访问请求数量远低于所述第一调度器中的待发送内存访问请求数量),所述第一调度器仍然可以将所述第二调度器确定为辅助调度器,将自身接收的一部分内存访问请求通过所述第二调度器对应的内存通道进行发送。采用这样的方法,当第一调度器中接收到大量内存访问请求时,可以及时的将第一调度器中的部分待发送内存访问请求转存到所述辅助调度器中,这样可以使得第一调度器缓存更多的内存访问请求,提高内存***的通信容量。
205、所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
206、所述第二调度器确定自身对应的内存通道处于空闲状态,允许所述第一调度器占用第二调度器对应的第二内存通道,向所述第一调度器发送关于所述内存通道占用请求的确认响应。
207、所述第一调度器接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
208、所述第一调度器通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
一般的,当第一调度器在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的方法,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
209、所述第二调度器对应的内存模组接收所述第二内存访问请求,根据所述第二内存访问请求中的目的地址,通过内存模组之间的传输链路,将所述第二内存访问请求发送至目的内存模组,即第一调度器对应的内存模组。
值得说明的是,本实施例中,每个调度器配置有多个通路,通过所述多个通路与所述多个内存通道建立连接,以使得每个调度器能够通过其他调度器对应的内存通道发送内存访问请求。
需要强调的是,本实施例提供的内存模组访问方法,可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将本实施例中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的内存模组访问方法,每个调度器可以获取其他调度器中待发送内存访问请求的数量;当接收到多个内存访问请求时,可以将接收到的多个内存访问请求通过多个内存通道进行发送。采用本发明实施例提供的方法,当接收到多个内存访问请求时,能够将接收到的多个内存访问请求分配给多个内存通道进行发送,从而提高带宽资源利用率,提高内存访问带宽。
实施例二
本发明实施例提供了一种内存控制器,应用于内存***,能够实现图1和图2所示的内存模组访问方法,如图3所示,所述内存控制器至少包括第一调度器31和第二调度器32,所述第一调度器31对应第一内存通道,所述第二调度器32对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路,所述第一调度器31和第二调度器32之间建立有传输链路;
所述第一调度器31用于获取所述第二调度器的待发送内存访问请求的数量;
所述第一调度器31还用于接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
值得说明的是,图3中的第一调度器31和第二调度器32仅为举例说明。实际应用中,所述内存控制器包括多个调度器,如图4所示,所述内存控制器还可以包括第三调度器33、第四调度器34…等多个调度器。其中,所述内存***中的调度器之间建立有通信链路,以使得每个调度器能够获取其他调度器中的待发送内存访问请求的数量,从而在接收到内存访问请求后,能够确定空闲的内存通道,通过该空闲内存通道发送内存访问请求。
具体的,所述第一调度器31用于接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求;
所述第一调度器31还用于当所述第二内存请求处于待发送状态时,如果所述第二调度器32对应的第二内存通道处于空闲状态,则通过所述第二调度器32对应的第二内存通道发送所述第二内存访问请求。
具体的,所述第一调度器31还用于向所述第二调度器32发送内存通道占用请求,以请求占用所述第二调度器32对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器31还用于接收所述第二调度器32返回的关于所述内存通道占用请求的确认响应。
一般的,当第一调度器31在一个调度时隙内接收到多个内存访问请求时,所述第一调度器31将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器31也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器31可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的方法,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
其中,所述第一调度器31接收的所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组。
值得说明的是,本实施例中每个调度器都配置有多个通路,通过所述多个通路与所述多个内存通道建立连接,以使得每个调度器能够通过其他调度器对应的内存通道发送内存访问请求。例如,所述第一调度器31配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
需要强调的是,本实施例提供的内存控制器可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将内存控制器中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的内存控制器中的每个调度器可以获取其他调度器中待发送内存访问请求的数量;当接收到多个内存访问请求时,可以将接收到的多个内存访问请求通过多个内存通道进行发送。采用本发明实施例提供的内存控制器,当接收到多个内存访问请求时,能够将接收到的多个内存访问请求分配给多个内存通道进行发送,从而提高带宽资源利用率,提高内存访问带宽。
实施例三
本发明实施例提供了一种CPU,应用于内存***,能够实现上述图1和图2所示的方法,如图5所示,所述CPU包括内存控制器50,所述内存控制器50包括第一调度器51和第二调度器52,所述第一调度器51对应第一内存通道,所述第二调度器52对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模块,所述多个内存模组之间建立有传输链路,所述第一调度器51和第二调度器52之间建立有传输链路;
具体的,所述第一调度器51用于获取所述第二调度器52的待发送内存访问请求的数量;
所述第一调度器51还用于接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
值得说明的是,图5中的第一调度器51和第二调度器52仅为举例说明。实际应用中,所述内存控制器包括多个调度器,如图6所示,所述内存控制器还可以包括第三调度器53、第四调度器54...等多个调度器。其中,所述内存***中的调度器之间建立有通信链路,以使得每个调度器能够获取其他调度器中的待发送内存访问请求的数量,从而在接收到内存访问请求后,能够确定空闲的内存通道,通过该空闲内存通道发送内存访问请求。
具体的,所述第一调度器51用于接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求。
所述第一调度器51还用于当所述第二内存请求处于待发送状态时,如果所述第二调度器52对应的内存通道处于空闲状态,则通过所述第二调度器52对应的内存通道发送所述第二内存访问请求。
具体的,所述第一调度器51还用于向所述第二调度器52发送内存通道占用请求,以请求占用所述第二调度器52对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器51还用于接收所述第二调度器52返回的关于所述内存通道占用请求的确认响应。
其中,所述第一调度器51接收的所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组。
一般的,当第一调度器在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的方法,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
值得说明的是,本实施例内存控制器中的每个调度器配置有多个通路,通过所述多个通路与所述多个内存通道建立连接。例如,所述第一调度器配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
需要强调的是,本实施例提供的CPU可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将内存控制器50中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的CPU包括内存控制器,所述内存控制器中的每个调度器可以获取其他调度器中待发送内存访问请求的数量;当接收到多个内存访问请求时,可以将接收到的多个内存访问请求通过多个内存通道进行发送。采用本发明实施例提供的CPU,当接收到多个内存访问请求时,能够将接收到的多个内存访问请求分配给多个内存通道进行发送,从而提高带宽资源利用率,提高内存访问带宽。
实施例四
本发明实施例提供了一种内存模组访问方法,应用于内存***,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路。
如图7所示,所述方法包括:
701、所述第一调度器接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求。
702、所述第一调度器通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
通过本实施例中的方法,能够通过内存***的多个内存通道,对多个调度器接收到的内存访问请求进行分担,提高内存通道的带宽资源利用率。
进一步的,在图7所示方法的基础上,本发明实施例还提供了一种较为详细的内存模组访问方法,如图8所示,所述方法包括:
801、所述第一调度器接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求。
值得说明的是,一般的,所述第一调度器接收到的内存访问请求的目的地址均位于所述第一调度器自身所对应的内存模组,即:如果将所述第一调度器对应的内存通道记作第一内存通道,则所述第一内存访问请求和第二内存访问请求的目的地址均位于第一内存通道对应的内存模组。
802、所述第一调度器通过所述第一内存通道发送所述第一内存访问请求,则所述第二内存访问请求处于待发送状态。
803、所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
值得说明的是,所述第二调度器是所述内存***中多个调度器中的任一调度器。当所述第一调度器接收到多个内存访问请求时,可以向内存***中的所有调度器发送内存通道占用请求。本实施例中以第二调度器为例进行具体的举例说明。
804、所述第二调度器检测自身对应的内存通道是否处于空闲状态;若是,则执行805,若否,则执行809。
805、所述第二调度器允许所述第一调度器占用第二调度器对应的第二内存通道,向所述第一调度器发送关于所述内存通道占用请求的确认响应。
806、所述第一调度器接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
807、所述第一调度器通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
一般的,当第一调度器在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的方法,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
808、所述第二调度器对应的内存模组接收所述第二内存访问请求,根据所述第二内存访问请求中的目的地址,通过内存模组之间的传输链路,将所述第二内存访问请求发送至目的内存模组,即第一调度器对应的内存模组。
809、所述第二调度器拒绝所述第一调度器发送的所述内存通道占用请求。
值得说明的是,本实施例中,每个调度器配置有多个通路,通过所述多个通路与所述多个内存通道建立连接,以使得每个调度器能够通过其他调度器对应的内存通道发送内存访问请求。
需要强调的是,本实施例提供的内存模组访问方法,可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将本实施例中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的内存模组访问方法,当接收到多个内存访问请求时,能够通过内存***的多个内存通道,对多个调度器接收到的内存访问请求进行分担,通过多个内存通道对所述多个内存访问请求进行发送,从而提高内存通道的带宽资源利用率,提高内存访问带宽。
实施例五
本发明实施例提供了一种内存控制器,能够实现图7和图8所示的方法,如图9所示,所述内存控制器至少包括第一调度器91和第二调度器92,所述第一调度器91对应第一内存通道,所述第二调度器92对应第二内存通道,每个内存通道对应一个或多个内存模组,所述内存模组之间建立有传输链路。
所述第一调度器91用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
具体的,所述第一调度器91用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
进一步的,所述第一调度器91还用于向所述第二调度器92发送内存通道占用请求,以请求占用所述第二调度器92对应的第二内存通道发送所述第二内存访问请求;以及
接收所述第二调度器92返回的关于所述内存通道占用请求的确认响应。
其中,所述第一调度器91接收到的所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
一般的,当第一调度器91在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器91也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器91可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的内存控制器,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
具体的,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
需要强调的是,本实施例提供的内存控制器可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将内存控制器中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的内存控制器,当接收到多个内存访问请求时,能够通过内存***的多个内存通道,对多个调度器接收到的内存访问请求进行分担,通过多个内存通道对所述多个内存访问请求进行发送,从而提高内存通道的带宽资源利用率,提高内存访问带宽。
实施例六
本实施例提供了一种CPU,能够实现图7和图8所示的方法,如图10所示,所述CPU包括内存控制器1000,所述内存控制器1000至少包括第一调度器1001和第二调度器1002,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个调度器对应一个内存通道,每个内存通道对应一个或多个内存模组;所述内存控制器中包括多个内存模组,所述多个内存模组预先之间建立有传输链路。
所述第一调度器1001用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
具体的,所述第一调度器1001用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
一般的,当第一调度器1001在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器1001也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器1001可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的CPU,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
进一步的,所述第一调度器1001还用于向所述第二调度器1002发送内存通道占用请求,以请求占用所述第二调度器1002对应的第二内存通道发送所述第二内存访问请求;以及
接收所述第二调度器1002返回的关于所述内存通道占用请求的确认响应。
其中,所述第一调度器1001接收到的所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
本实施例中,所述内存控制器中1000中的的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
需要强调的是,本实施例提供的内存控制器可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将内存控制器中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的CPU,当接收到多个内存访问请求时,能够通过内存***的多个内存通道,对多个调度器接收到的内存访问请求进行分担,通过多个内存通道对所述多个内存访问请求进行发送,从而提高内存通道的带宽资源利用率,提高内存访问带宽。
实施例七
本发明实施例提供了一种内存模组访问方法,应用于内存***,所述内存***至少包括第一内存通道和第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路。
如图11所示,所述方法包括:
1101、所述第一调度器接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
1102、通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
本实施例提供的内存模组访问方法,当第一调度器接收到多个内存访问请求时,可以通过其他调度器(例如本实施例中的第二调度器)对应的内存通道发送所述接收到的多个内存访问请求。
进一步的,在图11所示方法的基础上,本发明实施例还提供了一种较为详细的内存模组访问方法,如图12所示,所述方法包括:
1201、所述第一调度器接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址均位于所述第一内存通道对应的内存模组。
1202、所述第一调度器通过所述第一内存通道发送所述第一内存访问请求,则所述第二内存访问请求处于待发送状态。
1203、所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
值得说明的是,所述第二调度器是所述内存***中多个调度器中的任一调度器。当所述第一调度器接收到多个内存访问请求时,可以向内存***中的所有调度器发送内存通道占用请求。本实施例中以实施例二为例进行具体的举例说明。
1204、所述第二调度器检测自身对应的内存通道是否处于空闲状态;若是,则执行1205,若否,则执行1209。
1205、所述第二调度器允许所述第一调度器占用第二调度器对应的内存通道,向所述第一调度器发送关于所述内存通道占用请求的确认响应。
1206、所述第一调度器接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
1207、所述第一通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
一般的,当第一调度器在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的方法,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
1208、所述第二调度器对应的内存模组接收所述第二内存访问请求,根据所述第二内存访问请求中的目的地址,通过内存模组之间的传输链路,将所述第二内存访问请求发送至目的内存模组,即第一调度器对应的内存模组。
1209、所述第二调度器拒绝所述第一调度器发送的所述内存通道占用请求。
值得说明的是,本实施例中,每个调度器配置有多个通路,通过所述多个通路与所述多个内存通道建立连接,以使得每个调度器能够通过其他调度器对应的内存通道发送内存访问请求。
需要强调的是,本实施例提供的内存模组访问方法,可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将本实施例中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的内存模组访问方法,当第一调度器接收到多个内存访问请求时,可以通过其他调度器(例如第二调度器)对应的内存通道对接收到的所述多个内存访问请求进行发送,从而提高内存通道的带宽资源利用率,提高内存访问带宽。
实施例八
本发明实施例提供了一种内存控制器,能够实现图10和图11所示的方法,所述内存控制器至少包括第一内存通道和第二内存通道,每个内存通道对应一个或多个内存模组;所述内存控制器包括多个内存模组,所述多个内存模组之间建立有传输链路。
具体的,所述内存控制器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于第一内存通道对应的内存模组;
所述内存控制器还用于通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
具体的,所述内存控制器用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
如图13所示,所述内存控制器中至少包括第一调度器1301和第二调度器1302,所述第一调度器1301对应所述第一内存通道,所述第二调度器1302对应所述第二内存通道;
所述第一调度器1301用于向所述第二调度器1302发送内存通道占用请求,以请求占用所述第二调度器1302对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器1301还用于接收所述第二调度器1302返回的关于所述内存通道占用请求的确认响应。
一般的,当第一调度器1301在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器1301也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器1301可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的内存控制器,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
值得说明的是,本实施例中的所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
需要强调的是,本实施例提供的内存控制器可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将内存控制器中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的内存控制器,当所述内存控制器中的第一调度器接收到多个内存访问请求时,可以通过其他调度器(例如第二调度器)对应的内存通道对接收到的所述多个内存访问请求进行发送,从而提高内存通道的带宽资源利用率,提高内存访问带宽。
实施例九
本发明实施例提供了一种CPU,能够实现图10和图11所示的方法,如图14所示,所述CPU包括内存控制器1400,所述内存控制器1400至少包括第一内存通道和第二内存通道,每个内存通道对应一个或多个内存模组;所述内存控制器1400包括多个内存模组,所述多个内存模组之间建立有传输链路。
所述内存控制器1400用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于第一内存通道对应的内存模组;
所述内存控制器1400还用于通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
进一步的,所述内存控制器1400具体用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
如图15所示,所述内存控制器1400中至少包括第一调度器1401和第二调度器1402,所述第一调度器1401对应所述第一内存通道,所述第二调度器1402对应所述第二内存通道;
所述第一调度器1401用于向所述第二调度器1402发送内存通道占用请求,以请求占用所述第二调度器1402对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器1401还用于接收所述第二调度器1402返回的关于所述内存通道占用请求的确认响应。
一般的,当第一调度器1401在一个调度时隙内接收到多个内存访问请求时,将接收到的第一个内存访问请求通过自身对应的内存通道进行发送,将第二个接收到的内存访问请求通过其他调度器对应的内存通道进行发送。
值得说明的是,作为一种可选方案,所述第一调度器1401也可以将第一个接收到的内存访问请求通过其他调度器对应的内存通道进行发送,将第二个接收到的内存访问请求通过自身对应的内存通道进行发送。作为另一种可选方案,只要存在足够的空闲内存通道,所述第一调度器1401可以将接收到的多个内存访问请求优先通过其他调度器对应的内存通道进行发送。本实施例提供的CPU,对于任一调度器接收到的内存访问请求,可以通过任一空闲的内存通道进行发送,内存通道的具体分配方法本实施例不做限定。
值得说明的是,本实施例中所述内存控制器中1400的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
需要强调的是,本实施例提供的内存控制器可以应用于所有具备互联通路的多通道内存***。
作为一种优选的方案,可以将内存控制器中的多个调度器整合为一个总调度器,从而进一步提高多个内存通道之间的联系度,由所述总调度器统一调度所有内存通道的内存访问请求,使得内存通道利用率达到最大化。
本发明实施例提供的CPU包括内存控制器,当所述内存控制器中的第一调度器接收到多个内存访问请求时,可以通过其他调度器(例如第二调度器)对应的内存通道对接收到的所述多个内存访问请求进行发送,从而提高内存通道的带宽资源利用率,提高内存访问带宽。
实施例十
为了便于理解,本实施例以两个调度器为例,对本发明提供的技术方案进行说明。
本实施例提供了一种内存模组访问方法,应用于内存***,如图16所示,所述内存***包括调度器0和调度器1;所述调度器0对应内存通道0,所述调度器1对应内存通道1;所述内存通道0与内存模组0、内存模组2、内存模组4相连,所述内存通道1与内存模组1、内存模组3、内存模组5相连。
具体的,如图16所示,所述调度器0与调度器1之间建立有传输链路161,用于供所述调度器0和调度器1进行通信;所述调度器0配置有通路1和通路2,所述通路1与内存通道0相连,所述通路2与内存通道1相连;所述调度器1配置有通路1和通路2,所述通路1与内存通道1相连,所述通路2与内存通道0相连;所述内存模组0和内存模组1之间建立有传输链路162,用于供所述内存模组0和内存模组1进行通信。
结合图16所示的内存***,本实施例提供的内存模组访问方法包括:
S1、所述调度器0和调度器1通过传输链路161交互彼此的待发送内存访问请求数量。
S2、当所述调度器0接收到至少两个内存访问请求时,通过通路1发送第一个内存访问请求,同时,查询调度器1当前是否存在内存访问请求需要发送;如果调度器1当前没有内存访问请求需要发送,则在同一个调度时隙内通过通路2发送第二个内存访问请求。
值得说明的是,一般的,调度器0接收到的内存访问请求的目的地址位于内存通道0对应的内存模组,即内存模组0、内存模组2、或内存模组4;调度器1接收到的内存访问请求的目的地址位于内存通道1对应的内存模组,即内存模组1、内存模组3、或内存模组5。
S3、所述第二个内存访问请求通过调度器0的通路2发送至内存通道1,所述内存模组1接收所述第二个内存访问请求,将其通过传输链路152转发至内存模组0,通过内存模组0转发至目的内存模组。
值得说明的是,上述S1—S3是以调度器0通过调度器1对应的内存通道(即内存通道1)来分担自身接收到的内存访问请求。本实施例中的调度器1可以按照相同的方法来通过调度器0对应的内存通道来分担自身接收到的内存访问请求,此处不再赘述。
本发明实施例提供的内存模组访问方法,每个调度器可以获取其他调度器中待发送内存访问请求的数量;当接收到多个内存访问请求时,可以将接收到的多个内存访问请求通过多个内存通道进行发送。采用本发明实施例提供的方法,当接收到多个内存访问请求时,能够将接收到的多个内存访问请求分配给多个内存通道进行发送,从而提高带宽资源利用率,提高内存访问带宽。
实施例十一
图16是以双通道内存***为例进行说明的,本发明提供的内存模组访问方法适用于多通道***。接下来,本实施例以N通道内存***为例进行进一步描述。
在N通道内存***中,包括N个调度器、N个内存通道、N个内存模组;其中,所述N个调度器可以记作:调度器0、调度器1、...、调度器N-1;N个内存通道记作:内存通道0、内存通道1、...、内存通道N-1;N个内存模组记作:内存模组0、内存模组1、...、内存模组N-1。所述调度器、内存通道、内存模组一一对应,例如:调度器0与内存通道0相对应,内存通道0与内存模组0相对应。
其中,每个调度器配置有N个通路(可以记作:通路1、通路2、...、通路N),所述N个通路分别与所述N个内存通道相连。为了便于统计,可以按照预设规则对通路和内存通道的连接关系进行设定,例如,可以按照调度器n(0≤n≤N-1)的通路m(0≤m≤N)与内存通道(n+m)mod N相连接的方法来设定通路和内存通道的连接关系。其中,mod用于表示求余数。
当调度器n接收到x个内存访问请求时,如果N个通道均处于空闲状态,则可以将x个内存访问请求依次通过本地通路1、通路2、...、通路(n+x)modN进行发送。其中,当x≤N时,在一个调度时隙内即可将所述x个内存访问请求发送至内存模组;当N<x≤2N时,在两个调度时隙内即可将所述x个内存访问请求发送至内存模组;依次类推,此处不再赘述。
为了便于理解,接下来以三通道内存***为例进行举例说明,如图17所示,所述内存***包括调度器0、调度器1、调度器2;所述调度器0对应内存通道0,所述调度器1对应内存通道1,所述调度器2对应内存通道2;所述内存通道0与内存模组0相连,所述内存通道1与内存模组1相连,所述内存通道2与内存模组2相连。
具体的,如图17所示,所述调度器0与调度器1之间建立有传输链路171,所述调度器1与调度器2之间建立有传输链路172,所述调度器0与调度器2之间建立有传输链路173,所述传输链路171-173用于供所述调度器0、调度器1和调度器2之间互相进行通信。
所述调度器0配置有通路1、通路2和通路3,所述通路1与内存通道0相连,所述通路2与内存通道1相连,所述通路3与内存通道2相连;所述调度器1配置有通路1、通路2和通路3,所述通路1与内存通道1相连,所述通路2与内存通道3相连,所述通路3与内存通道0相连;所述调度器2配置有通路1、通路2和通路3,所述通路1与内存通道2相连,所述通路2与内存通道0相连,所述通路3与内存通道1相连。
所述内存模组0和内存模组1之间建立有传输链路174,用于供所述内存模组0和内存模组1进行通信;所述内存模组1和内存模组2之间建立有传输链路175,用于供所述内存模组1和内存模组2进行通信。
根据图17所示的三通道内存***,内存模组访问方法具体实现如下:
(1)调度器n接收到多个内存访问请求时,将第一个需要发送的内存访问请求通过通路1进行发送;
(2)如果调度器n有第二个内存访问请求需要发送,则检测调度器(n+1)mod3当前是否有内存访问请求需要发送;若没有,则把第二个需要发送的内存访问请求发送到通路2;
如果调度器(n+1)mod3当前有内存访问请求需要发送,则检测调度器(n+2)mod3当前是否有内存访问请求需要发送;若没有,则把第二个需要发送的内存访问请求发送到通路3。
(3)如果调度器n有第三个准备好的请求,且调度器(n+1)mod3当前没有内存访问请求需要发送、调度器(n+2)mod3当前也没有内存访问请求需要发送,则调度器n把第二个需要发送的内存发送到通路2,把第三个需要发送的内存请求发送到通路3。
本发明实施例提供的内存模组访问方法,每个调度器可以获取其他调度器中待发送内存访问请求的数量;当接收到多个内存访问请求时,可以将接收到的多个内存访问请求通过多个内存通道进行发送。采用本发明实施例提供的方法,当接收到多个内存访问请求时,能够将接收到的多个内存访问请求分配给多个内存通道进行发送,从而提高带宽资源利用率,提高内存访问带宽。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (42)

1.一种内存模组访问方法,其特征在于,应用于内存***,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路,所述第一调度器和第二调度器之间建立有传输链路;
所述方法包括:
第一调度器获取所述第二调度器的待发送内存访问请求的数量;
所述第一调度器接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
2.根据权利要求1所述的方法,其特征在于,所述第一调度器接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求,包括:
所述第一调度器接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求;
当通过所述第一调度器对应的第一内存通道发送所述第一内存访问请求时,所述第二内存访问请求处于待发送状态;如果所述第二调度器对应的第二内存通道处于空闲状态,则所述第一调度器通过所述第二调度器对应的第二内存通道发送所述第二内存访问。
3.根据权利要求2所述的方法,其特征在于,所述第一调度器通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求之前,还包括:
所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;
所述第一调度器接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
4.根据权利要求3所述的方法,其特征在于,所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一调度器配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
6.一种内存模组访问方法,其特征在于,应用于内存***,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述方法包括:
所述第一调度器接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;
所述第一调度器通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
7.根据权利要求6所述的方法,其特征在于,所述第一调度器通过所述第二内存通道发送所述第二内存访问请求,包括:
当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
8.根据权利要求7所述的方法,其特征在于,所述通过所述第二内存通道发送所述第二内存访问请求之前,包括:
所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
9.根据权利要求8所述的方法,其特征在于,所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
10.根据权利要求6-9中任一项所述的方法,其特征在于,每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
11.一种内存模组访问方法,其特征在于,应用于内存***,所述内存***至少包括第一内存通道和第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述方法包括:
接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组;
通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
12.根据权利要求11所述的方法,其特征在于,所述通过所述第二内存通道发送所述第二内存访问请求,包括:
当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
13.根据权利要求12所述的方法,其特征在于,所述内存***至少包括第一调度器和第二调度器,所述第一调度器对应所述第一内存通道,所述第二调度器对应所述第二内存通道;
所述通过所述第二内存通道发送所述第二内存访问请求之前,还包括:
所述第一调度器向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
14.根据权利要求11-13中任一项所述的方法,其特征在于,每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
15.一种内存控制器,应用于内存***,其特征在于,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模组,所述多个内存模组之间建立有传输链路,所述第一调度器和第二调度器之间建立有传输链路;
所述第一调度器用于获取所述第二调度器的待发送内存访问请求的数量;
所述第一调度器还用于接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
16.根据权利要求15所述的内存控制器,其特征在于,所述第一调度器用于接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求;
所述第一调度器还用于当所述第二内存请求处于待发送状态时,如果所述第二调度器对应的第二内存通道处于空闲状态,则通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
17.根据权利要求16所述的内存控制器,其特征在于,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
18.根据权利要求17所述的内存控制器,其特征在于,所述第一调度器接收的所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组。
19.根据权利要求15-18中任一项所述的内存控制器,其特征在于,所述第一调度器配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
20.一种内存控制器,其特征在于,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存控制器中包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述第一调度器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
21.根据权利要求20所述的内存控制器,其特征在于,所述第一调度器用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
22.根据权利要求21所述的内存控制器,其特征在于,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
23.根据权利要求22所述的内存控制器,其特征在于,所述第一调度器接收到的所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
24.根据权利要求20-23中任一项所述的内存控制器,其特征在于,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
25.一种内存控制器,其特征在于,所述内存控制器至少包括第一内存通道和第二内存通道,每个内存通道对应一个内存模组;所述内存控制器包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述内存控制器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于第一内存通道对应的内存模组;
所述内存控制器还用于通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
26.根据权利要求25所述的内存控制器,其特征在于,所述内存控制器具体用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
27.根据权利要求26所述的内存控制器,其特征在于,所述内存控制器中至少包括第一调度器和第二调度器,所述第一调度器对应所述第一内存通道,所述第二调度器对应所述第二内存通道;
所述第一调度器用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
28.根据权利要求25-27中任一项所述的内存控制器,其特征在于,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
29.一种中央处理器CPU,应用于内存***,其特征在于,所述CPU包括内存控制器,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存***包括多个内存模块,所述多个内存模组之间建立有传输链路,所述第一调度器和第二调度器之间建立有传输链路;
所述第一调度器用于获取所述第二调度器的待发送内存访问请求的数量;
所述第一调度器还用于接收内存访问请求,通过所述第二调度器对应的第二内存通道发送所述内存访问请求。
30.根据权利要求29所述的CPU,其特征在于,所述第一调度器用于接收至少两个内存访问请求,所述至少两个内存访问请求包括第一内存访问请求和第二内存访问请求;
所述第一调度器还用于当所述第二内存请求处于待发送状态时,如果所述第二调度器对应的第二内存通道处于空闲状态,则通过所述第二调度器对应的第二内存通道发送所述第二内存访问请求。
31.根据权利要求30所述的CPU,其特征在于,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
32.根据权利要求31所述的CPU,其特征在于,所述第一调度器接收的所述第二内存访问请求的目的地址位于第一内存通道对应的内存模组。
33.根据权利要求29-32中任一项所述的CPU,其特征在于,所述第一调度器配置有至少2个通路,通过所述至少2个通路与所述第一内存通道和第二内存通道建立连接。
34.一种中央处理器CPU,其特征在于,包括内存控制器,所述内存控制器至少包括第一调度器和第二调度器,所述第一调度器对应第一内存通道,所述第二调度器对应第二内存通道,每个内存通道对应一个内存模组;所述内存控制器中包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述第一调度器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求;通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
35.根据权利要求34所述的CPU,其特征在于,所述第一调度器用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
36.根据权利要求35所述的CPU,其特征在于,所述第一调度器还用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
37.根据权利要求36所述的CPU,其特征在于,所述第一调度器接收到的所述第二内存访问请求的目的地址位于所述第一内存通道对应的内存模组。
38.根据权利要求34-37中任一项所述的CPU,其特征在于,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
39.一种中央处理器CPU,其特征在于,包括内存控制器,所述内存控制器至少包括第一内存通道和第二内存通道,每个内存通道对应一个内存模组;所述内存控制器包括多个内存模组,所述多个内存模组之间建立有传输链路;
所述内存控制器用于接收至少两个内存访问请求,包括第一内存访问请求和第二内存访问请求,所述第一内存访问请求和第二内存访问请求的目的地址位于第一内存通道对应的内存模组;
所述内存控制器还用于通过所述第一内存通道发送所述第一内存访问请求,通过所述第二内存通道发送所述第二内存访问请求。
40.根据权利要求39所述的CPU,其特征在于,所述内存控制器具体用于当所述第二内存通道处于空闲状态时,通过所述第二内存通道发送所述第二内存访问请求。
41.根据权利要求40所述的CPU,其特征在于,所述内存控制器中至少包括第一调度器和第二调度器,所述第一调度器对应所述第一内存通道,所述第二调度器对应所述第二内存通道;
所述第一调度器用于向所述第二调度器发送内存通道占用请求,以请求占用所述第二调度器对应的第二内存通道发送所述第二内存访问请求;以及
所述第一调度器还用于接收所述第二调度器返回的关于所述内存通道占用请求的确认响应。
42.根据权利要求39-41中任一项所述的CPU,其特征在于,所述内存控制器中的每个调度器配置有多个通路,通过所述多个通路与每个内存通道建立连接。
CN201310422993.7A 2013-09-16 2013-09-16 内存模组访问方法及装置 Pending CN104461727A (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201310422993.7A CN104461727A (zh) 2013-09-16 2013-09-16 内存模组访问方法及装置
EP14844807.9A EP3035193A4 (en) 2013-09-16 2014-09-16 Memory module access method and device
PCT/CN2014/086592 WO2015035955A1 (zh) 2013-09-16 2014-09-16 内存模组访问方法及装置
JP2016541798A JP2016531372A (ja) 2013-09-16 2014-09-16 メモリモジュールアクセス方法および装置
KR1020167009479A KR20160054007A (ko) 2013-09-16 2014-09-16 메모리 모듈 액세스 방법 및 장치
US15/070,532 US20160196073A1 (en) 2013-09-16 2016-03-15 Memory Module Access Method and Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310422993.7A CN104461727A (zh) 2013-09-16 2013-09-16 内存模组访问方法及装置

Publications (1)

Publication Number Publication Date
CN104461727A true CN104461727A (zh) 2015-03-25

Family

ID=52665100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310422993.7A Pending CN104461727A (zh) 2013-09-16 2013-09-16 内存模组访问方法及装置

Country Status (6)

Country Link
US (1) US20160196073A1 (zh)
EP (1) EP3035193A4 (zh)
JP (1) JP2016531372A (zh)
KR (1) KR20160054007A (zh)
CN (1) CN104461727A (zh)
WO (1) WO2015035955A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239407A (zh) * 2016-03-29 2017-10-10 华为技术有限公司 一种内存的无线访问方法和装置
CN109684085A (zh) * 2018-12-14 2019-04-26 北京中科寒武纪科技有限公司 内存访问方法及相关产品
CN111949213A (zh) * 2020-07-28 2020-11-17 新华三半导体技术有限公司 内存颗粒访问控制芯片、内存颗粒的访问控制***及方法
EP3951582A1 (en) * 2015-07-01 2022-02-09 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
WO2023246132A1 (zh) * 2022-06-20 2023-12-28 哲库科技(上海)有限公司 通道分路器、存储控制装置、片上***及终端

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10193248B2 (en) 2016-08-31 2019-01-29 Crystal Group, Inc. System and method for retaining memory modules
KR20180118329A (ko) 2017-04-21 2018-10-31 에스케이하이닉스 주식회사 메모리 시스템, 데이터 처리 시스템 및 그것의 동작 방법
US10734756B2 (en) 2018-08-10 2020-08-04 Crystal Group Inc. DIMM/expansion card retention method for highly kinematic environments
GB2604153A (en) * 2021-02-26 2022-08-31 Advanced Risc Mach Ltd Data Processors

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095592A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation Multi-channel memory architecture for daisy chained arrangements of nodes with bridging between memory channels
CN1788260A (zh) * 2003-05-13 2006-06-14 先进微装置公司 包含通过串行内存互连而连接至多个内存模块的主机的***
CN101587740A (zh) * 2008-05-23 2009-11-25 承奕科技股份有限公司 多通道固态存储***
US7665092B1 (en) * 2004-12-15 2010-02-16 Sun Microsystems, Inc. Method and apparatus for distributed state-based load balancing between task queues
CN103069402A (zh) * 2010-08-31 2013-04-24 高通股份有限公司 多通道dram***中的负载平衡方案
CN103988186A (zh) * 2012-10-12 2014-08-13 华为技术有限公司 内存***、内存模块、内存模块的访问方法以及计算机***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006505B1 (en) * 2000-10-23 2006-02-28 Bay Microsystems, Inc. Memory management system and algorithm for network processor architecture

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1788260A (zh) * 2003-05-13 2006-06-14 先进微装置公司 包含通过串行内存互连而连接至多个内存模块的主机的***
US20060095592A1 (en) * 2004-10-29 2006-05-04 International Business Machines Corporation Multi-channel memory architecture for daisy chained arrangements of nodes with bridging between memory channels
US7665092B1 (en) * 2004-12-15 2010-02-16 Sun Microsystems, Inc. Method and apparatus for distributed state-based load balancing between task queues
CN101587740A (zh) * 2008-05-23 2009-11-25 承奕科技股份有限公司 多通道固态存储***
CN103069402A (zh) * 2010-08-31 2013-04-24 高通股份有限公司 多通道dram***中的负载平衡方案
CN103988186A (zh) * 2012-10-12 2014-08-13 华为技术有限公司 内存***、内存模块、内存模块的访问方法以及计算机***

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3951582A1 (en) * 2015-07-01 2022-02-09 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
EP4328734A3 (en) * 2015-07-01 2024-04-24 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
CN107239407A (zh) * 2016-03-29 2017-10-10 华为技术有限公司 一种内存的无线访问方法和装置
CN107239407B (zh) * 2016-03-29 2021-01-12 华为技术有限公司 一种内存的无线访问方法和装置
CN109684085A (zh) * 2018-12-14 2019-04-26 北京中科寒武纪科技有限公司 内存访问方法及相关产品
CN109684085B (zh) * 2018-12-14 2019-11-12 北京中科寒武纪科技有限公司 内存访问方法及相关产品
CN111949213A (zh) * 2020-07-28 2020-11-17 新华三半导体技术有限公司 内存颗粒访问控制芯片、内存颗粒的访问控制***及方法
CN111949213B (zh) * 2020-07-28 2022-08-30 新华三半导体技术有限公司 内存颗粒访问控制芯片、内存颗粒的访问控制***及方法
WO2023246132A1 (zh) * 2022-06-20 2023-12-28 哲库科技(上海)有限公司 通道分路器、存储控制装置、片上***及终端

Also Published As

Publication number Publication date
EP3035193A4 (en) 2016-09-14
US20160196073A1 (en) 2016-07-07
JP2016531372A (ja) 2016-10-06
KR20160054007A (ko) 2016-05-13
EP3035193A1 (en) 2016-06-22
WO2015035955A1 (zh) 2015-03-19

Similar Documents

Publication Publication Date Title
CN104461727A (zh) 内存模组访问方法及装置
US7694009B2 (en) System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
US20200127922A1 (en) Hybrid network processing load distribution in computing systems
CN101616083B (zh) 一种报文转发方法和装置
CN109885410A (zh) 消息发送方法、装置、计算机设备和存储介质
CN103634224B (zh) 网络中数据传输的方法和***
CN101873269B (zh) 数据转发设备和端口缓存的分配方法
CN103179049B (zh) 分级自适应动态出端口和队列缓冲区管理的***和方法
CN101217528B (zh) 一种链路聚合方法和装置
CN102932270A (zh) 支持网络安全业务的负载均衡方法和设备
CN101019385A (zh) 在整个设备堆栈中的端口聚合
US9954771B1 (en) Packet distribution with prefetch in a parallel processing network device
Cheng et al. Application-aware SDN routing for big data networking
CN104683255A (zh) 物理端口的均衡负载分担方法、装置和链路聚合***
CN101848158B (zh) 一种数据通道的负载均衡方法、装置和网络交换设备
CN106059940A (zh) 一种流量控制方法及装置
Duan et al. Placement and performance analysis of virtual multicast networks in fat-tree data center networks
CN102870381A (zh) 一种pcie交换***、装置及交换方法
CN103795621B (zh) 一种虚拟机的数据交换方法、装置及物理主机
CN103595649A (zh) 实现负载均衡的方法和***
CN105763617A (zh) 一种负载均衡方法和***
CN1905516B (zh) 一种分配双向转发检测会话鉴别符的方法
CN102025609A (zh) 一种基于可分组报文的负载均衡分发***及其方法
CN114553879A (zh) 分布式任务处理方法、***及存储介质
US10243838B1 (en) Interleaving members for proportionate network traffic distribution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150325