微软新推出的Project Zipline压缩算法,足够快到可以在压缩数据的同时,把数据写入SSD或者从物联网设备进行上传,而且在微软内部工作负载,也就是最初开发时的目标对象上获得高达96%的压缩率。
如此快速和高效,是因为它采用了一种自定义硬件加速器,可以多次寻找出比压缩算法通常处理的更多模式;而且匹配这些模式的数据,将被模式的一个参考所取代,从而占用的空间更小。
因此,微软除了发布压缩算法规范作为自己对Open Compute Project Foundation的贡献之外,还发布了运行该算法开发芯片所需的Verilog Register-transfer Level (RTL)文件。
微软计划在Project Cerberus下一代版本中也做相同的事情,Project Cerberus硬件“信任根”规范的目标,是帮助固件防止恶意软件入侵,让你不再担心所订购的硬件是否曾经被篡改过。第一个版本有一个单独的控制器,可以插入服务器上的PCI总线,但是微软希望在芯片(例如CPU)层面——甚至是内存和存储层面——也有相同的保护措施。而且,当微软向OCP贡献第二代Cerberus规范的时候,其中就将包含RTL文件,这样厂商们就可以轻松地将其添加到自己的芯片设计中。
物理实现是最棘手的部分;硬件提供商通常会在他们交付基于开放标准的系统时,自行来解决这个部分的问题,因为这是他们相互竞争的一个部分。但是你希望的是厂商采用你的开放标准,因为对你来说,使用的人越多就越有用。
如果你按照厂商希望的那样,在Open Data Initiative下把数据从Azure迁移到Adobe的营销云、SAP或者Dynamics上,那么在迁移数据的同时,对数据进行压缩——而不是扩展——操作就会更有意义。这样做,意味着云和你使用的任何服务器都需要支持Zipline。
使用Verilog和RTL文件(用于描述构成芯片设计的电路)——来指定芯片设计,这一点是很困难的。拥有这种技能的程序员寥寥无几,而且这也不是一种常见技能,这就解释了为什么很多超大规模云计算——而不是普通的企业——才能够利用FPGA的灵活性来交付经过精确设计可以有效运行特定算法的硬件。微软通过开放这种往往仅用于微软内部的设计,让自己更容易把Project Zipline和Cerberus构建到产品中,从而才能被更多的人使用。
Intel、AMD、Ampere、Arm、Marvell和SiFive都在开发采用Zipline的CPU;Broadcom、Fungible、Mellanox、Eideticom、NGD和Pure Storage正在将Zipline添加到自己定位网卡和存储系统中。虽然英特尔没有明确表示会把Cerberus下一代版本构建到自己的CPU中,但邀请微软Cerberus团队参加OCP峰会并做主题演讲,很大程度上是一个很明显的迹象了。
这可能是前所未有的开放贡献,但也非常符合OCP的精神,对于超大规模云提供商来说,OCP最初的目标是让厂商能够更轻松地打造出他们希望采购的硬件。
现在,OCP已经远远不局限于服务器和机架,其衍生产品对于更多企业组织来说是有意义的,因此微软完全有理由这样做。
相关阅读: