李逸軒搖頭否定道︰“存儲器芯片美日雙方現在正打的厲害,我沒興趣摻和進去,我生產的芯片是給硬盤上用的管理控制芯片,屬工控芯片的一個小分支。”
“哦,工控芯片,能具體說說嗎?”作為工業司司長,郭英年當然知道工控芯片,沒想到李逸軒居然要生產這個,不過他始終不信對方要生產工控芯片,認為李逸軒是在忽悠他。
李逸軒當然是在忽悠他,桌面cpu他肯定會搞,而且是必須搞,可他敢這麼說嗎,一旦這麼說了,改為工業用途的土地還指不指望對方批了,先唬住對方在說。
引導對方來到一處硬盤組裝區前,從流水線上拿起一看電路板,“郭司長請看,這塊電路板上的芯片用的就是工控芯片,這是美國西部數據公司發布的65c02處理器,我要生產的就是能替代它的cpu。”
“65c02,這跟華科生產的6502cpu有什麼關系?”郭英年敏銳的感覺到這兩者之間應該有莫大的關系。
“1974年,楚克•佩德爾從摩托羅拉公司帶出來的六位工程師,一起創辦了mos technology公司,六位工程師中有一位名叫bill mensch(比爾•門斯)的家伙,他野心很大,在mos techno2處理器的開發之後,迅速看準時機,從mos科技抽身而出,創立western design center,即西部設計中心。
終于也在1978年,比爾順利開發出基于cmos工藝的65c02處理器,成功實現對6502處理器的跨代升級。雖然65c02比6502更加得優秀,但在商業上卻是個失敗的作品,6502只需25美元,而每顆65c02卻需要128美元,這麼高的價格,性能完全比不上英特爾公司的8086和8087處理器。
因此,比爾•門斯不得不重新修改了設計,成本雖然降下來了,但性能也大打折扣,更重要的是在低端處理器市場,西部設計中心已經失去了先機,他已被mos牢牢佔據。
不得已之下,西部設計中心只能往嵌入式處理器發展,為ibm 的硬盤和8英寸軟驅提供工控解決方案。因禍得福,wdc在該領域市場大獲成功。這也是我的硬盤會用65c02做控制芯片的原因。”
郭英年並不知道兩家公司還這麼一層關系,問道︰“那你為什麼不繼續使用65c02?”
“因為65c02有很大的缺點,它的控制邏輯核心是依靠接口控制卡上所帶的rom芯片,對dma通道的佔用很大,這使得硬盤電路控制板的設計變得復雜,而且電路板的面積也顯得很大。郭司長你看,眼前的這款電路板幾乎沾滿了整塊硬盤的一面,再想把硬盤做小一點根本就不行了。
另外,他還影響了硬盤容量的升級,10mb容量以下還好,容量上了20mb,65c02的性能就無法支撐了。更關鍵的是,由于65c02自有的控制邏輯,使得硬盤在使用過程中用戶必須忍受一大堆跳線和撥動開關的困擾(在早期的電腦上,每件設備所佔用的系統資源都是由用戶手動更改跳線或撥動開關來進行分配的)這為硬盤的易用性帶來了困難。
所以我打算改變它,重新設計一種新型的控制芯片,讓硬盤變得方便易用。”
郭英年被李逸軒口里蹦出來的各種專業術語給繞暈了,但他還是明銳的抓住對方的一個關鍵詞,“你會設計芯片?”
“yes。”李逸軒鎮定的回答道。
這下郭英年不淡定了,要知道芯片設計可是一項高技術活,香港目前沒有一家公司懂得怎麼設計芯片,就連華科電子工業公司也不行,它的6502芯片都是從mos引進的呢,對方怎麼設計的,自己就怎麼生產,即便是小小的修改一下都做不到,而眼前的這個年輕人居然說自己能設計芯片,讓他實在是無法相信。
李逸軒知道光憑嘴巴說,對方是不能相信的,于是把自己設計的芯片草圖拿了出來,他不怕被泄露,因為這種構架設計他早就申請好了專利,而且一個總體的設計草圖也說明不了什麼。
把圖紙攤開,一副cpu初步設計草圖呈現在郭英年眼前。
李逸軒設計的芯片采用的後世常見的arm處理器結構,arm采用的哈佛流水線結構,這是絕大多數risc精簡指令集處理器常用的一種結構。
當然了,由于設計重心的不同,哈佛流水線結構演化成很多不同的構架。而arm的核心設計理念是低功耗和低成本,兼具穩定可靠。日後成為了移動電子設備的首選cppu,無論是傳統的機械硬盤還是固態硬盤,或者是便攜式移動硬盤,上面的控制芯片都是用的arm處理器的變種。
arm是英國acorn電腦公司(arm公司的前身)于1983年開始研發的,主旨是開發一種全新的構架,低功耗和低能耗,還能完全兼容市場上的6502處理器。
mos techno2處理器,acorn公司基于該處理器研制一款acorn教育計算機,該計算機後來被英國政府的教育機構指定為專門計算機,這使得acorn公司在英國的七十年代中後期紅極一時。
可隨著時間的推移,當時代表高性能低價格的6502cporn公司需要推出一款全新的電腦,也就是16位計算機。
可是,acorn公司悲哀的發現,mos technology並沒有推出新一代16位處理器的想法,他們只是在原有的8位處理器6502的基礎上改來改去,從6502到6504,到6507,再到6600,依然只是6502的改進版,這根本就不是acorn公司想要的處理器。
1980年兩家公司經過交涉,mos technology同意為acorn開發一款16位處理器7520,這也是mos technology公司研發的最後一款處理器。
讓acorn感到悲劇的是,7520根本無法兼容6502,這使得acorn圍繞6502開發各種應用無法在新電腦上繼續使用,而英國教育機構更不願意以前的應用就這麼作廢了,這讓學生怎麼辦?幾年含辛茹苦的學習,最後卻告訴這些學生,你們這些年辛苦學的東西全都是沒有用的東西。
這不是誤人子弟嘛,英國教育機構豈能答應。
最後沒有辦法,acorn只能花取300萬美金從mos techno2技術授權,自己來設計能夠完全兼容6502處理器的全新16位處理器。
而這個時候,全世界首款真正意義上的risc處理器mips誕生,mips誕生震撼了整個半導體業界,很多業界專家認為risc將會是下一代的處理器,會最終取代cisc復雜指令集處理器。其實我們都知道cisc沒有被risc取代,而且還活得很滋潤。
于是,acorn公司開始轉變設計思路,設計一款能夠完全兼容6502的精簡指令集cporn risc machine處理器,這是arm處理器的前身。
其實從這里就能看得出arm跟mips有很大的不同,它不是一款純粹的risc,它帶有很多cisc才有的功能拓展性特質,而且功能拓展能力還很強,這也是為什麼後來的arm公司能夠基于arm構架設計這麼多種不同使用功能的arm系列處理器,更不要說各種變種版的arm處理器更是多的數不清。
這些處理器發展史上的秘聞李逸軒是不會對郭英年說的,而且現在都還沒有發生呢,有了李逸軒這個闖入者,這件事還會不會發生他都無法確定,現在他只要把郭英年說服就行了。
arm處理器起步是32位,我們最熟知的是64位結構的arm,現在才79年,是不能直接照抄的。
李逸軒對它進行了改變,16位arm處理器,由指令寄存器模塊、算術運算單元、微處理器的控制器模塊、程序計數器、子程序計數器模塊、數據存儲器模塊、數據總線處理器模塊組成該處理器的核心。
在圖紙的右下角還對這些器件分別做了說明。
1︰指令寄存器模塊主要完成從只讀存儲器(rom)中接受指令字,同時將指令字分送到控制部件和內部數據總線或者地址總線上。由于目前設計的是16位處理器,所以他接收16位的指令字後,通過微處理器控制器發出的控制信號把高8位操作碼送給控制模塊用于指令的譯碼,而低8位的數據和地址送到地址總線或數據總線。
2︰程序計數器模塊設計一位16位的程序計數器同時還必須能直接接受跳轉地址。
3︰子程序計數器模塊本身也相當于一個程序計數器,它是通過處理器里的控制器產生的控制信號來置數,一經置數,即是子程序的開始地址。另外子程序計數器還是可屏蔽中斷和不可屏蔽中斷程序執行過程的程序計數器,減少程序計數器設計的復雜。
4︰算術邏輯單元模塊是處理器運行算術和邏輯運算的不見,同時還有與這個模塊相關聯的寄存器模塊,寄存器的大量使用是risc架構的一大鮮明特點,他主要是用來存放算術邏輯運算的兩個操作數的模塊,也是算術邏輯單元運算結果的存儲部件。
5︰數據存儲器模塊是為了能從數據存儲器中讀取數據和寫入數據,就要有存儲地址寄存器和存儲數據寄存器對于要存儲的地址和數據進行暫存。
6︰微處理器控制模塊通過對指令的譯碼給出不同工作狀態各個模塊的操作脈沖信號,是整個微處理器的大腦,由譯碼器、環形計數器和控制矩陣組成。其中環形計數器產生控制矩陣所需要的控制狀態,指令譯碼和控制矩陣由控制模塊來實現。
7︰數據總線處理器模塊主要解決內部數據總線沖突問題,對不同的模塊的總線請求給予回應。
這就基本完成了處理器的大致框架的構造和各功能模塊功用的定義。李逸軒不需要過高的技術領先,所以決定不采用多址指令格式,對于用在硬盤上的總控制芯片,多址指令完全沒用,還會增加指令的尋址時間。
李逸軒為芯片設計一個二級緩存系統,一級4k,二級8k,這能大大增加硬盤的讀寫速度。
緩存的設計不能過大,也不能過低,必須根據芯片的實際用途合適才行。大了,沒用不說還浪費成本,小了又不夠用,總之這款控制芯片只要硬盤容量不超過2gb,就不會被淘汰。
這款控制cpu李逸軒還采用了流水線設計,分為用戶模式和專用模式2種工作模式,而寄存器也分為2種,通用寄存器和特殊寄存器,為此而專門設計了16個寄存器,在用戶模式下,指令只能訪問12個通用寄存器,而專用模式可以多全部的16個寄存器自願進行訪問,從用戶模式近入專用模式的鑰匙就是中斷和例外。
中斷對于流水線的數據通道而言,只有兩種情況,一類是執行的指令代碼不合法,需要轉入中斷服務程序,另外一類是例外或者中斷指令,例如系統啟動、硬件中斷和中斷返回等。
在李逸軒的設計中,指令的執行過程被劃分為3個步驟︰取指令、譯碼和執行,為什麼這樣設計?
首先,讓大家看下比如有3條指令輸入計算機是123,123,123,那麼采用了流水線後,執行的情況首先取值1然後譯碼到2的位置,這個時候第二條指令正好進入取值環節,當指令1進入到執行階段的時候,那麼第二條指令正好是譯碼階段,而第三條指令處于取值階段,這樣處理器內部將全速運行,這個時候處理器的執行效率最高,這也是在不增加計算機頻率上就可以增加計算機性能的一項技術。
李逸軒采用的是3級流水線設計,完全能滿足現狀和未來10年的硬盤容量增長需求了,對于一款面向硬盤總控制的cpu,完全沒有必要設計什麼4級5級甚至8級9級流水線,君不見未來的4tb容量硬盤,其總控制芯片的流水總線也不過才10級。
相反在總線設計上,李逸軒才是費了不少的腦細胞,不但要滿足現在的需求,還要滿足未來的需求。
總線是處理器的內部的數據、地址以及控制信號的傳輸通道,同時也是外部交流的接口,因此,處理器總線的設計對處理器的性能有著非常重要的影響。
這就好比如果一個城市沒有寬敞暢通且快速的大馬路,和有寬闊大馬路甚至高速比較,如果你想從城東到城西辦事,你覺的那個更快捷。
李逸軒把片外的總線分為3部分數據總線、地址總線和控制總線,采用3總線並行結構。
數據總線為16位的雙向總線,用于外部程序存儲器或者數據存儲器讀取指令或者數據和對外數據存儲器進行寫操作的通道,對只讀存儲器和對隨機存儲器的讀和寫是分時復用。地址總線也是16位,可以尋址的空間為64k,程序計數器是個16位的地址寄存器,用來存放要訪問的程序存儲器的地址,子程序計數器也是一個16位的地址寄存器,在子程序調用或者執行中斷程序的時候來代替程序寄存器的功能。
外部的控制總線將由訪問存儲器的讀、寫和準備等信號組成,主要讀寫外部存儲器和i/o設備。
這是外部總線,接著是內部總線結構。內部總線有兩種設計結構,該選哪一種李逸軒當初也是思考了很久。
那兩種總線結構?
馮諾依曼體系和哈佛體系,自然哈佛體系對計算機的性能的提升有很大幫助但是也將會造成工藝的復雜對成本控制不利,哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構。
中央處理器首先到程序指令存儲器中讀取程序指令內容,解碼後得到數據地址,再到相應的數據存儲器中讀取數據,並進行下一步的操作(通常是執行)。
程序指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度。
而馮•諾伊曼結構也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合並在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數據的寬度相同,而英特爾的8086就是這種結構。
李逸軒後來仔細的想了想,哈佛體系結構的存儲器的最大優點是,方便芯片後續設計的連續性,缺點是工藝生產上的復雜,不利于成本控制。
雖然arm處理器內部總線結構采用的是哈佛體系,但眼前這款cpu是作為硬盤總控制芯片用的。對于硬盤來說,是不需要太過于考慮未來內部總線設計的連續性,只要能達到原始設計要求就行了,最終他還是選用了馮•諾伊曼結構。
即便李逸軒講的深入簡出,盡可能的讓普通人能听懂,可遺憾的是郭英年還是沒有听明白。
沒辦法,cpu的專業性實在太強了。他只是一名官僚,並非該領域的專家,不過這些對他來說並不重要,重要的是他現在已經知道眼前這麼年輕人是真的會設計芯片。
郭英年心中的天平開始傾斜了,不過他還有一個疑問,“我現在相信你會設計芯片了,不過生產線你從哪里弄?”