高性能 I/O 的代价是什么?

作者:Phil Hughes

如果您在 PC 行业工作了一段时间,您很可能还记得 ISA 架构(最初称为 AT 总线)由于速度限制和相当糟糕的中断结构,被认为不是高性能 I/O 的最佳解决方案。IBM 推出了 MicroChannel 架构。您只需向 IBM 付款,就可以使用该设计。一些制造商购买了该设计,但很快就失败了,因为行业真正想要的是一个开放标准。事实上,AT 总线之所以成为 ISA(工业标准架构),正是因为 IBM 的专有方法。

然而,ISA 仍然不是答案。第一个问题,总线速度,通过 PCI 总线得到了解决,PCI 总线更宽更快,满足了 I/O 密集型系统的带宽需求。但是,随着一切速度的提高,必须处理的中断数量也随之增加。

最好的解决方案是拥有智能外围设备,这些设备不必经常中断 CPU 即可执行其任务。当今最常见的例子是缓冲串行卡 UART(通用异步接收器/发送器)。另一个是智能串行卡,它可以在单个 DMA(直接内存访问)传输中传输数百或数千个字符,并自行处理字符到字符的传输。

每个智能 I/O 卡都需要一个驱动程序来进行系统通信。更准确地说,每个希望与该卡通信的操作系统都需要一个驱动程序;因此,制造商必须投资支持每个系统。这种投资意味着大多数供应商倾向于仅支持最流行的操作系统。

进入解决方案?

最近(意思是几个小时前)有人提醒我,有一个名为 I2O 特殊兴趣小组的组织正在解决这个问题。以下是他们网页上的一些引述

  • 目标是提供一种开放的、基于标准的方法...并为快速开发新一代便携式、智能 I/O 解决方案提供框架。

  • I2O 模型为创建可跨多个操作系统和主机平台移植的驱动程序提供了理想的环境。

  • I2O 模型旨在为设备驱动程序设计提供统一的方法...

他们还提出了问题:“您是否看到 Unix 供应商在其未来的版本中支持 I2O?”并通过声明“SCO 是 SIG 成员,并已表示将在其未来的操作系统版本中支持 I2O。SIG 欢迎所有其他 Unix 供应商也加入。”来回答这个问题。

一切都很好?

所有这些言论听起来好像我们都是朋友,我们将永远愉快地互操作。但是,似乎确实存在一个问题。

在关于兼容性的那些的答案之一中,我们看到了第一个线索,表明存在潜在问题:“SIG 的设置方式是,只有成员及其被许可人才能使用该规范进行设计,....” 更重要的是:“I2O 规范...是关于知识产权内容以及如何使用该规范的条款和条件的协议。因此,为了向非成员提供该规范,必须执行保密协议。”

我已经尝试联系他们以寻求澄清,但到目前为止,他们既没有回复我的电话也没有回复我的电子邮件。

我相信所有 Linux 人员都熟悉保密问题。保密是 Diamond 显卡在 Diamond 改变主意之前不受支持的原因,也是 Mac 版 Linux 多年来不存在的原因。换句话说,您不能同时遵守 GPL 和保密协议。

我们能做什么?

斗争——不要让那些声称他们正在制定开放标准的人以“对所有人开放,除了自由软件”的标准蒙混过关。第一个采取行动的组织是公共利益软件组织,也就是为我们带来 Debian Linux 的同一批人。我刚刚收到一份开放硬件认证计划提案草案。在该计划中,供应商将对特定硬件设备的设备驱动程序接口的编程文档的可用性做出一系列承诺。

这里的想法是,虽然该计划不能保证特定设备和操作系统可以使用设备驱动程序,但它确实保证任何想编写驱动程序的人都可以获得必要的信息。

我相信在 Usenet 新闻组、网络和媒体上会有更多关于此主题的内容。如果您是供应商,请联系 SPI(http://www.debian.org/ 将为您指明正确的方向)以获取有关其认证计划的更多信息。如果您是潜在的不满意的消费者,请查看 http://www.io2sig.com/,并让 SIG 成员知道您对将自由软件排除在他们的开放标准之外以及 SPI 为实现真正开放硬件所做的努力有何看法。最后,请关注 LJ 网页,了解有关这场重要战役的最新消息。

Phil HughesLinux Journal 的出版商。可以通过电子邮件 phil@ssc.com 与他联系。

加载 Disqus 评论