本文已經收錄至我的GitHub,歡迎大家踴躍star 和 issues。
繼上一篇外甥問我計算機問題之後,外甥女就顯得格外勤奮了,竟然也對計算機感興趣了
生活中有一類人特別讓人害怕,就是突然 對某件事非常感興趣
也不知道是真的感興趣了,還是覺得我對他弟偏心了,哈哈
不管咋說,這姐弟倆是非常優秀的,碾壓我姐弟倆一大截,是真的後浪
上次發文章之後,外甥女晚上發訊息問我 計算機是如何組成的?
本篇文章就來嘮嘮這個問題
因為外甥女是醫學類專業,對計算機瞭解猶如我對女孩子的瞭解一般生疏
所以先說點簡單的問題和一些專業名詞介紹
什麼是計算機
說一個小故事,看下有沒有相同經歷
接觸計算機是因為計算器的經歷
就這個東西,應該沒人沒用過吧,讓我接觸了計算機
初中那會已經有函式概念了、也在解二元一次方程了,中考是允許用計算器的
中考之前老師會讓我們練習計算器的使用
那時候買不起計算器,日常練習的時候都是借別人的計算器使用
可那時候我偏偏分不清計算器和計算機,總有那麼幾次把計算器說成是計算機
此時那個女同學就用一個讓我非常不能理解的眼神看著我,然後冷冷的回答道 沒有
我在想這女同學咋回事啊,明明在桌子上卻睜眼說瞎話,難道她是真的視力障礙了
年紀親親攤上這事,真是替他未來的男朋友了擔憂,細思極恐啊,我趕緊換一個女同學詢問
當然這個計算器,還有另外一個大妙處,在我們的成長歲月中 他是一個資訊載體
初中時載著給女孩的 小紙條、表白信 ;老師不讓上課說話,此時計算器變成了 電話線,承載著老師不能懂的祕密
高中那會開始用點高階功能了,考試的時候 他會載著好學生的答案 駛向每一個像我一樣優秀的少年
還有一個高階功能就是表白,土豪學生表白都是送賀卡、送奶茶,而我只能讓這計算器 物盡所能
此時他會載著 我的一時才華和綿綿愛意,駛向那個從來不敢正視的女神
女神收到計算器的一瞬間嘴角上揚,而我的心 也隨之欣喜若狂,世界此時都在微笑
言歸正傳哈,女孩到是沒有的事,不過從此我對計算機有了概念了,產生興趣了
計算機,俗稱電腦 ,是一種高速計算的電子計算機器,可以進行數值計算、邏輯計算還具有儲存記憶功能
看來我冒然的把計算器稱為計算機也不算太離譜,起碼都具有計算功能
一些名詞解釋
CPU:中央處理器是計算機系統的運算和控制核心模組,分為運算器和控制器
下面這圖是CPU的工作原理
取指令:即將一條指令從主儲存器中取到指令暫存器的過程 指令譯碼階段:取出指令後,指令譯碼器按照預定的指令格式,對取回的指令進行拆分和解釋,識別區分出不同的指令類別以及各種獲取運算元的方法 執行指令階段:執行具體指令的功能,例如sum=a+b
儲存器:許多儲存單元的集合,按單元號順序排列
儲存器分為主存(記憶體)、輔存(磁碟)和快取
主存用於存放活動的程式和資料,其速度高、容量較小、每位價位高
外存主要用於存放當前不活躍的程式和資料,其速度慢、容量大、每位價位低
快取主要在兩個不同工作速度的部件起緩衝作用
計數器:用來指示當前指令在主存中的位置,當 一條指令被取出後,PC中的數值將根據指令字長度自動遞增
記憶體地址:記憶體地址是一種用於軟體及硬體等不同層級中的資料概念,用來訪問電腦主存中的資料,也就是上面說的儲存單元的單元號
程式:存放在磁碟檔案中的可執行檔案或者原始碼
計算機是如何組成的
說完了什麼是計算機和一些基本概念,再來說說計算機是如何組成的
為了瞭解計算機的組成,我是拆過筆記本的,拆完就廢了,當然拆的是一個被我淘汰的本
在拆本的那個時候,只有光碟機、風扇我能命名,其他的都統稱為晶片和積體電路,無法對他們準確命名
要是以一名工程師的身份去拆這個電腦,那這個被拆的電腦透出的價值可能會更大一些
而在那時候,他只不過是一個被我拆過的眾多機中滿足我好奇心的其中一個罷了
在拆完這個本之後,很長一段時間我認為計算機就是一堆積體電路和晶片組成的
但是在大多數人士看來,一臺計算機由主機、顯示器、鍵盤、滑鼠和音響等部件所組成
這種說法當然也沒錯,只是站在不同的角度來說
今天、站在一名專業的工程師(程式設計師,oh no 打工人)的角度說說計算機是如何組成的
首先計算機是由計算機硬體和計算機軟體兩部分組成
硬體部分包括中央處理器、儲存器、輸入輸出裝置
軟體部門包括作業系統、驅動軟體、編譯器軟體、應用軟體等
上圖就是計算機的主要組成,這種典型的組成結構就是馮·諾依曼體系結構
當然計算機除了馮·諾依曼體系結構還有一種較為常用的叫做ARM結構(哈佛結構)
既然說到了馮·諾依曼 體系和ARM體系,龍叔就帶大家聊聊這塊內容
先說馮·諾依曼體系,馮·諾依曼是一位數學家,但是被稱為 現代計算機之父,聽著頭銜就夠一個大寫的牛掰了
二戰期間,美軍試圖開發全球首臺計算機ENIAC,在當時已經有了最先進的電子技術,但是缺乏理論上的指導
美軍沒辦法開發出來,這時,馮·諾依曼出現了
馮·諾依曼的出現,瞬間讓計算機發展的步伐走上了一條快速道
定義了計算機的組成結構,計算機應包括運算器、儲存器、控制器、輸入和輸出裝置五大基本部件。 計算機內部應該採用二進位制來表示指令和資料。 將編好的程式儲存在記憶體中,程式儲存思想。
這幾點構成了 馮·諾依曼 體系,該體系計算機的特點是 程式儲存,共享資料,順序執行
馮·諾依曼 體系結構的工作示意圖
馮·諾依曼除了在計算機領域有傑出貢獻,在數學領域、量子理論、原子彈等等領域都有傑出貢獻
介紹了 馮·諾依曼 結構再來說說哈佛結構
馮·諾依曼結構是由五部分組成的,哈佛結構的計算機分為三大部件:
(1)CPU;(2)程式儲存器;(3)資料儲存器。
哈佛結構把程式和資料進行了分離,分別獨立為程式儲存器和資料儲存器,程式儲存器和資料儲存器採用不同的匯流排
兩個儲存器採用不同的匯流排意味著可以同時讀取兩個儲存器的內容,這點大大提高了程式執行時的訪存效率
馮·諾依曼和哈佛結構對比
首先 馮·諾依曼 結構的特點是:
單處理機結構,機器以運算器為核心 採用程式儲存的思想 指令和資料都可以參與運算 資料以二進位制表示 軟體和硬體完全分離 指令由操作碼和運算元組成 順序執行
馮·諾依曼結構的缺點:
指令和資料儲存在同一個儲存器中,形成系統對儲存器的過分依賴,計算的效率受到儲存裝置的影響
指令在儲存器中按其執行順序存放,由指令計數器PC指明要執行的指令所在的單元地址。 然後取出指令執行操作任務。所以指令的執行是序列,影響了系統執行的速度。
儲存器是按地址訪問的線性編址,按順序排列的地址訪問,利於儲存和執行的機器語言指令,適用於作數值計算。但是高階語言表示的儲存器則是一組有名字的變數,按名字呼叫變數,不按地址訪問。機器語言同高階語言在語義上存在很大的間隔, 稱之為馮·諾依曼語 義間隔。
馮·諾依曼體系結構計算機是為算術和邏輯運算而誕生的,目前在數值處理方面已經到達較高的速度和精度,而非數值處理應用領域發展緩慢,需要在體系結構方面有重大的突破。
哈佛結構的優點:
使用兩個獨立的儲存器模組,分別儲存指令和資料,每個儲存模組都不允許指令和資料並存 使用獨立的兩條匯流排,分別作為CPU與每個儲存器之間的專用通訊路徑,而這兩條匯流排之間毫無關聯
哈佛結構的缺點:
獨立兩個儲存器導致結構複雜,一個電腦得裝兩個記憶體條和兩個磁碟
各自都有優缺點,現在主流電腦都使用 馮·諾依曼結構 ,嵌入式裝置基本採用的ARM體系結構
以上就是本期的全部內容了,感謝各位閱讀,求點贊、求在看、求分享,一鍵三連就是對我創作的最大鼓勵
我是龍叔,一個半吊子架構師,我們下期見