鷙鳥皴提示您:看后求收藏(詩鼎小說網網m.autocad360.cn),接著再看更方便。
到了六十年代半導體出現后,計算機開始進入集成電路時代,經過這十年的發展,計算機結構開始復雜化,功能逐漸強大,運用面也開始逐漸廣泛。為了節約成本,湯特殊行業之外的一般商業機構也能買的起、用的起計算機,一種跨領域的計算機技術開始出現,就是通用計算機,比如dec公司pdp--8。
一個數學函數,就是一條指令;一個存取動作,也是一條指令。無數的指令疊加,設計到電路之中做成集成電路,這就是處理器。為了滿足不同領域的需求,各個公司都針對用戶需求,將他們的一個個堅定動作操作,固話為一條條的指令,寫入處理器內部電路,指令逐漸復雜起來。這個就是復雜型構架計算機的由來,也就是我在貴雜志《科學》上提到的cisc——復雜指令集計算機。
通用計算機,使用的都是這種復雜構架處理器--cisc。用戶編寫程序,之間調用助力器內的專用指令,進行組合運用,就可以進行需要的計算處理。將至鄰近設計為程序,從數據存儲器里調用,不是不可以,但書店哪有集成在處理器內快?
半導體出生到現在已經有十年了,處理器內的疊加的指令也開的越來越多、越來越復雜、各個公司、各種領域、各個不同的用戶都試圖將自己設計的指令加入處理器,方便他們使用。計算機應用范圍的擴大,有加速了這種行為的快速增值。每一條新指令都要設計一個專用的電路,處理器在快速新增的新指令堆積下,慢慢的開始變得不堪承受。這樣我就想到了risc--精簡指令集計算機構架,讓計算機回歸最初的設計初衷。”凌世哲對這些問題早做好了準備,回答起來一點難度都沒有。
“那么它們之間又什么區別呢,這兩種處理器到底誰更加優秀?”
“要說明這個問題,我首先要明白cpu到底是一個什么東西,cpu說白了不是什么神秘的玩意,它僅僅只是一個執行部件,他之所以能執行,也是因為人們在里面制作了各種攻略的硬件電路,人后在用一定的邏輯讓它按照一定的順序工作,這樣就能完成人們給它的任務。簡單的說,如果把cpu看做一個人,首先它就要有正常的工作能力(執行能力),然后又有足夠的邏輯能力(能明白做事的順序),最后還要能聽懂別人的話(指令集),這樣它才能正常的工作。而這些集中在一起就構成了所謂的”構架“,它可以理解為一套“工具”、”方法”和“規范”的集合。不構架之間,工具可能不同,方法可能不同,規范也可能不同,這就造成了它們之間的不兼容———你給一個建筑工程師看廚師的烹飪指南,他當然不知道應該干什么了。
把計算機按照邏輯角度來分類,它們可以被分為兩大類,即所謂的“復雜指令集”與“精簡指令集”系統,也就是我提出的“cisc”與“risc”。屬于這兩種類中的各種架構之間最大的區別,在于它們的設計者考慮問題方式的不同。我們可以繼續舉個例子,比如說我們要命令一個人吃飯,那么我們應該怎么命令呢?我們可以直接對他下達“吃飯”的命令,也可以命令他“先拿勺子,然后舀起一勺飯,然后張嘴,然后送到嘴里,最后咽下去”。從這里可以看到,對于命令別人做事這樣一件事情,不同的人有不同的理解,有人認為,如果我首先給接受命令的人以足夠的訓練,讓他掌握各種復雜技能(即在硬件中實現對應的復雜功能),那么以后就可以用非常簡單的命令讓他去做很復雜的事情——比如只要說一句“吃飯”,他就會吃飯。但是也有人認為這樣會讓事情變的太復雜,畢竟接受命令的人要做的事情很復雜,如果你這時候想讓他吃菜怎么辦?難道繼續訓練他吃菜的方法?我們為什么不可以把事情分為許多非常基本的步驟,這樣只需要接受命令的人懂得很少的基本技能,就可以完成同樣的工作,無非是下達命令的人稍微累一點——比如現在我要他吃菜,只需要把剛剛吃飯命令里的“舀起一勺飯”改成“舀起一勺菜”,問題就解決了,多么簡單。
這就是“復雜指令集”和“精簡指令集”的邏輯區別。可能有人說,明顯是精簡指令集好啊,但是我們不好去判斷它們之間到底誰好誰壞,因為目前他們兩種指令集都有各自不同的應用領域,而且都很成功——我設計的ce400和ce8000就是復雜指令集(cisc)的代表(就是后世x86構架的雛形),而arm則是精簡指令集(risc)的代表,甚至arm的名字就直接表明了它的技術:advancedriscmachine——高級risc機。
到了這里你就應該明白為什么risc和cisc之間不好直接比較性能了,因為它們之間的設計思路差異太大。這樣的思路導致了cisc和risc分道揚鑣——前者更加專注于高性能但同時高功耗的實現,而后者則專注于小尺寸低功耗領域。實際上也有很多事情cisc更加合適,而另外一些事情則是risc更加合適,比如在執行高密度的運算任務的時候cisc就更具備優勢,而在執行簡單重復勞動的時候risc就能占到上風,比如假設我們是在舉辦吃飯大賽,那么cisc只需要不停的喊“吃飯吃飯吃飯”就行了,而risc則要一遍一遍重復吃飯流程,負責喊話的人如果嘴巴不夠快(即內存帶寬不夠大),那么risc就很難吃的過cisc。但是如果我們只是要兩個人把飯舀出來,那么cisc就麻煩得多,因為cisc里沒有這么簡單的舀飯動作,而risc就只需要不停喊“舀飯舀飯舀飯”就ok。這就是cisc和risc之間的區別。
cisc實際上是以增加處理器本身復雜度作為代價,去換取更高的性能,而risc則是將復雜度交給了編譯器,犧牲了程序大小和指令帶寬,換取了簡單和低功耗的硬件實現。”
“它們之間有什么優點和缺點嘛?”
“cisc體系的優點:能夠有效縮短新指令的微代碼設計時間,允許設計師實現cisc體系機器的向上相容。新的系統可以使用一個包含早期系統的指令超集合,也就可以使用較早電腦上使用的相同軟體。另外微程式指令的格式與高階語言相匹配,因而編譯器并不一定要重新編寫。
缺點:指令集以及晶片的設計比上一代產品更復雜,不同的指令,需要不同的時鐘周期來完成,執行較慢的指令,將影響整臺機器的執行效率。
risc體系的優點:在使用相同的晶片技術和相同運行時鐘下,risc系統的運行速度將是cisc的2~4倍。由于risc處理器的指令集是精簡的,它的記憶體管理單元、浮點單元等都能設計在同一塊晶片上。risc處理器比相對應的cisc處理器設計更簡單,所需要的時間將變得更短,并可以比cisc處理器應用更多先進的技術,開發更快的下一代處理器。
缺點:多指令的操作使得程式開發者必須小心地選用合適的編譯器,而且編寫的代碼量會變得非常大。另外就是risc體系的處理器需要更快記憶體,這通常都集成于處理器內部,就是l1cache(一級緩存)。
愛德森看了那自己的采訪記錄,又問道:“杰斯特,我可不可以這樣來理解,cisc的優勢在兼容性和通用性上,而risc的優勢是在特殊的專業領域上?”
“是的,你說的沒錯,這兩種構架的計算機各有各的優點和缺點,要根據不同領域和用戶不同的需求采用最合適的計算機,才是最好的。”
“好的,我的采結束了,我能去參觀一下你的工廠嗎,聽說你為牧場設計了一個新的計算機,能帶我去看看嘛?”
凌世哲說道:“可以,我這就代你去看看我的新的計算機,它是世界上第一臺risc計算機,我想你一點會大吃一驚的。”說完,凌世哲和愛德森以及安琪爾離開了辦公室向工廠走去。