SD正在全面进入NVMe时代,作为NVMe协议的承载体,PCIe在本号之前的系列文章中“出镜率”颇高。
进入2022年,随着支持PCIe 5.0的平台如英特尔*第四代至强可扩展处理器先后推出,我们发现,其实NVMe SSD早就在为PCIe 5.0的到来布局了。为了更好的理解这些提前布局,我们需要先回顾一些“历史遗留问题”,譬如:
为什么PCIe 3.0如此长寿?PCIe 4.0刚上市就落后了吗?有必要转向PCIe 5.0吗?这些问题的答案显然不会是简单的5>4>3。作为PCIe 5.0系列的开篇,本文将首先回顾PCIe 4.0及之前的“供需”演变。
前言
今天, 大多数的计算机依然遵循冯·诺依曼体系结构,其基本特点是软硬件分离,通过存储器保存程序(指令和数据),计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备)。冯·诺依曼计算机体系结构的存储程序方式造成了系统对存储器的依赖,CPU访问存储器的速度制约了系统运行的速度。
将计算机各个部分组织在一起,就有了总线的的概念。系统总线是连接计算机系统主要组件(比如CPU、输入设备、输出设备)的单一计算机总线。它结合了数据总线的功能来承载信息,地址总线的功能来确定应该从哪里发送或读取信息,以及控制总线的功能来确定其信息。
在历史上曾经有很多不同的总线实现,都在各自的时代不同的使用场景里提供了卓越的方案。比如:
ISA:Industry Standard Architecture,8/16位(bit)
EISA:Extended ISA,32位
MCA:Micro Channel Architecture,32位
PCI:Peripheral Component Interconnect,32位
PCI-X:PCI eXtended,64位
作为x86市场的实际统治者,英特尔*(Intel)主导了当今使用的主要总线接口的制定工作。英特尔*在1992年提出PCI总线协议,并召集业内企业组成了名为 PCI-SIG (PCI Special Interest Group, PCI特殊兴趣组)的企业联盟。从那以后这个组织就负责PCI及其继承者们(PCI-X和PCIe)的标准制定和推广。
在PCI-X后期,频率被局限在133MHz,英特尔*认识到当时的并行总线难以适应为继了。2001年的IDF论坛上,英特尔*宣布推出一种串行总线,起名叫3GIO(第3代IO)。由于采用串行传输,其运行频率可以扩展到很高(2.5GHz起步,大约是PCI-X的20倍),信号畸变和噪音干扰可以降到很低。加上英特尔*一贯联合生态伙伴的推广方法,3GIO很顺利被业界接纳。
2002年,PCI-SIG 在微软的 Windows硬件工程会议上宣布3GIO标准正式命名为PCI Express(简写为PCIe或PCI-E)。
2003年,PCIe 1.0a标准正式发布。这种创新的总线协议在规划时就在灵活性、通用性、经济性和未来的可扩展性方面做的非常好,这个系列的互联架构完全压倒了其他的竞争性的架构,从数据中心到边缘再到终端,从消费级到企业级直至数据中心级,PCIe无从不在。
迄今的20年里, PCIe升级时徐时疾,记录了20年IT发展的轨迹。
总线的“摩尔定律”
系统总线也有自己的类“摩尔定律”:系统总线每3年带宽乘2,即“3年2倍”。观察PCI-SIG公布的PCIe带宽路线图,我们若有所思。
图片来源:PCI-SIG官网
1. 如果以“3年2倍”的节奏, 我们会得到浅蓝曲线带来的发展趋势。而现实情况是我们得到了紫色的曲线。纵观大势,紫色曲线完全在浅蓝曲线上部。这意味着现实的总线架构发展全面超越了“3年2倍”的预言。
2. 预言是从最后一代PCI-X, 也就是2001年发布的PCI-X 2.0开始,“到2004年,带宽可能升级到4.5GB/s”的预言因为PCIe 1.0横空出世而被提前了。2003年,PCIe 1.0的(双向,下同)带宽到了8GB/s(16通道),这也就意味着“3年里,带宽×4”了。2006年发布的PCIe 2.0, 又把预计到2007年才实现的“带宽×2”提前了。2010年发布的PCIe 3.0, 就如预言一样准时将带宽升级到PCIe 2.0的2倍。其后,预期中的2013年和2016年的2次带宽x2的升级并没有发生。作为PCIe 3.0的下一代,PCIe 4.0直到2017年才姗姗来迟。这回仅过了2年,PCIe 5.0在2019年发布了——成为PCIe历史上间隔最短的一次升级。2021年,PCIe 6.0的0.9规范发布,2022年1月,PCIe 6.0正式发布。PCIe 5.0和6.0发布时的带宽都已经是预言的同期值的2倍。
3. “照理”应该2013年发布的PCIe 4.0为啥延后了4年到2017年才发布?“照理”应该从2017年往后推3年到2020年才发布的PCIe 5.0为啥提前到2019年就发布了?还有,PCIe 6.0居然已经要来了?!PCIe演进在PCIe 3.0之后的失速和PCIe 5.0/6.0的突然加速,背后的逻辑是啥?如果是两个词,那我们投票给“需求”和“做得到”。如果是一个词,那我们投票给“需求”。
PCIe 2.0到PCIe 3.0
从PCIe 2.0的2006年到PCIe 3.0发布的2010年,是虚拟机云计算需求的崛起的时代。
2007年:“云阶段”始于基础设施即服务 (IaaS)、平台即服务 (PaaS) 和软件即服务 (SaaS) 的分类正式化。基于容器的云 (PaaS) Heroku 成立。
2008年:VMware 推出基于 vSphere 的公共云计算服务 vCloud。2009年:谷歌发布了谷歌应用程序,使“云计算”被普遍使用。
2010年:Microsoft发布了Microsoft Azure云计算服务;Docker,Inc.的前身dotCloud,Inc.在旧金山创立,最初经营的是PaaS类型的业务。
与需求相匹配,PCIe 3.0的愿景是“I/O虚拟化和设备共享以适应在单个平台中支持多个独立虚拟机的新兴模式。”PCIe 3.0不仅提供2倍于前代的速度,还添加了一些特性,例如缓存提示、原子和通过改进的事务绕过语义降低延迟访问。
PCIe 3.0到PCIe 4.0
PCIe 3.0到PCIe 4.0的2010到2017年,应用领域发生的是:大数据、深度学习和渴求低功耗表现的手持设备风起云涌。在这个时期,几个禁锢了深度学习进步多年的技术难题刚刚有了解。可是,从应用角度,还需要足够时间把方兴未艾的深度学习转化为生产力,还没能完全回答“AI究竟能帮我们什么”的问题。
2011年,RuLU激活函数被发现可以避免梯度消失问题。这意味着 深度学习社区可以避免深度神经网络训练时间过长到不切实际的问题了。2012年,CNN模型 AlexNet发表,与早期模型相比,准确率大幅提高了75%。这一胜利在全球引发了新的深度学习热潮。2014年,对抗神经网络发表,为深度学习在时尚、艺术、科学领域的应用打开了大门 。2015年,NVIDIA Tegra x1发布。NVIDIA把这年定位为“NVIDIA跳入深度学习的元年。”2016年,NVIDIA DGX-1发布。NVIDIA宣布这是世上第一台“盒子中的深度学习超级计算机”。同年,AlphaGo在实时的围棋比赛中战胜了人类。如果我们把那些把IT技术转化为生产效率的人群起名为应用组, 把研究IT技术本身的人群起名为技术组,技术组常常问应用组“我有这个技术,你用得上吗?” 而应用组常常告诉应用组“我想做成这个,你有办法帮我实现吗?”更有应用组告诉技术组说:“你原来已经这样厉害了!我以前不敢想的事情现在可以去试试做了。”这些互动都需要时间来完成。深度学习正引起不同领域的应用组的研究,要转化为生产力还需要一点时间。
同一时期,大数据领域也在发生剧变。人们开始接受一个观念:先把数据存下来,未来可以从中挖掘价值。数据统计、数据可视、初级决策分析开始盛行。
2008~2013年之间,大数据里Hadoop和Spark领域最具盛名的4家公司全部出现了(2008年Cloudera 成立;2009年MapR成立;2011年Hortonworks成立;2013年Databricks成立)。
2014年:在美国,访问互联网的低功耗的移动设备数量首次超过了台式电脑。随后世界其他地区也纷纷出现相同的市场变化。互联网、无处不在的智能手机使用和增加的营销加速了大数据革命,而物联网增加了对快速高效的数据管理环境的需求。
2016年:IBM 报告称每天创建2.5万亿字节的数据(即18个零),仅过去两年(2014和2015年)就创建了(到2016年为止)世界上 90% 的数据。
这些大数据、深度学习、移动设备和物联网应用对于I/O基础架构的需求主要归结于:更高的吞吐量和更低的功耗。
从存储看:早期基于SATA/SAS接口、AHCI协议的NAND SSD暴露出接口带宽可扩展性的局限和软件栈冗长的问题。自从2011发布了基于PCIe 3.0的NVMe 1.0规范,SSD的性能(带宽和IOPS)获得了充分的释放。之后的7年,SSD的发展就安心聚焦到了可管理性、可维护性、内部传输效率、单位成本,而接口带宽暂时不成为瓶颈。这些从每一到两年就发布升级的NVMe规范的内容可以看出可管理性、节能等方面的内容是重点。这个时期SSD性能的提升主要得益于NAND Flash介质的逐步升级而非(对外的)接口带宽。
图片来源:NVME官方文档
多年之后,随着NAND SSD的控制器和介质发展到新的阶段,PCIe 3.0提供的带宽才被视为 SSD的性能瓶颈。如图所示,比如同一款NVMe 盘, PCIe 4.0的升级带来了清晰的性能提升。
从网络设备看,直到2017年前,25Gb和40Gb是以太网的主流,8 通道和16通道 PCIe 3.0具备足够处理以太网连接所需的带宽。
PCIe从 3.0 到 4.0 没有编码变化,在协议方面只有很小的更新。实际上,向 4.0 的演进主要针对 PHY 接口,在链路级管理方面也只有细微的变化。PCIe 4.0可实现更稳健的均衡。现在,我们就理解了PCIe 4.0的愿景是“以低成本解决大数据需求”。
结语(上篇):
读到这里,各位可能会想:PCIe 4.0是当下热门产品,何以称为“低成本”呢?考虑到PCIe 5.0平台已经推出,我们把PCIe 4.0接口看做“过渡”更合理吧?在下一期的文章当中,我们会谈到PCIe 5.0/6.0的发展情况,以及生态结构的改变,届时可能会对PCIe 4.0的未来定位产生不同的认识。
免责声明:此文内容为第三方自媒体作者发布的观察或评论性文章,所有文字和图片版权归作者所有,且仅代表作者个人观点,与极客网无关。文章仅供读者参考,并请自行核实相关内容。投诉邮箱:editor@fromgeek.com。
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。