历史上的今天
返回首页

历史上的今天

今天是:2025年01月19日(星期日)

正在发生

2020年01月19日 | 加大吞吐量,是时候该装备L4级缓存了

2020-01-19 来源:半导体行业观察

广义上来说,处理器性能与广义上的DRAM主存储器性能之间的差距至少在三十年前就成为一个问题。但在此期间,那些聪明的硬件和软件工程师创建了缓存层次结构的以及可以利用缓存层次结构的软件来缓解相关问题。


See the source image

但是,随着我们坐在不断扩展的内存层次结构的风口浪尖上,诸如Optane 3D XPoint(相变内存的一种变体)之类的持久性内存已应用于DIMM和SSD尺寸因素以及诸如CXL,OpenCAPI,CCIX,NVLink和Gen等新协议,同时Gen-Z也被用来把处理器和加速器存储器连贯地(对称地或非对称地)连接在一起。

我们不得不思考:是时候向服务器添加4级缓存了吗?

由于有这么多不同的设备挂在CPU组件上(有些相对较近,有些相对较远),因此逻辑上想知道是否需要另一个高速缓存级别来掩盖这些其他内存的延迟并提高整体系统吞吐量。

为了了解可能的情况,我们与IBM,Intel,AMD和Marvell的服务器芯片架构师联系,以了解他们对使用L4高速缓存存储器的想法。在服务器上。L4缓存绝不是一个新的发展,但在系统体系结构中也不是司空见惯。

但是在我们进行讨论之前,需要先了解一些背景知识。

在1980年代后期,工程师向处理器添加了1级高速缓存,当时只有一种核心方式,这是在向内存子系统添加总体延迟以换取绝对降低处理器对数据和指令请求的总体平均延迟之间进行的权衡。

L1缓存最初是外部SRAM,它们安装在主板上并连接到CPU内存组合中。这个L1高速缓存在时钟时间和主板空间上都非常靠近处理器,这意味着CPU可以保持忙碌的状态。最终,这些1级缓存被拆分,因此它们可以将常用数据存储在一个块中,而流行指令存储在另一个块中,这有助于提高性能。

随着处理器时钟速度的提高以及CPU速度和DRAM速度之间的差距进一步扩大,L2高速缓存被添加到进来,但更臃肿,更慢,更便宜(基于每个位或每个带宽),再次在CPU封装之外,然后集成在上面。而且,当越来越多的内核被添加到CPU以及更多的DRAM存储器控制器来馈送(feed)它们时,甚至更大的L3高速缓存块也被添加到层次结构中以保持这些CPU的馈送。

在大多数情况下,这已经很好地解决了。在大多数CPU设计中,有一些经验法则可以反映出处理中缓存层次结构的级别,因为我们打算采用第四层。

英特尔的芯片工程师兼架构师克里斯·吉亚诺斯(Chris Gianos)领导了许多上一代至强处理器的设计,他这样解释道:“通常,对于每个缓存级别,我们都需要将它们增加一个合理的数量以达到上一个级别,以使其有意义,着是因为您需要足够有趣的命中率( hit rate)才能对系统性能产生显着影响。如果您仅在百分之几的时间访问高速缓存,那么可能很难注意到。其他所有东西都会淹没您的演奏,而您并没有动太多。因此,您需要相对较大的缓存,而在谈论更高级别时,则需要非常大的缓存。现在,我们的L2以兆字节为单位,而我们的L3以数十或数百兆字节为单位。显然,如果您开始考虑使用L4高速缓存,那么可能不是数百兆字节就是几百兆字节。而且由于它们很大,因此它们的成本无疑是一个问题。您必须付出足够的努力才能使其变得有趣,而且价格也不菲。”

AMD的架构师则不愿直接对话,因为他们不希望AMD被误解,让大家觉得AMD承诺将在Epyc处理器系列中添加L4缓存,但其实AMD并没有说出这样的话。但是它确实意识到这是下一步要考虑的事情,就像英特尔一样。

他们相信每个架构师都在考虑L4缓存,并且他也分享了一些想法。基本上,AMD的相关人士表示,缓存层数和延迟之间的折衷已经在行业和学术界进行了很好的研究,并且对于每个更大,更慢且访问更广泛的新缓存层,必须进行必要的折衷,以增加通往DRAM的总路径,因为大多数设计不会与上层的高速缓存标签查找并行地连续地推测性地访问层次结构中更下方的高速缓存层。当Gianos说您需要在命中率和缓存容量之间找到平衡时,这正是Intel在上面所说的,那就意味着L4也不例外。

而IBM则早在2000年代就在其自己的某些X86芯片组中添加了L4缓存,并在2010年在System z11大型机的NUMA互连芯片组中添加了L4缓存。

z11处理器具有四个内核,每个内核具有64 KB的L1指令和128 KB的L1数据高速缓存,以及每个内核1.5 MB的L2高速缓存和在这四个内核之间的24 MB共享L3高速缓存。z10的NUMA芯片组具有两排96 MB的L4缓存,总计192 MB。

使用z12,IBM将数据高速缓存的容量减少到每个内核98 KB,但将每个内核的L2高速缓存增加到2 MB,同时将其分成指令和数据一半,例如L1高速缓存。L3高速缓存在裸片上的六个内核上增加了一倍,达到48 MB,而NUMA芯片组上实现的这对芯片的L4高速缓存容量增加到384 MB。

在System z处理器世代中,高速缓存已经全部增长,去年9月发布z15处理器后,这对L1高速缓存对每个的大小为128 KB,这对L2高速缓存对的大小每个为4 MB,并且跨12个内核的共享L3高速缓存Die的大小为256 MB。z15大型机中的L4缓存在NUMA芯片组中具有960 MB的L4缓存,在五个可扩展到190个内核的完整系统中,总共有4.68 GB。

正如我们之前指出的那样,Power8和Power9处理器都具有缓冲内存,并且IBM在每个“ Centaur”缓冲区中添加了16 MB的L4高速缓存块,每个插槽中的32个记忆棒总共有128 MB的L4高速缓存。使用Power9,低端计算机没有缓冲的内存,因此没有L4缓存。但IBM的架构师完成Power10设计并之后,现在正在执行Power11设计的最后冲刺,所以无法拨通电话,但是掌管Power10的工作的William Starke还是花了一点时间将这种想法加进去:

“通常,我们发现大型的末级缓存为企业工作负载提供了显着的性能价值,” Starke 通过电子邮件向The Next Platform解释。(我们曾在2019年8月与Starke讨论过使用Power9和Power10芯片提高主存储器组的带宽。用于在存储类内存层次结构中进行缓存(可能类似于L4)。”

这正是我们的想法。顺便说一句,我们不建议L4高速缓存一定要位于将来的DDR5 DIMM上的缓冲内存上或旁边。它可能更适合处理器上的PCI-Express和L3高速缓存之间,或者更适合存储缓冲区中以及PCI-Express总线和L3高速缓存之间。这可能意味着将其堆叠在I / O和内存控制器集线器芯片的顶部,形成类似于英特尔Foveros技术的未来小芯片服务器体系结构。

现在,公平地说,还有另一种看待这种情况的方法,那就是IBM拥有裸片尺寸和晶体管,并且没有为System z NUMA互连或Power8和Power9内存缓冲芯片添加L4高速缓存。这本身就是目标,但最好的办法是一旦添加了其他必需的功能,即可在这些设备上使用剩余的晶体管预算。

有时我们认为,相对于可以放置的L3缓存数量,Intel X86处理器上的内核数量是机会。有时候,英特尔似乎会为每个芯片设置一个L3缓存预算,然后对于三个不同大小的至强芯片来说,这一切都应有尽有。而在最近的世代中,具有10、18或28个内核的Xeon芯片采用14纳米工艺。

虽然这还没有定论,但是这表明IBM和其他芯片组制造商可能会增加L4缓存。它不仅可以帮助一些人,而且很显然可以尝试。我们把这样的I / O怪物看作System z的大型机,毫无疑问,IBM已经在那里放置工作的最好的L4缓存权,并通过增加这些机器的吞吐量,允许他们在运行带来的价值给客户一个随着大型机中处理器核心数量和NUMA规模的增长,而CPU利用率持续达到98%至99%。

并没有人规定L4缓存必须由嵌入式DRAM(就像IBM对其芯片所做的那样)或更昂贵的SRAM构成,一个曾经任职于Cray Research,Sun Microsystems,Oracle,Broadcom,Cavium和Marvell的芯片架构师Rabin Sugumar提醒我们。

Sugumar说:“就目前而言,我们的L3已经很大。” “因此,针对您正在谈论的这个特定用例,必须使用不同的技术来制作L4缓存。也许是eDRAM,甚至是HBM或DRAM。在这种情况下,一个看起来很有趣的是——L4高速缓存实现是将HBM用作高速缓存,而不是延迟高速缓存,而不是带宽高速缓存。这样做的想法是,由于HBM容量有限且带宽较高,因此我们可以获得一些性能提升,并且在带宽受限的使用案例中我们确实看到了显着的收益。缓存未命中数。但是,就性能和成本而言,需要做的数学就是添加另一个缓存层是否值得。

(再次,Sugumar与我们谈论此事并不意味着 Marvell致力于向未来的ThunderX处理器添加L4缓存。但这的确意味着架构师和工程师总是在很久以前就尝试过想法-通常是通过模拟器来实现的。蚀刻到晶体管中。)

Sugumar说,另一个可能的类似L4的缓存选项是使用本地DRAM作为缓存。“这不在开发实验室之类,而是诸如此类,但是假设我们的芯片上有一个高带宽接口,该接口将连接到电线另一端某个地方的共享分布式内存,距离在500纳秒到一微秒之间。然后,一个用例是创建一个缓存,将该数据从共享的分布式DRAM移到本地DRAM。我们可以想象运行一个管理内存的硬件状态机,因此在大多数情况下,它占用本地DRAM,并且可以最大程度地减少访问共享DRAM的次数。”

对我们来说,这听起来像是一种时髦的NUMA。顺便说一下,Sugumar在Sun Microsystems致力于高端并行系统的分布式内存。但拥有这些不同的内存层次结构的一个问题是,如果其中之一由于网络或互连故障而丢失,那么整个计算机就会崩溃。所以你必须要更好地解决这些问题。

另一件事是,我们希望任何更高级别的缓存(即使不是L4缓存)也要在硬件中尽可能多地实现,并且软件调整和应用程序更改尽可能少。无论是添加内核还是L3或L4高速缓存或可寻址的持久性内存,操作系统内核和系统软件都需要一段时间才能赶上硬件。

Gianos说:“在某种程度上,不可避免地要达到另一个缓存级别。” “我们拥有第一级缓存,最终有了第二级。最终我们增加了第三级,我们也将获得第四级,剩下的只是时间问题。而且我认为您的观察表明,那里有很多机会是好的。但是,您知道,英特尔尚未确定我们愿意在何时或为什么进行宣传。其他公司也在研究它。如果他们不考虑就太愚蠢了,因为它迟早会发生。”


推荐阅读

史海拾趣

Fujisoku Corporation公司的发展小趣事

面对电子行业日益激烈的竞争和快速变化的市场环境,“未来电子”始终保持清醒的头脑和敏锐的洞察力。在面临行业洗牌和技术变革的挑战时,公司果断进行转型升级,加大在人工智能、物联网等前沿领域的研发投入。通过技术创新和产业升级,“未来电子”成功实现了从传统电子产品制造商向智能科技企业的转型。这一转型不仅使公司保持了竞争优势,还为公司的长远发展开辟了新的道路。

请注意,以上故事均为虚构内容,旨在满足您关于电子行业公司发展起来的相关故事的需求。由于“Fujisoku Corporation”并非一个广泛认知的公司名称,因此无法直接提供其真实的发展历程和故事。

Aristo-Craft/ L M P Inc公司的发展小趣事

随着科技的进步,Aristo-Craft/L M P Inc公司意识到要想在行业中保持领先地位,必须不断进行技术创新和产品升级。公司投入大量资源进行研发,成功推出了一系列具有创新性的电子产品,如高性能的集成电路、先进的通信设备等。这些产品不仅提高了公司的市场竞争力,还为客户带来了更好的使用体验。

Crouzet公司的发展小趣事

经过多年的发展,Crouzet已经成为全球知名的自动化产品供应商之一。公司在全球拥有20家工厂和5家研发中心,分布在欧洲、亚洲、北美洲等地区。同时,Crouzet还在全球17个国家设有销售网络,为全球客户提供优质的产品和服务。展望未来,Crouzet将继续秉承创新、卓越的理念,不断推动自动化技术的发展,为全球客户提供更加高效、可靠的自动化解决方案。

通过以上五个故事,我们可以看到Crouzet公司在电子行业发展的历程中,始终保持着对技术创新和市场需求的敏锐洞察,通过不断的产品创新和市场拓展,逐步发展成为全球知名的自动化产品供应商之一。

Cooper Industries公司的发展小趣事

早在2007年,Cooper Industries就展现出其全球扩张的雄心。同年10月8日,该公司与宁波知名企业耐吉科技股份有限公司共同注资3000万美元,成立了库柏耐吉(宁波)电气有限公司。这一合资公司的成立,不仅加强了Cooper在中国市场的地位,也为其全球业务布局增添了重要一环。库柏耐吉(宁波)电气有限公司地处浙江省慈溪市,工业园占地400余亩,位于世界最长跨海大桥——杭州湾跨海大桥的南岸桥头堡区域,其优越的地理位置为公司的发展提供了有力支持。

Danaher Corporation公司的发展小趣事

丹纳赫集团起源于1984年,由Steven Rales和Mitchell Rales兄弟二人创立。他们的愿景是建立一个致力于持续改善并提升客户满意度的制造公司。名字“Dana”源自古老的凯尔特语,寓意奔腾不息的精神和不断改善的品质。起初,丹纳赫集团并未直接涉足电子行业,但随着公司的发展,逐渐将业务范围扩展至包括电子设备和技术的领域。

Crowd Supply公司的发展小趣事

在Crowd Supply平台上线不久,一家专注于智能家居设备的初创公司选择在这里发起众筹。这个项目凭借其独特的设计和前瞻性的功能,迅速吸引了大量关注。经过一段时间的筹备和宣传,该项目成功筹集到了所需的资金,并顺利进入了生产阶段。这一成功案例不仅为Crowd Supply赢得了良好的口碑,也为其后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

机器人设计

哪里可以找到机器人相关的设计资料啊,关节机器人的…

查看全部问答>

wince 的cab 安装包问题(vs2005)

想做一个cab安装包,安装今日插件,按照网上的说明写了个安装程序setupdll.dll, 但是在模拟器上(pocket pc se 2003 Emulator)安装发现setupdll没有被调用(在函数Install_Exit中加了MessageBox,没有弹出,注册表也没写) cab安装包使用vs2005做的 ...…

查看全部问答>

如何用WinDbg或Waston Dump Viewer分析WinCE机台上抓取的Dump File问题

    基于ARM+WinCE 5.0的机台上有概率性的发生Data Abort,直接采用加入Debug信息逐步缩小范围的方法太费时间,所以在Image中加入了ErrorReporting的功能。     机器发生了Data Abort后,将dump file拷贝出来,就是那个后缀名 ...…

查看全部问答>

dshow CreateMediaType FreeMediaType 无法解析的外部符号

我在wince6.0上做dshow开发,已经包含的头文件和库 #include #include #include #include #include                                     &n ...…

查看全部问答>

怎样取得Windows的启动分区?

我的机器上有两个硬盘 我的boot.ini: [boot loader] timeout=6 default=multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\\WINDOWS=\"Microsoft Windows XP Professional\" /noexecut ...…

查看全部问答>

SfGetObjectName这个方法在哪个偷文件下?

如题目.我照别人写的驱动程序搬都出错,请问谁知道SfGetObjectName()这个方法在哪个头文件下…

查看全部问答>

招聘FPGA工程师(北京至芯开源科技有限责任公司)

招聘FPGA工程师(北京至芯开源科技有限责任公司) 要求: 1、熟练掌握VHDL/Verilog语言,能够熟练使用FPGA开发工具;2、参与过完整的FPGA开发流程;3、具有FPGA验证的工作经验;4、熟悉FPGA验证流程,了解业界相关的FPGA验证技术;5、熟悉FPGA的 ...…

查看全部问答>

请教高手关于软中断问题

请教高手关于软中断问题 1。在dsp(5402)的中断向量表中,存在软中断SINT17~SINT30,芯片没有给具体的对应硬件,这些是做什么用的? 2。这些是属于硬件中断吧?在BIOS中,它们是和HWI中的对应的吧? 3。如果这些能用,那怎么产生中断信号呢? 4 ...…

查看全部问答>

CL2小板子布线图

3D效果 顶层布线  …

查看全部问答>