
深入理解计算机系统
文章平均质量分 72
Kiefer_lin
这个作者很懒,什么都没留下…
展开
-
深入理解计算机系统(七)
6.2 局部性 局部性原理 :倾向于引用邻近于其他最近引用过的数据项的数据项,或者最近引用过的数据项本身。 时间局部性 :被引用过一次的内存位置很可能在不远的将来再被多次引用。 空间局部性 :一个内存位置被引用了一次,很可能在不远的将来引用附近的一个内存位置。 硬件层面 ,局部性原理允许计算机设计者通过引入称为 高速缓存存储器 来保存最近被引用的指令和数据项,从而提高对主存的访问速度。 操作系统层面 ,局部性原理允许系统使用主存作为虚拟地址空间最近被引用块的高速缓存。 6.3 存储器层次结构 6.3.1原创 2021-10-16 21:49:18 · 363 阅读 · 0 评论 -
深入理解计算机系统(六)
访问主存 数据流通过称为 总线(bus) 的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间的数据传送都是通过一系列步骤来完成的,这些步骤称为 总线事务(bus transaction)。读事务(read transaction) 从主存传送数据到CPU。写事务(read transaction) 从CPU传送数据到主存。 计算机系统的主要部件有CPU芯片、IO桥接器(芯片组,包括内存控制器),以及组成主存的DRAM内存模块。 当CPU执行如下读事务会发生什么? movq .原创 2021-10-07 12:00:41 · 471 阅读 · 0 评论 -
深入理解计算机系统(五)
第六章 存储器层次结构 6.1 存储技术 6.1.1 随机访问存储器 随机访问存储器(Random-Access Memory, RAM)分为两类,静态的和动态的。 静态RAM SRAM将每个位存储在一个双稳态的(bistable)存储器单元里。所谓双稳态,就是存在两个稳定状态,其余状态都是不稳定,会迅速转移到两个稳定状态中的一个。 由于SRAM存储器单元的双稳态特性,只要有电,它就会永远地保持它的值。即使有干扰来扰乱电压,当干扰消除时,电路就会恢复到稳定值。 动态RAM DRAM将每个位存储位对一原创 2021-10-01 00:46:36 · 307 阅读 · 0 评论 -
深入理解计算机系统(四)
第三章 程序的机器级表示 3.2 程序编码 3.2.1 机器级代码 对于机器级编程来说,有两种抽象尤为重要。第一种是由指令集体系结构或指令集架构(Instruction Set Architecture,ISA)来定义机器级程序的格式和行为,它定义了处理器状态、指令的格式,以及每条指令对状态的影响。第二种是机器级程序使用的内存地址是虚拟内存地址,提供的内存模型看上去是一个非常大的字节数组。 程序内存包含:程序的可执行机器代码,操作系统需要的一些信息,用来管理过程调用和返回的运行时栈,以及用户分配的内存块(比原创 2021-09-24 11:41:00 · 499 阅读 · 0 评论 -
深入理解计算机系统(三)
2.2.4 有符号数和无符号数之间的转换 2.2.6 扩展一个数字的位表示 要将一个无符号数转换为一个更大的数据类型,在表示的开头加0。这种运算被称为零拓展。 要将一个补码数字转换为一个更大的数据类型,在表示的开头加1。这种运算被称为符号拓展。 2.2.7 截断数字 对于无符号数,x_1 = x mod 2^k 对于补码,x_1 = x mod 2^k,再将(无符号数) x_1 转换为补码。 2.4 浮点数 2.4.2 IEEE浮点表示 2.4.4 舍入 向偶数舍入 :将数字向上或者向下舍入,使得结果原创 2021-09-19 16:55:38 · 229 阅读 · 0 评论 -
深入理解计算机系统(二)
第二章 信息的表示和处理 2.1 信息存储 2.2.2 无符号数的编码 无符号数的编码的定义如下: 2.2.3 有符号数的编码——补码编码 有符号数就是第一位为符号位,后面的都为有效位。计算机中最常见的对有符号数的编码就是用补码。补码编码的定义如下: 对于正数和0而言,符号位都为0,所以其补码也是原码本身。 对于负数而言,符号位为1,有效位为2^w - abs(x)。2^w = 有效位权重和 + 1,且一个数的取反本质就是所有位的权重和 - 这个数,所以补码的有效位 = 原码的有效位取反 + 1。例如-原创 2021-09-13 00:23:55 · 167 阅读 · 0 评论 -
深入理解计算机系统(一)
第一章 计算机系统漫游 1.1 信息就是位 + 上下文 计算机中信息其实都是由0和1所组成的串,0和1就是比特,也叫位。而计算机为了识别这些01串所表达的意思,也就需要区分不同数据对象,唯一的方法就是靠数据对象的上下文。 1.2 程序被其他程序翻译成不同的格式 预处理阶段:预处理器(cpp)识别以字符 # 开头的命令。比如导入头文件时,将头文件中的文件内容插入程序文本中,得到以 .i 作为文件拓展名的文件。 编译阶段:编译器(ccl)将 .i 文件翻译成 .s 文件,此时为汇编程序。 汇编阶段:汇编器(原创 2021-09-05 20:51:40 · 488 阅读 · 0 评论