《突破内存墙--cpu新思路》由会员分享,可在线阅读,更多相关《突破内存墙--cpu新思路(14页珍藏版)》请在金锄头文库上搜索。
1、突破“内存墙”-UcomPower 的 CPU 新思路 突破“内存墙”-UcomPower 的 CPU 新思路 1. 概述 2. 缓存和内存墙的介绍 3. LRU 缓存算法的错误和我们的发现 4. 评述高速 CPU 的两种常见思路 5. CPU 设计的新思路 6. 市场机会 1. 概述 1. 概述 近 30 年来,CPU 核心的速度提高了近千倍,但是内存延迟未见减少。CPU 核心越 来越快,而且可以很容易地做得更快,但是因为有内存延迟,更多、更快的 CPU 核心只导致核心的空闲更多,所以内存延迟已经成为 CPU 性能的瓶颈。内存延迟 这个瓶颈被称为“内存墙”。 对抗内存延迟的最有效手段是 CP
2、U 缓存。有了缓存,CPU 就不用那么频繁地到内 存那里去取数据。依靠 CPU 缓存,CPU 可以避免高达 99%的内存访问,所以 CPU 缓存是CPU里面最重要的部件, 由于内存延迟相比于CPU核心的速度实在是太高, 所以 CPU 缓存对 CPU 实际性能的影响就远远超过了 CPU 核心。 现在的技术趋势是 CPU 缓存越来越大,Intel 最新的 CPU 的缓存已经高达 12MB。 CPU 芯片中超过 80%的晶体管都被用作了缓存,相比之下 CPU 核心只用到了百分 之十几的资源。CPU 缓存的理论和设计在过去二三十年中基本没有变化,几乎全 部的 CPU 和 GPU 芯片的缓存都是采用的
3、LRU 替换算法及其变种。LRU 替换算法长 期以来被认为是最优的,但是,实际情况并非如此。 在大量艰苦的实验基础上,我们发现了一个内存访问规律,并在这个发现的基础 上,发明了一个新的 CPU 缓存替换算法,我们称之为 WLRU 替换算法(已经获得 美国专利)。这是一个重大的理论突破,WLRU 替换算法可以降低网络应用的 CPU 缓存失误率近 50%,降低三维图形和数字视频的缓存失误率超过 30%。换句话来 说,新的缓存算法可以令 CPU 的网络处理能力提高一倍,三维图形和数字视频的 处理能力提高 50%以上。在过去 30 年中,能够降低 5%的缓存失误率都是非常大 的成就。我们的 WLRU
4、替换算法对缓存性能的提高已经接近了缓存替换算法的理 论极限。 缓存是 CPU 性能瓶颈, 我们的缓存设计可以大幅提高任何一种 CPU、 GPU 或者视频处理芯片的性能。 这项技术对于像 Intel 和 Apple 这些公司的意味着什 么是不言而喻的。 在过去几十年里,CPU 领域的大部分创新都集中在 CPU 核心,也就是计算部件方 面。CPU 缓存虽然也是研究的重点,但是一直没能有什么创新,各个厂家的 CPU 的缓存设计大同小异。 这是因为在 CPU 缓存的基础理论方面有许多似是而非的说 法,这些错误的理论假设束缚了大家的创造力。 我们发现的内存访问规律和一 系列原创的分析方法,澄清了许多概念
5、,彻底改写了教科书。我们的发现和发明 是 CPU 缓存最基本理论的突破。WLRU 缓存替换算法的性能已经接近理论极限, 而且 WLRU 算法并不会令电路复杂化,只是增加不到 2%的晶体管而已。 Intel 具有雄厚的资金和丰富的人力资源,但是 Intel 的技术积累和优势主要在 CPU 核心的设计方面。在微软等软件公司把软件系统做得越来越庞大,耗用资源 越来越多的情况下,内存墙的存在阻挡了 Intel 的 CPU 性能的大幅提高,而且目 前还看不到任何彻底解决的希望。 微软公司由于其新的操作系统在 Intel 最新的 CPU 上运行都很慢,严重影响了用户体验,以致微软总裁鲍尔默抱怨道“Inte
6、l rubbish at making chips”。因为内存墙,Intel 的竞争对手都陆续赶上了她, Wintel 陷入了困境。 利用这个 CPU 缓存上的重大技术突破,我们已经在中国成立了一家公司,用很低 的研发费用设计和开发高性能、低功耗、低成本的 CPU。这在业内是个巨大的商 业机遇。如果有 CPU 厂家愿意使用我们的缓存专利或者 IP,我们也非常愿意与 同行分享。内存墙问题昭示着 CPU 作为大投入,高利润行业的终结。由于我们在 CPU 缓存上的突破,我们的简单 CPU 依然可以有世界领先的性能。内存墙重新定 义了 CPU 的游戏规则,我们的新技术使得中小型 IC 公司也可以开发出
7、与 Intel 的 CPU 相抗衡的产品。 2. 缓存和内存墙的介绍 2. 缓存和内存墙的介绍 1)延迟和缓存的思想无处不在)延迟和缓存的思想无处不在 为了说清楚延迟和缓存的概念, 我们在这里用一些例子来做一点很浅显的技术背 景介绍。 CPU 缓存可以说是 CPU 芯片最简单的部件,却是最最重要的。CPU 缓存占芯片资 源近 90%。CPU 缓存就是一小块速度很高,延迟基本没有或者很小,但是容量有 限的存储区。在我们的日常生活中,缓存的思想无处不在,哪里有延迟,哪里就 有缓存。例如,衣服都是有衣兜的。衣兜里总是放着最需要的东西,衣服的衣兜 就是缓存。缓存还可以分几级,比如衣兜是第一级,手提包是
8、第二级,拉杆箱就 是第三级。二级缓存比一级缓存延迟大些,容量也大。缓存是非常重要的,如果 没有衣兜和提包,我们在外面要用的任何东西都必须回家拿,路上来回就是两个 小时。那样的话,一天到晚就光在路上走了,什么事也干不成。 现在的时装有个趋势, 就是小姑娘的包包越来越大, 也越来越贵。 为什么这样呢? 因为延迟大了。现代的人,住得远,活动范围广,花在路上的时间多,所以包包 尽可能大,尽可能多装些东西。 这也就是说,延迟越大,缓存就越重要。CPU 和时装的趋势是一样的,相比于 CPU 核心的速度,内存延迟越来越大,所以 CPU 缓存也越来越重要。CPU 缓存和小姑娘的包包都是越大越好,越大装得越多。
9、现 在 CPU 缓存已经占用了芯片全部资源的 80%以上。以后的芯片,有可能 90%以上 的面积都是缓存和各种用途的存储区。要提高 CPU 的性能,人们很容易就想到要 增大缓存,但是缓存的容量就如同时装的包包,是不可能无限增加的。想当年我 们上学的时候是多么幸福。当年的生活简单,参考书少,那时候学校离家近,中 午还能回家睡午觉,所以书包也小。可是现在国内的小学生,上下学都要背个大 背包,连拖着拉杆箱的都很常见了。(30 年前,最早拖拉杆箱的是空姐,因为 空姐的工作,距离远,延迟大,所以空姐最先用到三级缓存。) 相对于缓存的容量,缓存设计中更加重要的是“替换算法”。替换算法就是决定 哪些东西装在
10、包包里面的规则。许多小姑娘的包包里面乱七八糟的,她们没有好 好地安排,也就是说,这些小姑娘的缓存替换算法有问题。相比之下,士兵的包 包里面装的东西就非常合理。军人的包包所用的替换算法比较先进。 我们的核心发明是一个缓存的替换算法。CPU 缓存的替换算法,30 年来,都是用 的 LRU 替换算法及其变种,无一例外(唯一的例外是 ARM 的 PL310 缓存 IP 用的 随机替换算法)。 LRU 替换算法和小姑娘的包包的替换算法神似!他们两者的 理论假设都是相同的。 CPU 缓存一直是工业界和学术界研究的重点, 但是因为 CPU 缓存的最基本理论基础有很多似是而非的错误假设。这些错误的理论被长期推
11、 崇,误导了许多人。我们的研究把这个问题澄清了!这是个看似简单,但是非常 重要的突破。(好像重要的突破都是很简单的。) 2) 内存墙是个艰巨的技术挑战内存墙是个艰巨的技术挑战 1965 年,Intel 的创始人之一,名誉主席戈登.摩尔(Gordon Moore)提出:每 18 个月,芯片上的晶体管数目就能够增加一倍。这就是著名的摩尔定律。摩尔 定律的另一个更为大家熟悉的表述是:每 18 个月,CPU 的速度提高一倍。过去 40 年,通用 CPU 的速度基本按这个预测在发展。现在 CPU 的速度超过 2.8GHz, 实际上还可以做到更高。但是,CPU 速度的提高并不意味着 CPU 的实际性能也有
12、 相应的提高。在过去 40 年中,CPU 核心的速度提高了近千倍,但是内存的速度 提高却不大;更为关键的是,内存的延迟没有降低。这使得内存延迟已经成为了 制约 CPU 实际处理能力提高的瓶颈。实际应用中,CPU 始终都在等待内存访问。 当内存端口满负载时,CPU 核心有超过 50%时间是空闲的。这个问题被称为内存 墙(Memory Wall)。 计算机的内存是用动态存储电路(DRAM)实现的。DRAM 存储一位信息只使用一 个晶体管。DRAM 的好处是密度大,坏处是有很大的延迟。静态存储电路(SRAM) 存储一位信息使用六个晶体管,好处是基本没有延迟,但是密度很小,容量做不 上去。所以,现在的
13、计算机内存使用的都是 DRAM。DRAM 的延迟是个物理极限, 除非有革命性的突破,这是很难减小的。 内存延迟是指内存在接到访问命令后,要等一段时间,才能传回数据。这个延迟 超过 100 纳秒。 过去 30 年,DRAM 内存的传输速度(仅仅是传输数据的速度) 有所提高,但是 DRAM 的延迟不但没有什么改善,反而有继续扩大的趋势。最新 的内存标准 DDR3 在延迟上比老的 DDR2 标准还要大一点。虽然 DDR3 标准的内存 条工作电压低于 DDR2,但是功耗却明显比 DDR2 要高,以至于需要散热片才能正 常工作。 内存延迟的参数在内存条的规格上一般表述为几个数字,代表 CAS-TRCD-
14、TRP-TRAS。这些数字是以内存传输周期为单位的延迟时间,比如 2 代 表需要两个周期。 * DDR 内存,PC400,传输速度为 200MHz,一个内存周期 5 纳秒,延迟参数为 2-2-2-7; * DDR2 内存,PC800,传输速度为 400MHz,一个周期 2.5 纳秒,延迟参数为 4-4-4-15; * DDR3 内存,PC1600, 传输速度为 800MHz,一个周期 1.25 纳秒,延迟参数为 9-9-9-27。 从这个例子可以看出,从 DDR 到 DDR3,内存的传输速度成倍地提高,但是内存 延迟一点没有减少,还有一点增加。 3) DRAM 内存不可替代内存不可替代 DRA
15、M 内存有延迟,而且这个延迟很难降低。但是,采用替代的内存技术(例如 用 SRAM)来减少延迟是不可行的。DRAM 的性价比,无与伦比,其优越性超过替 代存储技术很多。AMD 的前 CTO(Fred Weber)曾经成立一家公司专门研发延迟 较小的新的内存技术,但是没有成功。Fred Weber 总结,DRAM 是一个必须坚持 的原则,虽然有延迟,但是其优越性无与伦比。很长时期内,计算机都将继续采 用 DRAM, DRAM 的内存延迟问题将长期困扰我们,所以内存墙在未来很多年里都 将是个非常艰巨的挑战。 光传输虽然快,但是光连接、光芯片对解决内存墙问题并没有帮助。最近很热的 光芯片连接技术也只
16、是增加了带宽,仍然无法解决内存墙问题。内存墙问题的根 本是 DRAM 的延迟,光连接的确可以提高芯片的带宽,但是这不仅不能降低内存 延迟,反而因为光电转换而导致了延迟的增加。 能够降低内存延迟的技术,目前依然只有 CPU 缓存。缓存可以说是对抗“延迟” 的最古老的技术, 但是依然是最有效的。 可以说, “哪里有延迟, 哪里就有缓存”, 缓存无处不在。CPU 缓存是 CPU 中最重要的部件,占用了 CPU 里 80%以上的晶体 管和 50%的面积。相比之下,CPU 核心不过只用了 CPU 芯片 14%的晶体管。Intel 最新的 CPU Core i5 和 i7 的三级缓存已经高达 8MB 和 12MB。相比之下,Atom 芯片不过 512KB 的二级缓存。衡量 CPU 的高端程度,只看 CPU 缓存的大小,CPU 核心的差别对性能的影响微乎其微。 在缓存领域,特别是 CPU 的缓存,有许多似是而非的概念,这些概念表面上无懈 可击,以致蒙蔽了人们很多年。我们在 CPU 缓存有许多新的发现,提出了许多原创的分析手段和方法,更正了许多错误,其中 WLRU 缓存替换算