由於博主並不是科班出生,計算機方面的只是有所欠缺,所以寫幾篇博客記錄下我所學的知識,希望能對各位像我一樣非科班的同學有所幫助.如有錯誤的地方,望指正,謝謝給位大佬了!!!
計算機的發展歷史
- 1946 - 1957: 電子管計算機(埃尼阿克,第二次世界大戰是電子管計算機的催化劑)
- 集成度小,佔用空間大
- 功耗高,速度慢
- 操作複雜,換程序需要接線
- 1957 - 1964: 晶體管計算機
- 集成度高,佔用空間小
- 功耗低,速度快
- 操作簡單,交互方便
- 1964 - 1980: 集成電路計算機(IBM)
- 計算機更小
- 功耗更低,速度更快
- 1980 - 現在: 超大規模集成電路計算機
- 一個芯片可集成上百萬的晶體管
- 速度更快
- 用途更廣
- 未來:
- 生物計算機
- 量子計算機(阿里達摩院,騰訊)
微型計算機的發展
受限於性能,單核CPU.現在都高於2GHz CPU.
計算機的分類
超級計算機
- 功能強,速度快
- 用於國際研究領域
- 單位爲TFlop/s(1TFlop/s爲每秒1萬億次浮點運算)
超級計算機世界排名:
大型計算機
- 大型主機
- 高性能
- IBM佔主要份額
迷你計算機
- 小型機
- 不需要特殊空調場所
- 運算快
工作站
- 高端的微型計算機
- 體積比普通計算機大,性能強勁
微型計算機
- 普通的家用計算機
- 麻雀縮小,五臟俱全
計算機的體系和結構
- 馮諾依曼體系
將程序指令儲存的計算機概念結構.
- 必須有一個存儲器
- 必須有一個控制器
- 必須有一個運算器
- 必須有輸入輸出設備
現在所有的計算機都屬於馮諾依曼機.
馮諾依曼瓶頸(CPU經常空轉等待數據傳輸):
- 現代計算機結構
以存儲器文核心的結構
計算機的層次和編程語言
- 程序翻譯和程序解釋
將人類語言解析成計算機理解的語言,進行語言之間的轉換.- 程序翻譯
- 程序解析
- 程序翻譯
- 計算機執行的指令都是L0
- 翻譯過程生成新的L0,解釋過程不生成新的L0
- 解釋過程由L0編寫的解釋器解釋L1程序
翻譯+解釋的語言: java / c#
注: 比如java語言,就是先使java程序編譯成JVM字節碼,在解釋成機器能夠識別的機器碼.
- 計算機的層次
硬件邏輯層: 電子工程領域的邏輯電路組成.
微程序機器層: 微指令組成的微程序交由硬件執行(由生產硬件公司的程序員編寫).
傳統機器層: CPU指令集(機器指令),與硬件相關.不同架構的CPU有不同的指令集.- 微指令與微程序的關係
- 微指令與微程序的關係
操作系統層: 硬件和軟件之間的適配層,向上提供操作界面,向下對接指令系統.
彙編語言層: 彙編語言可以由彙編器翻譯成可執行的機器語言.
高級語言層: 程序員所接受的高級語言,如java\c++\python等.
應用層: 針對某種用途而專門設計.
計算機的計算單位
-
容量單位
比如4G內存,1T硬盤都屬於容量單位.
在物理層面高低電平記錄信息,理論上只有0/1兩種狀態,但是0/1容量太少了(0/1稱爲bit比特位),需要更大的容量表示.後來出現字節byte(1Byte = 8bit).
-
速度單位(網絡速度)
爲什麼拉100m的光纖,峯值速度是有12M每秒.(網絡常用單位是100Mbps)
答:
100M/s = 100Mbps = 100Mbit/s
100Mbit/s = (100/8)MB/s = 12.5MB/s- cpu速度(CPU時鐘頻率,單位爲赫茲[Hz],現在主流的CPU時鐘頻率都大於2GHz).指的是高低電平每秒鐘變化的次數.
2GHz = 2 * 1000^3 Hz = 每秒20億次.
- cpu速度(CPU時鐘頻率,單位爲赫茲[Hz],現在主流的CPU時鐘頻率都大於2GHz).指的是高低電平每秒鐘變化的次數.
計算機的字符和編碼集
- 字符編碼機歷史
1. ASCll碼
使用7個bits就可以完全表示ASCll碼(包含95個可打印字符,33個不可打印的字符)
95 + 33 = 128 = 2^7
2. Extended ASCll碼
由於很多字符(如π,≈等)無法表示,將7個bits => 8個比特位,擴充到256個字符.加入了常用的數學運算符,帶音標的歐洲字符,其他常用符,表格符等
3. 字符編碼集的國際化
由於歐洲,東亞,中亞等語言不同,體系不同,中日韓語言體系最爲複雜.
(1)中文編碼集
a. GB2312
<信息交換引漢字編碼集-基本集>
收錄7745字符(包含6763漢字和682個其他符號)
b. GBK
<漢字內碼擴展規範>
收錄21003漢字,支持全部中日韓文字.
向下兼容GB2312,向上支持國際ISO標準
c. unicode
統一碼,萬國碼,單一碼
Unicode定義了世界通用的符號集,UTF-*實現編碼
UTF-8以字節爲單位對Unicode進行編碼
注:windows系統默認使用GBK編碼,編程推薦使用UTF-8編碼