計算抽象 可計算理論 模型與計算機

2021-10-22 12:02:37 字數 1938 閱讀 4713

實際上關於本文所要**的內容,早在19年就在 關於可計算、圖靈機及cpu效能 中進行了梳理。所以本文簡要串聯下邏輯,其餘內容可以參見之前的這篇文章。

計算機和作業系統的核心自然是為計算服務的,那麼什麼問題是可被計算的呢?這就是可計算理論**的問題。

但是理論過於抽象,而圖靈機就可以認為是該理論的模型,即計算模型。圖靈機可以等價於任何有限邏輯數學過程的終極強大邏輯機器。除了圖靈機之外,還有其他的計算模型,比如暫存器機

關於此處的內容,參見維基百科的定義。可以在維基百科上順著圖靈機找到很多相關的概念索引,值得試試看。

那麼計算模型如何變成現實呢?馮·諾伊曼結構

該結構思想和我們之前學過的知識點有非常大的聯絡,主要是:

該結構五大件:控制器、運算器、儲存器、輸入、輸出。演算法都講究空間複雜度和時間複雜度,為什麼呢?和五大件一對比,很自然得出推論:

乙個程式占用執行單元時間長了,自然時間複雜度就高。你用的多了,其他程式不就用的少了?乙個程式占用儲存器的空間越多,空間複雜度越高。雖然有虛擬記憶體機制,好像記憶體(儲存單元)大小是相對無限的,但是過大記憶體占用,會導致頻繁的缺頁,拉高磁碟負載,進而又反過來影響執行單元的執行。

假設:執行單元不再是電晶體實現,而是變成了量子計算機,且量子計算器的計算能力無窮。那麼請問,到那時,時間複雜度還是重要的標準嗎?

再回到計算上,現階段計算的重要指標就是速度,如何評估速度呢?兩個維度:

吞吐量:單位時間完成的任務

這兩個維度太棒了,響應時間偏向於個體,吞吐量偏向於整體。

那麼單個任務的執行時間,在這裡就是cpu的執行時間,cpu執行時間 = cpu時鐘週期數 * 週期時間。

當cpu當做是乙個需要口號121 121來指揮的機器,喊口號時工作(喊得越快跑的越快),不喊口號時停止。那麼這個機器完成一項任務的總時間,自然就等於喊口號的數量 * 喊口號的頻率。

這裡更建議閱讀一下《編碼:隱匿在計算機軟硬體背後的語言》,可以理解為什麼cpu需要時鐘週期,也即底層硬體結構:實際上就是 組合邏輯電路和時序邏輯電路組成,需要統一的口號(心跳)來協調工作。

同時,建議閱讀《計算機組成》第一章。

cpu執行時間 = cpu時鐘週期數 * 週期時間,而cpu時鐘週期數 = 指令數 * 平均每條指令的執行時間。

所以:cpu執行時間(響應時間) = 指令數 * 平均每條指令的執行時間 * 週期時間。

這裡你可能會想問,為什麼是平均每條指令的執行時間呢?其實答案也在《編碼》中,不同指令對應操作不同的硬體單元,不同的硬體單元對應的電路組成不一樣,所以總的執行時間也不相同。類似的,電腦上開啟文字文件和開啟idea哪個快呢?

為什麼要推算響應時間的公式呢?答案還是 計算 的重要指標:速度,也即縮短響應時間,加快執行。

所以我們看到計算機的主頻相比之前變高不少,對應就是降低了週期時間,但也受著約束,這塊內容請參加之前的文章。

而指令數的下降一方面是程式本身優化,另一方面是引入新硬體結構支援更複雜的指令。

最後 平均每條指令執行時間(cpi),對應如下方面:

流水線技術:單個cpu上採用多級流水線同時執行多條指令,使得cpi降低,增大吞吐量

並行技術:多個cpu同時執行多條指令,使得cpu降低,增大吞吐量

快取技術:通過在記憶體和cpu之間加入多級快取,降低cpi

關於計算抽象就說到這裡。通過本文的分析,也就引出了下文的指令集,指令集是對cpu整體硬體的抽象,並且流水線技術是對指令執行重要的優化。

其他內容參見: 關於可計算、圖靈機及cpu效能 ,與本文相互補充。

計算機理論

作業系統跟計算機硬體是很大的關聯性,所以了解計算機理論對於學習 linux是有好處的。以下內容均摘自鳥哥的私房菜一書 計算機其實是 輸入指令與資料,經過 處理器和邏輯單元運算處理 後,產生或儲存成有用的資訊。簡單來說只要你有輸出裝置和輸入裝置,並且輸入資料讓機器產生資訊,這就可以叫做計算機了。計算機...

計算機 計算與計算思維

計算機 計算與計算思維 1 單選題 人類應具備的三大思維能力是指 a 抽象思維 邏輯思維和形象思維 b 實驗思維 理論思維和計算思維 c 逆向思維 演繹思維和發散思維 d 計算思維 理論思維和辯證思維 2 單選題 本課程中擬學習的計算思維是指 a 計算機相關的知識 b 演算法與程式設計技巧 c 蘊含...

計算機與電腦科學初識

1.為何要學習計算機與計算科學?這是乙個智慧型化與資料化的時代,計算解決自然社會問題,已經成為這個資料時代的基本需求了。而計算機自動化高效處理大量問題這種機器計算也已成為一種常態,為實現機器更好的自動計算,計算科學這門藝術便誕生了。計算科學從一種思維高度來決定我們對於計算的認知,讓我們更好把握計算的...