第五章入夥 “你也看到了,我目前正在做的工作。”張億誠指了指桌子上的圖紙,“我要完成這個設計還需要很多的其他的工作來驗證,你看到的還隻是第一步,如果設計驗證沒有問題,那麽我還需要一個平台來檢驗他的性能,所以我想你會對組裝一部自己的計算機很感興趣吧,我知道的蘋果公司可是你的偶像。”張億誠有絕對的把握他的老同學埃裡克先生會答應,埃裡克是70年代個人計算機愛好者成立的“家釀計算機俱樂部”的成員。
關於家釀計算機俱樂部的來由還是有一些典故;70年代早期在加利福尼亞州伯克利分校的一群人成立了一家:人民計算機公司,他們聲稱計算機被DEC、HP、CDC、IBM這些大公司壟斷,生產的計算機被出售給國家的軍事部門,軍事部門利用這些計算機制造各種武器和導彈這些毀滅人類的武器,被政客和資本家所控制和使用,所以這些計算機基本是用來反對人民而不是幫助人民,所以他們提出口號:人民計算機,在他們的鼓吹下於是研製人人能用、走進家庭的計算機成為了當時無線電愛好者和發燒友們的最熱門話題,“卷起袖子為你自己做一台計算機”成了他們的口頭禪,而為了能做出好的自己的計算機,他們就需要技術的交流,於是當時成立了很多的計算機俱樂部。在眾多的計算機俱樂部中,最有名、映像最大的就是在加州矽谷成立的“家釀俱樂部”,發展到這個時候家釀俱樂部幾乎是個人計算機愛好者中的聖地,發燒友以能夠加入這個俱樂部為榮。
以前埃裡克就有自己做一台自己的計算機的想法,隻是一直受限於資金,所以才遲遲沒有行動。美國的大學生可沒中國的嬌貴,他們大部分在校期間都有兼職,甚至有的學生在有空閑的時候寧願去碼頭當搬運工賺取外塊也不會隨便張口向父母要錢。
張億誠現在以幫助自己研究的名義像埃裡克伸出橄欖枝不怕他不接,果然當埃裡克聽到自己的工作是組建自己的計算機的時候,眼睛裡神采被狂熱興奮所替代,以一種興奮而略帶不確定的口氣問道:“你確定是讓我幫你做自己的計算機(個人計算機)?”
“我非常的肯定的告訴你,你沒聽錯,但是首先我想先申明一點,我需要你做的計算機用我的這個處理器,畢竟這是我的目的所在。”
“這個沒問題,我要確定的是你的處理器什麽時候可以完成,我已經快等不及了,真想看看我親手做的計算機出現在俱樂部裡的時候那幫家夥是什麽表情。”可憐的埃裡克已經掉入張億誠的陷阱而不自知,要想真正的做成這台計算機單單前期做市場上各種配件的調查就不知道需要花費多長時間,要知道這個時候還不像前世那樣電腦零部件市場到處都是,這個時候電腦市場裡基本賣的都是整機,而張億誠恰好又沒有足夠的時間去做這樣的工作,招聘個專業的人員還需要付工資,埃裡克又完全是免費的內行人,還有比這樣更合適的人嗎,真是一舉兩得啊。
“親愛的埃裡克我理解你急迫的心情,請在給我一點點時間,不會讓你等待太長的時間,我保證。”張億誠低頭看了看手表,已經晚上8點一刻。接著說到“那麽現在,我想是我需要晚餐的時間,如果你不介意我邀請你和我共進晚餐,前提是你需要自己動手做,讓我看看冰箱裡還有什麽,一般的情況下,我一個人是不會做飯的。”張億誠邊說邊向廚房的方向走去一邊和埃裡克說著話,
埃裡克緊緊的跟隨過去。 “我不知道你晚飯還沒吃,雖然我已經在學校吃過了,但是我還是想嘗嘗你們中國人的手藝。”
張億誠可沒時間去做中國菜,看了看冰箱裡的保鮮室,還有幾個土豆、豬排和一些胡蘿卜以及一些白菜。
埃裡克就像個剛得到了大人承諾幫自己買心目中的玩具的孩子一樣,滔滔不絕的說著自己的構想,張億誠隻是時不時的應一聲表示自己的存在,21世紀作為這方面的專家他實在對埃裡克的設想缺乏興趣。
吃過晚飯後,2人坐在沙發上,埃裡克還在暢談他的構想,張億誠實在被他煩透了。
“埃裡克,你有時間在這裡暢談不如你到我的書房去或者回到學校的宿舍把自己的構想用你手中的筆寫下來如何,這樣我們將知道如果完成這樣一件作品我們還需要那些東西,而價格又是多少,你覺的呢?”這個時候張億誠已經決定今天晚上就完成處理器核心的圖紙設計工作,要加快進度。“明天開始除了學習外,我想你的主要工作是做電路板公司以及存儲器公司等這方面的調查報告。”
在給埃裡克吩咐了工作後,就把他給送出了大門,現在張億誠想集中精力工作免受任何的打擾。
張億誠設計的芯片采用流水線設計,這種設計方法目前還沒有出現,那麽這將是張億誠後面如果自己的芯片出師不利,將也會采取限制別人的第一步,那就是專利戰。
為了優良的性能和安全,張億誠將采用的流水線設計分為用戶模式和專用模式2種工作模式,而寄存器也分為2種,通用寄存器和特殊寄存器,為此而專門設計了16個寄存器,在用戶模式下,指令隻能訪問12個通用寄存器,而專用模式可以多全部的16個寄存器自願進行訪問,從用戶模式近入專用模式的鑰匙就是中斷和例外。
中斷對於流水線的數據通道而言,隻有兩種情況,一類是執行的指令代碼不合法,需要轉入中斷服務程序,另外一類是例外或者中斷指令,例如系統啟動、硬件中斷和中斷返回等。
在張億誠的設計中指令的執行過程被劃分為3個步驟:取指令、譯碼和執行,為什麽這樣設計,首先讓大家看下比如有3條指令輸入計算機是123,123,123,那麽采用了流水線後,執行的情況首先取值1然後譯碼到2的位置,這個時候第二條指令正好進入取值環節,當指令1進入到執行的階段的時候,那麽第二條指令正好是譯碼階段而第三條指令處於取值階段,這樣處理器內部將全速運行,這個時候處理器的執行效率最高,這也是在不增加計算機頻率上就可以增加計算機的性能的一項技術。
而這個時候的8086還在讀一條指令執行完在讀下一條指令的原始階段。為什麽張億誠不采用4級5級甚至8級9級流水線,不是他目前不想設計,而是流水線越多,結構將越複雜,以現在的工藝做出的成品,張億誠估計良品率可能不會超過10%,次品如此之多的後果將是售價的提高,造成競爭力的急劇減弱,對於張億誠這種想快速大面積推向個人計算機市場來說會非常不利。
張億誠挑燈夜戰在努力的做著他的工作,“呼,前面的步驟終於差不多了,那麽接下來讓我開始總線的架構設計。”張億誠自言自語的說道。
總線是處理器的內部的數據、地址以及控制信號的傳輸通道,同時也是外部交流的接口,因此,處理器總線的設計對處理器的性能有著非常重要的影響。這就好比如果一個城市沒有寬敞暢通且快速的大馬路,和有寬闊大馬路甚至高速比較,如果你想從城東到城西辦事,你覺的那個更快捷。
張億誠把片外的總線分為3部分數據總線、地址總線和控制總線,采用3總線並行結構。數據總線為16位的雙向總線,用於外部程序存儲器或者數據存儲器讀取指令或者數據和對外數據存儲器進行寫操作的通道, 對隻讀存儲器和對隨機存儲器的讀和寫是分時複用。地址總線也是16位,可以尋址的空間為64K,程序計數器是個16位的地址寄存器,用來存放要訪問的程序存儲器的地址,子程序計數器也是一個16位的地址寄存器,在子程序調用或者執行中斷程序的時候來代替程序寄存器的功能。外部的控制總線將由訪問存儲器的讀、寫和準備等信號組成,主要讀寫外部存儲器和I/O設備(input/output的縮寫,比如鍵盤是輸入設備打印機是輸出設備)。
完成了外部總線設計的張億誠又開始了下一步片內總線的設計,這一次張億誠思考了一會,因為這牽扯到2種總線結構,馮諾依曼體系和哈佛體系,自然哈佛體系對計算機的性能的提升有很大幫助但是也將會造成工藝的複雜對成本控制不利,哈佛結構是一種將程序指令存儲和數據存儲分開的存儲器結構。中央處理器首先到程序指令存儲器中讀取程序指令內容,解碼後得到數據地址,再到相應的數據存儲器中讀取數據,並進行下一步的操作(通常是執行)。程序指令存儲和數據存儲分開,可以使指令和數據有不同的數據寬度。而馮・諾伊曼結構也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合並在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數據的寬度相同,英特爾的8086就是這種結構,張億誠仔細的想了想為了以後設計的連貫性最終還是決定使用哈佛體系的存儲器結構。