第一節 章節導學
- 計算機的發展簡史
- 計算機的分類
- 計算機的體系結構
- 計算機的層次與編程語言
- 計算機的計算單位
- 計算機的字符與編碼集
第二節 計算機的發展歷史
- 計算機發展的四個階段
-
- 第一階段(1946~1957):電子管計算機
-
- 發明背景:第二次世界大戰是電子管計算機產生的催化劑(英國爲了解密德國海軍的密文)。
- 代表:埃尼阿克(ENIAC),戰爭使用了飛機和火箭,爲了精確打擊目標需要通過幾千次的運算來計算彈道的射擊參數,埃尼阿克電子管計算機由此誕生,使得美國軍方的實力大大提升。
- 由18000多個電子管組成,運行耗電量150千瓦,重量達30噸,佔地1500平方英尺。
- 電子管計算機的特點:
-
- 集成度小,空間佔用大
- 功耗高,運行速度慢
- 操作複雜,更換程序需要換線
- 第二階段(1957~1964):晶體管計算機
- 發明背景:1948年,貝爾實驗室的三個科學家發明了晶體管,在此後的10年,晶體管的發明使得計算機的發展取得了革命性的進展。
- 代表:世界第一臺晶體管計算機:TX-0,誕生於MIT林肯實驗室。
- 代表:當時性能最高的晶體管計算機:PDP-1,配備4k內存,每秒可以執行200,000條指令;配備了一塊512×512的顯示器。
- 晶體管計算機的特點:
-
- 集成度相對較高,空間佔用相對較小
- 功耗相對較低,運行速度較快
- 操作相對簡單,交互更加方便
- 第三階段(1964~1980):集成電路計算機
- 發明背景:德州儀器的工程師發明了集成電路(IC),由於集成電路的出現,計算機具備了進入千家萬戶的條件。
- 在當時,IBM有兩款計算機賣的火熱,一款是
IBM 7094
,一款是IBM 1401
,但是這兩款計算機主打功能不同,無法相互兼容,IBM爲了解決兩款計算機的兼容問題,推出了System/360
,System/360
就是操作系統的雛形。 - 集成電路計算機的特點:
-
- 計算機變的更小
- 功耗變的更低
- 計算速度變的更快
- 第四階段(1980至今):超大規模集成電路計算機
- 喬布斯和他的朋友發明的Apple和Apple二代在當時深受歡迎。
- 超大規模集成電路計算機的特點:
-
- 一個芯片集成了上百萬的晶體管
- 速度更快,體積更小,價格更低,更能被大衆接受
- 用途豐富:文本處理、表格處理、高交互的遊戲與應用
- 第五階段:未來的計算機
- 生物計算機,也稱仿生計算機,主要原材料是生物工程技術產生的蛋白質分子,並以此作爲生物芯片來替代半導體硅片,利用有機化合物存儲數據。
- 生物計算機的特點:
-
- 體積小,效率高
- 不易損壞,生物級別的自動修復
- 不受信號干擾,無熱損耗
- 量子計算機(quantum computer),是一類遵循量子力學規律進行高速數學和邏輯運算、存儲及處理量子信息的物理裝置。當某個裝置處理和計算的是量子信息,運行的是量子算法時,它就是量子計算機。
- 發展歷程:
- 2013年5月,谷歌和VASA發佈D-Wave Two
- 2017年5月,中國科學院宣佈製造出光量子計算機
- 2019年1月,IBM展示了世界首款商業化量子計算機
- 騰訊在2017年組建了量子實驗室,阿里巴巴在2017年成立達摩院
- 微型計算機的發展歷史
- 微型計算機的發展主要是從算力角度出發,在早期,發展受限於性能。
- 微型計算機使用的是單核CPU:
- 摩爾定律:當價格不變時,集成電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,性能也將提升一倍。
- 由於單核CPU的發展已經到達瓶頸,多核CPU出現:
第三節 計算機的分類
-
超級計算機
-
功能最強、運算速度最快、存儲容量最大的計算機。
-
多用於國家高科技領域和尖端技術研究,比如天氣預報、生物製藥、海洋監測、核聚變、加密解密等。
-
標記其運算速度的單位是是TFlop/s。
1 TFlop/s = 每秒一萬億次浮點計算
Intel(R) Core(TM) i7-6700K CPU @ 4.OOGHz 的浮點運算能力爲44.87 GFlop/s
44.87 GFlop/s = 0.04487TFlop/s
-
世界前三超級計算機排名(截至於2018年11月)
-
名字 製造商 處理器(個數) 峯值速度 Summit IBM(美國) 2,397,824 200,795 TFlop/s 神威 太湖之光 中國 10,649,600 125,436 TFlop/s Sierra IBM(美國) 1,572,480 119,193 TFlop/s
-
-
中國前三超級計算機排名(截止於2018年11月)
-
名字 製造商 處理器(個數) 峯值速度 神威 太湖之光 國家並行計算機工程
技術研究中心10,649,600 125,436 TFlop/s 天河二號 國防科大 3,120,000 33,862 TFlop/s 天河一號 國防科大 202,752 2,566 TFlop/s
-
-
-
大型計算機
- 又稱大型機、大型主機、主機等。
- 具有高性能,可處理大量數據與複雜的運算,比如銀行金融交易的數據、人口普查等。
- 在大型計算機領域,IBM佔據着很大的份額。
- IBM Z9
- NASA最後一臺大型機
- 操作系統:Red Hat Enterprise Linux
- 大型機造價高昂
- 去“IOE”行動
- I(IBM):服務器提供商
- O(Oracle):數據庫軟件提供商
- E(EMC):存儲設備提供商
- 去“IOE”是阿里巴巴在2008年提出的概念,阿里雲於2009年成立,去“IOE”行動直接或間接促進了阿里雲的誕生。“IOE”代表了高維護費用的存儲系統,隨着阿里用戶羣的快速增長,每年需要付出的成本以及硬件費用也越來越高。
- 大型機所提供的服務不夠靈活,伸縮性弱,阿里巴巴爲了減少成本,增強服務器的靈活性,將海量數據從集中式的Oracle切換到分佈式的MySQL集羣,從縱向擴展到水平擴展,解決了數據庫拓展性問題,並用普通的服務器代替大型機。
-
迷你計算機(服務器)
- 也成爲小型機,普通服務器
- 不需要特殊的空調場所
- 具備不錯的算力,可以完成較複雜的運算
- 普通服務器製造商:Lenovo(聯想)、HUAWEI(華爲)、inspur(浪潮)
- 去“IOE”是用普通服務器代替大型機,普通服務器已經代替了傳統的大型機,成爲大規模企業計算的中樞。
-
工作站
- 高端的通用微型計算機,提供比個人計算機更強大的性能。
- 類似於普通臺式電腦,體積較大,但性能強勁。
-
微型計算機
- 又稱個人計算機,是最普通的一類計算機。
- 從構成的本質上來講,個人計算機與前面的計算機無異。
第四節 計算機的體系與結構
- 馮·諾依曼體系
- 將程序指令和數據一起存儲的計算機設計概念。
- 必須有一個存儲器、一個控制器、一個運算器、輸入設備、輸出設備,現代計算機的本質都是馮·諾依曼計算機。
- 馮·諾依曼體系結構:
- 馮·諾依曼瓶頸:CPU和存儲器速率之間的問題無法調和。
- 馮·諾依曼瓶頸:CPU和存儲器速率之間的問題無法調和。
- 能夠通過輸入設備將需要的程序和數據送至計算機中,能夠通過存儲器長期記憶程序、數據、中間結果及最終運算結果的能力,能夠通過控制器、運算器完成算術運算、邏輯運算和數據傳送等數據加工處理的能力,能夠按照要求通過輸出設備將處理結果輸出給用戶。
- 現代計算機的結構
- 在馮·諾依曼體系結構基礎上進行修改,可以理解爲以
存儲器
爲核心的結構。 - 解決CPU與存儲設備之間的性能差異問題。
- 存儲器從廣義上可以理解爲存儲數據的介質。
- 在馮·諾依曼體系結構基礎上進行修改,可以理解爲以
第五節 計算機的層次與編程語言
- 程序編譯與程序解釋
- 爲什麼需要程序編譯與程序解釋?
- 程序編譯
- 程序解釋
- 程序編譯和程序解釋的區別和聯繫
- 計算機執行的指令都是L0
- 編譯過程生成新的L0程序,解釋過程不生成新的L0程序
- 解釋過程由L0編寫的解釋器去解釋L1程序
- 編譯型語言:C/C++、Object-C、Golang、 Pascal、 FORTRAN
- 解釋型語言:Python、Php、JavaScript、 BASIC
- 嚴格來講,Java和C#既不屬於編譯型語言,也不屬於解釋型語言,二者屬於編譯+解釋型的語言。
- 以Java理解什麼是編譯+解釋型的語言:
- 以Java理解什麼是編譯+解釋型的語言:
- 爲什麼需要程序編譯與程序解釋?
- 計算機的層次與編程語言
- 硬件邏輯層
- 門、觸發器等邏輯電路組成,屬於電子工程的領域。
- 微程序機器層
- 編程語言是微指令集,微指令所組成的微程序直接由硬件執行。
- 傳統機器層
- 編程語言是CPU指令集(機器指令)。
- 編程語言和硬件直接相關。
- 不同架構的CPU使用不同的CPU指令集。
- 微指令、微程序、機器指令的關係:
- 一條機器指令對應一個微程序,一個微程序對應一組微指令。
- 操作系統層
- 向上提供了簡易的操作界面。
- 向下對接了指令系統,管理硬件資源。
- 操作系統層是在軟件層和硬件之間的適配層。
- 彙編語言層
- 所用到的編程語言是彙編語言。
- 彙編語言可以翻譯程可直接執行的機器語言。
- 完成翻譯的過程的程序就是彙編器。
- 高級語言層
- 編程語言爲廣大程序員所接受的高級語言。
- 高級語言的類別非常多,有上百種。
- 常見的高級語言有:Python、Java、C/C++、Golang等。
- 應用層
- 滿足計算機針對某種用途而專門設計,如Microsoft Office。
- 可以理解爲面向問題的應用語言。
- 硬件邏輯層
第六節 計算機的計算單位
-
容量單位
-
在物理層面,高低電平記錄信息。
-
理論上只認識0 / 1兩種狀態,0表示低電平,1表示高電平。
-
0 / 1稱爲bit(比特位),但是0 / 1能夠表示的內容太少了,需要更大的容量表示方法。
-
字節:1Byte = 8 bits
-
常見容量單位:
1024 = 2 ^ 10
-
bit Byte KB MB GB TB PB EB 名字 比特位 字節 千字節 兆字節 吉字節 太字節 拍字節 艾字節 比例 - 8bits 1024B 1024KB 1024MB 1024GB 1024TB 1024PB 常見設備 門電路 - 寄存器 高速緩存 內存/硬盤 硬盤 雲硬盤 數據倉庫 -
思考1:1G內存可以存儲多少字節的數據?可以存儲多少比特數據?
-
答:
1G = 1024 ^ 3 Bytes = 1024 ^ 3 * 8bits
-
思考2:爲什麼500G的移動硬盤格式化之後就只剩465G了?
-
答:
硬盤商一般用10進位標記容量。 (500 * 1000 ^ 3) / 1024 ≈ 465
-
-
-
速度單位
- 網絡速度
- 網絡常用單位爲:Mbps
- 100M寬帶:
100M = 100 M/S = 100 Mbps = 100 Mbit/s
- 思考:爲什麼100MB光纖測試峯值速度只有12MB每秒?
- 答:
100 Mbit/s = (100/8) MB/s = 12.5MB/s
- CPU頻率
- CPU速度一般體現爲CPU的時鐘頻率
- CPU時鐘頻率的單位一般是赫茲(Hz)
- 當前主流CPU的時鐘頻率都在2GHz以上
- Hz:秒分之一,是每秒鐘的週期性變動重複次數的計量,並不是描述計算機領域所專有的單位。
- 高低電平的變換頻率:
2 GHz = 2 * 1000 ^ 3 Hz = 每秒20億次
- 網絡速度
第七節 計算機的字符與編碼集
- 字符編碼集的歷史
- ASCII碼
- 使用7個bit就可以完全表示ASCII碼
95 + 33 = 128 = 2 ^ 7
- 包含95個可打印字符,33個不可打印字符(包括控制字符)
- 使用7個bit就可以完全表示ASCII碼
- Extend ASCII碼
- 由於很多應用或者國家中的符號無法用ASCII碼,故第一次對ASCII碼進行擴充,7bits -> 8bits, 128 -> 256。
- 包括常見數學運算符、帶音標的歐洲字符、其他常用符、表格符等。
- 字符編碼集的國際化
- 歐洲、中亞、東亞、拉丁美洲國家的語言多樣性
- 語言體系不一樣,不以有限字符組合的語言
- 中國、日本、韓國等的語言最爲複雜
- ASCII碼
- 中文編碼集
- 1980年, GB2312,全稱《信息交換用漢字編碼字符集–基本集》,共收錄了7445個字符,包括6763個漢字和682個其它符號。
- 1995年, GBK,全稱《漢字內碼擴展規範》,向下兼容GB2312,向上支持國際ISO標準,收錄了21003個漢字,支持全部中日韓漢字。
- 兼容全球的字符集:Unicode,又稱統一碼、萬國碼、單一碼,Unicode定義了世界通用的符號集,UTF-*實現了編碼,UTF-8以字節爲單位對Unicode進行編碼。
- windows中文系統默認使用GBK編碼,編程推薦使用UTF-8編碼。