CPU怎么識別我們寫的代碼?
為了深入理解這個問題,大神耗時整整半年,“逐點”焊接,自制了一個CPU,杰作如下圖所示。
據大神介紹,他主要采用了如下3個原材料:
用一堆開關做成一個CPU?
下文介紹下大神自制CPU的過程。
通常來講,CPU的結構可以大致分為運算邏輯部件、寄存器部件和控制部件等。
而他最先“下手”的,就是CPU的寄存器部分。
大神設計了一個6位的移位寄存器,樣子如下圖,是不是跟想象中的不一樣?
它的作用不僅能是用來存儲,還能在時鐘信號的控制下,將數據進行進行逐次右移或左移。
程序計數器
大神處理的第二個結構,是程序計數器(PC)。
它作用簡單來說,就是記錄程序運行的位置。而這也是整個項目下來最耗時、最復雜的部分,花了整整3個月之久。
程序計數器涉及的功能那可就多了。像最基本的就是挨個字節讀完指令后,計數要自動+1;而CPU重啟之后,計數便會清零。
而且在不同的條件之下,還要能實現直接跳轉、調用函數、函數返回等功能。
功夫不負有心人,在經歷3個月令人頭禿的時光之后,最復雜的模塊還是被他搞定了。上電測試也沒有問題。
硬盤(ROM)和內存(RAM)是CPU外,比較龐大兩個部分。大神用上了比較容易操作的HM628512芯片來做ROM和RAM,如下圖分別是HM芯片(上)、RAM(中)和ROM(下):
將ROM和RAM組裝上去,現在CPU的基礎模塊已經基本完成了。
指令譯碼器
接下來就是打造指令譯碼器。
它主要是用于把傳到這里的CPU指令,進行解析運行:
再把做加減乘除的運算器(ALU)加上去:
最后還得再焊一個通用緩存上去,這個全部由三極管、二極管和電阻焊接而成的CPU就完成了!看到這密密麻麻的元件,工程量的浩大就不用多說。
二進制編碼
因為這個CPU的指令集和架構都是自主研發的,所以沒有適配的編程語言。
那怎么能讓它跑起來呢?
純手寫最原始代碼——二進制編程!
之后竟然就開啟了上古編程模式——“扣”程序:
一切準備工作就緒。接下來,便是見證奇跡的時刻。
上電測試
最開始,程序的運行并不是一帆風順。即便大神重啟了幾次,跑馬燈的效果偶爾還是出現問題。于是,大神重新編程,一切修改完畢,重新“扣”程序,啟動!這一次,就沒有任何的異常了。
審核編輯:湯梓紅。
-
三極管
+關注
關注
144文章
3648瀏覽量
123607 -
二極管
+關注
關注
148文章
9974瀏覽量
169694 -
電阻
+關注
關注
87文章
5592瀏覽量
173928 -
cpu
+關注
關注
68文章
11011瀏覽量
215213
原文標題:手工自制CPU
文章出處:【微信號:單片機與嵌入式,微信公眾號:單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
“CPU自制”發燒友征集令
手工焊接基礎知識
果汁LED燈自制過程
自制手工彎管器資料下載

B站焊武帝爆火出圈:純手工拼晶體管自制CPU,耗時半年,可跑程序

B 站焊武帝爆火出圈:純手工拼晶體管自制 CPU,耗時半年,可跑程序

小伙手工制作了一款32位CPU

評論