LWN: 关于软件定义芯片的思考!
共 2786字,需浏览 6分钟
·
2022-03-05 20:56
关注了就能看到更多这么棒的文章哦~
Thoughts on software-defined silicon
By Jonathan Corbet
February 18, 2022
DeepL assisted translation
https://lwn.net/Articles/884876/
人们有许多原因可能会喜欢上自由软件,包括价格、整体质量、社区支持以及其所支持的功能。但是,对我们中的许多人来说,自由软件的价值在于它能够让我们实际拥有并保持对我们自己的系统的控制。自由软件中的 antifeature 往往不会持续,而自由驱动程序(free driver)往往可以把此硬件供应商认为可能不适合提供出来的硬件功能给解锁并开放提供出来。不过,英特尔即将推出的 "software defined silicon"(SDSi)机制可能会减少我们对自己系统的控制,因为它不再允许那些没有支付相关费用的人来使用相应的硬件功能。
SDSi 是预计会在即将推出的英特尔处理器中出现的一项 "功能"。希望在没有来自英特尔的证书(certificate)的情况下,要禁止对处理器中某些特定功能的使用权限。正如 David Box 启用此功能的 patch set 所表明的,该机制本身的接口还是相对简单的。它会看起来像是总线上的一个设备,其中提供了几个操作:安装一个 "认证密钥证书(authentication key certificate)" 或一个 "capability activation payload"。证书是用于验证所有要启用这些功能的请求的,而 payload 就包含了这种情况。除非先利用这个设备来存放一个受到认可的证书以及 payload,否则相应的功能对于运行在这个 CPU 上的软件来说就是完全不可用的。
SDSi 硬件还维护着几个计数器,用来管理在加载证书或启用功能的过程中有多少次失败。如果这两个计数器超过阈值,那么该机制将被完全禁用,要想恢复,唯一方法就是对处理器进行断电。据推测,这个做法的目的是为了阻止针对 SDSi 守护功能的暴力攻击。
英特尔希望通过这个新机制所达到的目的已经很清楚了。SDSi 可以让市场上销售的 CPU 中具备用户可能会感兴趣的功能,但这些功能是缺省尚未启用的,只有在支付了额外费用之后才可以打开。这些受限制的功能将会出现在市面上的所有的 CPU 中,但那些原本认为自己拥有很高端的处理器的用户,如果不向供应商支付额外费用(也许是需要定期支付),那么就无法充分使用他们手中系统的全部功能。
对英特尔来说,这个好处是显而易见的。该公司可以对不同的客户进行不同的定价,尽量从每个客户那里最大化收入,同时减少其产品目录中那些必须带有不同硬件功能的产品数量。在销售了 CPU 之后,来自处理器的收入现金流不一定会就此停止,而是可能会无限期地持续下去。对客户有什么好处就不太清楚了。从理论上讲,仅有最小需求的那些客户可以避免为他们不会使用到的昂贵功能付费,而如果他们的需求发生了变化,那也可以在不用停机的情况下就 "升级" 他们的硬件。
此外尚不清楚英特尔打算以这种方式控制哪些功能。人们可以想到有各种可能,包括是否允许访问更大的内存空间、更高的时钟频率、额外的 CPU 核、专门的指令、或机器学习等加速器的能力。如果走到极端的话(该公司大概不会这样做,尽管人们永远无法保证这一点),缺省的处理器可能仅仅能运行 "hello world" 这一类的功能,必须购买额外的许可证才能完成进一步的任务。曾经有一段时间里,FPU (floating point processor)浮点处理器就是一个附加处理单元(add-on unit),也许我们今后会再次回到过去这种用法。
当然,这种商业模式并不新鲜。在早期大型机上类似的故事比比皆是,可能只要改变一个跳线就可以 "升级"。特斯拉汽车也包括一些额外功能,例如使用电池的全部容量等基本功能,这些都只有在支付额外费用后才能发挥作用。而且还有报道声称,特斯拉公司在其汽车二手销售时会禁用掉这些功能。汽车制造商们显然想将这一想法进一步扩展,例如让用户需要定期支付费用来使用座椅加热功能。不管怎么说,这些加热元件早就存在于座椅中了,制造商将它们卖给了买家,但买家仍然并没有真正拥有(own)它们。
基于租赁(rent-based)的商业模式已经在科技行业中流行一段时间了。我们中的许多人都不再购买和运行自己的服务器,而是从云供应商那里租用它们(而且,实事求是地说,这个趋势也常常给我们带来好处)。那些仍然从事着专有软件业务的公司发现,按月订购的模式比起单纯销售软件许可证来说更有吸引力。当然,也有一些骗人网站要求访问者要付费才能访问其内容。
但对于已经购买的硬件这种场景来说,这个问题似乎更严重了,而且理论上客户已经拥有了该硬件,他们可能认为就可以正常使用其最大能力了。我们的自由软件本来就应该能使用这些功能,但却发现自己被降格了,得需要硬件允许来使用现有的功能。这就等同于丧失了对我们自己的系统的控制权,又是一套隐藏在我们计算硬件中的新的一套秘密功能,并受到反规避法(anti-circumvention laws)的保护,如果这种方法在商业上能取得成功,那么我们今后肯定会看到更多采用这种策略的情况。
很难找出一个摆脱这种局面的方法,除非像我们对软件所做的那样使硬件也 free。也许有一天,我们有可能根据 free 设计方案来订购生产我们自己的处理器,这样至少能够希望避免出现这些开倒车的行为(deliberate antifeature
)。但我们现在生活的世界还不是这样,而且不确定我们最终是否会达到这个程度。
同时,SDSi 肯定会进入 Linux。其维护者 Hans de Goede 表示,这项工作有望在 5.18 中被合并。没有太多的论据可以用来反对合入 SDSi 驱动,毕竟它只是实现了与即将到来的 CPU 配合的另一项功能而已。内核社区以前不会在接受支持某个功能的驱动之前就下结论说社区是否喜欢这个外设所提供的 "功能",而且现在也没有什么理由可以开始这么做。因此,Linux 内核将会很好地配合那些支持 SDSi 功能的 CPU。最终将由客户用脚投票来决定他们是否同意这种做法。
全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。
长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~