CN116414743A - 用于控制存储器的方法、存储器控制器及芯片 - Google Patents
用于控制存储器的方法、存储器控制器及芯片 Download PDFInfo
- Publication number
- CN116414743A CN116414743A CN202310250375.2A CN202310250375A CN116414743A CN 116414743 A CN116414743 A CN 116414743A CN 202310250375 A CN202310250375 A CN 202310250375A CN 116414743 A CN116414743 A CN 116414743A
- Authority
- CN
- China
- Prior art keywords
- request
- transmission
- type
- memory
- requests
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 276
- 238000012546 transfer Methods 0.000 claims description 14
- 230000003139 buffering effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
- G06F13/1673—Details of memory controller using buffers
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供用于控制存储器的方法、存储器控制器及芯片。所述方法包括:接收并缓存基于AXI协议的传输请求,所述传输请求包括读请求和写请求;确定所述传输请求是否为第一类型请求或第二类型请求,所述第一类型请求与增量突发传输INCR相关联,所述第二类型请求与回环突发传输WRAP相关联;如果所述传输请求为所述第一类型请求或所述第二类型请求,确定所述传输请求中的传输地址是否连续;如果所述传输请求中的传输地址连续,对所述传输请求进行合并以生成合并传输请求;以及基于所述合并传输请求对所述存储器进行访问。本公开的技术方案中,通过将地址连续的传输请求合并,有效提升了存储器的访问性能。
Description
技术领域
本公开涉及存储器技术领域,特别地涉及用于控制存储器的方法、存储器控制器、芯片、电子设备及计算机可读存储介质。
背景技术
PSRAM(Pseudo Static Random Access Memory,伪静态随机存储器)具有高带宽、大容量和少引脚的特点,成为SoC常用的一种外部存储设备。现有技术中,主流的PSRAM采用HyperBus串行接口进行数据传输。PSRAM的一次数据传输分为命令地址阶段、延时阶段和数据阶段。其中,数据阶段的占比越大,对存储器访问的性能越高。
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中只需要首地址,支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。AXI是AMBA中一个新的高性能协议。AXI技术丰富了现有的AMBA标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
基于AXI协议的PSRAM控制器由于读写双工的并行特性会存在读写请求的仲裁问题。现有技术中通常采用轮询仲裁或者权重轮询仲裁的方式进行PSRAM存储器的读写访问。当读写请求频繁时,上述仲裁方式容易导致读写请求穿插,导致读写访问的命令地址阶段和延时阶段占用大量带宽,降低了存储器的访问性能。
发明内容
本公开的实施例提供用于控制存储器的方法、存储器控制器及芯片,通过将地址连续的传输请求合并,有效提升了存储器的访问性能。
第一方面,本公开提供一种用于控制存储器的方法。所述方法包括:接收并缓存基于AXI协议的传输请求,所述传输请求包括读请求和写请求;确定所述传输请求是否为第一类型请求或第二类型请求,所述第一类型请求与增量突发传输INCR相关联,所述第二类型请求与回环突发传输WRAP相关联;如果所述传输请求为所述第一类型请求或所述第二类型请求,确定所述传输请求中的传输地址是否连续;如果所述传输请求中的传输地址连续,对所述传输请求进行合并以生成合并传输请求;以及基于所述合并传输请求对所述存储器进行访问。
在第一方面的一种实现方式中,所述方法还包括:如果所述传输请求中的传输地址不连续,对所述传输请求进行轮询仲裁;以及根据仲裁结果基于所述传输请求对所述存储器进行访问。
在第一方面的一种实现方式中,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,对所述传输请求进行合并以生成合并传输请求包括:对所述第一请求和所述第二请求进行合并。
在第一方面的一种实现方式中,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,对所述传输请求进行合并以生成合并传输请求包括:对所述第一请求和所述第二请求进行合并。
在第一方面的一种实现方式中,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求和所述第二请求均为读请求或写请求,对所述传输请求进行合并以生成合并传输请求包括:对所述第一请求中的第一地址阶段和所述第二请求中的第二地址阶段进行合并,以生成所述合并传输请求中的合并地址阶段;以及对所述第一请求中的第一数据阶段和所述第二请求中的第二数据阶段进行合并,以生成所述合并传输请求中的合并数据阶段。
在第一方面的一种实现方式中,所述传输请求包括访问地址、访问长度、访问大小和请求类型,所述请求类型包括与INCR和WRAP相关联的第一类型和第二类型。
在第一方面的一种实现方式中,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,确定所述传输请求中的传输地址是否连续包括:如果所述第一请求的结束地址与所述第二请求的起始地址相同,则确定所述传输请求中的传输地址连续。
在第一方面的一种实现方式中,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,确定所述传输请求中的传输地址是否连续包括:如果所述第一请求的边界地址与所述第二请求的起始地址相同,则确定所述传输请求中的传输地址连续。
在第一方面的一种实现方式中,所述方法还包括:当所述合并传输请求的访问长度大于所述存储器的访问上限时,放弃所述合并;对所述传输请求进行轮询仲裁;以及根据仲裁结果基于所述传输请求对所述存储器进行访问。
在第一方面的一种实现方式中,所述方法还包括:如果所述传输请求不是所述第一类型请求或所述第二类型请求,对所述传输请求进行轮询仲裁;以及根据仲裁结果基于所述传输请求对所述存储器进行访问。
第二方面,本公开提供一种存储器控制器。所述存储器控制器包括:缓存模块,被配置为接收并缓存基于AXI协议的传输请求,所述传输请求包括读请求和写请求;识别模块,被配置为确定所述传输请求是否为第一类型请求或第二类型请求,所述第一类型请求与增量突发传输INCR相关联,所述第二类型请求与回环突发传输WRAP相关联;判断模块,被配置为如果所述传输请求为所述第一类型请求或所述第二类型请求,确定所述传输请求中的传输地址是否连续;合并模块,被配置为如果所述传输请求中的传输地址连续,对所述传输请求进行合并以生成合并传输请求;以及访问模块,被配置为基于所述合并传输请求对存储器进行访问。
在第二方面的一种实现方式中,所述存储器控制器还包括轮询模块,所述轮询模块被配置为:如果所述传输请求中的传输地址不连续,对所述传输请求进行轮询仲裁;以及如果所述传输请求不是所述第一类型请求或所述第二类型请求,对所述传输请求进行轮询仲裁,其中所述访问模块进一步被配置为根据仲裁结果基于所述传输请求对所述存储器进行访问。
第三方面,本公开提供一种芯片。所述芯片包括存储器控制器,所述存储器控制器被配置为执行上述的方法。
第四方面,本公开提供一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时实现上述的方法。
第五方面,本公开提供一种电子设备。所述电子设备包括:存储器,被配置为存储计算机程序;以及处理器,被配置为执行所述计算机程序,以使所述电子设备执行上述的方法。
根据本公开的实施例,用于控制存储器的方法、存储器控制器及芯片通过缓存基于AXI协议的传输请求,对所述传输请求进行传输地址连续判断,并将传输地址连续的请求进行合并,从而节省了命令地址阶段和延时阶段的带宽开销,有效提高了存储器控制器对存储器的读写访问带宽,提升了存储器的访问性能。
附图说明
图1显示为本公开的用于控制存储器的方法于一实施例中的流程图;
图2显示为本公开的用于控制存储器的方法于一实施例中的框架示意图;
图3显示为现有技术中的轮询调度的仲裁方法于一实施例中的时序图;
图4显示为本公开的用于控制存储器的方法于一实施例中时序图;
图5显示为本公开的存储器控制器于一实施例中的结构示意图;
图6显示为本公开的电子设备于一实施例中的结构示意图。
具体实施方式
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本公开的基本构想,遂图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本公开的用于控制存储器的方法、存储器控制器及芯片首先对基于AXI协议的传输请求进行缓存,再对所述基于AXI协议的传输请求进行传输地址连续判断,最后将传输地址连续的请求进行合并。通过上述方式,节省了存储器读写过程中命令地址阶段和延时阶段的带宽开销,提升了存储器的访问性能。
在本公开的一些实施例中,所述方法可以用于控制PSRAM的读写访问,并且所述存储器控制器可以为PSRAM控制器。
下文中,通过具体实施方式结合附图来描述根据本公开的实施例。
图1显示为本公开的用于控制存储器的方法于一实施例中的结构示意图。图2显示为本公开的用于控制存储器的方法于一实施例中的框架示意图。如图1所示,本公开的用于控制存储器的方法包括步骤S1至步骤S5。
在步骤S1,接收并缓存基于AXI协议的传输请求,所述传输请求包括读请求和写请求。
在一些实施例中,所述存储器控制器设置有缓存,基于所述缓存依次接收并存储基于AXI协议的传输请求。在本公开的实施例中,所述传输请求包括访问地址、访问长度、访问大小和请求类型,所述请求类型包括与增量突发传输(INCR)和回环突发传输(WRAP)相关联的第一类型和第二类型。
在步骤S2,确定所述传输请求是否为第一类型请求或第二类型请求,所述第一类型请求与增量突发传输(INCR)相关联,所述第二类型请求与回环突发传输(WRAP)相关联。
在AXI协议中只有三种传输,分别为FIXED传输、INCR传输以及WRAP传输。FIXED传输表示固定地址传输,一般不用于存储器的数据搬运,因此本公开只涉及RAP传输和INCR传输。另外,INCR传输指的是AXI协议中的Incrementing-address突发传输,地址随数据传输持续递增,且后续数据的地址在初始地址的基础上进行递增,递增幅度与传输宽度相同。此外,WRAP传输指的是AXI协议中的回环突发传输,它的特性是传输到回环边界的时候会跳回到起始回环地址继续传输。
本公开的实施例中,存储器可采用HybridWrap传输特性。HybridWrap传输相对于普通WRAP传输的差别在于:当进行完一次回环传输之后,会从回环边界处接上INCR继续传输。例如,Hybird8的传输地址变化为:02,03,04,05,06,07,00,01。回环完成,从边界地址开始INCR传输,则地址变化为08,09,0A,0B,0C,0D,0E,0F,10,11,12,...因此,当在前传输为WRAP传输或INCR传输后,可接上INCR继续传输,从而为后续的传输合并提供了基础。
在步骤S3,如果所述传输请求为所述第一类型请求或所述第二类型请求,确定所述传输请求中的传输地址是否连续。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,判断所述传输请求的传输地址是否连续时,需先获取第一请求的结束地址和所述第二请求的起始地址。当所述结束地址与所述起始地址相同时,则可判断所述传输请求中的传输地址连续。
例如,对于INCR传输,根据以下公式判断INCR请求0的结束地址是否与请求1的起始地址相同:
vbegin_addr1=begin_addr0+burst_length0*(1<<burst_size0)。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,判断所述传输请求中的传输地址是否连续时,需先获取所述第一请求的边界地址与所述第二请求的起始地址。当所述边界地址与所述起始地址相同时,则可判断所述传输请求中的传输地址连续。
例如,对于WRAP传输,根据以下公式判断WRAP请求0的边界地址是否与请求1的起始地址相同:
wrap_size0=burst_length0*(1<<burst_size0);
begin_addr1=begin_addr0+wrap_size0–(begin_addr0%wrap_size0)。
在步骤S4,如果所述传输请求中的传输地址连续,对所述传输请求进行合并以生成合并传输请求。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,对所述第一请求和所述第二请求进行合并,生成所述合并传输请求。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,对所述第一请求和所述第二请求进行合并,生成所述合并传输请求。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求和所述第二请求均为读请求或写请求。此时,对所述第一请求中的第一地址阶段和所述第二请求中的第二地址阶段进行合并,以生成所述合并传输请求中的合并地址阶段;同时对所述第一请求中的第一数据阶段和所述第二请求中的第二数据阶段进行合并,以生成所述合并传输请求中的合并数据阶段。
在步骤S5,基于所述合并传输请求对所述存储器进行访问。
在一些实施例中,生成所述合并传输请求后,即可基于所述合并传输请求实现对所述存储器的访问,从而有效节省了存储器读写过程中命令地址阶段和延时阶段的带宽开销。
需要说明的是,在以下三种情形中,所述传输请求无法进行合并,需进行轮询仲裁:
(1)当所述合并传输请求的访问长度大于所述存储器的访问上限时,需放弃所述合并。同时,对所述传输请求进行轮询仲裁,并根据仲裁结果基于所述传输请求对所述存储器进行访问。
(2)如果所述传输请求是所述第一类型请求或所述第二类型请求,但所述传输请求中的传输地址不连续,则无法进行合并,需对所述传输请求进行轮询仲裁,并根据仲裁结果基于所述传输请求对所述存储器进行访问。
(3)如果所述传输请求不是所述第一类型请求或所述第二类型请求,则无法进行合并,需对所述传输请求进行轮询仲裁,并根据仲裁结果基于所述传输请求对所述存储器进行访问。
图3显示为现有技术中的轮询调度的仲裁方法于一实施例中的时序图;图4显示为本公开的用于控制存储器的方法于一实施例中时序图。由图3和图4可知,相较于现有的仲裁机制,本公开的仲裁机制在相同时间内数据阶段占用的时间变多,从而节省了命令地址阶段和延时阶段的带宽开销,有效提高了存储器控制器对存储器的读写访问带宽。
需要说明的是,本公开实施例所述的用于控制存储器的方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本公开的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本公开的保护范围内。
图5显示为本公开的存储器控制器于一实施例中的结构示意图。如图5所示,本公开的存储器控制器包括缓存模块1、识别模块2、判断模块3、合并模块4和轮询模块5。
所述缓存模块1被配置为接收并缓存基于AXI协议的传输请求,所述传输请求包括读请求和写请求。
在一些实施例中,所述存储器控制器设置有缓存,基于所述缓存依次接收并存储基于AXI协议的传输请求。在本公开的实施例中,所述传输请求包括访问地址、访问长度、访问大小和请求类型,所述请求类型包括与增量突发传输INCR和回环突发传输WRAP相关联的第一类型和第二类型。
所述识别模块2与所述缓存模块1相连,被配置为确定所述传输请求是否为第一类型请求或第二类型请求,所述第一类型请求与增量突发传输INCR相关联,所述第二类型请求与回环突发传输WRAP相关联。
本公开的实施例中,存储器可采用HybridWrap传输特性。HybridWrap传输相对于普通WRAP传输的差别在于:当进行完一次回环传输之后,会从回环边界处接上INCR继续传输。例如,Hybird8的传输地址变化为:02,03,04,05,06,07,00,01。回环完成,从边界地址开始INCR传输,则地址变化为08,09,0A,0B,0C,0D,0E,0F,10,11,12,...因此,当在前传输为WRAP传输或INCR传输后,可接上INCR继续传输,从而为后续的传输合并提供了基础。
所述判断模块3与所述识别模块2相连,被配置为如果所述传输请求为所述第一类型请求或所述第二类型请求,确定所述传输请求中的传输地址是否连续。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,判断所述传输请求的传输地址是否连续时,需先获取第一请求的结束地址和所述第二请求的起始地址。当所述结束地址与所述起始地址相同时,则可判断所述传输请求中的传输地址连续。
例如,对于INCR传输,根据以下公式判断INCR请求0的结束地址是否与请求1的起始地址相同:
vbegin_addr1=begin_addr0+burst_length0*(1<<burst_size0)。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,判断所述传输请求中的传输地址是否连续时,需先获取所述第一请求的边界地址与所述第二请求的起始地址。当所述边界地址与所述起始地址相同时,则可判断所述传输请求中的传输地址连续。
例如,对于WRAP传输,根据以下公式判断WRAP请求0的边界地址是否与请求1的起始地址相同:
wrap_size0=burst_length0*(1<<burst_size0);
begin_addr1=begin_addr0+wrap_size0–(begin_addr0%wrap_size0)。
所述合并模块4与所述判断模块3相连,被配置为如果所述传输请求中的传输地址连续,对所述传输请求进行合并以生成合并传输请求。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,对所述第一请求和所述第二请求进行合并,生成所述合并传输请求。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求。此时,对所述第一请求和所述第二请求进行合并,生成所述合并传输请求。
在一些实施例中,所述传输请求包括第一请求和第二请求,所述第一请求和所述第二请求均为读请求或写请求。此时,对所述第一请求中的第一地址阶段和所述第二请求中的第二地址阶段进行合并,以生成所述合并传输请求中的合并地址阶段;同时对所述第一请求中的第一数据阶段和所述第二请求中的第二数据阶段进行合并,以生成所述合并传输请求中的合并数据阶段。
所述访问模块5与所述合并模块4相连,被配置为基于所述合并传输请求对存储器进行访问。
在一些实施例中,生成所述合并传输请求后,所述访问模块5即可基于所述合并传输请求实现对所述存储器的访问,从而有效节省了存储器读写过程中命令地址阶段和延时阶段的带宽开销。
在一些实施例中,所述存储器控制器还包括轮询模块。所述轮询模块被配置为:
(1)当所述合并传输请求的访问长度大于所述存储器的访问上限时,需放弃所述合并。同时,所述访问模块还被配置为对所述传输请求进行轮询仲裁,并根据仲裁结果基于所述传输请求对所述存储器进行访问。
(2)如果所述传输请求是所述第一类型请求或所述第二类型请求,但所述传输请求中的传输地址不连续,则无法进行合并。同时,所述访问模块还被配置为对所述传输请求进行轮询仲裁,并根据仲裁结果基于所述传输请求对所述存储器进行访问。
(3)如果所述传输请求不是所述第一类型请求或所述第二类型请求,则无法进行合并。同时,所述访问模块还被配置为对所述传输请求进行轮询仲裁,并根据仲裁结果基于所述传输请求对所述存储器进行访问。
需要说明的是,本公开所述的存储器控制器的实现装置包括但不限于本实施例列举的存储器控制器的结构,凡是根据本公开的原理所做的现有技术的结构变形和替换,都包括在本公开的保护范围内。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置或方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块/单元可以是或者也可以不是物理上分开的,作为模块/单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块/单元来实现本公开实施例的目的。例如,在本公开各个实施例中的各功能模块/单元可以集成在一个处理模块中,也可以是各个模块/单元单独物理存在,也可以两个或两个以上模块/单元集成在一个模块/单元中。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
本公开实施例还提供了一种计算机可读存储介质。本领域普通技术人员可以理解实现上述实施例的用于控制存储器的方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。上述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本公开还提供一种芯片。所述芯片包括上述存储器控制器。所述存储器控制器被配置为执行上述的用于控制存储器的方法。
本公开实施例还提供了一种电子设备。所述电子设备包括处理器和存储器。
所述存储器用于存储计算机程序。所述存储器可以包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的用于控制存储器的方法。在一些实施例中,所述处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等。在其他实施例中,所述处理器还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
如图6所示,本公开的电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器或者处理单元61,存储器62,连接不同系统组件(包括存储器62和处理单元61)的总线63。
总线63表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器62可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)621和/或高速缓存存储器622。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统623可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线63相连。存储器62可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块6241的程序/实用工具624,可以存储在例如存储器62中,这样的程序模块6241包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块6241通常执行本公开所描述的实施例中的功能和/或方法。
电子设备也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该存储器控制器芯片能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口64进行。并且,电子设备还可以通过网络适配器65与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器65通过总线63与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
上述实施例仅例示性说明本公开的原理及其功效,而非用于限制本公开。任何熟悉此技术的人士皆可在不违背本公开的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本公开所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本公开的权利要求所涵盖。
Claims (15)
1.一种用于控制存储器的方法,其特征在于,包括:
接收并缓存基于AXI协议的传输请求,所述传输请求包括读请求和写请求;
确定所述传输请求是否为第一类型请求或第二类型请求,所述第一类型请求与增量突发传输INCR相关联,所述第二类型请求与回环突发传输WRAP相关联;
如果所述传输请求为所述第一类型请求或所述第二类型请求,确定所述传输请求中的传输地址是否连续;
如果所述传输请求中的传输地址连续,对所述传输请求进行合并以生成合并传输请求;以及
基于所述合并传输请求对所述存储器进行访问。
2.根据权利要求1所述的方法,其特征在于,还包括:
如果所述传输请求中的传输地址不连续,对所述传输请求进行轮询仲裁;以及
根据仲裁结果基于所述传输请求对所述存储器进行访问。
3.根据权利要求1所述的方法,其特征在于,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,
对所述传输请求进行合并以生成合并传输请求包括:对所述第一请求和所述第二请求进行合并。
4.根据权利要求1所述的方法,其特征在于,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,
对所述传输请求进行合并以生成合并传输请求包括:对所述第一请求和所述第二请求进行合并。
5.根据权利要求1所述的方法,其特征在于,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求和所述第二请求均为读请求或写请求,对所述传输请求进行合并以生成合并传输请求包括:
对所述第一请求中的第一地址阶段和所述第二请求中的第二地址阶段进行合并,以生成所述合并传输请求中的合并地址阶段;以及
对所述第一请求中的第一数据阶段和所述第二请求中的第二数据阶段进行合并,以生成所述合并传输请求中的合并数据阶段。
6.根据权利要求1所述的方法,其特征在于,所述传输请求包括访问地址、访问长度、访问大小和请求类型,所述请求类型包括与INCR和WRAP相关联的第一类型和第二类型。
7.根据权利要求1所述的方法,其特征在于,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第一类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,
确定所述传输请求中的传输地址是否连续包括:如果所述第一请求的结束地址与所述第二请求的起始地址相同,则确定所述传输请求中的传输地址连续。
8.根据权利要求1所述的方法,其特征在于,接收并缓存基于AXI协议的传输请求包括:接收并缓存第一请求和第二请求,所述第一请求为所述第二类型请求,所述第二请求为所述第一类型请求和所述第二类型请求中的任一类型请求,
确定所述传输请求中的传输地址是否连续包括:如果所述第一请求的边界地址与所述第二请求的起始地址相同,则确定所述传输请求中的传输地址连续。
9.根据权利要求1所述的方法,其特征在于,还包括:
当所述合并传输请求的访问长度大于所述存储器的访问上限时,放弃所述合并;
对所述传输请求进行轮询仲裁;以及
根据仲裁结果基于所述传输请求对所述存储器进行访问。
10.根据权利要求1所述的方法,其特征在于,还包括:
如果所述传输请求不是所述第一类型请求或所述第二类型请求,对所述传输请求进行轮询仲裁;以及
根据仲裁结果基于所述传输请求对所述存储器进行访问。
11.一种存储器控制器,其特征在于,包括:
缓存模块,被配置为接收并缓存基于AXI协议的传输请求,所述传输请求包括读请求和写请求;
识别模块,被配置为确定所述传输请求是否为第一类型请求或第二类型请求,所述第一类型请求与增量突发传输INCR相关联,所述第二类型请求与回环突发传输WRAP相关联;
判断模块,被配置为如果所述传输请求为所述第一类型请求或所述第二类型请求,确定所述传输请求中的传输地址是否连续;
合并模块,被配置为如果所述传输请求中的传输地址连续,对所述传输请求进行合并以生成合并传输请求;以及
访问模块,被配置为基于所述合并传输请求对存储器进行访问。
12.根据权利要求11所述的存储器控制器,其特征在于,还包括轮询模块,所述轮询模块被配置为:
如果所述传输请求中的传输地址不连续,对所述传输请求进行轮询仲裁;以及
如果所述传输请求不是所述第一类型请求或所述第二类型请求,对所述传输请求进行轮询仲裁,
其中所述访问模块进一步被配置为根据仲裁结果基于所述传输请求对所述存储器进行访问。
13.一种芯片,其特征在于,包括存储器控制器,所述存储器控制器被配置为执行根据权利要求1至10中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现根据权利要求1至10中任一项所述的方法。
15.一种电子设备,其特征在于,包括:
存储器,被配置为存储计算机程序;以及
处理器,被配置为执行所述计算机程序,以使所述电子设备执行根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310250375.2A CN116414743A (zh) | 2023-03-15 | 2023-03-15 | 用于控制存储器的方法、存储器控制器及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310250375.2A CN116414743A (zh) | 2023-03-15 | 2023-03-15 | 用于控制存储器的方法、存储器控制器及芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116414743A true CN116414743A (zh) | 2023-07-11 |
Family
ID=87057483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310250375.2A Pending CN116414743A (zh) | 2023-03-15 | 2023-03-15 | 用于控制存储器的方法、存储器控制器及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116414743A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118245406A (zh) * | 2024-05-27 | 2024-06-25 | 广东匠芯创科技有限公司 | 数据访问方法和系统、psram控制器、存储介质 |
-
2023
- 2023-03-15 CN CN202310250375.2A patent/CN116414743A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118245406A (zh) * | 2024-05-27 | 2024-06-25 | 广东匠芯创科技有限公司 | 数据访问方法和系统、psram控制器、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6341318B1 (en) | DMA data streaming | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
EP3647932B1 (en) | Storage device processing stream data, system including the same, and operation method thereof | |
US7805543B2 (en) | Hardware oriented host-side native command queuing tag management | |
US8082396B2 (en) | Selecting a command to send to memory | |
US20050216677A1 (en) | Memory arbitration system and method having an arbitration packet protocol | |
US7844752B2 (en) | Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions | |
US20140104967A1 (en) | Inter-memory data transfer control unit | |
US8954644B2 (en) | Apparatus and method for controlling memory | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
WO2013086529A1 (en) | Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions | |
CN114860329A (zh) | 动态一致性偏置配置引擎及方法 | |
US20180081564A1 (en) | Memory subsystem with wrapped-to-continuous read | |
TW201303870A (zh) | 利用快閃記憶體介面的方法及裝置 | |
CN116414743A (zh) | 用于控制存储器的方法、存储器控制器及芯片 | |
CN114051611A (zh) | 用于非连续存储器的dma分散和聚集操作 | |
US20240320194A1 (en) | Lock management method, apparatus, and system | |
JPH09282228A (ja) | 主記憶制御装置 | |
US20120124260A1 (en) | CLOSED LOOP DYNAMIC INTERCONNECT BUS ALLOCATION METHOD AND ARCHITECTURE FOR A MULTI LAYER SoC | |
CN116917874A (zh) | 从单个端口的共享多端口存储器 | |
US7774513B2 (en) | DMA circuit and computer system | |
US20070180180A1 (en) | Storage system, and storage control method | |
US20090119429A1 (en) | Semiconductor integrated circuit | |
US8209492B2 (en) | Systems and methods of accessing common registers in a multi-core processor | |
US9965321B2 (en) | Error checking in out-of-order task scheduling |
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 |