目录

  • 第一章 计算机系统概述
    • 1.1 计算机硬件的发展
    • 1.2 计算机的分类和发展方向
    • 1.3计算机系统层次结构
      • 1.3.1冯诺依曼体系结构
      • 1.3.2 计算机的功能部件
      • 1.3.3 三个级别的语言
      • 1.3.4 计算机的工作过程
    • 1.4 计算机的性能指标
  • 第二章 数据的表示和运算
    • 2.1 数制与编码
    • 2.2 定点数的表示
    • 2.3 浮点数的表示
    • 2.4 算术逻辑单元ALU
  • 第三章 存储系统
    • 3.1 存储器概述
    • 3.2 存储器层次化结构
    • 3.3 半导体随机存储器
    • 3.4 主存储器与CPU的连接
    • 3.5 高速缓冲存储器
    • 3.6 虚拟存储器
  • 第四章 指令系统
    • 4.1 指令格式
    • 4.2 指令的寻址方式
    • 4.3 CISC和RISC
  • 第五章 中央处理器
    • 5.1 CPU结构和功能
    • 5.2 指令执行过程(重点)
    • 5.3 数据通路
    • 5.4 控制器
    • 5.5 指令流水线
  • 第六章 总线
    • 6.1总线概述
    • 6.2 总线仲裁
    • 6.3 总线操作和定时
  • 第七章 I/O系统
    • 7.1 I/O系统基本概念
    • 7.2 外部设备
    • 7.3 I/O接口

第一章 计算机系统概述

1.1 计算机硬件的发展

摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍;

1.2 计算机的分类和发展方向

计算机按指令和数据流可分为:
1、单指令流和单数据流系统(SISD),即传统冯诺依曼体系结构;
2、单指令流和多数据流系统(SIMD),即阵列处理器和向量处理器系统;
3、多指令流和单数据流系统(MISD),理论上不存在;
4、多指令流和多数据流系统(MIMD),包括多处理器和计算机系统;

计算机发展两极分化:微型化和巨型化;

1.3计算机系统层次结构

1.3.1冯诺依曼体系结构

特点
1、计算机硬件系统有运算器、存储器、控制器、输入设备和输出设备组成;
2、指令和数据以同等地位存储在存储器中,并可按地址寻访;
3、指令和数据均用二进制代码表示;
4、指令有操作码和地址码组成,操作码表示操作的性质,地址码表示操作数在存储器中的位置;
5、指令在存储器内按顺序存放,通常指令顺序执行,特定条件下可更改顺序;
6、早期冯诺依曼体系结构以运算器为核心,输入输出设备通过运算器与存储器传送数据;


而现代计算机以存储器为中心,使I/O操作尽可能绕过CPU,直接在I/O设备和存储器之间完成,提高运行效率;

1.3.2 计算机的功能部件

1、输入设备:将程序和数据以机器所能识别和接受的信息输入计算机;
2、输出设备:把计算机的处理结果以人们所能接受的形式输出;
3、存储器:CPU能直接访问的是主存,外存用于帮助主存存储更多的信息,外存中的信息必须调入主存才能被CPU访问;
4、运算器:用于进行算术运算和逻辑运算;
5、控制器:指挥各部件自动协调地进行工作;

1.3.3 三个级别的语言

机器语言:是计算机唯一可以直接识别和执行的语言;

汇编语言:用英文单词或缩写代替二进制的指令代码,更容易为人们记忆和理解,经过汇编程序翻译,转换位计算机的机器语言后,才能在计算机的硬件系统上执行;

高级语言:方便程序员写出解决方案的语言;高级语言->汇编语言->机器语言;

1.3.4 计算机的工作过程

大致分为以下三个步骤:
1、把程序和数据装入主存储器;
2、把源程序转换成可执行文件;
3、从可执行文件的首地址开始逐条执行指令;

1.4 计算机的性能指标

机器字长:计算机进行一次整数运算所能处理的二进制数据的位数;
数据通路带宽:数据总线一次所能并行传送信息的位数;
吞吐量:系统单位时间内处理请求的数量;
主频:机器内部主时钟的频率,衡量机器速度;
CPU时钟周期:主频的倒数,CPU中最小的时间单位;
CPI:执行一条指令所需的时钟周期数;

第二章 数据的表示和运算

2.1 数制与编码

真值:机器数所代表的实际值;
BCD码:采用4位二进制数来表示以为十进制数中的0~9这10个数码;剩下六种为冗余状态;

ASCII码:国际上普遍采用的一种字符系统,由7位二进制编码的ASCII码,共128个字符;

校验码:能够发现和自动纠错的数据编码,通过增加一些冗余码来检验或纠错编码;
包括奇偶效验码,海明校验码,循环冗余校验码(CRC)

Q:为什么要用二进制表示数据?
A:二进制只有0,1两个状态,能够表示0,1两种状态的电子器件很多,如开关断开、电位电平高低等,使用二进制,电子器件具有实现的可行性;且运算简单,使相关的硬件结构大大简化;且二进制0,1正好与逻辑代数的假、真相对应,有逻辑代数的理论基础;

Q:计算机在字长足够的情况下能够精确表示每个数吗?
A:字长足够时,能表示任何一个整数,但不可能表示出所有小数,只能无限逼近;

2.2 定点数的表示

定点整数:

定点小数:

原码:一种比较简单的、直观的机器数表示法,最高位表示符号,其余各位表示数的绝对值;

Q:为什么引入补码?
A:原码的加减法操作比较复杂,对于两个不同符号的加法,先要比较二者的绝对值大小,然后用绝对值大的数减去绝对值小的数,最后选择合适的符号,所以引入补码统一运算加减法;

定点数的移位运算:
1、算术移位:移位的对象是有符号数,移位过程中符号位保持不变;

2、逻辑移位:将操作数视为无符号数,逻辑左移时,高位丢弃,低位添0;逻辑右移时,低位丢弃,高位添0;
3、循环移位:移出的数据又被移入;

溢出:运算结果超过了数的表示范围,有上溢和下溢;

数据的大端方式和小端方式存储:
现代计算机基本采用字节编址,即每个地址编号中存放一个字节;
大端模式:高地址存放低字节(位);
小端模式:高地址存放高字节(位);

Q:为什么数据要按 边界对齐 方式存储?
A:对于机器字长为32位的计算机,数据以边界对齐方式存放,半字地址一定是2的倍数,字地址一定是4的倍数;这样无论所取得数据是字节、半字还是字,均可一次访存取出;这样虽然浪费了一些存储空间,但可提高取指令和取数的速度;

2.3 浮点数的表示

移码:表示浮点数的阶码;

规格化浮点数:
E和M都是有符号的定点数,E为阶码,M为尾数;

短浮点数共32位,8位阶码,以2位底,用移码表示,即阶码的偏置值为28-1=127,后23位(已隐含最高位1)是原码表示的尾数数值位;
长浮点数共64位,阶码11位,尾数数值52位;

2.4 算术逻辑单元ALU

ALU是一种功能较强的组合逻辑电路,能进行多种算术运算和逻辑运算;由于加减乘除最终都能归结为加法运算,因此ALU的核心首先应是一个并行加法器,同时也能执行与、或、非等逻辑运算;

第三章 存储系统

3.1 存储器概述

分类:
1、按在计算机中的作用分类

存储器 描述 特点
主存储器 存放计算机运行期间所需的大量程序和数据,CPU直接对其访问 容量较小、存取速度较快、价格高
辅助存储器 存放当前暂时不用的程序和数据,以及一些需要永久性保存的信息,无法直接与CPU直接交换信息 容量极大、存取速度慢、单位成本低
高速缓存Cache 主存和CPU之间,用于存放正在执行的程序段和数据。以便CPU高速地使用它们、存取速度和CPU速度相匹配 存储量小、价格高

2、按存取方式分类

存储器 描述 用途 特点
随机存储器RAM 其任何一个存储单元的内容都可以随机存取,存取时间与存储单元的物理位置无关 常用作主存 or 高速缓冲 读写方便、使用灵活,断电后,原保存的内容就会丢失
只读存储器ROM 存储器的内容只读出不写入,信息被初始化写入时边固定不变,内容也不会丢失 常用它存放固定不变的程序、常数、甚至用于OS的固化 断电内容保留、随机读取特性、但写入速度比读取速度慢得多
串行访问存储器 对存储单元读写时,按其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)和直接存取存储器(如磁盘) 存取速度慢

3.2 存储器层次化结构

Q:为什么引入多级存储系统?
A:为了解决存储系统大容量、高速度和低成本三个相互制约的矛盾;



Cache-主存层:速度接近于Cache,容量和成本接近于主存;
主存-辅存层:速度接进于主存,容量和成本接近于辅存;
但这两个层次中,上一层的内容都是下一层内容的副本,即Cache中的内容只是主存内容的一部分;主存中的内容只是辅存内容的一部分;

3.3 半导体随机存储器

一、SRAM与DRAM

半导体随机存储器 原理 优点 缺点 用途
动态随机存取存储器DRAM 利用电容内存储电荷的多少来代表一个二进制比特(bit)是1还是0 成本较低、容量大、功耗低 速度较慢 主机内存
静态随机存取存储器SRAM 采用双稳态触发器来记忆信息,只要保持通电,里面储存的数据就可以保持 存取速度快 集成度低、功耗大 高速缓冲

主存由DRAM实现,靠处理器的那一层(Cache)则由SRAM实现,它们都属于易失性存储器,一旦电源被切断,原来保存的信息便会丢失;

Q:为什么DRAM需要周期性地充电,即定时刷新?
由于在现实中晶体管会有漏电电流的现象,导致电容上所存储的电荷数量并不足以正确的判别数据,而导致数据毁损。因此对于DRAM来说,需要周期性地充电以保持稳定,即刷新;

DRAM刷新方式:

描述 优点 缺点
集中刷新 在一个刷新周期内,用一段固定时间对存储器所有行逐一再生,在此期间停止对存储器的读写操作,即“死时间"(访存”死区“) 读写操作时不受刷新工作的影响、存取速度较高 在死时间内不能访问存储器
分散刷新 把对每行的刷新分散到各个工作周期中,一个周期的前半部分正常读写,后半部分用来刷新 没有死区 增加系统存取周期,降低整机速度
异步刷新 前两种方式的结合,每 t (t=刷新周期/行数)时间刷新一行 避免CPU连续等待过长时间,减少刷新次数、缩短”死时间“ ,提高整机效率

刷新对CPU透明,刷新单位是行,因此刷新时仅需要行地址;

二、只读存储器ROM
ROM优点:
1、结构简单,所以位密度比可读写存储器的高;
2、具有非易失性,所以可靠性高;

ROM的类型

描述 特点
掩模式只读存储器 MROM的内容由厂商在生产时直接注入,写入以后任何人都无法改变其内容 可靠性高,集成度高、价格便宜、灵活性差
一次可编程只读存储器 PROM是可以实现一次性编程的只读存储器 允许用户利用专门的设备写入让自己的程序,一旦写入无法更改
可擦除可编程只读存储器 EPROM既可以利用编程器写入信息,且对内容进行多次读写,需要修改时要先将其内容全部擦除 既可读又可写,编程次数有限,写入时间过长
闪存FD 即可在不加电的情况下长期保存信息,又能在线进行快速擦除与重写 价格便宜、集成度高、可擦除写、重写速度快
固态硬盘SSD 保留了FM长期保存信息、快速擦除与重写的特性 读写速度快、功耗低、价格高

主存的组成:

指令执行过程需要访问主存时:
1、CPU先把被访问单元的地址送到MAR(地址寄存器)中,然后通过地址线单向将主存地址送到主存的地址寄存器,以便地址译码器译码选中对应单元;
2、CPU将读写信号通过控制线送到主存的读写控制电路;
3、如果是写操作,CPU将要写的信息送到MDR(数据寄存器)中,在读写控制电路的控制下,经数据线双向将信号写入选中单元;
4、如果是读操作,那么主存读出选中单元的内容送到数据线,然后送到MDR;
5、数据线宽度与MDR的宽度相同,地址线宽度与MAR宽度相同;

3.4 主存储器与CPU的连接


连接原理:
1、主存储器通过数据总线、地址总线和控制总线与CPU相连;
2、数据总线的位数与工作频率的乘积正比于数据传输率;
3、地址总线的位数决定可寻址的最大内存空间;
4、控制总线指出总线周期的类型和本次输入/输出操作完成的时刻;

主存容量扩展:
1、位扩展法:将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出;
2、字扩展法:增加存储器中字的数量,而位数不变。字扩展将芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围;
3、字位同时扩展法:既增加存储字的数量,又增加存储字长;实际上,存储器往往需要同时扩充字和位;

存储芯片的地址分配和片选

描述 优先 缺点
线选法 用除片内寻址外的高位地址线直接分别接到各个存储芯片的片选端,地址线为0时,选中对应存储芯片,片选地址线每次寻址时只能有一位有效,保证每次只选中一个芯片(组) 不需要地址译码器,线路简单 地址空间不连续,地址资源利用率低
译码片选法 用除片内寻址外的高位地址线通过地址译码器芯片产生片选信号 需要地址译码器支持 地址利用率高

存储器与CPU的连接:
1、合理选择存储芯片;
2、地址线的连接;
3、数据线的连接;
4、读/写命令线的连接;
5、片选线的连接;

3.5 高速缓冲存储器

Q:为什么引入高速缓存存储器?
CPU 和内存访问性能的差距非常大,甚至有上百倍的差异,为了弥补两者之间的性能差异,充分利用 CPU,现代 CPU 中引入了高速缓存(CPU Cache);

局部性原理
1、时间局部性;
2、空间局部性;
高速缓冲技术就是利用程序访问的局部性原理,把程序中正在使用的部分存放在一个高速的、容量较小的Cache中,使CPU的访存操作大多数针对Cache进行,从而大大提高程序的执行速度;

Cache基本工作原理:

缓存行(Cache Line):高速缓存的最小单元,一次从内存中读取的数据大小。常用的 Intel 服务器 Cache Line 的大小通常是 64 字节。

Q:Cache命中,若Cache与主存的内容不一致怎么办?
A:由于CPU写Cache,把Cache某单元内容X修改成X‘,而主存对应内容仍是X,没有改变;若Cache命中,按一定的 写策略 处理,常见的有全写法和写回法;

写策略 描述 优点 缺点
全写法/直通法 设立写缓冲(FIFO队列,解决速度不匹配问题),CPU同时写数据到Cache和写缓冲中,写缓冲再将内容写入主存 实现简单,随时保持主存数据的一致性 增加访存次数,降低Cache效率
写回法 CPU对Cache写命中时,只修改Cache的内容(设立修改位),而不立即写入主存,只有当此块被换出时才写回主存 减少访存次数 存在不一致隐患

Cache不命中的处理办法

特点
写分配法 加载主存中的块到Cache中,然后更新这个Cache块,利用局部性
非写分配法 只写入主存,不进行调块

非写分配法通常与全写法合用,写分配法通常和写回法合用;

Cache与主存的映射方式

映射方式 描述 优点 缺点
直接映射 主存中的每一块只能装入Cache中的唯一位置,若这个位置已有内容,则产生块冲突,原来的块被无条件替换出去 实现简单、开销小、耗时短 不够灵活、命中率低
全相联映射 主存中的每一块可以转入Cache的任何位置,每行的标记用于指出该行取自主存的哪一块,CPU访存时需要和所有Cache行的标记进行比较 灵活,冲突概率低,空间利用率高、命中率高 开销大、耗时长,实现成本高
组相联映射 将Cache空间分成大小相同的组,主存的一个数据块可以装入一组内的任何一个位置,组间采取直接映射,组内采取全相联映射,折中 块冲突概率低,成本低、性能高 较复杂

Cache中主存块的替换算法:

替换算法 描述 特点
随机算法 随即替换Cache块 实现简单,但不根据局部性原理,命中率较低
FCFS 最早调入的行进行替换 容易实现,但同样不遵守局部性原理
LRU 采用计数器,计数值代表主存块使用情况近期长久未使用的行作为替换的行 命中率高,类似堆栈类算法
最不经常使用算法 一段时间内被访问次数最少的存储行换出,同样设置计数器 -

Q:发生取指令Cache缺失的处理过程是什么?
1、程序计数器恢复当前指令的值;
2、对主存进行读的操作;
3、将读入指令写入Cache中,更改有效位和标记位;
4、重新执行当前指令;

3.6 虚拟存储器

虚拟存储器:虚拟存储器将主存或辅存的地址空间编制,形成一个庞大的地址空间,在这个空间内用于可以自由编程,而不必在乎实际的主存容量和程序在主存中实际的存放位置

一、页式虚拟存储器
以页为基本单位的虚拟存储器;虚拟空间和内存空间都被划分为同样大小的页;虚拟地址到物理地址的转换由页表实现,页表是一张存放在主存中的页号和物理块号的对照表,记录程序的页面调入主存时被安排在主存中的位置;

CPU执行指令时,先将虚拟地址转换为主存物理地址,每个进程有一个页表寄存器,存放该进程的页表首地址,然后根据虚拟地址高位部分的虚拟页号找到对应页表项,若装入位为1,则取出物理块号,和虚拟地址地位部分的页内地址拼接,形成实际物理地址;若装入位为0,则说明缺页,需要OS进行缺页处理;

二、快表TLB
Q:为什么引入快表?
A:未引入快表的页式虚拟存储,访存时先访问一次主存查页表,再访问主存才能取得数据,如果缺页还要进行页面置换等,引入虚拟存储后,访存次数更过了;而引入快表后,在查页表之前先查快表,如果有记录,则直接与偏移量形成物理地址从而只需一次访存;降低访存次数,提高运行效率;

原理:局部性原理
经常访问的页对应的页表项放在高速缓存器组成的快表中,可明显提高效率;主存中的页表即为慢表;


情况1:无须访问主存;
情况2、3:需要一次访存;
情况4:需要两次访存;
情况5:至少需要两次访存;
Cache缺失处理由硬件完成;而缺页处理由软件完成;

三、段式虚拟存储器
段按程序的逻辑结构划分的,各个段的长度因程序而异;
优点
段的分界与程序的自然分界相对应,具有逻辑独立性,易于编译、管理、修改和保护,便于多道程序的共享;
缺点
段长度可变,分配空间不变,容易产生外部碎片;

四、段页式虚拟存储器
兼具页式和段式虚拟存储器的优点,按段实现共享和保护,但地址变换时需要两次查表,开销较大;

五、虚拟存储器与Cache的比较
相同点:
1、最终目的都是为了提高系统性能,两者皆由容量、速度、价格的梯度;
2、都把数据划分了小信息块,并作为基本的传递单位,虚存系统的信息块更大;
3、都有地址的映射、置换算法、更新策略等思想;
4、依据局部性原理应用快速缓存的思想,将活跃的数据放在相对高速的部件种;

区别:

虚拟存储器 Cache
主要作用不同 解决主存容量 解决系统速度
实现不同 由OS和硬件共同时间,逻辑上的存储器 全由硬件实现,对所有程序员透明
不命中影响不同 主存速度约为硬盘100倍,虚拟存储器不命中对系统性能影响更大 CPU的速度约为Cache的10倍
是否直接访问 不命中时,只能先由硬盘调入内存,而不能直接和CPU通信 Cache不命中时,主存能和CPU直接通信

第四章 指令系统

4.1 指令格式

指令(机器指令):表示计算机执行某种操作的指令,是计算机运行的最小功能单位;位于硬件和软件的交界面上;

基本格式

操作码字段 地址码字段

操作码指出指令要执行什么样的操作和具有何种功能;
地址码则给出被操作的信息(指令或数据)的地址;

1、零地址指令

OP

只给出操作码OP,没有显式地址;
有两种可能:
1、不需要操作数的指令:空操作指令、停机指令、关中断指令等;
2、零地址的运算类指令仅用在堆栈类计算机中,参与运算的两个操作数依次隐含地从栈顶弹出,送到运算器运算,运算结果再隐含地压入堆栈;

2、一地址指令

OP A1

常见形式,两种可能:
1、按A1地址读取操作数,进行OP操作后,结果返回源地址; OP(A1)->A1;(A1)代表通过地址A1取得的对应操作数;
2、隐含越大双操作数指令,按指令地址A1读取源操作数,指令可隐含约定另一操作数由ACC(累加器)提供,运算结果也放在ACC中;(ACC)OP(A1)->ACC;

3、二地址指令

OP A1 A2

(A1)OP(A2)->A1;目的操作数地址用于操作本次运算结果;

4、三地址指令

OP A1 A2 A3(结果)

(A1)OP(A2)->A3;完成一条三地址指令需要四次访存(取指令一次、取两个操作数2次,存放结果1次)

5、四地址指令

OP A1 A2 A3(结果) A4(下址)

(A1)OP(A2)->A3,A4为下一条将要执行指令的地址;

Q:为什么引入扩展操作码指令?
为了在指令字长有限的前提下仍保持比较丰富的指令种类,采取可变长度操作码,即全部指令的操作码字段的位数不固定,且分散地放在指令字地不同位置上,但会让控制器地设计复杂化;

设计扩展操作码指令格式的要求:
1、不允许断码是长码地前缀;
2、各指令地操作码一定不能重复;

4.2 指令的寻址方式

寻址方式:寻找指令或操作数有效地址的方式,即确定本条指令地数据地址和下一条待执行指令的地址的方法;
EA=(A)即有效地址是地址A中的数值,A可以是寄存器编号或者内存地址;

指令寻址有两种:
1、顺序寻址:通过程序计数器PC 加1(1个指令字长),自动形成下一条指令的地址;
2、跳跃寻址:通过转移类指令实现;即下一条指令的地址码由本条指令直接给出或给出其计算方式;也可给出绝对地址和相对地址(相对偏移量),跳跃的结果是当前指令修改PC值,所以下一条指令仍通过PC给出;

数据寻址
格式如下:

操作码 寻址特征 形式地址A

寻址方式:

寻址方式 描述 优点 缺点
隐含寻址 指令中隐含操作数的地址,即累加器ACC对单地址指令来说是隐含寻址 有利于缩短指令字长 增加存储操作或隐含地址的硬件
立即(数)寻址 指令的地址字段指出的不是操作数的地址,而是操作数本身,即立即数 指令执行阶段不访问主存、执行时间最短 A的位数限制了立即数的范围
直接寻址 形式地址A是操作数的真实地址,即EA=A,其实给出的是偏移量,因为操作数存放在数据段中,物理地址即为数据段寄存器DS+形式地址 简单,仅一次访存 A的位数决定了该指令操作数的寻址范围,操作数地址不易修改
间接寻址 形式地址是操作数有效地址所在存储单元的地址,即操作数地址的地址 可扩大寻址范围 n级间接寻址需n+1级访存,访问速度慢
寄存器寻址 在指令字中直接给出操作数所在的寄存器编号EA=Ri 不需要访,指令字短,速度快 寄存器个数有限
寄存器间接寻址 在寄存器Ri中给出的不是一个操作数,而是其所在主存单元的地址,即EA=(RI) 比一般间接寻址速度快 需访存,因为操作数在主存中
相对寻址 把PC的内容加上形式地址A而形成操作数的有效地址,即EA=A+(PC),A代表相对于当前指令地址的位移量; 操作数地址不固定 -
基址寻址 指将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A形成有效地址,EA=(BR)+A,基址寄存器可采用专业/通用寄存器 面向OS可扩大寻址范围 ,有利于多道程序设计 偏移量A的位数较短
变址寻址 EA等于指令字中的A与变址寄存器IX的内容之和,即EA=A+(IX) 面向用户,变址寄存器的内容由用户设定
堆栈寻址 堆栈中读写单元的地址是用堆栈指针SP给出分硬堆栈(寄存器堆栈)和软堆栈(从主存中划分一段区域作为堆栈) 大部分指令表现为无操作数形式,因为隐含SP


相关寄存器和汇编指令

<reg>表示任意寄存器,若带数字,则指定其位数;
[var] var值指示的内存地址所存放的值(有多少字节由数据类型决定);
<con>表示常数;mov 将第二个操作数复制到第一个操作数,不能直接从内存复制到内存;
push <reg> 将操作数压入内存的栈(栈中元素固定为32位),常用于函数调用;
pop [ebx] 将栈顶元素送到ebx值所指示的内存地址中;
add/sub <reg>,<reg>两个操作数相加/减,结果保存到第一个操作数中;
inc/dec eax 将操作数自加/减1;
imul <reg>,<reg> 带符号整数乘法,结果放第一个操作数中;
not <reg> 取反
neg <reg> 取负
shl/shr eax,1 逻辑移位指令,将eax值左移/右移一位;
jmp <label>控制IP(执行当前指令的指令指针IP)跳转到操作数所指向的地址;
cmp <reg> <reg>比较两操作数的值,结果设置处理机状态字中的条件码;
call <label>将当前执行指令地址入栈,然后无条件转移到由标签指示的指令,即保存调用之前的地址信息(当call结束后,返回调用之前的地址)
ret 实现子程序的返回机制,ret弹出栈中保存的指令地址,无条件转移到保存的指令地址执行;call和ret是函数调用中最关键的两条指令;

4.3 CISC和RISC

Q:精简指令系统计算机RISC比复杂指令系统计算机CISC好在哪?
1、占芯片面积少,CISC控制器大多采用微程序控制,其在CPU芯片内所占面积达50% ,而RISC采用组合逻辑控制,其仅占CPU芯片面积10%
2、运算速度快, 指令数、寻址方式等种类少,设多个通用寄存器,采用流水线技术,运算速度快;
3、便于设计,成本低、因指令系统简单,逻辑简单,可靠性高;
4、有利于编译程序代码优化,适当调整指令顺序即可使代码执行高效化;

第五章 中央处理器

5.1 CPU结构和功能

功能
1、指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制;
2、操作控制:把各种操作信号送往相应部件按指令要求动作;
3、时间控制:对各操作加上实践上的控制;
4、数据加工:对数据进行算术和逻辑运算;
5、中断处理:对计算机运行过程中出现的异常情况和特殊情况进行处理;

基本结构
1、运算器:接受从控制器送来的命令并执行相应的动作,对数据进行加工和处理;
包括:

算术逻辑单元:进行算术/逻辑运算;
暂存寄存器:暂存从主存读来的数据,该数据不能放在通用寄存器中,否则会破坏其原有内容;暂存寄存器对程序员透明;
累加寄存器:是一个通用寄存器,暂存ALU运算的结果,可做加法运算的输入端;
通用寄存器组:AX、BX、CX、DX、SP等,用于存放操作数和各地址信息;
程序状态字寄存器:保留有算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OF)、符号标志(SF)等;
移位器:对操作数or运算结果移位;
计数器:控制乘除运算的操作步数;

2、控制器:根据指令的要求指挥全机协调工作,每条指令的执行是由控制器发出的一组微操作实现的;
包括:

程序计数器PC:指出下一条指令在主存中的存放地址;CPU根据PC的内容去主存中取指令;自带自增功能;
指令寄存器:保存当前正在执行的那条指令;
指令译码器:进队操作码字段进行译码,向控制器提供特定的操作信号;
存储器地址寄存器:存放要访问的主存单元的地址;
存储器数据寄存器:存放向主存写入的信息或从主存读取的信息;
时序系统:产生各种时序信号,都有统一时钟CLOCK分频得到;
微操作信号发生器:根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制信号;

5.2 指令执行过程(重点)

指令周期:CPU从主存中取出并执行一条指令的时间,不同指令的指令周期可能不同;

CPU采用中断方式实现主机和I/O设备的信息交换时,CPU在每条指令执行结束前,都要发出中断查询信号,若有中断请求,则进入中断响应阶段,即中断周期;

完整的指令周期包括:取指、间址、执行和中断;

1、取值周期即根据PC中的内容从主存中取出指令代码放在IR中;FE
2、间址周期即取操作数的有效地址; IND
3、执行周期即根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果; EX
4、中断周期为了保存断点; INT

5.3 数据通路

数据通路:数据在功能部件之间传送的路径;

相关部件有:ALU、通用寄存器、状态寄存器、异常和中断处理逻辑;
功能:实现CPU内部的运算器与寄存器及寄存器之间的数据交换;

基本结构:
1、CPU内部单总线方式;
2、CPU内部三总线方式;
3、专用数据通路方式;

5.4 控制器

功能:
1、从主存中取出一条指令,并指出下一条指令在主存中的位置;
2、对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作;
3、指挥和控制CPU、主存、输入和输出设备之间的数据流动方向;

控制器分两类:
1、硬布线控制器:根据指令要求、状态,按时间发送一序列微操作控制信号,由逻辑门电路和触发器构成,又称组合逻辑控制器
2、微程序控制器:采用存储逻辑实现,把微操作信号代码话,每条指令都转化成一段微程序并存入专门的控制存储器中,微操作控制信号由微指令产生;

5.5 指令流水线

指令流水线:一条指令的执行过程可分为多个阶段(取值、分析、执行),即把一个重复的过程分解为若干子过程,每个子过程与其他子过程并行执行;


影响指令流的因素:
1、资源冲突:多条指令在同一时刻争用统一资源而形成的冲突
解决方法:单一指令访存时,使后一条相关指令(及后续指令)暂停一个时钟周期;
单独设置数据存储器和指令存储器,两项操作分开;

2、相关问题:相邻指令存在某种关联,使指令流水线出现听到、降低流水线的效率
1)数据冲突/冒险:下一条指令会用到上一条指令的结果;
2)控制冲突/冒险:一条指令要确定下一条指令的位置;

第六章 总线

6.1总线概述

总线:一组能为多个部件分时共享的公共信息传送线路;

分时:同一时刻只允许有一个部件向总线发送信息;若系统有多个部件,则它们只能分时地向总线发送信息;
共享:总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享;

分类:
1、片内总线:芯片内部总线,是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线;
2、系统总线:分数据总线、地址总线、控制总线;
3、通信总线:计算机系统之间传送信息的总线,即外部总线;

总线结构:

描述 优点 缺点
单总线结构 将CPU、I/O设备、主存都挂在一组总线上,允许它们直接直接交换信息 结构简单、成本低、易接入新的设备 带宽低、负载重、多部件争用主线
双总线结构 主存总线(COU、主存、合同的之间传送数据),I/O总线(外部设备与通道之间传送数据) 将低速I/O设备从单总线上分离 需要增加通道等硬件设备
三总线结构 主存总线(CPU与内存之间传输数据、地址、控制信息)、I/O总线(CPU与外设通信)、DMA总线(内存和高速外设直接传送数据) 提高I/O设备性能,更快响应命令,提高吞吐量 系统工作效率低

6.2 总线仲裁

为解决多个主设备同时竞争总线控制权的问题,引入总线仲裁部件,以某种方式选择一个主设备优先获得总线控制权;

集中仲裁方式:将所有总线请求集中起来,利用一个特定的裁决算法进行裁决;
三种:
1、链式查询方式;
2、计数器定时查询;
3、独立请求;

分布仲裁方式:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁号和仲裁器,自己有请求时,会把各自唯一的仲裁号发送到共享的总裁总线上,每个仲裁器都与仲裁总线上的仲裁号比较,优先级最高的总线请求得到响应;

6.3 总线操作和定时

总线操作分四个阶段:
1、申请分配阶段;
2、寻址阶段;
3、传输阶段;
4、结束阶段;

定时方式:
1、同步定时方式;
2、异步定时方式;分不互锁方式、半互锁方式、全互锁方式;

第七章 I/O系统

7.1 I/O系统基本概念

接口:在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件;协调包括传输过程中的速度匹配、电平和格式转换;

I/O控制方式:
1、程序查询方式
2、程序中断方式
3、DMA方式
4、通道方式

7.2 外部设备

外存
目前主要使用磁表面存储器,具有以下特点:
1、容量大、位价格低;
2、记录介质可重复使用;
3、记录信息可长期保存而不丢失,甚至脱机存档;
4、非破坏性读出;
5、存取速度慢、机械结构复杂、对环境要求高;

磁盘地址

驱动器号 柱面(磁道)号 盘面号 扇区号

7.3 I/O接口


接口不同于端口,端口指接口电路中可以进行读/写的寄存器,若干端口加上相应的控制逻辑才可以组成接口;

接口按数据传送方式可分为:
1、并行接口(一字节or一个字的所有位同时传送)
2、串行接口(一位一位地传送)

读书笔记——计算机组成原理相关推荐

  1. [读书笔记] 计算机组成原理 唐朔飞 (二)系统总线

    系统总线 一.基本概念 二.总线的分类 一.基本概念 计算机系统五大部件互联方式:分散连接.总线连接 分散连接:各部件之间使用单独的连线 总线连接:各部件连到一组公共信息传输线 总线:连接多个部件的信 ...

  2. 408复习笔记——计算机组成原理(三):存储系统

    408笔记系列(十一)(PS:本人使用的是王道四本书和王道视频) 计算机组成原理:(三)存储系统 前言 一.简介 二.主要内容 1. 存储器的组成 2. 存储器的分类 3. CPU与主存 4. 高速缓 ...

  3. 蒋本珊计算机组成原理知识点笔记,计算机组成原理习题答案解析(蒋本珊)

    1. WORD格式.整理版 第一章 电子数字计算机和电子模拟计算机的区别在哪里?解:电子数字计算机中处理的信息是在时间上离散的数字量,运算的过程是不连续的:电子模拟计算机中处理的信息是连续变化的物理量 ...

  4. 学习笔记|计算机组成原理小分块-按字寻址、按字节寻址

    教材:<计算机组成原理>第二版 作者:唐朔飞 出版社:高等教育出版社 这里查了很多资料,但是还是有点懵,欢迎大家来纠错哇! 先修知识: 位(bite): 音译为"比特" ...

  5. 计算机组成原理唐朔飞高分笔记,计算机组成原理唐朔飞高分笔记资料.doc

    计算机组成原理 [考查目标] 1. 理解单处理器计算机系统中各部件的内部工作原理,组成结构以及相互连接方式,具有完整的计算机系统的整机概念. 2. 理解计算机系统层次化结构概念,熟悉硬件与软件间的界面 ...

  6. 计算机组成原理唐朔飞高分笔记,计算机组成原理唐朔飞高分笔记【参考】.doc...

    试卷内容结构数据结构 45分 计算机组成原理 45分 操作系统 35分 计算机网络 25分 试卷题型结构单项选择题 80分(40小题,每小题2分) 综合应用题 70分 计算机体系结构(Computer ...

  7. 读书笔记——计算机基础之操作系统

    目录 第一章 计算机系统概述 1.1 操作系统的基本概念 1.1.1 操作系统的概念 1.1.2 操作系统的特征 1.1.3 操作系统的目标和功能 1.2 操作系统的发展与分类 1.3 操作系统的运行 ...

  8. [读书笔记]计算机程序设计艺术第一卷

    今天早上送了老婆去上班后,终于把<<计算机程序设计艺术>>第一卷给看完一遍了,应该说过了一遍,因为里面很多证明和数学推理我并没有动手做,所以脑袋里也就只知道第一卷是讲什么和此套 ...

  9. 学习笔记 计算机组成原理_名词解释

    一.计算机系统概述 中央处理器(CPU): 是计算机的核心部件,有运算器和控制器组成. 算数逻辑单元(ALU): 用来进行基本的算术和逻辑运算,ALU最基本的部件是加法器 数据通路:是指指令执行过程中 ...

最新文章

  1. 如果让学生轻松过关,他们就对老师心存轻蔑
  2. 企业架构(EA)美国之行
  3. 14. 不修改数组找出重复的数字【难度: 一般 / 知识点: 抽屉原理 二分】
  4. boost::multiprecision模块mpfi相关的测试程序
  5. [BUUCTF-pwn]——ciscn_2019_en_2
  6. RESTful API实现APP订餐实例
  7. Golang笔记-面向对象编程-多态/类型断言
  8. 关于封装的一个小问题和TA的例子
  9. api 微信内置浏览器js_微信小程序和HTML的区别
  10. FreeRTOS(2)---学习FreeRTOS前的准备工作
  11. STM32f407---oled屏幕配套取字模软件使用
  12. php使用RabbitMQ
  13. VC 界面库皮肤库相关信息珍藏
  14. html怎么添加视频旋转,拍摄的视频如何旋转 三种方法教你旋转视频
  15. es6 箭头函数 模板字符串 点点点运算符
  16. android 源码导入android studio中(仿佛打开了新世界)
  17. 复信号与信号的I/Q值
  18. 零基础入门学习Python视频(全42集)
  19. 单机版fastDFS安装
  20. Karabiner Elements键盘改键神器出汉化版啦

热门文章

  1. Python_collections_Counter计数器部分功能介绍
  2. 去除Vue在WebStorm中报命名空间的错误
  3. spring resttemplate中的转码
  4. 基础知识学习-数据结构篇
  5. 对于函数式编程的新理解
  6. RLock(递归锁)
  7. _技巧_Chrome_Vimium插件_纯键盘控制浏览器
  8. 关于DIV嵌套(二):div嵌套div水平垂直居中
  9. 【bzoj1742】[Usaco2005 nov]Grazing on the Run 边跑边吃草 区间dp
  10. Nodejs V8引擎 fast property lookup