現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?匯聚魔杖2020-04-09 16:38:32

目前是沒有。一方面取決於架構,另一方面是因為資料處理的隨機性比較強就需要大容量的頂層儲存器,且隨著儲存資料越來越多,定址的時間也會越來越長。

計算機主要的功能就是運算(CPU和GPU),要完成一個任務,就要讀取運算指令,並將結果輸出給使用者。這個過程中,指令的儲存、運算過程中中間狀態的儲存、結果的儲存等都需要儲存器。一臺計算機包含多種儲存器比如:暫存器、快取記憶體、記憶體、硬碟、光碟等。

現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?

為什麼會有這麼多種類的儲存方式?

第一代計算機,接收指令是透過讀取穿孔卡片來實現的。穿孔卡片是計算機最早用來儲存命令的儲存器。

現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?

如果cpu的運算速度是每秒100條指令,而儲存器的速度是每秒最多能讀取10條指令,那麼cpu就有90%的時間是等待指令。儲存器的執行速度應該快過計算機的運算速度,這樣才可以最大化的利用cpu的計算能力。這樣的儲存器是有的,那就是暫存器,暫存器是和cpu同樣材質製作的,速度和cpu一樣快,當然價格也就和cpu一樣了。

如果一臺計算機,儲存器都是暫存器的話,那造出來的計算機,肯定就是天價了,普通人都買不起。那麼計算機的設計方案就需要綜合讀寫速度、空間大小、產品價格等因素,於是採用了分層結構來實現,取了一個性價比最好的方案。

現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?

分層結構

如下圖所示,頂層的暫存器讀寫速度較高,但是儲存空間較小。底層的讀寫(比如硬碟)速度較低,但是儲存空間較大。

現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?

暫存器和cpu速度相當,空間比較小在kb級別。

快取記憶體比暫存器要慢1倍左右,但是空間可以達到MB級別。

記憶體比快取要慢10倍左右,但是空間可以達到GB級別。

硬碟速度更慢,比記憶體要慢很多很多,但是價格也比較便宜,儲存空間也很大。

其他儲存光碟、隨身碟、行動硬碟等其他儲存器,作為硬碟的一個補充,有便於攜帶的優點

暫存器

暫存器是CPU內部用來存放資料的一些小型儲存區域,用來暫時存放參與運算的資料和運算結果,暫存器雖然也能儲存資料,但同記憶體等儲存器相比,暫存器又有自己獨有的用途:其主要是CPU對記憶體中的資料進行處理時,往往先把資料取到暫存器中,而後再作處理,加快直接同記憶體讀取指令和讀寫資料的速度。

現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?

快取記憶體

高速緩衝儲存器是存在於記憶體與CPU之間的儲存器,容量比較小但速度比記憶體高得多, 接近於CPU的速度。快取記憶體是是加速讀取速度的一個橋樑(工具)。CPU向記憶體讀取資料時,首先查詢快取區是否有對應資料,如果有則直接讀取,沒有再從記憶體中讀取。快取記憶體中儲存的都是記憶體中的資料,這部分資料是cpu訪問比較頻繁的部分。

系統也會動態管理快取中的資料,如果有資料訪問頻率降低到一定值,就從快取中移除,而將記憶體中訪問更加頻發的資料替換進去。(快取記憶體可以不只一級,可以有多級快取區)

記憶體

記憶體是計算機執行過程中的儲存主力,用於儲存編譯好的程式碼段,執行中的靜態、動態、臨時變數,外部檔案的指標等等。

現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?

硬碟

硬碟優點是空間大,價格便宜,並且掉電資料不丟失。常常用來儲存需要永久儲存的檔案。

現在的CPU和GPU有沒有應用根據記憶來智慧識別曾經處理過的資料,從而不經過處理器立即輸出?

計算機的儲存設計的這麼複雜,並不是設計者故意要搞得麻煩,而是要兼顧效能和價格。如果說未來有一個儲存產品,能達到當前暫存器的讀取效能,又可以做到儲存空間極大,並且價格和硬碟一樣或更便宜,同時資料是掉電不丟失的話,那麼計算機的儲存結構肯定會簡化,直接就只有一個儲存器。

以上個人淺見,歡迎批評指正。喜歡的可以關注我,謝謝!

認同我的看法的請點個贊再走,再次感謝!