首頁 > 易卦

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

作者:由 MyGeekTimes 發表于 易卦日期:2022-07-30

左移移位暫存器怎麼移

對CPU行業有點了解的小夥伴,當聽到別人說要自制CPU,肯定會想“他是瘋了還是在吹牛?”

都不是,這位網名叫“奶味的”B站大神真的做出來了。耗時整整半年,透過自己的雙手在一次次試驗和失敗中真的打造出了一個完整版的CPU!

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

▲ 現場製作圖片

Up主在手工製作之前就在百度貼吧裡面釋出了相關帖子,他這樣說道:“CPU太貴了,買了顯示卡就買不起CPU,手工捏個出來。”

沒想到這話是真的,他真的捏了一個出來!

純手工製作CPU需要準備哪些?

看完了Up主的製作影片,CPU部分他全部都是用三極體二極體和電阻焊接的。這些物件在網上也是可以買的到的,通常來說CPU 的結構主要由暫存器、控制器、運算器和時鐘組成。而他選擇先從CPU的暫存器部分開始著手做。

Up主設計了一個6位的移位暫存器:

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

它的作用不僅能是用來儲存,還能在時鐘訊號的控制下,將資料進行逐次右移或左移。

簡單來說,當資料從一個方向進來以後,移位暫存器就像是一個指揮員,可以指揮它什麼時候該往哪個地方走。

第二部分Up主把程式計數器(PC)解決了,它的功能主要是記錄程式執行的位置。其次程式計數器涉及的功能還很多,以最基本的形式來說當位元組讀完指令後,計數要自動+1;而CPU重啟之後,計數便會清零。據Up主介紹這一部分是整個專案完成下來最耗時、最複雜的部分,整整花了三個月的時間才造成。最後上電測試也成功了。

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

純手工CPU製作過程

在Up主完成以上的準備工作之後,剩下的主要就是ROM和RAM兩部分;為了降低自己的工程量,Up主用上了比較容易操作的hm628512來做ROM和RAM:

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

ROM相當於電腦的硬碟,程式和圖片就儲存在這裡面。

而ROM就相當於電腦的記憶體,將這兩個部分完成以後,CPU的基礎模板就差不多了。

接下來就是指令譯碼模組,它的主要作用是將傳達到這裡的CPU指令進行解析執行。Up主製作的只有三條指令,可以跑個流水燈。

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

再把運算器(ALU)安裝上去,它的主要功能是加減乘除都可以透過它來計算。最後,焊個通用快取上去通電正常以後整個組裝部分工程就算完成了。

純手寫程式設計程式碼

你以為焊接工程完就結束了?更讓人驚訝的是後面。他竟然開始手寫程式設計程式碼,沒錯!是手寫程式碼,因為沒有適配任何程式語言,他採用的是二進位制程式設計,也就是“0”和“1”。

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

他用最原始的程式設計模式“扣”程式,使整個燈都挨個亮了。重啟幾次後,偶爾還是有點問題。

但很快就被大神發現-原來是有一個地方斷開了,他很快就解決了。

與此同時,因為還沒有I/O介面,所以測試使用的燈是臨時暫存器的燈。而且左移指令和跳轉指令都使用了同一組燈,所以流水燈的效果就不是非常明顯。

於是,大神又開始重新程式設計,使CPU跳轉到0X0F處執行。如此一來,在跳轉時燈就是滅的,給左移指令讓出了一條路。

再次重新扣程式,啟動,程式執行已無異常。一起來欣賞下夜間執行效果吧~

手工 CPU 真的那麼難嗎?看大神如何化繁為簡

看完大神的手工製作,你是不是會有疑問:手工製作的CPU能幹什麼呀?是不是沒有用處?還不如買個二手的,效果不知道比這個強多少倍。

其實不然,因為就像前面提到的那樣,沒誰會把它用於實際,但是自主製作這樣一個CPU,有助於理解數電模電的相關知識,還是對毅力和動手能力地一個巨大的考驗。