要清楚這個問題,就必須先了解什麼是計算機指令。
如上圖,每條指令都包含操作碼和操作數兩部分。
以 MOV AX , 3050H 指令為例:
指令操作碼和操作數
這條指令中,MOV是操作碼,對應十六進制數1000H,操作數是3050H。
這條指令的目的是把數字3050H存放到寄存器AX中。
AX是一個十六位寄存器。下圖是一個一位寄存器電路,也就是說,AX由類似的十六個這樣的電路構成。
一位寄存器電路
指令中的3050H是一個十六位的二進制數字,下圖電路用來保存一位二進制數字,同樣,3050H這個數字需要十六個這樣的電路構成。
一位二進制數字保存電路
而MOV這個指令本身對應的操作碼1000H需要一個指令譯碼器來完成,下圖是示意圖。
指令執行示意圖
假設操作碼1000H由譯碼器的輸入端A,B,C,D,......輸入,譯碼器的輸出端Y1,Y2,Y3,........右邊連接着保存數字3050H的電路,左邊連接着AX這個寄存器電路,那麼,當把操作碼1000H輸入譯碼器輸入端以後,3050H這個數字就會被存入AX寄存器中。不同的操作碼對應于不同的指令,要實現這個目的,整個計算機指令執行和控制電路就必須有一個整體上的設計思想。
鐵路控制台
上面指令執行的原理和我們常常看到的各種控制台相似。例如火車站控制台,按下某些按鈕之後,就可以實現某些鐵軌的轉向、并軌功能。
鐵軌
從上述叙述中可以看出,指令是通過對于已經設計好的電路進行不同的操作實現的,所以指令集本身無法存儲,硬要說存儲的話,指令集就存儲在已經設計好的計算機CPU裡面的控制器的電路中。
我們常數的指令集架構,指的是計算機中央處理器機器碼所使用的指令的集合以及其背後的寄存器體系、總線設計等邏輯框架,其實就是這個指令集對應的總體電路設計思想。
我們知道,華為海思所設計的芯片目前來說都是基于arm的公版架構而來,其實就是指海思所設計的芯片采用了ARM芯片的整體電路設計思想。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!