分而治之,還能走多遠(yuǎn)?
分治法 (divide and conquer) 是解決復(fù)雜問題的一種有效策略。本質(zhì)上,它是把看似難以克服的問題分解成多個(gè)更小、更易于解決的部分。待這些部分被單獨(dú)解決之后,把結(jié)果合起來就得到完整的解答。
分治法的最偉大實(shí)踐者之一是古羅馬帝國。他們成功地使用其稱之為“分而治之”(Divide and rule) 的方法來積聚和管理一個(gè)覆蓋三大洲的龐大帝國。他們在此方面如此擅長,以致其成為帝國日?;顒?dòng)和治理的一個(gè)根深蒂固和不被質(zhì)疑的部分。實(shí)際上,許多歷史學(xué)家認(rèn)為,羅馬對分割和孤立其所統(tǒng)治的各個(gè)集團(tuán)的必要性的盲目崇信是帝國發(fā)展停滯和最終衰落的一個(gè)重要因素。正如一位羅馬元老院議員當(dāng)時(shí)所說:“我們花了如此之多的精力來分割,以至于有時(shí)竟忘記了統(tǒng)治!”
電子設(shè)計(jì)師基本上都使用分治法來應(yīng)對日益復(fù)雜的電子器件與產(chǎn)品開發(fā)任務(wù)。我們把設(shè)計(jì)問題分成硬件、可編程硬件和軟件部分,并且?guī)缀跏仟?dú)立地專注于每個(gè)位元。等到某一時(shí)刻,再將這些部分組合起來形成最終產(chǎn)品。
雖然這種設(shè)計(jì)方法在過去對我們非常有用,但我認(rèn)為在開發(fā)電子產(chǎn)品的方法方面,我們正面臨一個(gè)羅馬式的十字路口。沉溺于一系列孤立的設(shè)計(jì)流程可能會(huì)導(dǎo)致我們看不見更廣泛的可能性。
進(jìn)步并非一個(gè)直線過程,它容易遇到不和諧的跳躍和間斷點(diǎn),影響電子設(shè)計(jì)的最后間斷點(diǎn)是微處理器的普遍可用性。這一事實(shí)允許我們從根本上改變解決電子設(shè)計(jì)問題的方法并尋求針對、復(fù)雜硬件挑戰(zhàn)的軟件解決方案。另外它還允許我們探索以前不可運(yùn)用的電子產(chǎn)品設(shè)計(jì)方法。本質(zhì)上,軟件是電子設(shè)計(jì)中的第一大領(lǐng)域。把硬件領(lǐng)域的一些復(fù)雜性轉(zhuǎn)移到軟件領(lǐng)域,解決這兩個(gè)領(lǐng)域的問題,然后將硬件與軟件結(jié)合起來形成最終產(chǎn)品,這是典型的分治法!
FGPA形式的可編程數(shù)字硬件已存在了很長時(shí)間。其設(shè)計(jì)是開發(fā)流程中的另一個(gè)“孤島”。也許是由于這個(gè)緣故,其使用迄今大多局限于代替板卡上的固定硬件邏輯塊。但也許我們沒有看到更大的可能性,因?yàn)槲覀儧]有將斷點(diǎn)——遍及所有設(shè)計(jì)范疇而非分散在特定設(shè)計(jì)范疇內(nèi)的斷點(diǎn)——連接起來。
正如羅馬所發(fā)現(xiàn)的那樣(實(shí)際上為時(shí)已晚),分而治之策略有一些意外的后果。其中之一是它會(huì)阻礙各文化之間的思想交流。雖然每種文化都會(huì)向前發(fā)展,但是要把文化完全不同的所有集團(tuán)凝聚到同一發(fā)展方向上是極為困難的。結(jié)果就是社會(huì)發(fā)展停滯。
可編程邏輯器件現(xiàn)在已達(dá)到了一個(gè)性能/容量/價(jià)格“拐點(diǎn)”。像以前的微處理器一樣,該技術(shù)給我們的電子設(shè)計(jì)能力帶來了實(shí)現(xiàn)量子飛躍的誘人前景。我們能夠開始像開發(fā)軟件一樣容易地來開發(fā)硬件,我們能夠?qū)⒐δ茉谟布蛙浖g隨意移動(dòng),我們能夠幾乎沒有限制地更新硬件。
但是,與微處理器革命不一樣,這種間斷性向前跳躍要求我們不再對設(shè)計(jì)流程進(jìn)行分割來“治理”領(lǐng)域,而是要求我們統(tǒng)一我們的當(dāng)前設(shè)計(jì)范疇,以便作為一個(gè)整體向前邁進(jìn)。
如果我們想使用可編程器件作為過濾器來模糊硬件與軟件之間的界線,那么我們就需要以一種允許我們在構(gòu)成最終產(chǎn)品的所有元件之間進(jìn)行自然合作的方法來從事設(shè)計(jì)工作。我們需要能夠隨意地將功能在不同領(lǐng)域之間推動(dòng),并使所有元件像我們一樣保持同步。
簡言之,我們有機(jī)會(huì)提升我們整個(gè)設(shè)計(jì)流程的抽象水平。我說的不是逐步改進(jìn)設(shè)計(jì)難題的各個(gè)部分,單純提高軟件開發(fā)或硬件設(shè)計(jì)的效率是不夠的。我們需要夷平豎立在各種不同設(shè)計(jì)流之間的隔墻,將我們的整體設(shè)計(jì)策略提升到新的水平。這將帶給我們一個(gè)全新的設(shè)計(jì)世界。
為此,設(shè)計(jì)師和設(shè)計(jì)工具公司都需要風(fēng)物長宜放眼量,放棄其關(guān)于電子設(shè)計(jì)應(yīng)當(dāng)如何完成的先入之見,并開始研究如何才能將我們的各個(gè)社區(qū)團(tuán)結(jié)成一個(gè)整體的問題。是時(shí)候了,我們應(yīng)該從設(shè)計(jì)流程中的各個(gè)孤立領(lǐng)域走出來,團(tuán)結(jié)起來共同克服在創(chuàng)造下一代智能、連接型電子產(chǎn)品中的挑戰(zhàn)。
評論