CPU對程式設計師來說,到底是什麼?
正如大多數人所知道的那樣,CPU的名字叫做中央處理器,它是計算機的大腦,可是對CPU的瞭解僅限於此的話,對我們來說其實是毫無用處,今天我們就深入的瞭解這個由數萬個電晶體構成的小東西,是如何成為計算機的大腦的。
當你在編程式碼的時候,你真的只是編程式碼嗎 ?
作為一個程式設計師或者程式愛好者,我們最基本的工作就是程式設計,可是你真的知道程式到底是什麼嗎?其實,程式無非就是指令和資料,是指示計算機的每一步動作的一組指令。我們編的程式,目的就是想讓電腦按照我們的需求,替我們完成一些我們想要的讓他完成的事情,可是僅僅單憑這個程式,就能夠讓CPU像人類的大腦那樣進行思考嗎?顯然這是不可能的,CPU還需要編譯器將我們編的程式轉化成機器語言(計算機可以識別的語言)。具體流程如下圖:
瞭解到程式在計算機裡是怎麼處理到CPU,接下來,我們就就該聊一下cpu要乾的事兒的,為什麼CPU可以被叫做計算機的大腦而其他的電腦元件卻不可以。
組成CPU的四大金剛
CPU作為一個計算機的中樞,當然需要鎮的住場子的看家本領,CPU裡的住著四位大仙,每個大仙都有自己獨特的本領,他們通力合作,完成著人類世界傳達過來的各種難題接下來,我們分別介紹一下:
暫存器
暫存器的主要功能就是暫存指令,資料等處理物件,就像一個藏經閣一樣,存放這個我們需要參悟的道理。
控制器
控制器可以把記憶體上的指令,資料讀入暫存器,並根據指令的執行結果來控制整個計算機
運算器
運算器可以運算從記憶體讀入暫存器的的資料
時鐘
時鐘可以發出CPU計時的訊號
明白了這四位大仙的工作內容,我們就需要看一下他們四個是怎樣工作的呢?
程式啟動後,根據時鐘發過來的訊號,控制器就會從記憶體中讀取指令和資料,通過對這些指令的解釋執行,運算器就會對這些資料進行運算,然後再由控制器對運算結果進行控制。
作為一個程式設計師,我們必須要更深刻的瞭解暫存器(高階語言編譯後的機器語言,是通過CPU內部的暫存器來處理的,例如高階語言編寫的a=a+1,編譯成機器語言是利用暫存器進行運算和儲存),對於我們來說,CPU無非就是各種暫存器的集合。其中程式計數器、 累加暫存器、標誌暫存器、指令暫存器和棧暫存器都只有一個,其他的暫存器一般有多個,每個暫存器各司其職完成著我們的需求。
當我們去商城買電腦時,我們總會考慮電腦的的記憶體,從而考慮麼到底是什麼?清除。
其實,物理上有稜有角的記憶體,在程式上可以很流暢的按照邏輯使用的。在物理上,記憶體是個電子元件,上面有很多引腳,通過引腳可以進行數字訊號,電源,控制訊號, 拋開物理面,在邏輯,我們可以記憶體想象成座高樓,每層都存貯著同的資料,然對於程式來說,還存這資料型別不同的資料
型所佔的樓是不一樣的就假設儲存23這個數一樣,用char,short,long三種資料型儲所佔樓層是不一的,char型別只有一節,short只有兩個位元組,所以佔兩層,而long有四個位元組,存123需要佔用層樓,所以程式中資料型別的不同,導致在物理上所佔的記憶體也是不一樣的。所以使用記憶體是我們作為程式設計師必不可少的技能,使用的手段有陣列,連結串列,二叉樹等資料結構,今後我會針對使用記憶體所需要的資料結構技能寫一篇文章。