欢迎光临散文网 会员登陆 & 注册

原理笔记

2023-06-13 09:02 作者:bili_75877260277  | 我要投稿

第一章 计算机系统概述

1.计算机发展历程

1.1 硬件的发展

1.四代变化:


①第一代计算机:电子管时代。使用机器语言编程,体积大,成本高;

②第二代计算机:晶体管时代。软件开始使用高级语言,操作系统雏形;

③第三代计算机:中小规模集成电路时代。高级语言发展迅速,开始有分时操作系统;

④第四代计算机:超大规模集成电路时代。产生微处理器,并行,高速缓存等新概念;


2.元件的更新换代


1.摩尔定律–》2.半导体存储器–》3.微处理器的发展。


①微型计算机的发展以微处理器为标志。

②传统冯诺依曼体系采用 单指令流,单数据流方式。


1.2 软件的发展

经历了面向机器的机器语言和汇编语言,面向问题的高级语言。

高级语言的发展又经历了科学工程计算的FORTRAN -->结构化设计的PASCAL --> 面向对象的C++ -->适应网络的Java。


2.计算机系统结构层次

2.1 计算硬件的基本组成

输入设备:将信息转为计算机能识别的形式输入。

输出设备:将计算机处理结果以人们能认识的形式输出。

存储器:计算机的存储部件,用来存放程序和数据。

运算器:是计算机的执行部件,进行算数和逻辑运算。

控制器:指挥中心,协调各部件工作。

2.2 早期冯诺依曼

提出“存储程序”概念。存储程序将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直到程序执行结构。


冯诺依曼体系的特点:


1.由五大部件组成。

2.指令和数据以同等地位存于存储器,可按地址寻访。

3.指令和数据用二进制表示。

4.指令由操作码和地址码组成。

5.指令在存储器内按顺序存放。

6.早期冯诺依曼以运算器为中心。现代存储器已经以存储器为中心,使IO尽可能绕过CPU


现代计算机结构:




2.3 认识各个部件

1.输入设备

2.输出设备

3.存储器


①也称主存储器,CPU能直接访问的存储器是主存储器,辅助存储器(外存)用来帮主存储器记忆更多信息。

②主存储器由多个存储单元组成,每个存储单元包括若干存储元件。每个存储单元可存储一串二进制代码,称这串代码为存储字。称这串代码的位数为存储字长。

③工作方式:按存储单元地址存取,即按地址存取方式。





1.地址寄存器(MAR):存放访存地址,用于寻址,来找存储单元。一般和存储字长相等。

2.数据寄存器(MDR):暂存从存储器读写的信息。

3.时序控制逻辑:产生存储操作的时序信号。

4.存储体:数据在存储体内按地址存取。


基本概念:


1.存储单元:每个存储单元存放一串二进制代码。

2.存储字:存储单元中二进制代码的组合。

3.存储字长:存储单元中二进制代码的位数。

4.存储元:存储二进制的电子元件,每个存储元可存1bit。


4. 运算器


运算器用于进行算术运算和逻辑运算。核心是算数逻辑单元(ALU)。主要包括:

1.ACC:累加器,用于存储操作数,或运算结果。

2.MQ:乘商寄存器,在乘、除运算时,用于存储操作数或运算结果。

3.X:通用的操作数寄存器,用于存放操作数。

4.ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算。

5.PSW:程序状态寄存器,存放标志信息,如是否溢出,有无进位。


5.控制器


控制器是计算机的控制中心,协调计算机的各项工作。主要包括:

1.CU:控制单元,分析指令,给出控制信号。

2.IR:指令寄存器,存储当前执行的指令。

3.PC:程序计数器,存放下一条指令地址,有自动加1功能。


完成一条指令包括取指令(PC和IR),分析指令,执行指令(CU)。

1

3.工作过程

三个步骤:

1.程序和数据装入主存。

2.源程序转换为可执行文件。

3.可执行文件收地址逐条执行指令。


1.计算机的多级结构:


1.高级语言机器(用编译程序翻译为汇编语言)–》2.汇编语言(用汇编程序翻译成机器语言程序)–》3.操作系统机器(用机器语言解释操作系统)–》4.用机器语言的机器(用微程序解释机器指令)–》5.微程序指令(由硬件直接执行)。


2.翻译程序


翻译程序是把高级语言源程序转换为机器语言程序的软件。

1

翻译程序有两种


编译程序:将高级语言一次全部翻译为目标程序。

解释程序:翻译一句执行一句。

3.三个级别的语言:


1.机器语言:称二进制代码语言,计算机唯一可以识别的语言。

2.汇编语言:面向机器的低级语言,是机器语言的符号表示,与机器语言一一对应。

3.高级语言:如JAVA C++,是方便程序设计人员解决问题的程序。


4.计算机性能指标

1.机器字长:计算机一次运算所能处理的二进制数据的位数。

2.数据通路带宽:数据总线一次所能并行传输信息的位数。

3.数据通路:子系统通过数据总线连接形成的数据传输路径。

4.数据通路宽度:指数据总线的宽度。

5.主存容量:主存储器能存储信息的最大量,以字节衡量。如MAR为16位,则有65536个存储单元(2的16次方,可称64K),若MDR为32位,则存储容量为64K x 32位。

6.运算速度:


1.吞吐量:单位时间内处理请求的数量。

2.响应时间:发送请求到作出响应并获得所需结果所需要的时间。包括CPU时间(运行花费)与等待时间。

3.CPU时钟周期:主频的倒数,是CPU中最小的时间单位。

4.主频:主时钟的频率,衡量机器速度,主频越高,执行时间越短。

5.CPI:执行一条指令所需的时钟周期数。(不同指令和相同指令CPI都有可能不同)。

6.CPU执行时间:运行一个程序花费的时间。CPU执行时间等于CPU时钟周期数/主频。

综上CPU性能取决于:①主频(时钟频率)。②每条指令执行用的时钟周期数。③指令条数。

7.MIPS:每秒执行多少百万条指令。IPS=主频/CPI。


第二章 数据的表示和运算

1.二进制转八进制/十六进制:整数部分三个或四个一组,小数部分三个或四个一组。

2.八进制/十六进制转二进制:将每位改为三位或四位。

3.任意进制转十进制:各位数码与它们的权值相乘,把乘积相加,称为按权展开相加法。如11.1=1x2一次方+1x2的0次方+1x2的负一次方。

4.十进制转任意进制:整数部分除基取余(先余为低),小数部分乘基取整(先整为高)。


任意十进制一定可以表示二进制,任意二进制不一定表示十进制。

1

2.1 真值和机器数

1.真值:实际生活中带“+”,“-”的数称为真值。真值是机器数所代表的的实际值。

2.机器数:将数据的符号数字化(0表正,1表负),这种数为机器数。


2.2 BCD码

1. 8421码


有权码。各位的数值分别为8,4,2,1。如1000=8,0100=4。

①若8421码转为十进制<=9,则不需要修正,若>9,即>=10,则需要加6进行修正。

②1010到1111这六个为无效码


2. 余3码


无权码。在8421码基础上加上二进制的 0011形成的。如8–》1011。


3.2421码


有权码。权值从高到低分别为2,4,2,1。特点是>=5的最高位为1而非0.如5=1011,并非0101。


2.2 校验码

1.def:是指能够发现或能够自动纠正错误的数据编码,也称检错纠错编码。

2.原理:增加冗余码来检错。

3.码距:指任意两个合法码字之间不同的位的个数。码距越大,检错纠错能力越强。

1

2

3

1.奇偶校验码


源码基础上加上一位校验位,码距为2,只能检测一位错误,不能确定出错位置或偶数位错误。

1.奇校验码:1的个数为奇数。

2.偶检验码:1的个数为偶数。


2. 海明校验码


检错能力:2位。纠错能力:1位。


3.循环冗余校验码(CRC)


基本思想:在K位信息码后拼接R位的校验码,整个编码长度为N位。

2.基于线性编码理论。

2.3 定点数的表示和运算


1.有符号和无符号数


1.无符号数:整个机器字长全部二进制均为数值位。

2.有符号数:约定二进制最高位为符号位,组成有符号数。


2.机器数的定点表示


定点表示即约定机器数中小数点位置固定不变。

1

1.定点小数:是纯小数,小数点在符号位之后,有效数值部分最高位之前。

2.定点整数:是纯整数,小数点在数值部分最低位之后。


3.原码


用机器数的最高位表示数的符号,其余表示数的绝对值。

若机器字长n+1位,原码整数的表示范围:-(2n-1)≤x≤2n-1

真值0有+0和-0两种形式。【+0】原=*0*0000,【-0】=*1*0000

若机器字长n+1位,原码小数的表示范围:-(1-2-n)≤1-2-n(关于原点对称)


4.反码




真值0的反码不唯一,负数的反码符号位为“1”,数值部分取反。【+0】反=0.0000;【-0】反=1.1111。

1

5.补码



补码的真值0的表示是唯一的。【+0】补=0.0000,【-0】补=0.0000.

1

6.移码



移码的真值0只有一种表示形式。移码与真值最接近,移码大真值就大。

1

1.原码--》反码:为正:原=反;为负:符号位不变,数值位取反。

2.原码--》补码:为正:原=补;为负:原码先变反码,反码末尾+1。即除了符号位,其余位取反末尾再加1。

3.原码--》移码:先变为补码,符号位取反得移码。


1.补码的作用:使用补码可将减法操作转变为等价的加法,ALU中无需集成减法器。执行加法操作时,符号位一起参与运算。


2.4 定点数的运算

移位:通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权。可用移位运算实现乘除。

1

1.算术移位


算数移位的对象是有符号数,☆移位过程符号位保持不变

1

1.对于正数:原码,补码,反码均添0.

2.对于复数:①原码:左右移动都添0。②补码:左移添0,右移添1。③对于反码:左右都添1。

3.左移高位舍弃,若舍弃位=0,则相当于x2,若舍弃为=1,则会出现误差。

4.右移低位舍弃,舍弃位=0,相当于÷2,若舍弃位=1,丢失精度。


2.逻辑移位


将操作数视为无符号数,仅对无符号数操作。

1.逻辑左移:高位丢失,低位补0。

2.逻辑右移:低位丢失,高位补0。


3.循环移位


分为带进位标志位CF的循环移位(大循环)和不带进位标志位的循环移位。

特点:移出的数位又被移入数据中,是否带进位要看是否将进位标志位加入循环移位。


4.原码定点数加减法


1.加法规则:符号位相同,绝对值相加,符号位不变。符号位不同,做减法,绝对值大的减绝对直小的,结果符号位与绝对值大的相同。

2.减法规则:先将减数符号取反,被减数与符号取反的减数按原码加法运算。溢出位丢掉。


5.补码定点数加减法


1.【B】补变为【-B】补:所有位取反(包括符号位),末尾+1。

2.【A+B】补=【A】补+【B】补。

3.【A-B】补=【A】补+【-B】补。


6.符号扩展


作用:计算机运算中,有时必须把给定位数的数转换为具有不同位数的形式。如8位机器字变为16位。


7.溢出和判断方法


1.溢出:指运算结果超出了数的表示范围。大于机器所能表示的最大正数为上溢,小于所能表示的最小负数为下溢。同符号数相加或异符号数相减才会溢出。

2.补码定点数加减法运算三个判断溢出方法:


采用一位符号位:参加的数符号相同,结果符号不同则表示溢出。

采用双符号位:也称模4补码。最高符号位的情况:①00:正数,无溢出。②01:结果正溢出。③10:结果负溢出。④11:结果为负,无溢出。

采用一位符号位根据数据位进位情况判断溢出。

2.5 强制类型转换

1.长度相同无符号数与有符号数:不改变数据内容,改变解释方式。

2.长整数变短整数:高位截断,保留低位。

3.短整数变长整数:符号扩展。


2.6 数据存储和排列

1.大端和小端方式


1.大端方式:从低地址开始,最高有效字节存放在前。便于人阅读。

2.小段方式:从低地址开始,最低有效字节存放在前。便于机器处理。


2.按边界处理


假设存储字长32位i,可按字节,半字和字寻址。

边界对齐访问一个字一次方寸,不对齐可能两次。


2.7 浮点数的表示



r是阶码的底,一般为2。E为阶码,M为尾数。

1

1.左规:当浮点数运算结果为非规格化时要进行规格化,将尾数算数左移一位,阶码减一的方法为左规。需要时要进行多次。

2.右规:浮点数运算结果尾数溢出(双符号位01或10)时,将尾数算术右移一位,阶码+1的方法为右规。只进行一次。


规格化浮点数:为了提高运算的精度,需要充分利用尾数的有效数位,进行规格化处理,即规定尾数的最高数位必须是一个有效值。

1

规格化操作:就是通过调整一个非规格化浮点数尾数和阶码大小,使非零浮点数在尾数的最高数位上保证是一个有效值。



3.规格化浮点数特点


1.原码规格化:基数为2----原码规格化的尾数最高位一定是1。基数是4----尾数最高两位不全为0。

2.补码规格化:基数为2----补码规格化符号位与最高数值位相反。


4.IEEE 754标准


1.阶码全1,全0用作特殊用途。

2.阶码真值= 移码 - 偏移量


5.定点,浮点数的区别


1.若两者字长相同,则浮点表示法表示的数值范围大于定点表示法。

2.精度是指一个数所含有效数值位的位数。字长相同的两者,浮点数扩大了数表示范围,但精度降低了。

3.浮点数包括阶码和尾数,运算时要做阶码和尾数的运算,而且运算结果要规格化,所以运算复杂。

4.定点运算中,结果超出数表示范围会溢出。浮点运算超出数表示范围不一定溢出。只有规格化后解码超出表示范围才会溢出。


6.规格化情况


1.尾数出现00.0xxx或11.1xxx,需左规,尾数左移一位,阶码-1;

2.运算和出现溢出,需右规,尾数右移,阶码+1;


7.浮点数溢出判断


浮点数的溢出由阶码判断。当阶码符号位为10表上溢,01时表下溢。

1

2.8 加法器

1.一位全加器。

2.串行加法器。

3.并行加法器:①串行进位。②并行进位。


第三章 存储系统

3.1 存储器概述

3.1.1 存储器分类

1.按层次分类


1.主存储器:存放程序和数据。

2.辅助存储器:存放当前暂时不用的程序和数据以及一些永久性保存的信息。

3.高速缓冲存储器:Cache,位于主存和CPU之间,存放正在执行的程序段和数据。



2.按存储介质


1.磁表名存储器(磁盘)。2.磁心存储器半导体存储器。3.光存储器(光盘)。


3.按存取方式分类


1.随机存储器(RAM):随机存取,用作主存和高速缓存存储器。如内存条。

2.只读存储器(ROM):只能随机读不能写入,一旦写入就不变,断电信息不会丢失。

3.串行访问存储器:读写时,要按物理位置先后顺序寻址。包括顺序存取存储器(磁带)和直接存取存储器(磁盘)。


4.按信息的可保存性分类


1.易失性存储器:断电后存储信息消失。如RAM。

2.非易失性存储器:断电后信息不消失。如ROM。

3.破坏性读出:信息读出后,原存储信息被破坏。如DRAM芯片。

4.非破坏性读出:信息读出后,被读取存储单元信息不被破坏。如SRAM芯片,磁盘。


3.1.2 存储器性能指标

1.存储容量。2.单位成本。3.存储速度。



note:存取时间不等于存储周期,通常存储周期大于存取时间。存储周期=存取时间+恢复时间。

1

3.2 存储器层次化结构

1.Cache--主存:解决CPU和主存速度不匹配问题。数据调度由硬件自动完成,对所有程序员透明。

2.主存--辅存:解决存储系统容量问题。数据调度由硬件和操作系统共同完成,对应用程序员透明。





3.3 半导体随机存储器

3.3.1 DRAM和SRAM工作原理

1.SRAM工作原理


静态随机存储器(SRAM)存储元是双稳态触发器来记忆信息,属于非破坏性读出。


2.DRAM工作原理


动态随机存储器(DRAM)利用存储元电路上的栅极电容的电荷存储信息的。

采用地址复用技术,地址信号分行列两次传送。密度比SRAM高。属于破坏性读出。


因为DRAM电荷维持时间段,不断电信息也会消失,所以必须定时刷新,三种方式:


集中刷新:刷新周期内利用固定时间刷新,期间停止读写,称为“死时间”。

分散刷新:刷新分散到各个工作周期,即前半周期 读写,后半刷新。

异步刷新:前两者的结合,刷新周期除以行数,得到时间间隔t,每隔t刷新一次。把对每行的刷新分散到整个刷新周期。

1.刷新对CPU透明,即不依赖于外部访问。

2.刷新类似于读操作,但不同,仅给栅极电容补充电荷,无信息输出。

3.刷新的单位是行,所以刷新仅需要行地址。

1

2

3



3.DRAM和SRAM对比


1.DRAM容易集成,容量大,密度高。破坏性读出。

2.SRAM速度快。非破坏性读出。

3.两者都是易失性存储,即断电后内容消失。


NOTE:RAM--内存。ROM--辅存。

1

3.3.2 只读存储器

1.只读存储器ROM特点


1.结构简单,位密度比可读写存储器高。

2.非易失性,所以可靠性高。


2.ROM的类型


1.掩模式只读存储器(MROM):厂商直接写入,无法改变。

2.一次可编程只读存储器(PROM):一次性编程,用户可用专门设备写入,写入后无法改变。

3.可擦除可编程只读存储器(EPROM):可多次读写,先擦除后编程。

4.闪存存储器(FLASH Memory):不加电也可长期保存,又能快速擦除重写。如(u盘,sd卡)。

5.固态硬盘(ssd):


3.主存储器的构成




地址线单向。从主存地址送到主存中的地址寄存器。

1

3.4 主存储器与CPU连接

3.4.1 连接原理

1.主存储器通过数据总线,地址总线,控制总线与CPU连接。

2.地址总线位数决定了可寻址的最大空间。

3.控制总线支出总线周期类型和本词输入/输出操作完成的时刻。


3.4.2 主存容量的扩展

1.位扩展法CPU的数据线数与存储芯片的不一致,进行位扩展。


1.连接方式是将多个存储芯片的地址端,片选端,读写控制端并联,将数据端分别引出。8片8K x 1位的存储芯片 —> 1个8K x 8位的存储芯片。


2.字扩展法


1.增加存储器数量,位数不变。字扩展将芯片地址线,数据线,读写控制线并联,由片选信号CS区分芯片地址范围,片选号译码给出。


3.字位同时扩展法


4.字扩展法中片选信号的选择


1.线选法:除了片内寻址外的高位地址线,其余分别连接各个存储芯片的片选端。即n个线对应n个地址。优:线路简单,不需要译码器。缺:不能充分利用系统的存储空间。

2.译码片选法:除了片内寻址的高位地址线,通过地址译码器产生片选信号来选择哪个存储芯片。



3.5 双端口RAM和多模块存储器

3.5.1 双端口RAM

1.指一个存储器有左右两个独立的端口,有两组独立的数据线和读写控制线,允许两个独立的控制器异步访问存储单元。

2.两端口同时存取存储器的同一单元地址会冲突。有四种情况:①同时同一地址读。②同时同一地址写。③不同时同一地址写。④同时同一地址一个读一个写。



3.5.2 多模块存储器

`为提高访存速度`

1

1.单体多字存储器


存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字,一次并行读出m个字,地址必须顺序排列并在同一存储单元。


2.多体并行存储器


由多体模块组成,每个模块相同容量和存取速度,由独立的寄存区,读写控制电路。他们既能并行又能串行。

1

多体并行存储器分两种:


1. 高位交叉编址(顺序方式):高位表体号,低位为体内地址。访问连续主存块时总数先在一个模块内访问,访问完才到 下一个模块,不能并行访问,所以不能提高吞吐量,相当于单纯的扩容。(低位送高位进行译码)(连续存取n个字耗时nT)

2. 低位交叉编址(交叉方式):①低位地址为体号,高位为体内地址。②程序连续存放在相邻模块,所以采用此方式的存储器称为交叉存储器。③访问时候采用流水线的方式进行存取。④(高位体内地址送到低位确定的模块译码)(连续存取n个字耗时T+(n-1)r)T为存取周期,总线传送周期(即存取时间)为r。⑤存储器交叉模块数(即存储体个数)m>=T/r。



3.6 高速缓存存储器

3.6.1 Cache工作原理

1.位于存储器层次结构顶层,由SRAM构成,(速度快,成本高)。

2.Cache和主存都划为相等的块,以块为单位交换信息,仅保存主存中活跃的副本。若读命令访问命中cache,直接对cache读。若未命中,访问主存,并从主存将读的一块调入cache。


3.6.2 Cache和主存的映射方式

1.地址映射是把主存地址空间映射到Cache地址空间,即把存放在主存的信息按某规则装入Cache。

2.地址变换是CPU访存时,将主存地址按映射规则换算称Cache地址的过程。




地址映射的3种方法:


1. 直接映射:每个主存块只能放到Cache的一个特定位置。Cache块号=主存块号 % Cache总块数。


直接映射地址结构为:【标记】【Cache行号】【块内地址】。

访存过程:先根据中间行号找到Cache行,然后主存高t位于标记对比,若相等且有效位为1,则Cache命中。否则不命中,从CPU读出的块存入Cache。

优缺点:实现简单,但不灵活,容易冲突,利用率低。


2. 全相联映射:主存块可存放在Cache任意位置。


全相联地址结构为:【标记】【块内地址】。

访存过程:每行的标记位用来指出取自主存哪一块,访存时与标记位比较。

优缺点:灵活,冲突低,空间利用率高,但标记速度慢,成本高(需要相联存储器)。


3. 组相联映射:Cache块分为若干组,每个主存块可放到特定分组中的任意一个位置。组号=主存块号 % 分组数。


主存地址映射结构:【标记】【Cache组号】【块内地址】。组内采用直接映射,组件全相联映射。

CPU访存过程:先找到Cache组号,行标记与主存高位标记比较,相等且有效位为1则命中。

组内块越多,冲突越少,


三者比较:

1.直接映射命中率最低,全相联最高。

2.直接映射判断开销小,需时间短。全相联判断开销最大,时间长。

3.直接映射标记占的额外空间开销最少,全相联标记占的最多。

1

2

3

4

3.6.3 Cache中主存块的替换算法

当Cache中的行数被占满时,又传送来一个新块,需要进行替换。

1

1.三种替换算法


1.随机算法(RAND):随机确定替换的块。优:实现简单。缺:未依据局部性原理,命中率低。

2.先进先出算法(FIFO):命中率低。未依据局部性原理。

3.近期最少使用算法(LRU):依据程序访问的局部性原理,选择近期内长久未访问的Cache行替换。(设置计数器记录使用情况,命中行计数器清0,其余比他低的+1.未命中且有空闲行,装入的行计数器为0,其余+1.未命中且无空闲行,计数器数值为3的被淘汰,新装入行的块变0,其余+1.)

4.最不经常使用算法(LFU):将一段时间内访问次数最少的存储行换出。(设置计数器,新建的从0开始,被访问+1,每次替换出计数器最小的行。)未遵循局部性原理。




3.6.4 Cache写策略

为了保持Cache与主存数据一致性。

1

1.对于Cache写命中,两种策略


1.全写法:当CPU对Cache写命中时,把数据同时写入Cache和主存。一般用写缓冲(减少直接写入主存的时间耗费)。优缺点:访存次数增加,速度变慢,但更能保证数据一致性。

2.写回法:CPU对Cache写命中时,只修改Cache的内容,不立即写入主存,仅当此块被换出时才写回主存。优缺:减少了访存,但存在数据不一致隐患。此种方法通常每个Cache行必须设置一个标志位(脏位),反映此块是否被修改过。


2.对于Cache写不命中,两种策略


1.写分配法:CPU对Cache块写不命中时,把主存中的块调入Cache,在Cache中修改,当Cache行被替换时再写会主存。通常搭配写回法。

2.非写分配法:写不命中时只写入主存,不调入Cache(只有读命令未命中才调入Cache),当再次使用该块时,调入Cache。搭配全写法。


note:1.各级cache间常用“全写法 + 非写分配法”。

2.cache与主存之间常用“写回法 + 写分配法”。

1

2



3.7 虚拟存储器

3.7.1 基本概念

1.用户编程允许涉及的地址称为虚地址/逻辑地址。

2.虚地址对应的存储空间称为虚拟空间。

3.实际的主存单元地址称为实地址/物理地址。

4.实地址空间对应的是主存地址空间,也称实地址空间。


3.7.2 页式虚拟存储器

1.拆分成大小相等的页面。

2.虚拟存储器:在操作系统的管理下,只把当前需要的部分数据调入主存,暂不需要的部分留在辅存中。在用户看来,似乎获得了一个超大的主存(虚拟性)。

3.有效位:也称装入位,来表示对应页面是否在主存。若为1表示虚页号已从外存调入内存,为0则没有调入。

4.脏位:也称修改位,表示当前页面是否被修改过。

5.引用位:`也称使用位,来配合替换策略进行设置。如实现FIFO。统计页面被访问多少次。


以页为单位的虚拟存储器为页式虚拟存储器。

1

优缺点:


页面长度固定,调入方便。但会存在最后一页的零头无法利用,因页不是逻辑上的实体所以处理,保护和共享不及段式虚拟存储器方便。


3.7.3 快表(TLB)

经常访问的页存入快表。

1

3.7.4 段式虚拟存储器

1.按照功能模块拆分。如#0段是自己代码,#1是库函数代码。

2.段表结构:【段号】【段首址】【装入位】【段长】


优缺点


把程序按逻辑结构分段,具有逻辑独立性,使得它易于编译,管理,修改和保护,也便于多道程序共享。但因段长度可变,分配空间不变,容易留下碎片。


3.7.5 段页式虚拟存储器

先分段,再分页,调入调出仍以页为基本单位。

一个程序一个段表,多个页表。

优缺点:兼具页式和段式优点,但地址变换需查两次表,开销大。


3.7.6虚拟存储器与Cache的比较

1.相同


1.都是为了提高系统性能。

2.都把数据划分为小信息块。

3.都有地址映射,替换算法,更新策略。

4.依据局部性原理,将常用的数据存放在高速部件中。


2.不同


1.Cache解决系统速度,虚拟存储器解决主存容量。

2.Cache由硬件实现,是硬件存储器,虚拟存储器是逻辑上的存储器。

3.不命中时,因为cache速度快,虚拟存储系统对系统性能影响大。

4.CPU与Cache和主存都建立了直接访问的通路,而辅存没有。


第四章 指令系统

4.1 指令格式

1.指令(又称机器指令),是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。

2.一台计算机的所有指令的集合构成该机的指令系统,也称指令集。

3.指令系统是计算机的主要属性,位于硬件和软件的交界面上。

1

2

3

4.1.1 指令的基本格式

一条指令 = 操作码 + 地址码。

1.操作码:指出该指令应该执行什么性质的操作和具有何种功能。如指出是算数加还是减运算。

2.地址码:给出被操作信息(指令或数据)的地址。

3.指令的长度:即一条指令中二进制代码的位数。

4.指令字长取决于操作码,地址码及地址码的个数。

5.单字长指令:指令字长等于机器字长 。

6.定长指令字结构:一个指令系统中所有指令的长度相等。

7.变长指令字结构:各种指令的字长随指令功能而异。


根据指令中操作数地址码的数目不同,指令分为几种格式:


零地址指令:

只给出操作码OP。无显式地址。指令有两种可能:

①不需要操作数的指令,空操作,停机指令。

②0地址的运算类仅用在堆栈计算机中。两个操作数隐含存放在栈顶。


一地址指令:

地址格式:【OP操作码】【地址码A1】

两种常见形态:

①单操作数指令,如+1,-1。完成一条指令三次访存:①取指②读A1③写会A1。

②隐含约定目的地址的双操作数,一个数在地址A1,一个在寄存区ACC。完成一条指令两次访存:①取指②读A1。(写回寄存器不需要访存)


二地址指令:

地址格式:【OP】【A1】【A2】。

常见形态:

约定两个数的运算,分别存在A1,A2。完成一条指令4次访存:①取指②读A1③读A2④写会A1。


三地址指令:

地址格式:【OP】【A1】【A2】【A3(结果)】

一条指令四次访存:①取指②读A1③读A2④写回A3。


四地址指令:

地址格式:【OP】【A1】【A2】【A3(结果)】【A4(下地址)】

一条指令四次访存:同三地址指令。执行结束后,PC的值改为A4所指地址。





4.1.2 定长操作码指令格式

定长操作码在指令最高位部分分配固定的若干位表操作码。n位操作码字段的指令系统最大表示2的n次方条指令。

若指令长度不变,地址码越多,寻址能力越差。


4.1.3 扩展操作码指令格式



定义:可变长操作码:即全部指令的操作码字段的位数不固定,且分散的存放在指令的不同位置上。虽然增加了丰富的指令种类但显然会增加指令译码难度。

扩展操作码:属于变长操作码,它使操作码的长度随地址码减少而增加,不同地址数的指令有不同长度的操作码,可以在满足需要前提有效缩短指令字长。


设计扩展操作码格式要注意的两点:


不允许短码是长码的前缀,否则会出现歧义。

指令的操作码不能重复。会导致无法识别。

通常使用频率高的分配操作码短,使用频率低的分配长。

4.2 指令的寻址方式

1.寻址方式是指寻找指令/操作数有效地址的方式,即确定本条指令的数据地址和下一条待执行指令的地址的方法。

2.指令中的地址码存放的是信息的形式地址,通过寻址方式+形式地址找到有效地址。

3.寻址方式包括:1.指令寻址。2.数据寻址

1

2

3

4.2.1 指令寻址和数据寻址

1.指令寻址即如何确定下一条指令的地址。两种方式:


1.顺序寻址:通过程序计数器(PC)加1,自动跳转下一条指令地址。

2.跳跃寻址:通过转移指令实现。包括相对寻址和绝对寻址。跳跃后将地址赋给PC,仍诉通过PC给出下一条指令。


2.数据寻址指如何在指令中表示操作数地址,得到操作数或操作数的地址。


指令格式:【操作码】【寻址特征】【形式地址A】


4.2.2 数据寻址的常见方式

隐含地址:不明确给出操作数地址,而在指令中隐含操作数地址。



立即寻址:形式地址A中存放的就是操作数本身。只需访存1次。



直接寻址:指令中的形式地址A是操作数的真是地址EA。



间接寻址:形式地址A中给出的是操作数有效地址所在的地址。可以一次也可以多次间接寻址。



寄存器寻址:在指令字中直接给出操作数所在的寄存器编号。访存一次:仅取指令。



寄存器间接寻址:指在寄存器R中给出的是操作数所在主存单元的地址。两次访存:①取指②寻址。



相对寻址:指程序计数器(PC)的内容加上指令格式中的形式地址A形成的操作数有效地址。A是相对于下一条指令(PC先+1)的位移量,可正负,补码表示。



基址寻址:将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A形成操作数的有效地址。EA=B



变址寻址:指有效地址A等于指令中形式地址A与变址寄存器IX的内容之和。EA=(IX)+A

变址寄存器是面向用户的:程序执行过程用户可改变寄存器的内容。

主要处理循环问题数组问题。


偏移寻址包括:1.基址寻址。2.变址寻址。3.相对寻址。



10.堆栈寻址: 操作数存放在堆栈中,隐含SP栈顶作为操作数地址。


1.堆栈:是存储器中一块特定的,按后进先出管理的存储区。包括软堆栈和硬堆栈。

2.软堆栈:从主存中划分一段区域做堆栈。访存1次。

3.硬堆栈:又称寄存器堆栈,成本高,不适合做大容量堆栈。




4.3 CISC 和 RISC 的概念

指令系统朝两个截然不同方向发展:

1.增强原有指令功能,设置更复杂的新指令实现软件功能的硬化,这类机器称为复杂指令系统计算机(CISC)。X86,主要用于笔记本

2.减少指令种类和简化指令功能,提高指令的执行速度,这类机器称为精简指令系统计算机(RISC)。用于手机。


4.3.1 复杂指令系统计算机(CISC)(Complex Instruction Set Computer)

设计思路:一条指令完成一个复杂的基本功能。


4.3.2 复杂指令系统计算机(RISC)(Reduced Instruction Set Computing )

设计思路:一条指令完成一个基本“动作”,多条指令组合完成一个复杂的基本功能。


4.3.3 两者比较

1.CISC控制器大多采用微程序控制,即采用存储程序,设计好的指令提前存储。RISC控制器采用组合逻辑控制。

2.RISC更能提高运算速度。因为RISC采用流水线技术,指令数、寻址方式、指令格式种类少,所以运算速度快。

3.RISC便于设计,可降低成本,提高可靠性。

4.RISC有利于编译程序代码优化。


第五章 中央处理器



5.1 CPU的功能和基本结构

中央处理器(CPU)由运算器和控制器组成。

1.控制器功能:负责协调控制计算机各部件执行程序的指令序列,取指,分析指,执行指令。是整个系统的指挥中心。

2.运算器功能:对数据进行逻辑运算,加工。

1

2

3

CPU的具体功能包括:


指令控制:完成取指,分析指,执行指令,即程序的顺序控制。

操作控制:CPU管理从内存取出的指令的操作信号,将信号送到相应部件,从而控制部件。

时间控制:对操作加以事件上的控制,为每条指令按时间顺序提供控制信号。

数据加工:对数据进行算术和逻辑运算。

中断处理:对运行过程出现的异常和特殊请求进行处理。

1.运算器


运算器基本功能接收控制器发来的命令并执行相应动作,对数据进行加工处理。

运算器组成:

1.算术逻辑单元。2.暂存寄存器。3.累加寄存器。4.通用寄存器。5.程序状态寄存器。6.移位器。7.计数器。

————————————————

版权声明:本文为CSDN博主「vcoy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_43917045/article/details/123588032


原理笔记的评论 (共 条)

分享到微博请遵守国家法律