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

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

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

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

評(píng)論