看看上面這張圖,究竟是個什么東東呢?不過是個大學(xué)生用的實驗儀器吧。啊哈,可能細心的朋友已經(jīng)看到這個東西下面的“Magic-1 Homebrew CPU”字樣了。
難道這真的是一個CPU?請趕快閉好你張大了的嘴,我來告訴你答案:的確是!這是一個名字叫Bill Buzbee的朋友用200多塊74系列的TTL集成電路通過純手工制造的CPU。
通過了再繼續(xù)

做人要厚道,轉(zhuǎn)載請注明來自貓撲(mop.com) (發(fā)帖時間:2005-09-12 13:05:58) --- 甲狀腺
【樓主】 (1):作者的網(wǎng)站:http://www./
Magic-1是一個名叫Bill Buzbee的家伙手工打造的CPU,也是基于這個CPU制造的計算機的名字。“制作Magic-1的念頭是在一次午餐中冒出來的”,Buzbee說。Buzbee是一位編譯器作者,但他為自己不熟悉CPU的實際工作而感到郁悶,因此想到動手來親自作一個CPU。Buzbee在大學(xué)時候沒有學(xué)過任何電子類的課程,而且對于晶體管、電阻、電容等也只是一知半解。他的朋友Ken想到有一本老雜志曾經(jīng)介紹過如何使用TTL集成電路來制作極其簡單的CPU,并推薦他去看一看。一周后,Buzbee找到了這些文章,并全部讀了一遍。然后在下一次午餐上,Buzbee對Ken說起決定自己打造一個CPU,Ken說:為什么不呢?于是,Bill Buzbee的Magic-1項目拉開了序幕——
2001年12月6日 Buzbee開始寫項目日志,并為自己制定了一張艱難但還算樂觀的日程表
2001年12月18日 完成錯誤處理和中斷機制的基本設(shè)計
2001年12月29日 完成微代碼的第一輪設(shè)計
2002年1月6日 完成了Magic-1模擬器,可以對調(diào)用/返回指令序列進行跟蹤
2002年1月8日 模擬了Fibonacci函數(shù),并豐富了軟件接口約定
2002年1月13日 Magic-1匯編器(qas)成形
2002年1月18日 決定是選擇大尾數(shù)法還是小尾數(shù)法表示整數(shù)的字節(jié)順序,最終選擇了大尾數(shù)法
2002年2月28日 在模擬器中完成了頁面錯誤機制
2002年3月9日 決定使用普通電線來進行連線
2002年6月3日 對指令集架構(gòu)進行了意義重大的改變
2002年6月4日 用C語言編寫了Fabonacci程序并編譯為Magic匯編程序
2002年6月22日 改用分立的數(shù)據(jù)和代碼地址空間
2002年6月25日 設(shè)計用于多進程的上下文環(huán)境切換
2002年7月12日 完成對微代碼的重寫工作
2002年8月13日 放棄對rotate指令的支持
2002年9月11日 上了Gil Smith的一堂電子電路課程
2002年9月22日 從eBay上買了板材和外殼
2002年的其他日子 向Ken Sumrall請教如何使用寄存器,從他那里學(xué)到了Ohm規(guī)則
2003年3月30日 從Jhon Doran的D16/M中得到了靈感,完成了ALU/寄存器板的架構(gòu)
2003年4月13日 完成控制板的架構(gòu)
2003年4月14日 思考前面板的架構(gòu)
2003年5月3日 第一輪架構(gòu)設(shè)計完畢
2003年5月6日 將構(gòu)建環(huán)境從Linux一直到Windows
2003年5月16日 構(gòu)思新的Magic-1模擬器
2003年5月27日 在新的模擬器上成功運行了Fibonacci程序
2003年6月3日 完成了新的匯編器功能
2003年6月21日 Magic架構(gòu)驗證和測試用例達到了100%覆蓋率
2003年6月23日 Alistair Roe通過email提出了Magic-1外殼的構(gòu)想
2003年8月3日 將LCC(C編譯器)一直到了Magic上
2003年8月10日 在模擬器上成功地實現(xiàn)了Fibonacci程序的C語言版本 (這一天是Buzbee的生日)
2003年8月27日 從David Conroy那里學(xué)到了信號完整性
2003年9月18日 決定使用普通的帶皮電線進行連接(奇怪,前面已經(jīng)決定一次了)
2004年1月3日 完成了全部的設(shè)計工作,開始制作
2004年1月18日 Magic-1有了第一次心跳
2004年1月26日 前面板完成
2004年2月9日 內(nèi)存板完成
2004年2月20日 EPROM子板完成
2004年2月26日 設(shè)備板完成
2004年3月7日 微代碼序列成功運轉(zhuǎn)
2004年3月9日 執(zhí)行了第一條指令
2004年3月19日 控制板完成
2004年4月8日 嘗試發(fā)布前期的工作
2004年4月12日 ALU/寄存器板完成;同日被告知,發(fā)布嘗試失敗
2004年4月13日 Magic-1成功運行了Fibonacci程序!
2004年4月25日 Dave Conroy的測試會話發(fā)現(xiàn)了不真實的內(nèi)存碎片
2004年5月3日 Magic-1能“說話”了
2004年5月8日 運行“Sieve of Erasthones”基準
2004年5月16日 完成了IDE接口,Alistair Roe完成了外殼設(shè)計
2004年7月23日 發(fā)布基本架構(gòu)
2004年9月12日 用戶模式程序可以工作
2004年9月15日 運行“Dhrystone”基準
2004年9月22日 使用copy-on-write實現(xiàn)了fork()
2004年10月23日 Magic-1的Dhrystone得分達到了384(0.25MIPS)
2004年10月31日 運行Colossal Cave Adventure
2005年4月9日 Alistair Roe設(shè)計的外殼到貨
2005年5月13日 Magic-1的硬件設(shè)計完畢
--- 甲狀腺
【樓主】 (2):工作中的Magic-1

--- 甲狀腺
【樓主】 (3):鏤空的頂板,可以看到內(nèi)部的照明藍光,非常絢麗

--- 甲狀腺
【樓主】 (4):學(xué)過數(shù)字邏輯和數(shù)字電路的朋友一定知道,通過使用TTL門電路,的確是能夠?qū)崿F(xiàn)一個CPU的;筆者在大學(xué)時也曾在軟件上使用74系列芯片模擬過功能非常簡單的CPU。然而,Buzbee朋友搞得這個家伙卻是一個功能完全的CPU,我不知該如何形容它的功能,我本想說“麻雀雖小,五臟俱全”,但是……
這款“家釀”CPU可以支持完整的硬件地址轉(zhuǎn)換、內(nèi)存影射IO和DMA,并且支持多進程,主頻“高達”3MHz;該CPU采用8位地址總線,每個進程擁有128K地址空間,其中包括32個2K的數(shù)據(jù)頁和32個2K的代碼頁,這些地址影射到22位的物理地址空間中,如果算上外部設(shè)備的地址空間就是23位物理地址空間。
怎么樣?夠強的吧?這還不算什么,這個Buzbee還用這個CPU組裝了一臺微型計算機,名字就叫Magic-1,這臺計算機包括兩個串口和一塊20M的1.3吋硬盤和另一塊30M硬盤。最讓人“乍舌”的事,這位朋友還將這臺計算機做為一個Web服務(wù)器,同時支持Telnet會話(雖然只支持一個會話)。哦,還有,為了讓這個系統(tǒng)能夠跑起來,Buzbee還為它準備了一個C編譯器!
ALU/寄存器板的元件面

--- 甲狀腺
【樓主】 (5):ALU/寄存器板的連線面

--- 甲狀腺
【樓主】 (6):控制板的元件面

--- 甲狀腺
貓(7):天下真是牛人無數(shù)啊~~~
--- jimmiehsu【見習(xí)成員】
【樓主】 (8):設(shè)備板的元件面,中間有一塊鋰電池

--- 甲狀腺
【樓主】 (9):看看背面連線的局部圖

|