CN115756296A - 缓存管理方法和装置、控制程序及控制器 - Google Patents
缓存管理方法和装置、控制程序及控制器 Download PDFInfo
- Publication number
- CN115756296A CN115756296A CN202111028812.3A CN202111028812A CN115756296A CN 115756296 A CN115756296 A CN 115756296A CN 202111028812 A CN202111028812 A CN 202111028812A CN 115756296 A CN115756296 A CN 115756296A
- Authority
- CN
- China
- Prior art keywords
- data
- address
- cache
- controller
- chip
- 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
- 238000007726 management method Methods 0.000 title abstract description 81
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000013507 mapping Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 24
- 230000005540 biological transmission Effects 0.000 description 8
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000008187 granular material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/20—Handling requests for interconnection or transfer for access to input/output 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)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供了一种缓存管理方法和装置、控制程序及控制器;上述方法包括:缓存管理单元MMU基于中央处理器CPU配置信息,识别外接的缓存控制器类型;基于地址管理子模块和缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;基于偏移地址计算出缓存控制器类型的逻辑地址;其中,不同的缓存控制器类型选通的对外连接通道数不同。通过本申请,以解决同一种框架下兼容不同的控制器的问题,进而在同一框架下可兼容多种控制器,以及提高存储效率的效果。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种缓存管理方法和装置、控制程序及控制器。
背景技术
在以太网交换芯片的应用中,往往需要根据应用场景和成本等,选择不同型号的片外缓存单元,即缓存控制器,所以芯片的缓存管理单元(Memory Management Unit,简称MMU)不仅要能够满足基本的功能需求,且要具有良好的兼容性和可移植性,以便在不同的应用场景下,根据存储大小、速率、功耗和成本等因素连接不同的缓存控制器,而不需要进行多次开发,从而节省人力和成本。
随着处理器和存储控制器频率和带宽的不断提升,其各自性能也在不断提高,但缓存访问效率却往往成为***性能的瓶颈问题,而缓存访问效率与MMU的实现方式有关。在以太网交换芯片中,MMU的主要功能是负责报文(packet,PK)的数据、报文描述符(packetdescriptor,PD)的写请求、写数据分发,并按照写请求保序释放;再将数据根据读请求保序读回,在这个过程中,通过片外地址管理、物理地址映射和拼包等技术尽可能最大化利用缓存带宽,以提高存储控制器的效率。当下主流的缓存控制器有DDR3/DDR4/DDR5(DoubleData Rate,DDR双倍速率)、HBM(High Bandwidth Memory)(高带宽存储器)等,如何在同一种框架下兼容不同的控制器且能够保证其存储效率是待解决的主要问题。
针对上述如何在同一种框架下兼容不同的控制器的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种缓存管理方法和装置、控制程序及控制器,以至少解决相关技术中如何在同一种框架下兼容不同的控制器的问题。
根据本申请的一个实施例,提供了一种缓存管理方法,包括:缓存管理单元MMU基于CPU配置信息,识别外接的缓存控制器类型;基于地址管理子模块和上述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;基于上述偏移地址计算出上述缓存控制器类型的逻辑地址;其中,不同的上述缓存控制器类型选通的对外连接通道数不同。
根据本申请的另一个实施例,提供了一种缓存管理装置,包括:识别单元,用于使缓存管理单元MMU基于CPU配置信息,识别外接的缓存控制器类型;确认单元,用于基于地址管理子模块和上述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;计算单元,用于基于上述偏移地址计算出上述缓存控制器类型的逻辑地址;其中,不同的上述缓存控制器类型选通的对外连接通道数不同。
根据本申请的又一个实施例,还提供了一种计算机可读存储控制程序,上述计算机可读存储控制程序中存储有计算机程序,其中,上述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种控制器,包括缓存器和处理器,上述控制器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,由于采用了缓存管理单元MMU基于CPU配置信息,识别外接的缓存控制器类型;基于地址管理子模块和上述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;基于上述偏移地址计算出上述缓存控制器类型的逻辑地址;其中,不同的上述缓存控制器类型选通的对外连接通道数不同;因此,实现了同一种框架下不同的控制器的切换,可以解决同一种框架下兼容不同的控制器的问题,进而在同一框架下可兼容多种控制器,以及提高存储效率的效果。
附图说明
图1是根据本申请实施例的缓存管理方法的移动终端的硬件结构框图;
图2是根据本申请实施例的缓存管理方法的流程图;
图3是根据本申请实施例的缓存管理***的架构示意图;
图4是根据本申请实施例的缓存管理方法中的HBM的optionE模式的示意图;
图5是根据本申请实施例的缓存管理方法中的地址对应关系的示意图一;
图6是根据本申请实施例的缓存管理方法中的地址对应关系的示意图二;
图7是根据本申请实施例的缓存管理方法中的地址对应关系的示意图三;
图8是根据本申请实施例的缓存管理方法中的地址对应关系的示意图四;
图9是根据本申请实施例的缓存管理方法中的地址映射的示意图一;
图10是根据本申请实施例的缓存管理方法中的地址映射的示意图二;
图11是根据本申请实施例的缓存管理方法中的地址映射的示意图三;
图12是根据本申请实施例的缓存管理方法的片外地址管理示意图;
图13是根据本申请实施例的缓存管理装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本申请实施例的缓存管理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的缓存管理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
图2是根据本申请实施例的缓存管理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,缓存管理单元MMU基于中央处理器CPU配置信息,识别外接的缓存控制器类型;
步骤S204,基于地址管理子模块和上述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;
步骤S206,基于上述偏移地址计算出上述缓存控制器类型的逻辑地址;其中,不同的上述缓存控制器类型选通的对外连接通道数不同。
通过本申请实施例,由于采用了缓存管理单元MMU基于CPU配置信息,识别外接的缓存控制器类型;基于地址管理子模块和上述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;基于上述偏移地址计算出上述缓存控制器类型的逻辑地址;其中,不同的上述缓存控制器类型选通的对外连接通道数不同;因此,实现了同一种框架下不同的控制器的切换,可以解决同一种框架下兼容不同的控制器的问题,进而同一框架下可兼容多种控制器,以及提高存储效率的效果。
在一个或多个实施例中,上述缓存管理方法还包括:上述MMU的地址映射子模块读取预设的地址映射关系;上述地址映射关系为将片内逻辑地址转换为能被缓存芯片接受的物理地址。
在一个或多个实施例中,上述缓存管理方法还包括:上述方法还包括:上述MMU的地址映射子模块读取预设的地址映射关系;上述地址映射关系为将片内逻辑地址转换为能被缓存芯片接受的物理地址;根据不同应用场景,通过CPU进行重配置,以获取重配置后与上述应用场景对应的地址映射关系。
在一个或多个实施例中,上述缓存管理方法还包括:根据片外缓存的需求和缓存控制器的结构属性,按照块单元block将CPU发送给上述MMU的数据包进行切分,其中,切分后的数据包与block地址相对应,一个数据包对应多个block地址,上述缓存控制器的类型不同时地址管理的区间不同。
在一个或多个实施例中,上述缓存管理方法还包括:上述MMU接收到报文缓存管理单元PMU发送的片外数据,其中,上述片外数据包括报文描述符PD和报文PK;提取上述PD的数据信息;将上述数据信息进行拼包得到拼包数据,并删除上述PK中的第一数据;这里,第一数据可以包括拼包数据中的无效数据。
对上述拼包数据进行移位拼接,提取出第二数据;这里,第二数据可以包括拼包数据中的有效数据。将上述拼包数据中的上述PD的数据信息和提取出的上述第二数据再次进行拼包,得到目标拼包数据。上述目标拼包数据发送至片外缓存进行存储。
在一个或多个实施例中,上述缓存管理方法还包括:在上述PD的数据位长度加上提取出的上述第二数据的数据位长度小于或等于总线位宽时,同时输出上述PD和上述第二数据;
在上述PD的数据位长度加上提取出的上述第二数据的数据位长度大于总线位宽时,将上述PD和上述第二数据拆分为第一拆分数据和第二拆分数据;
输出上述PD和上述第一拆分数据;
将上述第二拆分数据进行补零操作,得到数据位长度等于上述总线位宽的补零处理数据,并输出上述补零处理数据。
在一个或多个实施例中,上述缓存管理方法还包括:报文缓存管理单元PMU下发写报文;
上述PMU存储上述写报文,发送写释放命令给流量缓存管理单元TMMU;上述TMMU下发报文描述符至队列管理单元QMU;
上述QMU通过上述TMMU下发写命令,并透传给上述MMU,上述QMU完成存储上述写命令后向上述TMMU发写释放信号;
命令队列下发读报文命令,读取读报文数据并将上述读报文数据返回到上述PMU;
上述TMMU下发读命令,并读取报文描述符数据。
基于上述实施例,在一应用实施例中,本申请提供的缓存管理装置中,MMU位于片外存储控制器和片上控制模块之间,图3是根据本申请实施例的缓存管理***的架构示意图,如图3所示,MMU位于PMU(Packet Memory Unit)报文存储单元、TMMU(TM MemoryManagement Unit内存管理单元)、CMD_FIFO(Command FIFO,命令先进先出队列)和HBM(high Bandwidth Memory,高带宽存储器)/DDR之间,本申请实施例的缓存管理方法主要能实现功能如下:
1)负责多队列报文PK、报文描述符PD写请求和写数据的分发,写释放的保存;
2)负责多队列PK、PD读请求的分发,读数据的保存;
3)支持多类型的缓存控制器的模式切换;
4)逻辑地址到片外物理地址的映射可重配置。
上述PMU存储上述写报文,发送写释放命令给流量缓存管理单元TMMU;上述TMMU下发报文描述符至队列管理单元QMU;上述QMU通过上述TMMU下发写命令,并透传给上述MMU,上述QMU完成存储上述写命令后向上述TMMU发写释放信号;
命令队列下发读报文命令,读取读报文数据并将上述读报文数据返回到上述PMU;上述TMMU下发读命令,并读取报文描述符数据。在整个框架中,为了解决兼容性和提高片外访问带宽及效率,主要采用的技术有地址管理、PC均衡、片外地址映射和拼包技术,兼容性是贯穿整个缓存管理过程,从而兼顾所有支持控制器的功能和性能。
在一应用实施例中,上述缓存管理方法包括:
第一步,多控制器切换。通过CPU配置,缓存管理模块识别外接的缓存控制器类型,地址管理子模块根据控制器类型对应的地址区域,通过查表的方式确认偏移地址,从而计算出该类型控制器的逻辑地址;配置不同的缓存控制器类型,选通的对外连接通道数不同。本申请根据片外缓存的需求,设计16个Channel(通道)的片外缓存接口,每个Channel均完整支持AXI4总线的写地址、写数据、写响应、读地址和读数据五个通道。在MMU中,分HBM和DDR模式,支持模式切换可配置,默认为16Channel的HBM。通过CPU配置,可切换到DDR模式下,用户根据自身的需求,可选择连接DDR4或DDR5等不同类型,只要连接的容量大小不小于地址管理的最大节点数对应的数据容量,连接的HBM/DDR空间均可被有效利用;
由于支持不同类型的缓存控制器,各类型的控制器的传输速率并不一定和MMU的***时钟同步,为了适配不同的控制器和保证数据的线速传输,划分片上的部分缓存区域,以异步(先进先出队列)FIFO的形式,先将数据缓存,同时通过自研逻辑的预读功能,将数据和命令预读出来进入Ready等待状态,当有效缓存控制器到来的时候,通过握手机制同周期将数据送出,这样可以保证最大程度利用片外控制器的带宽,且可靠地将数据流跨时钟处理。
第二步,配置地址映射。地址映射子模块根据配置的类型,读取***预设的地址映射关系,此地址映射关系可根据应用场景,通过CPU进行重配置,以调整最佳的映射方式;
由于逻辑地址不能直接索引到HBM/DDR的地址引脚上,经过MMU的处理,将逻辑地址转换为能被缓存芯片接受的地址,称为物理地址。因为缓存HBM/DDR的多层次结构,地址映射的方式和片外读写带宽、存储速率及效率有很大关系。
本申请的地址映射,是将每个物理通道(数据总线位宽128bit)分两个虚拟通道(Pseudo Channel,伪信道,简称PC,数据总线位宽64bit),两个虚拟通道共用一组地址和控制总线。
图4是根据本申请实施例的缓存管理方法中的HBM的optionE模式的示意图,在HBM的OptionE模式下如图4所示,每个虚拟通道对应一个控制器,控制器以缓存频率的一半运行。Psgnt代表的虚拟通道(PS),是控制器内部仲裁信号,控制器根据PS的物理接口确定Psgnt的值。逻辑在处理的时候,只需把一个HBMstack的8个控制器当成16个控制器对待,一个控制对应一个物理PS。
SID是数据8Hi的特有地址,可以当做一个bank(存储体)地址,8Hi的bank数是4Hi的二倍,分别是32个bank,16个bank。连续4个ID的bank属于一个存储体集合bank_group。8Hi、4Hi分别是8个bank,4个bank。
laddr[N:0]是8Byte地址(一个控制的总线位宽为128bit,划分为两个PS,每个PS的位宽为64bit),由于HBM控制器的预取倍为4,一次存储256bit,会占用4个地址,所以laddr[1:0]实际逻辑不会分配地址,实际默认为0,控制器也不用。
MMU送出的地址为384B地址(实际地址为2的整数次幂送出),AXI的地址为1字节,PS通道对应的颗粒每个地址存128bit数据,所以四者地址对应关系如下:
图5是根据本申请实施例的缓存管理方法中的地址对应关系的示意图一,使用Samsung HBM2 4Hi4G时,每个PS的存储空间为4GB/16=2Gb,对应关系如图5所示,{A[31:A28],A[4:0]}填充为0:
图6是根据本申请实施例的缓存管理方法中的地址对应关系的示意图二,使用Samsung HBM2 8Hi8G时,每个PS的存储空间为8GB/16=4Gb,对应关系如图6所示,{A[31:A29],A[4:0]}填充为0:
图7是根据本申请实施例的缓存管理方法中的地址对应关系的示意图三,使用Samsung HBM2E 4Hi8G时,每个PS的存储空间为8GB/16=4Gb,对应关系如图7所示,{A[31:A29],A[4:0]}填充为0:
图8是根据本申请实施例的缓存管理方法中的地址对应关系的示意图四,使用Samsung HBM2E 8Hi16G时,每个PS的存储空间为8GB/16=4Gb,对应关系如图8所示,{A[31:A30],A[4:0]}填充为0:
图9是根据本申请实施例的缓存管理方法中的地址映射的示意图一,要充分发挥HBM的带宽,需均衡的使用16个PS,同时通道内增加Bank切换,当前采用4Hi4G的颗粒,逻辑地址和物理地址间的映射关系如图9所示。
图10是根据本申请实施例的缓存管理方法中的地址映射的示意图二,外挂DDR5的时候,可配置连接3个通道的DDR5,其逻辑地址和物理地址的映射关系如图10所示。
图11是根据本申请实施例的缓存管理方法中的地址映射的示意图三,外挂DDR4的时候,可配置连接3个通道的DDR5,其逻辑地址和物理地址的映射关系如图11所示。
第三步,片外地址管理。根据片外缓存的需求,和缓存控制器的结构特点,片外缓存地址是以块block(可配置的固定大小数据单元)为单位进行管理,称为虚拟地址(也称作逻辑地址),处理器发送给MMU的一个数据包需按照block进行切分,以便与block地址进行对应,这样处理后,一个数据包有可能对应多个block数据,即需要产生多个block地址。根据片外缓存控制器的类型不同,地址管理的区间不同。
图12是根据本申请实施例的缓存管理方法的片外地址管理示意图,如图12所示,Trunk(中继端口)地址为128K,T[16:13]为16个大链表ID,T[12:10]为每个大链表下面的子链表ID,T[9:0]为每个子链表内链表编号,B[3:0]为每个trunk下面blk的个数,C[2:0]为每个blk下面的切片个数(数据+1代表切片个数)。链表ID申请采用RR(Round-Robin(轮询))调度,当一条流进来时会先RR申请选中大链表,大链表内再RR选中一个子链表,然后从子链表内申请一个链表。同一条流会优先耗尽一个turnk中的blk,不同流会重新申请trunk。地址管理的{T[9:0],B[3:0],T[12:10],T[16:13]}可作为一个counter,此地址是连续变化。当外挂HBM的时候,T[16:13]个16个channel一一对应;当外挂DDR的时候,对应选通3个通道,使用T[14:13]作为channel_ID,即选通0(4、8、12)、1(5、9、13)、2(6、10、14)通道,3、7、11、15通道可配置不使用。由于T[16:13]的低两bit的粒度更小,所以其变化更快,通过地址映射后的缓存访问效率会更好。根据设定的位宽大小,MMU可管理2(4+3+10+4)=2M个节点,总共可管理2Mx3k(blk大小可配,以3k为例)=48G的数据。
为了保证整体的性能和带宽,在地址管理模块需保证各伪信道PC间的均衡访问,避免出现短时间内个别PC频繁访问,而其余PC空闲的情况,如果出现某个PC返回较慢,反馈给MMU忙状态时候,可根据实时命令统计和单PC历史命令统计,减少一次调度,从数据流的整个过程分析,PC之间依然是均衡访问。
第四步,小包拼接技术。将片上PD存储至片外,理论上因其包长的原因,会降低片外存储的带宽和效率,但因其存储数量较大,为了节省片上资源,将PD搬移至片外进行存储,此处采用拼包技术对其进行存储,拼包的目的是通过挤泡将片外需要拼包的PK和PD中的无效字节挤掉,然后将有效字节进行拼接,以此来提高片外缓存的利用率。
拼包的步骤是MMU收到PMU送过来的片外包PD和PK,首先进行PD信息的提取和拼包,同时将PK中的无效字节挤掉,对小包进行移位拼接,提取出有效数据,然后将拼包后的PD信息和提取出有效数据的PK再次进行拼包,将结果发送至片外进行存储。
由于片外的总线位宽是384B,除了单包(不需要拼包),不同种类的拼包情况对于每一拍输出的结果也不一样,小包拼接分两种情况:小包拼小包(PD_len+PK_len≤384B);小包拼小包(PD_len+PK_len>384B)。当第一种小包拼小包时,PD的长度加上提取出的数据长度小于总线位宽,可以一拍输出;当第二种小包拼小包的时候,由于长度大于总线位宽,需要分两拍输出,第一拍输出高384B,剩下的部分在第二拍尾部补零输出,这样会对线速产生影响,需尽量规避。
本申请的方案不仅能够兼容多种类型的缓存控制器,且能够提升片外读写带宽和访问效率。以下通过实测数据,分别举例说明外挂HBM/DDR5/DDR4三种类型控制器的情况下,带宽和效率提升前后的实测数据。
使用标准地址映射的测试外挂HBM的结果如表1所示。本申请的效率提升方法测试结果如表2所示,表3为外挂DDR5的测试数据,表4为外挂DDR4的测试数据,经过实测结果对比分析,各模式下的片外总带宽和存储效率均有提升。
表1
用例编号 | 片外存储包长(Byte) | 总带宽(Gbps) | 效率 |
1 | 128 | 862 | 0.35 |
2 | 192 | 1352 | 0.55 |
3 | 256 | 1643 | 0.67 |
4 | 288 | 1607 | 0.65 |
5 | 352 | 1739 | 0.71 |
6 | 384 | 1769 | 0.72 |
7 | 768 | 1648 | 0.67 |
8 | 1152 | 1634 | 0.67 |
9 | 1536 | 1628 | 0.66 |
10 | 1568 | 1601 | 0.65 |
表2
表2(续)
用例编号 | 片外存储包长(Byte) | 总带宽(Gbps) | 效率 |
7 | 768 | 2169 | 0.88 |
8 | 1152 | 2166 | 0.88 |
9 | 1536 | 2133 | 0.86 |
10 | 1568 | 2028 | 0.83 |
表3
用例编号 | 片外存储包长(Byte) | 总带宽(Gbps) | 效率 |
1 | 128 | 136.89 | 0.59 |
2 | 192 | 154.22 | 0.67 |
3 | 256 | 163.54 | 0.71 |
4 | 384 | 168.49 | 0.73 |
5 | 768 | 170.63 | 0.74 |
6 | 1152 | 172.45 | 0.75 |
7 | 1184 | 169.61 | 0.74 |
8 | 1536 | 173.55 | 0.75 |
9 | 1568 | 169.95 | 0.74 |
10 | 12288 | 166.54 | 0.72 |
表4
用例编号 | 片外存储包长(Byte) | 总带宽(Gbps) | 效率 |
1 | 128 | 200.64 | 65.35 |
2 | 192 | 247.85 | 80.73 |
3 | 256 | 267.03 | 86.98 |
4 | 384 | 272.29 | 88.69 |
5 | 768 | 270.61 | 88.15 |
6 | 1152 | 243.78 | 79.41 |
7 | 1536 | 252.68 | 82.31 |
8 | 1568 | 232.25 | 75.65 |
9 | 6144 | 233.99 | 76.22 |
10 | 12288 | 220.05 | 71.68 |
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例上述的方法。
在本实施例中还提供了一种图形渲染的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图13本申请实施例的缓存管理装置的结构框图,如图13所示,该装置包括:
识别单元1302,用于使缓存管理单元MMU基于CPU配置信息,识别外接的缓存控制器类型;
确认单元1304,用于基于地址管理子模块和上述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;
计算单元1306,用于基于上述偏移地址计算出上述缓存控制器类型的逻辑地址;其中,不同的上述缓存控制器类型选通的对外连接通道数不同。
通过本申请,由于采用了缓存管理单元MMU基于CPU配置信息,识别外接的缓存控制器类型;基于地址管理子模块和上述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;基于上述偏移地址计算出上述缓存控制器类型的逻辑地址;其中,不同的上述缓存控制器类型选通的对外连接通道数不同;因此,实现了同一种框架下不同的控制器的切换,可以解决同一种框架下兼容不同的控制器的问题,进而同一框架下可兼容多种控制器,以及提高存储效率的效果。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储控制程序,该计算机可读存储控制程序中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储控制程序可以包括但不限于:CPU和存储控制器的驱动程序、FPGA与HBM/DDR3连接的控制程序等。
本申请的实施例还提供了一种控制器,包括缓存器(缓存部分数据)和处理器,该控制器中存储有计算机程序,该控制器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述控制器还可以包括协议转换的传输设备,其中,该传输设备和上述控制器连接,实现与缓存控制器的连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种缓存管理方法,其特征在于,包括:
缓存管理单元MMU基于中央处理器CPU配置信息,识别外接的缓存控制器类型;
基于地址管理子模块和所述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;
基于所述偏移地址计算出所述缓存控制器类型的逻辑地址;其中,不同的所述缓存控制器类型选通的对外连接通道数不同。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述MMU的地址映射子模块读取预设的地址映射关系;所述地址映射关系为将片内逻辑地址转换为能被缓存芯片接受的物理地址。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述MMU的地址映射子模块读取预设的地址映射关系;所述地址映射关系为将片内逻辑地址转换为能被缓存芯片接受的物理地址;
根据不同应用场景,通过CPU进行重配置,以获取重配置后与所述应用场景对应的地址映射关系。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据片外缓存的需求和缓存控制器的结构属性,按照块单元block将CPU发送给所述MMU的数据包进行切分,其中,切分后的数据包与block地址相对应,一个数据包对应多个block地址,所述缓存控制器的类型不同时地址管理的区间不同。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述MMU接收到报文缓存管理单元PMU发送的片外数据,其中,所述片外数据包括报文描述符PD和报文PK;
提取所述PD的数据信息;
将所述数据信息进行拼包得到拼包数据,并删除所述PK中的第一数据;
对所述拼包数据进行移位拼接,提取出第二数据;
将所述拼包数据中的所述PD的数据信息和提取出的所述第二数据再次进行拼包,得到目标拼包数据
将所述目标拼包数据发送至片外缓存进行存储。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述PD的数据位长度加上提取出的所述第二数据的数据位长度小于或等于总线位宽时,同时输出所述PD和所述第二数据;
在所述PD的数据位长度加上提取出的所述第二数据的数据位长度大于总线位宽时,将所述PD和所述第二数据拆分为第一拆分数据和第二拆分数据;
输出所述PD和所述第一拆分数据;
将所述第二拆分数据进行补零操作,得到数据位长度等于所述总线位宽的补零处理数据,并输出所述补零处理数据。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
报文缓存管理单元PMU下发写报文;
所述PMU存储所述写报文,发送写释放命令给流量缓存管理单元TMMU;所述TMMU下发报文描述符至队列管理单元QMU;
所述QMU通过所述TMMU下发写命令,并透传给所述MMU,所述QMU完成存储所述写命令后向所述TMMU发写释放信号;
命令队列下发读报文命令,读取读报文数据并将所述读报文数据返回到所述PMU;
所述TMMU下发读命令,并读取报文描述符数据。
8.一种缓存管理装置,其特征在于,包括:
识别单元,用于使缓存管理单元MMU基于中央处理器CPU配置信息,识别外接的缓存控制器类型;
确认单元,用于基于地址管理子模块和所述缓存控制器类型对应的地址区域,以查表的方式确认偏移地址;
计算单元,用于基于所述偏移地址计算出所述缓存控制器类型的逻辑地址;其中,不同的所述缓存控制器类型选通的对外连接通道数不同。
9.一种计算机可读存储控制程序,其特征在于,所述计算机可读存储程序中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的方法。
10.一种控制器,包括缓存器和处理器,其特征在于,所述控制器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7任一项中所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111028812.3A CN115756296A (zh) | 2021-09-02 | 2021-09-02 | 缓存管理方法和装置、控制程序及控制器 |
PCT/CN2022/115201 WO2023030195A1 (zh) | 2021-09-02 | 2022-08-26 | 缓存管理方法和装置、控制程序及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111028812.3A CN115756296A (zh) | 2021-09-02 | 2021-09-02 | 缓存管理方法和装置、控制程序及控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756296A true CN115756296A (zh) | 2023-03-07 |
Family
ID=85332392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111028812.3A Pending CN115756296A (zh) | 2021-09-02 | 2021-09-02 | 缓存管理方法和装置、控制程序及控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115756296A (zh) |
WO (1) | WO2023030195A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117440273B (zh) * | 2023-12-18 | 2024-03-22 | 厦门鹏芯半导体有限公司 | 一种xgspon olt上行数据拼包的***及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449679B2 (en) * | 1999-02-26 | 2002-09-10 | Micron Technology, Inc. | RAM controller interface device for RAM compatibility (memory translator hub) |
CN1504900B (zh) * | 2002-04-02 | 2010-04-14 | 英属盖曼群岛商旭上绘图股份有限公司 | 自内存读取数据的控制电路及其方法 |
CN103164368B (zh) * | 2013-03-29 | 2016-02-10 | 惠州Tcl移动通信有限公司 | 一种嵌入式设备兼容不同地址映射内存芯片的方法及*** |
CN106330741B (zh) * | 2015-06-15 | 2020-04-24 | 深圳市中兴微电子技术有限公司 | 一种报文传输方法和装置 |
-
2021
- 2021-09-02 CN CN202111028812.3A patent/CN115756296A/zh active Pending
-
2022
- 2022-08-26 WO PCT/CN2022/115201 patent/WO2023030195A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023030195A1 (zh) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US6526451B2 (en) | Method and network device for creating circular queue structures in shared memory | |
US6717910B1 (en) | Method and apparatus for controlling network data congestion | |
EP2486715B1 (en) | Smart memory | |
US7337253B2 (en) | Method and system of routing network-based data using frame address notification | |
US7307998B1 (en) | Computer system and network interface supporting dynamically optimized receive buffer queues | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN104378161B (zh) | 一种基于AXI4总线架构的FCoE协议加速引擎IP核 | |
WO2015184706A1 (zh) | 统计计数设备及其实现方法、具有统计计数设备的*** | |
JP2003508957A (ja) | ネットワーク・プロセッサ処理コンプレックス及び方法 | |
US10248315B2 (en) | Devices and methods for interconnecting server nodes | |
CN115061973B (zh) | 一种基于非对称多处理模式的网卡映射方法及设备 | |
CN108337286A (zh) | 一种切包方法及装置 | |
CN100486224C (zh) | 一种基于fpga实现atm网络流量控制的装置及方法 | |
CN107832149B (zh) | 一种针对多核处理器动态分组管理的Receive-side Scaling电路 | |
CN112214445A (zh) | RapidIO交换网络数据速率可重配置硬件电路 | |
CN114328623A (zh) | 芯片***中的数据传输处理方法及相关装置 | |
WO2023030195A1 (zh) | 缓存管理方法和装置、控制程序及控制器 | |
CN117215989B (zh) | 一种异构加速设备、***、方法、装置及存储介质 | |
CN110297785A (zh) | 一种基于fpga的金融数据流控装置和流控方法 | |
CN108614792A (zh) | 1394事务层数据包存储管理方法及电路 | |
CN207625600U (zh) | 基于交换机芯片的以太网扩展电路 | |
Zang et al. | PROP: Using PCIe-based RDMA to accelerate rack-scale communications in data centers | |
US20230409506A1 (en) | Data transmission method, device, network system, and storage medium | |
CN112995245B (zh) | 一种基于fpga的可配置负载均衡***与方法 |
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 |