CN114416612A - 存储器的访问方法、装置、电子设备和存储介质 - Google Patents

存储器的访问方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN114416612A
CN114416612A CN202111620489.9A CN202111620489A CN114416612A CN 114416612 A CN114416612 A CN 114416612A CN 202111620489 A CN202111620489 A CN 202111620489A CN 114416612 A CN114416612 A CN 114416612A
Authority
CN
China
Prior art keywords
bank
channel
access
memory
parameters
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
CN202111620489.9A
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.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies 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 Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN202111620489.9A priority Critical patent/CN114416612A/zh
Publication of CN114416612A publication Critical patent/CN114416612A/zh
Priority to PCT/CN2022/100162 priority patent/WO2023123915A1/zh
Pending legal-status Critical Current

Links

Images

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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明涉及计算机技术领域,提供一种存储器的访问方法、装置、电子设备和存储介质。存储器包括N个BANK。存储器的访问方法包括:获取DMA发出的M个通道的存储器访问请求,M为大于1的整数;根据每个通道的存储器访问请求获取通道的BANK访问参数;BANK访问参数包括与N个BANK一一对应的N组参数;根据M个通道的BANK访问参数并行确定每个通道的授权参数;授权参数用于指示通道可访问的BANK。本发明提供的存储器的访问方法,在DMA通过多通道访问存储器的场景中,实现了冲突的并行判断和存储器的并行访问,缩短了逻辑处理时延,提高了存储器的访问效率。

Description

存储器的访问方法、装置、电子设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种存储器的访问方法、装置、电子设备和存储介质。
背景技术
存储器(Memory)是现代信息技术中用于保存信息的记忆设备。随着计算机技术和存储技术的发展,电子设备中存储器的容量越来越大。通常,存储器包括多个BANK(也称为存储体)。随着存储器容量的不断增大,BANK的数量也在不断增大。
相关技术中,直接存储器访问(Direct Memory Access,DMA)通过多个访问通道对存储器进行访问时,需要串行检测多个通道的访问是否发生冲突。访问通道的个数越多、BANK的个数越多,则逻辑处理的延时越大,导致存储器访问的延时较大、访问效率很低。
发明内容
本发明提供一种存储器的访问方法、装置、电子设备和存储介质,降低了存储器访问的延时,提高了访问效率。
第一方面,本发明提供一种存储器的访问方法,应用于对存储器的访问,所述存储器包括N个BANK,N为大于1的整数,所述方法包括:获取DMA发出的M个通道的存储器访问请求;M为大于1的整数;根据每个所述通道的存储器访问请求获取所述通道的BANK访问参数;所述BANK访问参数包括与所述N个BANK一一对应的N组参数;根据所述M个通道的BANK访问参数并行确定每个所述通道的授权参数;所述授权参数用于指示所述通道可访问的BANK。
可选的,每组所述参数包括BANK访问标识和BANK访问地址;所述BANK访问标识用于指示所述通道是否访问所述BANK;所述根据所述M个通道的BANK访问参数并行确定每个所述通道的授权参数,包括:获取所述M个通道的访问优先级;根据所述访问优先级确定每个所述通道的目标通道,所述目标通道的优先级高于所述通道的优先级;对于每个所述通道,根据所述通道和所述通道的目标通道的BANK访问标识和BANK访问地址,确定所述通道的授权参数。
可选的,所述根据所述通道和所述通道的目标通道的BANK访问标识和BANK访问地址,确定所述通道的授权参数,包括:根据所述通道的目标通道的BANK访问标识、所述通道的BANK访问地址和所述通道的目标通道的BANK访问地址,确定所述目标通道的第一参数和第二参数;所述第一参数用于指示所述通道和所述目标通道在BANK访问地址不冲突的情况下所述通道可访问的BANK;所述第二参数用于指示所述通道和所述目标通道在BANK访问地址冲突的情况下所述通道不可访问的BANK;根据所述目标通道的第一参数和第二参数,以及所述通道的BANK访问标识,确定所述通道的授权参数。
可选的,所述根据所述目标通道的第一参数和第二参数,以及所述通道的BANK访问标识,确定所述通道的授权参数,包括:根据所述第一参数和所述第二参数确定第三参数,所述第三参数用于指示所述通道可访问的BANK;根据所述第三参数和所述通道的BANK访问标识,确定所述通道的授权参数。
可选的,存储器的访问方法还包括:根据所述M个通道的授权参数和BANK访问参数对所述M个通道的存储器访问请求进行合并,确定存储器信号;所述存储器信号包括N维参数,所述N维与所述N个BANK一一对应;输出所述存储器信号。
可选的,所述存储器信号包括N维的使能参数、存储器地址参数、存储器写指示参数和存储器写数据参数;所述使能参数用于指示所述M个通道是否访问所述BANK,所述存储器地址参数用于指示所述M个通道访问的所述BANK的地址,所述存储器写指示参数用于指示所述M个通道向所述BANK中写入数据的位置,所述存储器写数据参数用于指示被写入的数据。
可选的,每组所述参数包括BANK写指示参数和BANK写数据参数;所述根据所述M个通道的授权参数和BANK访问参数对所述M个通道的存储器访问请求进行合并,确定存储器信号,包括:根据所述M个通道的授权参数确定所述使能参数;根据所述M个通道的授权参数和BANK访问地址,确定所述存储器地址参数;根据所述M个通道的授权参数和BANK写指示参数,确定所述存储器写指示参数;根据所述M个通道的授权参数和BANK写数据参数,确定所述存储器写数据参数。
第二方面,提供一种存储器的访问装置,应用于对存储器的访问,所述存储器包括N个BANK,N为大于1的整数,所述装置包括:获取模块,用于获取直接存储器访问DMA发出的M个通道的存储器访问请求;M为大于1的整数;译码模块,用于根据每个所述通道的存储器访问请求获取所述通道的BANK访问参数;所述BANK访问参数包括与所述N个BANK一一对应的N组参数;处理模块,用于根据所述M个通道的BANK访问参数并行确定每个所述通道的授权参数;所述授权参数用于指示所述通道可访问的BANK。
第三方面,本发明提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明提供的存储器的访问方法。
第四方面,提供一种芯片,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明提供的存储器的访问方法。
第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明提供的存储器的访问方法。
本发明提供一种存储器的访问方法、装置、电子设备和存储介质,通过对DMA发出的M个通道的存储器访问请求进行BANK译码,可以获得每个通道对每个BANK进行访问的BANK访问参数,基于BANK访问参数采用并行处理逻辑同时对M个通道进行冲突检测,从而实现了多个通道的并行冲突检测和存储器的并行访问,缩短了逻辑处理时延,提高了存储器的访问效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的DMA访问存储器的原理示意图;
图2为本发明实施例提供的存储器的访问方法的一种流程图;
图3为本发明实施例提供的存储器的访问方法的另一种流程图;
图4为本发明实施例提供的存储器的访问装置的一种结构示意图;
图5为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请实施例中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
首先,对本发明涉及的概念进行说明。
1、BAND
通常,在芯片的内部,数据的存储是以位(bit)为单位写入一张大的矩阵中,每个单元可以称为单元格(CELL)。如果指定一个行(Row),再指定一个列(Column),就可以准确的定位到某个CELL,这就是内存芯片寻址的基本原理。这个矩阵可以称为内存芯片的BANK,也称为逻辑BANK(Logical BANK)。可选的,内存芯片可以将内存容量分成几个阵列来制造,也就是说内存芯片中包括多个BANK。
比如,每个BANK有8M个CELL,每个CELL由8bit组成,那么,一个BANK的总容量就是8M×8bit=64Mbit,即8MB。假设,存储器包括4个BANK,那么,存储器的总容量就是4×64Mbit=256Mbit,即32MB。
随着计算机技术和存储技术的发展,电子设备中存储器的容量越来越大,存储器包括的BANK的数量也越来越多。
在本发明中,存储器包括N个BANK,N为大于1的整数。本发明对N的取值不做限定。为了方便说明,本发明以N=16作为示例进行说明。
2、DMA
DMA是电子设备中的重要模块,DMA传输可以将数据从一个地址空间复制到另一个地址空间,不需要依赖于中央处理器(central processing unit,CPU),在外设和存储器之间或者在存储器和存储器之间提供了高速的数据传输。当CPU初始化这个传输动作时,传输动作本身是由DMA控制器来实现和完成的。DMA传输不需要CPU直接控制传输,也没有中断处理,通过硬件为存储器和输入/输出(Input/Output,IO)设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。
DMA传输可以通过多个访问通道同时对存储器进行访问。访问通道也可以称为通道。在本发明中,访问通道的个数为M个,M为大于1的整数。本发明对M的取值不做限定。为了方便说明,本发明以M=8作为示例进行说明。
示例性的,图1为本发明实施例提供的DMA访问存储器的原理示意图。如图1所示,通道14的个数M为8个,可以标记为通道0~通道7。存储器包括16个BANK13,即N=16,标记为BANK0~BANK15。DMA11通过8个通道14对16个BANK13进行数据访问,每个BANK13可以被独立的并行访问。其中,访问模块12用于对DMA发出的8个通道的存储器访问请求进行冲突判断,并根据冲突判断结果对8个通道的存储器访问请求进行合并处理,从而实现多通道并行的冲突判断和并行的存储器访问,缩短了逻辑处理时延,提高存储器的访问效率。其中,本发明对访问模块12的名称不做限定,例如,也可以称为存储器的访问装置、存储器的访问设备等。
可选的,DMA的访问包括但不限于下列中的至少一项:从存储器中读取数据(简称为读请求),或者,向存储器中写入数据(简称为写请求)。
可选的,DMA发出的8个通道的存储器访问请求,可以同时为读请求,或者同时为写请求,或者部分为读请求部分为写请求。
3、冲突
在本发明中,M个通道之间会存在访问同一个BANK的冲突,因此需要对DMA发出的M个通道的存储器访问请求进行冲突检测。
如果两个通道访问同一个BANK,但是BANK的地址相同,则确定不冲突,允许两个通道同时获得对该BANK的访问授权。可选的,在一个场景中,两个通道的存储器访问请求均为读请求,且BANK的地址相同。可选的,在另一个场景中,两个通道的存储器访问请求均为写请求,BANK的地址相同,且分别向BANK中的不同区域写数据。
如果两个通道访问同一个BANK,但是BANK的地址不相同,则确定发生冲突。可选的,确定发生冲突时,两个通道需要串行访问该BANK。
下面以具体的实施例对本发明的技术方案进行详细说明。
为了方便说明,本发明各个实施例中以M=8,N=16作为示例进行说明。8个通道可以标记为通道0~通道7。16个BANK可以标记为BANK0~BANK15。道0~通道7的访问优先级依次降低。
图2为本发明实施例提供的存储器的访问方法的一种流程图。本实施例提供的存储器的访问方法,执行主体可以为存储器的访问装置、电子设备或芯片,用于对存储器的访问。其中,存储器包括N个BANK,N为大于1的整数。如图2所示,本实施例提供的存储器的访问方法,可以包括:
S201、获取DMA发出的M个通道的存储器访问请求。
其中,M为大于1的整数。
存储器访问请求中的参数可以参见表1。
表1存储器访问请求中的参数
Figure BDA0003437363870000061
下面结合表1举例说明。
8个通道的存储器访问请求包括的参数可以表示为:dma_req[8]、dma_addr[8]、dma_wdata[8]、dma_wmask[8]、dma_rdata[8]、dma_rmask[8]。其中,[8]表示每个参数均为8维数组。例如,dma_req[8]可以包括dma_req[0],dma_req[1],…,dma_req[7]共计8个参数,分别表示通道0~通道7对应的第一标识信息。
以通道0的存储器访问请求为例,通道0的存储器访问请求可以包括如下参数:第一标识信息dma_req[0]、第一地址信息dma_addr[0]、第一写指示参数dma_wdata[0]、第一写数据参数dma_wmask[0]、第一读指示参数dma_rdata[0]和第一读数据参数dma_rmask[0]。
S202、根据每个通道的存储器访问请求获取通道的BANK访问参数。
其中,BANK访问参数包括与N个BANK一一对应的N组参数。
具体的,对每个通道的存储器访问请求进行BANK译码,可以获取每个通道的BANK访问参数。由于每个通道可以并行访问N个BANK,因此,经过BANK译码后,每个通道的存储器访问请求对应了N个BANK的参数,即,每个通道的BANK访问参数包括了N组参数,N组参数与N个BANK一一对应。
通道的BANK访问参数可以参见表2。
表2通道的BANK访问参数
Figure BDA0003437363870000071
表2中示出的参数(BANK访问标识、BANK访问地址、BANK写指示参数、BANK写数据参数、BANK读指示参数和BANK读数据参数)分别与表1中示出的参数(第一标识信息、第一地址信息、第一写指示参数、第一写数据参数、第一读指示参数和第一读数据参数)一一对应,是通过对表1中的参数进行BANK译码后获得的。
下面结合表2举例说明。
8个通道的BANK访问参数可以表示为:dma_bank_req[8][16]、dma_bank_addr[8][16]、dma_bank_wdata[8][16]、dma_bank_wmask[8][16]、dma_bank_rdata[8][16]、dma_bank_rmask[8][16]。其中,[8][16]表示每个参数均为8×16维的二维数组,[8]对应了8个通道,[16]对应了16个BANK。
例如,dma_bank_req[8][16]包括dma_bank_req[0][0]~dma_bank_req[0][15]、dma_bank_req[1][0]~dma_bank_req[1][15]、dma_bank_req[2][0]~dma_bank_req[2][15]、dma_bank_req[3][0]~dma_bank_req[3][15]、dma_bank_req[4][0]~dma_bank_req[4][15]、dma_bank_req[5][0]~dma_bank_req[5][15]、dma_bank_req[6][0]~dma_bank_req[6][15]、dma_bank_req[7][0]~dma_bank_req[7][15]共计8×16=128个参数。其中,dma_bank_req[0][0]~dma_bank_req[0][15]表示通道0对应的16个BANK的BANK访问标识参数。
可选的,dma_bank_req[i][j]的取值为1时,表示第i个通道需要访问第j个BANK。dma_bank_req[i][j]的取值为0时,表示第i个通道不需要访问第j个BANK。其中,i=0,1,…,M;j=0,1,…,N。
S203、根据M个通道的BANK访问参数并行确定每个通道的授权参数。授权参数用于指示通道可访问的BANK。
具体的,M个通道的BANK访问参数可以指示出M个通道中每个通道对N个BANK中每个BANK的访问情况,因此,可以根据M个通道的BANK访问参数并行确定M个通道的授权参数,也就是可以通过并行处理逻辑对M个通道同时进行冲突检测,获得冲突检测结果,确定每个通道可访问的BANK。
可见,本实施例提供的存储器的访问方法,适用于DMA通过M个通道对N个BANK进行并行访问的场景。通过对DMA发出的M个通道的存储器访问请求进行BANK译码,可以获得每个通道对每个BANK进行访问的BANK访问参数,基于BANK访问参数采用并行处理逻辑同时对M个通道进行冲突检测,从而实现了多个通道的并行冲突检测和存储器的并行访问,缩短了逻辑处理时延,提高了存储器的访问效率。
可选的,图3为本发明实施例提供的存储器的访问方法的另一种流程图。如图3所示,S203中,根据M个通道的BANK访问参数并行确定每个通道的授权参数,可以包括:
S301、获取M个通道的访问优先级。
其中,访问优先级用于指示M个通道的访问先后顺序和/或访问授权先后顺序。举例说明。假设,通道0的访问优先级高于通道1的访问优先级。如果通道0和通道1的访问不冲突,比如均访问BANK0且BANK0的地址相同。那么,如果通道0确定可以访问BANK0,则通道1必然可以访问BANK0。如果通道0和通道1的访问冲突,比如均访问BANK0且BANK0的地址不同。那么,如果通道0确定可以访问BANK0,则通道1不可以访问BANK0,通道0和通道1需要串行访问BANK0。
可选的,M个通道的访问优先级可以为预设的访问优先级。例如,通道0~通道7的访问优先级依次降低,即,通道0的访问优先级最高,通道7的访问优先级最低。
可选的,M个通道的访问优先级可以实时获得。
S302、根据访问优先级确定每个通道的目标通道,目标通道的优先级高于通道的优先级。
举例说明。
假设,通道0~通道7的访问优先级依次降低。对于通道2,目标通道包括通道0和通道1。对于通道4,目标通道包括通道0~通道3。对于通道7,目标通道包括通道0~通道6。
S303、对于每个通道,根据通道和通道的目标通道的BANK访问标识和BANK访问地址,确定通道的授权参数。
其中,BANK访问标识用于指示通道是否对BANK进行访问。通过BANK访问地址可以确定访问优先级不同的两个通道的地址是否冲突。可以理解,如果高访问优先级的通道对某个BANK进行访问,且高访问优先级和低访问优先级的通道不冲突,则低访问优先级的通道可以对该BANK进行访问。如果高访问优先级的通道对某个BANK进行访问,且高访问优先级和低访问优先级的通道冲突,则低访问优先级的通道不能对该BANK进行访问。如果高访问优先级的通道不对某个BANK进行访问,则低访问优先级的通道可以对该BANK进行访问。低访问优先级的通道不会对高访问优先级的通道形成影响。
因此,对于某个通道,只需要参考访问优先级高于该通道的目标通道和该通道自身的参数,就可以确定该通道的授权参数,确定该通道可以访问的BANK。
举例说明。
对于通道2,目标通道包括通道0和通道1。可以根据通道2的BANK访问标识和BANK访问地址,以及,通道0和通道1的BANK访问标识和BANK访问地址,确定通道2的授权参数。
对于通道7,目标通道包括通道0~通道6。可以根据通道7的BANK访问标识和BANK访问地址,以及,通道0~通道6的BANK访问标识和BANK访问地址,确定通道7的授权参数。
可见,在该实现方式中,根据M个通道的访问优先级可以确定每个通道对应的高于该通道访问优先级的目标通道,参考高访问优先级的目标通道和该通道自身的参数对该通道进行冲突检测,确定该通道的授权参数,避免了对低于该通道访问优先级的通道的相关参数的处理,提高了同时对M个通道进行冲突检测的检测效率,缩短了逻辑处理时延,提高了存储器的访问效率。
可选的,S303中,根据通道和通道的目标通道的BANK访问标识和BANK访问地址,确定通道的授权参数,可以包括:
根据通道的目标通道的BANK访问标识、通道的BANK访问地址和通道的目标通道的BANK访问地址,确定第一参数和第二参数。第一参数用于指示通道和目标通道在BANK访问地址不冲突的情况下通道可访问的BANK。第二参数用于指示通道和目标通道在BANK访问地址冲突的情况下通道不可访问的BANK。
根据目标通道的第一参数和第二参数,以及通道的BANK访问标识,确定通道的授权参数。
举例说明。
可选的,在一个示例中,对于通道7,目标通道包括通道0~通道6,i=0,1,2,3,4,5,6。对通道7进行冲突检测,确定通道7的授权参数,可以包括:
步骤71、根据如下算法逻辑确定第i个目标通道的第一参数dma_bank_addr_eq7[i]。
dma_bank_addr_eq7[i]=dma_bank_req[i]&(dma_bank_addr[7]==dma_bank_addr[i])(i=0,1,2,3,4,5,6)。
其中,&和==均为编程语言中的运算符,&表示位与运算,==表示判断两个运算对象是否相等。
dma_bank_req[i]表示第i个目标通道的BANK访问标识,dma_bank_addr[7]表示第7个通道的BANK访问地址,dma_bank_addr[i]表示第i个目标通道的BANK访问地址。
dma_bank_addr[7]==dma_bank_addr[i],表示通道7和第i个目标通道不冲突。
dma_bank_addr_eq7[i]可以指示通道7和第i个目标通道不冲突时第i个目标通道可以访问的BANK。
步骤72、根据如下算法逻辑确定第i个目标通道的第二参数Dma_bank_addr_ne7[i]。
Dma_bank_addr_ne7[i]=dma_bank_req[i]&(dma_bank_addr[7]!=dma_bank_addr[i])(i=0,1,2,3,4,5,6)。
其中,!=为编程语言中的运算符,表示判断两个运算对象是否不同。
dma_bank_addr[7]!=dma_bank_addr[i],表示通道7和第i个目标通道冲突。
dma_bank_addr_eq7[i]可以指示通道7和第i个目标通道冲突时第i个目标通道可以访问的BANK。
步骤73、根据第一参数dma_bank_addr_eq7[i]、第二参数Dma_bank_addr_ne7[i]和通道7的BANK访问标识dma_bank_req[7],可以确定通道7的授权参数。
可选的,在另一个示例中,对于通道6,目标通道包括通道0~通道5,i=0,1,2,3,4,5。对通道6进行冲突检测,确定通道6的授权参数,可以包括:
步骤61、根据如下算法逻辑确定第i个目标通道的第一参数dma_bank_addr_eq6[i]。其中,dma_bank_req[i]表示第i个目标通道的BANK访问标识,dma_bank_addr[6]表示第6个通道的BANK访问地址,dma_bank_addr[i]表示第i个目标通道的BANK访问地址。dma_bank_addr[6]==dma_bank_addr[i],表示通道6和第i个目标通道不冲突。dma_bank_addr_eq6[i]可以指示通道6和第i个目标通道不冲突时第i个目标通道可以访问的BANK。
dma_bank_addr_eq6[i]=dma_bank_req[i]&(dma_bank_addr[6]==dma_bank_addr[i])(i=0,1,2,3,4,5)。
步骤62、根据如下算法逻辑确定第i个目标通道的第二参数Dma_bank_addr_ne6[i]。其中,dma_bank_addr[6]!=dma_bank_addr[i],表示通道6和第i个目标通道冲突。Dma_bank_addr_ne6[i]可以指示通道6和第i个目标通道冲突时第i个目标通道可以访问的BANK。
Dma_bank_addr_ne6[i]=dma_bank_req[i]&(dma_bank_addr[6]!=dma_bank_addr[i])(i=0,1,2,3,4,5)。
步骤63、根据第一参数dma_bank_addr_eq6[i]、第二参数Dma_bank_addr_ne6[i]和通道6的BANK访问标识dma_bank_req[6],可以确定通道6的授权参数。
可选的,根据目标通道的第一参数和第二参数,以及通道的BANK访问标识,确定通道的授权参数,可以包括:
根据第一参数和第二参数确定第三参数,第三参数用于指示通道可访问的BANK。
根据第三参数和通道的BANK访问标识,确定通道的授权参数。
举例说明。
可选的,在一个示例中,对于上述通道7,步骤73可以包括:
步骤731、根据如下算法逻辑确定通道7的第三参数Dma_bank_issue7。
Dma_bank_issue7=dma_bank_addr_eq7[0]|(dma_bank_addr_eq7[1]&(~Dma_bank_addr_ne7[0]))|(dma_bank_addr_eq7[2]&(~(|Dma_bank_addr_ne7[1:0])))|(dma_bank_addr_eq7[3]&(~(|Dma_bank_addr_ne7[2:0])))|(dma_bank_addr_eq7[4]&(~(|Dma_bank_addr_ne7[3:0])))|(dma_bank_addr_eq7[5]&(~(|Dma_bank_addr_ne7[4:0])))|(dma_bank_addr_eq7[6]&(~(|Dma_bank_addr_ne7[5:0])))|((~(|Dma_bank_addr_ne7[6:0])))|。
其中,|和~为编程语言中的运算符,|表示位或运算,~表示位非运算。
(|Dma_bank_addr_ne7[1:0])表示Dma_bank_addr_ne7[0]和Dma_bank_addr_ne7[1]进行位或运算。(|Dma_bank_addr_ne7[2:0])表示Dma_bank_addr_ne7[0]、Dma_bank_addr_ne7[1]和Dma_bank_addr_ne7[2]进行位或运算。其他相似项的含义相似,此处不再赘述。通过该运算,实现了对多个目标通道的第二参数的合并处理。
dma_bank_addr_eq7[0],可以指示通道7和第0个目标通道(通道0)不冲突时通道0可以访问的BANK,即,通道7可以访问的BANK。
(dma_bank_addr_eq7[1]&(~Dma_bank_addr_ne7[0])),可以指示通道7和第1个目标通道(通道1)不冲突时通道1可以访问的BANK,即,通道7可以访问的BANK。
以此类推。
Dma_bank_issue7可以指示通道7和目标通道不冲突时通道7可以访问的BANK。
步骤732、根据如下算法逻辑,根据通道7的第三参数Dma_bank_issue7和通道7的BANK访问标识dma_bank_req[7],确定通道7的授权参数dma_bank_gnt[7]。
dma_bank_gnt[7]=dma_bank_req[7]&Dma_bank_issue7。
可选的,在另一个示例中,对于上述通道6,步骤63可以包括:
步骤631、根据如下算法逻辑确定通道6的第三参数Dma_bank_issue6。
Dma_bank_issue6=dma_bank_addr_eq6[0]|(dma_bank_addr_eq6[1]&(~Dma_bank_addr_ne6[0]))|(dma_bank_addr_eq6[2]&(~(|Dma_bank_addr_ne6[1:0])))|(dma_bank_addr_eq6[3]&(~(|Dma_bank_addr_ne6[2:0])))|(dma_bank_addr_eq6[4]&(~(|Dma_bank_addr_ne6[3:0])))|(dma_bank_addr_eq6[5]&(~(|Dma_bank_addr_ne6[4:0])))|((~(|Dma_bank_addr_ne6[5:0])))|。
步骤632、根据如下算法逻辑,根据通道6的第三参数Dma_bank_issue6和通道6的BANK访问标识dma_bank_req[6],确定通道6的授权参数dma_bank_gnt[6]。
dma_bank_gnt[6]=dma_bank_req[6]&Dma_bank_issue6。
可选的,本实施例提供的存储器的访问方法,还可以包括:
根据M个通道的授权参数和BANK访问参数对M个通道的存储器访问请求进行合并,确定存储器信号。存储器信号包括N维参数,N维与N个BANK一一对应。
输出存储器信号。
可见,在该实现方式中,存储器信号为N维参数,N维与N个BANK一一对应。通过合并处理,当多个通道均可以访问同一个BANK时,则对于该BANK可以实现多个通道的并行访问,降低了存储器的访问时延,提高了存储器的访问效率。
可选的,存储器信号包括的参数可以参见表3。
表3存储器信号的参数
Figure BDA0003437363870000141
可选的,根据M个通道的授权参数和BANK访问参数对M个通道的存储器访问请求进行合并,确定存储器信号,可以包括:
根据M个通道的授权参数确定使能参数。
根据M个通道的授权参数和BANK访问地址,确定存储器地址参数。
根据M个通道的授权参数和BANK写指示参数,确定存储器写指示参数。
根据M个通道的授权参数和BANK写数据参数,确定存储器写数据参数。
举例说明。
A)采用如下算法逻辑,根据M个通道的授权参数dma_bank_gnt[0]~dma_bank_gnt[7]确定使能参数Dma_bank_en。
Dma_bank_en=|dma_bank_gnt[7:0]。
其中,|dma_bank_gnt[7:0]表示dma_bank_gnt[0]~dma_bank_gnt[7]进行位或运算,实现了对M个通道的授权参数的合并。
B)采用如下算法逻辑,根据M个通道的授权参数dma_bank_gnt[0]~dma_bank_gnt[7],以及M个通道的BANK访问地址dma_bank_addr[0]~dma_bank_addr[7],确定存储器地址参数Dma_bank_addr。
Dma_bank_addr=(dma_bank_gnt[0]&dma_bank_addr[0])|(dma_bank_gnt[1]&dma_bank_addr[1])|(dma_bank_gnt[2]&dma_bank_addr[2])|(dma_bank_gnt[3]&dma_bank_addr[3])|(dma_bank_gnt[4]&dma_bank_addr[4])|(dma_bank_gnt[5]&dma_bank_addr[5])|(dma_bank_gnt[6]&dma_bank_addr[6])|(dma_bank_gnt[7]&dma_bank_addr[7])。
其中,(dma_bank_gnt[0]&dma_bank_addr[0])表示通道0可以访问的BANK的地址,以此类推。通过位或运算,实现了M个通道可以访问的BANK地址的合并。
C)采用如下算法逻辑,根据M个通道的授权参数dma_bank_gnt[0]~dma_bank_gnt[7],以及M个通道的BANK写指示参数dma_bank_wmask[0]~dma_bank_wmask[7],确定存储器写指示参数Dma_bank_wmask。
Dma_bank_wmask=(dma_bank_gnt[0]&dma_bank_wmask[0])|(dma_bank_gnt[1]&dma_bank_wmask[1])|(dma_bank_gnt[2]&dma_bank_wmask[2])|(dma_bank_gnt[3]&dma_bank_wmask[3])|(dma_bank_gnt[4]&dma_bank_wmask[4])|(dma_bank_gnt[5]&dma_bank_wmask[5])|(dma_bank_gnt[6]&dma_bank_wmask[6])|(dma_bank_gnt[7]&dma_bank_wmask[7])。
相似的,通过位或运算,实现了M个通道写指示参数的合并。
D)采用如下算法逻辑,根据M个通道的授权参数dma_bank_gnt[0]~dma_bank_gnt[7],以及个通道的BANK写数据参数dma_bank_wdata[0]~dma_bank_wdata[7],确定存储器写数据参数。
Dma_bank_wdata=(dma_bank_gnt[0]&dma_bank_wdata[0])|(dma_bank_gnt[1]&dma_bank_wdata[1])|(dma_bank_gnt[2]&dma_bank_wdata[2])|(dma_bank_gnt[3]&dma_bank_wdata[3])|(dma_bank_gnt[4]&dma_bank_wdata[4])|(dma_bank_gnt[5]&dma_bank_wdata[5])|(dma_bank_gnt[6]&dma_bank_wdata[6])|(dma_bank_gnt[7]&dma_bank_wdata[7])。
相似的,通过位或运算,实现了M个通道写数据参数的合并。
图4为本发明实施例提供的存储器的访问装置的一种结构示意图。本实施例提供的存储器的访问方法,可以执行本实施例提供的存储器的访问方法,应用于对存储器的访问。存储器包括N个BANK,N为大于1的整数。如图4所示,本实施例提供的存储器的访问装置,可以包括:
获取模块401,用于获取DMA发出的M个通道的存储器访问请求。M为大于1的整数。
译码模块402,用于根据每个通道的存储器访问请求获取通道的BANK访问参数。BANK访问参数包括与N个BANK一一对应的N组参数。
处理模块403,用于根据M个通道的BANK访问参数并行确定每个通道的授权参数。授权参数用于指示通道可访问的BANK。
可选的,每组所述参数包括BANK访问标识和BANK访问地址;所述BANK访问标识用于指示所述通道是否访问所述BANK;
所述处理模块403用于:
获取所述M个通道的访问优先级;
根据所述访问优先级确定每个所述通道的目标通道,所述目标通道的优先级高于所述通道的优先级;
对于每个所述通道,根据所述通道和所述通道的目标通道的BANK访问标识和BANK访问地址,确定所述通道的授权参数。
可选的,所述处理模块403用于:
根据所述通道的目标通道的BANK访问标识、所述通道的BANK访问地址和所述通道的目标通道的BANK访问地址,确定所述目标通道的第一参数和第二参数;所述第一参数用于指示所述通道和所述目标通道在BANK访问地址不冲突的情况下所述通道可访问的BANK;所述第二参数用于指示所述通道和所述目标通道在BANK访问地址冲突的情况下所述通道不可访问的BANK;
根据所述目标通道的第一参数和第二参数,以及所述通道的BANK访问标识,确定所述通道的授权参数。
可选的,所述处理模块403用于:
根据所述第一参数和所述第二参数确定第三参数,所述第三参数用于指示所述通道可访问的BANK;
根据所述第三参数和所述通道的BANK访问标识,确定所述通道的授权参数。
可选的,所示处理模块403还用于:
根据所述M个通道的授权参数和BANK访问参数对所述M个通道的存储器访问请求进行合并,确定存储器信号;所述存储器信号包括N维参数,所述N维与所述N个BANK一一对应;
输出所述存储器信号。
可选的,所述存储器信号包括N维的使能参数、存储器地址参数、存储器写指示参数和存储器写数据参数;所述使能参数用于指示所述M个通道是否访问所述BANK,所述存储器地址参数用于指示所述M个通道访问的所述BANK的地址,所述存储器写指示参数用于指示所述M个通道向所述BANK中写入数据的位置,所述存储器写数据参数用于指示被写入的数据。
可选的,每组所述参数包括BANK写指示参数和BANK写数据参数;
所示处理模块403用于:
根据所述M个通道的授权参数确定所述使能参数;
根据所述M个通道的授权参数和BANK访问地址,确定所述存储器地址参数;
根据所述M个通道的授权参数和BANK写指示参数,确定所述存储器写指示参数;
根据所述M个通道的授权参数和BANK写数据参数,确定所述存储器写数据参数。
图5为本发明实施例提供的电子设备的一种结构示意图。如图5所示,本实施例提供的电子设备,可以包括系统总线501连接的处理器502、存储器504和通信接口503。其中,处理器502用于提供计算和控制能力。存储器504包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口503用于实现通信。该计算机程序被处理器502执行时以实现本发明提供的存储器的访问方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请提供的存储器的访问方法的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当清楚的是,本申请实施例中处理器执行计算机程序的过程,与上述方法中各个步骤的执行过程一致,具体可参见上文中的描述。
在一个实施例中,提供了一种芯片,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明提供的存储器的访问方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现本发明提供的存储器的访问方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (11)

1.一种存储器的访问方法,其特征在于,应用于对存储器的访问,所述存储器包括N个存储体BANK,N为大于1的整数,所述方法包括:
获取直接存储器访问DMA发出的M个通道的存储器访问请求;M为大于1的整数;
根据每个所述通道的存储器访问请求获取所述通道的BANK访问参数;所述BANK访问参数包括与所述N个BANK一一对应的N组参数;
根据所述M个通道的BANK访问参数并行确定每个所述通道的授权参数;所述授权参数用于指示所述通道可访问的BANK。
2.根据权利要求1所述的方法,其特征在于,每组所述参数包括BANK访问标识和BANK访问地址;所述BANK访问标识用于指示所述通道是否访问所述BANK;
所述根据所述M个通道的BANK访问参数并行确定每个所述通道的授权参数,包括:
获取所述M个通道的访问优先级;
根据所述访问优先级确定每个所述通道的目标通道,所述目标通道的优先级高于所述通道的优先级;
对于每个所述通道,根据所述通道和所述通道的目标通道的BANK访问标识和BANK访问地址,确定所述通道的授权参数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述通道和所述通道的目标通道的BANK访问标识和BANK访问地址,确定所述通道的授权参数,包括:
根据所述通道的目标通道的BANK访问标识、所述通道的BANK访问地址和所述通道的目标通道的BANK访问地址,确定所述目标通道的第一参数和第二参数;所述第一参数用于指示所述通道和所述目标通道在BANK访问地址不冲突的情况下所述通道可访问的BANK;所述第二参数用于指示所述通道和所述目标通道在BANK访问地址冲突的情况下所述通道不可访问的BANK;
根据所述目标通道的第一参数和第二参数,以及所述通道的BANK访问标识,确定所述通道的授权参数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标通道的第一参数和第二参数,以及所述通道的BANK访问标识,确定所述通道的授权参数,包括:
根据所述第一参数和所述第二参数确定第三参数,所述第三参数用于指示所述通道可访问的BANK;
根据所述第三参数和所述通道的BANK访问标识,确定所述通道的授权参数。
5.根据权利要求1-4中任一项所述的方法,其特征在于,还包括:
根据所述M个通道的授权参数和BANK访问参数对所述M个通道的存储器访问请求进行合并,确定存储器信号;所述存储器信号包括N维参数,所述N维与所述N个BANK一一对应;
输出所述存储器信号。
6.根据权利要求5所述的方法,其特征在于,所述存储器信号包括N维的使能参数、存储器地址参数、存储器写指示参数和存储器写数据参数;所述使能参数用于指示所述M个通道是否访问所述BANK,所述存储器地址参数用于指示所述M个通道访问的所述BANK的地址,所述存储器写指示参数用于指示所述M个通道向所述BANK中写入数据的位置,所述存储器写数据参数用于指示被写入的数据。
7.根据权利要求6所述的方法,其特征在于,每组所述参数包括BANK写指示参数和BANK写数据参数;
所述根据所述M个通道的授权参数和BANK访问参数对所述M个通道的存储器访问请求进行合并,确定存储器信号,包括:
根据所述M个通道的授权参数确定所述使能参数;
根据所述M个通道的授权参数和BANK访问地址,确定所述存储器地址参数;
根据所述M个通道的授权参数和BANK写指示参数,确定所述存储器写指示参数;
根据所述M个通道的授权参数和BANK写数据参数,确定所述存储器写数据参数。
8.一种存储器的访问装置,其特征在于,应用于对存储器的访问,所述存储器包括N个存储体BANK,N为大于1的整数,所述装置包括:
获取模块,用于获取直接存储器访问DMA发出的M个通道的存储器访问请求;M为大于1的整数;
译码模块,用于根据每个所述通道的存储器访问请求获取所述通道的BANK访问参数;所述BANK访问参数包括与所述N个BANK一一对应的N组参数;
处理模块,用于根据所述M个通道的BANK访问参数并行确定每个所述通道的授权参数;所述授权参数用于指示所述通道可访问的BANK。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的方法。
10.一种芯片,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
CN202111620489.9A 2021-12-27 2021-12-27 存储器的访问方法、装置、电子设备和存储介质 Pending CN114416612A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111620489.9A CN114416612A (zh) 2021-12-27 2021-12-27 存储器的访问方法、装置、电子设备和存储介质
PCT/CN2022/100162 WO2023123915A1 (zh) 2021-12-27 2022-06-21 存储器的访问方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111620489.9A CN114416612A (zh) 2021-12-27 2021-12-27 存储器的访问方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN114416612A true CN114416612A (zh) 2022-04-29

Family

ID=81269270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111620489.9A Pending CN114416612A (zh) 2021-12-27 2021-12-27 存储器的访问方法、装置、电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN114416612A (zh)
WO (1) WO2023123915A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115687181A (zh) * 2022-11-07 2023-02-03 上海亿铸智能科技有限公司 一种用于存算处理单元的寻址方法
WO2023123915A1 (zh) * 2021-12-27 2023-07-06 深圳云天励飞技术股份有限公司 存储器的访问方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591814A (zh) * 2011-12-16 2012-07-18 中国科学院自动化研究所 支持多bank访问模式的dram访问控制装置和控制方法
CN112231254A (zh) * 2020-09-22 2021-01-15 深圳云天励飞技术股份有限公司 存储器仲裁方法及存储器控制器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640237B1 (en) * 2012-08-24 2017-05-02 Cypress Semiconductor Corporation Access methods and circuits for memory devices having multiple channels and multiple banks
CN104572519B (zh) * 2014-12-22 2017-06-27 中国电子科技集团公司第三十八研究所 一种用于多处理器的多端口访存控制器及其控制方法
CN109086228B (zh) * 2018-06-26 2022-03-29 深圳市安信智控科技有限公司 具有多个独立访问通道的高速存储器芯片
CN114416612A (zh) * 2021-12-27 2022-04-29 深圳云天励飞技术股份有限公司 存储器的访问方法、装置、电子设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591814A (zh) * 2011-12-16 2012-07-18 中国科学院自动化研究所 支持多bank访问模式的dram访问控制装置和控制方法
CN112231254A (zh) * 2020-09-22 2021-01-15 深圳云天励飞技术股份有限公司 存储器仲裁方法及存储器控制器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123915A1 (zh) * 2021-12-27 2023-07-06 深圳云天励飞技术股份有限公司 存储器的访问方法、装置、电子设备和存储介质
CN115687181A (zh) * 2022-11-07 2023-02-03 上海亿铸智能科技有限公司 一种用于存算处理单元的寻址方法
CN115687181B (zh) * 2022-11-07 2023-05-12 苏州亿铸智能科技有限公司 一种用于存算处理单元的寻址方法

Also Published As

Publication number Publication date
WO2023123915A1 (zh) 2023-07-06

Similar Documents

Publication Publication Date Title
US10540093B2 (en) Multidimensional contiguous memory allocation
CN110582745B (zh) 存储器装置及可促进张量存储器存取的方法
CN109313620B (zh) 存储器协议
US11392488B2 (en) Optimizing storage of application data in memory
CN114416612A (zh) 存储器的访问方法、装置、电子设备和存储介质
WO2016025173A1 (en) Apparatuses and methods for concurrently accessing different memory planes of a memory
CN101719105A (zh) 一种多核系统中对内存访问的优化方法和系统
KR20200108774A (ko) 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법
KR20200123260A (ko) 캐시 및 다중 독립 어레이를 갖는 메모리용 인터페이스
US11392494B2 (en) Technologies for performant column read operations on clustered data in a dimm architecture
CN112368676A (zh) 处理数据的方法和设备
US8762926B2 (en) Method and apparatus for diagnosing a fault of a memory using interim time after execution of an application
US20230400985A1 (en) Pim computing system and pim computation offloading method thereof
CN116737473A (zh) 芯片验证的存储器读取、写入方法及其相关装置
CN110574013B (zh) 存储器形状
CN111694513A (zh) 包括循环指令存储器队列的存储器器件和方法
US11710532B2 (en) Safety and correctness data reading in non-volatile memory devices
US20210373805A1 (en) Command throughput in pim-enabled memory using available data bus bandwidth
TW201833779A (zh) 避免讀取擾動的資料搬移方法以及使用該方法的裝置
US20240094947A1 (en) Memory system
US12001682B2 (en) PIM computing system and memory controller thereof
US20230418474A1 (en) Pim computing system and memory controller thereof
KR20220034939A (ko) 메모리에서 추론
US9087557B2 (en) Programming multiple serial input devices
CN116679876A (zh) 存储器数据读写方法、装置及emmc存储卡

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