鳥哥的Linux私房菜 零 計算器概論

2021-09-25 22:23:37 字數 3506 閱讀 7406

首先我們需要知道什麼叫計算器

接受使用者輸入指令與資料,經由**處理器的數學與邏輯單元運算處理後, 以產生或儲存成有用的資訊。

計算機硬體的5大單元

計算機是由幾個單元所組成的,包括輸入單元、 輸出單元、cpu 內部的控制單元、算數邏輯單元與主儲存器五大部分。

整部主機的重點在於**處理器 (central processing unit, cpu),cpu 為乙個具有特定功能的晶元,裡頭含有微指令集,如果你想要讓主機進行什麼特異的功能,就得要參考這顆 cpu 是否有相關內建的微指令集才可以。 由於 cpu 的工作主要在於管理與運算,因此在 cpu 內又可分為兩個主要的單元,分別是: 算數邏輯單元與控制單元。 其中算數邏輯單元主要負責程式運算與邏輯判斷,控制單元則主要在協調各周邊元件與各單元間的工作。

cpu讀取的資料都是從主儲存器中來的

看下圖的計算機五大單元結構圖,就非常好理解:

輸入單元也就是我們常見的外部裝置,比如滑鼠鍵盤等等,輸入的訊號都會進入主儲存區,而我們硬體中的資料要想進入cpu運算,也要先進入主儲存區,可見這一部分是多麼的重要。

前面說過cpu會包含一些微指令集,所以按照微指令是否複雜分為了兩種cpu架構:

微指令集較為精簡,每個指令的執行時間都很短,完成的動作也很單純,指令的執行效能較佳; 但是若要做複雜的事情,就要由多個指令來完成。常見的 risc 微指令集 cpu 主要例如甲骨文 (oracle) 公司的 sparc 系列、 ibm 公司的 power architecture (包括 powerpc) 系列、與安謀公司 (arm holdings) 的 arm cpu 系列等。,目前世界上使用範圍最廣的 cpu 可能就是 arm 這種架構的呢

與 risc 不同的,cisc 在微指令集的每個小指令可以執行一些較低階的硬體操作,指令數目多而且複雜, 每條指令的長度並不相同。因為指令執行較為複雜所以每條指令花費的時間較長, 但每條個別指令可以處理的工作較為豐富。常見的 cisc 微指令集 cpu 主要有 amd、intel、via 等的 x86 架構的 cpu。由於 amd、intel、via 所開發出來的 x86 架構 cpu 被大量使用於個人計算機(personal computer)用途上面, 因此,個人計算機常被稱為 x86 架構的計算機!那為何稱為 x86 架構(注 8)呢? 這是因為最早的那顆 intel 發展出來的 cpu 代號稱為 8086,後來依此架構又開發出 80286, 80386…, 因此這種架構的 cpu 就被稱為 x86 架構了。在 2003 年以前由 intel 所開發的 x86 架構 cpu 由 8 位公升級到 16、32 位,後來 amd 依此架構修改新一代的 cpu 為 64 位, 為了區別兩者的差異,因此 64 位的個人計算機 cpu 又被統稱為 x86_64 的架構喔!一般 32 位的 cpu 所能讀寫的最大資料量,大概就是 4gb 左右。

我們形象的按照人的機制來比喻一下:

1 byte = 8 bit

1 k = 1024 byte

1 m = 1024 k

hz 其實就是秒分之一,cpu 的指令週期常使用 mhz 或者是 ghz 之類的單位,網路使用的是 bit 為單位,因此網路常使用的單位為 mbps 是 mbits per second,亦即是每秒多少 mbit

tips:

什麼是頻率呢?

簡單的說, 頻率就是 cpu 每秒鐘可以進行的工作次數。 所以頻率越高表示這顆 cpu 單位時間內可以作更多的事情。舉例來說,intel 的 i7-4790 cpu 頻率為 3.6ghz, 表示這顆 cpu 在一秒內可以進行 3.6x10 9 次工作,每次工作都可以進行少數的指令運作之意。

什麼是外頻?什麼是倍頻?

所謂的外頻指的是 cpu 與外部元件進行資料傳輸時的速度,倍

頻則是 cpu 內部用來加速工作效能的乙個倍數, 兩者相乘才是 cpu 的頻率速度

什麼是字組大小(word size)

cpu 每次能夠處理的資料量稱為字組大小(word size), 字組大小依據 cpu 的設計而有 32 位與 64 位。我們現在所稱的計算機是 32 或 64 位主要是依據這個 cpu 解析的字組大小而來的!早期的 32 位 cpu 中,因為 cpu 每次能夠解析的資料量有限, 因此由主儲存器傳來的資料量就有所限制了。這也導致 32 位的 cpu 最多只能支援最大到 4gbytes 的記憶體。

什麼是超執行緒(hyper-threading, ht)

在每乙個 cpu內部將重要的快取器 (register) 分成兩群, 而讓程式分別使用這兩群快取器。也就是說,可以有兩個程式『同時競爭 cpu 的運算單元』,而非透過作業系統的多工切換! 這一過程就會讓 cpu 好像『同時有兩個核心』的模樣!因此,雖然大部分 i7 等級的 cpu 其實只有四個實體核心,但透過ht 的機制, 則作業系統可以抓到八個核心!並且讓每個核心邏輯上分離,就可以同時運作八個程式了。

主儲存器的作用?

cpu 所使用的資料都是來自於主儲存器(main memory),不論是軟體程式還是資料,都必須

要讀入主儲存器後 cpu 才能利用。 個人計算機的主儲存器主要元件為動態隨機訪問記憶體(dynamicrandom access memory, dram), 隨機訪問記憶體只有在通電時才能記錄與使用,斷電後資料就消失了。因此我們也稱這種 ram 為揮發性記憶體。

所以主儲存器的容量是非常重要的,以伺服器來說,主儲存器的容量有時比 cpu 的速度還要來的重要的。

什麼是第二層快取?

cpu 內的第二層快取記憶體。 我們現在知道 cpu 的資料都是由主儲存器提供,但 cpu 到主儲存器之間還是得要透過記憶體控制器啊! 如果某些很常用的程式或資料可以放置到 cpu 內部的話,那麼 cpu資料的讀取就不需要跑到主儲存器重新讀取了! 這對於效能來說不就可以大大的提公升了?這就是第二層快取的設計概念。第二層快取與主儲存器及 cpu 的關係如下圖所示:

簡而言之,cpu的儲存是非常珍貴的,我們不能把應用資料常駐在cpu中,但是每次透過控制器取資料到cpu中就會出現時間全耗費在這個過程,相比cpu的速度,這個過程更為耗時,我們使用第二層快取的設計,設計二層快取記憶體區,就可以平衡這種速度不匹配的問題。

那為什麼不全部做成快取記憶體呢?

因為第二層快取(l2 cache)整合到 cpu 內部,因此這個 l2 記憶體的速度必須要 cpu 頻率相同。 使用dram 是無法達到這個頻率速度的,此時就需要靜態隨機訪問記憶體(static random access memory,sram)的幫忙了。 sram 在設計上使用的電晶體數量較多,**較高,且不易做成大容量,不過由於其速度快, 因此整合到 cpu 內成為快取記憶體以加快資料的訪問是個不錯的方式喔!新一代的 cpu都有內建容量不等的 l2 快取在 cpu 內部, 以加快 cpu 的運作效能。

其實原因還是因為貴,如果對於對速度要求非常高的應用,全部使用快取記憶體實現,通過提高成本的方式,還是值得的。

鳥哥Linux私房菜

linux相關知識 鳥哥linux私房菜 真是人間美味啊!linux 基礎篇 引言 這部份包括了早期的red hat 6.x以及 鳥哥寫的 一 二版的基礎篇各章節文章彙整!第一部份 linux的規劃與安裝 第二部份 linux檔案 目錄與磁碟格式 第三部份 學習shell與shell scripts...

鳥哥的linux私房菜

各個元件或者裝置在linux下面都是乙個檔案 硬體廠商對linux所推出的驅動程式較慢,選購硬體時候,應該要選擇已經安裝過linux測試的硬體較好 磁碟陣列 raid 可以完成速度效能 備份等任務,通常作為檔案伺服器,訪問頻率較高。網絡卡要求對於讀取非常頻繁的 選用intel 3com 乙個最簡單的...

linux鳥哥的私房菜

這書還是感覺非常棒,真的是授之以漁而不是授之以魚。我覺得只需要掌握乙個命令就可以了man k keyword 比如我想查詢和防火牆相關的命令,那麼 man k firewall 結果是ufw 然後我再man一下ufw,看一下ufw最下面的see also 就可以找到iptables了。比如我想查詢一...