L7 Cache I

Similar documents
<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

lecture13

海 南 冯 琳 峰 海 南 省 锅 炉 压 力 容 器 与 特 种 设 备 检 验 所 海 南 省 定 安 县 白 蒙 路 47 号 信 XC 内 蒙 古 冯 磊 赤 峰 市 特 种 设 备 检 验 所 内 蒙 古 赤 峰 市 红 山 区 八 里 铺 油 库 路

岳西职教中心


北 海 市 人 民 政 府 公 报

Microsoft PowerPoint - 3章例题.ppt

第5章:汇编语言程序设计

PowerPoint Presentation

Ps22Pdf

Microsoft Word - 永政发〔2016〕48号.doc

專欄報導 安平小吃 伴手禮篇 小吃 記者王睿謙/台南報導 蚵仔煎 安平鄰近於海邊 正因如此 在那裡養殖了新鮮緊實飽 滿的蚵仔 對於這些很棒的蚵仔 安平老街裡面的人們 將 蚵仔用最適合的方式 也就是蚵仔煎 呈現給來安平光顧的 遊客 新鮮的蚵仔配上鹹甜的醬汁 再加上口感爽脆豆芽 那滋味是多麼的令人食指大

《计算机应用基础》学习材料(讲义)

書本介紹


简单的小游戏.再发一款简单的小游戏 真菌世界(Eufloria) 免安装绿色简

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

<4D F736F F F696E74202D20B5DAC6DFD5C220B4E6B4A2C6F7B2E3B4CEBDE1B9B92E707074>

COP中文范本

冶金企业安全生产监督管理规定

PowerPoint 演示文稿

<4D F736F F D20BAECB1A6C0F6A3BAB7C7B9ABBFAAB7A2D0D0B9C9C6B1C4BCBCAFD7CABDF0CAB9D3C3B5C4BFC9D0D0D0D4B1A8B8E62E646F63>


SCTWhiteBoard V1


序 1995 年 我 走 进 了 朝 阳 区 将 台 乡 五 保 老 人 院, 如 今 17 年 后, 十 分 欣 喜 有 机 会 为 这 本 流 金 岁 月 小 集 作 序 在 多 年 陪 伴 孤 单 老 人 的 过 程 中, 我 深 深 地 体 会 到 每 位 老 人 的 生 命 里 其 实 都

78 云 芝 79 五 加 皮 80 五 味 子 81 五 倍 子 82 化 橘 红 83 升 麻 84 天 山 雪 莲 85 天 仙 子 86 天 仙 藤 87 天 冬 88 天 花 粉 89 天 竺 黄 90 天 南 星 91 天 麻 92 天 然 冰 片 ( 右 旋 龙 脑 ) 93 天 葵

43081.indb


一 天 吃 两 顿, 从 不 例 外 我 上 班 就 是 找 一 个 网 吧 上 网 上 网 的 内 容 很 杂, 看 新 闻, 逛 论 坛, 或 者 打 打 小 游 戏 如 果 没 钱 上 网, 我 会 独 自 一 个 人 到 一 个 偏 僻 的 地 方, 静 静 地 坐 着 发 呆 这 也 是

工 造 价 15 邗 江 南 路 建 设 工 一 标 市 政 公 用 6000 中 机 环 建 集 团 有 限 公 胡 美 娟 16 邗 江 南 路 建 设 工 二 标 市 政 公 用 品 尊 国 际 花 园 1# 2# 3# 4# 7# 9# 10# 11# 楼 地 库 C 区 工

第一篇 建置区划


untitled


31 121

ǎà

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378>

例 如, 一 个 含 有 2000 个 记 录 的 文 件, 每 个 磁 盘 块 可 容 纳 250 个 记 录, 则 该 文 件 包 含 8 个 磁 盘 块 然 后 对 该 文 件 作 二 路 归 并 的 外 排 序, 每 次 往 内 存 读 入 两 个 磁 盘 块, 排 序 后 再 写 回 磁


才俊學校課程設計 _總目_.PDF

untitled



(Quad-Core Intel Xeon 2.0GHz) ()(SAS) (Quad-Core Intel Xeon 2.0GHz) (Windows )(Serial ATA) (Quad-Core Intel Xeon 2.0GHz) (Linux)(Serial ATA)

<4D F736F F D20CAB5D1E9CAD2B9DCC0EDC6BDCCA856342E315FD1A7C9FAD3C3BBA7B2D9D7F7D6B8C4CF2E646F63>

<4D F736F F F696E74202D20B5DACBC4D5C220B4E6B4A2C6F7B2E3B4CEBDE1B9B92E707074>

为 边 数 的 两 倍, 显 然 必 为 偶 数 而 ii 和 iii 则 不 一 定 正 确, 如 : 对 顶 点 数 N 1 无 向 完 全 图 不 存 在 一 个 顶 点 的 度 为 1, 并 且 边 数 与 顶 点 数 的 差 要 大 于 1 8. 考 查 m 阶 B- 树 的 定 义 A

P4VM800_BIOS_CN.p65

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

QVM330 多阜寬頻路由器

相 关 知 识 1 计 算 机 工 作 原 理 1946 年 2 月, 世 界 上 第 一 台 电 子 计 算 机 ENIAC (Electronic Numerical Integrator And Computer, 电 子 数 字 积 分 计 算 机 ) 诞 生 于 美 国 宾 夕 法 尼 亚

Microsoft Word _Java_術科 .doc

QVM330 多阜寬頻路由器

P4Dual-915GL_BIOS_CN.p65

行動電話面板產業

<%DOC NAME%> (User Manual)

P4V88+_BIOS_CN.p65

第一章 Linux與網路資源

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6BFBCCAD4B4F3B8D92E646F63>

經濟統計資料庫管理資訊系統

郎 船 安 兩 槳, 儂 舸 動 雙 橈 掃 黛 開 宮 額, 裁 裙 約 楚 腰 乖 期 方 積 思, 臨 醉 欲 拼 嬌 莫 以 採 菱 唱, 欲 羨 秦 台 簫 相 和 歌 辭 王 昭 君 毛 延 壽 畫 欲 通 神, 忍 為 黃 金 不 為 人 馬 上 琵 琶 行 萬 里, 漢 宮 長 有

投影片 1

DPJJX1.DOC

( ), 16/ 32 Intel 8086, Intel, , Intel8086 Intel I/ O,, ( CIP ) /,,. :, ( ) ISBN T P36 CIP ( 2002) 0

九十二年度私立技專校院整體發展經費獎補助

( CIP).:,3.7 ISBN TB CIP (3) ( ) ISBN O78 : 3.

Training

<4D F736F F F696E74202D DB5DABEC5BDB22DCEA2B4A6C0EDC6F7B5C4D3B2BCFEBDE1B9B9A3A8D2BBA3A92E >

<4D F736F F D C4EAC8ABB9FAD1D0BEBFC9FABFBCCAD4BCC6CBE3BBFACDB3BFBCCAD4CCE2BCB0B4F0B0B82E646F63>

105年度全國檢定學科試務工作行政委託甄選文件

<4D F736F F D CFC4D7E9B3C9D4ADC0EDCAD4CCE22D41A3A8B4F0B0B8A3A92E646F63>

1 1 DELL PowerEdge CD SERVER 1 OS: Novell Netware 3.12, CPU:1*PII-450MHz, RAM:256MB, HardDisk:18GB*1,9GB*2 DOS OS: Web Browser Inter

关于要求审批《衢州市道路交通组织管理规划( )》的请示

年 全 国 计 算 机 等 级 考 试 无 纸 化 真 考 题 库 二 级 MS Office 高 级 应 用 (57) 下 列 有 关 计 算 机 结 构 的 叙 述 中, 错 误 的 是 ( ) A) 最 早 的 计 算 机 基 本 上 采 用 直 接 连 接 的 方 式, 冯

CPU CPU Intel CPU AMD CPU CPU Socket A/Socket 370 CPU Socket 478 CPU CPU CPU CPU CPU

30.00% 25.00% 25.00% 22.50% 20.00% 15.00% 12.50% 15.00% 12.50% 10.00% 7.50% 5.00% 2.50% 2.50% 0.00% 文 学 理 学 工 学 法 学 教 育 学 管 理 学 历 史 学 艺 术 学 ( 三 ) 学 生

<%DOC NAME%> (User Manual)

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

MSAC-EX1

<4D F736F F D20D6D0B3CFD0C5B9FABCCAD3D0B9D8B8BAD4F0C8CBBECDA1B C4EAD6D0B9FAD2F8D0D0D2B5B9ABBFAAC6C0BCB6A1B1B4F0BCC7D5DFCECA2E646F63>

PowerPoint 演示文稿

停 机 保 号 业 务 资 费 标 准 的 报 告 ( 宁 夏 电 信 有 限 [2006]464 号 ); 关 于 固 定 电 话 改 号 通 知 业 务 收 费 标 准 备 案 的 报 告 ( 中 电 信 宁 [2010]705 号 )) 15 ( 七 ) 家 庭 固 网 语 音 包 资 费 (

中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国

國立竹北高級中學參加101-2學年度

CyberLink YouCam »¡©ú

ebook105-12

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

Dell EMC Data Domain DDOS 5.5 Data Domain Data Domain Data Domain : Data Domain Boost (DDBoost) Dell EMC DDBoost Data Domain DDBoost Source De-Dup Bac

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

(Microsoft Word - 92\246~\263\370)

<4D F736F F D20CFB5B7D62DCFC2CEE749CAD4CCE22D3037C9CF>

悖论

chap07.key

98支用計畫書-報部 修改.doc

RAID RAID 0 RAID 1 RAID 5 RAID * (-1)* (/ 2)* No Yes Yes Yes SATA A. B. BIOS SATA C. RAID BIOS RAID ( ) D. RAID/AHCI ( ) S ATA S S D ( ) (

竞赛报名与报名审核

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

RAID RAID 0 RAID 1 RAID 5 RAID * ( -1)* ( /2)* No Yes Yes Yes A. B. BIOS SATA C. RAID BIOS RAID ( ) D. SATA RAID/AHCI ( ) SATA M.2 SSD ( )

Transcription:

Lecture 9: Cache I 高速缓冲存储器 (Cache) 1

高速缓冲存储器 (Cache) 什么是程序访问的局部化特性 具有 Cache 机制的 CPU 的基本访存过程 Cache 和主存之间的映射方式 直接映射 / 全相联映射 / 组相联映射 cache 容量和块大小的选择 Cache 替换算法 cache-friendly 的程序 Cache 的写策略 Write Back 和 Write Through Cache 失靶处理 Cache 性能评估

What we want in a memory 到目前为止, 已经了解到有以下几种存储器 : Reg,SRAM,DRAM, Hard Disk,Tape and 光盘等 1KB 1MB 1GB 100GB 100GB 1ns 2ns 10ns 10ms 1ns 问题 : 你认为哪一种最适合做计算机的存储器呢? 单独用某一种存储器, 都不能满足我们的需要! 采用分层存储结构来构建计算机的存储体系!

计算机中存储器的层次结构 典型存取时间 1ns(0.5~1cycle) 寄存器 内存储器 典型容量 <1KB 2ns(1~3cycle) cache 1MB 10ns(10~100cycle) 主存 (RAM 和 ROM) 256MB~1GB 10ms (10~100c) 10 s 外存储器 ( 软盘 硬盘硬盘 光盘 ) 后备存储器 ( 磁带库 光盘库 ) 外存储器 40GB~200GB 10TB~100TB 给出的时间和容量会随时间变化, 但数量级相对关系不变

计算机中存储器的层次结构 分析 : 速度越快, 成本越高 为提高性能 / 价格, 组成一个层状塔式结构, 取长补短, 协调工作 工作过程 : 1)CPU 运行时, 需要的操作数大部分来自寄存器 2) 如需要从 ( 向 ) 存储器中取 ( 存 ) 数据时, 先访问 cache, 如在, 取自 cache 3) 如操作数不在 cache, 则访问 RAM, 如在 RAM 中, 则取自 RAM 4) 如操作数不在 RAM, 则访问硬盘, 操作数从硬盘中读出 RAM cache

五层金字塔形分层系统从上到下的特点 : 1. 每位价格降低 2. 容量增大 3. 存取时间增大 4. 访问频度降低 回顾 : 传统存储器分级体系结构 传统结构 Traditional Memory Hierarchy

开辟一部分内存区, 用作 Disk Cache, 用于存放将被送到磁盘上的数据 引入 Disk Cache 的好处 : (1) 写盘时按 簇 进行, 以避免频繁地小块数据写盘 (2) 有些中间结果数据 现代存储器分级体系结构 在写回盘之前可被快速地再次使用 Contemporary Memory Hierarchy ( 现代结构 )

层次化存储器结构 (Memory Hierarchy) To CPU From CPU Upper Level Memory Block X Lower Level Memory Block Y 数据总是在相邻两层之间复制传送 Upper Level: 上层更靠 CPU Lower Level: 下层更远离 CPU Block: 最小传送单位是一个定长块, 互为副本基于 程序访问问题 : 为什么这种层次化结构是有效的? 局部化 特点! 时间局部性 (Temporal Locality) 含义 : 刚被访问过的单元很可能不久又被访问做法 : 让最近被访问过的信息保留在靠近 CPU 的存储器中 空间局部性 (Spatial Locality) 含义 : 刚被访问过的单元的邻近单元很可能不久被访问做法 : 将刚被访问过的单元的邻近单元调到靠近 CPU 的存储器中

加快访存速度措施之三 : 引入 Cache 大量典型程序的运行情况分析结果表明 在较短时间间隔内, 程序产生的地址往往集中在一个很小范围内这种现象称为程序访问的局部性 程序具有访问局部性特征的原因 指令 : 指令按序存放, 地址连续, 循环程序段或子程序段重复执行 数据 : 连续存放, 数组元素重复 按序访问 程序访问局部性分为空间局部性和时间局部性 基于程序访问的局部性使访存要求能快速得到响应 在 CPU 和主存之间设置一个快速小容量的存储器, 其中总是存放最活跃 ( 被频繁访问 ) 的程序块和数据, 由于程序访问的局部性特征, 大多数情况下,CPU 能直接从这个高速缓存中取得指令和数据, 而不必访问主存 这个高速缓存就是位于主存和 CPU 之间的 Cache! SKIP

Typical Memory Reference Patterns 下面用一个例子来说明!

程序的局部性原理举例 1 高级语言源程序 对应的汇编语言程序 sum = 0; for (i = 0; i < n; i++) sum += a[i]; *v = sum; I0: sum <-- 0 I1: ap <-- A A 是数组 a 的起始地址 I2: i <-- 0 I3: if (i >= n) goto done I4: loop: t <-- (ap) 数组元素 a[i] 的值 I5: sum <-- sum + t 累计在 sum 中 I6: ap <-- ap + 4 计算下算下个数组个数组元素地址 I7: i <-- i + 1 I8: if (i < n) goto loop I9: done: V <-- sum 累计结计结果保存至地址 v 主存的布局 : 0x0FC 0x100 0x104 0x108 0x10C 0x110 0x114 0x400 0x404 0x408 0x40C 0x410 0x414 I0 I1 I2 I3 I4 I5 I6 a[0] a[1] a[2] a[3] a[4] a[5] 指令A 数据每条指令 4 个字节 ; 每个数组元素 4 字节 指令和数组元素在内存中均连续存放 sum, ap,i, t 均为通用寄存器 ;A,V 为内存地址 0x7A4 V

程序的局部性原理举例 1 sum = 0; 问题 : 指令和数据的时间局部性和空间局部性各自体现在哪里? 指令 : 0x0FC(I0) 0x108(I3) 0x10C(I4) 0x11C(I8) 0x120(I9) 数据 : 只有数组在主存中 : 0x400 0x404 0x408 0x40C 0x7A4 数组元素按顺序存放, 也按顺序访问, 所以, 空间局部性好 ; 每个数组元素都被访问 1 次, 所以没有 时间局部性 循环 n 次 若 n 足够大, 则在一段 时间内一直在局部区域 内执行指令, 故循环内指令的时间局部性好 ; 按顺序执行, 故程序的空间局部性好! for (i = 0; i < n; i++) sum += a[i]; *v = sum; 主存的布局 : 0x0FC 0x100 0x104 0x108 0x10C 0x110 0x114 0x400 0x404 0x408 0x40C 0x410 0x414 0x7A4 I0 I1 I2 I3 I4 I5 I6 a[0] a[1] a[2] a[3] a[4] a[5] A 数V 指令据

程序的局部性原理举例 2 以下哪个对数组 A 引用的空间局部性更好? 时间局部性呢? 变量 sum 的空间局部性和时间局部性如何? 对于指令来说,for 循环体的空间局部性和时间局部性如何? 程序段 A: int sumarrayrows(int A[M][N]) { int i, j, sum=0; for (i=0; i<m, i++) for (j=0; j<n, j++) sum+=a[i][j]; return sum; } 程序段 B: int sumarraycols(int A[M][N]) { int i, j, sum=0; for (j=0; j<n, j++) for (i=0; i<m, i++) sum+=a[i][j]; return sum; } 0x0FC 0x100 for 循环体 0x17C 0x180 0x184 0x400 0x404 0xc00 0xc04 M=N=2048 时主存的布局 : I1 I2 I33 I34 I35 A[0][0] A[0][1] A[0][2047] A[1][0] A[1][1] 假定数组在存储器中按行优先顺序存放 A sum 指令数据

程序的局部性原理举例 2 程序段 A 的时间局部性和空间局部性分析 (1) 数组 A: 访问顺序为 A[0][0], A[0][1],, A[0][2047]; A[1][0], A[1][1],,A[1][2047];, 与存放顺序一致, 故空间局部性好! 因为每个 A[i][j] 只被访问一次, 故时间局部性差! (2) 变量 sum: 单个变量不考虑空间局部性 ; 每次循 环都要访问 sum, 所以其时间局部性较好! (3) for 循环体 : 循环体内指令按序连续存放, 所以 空间局部性好! 循环体被连续重复执行 2048x2048 次, 所以时间局 部性好! 0x0FC 0x100 for 循环体 0x17C 0x180 0x184 0x400 0x404 0xc00 0xc04 I1 I2 I33 I34 I35 A[0][0] A[0][1] A[0][2047] A[1][0] A[1][1] 指令A 数据sum 实际上优化的编译器使循环中的 sum 分配在寄存器中, 最后才写回存储器!

程序的局部性原理举例 2 程序段 B 的时间局部性和空间局部性分析 (1) 数组 A: 访问顺序为 A[0][0], A[1][0],, A[2047][0]; A[0][1], A[1][1],,A[2047][1];, 与存放顺 序不一致, 每次跳过 2048 个单元, 若交换 单位小于 2KB, 则没有空间局部性! ( 时间局部性差, 同程序 A) (2) 变量 sum:( 同程序 A ) (3) for 循环体 :( 同程序 A) 实际运行结果 (2GHz Intel Pentium 4): 程序 A:59,393,288 时钟周期程序 B:1,277,877,876 时钟周期 0x0FC 0x100 for 循环体 0x17C 0x180 0x184 0x400 0x404 0xc00 0xc04 I1 I2 I33 I34 I35 A[0][0] A[0][1] A[0][2047] A[1][0] A[1][1] 程序 A 比程序 B 快 21.5 倍!! BACK A sum 指令数据

Cache( 高速缓存 ) 是什么样的? Cache 是一种小容量高速缓冲存储器, 它由 SRAM 组成 Cache 直接制作在 CPU 芯片内, 速度几乎与 CPU 一样快 程序运行时,CPU 使用的一部分数据 / 指令会预先成批拷贝在 Cache 中,Cache 的内容是主 存储器中部分内容的映象 当 CPU 需要从内存读 ( 写 ) 数据或指令时, 先检查 Cache, 若有, 就直接从 Cache 中读取, 而不用访问主存储器 数据访问过程 : 48 9 10 14 3 主存储器 10 4 主存中的信息按 块 送到 Cache 中 0 1 2 3 Cache 存储器 4 5 6 7 8 9 10 11 12 13 14 15