cpu的工作原理(CPU原理簡介)
2023-04-13 19:48:09
這是一個計算機最簡單的構成,其中最核心的部件一個是cpu,一個是內存,其他都可以稱為外設(USB、顯卡、磁碟控制器、網卡驅動)。
cpu內部有一個部件叫ALU(數據邏輯單元)是用來做計算的,寄存器用來存數據的,pc(程序計數器)用來存指令。
比如計算3 5,pc記錄了執行到第幾條指令了,數據3、5存儲在寄存器,由ALU來計算,加完了之後存儲到內存中或存儲到另外一個寄存器。
計算機最終的組成是由數字電路組成,
合上開關,電路聯通,燈泡就會亮。假設用2個信號表示一個字符,
2個信號只能表示4個字符,如果想表示更多的字符,就要增加信號的寬度,
3個信號的組合可以表示8個字。
多少個信號,就可以表示2的多少次方個字符,這個就是字符編碼。
中文日常交流常用的漢字有4000多個,康熙字典中記錄了所有的漢字47000個,多少個信號可以代表所有的漢字,2的16次方65536,用一個16位的字符集就可以代表中國所有的漢字。
字符編碼代表到底這個碼代表什麼字符,比如0011表示我,不同的字符編碼表示同樣的一個我字對應的編碼是不一樣的,比如在一個字符中用0200表示,在另外一種字符中用2929表示;而亂碼表示編解碼用的編碼方式不一樣,比如用GBK編碼,用UTF-8解碼,就會亂碼即用來解析的碼錶和encode編碼的碼錶不一樣,就會亂碼。
與門電路在這個電路中其中有一個斷開整個就是斷開的,
所有都聯通才是聯通狀態,如果用二進位的概念表示,
0表示斷開(不通),1表示聯通,所有為1才為1,對應著與門電路,
或門電路此電路有兩個以上輸入端,一個輸出端;只要有一個或幾個輸入端是 「1」,或門的輸出即為 「1」;而只有所有輸入端為 「0」時,輸出才為 「0」。
非門電路輸入端和輸出端的電平狀態總是相反的。
或非當任一輸入端(或多端)為高電平(邏輯「1」)時,輸出就是低電平(邏輯「0」);只有當所有輸入端都是低電平(邏輯「0」)時,輸出才是高電平(邏輯「1」)。
異或當兩個邏輯自變量取值相異時,函數為1;反之,當自變量取值相同時,函數為0;或者說:當兩個輸入信號相異時有輸出,而相同時沒有輸出。
在異或門和或非門基礎上人們發明了加法器,
這個加法器是對1位進行相加,計算8位的話,就是把加法器用新的電路串聯起來,
當有了加法之後,所謂的ALU就出現了,只要能計算加法,其他所有的運算都能夠計算了。
減法可以用二進位的補碼完成,乘法可以用加法計算,除法可以用減法計算,所以最終所有的東西都可以用加法計算。
這是麵包板可以用來模擬電路,往上面插二極體和三極體,插上去之後,各個燈角就互相連通了。
這個裡面的輸入作為那個裡面的輸出,這個裡面的輸出作為那個裡面的輸入,這樣就可以做一些簡單的電路實驗。
當有了算法邏輯單元之後,整個計算的構成還需要其他的電路,比如時鐘信號電路,一個是為了計時,再一個會不斷的刷新電路,每刷一步電路就往前進一步做一個計算,因為到最後的時候,你會發現所有的計算都需要一個控制電路,控制電路必須一會聯通,一會斷開,每通一次整個的計算才會往前進一步。
3 5最終怎麼計算得到8的?通一次電,計算才往前走一步,所以需要一個時鐘電路,時鐘電路需要電池信號,線圈一通電就會產生磁場,磁場把開關斷下來,斷下來之後就不通了,不通了之後,電池沒電了,開關閉合,電流又通了,這樣來回來去的。
後面就發明了鎖存器,總而言之用更深的電路實現一個鎖存器,鎖存器的作用是不管控制端輸入一個什麼,最終這裡的輸出會保存下來即只要最終的電是通的,就會保存下來,這個就是內存或寄存器。
把數字存在這裡,不可能說通一次電流,數字就變了,只要不對它進行寫的操作,只要不覆蓋了,它就一直存在這,這個在電路上的名稱叫鎖存器。
有了1位鎖存器,就會產生8位的,
1024位的,
所以最終就會發現可以完完全全用一個電路來記錄地址,用另外一個電路記錄數據,再通過一個控制信號把它寫到鎖存器當中。
結果整個內部程序就會變成,我有一個地址,地址上記錄了哪個數據,就可以完全的把它記錄下來。
當然最終還是要寫程序實現程序的自動化,這個過程只要不斷的用時鐘信號去修改它的控制端,它就會一步一步的往前走,先加第一位,再加第二位,再加第三位...
cup中的寄存器就是鎖存器,裡面記錄了計算需要的數據;程序計數器就是地址,計算到哪一行、哪個地址了,往前推進一下,地址就往下加1;ALU是用來計算的電路即加法器。
,