第一章 计算机概述

1.1计算机发展历程

1.1.1计算机的产生和发展

发展阶段 时间 硬件技术 速度(次/秒) 特点
第一代 1946-1957 电子管 4万 使用机器语言进行编程;主存用汞
第二代 1958-1964 晶体管 20万 面向过程的程序设计语言;Fortran有了操作系统雏形
第三代 1965-1971 中小规模集成电路 1百万 高级语言迅速发展,开始有了分时操作系统
第四代 1972-1977 大规模集成电路 1千万 产生了微处理器,产生了新的概念:并行,流水线,高速缓存,虚拟储存
第五代 1978-现在 超大规模集成电路 1亿 /

1.1.2微型计算机的出现和发展

微型计算机的发展以微处理器技术为标志

  • 微处理芯片:把控制单元和算术逻辑单元集成在一个芯片上
微处理器 机器字长 年份 晶体管数目
4004 4位 1971 2300个
8080 8位 1974 /
8086 16位 1979 2.9万
80286 16位 1982 13.4万
80386 32位 1985 27.5万
80486 32位 1989 120.0万
Pentium 64位(准) 1993 310.0万
Pentium pro 64位(准) 1995 550.0万
Pentium II 64位(准) 1997 750.0万
Pentium III 64位(准) 1999 950.0万
Pentium IV 64位 1000 3200.0万
  • 机器字长:计算机一次整数运算所能处理的二进制位数
    当前通用微处理器的发展重点
  • 提高复杂度
  • 线程/进程级并行性开发
  • 将存储器集成到处理器芯片内
  • 发展嵌入式处理器

1.1.3软件技术的兴起与发展

各种语言

  • 机器语言:面向机器
  • 汇编语言:面向机器
  • 高级语言:面向问题

系统软件(管理计算机系统,监视服务,调度系统资源高效运行)

  • 语言处理程序:汇编程序,编译程序,解释程序
  • 操作系统:DOS,UNIX,Linux,Windows
  • 服务性程序:装配程序,调试程序,诊断程序,排错程序
  • 数据库管理系统:数据库和数据库管理软件(Oracle,Access)
  • 网络软件:网络协议软件,网络应用系统

应用软件:(按任务需要编制成的各种程序)
财务软件,文字处理和排版软件,电子表格,CAD,网络通信软件

软件发展的特点

  • 开发周期长
  • 制作成本昂贵
  • 检测软件产品质量的特殊性

软件是程序以及开发,使用和维护程序所需要的所有文档

1.1.4计算机的应用

  1. 科学计算和数据处理(航空航天,人口普查)

  2. 工业控制和实时控制(机械制造,导弹发射)

  3. 网络技术的应用
    电子商务(网络营销,网购)
    网络教育(远程教育,虚拟课堂)
    敏捷制造 21世纪制造模式

  4. 虚拟现实(虚拟现实演播室,仿真训练系统)

  5. 办公自动化和管理信息系统(节约资源,提高效率)

  6. CAD/CAM/CIMS

  7. 多媒体技术(声图文的计算机集成)

  8. 人工智能(手写输入,语音输入,智能机器人)

1.1.5计算机的展望

超级智能计算机:类似人脑的一些超级智能功能

  • 自组织,自适应,自联想,自修复等能力
  • 要求计算机的速度达1015/秒,存储容量1013
  • 芯片集成度的限制
    1.芯片集成度受物理极限的制约
    2.按几何级数递增的制作成本
    3.芯片的功耗,散热,线延迟等难题

替代传统的硅芯片

  • 光计算机:利用光子取代电子进行运算和存储
  • DNA生物计算机:通过控制DNA分子间的生化反应完成计算
  • 量子计算机:利用原子具有的量子特性,运算能力比硅芯片为电路基础的计算机块几亿倍

1.2计算机系统层次结构

1.2.1计算机系统基本组成

计算机系统的层次结构
机器语言

  • 0,1代码表示的语言,可以直接被机器运行
  • 必须用二进制代码编写,难度大,易出错

汇编语言

  • 符号式语言,语句与机器语言语句对应,机器可直接识别
  • 需使用机器对应的汇编语言没有通用性

高级语言

  • 描述接近人们习惯,较强通用性,机器不能识别需编译

操作系统

  • 为汇编和高级语言提供所需的基本操作,控制管理软硬件资源

微指令系统:对每一条二进制代码指令分析运行的系统

1.2.2计算机硬件的基本组成

冯诺依曼计算机结构框图

  1. 原始数据和处理程序通过输入设备输入计算机并存放于存储器中
  2. 控制器执行程序指挥运算器从内存中取出数据
  3. 进行处理后将结果放入存储器中
  4. 通过输出设备把存储器中的结果输出

冯诺依曼计算机的特点

  1. 计算机由五大部分组成(运算/存储/控制/输入/输出)
  2. 指令和数据以同等地位存放于存储器内,并可按地址寻访
  3. 指令和数据用二进制表示(0,1)
  4. 指令由操作码和地址码组成
  5. 指令在存储器中按顺序存放
  6. 机器以运算器为中心(现代计算机以存储器为中心)

1.2.3计算机软件和硬件的关系

计算机软硬件

  • 软件的发展可以充分发挥机器的硬件性能,提高机器工作效率
  • 软件能局部模拟人类的思维活动
  • 软件已成为评价计算机系统性能好坏的重要标志
  • 软件性能的发挥必须依托硬件的支撑
  • 计算机性能取决于软硬件总和

1.2.4计算机的工作过程

计算机解决实际问题两个步骤:上机前的各种准备,上机运行

  1. 上机前的准备
  • 建立数学模型
  • 确定计算方法(转换成适合计算机的加减乘除四则运算)
  • 编制解题程序
    程序-----运算的全部步骤
    指令-----每一个步骤

示例:

计算  ax^2^+bx+c=(ax+b)+c
主存地址 指令 注释
操作码 地址码
0 000001 0000001000 取数x至ACC
1 000100 0000001001 乘a得ax,存于ACC中
2 000011 0000001010 加b得ax+b,存于ACC中
3 000100 0000001000 乘x得(ax+b)x,存于ACC中
4 000011 0000001011 加c得a(x^2)+bx+c,存于ACC中
5 000010 0000001100 将a(x^2)+bx+c,存于主存单元
6 000101 0000001100 打印
7 000110 停机
8 X 原始数据X
9 a 原始数据a
10 b 原始数据b
11 c 原始数据c
12 存放结果

1.3计算机性能指标

1.3.1机器字长

  • CPU一次能处理数据的位数
  • 与CPU中的寄存器位数有关
  • 字长越长,数的表示范围越大,精度越高
  • 字长可影响机器的运行速度
  • 字长对硬件造价有较大影响
  • 字长直接影响加法器或ALU,数据总线,存储字长的位数

1.3.2存储容量

  • 包括主存容量和辅存容量
  • 存放二进制信息的总位数
  • 主存容量
    MAR反映存储单元个数
    MDR反映存储字节

1.3.3运行速度

影响因素:机器主频,执行的操作,主存速度,早期使用完成一次加法或乘法所需的时间来衡量运算速度
衡量方式
1. 主频 主时钟频率(f),单位MHz,GHz。CPU工作节拍受主时钟控制,主时钟不断产生固定频率的时钟
2.吉普森法 综合考虑每条指令的执行时间及他们在全部操作所占的百分比
3.CPI 执行一条指令所需时钟周期数 CPI=执行某段程序所需的CPU时钟周期数/该程序包含的指令条数
4.MIPS 百万条指令每秒 MIPS=指令条数/(程序执行时间×106)=时钟频率/(CPI×106)
5.FLOPS 浮点操作每秒,MFLOPS百万浮点操作每秒,GFLOPS十亿次浮点操作每秒,TFLOPS万亿次浮点操作每秒,PFLOPS千万亿次浮点操作每秒,EFLOPS1018次浮点操作每秒,ZFLOPS1021次浮点操作每秒
其他衡量方式

  • 吞吐量:表征一台计算机在某一时间间隔内能够处理的信息量,单位字节/秒(B/S)
  • 响应时间:表征从输入有效到系统产生响应之间的时间度量,用时间单位来度量,微秒(10-6s),纳秒(10-9s)
  • CPU时钟周期(T):主频的倒数称为CPU时钟周期,即T=1/f,单位微秒,纳秒
  • CPU执行时间:执行一段程序所占用的CPU时间,CPU执行时间=CPU时钟周期数×CPU时钟周期长

第二章 数据的表示和运算

2.1数制与编码

2.1.1进位计数制及其相互转换

常用数制

  • 十进制(D):日常使用数制
  • 七进制:星期
  • 十二进制:月份,时间中的时
  • 六十进制:时间中的分,秒
  • 二进制(B):数字计算机内部使用数制
  • 十六进制(H):为便于阅读和书写二进制,常采用十六进制(或八进制)

任意进制转换为十进制
对一任意r进制数S,表示为(S)r,转换为十进制的计算方式为:

其中 0≤Ki<r,r称为进位计数值的基数,Ki为第i位数码,i为位序号,ri为第i位的位权整数部分i从右往左计数(0,1,2,3…),小数部分从左到右(-1,-2,-3…)

十进制转换为任意(X)进制
整数部分:除X余数作为当前位数码,商再次除X,循环直至商为0
小数部分:乘X取整作为当前位数码,小数部分再次乘X,循环直至小数部分为0

2.1.2真值和机器数

计算机中参与运算的数有两大类:

  • 无符号数:没有符号的数,每一位均可存放数值
  • 有符号数:留出位置存放数值的符号(正数,负数)

计算机中对数据符号位的表示
在计算机中对数据进行运算操作时,符号位是否也同数值位一道参加运算,如何参加运 算?
真值:数值数据的实际值,如257,-33,1011b等
把符号位和数字位一起采用二进制编码表示,产生了原码,补码,反码,移码等数据编码方法
机器数(机器码):数值数据在计算机内的编码表示

原码,补码,反码的共性
这几种编码表示中,正数的编码值与真值一样,负数具有不同的编码
编码的最高位为符号位:0表示正,1表示负
原码表示法

  • 符号位:0表示正,1表示负
  • 数值部分:与真值的二进制形式一样

原码的特征:
(1)零有两种表示:+0和-0

 [+0]原=0,0000   0.000...0[-0]原=1,0000   1.000...0

(2)优点:简单直观,便于乘,除法运算
缺点:加减运算不便(符号不能直接参与)

补码表示法

  • 符号位:0表示正,1表示负
  • 数值部分:正数不变,负数通过求补得到(按位取反,末位+1)

补码的特征:
(1)零的表示唯一
(2)计算机数值数据采用补码形式
(3)补码加减法运算中,符号直接参与运算
(4)定点小数表示中,[-1]补=1.00…0
反码表示法

  • 符号位:0表示正,1表示负
  • 数值部分:正数不变,负数真值各位取反

反码的特征:
(1)零有两种表示:+0和-0
[+0]反=0,0000 0.000…0
[-0]反=1,1111 1.111…1
(2)通常用于求补码

移码表示法

  • 移码通常用于表示浮点数的阶码,阶码是个n位的整数
  • 移码的定义是:[X]移=2n+X 其中2n>X≥-2n,n为整数的位数
  • 符号位:1表示正,0表示负
  • 数值部分:与补码数值部分相同

移码的特征

  • 零的表示唯一:100…00
  • 移码只能表示整数(只有整数有移码),用于浮点数阶码表示
  • 移码很直观反映数值大小

2.1.3字符与字符串

字符的表示

 采用7位ASCII码表示


字符串的表示
连续的一串字符,占用主存连续多个字节,每字节存一个字符
同一主存字中既可按从低向高位字节的顺序,也可反向

汉字的表示方法
内部编码(内码)输入码 显示(打印)码

2.2定点数的表示和运算

2.2.1定点数的表示

计算机的数据表示没有小数点“.”

  • 小数点按约定方式标出(位置固定不变)
  • 通常将数据表示成纯小数或纯整数

两种定点表示

  • 小数定点机
  • 整数定点机

定点整数
最高位为符号位,其后为数值部分,小数点位置隐含约定在数值部分的后面
n+1位定点整数的表示范围是:

原码   -(2^n^-1)≤X≤2^n^-1
补码   -2^n^≤X≤2^n^-1
反码   -(2^n^-1)≤X≤2^n^-1

定点小数
最高位为符号位,小数点位置隐含约定在符号位后,其后为数值部分
n+1位定点小数的表示范围是:

原码 -(1-2-n)≤X≤1-2n
补码 -2n≤X≤1-2n
反码 -(1-2n)≤X≤1-2n

2.2.2定点数的运算

定点数的移位运算
意义:

  • 二进制表示中数据相对约定的小数点位置左移或右移N位,其实质是乘以或除以2N
  • 位移运算和加减法运算配合,能够实现乘除法运算

规则(符号位不变,移位后空出位置如何填充?)

  • 正数:原码,反码,补码,均补充0
  • 负数: 原码 填充0 反码 左移填补0,右移填补1 补码 填补1

算术移位:有符号数的移位
逻辑移位:无符号数的移位

逻辑左移:低位补0,高位移丢
逻辑右移:高位补0,低位移丢

原码定点数的加减运算
用原码做加法时可能出现的情况
补码就是为了简化这种情况
使用一个与负数等价的正数代替负数
减法→加法

要求 数1 数2 实际操作 结果符号
加法
加法 可正可负
加法 可正可负
加法
补码定点数的加减运算
  • 加法
    整数:[A]补+[B]补 = [A+B]补(mod 2n+1)
    小数:[A]补 + [B]补 = [A+B]补(mod 2)
  • 减法 A - B = A + (-B)
    整数:[A-B]补 = [A]补 + [-B]补(mod 2n+1)
    小数:[A-B]补 = [A]补 + [-B]补(mod 2)

连同符号位一起相加,符号位产生进位丢掉
溢出概念和判别方法
溢出概念

假设机器字长为4位(含符号位),则补码所对应的取值范围为-8~+7,运算过程中如果超过这个范围就称为溢出

溢出判别方法
1.一位符号位判溢出
参加操作的两个数符号相同。其结果的符号与原操作数符号不同,即为溢出硬件

硬件实现:异或电路计算   最高有效位进位,符号位进位

2.两位符号位判溢出
结果双符号位相同未溢出,双符号位不同溢出
最高符号位代表真正符号

定点数的乘除运算
笔算乘法

  • 符号位单独处理
  • 被乘数A的多次位移
  • 多个位积相加

笔算乘法改进(加法及移位)

  1. 被乘数A+0
  2. 右移1位,得到新的部分积
  3. 部分积 + 被乘数 …

定点数的乘运算

  • 计算机乘法运算 通过加和移位实现
  • 加法,移位的次数有乘数的数值位长度决定
  • 乘数的末位决定被乘数是否与原部分积相加,然后右移一位形成新的部分积,同时乘数右移1位(末位移丢),空出高位存放部分积的低位

硬件要求

  • 3个n+1位寄存器:X存被乘数,ACC存乘积高位,MQ存乘数及乘积低位
  • 2个寄存器具备移位功能,1个全加器

原码一位乘运算

  • 乘积符号位:原符号位异或操作
  • 数值部分:绝对值相乘

特点

  • 绝对值运算
  • 用移位的次数判断乘法是否结束
  • 逻辑移位
  • 部分积为n+1位

原码两位乘运算

  • 乘积符号位:原符号位异或操作
  • 部分积符号位取3位,最高符号位为真正符号位
  • 数值部分:绝对值相乘
  • 每次取乘数中的两位来形成新的部分积,每次移位运算的步长为2
  • 可提高运算速度

补码乘法:[x]补 × [y]补
校正法:

  • 当乘数y为正数时,都可按原码乘法的规则运算
  • 当乘数y为负数时,把[y]补去掉符号位,当成正数与[x]补相乘,然后加[-x]补校正
  • 乘积的符号位在运算过程中自然形成,部分积,被乘数取双符号位

比较法:

 统一公式:[X × Y]补 = [x]补 × (0.y1y2....yn)- [x]补 × y0运算规则不受乘数符号约束,控制线路比较简明,计算机中普遍采用

硬件实现:

    补码一位乘(n+2位寄存器),补码两位乘

定点数的除运算

笔算除法

  • 商符单独处理
  • 心算上商,上商位置不固定
  • 余数不动低位补0,减右移一位的除数
  • 2倍字长加法器

机器除法

  • 符号位异或形成
  • |x| - |y| > 0 上商1,|x| - |y| <0 上商0,寄存器最末位上商
  • 余数左移1位 低位补0 减 除数
  • 1倍字长加法器

原码除法

  • 商符由两数符号位进行异或运算
  • 商值由两数绝对值相除求得

约束条件

  • 小数定点除法:X* < y*
  • 整数定点除法:X* > y*
  • 被除数不等于0,除数不等于0
  • 商的位数一般和操作数位数相同

恢复余数法:

商值通过比较被除数和除数的绝对值大小确定:[x^*^]补 + [-y^*^]补当余数为负时,需加上除数,将其恢复成原来的余数

不恢复余数法:加减交替法

当余数Ri>0,商1,做2 × Ri - y*运算
当余数Ri<0,商0,做2 × Ri + y*运算

补码除法:恢复余数法,加减交替法

 补码加减交替法规则比较被除数(余数)和除数的大小1.两数符号相同,做减法[x]补 - [y]补,若余数与除数同符号,表示够减2.两数符号不同,做加法[x]补 + [y]补,若余数与除数不同符号,表示够减商值的确定1.[x]补与[y]补同号,商为正,够减时商1,不够减商02.[x]补与[y]补异号,商为负,够减时商0,不够减商1商符在运算中自动形成余数与原码加减交替法相似

2.3浮点数的表示和运算

2.3.1浮点数的表示

定点机的不足

  • 编程困难,程序员调节小数点位置
  • 表示范围小
  • 相差很大的数据需要很长的机器字长
  • 数据存储单元的利用率往往很低

浮点数表示
N = S × rj 其中S尾数,j为阶码,r为基值

  • 尾数采用纯小数表示,S<=1 r可以取2,4,8,16等
  • 基值2时尾数最高位为1的浮点数称为规格化数,规格化数精度最高

浮点数的表示范围

  • 16位字长:设1位表示阶符,4位表示阶码数值,1位表示数符,10位表示尾数数值
  • 最小负数-215 × (1 - 2-10)
  • 最大负数 -2-15 × 2-10
  • 最小正数 2-15 × 2-10
  • 最小正数 215 × 210

规格化表示

 为提高数据的表示精度,当尾数的值不为0时,其绝对值应≥0.5,即尾数域的最高有效位应为1,否则以修改阶码同时左右移小数点的办法,使其变成这一表示形式如:101.1101 = 0.1011101 × 2^0010 = 0.010111010 × 2^0100

机器零(计算机都把该浮点数看成零值)

  • 浮点数尾数为0,不论其阶码为何值
  • 阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值

IEEE 754标准

  • 数符放置在前面
  • 尾数必须用规格化表示
  • 短实数,长实数尾数的最高位1隐藏掉
总位数 符号位 阶码 尾数
短实数 32 1 8 23
长实数 64 1 11 52
临时实数 80 1 15 64

2.3.2浮点数的加/减运算

x = Sx × rjx ,y = Sy × rjy
两种情况

  • 阶码相同时,尾数小数点固定在第一数值位之前,尾数加减法与定点数完全相同
  • 阶码不同时,阶码决定真正的小数点位置,尾数不能直接相加减

运算步骤

  • 对阶:使两数小数点位置对齐
  • 尾数求和:对阶后的尾数按定点数运算规则进行加减
  • 规格化:将运算后的尾数进行规格化
  • 舍入:尾数右移时丢失的数值位处理
  • 溢出判断:判断结果是否溢出

舍入

  • 场景:在对阶和右规中,可能会将尾数的低位丢失,引起误差影响精度
  • 目的:采用舍入法提高尾数精度
  • 处理方式
    1. 0舍1入法:类似于十进制的四舍五入,移去的最高位为1则在末尾+1
    2. 恒置1法:右移后尾数末位恒置1

溢出判断

  • 场景:与定点加减法一样,浮点加减法最后一步也需判断溢出
  • 说明
    双符号位情况下,尾数之和出现01.xxxx或者10.xxxx在浮点运算中不代表溢出
    右规后根据阶码判断是否溢出
  • 判断方式(由阶码符号决定)
    阶码 补码形式01,xxxx 上溢出,停止运算做中断处理
    阶码 补码形式10,xxxx 下溢出,按机器零处理

2.4算术逻辑单元ALU

  • 计算机中的运算器执行各种算数和逻辑运算
  • 运算器由算术逻辑单元(Arithmetic Logic Unit,ALU),累加器。状态寄存器和通用寄存器等组成
  • ALU的基本功能包括加减乘除四则运算,与或非,异或等逻辑运算,以及移位,求补等操作。
  • 运算器的操作和操作类型由控制器决定,运算器处理的数据来自存储器,处理后的结果送回存储器或者暂存运算器中

2.4.1串行加法器和并行加法器

加法器

  • 加法器由全加器以及逻辑电路组成
  • 单个全加器组成的加法器称为串行加法器
  • 多个全加器组成的加法器称为并行加法器

一位全加器

  • 全加器FA,最基本的加法单元
  • 输入A,B加数。低位运算传递的进位C(i-1)
  • 输出本位计算和S(i),向高位的进位C(i)

串行加法器

  • 只有一个全加器
  • 数据逐位送入加法器进行运算
  • 操作数长n位,加法分n进行
  • 每次产生一位和,逐位送回寄存器
  • 进位触发器寄存进位信号
  • 优点:器件少,设计简单,成本低
  • 缺点:运算速度慢

并行加法器

  • 有多个全加器,数量与机器字长相同
  • 各位数据同时运算
  • 每位的进位输出是高一位全加器的进位输入
  • 最长运算时间由进位信号的传递时间决定
  • 提升速度关键:加快进位产生与传递速度
  • 进位链:传递进位信号的逻辑线路连接起来构成的进位链路,通常采用串行,并行两种
  • 串行进位链:1.并行加法器中的进位信号采用串行传递 2.也称行波进位,位数越多计算延迟时间越长
  • 并行进位链:1.并行加法器中的进位信号同时产生 2.又称先行进位,跳跃进位,分为单重分组(单重分组跳跃进位,组内并行,组间串行)和双重分组(双重分组跳跃进位,组内并行,组间并行,大组串行)

2.4.2算术逻辑单元ALU的功能和结构

  • 功能:1.进行多种算数运算和逻辑运算。2.其中加减乘除归结为加法运算
  • ALU基本结构:1.一种功能较强的组合逻辑电路,A,B,输入变量,K控制信号,F输出函数。2.最简单的ALU是4位,典型代表74181芯片
  • 74181ALU电路:1.两种工作方式正逻辑,负逻辑。2.16种算数运算(M=0)和16种逻辑运算(M=1)如在负逻辑下,M=1,S3-S0=1001做逻辑运算A⊕B

第三章 存储器层次结构

3.1 存储器的分类

3.1.1按存储介质分类

存储介质是指能存放0,1两种代码并能区别两种状态的物质或元器件

  1. 半导体存储器 TTL(双极型),MOS
  2. 磁表面存储器 磁盘,磁带,磁鼓
  3. 磁芯存储器 硬磁材料,环状元件
  4. 光盘存储器 激光,磁光材料

3.1.2按存取方式分类

  1. 存取时间与物理地址无关(随机访问存储器)
    随机存储器RAM 在程序的执行过程中可读可写
    只读存储器ROM 在程序的执行过程中只读

  2. 存取时间与物理地址有光(串行访问存储器)
    顺序存取存储器 磁带
    直接存取存储器 磁盘 先定位某个小区域,再在小区域顺序查找

3.1.3按在计算机中的作用分类

3.2 存储器层次化结构

3.2.1 存储器主要特性的关系

速度,容量,每位价格(位价)

  • 速度越快,价位越高
  • 容量越大,速度越低
  • 容量越大,位价越低

3.2.2 多级存储系统

3.3 半导体随机存取存储器

  • 半导体存储芯片的基本结构

  • 存储芯片片选线的作用

用16K × 1位的存储芯片组成64K × 8位的存储器

半导体存储芯片的译码驱动方式
(1)线选法

(2)重合法

3.3.1 SRAM存储器

SRAM静态随机存储器
存储元:存放一个二进制的物理器件,存储器的基本单元电路
存储单元:地址码相同的多个存储元
存储体:若干存储单元的集合
静态RAM原理
双稳态触发器(6管MOS)存储信息
非破坏性读出,断电丢失
存取速度快,集成度低,功耗大

静态RAM基本电路的读操作

静态RAM基本电路的写操作

Intel2114外特性
1K×4位,4096个存储电路
64×64矩阵
A3-A8行译码,A0-A2 A9列

lntel2114RAM矩阵(64×64)读

静态RAM读时序

静态RAM写时序

3.3.2 DRAM存储器

三管动态RAM芯片(lntel1103)

单管动态RAM4116(16K×1位)


动态RAM刷新(行地址相关)
电容只能维持1-2ms
①集中刷新
“死区”:0.5μs × 128 = 64μs;“死时间率”:128/4000 × 100% = 3.2%

②分散刷新
“死区”:无 t© =t(M) + t®

③异步刷新(存取周期为0.5μs)
分散刷新与集中刷新相结合
“死区”:0.5μs每15.6μs 每行每隔2ms刷新一次
将刷新安排在指令译码阶段,不会出现“死区”

动态RAM和静态RAM的比较

DRAM SRAM
存储原理 电容 触发器
集成度
芯片引脚
功耗
价格
速度
刷新

3.3.3 只读存储器

ROM中信息即使掉电也不会丢失,只供读出信息的存储器。
结构简单,位密度高;非易失性,可靠性高
根据发展过程及制作工艺划分

  • 掩模ROM(MROM) 早期只读存储器,在厂家写好内容
  • 一次可编程只读存储器(PROM) 用户可进行一次写操作
  • 可擦除可编程只读存储器(EPROM) 多次写,编程次数有限,写入时间长。紫外线擦除(UVEPROM),电擦除(EPROM)

3.3.4 Flash存储器

从ROM发展而来,目前应用非常广泛,U盘就是一种闪存
计算机电擦除,价格便宜,集成度高,擦除速度快

EPROM 价格便宜,集成度高
EPROM 电可擦洗重写,编程次数有限,写入时间长
闪存 比EEPROM快,具备RAM功能
固态硬盘(Solid State Drivers SSD)
基于闪存使用电子存储芯片阵列制成的硬盘,包括控制单元,存储单元(Flash芯片)
长期保存信息,快速擦除及重写,对比传统硬盘读写速度快,功耗低,位价高

3.4 主存储器与CPU的连接

3.4.1 连接原理

  1. 主存储器通过数据总线,地址总线和控制总线与CPU连接
  2. 数据总线的位数与工作频率的乘积正比于数据传输率
  3. 地址总线的位数决定了可寻址的最大内存空间
  4. 读写命令控制线的连接
  5. 片选线的连接
  6. 合理选择存储芯片(RAM,ROM)
  7. 时序,负载等

3.4.2 主存容量的扩展

单个存储芯片容量有限
在字数,字长方面都与实际需求有差距
扩展主存容量:

  • 位扩展法
  • 字扩展法
  • 字位同时扩展法

位扩展法(增加存储字长)
用多个存储器件对字长进行扩充
数据位数与CPU数据线数相等
地址,片选,读写控制并联
数据端分别引出

字扩展法(增加存储字的数量)
位数不变
地址,数据,读写控制并联
片选区分各芯片地址范围
同一时刻只有部分芯片选中

字位同时扩展法
同时增加字数量和存储字长
地址线并联
数据线与片选结合

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

3.4.4 存储器与CPU的连接

3.5 双口RAM和多模块存储器

3.6 高速缓冲存储器(cache)

3.6.1 Cache的基本工作原理

3.6.2 Cache和主存之间映射方式

3.6.3 Cache中主存块的替换算法

3.6.4 Cache写策略

3.7 虚拟存储器

3.7.1 虚拟存储器的基本概念

3.7.2 页式虚拟存储器

3.7.3 段式虚拟存储器

3.7.4 段页式虚拟存储器

3.7.5 TLB(快表)

第四章 指令系统

计算机的程序是由一系列的指令组成的,指令就是要计算机执行某种操作的命令
从计算机组成的层次结构来说,计算机的指令有微指令,机器指令和宏指令之分
微指令:微程序级的命令,它属于硬件;
宏指令:有若干条机器指令组成的软件指令,它属于软件;
机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算,是CPU唯一能接收的命令。
指令系统:一台计算机中所有机器指令的集合,它是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围

4.1 指令格式

4.1.1 指令的基本格式

指令:

  • 一条指令是一组有意义的二进制代码
  • 机器语言的一个语句

操作码:

  • 每一条指令都有一个操作码,表示该指令应进行什么性质的操作
  • 不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令

地址码:

  • 给出被操作的信息(指令或数据)的地址,包括参加运算的一个或多个操作数所需的地址,运算结果保存地址,程序转移地址,被调用的子程序入口地址等

指令长度(指令字长):

  • 一条指令所包含的二进制代码的位数

  • 取决于操作码长度,操作数地址码长度,操作数地址个数

  • 根据和机器字长的大小关系,可分为单字长指令,半字长指令,双字长指令

  • 根据指令系统每条指令的长度是否固定,分为定长指令系统,变长指令系统

    定长指令系统

    • 执行速度快,控制简单

    变长指令系统

    • 指令长度随指令功能而异,多为字节的整数倍

操作数地址码数目划分:

  • 四地址指令

  • 三地址指令

  • 二地址指令

  • 一地址指令
    加1,减一,求反或双操作数

  • 零地址指令
    不需要操作数的指令:空操作,停机,关中断等
    堆栈计算机的零地址运算类指令:栈顶,次栈顶运算

4.1.2定长操作码指令格式

  • 在指令字的最高位部分分配固定的若干位(定长)表示操作码
  • n位操作码字符的指令系统最大能够表示2^n条指令

优点

  • 简化计算机硬件设计
  • 提高指令译码和识别速度
  • 一般计算机字长在32位或更长时采用定长操作码指令格式,IBM370 8位操作码

4.1.3扩展操作码指令格式

可变长操作码

  • 指令字长有限仍保持比较丰富的指令种类
  • 操作码长度不固定,分散在不同位置
  • 指令译码变难,控制器复杂

扩展操作码指令格式

  • 最常见的可变长操作码方法
  • 不同的地址数的指令操作码长度不一样
  • 短操作码不能是长码的前缀
  • 操作码不能重复(高频短码)

4.2指令的寻址方式

4.2.1有效地址的概念

形式地址(A)

  • 指令中的地址字段,并不代表操作数的真实地址

有效地址(EA)

  • 操作数在存储器中的真实地址,需要用形式地址并结合寻址方式可以计算得出

寻址方式

  • 寻找指令或操作数有效地址的方式
  • 确定本条指令的数据地址以及下一条将要执行的指令地址的方法
  • 分为指令地址,数据地址

4.2.2数据寻址和指令寻址

指令寻址

  • 寻找下一条将要执行的指令地址,分为顺序寻址,跳跃寻址两种方式

顺序寻址方式

  • 程序是由指令序列构成的,大多数指令是顺序存放在存储器中的
  • 执行程序时,通常是一条指令接一条指令的顺序执行
  • 这种程序顺序执行的过程,我们称为指令的顺序寻址方式。
  • 为实现指令的顺序寻址,计算机中使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,并通过自动增量方式实现顺序寻址

跳跃寻址方式

  • 当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。
  • 跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。
  • 程序跳跃后,按新的指令地址开始顺序执行。
  • 当程序中出现转移,子程序调用,子程序返回,中断等指令时,会产生跳跃。
  • 跳跃是通过直接对程序计数器的内容进行设置而实现的。

数据寻址

  • 如何在指令中表示一个操作数的地址
  • 如何用这种表示得到操作数或怎样计算出操作数的地址
  • 数据寻址方式很多,指令字中增加一个字段区分哪种寻址方式
  • 立即寻址,直接寻址,隐含寻址,间接寻址,寄存器寻址,寄存器间接寻址,相对寻址,基址寻址,变址寻址,堆栈寻址

4.2.3常见数据寻址方式

(1)立即寻址

     指令的地址字段指出的不是操作数的地址,而是操作数本身

(2)直接寻址

     在指令格式的地址字段中直接指出操作数在内存的地址D

(3)隐含寻址

         操作数地址隐含在操作码中

(4)间接寻址 (有效地址由形式地址间接提供EA=(A))

         形式地址不是操作数的真正地址,而是操作数地址的指示器间接寻址分为寄存器间接寻址和存储器间接寻址

(5)寄存器寻址

         操作数在CPU的通用寄存器中有效地址即为寄存器编号执行阶段不访存,只访问寄存器,执行速度快寄存器个数有限,可缩短指令字长

(6)寄存器间接寻址

         操作数在CPU的通用寄存器中有效地址即为寄存器编号有效地址在寄存器中,操作数在存储器中,执行阶段访存便于编制循环程序

(7)堆栈寻址

 堆栈特点:堆栈:硬堆栈   多个寄存器软堆栈   指定的存储空间

(8)相对寻址

        程序计数器PC的内容加上指令格式中的形式地址而形成操作数的有效地址其中形式地址通常称为偏移量,其值可正可负,相对于当前指定地址进行浮动“相对”寻址,就是相对于当前的指令地址而言

(9)基址寻址

 将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址

(10)变址寻址

 把CPU中某个变址寄存器的内容与偏移量相加来形成操作数有效地址

(11)块寻址

 在指令中指出数据块的起始地址(首地址)和数据块的长度(字数或字节数)指令中划出字段指出长度;指令中指出数据块的首,末地址;块结束字符指出数据块长度可用于数据块搬家,输入输出指令等,实现外存储器或外围设备同内存之间的数据块传送

(12)段寻址方式

 段寄存器作为基地址加上某寄存器提供的16位偏移量来形成实际的20位物理地址微型机中采用了段寻址方式

4.3 CISC和RISC的基本概念

指令系统的发展方向

  • 增强指令功能,设置更为复杂的新指令实现软件功能的硬化→CISC复杂指令系统计算机Complex Instruction Set Computer,典型代表X86架构的计算机

  • 减少指令种类和简化指令功能,提高指令执行速度→RISC精简指令系统计算机Reduced Instruction Set Computer,典型代表ARM,MIPS架构计算机

4.3.1.复杂指令系统计算机CISC
背景:

     硬件成本不断下降,软件成本不断上升,促使人们在指令系统增加更多复杂的指令

CISC特点:

  • 系统指令复杂庞大(200条以上),各种指令使用频度相差大
  • 指令长度不固定,指令格式种类多,寻址方式多
  • 访存指令不受限制,CPU中设有专用寄存器
  • 各指令执行时间相差很大,大多数指令需要多个时钟周期执行完毕
  • 控制器多采用微程序控制器
  • 难以用优化编译生成高效的目的代码,设计复杂研制周期长

2.精简指令系统计算机RISC
背景:

  • 程序中80%的语句仅使用20%的指令,高频的简单指令因复杂指令的存在而无法提速

  • 能否用20%的简单指令组合不常用的80%的指令功能?

RISC特点:

  • 选用使用频度最高的一些简单指令,复杂指令的功能由简单指令来组合
  • 指令长度固定,格式种类少,寻址方式少,采用流水技术一个时钟周期内完成一条指令
  • 只有LOAD/STORE 指令访存,CPU中有多个通用寄存器,其余操作都在寄存器间进行
  • 采用组合逻辑实现控制器,以硬布线控制为主,不用或少用微程序控制,
  • 采用优化的编译程序,减少程序的执行时间

CISC和RISC对比

  • RISC能充分利用VISL芯片的面积
  • RISC更能提高计算机的运算速度
  • RISC便于实现指令流水
  • RISC便于设计,可降低成本,提高可靠性
  • RISC有利于编译程序代码优化
  • RISC不易实现指令系统的兼容

第五章 中央处理器 1

5.1CPU的功能和基本结构

5.1.1CPU的功能
中央处理器

  • 当用计算机解决某个问题时,我们首先必须为它编写程序
  • 程序是一个指令序列,它告诉计算机应该执行什么操作,在什么地方找用来操作的数据
  • 一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务
  • 专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU
  • CPU对整个计算机系统的核心

CPU基本功能

  • 指令控制:完成取指令,分析指令和执行指令的操作,即程序的顺序控制
  • 操作控制:CPU管理并产生由内存取出的每条指令的操作指令,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行操作
  • 时间控制:对各种操作实施时间上的控制,为每条指令顺序提供应有的控制信号
  • 中断处理:对计算机运行过程中出现的异常情况和特殊情况进行处理
  • 数据加工:对数据进行算术运算和逻辑运算处理

5.1.2CPU的基本结构
运算器:接受控制器的命令而进行动作,执行部件,负责数据的加工和处理

  • 算术逻辑单元(ALU):进行算术,逻辑运算
  • 暂存寄存器:暂存从主存读取的数据(不能放于通用寄存器),对应用程序员透明
  • 累加寄存器:是一个通用寄存器,暂存ALU运算的结果,可作为加法的一个输入端
  • 通用寄存器组:如AX,BX,CX,DX,SP等,存放操作数和各种地址信息,SP指示栈顶地址
  • 程序状态条件寄存器(PSW):如溢出标志(OP),符号标志(SF),零标志(CF),保留算术逻辑运算指令或测试指令的结果而建立的各种状态信息
  • 移位器:对操作数或运算结果进行移位运算
  • 计数器(CT):控制乘除运算的操作步数

控制器:

  • 系统的指挥中枢,控制运算器,存储器,IO构成有机整体,全机协调完成指令
  • 基本功能:执行指令,每条指令的执行是由控制器发出的一组微操作实现
  • 两种类型:硬布线控制器和微程序控制器
  • 工作原理:
    (1)从内存中取出一条指令,并指出下一条指令在内存中的位置
    (2)对指令进行译码和测试,根据指令操作码,指令的执行步骤(微命令系列)和条件信号来形成当前计算机各部件要用到的控制信号
    (3)指挥整机各硬件系统在这些控制信号的控制下协同运行,产生预期的执行结果

基本组成部件:

  1. 程序计数器(PC):指出下条指令在主存中的存放地址,有自增功能
  2. 指令寄存器(IR):保存当前正在执行的那条指令
  3. 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
  4. 存储器地址寄存器:存放要访问的主存单元的地址
  5. 存储器数据寄存器:存放向主存写入的信息或从主存中读出的信息
  6. 时序系统:产生各种时序信号,由统一时钟分频得到
  7. 微操作信号发生器:根据IR的内容(指令),PSW的内容(状态信息),时序信号产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种

5.2指令执行过程

5.2.1指令周期

    CPU从主存取出并执行一条指令所需时间称为指令周期,也就是CPU完成一条指令的时间常常用若干机器周期(CPU周期)来表示,机器周期又包含若干时钟周期,时钟周期,又称节拍或T周期,是CPU操作的基本单位每个指令周期内机器周期数可以不等每个机器周期内节拍数可以不等定长的机器周期,不定长的机器周期

5.2.2指令周期的数据流

   数据流是根据指令要求依次访问的数据序列,不同指令,指令的不同阶段数据流不同

取指周期的数据流

间址周期的数据流

执行周期的数据流

 不同指令的执行周期数据流不同根据IR中指令字的操作码和操作数通过ALU操作产生执行结果

中断周期的数据流

 处理中断请求,假设程序断点存入堆栈假设SP栈顶地址,先修改指针后存数据CU控制SP-1 SP→MAR→地址总线→主存CU写命令→控制总线→主存PC→MDR→数据总线→主存(程序断点存入主存)CU(中断服务程序的入口地址)→PC

5.2.3指令执行方案

一个执行周期中通常有多个执行步骤,从性能和成本出发有三种方案来安排这些执行步骤

单指令周期:会降低系统运行速度

     所有指令都选用相同的执行时间来完成,指令在固定的时钟周期内完成,指令间串行执行

多指令周期

     不同类型的指令选用不同的执行步骤来完成,指令所需时钟周期不固定,指令间串行执行

流水线方案

     指令间可以并行执行(处于不同执行步骤中),一个时钟周期启动一条指令,力争在每个时钟脉冲周期内完成一条指令的执行过程

5.3数据通路的功能和基本结构

5.3.1数据通路的功能

数据通路

         数据在功能部件间传送的路径运算器和寄存器之间的传送路径就是中央处理器内部数据通路描述了信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器建立数据通路的任务是由“操作控制部件”来完成的

数据通路的功能:

 实现CPU内部的运算器与寄存器以及寄存器之间的数据交换

5.3.2数据通路的基本结构

CPU内部单总线方式

     将所有寄存器的输入端,输出端都连接到一条公共的通道上结构简单,容易冲突性能较低

CPU内部多总线方式

     将所有寄存器的输入端,输出端都连接到多条公共的通道上(双总线,多总线)同时在多个总线传送不同数据,效率比但总线高

专用通道方式

 根据指令执行过程中的数据和地址的流动方向安排连接线路,避免使用共享的总线性能较高,硬件量大复杂

寄存器之间的数据传送

     例如如把PC寄存器内容送入MARPC→Bus   PC(out)有效Bus→MAR MAR(in)有效

主存与CPU间数据传送

 例如CPU从主存读取指令PC→Bus→MAR,1→R(CU发读命令),MEM(MAR)→MDR,MDR→Bus→IR

算术逻辑运算的数据传送(加法)

Ad(IR)→Bus→MAR,1→R,MEM→数据线→MDR,MDR→Bus→Y,(ACC)+(Y)→Z,Z→ACC
数据通路结构直接影响CPU内信息的传送路径以及微操作信号形成部件的设计

5.4控制器的功能和工作原理

控制器部件从数据总线接受指令信息,从运算器部件接受指令转移地址
送出指令地址到地址总线,向系统中的部件提供他们运行所需的控制信号
根据产生微操作控制信号的方式分为:
硬布线控制器
微程序控制器
确定和表示指令执行步骤的方法不同
给出控制个部件控制信号的方案不同
PC,IR相同

5.4.1硬布线控制器

基本思想:

 硬布线控制器是早期设计计算机的一种方法,根据指令要求,当前时序和内部状态,按时间顺序发送一系列操作控制信号,把控制部件看作产生专门固定时序控制信号的逻辑电路,也称组合逻辑控制器核心部分是微操作产生部件,是一种由门电路和触发器构成的复杂树形逻辑网络设计目标:以使用最少元件和取得最高操作速度制成后很难增加新控制功能,除非重新设计或重新布线

硬布线控制单元图

 指令的操作码是决定控制信号的关键为简化逻辑将操作码译码,节拍发生器从CU分离

CU的输入信号来源

 经指令译码器译码产生的指令信息时序系统产生的机器周期信号和节拍信号执行单元的反馈信息即标志来自系统总线的控制信号,如中断请求,DMA请求

硬布线控制器的时序系统

 时钟周期:时钟信号控制节拍发生器产生节拍,每个节拍的宽度正好对应一个时钟周期,在每个节拍内机器可完成一个或几个需同时执行的操作机器周期:通常以内存中读取一个指令字的最短时间作为机器周期,所有指令执行过程的一个基准时间当存储字长等于指令字长时取指周期可以看作机器周期在一个机器周期可完成若干微操作,使用时钟信号控制产生每一个微操作命令

微操作命令:

 控制单元具有发出各种操作命令(控制信号)序列的功能,这些命令与指令有关,必须按一定次序发出机器才能有序工作,对于不同的指令,控制单元需发出各种不同的微操作命令
取指周期微操作命令分析 间址周期微操作命令分析
PC→MAR AD(IR)→MAR
1→R 1→R
M(MAR)→MDR M(MAR)→MDR
MDR→IR /
OP(IR)→CU /
(PC)+1→PC /
执行周期微操作命令分析(非访存指令)
CLA 清ACC 0→ACC
COM 取反 AAC→ACC
SHR 算术右移 L(ACC)→R(ACC),ACC0→ACC0
CSL 循环左移 R(ACC)→L(ACC),ACC0→ACCn
STP 停机指令 0→G
执行周期微操作命令分析(访存指令)
ADDX 加法指令 Ad(IR)→MAR
1→R
M(MAR)→MDR
(ACC)+(MDR)→ACC
STA X 存数指令 Ad(IR)→MAR
1→W 写
ACC→MDR
MDR→M(MAR)
LDA X 取数指令 Ad(IR)→MAR
1→R
M(MAR)→MDR
MDR→ACC
执行周期微操作命令分析(转移指令)
JMP X 无条件转移 Ad(IR)→PC
BAN X 条件转移 A0*Ad(IR)+A0*(PC)→PC 负则转

CPU控制方式:

每条指令和每个操作所需的执行时间不同,控制一条指令执行的方式有3种

同步控制方式:

控制电路简单,运行速度慢
系统有一个统一时钟,所有控制信号均来自在这个统一的时钟信号
通常以最长的微操作序列和最繁琐的微操作作为标准,采取完全统一的,具有相同时间间隔和相同数目的节拍作为机器周期来运行不同指令

异步控制方式:

 不存在基准时标信号,各部件按自身固有速度工作,通过应答方式进行联络

联合控制方式:

 介于同步,异步之间,大部分采用同步控制,小部分采用异步控制

硬布线控制单元设计步骤:

 1.列出微操作命令的操作时间表先根据微操作节拍安排,列出微操作命令的操作时间表,包括各个机器周期,节拍下每条指令完成的微操作控制信号2.进行微操作信号综合在列出操作时间表后即可对他们进行综合分析,归类,写出各位操作控制信号的逻辑表达式并进行适当简化,包含机器周期,节拍,脉冲,操作码,机器状态条件3.画出微操作命令的逻辑图根据逻辑表达式画出对应一个微操作信号的逻辑电路图,并用逻辑门电路实现
工作周期标记 节拍 状态条件 微操作命令信号 CLA COM ADD STA LDA JMP
FE取指 T0 PC→MAR 1 1 1 1 1 1
1→R 1 1 1 1 1 1
T1 M(MAR)→MDR 1 1 1 1 1 1
(PC)+1→PC 1 1 1 1 1 1
T2 MDR→IR 1 1 1 1 1 1
OP(IR)→ID 1 1 1 1 1 1
I l→IND 1 1 1 1
l l→EX 1 1 1 1 1 1
IND间址 T0 Ad(IR)→MAR 1 1 1 1
l→R 1 1 1 1
T1 M(MAR)→MDR 1 1 1 1
T2 MDR→Ad(IR) 1 1 1 1
IND 1→EX

5.4.2微程序控制器

核心思想:

采用存储逻辑实现,把微操作信号代码化,每一条机器指令编成一个微程序存入控制存储器中,每个微程序包含若干条微指令,通过寻址获取微程序中的微指令,每一条微指令对应一个或几个微操作,微操作控制信号由微指令产生。目前计算机广泛采用。

微程序控制的基本概念
微操作:

计算机中最基本的,不可再分解的操作,一条机器指令可分解为一个微操作序列

微命令:

控制部件向执行部件发出的控制命令,是构成控制序列的最小单位

微命令与微操作一一对应,微命令是微操作的控制信号,微操作是微命令的执行过程,相容性微命令可以同时产生,共同完成某一些微操作,互斥性微命令不允许同时出现

微程序控制的基本概念
微指令:

若干微命令的集合

微指令基本格式:

一条微指令至少包含两部分
微操作码字段(操作控制字段):产生某一操作所需的各种操作控制信号
微地址码字段(顺序控制字段):产生下一条要执行的微指令地址

微地址:

存放微指令的控制存储器的单元地址

微周期:

从控制存储器读取一条微指令并执行相应的操作所需的时间

主存储器:

用于存放程序和数据,在CPU外部,用RAM实现

控制存储器CM:

用于存放微程序,在CPU内部,用ROM实现

程序:

指令的有序集合,用于完成特定功能,由软件设计人员事先编制好存放在存储器中

微程序:

微指令的有序集合,一条指令的功能有一段微程序来实现,机器指令的实时解释器,由计算机设计者事先编制好存放在控制存储器中,对程序员透明

地址寄存器MAR:

存放主存的读/写地址

微地址寄存器CMAR:

存放控制存储器的读/写微指令的地址

指令寄存器IR:

存放从主存读出的指令

微指令寄存器CMDR或uIR:

存放从控制存储器(控存)中读取的微指令

微程序控制器基本框图

控制存储器CM:

核心部件,用于存放微程序,使用ROM构成

微指令寄存器CMDR:

存放CM取出的微指令,位数与微指令字长相等

微地址形成部件:

产生初始和后继微地址,以保证微指令的连续执行

微地址寄存器CMAR:

接收微地址形成部件送来的微地址,为在CM中读微指令做准备


微程序控制器工作过程

  1. 执行取指公共操作
    将取指微程序的入口地址送入CMAR,从CM读取相应的微指令送入CMDR。当取指微程序执行完后,从主存中取出的机器指令就已存入IR中了
  2. 由机器指令操作码字段通过微地址形成部件产生该指令对应的微程序入口地址,送入CMAR,从CM中逐条取出对应的微指令并执行
  3. 执行完一个微程序后回到微程序的入口地址,继续第一步完成取下一条机器指令的公共操作

微指令的编码方式
也称微指令的控制方式,指微指令的控制字段如何编码形成控制信号
目标是保证速度的前提下尽量缩短微指令字长

  1. 直接编码(直接控制)方式
    微命令字段每一位代表一个微命令,无需译码。每个微命令对应并控制数据通路中的一个微操作
  2. 字段直接编码方式
    将微指令的微命令字段分成若干段,每段经译码后发出控制信号,互斥性微命令在同一段中,相容性微命令在不同的段中。每段信息位不能过多,否则译码线路复杂,每段留出一个状态表示不发出微命令。
  3. 字段间接编码方式(隐式编码)
    一个字段的某些微命令需由另一个字段中的某些微命令来解释,一种辅助手段
  4. 混合编码
    直接编码,字段编码混合使用

微指令的地址形成方式

  1. 由微指令的下地址字段指出,也称断定方式
  2. 由机器指令的操作码经微地址形成部件形成
  3. 增量计数器法 (CMAR)+1

    计算机考研408专用笔记-----计算机组成原理相关推荐

    1. 408计算机组成考试大纲,2021计算机考研408大纲:计算机组成原理部分解析及备考指导...

      2021计算机考研408大纲已经公布,那么大纲公布后,我们要如何根据大纲进行计算机考研复习呢?一起来看看吧~更多考研专硕复习资料.考研专硕试题.考研专硕复习策略等信息,请您关注浙江考研专硕备考. 计算 ...

    2. 408考研大纲计算机网络,2021计算机考研408大纲:计算机网络部分解析及备考指导...

      2021计算机考研408大纲已经公布,那么大纲公布后,我们要如何根据大纲进行计算机考研复习呢?一起来看看吧~更多考研专硕复习资料.考研专硕试题.考研专硕复习策略等信息,请您关注浙江考研专硕备考. 计算 ...

    3. 华中科技大学计算机考研408,【21计算机考研】华中科技大学不改408了?燕山大学官宣408!...

      倒计时111天 ● 华中科技大学 ● 20年考研数据回顾: 早前,许多论坛和群消息都在讨论华中科技大学是否会改408的问题,2月份有本校同学回应今年要改408,但是学校官方一直没有下达正式的文件通知. ...

    4. 2017计算机考研408试卷,2017计算机408考研真题

      2017计算机408考研真题 2017年全国硕士研究生招生考试年全国硕士研究生招生考试 计算机科学与技术学科联考计算机科学与技术学科联考 计算机学科专业基础综合试题计算机学科专业基础综合试题 一.单项 ...

    5. 计算机考研408复试(面试)问题——计算机组成原理

      计算机考研408复试(面试)问题: 链接: 计算机组成原理 链接: 操作系统 链接: 数据结构 链接: 计算机网络 1.计算机系统概述 1.计算机由哪几部分组成?以哪部分为中心?   计算机由运算器. ...

    6. 考研计算机专业课统考吗,【计算机考研】你了解计算机统考408吗?

      原标题:[计算机考研]你了解计算机统考408吗? 什么是408计算机统考 计算机考研专业课在2009年年初实行了第一次统考,统考是国家教育部出题,全国统一考试,计算机考研统考编号是408,408考试科 ...

    7. 计算机考研408复试(面试)问题——数据结构

      计算机考研408复试(面试)问题: 链接: 计算机组成原理 链接: 操作系统 链接: 数据结构 链接: 计算机网络 1.绪论 1.数据类型 原子类型.如 int.bool 结构类型.如struct{- ...

    8. 计算机考研408专业课 思维导图

      计算机考研408,数据结构,计算机组成原理,计算机操作系统,计算机网络,思维导图分享: 随着学习的过程会逐渐的将个人总结发布出来,可以先点赞收藏关注一波,方便及时收到更新通知: 欢迎任何合理建议.

    9. 学计算机的前后对比,2020计算机考研(408)大纲前后对比分析!

      2020计算机考研(408)大纲已发布,计算机考研(408)大纲对于考研计算机复习具有指导意义,让复习方向化零为整,提高复习效率,在考研大纲发布后,学府考研招生老师第一时间整理2020计算机考研(40 ...

    10. 计算机考研408复试(面试)问题——计算机网络

      计算机考研408复试(面试)问题: 链接: 计算机组成原理 链接: 操作系统 链接: 数据结构 链接: 计算机网络 1.计算机网络体系结构 1.计算机网络的功能   数据通信.资源共享.分布式处理.提 ...

    最新文章

    1. qpython3h手机版 写弹窗代码_Android Q之气泡弹窗的实现示例
    2. Java从零开始学四十六(Junit)
    3. 高考来了_大数据能做些什么?
    4. linux 端口添加地址,linux – 绑定,网络(接口)和多播地址有什么区别?
    5. 知乎真的一天不如一天了吗?
    6. 赖美云的认证照_真人秀及综艺类双榜单TOP10嘉宾热度认证 赖美云双面魅力引热议...
    7. Runtime底层原理--Runtime简介、函数注释
    8. .NET语言的编译过程:中间语言(IL)和即时编译器(JIT)
    9. mac删除android sd卡,如何从mac完全删除android及其所有文件?
    10. 【Guava】Google Guava本地高效缓存
    11. python中capitalize()函数的用法
    12. iOS 创建推送证书
    13. ora-28547 可能是oracle net 管理错误_PostgreSQL与Oracle:成本、易用性和功能上的差异...
    14. 组建技术团队的一些思考
    15. linux安装配置samba服务,UbuntuLinux系统安装配置Samba服务
    16. Single Image Haze Removal Using Dark Channel Prior(使用暗通道先验去除单张图像雾霾)
    17. 使用linux宝塔面板安装 魔方IDC管理系统 免费
    18. python re模块findall_python re模块findall()函数实例解析
    19. QQ,微信能聊天都靠它(socket)?
    20. 无界鼠标 (Mouse without Borders) 一套键鼠控制多台电脑的工具(可跨电脑拷贝/拖放文件)

    热门文章

    1. 大气压力换算公式_大气压怎么算
    2. Android - 浅谈 Handler 机制
    3. kali-网站克隆工具-httrack
    4. 超好用的网站克隆工具,就是玩!
    5. 为什么要学习现代控制理论(机器人方向)?
    6. 《具体数学》——数论
    7. linux设置ipsan_linux 配置IPSAN存储
    8. noip2016题解
    9. HG8120C 端口映射 配置家用服务器
    10. Python数据分析案例——20年【科比NBA】生涯|数据分析