「B站焊武帝」再出圈!孤身爆肝造CPU,軟硬件全自研,可玩游戲,基礎(chǔ)器件成本不到1000元[CPU終?
兩年時間,一個90后體制內(nèi)小哥下班之后只干三件私務(wù),那就是:
手搓CPU!手搓CPU!還是***手搓CPU!
純手工制作、全自主研發(fā),于是一個名叫“初芯”的CPU終極形態(tài)終于誕生。
據(jù)UP主估計,整個CPU共計兩萬多個器件、10萬多個焊點(diǎn),全都是一個個手動組裝上去的,網(wǎng)友給他“焊武帝”的稱號果然名副其實(shí)。
光是看這些密密麻麻的線和接口,就已經(jīng)頭大了有沒有!
視頻一出即登上熱門,網(wǎng)友們紛紛趕來,佩服他的勇氣和毅力。
他以前的粉絲也聞聲而來:神又發(fā)視頻了!他活了!
畢竟據(jù)他上一次更新視頻,已經(jīng)過了20個月之久了。
而這個小哥也不陌生,他名叫林乃衛(wèi),相信很多讀者之前也看過量子位寫的《B站焊武帝爆火出圈:純手工拼晶體管自制CPU,耗時半年,可跑程序》。
時隔一年半,如今千呼萬喚始出來,就來康康這爆肝兩年的自研CPU終極形態(tài)到底是什么?
“底層邏輯、架構(gòu)、指令集均是自主研發(fā)”話不多說,直接先來看手搓出來的“CPU終極形態(tài)”的參數(shù)如何:
頻率:13kHz,超頻最大33kHz;
ROM:64kB,支持熱更新,16位ROM尋址、16位靜態(tài)數(shù)據(jù)尋址;
內(nèi)存:系統(tǒng)內(nèi)存256B、應(yīng)用內(nèi)存64kB;
IO口數(shù)量:78bit(48支持位操作);
103條指令,功耗10瓦。
做成這樣,成本統(tǒng)共算下來只有2000元左右,若是再刨去電烙鐵、示波器這類工具,花在基礎(chǔ)器件上的錢還不到1000塊。
整體性能方面,小哥表示它和70年代初期的CPU差不多,并且在指令上還要優(yōu)于當(dāng)時的CPU。
形象點(diǎn)來說,目前它可以簡單刷個屏幕,顯示文字、圖像,甚至一些小游戲(類似貪吃蛇)也能跑起來。
其實(shí)在去年7月份,小哥就已經(jīng)在B站更新過一個“純手工自制CPU”的視頻,搭建的是CPU雛形,耗時6個月。
不過當(dāng)時的CPU還僅處于能跑起來的階段,要運(yùn)行更復(fù)雜的程序還比較困難。
△夜間運(yùn)行,跑個燈于是小哥就開始了他的手搓“進(jìn)階版CPU”歷程,在剛制作好的CPU雛形上進(jìn)行調(diào)試維修,這一步他的計劃是:
把指令增加到100多條;
增加了堆棧、 IO 口,運(yùn)算器的這些比較復(fù)雜一點(diǎn)的部件,還有內(nèi)存管理;
可以滿足一些復(fù)雜的運(yùn)算;
……
這一把調(diào)試維修,直接就整了小哥一年半的時間。
為了有效提高CPU的性能,期間小哥下了“血本”購入了示波器這類專業(yè)器材,用來檢測整個CPU每一個節(jié)點(diǎn)的信號。
然后小哥以最簡易的方式去拆除了一些器件,直接把CPU的頻率從1kHz提升到33kHz,性能翻了33倍。
話說回來,徒手搓出CPU,小哥可是完全是依靠自己本科就已經(jīng)掌握的電子領(lǐng)域、IT領(lǐng)域的知識,實(shí)打?qū)嶉_發(fā)出來的。
從前期的電路仿真、PCB設(shè)計到中后期的焊接、調(diào)試以及軟件編程……小哥一個人獨(dú)攬一條“CPU生產(chǎn)線”。
(聽起來就很頭疼對吧)不過這對“愛好技術(shù)類手工制作”的小哥來說可就不一樣了。
獨(dú)創(chuàng)技術(shù)了解一下~
看過視頻的盆友或許都知道,小哥在視頻中特別提到了自己的獨(dú)創(chuàng)雙通道內(nèi)存。
現(xiàn)有的雙通道內(nèi)存技術(shù)雖然也是使用了兩個內(nèi)存控制器,但并沒有將全局變量和局部變量(變量的兩種分法)分隔開來,它們依舊在混在一個內(nèi)存中,這樣要訪問內(nèi)存就只能一次性全部訪問。
而小哥的“獨(dú)創(chuàng)技術(shù)”就不一樣了,直接把全局變量和局部變量物理上分割開來,放在不同的內(nèi)存控制器上。
這樣一來,全局變量可以直接用作系統(tǒng)內(nèi)存(256B),局部變量直接用作應(yīng)用內(nèi)存(64kB)。
如果要跑個大一點(diǎn)兒的游戲,直接訪問局部變量所在的應(yīng)用內(nèi)存,一條指令就能訪問到64kB的內(nèi)存。
曾花兩個月伙食費(fèi)買設(shè)備光看CPU這個體量,就知道是個不小的工程,可能即便專業(yè)人士也很難有這樣的能力和心力從頭做起。
不少網(wǎng)友紛紛表示佩服UP主的勇氣和毅力。但也有冷靜的網(wǎng)友質(zhì)疑:為何要做這個呢?
正如這個高贊評論所言,實(shí)現(xiàn)方式與實(shí)際CPU還是有很大差距,恐怕很難談得上對現(xiàn)有架構(gòu)有太大貢獻(xiàn)。
在與量子位的交流中,Up主跟我們坦言:做這個東西完全就是為了不留遺憾。
視頻也介紹,他是在2016年萌生出開發(fā)CPU的想法。
當(dāng)時電子工程專業(yè)的他正在讀大三,日常喜歡寫寫單片機(jī)來玩,時不時就在思考:“為何一串0101的數(shù)字能變成程序?”再結(jié)合已有的數(shù)電知識,對CPU的底層運(yùn)行機(jī)制有了了解,自制8位CPU的想法也就油然而生。
不過他也有個私心:成功的話也比較好找工作。(很真實(shí)了)
很快,他就完成了電路設(shè)計仿真、PCB設(shè)計以及打印電路板等工序。光買一堆器件和設(shè)備就花了兩個月的伙食費(fèi)。
一切準(zhǔn)備就緒時,就到大四畢業(yè)設(shè)計時候了,他也就只能將CPU的項目擱置。
結(jié)果這一放就是五年,此時他回到了北海,工作內(nèi)容基本上與本科專業(yè)沒有太大關(guān)系,趁著業(yè)余時間又重新拾起當(dāng)年的興趣。
他向我們坦言:
這個想法如果一直沒有實(shí)現(xiàn),就像手里面扎了一顆小刺,沒拔出來就會一直隱隱作痛。
回頭再去看當(dāng)年大學(xué)時候的設(shè)計,他表示有的設(shè)計顯得十分“愚蠢”。比如像程序計數(shù)器設(shè)計得復(fù)雜,浪費(fèi)器件的同時還限制了CPU的運(yùn)行速度。
于是不得不如前所述,從最底層的分立元件開始打造。要知道這種方式速度很慢,穩(wěn)定性也很差,還會經(jīng)常出問題。
但UP主表示正是這種從底層出發(fā)的過程,就會有更多時間去思考和解決那些問題,也會迸發(fā)出創(chuàng)新性的靈感出來。
比如,這不就是芯片發(fā)展的一個縮影嘛!(Doge)
(咳咳正經(jīng)一點(diǎn))有心的讀者或許在視頻結(jié)尾注意到,他有一個「創(chuàng)作中的小發(fā)現(xiàn)」還不便展示。
量子位幫大家刺探到了一些消息,這個小發(fā)現(xiàn)是關(guān)于儲存邏輯電路方面的,小哥表示:
由更少的器件組成,性能更高,響應(yīng)速度更快,并且具有替代現(xiàn)有儲存邏輯單元的潛力。
最后,小哥還略微向我們透露了些他未來的計劃:
這次手搓CPU,是為了進(jìn)行一場自主研發(fā)可商用CPU的可行性論證,為下一步研發(fā)商用cpu提供理論和實(shí)踐支持。
(可以期待一波了~~~)
參考鏈接:
[1]https://space.bilibili.com/28026515
[2]https://www.bilibili.com/read/cv12035591?spm_id_from=333.999.0.0
