在如今越來越靠程序化、流水線作業(yè)來完成生產(chǎn)的制造業(yè)中,想找一件手工打造的產(chǎn)品,真是越來越難了。
好在當(dāng)今社會(huì)中,還是有一些強(qiáng)人在孜孜不倦的在完成著心中的“完美DIY”夢想。因此也使我們多了一些大開眼界、崇拜和向慕的機(jī)會(huì)。
看看上面這張圖,究竟是個(gè)什么東東呢?可能有人會(huì)說,這不過是個(gè)大學(xué)生用的實(shí)驗(yàn)儀器吧。但細(xì)心的朋友則肯定已經(jīng)看到這個(gè)東西下面的“Magic-1 Homebrew CPU”字樣了。
難道這真的是一個(gè)CPU?請(qǐng)趕快閉好你張大了的嘴巴。讓筆者來告訴你答案:的確是!這是一個(gè)名字叫Bill Buzbee的朋友用200多塊74系列的TTL集成電路通過純手工制造的CPU。
這個(gè)神奇的Magic-1,就是由一個(gè)名叫Bill Buzbee的家伙手工打造的CPU。而Magic-1也是基于這個(gè)CPU制造的計(jì)算機(jī)的名字。有意思的是,“制作Magic-1的念頭是在一次午餐中冒出來的”,Buzbee說。
Buzbee是一位編譯器作者。但他為自己不熟悉CPU的實(shí)際工作而感到郁悶。因此想到了親自動(dòng)手來作一個(gè)CPU。Buzbee在大學(xué)時(shí)候沒有學(xué)過任何電子類的課程,而且對(duì)于晶體管、電阻、電容等也只是一知半解。不過他的朋友Ken想到有一本老雜志曾經(jīng)介紹過如何使用TTL集成電路來制作極其簡單的CPU,并推薦他去看一看。一周后,Buzbee找到了這些文章,并全部讀了一遍。然后在下一次午餐上,Buzbee對(duì)Ken說起決定自己打造一個(gè)CPU。Ken說:“為什么不呢?”于是,Bill Buzbee的Magic-1項(xiàng)目拉開了序幕。
純手工CPU制造編年大史記
2001年12月6日 Buzbee開始寫項(xiàng)目日志,并為自己制定了一張艱難但還算樂觀的日程表
2001年12月18日 完成錯(cuò)誤處理和中斷機(jī)制的基本設(shè)計(jì)
2001年12月29日 完成微代碼的第一輪設(shè)計(jì)
2002年1月6日 完成了Magic-1模擬器,可以對(duì)調(diào)用/返回指令序列進(jìn)行跟蹤
2002年1月8日 模擬了Fibonacci函數(shù),并豐富了軟件接口約定
2002年1月13日 Magic-1匯編器(qas)成形
2002年1月18日 決定是選擇大尾數(shù)法還是小尾數(shù)法表示整數(shù)的字節(jié)順序,最終選擇了大尾數(shù)法
2002年2月28日 在模擬器中完成了頁面錯(cuò)誤機(jī)制
2002年3月9日 決定使用普通電線來進(jìn)行連線
2002年6月3日 對(duì)指令集架構(gòu)進(jìn)行了意義重大的改變
2002年6月4日 用C語言編寫了Fabonacci程序并編譯為Magic匯編程序
2002年6月22日 改用分立的數(shù)據(jù)和代碼地址空間
2002年6月25日 設(shè)計(jì)用于多進(jìn)程的上下文環(huán)境切換
2002年7月12日 完成對(duì)微代碼的重寫工作
2002年8月13日 放棄對(duì)rotate指令的支持
2002年9月11日 上了Gil Smith的一堂電子電路課程
2002年9月22日 從eBay上買了板材和外殼
2002年的其他日子 向Ken Sumrall請(qǐng)教如何使用寄存器,從他那里學(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è)計(jì)完畢
2003年5月6日 將構(gòu)建環(huán)境從Linux一直到Windows
2003年5月16日 構(gòu)思新的Magic-1模擬器
2003年5月27日 在新的模擬器上成功運(yùn)行了Fibonacci程序
2003年6月3日 完成了新的匯編器功能
2003年6月21日 Magic架構(gòu)驗(yàn)證和測試用例達(dá)到了100%覆蓋率
2003年6月23日 Alistair Roe通過email提出了Magic-1外殼的構(gòu)想
2003年8月3日 將LCC(C編譯器)一直到了Magic上
2003年8月10日 在模擬器上成功地實(shí)現(xiàn)了Fibonacci程序的C語言版本 (這一天是Buzbee的生日)
2003年8月27日 從David Conroy那里學(xué)到了信號(hào)完整性
2003年9月18日 決定使用普通的帶皮電線進(jìn)行連接(奇怪,前面已經(jīng)決定一次了)
2004年1月3日 完成了全部的設(shè)計(jì)工作,開始制作
2004年1月18日 Magic-1有了第一次心跳
2004年1月26日 前面板完成
2004年2月9日 內(nèi)存板完成
2004年2月20日 EPROM子板完成
2004年2月26日 設(shè)備板完成
2004年3月7日 微代碼序列成功運(yùn)轉(zhuǎn)
2004年3月9日 執(zhí)行了第一條指令
2004年3月19日 控制板完成
2004年4月8日 嘗試發(fā)布前期的工作
2004年4月12日 ALU/寄存器板完成;同日被告知,發(fā)布嘗試失敗
2004年4月13日 Magic-1成功運(yùn)行了Fibonacci程序!
2004年4月25日 Dave Conroy的測試會(huì)話發(fā)現(xiàn)了不真實(shí)的內(nèi)存碎片
2004年5月3日 Magic-1能“說話”了
2004年5月8日 運(yùn)行“Sieve of Erasthones”基準(zhǔn)
2004年5月16日 完成了IDE接口,Alistair Roe完成了外殼設(shè)計(jì)
2004年7月23日 發(fā)布基本架構(gòu)
2004年9月12日 用戶模式程序可以工作
2004年9月15日 運(yùn)行“Dhrystone”基準(zhǔn)
2004年9月22日 使用copy-on-write實(shí)現(xiàn)了fork()
2004年10月23日 Magic-1的Dhrystone得分達(dá)到了384(0.25MIPS)
2004年10月31日 運(yùn)行Colossal Cave Adventure
2005年4月9日 Alistair Roe設(shè)計(jì)的外殼到貨
2005年5月13日 Magic-1的硬件設(shè)計(jì)完畢
純手工CPU的廬山真面目
實(shí)物照片大曝光,已經(jīng)在工作狀態(tài)……
鏤空的頂板,可以看到內(nèi)部的照明藍(lán)光,非常絢麗
學(xué)過數(shù)字邏輯和數(shù)字電路的朋友一定知道,通過使用TTL門電路,的確是能夠?qū)崿F(xiàn)一個(gè)CPU的;筆者在大學(xué)時(shí)也曾在軟件上使用74系列芯片模擬過功能非常簡單的CPU。然而,Buzbee朋友搞得這個(gè)家伙卻是一個(gè)功能完全的CPU,我不知該如何形容它的功能,我本想說“麻雀雖小,五臟俱全”,但是……
這小朋友抱著DIY出來的CPU,不知道心里是個(gè)什么滋味呢?
這款“家釀”CPU可以支持完整的硬件地址轉(zhuǎn)換、內(nèi)存影射IO和DMA,并且支持多進(jìn)程,主頻“高達(dá)”3MHz;該CPU采用8位地址總線,每個(gè)進(jìn)程擁有128K地址空間,其中包括32個(gè)2K的數(shù)據(jù)頁和32個(gè)2K的代碼頁,這些地址影射到22位的物理地址空間中,如果算上外部設(shè)備的地址空間就是23位物理地址空間。
手工電路板特寫圖秀
ALU/寄存器板的元件面
ALU/寄存器板的連線面
控制板的元件面
設(shè)備板的元件面,注意中間有一塊鋰電池
大特寫!背面連線的局部圖
怎么樣?夠強(qiáng)的吧?這還不算什么,這個(gè)Buzbee還用這個(gè)CPU組裝了一臺(tái)微型計(jì)算機(jī),名字也叫Magic-1。
可實(shí)現(xiàn)Telnet服務(wù)功能
這臺(tái)計(jì)算機(jī)包括兩個(gè)串口和一塊20M的1.3吋硬盤和另一塊30M硬盤。最讓人“乍舌”的事,這位朋友還將這臺(tái)計(jì)算機(jī)做為一個(gè)Web服務(wù)器,同時(shí)支持Telnet會(huì)話(雖然只支持一個(gè)會(huì)話)。哦,還有,為了讓這個(gè)系統(tǒng)能夠跑起來,Buzbee還為它準(zhǔn)備了一個(gè)C編譯器!
相關(guān)導(dǎo)讀
真正的DIY名作:自己設(shè)計(jì)制造的CPU!
真的猛士,敢于DIY自己的生活;真的猛士,敢于DIY自己的電子產(chǎn)品;真的猛士,敢于只用導(dǎo)線和晶體管DIY自己的電腦。
從零開始造電腦……這得是何等的生猛啊。一般人也就是自己組臺(tái)機(jī)器裝個(gè)系統(tǒng)啥的,這位叫Steve的哥們卻不這么想,他覺得不自己拿導(dǎo)線啥的造臺(tái)電腦出來你出門都不好意思跟人家打招呼……
現(xiàn)在的電腦,僅僅一個(gè)CPU里那可是有上億個(gè)晶體管啊……純手工的話那簡直是不可想象,即使強(qiáng)如此人也只能退而求其次,最終造出來極低配置電腦……但那也是電腦啊!!
這臺(tái)名叫“線地獄”(Big Mess O‘ Wires)的電腦能運(yùn)行BASIC程序,CPU主頻為2MHz(理論最高極限為3MHz),512KB的RAM和512KB的ROM(上一次看到KB級(jí) 別的配置是何時(shí)?真是懷念的淚流滿面啊),視頻輸出方面如果是黑白雙色的話能夠輸出512×480的分辨率,如果是256色的話就只有128×240了。
OTZ……果然是技術(shù)宅救世么?
以下是這臺(tái)BMOW的內(nèi)部結(jié)構(gòu)圖和一些主要參數(shù):
*處理器主頻2MHz,理論最高主頻可達(dá)3MHz;
*處理器使用8位數(shù)據(jù)線,24位地址線。內(nèi)建四個(gè)8位通用數(shù)據(jù)寄存器,三個(gè)24位寄存器則用于存放程序計(jì)數(shù)器,堆棧指針寄存器以及地址指針,CPU內(nèi)部采用一條數(shù)據(jù)總線來連接寄存器和算術(shù)邏輯單元,而內(nèi)存,ROM和內(nèi)存映射裝置等則使用另一條數(shù)據(jù)總線連接。ALU單元還配備了專用左/右數(shù)據(jù)輸入總線。
*CPU的機(jī)器語言指令以微指令形式存儲(chǔ)在三個(gè)并行ROM中,以生成24位微代碼指令字。每時(shí)鐘周期可以執(zhí)行一條微指令,一條機(jī)器語言指令最多可以包含16條微指令;
*配備512KB內(nèi)存,512KB ROM,使用24位地址線結(jié)構(gòu),最多允許的RAM+ROM容量為1MB;
*耗電10W,額定工作電流2.0A,電壓5V;
*支持512x480雙色VGA輸出,或128x240256色VGA輸出;
*音效功能由三聲部可編程發(fā)生器提供;
*可連接PS/2接口普通鍵盤;
*具備24x2 Debug顯示屏;
*整個(gè)元件使用了約1250條線纜。
除了名字起的很糟糕之外,這塊處理器可謂Steve Chamberlin的心血之作。這款8位處理器及其配套的計(jì)算機(jī)系統(tǒng)將在第四屆Maker Faire年會(huì)會(huì)場上展示,屆時(shí)Steve Chamberlin將向與會(huì)的8萬名參展人員演示使用這臺(tái)DIY電腦玩國際象棋游戲。Maker Faire年會(huì)是一個(gè)專供DIY愛好者,改造愛好者展示自己作品的大型展會(huì)。
-
集成電路
+關(guān)注
關(guān)注
5391文章
11588瀏覽量
362512 -
cpu
+關(guān)注
關(guān)注
68文章
10889瀏覽量
212383 -
DIY
+關(guān)注
關(guān)注
176文章
888瀏覽量
348857 -
電子制作
+關(guān)注
關(guān)注
142文章
310瀏覽量
151107
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論