CN117171070B - 一种基于axi接口的交叉存取系统 - Google Patents
一种基于axi接口的交叉存取系统 Download PDFInfo
- Publication number
- CN117171070B CN117171070B CN202311451663.0A CN202311451663A CN117171070B CN 117171070 B CN117171070 B CN 117171070B CN 202311451663 A CN202311451663 A CN 202311451663A CN 117171070 B CN117171070 B CN 117171070B
- Authority
- CN
- China
- Prior art keywords
- subcommand
- write
- read
- module
- ram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 claims abstract description 97
- 238000013507 mapping Methods 0.000 claims abstract description 42
- 238000006243 chemical reaction Methods 0.000 claims description 52
- 238000000034 method Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 10
- 241001522296 Erithacus rubecula Species 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Classifications
-
- 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
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种基于AXI接口的交叉存取系统。包括:AXI端口模块,用于将数据读写命令拆分为多个读写子命令,并确定与每个读写子命令对应的映射地址,将携带映射地址的各读写子命令发送至仲裁模块;仲裁模块,用于在每个时间节拍下,确定出与每个当前读写子命令分别对应的存储块集合;如果第一存储块集合仅对应唯一当前读写子命令,则将唯一当前读写子命令作为目标子命令下发至RAM模块;如果第二存储块集合对应多个当前读写子命令,则从多个当前读写子命令仲裁出目标子命令下发至RAM模块;RAM模块,用于通过与各目标子命令分别对应的存储块集合,执行各目标子命令。采用上述技术方案,能够提高存储器的访问效率。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于AXI接口的交叉存取系统。
背景技术
随着芯片技术的发展,系统对于片内大型高速存储系统的要求越来越高。在现有技术中,AXI接口可以直接对RAM发起访问。当多个AXI接口的多个读写通道同时对一片RAM(Random Access Memory,随机存取存储器)发起随机读写访问时,由于同一个RAM接口在同一个时刻只能做数据写入或数据读出的一种操作,因此读写访问会出现大量的冲突,大大降低RAM的读写速率。
发明内容
本发明提供了一种基于AXI接口的交叉存取系统,能够实现RAM的交叉存取,减少多通道读写数据在同一个RAM接口的碰撞,从而提高交叉存取系统的访问效率。
根据本发明的一方面,提供了一种基于AXI接口的交叉存取系统,包括多个AXI端口模块、仲裁模块以及RAM模块;RAM模块中包括多个RAM slice(随机存取存储器切片)模块,每个RAM slice模块中包括按照同一编号规则进行编号的相同数量的存储块,不同RAMslice模块中相同编号的存储块组成同一存储块集合;
AXI端口模块,用于将数据读写命令拆分为多个读写子命令,并确定与每个读写子命令对应的映射地址,以及,将携带映射地址的各读写子命令发送至仲裁模块;
仲裁模块,用于在每个时间节拍下,确定出与每个当前读写子命令分别对应的存储块集合;如果第一存储块集合仅对应唯一当前读写子命令,则将唯一当前读写子命令作为目标子命令下发至RAM模块;如果第二存储块集合对应多个当前读写子命令,则从多个当前读写子命令仲裁出目标子命令下发至RAM模块;
RAM模块,用于通过与各目标子命令分别对应的存储块集合,执行各目标子命令。
可选的,AXI端口模块中包括AW(写地址)通道FIFO(First Input First Output,先进先出队列)存储器、AW通道协议转化单元以及AW通道哈希转换单元;
AW通道FIFO存储器用于存储AW通道发送的写命令,并将写命令发送至AW通道协议转化单元中;
AW通道协议转化单元用于将AW通道FIFO存储器发送的AXI协议的写命令拆分为多个RAM接口协议的写子命令,并在确定满足第一指令发送条件时,将写子命令发送至AW通道哈希转换单元中;
AW通道哈希转换单元用于根据哈希算法对各写子命令的地址进行离散化处理,获取各写子命令的映射地址,并将携带映射地址的各写子命令发送至仲裁模块进行缓存。
可选的,AXI端口模块中还包括AR(读地址)通道FIFO存储器、AR通道协议转化单元以及AR通道哈希转换单元;
AR通道FIFO存储器用于存储AR通道发送的读命令,并将读命令发送至AR通道协议转化单元中;
AR通道协议转化单元用于将AR通道FIFO存储器发送的AXI协议的读命令拆分为多个RAM接口协议的读子命令,并在确定满足第二指令发送条件时,将读子命令发送至AR通道哈希转换单元中;
AR通道哈希转换单元用于根据哈希算法对各读子命令的地址进行离散化处理,获取各读子命令的映射地址,并将携带映射地址的各读子命令发送至仲裁模块进行缓存。
可选的,AXI端口模块中还包括写通道数据FIFO存储器以及返回数据FIFO存储器;
写通道数据FIFO存储器用于将写通道的写数据发送至AW通道协议转化单元中;其中,写通道的写数据与AW通道发送的写命令一一对应;
返回数据FIFO存储器用于当仲裁模块成功缓存携带映射地址的各写子命令时,接收并存储仲裁模块返回的响应数据。
可选的,仲裁模块中包括多个写子命令缓存单元以及读子命令缓存单元;
写子命令缓存单元用于接收并缓存与其匹配的AXI端口模块发送的携带映射地址的各写子命令;
读子命令缓存单元用于接收并缓存与其匹配的AXI端口模块发送的携带映射地址的各读子命令。
可选的,仲裁模块中还包括多个写子命令地址译码单元以及读子命令地址译码单元;
写子命令地址译码单元用于在每个时间节拍下,在与其匹配的写子命令缓存单元中获取当前写子命令的映射地址,并根据当前写子命令的映射地址的指定地址位确定与当前写子命令对应的存储块集合;
读子命令地址译码单元用于在每个时间节拍下,在与其匹配的读子命令缓存单元中获取当前读子命令的映射地址,并根据当前读子命令的映射地址的指定地址位确定与当前读子命令对应的存储块集合。
可选的,仲裁模块中还包括多个循环调度仲裁器;
每个循环调度仲裁器分别与RAM模块中的一个存储块集合相匹配;
循环调度仲裁器,用于当确定与其相匹配的存储块集合对应多个当前读写子命令时,在各当前读写子命令中确定当前待处理的目标子命令。
可选的,写子命令缓存单元还用于当目标子命令属于与其匹配的AXI端口模块发送的写子命令时,将目标子命令下发至RAM模块;
读子命令缓存单元还用于当目标子命令属于与其匹配的AXI端口模块发送的读子命令时,将目标子命令下发至RAM模块。
可选的,每个RAM slice模块分别处理目标子命令中指定位宽范围的数据;
RAM slice模块具体用于:
若当前存储块集合对应的目标子命令为写子命令,通过属于当前存储块集合的目标存储块,对目标子命令中指定位宽范围的数据进行写处理;
若当前存储块集合对应的目标子命令为读子命令,通过属于当前存储块集合的目标存储块,对目标子命令中指定位宽范围的数据进行读处理,并将读数据返回至与目标子命令相匹配的AXI端口模块。
可选的,AXI端口模块中还包括多个读数据FIFO存储器,且读数据FIFO存储器与RAM slice模块一一对应;
读数据FIFO存储器,用于在接收到所对应的RAM slice模块返回的读数据之后,将属于同一目标子命令的读数据进行拼接。
本发明实施例的技术方案,通过在基于AXI接口的交叉存取系统中配置多个AXI端口模块、仲裁模块以及RAM模块,且RAM模块中包括多个RAM slice模块,每个RAM slice模块中包括按照同一编号规则进行编号的相同数量的存储块的方式,能够在多个AXI端口对同一RAM进行访问时,实现交叉存取访问,避免多个读写命令在同一个物理RAM接口出现碰撞,提高RAM的读写速率以及存取系统的访问效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种基于AXI接口的交叉存取系统的结构示意图。
图2是根据本发明实施例提供的一种RAM slice模块的结构示意图。
图3是根据本发明实施例二提供的一种AXI端口模块的结构示意图。
图4是根据本发明实施例二提供的另一种AXI端口模块的结构示意图。
图5是根据本发明实施例三提供的一种仲裁模块的结构示意图。
图6是根据本发明实施例三提供的另一种仲裁模块的结构示意图。
图7是根据本发明实施例四提供的一种RAM slice模块的内部结构示意图。
图8是根据本发明实施例提供的另一种基于AXI接口的交叉存取系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种基于AXI接口的交叉存取系统的结构示意图。如图1所示,基于AXI接口的交叉存取系统中包括多个AXI端口模块110、仲裁模块120以及RAM模块130。
其中,RAM模块130中包括多个RAM slice模块131,每个RAM slice模块131中包括按照同一编号规则进行编号的相同数量的存储块,不同RAM slice模块131中相同编号的存储块组成同一存储块集合。
AXI端口模块110,用于将数据读写命令拆分为多个读写子命令,并确定与每个读写子命令对应的映射地址,以及,将携带映射地址的各读写子命令发送至仲裁模块120。
仲裁模块120,用于在每个时间节拍下,确定出与每个当前读写子命令分别对应的存储块集合;如果第一存储块集合仅对应唯一当前读写子命令,则将唯一当前读写子命令作为目标子命令下发至RAM模块130;如果第二存储块集合对应多个当前读写子命令,则从多个当前读写子命令仲裁出目标子命令下发至RAM模块130。
RAM模块130,用于通过与各目标子命令分别对应的存储块集合,执行各目标子命令。
图2为一种可选的RAM slice模块的结构示意图。如图2所示,一个RAM slice模块中包括多个存储块,在图2中每个存储块用Bank0-Bank31进行编号,图2所示的例子中仅示出了32个存储块,但在实际设计过程中,RAM slice模块中的存储块数量不进行限制,可以根据实际AXI端口模块的数量或其他条件进行设计。
续前例,若RAM模块130中包括8个RAM slice模块131,每个RAM slice模块131的内部均包括Bank0-Bank31,进而,所有RAM slice模块131的Bank0可构成一个Bank0存储块集合,所有RAM slice模块131的Bank1可构成一个Bank1存储块集合,以此类推,RAM模块130中共有32个存储块集合。
可选的,AXI是一种总线协议,每个AXI端口模块110均可以发送读命令和写命令,读命令和写命令可以用于访问RAM模块。在基于AXI接口的交叉存取系统中,AXI端口模块110的数量不进行限定,可根据实际需求设定。
本发明为了解决多个AXI端口模块同时向RAM发送多个读写访问时,这些读写访问在RAM接口产生冲突的问题,在基于AXI接口的交叉存取系统中添加了仲裁模块120并在RAM模块130中设计了多个RAM slice模块131,且每个RAM slice模块131中还包括多个存储块,通过多个存储块集合同时处理多个读写命令,且通过仲裁模块120对需要同一存储块集合处理的各命令进行仲裁,从而避免了读写访问在RAM接口产生冲突的问题,并且提高了RAM的读写效率。
每个AXI端口模块110用于将该端口发送的读写命令拆分成多个读写子命令,进而根据各读写子命令的源地址确定各读写子命令的映射地址,并将携带有映射地址的读写子命令发送至仲裁模块120。
可选的,AXI端口模块110可以通过对各读写子命令的源地址进行离散化,根据离散化后的源地址确定映射地址。
仲裁模块120可以通过多个缓存单元分别对每个AXI端口模块110发送的携带映射地址的读子命令或写子命令进行暂存,在每个时间节拍下,各缓存单元的顶部子命令可以作为当前读写子命令。
可选的,可以根据当前读写子命令的映射地址中的指定地址位确定与当前读写子命令对应的存储块集合。在一个可选的例子中,可以预先设计指定地址位与存储块集合之间的对应关系表,并通过映射地址的第五位确定当前读写子命令对应的存储块集合。
表1为一个可选的地址位与存储块集合之间的对应关系表。如表1所示,[4:0]为映射地址的低5位,BANK编号可以代表各不同的存储块集合,当映射地址的低5位不同时,与其匹配的存储块集合也不同。
表1
可选的,第一存储块集合可以指在当前时间节拍下,对应一个当前读写子命令的存储块集合,第二存储块集合可以指在当前时间节拍下,对应多个当前读写子命令的存储块集合,此处仅为了区分两种不同的情况进行命名。当第二存储块集合对应了多个当前读写子命令时,可以通过轮询仲裁的方式在多个当前读写子命令中确定唯一一个目标子命令。
可选的,在目标子命令赢得目标存储块集合的仲裁之后,该子命令可以被发送到RAM模块130中的每个RAM slice模块131中,RAM slice模块131并行接收目标子命令,并由每个RAM slice模块131中属于目标存储块集合的存储块分别处理目标子命令中的不同片段。
可以理解的是,RAM模块130中的每个RAM slice模块131分别处理目标子命令中指定位宽范围的数据。
在一个可选的例子中,每个RAM slice模块131可以预先设计仅处理256bit的数据,但每个RAM slice模块131处理的位宽范围不同,当RAM模块130中包括8个RAM slice模块131时,可以用ram slice0-ram slice7对每个RAM slice模块131进行编号,当子命令数据位宽为2048bit时,ram slice0可以处理0-255bit的数据,ram slice1可以处理256-511bit的数据,以此类推,ram slice7可以处理1792-2047bit的数据。但本例仅用于举例说明,RAM模块130中的RAM slice模块131数量、每个RAM slice模块131中处理的数据位宽均可以根据实际需求进行设定,并不限制于本发明实施例所述的数量及位宽。
在一个进一步的例子中,若目标子命令的位宽为2048bit,目标子命令相应的存储块集合为BANK0存储块集合,且RAM slice模块131包括ram slice0-ram slice7,则ramslice0中的Bank0可以处理目标子命令0-255bit的数据,ram slice1中的Bank0可以处理目标子命令256-511bit的数据,以此类推,ram slice7中的Bank0可以处理目标子命令1792-2047bit的数据。
本发明实施例的技术方案,通过在基于AXI接口的交叉存取系统中配置多个AXI端口模块、仲裁模块以及RAM模块,且RAM模块中包括多个RAM slice模块,每个RAM slice模块中包括按照同一编号规则进行编号的相同数量的存储块的方式,能够在多个AXI端口对同一RAM进行访问时,实现交叉存取访问,避免多个读写命令在同一个物理RAM接口出现碰撞,提高RAM的读写速率以及存取系统的访问效率。
实施例二
图3为本发明实施例二提供的一种AXI端口模块的结构示意图。如图3所示,AXI端口模块包括AW通道FIFO存储器111、AW通道协议转化单元112、AW通道哈希转换单元113、AR通道FIFO存储器114、AR通道协议转化单元115、AR通道哈希转换单元116、写通道数据FIFO存储器117、返回数据FIFO存储器118以及多个读数据FIFO存储器119。
AW通道FIFO存储器111用于存储AW通道发送的写命令,并将写命令发送至AW通道协议转化单元中。
AW通道协议转化单元112用于将AW通道FIFO存储器发送的AXI协议的写命令拆分为多个RAM接口协议的写子命令,并在确定满足第一指令发送条件时,将写子命令发送至AW通道哈希转换单元中。
AW通道哈希转换单元113用于根据哈希算法对各写子命令的地址进行离散化处理,获取各写子命令的映射地址,并将携带映射地址的各写子命令发送至仲裁模块进行缓存。
AR通道FIFO存储器114用于存储AR通道发送的读命令,并将读命令发送至AR通道协议转化单元中。
AR通道协议转化单元115用于将AR通道FIFO存储器发送的AXI协议的读命令拆分为多个RAM接口协议的读子命令,并在确定满足第二指令发送条件时,将读子命令发送至AR通道哈希转换单元中。
AR通道哈希转换单元116用于根据哈希算法对各读子命令的地址进行离散化处理,获取各读子命令的映射地址,并将携带映射地址的各读子命令发送至仲裁模块进行缓存。
写通道数据FIFO存储器117用于将写通道的写数据发送至AW通道协议转化单元中;其中,写通道的写数据与AW通道发送的写命令一一对应。
返回数据FIFO存储器118用于当仲裁模块成功缓存携带映射地址的各写子命令时,接收并存储仲裁模块返回的响应数据。
读数据FIFO存储器119与RAM slice模块131一一对应。
读数据FIFO存储器119,用于在接收到所对应的RAM slice模块131返回的读数据之后,将属于同一目标子命令的读数据进行拼接。
可选的,AW通道哈希转换单元113在获取写子命令之后,获取写子命令的映射地址之后可以直接发送至仲裁模块120中的缓存单元,在本发明所述的实施例中,通过第一指令发送条件对AW通道协议转化单元112将RAM接口协议的写子命令发送到AW通道哈希转换单元113进行限制。第一指令发送条件可以包括:仲裁模块120中的缓存单元中具有足够的存储空间;在发送写子命令的当前时间节拍下,必须同时存在写子命令和写数据;写通道数据FIFO存储器117有信用可以保证响应落地。
相似的,可以通过第二指令发送条件对AR通道协议转化单元115将RAM接口协议的读子命令发送到AR通道哈希转换单元116进行限制。第二指令发送条件可以包括:返回数据FIFO存储器118中至少有一个为空。
图4为一个可选的AXI端口模块的结构示意图。如图4所示,写命令FIFO可以代表AW通道FIFO存储器111,WR AXI2RAM可以代表AW通道协议转化单元112,写地址HASH处理模块可以代表AW通道哈希转换单元113,写数据FIFO可以代表写通道数据FIFO存储器117,写响应FIFO可以代表返回数据FIFO存储器118,读数据FIFO可以代表AR通道FIFO存储器114,RDAXI2RAM可以代表AR通道协议转化单元115,读地址HASH处理模块可以代表AR通道哈希转换单元116,读响应FIFO 0-读响应FIFO n均为多个读数据FIFO存储器119。但图4仅为一种示例性的结构示意图,并不对AXI端口模块110中各单元数量以及连接关系进行限定。
可以理解的是,由于不同的RAM slice模块131处理子命令的不同位宽范围的数据,因此,可以通过读数据FIFO存储器119将每个RAM slice模块131返回的读数据进行拼接,获取拼接后的完整的读数据。
本发明实施例的技术方案,通过在AXI端口模块中配置AW通道FIFO存储器、AW通道协议转化单元、AW通道哈希转换单元、AR通道FIFO存储器、AR通道协议转化单元、AR通道哈希转换单元、写通道数据FIFO存储器、返回数据FIFO存储器以及多个读数据FIFO存储器的方式,能够实现写命令和读命令的拆分以及映射地址的生成,同时能够保证基于AXI接口的交叉存取系统与AXI端口模块数据交互的稳定性。
实施例三
图5为本发明实施例三提供的一种仲裁模块的结构示意图。如图5所示,仲裁模块包括多个写子命令缓存单元121、读子命令缓存单元122、写子命令地址译码单元123、读子命令地址译码单元124以及循环调度仲裁器125。
写子命令缓存单元121用于接收并缓存与其匹配的AXI端口模块发送的携带映射地址的各写子命令。
读子命令缓存单元122用于接收并缓存与其匹配的AXI端口模块发送的携带映射地址的各读子命令。
写子命令地址译码单元123用于在每个时间节拍下,在与其匹配的写子命令缓存单元121中获取当前写子命令的映射地址,并根据当前写子命令的映射地址的指定地址位确定与当前写子命令对应的存储块集合。
读子命令地址译码单元124用于在每个时间节拍下,在与其匹配的读子命令缓存单元122中获取当前读子命令的映射地址,并根据当前读子命令的映射地址的指定地址位确定与当前读子命令对应的存储块集合。
每个循环调度仲裁器125分别与RAM模块130中的一个存储块集合相匹配。
循环调度仲裁器125,用于当确定与其相匹配的存储块集合对应多个当前读写子命令时,在各当前读写子命令中确定当前待处理的目标子命令。
写子命令缓存单元121还用于当目标子命令属于与其匹配的AXI端口模块110发送的写子命令时,将目标子命令下发至RAM模块130。
读子命令缓存单元122还用于当目标子命令属于与其匹配的AXI端口模块110发送的读子命令时,将目标子命令下发至RAM模块130。
图6为一个可选的仲裁模块的结构示意图。如图6所示,写RAM命令缓存单元可以代表写子命令缓存单元121,地址译码单元可分别代表写子命令地址译码单元123以及读子命令地址译码单元124,读RAM命令缓存单元可以代表读子命令缓存单元122,BANK0仲裁器至BANK31仲裁器均可代表循环调度仲裁器125。但图6仅为一种示例性的结构示意图,并不对仲裁模块120中各单元数量以及连接关系进行限定。
可以理解的是,RAM模块130的每个RAM slice模块131中的存储块数量与仲裁模块120中的循环调度仲裁器125数量相同,且具有一一对应的关系。例如,BANK0仲裁器仅对应该由BANK0存储块集合处理的各子命令进行仲裁。
可选的,每个循环调度仲裁器125均可与全部的写子命令地址译码单元123以及读子命令地址译码单元124相连,进而使得每个AXI端口模块110的读写命令能够被各个存储块处理。
本发明实施例的技术方案,通过在仲裁模块中配置写子命令缓存单元、读子命令缓存单元、写子命令地址译码单元、读子命令地址译码单元以及循环调度仲裁器的方式,能够实现对全部AXI端口模块发送的读写命令的仲裁,同时对多个读写命令进行分配,避免了读写命令在同一RAM接口产生碰撞。
实施例四
图7为本发明实施例四提供的一种RAM slice模块的内部结构示意图。如图7所示,RAM slice模块131接收仲裁模块120发送的每个读写子命令的RAM地址以及AXI端口模块110中写通道数据FIFO存储器117发送的与每个写子命令匹配的写数据。RAM slice模块131中还包括多个RAM地址缓存模块以及多个写数据缓存模块,用于缓存各读写子命令的RAM地址以及写子命令的写数据。
可选的,图7中的BANK 0 RAM-BANK 31 RAM可分别代表32个不同的存储块。
可选的,只有当读写子命令被确定为目标子命令之后,读写子命令的RAM地址以及写子命令的写数据才会被发送到相应的存储块中。
可以理解的是,对于写子命令,仅需存储块写入即可,无需返回数据。但对于读子命令,在存储块中读取数据之后,应将结果返回至AXI端口模块110中。由于本发明中的RAM模块130中包括多个RAM slice模块131,且各RAM slice模块131分别处理不同位宽的数据,因此,需要将不同位宽的数据的处理结果进行拼接。
可选的,本发明可以通过AXI接口模块110中的返回数据FIFO存储器118对返回数据进行拼接,读子命令由哪个AXI端口模块110发送,则其返回数据就返回到哪个AXI端口模块110中的返回数据FIFO存储器118中。
可选的,RAM slice模块131可以具体用于:
若当前存储块集合对应的目标子命令为写子命令,通过属于当前存储块集合的目标存储块,对目标子命令中指定位宽范围的数据进行写处理;
若当前存储块集合对应的目标子命令为读子命令,通过属于当前存储块集合的目标存储块,对目标子命令中指定位宽范围的数据进行读处理,并将读数据返回至与目标子命令相匹配的AXI端口模块110。
图8是一种可选的基于AXI接口的交叉存取系统的结构示意图。如图8所示,AXIPORT0-AXI PORT9可分别代表10个AXI端口模块110,slice0-slice7可代表8个RAM slice模块131,每个RAM slice模块131中包括32个存储块BANK0-BANK31,且每个存储块均对应一个仲裁器ARB。
可选的,每个AXI PORT均可向任意一个ARB发送读子命令或写子命令,当有10个AXI PORT时,每个ARB可以接收20路读写子命令,当目标BANK在当前时间节拍下需要处理多个子命令时,ARB可以通过轮询仲裁的方式在多个子命令中确定唯一一个目标子命令。并在确定目标子命令之后,由slice0-slice7的BANK0分别处理目标子命令的不同位宽范围的数据。
可选的,对于RAM模块130,在物理摆放过程中,可能不同的RAM slice模块131与各AXI端口模块110的距离不同,从而导致RAM slice模块131读回的数据到达AXI端口模块110的延迟是不同的,设计多个RAM slice模块131的目的是降低数据到达之间的依赖关系,可以提高系统总体的读带宽。
可选的,在基于AXI接口的交叉存取系统进行后端布局时,布局区域可能较大,因此很多数据线较长,尤其是针对256bit的总线来说,时序收敛会有较大问题,因此,可以基于AXI接口的交叉存取系统中还可以灵活设计多个打拍单元,从而改善时序问题。
可选的,通过采用多个RAM slice模块131拼接位宽的方式,可以解决AXI数据过宽,数据之间耦合性过高,时序难以收敛的问题,同时在物理实现过程中,RAM slice模块131的物理布局只用做一次,并进行多份例化,进而可以降低后端实现和后端时序收敛的难度。同时,RAM slice模块131之间解耦合,可以更加灵活的实现布局,以最大限度的提高数据访问的带宽。
本发明实施例的技术方案,通过例化多份RAM slice模块的方式,能够提高系统总体的读带宽,更加灵活的实现布局,以最大限度的提高数据访问的带宽,解决AXI数据过宽,数据之间耦合性过高,时序难以收敛的问题,以及,降低后端实现和后端时序收敛的难度。
Claims (8)
1.一种基于AXI接口的交叉存取系统,其特征在于,包括多个AXI端口模块、仲裁模块以及RAM模块;RAM模块中包括多个RAM slice模块,每个RAM slice模块中包括按照同一编号规则进行编号的相同数量的存储块,不同RAM slice模块中相同编号的存储块组成同一存储块集合;
AXI端口模块,用于将数据读写命令拆分为多个读写子命令,并确定与每个读写子命令对应的映射地址,以及,将携带映射地址的各读写子命令发送至仲裁模块;
仲裁模块,用于在每个时间节拍下,确定出与每个当前读写子命令分别对应的存储块集合;如果第一存储块集合仅对应唯一当前读写子命令,则将唯一当前读写子命令作为目标子命令下发至RAM模块;如果第二存储块集合对应多个当前读写子命令,则从多个当前读写子命令仲裁出目标子命令下发至RAM模块;
RAM模块,用于通过与各目标子命令分别对应的存储块集合,执行各目标子命令;
其中,AXI端口模块中包括写地址AW通道FIFO存储器、AW通道协议转化单元以及AW通道哈希转换单元;
AW通道FIFO存储器用于存储AW通道发送的写命令,并将写命令发送至AW通道协议转化单元中;
AW通道协议转化单元用于将AW通道FIFO存储器发送的AXI协议的写命令拆分为多个RAM接口协议的写子命令,并在确定满足第一指令发送条件时,将写子命令发送至AW通道哈希转换单元中;
AW通道哈希转换单元用于根据哈希算法对各写子命令的地址进行离散化处理,获取各写子命令的映射地址,并将携带映射地址的各写子命令发送至仲裁模块进行缓存;
其中,AXI端口模块中还包括读地址AR通道FIFO存储器、AR通道协议转化单元以及AR通道哈希转换单元;
AR通道FIFO存储器用于存储AR通道发送的读命令,并将读命令发送至AR通道协议转化单元中;
AR通道协议转化单元用于将AR通道FIFO存储器发送的AXI协议的读命令拆分为多个RAM接口协议的读子命令,并在确定满足第二指令发送条件时,将读子命令发送至AR通道哈希转换单元中;
AR通道哈希转换单元用于根据哈希算法对各读子命令的地址进行离散化处理,获取各读子命令的映射地址,并将携带映射地址的各读子命令发送至仲裁模块进行缓存。
2.根据权利要求1所述的系统,其特征在于,AXI端口模块中还包括写通道数据FIFO存储器以及返回数据FIFO存储器;
写通道数据FIFO存储器用于将写通道的写数据发送至AW通道协议转化单元中;其中,写通道的写数据与AW通道发送的写命令一一对应;
返回数据FIFO存储器用于当仲裁模块成功缓存携带映射地址的各写子命令时,接收并存储仲裁模块返回的响应数据。
3.根据权利要求1所述的系统,其特征在于,仲裁模块中包括多个写子命令缓存单元以及读子命令缓存单元;
写子命令缓存单元用于接收并缓存与其匹配的AXI端口模块发送的携带映射地址的各写子命令;
读子命令缓存单元用于接收并缓存与其匹配的AXI端口模块发送的携带映射地址的各读子命令。
4.根据权利要求3所述的系统,其特征在于,仲裁模块中还包括多个写子命令地址译码单元以及读子命令地址译码单元;
写子命令地址译码单元用于在每个时间节拍下,在与其匹配的写子命令缓存单元中获取当前写子命令的映射地址,并根据当前写子命令的映射地址的指定地址位确定与当前写子命令对应的存储块集合;
读子命令地址译码单元用于在每个时间节拍下,在与其匹配的读子命令缓存单元中获取当前读子命令的映射地址,并根据当前读子命令的映射地址的指定地址位确定与当前读子命令对应的存储块集合。
5.根据权利要求4所述的系统,其特征在于,仲裁模块中还包括多个循环调度仲裁器;
每个循环调度仲裁器分别与RAM模块中的一个存储块集合相匹配;
循环调度仲裁器,用于当确定与其相匹配的存储块集合对应多个当前读写子命令时,在各当前读写子命令中确定当前待处理的目标子命令。
6.根据权利要求5所述的系统,其特征在于,写子命令缓存单元还用于当目标子命令属于与其匹配的AXI端口模块发送的写子命令时,将目标子命令下发至RAM模块;
读子命令缓存单元还用于当目标子命令属于与其匹配的AXI端口模块发送的读子命令时,将目标子命令下发至RAM模块。
7. 根据权利要求1所述的系统,其特征在于,每个RAM slice模块分别处理目标子命令中指定位宽范围的数据;
RAM slice模块具体用于:
若当前存储块集合对应的目标子命令为写子命令,通过属于当前存储块集合的目标存储块,对目标子命令中指定位宽范围的数据进行写处理;
若当前存储块集合对应的目标子命令为读子命令,通过属于当前存储块集合的目标存储块,对目标子命令中指定位宽范围的数据进行读处理,并将读数据返回至与目标子命令相匹配的AXI端口模块。
8. 根据权利要求7所述的系统,其特征在于,AXI端口模块中还包括多个读数据FIFO存储器,且读数据FIFO存储器与RAM slice模块一一对应;
读数据FIFO存储器,用于在接收到所对应的RAM slice模块返回的读数据之后,将属于同一目标子命令的读数据进行拼接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311451663.0A CN117171070B (zh) | 2023-11-03 | 2023-11-03 | 一种基于axi接口的交叉存取系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311451663.0A CN117171070B (zh) | 2023-11-03 | 2023-11-03 | 一种基于axi接口的交叉存取系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117171070A CN117171070A (zh) | 2023-12-05 |
CN117171070B true CN117171070B (zh) | 2024-03-26 |
Family
ID=88932171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311451663.0A Active CN117171070B (zh) | 2023-11-03 | 2023-11-03 | 一种基于axi接口的交叉存取系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117171070B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502806A (zh) * | 2016-10-31 | 2017-03-15 | 华为技术有限公司 | 一种总线协议命令处理装置及相关方法 |
CN112559399A (zh) * | 2020-11-27 | 2021-03-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多axi接口的ddr控制器及其控制方法 |
CN116089343A (zh) * | 2023-02-24 | 2023-05-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于axi的数据存储方法、装置、存储介质及设备 |
US11768607B1 (en) * | 2022-03-31 | 2023-09-26 | Chipintelli Technology Co., Ltd | Flash controller for ASIC and control method therefor |
-
2023
- 2023-11-03 CN CN202311451663.0A patent/CN117171070B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502806A (zh) * | 2016-10-31 | 2017-03-15 | 华为技术有限公司 | 一种总线协议命令处理装置及相关方法 |
CN112559399A (zh) * | 2020-11-27 | 2021-03-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多axi接口的ddr控制器及其控制方法 |
US11768607B1 (en) * | 2022-03-31 | 2023-09-26 | Chipintelli Technology Co., Ltd | Flash controller for ASIC and control method therefor |
CN116089343A (zh) * | 2023-02-24 | 2023-05-09 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于axi的数据存储方法、装置、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117171070A (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411538B2 (en) | Memory systems and methods for controlling the timing of receiving read data | |
CN100595720C (zh) | 用于基于集线器的存储系统中直接存储器访问的设备和方法 | |
KR100840140B1 (ko) | 메모리 허브 메모리 모듈들을 사용하여 데이터 전송들을조직화하는 시스템 및 방법 | |
US6651148B2 (en) | High-speed memory controller for pipelining memory read transactions | |
CN1669011A (zh) | 无序的动态随机存取存储器序列器 | |
CN116719755B (zh) | 一种多应用内存访问的方法、装置、设备 | |
CN113641603A (zh) | 一种基于axi协议的ddr仲裁与调度方法及系统 | |
US10078602B2 (en) | Information processing apparatus, memory controller, and memory control method | |
CN1996276A (zh) | 多处理器系统中的数据传输 | |
JP2561261B2 (ja) | バッファ記憶アクセス方法 | |
CN117171070B (zh) | 一种基于axi接口的交叉存取系统 | |
CN111611180B (zh) | 一种支持多协议的动态共享缓冲区 | |
EP2280349B1 (en) | Processor and data transfer method | |
CN105573933B (zh) | 处理器及存取存储器的方法 | |
US7370158B2 (en) | SIMD process with multi-port memory unit comprising single-port memories | |
CN1191530C (zh) | 多命令部件共用主控器的pci主桥 | |
CN109145397B (zh) | 一种支持并行流水访问的外存仲裁系统 | |
US20060034307A1 (en) | Method and apparatus for controlling storage of data | |
CN105302745B (zh) | 高速缓冲存储器及其应用方法 | |
CN117176674B (zh) | 片上网络及数据传输方法、芯片、设备 | |
KR20120092220A (ko) | 인터페이스 장치 및 이를 포함하는 시스템 | |
EP0323080A2 (en) | Multiprocessor memory access control system | |
CN114661345A (zh) | 加速运算装置、方法、集成电路芯片、计算装置和板卡 | |
JP4593220B2 (ja) | メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法 | |
US20090248919A1 (en) | Method for external fifo acceleration |
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 |