CN107180001A - 访问动态随机存储器dram的方法和总线 - Google Patents
访问动态随机存储器dram的方法和总线 Download PDFInfo
- Publication number
- CN107180001A CN107180001A CN201610135661.4A CN201610135661A CN107180001A CN 107180001 A CN107180001 A CN 107180001A CN 201610135661 A CN201610135661 A CN 201610135661A CN 107180001 A CN107180001 A CN 107180001A
- Authority
- CN
- China
- Prior art keywords
- field
- access
- access path
- dram
- intertexture
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
本发明实施例提供了一种访问动态随机存储器DRAM的方法和总线。该方法包括接收访问指令,该访问指令包括访问地址,该访问地址包括物理地址和增添设置的第一字段和第二字段,其中,该第一字段用于指示交织模式,该交织模式表示访问通道的选择方式,该第二字段用于指示交织粒度,该交织粒度表示该访问通道下的地址空间的容量;根据该第一字段和该第二字段,确定该访问通道和该访问通道下的地址;根据该访问通道和该访问通道下的地址,访问该DRAM。本发明实施例提供的访问动态随机存储器DRAM的方法和总线,能够实现同时支持多种交织模式和交织粒度的控制方式。
Description
技术领域
本发明涉及通信领域,并且更具体地,涉及一种访问动态随机存储器DRAM的方法和总线。
背景技术
现有技术的应用处理器(Application Processor,AP)的总线存储架构设计,中央处理器(Central Processing Unit,CPU)或输入/输出(Input/Output,IO)外设访问第四代低功耗双倍数据传输率动态随机存储器(Low PowerDouble Data Rate4 Dynamic Random Access Memory,LPDDR4 DRAM)时,通常需要对接4访问通道做地址交织访问,而且交织粒度也是静态配置。
通过现有的总线存储架构,CPU或IO外设访问DRAM时存在以下缺陷:当AP在某些处理低带宽需要的应用场景中(例如,语音通话或音频播放等),使用现有技术的4访问通道交织模式访问DRAM,相对于单访问通道的DRAM功耗较高;若给某段地址空间预留单访问通道访问DRAM,会导致另外3个访问通道与此平行的地址段无法被利用;若在某些场景下CPU和IO设备(主要是媒体网络协议)带宽流量大时,现有技术的4访问通道交织模式无法做访问通道隔离,导致总线拥塞;以及在某些场景下,由于不同的网络协议(Internet Protocol,IP)访问DRAM的访问模式不同,会导致DRAM的通信不均衡。
发明内容
本申请提供了一种访问动态随机存储器DRAM的方法和总线,能够支持多种交织模式和交织粒度的控制方式。
第一方面,提供了一种访问动态随机存储器DRAM的方法,包括接收访问指令,该访问指令包括访问地址,该访问地址包括物理地址和增添设置的第一字段和第二字段,其中,该第一字段用于指示交织模式,该交织模式表示访问通道的选择方式,该第二字段用于指示交织粒度,该交织粒度表示该访问通道下的地址空间的容量;根据该第一字段和该第二字段,确定该访问通道和该访问通道下的地址;根据该访问通道和该访问通道下的地址,访问该DRAM。
总线接收CPU或IO外设发送的访问LPDDR器件的访问指令,该访问指令包括访问DRAM的访问地址,且访问地址中第一字段指示交织模式,第二字段指示交织粒度。这样根据第一字段可以确定访问DRAM的交织模式,以及根据第二字段可以确定访问DRAM的交织粒度。进而,根据交织模式和交织粒度能够确定访问DRAM的访问通道以及确定访问通道下的地址。从而,总线根据已经确定的访问通道和该访问通道下的地址,访问DRAM。
因此,本发明实施例的访问动态随机存储器DRAM的方法,接收包括访问地址的访问指令,该访问地址中增添设置的第一字段指示交织模式、第二字段指示交织粒度,根据该交织模式和该交织粒度确定访问通道和访问通道下的地址,并根据该访问通道和该访问通道下的地址访问该DRAM,从而实现同时支持多种交织模式和交织粒度的控制方式,以及多种交织粒度的按需配置,可以提高访问通道带宽均衡和利用率。
结合第一方面,在第一方面的第一种可能的实现方式中,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:当该第一字段的值指示该交织模式为3+1访问通道交织模式时,确定该物理地址中的第三字段,该第三字段用于指示在3个访问通道间交织访问该DRAM,或通过单访问通道访问该DRAM;当该第三字段的值指示在3个访问通道间交织访问该DRAM时,确定该物理地址中的第四字段,该第四字段用于指示在该3个访问通道中选择一个访问通道;根据该第二字段的值,确定该第四字段的值;根据预先设定的该第四字段的不同值与该3个访问通道的映射关系,确定该第四字段的值对应的第一访问通道;根据该第四字段的值,确定该第一访问通道下的地址。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该方法还包括:当该第三字段的值指示通过单访问通道访问该DRAM时,根据该第三字段,确定该单访问通道和该单访问通道下的地址。
3+1访问通道交织模式,即将一个访问通道进行隔离,形成一个单访问通道,其他3个访问通道进行交织访问DRAM。若为指示访问通道交织模式的第一字段(假设通过chan_mode[1:0]表示交织模式)配置2bit,根据预设的第一字段的值,即chan_mode[1:0]为2’b01时,确定CPU或IO外设通过3+1访问通道交织模式访问DRAM。进一步还可以根据第三字段的值,即PA[32:31]=2’b11时,确定为单访问通道,访问指令只访问通道3;根据PA[32:31]!=2’b11时,则访问指令在DRAM的访问通道0、访问通道1和访问通道2这3个访问通道间做交织访问。
访问指令在访问通道0、访问通道1和访问通道2这3个访问通道间做交织访问时,由PA[x+4:x](x∈[7:12],当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7)来选择访问通道,通过查下述表3可以得到。相应地,访问通道下的地址通过PA[30:0]={(PA[32:x+5]*11+mode3_foor_PA[3:0],PA[x-1:0]}表示,其中,mode3_foor_PA[3:0]的值可以通过下述表3查到。
因此,在特定应用场景只能使用部分通道访问DRAM时,通过隔离的单通道访问可以降低功耗,或者CPU和IO外设同时访问DRAM时,通过信道的隔离可以提高DRAM的利用率,而且在预留单访问通道之后,与单访问通道平行的3访问通道下的通道空间与4访问通道下的通道空间不做区别使用。
结合第一方面,在第一方面的第三种可能的实现方式中,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:当该第一字段的值指示该交织模式为4访问通道交织模式时,确定该物理地址中的第七字段,该第七字段用于指示在该4个访问通道中选择一个访问通道访问该DRAM;根据该第二字段的值,确定该第七字段的值;根据预先设定的该第七字段的不同值与该4个访问通道的映射关系,确定该第七字段的值对应的第三访问通道;根据该第七字段,确定该第三访问通道下的地址。
4访问通道交织模式,即CPU或IO外设发出访问DRAM的指令,并根据地址交织粒度的不同,在DRAM的4个访问通道间做交织访问。由上述可知,根据指示访问通道交织模式的第一字段,若第一字段的值即chan_mode[1:0]为2’b00时,CPU或IO外设通过4访问通道交织模式访问DRAM。
根据第二字段的值确定x的值,即当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7。进而,根据PA[x+1:x]选择4访问通道交织模式中的信道,以及根据PA[30:0]={PA[32:x+2],PA[x-1:0]}确定选中的访问通道下的地址。
结合第一方面,在第一方面的第四种可能的实现方式中,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:当该第一字段指示该交织模式为双访问通道交织模式时,确定该物理地址中的第五字段,该第五字段用于指示在两组访问通道组合中选择一个访问通道组合访问该DRAM;当该第五字段的值指示在第一访问通道组合中的两个访问通道间交织访问该DRAM时,确定该物理地址中的第六字段,该第六字段用于指示在该第一访问通道组合中选择一个访问通道访问该DRAM;根据该第二字段的值,确定该第六字段的值;根据预先设定的该第六字段的不同值与该第一访问通道组合中的访问通道的对应关系,确定该第六字段的值对应的第二访问通道;根据该第五字段和该第六字段,确定该第二访问通道下的地址。
双访问通道交织模式,即4个访问通道分为两个组合,每个组合中的两个访问通道进行交织访问,且每个组合的访问通道相互隔离。若chan_mode[1:0]为2’b10时,CPU或IO外设通过双访问通道交织模式访问DRAM。
具体地,若PA[32]=1’b0时,访问指令在访问通道0和访问通道1间交织访问DRAM。根据第二字段的值确定x的值,即当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7。进而,根据PA[x]在访问通道0和访问通道1间选择访问通道,以及根据PA[30:0]={PA[31:x+1],PA[x-1:0]}确定选中的访问通道下的地址。
若PA[32]=1’b0时,访问指令在访问通道2和访问通道3间交织访问DRAM。根据第二字段的值确定x的值,即当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7。进而,根据PA[x]在访问通道2和访问通道3间选择访问通道,以及根据PA[30:0]={PA[31:x+1],PA[x-1:0]}确定选中的访问通道下的地址。
结合第一方面,在第一方面的第五种可能的实现方式中,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:当该第一字段指示该交织模式为单访问通道模式时,确定该物理地址中的第八字段,该第八字段用于指示选择单通道访问该DRAM;根据该第八字段,确定选中的单访问通道和该选中的单访问通道下的地址。
访问指令的访问通道选择由PA[32:31]决定:当PA[32:31]=2’b00时,则指令只访问通道0;当PA[32:31]=2’b01时,则指令只访问通道1;当PA[32:31]=2’b10时,则指令只访问通道2;当PA[32:31]=2’b11时,则指令只访问通道3。相应地,访问通道下的访问地址为PA[30:0]=PA[30:0]。
在一些可能的实现方式中,该第一字段的长度为两个比特位。
在一些可能的实现方式中,该第二字段的长度为三个比特位。
第一字段和第二字段的长度也可以是其他长度,本发明对此不进行限定。
在一些可能的实现方式中,该第一字段的值与交织模式一一映射。
总线可以预先设定第一字段chan_mode[1:0]的值为2’b00时,CPU或IO外设通过4访问通道交织模式访问DRAM;若chan_mode[1:0]为2’b01时,CPU或IO外设通过3+1访问通道交织模式访问DRAM;若chan_mode[1:0]为2’b10时,CPU或IO外设通过双访问通道交织模式访问DRAM;若chan_mode[1:0]为2’b11时,没有访问通道间的地址交织。因此,根据预设的高位地址与访问模式的映射关系,可以确定访问指令访问DRAM的访问模式。
在一些可能的实现方式中,该第二字段的值与交织粒度一一映射。
若第二字段的值chan_gran[2:0]=3’b000或3’b111,该交织粒度可以为128字节(Byte);若chan_gran[2:0]=1时,对应的交织粒度支持128字节;若chan_gran[2:0]=2时,对应的交织粒度支持256字节;若chan_gran[2:0]=3时,对应的交织粒度支持512字节;若chan_gran[2:0]=4时,对应的交织粒度支持1024字节;若chan_gran[2:0]=5时,对应的交织粒度支持2048字节;若chan_gran[2:0]=6时,对应的交织粒度支持4096字节。
在一些可能的实现方式中,该交织粒度包括128字节、256字节、512字节、1024字节、2048字节和4096字节中的任意一种。
第二方面,提供了一种访问动态随机存储器DRAM的装置,该装置包括:
接收模块,用于接收访问指令,该访问指令包括访问地址,该访问地址包括物理地址和增添设置的第一字段和第二字段,其中,该第一字段用于指示交织模式,该交织模式表示访问通道的选择方式,该第二字段用于指示交织粒度,该交织粒度表示该访问通道下的地址空间的容量;
确定模块,用于根据该第一字段和该第二字段,确定该访问通道和该访问通道下的地址;
访问模块,用于根据该访问通道和该访问通道下的地址,访问该DRAM。
结合第二方面,在第二方面的第一种可能的实现方式中,该确定模块具体用于:
当该第一字段的值指示该交织模式为3+1访问通道交织模式时,确定该物理地址中的第三字段,该第三字段用于指示在3个访问通道间交织访问该DRAM,或通过单访问通道访问该DRAM;
当该第三字段的值指示在3个访问通道间交织访问该DRAM时,确定该物理地址中的第四字段,该第四字段用于指示在该3个访问通道中选择一个访问通道;
根据该第二字段的值,确定该第四字段的值;
根据预先设定的该第四字段的不同值与该3个访问通道的映射关系,确定该第四字段的值对应的第一访问通道;
根据该第四字段的值,确定该第一访问通道下的地址。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该装置还用于:
当该第三字段的值指示通过单访问通道访问该DRAM时,根据该第三字段,确定该单访问通道和该单访问通道下的地址。
结合第二方面,在第二方面的第三种可能的实现方式中,该确定模块具体用于:
当该第一字段指示该交织模式为双访问通道交织模式时,确定该物理地址中的第五字段,该第五字段用于指示在两组访问通道组合中选择一个访问通道组合访问该DRAM;
当该第五字段的值指示在第一访问通道组合中的两个访问通道间交织访问该DRAM时,确定该物理地址中的第六字段,该第六字段用于指示在该第一访问通道组合中选择一个访问通道访问该DRAM;
根据该第二字段的值,确定该第六字段的值;
根据预先设定的该第六字段的不同值与该第一访问通道组合中的访问通道的对应关系,确定该第六字段的值对应的第二访问通道;
根据该第五字段和该第六字段,确定该第二访问通道下的地址。
结合第二方面,在第二方面的第四种可能的实现方式中,该确定模块具体用于:
当该第一字段的值指示该交织模式为4访问通道交织模式时,确定该物理地址中的第七字段,该第七字段用于指示在该4个访问通道中选择一个访问通道访问该DRAM;
根据该第二字段的值,确定该第七字段的值;
根据预先设定的该第七字段的不同值与该4个访问通道的映射关系,确定该第七字段的值对应的第三访问通道;
根据该第七字段,确定该第三访问通道下的地址。
结合第二方面,在第二方面的第五种可能的实现方式中,该确定模块具体用于:
当该第一字段指示该交织模式为单访问通道模式时,确定该物理地址中的第八字段,该第八字段用于指示选择单通道访问该DRAM;
根据该第八字段,确定选中的单访问通道和该选中的单访问通道下的地址。
结合第二方面及第二方面的第一种可能的实现方式至第二方面的第五种可能的实现方式中的任一种可能的实现方式,在第二方面的第六种可能的实现方式中,该第一字段包括至少两个比特位,该第二字段包括至少三个比特位。
结合第二方面及第二方面的第一种可能的实现方式至第二方面的第六种可能的实现方式中的任一种可能的实现方式,在第二方面的第七种可能的实现方式中,该交织粒度包括128字节、256字节、512字节、1024字节、2048字节和4096字节中的任意一种。
第三方面,提供了一种访问动态随机存储器DRAM的系统,该系统包括中央处理器CPU或输入输出IO设备、总线和该DRAM。
基于上述技术方案,本发明实施例的访问动态随机存储器DRAM的方法和总线,接收包括访问地址的访问指令,该访问地址中增添设置的第一字段指示交织模式、第二字段指示交织粒度,根据该交织模式和该交织粒度确定访问通道和访问通道下的地址,并根据该访问通道和该访问通道下的地址访问该DRAM,从而实现同时支持多种交织模式和交织粒度的控制方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的访问动态随机存储器DRAM的系统的示意图;
图2是根据本发明实施例的访问动态随机存储器DRAM的方法的示意图;
图3是根据本发明实施例的访问动态随机存储器DRAM的方法的示意图;
图4是根据本发明又一实施例的访问动态随机存储器DRAM的方法的交互示意图;
图5是根据本发明实施例的访问动态随机存储器DRAM的方法的交互示意图;
图6是根据本发明又一实施例的访问动态随机存储器DRAM的方法的交互示意图;
图7是根据本发明又一实施例的访问动态随机存储器DRAM的方法的交互示意图;
图8是根据本发明实施例访问动态随机存储器DRAM的总线的示意性框图;
图9是根据本发明实施例访问动态随机存储器DRAM的系统的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
微机系统中存储器通常由若干存储芯片及相应的存储控制组织而成,并通过存储总线(数据总线、地址总线和控制总线等)与CPU及其他部件相联系,以实现数据、控制信息的传输。
图1是现有的总线存储架构的示意图。如图1所示,CPU或IO外设通过四访问通道来访问DRAM中的存储信息。CPU或IO外设访问DRAM的物理地址(physical address,PA)位宽为32比特(bit),能够映射最大8GB的4访问通道下的DRAM,每个访问通道下对应的DRAM的存储空间为2GB。
现有技术中的交织粒度是静态配置的,交织粒度是指访问通道下的DRAM的地址能够映射的最大容量。例如,以128字节的交织粒度为例,Channel(访问通道)0下的DRAM的地址能够通过Channel 0访问的DRAM的大小为0-128字节。
在现有技术的4访问通道交织模式中,使用PA[x+1:x](x∈[7:12])选择访问DRAM的访问通道(即交织访问)。其中,通过交织粒度可以确定x的取值,x的具体取值在整芯片上电后所有CPU或IO访问DRAM之前确定,即实现静态控制CPU或IO外设访问DRAM。例如,交织粒度为128(即27)字节时,x=7。这样也可以确定每个访问通道下的DRAM的地址,该访问通道下的DRAM的地址以PA[30:0]={PA[32:x+2],PA[x-1:0]}来表示。
例如,若交织粒度为128字节,可以确定x=7,则PA[x+1:x]=PA[8:7],即通过7bit和8bit的值来选择访问通道访问DRAM。若PA[8:7]=2’b00,则可以确定使用访问通道0,以及根据PA[30:0]={PA[32:9],PA[6:0]}确定该访问通道0下的地址,进而完成使用Channel 0访问DRAM 0。
同样地,若PA[8:7]=2’b01,根据PA[30:0]={PA[32:9],PA[6:0]}确定该访问通道1下的地址完成使用Channel 1访问DRAM 1;若PA[8:7]=2’b10,根据PA[30:0]={PA[32:9],PA[6:0]}确定该访问通道2下的地址完成使用Channel 2访问DRAM 2;若PA[8:7]=2’b11,再根据PA[30:0]={PA[32:9],PA[6:0]}确定该访问通道3下的地址完成使用Channel 3访问DRAM 3。
但是,通过现有的总线存储架构,CPU或IO外设访问DRAM存在缺陷,例如:当AP在某些处理低带宽需要的应用场景中(例如,语音通话或视频播放),使用现有技术的4访问通道交织模式访问DRAM,相对于单访问通道访问DRAM功耗较高;若给某段地址空间预留单访问通道访问DRAM,会导致另外3个访问通道与此平行的地址段无法被利用;若在某些场景下CPU和IO设备(主要是媒体IP)带宽流量大时,现有技术的4访问通道交织模式无法做访问通道隔离,导致总线拥塞;在某些场景下,由于不同的IP访问DRAM的访问模式不同,会导致DRAM的通信不均衡。
图2示出了根据本发明实施例的一种访问动态随机存储器DRAM的方法100的示意图。该访问动态随机存储器DRAM的方法100包括:
S110,接收访问指令,该访问指令包括访问地址,该访问地址包括物理地址和增添设置的第一字段和第二字段,其中,该第一字段用于指示交织模式,该交织模式表示访问通道的选择方式,该第二字段用于指示交织粒度,该交织粒度表示该访问通道下的地址空间的容量;
S120,根据该第一字段和该第二字段,确定该访问通道和该访问通道下的地址;
S130,根据该访问通道和该访问通道下的地址,访问该DRAM。
具体而言,总线接收CPU或IO外设发送的访问LPDDR器件的访问指令,该访问指令包括访问DRAM的访问地址,且访问地址中第一字段指示交织模式,第二字段指示交织粒度。这样根据第一字段可以确定访问DRAM的交织模式,以及根据第二字段可以确定访问DRAM的交织粒度。进而,根据交织模式、交织粒度和物理地址,能够确定访问DRAM的访问通道以及确定访问通道下的地址。从而,总线根据已经确定的访问通道和该访问通道下的地址,访问DRAM。
需要说明的是,CPU向总线发送访问指令时,可以通过存储管理单元(Memory Management Unit,MMU)作地址翻译;或者IO外设向总线发送访问指令时,可以通过系统存储管理单元(System Memory Management Unit,SMMU)作地址翻译。而总线访问DRAM时还可以通过动态存储控制器(dynamic memory controller,DMC)将总线指令转换为DRAM能够识别的指令,以及可能需要通过物理层(Physical Layer,PHY)模拟接口等,完成访问过程,本发明对此不进行限定。
应理解,该IO外设可以是显示屏、摄像头等,本发明对此不进行限定。
因此,本发明实施例的访问动态随机存储器DRAM的方法,接收包括访问地址的访问指令,该访问地址中增添设置的第一字段指示交织模式、第二字段指示交织粒度,根据该交织模式和该交织粒度确定访问通道和访问通道下的地址,并根据该访问通道和该访问通道下的地址访问该DRAM,从而实现同时支持多种交织模式和交织粒度的控制方式。
在S110,CPU或IO外设将访问指令中的访问地址进行扩展,使用扩展后的字段分别指示交织模式和交织粒度,以实现灵活的同时支持多种交织模式和交织粒度的控制方式。
可选地,该第一字段的长度为两个比特位。
可选地,该第二字段的长度为三个比特位。
具体而言,CPU或IO外设将访问指令中的访问地址进行扩展(如图3所示),可以在地址的高位扩展5bit,其中的2bit(即chan_mode[1:0])用于指示访问通道交织模式,剩余的3bit(即chan_gran[2:0])用于指示交织粒度。
应理解,对地址的扩展可以是对高位地址进行扩展,也可以是对低位地址进行扩展,但是对低位地址进行扩展时,相应的其他位置的地址需要对应的移动,本发明实施例对此不进行限定。
还应理解,第一字段和第二字段的长度也可以是其他长度,本发明对此不进行限定。
可选地,对于支持MMU中央处理器/图形处理器或SMMU(IO外设,如显示器/图像处理器/视频编码器/视频解码器等)的IP,操作系统内核(OSkernel)通过修改页表的高位比特(仅限于长页表),实现访问通道的交织模式和交织粒度的动态管理。
对于没有MMU或SMMU的外设,但支持64位地址的IP,且以链表(链表描述符中的指针为64位)的方式访问DRAM,那么驱动软件可以通过管理链表描述符修改IP访问DRAM的高位地址。对于只有32位地址的IP,驱动软件通过寄存器配置扩展的高位地址,实现访问通道的交织模式和交织粒度的动态管理。
此外,在软件方案应用中,chan_gran[2:0]由底软驱动维护,对于硬件来说是透明的,而chan_mode[1:0]为可见地址,则OS kernel的可见的全局地址为Global PA[34:0]={chan_mode[1:0],PA[32:0]}。因此,处理好OS kernel和部分需要优化的驱动之后对其他软件是透明的,这样的划分相对比较干净。
可选地,该第一字段的值与交织模式一一映射。
具体而言,该第一字段可以是通过2个比特位的长度指示交织模式。具体地,总线可以预先设定第一字段chan_mode[1:0]的值为2’b00时,CPU或IO外设通过4访问通道交织模式访问DRAM;若chan_mode[1:0]的值为2’b01时,CPU或IO外设通过3+1访问通道交织模式访问DRAM;若chan_mode[1:0]的值为2’b10时,CPU或IO外设通过双访问通道交织模式访问DRAM;若chan_mode[1:0]的值为2’b11时,通过单通道访问DRAM。因此,根据预设的高位地址与访问模式的映射关系,可以确定访问指令访问DRAM的访问模式。
可选地,该第二字段的值与交织粒度一一映射。
具体而言,CPU或IO外设向总线发送包括访问地址的访问指令,访问地址中的第二字段指示交织粒度。总线可以预先设定第二字段的值与交织粒度的映射关系,根据映射关系,可以确定第二字段的值对应的交织粒度。进而,可以根据x=chan_gran[2:0]+6获知x的取值,以及可以使用PA[x+1:x](x∈[7:12])选择访问DRAM的访问通道,以及可以确定每个访问通道下的DRAM的地址PA[30:0]={PA[32:x+2],PA[x-1:0]}。
可选地,该交织粒度包括128字节、256字节、512字节、1024字节、2048字节和4096字节中的任意一种。
例如,预先设定第二字段的值与交织粒度的映射关系,若第二字段的取值chan_gran[2:0]=3’b000或3’b111,该交织粒度可以为128字节(Byte);若chan_gran[2:0]=1(即chan_gran[2:0]=3’b001)时,对应的交织粒度支持128字节;若chan_gran[2:0]=2(即chan_gran[2:0]=3’b010)时,对应的交织粒度支持256字节;若chan_gran[2:0]=3(即chan_gran[2:0]=3’b011)时,对应的交织粒度支持512字节;若chan_gran[2:0]=4(即chan_gran[2:0]=3’b100)时,对应的交织粒度支持1024字节;若chan_gran[2:0]=5(即chan_gran[2:0]=3’b101)时,对应的交织粒度支持2048字节;若chan_gran[2:0]=6(即chan_gran[2:0]=3’b110)时,对应的交织粒度支持4096字节。
DRAM的地址映射的存储空间是根据交织粒度确定,例如,若交织粒度为128B,则DRAM0的地址支持0-128B、DRAM1的地址支持128B-256B、DRAM2的地址支持256B-384B、DRAM3的地址支持256B-384B;若交织粒度为256B,则DRAM0的地址支持0-256B、DRAM1的地址支持256B-512B、DRAM2的地址支持512B-768B、DRAM3的地址支持768B-1KB。依次类推可知交织粒度为512B、1KB、2KB和4KB对应的每个DRAM的地址支持的范围。
表1
综上所述,chan_gran[2:0]与交织粒度的对应关系可以如表1所示,x的取值由chan_gran[2:0](chan_gran[2:0]∈[1:6])的值决定,即x=chan_gran[2:0]+6(x∈[7:12])。本发明实施例能够实现多种交织粒度按照需求进行配置,相比现有技术提高了DRAM的访问通道带宽均衡和利用率。
在S120,根据该第一字段和该第二字段,确定该访问通道和该访问通道下的地址。
具体而言,CPU或IO外设通过总线访问DRAM中的存储信息。访问指令中的访问地址包括用于指示访问DRAM的交织模式的第一字段,该访问地址还包括用于指示访问DRAM的交织粒度的第二字段,根据该第一字段和该第二字段,确定采用的交织模式和交织粒度,进而选择访问DRAM的访问通道,以及该访问通道下的地址。
可选地,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:
当该第一字段的值指示该交织模式为3+1访问通道交织模式时,确定该物理地址中的第三字段,该第三字段用于指示在3个访问通道间交织访问该DRAM,或通过单访问通道访问该DRAM;
当该第三字段的值指示在3个访问通道间交织访问该DRAM时,确定该物理地址中的第四字段,该第四字段用于指示在该3个访问通道中选择一个访问通道;
根据该第二字段的值,确定该第四字段的值;
根据预先设定的该第四字段的不同值与该3个访问通道的映射关系,确定该第四字段的值对应的第一访问通道;
根据该第四字段的值,确定该第一访问通道下的地址。
具体而言,本发明实施例可以将4个访问通道进行隔离,从而形成不同的访问模式,满足多种应用需求,以及能够提高DRAM的利用率。例如,可以将CPU或IO外设访问DRAM的模式分为4访问通道交织模式、3+1访问通道交织模式、双访问通道交织模式和单访问通道模式等。
如图4所示,3+1访问通道交织模式,即将一个访问通道进行隔离,形成一个单访问通道,其他3个访问通道进行交织访问DRAM。由上述可知,若为指示交织模式的第一字段配置2bit(即chan_mode[1:0]),根据chan_mode[1:0]的值为2’b01时,可以确定CPU或IO外设通过3+1访问通道交织模式访问DRAM。进一步还可以根据PA[32:31](即第三字段)=2’b11(即第三字段的值)时,确定为单访问通道,访问指令只通过访问通道3访问DRAM;根据PA[32:31]!=2’b11时,则访问指令在DRAM的访问通道0、访问通道1和访问通道2这3个访问通道间做交织访问。
访问指令在访问通道0、访问通道1和访问通道2这3个访问通道间做交织访问时,由PA[x+4:x](即第四字段)(x∈[7:12],当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7)来选择访问通道。具体地,通过第二字段的值,可以确定x的具体取值,进而可以确定物理地址中哪些字段用于表示第四字段,从而获知第四字段的值。通过查下述表2(即预先设定的第四字段的不同值与该3个访问通道的映射关系),可以得到第四字段的值对应的访问通道。同时,根据第四字段的值通过下述表2可以查到mode3_foor_PA[3:0]的值,从而由PA[30:0]={(PA[32:x+5]*11+mode3_foor_PA[3:0],PA[x-1:0]}可以确定访问通道下的地址。
表2
例如,假设全局物理地址(Global PA)[37:0]=38’b 001 01 0 0000 00000000 0000 0001 1110 1000 0000(二进制编码)=0x0c 0000 1e80(十六进制编码),由高位地址chan_mode[1:0]=Global[34:33]=2’b01,chan_gran[2:0]=3’b001,可以获知这个地址表示交织粒度为128字节(即x=7),交织模式为3+1访问通道交织模式,而且Global PA[32:31]=2’b00,则表示访问指令在访问通道0、访问通道1和访问通道2这三个访问通道间交织访问DRAM。根据x=7可以获知这个三个访问通道间的交织访问由PA[11:7]=11101(二进制)=29(十进制)确定,通过查表2可以确定该访问指令通过访问通道2访问DRAM,同时,根据查表2还可以确定mode3_floor_PA[3:0]=9,这样,ChannelPA[30:0]={(Global PA[32:12]*11+mode3_floor_PA[3:0]),Global PA[6:0]}={(0x1*11+9),0x00}=0xa00,进而根据该访问通道2和该访问通道2下的地址PA访问DRAM 2。
需要说明的是,由表3可知,由于PA[x+4:x](x∈[7:12],当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7)的查表范围为0~31,但是映射的3个访问通道的范围为0~32,从而导致访问通道2中的一块内存没有被使用,使得在3访问通道交织模式中,访问通道利用率为32/33。
应理解,这里3访问通道的交织访问由PA[x+4:x]确定,是通过仔细推算所得。综合考虑DRAM的利用率和寄存器转换级电路(Register TransportLevel,RTL)代码综合频率最优等因素,以避免位宽小于5比特造成DRAM利用率下降,或位宽太宽导致时序变差、综合频率无法提高等,本发明对此不进行限定。
可选地,该方法还包括:
当该第三字段的值指示通过单访问通道访问该DRAM时,根据该第三字段,确定该单访问通道和该单访问通道下的地址。
具体而言,总线根据访问地址获知访问模式为3+1访问通道模式,再通过PA[32:31](即第三字段)=2’b11(即第三字段的值),确定访问指令只通过访问通道3访问DRAM。进而,将除去第三字段的物理地址确定为访问地址PA[30:0]=PA[30:0]。
因此,在特定应用场景只能使用部分通道访问DRAM时,通过隔离的单通道访问可以降低功耗,或者CPU和IO外设同时访问DRAM时,通过信道的隔离可以提高DRAM的利用率,而且在预留单访问通道之后,与单访问通道平行的3访问通道下的通道空间与4访问通道下的通道空间不做区别使用。
可选地,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:
当该第一字段的值指示该交织模式为4访问通道交织模式时,确定该物理地址中的第七字段,该第七字段用于指示在该4个访问通道中选择一个访问通道访问该DRAM;
根据该第二字段的值,确定该第七字段的值;
根据预先设定的该第七字段的不同值与该4个访问通道的映射关系,确定该第七字段的值对应的第三访问通道;
根据该第七字段,确定该第三访问通道下的地址。
具体而言,如图5所示,4访问通道交织模式,即CPU或IO外设发出访问DRAM的访问指令,并根据地址交织粒度的不同,在DRAM的4个访问通道间做交织访问。由上述可知,根据指示访问通道交织模式的第一字段,若chan_mode[1:0]为2’b00时,CPU或IO外设通过4访问通道交织模式访问DRAM。
访问指令可以通过PA[x+1:x]选择信道。若x=7,则PA[x+1:x]=PA[8:7](即第七字段),即通过7bit和8bit的值来选择访问通道访问DRAM。若PA[8:7]=2’b00(即第七字段的值),即使用Channel 0访问DRAM;若PA[8:7]=2’b01,即使用Channel 1访问DRAM;若PA[8:7]=2’b10,即使用Channel 2访问DRAM;若PA[8:7]=2’b11,即使用Channel 3访问DRAM。
根据第二字段的值可以确定x的值,即当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7。进而,根据PA[x+1:x]选择4访问通道交织模式中的信道。进而,将除去第七字段的物理地址确定为选中的访问通道下的地址PA[30:0]={PA[32:x+2],PA[x-1:0]}。
可选地,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:
当该第一字段指示该交织模式为双访问通道交织模式时,确定该物理地址中的第五字段,该第五字段用于指示在两组访问通道组合中选择一个访问通道组合访问该DRAM;
当该第五字段的值指示在第一访问通道组合中的两个访问通道间交织访问该DRAM时,确定该物理地址中的第六字段,该第六字段用于指示在该第一访问通道组合中选择一个访问通道访问该DRAM;
根据该第二字段的值,确定该第六字段的值;
根据预先设定的该第六字段的不同值与该第一访问通道组合中的访问通道的对应关系,确定该第六字段的值对应的第二访问通道;
根据该第五字段和该第六字段,确定该第二访问通道下的地址。
具体而言,双访问通道交织模式,即4个访问通道分为两个组合,每个组合中的两个访问通道进行交织访问,且每个组合的访问通道相互隔离(如图6所示)。若chan_mode[1:0]为2’b10时,CPU或IO外设通过双访问通道交织模式访问DRAM。
具体地,若PA[32](即第五字段)=1’b0(即第五字段的值)时,访问指令在访问通道0和访问通道1间交织访问DRAM(可以看作为第一访问通道组合)。根据第二字段的值确定x的值,即当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7。进而,根据PA[x](即第六字段)的值在访问通道0和访问通道1间选择访问通道,以及根据PA[30:0]={PA[31:x+1],PA[x-1:0]}确定选中的访问通道下的地址(即将除去第五字段和第六字段的物理地址确定为选中的访问通道下的地址)。
例如,若PA[x]=0,访问指令选择访问通道0访问DRAM;若PA[x]=1,访问指令选择访问通道1访问DRAM。
若PA[32]=1’b0时,访问指令在访问通道2和访问通道3间交织访问DRAM(可以看作为第二访问通道组合)。根据第二字段的值确定x的值,即当chan_gran的值为1~6时,x=6+chan_gran[2:0],其它情况,x=7。进而,根据PA[x]的取值在访问通道2和访问通道3间选择访问通道,以及根据PA[30:0]={PA[31:x+1],PA[x-1:0]}确定选中的访问通道下的地址。
例如,若PA[x]=0,访问指令选择访问通道2访问DRAM;若PA[x]=1,访问指令选择访问通道3访问DRAM。
可选地,该根据该第一字段和该第二字段确定该访问通道和该访问通道下的地址包括:
当该第一字段指示该交织模式为单访问通道模式时,确定该物理地址中的第八字段,该第八字段用于指示选择单通道访问该DRAM;
根据该第八字段,确定选中的单访问通道和该选中的单访问通道下的地址。
具体而言,单访问通道模式,即每个访问通道都相互独立,根据访问指令中的地址可以确定选择一个访问通道进行访问DRAM(如图7所示)。若chan_mode[1:0]为2’b11时,没有访问通道间的地址交织。
访问指令的访问通道选择由PA[32:31](即第八字段)决定:当PA[32:31]=2’b00时,则指令只访问通道0;当PA[32:31]=2’b01时,则指令只访问通道1;当PA[32:31]=2’b10时,则指令只访问通道2;当PA[32:31]=2’b11时,则指令只访问通道3。相应地,访问通道下的访问地址为PA[30:0]=PA[30:0](即将除去第八字段的物理地址确定为访问通道下的地址)。
应理解,单访问通道交织模式中,不需要考虑交织粒度对访问通道选择的影响。
综上所述,通过第一字段chan_mode[1:0]的取值和访问通道交织模式间的映射关系可以如下表3所示。
表3
此外,若用y表示DRAM的访问通道地址channel PA[30:0],x表示GlobalPA[34:0],那么无论在哪种访问通道交织模式下,x与y都是一一映射的。若做如下定义:
y=f(x),f(x)表示4访问通道交织模式下,y与x的映射关系(见图5);
y=i(x),i(x)表示3+1访问通道交织模式下,y与x的映射关系(见图4);
y=g(x),g(x)表示双访问通道交织模式下,y与x的映射关系(见图6);
y=h(x),h(x)表示单访问通道模式下,y与x的映射关系(见图7);
则在本发明实施例中,就是将y的不同取值范围(连续地址区间)分配给不同的交织模式,然后通过不同交织模式下,y与x的反映射可以得到不同交织模式下x的取值范围。从而确保不同的交织模式映射的内存空间不会出现相互重叠。
在S150,根据该访问通道和该访问通道下的地址,访问该DRAM。
因此,本发明实施例的访问动态随机存储器DRAM的方法,接收包括访问地址的访问指令,该访问地址中增添设置的第一字段指示交织模式、第二字段指示交织粒度,根据该交织模式和该交织粒度确定访问通道和访问通道下的地址,并根据该访问通道和该访问通道下的地址访问该DRAM,从而实现同时支持多种交织模式和交织粒度的控制方式。
上文结合图2、图3至图7,详细描述了根据本发明实施例的访问动态随机存储器DRAM的方法,下面通过图8详细描述根据本发明实施例的访问动态随机存储器DRAM的装置。
图8示出了根据本发明例的访问动态随机存储器DRAM的装置300的示意性框图。如图8所示,该装置300包括:
接收模块310,接收模块,用于接收访问指令,该访问指令包括访问地址,该访问地址包括物理地址和增添设置的第一字段和第二字段,其中,该第一字段用于指示交织模式,该交织模式表示访问通道的选择方式,该第二字段用于指示交织粒度,该交织粒度表示该访问通道下的地址空间的容量;
确定模块320,用于根据该第一字段和该第二字段,确定该访问通道和该访问通道下的地址;
访问模块350,用于根据该访问通道和该访问通道下的地址,访问该DRAM。
因此,本发明实施例的访问动态随机存储器DRAM的总线,接收包括访问地址的访问指令,该访问地址中增添设置的第一字段指示交织模式、第二字段指示交织粒度,根据该交织模式和该交织粒度确定访问通道和访问通道下的地址,并根据该访问通道和该访问通道下的地址访问该DRAM,从而实现同时支持多种交织模式和交织粒度的控制方式。
在本发明实施例中,可选地,该确定模块320,具体用于:
当该第一字段的值指示该交织模式为3+1访问通道交织模式时,确定该物理地址中的第三字段,该第三字段用于指示在3个访问通道间交织访问该DRAM,或通过单访问通道访问该DRAM;
当该第三字段的值指示在3个访问通道间交织访问该DRAM时,确定该物理地址中的第四字段,该第四字段用于指示在该3个访问通道中选择一个访问通道;
根据该第二字段的值,确定该第四字段的值;
根据预先设定的该第四字段的不同值与该3个访问通道的映射关系,确定该第四字段的值对应的第一访问通道;
根据该第四字段的值,确定该第一访问通道下的地址。
在本发明实施例中,可选地,该装置300还用于:
当该第三字段的值指示通过单访问通道访问该DRAM时,根据该第三字段,确定该单访问通道和该单访问通道下的地址。
在本发明实施例中,可选地,该确定模块320具体用于:
当该第一字段指示该交织模式为双访问通道交织模式时,确定该物理地址中的第五字段,该第五字段用于指示在两组访问通道组合中选择一个访问通道组合访问该DRAM;
当该第五字段的值指示在第一访问通道组合中的两个访问通道间交织访问该DRAM时,确定该物理地址中的第六字段,该第六字段用于指示在该第一访问通道组合中选择一个访问通道访问该DRAM;
根据该第二字段的值,确定该第六字段的值;
根据预先设定的该第六字段的不同值与该第一访问通道组合中的访问通道的对应关系,确定该第六字段的值对应的第二访问通道;
根据该第五字段和该第六字段,确定该第二访问通道下的地址。
可选地,在本发明实施例中,该确定模块320具体用于:
当该第一字段的值指示该交织模式为4访问通道交织模式时,确定该物理地址中的第七字段,该第七字段用于指示在该4个访问通道中选择一个访问通道访问该DRAM;
根据该第二字段的值,确定该第七字段的值;
根据预先设定的该第七字段的不同值与该4个访问通道的映射关系,确定该第七字段的值对应的第三访问通道;
根据该第七字段,确定该第三访问通道下的地址。
在本发明实施例中,可选地,该第一确定模块320具体用于:
当该第一字段指示该交织模式为单访问通道模式时,确定该物理地址中的第八字段,该第八字段用于指示选择单通道访问该DRAM;
根据该第八字段,确定选中的单访问通道和该选中的单访问通道下的地址。
在本发明实施例中,可选地,该第一字段的长度为两个比特位。
可选地,在本发明实施例中,该第二字段的长度为三个比特位。
在本发明实施例中,可选地,该第一字段的值与交织模式一一映射。
可选地,在本发明实施例中,该第二字段的值与交织粒度一一映射。
在本发明实施例中,可选地,该交织粒度包括128字节、256字节、512字节、1024字节、2048字节和4096字节中的任意一种。
因此,本发明实施例的访问动态随机存储器DRAM的总线,接收包括访问地址的访问指令,该访问地址中增添设置的第一字段指示交织模式、第二字段指示交织粒度,根据该交织模式和该交织粒度确定访问通道和访问通道下的地址,并根据该访问通道和该访问通道下的地址访问该DRAM,从而实现同时支持多种交织模式和交织粒度的控制方式。
图9示出了本发明实施例提供的访问动态随机存储器DRAM的系统,该系统500包括:
CPU或IO外设510、本发明实施例的总线520和本发明实施例的DRAM530。
具体而言,访问动态随机存储器DRAM的系统可以包括至少一个处理器(例如CPU),至少一个网络接口或者其他通信接口,存储器,和至少一个通信总线,用于实现这些装置之间的连接通信。处理器用于执行存储器中存储的可执行模块,例如计算机程序。存储器可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。
应理解,本发明中的具体的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
还应理解,在本发明实施例中,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种访问动态随机存储器DRAM的方法,其特征在于,所述方法包括:
接收访问指令,所述访问指令包括访问地址,所述访问地址包括物理地址和增添设置的第一字段和第二字段,其中,所述第一字段用于指示交织模式,所述交织模式表示访问通道的选择方式,所述第二字段用于指示交织粒度,所述交织粒度表示所述访问通道下的地址空间的容量;
根据所述第一字段和所述第二字段,确定所述访问通道和所述访问通道下的地址;
根据所述访问通道和所述访问通道下的地址,访问所述DRAM。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一字段和所述第二字段确定所述访问通道和所述访问通道下的地址包括:
当所述第一字段的值指示所述交织模式为3+1访问通道交织模式时,确定所述物理地址中的第三字段,所述第三字段用于指示在3个访问通道间交织访问所述DRAM,或通过单访问通道访问所述DRAM;
当所述第三字段的值指示在3个访问通道间交织访问所述DRAM时,确定所述物理地址中的第四字段,所述第四字段用于指示在所述3个访问通道中选择一个访问通道;
根据所述第二字段的值,确定所述第四字段的值;
根据预先设定的所述第四字段的不同值与所述3个访问通道的映射关系,确定所述第四字段的值对应的第一访问通道;
根据所述第四字段的值,确定所述第一访问通道下的地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述第三字段的值指示通过单访问通道访问所述DRAM时,根据所述第三字段,确定所述单访问通道和所述单访问通道下的地址。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一字段和所述第二字段确定所述访问通道和所述访问通道下的地址包括:
当所述第一字段指示所述交织模式为双访问通道交织模式时,确定所述物理地址中的第五字段,所述第五字段用于指示在两组访问通道组合中选择一个访问通道组合访问所述DRAM;
当所述第五字段的值指示在第一访问通道组合中的两个访问通道间交织访问所述DRAM时,确定所述物理地址中的第六字段,所述第六字段用于指示在所述第一访问通道组合中选择一个访问通道访问所述DRAM;
根据所述第二字段的值,确定所述第六字段的值;
根据预先设定的所述第六字段的不同值与所述第一访问通道组合中的访问通道的对应关系,确定所述第六字段的值对应的第二访问通道;
根据所述第五字段和所述第六字段,确定所述第二访问通道下的地址。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一字段和所述第二字段确定所述访问通道和所述访问通道下的地址包括:
当所述第一字段的值指示所述交织模式为4访问通道交织模式时,确定所述物理地址中的第七字段,所述第七字段用于指示在所述4个访问通道中选择一个访问通道访问所述DRAM;
根据所述第二字段的值,确定所述第七字段的值;
根据预先设定的所述第七字段的不同值与所述4个访问通道的映射关系,确定所述第七字段的值对应的第三访问通道;
根据所述第七字段,确定所述第三访问通道下的地址。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一字段和所述第二字段确定所述访问通道和所述访问通道下的地址包括:
当所述第一字段指示所述交织模式为单访问通道模式时,确定所述物理地址中的第八字段,所述第八字段用于指示选择单通道访问所述DRAM;
根据所述第八字段,确定选中的单访问通道和所述选中的单访问通道下的地址。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一字段包括至少两个比特位,所述第二字段包括至少三个比特位。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述交织粒度包括128字节、256字节、512字节、1024字节、2048字节和4096字节中的任意一种。
9.一种用于访问动态随机存储器DRAM的总线,其特征在于,所述总线包括用于执行权利要求1至权利要求8中任一项所述的访问动态随机存储DRAM的方法的模块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135661.4A CN107180001B (zh) | 2016-03-10 | 2016-03-10 | 访问动态随机存储器dram的方法和总线 |
US15/454,014 US10452604B2 (en) | 2016-03-10 | 2017-03-09 | Method and bus for accessing dynamic random access memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135661.4A CN107180001B (zh) | 2016-03-10 | 2016-03-10 | 访问动态随机存储器dram的方法和总线 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107180001A true CN107180001A (zh) | 2017-09-19 |
CN107180001B CN107180001B (zh) | 2020-02-21 |
Family
ID=59788158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610135661.4A Active CN107180001B (zh) | 2016-03-10 | 2016-03-10 | 访问动态随机存储器dram的方法和总线 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10452604B2 (zh) |
CN (1) | CN107180001B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741329A (zh) * | 2022-06-09 | 2022-07-12 | 芯动微电子科技(珠海)有限公司 | 一种多粒度组合的存储器数据交织方法和交织模块 |
WO2022160321A1 (zh) * | 2021-01-30 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
WO2022160214A1 (zh) * | 2021-01-28 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
CN115913817A (zh) * | 2023-01-28 | 2023-04-04 | 南京芯驰半导体科技有限公司 | 多通路虚拟化总线系统、控制方法、芯片及电子设备 |
CN116225346A (zh) * | 2023-05-09 | 2023-06-06 | 此芯科技(上海)有限公司 | 一种内存数据访问方法及电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642734B1 (en) * | 2018-12-03 | 2020-05-05 | Advanced Micro Devices, Inc. | Non-power of two memory configuration |
US11429528B2 (en) * | 2020-11-19 | 2022-08-30 | Micron Technology, Inc. | Split cache for address mapping data |
JP2023044521A (ja) | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305540B1 (en) * | 2001-12-31 | 2007-12-04 | Apple Inc. | Method and apparatus for data processing |
CN102043729A (zh) * | 2009-10-20 | 2011-05-04 | 杭州华三通信技术有限公司 | 动态随机访问存储器的内存管理方法及系统 |
US8762595B1 (en) * | 2005-04-05 | 2014-06-24 | Oracle America, Inc. | Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness |
CN104346404A (zh) * | 2013-08-08 | 2015-02-11 | 华为技术有限公司 | 一种访问数据的方法、设备及系统 |
US20150081989A1 (en) * | 2013-09-13 | 2015-03-19 | Sung Hyun Lee | Semiconductor devices including application processor connected to high-bandwidth memory and low-bandwidth memory, and channel interleaving method thereof |
US9218278B2 (en) * | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8345701B1 (en) * | 2003-08-26 | 2013-01-01 | F5 Networks, Inc. | Memory system for controlling distribution of packet data across a switch |
US7213099B2 (en) * | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
US7805587B1 (en) * | 2006-11-01 | 2010-09-28 | Nvidia Corporation | Memory addressing controlled by PTE fields |
US9495291B2 (en) * | 2013-09-27 | 2016-11-15 | Qualcomm Incorporated | Configurable spreading function for memory interleaving |
US9483411B2 (en) * | 2014-03-05 | 2016-11-01 | Kabushiki Kaisha Toshiba | Memory system which transfers management information between first and second memories in a burst mode before a read process is performed on a third memory |
-
2016
- 2016-03-10 CN CN201610135661.4A patent/CN107180001B/zh active Active
-
2017
- 2017-03-09 US US15/454,014 patent/US10452604B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7305540B1 (en) * | 2001-12-31 | 2007-12-04 | Apple Inc. | Method and apparatus for data processing |
US8762595B1 (en) * | 2005-04-05 | 2014-06-24 | Oracle America, Inc. | Method for sharing interfaces among multiple domain environments with enhanced hooks for exclusiveness |
CN102043729A (zh) * | 2009-10-20 | 2011-05-04 | 杭州华三通信技术有限公司 | 动态随机访问存储器的内存管理方法及系统 |
US9218278B2 (en) * | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
CN104346404A (zh) * | 2013-08-08 | 2015-02-11 | 华为技术有限公司 | 一种访问数据的方法、设备及系统 |
US20150081989A1 (en) * | 2013-09-13 | 2015-03-19 | Sung Hyun Lee | Semiconductor devices including application processor connected to high-bandwidth memory and low-bandwidth memory, and channel interleaving method thereof |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022160214A1 (zh) * | 2021-01-28 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
WO2022160321A1 (zh) * | 2021-01-30 | 2022-08-04 | 华为技术有限公司 | 一种访问内存的方法和装置 |
CN114741329A (zh) * | 2022-06-09 | 2022-07-12 | 芯动微电子科技(珠海)有限公司 | 一种多粒度组合的存储器数据交织方法和交织模块 |
CN114741329B (zh) * | 2022-06-09 | 2022-09-06 | 芯动微电子科技(珠海)有限公司 | 一种多粒度组合的存储器数据交织方法和交织模块 |
CN115913817A (zh) * | 2023-01-28 | 2023-04-04 | 南京芯驰半导体科技有限公司 | 多通路虚拟化总线系统、控制方法、芯片及电子设备 |
CN116225346A (zh) * | 2023-05-09 | 2023-06-06 | 此芯科技(上海)有限公司 | 一种内存数据访问方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US10452604B2 (en) | 2019-10-22 |
CN107180001B (zh) | 2020-02-21 |
US20170262404A1 (en) | 2017-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107180001A (zh) | 访问动态随机存储器dram的方法和总线 | |
US10956340B2 (en) | Hardware-based pre-page walk virtual address transformation independent of page size utilizing bit shifting based on page size | |
CN105612501B (zh) | 用于跨越具有非对称存储容量的多通道存储器架构对数据均匀交织的系统和方法 | |
CN105183662B (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
CN110825320B (zh) | 虚拟化固态存储介质的隔离区域 | |
US11132300B2 (en) | Memory hierarchy using page-based compression | |
KR102358477B1 (ko) | 인터페이스 제어 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법 | |
KR100890123B1 (ko) | 뱅킹된 메모리를 동적으로 관리하는 방법 및 장치 | |
CN1936869A (zh) | 用于翻译地址的方法和系统 | |
TWI434175B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
US9477605B2 (en) | Memory hierarchy using row-based compression | |
CN112463665B (zh) | 一种用于多通道显存交织模式的切换方法及装置 | |
TW201342378A (zh) | 用於相變記憶體與開關(pcms)之元資料管理及支援技術 | |
CN101510176A (zh) | 通用操作系统对cpu二级缓存访问的控制方法 | |
US7318114B1 (en) | System and method for dynamic memory interleaving and de-interleaving | |
CN104679592A (zh) | 一种微控制单元mcu中资源动态分配的方法和系统 | |
US20220114115A1 (en) | Interleaving of heterogeneous memory targets | |
CN104808950A (zh) | 对嵌入式存储器元件的模式依赖性访问 | |
US8645620B2 (en) | Apparatus and method for accessing a memory device | |
JP3204295B2 (ja) | キャッシュメモリシステム | |
CN105760310B (zh) | 地址分配方法及ddr控制器 | |
CN103329059A (zh) | 用于至少部分地选择至少一个存储器的电路 | |
Therdsteerasukdi et al. | Utilizing radio-frequency interconnect for a many-DIMM DRAM system | |
CN104699414B (zh) | 一种数据读写方法及存储设备 | |
CN102902629B (zh) | 存储空间映射方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |