儲存器層次結構(《深入理解計算機系統》)
閱讀《深入理解計算機系統》的第6章,也還是有一些收穫的。
首先在腦海中需要對計算機系統的儲存器層次結構有個定性的認識,如下圖所示:
從訪問速率最高(容量最小)的暫存器到訪問速率最低(容量最大)的分散式檔案系統,計算機將不同型別的儲存裝置劃分了多個層次。然後通過硬體和軟體的協作,最終實現高效能的程式開發。每個層次的儲存裝置都會儲存下一層次的裝置中的部分資料,依賴於區域性性原理,我們認為這種做法是可以提高程式效能的。
接下來就是,在寫一些簡單的程式的時候,需要思考如何更好的利用快取記憶體的原理來進行加速。書中給出了矩陣相乘運算的例子:
上圖中最後的f版本是效能最優的,因為它充分體現了空間區域性性原則,快取命中率最高。
相關推薦
第1章 計算機系統漫遊(深入理解計算機系統)
printf 保存 並運行 用戶 數據 ogr 語句 亂碼 hello 1 #include <stdio.h> 2 3 int main() 4 { 5 printf("hello, world\n"); 6 } 1.1 信息就是位+上下文 h
一個絕對注意不到的小細節(深入理解計算機系統第五章5.5及5.6)
下面的計算計算多項式的兩種不同方法,形如 a0+a1x+a2x^2········ 第二個函式是根據horner法,通過反覆提出冪,來減少乘法的次數,按照道理說,既然polyh函式比poly函式減少了乘法的次數,那應該比poly快才對,可是事實正好相反,poly
儲存器層次結構(《深入理解計算機系統》)
閱讀《深入理解計算機系統》的第6章,也還是有一些收穫的。 首先在腦海中需要對計算機系統的儲存器層次結構有個定性的認識,如下圖所示: 從訪問速率最高(容量最小)的暫存器到訪問速率最低(容量最大)的分散式檔案系統,計算機將不同型別的儲存裝置劃分了多個層次。然後通過硬
深入理解計算機系統 第六章 儲存器層次結構
為什麼要學習儲存器的層次結構? 如果我們理解了系統是如何將資料在儲存器層次結構中上上下下移動的,那麼我們就可以編寫自己的應用程式,使得它們的資料項儲存在層次結構較高的地方,在那裡 CPU 能更快地訪問到它們。 區域性性原理 計算機程式傾向於引用臨近於其他最近引用過的資料項
深入理解計算機系統----第六章儲存器層次結構
原文部落格地址:https://www.jianshu.com/p/88c889e4fef3 目 錄 在本章中,我們會先了解儲存技術(SRAM\DRAM\ROM\旋轉固態硬碟),描述這些儲存器是如何被組織成層次結構的。接下來會談到什麼是擁有良好區域性性的程式以及編寫這
《深入理解計算機系統》儲存器層次結構——讀書筆記
一、儲存技術 1、 基本的儲存技術包括隨機儲存器(RAM)、非易失性儲存器(ROM)和磁碟。RAM分靜態RAM(SRAM)和動態RAM(DRAM)。SRAM快些,也貴些,主要用做CPU晶片上的快取記憶體,也可以用作晶片下的快取記憶體。DRAM慢些,便宜些,主要用
深入理解計算機系統(序章)------談程序員為什麽要懂底層計算機結構
人類 是你 驅動 計算機世界 執行過程 鍵盤 二進制 java虛擬機 調優 萬丈高樓平地起,計算機系統就像程序員金字塔的地基。理解了計算機系統的構造原理,在寫程序的道路上才能越走越遠。道理LZ很早就懂了,可是一直沒下定決心好好鉆研,或許是覺得日常工作中根本用不到這些,又
深入理解計算機系統(1.2)------存儲設備
高速 計算 想法 知識 1-1 運用 文件 字符 設備 上一章我們講解了hello world 程序在計算機系統中是如何運行的。 hello 程序的機器指令最初是存放在磁盤上的,當程序加載時,他們被復制到主存;當處理器運行程序的時候,指令又從主存復制到處理器。相似的,數
3.2《深入理解計算機系統》筆記(二)內存和高速緩存的原理【插圖】
img sram 本質 text ddr rate too 是我 很大的 《深入計算機系統》筆記(一)主要是講解程序的構成、執行和控制。接下來就是運行了。我跳過了“處理器體系結構”和“優化程序性能”,這兩章的筆記繼續往後延遲! 《深入計算機系統》的一個很大的用處
深入理解計算機系統(2.4)------整數的表示(無符號編碼和補碼編碼)
class 映射 們的 c語言 正數 裏的 小例子 負數 類型 上一篇博客我們主要介紹了布爾代數和C語言當中的幾個運算符。那麽這一篇博客我們主要介紹在計算機中整數是如何表示的,諸如我們在編碼過程中遇到的對數據類型進行強制轉換可能會得到意想不到的結果在這篇博客裏你會得到解
深入理解計算機系統(3.1)------匯編語言和機器語言
找到 生產 有著 shu 符號 ces pc機 高效率 機器語言 《深入理解計算機系統》第三章——程序的機器級表示。作者首先講解了匯編代碼和機器代碼的關系,闡述了匯編承上啟下的作用;接著從機器語言IA32著手,分別講述了如何存儲數據、如何訪問數據
深入理解計算機系統(3.3)------操作數指示符和數據傳送指令
邏輯操作 無效 系統 get 訪問 www. 執行 十六 title 在上一篇博客 程序編碼以及數據格式 中我們給出了一個簡單的C程序,然後編譯成了匯編代碼。大家看不懂沒關系,後面的博客我們將逐漸揭開一些匯編指令的神秘面紗。本篇博客我們將對操作數指示符和數據傳送指令進行
深入理解計算機系統(3.8)------數組分配和訪問
2個 說明 add 如果 c++編譯 類型 操作 http 程序 上一篇博客我們講解了匯編語言中過程(函數)的調用實現。理解數據如何在調用者和被調用者之間傳遞,以及在被調用者當中局部變量內存的分配以及釋放是最重要的。那麽這篇博客我們將講解數組的分配和訪問。 1、
速讀《深入理解計算機系統(第三版)》問題及解決
情況 csdn 第六章 填充 以及 函數 順序 時鐘 管理所 第一章 計算機漫遊 P13:用戶棧和運行時堆有什麽區別?數據結構中經常說堆棧,這裏的堆和棧一樣嗎?和操作系統的堆、棧有什麽區別? 參考:堆和棧的區別(內存和數據結構) 操作系統: 棧:由操作系統自動分配釋放
深入理解計算機系統_3e 第四章家庭作業(部分) CS:APP3e chapter 4 homework
ray design sed copy default ror this 處理 implement 4.52以後的題目中的代碼大多是書上的,如需使用請聯系 [email protected] 流水線部分只寫了偶數題號的,這幾天太浮躁,落下了好多課。。。 4.
20179215《深入理解計算機系統(第三版)》第三章
imu 組成 不但 圖片 想是 運行 href com 語言 《深入理解計算機系統》第三章 程序的機器級表示學習 讀書筆記 一、這章主要任務: ? 二、程序編碼 ?計算機系統使用了多種不同形式的抽象,利用更簡單的抽象模型來隱藏實現的細節。對於機器級編程來說,其中兩種抽
《深入理解計算機系統》閱讀筆記--程序的機器級表示(上)
還要 所有 執行文件 命令 不同的 指向 local 變量 section 一、為什麽要學習和了解匯編 編譯器基於編程語言的規則,目標機器的指令集和操作系統遵循的慣例,經過一系列的階段生成機器代碼。GCC c語言編譯器以匯編代碼的形式產生輸出,匯編代碼是機器代碼的文
《深入理解計算機系統》——讀書筆記(一)
img 可執行 即將 簡單的 world std 加載 完整 .exe 這本書從一個簡單的C語言的HelloWorld程序講起... 這是這個小程序的生命周期的一個部分: HellOWorld程序,從被創建(文本格式),到被執行(在屏幕上打印出來)。 其
《深入理解計算機系統》讀書筆記(ch2)+ C 泛型
tex byte 指向 get 讀書筆記 class its n) 支持 本章主要介紹各類型的機器表示,Stanford的CS107的lec2和lec3有精彩解釋,比看書快(當作書中只是的cache吧)。 lec4中介紹的C裏面如何使用泛型(沒有template, refe