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