當前位置: 摩鑫平台 >> 知識庫 >> 硬件漫談 >> 正文
計算機的硬件組成及工作過程
發布時間:2024-05-08       編輯🛟:網絡中心       瀏覽次數:

1.計算機的硬件組成

1.1 主存儲器

主存儲器包括存儲體M🧔🏽‍♀️、各種邏輯部件以及控製電路等🧔🏽。為了能實現按地址訪問的方式,還必須配置兩個寄存器存儲器地址寄存器(MAR)和存儲器數據寄存器(MDR)。

  • 存儲器地址寄存器(MAR):存放欲訪問的存儲單元的地址🕺🏿,其位數對應存儲單元的個數👱🏻‍♀️。

  • 存儲器數據寄存器(MDR)👩🏽‍🦰🧝🏽:存放從存儲體某單元取出的代碼或者準備往某存儲單元存入的代碼🦶🏿👱,其位數與存儲字長相等🧉✬。

1.2 運算器

運算器最少包括3個寄存器和一個算術邏輯單元。

  • 累加器(ACC):存放操作數或運算結果。

  • 乘商寄存器(MQ)📍:在乘、除法運算時,用於存放操作數或運算結果💃🏼。

  • 通用的操作數寄存器(X):存放操作數。

  • 算術邏輯單元(ALU)👩‍❤️‍👨:通過內部復雜電路實現算術運算➝↩️、邏輯運算。

1.3 控製器

控製器是計算機的神經中樞,由它指揮各部件自動、協調地工作。

具體而言,它首先要命令存儲器讀出一條指令,稱為取指過程。接著,它要對這條指令進行分析,指出該指令要完成什麽樣的操作,並按尋址特征指明操作數的地址,稱為分析過程。最後根據操作數所在的地址以及指令的操作碼完成某種操作,稱為執行過程🤚🏿。

  • 控製單元(CU):分析指令,給出控製信息。

  • 指令寄存器(IR)🕺:存放當前執行的指令。

  • 程序計數器(PC)🐔:存放下一條指令的地址,有自動加1的功能,即可自動形成下一條指令的地址。

1.4 I/O

I/O子系統包括各種I/O設備及其相應的接口。每一種I/O設備都由I/O接口與主機聯系,它接收CU發出的各種控製命令,並完成相應的操作。

1.5 細化的計算機組成框圖

 2. 計算機的計算過程

接下來用我們熟悉的一段代碼來了解一下計算機的計算過程💁🏿‍♂️。

int a = 2, b = 3, c = 1, y = 0;
void main()
{
y = a * b + c;
}

編譯並裝入主存儲器可以得到:

 (1)取出數值a=2

  1. 初:(PC)=0,指向第一條指令的存儲地址

  2. (PC)->MAR,導致(MAR)=0

  3. M(MAR)->MDR🧣⛰,導致(MDR)=00001 0000000101

  4. (MDR)->IR,導致(IR)=00001 0000000101

  5. OP(IR)->CU,指令操作碼送到CU,CU分析後得知🏄‍♀️,這是取指指令

  6. Ad(IR)->MAR👩🏻‍💻🧝🏽,指令的地址碼送到MAR🤽,導致(MAR)=0000000101=5

  7. M(MAR)->MDR,導致(MDR)=0000000000000010=2

  8. (MDR)->ACC,導致(ACC)=0000000000000010=2

(2)進行a*b

  1. 上一條指令取指後PC自動+1,(PC)=1;執行後🧔🏼‍♀️,(ACC)=2

  2. (PC)->(MAR)👳🏽‍♂️,導致(MAR)=1

  3. M(MAR)->MDR,導致(MDR)=00100 0000000110

  4. (MDR)->IR,導致(IR)=00001 0000000110

  5. OP(IR)->CU🔼,指令操作碼送到CU,CU分析後得知✯,這是乘法指令

  6. Ad(IR)->MAR,指令的地址碼送到MAR,導致(MAR)=0000000110=6

  7. M(MAR)->MDR,導致(MDR)=0000000000000011=3

  8. (ACC)->X,導致(X)=2

  9. (MQ)*(X)->ACC,由ALU實現乘法運算,導致(ACC)=6,如果乘積太大🤦🏽‍♂️🫄,則需要MQ輔助存儲

(3)進行(a*b)+c

  1. 上一條指令取指後(PC)=2,執行後(ACC)=6

  2. (PC)->(MAR)👨🏽‍✈️,導致(MAR)=2

  3. M(MAR)->MDR,導致(MDR)=00011 0000000111

  4. (MDR)->IR🩳,導致(IR)=00011 0000000111

  5. OP(IR)->CU👩‍👦‍👦,指令操作碼送到CU,CU分析後得知,這是加法指令

  6. Ad(IR)->MAR,指令的地址碼送到MAR𓀃,導致(MAR)=0000000111=7

  7. M(MAR)->MDR,導致(MDR)=0000000000000001=1

  8. (ACC)+(X)->ACC,由ALU實現加法運算🐔,導致(ACC)=7

(4)存儲y=a*b+c

  1. 上一條指令取指後(PC)=3,執行後(ACC)=7

  2. PC)->(MAR),導致(MAR)=3

  3. M(MAR)->MDR✉️,導致(MDR)=00010 0000001000

  4. (MDR)->IR,導致(IR)=00010 0000001000

  5. OP(IR)->CU🍽,指令操作碼送到CU🧑🏼‍🌾🤷🏿‍♂️,CU分析後得知,這是存數指令🏋🏿‍♂️、

  6. Ad(IR)->MAR,指令的地址碼送到MAR,導致(MAR)=0000001000=8

  7. (ACC)->MDR,導致(MDR)=7

  8. (MDR)->地址為8的存儲單元,導致y=7

 註意:

  1. M👇🏽:主存中的某存儲單元

  2. ACC👩🏿‍🔬、MQ、X、MAR、MDR......⬅️:相應的存儲器

  3. M(MAR):去存儲單元中的數據

  4. (ACC)......🤴🏼:取相應存儲器中的數據

  5. OP(IR)👊🏽:取操作碼

  6. Ad(IR):取地址碼


來源🏬:https://blog.csdn.net/weixin_49370884/article/details/127077480

作者:Kk.巴紮嘿

關閉本頁

摩鑫平台教育技術與網絡中心版權所有

©GDAFC Education Technology & Network Center, All Rights Reserved.

摩鑫平台专业提供🙎‍♂️:摩鑫平台🥂、摩鑫摩鑫娱乐等服务,提供最新官网平台、地址、注册、登陆、登录、入口、全站、网站、网页、网址、娱乐、手机版、app、下载、欧洲杯、欧冠、nba、世界杯、英超等,界面美观优质完美,安全稳定,服务一流,摩鑫平台欢迎您。 摩鑫平台官網xml地圖