知識點1:計算機應用分類
計算機應用方向主要包括三類:
1.個人計算機。用於個人使用的計算機,通常包含圖形顯示器、鍵盤和滑鼠等;
2.伺服器。過去被稱為大型機的現代形式,用於為多用戶運行大型程序的計算機,通常由多個用戶並行使用,並且一般通過網路訪問。其中高端伺服器稱為超級計算機,擁有最高性能和最高成本;
3.嵌入式計算機。嵌入到其他設備中的計算機,一般運行預定義的一個或者一組應用程序。面向單一應用需求的嵌入式應用通常對成本或功耗有嚴格限制。
而在2000年後的「後PC時代」,個人移動設備代替了傳統PC,雲計算代替了傳統伺服器:
個人移動設備(PMD)。連接到網路上的小型無線設備,由電池供電,通過下載App的方式安裝軟體,如智能手機和平板電腦;
雲計算。依賴於稱為倉儲規模計算機(WSC)的巨型數據中心,是在網路上提供服務的大伺服器集群,一些運營商根據應用需求出租不同數量的伺服器。
知識點2:計算機設計的重要思想
1.面向摩爾定律的設計:摩爾定律指出單晶元上的集成度(集成電路晶元中晶體管數量)每18-24個月翻一番。設計者必須預測其設計完成時的工藝水平。
2.使用抽象簡化設計:使用抽象來表示不同的設計層次,在高層次中看不到低層次的細節,只能看到一個簡化的模型。
3.加速大概率事件:加速大概率事件遠比優化小概率事件更能提高性能。
4.通過並行提高性能。
5.通過流水線提高性能。
6.通過預測提高性能:如果從誤預測恢復執行代價不高且預測的準確率相對較高,則可通過猜測的方式提前開始某些操作。
7.存儲器層次:通過存儲器層次來滿足速度快容量大價格低這些互相矛盾的需求。如同一個堆疊的三角形,越靠近頂端速度越快價格越高,底層寬度越大容量越大。
8.通過冗餘提高可靠性。
知識點3:計算機語言層次
高級編程語言:由一些單詞和代數符號組成,可以由編譯器轉換為彙編語言。不涉及硬體,具有通用性,但目標代碼冗長,不能對某些硬體進行操作。
彙編語言:又稱低級語言,是一種符號語言,以助記符形式表示的機器指令。
機器語言:以二進位元形式表示的機器指令,是一種指令集的體系。CPU可直接解讀,執行速度快效率高。
知識點4:馮·諾依曼體系結構
基本思想包括:計算機硬體系統由五大部分組成;採用二進位編碼表示數據;將程序和數據統一表示;計算機具有順序指令的處理能力等。
五大部分是指:運算器(ALU)、控制器、存儲器、輸入設備和輸出設備。其中運算器和控制器合稱為中央處理單元(也叫處理器,CPU)。各個組成部分通過匯流排連接起來,匯流排由數據匯流排DB、地址匯流排AB、控制匯流排CB組成。
知識點5:數的機器表示與補碼
計算機中的數採用二進位,數碼0和1由二值器件的兩個穩態表示,稱為bit(記為b),8個相鄰的二進位位構成一個位元組Byte(記為B)。
數的機器表示稱為機器數,數的數學表示稱為真值。
有符號數最高位用來表示符號(0為正1為負),其餘位表示絕對值,這種表示方法稱為原碼,原碼常用來描述真值。
而有符號數的機器表示是補碼,0和正數的補碼就是本身,負數的補碼是其絕對值求反加1。補碼的減法運算可以變為加法運算,於是CPU就可用加法器直接實現減法。例如:
0000 0000 0000 0000 0000 0000 0000 0000(2)=0(10)
0000 0000 0000 0000 0000 0000 0000 0001(2)=1(10)
0000 0000 0000 0000 0000 0000 0000 0010(2)=2(10)
……
0111 1111 1111 1111 1111 1111 1111 1110(2)=2147483646(10)
0111 1111 1111 1111 1111 1111 1111 1111(2)=2147483647(10)
1000 0000 0000 0000 0000 0000 0000 0000(2)=-2147483648(10)
1000 0000 0000 0000 0000 0000 0000 0001(2)=-2147483647(10)
……
1111 1111 1111 1111 1111 1111 1111 1110(2)=-2(10)
1111 1111 1111 1111 1111 1111 1111 1111(2)=-1(10)
任意一個帶符號的二進位數都可表示為科學記數法N=(-1)^S*2^E*M,其中S是符號,E是指數(階碼),M是尾數。浮點數由階碼和尾數及符號位組成。
知識點6:進位轉換
十進位轉換為二進位或十六進位:用十進位數不斷除以2或16,記下每次相除時的餘數,直到商0為止,將得到的餘數倒序排列即可。即「除2/16取余,逆序排列」。
1位十六進位數碼正好與4位二進位數碼一一對應。
知識點7:經典CPU性能公式
CPU時間=指令數 * 每條指令的平均時鐘周期數(CPI) * 時鐘周期時間
或 CPU時間=指令數 * 每條指令的平均時鐘周期數(CPI) / 時鐘頻率
執行時間是唯一有效且不可推翻的計算機性能度量方法。
知識點8:易失性/非易失性存儲器
存儲器可分為易失性存儲器與非易失性存儲器,前者僅在加電時保存數據,後者掉電仍可保持。易失性存儲器的主要代表是RAM(隨機存取存儲器);非易失性存儲器包括ROM(只讀存儲器)、Flash memory(快閃記憶體)、磁碟等。常將易失性存儲器稱為主存儲器,非易失性存儲器稱為二級存儲器。
RAM可進一步分為SRAM(靜態隨機訪問存儲器)和DRAM(動態隨機訪問存儲器)。SRAM不需要刷新電路即能保存它內部存儲的數據,而DRAM每隔一段時間要刷新充電一次,否則內部的數據即會消失,因此SRAM具有較高的性能功耗較小,但SRAM的缺點是集成度較低。通常內存由多片DRAM晶元組成,緩存採用SRAM技術。
個人移動設備中一般採用快閃記憶體,伺服器中則採用磁碟。快閃記憶體的單位價格和速度均低於DRAM高於磁碟,但快閃記憶體具有寫10萬-100萬次後老化或損壞的弱點。
知識點9:硬體概念
液晶顯示(LCD):用液體聚合物薄層的帶電或不帶電來傳輸或阻止光線傳輸。
電容感應:許多平板電腦採用該技術實現觸摸屏。在絕緣玻璃上覆蓋一層透明的導體,人是導體觸摸會改變屏幕的電場,進而導致電容變化。
集成電路:也叫晶元,一種將幾十個至幾百萬個晶體管連接起來的設備。
晶體管:一種由電信號控制的簡單開關,超大規模集成電路是由數十萬到數百萬晶體管組成的電路。
知識點10:指令、指令集、寄存器、字
CPU可以完成的一個基本操作稱為指令。指令的形式是二進位代碼,通常包含操作碼和操作數兩部分。操作碼指明所要完成的操作類型,操作數則指明操作的數據對象,可以是數據本身也可以是數據所在的存儲單元地址。
一台計算機的全部指令稱為該計算機的指令集,常見的指令集有X86、ARM、MIPS。指令系統的發展從CISC(複雜指令系統計算機)發展到RISC(精簡指令系統計算機),前者多達幾百條,不易維護研製周期長,且採用了大量使用頻率低的複雜指令造成硬體資源浪費。X86是CISC的代表,ARM與MIPS是RISC的代表,ARM指令集廣泛使用在嵌入式系統設計,X86指令集則是目前世界上最流行的台式機體系結構。
寄存器是CPU內部的臨時存儲單元,能減少CPU訪問內存的次數和降低指令控制的複雜度。寄存器由硬體直接構建且數量有限,是計算機硬體涉及的基本元素。
字是計算機內部進行數據處理和數據傳遞的基本單位,其所包含的二進位位數稱為字長,字長是計算機處理精度和運算能力的反映。例如MIPS體系結構中存儲器大小為32位,因此字長為32位。
知識點11:大小端編址
存儲器通常按位元組編址,以32位字長為例,一個字的地址必和它所包括的4位元組中某個地址相匹配。大端編址表示使用最左邊或「大端」位元組的地址作為字地址,小端編址則表示使用最右或「小端」作為字地址。如MIPS採用大端編址。