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的指令集和架構都是自主研發的,所以沒有適配的編程語言。
那怎么能讓它跑起來呢?
純手寫最原始代碼——二進制編程!
之后竟然就開啟了上古編程模式——“扣”程序:
一切準備工作就緒。接下來,便是見證奇跡的時刻。
上電測試
最開始,程序的運行并不是一帆風順。即便大神重啟了幾次,跑馬燈的效果偶爾還是出現問題。于是,大神重新編程,一切修改完畢,重新“扣”程序,啟動!這一次,就沒有任何的異常了。
審核編輯:湯梓紅。
-
三極管
+關注
關注
141文章
3498瀏覽量
119121 -
二極管
+關注
關注
144文章
9017瀏覽量
161378 -
電阻
+關注
關注
85文章
5042瀏覽量
169659 -
cpu
+關注
關注
68文章
10449瀏覽量
206577
原文標題:手工自制CPU
文章出處:【微信號:單片機與嵌入式,微信公眾號:單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論