首页
学习
活动
专区
圈层
工具
发布
23 篇文章
1
深入理解计算机系统(2.1)------信息的存储和表示
2
深入理解计算机系统(序章)------谈程序员为什么要懂底层计算机结构
3
深入理解计算机系统(1.1)------Hello World 是如何运行的
4
深入理解计算机系统(1.3)------操作系统的抽象概念
5
深入理解计算机系统(1.2)------存储设备
6
深入理解计算机系统(2.2)------进制间的转换原理
7
深入理解计算机系统(2.7)------二进制小数和IEEE浮点标准
8
深入理解计算机系统(2.3)------布尔代数以及C语言运算符
9
深入理解计算机系统(2.6)------整数的运算
10
深入理解计算机系统(2.4)------整数的表示(无符号编码和补码编码)
11
深入理解计算机系统(2.5)------C语言中的有符号数和无符号数以及扩展和截断数字
12
深入理解计算机系统(3.1)------汇编语言和机器语言
13
深入理解计算机系统(3.2)------程序编码以及数据格式
14
深入理解计算机系统(2.7)------浮点数舍入以及运算
15
深入理解计算机系统(3.4)------算术和逻辑操作
16
深入理解计算机系统(3.5)------特殊的算术操作指令
17
深入理解计算机系统(3.3)------操作数指示符和数据传送指令
18
深入理解计算机系统(3.6)------汇编的流程控制
19
深入理解计算机系统(3.7)------过程(函数的调用原理)
20
深入理解计算机系统(3.8)------数组分配和访问
21
深入理解计算机系统(4.2)------逻辑设计和硬件控制语言HCL
22
深入理解计算机系统(4.1)------Y86指令集体系结构
23
深入理解计算机系统(5.1)------优化程序性能

深入理解计算机系统(1.2)------存储设备

  上一章我们讲解了hello world 程序在计算机系统中是如何运行的。 hello 程序的机器指令最初是存放在磁盘上的,当程序加载时,他们被复制到主存;当处理器运行程序的时候,指令又从主存复制到处理器。相似的,数据串"Hello World" 初始时在磁盘上,然后复制到主存,最后从主存上复制到显示设备。

  从程序员的角度来看,上面的复制就是开销,减缓了程序的真正工作。因此如何将这些复制操作尽快完成则是系统设计者的一个主要目标。

1、从磁盘加载可执行文件到主存

 2、将输出字符串从内存写到显示器

3、高速缓存存储器

  那么如何减少这种由数据复制所引起的开销呢?

  根据机械原理,较大的存储设备比 较小的存储设备运行的慢,而快速设备的造价远高于同类的低速设备。类似的,一个典型的寄存器文件只存储几百字节的信息,而主存里可以存放几十亿字节。然而处理器从寄存器文件中读数据的速度要比从主存中读取几乎快100倍。而且随着半导体技术的进步,这两者差距还在加大。因此加快处理器的运行速度比加快主存的运行速度要容易和便宜的多。针对这种处理器和主存之间的差异,系统设计者采用了更小、更快的存储设备,也就是高速缓存存储器(简称高速缓存),作为暂时的集结区域,用来存放处理器近期可能会需要的信息,类似于Java Web 框架的缓存机制。如下图:

4、存储设备的金字塔结构 

   在处理器和一个又大又慢的设备(比如主存)之间插入一个更小更快的存储设备(例如高速缓存)的想法已经是一个普遍的观念。实际上,每个计算机系统中的存储设备都被组织成了一个存储器层次结构。如下图所示:

   存储器层次结构的主要思想是一层上的存储器作为低一层存储器的高速缓存,因此,寄存器文件就是L1的高速缓存,L1是L2的高速缓存,L3是主存的高速缓存,而主存又是磁盘的高速缓存。

  正如可以运用不同的高速缓存的知识来提高程序性能一样,程序员同样可以利用对整个存储器层次结构的理解来提高程序性能。这个后面我们会详细讲解。

 5、本章总结

   本章主要介绍了高速缓存的产生的原理以及存储器设备的层次结构,如何理解整个存储器的层次结构,对于提高程序性能有很大的帮助。下一章将讲解操作系统的抽象概念。

下一篇
举报
领券