缓存(续).

Slides:



Advertisements
Similar presentations
教师队伍建设 组员:王英利 赵香媖 侯娟. 主讲内容 2. 中小学教师队伍建设 1. 职业教育师资队伍建设国际比较 3. 高校教师队伍建设与管理.
Advertisements

《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
第五章 存储系统 5.1 存储器的构成 5.2 存储系统的构成 5.3 Cache 5.4 虚拟存储器.
Linux 系统. 操作系统发展需求 1 没有操作系统 2 简单批处理操作系统 3 多道程序设计的批处理 4 多道程序设计的分时操作系统 5 多处理机并行系统 6 网络操作系统 7 分布式操作系统.
第 4 章存储器、存储管理和 高速缓存技术 4.1 存储器和存储部件 4.2 存储器的连接 4.3 微型计算机系统中存储器的体系结构 4.4 Pentium 的虚拟存储机制和片内两级存储管理 4.5 高档微机系统中的高速缓存技术 第一次课 第二次课 第三次课.
企业产品成本核算制度(试行) 培训课件 河北涿州 2013年11月15日.
微机原理与接口技术 第二章: ARM微处理器硬件结构
计算机组成原理试题解析.
提 纲 三次考察与改革的回顾 1 学院三周来的新面貌 及下一步工作思路 2 凝心聚力、团结协作、狠抓落实 3.
——以通渭县图书馆青树小项目“携老上网游”为例
计算机系统结构 (第9讲).
第3单元 主存管理 第3节 分页存储管理 一页一页的放………… 怎么解决分段带来的碎片问题? 页与页框 地址映射 多级页表 快表 举例
营 改 增 政 策 交 流 烟台市国家税务局.
寫作教學—標點符號.
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
2013浙江省行测专题 密卷解析及备考冲刺 罗 姮.
第五讲:虚拟存储器(Virtual Memory)
第三章 心理安全 广西师范大学 罗蕾.
5.5 减少命中时间 容量小、结构简单的Cache 第五章 存储层次
层次结构存储系统 主要教学目标 理解CPU执行指令过程中为何要访存 理解访存操作的大致过程及涉及到的部件 了解层次化存储器系统的由来及构成
第五章 存储层次 5.1 存储器的层次结构 5.2 高速缓冲存储器基本知识 5.3 降低Cache不命中率的方法
第四章 存储体系.
Scheduling Key to multi-programming 多道程序设计的关键是调度
时间管理 -----高一团体辅导.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
计算机组成原理第四章 知识点一:存储系统层次结构和评价方法 主讲教师:吴非.
Cache综合应用案例 某计算机的主存地址空间大小为256 MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64 B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示: 程序A: int a[256][256]; …… int.
3.1 存储器的构成 3.2 存储系统的构成 3,3 Cache 3,4 虚拟存储器
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
第3章 存储系统 现代计算机系统以存储器为中心 3.1 存储系统原理 3.2 虚拟存储器 3.3 高速缓冲存储器(Cache)
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
OpenMP简介和开发教程 广州创龙电子科技有限公司
第3章 ARM体系结构.
CHAPTER 8 VIRTUAL MEMORY
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
带Cache的内核简要介绍.
第四章 内存管理 (lab2).
辅导课程六.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Chap 9 Memory Management 存储管理
逆向工程-汇编语言
CPU结构和功能.
如何赢一个机械键盘
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
第9章 虛擬記憶體 (virtual memory)
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
顺序表的删除.
2018 资产管理处 采购系统简介.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
计算机系统结构(2012年春) ----存储层次: Cache基本概念
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
信号量(Semaphore).
猜數字遊戲.
本节内容 Private Memory 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第六章 記憶體.
段式存储管理(Segmentation)
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第 四 章 迴歸分析應注意之事項.
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
3.1私有内存的分配.
波形平均和叠加分析指南 上海骐驰仪器有限公司 Shanghai Qichi Instruments Co. Ltd.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
英語職涯規劃 移民署職場生涯 5.2.1善用慈濟資源‧提升職涯就業力.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
快取映射 之直接對映 計算整理.
Presentation transcript:

缓存(续)

分析右侧代码,假设: sizeof(int) = 4 数组x开始于内存地址0x0并以行顺序存储 缓存开始为空 除数组外,局部变量保存于寄存器中 回答下列问题: 假设缓存为512字节、直接映射、块大小为16字节。不命中率是多少? 不命中率为100% 由于每次对x[1][i]的访问与前次对x[0][i]的访问冲突 如果将缓存大小加大一倍至1024字节,不命中率是多少? 不命中率为25% 因为整个数组可放进缓存,因此不命中只会发生于每个新块中首个数组元素的冷不命中,而每个块包含4个数组元素,因此1/4=25% 假设缓存为512字节、2路组相联且使用LRU 替换策略、块大小为16字节。不命中率是多少? 因为2路组相联使得x[1][i]和x[0][i]分别缓存于同一组的不同行中 ,因此不命中只会发生于每个新块中首个数组元素的冷不命中,因此1/4=25%

假设编写一函数用于清空显示屏幕,屏幕大小为640× 480 像素。计算机具有64 KB 直接映射的缓存,每行4字节。所用C结构如右图所示。 假设: sizeof(char) == 1,sizeof(int) == 4 数组buffer开始于内存地址0x0 缓存开始为空 除数组外,局部变量i、j、cptr、iptr等保存于寄存器中 右侧代码运行时会有多少比例的写操作不命中? 25% 每一像素结构为4字节,因此每一缓存行包含一结构 因此,对每一结构会出现1次不命中,后跟3次命中

分析右侧代码,假设: sizeof(int) = 4 数组square开始于内存地址0x0并以行顺序存储 缓存初始为空,大小为2048字节,直接映射,块为32字节 除数组外,局部变量i、j等保存于寄存器中 回答下列问题: 写操作的总数是多少? 1024 其中不命中的写操作的总数是多少? 256 对每一结构,发生1次不命中,后跟3次命中

数组square开始于内存地址0x0并以行顺序存储 缓存初始为空,大小为2048字节,直接映射,块为32字节 分析右侧代码,假设: sizeof(int) = 4 数组square开始于内存地址0x0并以行顺序存储 缓存初始为空,大小为2048字节,直接映射,块为32字节 除数组外,局部变量i、j等保存于寄存器中 回答下列问题: 写操作的总数数多少? 1024 其中不命中的写操作的总数是多少? 256 第一个循环执行256次写操作,而每一缓存行包含2个结构,因此1/2命中,1/2不命中 第二个循环执行768次写操作。对(一缓存行中)每组2个结构,发生1次冷不命中,后跟5次命中。因此循环将遇到128次不命中 因此,总共256+768 = 1024次写操作,其中 128+128 = 256次不命中

假设编写一函数用于清空显示屏幕,屏幕大小为640× 480 像素。计算机具有64 KB 直接映射的缓存,每行4字节。所用C结构如右图所示。 假设: sizeof(char) == 1,sizeof(int) == 4 数组buffer开始于内存地址0x0 缓存开始为空 除数组外,局部变量i、j、cptr、iptr等保存于寄存器中 下列代码运行时会有多少比例的写操作不命中? 25% 下列代码运行时会有多少比例的写操作不命中? 100%

对右图所示3个求和函数,假设计算机具有4KB直接映射缓存,每个内存块16字节,并且: sizeof(int) == 4 数组a开始于内存地址0x08000000 缓存开始为空 除数组外,局部变量i、j、sum等保存于寄存器中 计算缓存不命中率并填写下表: 25% 25% 100% 25% 50% 25%

第五讲:虚拟存储器(Virtual Memory) 虚拟地址空间、虚拟存储器的实现

缩写的含义 基本参数(按字节编址) N = 2n : 虚拟地址空间大小 M = 2m : 物理地址空间大小 P = 2p : 页大小 虚拟地址 (VA)中的各字段 TLBI: TLB index(TLB索引) TLBT: TLB tag(TLB标记) VPO: Virtual page offset (页内偏移地址) VPN: Virtual page number (虚拟页号) 物理地址(PA)中的各字段 PPO: Physical page offset (页内偏移地址) PPN: Physical page number(物理页号) CO: Byte offset within cache line(块内偏移地址) CI: Cache index(cache索引) CT: Cache tag(cache标记)

虚地址到物理地址的映射

页表 页表项示例

虚存与进程 虚存是每一进程具有独立的地址空间,同时支持不同进程对同一物理地址的共享访问。 虚存方便实现针对进程的页级内存访问保护。

页命中与页缺失处理流程

TLB - translation lookaside buffer

TLB命中与缺失

一个简化的存储系统举例 假定以下参数,则虚拟地址和物理地址如何划分?共多少页表项? 14-bit virtual addresses(虚拟地址14位) 12-bit physical address(物理地址12位) Page size = 64 bytes(页大小64B) 页表项数应为:214-6=256 13 12 11 10 9 8 7 6 5 4 3 2 1 VPO VPN Virtual Page Number Virtual Page Offset 11 10 9 8 7 6 5 4 3 2 1 PPO PPN Physical Page Number Physical Page Offset

一个简化的存储系统举例(续) 假定部分页表项内容(十六进制表示)如右: – 007 006 1 16 005 004 02 003 33 002 001 28 000 Valid PPN VPN 1 0D 02F 11 02E 2D 02D – 02C 02B 09 02A 17 029 13 028 Valid PPN VPN 假定部分页表项内容(十六进制表示)如右: 假定TLB如下:16 个TLB项,4路组相联,则TLBT和TLBI各占几位? 13 12 11 10 9 8 7 6 5 4 3 2 1 VPO VPN TLBI TLBT – 02 1 34 0A 0D 03 07 3 06 08 2 04 2D 00 09 Valid PPN Tag Set

一个简化的存储系统举例(续) 假定Cache的参数和内容(十六进制)如下:16 行,主存块大小为4B,直接映射,则主存地址如何划分? 11 10 9 8 7 6 5 4 3 2 1 PPO PPN CO CI CT 03 DF C2 11 1 16 7 – 31 6 1D F0 72 36 0D 5 09 8F 6D 43 32 4 3 08 04 02 00 1B 2 15 23 99 19 B3 B2 B1 B0 V Tag Idx – 14 F D3 1B 77 83 1 13 E 15 34 96 04 16 D 12 C 0B B 3B DA 93 2D A 9 89 51 00 3A 24 8 B3 B2 B1 B0 V Tag Idx

一个简化的存储系统举例(续) 假设该存储系统所在计算机采用小端方式, CPU执行某指令过程中要求访问一个16位数据,给出的逻辑地址为0x03D4,说明访存过程。 VPN ___ TLBI ___ TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____ 物理地址为 CO ___ CI___ CT ____ cache Hit? __ 数据: ____ 13 12 11 10 9 8 7 6 5 4 3 2 1 VPO VPN TLBI TLBT 0x0F 0x3 0x03 Y N 0x0D 问题:逻辑地址为0x0A7A、0x0507时的访存过程如何? TLB缺失/cache缺失、TLB缺失/缺页 11 10 9 8 7 6 5 4 3 2 1 PPO PPN CO CI CT 0x5 0x0D Y 0x7236

页表存储 大多数虚存实现方案将页表存储于虚存而不是实存(主存)中,即页表自身也会发生paging。 当一个进程运行时,至少一部分它的页表(包括当前执行使用到的页表项)要装入主存中 典型情况下,一个页表的最大尺寸与一页的大小相同 为减少页表的大小,一些处理器使用两级的页表组织: 第一级为页目录(page directory),其中每一目录项指向一个页表(第二级) 如果一页目录额长度为X且页表的最大长度为Y,则一个进程最大可访问X*Y个页

两级页表层次结构

两级页表结构实例(ARM处理器)

两级页表结构实例(Pentium处理器)

K级页表结构