CN116303138B - 一种缓存架构及缓存方法、电子设备 - Google Patents
一种缓存架构及缓存方法、电子设备 Download PDFInfo
- Publication number
- CN116303138B CN116303138B CN202310505240.6A CN202310505240A CN116303138B CN 116303138 B CN116303138 B CN 116303138B CN 202310505240 A CN202310505240 A CN 202310505240A CN 116303138 B CN116303138 B CN 116303138B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- memory
- read
- count value
- 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
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
Abstract
本申请提供一种缓存架构及缓存方法、电子设备,应用于计算机及芯片技术领域,其中缓存架构中,在处理器侧仅内设地址匹配进行缓存命中基本能力,在内存侧内置读处理逻辑模块和写处理逻辑模块,实现内存侧进行读写逻辑的内存内处理PIM结构。通过由内存侧进行全局冷热数据一致性管理,使得处理器侧冷热数据良好,不仅内存内处理可以更好地实现处理器中多核、多流水线下的数据一致性管理,而且能够有效利用内存的大内存空间,结合片上缓存可以实现高精度缓存命中,有利于减小ASIC面积的同时,最大程度的提高缓存命中率减少时延,提高数据加速计算整体性能。
Description
技术领域
本申请涉及计算机及芯片技术领域,具体涉及一种缓存架构及缓存方法、电子设备。
背景技术
随着计算机技术的发展和移动终端的普及,各式各样的计算机设备走进了千家万户,渗透进每个人的生活和工作,发挥着无可比拟的作用。在后摩尔时代,计算机的运算速度遭遇到了技术瓶颈,同时数据规模的爆发也使得对高速数据、高通量算力有了更高的需求。
为满足应用需求,采用各种专用协处理器(如GPU、NPU、DPU等XPU)来卸载通用处理器CPU部分功能是现行成熟做法,因而各种功能用途的XPU出现了爆发性增长。目前实现协处理器的ASIC方案中,通常会内置cache(高速缓冲存储器)相关的功能模块,比如数据冷热检测、数据替换、片上存储器等,即这些功能模块进硬化在ASIC中,虽然能够最大程度地提高处理性能,一定程度上也能够降低处理时延,但也导致了ASIC的电路面积、功耗等较大,成本也普遍变高。
另外,受限于协处理器自身存储容量小,在数据量较大的场景中,不仅不能提高整体处理性能,还造成处理器平均处理时延难以降低。
基于此,需要一种新的缓存架构技术方案。
发明内容
有鉴于此,本说明书实施例提供一种缓存架构及缓存方法、电子设备,有效减小电路面积,并提高缓存命中率,缩减计算延时。
本说明书实施例提供以下技术方案:
本说明书实施例提供一种缓存架构,所述缓存架构包括:
地址匹配处理模块、缓存访问处理模块、读处理逻辑模块、写处理逻辑模块,其中所述地址匹配处理模块和缓存访问处理模块在专用集成电路ASIC芯片侧实现,所述读处理逻辑模块和写处理逻辑模块在内存侧实现;
所述地址匹配处理模块用于接收请求方发来的读请求和写请求,将所述写请求、读请求以及根据所述读请求在所述ASIC芯片的缓存中进行匹配后的命中结果发送至所述缓存访问处理模块;
所述缓存访问处理模块用于将接收到的所述读请求和写请求分别发送至所述读处理逻辑模块和写处理逻辑模块,以及,当所述读请求命中时根据命中位置读取所述缓存中的数据并返回给所述请求方;
所述读处理逻辑模块用于从所述内存中获取未命中的读请求所请求的数据并返回给所述请求方,以及,对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换;
所述写处理逻辑模块用于根据所述写请求将新数据写入到所述内存,以及,根据所述新数据进行缓存更新操作。
优选地,所述地址匹配处理模块在用于根据所述读请求在所述ASIC芯片的缓存中进行匹配时,具体用于:
遍历所述缓存中的地址表以寻找所述读请求的匹配项;
如果未找到匹配项则判定为未命中;
如果找到匹配项则判定为命中,并记录匹配项在所述缓存中的位置以作为所述命中位置。
优选地,所述内存中的每条数据与计数值字段和管理字段相关联,其中,所述计数值字段中的计数值用于反映每条数据被读取的频次,所述管理字段用于记录每条数据所在的缓存空间以及在缓存空间中的地址。
优选地,每个处理核或流水线对应一个计数值,或者,多个处理核或流水线共用一个计数值。
优选地,所述读处理逻辑模块在对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换时,具体用于:
更新被读取的数据的计数值;
根据第一目标数据的计数值判断所述第一目标数据是否应被添加至所述缓存,其中所述第一目标数据为所述读处理逻辑模块待返回的数据;
如果所述第一目标数据应被添加至所述缓存,则获取第二目标数据,其中所述第二目标数据为根据所述内存中各数据的计数值确定出的应被踢出所述缓存的数据,以及,将所述第二目标数据在所述缓存中的地址随所述第一目标数据一同返回以使所述第一目标数据替换所述缓存中的所述第二目标数据。
优选地,根据第一目标数据的计数值判断所述第一目标数据是否应被添加至所述缓存,包括:
判断所述第一目标数据的计数值是否大于第一预设阈值,如果大于第一预设阈值则判定所述第一目标数据应被添加至所述缓存;
所述获取第二目标数据,包括:
将在所述内存中查询到的计数值小于第二预设阈值且已在所述缓存中的数据作为所述第二目标数据。
优选地所述写处理逻辑模块在根据所述新数据进行缓存更新操作时,具体用于:
获取所述新数据的管理字段;
根据所述新数据的管理字段查询所述新数据所在的缓存空间以及在缓存空间中的地址;
将所述新数据返回到所在缓存空间以进行缓存更新操作。
优选地,所述内存为内存内处理PIM内存。
本说明书实施例还提供一种缓存使用方法,所述方法用于以下缓存架构:地址匹配处理模块、缓存访问处理模块、读处理逻辑模块、写处理逻辑模块,其中所述地址匹配处理模块和缓存访问处理模块在专用集成电路ASIC芯片侧实现,所述读处理逻辑模块和写处理逻辑模块在内存侧实现;
所述方法包括:
1)对于读请求:
所述地址匹配处理模块接收请求方发来的读请求,将所述读请求以及根据所述读请求在所述ASIC芯片的缓存中进行匹配后的命中结果发送至所述缓存访问处理模块;
所述缓存访问处理模块将接收到的所述读请求发送至所述读处理逻辑模块,以及,当所述读请求命中时根据命中位置读取所述缓存中的数据并返回给所述请求方;
所述读处理逻辑模块从所述内存中获取未命中的读请求所请求的数据并返回给所述请求方,以及,对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换;
2)对于写请求:
所述地址匹配处理模块接收请求方发来的写请求并将所述写请求发送至所述缓存访问处理模块;
所述缓存访问处理模块将接收到的所述写请求发送至所述写处理逻辑模块;
所述写处理逻辑模块根据所述写请求将新数据写入到所述内存,以及,根据所述新数据进行缓存更新操作。
优选地,根据所述读请求在所述ASIC芯片的缓存中进行匹配,包括:
遍历所述缓存中的地址表以寻找所述读请求的匹配项;
如果未找到匹配项则判定为未命中;
如果找到匹配项则判定为命中,并记录匹配项在所述缓存中的位置以作为所述命中位置。
优选地,所述内存中的每条数据与计数值字段和管理字段相关联,其中,所述计数值字段中的计数值用于反映每条数据被读取的频次,所述管理字段用于记录每条数据所在的缓存空间以及在缓存空间中的地址。
优选地,每个处理核或流水线对应一个计数值,或者,多个处理核或流水线共用一个计数值。
优选地,对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换,包括:
更新被读取的数据的计数值;
根据第一目标数据的计数值判断所述第一目标数据是否应被添加至所述缓存,其中所述第一目标数据为所述读处理逻辑模块待返回的数据;
如果所述第一目标数据应被添加至所述缓存,则获取第二目标数据,其中所述第二目标数据为根据所述内存中各数据的计数值确定出的应被踢出所述缓存的数据,以及,将所述第二目标数据在所述缓存中的地址随所述第一目标数据一同返回以使所述第一目标数据替换所述缓存中的所述第二目标数据。
优选地,根据第一目标数据的计数值判断所述第一目标数据是否应被添加至所述缓存,包括:
判断所述第一目标数据的计数值是否大于第一预设阈值,如果大于第一预设阈值则判定所述第一目标数据应被添加至所述缓存;
所述获取第二目标数据,包括:
将在所述内存中查询到的计数值小于第二预设阈值且已在所述缓存中的数据 作为所述第二目标数据。
优选地根据所述新数据进行缓存更新操作时,包括:
获取所述新数据的管理字段;
根据所述新数据的管理字段查询所述新数据所在的缓存空间以及在缓存空间中的地址;
将所述新数据返回到所在缓存空间以进行缓存更新操作。
优选地,所述内存为内存内处理PIM内存。
本说明书实施例还提供一种电子设备,所述电子设备包括如本说明书任一项所述的缓存架构。
本说明书实施例还提供一种电子设备,所述电子设备包括ASIC芯片和内存,以及存储在所述芯片和内存上并可在所述芯片和内存上运行的计算机程序,所述芯片和内存执行所述程序,以实现如本说明书任一项所述的方法。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:
本申请实施例提供了一种新的缓存架构,在专用协处理器与内存之间对缓存相关功能进行了重新分配,在内存侧实现读处理逻辑模块和写处理逻辑模块,也即将数据冷热检测功能、数据替换功能、写处理功能等都在内存侧实现,在内存区域内直接进行数据操作、实现简单逻辑的处理,这样不但可以减少专业协处理器与内存之间的数据移动,提高数据处理速度,还可简化专业协处理器的功能,从而减小ASIC电路面积,降低了成本。
同时,因为数据冷热检测、数据替换等功能改由在单比特成本较低的内存(DRAM)内实现,而内存通常比缓存(昂贵的片内存储器,如SRAM或寄存器)大很多,操作空间更大,故有条件对每条数据进行单独计数统计,因此数据冷热检测时可以做到更精准,缓存命中率更高,提高了缓存性能,进而使得处理器平均处理时延更低。
此外,对于多核或多流水线架构,内存侧的读处理逻辑模块可以充当全局管理员的角色,即通过对新数据在各缓存空间进行统一更新而完成缓存数据一致性管理,无需使用专门的一致性/同步协议,高效易行,从而可以更好地实现多核、多流水线场景下的数据一致性管理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是处理器与内存之间需要频繁数据移动的冯诺依曼结构示意图;
图2是HBM-PIM架构的结构示意图;
图3是本申请中一种缓存架构的结构示意图;
图4是本申请中缓存方法中一个缓存命中的读请求流程示意图;
图5是本申请中缓存方法中一个缓存未命中的读请求流程示意图;
图6是本申请中缓存方法中写请求流程示意图;
图7是本申请中缓存方法中用于缓存处理流程的相关列表项及其内容示意的示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践。
在现有冯诺依曼架构中,通用处理器(如CPU)、协处理器(如GPU、NPU、DPU等可以统称为XPU)等处理器芯片的工作时钟频率较高,内存(如DRAM)通常工作时钟频率较低,即通用处理器CPU、协处理器XPU等属于高速设备,而内存DRAM属于低速设备,因而高低速设备之间交换的数据增加时,整体计算会出现较大延迟。因此,加速计算处理现有方案中,普遍使用专用协处理器卸载和加速通用处理器CPU部分计算、缓存等功能,即将这些功能通过ASIC硬化在专用协处理器内部,比如在ASIC内置数据冷热检测、数据替换、片上存储器等功能模块,以此来降低延时和提高处理性能,但在ASIC内置过多模块将造成ASIC在面积、功耗、成本等方面丧失优势,而且当协处理器之间、协处理器与通用处理器之间等芯片间数据移动量增大时,平均处理时延显著增加,功耗也明显上升,因而数据处理整体性能不高。
另外,因为ASIC使用的片内存储器(如SRAM或寄存器)价格比较昂贵,所以存储器容量通常做得较小,这会导致在ASIC中进行数据冷热检测很不精准,缓存(cache)命中率不高,进一步加剧了平均处理时延。
因此,存算一体是一个重要的技术发展方向。
当前不断涌现的革新技术,给存算一体带来了希望,比如三星于2021年2月首发业界首款内嵌AI芯片的高带宽内存处理器(high-bandwidth memory, processing-in-memory,HBM-PIM),其中HBM是指高带宽内存,PIM是指内存内处理,该架构提供了内存侧的存储区域配备了可编程计算单元(Programmable Caculation),利用该可编程计算单元PCU进行AI引擎的加速逻辑处理能力,可提供两倍多的系统性能,功耗可降低约70%。
具体地,该HBM-PIM结构中,在每个内存内核中集成一个可编程计算单元PCU作为AI引擎,来处理一些加速计算逻辑功能,即把部分或全部加速计算处理操作转移到HBM-PIM本身上,进而可以在内存区域内能够进行数据计算操作,减少处理器(如CPU、XPU)与内存之间的数据移动,最大程度地减小时延、功耗等。
虽然在HBM-PIM结构中内置了用作AI引擎的可编程计算单元PCU,能够提供了内存侧进行AI加速计算的一些逻辑处理能力,并通过可编程计算单元PCU重新编程能够适应一些AI场景应用的需求,但是这种新型内存结构是为了减轻内存与一般处理器之间转移数据的负担,即该技术方案的思路聚焦于在PIM结构中内置AI引擎功能,以在PIM结构内部完成AI加速计算,来减少AI处理器与内存之间的数据流动,从而降低计算延时。而且,在HBM-PIM结构中为可编程计算单元PCU腾出相应电路空间,必然会降低整体内存容量,例如与标准的HBM2裸片(8Gb)相比,每个配备PCU的内存裸片只有一半的容量(4Gb),换言之内存占用更多电路面积才能达到相同存储容量。
另外,当前不断涌现的各种AI应用场景,不仅需要存储大量运算数据,而且还要求处理器(如通用处理器CPU、协处理器XPU)与内存DRAM之间能够进行频繁的数据移动,通常也需要处理器基于多核(Core)、多流水线(Pipeline)进行加速计算。
因此,若仍然采用前述在HBM-PIM内置AI引擎(即可编程计算单元PCU)来降低处理器与内存之间的数据移动的技术思路,不仅实际部署应用的灵活性不高,而且整体性能(如电路面积、功耗、成本等)也可能受到较多制约。
有鉴于此,发明人在对数据的整体处理架构(如图1示出的冯诺依曼架构,图2示出的HBM-PIM架构等)及数据处理方案进行改进探索中,发现:针对如何利用PIM结构来简化整体数据处理中的缓存(Cache)架构(如减小ASIC整体电路面积),并提高整体数据处理中的Cache性能(如降低时延),并未见现有技术有过多披露。
针对HBM-PIM结构进行改进中,进一步发现:PIM结构不仅可以用于AI加速,还可以用于缓存Cache简化实现,从而通过提升数据的缓存性能来提升整体数据处理性能,比如能够减小电路面积,降低功耗,缩小数据计算延时等。
因此,本申请提出一种能够减小ASIC面积并缩减计算延时的数据缓存技术方案:ASIC芯片除保留匹配功能外,其他功能模块如数据冷热检测功能模块、数据替换功能模块,写处理功能模块、数据一致性处理模块等均在内存内处理。
如图3所示,ASIC芯片(即片上缓存)一侧中,在每个核(Core)或者流水线(Pipeline)中均设置有地址匹配处理模块(Address Match Processor)和缓存访问处理模块(Cache Data Processor),这样ASIC片上缓存只需保留必要的地址匹配能力实现缓存命中功能即可;在内存一侧,除了用于存储数据的内存存储块(如DRAM Block),还设置有进行简单逻辑处理的读处理逻辑模块(Read Logic Module)、写处理逻辑模块(Write LogicModule),其中在读处理逻辑模块中设置有读命令生成单元(Read Access Generate)、计数统计单元(Counting Statistics)和读返回单元(Read Response),以及在写处理逻辑模块中设置有写命令生成单元(Write Generate)和写返回单元(Write Response)。
实施中,在内存中开辟有不同存储块辅助于本申请的缓存整体处理,例如将第一存储块(如DRAM Block0)作为用户数据存储(Used for Data Storage),将第二存储块(如DRAM Block2)作为统计结果及数据管理(Used for Counter Statistics and DataManagement)。需要说明的是,用户数据存储的存储块所在区域及数量,和/或统计结果及数据管理的存储块所在区域及数量等,可根据应用部署需要而定义,这里不作限定。
地址匹配处理模块(位于ASIC侧):作为ASIC片上缓存(Cache on ASIC)入口模块,所有读写请求首先进入该模块。对于写请求,直接透传到缓存访问处理模块,并有缓存访问处理模块透传至片外内存;对于读请求,则进行地址匹配。
在一些实施示例中,如图3至图6示意,采用地址列表(Address List)存放缓存数据在缓存中的地址,从而通过列表进行快速搜索和匹配操作。
在一些实施示例中,地址匹配可采用TCAM(Ternary Content AddressableMemory)/BCAM(Binary Content Addressable Memory)进行硬件匹配,也可以采用软件算法实现,这里不作限定。
缓存访问处理模块(位于ASIC侧):对于写请求和地址未匹配的读请求,直接透传至片外内存;对于地址匹配的读请求,则根据匹配地址,读取缓存数据空间(如图3至图6中的缓存数据列表)并将数据返回;其次,还将读请求传至片外内存。总体来说,所有请求都需要发送至片外内存,读请求由读处理逻辑模块进行读内存,写请求由写处理逻辑模块对内存和缓存进行写处理。
读处理逻辑模块(位于内存侧):主要功能包括数据请求、计数统计和数据返回。数据请求是指对未命中的读请求发起数据请求;计数统计则是对所有内存数据进行访问计数统计,该计数可以是全局计数或窗口计数,其次该计数可以是精确统计(1数据1计数值),也可以是模糊统计(如哈希计数、count-min计数等等),可根据统计精度和内存空间分配具体情况决定使用哪种统计方法,这里不作限定;在计数统计单元对读请求统计完成后,还需要对内存块单元执行写操作,完成统计计数更新;计数统计模块另一个主要功能是根据计数值判定数据是否添加到缓存(Cache)中以及选择踢出项(冷热替换)。数据返回则将用户数据、是否缓存添加、添加地址(被替换的地址adr)等返回片上。
写处理逻辑模块(位于内存侧):对所有写操作,进行写入新数据操作。根据数据中信息提取所在的核号或流水线号,将写入数据返回到其他相关处理核或流水线上,进行缓存(Cache)更新操作。需要说明的是,现有技术中是通过各核之间的同步协议实现一致,而本申请中由内存统一对ASIC芯片上其他核对应的缓存也要同步更新(如图6示意),从而实现数据一致性,实现方案更简单。
需要说明的是,ASIC芯片可以是协处理器芯片,也可以是通用处理器芯片,这里不作区分。
综上,本申请提出的缓存技术方案,通过在内存侧进行全局数据一致性管理,内存充当管理员角色,更好地实现多核、多流水线下的数据一致性管理,能够有效利用内存的大内存空间,实现高精度缓存(Cache)替换,从而减小ASIC面积,最大程度的减少时延,提高数据加速计算整体性能,提高数据加速计算方案在各种部署应用场景中的灵活性。
正如前述说明,与基于HBM-PIM的AI加速计算不同,本申请聚焦于在内存中对整体数据的缓存进行统一管理,通过提高ASIC上缓存的命中率,进而有利于减小数据计算的整体延时,也有利于减小ASIC芯片面积。
在一些实施示例中,片外内存可以为PIM结构的内存。进一步,可以优选HBM-PIM结构的内存。
如图4所示,缓存(Cache)命中读请求的处理步骤示意:
步骤1:读请求进入地址匹配处理模块,遍历地址表寻找匹配项,匹配命中则记录命中项在片上缓存空间的位置,然后将匹配结果和读请求发送至缓存访问处理模块,进入步骤2。
步骤2:命中的读请求,根据片上缓存命中位置,访问片上缓存数据空间,得到结果进入步骤3。
步骤3:向请求方返回数据。
步骤4:读请求发送至片外内存,并进入读处理逻辑模块进行计数更新,保证热流在片上缓存空间保存,冷流在片外空间保存。
如图5所示,Cache未命中读请求的处理步骤示意:
步骤1:读请求进入地址匹配处理模块,遍历地址表寻找匹配项,匹配不命中则将读请求发送至缓存访问处理模块,由该模块透传至片外内存。
步骤2:缓存访问处理模块将读请求发送至片外内存,并根据请求类型(读或写)发送至读处理逻辑模块,进入步骤3。
步骤3:读处理逻辑模块对未命中读请求生成内存访问请求,比如经图5中示意的读命令生成单元(Read Access Generate)生成内存访问请求read,并根据访问地址获取访问片外数据。片外数据包含用户请求数据data、计数值Counter和管理字段ManagementField。计数值是对数据访问频率的描述,根据内存空间可设为单核(单流水线)1值或多核(多流水线)1值两种方式;管理字段标记了数据写入的缓存空间及缓存id,表示数据写入到哪几个处理核或流水线缓存空间之中。进入步骤4。
步骤4:计数统计单元的一个功能是根据读取的计数值判定该数据是否进行缓存(Cache)添加,即是否属于热度高的数据而需要添加到片上缓存,并且扫描计数值选择片上缓存空间的踢出项,最后将用户请求数据、添加标记(1bit)和缓存被踢出项id数据等聚合进入步骤5a将数据返回片上。计数统计单元的另一个功能是对计数值(精确计数或模糊计数)和管理字段进行更新,然后进入5b将计数值和管理字段更新回片外内存。
步骤5a:将数据返回片上。
步骤5b:将计数值和管理字段更新回片外内存。
步骤6a:读返回单元(Read Response)将用户请求的数据返回。
步骤6b:进行冷热替换的匹配地址更新维护,即当“添加标记”表明需要进行缓存添加时,根据踢出项id在地址列表中进行地址替换,或者直接添加地址到地址列表中。
步骤6c:进行冷热替换的缓存数据更新维护。即当“添加标记”表明需要进行缓存添加时,根据踢出项id在缓存数据列表中进行数据替换,或者直接添加数据到数据列表中。
如图6所示,写请求的处理步骤示意:
步骤1:写请求在进入地址匹配处理模块后被透传至缓存访问处理模块,进入步骤2。
步骤2:缓存访问处理模块将写请求透传至片外内存,进入步骤3。
步骤3:片外内存根据请求类型发送至写处理逻辑模块,进入步骤4。
步骤4:将新的数据写入到片外内存,并读取其管理字段,进入步骤5。
步骤5:写返回单元根据管理字段,查询其所在处理核/流水线及其缓存空间id,最后更新片上缓存空间。
下面再以两种不同方式进行地址匹配的读写过程进行示意说明:
在一些实施方式中,基于硬件匹配实现地址匹配。
地址匹配处理模块(Address Match Processor)采用TCAM实现,由于片外内存空间大,计数统计(Counting Statistics)采用精确计数法,每个处理核(或流水线)都有一个计数器,表明其访问次数,从而获取该数据热度信息。当计数值大于一个预设阈值ACCEPT_THR时表明该数据可以添加进缓存,并将其Cache_Flag进行置位;当计数值小于另一个预设阈值DELETE_THR时表明该数据若在缓存中,该数据可从缓存中删除。
采用背景线程1随机老化计数值,避免计数值达到最大值。
背景线程2轮询计数值,当计数值小于DELETE_THR并且该数据在缓存中时,该数据作为待踢出项等待踢出。
当缓存(Cache)命中时,更新计数值。
当缓存(Cache)未命中时,判断计数值是否大于阈值时,选择一个待踢出项进行缓存替换,并记录Cache_Flag且更新Cache_Id。
写操作时,先更新片外数据,然后根据Cache_Flag和Cache_Id更新片上缓存数据。
在一些实施方式中,采用软件方式进行地址精确匹配。
地址匹配处理模块(Address Match Processor)采用软件精确匹配法(如哈希映射等)实现,为节省内存空间,计数统计单元(CountingStatistics)采用模糊计数法(如Count-min计数),所有处理核(或流水线)只有一个计数器,表明其访问次数,每个核(或流水线)的缓存数据相同。当计数值大于一个预设阈值ACCEPT_THR时表明该数据可以添加进缓存,并将其Cache_Flag进行置位;当计数值小于另一个预设阈值DELETE_THR时表明该数据若在缓存中,该数据可从缓存中删除。
背景线程1间隔固定周期,所有计数值清空。
背景线程2轮询计数值,当计数值小于DELETE_THR并且该数据在缓存中时,该数据作为待踢出项等待踢出。
当cache命中时,更新计数值。
当cache未命中时,判断计数值是否大于阈值时,选择一个待踢出项进行缓存替换,并记录Cache_Flag且更新Cache_Id。
写操作时,先更新片外数据,然后根据Cache_Flag和Cache_Id更新片上缓存数据。
另外,针对图3至图6示出的各个列表项,比如位于片外内存DRAM内的内存数据空间(各个DRAM Block空间,可记为DRAM Data Table),位于ASIC片上缓存的地址列表(Address List)、缓存数据列表(Cache Data List)等,各列表项的示意内容可以参见附图7,而且本领域的技术人员应当能够理解的是,依据附图7给出的各个表项示意内容,并结合本说明书提供的实施示例内容,可以根据缓存实际部署情况进行实施,不再一一展开说明。
本说明书中,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的都是与其他实施例的不同之处。尤其,对于后面说明的实施例而言,描述比较简单,相关之处参见前述实施例的部分说明即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种缓存架构,其特征在于,所述缓存架构包括:
地址匹配处理模块、缓存访问处理模块、读处理逻辑模块、写处理逻辑模块,其中所述地址匹配处理模块和缓存访问处理模块在专用集成电路ASIC芯片侧实现,所述读处理逻辑模块和写处理逻辑模块在内存侧实现;
所述地址匹配处理模块用于接收请求方发来的读请求和写请求,将所述写请求、读请求以及根据所述读请求在所述ASIC芯片的缓存中进行匹配后的命中结果发送至所述缓存访问处理模块;
所述缓存访问处理模块用于将接收到的所述读请求和写请求分别发送至所述读处理逻辑模块和写处理逻辑模块,以及,当所述读请求命中时根据命中位置读取所述缓存中的数据并返回给所述请求方;
所述读处理逻辑模块用于从所述内存中获取未命中的读请求所请求的数据并返回给所述请求方,以及,对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换;
所述写处理逻辑模块用于根据所述写请求将新数据写入到所述内存,以及,根据所述新数据进行缓存更新操作。
2.根据权利要求1所述的缓存架构,其特征在于,所述地址匹配处理模块在用于根据所述读请求在所述ASIC芯片的缓存中进行匹配时,具体用于:
遍历所述缓存中的地址表以寻找所述读请求的匹配项;
如果未找到匹配项则判定为未命中;
如果找到匹配项则判定为命中,并记录匹配项在所述缓存中的位置以作为所述命中位置。
3.根据权利要求1所述的缓存架构,其特征在于,所述内存中的每条数据与计数值字段和管理字段相关联,其中,所述计数值字段中的计数值用于反映每条数据被读取的频次,所述管理字段用于记录每条数据所在的缓存空间以及在缓存空间中的地址。
4.根据权利要求3所述的缓存架构,其特征在于,每个处理核或流水线对应一个计数值,或者,多个处理核或流水线共用一个计数值。
5.根据权利要求3所述的缓存架构,其特征在于,所述读处理逻辑模块在对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换时,具体用于:
更新被读取的数据的计数值;
根据第一目标数据的计数值判断所述第一目标数据是否应被添加至所述缓存,其中所述第一目标数据为所述读处理逻辑模块待返回的数据;
如果所述第一目标数据应被添加至所述缓存,则获取第二目标数据,其中所述第二目标数据为根据所述内存中各数据的计数值确定出的应被踢出所述缓存的数据,以及,将所述第二目标数据在所述缓存中的地址随所述第一目标数据一同返回以使所述第一目标数据替换所述缓存中的所述第二目标数据。
6.根据权利要求3所述的缓存架构,其特征在于,所述写处理逻辑模块在根据所述新数据进行缓存更新操作时,具体用于:
获取所述新数据的管理字段;
根据所述新数据的管理字段查询所述新数据所在的缓存空间以及在缓存空间中的地址;
将所述新数据返回到所在缓存空间以进行缓存更新操作。
7.根据权利要求1~6任一项所述的缓存架构,其特征在于,所述内存为内存内处理PIM内存。
8.一种缓存使用方法,其特征在于,所述方法用于以下缓存架构:地址匹配处理模块、缓存访问处理模块、读处理逻辑模块、写处理逻辑模块,其中所述地址匹配处理模块和缓存访问处理模块在专用集成电路ASIC芯片侧实现,所述读处理逻辑模块和写处理逻辑模块在内存侧实现;
所述方法包括:
1)对于读请求:
所述地址匹配处理模块接收请求方发来的读请求,将所述读请求以及根据所述读请求在所述ASIC芯片的缓存中进行匹配后的命中结果发送至所述缓存访问处理模块;
所述缓存访问处理模块将接收到的所述读请求发送至所述读处理逻辑模块,以及,当所述读请求命中时根据命中位置读取所述缓存中的数据并返回给所述请求方;
所述读处理逻辑模块从所述内存中获取未命中的读请求所请求的数据并返回给所述请求方,以及,对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换;
2)对于写请求:
所述地址匹配处理模块接收请求方发来的写请求并将所述写请求发送至所述缓存访问处理模块;
所述缓存访问处理模块将接收到的所述写请求发送至所述写处理逻辑模块;
所述写处理逻辑模块根据所述写请求将新数据写入到所述内存,以及,根据所述新数据进行缓存更新操作。
9.根据权利要求8所述的方法,其特征在于,根据所述读请求在所述ASIC芯片的缓存中进行匹配,包括:
遍历所述缓存中的地址表以寻找所述读请求的匹配项;
如果未找到匹配项则判定为未命中;
如果找到匹配项则判定为命中,并记录匹配项在所述缓存中的位置以作为所述命中位置。
10.根据权利要求8所述的方法,其特征在于,所述内存中的每条数据与计数值字段和管理字段相关联,其中,所述计数值字段中的计数值用于反映每条数据被读取的频次,所述管理字段用于记录每条数据所在的缓存空间以及在缓存空间中的地址。
11.根据权利要求10所述的方法,其特征在于,每个处理核或流水线对应一个计数值,或者,多个处理核或流水线共用一个计数值。
12.根据权利要求10所述的方法,其特征在于,对所述内存中的数据进行读取计数统计以对所述缓存中的数据进行冷热替换,包括:
更新被读取的数据的计数值;
根据第一目标数据的计数值判断所述第一目标数据是否应被添加至所述缓存,其中所述第一目标数据为所述读处理逻辑模块待返回的数据;
如果所述第一目标数据应被添加至所述缓存,则获取第二目标数据,其中所述第二目标数据为根据所述内存中各数据的计数值确定出的应被踢出所述缓存的数据,以及,将所述第二目标数据在所述缓存中的地址随所述第一目标数据一同返回以使所述第一目标数据替换所述缓存中的所述第二目标数据。
13.根据权利要求10所述的方法,其特征在于,根据所述新数据进行缓存更新操作时,包括:
获取所述新数据的管理字段;
根据所述新数据的管理字段查询所述新数据所在的缓存空间以及在缓存空间中的地址;
将所述新数据返回到所在缓存空间以进行缓存更新操作。
14.根据权利要求8~13任一项所述的方法,其特征在于,所述内存为内存内处理PIM内存。
15.一种电子设备,其特征在于,所述电子设备包括如权利要求1~7任一项所述的缓存架构。
16.一种电子设备,其特征在于,所述电子设备包括ASIC芯片和内存,以及存储在所述芯片和内存上并可在所述芯片和内存上运行的计算机程序,所述芯片和内存执行所述程序,以实现如权利要求8~14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310505240.6A CN116303138B (zh) | 2023-05-08 | 2023-05-08 | 一种缓存架构及缓存方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310505240.6A CN116303138B (zh) | 2023-05-08 | 2023-05-08 | 一种缓存架构及缓存方法、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116303138A CN116303138A (zh) | 2023-06-23 |
CN116303138B true CN116303138B (zh) | 2023-08-29 |
Family
ID=86798034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310505240.6A Active CN116303138B (zh) | 2023-05-08 | 2023-05-08 | 一种缓存架构及缓存方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303138B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115394332B (zh) * | 2022-09-09 | 2023-09-12 | 北京云脉芯联科技有限公司 | Cache模拟实现系统、方法、电子设备及计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845324A (en) * | 1995-04-28 | 1998-12-01 | Unisys Corporation | Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access |
CN115328402A (zh) * | 2022-08-18 | 2022-11-11 | 三星(中国)半导体有限公司 | 数据缓存的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10169232B2 (en) * | 2016-02-19 | 2019-01-01 | Seagate Technology Llc | Associative and atomic write-back caching system and method for storage subsystem |
US20180011792A1 (en) * | 2016-07-06 | 2018-01-11 | Intel Corporation | Method and Apparatus for Shared Virtual Memory to Manage Data Coherency in a Heterogeneous Processing System |
-
2023
- 2023-05-08 CN CN202310505240.6A patent/CN116303138B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845324A (en) * | 1995-04-28 | 1998-12-01 | Unisys Corporation | Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access |
CN115328402A (zh) * | 2022-08-18 | 2022-11-11 | 三星(中国)半导体有限公司 | 数据缓存的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116303138A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8103835B2 (en) | Low-cost cache coherency for accelerators | |
US9384134B2 (en) | Persistent memory for processor main memory | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
CN111143244B (zh) | 计算机设备的内存访问方法和计算机设备 | |
US20020169935A1 (en) | System of and method for memory arbitration using multiple queues | |
CN109684237B (zh) | 基于多核处理器的数据访问方法和装置 | |
CN116303138B (zh) | 一种缓存架构及缓存方法、电子设备 | |
CN110297787B (zh) | I/o设备访问内存的方法、装置及设备 | |
US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
US11550720B2 (en) | Configurable cache coherency controller | |
US7325102B1 (en) | Mechanism and method for cache snoop filtering | |
US20030018855A1 (en) | Method and apparatus for caching with variable size locking regions | |
US7007135B2 (en) | Multi-level cache system with simplified miss/replacement control | |
US6965972B2 (en) | Real time emulation of coherence directories using global sparse directories | |
WO2021208489A1 (zh) | 数据写入方法、装置和电子设备 | |
WO2016131175A1 (zh) | 多核系统中数据访问者目录的访问方法及设备 | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
US6839806B2 (en) | Cache system with a cache tag memory and a cache tag buffer | |
US6901450B1 (en) | Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors | |
US11334488B2 (en) | Cache management circuits for predictive adjustment of cache control policies based on persistent, history-based cache control information | |
US20020002659A1 (en) | System and method for improving directory lookup speed | |
CN116126747B (zh) | 一种缓存方法、缓存架构、异构架构及电子设备 | |
US20060015689A1 (en) | Implementation and management of moveable buffers in cache system | |
CN115080459A (zh) | 缓存管理方法及装置、计算机可读存储介质 | |
CN117149781B (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 |