计算机组成原理
计算机系统概述

1.1 计算机发展历程
1.1.1 计算机硬件的发展
计算机系统=硬件+软件
摩尔定律,集成电路上的晶体管数量每18月就会翻一翻,所以每18月计算机的处理效率就会提高一倍。

1.2 计算机系统层次结构

计算机硬件的基本组成
- 冯诺曼体系结构特点:
- 计算机硬件系统由五大部件组成(存储器、运算器、控制器、输出设备、输入设备)
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序
- 以运算器为中心


<1> 输入设备,是指将外部信息以计算机能读懂的方式输入进来,如键盘,鼠标等
<2> 输出设备,就是将计算机处理的信息以人所能接受的方式输出出来,比如显示屏,打印机。
<3> 存储器,存储器分为 主存储器(内存储器,CPU能直接访问)和 辅助存储器(外存储器,协助主存储器记忆更多的信息,辅助存储器的信息需要导入到主存储器中,才可以被CPU访问)。
主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式(相联存储器既可以既可以按照地址寻址,又可以按照内容寻址,为了与传统存储器区别,又称为内容寻址的存储器!)

<4> 运算器,是计算机的运算单元,用于算术运算和逻辑运算,运算器的核心单元是算术逻辑单元(ALU)

<5> 控制器,控制器是计算机的指挥中心,有其指挥各部件自动协调第进行工作,现代计算机将运算器和控制器集成到一个芯片上,合成为中央处理器,简称CPU。有程序计数器(PC)、指令寄存器(IR)和控制单元(CU)。

按照指令和数据流可以分为:
- 单指令流和单数据流系统(SISD),即传统的冯·诺依曼体系结构。
- 单指令流和多数据流系统(SIMD),包括阵列处理器和向量处理器系统。
- 多指令流和单数据流系统(MISD),这种计算机实际上不存在。
- 多指令流和多数据流系统(MIMD),包括多处理器和计算机系统。
1.2.3 计算机软件的分类
系统软件和应用软件
- 计算机软件,一般分为系统软件和应用软件
- 系统软件包括 操作系统,数据库管理系统,语言处理系统(比如编译器),分布式软件系统,网络软件系统,标准库系统,服务性系统(比如连接程序)。
- 应用软件包括各种科学计算类程序,工程设计类程序,数据统计与处理程序。
三个级别的语言
- 1)机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。
- 2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。
- 3)高级语言。高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。
由高级语言转换到汇编语言的过程叫做编译,由汇编语言转换到机器语言的过程叫做汇编,边翻译边执行的叫做解析。
计算机的工作过程

IR存放当下欲执行的指令;PC存放下一条指令的地址;
MAR存放欲访问的存储单元地址;MDR存放从存储单元取来的数据!
地址译码器是主存的构成部分,不属于CPU;地址寄存器虽然一般属于主存,但是现代计算机中绝大多数CPU内集成了地址寄存器!
关于CPU存取速度的比较:寄存器(CPU内部)> Cache(高速的SRAM) > 内存 (SDRAM)
计算机性能指标

- 机器字长
计算机的位数(机器字长),表示计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数。计算机字长通常选定为字节(8位)的整数倍,通常是2,4,8倍。不同的计算机,字节可能不同
机器字长、指令字长、存储字长的区别和联系是什么?
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。
指令字长:一个指令字中包含的二进制代码的位数。
存储字长:一个存储单元存储的二进制代码的长度。等于MDR的位数, 它们都必须是字节的整数倍。
数据字长:数据总线一次能传送信息的位数,它可以不等于MDR的位数。
指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的2倍;若指令字长等于存储字长,则取指周期等于机器周期。
早期的计算机存储字长一般和机器的指令字长与数据字长相等,因此访问一次主存便可取出一条指令或一个数据。随着计算机的发展,指令字长可变,数据字长也可变,但它们必须都是字节的整数倍。
请注意64位操作系统是指特别为64位架构的计算机而设计的操作系统,它能够利用64位处理器的优势。但64位机器既可以使用64位操作系统,又可以使用32位操作系统。而32位处理器是无法使用64位操作系统的。。
数据通路带宽:数据总线一次所能传送信息的位数.
主存容量MAR的位数反映存储单元的个数,如MAR为16位,表示存储单元为2^16 = 64K;若MDR为32位,则存储容量为2^16x32.
运算速度
吞吐量,指系统在单位时间内处理请求的数量 ;从用户观点看,它是评价计算机系统性能的综合参数!
响应时间,指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结构的等待时间。
CPU时钟周期。通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要1个时钟周期。1/f
主频(CPU时钟频率)。机器内部主时钟的频率,是衡量机器速度的重要参数。
- CPU周期又称为机器周期,由多个时钟周期组成!
- 指令周期>CPU周期>时钟周期
CPI(Clock cycle Per Instruction),即执行一条指令所需的时钟周期数。
- CPU执行时间,指运行一个程序所花费的时间。
CPU执行时间 = CPU时钟周期数/主频 = (指令条数xCPI)/主频
CPU的性能取决于三个要素:主频、CPI 、指令条数
- CPU执行时间,指运行一个程序所花费的时间。
IPS(Instructions Per Second) =主频/平均CPI,每秒执行多少指令
MIPS(Million Instructions Per Second)=即每秒执行多少百万条指令。
MFLOPS(Mega Floating-point Operations Per Second)=浮点操作次数/(执行时间x106),即每秒执行多少百万次浮点运算。
GFLOPS(Giga Floating-point Operations Per Second)=浮点操作次数/(执行时间x109),即每秒执行多少十亿次浮点运算。TFLOPS(Tera Floating-point Operations Per Second)=浮点操作次数/(执行时间x1012),即每秒执行多少万亿次浮点运算。
同一个功能既可以由软件实现又可以由硬件实现吗?
软件和硬件是两种完全不同的形态,硬件是实体,是物质基础;软件是一种信息,看不见、摸不到。但在逻辑功能上,软件和硬件是等效的。因此,在计算机系统中,许多功能既可以由硬件直接实现,又可以在硬件的配合下由软件实现。
一个最大的区别就是,硬件实现比软件实现的速度快很多,但是成本也高!所以,芯片在流片之后,如果发现bug可以用软件修复就用软件修复!
机器字长、指令字长、存储字长的区别和联系是什么?
4.机器字长、指令字长、存储字长的区别和联系是什么?
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。
指令字长:一个指令字中包含的二进制代码的位数。
存储字长:一个存储单元存储的二进制代码的长度。等于MDR的位数, 它们都必须是字节的整数倍。
数据字长:数据总线一次能传送信息的位数,它可以不等于MDR的位数。指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的2倍;若指令字长等于存储字长,则取指周期等于机器周期。
早期的计算机存储字长一般和机器的指令字长与数据字长相等,因此访问一次主存便可取出一条指令或一个数据。随着计算机的发展,指令字长可变,数据字长也可变,但它们必须都是字节的整数倍。
请注意64位操作系统是指特别为64位架构的计算机而设计的操作系统,它能够利用64位处理器的优势。但64位机器既可以使用64位操作系统,又可以使用32位操作系统。而32位处理器是无法使用64位操作系统的。
总线
总线概述
总线:概念与分类
- 什么是总线
- 定义:构成计算机系统的互联机构,是多个系统功能部件之间进行数据传送的公共通路
- 功能:计算机在各系统功能部件之间实现地址、数据和控制信息的交换
- 特征:在争用资源的基础上进行工作
- 特点
- 分时:同一时刻只允许有一个部件向总线发送信息,如有多个部件,则分时地向总线发送信息。
- 共享:总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享,某一时刻只允许一个部件向总线发送信息,但多个部件可以同时从总线上接收相同信息
- 总线设备
- 主设备:获得总线控制权的设备
- 从设备:被主设备访问的设备,只能响应从主设备发来的各种总线命令
- 总线的分类
- 片内总线:CPU芯片内部的总线,在芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。
- 系统总线:计算机系统内各功能部件(CPU、主存、IO接口)之间相互连接的总线 按系统总线传输信息内容分为3类
- 数据总线:双向,与机器字长、存储字长有关
- 地址总线:单向,与存储地址、I/O地址有关
- 控制总线:每根线都是单向的,有出、有入
- 通信总线:用于计算机系统之间,或计算机系统与其他系统之间的通信
- 按时序控制方式,分为同步总线和异步总线
- 按数据传输方式,分为并行总线和串行总线
总线:组成与特性
总线的内部结构:地址线、数据线、控制线组成,数据线常常和地址线采用分时复用方式
- 仲裁总线:包括总线请求线和总线授权线。
- 中断和同步总线:用于处理带优先级的中断操作。
- 公用线:时钟信号线,电源线,地线,系统复位线。

总线特性
- 物理特性:总线的物理连接方式
- 功能特性:每根线的功能
- 电气特性:每根线上信号的传递方向及有效电平范围
- 时间特性:规定了每根总线在什么时间有效
总线性能指标
- 总线的传输周期:指一次总线操作所需的时间(申请阶段、寻址阶段、传输阶段、结束阶段)总线传输周期通常由若干个总线时钟周期构成
- 总线时钟周期:机器的时钟周期
- 总线的工作频率:总线周期=N 个时钟周期,则总线的工作频率=时钟频率/ N。
- 总线的时钟频率:机器的时钟频率
- 总线宽度:又称为总线位宽,是指总线上同时能够传输的数据位数,通常是指数据总线的根数
- 总线带宽:单位时间内总线上传输的最大字节数(MB/s)。计算公式:总线带宽 = 总线宽度 * 总线频率
- 总线复用:指一种信号线在不同时间传输不同的信息,可以使用较少的线传输更多的信息
- 信号线数:地址线、数据线和控制线的总和
总线的传输方式
串行传送:使用一条传输线,采用脉冲传送
- 主要优点:
- 只需要一条传输线
- 对长距离传输特别重要
- 成本比较低廉
- 缺点:速度慢

- 主要优点:
并行传送
- 特点:同时传送多个数据位
- 系统总线上传送的信息必须采用并行传送方式(出于速度和效率上的考虑)
分时传送:分时传送即总线的分时复用,共享总线的部件分时使用总线
总线接口
接口是CPU和主存、外设之间通过总线进行连接的逻辑部件
接口的典型功能:控制、缓冲、转换、整理、程序中断等。
一个适配器(即接口)的两个接口:一个同系统总线相连,采用并行方式,另外
一个同设备相连,可能采用并行方式或是串行方式。


总线结构
单总线结构

CPU、主存、I/O设备(通过I/O接口)都挂在一组总线上
2.运行I/O设备之间、I/O设备与主存之间直接交换信息
直接通信能力:CPU与主存可直接进行信息交换,CPU与外设可直接进行信息交换,无需经过中间设备的干预。
优点:结构简单,成本低,易于接入新的设备
缺点:带宽低,负载重,多个部件只能争用唯一的总线,不支持并发传送操作
使用要求:连接到总线上的逻辑部件必须高速运行,需要使用总线时,能迅速获得总线控制权;而当不再使用总线时,能迅速放弃总线控制权。否则,由于一条总线由多种功能部件共用,可能导致很大的时间延迟。
总线带宽=(总线频率/总线周期包含的时钟周期数)×(数据量/总线周期)
数据的表示与运算

2.1 数制与编码
2.1.1 进位计数制及其相互转化


2.1.2 BCD码(Binary-Code Decimal码)
每一个十进制数看成4位2进制数
8421 每一位代表权重
5421
2421


字符编码ASCII码

2.1.5 校验码
任意两个码字之间最少变化的二进制位数称为码距,码距大于等于2的数据校验码开始具有检错的能力。码距越大,检错、纠错能力越强。奇偶校验码的码距等于2,可以检测出一位错误(或奇数位错误),但不能确定出错的位置,也不能检测出偶数位错误;海明码的码距大于2,因此不仅可以发现错误,还能指出错误的位置。仅靠增加奇偶校验位的位数不能提高正确性,还要考虑码距。
具有检、纠错能力的数据校验码的实现原理:在编码中,除合法码字外,再加入一些非法码字,当某个合法码字出现错误时,就变为非法码字。合理安排非法码字的数量和编码规则就能达到纠错的目的。
奇偶校验码
奇校验码 加上校验位 1的个数为奇数个
偶校验码加上校验位 1的个数为偶数个


2.海明(汉明)校验码







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



这里可以进行异或运算



定点数
1.无符号数和有符号数
计算机中参与运算的有两大类,有符号数和无符号数
无符号数:机器字长全部二进制位均为数值位,没有符号位。

有符号数:
机器数:保存在计算机当中(原码表示法)
真值:带有正负号 0正1负


$$
2^4 = 10000
$$

补码:解决加减法归一化问题把减法转换成加法
正数:原码=反码=补码
负数 反码=原码符号为不变,其余位取反,补码 = 反码+1



移码
补码表示很难直接判断其真值大小



数的定点表示和浮点表示
定点表示

浮点表示
- 为什么要引入浮点数表示
- 编程困难,程序员要调节小数点的位置;
- 数的表示范围小,为了能表示两个大小相差很大的数据,需要很长的机器字长;





定点运算


算法移位





溢出判断

乘法
在计算机中,为什么要采用二进制来表示数据?
1)在计算机中,为什么要采用二进制来表示数据?
从可行性来说,采用二进制,只有0和1两个状态,能够表示0、1两种状态的电子器件很多,如开关的接通和断开、晶体管的导通和截止、磁元件的正负剩磁、电位电平的高与低等,都可表示0、1两个数码。使用二进制,电子器件具有实现的可行性。
从运算的简易性来说,二进制数的运算法则少,运算简单,使计算机运算器的硬件结构大大简化(十进制的乘法九九口诀表有55条公式,而二进制乘法只有4条规则)从逻辑上来说,由于二进制0和1正好和逻辑代数的假( false)和真(true)相对应,有逻辑代数的理论基础,用二进制表示二值逻辑很自然。
2)计算机在字长足够的情况下能够精确地表示每个数吗?若不能,请举例说明。
2)计算机在字长足够的情况下能够精确地表示每个数吗?若不能,请举例说明。
计算机采用二进制来表示数据,在字长足够时,可以表示任何一个整数。而二进制表示小数时只能够用1(2)的和的任意组合表示,即使字长很长,也不可能精确表示出所有小数,只能无限逼近。例如0.1就无法用二进制精确地表示。
3)字长相同的情况下,浮点数和定点数的表示范围与精度有什么区别?
3)字长相同的情况下,浮点数和定点数的表示范围与精度有什么区别?
字长相同时,浮点数取字长的一部分作为阶码,所以表示范围比定点数要大,而取一部分作为阶码也就代表着尾数部位的有效位数减少,而定点数字长的全部位都用来表示数值本身,精度要比同字长的浮点数更大。
4)用移码表示浮点数的阶码有什么好处?
4)用移码表示浮点数的阶码有什么好处?
移码的两个好处
①浮点数进行加减运算时,时常要比较阶码的大小,相对于原码和补码,移码比较大小更方便。
②检验移码的特殊值(0和max)时比较容易。阶码以移码编码时的特殊值如下。0:表示指数为负无穷大,相当于分数分母无穷大,整个数无穷接近0,在尾数也为0时可用来表示0:尾数不为零表示未正规化的数。max:表示指数正无穷大,若尾数为0,则表示浮点数超出表示范围(正负无穷大);尾数不为0,则表示浮点数运算错误
.在高级语言编程中所定义的 unsigned/short/int/long/float/double型数据是怎么表示的?什么称为无符号整数的“溢出”?
2.在高级语言编程中所定义的 unsigned/short/int/long/float/double型数据是怎么表示的?什么称为无符号整数的“溢出”?
unsigned型数据就是无符号整数,不考虑符号位。直接用全部二进制位对数值进行编码得到的就是无符号数,一般都用补码表示。
int型数据就是定点整数,一般用补码表示。int型数据的位数与运行平台和编译器有关,一般是32位或16位。例如,真值是-12的int型整数,在机器内存储的机器数(假定用32位寄存器寄存)是1111-1111-1111-1111-1111-1111-1111-0100.
long型数据和short型数据也都是定点整数,只是位数不同,分别是长整型和短整型数,通常用补码表示。
float型数据是用来表示实数的浮点数。现代计算机用IEEE754标准表示浮点数,其中32位单精度浮点数就是float型,64位双精度浮点数就是 double型。
需要注意的是,C语言中的int型和 unsigned型变量的存储方式没有区别,都按照补码的形式存储,在不溢出范围内的加减法运算也是相同的,只是int型变量的最高位代表符号位,而unsigned型中的最高位表示数值位,两者在C语言中的区别体现在输出时到底是采用%d还是采用%u。
对于无符号定点整数来说,若寄存器位数不够,则计算机运算过程中一般保留低n位,舍弃高位。这样,会产生以下两种结果。
①保留的低n位数不能正确表示运算结果。在这种情况下,意味着运算的结果超出了计算机所能表达的范围,有效数值进到了第n+1位,称此时发生了“溢出”现象
②保留的低n位数能正确表达计算结果,即高位的舍去并不影响其运算结果。
对于位数相同的定点数和浮点数,可表示的浮点数个数比定点数个数多吗?
4.对于位数相同的定点数和浮点数,可表示的浮点数个数比定点数个数多吗?
不是,可表示的数据个数取决于编码所采用的位数。编码位数一定,编码出来的数据个数就是一定的。m位编码只能表示2m个数,所以对于相同位数的定点数和浮点数来说,可表示的数据个数应该一样多(有时可能由于一个值有两个或多个编码对应,编码个数会有少量差异)。
存储器

3.1 存储器概述
3.1.1 存储器的分类
相联存储器的基本原理是把存储单元所存内容的某一部分作为检索项(即关键字项)去检索该存储器,并将存储器中与该检索项符合的存储单元内容进行读出或写入。所以它是 按内容或地址进行寻址的,价格较为昂贵。 一般用来制作TLB、相联 Cache等。
按在计算机中的作用对存储器分类:
- 主存储器,简称主存。CPU可以直接随机地对其进行访问,也可以和高速缓存器及辅助存储器交换数据。
- 辅助存储器,简称辅存,不能与CPU直接相连,用来存放当前暂时不用的程序和数据
- 高速缓冲存储器,位于主存和CPU之间,用来存放正在执行的程序段和数据
按存储介质分类:
- 磁表面存储器(磁盘,磁带),磁心存储器半导体存储器(MOS型存储器,双极存储器)和光存储器(光盘)。
按存取方式分类:
- 随机存储器(RAM)。存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存取单元的物理位置无关,主要用作主存或高速缓冲存储器。
- 只读存储器(ROM)。存储器的内容只能随机读出而不能写入。。即使断电,内容也不会丢失。
- 串行访问存储器。对存储单元进行读/写操作时,需按其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)与直接存取存储器(如磁盘)。
按信息的可保存性分类:
断电后,存储信息即消失的存储器,称为易失性存储器,如RAM。断电后信息仍然保持的存储器,称为非易失性存储器,如ROM,磁表面存储器和光存储器。若某个存储单元所存储的信息被读出时,原存储信息被破坏,则称为破坏性读出;若读出时,被读单元原存储信息不被破坏,则称为非破坏性读出。具有破坏性读出性能的存储器,每次读出操作后,必须紧接一个再生的操作,以便恢复被破坏的信息。



3.1.2 存储器的性能指标
- 存储容量:存储字数*字长
- 单位成本:每位价格=总成本/总容量
- 存储速度:数据传输率=数据的宽度/存储周期
3.2 存储器的层次结构

主存储器




3.3 半导体随机存储器
3.3.1 SRAM和DRAM



译码码驱动:线选法,重合法




3.3.2 只读存储器



3.4 主存储器与CPU的连接
3.4.2 主存容量的扩展


2.字扩展






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




3.6.1 程序访问的局部性原理









SCI总线—-SCI(serial communication interface)由Motorola公司推出。是一种通用异步通信接口UART,与MCS-51的异步通信功能基本相同。
PCI总线—-PCI(peripheral component interconnect)总线是当前最流行的总线之一,它是由Intel公司推出的一种局部总线。它定义了32位数据总线,且可扩展为64位。是基于奔腾等新一代微处理器而发展的总线。
ISA总线—-ISA(industrial standard architecture)总线标准是IBM 公司1984年为推出PC/AT机而建立的系统总线标准,所以也叫AT总线。它是对XT总线的扩展,以适应8/16位数据总线要求。它在80286至80486时代应用非常广泛,以至于奔腾机中还保留有ISA总线插槽。ISA总线有98只引脚。
VESA总线—-VESA(video electronics standard association)总线是 1992年由60家附件卡制造商联合推出的一种局部总线,简称为VL(VESA local bus)总线。它的推出为微机系统总线体系结构的革新奠定了基础。
程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关
高级程序语言结构丰富、可读性好、可维护性强、可靠性高、易学易掌握、写出来的程序可移植性好,重用率高,但是执行效率低
用高级语言编写的程序在计算机中运行时,首先被编译成目标程序,然后再解释成能被计算机运行的机器指令代码,再由计算机具体执行。其代码对应的改变是从源程序变到目标程序,再到机器指令代码。
DS段寄存器不允许直接赋值
MOV指令使用立即寻址方式,立即数是保存在代码段中
AX 寄存器称为累加器,常用于存放算术、逻辑运算中的操作数或结果。另外,所有的I/O指令都要使用累加器与外设接口传递数据。
BX 寄存器称为基址寄存器,常用来存放访问内存时的地址。
CX 寄存器称为计数寄存器,在循环、串操作指令中用作计数器。
DX 寄存器称为数据寄存器,在寄存器间接寻址中的I/O指令中存放I/O端口的地址。
此外,在做双字长乘除法运算时,DX 与AX合起来存放一个双字长数(32位),其中DX存放高16位,AX存放低16位
DRAM 芯片的地址线,在芯片中,是分时复用的,仅需一半的引脚数,即够用。
1 | 通道是一种通过执行通道程序管理I/O操作的控制器,它使主机(CPU和内存)与I/O操作之间达到更高的并行程度。由于它的任务是管理实现输入/输出操 |
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。
标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符
完整的ZigBee 协议栈自上而下由应用层、应用汇聚层、网络层、数据链路层和物理层组成。
以下为各层在Zigbee结构中的作用:
物理层:作为Zigbee协议结构的最低层,提供了最基础的服务,为上一层MAC层提供了服务,如数据的接口等等。同时也起到了与现实 (物理) 世界交互的作用;
MAC层:负责不同设备之间无线数据链路的建立,维护,结束,确认的数据传送和接收;
网络/安全层:保证了数据的传输和完整性,同时可对数据进行加密;
应用/支持层:根据设计目的和需求使多个器件之间进行通信;
汇编语言是符号化了的二进制代码,与高级语言相比,更容易有效执行;与机器语言相比,可移植性较好,但是没有机器语言的执行效率高。
为什么要制定总线标准?
便于机器的扩充和新设备的添加,有了总线标准,不同厂商可以按照同样的标准和规范生产各种不同功能的芯片、模块和整机,用户可以根据功能需求去选择不同厂家生产的、基于同种总线标准的模块和设备,甚至可以按照标准,自行设计功能特殊的专用模块和设备,以组成自己所需的应用系统。这样可使芯片级、模块级、设备级等各级别的产品都具有兼容性和互换性,以使整个计算机系统的可维护性和可扩充性得到充分保证。
实际流水中会出现三种相关也就是使流水线很难充分实现的三个冲突:资源相关、数据相关、控制相关
资源相关:指当指令在重叠执行过程中,不同指令争用同一功能部件产生资源冲突时产生的
数据相关:指令在流水线中重叠执行时,当后继指令需要用到前面的指令产生的结果时发生的
控制相关:当流水线遇到转移指令引起的。统计表明,转移指令约占总指令的四分之一左右,比起数据相关,它会使流水线丧失更多的功能
数据相关:写后读相关,读后写相关,写后写相关