第200章 Smartech-1
這個帖子的網絡ID叫阿文,他這個帖子並沒有說操作系統的有關事情,而只是說剛開始對編譯器非常感興趣,大學的時候參加了幾個相關的項目,發現自己對CPU的結構學了很久都沒有熟悉,於是便產生了自己動手親自做一個CPU的想法,以此來讓自己完全熟悉CPU的工作原理和結構。通過學習數字邏輯電路和計算機原理方面的相關知識,他知道,一個CPU其實也是有很多TTL集成電路組成的,其基本元件不外乎是晶體管、電阻和電容等,區別就只在於工藝方面而乙。也就是說,從理論上來講,完全可以由這些基本電氣元件來製作比較簡單的CPU,實現一些簡單的功能。事實上,CPU的發展就經歷了這麼一個過程。
考慮到水平的問題,這個想法一直留在阿文的腦海中,並沒有動手實施。這樣一直到大二的某一天下午,他在國外一個專業性的硬件論壇讀到了一篇文章,據那個文章的發表者說,這篇文章曾經是一本老雜誌上的,他見裡面涉及的內容非常專業和精彩,於是便手工將整篇文章敲了上來,作者沒有聯繫到。
這篇文章講的就是如何使用TTL集成電路來製作極其簡單的CPU,裡面將總體過程大略地介紹了一遍,例如製作這個CPU主要涉及到哪幾個主要的步驟以及哪些知識等,並且在文章的最後,作者還說,這個試驗事實上是能夠做成功的,他和幾個朋友曾經做過一個這樣的CPU,當然,它是一個龐然大物。
看到這篇文章之後,阿文終於下了決心。決定自己打造一個CPU.帖子到這裡就結束了,在末尾,阿文說看到這裡的人氣很旺,希望到這裡能夠我到志同道合的朋友,一起來交流這方面的知識,到目前為止,他地計劃已經順利地完成了一部分了。阿文在末尾留下了一個飛飛號碼。
在帖子的後面,只有寥寥幾個回帖。無非是「你強」、「厲害」之類的話。很顯然,大家並不相信阿文說的話是真的。或者說,阿文所做的事情把大家給嚇住了,自己手工製作CPU.難道你以為僅僅是去打磨一下麼!
許毅仔細閱讀了這個叫阿文的帖子,裡面他的措詞非常嚴謹,並沒有什麼不合理地地方。雖然他所做的事情有點太過匪夷所思了,但也並不是完全不可能,生話中地高手是很多的。許毅接著在站內搜索了一下阿文所發表和參與的帖子,發現他發的帖子很少。回帖也少,不過他回復的那幾個帖子的內容的質量卻非常高。而且都集中在硬件方面。
從這點來看,他應該不是那種說話不負責的人。想到此。許毅登上飛飛,按照阿文提供地號碼將其查找出來,發現他需要驗證才能加好友,許毅填了一個「CPU」。
很快,對方通過臉證的消息就傳了過來¯¯他現在在線。
許毅沒有立刻發信息過去,對方好像也不著急,並沒有發信息來詢問。最後還是許毅主動發信息過去:「你好。我是在黑客學陀地操作系統版塊看到你的飛飛號碼的,我對你手中的那個有關CPU的項目比較感興趣。
對方直接發來一句:「首先先回答我三個問題。
許毅還沒來得及應答,對方的問題就己經發了過來,三個問題,考察的內容有對相關硬件知識的概念,也有CPU某個部位的具體作用。好在許毅對這方面還有點瞭解。這三個問題都沒能難倒他,很順利地就通過了阿文地考核。
「終於來了以為稍微懂行的人了!」阿文發來的消息中這樣說道。按照他的說法,前面應該也有人找過他,而且也遇到過這種持遇。
「很多人來找過你嗎?你問的這三個問題並不是很難呀。」許毅奇怪地問道。
「也不多,就四五十人,你是這些人當中水平最高的。題目之所以這麼容易是因為我把題目難度降低了很多,不過我相信,前面地人都回各不出什麼東西來。」
「呵呵,你過獎了!在黑客學院翻到你的帖子,特意來找你問問情況。」
「這麼說來,你是真的相信我在帖子中所說的話了?」
「那是肯定,不相信還跑來幹嘛?」許毅反問,「再說我也知道用TTL集成電路的確是可以做出簡單功能的CPU的,雖然事情比較煩瑣了一點。」
「看來今天還真碰到能夠聊幾句的人了。」對方的話裡透露者興春,「在你之前的那幾十,都是車斤八兩,對這方面涉及的並不是很深,所以我跟地們沒有共同語言。」他之所以設立這樣一個考核規矩,主要是因為前面兩個人聊了車天,連什麼是CPU的Cache是什麼都不知道,浪費了阿文好多時間。
「請問你現在已經做到哪裡了?」許毅開門見山地問到。
「現在我已經完成了ALU/寄存器的架構和控制面板的架構!」
「哦?」他這麼說,許毅並不能看得很懂,誰知道他口中的控制面板是什麼東西,ALU和寄存器許毅倒知道。
「我這麼說你可能看不懂,這樣吧,我把我的項目日誌給你看看。」阿文想到了許毅的難處。
「那最好不過了!」
接著,阿文發出了一段文字,格式非常簡單,就是前面是日期,然後主要做了哪些事情。
……
1996年10月6日:開始寫項目日誌,並為這個項目制定了日程表。
1996年10月18日:完成了錯誤處理和中斷機制的基本設計。
1996年10月29日:完成微代碼的第一輪設計,並將這個CPU命名為Smartech-1
……
1996年11月13日:Smartech-1的彙編器基本成型。
……
1996年12月28日:在模擬器中完成了頁面錯誤機制。
……對指令集架構進行了意義重大的改變
……設計用於多進程的上下文環境切換
……完成對微代碼的重寫工作
……
一直到前兩大的「完成控制面板地架構」工作。
許毅看到,他這個項目已經歷時一年多了,而且在整個項目的過程中,他進行了大童的重寫改進工作,有好幾次甚至是完全推翻前面的設計。將自己學到的新知識應用到Smartech-1的製作當中去,從這份簡單的項目日誌看來,可以清晰地看到阿文在這方面的進步。在項目剛開始,他完全還是個萊烏,很多設計都非常不合理,很多知識也不知道。可是現在,他己經成為了這方面地高手,對整個Smartech-1瞭如指掌,同時也將CPU的很多工作原理和結構完全拿握。
看到這份日誌。許毅知道,阿文確確實實在做這個項目,他實在佩服阿文的毅力和耐性。
「我看了你的日誌,你的確非常厲害。我想問下,你的Smartech-1的最終目柱是想達到一個什麼樣的程度?」
「剛開始的時候,我只是抱著熟悉CPU的工作原理和結構地目的開始這個項目地,可是現在,我發現我已經喜歡上了Smartech-1,從某種意義上來說。它是我的孩子,我現在的目標己經有了改變。不再滿足於最初的想法,我想真正將這個CPU做出來,成為一個功能完全的CPU!」
「我要讓它支特完整的硬件地址轉換、內存映射IO私DMA,當然,多線程也少不了!這個CPU的地址總線是8位的,做成拱之後,它的主頻應該會達到3MHz!每個進程擁有128k地址空間,其中包括32個2k地數據頁和32個2k的代碼頁,這些地址映射到22位的物理地址空間中。如果算上外部設備的地址空間就是23位物理地址空間!」QM
「將來,我打算用這個CPU來組裝一台微型計算機,它的名字我都己經想好了,就叫它Smartech-1!呵呵,也許,以後還可以用這台計算機來做一個Web服務器!我現在己經在為這台CPU設計C語言編譯器了……」
阿文滔滔不絕地向許毅描述著他的籃圖。而許毅則一直在一邊靜靜地聽看著,從這些不斷傳輸過來文字,許毅看到了一個技術人員對技術地瘋狂和沉迷。從他身上,許毅看到了計算機歷時上早期計算機黑客的身影。那個時候的黑客,絕大多數都是硬件黑客,他們對電子硬件非常精通,極大地推動了計算機硬件的發展,第一台微型電腦就是由硬件黑客愛德華。絡伯茨發明的。
通過進一步聊天許毅知道,阿文做這個CPU完全是出於自己的愛好和興趣,除此之外別無他想,不過他的出現,卻讓許毅有了一個新的決定。
「阿文,我對你的Smartech非常感興趣,我們經常保持聯繫,另外,你如果想找志同道合的人一起實施這個計劃的話,我想我可以幫到你……」 |