第4章 现代微机的存储系统.

Slides:



Advertisements
Similar presentations
第七章 半导体存储器 《数字电子技术》7.1 概述 7.2 只读存储器( ROM ) 7.5 用存储器实现组合逻辑函数 7.4 存储器的扩展 7.3 随机存储器( RAM ) 7.6 集成芯片简介及应用举例.
Advertisements

《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
第 4 章存储器、存储管理和 高速缓存技术 4.1 存储器和存储部件 4.2 存储器的连接 4.3 微型计算机系统中存储器的体系结构 4.4 Pentium 的虚拟存储机制和片内两级存储管理 4.5 高档微机系统中的高速缓存技术 第一次课 第二次课 第三次课.
第四章 存储系统 4-1 存储系统概论 4-2 RAM(随机读写存储器) 4-3 ROM(只读存储器) 4-4 高速缓冲存储器(Cache)
Strata PC HTE硬件技术工程师 第一章 桌面计算机系统组件.
第二章 微型计算机系统 2.1基本术语和基本概念 硬件与软件
第3章 奔腾系列微处理器.
第6章 半导体存储器 6.1 概述 6.2 随机读写存储器(RAM) 6.3 只读存储器(ROM) 6.4 存储器的扩展
第6章 存储系统 计算机教学实验中心.
第2章 主机 李渊林 本章要点   CPU 主板 2.3   内存 2.4 机箱和电源.
复习回顾 2.2 计算机硬件系统 2.1 计算机发展概述 1、芯片组的作用是什么? 1、计算机分为几代?主要元器件是什么?
计算机导论 第4讲 微型计算机硬件系统 1.
第6章 存储器和高速缓存技术.
半导体存储器 第四章 半导体存储器.
>> 第三章 中文Windows XP >> 第四章 中文文字处理系统Word 2003
第一章 计算机基础知识 第一节 计算机概述 一、计算机的基本组成和工作原理 二、有关术语 三、计算机发展简史 四、微型计算机概述
第一节 存储器的构成 第二节 存储系统的构成 第三节 Cache 第四节 虚拟存储器
第七章 单片机存储器的扩展.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
主讲教师:唐大仕 第5讲 计算机硬件 主讲教师:唐大仕
第2章 Intel IA-32/Intel 64处理器 结构与原理
第8章 现代微型计算机 x86系列微处理器 8.2 微型计算机体系结构 8.3 存储管理技术 8.4 多任务管理与I/O管理
第5章 中央處理單元與主記憶體 5-1 中央處理單元-CPU 5-2 主記憶體.
基本硬體介紹 1.主機板 2.CPU(運算中心) 3.記憶體(RAM-短暫記憶資料處) 4. 硬碟(HDD儲存資料處) 5.顯示卡(接螢幕)
Hadoop I/O By ShiChaojie.
第五章 存储系统 半导体存储器概述 系统内存扩充 高速缓冲存储器 虚拟存储器 PC系列机中的主存储器 习题与思考 上一章 目 录 帮助
第六章 存贮器 6.1 存储器概述 6.2 随机存取存储器(RAM) 6.3 只读存储器(ROM) 6.4 CPU与存储器的连接.
第 6 章 存储系统 6.1 概述 存储器的层次结构 存储器的分类 存储器的基本组成
第5章 存储系统.
总 复 习.
计算机组成原理 武汉科技大学 计算机科学与技术学院
存储系统.
第2章 電腦硬體的架構及功能.
单片机应用技术 项目一 循环彩灯装置 第2讲 51单片机的结构与引脚 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
微机原理与接口技术 第5章 80X86_88存储系统 黄强 深圳大学 信息工程学院.
计算机维修与维护 第三章 内存储器 教学目的: 教学重点(难点): 教学用具:各种类型内存储器若干 教学课时:2课时
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第5章 半导体存储器 存储器基本概念 随机存取存储器(RAM) 只读存储器(ROM) 存储器连接与扩充应用 微机系统的内存结构.
1.3 微型计算机的结构和工作原理.
逆向工程-汇编语言
CPU结构和功能.
第二章 80x86计算机组织 x86微处理器 2.2 基于微处理器的计算机系统构成 2.3 中央处理机 2.4 存储器
第12章 半导体存储器 孙卫强.
任务一:初识计算机 任务二:学习计算机中的信息表示 P /4/7.
微机原理与接口技术 西安邮电大学计算机学院 王忠民.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
熟能生巧、每日一练: 五分钟打字练习.
第5章 存储器 5.1 存储器概述 5.2 半导体存储芯片结构及使用 位系统的存储器接口.
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
(Random Access Memory)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
本节内容 段描述符与段选择子 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
第七章 半导体存储器.
猜數字遊戲.
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
微型计算机原理与接口技术 (第2版) 赵宏伟 于秀峰 黄永平 秦贵和 北京:科学出版社 出版 吉林大学计算机科学与技术学院 制作.
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
段式存储管理(Segmentation)
微机原理与接口技术 ——8086微处理器 西安邮电大学 计算机学院 范琳.
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
微机原理与接口技术 西安邮电大学计算机学院 宁晓菊.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第三章 半导体存储器及其接口 第一节 概述 第二节 半导体存储器 第三节 半导体存储器与CPU接口 一、存储器的分类
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第九章 存储器和可编程逻辑器件 本章主要内容 半导体存储器 只读存储器 随机存取存储器 存储器容量的扩展 可编程逻辑器件
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第4章 现代微机的存储系统

4.1 现代微机存储器系统概述 4.1.1 半导体存储器技术 1. 只读存储器ROM(Read Only Memory) ROM在正常工作的时候只能读出其中存放的数据,而不能改变其内容。因此ROM经常被用来存放哪些固定不变,无需修改的数据与程序 。 ROM的最大特点是掉电以后,数据不会丢失,通电后可以继续使用。

ROM 将已定型的程序和数据固化在其中,之后就不再更改。 PROM 称为可编程ROM。允许用户向其中写入一次数据或程序,之后其中的数据就不可再更改。 EPROM 称为可擦除的PROM。其中的数据可以通过紫外线照射而被擦除,之后可以再次写入新的数据。 EEPROM 称为电可擦除可编程ROM(又写为E2PROM)。其擦除和改写无需紫外线,只需特定的电信号即可。这种存储器的存取速度较慢。 Flash Memory 称为闪烁存储器(闪存)。也是电可擦除和更改型的ROM存储器,采用块擦除阵列结构,具有存储容量大、读取速度快、信息非易失、功耗低、可在线读写,抗干扰能力强、掉电信息不丢失等特点,目前被广泛应用。

2. 随机存取存储器RAM(Random Access Memory) 在正常工作时就能随时对其数据进行读写操作的存储器,其对数据的修改是在正常工作状态,而无需特别的写入环境。 RAM的读写速度一般都比ROM快,而且存取任一单元所需的时间相同。 RAM在掉电的时候会将其存储的数据丢失。

SRAM 称为静态RAM(static RAM)。只要电源不掉电,内部存放的数据就不会丢失。SRAM的最大特点就是速度快。 DRAM 称为动态RAM(dynamic RAM)。它用MOS管的栅极对其衬底间的分部电容来保存信息。需要定期刷新。DRAM的最大特点就是集成度高。 NVRAM 称为非易失RAM(Non Volatile RAM)。它是SRAM和EEPROM的共同体,正常工作时是SRAM存储数据,一旦掉电,就会自动的将数据转存到EEPROM中,重新上电后,数据又会自动的从EEPROM恢复到SRAM中。

常用的DRAM类型 SDRAM(Synchronous DRAM, 同步动态随机存储器)。将RAM与CPU以相同的时钟频率进行控制,彻底取消等待时间。 DDR SDRAM(Double Data Rate SDRAM,双倍速率 SDRAM)。 DDR SDRAM能够在时钟的上升期和下降期各传输一次数据,因此一个时钟周期内可传输两次数据。 DDR2 SDRAM。DDR2拥有两倍于DDR的预读取能力(4bit数据读预取)。即DDR2每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。

4.1.2 内存的主要性能指标 (1)存储容量 内存所能容纳的二进制的总位数,一个有K位地址线,L位数据线的存储芯片所拥有的容量为2K×L位。 (2)存取速度 指从内存单元将数据读到存储数据寄存器或从存储数据寄存器将数据写到内存单元所需的时间,前者为读取时间,后者为写入时间。 (3)可靠性 内存可靠性用平均无故障时间(MTBF)来衡量。也可以看作是两次故障之间的时间间隔。MTBF越长,可靠性越高。 (4)性能/价格比 性能主要是指上面三项,对不同的用途,侧重点会有所不同。

4.1.3 现代微机的存储结构 CPU内 的寄存器 L1 数据Cache L1 代码Cache L2 Cache L3 Cache 内部存储器(内存) 外部存储器(外存) 外存Cache

4.2 现代微机的系统地址映射 4.2.1 传统地址范围(实地址模式) 1MB 0FFFFFH 系统BIOS(上端) 64KB 4.2 现代微机的系统地址映射 4.2.1 传统地址范围(实地址模式) 960KB 640KB 768KB 896KB 0F0000H 0EFFFFH 0E0000H 0DFFFFH 0C0000H 0A0000H 0BFFFFH 09FFFFH 0FFFFFH 1MB 00000H DOS区 传统视频区 (SMM存储器) 128KB 扩充区 128KB(16 KB8) 扩展系统BIOS(低端) 64KB(16KB4) 系统BIOS(上端) 64KB

4.2.2 主存储地址范围(1MB-TOLUD) 兼容DOS存储(传统地址范围) 0MB 10000H 主存储区 1MB 0H 15MB 0F0000H TOLUD 100000H ISA Hole(可选) TSEG(1MB/2MB/8MB可选) IGD(1~64MB可选) PCI存储范围 APIC Flash Memory 最大4GB 0FFFFFFFFH

4.2.3 PCI存储地址范围(TOLUD-4GB)

4.3 IA-32结构保护模式下的存储管理 4.3.1 保护模式下的段式存储管理 1. 段式管理的地址变换 45(77) 32(64) 4.3.1 保护模式下的段式存储管理 1. 段式管理的地址变换 45(77) 32(64) 31(63) 0 逻辑地址 段寄存器的15~2位 偏移量 段基址 段描述符 段表 物理地址 32(64)位线性地址

2. 段描述符 D7 D0 段界限 7~0 段界限 15~8 基址 7~0 基址 15~8 基址 23~16 基址 31~24 TYPE S AVL DPL P G D/B L 段界限 19~16 1 2 3 4 5 6 7

D7 D0 G D/B L AVL 段界限 19~16 用户的操作系统可用位 1=在64位模式,0=在兼容或IA-32模式 D/B位 G=0 段长以1字节为单位 粒度位 G=1 段长以4K字节为单位 D=1 使用32位操作系统和32位寻址方式 代码段(D位) D=0 使用16位操作系统和16位寻址方式 D/B位 B=1 使用ESP寄存器,上限为FFFFFFFFH 数据段(B位) B=0 使用SP寄存器,上限为FFFFH

非系统段中的第5字节 扩展方向位 数据段标志 可写位 可执行位 D7 D0 A W R ED C E=0 E=1 S=1 DPL P 存在位 兼容位 访问位 特权位 代码段标志 可读位 S=1是非系统段 S=0是系统描述符

系统描述符中的TYPE

选择符(段寄存器) 索引 Ti RPL Ti=0 Ti=1 选择符 界限 界限 基址 GDTR LDTR 15 2 1 0 索引 Ti RPL Ti=0 Ti=1 LDT …… …… LDT 2 2 1 1 LDT GDT 选择符 界限 界限 基址 基址 GDTR LDTR

#include "stdafx.h" #include <stdio.h> #include <wtypes.h> // wtypes.h定义了WORDLONG, //DWORD,WORD等数据类型 DWORDLONG gdtr,savegdt; //下面是GDT中将创建的数据段描述符表,基地址0X00000F00, //段界限为0XFFFF,优先级为3的在内存中的可写数据段 WORD descriptor[4]= {0xFFFF, 0X0F00, 0XF200, 0X0040}; int result[10]; int main(int argc, char* argv[]) {_asm { push ebp sgdt gdtr // 将GDTR寄存器的内容读取到 //gdtr开始的6个字节中,其中 // 前两个字节给出GDT的界限值, //高4个字节给出GDT的基地址

mov ebp,dword ptr [gdtr+2] // 将gdt的基 add ebp,70h // 我们选择70H偏移下的段描述 // 符(GDT中第14个描述符) lea edi,savegdt mov esi,ebp movsd // 以上4条指令保存原来在70H偏移上 movsd // 的描述符 mov edi,ebp lea esi,descriptor; movsd // 把我们的数据段描述符装入70H movsd // 偏移上 push es mov ax,0073h // 选择字为描述符偏移70H拼接上 // 低3位控制位元,其中Ti为0,表 // 示访问GDT,RPL为11,为3级优 // 先级,所以就为73H

mov es,ax // ES装入选择字73H lea edi,result // 将存放输出结果的变量 //的地址放在EDI中 mov eax,1 mov ebx,1 } _asm { mov cx,10 a1: mov es:[eax],eax add eax,4 loop a1 // 上面4条指令将向物理地址 // 0X00000F00处写10个双字 a2: mov eax,es:[ebx] mov [edi],eax

add ebx,4 add edi,4 loop a2 // 以上从物理地址0X00000F00 // 处依次读出10个数据存放在 // result数组中 } _asm { pop es pop ebp printf("result="); for(int i=0;i<10;i++) printf("%d,",result[i]);// 输出结果 return 0;

4.3.2 保护模式下的虚拟页式存储管理 主存 程序1 ~ 页面 程序2 页框 程序3

PAE PSE 物理地址位数 页面大小 32位 4KB 1 4KB/4MB 36位 4KB/2MB PGE PCE 8 31 7 6 5 4 3 2 1 0 MCE PAE PSE DE TSD VME PVI 保留,缺省为全0 CR4 PAE PSE 物理地址位数 页面大小 32位 4KB 1 4KB/4MB 36位 4KB/2MB

32位物理地址下的4KB分页方式 页目录 32位线性地址 页目录项号 页面号 偏移 CR3 32位物理地址 31 22 21 12 11 0 31 22 21 12 11 0 页表 低12位 高20位 31 12 11 9 8 7 6 5 4 3 2 1 0 PWT PCD 页表基地址31~12 P RW US G AVL A D 页目录项 页框基地址31~12 G PAT 页表项 31 12 11 9 8 7 6 5 4 3 2 1 0 P=出现位,US=用户/监督位,PCD是页Cache禁止,D=Cache“脏”位,RW=读/写位,PWT=页写贯穿位,A=访问位,AVL=用户的操作系统可用位。而第7位(PS)在4KB分页中为0

32位地址模式下的4MB分页方式 31 22 21 0 32位线性地址 页目录项号 偏移 CR3 低22位 32位物理地址 高10位 页目录 31 22 21 0 页目录 低22位 高10位 31 22 13 12 11 9 8 7 6 5 4 3 2 1 0 PWT PCD 页框基地址31~22 P RW US A D 1 页目录项 PAT AVL G

36位地址下的4KB分页方式地址转换 PCD PWT 31 5 4 3 2 1 0 CR3寄存器 31 5 4 3 2 1 0 PWT PCD 32字节对齐的PDPT基地址 CR3寄存器 63 36 35 12 11 9 8 5 4 3 2 1 0 P AVL PDPT项 4KB对齐的页目录基地址(高24位) 32位线性地址 页目录项号 页面号 偏移 CR3 36位物理地址 31 30 29 21 20 12 11 0 页目录 页表 PDPT项号 页目录指针表 4×64位 512×64位 低12位 高24位 63 36 35 12 11 9 8 7 6 5 4 3 2 1 0 PWT PCD 4KB对齐的页表基地址 P RW US AVL A 页目录项 4KB对齐的页框基地址 D 页表项 63 36 35 12 11 9 8 7 6 5 4 3 2 1 0 G

36位地址下的2MB分页方式地址转换 32位线性地址 页目录项号 偏移 CR3 36位物理地址 31 30 29 21 20 0 页目录 31 30 29 21 20 0 页目录 PDPT项号 页目录指针表 4×64位 512×64位 页目录项 PWT PCD 2MB对齐的页框基地址 P RW US AVL A D 63 36 35 21 20 13 12 11 9 8 7 6 5 4 3 2 1 0 1 G 低21位 高15位 PAT

IA-32e模式下的4KB内存分页结构项的格式 PWT PCD PML4基地址 P RW US A 63 62 51 39 12 11 9 8 7 6 5 4 3 2 1 0 AVL PML4表 EXB PDPT表 页目录基地址 63 62 51 39 12 11 9 8 7 6 5 4 3 2 1 0 页目录项(4KByte页表) 63 62 51 39 12 11 9 8 7 6 5 4 3 2 1 0 0 0 0 页表(4KByte页表) 63 62 51 39 12 11 9 8 7 6 5 4 3 2 1 0 G PAT D

IA-32e模式下4KB分页方式地址转换

IA-32e模式下的2MB内存分页结构项的格式 PML4表 63 62 51 39 12 11 9 8 7 6 5 4 3 2 1 0 EXB AVL PML4基地址 AVL A PCD PWT US RW P PDPT表 63 62 51 39 12 11 9 8 7 6 5 4 3 2 1 0 EXB AVL 页目录基地址 AVL A PCD PWT US RW P 页目录项(4MB页表) 63 62 51 39 13 12 11 9 8 7 6 5 4 3 2 1 0 EXB AVL 页目录基地址 PAT AVL AVL G 1 D A PCD PWT US RW P

IA-32e模式下2MB分页方式地址转换

4.4 高速缓冲存储器Cache 4.1.1 Cache的工作原理与地址映射 1. Cache的工作原理

2. Cache的地址映像 1) 直接映像 主存中的每一页都映像到高速缓存中的一个固定页,而高速缓存中的每一页却对应着主存中的若干页。 2) 全相联映像 全相联映像技术允许主存中每一个页面映像到Cache的任何一个页面位置上,也允许采用某种替换算法从已占满的Cache中替换出任何一个旧页面。这种方式冲突概率低,可达到很高的Cache命中率,但实现起来比较困难。 3)组相联映像 将主存空间按Cache大小等分成组,再将Cache空间和主存空间中的每一组都等分成大小相同的块,使得主存中一个组内的页数与Cache中的分块数相同。各组之间是直接映像,而组内各块之间则是全相联映像。

3. Cache的读写操作 存储器读 访问页面在Cache中——直接读Cache,不读主存 访问页面不在Cache中—— · 贯穿读出式:页面从主存读到Cache,再到CPU · 旁路读出式:页面直接从主存读到CPU,而不 经过Cache 存储器写 · 写回法:写Cache页时不写主存,到下次页面修改时再写主存。 · 写贯穿法:页面在写到Cache时同时写到主存,以保持主存与Cache的相关页的内容一致

4.4.2 IA-32的Cache结构 物理存储器 系统总线 L3 Cache* L2 Cache (外部) 数据Cache(L1) 总线接口单元 Instruction TLBs Data TLBs 存储缓冲 指令译码器 跟踪Cache**/L1指令Cache * Intel Xeon 处理器才有 ** 跟踪Cache只有Pentium 4才有

Core Solo,Core Duo,Core 2,Pentium 4中L1和L2Cache行和Intel Xeon 处理器的L1 、L2和L3 Cache行都是64字节。 一个Cache行可以使用8个突发传送事件来填满。Cache不支持部分Cache行的填充。 TLBs存储最近用过的页目录和页表项。他们通过降低访问主存中页表的次数来加快页表的访问。 处理器的Cache对软件来说基本上是透明的。 对Cache行为的了解有助于优化软件的性能。

4.4.3 IA-32的Caching类型 强不可缓存(Strong Uncacheable,UC)型:主存单元的读写不使用Cache。所有读和写都只针对主存,并且以程序的次序执行而不会重排序。 不可缓存(Uncacheable,UC-)型:和UC存储器具有一些相同的特征,不过这种存储器类型可以通过对WC类型存储器的MTRRs编程来撤消。 写组合(Write Combining,WC)型:和UC-存储器一样,主存单元的读写不使用Cache,并且处理器总线的一致性协议也没有被强制使用。

写贯穿(Write-through,WT)型:对主存的读或写操作都使用Cache。如果Cache命中,则读操作将会直接读Cache行,如果没有命中则会引起一个Cache填充事件。所有的写在可能的情况下都被写入到Cache行,并且同时写到主存中。 写回(Write-back,WB)型:对主存的写和读操作都使用Cache。如果Cache命中,则读操作将会直接读Cache行,如果没有命中则会引起一个Cache填充事件。写操作被写到Cache中。被修改的Cache行,在稍后才被写到主存中。 写保护(Write-protected,WP)型:读操作在可能的情况下是从Cache行中读数据, 读操作没有命中Cache时会引起Cache填充。写操作被传送到内存中,而且导致在系统总线上的所有处理器中的相应Cache行变为无效。

Cache不同类型的特点

4.4.4 IA-32的Cache一致性协议 MESI(Modified、Exclusive、Shared、Invalid)Cache一致性协议是一种写-无效监听协议。它跟踪存储器数据变化,保证了一个Cache行数据更新以后,能够和所有与它的地址有关联的存储单元保持数据的一致性。

已修改(Modified):指出Cache行数据已被更新,但该更新不会送上系统总线,因此此时的Cache行内容与主存及其它Cache的不一样。当该Cache控制器之后监听到该行再次命中,必须将修改行的数据写回存储器,以保持数据一直; 独占(Exclusive):指出这个Cache行的数据与主存相联地址的内容一样,并且其它Cache中不包括此Cache行的内容; 共享(Shared):指出此Cache行的内容存在于几个Cache当中,在每个相关的Cache行和存储器行里都存放了这行内容的副本; 无效(Invalid):复位以后的无效状态,指示这一Cache行无效。

IA-32 MESI Cache行状态