6、深入理解计算机系统笔记:存储器层次结构,存储技术(1)

简介: 1、如果你的程序需要的数据是存储在CPU寄存器中的,那么在执行期间,在零个周期内就能访问到它们。如果存储在高速缓冲中,需要1~10个周期。如果存储在主存中,需要50~100个周期。如果存储在磁盘上,需要约20000000个周期。

1、如果你的程序需要的数据是存储在CPU寄存器中的,那么在执行期间,在零个周期内就能访问到它们。如果存储在高速缓冲中,需要110个周期。如果存储在主存中,需要50100个周期。如果存储在磁盘上,需要约20000000个周期。<?xml:namespace prefix = o />

2、随机访问存储器(RAMRandom-access memory)分为两类-静态和动态的。静态RAMSRAM)比动态RAMDRAM)更快,但也贵很多。SRAM用来作为高速缓存存储器,即可以在CPU芯片上,也可以不在CPU芯片上。DRAM用来作为主存以及图形系统的帧缓冲区。

3、静态RAM

SRAM将每个位存储在一个双稳态(bistable)存储器单元(cell)中。每个单元是用一个六晶体管电路来实现的。这个电路的一个属性是:它可以无限制地保持在两个不同的电压配置(configuration)或状态(state)之一。其他任何状态都是不稳定的。

由于SRAM的双稳态特性,只要有电,它就会永远地保持它的值,即使有干扰,如电子噪音,当干扰消除,电路也能恢复到稳定值。

4、动态RAM

DRAM将每个位存储为对电容的充电。电容约为30×10-15F

泄露电流的各种因素会导致DRAM单元在10~100毫秒内失去电荷。计算机运行的时钟周期是以纳秒来衡量的。

wps_clip_image-15072

wps_clip_image-22405

    计算机界,倾向于把DRAM的阵列单元称为单元(cell),电路设计者倾向于称之为字(word)。这里称为supercell

wps_clip_image-9383

从图中可以看出,二维阵列组织的缺点就是必须分两步发送地址,这增加了访问时间。

5168个管脚的双列直插存储器模块(Dual Inline Memory Module,DIMM),它以64位为块传送数据到存储控制器和从存储控制器传出数据;72个管脚的单列直插存储器模块(Single Inline Memory Module,SIMM),它以32位为块传送数据。

6SDRAMsynchronous DARM,同步DRAM),SDRAM用与驱动存储器相同的外部时钟信号的上升沿来代替许多这样的控制信号。

DDR SDRAMdouble data-rate synchronous DRAM,双倍数据数率同步DRAM)。DDR SDARM是对SDRAM的一种增加,它通过使用时钟的两个边沿作为控制信号,从而使DRAM的速度翻倍。

7EEPROMelectrically erasable programmable ROM,电子可擦除PROM),类似于DPROM,但是它不需要一个物理上独立的编程设备,因此可以直接在印制电路卡上编程。EEPROM能够编程的次数量级可达10e5次。闪存(flash memory)是一个类小的非易失性存储器,基于EEPROM,支持插拨。

8、存储在ROM设备中的程序通常称为固件(firmware)。

9、访问主存

读事务(read transaction)从主存传送数据到CPU;写事务(write transcation)从CPU传送数据到主存。

总线是一组并行的导线,能携带地址,数据,的控制信号。

wps_clip_image-11195

1)读事务语句

movl A,%eax;

CPU将地址A放到存储器总线->主存从总线读出A,接收字x,然后将x放到总线上->CPU从总线读出字x,并将它copy到寄存器eax中。

2)写事务语句

movl %eax,A

CPU将地址A放到存储器总线,主存读出这个地址,等待接收数据字->CPU将数据字y放到总路上->主存从总线读数据字y,并将它存储在地址A

<Computer Systems:A Programmer's Perspective>

目录
相关文章
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
484 3
|
2月前
|
存储 安全 Java
ConcurrentHashMap 深度解析:从 JDK7 到 JDK8 的演进与并发安全保障
本文详解 Java 中 `ConcurrentHashMap` 的演进:JDK7 采用分段锁(Segment)提升并发性;JDK8 重构为 CAS + synchronized + 红黑树,支持并发扩容与更优查询性能。对比差异,剖析线程安全机制与使用要点。
275 12
|
11月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
420 80
|
9月前
|
机器学习/深度学习 数据采集 搜索推荐
企业大数据的“超级大脑”:AIIData数据中台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
企业大数据的“超级大脑”:AIIData数据中台
|
消息中间件 存储 负载均衡
🔥产品:直播送礼延迟这么大,你就不能快点吗
先赞后看,南哥助你Java进阶一大半其实抖音的实时音视频技术RTC,是来源于火山引擎RTC的支持,抖音、火山引擎、巨量引擎属于字节跳动公司旗下的不同业务板块。我是南哥,一个Java学习与进阶的领路人。相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
631 6
🔥产品:直播送礼延迟这么大,你就不能快点吗
|
Android开发 开发者
HarmonyOS基础组件:Button三种类型的使用
本文介绍HarmonyOS中的Button使用,随着HarmonyOS明年不再兼容Android原生功能,学习其开发语言变得重要。相比Android,HarmonyOS的Button功能更丰富、扩展性更高,支持三种样式(普通、胶囊、圆形)及自定义样式,减少代码量并简化使用方式。常用属性包括type、backgroundColor、fontSize等,构造函数灵活配置。文章通过示例展示了如何实现带图片和文字的自定义Button,体现了HarmonyOS强大的UI绘制能力和便捷性。
1132 0
|
监控 网络架构 负载均衡
|
Shell Python
Python中os模块的常用方法和示例
在Python中,`os`模块提供了与操作系统交互的函数,用于文件和目录管理、路径操作、环境变量等。常用方法包括路径操作(如`os.path.join()`、`os.path.abspath()`)、文件和目录管理(如`os.mkdir()`、`os.remove()`)、环境变量和进程管理(如`os.getenv()`、`os.system()`)以及其他常用功能(如`os.getcwd()`、`os.urandom()`)。
827 0
|
存储 对象存储 Docker
搭建私有docker仓库并使用OSS作为存储
本文主要是演示如果快速搭建一个私有的docker仓库,并且使用OSS作为存储,docker的用法以及docker仓库的更多设置,不在本文讨论范围
9563 122
|
网络协议 中间件 编译器
C语言的应用场景
C语言的应用场景