导图社区 计算机组成原理
计算机组成原理知识总结。涉及计算机指令、数值表示、乘法器除法器原理、MIPS指令系统等等多方面知识,帮助计算机组成原理学习者梳理知识结构,快速掌握计算机组成原理技术,打好计算机基础。
编辑于2024-03-02 22:24:43一步步教你构建一个股票模糊搜索框,涉及JavaScript学习、前端设计与编程、股票数据处理、Django网站搭建等各个方面的知识。强烈推荐计算机编程初学者参考尝试,有助于快速提高编程能力。
来自名牌大学博士生的书单推荐。涉及计算机科学、数学、复杂性科学、心理学、社会心理、生物学等等各个学科,帮助大家拓宽眼界,开拓视野,积累知识,走向成功人生。
本模板介绍了计算机学科学术论文检索与阅读的方法,非常适合希望提高学术能力的本科生和研究生学习。模板介绍了论文的相关名词解释、搜索工具、基本结构、阅读方法和原则等内容,有助于提高学生的学术科研能力。
社区模板帮助中心,点此进入>>
一步步教你构建一个股票模糊搜索框,涉及JavaScript学习、前端设计与编程、股票数据处理、Django网站搭建等各个方面的知识。强烈推荐计算机编程初学者参考尝试,有助于快速提高编程能力。
来自名牌大学博士生的书单推荐。涉及计算机科学、数学、复杂性科学、心理学、社会心理、生物学等等各个学科,帮助大家拓宽眼界,开拓视野,积累知识,走向成功人生。
本模板介绍了计算机学科学术论文检索与阅读的方法,非常适合希望提高学术能力的本科生和研究生学习。模板介绍了论文的相关名词解释、搜索工具、基本结构、阅读方法和原则等内容,有助于提高学生的学术科研能力。
计算机组成原理
计算机概要与技术
引言
计算机的分类及其特性
个人计算机
服务器
借助网络访问,执行大负载任务
超级计算机
高端服务器
注意
TB:10^12字节
TiB:2^40字节
嵌入式计算机
数量最多
后PC时代
个人移动设备PMD
智能手机、平板电脑
云计算
在网络上提供服务的大服务器集群
计算机系统结构中的8个伟大思想
面向摩尔定律的设计
单芯片上集成度每18-24个月翻一番,计算机设计者必须预测设计完成时的工艺水平而不是设计开始时
使用抽象简化设计
使用抽象表示不同的设计层次,在高层次中看不到低层次的细节,只能看到一个简化模型
加速大概率事件
远比优化小概率事件更能提高性能
通过并行提高性能
通过流水线提高性能
一个特别的并行场景,类似于接力传水桶
通过预测提高性能
假定从误预测恢复执行代价不高并且预测的准确率相对较高,则通过猜测的方式提前执行某些操作
存储器层次
顶层速度快容量小价格贵,底层相反
通过冗余提高可靠性
冗余部件可以替代失效部件并可以帮助检测错误
程序概念入门
计算机系统层次结构
冯诺依曼计算机
计算机硬件系统由运算器、控制器、存储器和I/O设备组成
采用二进制编码表示数据
将程序和数据统一表示
计算机具有顺序指令的处理能力
软件
应用层
数据库系统原理
算法层
数据结构、算法设计与分析
高级语言层
程序设计基础、C++程序设计
操作系统层
编译原理、操作系统
系统软件
操作系统
处理基本的输入输出
分配外村和内存
对多个应用程序提供共享计算机资源的服务
编译程序
把高级语言编写的程序翻译为硬件能执行的指令
指令系统层:指令集
计算机组成原理
硬件
指令系统层:指令集
计算机组成原理
逻辑层:逻辑运算、门电路
离散数学、数字逻辑
从高级语言到硬件语言
二进制位
信息基本组成元素
指令
计算机硬件所能理解并服从的命令
汇编程序
将助记符形式的指令自动翻译成对应二进制
汇编语言
以助记符形式表示的机器指令
机器语言
以二进制元的形式表示的机器指令
高级编程语言
C,C++,Java,Visual,Visual Basic等可移植语言,由单词和代数符号组成,可由编译器转换为汇编语言
计算机性能
性能的评价标准
吞吐率和响应时间
响应时间response time
执行时间,计算机完成某项任务所需要的总时间,包括硬盘访问、内存访问、I/O活动、操纵系统开销和CPU执行时间等
吞吐率 throughput
带宽,表示单位时间内完成的任务数量
相对性能
性能的测算
时钟周期与时钟频率
时钟周期
计算机系统使用时钟来驱动硬件中发生的各种事情
时钟周期为时钟间隔的时间,即为时钟一个周期的时间
时钟频率
时钟周期的倒数
CPU执行时间
执行某一任务在CPU上所花费的时间(不包括IO和用在其他任务上的时间)
用户CPU时间
CPU执行用户程序花费的时间
系统CPU时间
操作系统为用户服务花费的CPU时间
指令的性能
CPI
Clock cycles per instruction
每个指令的平均CPU时钟周期数
经典CPU性能公式
一个程序的CPU执行时间 =一个程序的CPU时钟周期数x时钟周期时间 =一个程序的CPU时钟周期数/时钟频率
一个程序的CPU时钟周期数 =程序的指令数x每条指令的平均时钟周期数(CPI)
CPU时间=指令数xCPIx时钟周期时间 =指令数xCPI/时钟频率
注意
指令数量取决于计算机体系结构,不依懒于计算机的 具体实现
CPI与计算机的各种设计细节密切相关,包括存储系统 和处理器结构
CPI对不同的应用程序是不同的,对于相同指令集的不同实现方式也是不同的
比较两台计算机时必须考虑全部三个因素
程序性能相关因素
硬件概念入门
计算机组成部件
datapath
完成算术和逻辑运算,通常包括其中的寄存器
control
CPU的组成部分,它根据程序指令来指挥datapath, memory以及 I/O运行,共同完成程序功能。
memory
存放运行时程序及其所需要的数据的场所。
input
信息进行计算机的设备,如键盘、鼠标等。
触摸屏
电容感应
output
将计算结果展示给用户的设备,如显示器、磁盘、打印机、喇叭等。
显示器
液晶显示LCD
LCD不是光源,是光的传输的控制装置。
动态矩阵显示
使用晶体管控制单个像素上光线的传输
像素
图像元素的最小单元

硬件
CPU
数据通路
完成算术运算
控制器
指导数据通路、存储器、I/O设备按照程序的指令正确执行
缓存(Cache)
静态随机访问存储器(SRAM)
速度快、造价高
存储器
存取时间与容量
构造与读写原理
主存储器
动态随机存取存储器DRAM
基本存储单元

构造和表示
信息记忆在电容CS上,T为门控管,控制数据的进出。其栅极接读/写选择 线(字线),漏和源分别接数据线(位线)和记忆电容CS。数据1或0以电容CS 上电荷量的有无来判别。
读写原理
在选择(字)线上加高电平,使T管导通。 写“0”时,在数据线上加低电平,使CS上电荷对数据线放电; 写“1”时,在数据线上加高电平,使数据线对CS充电; 读出时,在数据线上有一读出电压。它与CS上电荷量成正比。
核心元件:MOS晶体管

图示读写刷新操作

芯片逻辑结构

存储器模块条
是在一个条状形的小印制电路板上,用一定数量的存储器芯片,组成一个存储容量固定的存储模块。
分类
30脚
8位数据线,容量256KB~32MB
72脚
32位数据总线
100脚以上
既用于32位数据总线又用于64位数据总线,容量4MB~512MB
其他动态随机存取内存
同步动态随机存取内存SDRAM
有一个同步接口的动态随机存取内存。通常动态随机存取内存(DRAM)是有一个异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。时钟被用来驱动一个有限状态机,对进入的指令进行流水线操作。这使得SDRAM与没有同步接口的异步DRAM(asynchronous DRAM)相比,可以有一个更复杂的操作模式。
双倍数据率同步动态随机存取存储器DDR SDRAM
为具有双倍数据传输率之SDRAM,其数据传输速度为系统时钟频率之两倍,由于速度增加,其传输性能优于传统的SDRAM。
内存单面针脚数量为92个(双面184个),缺口左边为52个针脚, 缺口右边为40个针脚;
第二代双倍数据率同步动态随机存取存储器DDR2 SDRAM
提供了相较于DDR SDRAM更高的运行性能与更低的电压,是DDR SDRAM(双倍数据率同步动态随机存取存储器)的后继者。
内存单面针脚120个(双面240个),缺口左边为64个针脚,缺口右边为56个针脚;
第三代双倍数据率同步动态随机存取存储器DDR3 SDRAM
提供了相较于DDR2 SDRAM更高的运行性能与更低的电压,是DDR2 SDRAM(四倍数据率同步动态随机存取存储器)的后继者(增加至八倍)。
内存单面针脚也是120个(双面240个),缺口左边为72个针脚,缺口右边为48个针脚。
磁盘
外形与结构示意图

工作原理

写1:线圈通正向电流,使呈N-S状态
写0:线圈通反向电流,使呈S-N状态
读取:磁头固定不动,载体运动。因为载体上小的磁化单元外部的磁力线通过磁头铁芯形成闭合回路,在铁芯线圈两端得到感应电压。根据不同的极性可以确定读出1或0
存储结构

闪存
在EPROM存储元基础上发展起来的高密度非失易失性的读/写存储器。
高密度意味着它具有巨大比特数目的存储容量。
非易失性意味着存放的数据在没有电源的情况下可以长期保存。
既有RAM的优点,又有ROM的优点,称得上是存储技术划时代的进展。
光盘
读取原理
只读型光盘(CD-ROM)系统都基于一个共同原理,即光盘上的信息以坑点形式分布,有坑点表示为“1”,无坑点表示为“0”,一系列的坑点(存储元)形成信息记录道。
对数据存储用的CDROM光盘来讲,这种坑点分布作为数字“1”、“0”代码的写入或读出标志。为此必须采用激光作为光源,并采用良好的光学系统才能实现。
光盘的记录信息以凹坑方式永久性存储。读出时,当激光束聚焦点照射在凹坑上时 将发生衍射,反射率低;而聚焦点照射在凸面上时大部分光将返回。根据反射光的 光强变化并进行光电转换,即可读出记录信息。

存储结构
信息记录的轨迹称为光道。光道上划分出一个个扇区,它是光盘的最小可寻址单位。扇区的结构如图所示。

磁带
磁带机的记录原理与磁盘机基本相同,只是它的载磁体是一种带状塑料,叫做磁带。写入时可通过磁头把信息代码记录在磁带上。当记录有代码的磁带在磁头下移动时,就可在磁头线圈上感应出电动势,即读出信息代码。磁带存储设备由磁带机和磁带两部分组成,它通常用作为海量存储设备的数据备份。
磁带速度较磁盘速度慢,原因是磁带上的数据采用顺序访问方式,而磁盘则采用随机访问方式。
分类
1/4英寸磁带(QIC)
36-72条磁道,数据并行记录
容量80MB~1.2GB
数码音频磁带(DAT)
旋转扫描
容量12GB
8mm磁带
容量25GB
数码线性磁带(DLT)
容量最大35GB
处理器和存储器的制造技术
晶体管
由电信号控制的简单开关
集成电路
由成千上万晶体管组成的芯片
大规模集成电路
由数十万到数百万晶体管组成的电路
CPU功耗墙
功耗墙问题
占统治地位的集成电路技术是CMOS,其主要的功耗 来源是动态功耗,即在晶体管开关过程中产生的功耗 功耗=负载电容x电压²x开关频率 ▪ 开关频率是时钟频率的函数 ▪ 负载电容是连接到输出上的晶体管数量和工艺的函数 ▪ 目前,每代CPU通过降低电压来抵消频率增长带来的功耗 增长,20年来,电压从5V降低到了1V
如何进一步提高计算机性能
使用更强的冷却技术,代价昂贵
从单处理器向多处理器转变
■在过去,程序员可以依赖于硬件、体系结构和编译程序的创新,无需修改代码,程序的新能就可以每18个月翻一番。 ■而现在,程序员想要显著改进响应时间,必须重写程序,而且随着核数量的不断加倍,程序员必须不断改进他们的代码。
CPU制造实例
半导体材料:硅
用特殊的化学方法对硅添加某些材料,可将细微的区域转变为
良好的导体
良好的绝缘体
可控的导体或绝缘体
VLSI电路就是由数亿上述材料组合封装制成
计算机指令
基本概念、MIPS指令系统
指令的基本概念
计算机语言的三个层次
高级语言
汇编语言(用指令助记符编写程序)
机器语言(用指令代码编写程序)
是指令集的体系,这种指令集称机器码,是CPU可直接解读的数据。
指令和指令系统
指令
计算机运行的最小功能单元,是指挥计算机硬件运行的命令,是由多个二进制位组成的位串
一台计算机提供的全部指令构成该计算机的指令系统。指令用于程序设计人员告知计算机行一个最基本运算、处理功能。多条指令可以组成一个程序,完成一项预期的任务。
指令系统
定义
一台计算机提供的全部指令构成该计算机的指令系统。
指令用于程序设计人员告知计算机执行一个最基本运算、处理功能
例子
X86
系统
windows,linux
芯片
Intel,AMD
CISC
ARM
系统
安卓,iOS,Windows mobile
芯片
骁龙,apple,麒麟
MIPS
系统
Linux
芯片
龙芯三号
RISC
CISC和RISC
指令系统的发展
复杂指令系统计算机CISC
几百条指令,庞大的指令系统使计算机研制周期变长,难以保证正确性,不易调试维护,采用了大量使用频率低的复杂指令造成硬件资源浪费
精简指令系统计算机RISC
X86指令集中最常用的十条指令使用频率之和高达96%
MIPS指令系统
MIPS计算机硬件操作
含义
无内部互锁流水级的微处理RISC芯片
应用
SGI超级计算机
嵌入式系统
路由器
游戏设备
中国龙芯
MIPS 32位计算机系统图

基本概念与背景知识
比特、字节、字
Bit比特
二进制中的一位,信息的最小单位
Byte字节
8Bit
Word字
表示数据单位的术语
一个字的位数(字长)是计算机系统结构的一个重要特性
现代计算机字长通常为32、64位
数据在存储器中的存放
存储器
可以看成字节数组
每个字节有唯一的索引:地址
访问存储器的字节时,需要提供地址
一个字占用多个字节
32位
1 Word=4Byte
64位
1 Word=8Byte
字地址是其包含的第一个字节的地址
字的起始地址必须是4的倍数

字节的存放顺序
小端编址
小端字节作为字地址
大端编址
大端字节作为字地址

MIPS指令的二进制表示
MIPS指令都为单字指令(指令长度=机器字长)
MIPS硬件
MIPS CPU
32个通用寄存器
每个寄存器大小与单个字大小相等,32位
MIPS 寄存器

MIPS(32位)计算机存储器
MIPS(32位)计算机系统中,地址为32位二进位串
存储器最大容量为2^32Bytes/2^30Words
字的起始地址必须是4的倍数
MIPS32位计算机特点
寄存器用于数据的快速存取。在MIPS中只能对存放在寄存器中的数进行算术操作,寄存器$zero恒为0,寄存器寄存器$at被汇编器保留,用于处理大的常数
存储器只能通过数据传输指令访问。MIPS使用字节编址,所以连续的字地址相差4。存储器用于保存数据结构、数组和溢出的寄存器
MIPS计算机硬件操作数
寄存器操作数和存储器操作数
寄存器操作数
算术运算的操作数必须来自寄存器
MIPS计算机有32个寄存器,每个寄存器大小32位
举个例子


存储器操作数
数据传送指令
定义
在存储器和寄存器之间传送数据的指令
分类
取数指令lw(load word)

存数指令sw(store word)

寄存器溢出
定义
程序变量远超寄存器数量,将不常用的变量存到存储器的过程
寄存器中数据更容易利用
一条MIPS算术指令能完成读取两个寄存器进行运算并存回结果
一条MIPS数据传送指令只能完成读一个操作数或写一个操作数
寄存器和存储器相比,访问时间短,吞吐率高,访问寄存器相对于存储器功耗更小
为了获得更高的性能和节约功耗,编译器必须高效率地利用寄存器
常数或立即数操作数
在指令中直接提供一个操作数
寄存器$zero恒置为0
常数或立即数操作
加立即数

立即数与andi rt rs,imm
立即数高位取指令lui rt,imm
取立即数li rdest,imm
小结

书上完整的MIPS汇编语言
MIPS操作数

MIPS汇编语言





MIPS指令格式
计算机中指令的表示
指令字
完整的一条指令的二进制表示
指令字长
指令字中二进制代码的位数
指令格式
操作码
指明本条指令的操作功能,每条指令有一个确定的操作码
操作数地址
说明操作数存放的地址,有时是操作数本身(立即数)
图示

指令的数字形式成为机器语言,这样的指令序列成为机器码
指令在计算机中是以若干高低电信号的序列表示
MIPS汇编语言中,寄存器编码规则
$s0-$s7映射为16-23
$t0-$t7映射为8-15
一条MIPS汇编语言的机器指令
汇编语言
add $t0,$s1,$s2
十进制形式

二进制形式

十六进制

MIPS指令格式
存储空间分配

解释
op
指令的基本操作(操作码)
rs
第一个源操作数寄存器
rt
第二个源操作数寄存器
rd
用于存放操作结果的目的寄存器
shamt
位移量,在移位指令中使用
funct
功能码,用于指明op字段中操作的特定变式
存在问题
两个寄存器一个常数,常数被限制在2^5之内
折中方案
为了保持所有指令具有相同的长度,允许不同类型的指令具有不同的指令格式
三种格式类型

小结
指令

例子

逻辑操作指令
逻辑操作
定义
对字中若干位或单个位进行操作
种类
例子
逻辑左移、逻辑右移

按位与

按位或

按位取反
操作码
逻辑左移
sll
逻辑右移
srl
按位与
and,andi
按位或
or,ori
按位取反
nor
决策指令
定义
根据输入和计算过程中产生的值执行不同的指令
分类
条件分支指令
如果相等则分支
beq register1,register2,L1
如果不相等则分支
bne register1,register2,L1
例子
高级语言
if(i==j) f=g+h; else f=g-h;
汇编语言
bne $s3,$s4,Else #如果ij不相等就滚去Else add $s0,$s1,$s2 #gh加起来存到f j Exit #滚去Exit Else: sub $s0,$s1,$s2 #gh相减存到f Exit:
编译while循环语句
高级语言
while(sava[i]==k) i+=1;
汇编语言
Loop: sll $t1,$s3,2 #$t1=4*i add $t1,$t1,$s6 #$t1=adress of save[i]($s6存着save的地址) lw $t0,0($t1) #$t0=save[i] bne $t0,$s5,Exit #save[i]不等于k时滚出去 add $s3,$s3,1 #i=i+1 j Loop #滚回去循环 Exit:
小于则置位
作用
比较一个变量是否小于另一个
语法
slt $t0,$s3,$s4
解释
当$s3中的值小于$s4的值时$t0置1,否则置0
小结


计算机硬件对过程的支持、MIPS指令寻址模式
MIPS计算机对过程的支持
寄存器分配规则
$a0~$a3
传递参数
$v0~$v1
返回值
$ra
返回起始点的返回地址寄存器
跳转和链接指令
跳转到某个地址的同时将下一条指令的地址保存在寄存器$ra中
jal ProcedureAddress
寄存器跳转指令
无条件跳转到寄存器所指定的地址
jr $ra

数值表示和运算
数据编码与表示
需要在计算机中存储的对象
通过编码表示
基本元素
0、1
字符
位数
26字母->5位
大小写+其他符号->7位
世界上其它语言的文字->16位(Unicode)
重要的人机界面
由符号组成
为每个符号进行编码,最后由输入输出设备进行转换
一般以字符串的形式在计算机存储器中存放
各种字符集编码标准
ASCII
American Standard Code for Information Interchange
采用7位二进制编码,加上一个偶检验位,共8位,占用1字节
表示128个西文字符
英文字母
十进制数
标点符号
具体内容

UNICODE
使用16位表示一个字符,可表示65536个字符
将整个编码空间划分为块,每块为16的整数倍,按块进行分配
保留6400个码点供本地化使用
依然无法覆盖所有字符
数值型数据表示
复习:进制相关
进位计数法(任意进制按十进制展开)
公式

含义
N表示一个数值
r是这个数制的基
i表示这些符号排列的位号,从0开始
Di是位号为i的位上的一个符号
r^i是位号为i的位上的一个1代表的值
常用的进制
二进制用于计算机内部
八进制十六进制是二进制缩写
十进制给人用
数制转换
选择数据的表示方式的相关因素
数据类型
小数、整数、实数、复数
数值范围
数据可能遇到的最大值和最小值
数值精度
实数所能给出的有效数字位数;对于浮点数来说精度不够会造成误差,误差累积会出问题
存储、处理、传送的硬件代价
占用存储空间、传输速度
两种常用的数据格式
定点数
特点
小数点位置固定
定点整数
定点小数
数值范围有限,要求的处理硬件简单
定点数的表示方法
定点格式
约定所有数据的小数点位置固定
由于约定在固定的位置,小数点不再使用记号表示
通常将数据表示成纯小数或纯整数
表示方法

纯小数
小数点在Xn与Xn-1之间
[0,1-2^(-n)]
纯整数
小数点在X0右边
[0,2^n-1]

整数编码
原码
组成
符号位+数的绝对值
正数这样子表示

负数这样子表示

范围

特点
表示简单,易于同真值之间进行转换,实现乘除运算规则简单
进行加减运算十分麻烦
相加:同号数值相加,符号保留;异号进行减法
相减:首先比较绝对值大小,然后以绝对值大的作为被减数,另一个作为减数作差,把绝对值大的那个符号拿来做符号
存在+0和-0
就很迷惑,你看
10000000
00000000
反码
符号位+数值按位求反
特点
0的反码不唯一
取值范围

补码
反码+1
正数的补码就是正数本身,负数的补码是原负数加上模
补码符号位



特点
将减法运算转换成加法运算
真值0的补码唯一
取值范围

有符号数

无符号数

总结
正数的原码反码补码都相同
符号位0,数值位就是真值
0的原码反码都有两个编码,补码只有一个
负数的原码反码补码都不同
符号位1
数值位
原码:数的绝对值
反码:绝对值取反
补码:反码+1
浮点数
小数点位置浮动
数值范围很大,要求的处理硬件复杂
表示方法
十进制科学计数法

二进制科学计数法

如何表示浮点数

规格化表示方法
尾数值不为0时,尾数域最左位总是1
最高有效位总是1,所以这一位不予存储,认为隐藏在小数点左边
IEEE754标准
浮点数算术标准
规定基数为2,阶码E用移码表示,尾数M用原码表示,根据二进制规格化方法,数值的最高位总是1,该标准将这个1缺省存储,使得尾数表示范围比实际存储多一位


总结
规格化形式

单精度浮点数

双精度浮点数

浮点数真值计算
规格化32位浮点数

规格化64位浮点数

特殊规定
E全为0,M全为0,则x=0;结合符号位,有+0和-0
E全为1,M全为0,则x=无穷;结合符号位,有正负无穷
数值范围(32位)
阶码E
8位二进制数
指数真值范围:-126~127
特殊情况

检错纠错码
码距
任意两个合法码之间至少有几个二进制位不相同
三种常用的检错纠错码
奇偶校验码
用于并行数据传送
原理
在k位数据码之外增加1位检验位,使k+1位码字中取值为1的位数总保持为偶数或奇数
计算表示


实现电路

汉明校验码
用于并行数据传送
循环冗余校验码
用于串行数据传送
传送与检验过程

逻辑值
0->False,1->True
颜色
位置、地址、指令
运算
定点加减法原理
补码加减法
公式

加法特点
符号位要当做数的一部分参加运算
超过模2^(n+1)的进位要丢掉
溢出检测
溢出的概念
定点整数机器中,数的表示范围绝对值<2^(n-1)
在运算过程中,运算结果超出机器字长所能表示的范围的现象称为溢出
可能产生溢出的情况
两正数加,变负数,上溢
两负数加,变正数,下溢
检测方法
双符号位法
参与加减运算的数采用变形补码表示
计算法则
两个符号位都看做数码参加运算
两数进行以模2^(n+2)的加法,最高符号位上产生的进位丢掉
检测

单符号位法
最高位产生
运算器组成
基本功能
完成算术、逻辑运算
取得操作数:寄存器组、数据总线
输出、存放运算结果:寄存器组、数据总线
暂存运算的中间结果:位移寄存器
得到运算结果的状态
理解、响应控制信号
基础逻辑电路
逻辑门电路
完成逻辑运算
加法器
完成加法运算
触发器
保存数据
多路选择器、移位器
选择、连通
数据通路

ALU功能和设计
功能
对操作数完成算术逻辑运算
ADD、AND、OR
设计
算术运算
加法器
逻辑运算
与门或门
乘法原理和乘法器
二进制乘法算法的描述
基本算法
若乘数的当前位==1,将被乘数和部分积求和
若乘数当前位==0,跳过,将部分积移位
所有位都完成后,部分积即为最终结果
N位乘数*M位被乘数
N+M位的积
乘法算法一
流程

改进
每次得X*yi后,与前面所得结果累加,得到Pi,称之为部分积。因为不等到最后一次求和,减少了保存各次相乘结果X*yi的开销
每次得X*yi后,不将它左移与前次部分积Pi相加,而将部分积Pi右移后与X*yi相加。因为加法运算始终对部分积中高n位进行,所以用n位加法器可实现两个n位数相乘
对乘数中为1的位执行加法和右移,对0的位只执行右移,不执行加法运算
乘法算法二
流程

除法原理和除法器
原码除法法则
两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得
定点小数除法

除法硬件结构

除法流程

存在的问题
加法器与寄存器的配合,被除数位数更长,商要一位一位的计算出来
这可以用左移除数得到解决,且被除数低位部分可以与最终的商合用同一个寄存器,余数与商同时左移
除法实现

原码除法方法
恢复余数法
不够减时恢复原来的余数以便继续运算
当前的余数加上除数
加减交替法
运算过程中出现不够减,不必恢复余数,根据余数符号继续运算
余数>0余数左移一位,减除数
余数>0余数左移一位,加除数
浮点数算术运算
浮点加法减法
浮点加减运算
运算规则

流程
0操作数检查
对阶,求阶差,让阶码小的数尾数右移,阶码取大的阶码值(左移尾数造成最高有效位丢失,损失大,故让尾数右移)
对尾数进行加减法运算
结果规格化
舍入处理
为什么
在对阶或规格化时,可能造成尾数右移丢失低位,从而造成误差
数据类型转换时也要舍入
IEEE754标准舍入方法
就近舍入(0舍1入)
丢弃的最高位为1进1
朝0舍入
截尾
朝正无穷舍入
正数多余位不全为0,进1;负数截尾
朝负无穷舍入
负数多余位不全为0,进1;正数截尾
溢出检查
浮点数溢出
上溢
数值太大
阶码值超出8位二进制位的表示范围
下溢
数值太小
阶码超出了8位二进制为的表示范围
图示

溢出判断与处理
浮点数的溢出是以阶码溢出表现出来的
左规时(尾数左移,阶码-1)
先判断阶码是否全0,若是则阶码下溢;否则,阶码-1后判断是否阶码全0,若是,则下溢
右规时(尾数右移,阶码+1)
先判断阶码是否全1,若是则阶码下溢;否则,阶码+1后判断是否阶码全1,若是,则下溢
浮点数加减运算部件

浮点乘法除法
公式

运算步骤
0操作数检查
阶码加减操作
乘法
若ExEy最高位都是1,而Ez最高位是0;或Ez全1,则阶码上溢
若ExEy最高位都是0,而Ez最高位是1;或Ez全0,则阶码下溢
除法
若Ex最高位1,Ey最高位0,Ez最高位0;或Ez全1,则阶码上溢
若Ex最高位0,Ey最高位1,Ez最高位1;或Ez全0,则阶码下溢
尾数乘除操作
结果规格化
舍入处理
阶码加减


附加位
作用
保护对阶时右移的位或运算的中间结果
处理
左规时被移到尾数中
作为舍入的依据
IEEE754规定
中间结果必须在右边加两个附加位
保护位
尾数右边的位
舍入位
保护位右边的位
浮点数运算流水线
提高并行性的两个渠道
空间并行性
增加冗余部件,如增加多操作处理机和超标量处理机
时间并行性
改善操作流程,如流水线技术
流水线特性
流水线没有缩短单个任务的延迟,但提高了整个系统的吞吐率
多个任务同时进行,占用不同的资源
可能的加速比=流水段数
流水线效率受限于用时最长的阶段
若每个阶段的用时不同,将降低流水线效率
装入和排空流水线也可降低加速比
冲突将导致流水线暂停
流水线基本概念

流水线原理
流水线的时钟周期

加速比分析

介绍
在流水线中必须是连续的任务,只有不断地提供任务才能充分发挥流水线的效率
把一个任务分解为几个有联系的子任务。每个子任务由一个专门的功能部件实现
在流水线中的每个功能部件之后都要有一个缓冲寄存器,或称为锁存器
在流水线中各段的时间应该尽量相等,否则引起堵塞和断流现象
流水线需要有装入时间和排空时间,只有当流水线完全充满时才能充分发挥效率
浮点数运算器