分而治之,还能走多远?
扫描二维码
随时随地手机看文章
分治法 (divide and conquer) 是解决复杂问题的一种有效策略。本质上,它是把看似难以克服的问题分解成多个更小、更易于解决的部分。待这些部分被单独解决之后,把结果合起来就得到完整的解答。
分治法的最伟大实践者之一是古罗马帝国。他们成功地使用其称之为“分而治之”(Divide and rule) 的方法来积聚和管理一个覆盖三大洲的庞大帝国。他们在此方面如此擅长,以致其成为帝国日常活动和治理的一个根深蒂固和不被质疑的部分。实际上,许多历史学家认为,罗马对分割和孤立其所统治的各个集团的必要性的盲目崇信是帝国发展停滞和最终衰落的一个重要因素。正如一位罗马元老院议员当时所说:“我们花了如此之多的精力来分割,以至于有时竟忘记了统治!”
电子设计师基本上都使用分治法来应对日益复杂的电子器件与产品开发任务。我们把设计问题分成硬件、可编程硬件和软件部分,并且几乎是独立地专注于每个位元。等到某一时刻,再将这些部分组合起来形成最终产品。
虽然这种设计方法在过去对我们非常有用,但我认为在开发电子产品的方法方面,我们正面临一个罗马式的十字路口。沉溺于一系列孤立的设计流程可能会导致我们看不见更广泛的可能性。
进步并非一个直线过程,它容易遇到不和谐的跳跃和间断点,影响电子设计的最后间断点是微处理器的普遍可用性。这一事实允许我们从根本上改变解决电子设计问题的方法并寻求针对、复杂硬件挑战的软件解决方案。另外它还允许我们探索以前不可运用的电子产品设计方法。本质上,软件是电子设计中的第一大领域。把硬件领域的一些复杂性转移到软件领域,解决这两个领域的问题,然后将硬件与软件结合起来形成最终产品,这是典型的分治法!
FGPA形式的可编程数字硬件已存在了很长时间。其设计是开发流程中的另一个“孤岛”。也许是由于这个缘故,其使用迄今大多局限于代替板卡上的固定硬件逻辑块。但也许我们没有看到更大的可能性,因为我们没有将断点——遍及所有设计范畴而非分散在特定设计范畴内的断点——连接起来。
正如罗马所发现的那样(实际上为时已晚),分而治之策略有一些意外的后果。其中之一是它会阻碍各文化之间的思想交流。虽然每种文化都会向前发展,但是要把文化完全不同的所有集团凝聚到同一发展方向上是极为困难的。结果就是社会发展停滞。
可编程逻辑器件现在已达到了一个性能/容量/价格“拐点”。像以前的微处理器一样,该技术给我们的电子设计能力带来了实现量子飞跃的诱人前景。我们能够开始像开发软件一样容易地来开发硬件,我们能够将功能在硬件和软件间随意移动,我们能够几乎没有限制地更新硬件。
但是,与微处理器革命不一样,这种间断性向前跳跃要求我们不再对设计流程进行分割来“治理”领域,而是要求我们统一我们的当前设计范畴,以便作为一个整体向前迈进。
如果我们想使用可编程器件作为过滤器来模糊硬件与软件之间的界线,那么我们就需要以一种允许我们在构成最终产品的所有元件之间进行自然合作的方法来从事设计工作。我们需要能够随意地将功能在不同领域之间推动,并使所有元件像我们一样保持同步。
简言之,我们有机会提升我们整个设计流程的抽象水平。我说的不是逐步改进设计难题的各个部分,单纯提高软件开发或硬件设计的效率是不够的。我们需要夷平竖立在各种不同设计流之间的隔墙,将我们的整体设计策略提升到新的水平。这将带给我们一个全新的设计世界。
为此,设计师和设计工具公司都需要风物长宜放眼量,放弃其关于电子设计应当如何完成的先入之见,并开始研究如何才能将我们的各个社区团结成一个整体的问题。是时候了,我们应该从设计流程中的各个孤立领域走出来,团结起来共同克服在创造下一代智能、连接型电子产品中的挑战。