计算机组成与原理
2023-12-07 13:51:17 0 举报
AI智能生成
计算机组成与原理脑图
作者其他创作
大纲/内容
第一章 计算机系统概述
1.1 计算机系统的基本组成
计算机系统的基本组成
完整的计算机系统由硬件(hardware)和软件(software)两大部分(两类资源)组成。
计算机的硬件系统是计算机系统中的物理设备,
是一种高度复杂的、由多种电子线路、精密机械装置等构成的、
能自动并且高速地完成数据计算的装置或者工具。
是一种高度复杂的、由多种电子线路、精密机械装置等构成的、
能自动并且高速地完成数据计算的装置或者工具。
计算机的软件系统是计算机系统中的程序和相关数据,
包括完成计算机资源管理、方便用户使用的系统软件(厂家提供),
和完成用户对数据的预期处理功能的用户软件(用户设计并自己使用)这样两大部分。
包括完成计算机资源管理、方便用户使用的系统软件(厂家提供),
和完成用户对数据的预期处理功能的用户软件(用户设计并自己使用)这样两大部分。
计算机系统的层次结构
第0层:数字逻辑层
计算机硬件的最重要的物质材料是电子线路, 是能够直接处理离散的数字信号数字逻辑电路。
涉及到的计算机硬件的 基础知识就是数字逻辑和数字门电路,
使用何种电路实现信息存储、信 息传送以及信息运算与加工,是这一层要解决的基本问题。
涉及到的计算机硬件的 基础知识就是数字逻辑和数字门电路,
使用何种电路实现信息存储、信 息传送以及信息运算与加工,是这一层要解决的基本问题。
第1层:微体系结构(micro architecture)层
也可以称其为计算机裸机。这一层体现的是,为了执行指令,需要在计算机中设置哪些功能 部件(例如:存储、运算、输入和输出、接口和总线等部件,以及控制 器部件),每个部件又如何具体组成和怎样运行,这些部件如何实现相互连接并协同工作等方面的知识和技术
第2层:指令系统(instruction set)层
它介于硬件和软件之间,指令系统是计算机硬件系统设计、实现的最基本和最重要的依据, 与计算机硬件实现的复杂程度、设计程序的难易程度、程序占用硬件资源的多少、程序运行的效率等都直接相关
第3层:操作系统(operating system)层。
它主要分担计算机系统中的资源管理与分配, 也向使用者和程序设计人员提供简单、方便、高效的服务。 它是使用(直接或者间接)计算机硬件指令系统所提供的指令设计出来的程序, 并把一些常用功能以操作命令或者系统调用的方式提供给使用人员。
第4层:汇编语言(assembly language)层
计算机的硬件可以直接识别、理解的,用电子线路容易处理的就是计算机的机器语言, 又称为二进制代码语言,也就是计算机的指令
汇编语言是对计算机机器语言的符号化处理(采用英文)的结果, 再增加一些为方便程序设计而实现的扩展功能。
采用汇编语言设计的程序必须经过一个叫做汇编程序的系统软件进行翻译, 将其转换为计算机的机器语言后,才能在计算机的硬件系统上予以执行。
汇编语言是对计算机机器语言的符号化处理(采用英文)的结果, 再增加一些为方便程序设计而实现的扩展功能。
采用汇编语言设计的程序必须经过一个叫做汇编程序的系统软件进行翻译, 将其转换为计算机的机器语言后,才能在计算机的硬件系统上予以执行。
第5层:高级语言层
高级语言又称算法语言(algorithm language),目前常用的高级语言有BASIC、C、C++、,PASCAL、JAVA、PROLOG等多种。
用这些高级语言设计出来的程序,通常需要经过一个叫做编译程序的软件编译成机器语言程序, 或者首先编译成汇编程序后,再经过汇编操作后得到机器语言程序,才能在计算机的硬件系统上予以执行; 也可以由一个叫做解释执行程序的软件,逐条取来相应高级语言程序的每个语句并直接控制其完成执行过程, 而不是把整个程序编译为机器语言程序之后再交给硬件系统加以执行,解释执行程序的最大缺点是运行效率比很低
用这些高级语言设计出来的程序,通常需要经过一个叫做编译程序的软件编译成机器语言程序, 或者首先编译成汇编程序后,再经过汇编操作后得到机器语言程序,才能在计算机的硬件系统上予以执行; 也可以由一个叫做解释执行程序的软件,逐条取来相应高级语言程序的每个语句并直接控制其完成执行过程, 而不是把整个程序编译为机器语言程序之后再交给硬件系统加以执行,解释执行程序的最大缺点是运行效率比很低
1.2 计算机硬件系统
运算器
运算器是对数字信息进行加工处理的部件,它用来对二进制的数据进行算术运算与逻辑运算,故称“算术逻辑运算部件(ALU)”。运算器主要由寄存器和算术逻辑线路构成。寄存器用来存放数据,算术逻辑线路主要是完成各种运算功能。算术运算是指加、减、乘、除四则运算,而各种运算都可以归结为加法与移位两个基本操作,所以算术逻辑线路核心部分是加法器。
储存器
存储器是用来存放程序和数据的部件。
主储存器
主存储器由半导体存储元件构成,它存取速度快,但容量小。
外储存器
而外存储器通常由磁盘存储器组成,它的存取速度慢,但是容量大
控制器
指示指令执行顺序的程序计数器(PC
寄存现行指令的指令寄存器(IR)
分析指令的指令译码器(ID)
产生控制命令序列的控制信号形成部件
输入/输出设备
输出设备
输出设备是将计算机加工处理过的二进制信息转换为用户所需要的数据形式的设备。它将计算机的信息以字符、图形、表格等形式显示打印出来。输出设备的种类有,如打印机、显示器等。有些设备同时具有输入与输出的功能,如磁盘、光盘、网络设备等。
输入设备
输入设备的功能是向计算机输入人们提供的程序和原始数据,并将其转化成计算机能识别的信号,存入存储器中。输入设备的种类很多,如键盘、鼠标、触摸屏、扫描仪等。
总线
数据总线
数据总线用于在这些部件或设备之间传送数据信息(指令和数据)的电气信号
地址总线
用于在这些部件或设备之间传送属于地址信息的电气信号,以选择存储部件中的一个存储单元,或者外围设备中的一个设备
控制总线
用于向存储部件和外围设备传送起控制作用的信号,也就是指定在CPU和这些部件或者设备之间数据传送的方向以及操作的性质(读操作还是写操作)等。
冯.诺依曼计算机体系结构
普遍的体系结构是由冯.诺依曼提出来的被称之为存储程序的计算机体系结构,早期计算机的几个部件是围绕着运算器部件来组织的
当前流行的计算机中,更常用的方案则是围绕着存储器部件来组织
1.3 计算机主要技术和指标
计算机字长
字长是指参与运算的数的基本位数。它决定着寄存器、加法器、数据总线等部件的位数。因为指令和数据都存放在存储器中,字长与指令有着密切的对应关系。例如在32位字长的计算机系统中,一个整数、一条指令通常都用32位二进制数表示,叫做一个字,运算器、存储器、数据和地址总线等通常都被设计成32位。字长对计算机的处理能力和运行性能有明显影响,字长长一点有利于提高计算机的性能,但需要使用更多的硬件,计算机系统的价格也会高一些。
CPU速度
CPU主频
CPU系统使用的时钟脉冲的频率(每一秒钟提供的时钟脉冲的个数称为赫兹Hz)来表示,例如500MHz。对同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快,但对不同厂家、不同系列的计算机系统,只用CPU主频来说明其运行速度就未必准确。
使用CPU每一秒钟能执行的指令条数
由于在计算机中用于计算整数的指令和计算机浮点数(实数)的指令执行速度差异较大,不同程序中这两类指令所占的比例也有很大不同,为此人们还分别用MIPS(每秒百万次整数运算)、MFLOPS(每秒百万次浮点数运算)描述整数指令和浮点数指令的执行速度,以便对比不同计算机系统的CPU性能水平。
存储容量
存储器的容量,通常情况下用字节(Byte,8个二进制位构成一个字节)表示,32位的字由4个字节组成
目前计算机的内存容量由几十、几百兆字节(简写为MB)、甚至几十、上百G字节(简写为GB)组成。外存储器的容量一般是几十、几百个GB,采用阵列技术则可以得到容量更大得多的外存储器系统。
内存储器的存取周期
内存储器的读写周期是指启动连续的两次读写操作所必需的时间间隔,当前的内存储器存取周期为几十个纳秒到一、二百个纳秒(ns),读写速度快的存储器价格要贵一些,要合理选用。
外存储器的数据传送速率
通常把单位时间内可以对磁盘设备读写的数据数量称为设备的传输速率(MB/S,兆字节/秒
目前磁盘设备的传输速率可以达到33MB/S~200MB/S。这个速率不仅与设备本身的性能有关,与设备的接口性能和计算机总线设计也直接相关。在选用磁盘阵列技术之后,其传输速率得到大幅度提高。
输入/输出设备的入出速度
输入输出设备是计算机系统中比较复杂的部分,其组成和运行原理各不相同,与计算机主机的连接与控制方式也多有差异,在电子线路之外还涉及到精密机械、光学、激光、电磁转换等许多技术。不同的输入输出设备的运行速度各不相同,例如针式打印机每秒只能打印几个字符,而激光打印机则可以打印多行甚至几页打印纸的信息。
1.4 计算机系统的体系结构、组成和实现
计算机体系结构
数据表示(计算机硬件能够直接识别和处理的数据类型及其表示、存储、读写方式)
寻址方式(最小寻址单位、支持的寻址方式、表示和地址计算等)
寄存器组织(指令中使用的寄存器数量和表示方法)
指令系统(计算机的字长,,指令系统的组成,指令类别、格式和功能)
存储系统(存储器寻址方式、主存容量、最大寻址空间等)
中断机构(中断的类型和处理流程)
机器工作状态(计算机的运行状态的定义和切换)
机器级的输入输出结构(输入输出设备和CPU之间数据传送的方式和控制)
信息保护(系统中对各类信息的保护,对各种运行异常或者出错的检测和处理方案等)
计算机组成
是依据计算机体系结构确定并且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,它们之间的连接关系,实现机器指令级的各种功能和特性。
计算机实现
是计算机组成的物理实现。包括中央处理机、主存储器、输入输出接口和设备的物理结构,所选用的半导体器件的集成度和速度,器件、模块、插件、底板的划分,电源、冷却、装配等技术,生产工艺和系统调试等各种问题,一句话,就是把完成逻辑设计的计算机组成方案转换为真实的计算机,也就是把满足设计和运行、价格等各项要求的计算机系统真正地制作并调试出来。
1.5 计算机的发展、应用和分类
计算机的发展
1.电子管时代(1946年——1958年)
2.晶体管时代(1958年——1964年)
3. 小规模集成电路时代(1964年——1975年)
4. 大规模、超大规模集成电路时代(1975年——)
计算机的分类
指令流(instruction stream)——机器执行的指令序列。
数据流(data stream)——由指令流调用的数据序列,包括输入数据和中间色数据。
多倍性(multiplicity)——在系统中最受限制的元件上同时处于同一执行阶段的指令或数据的最大可能个数。
计算机的应用
1.科学计算
2.数据处理
3.自动控制
4.人工智能
5. 网络应用
第二章 数据表示和运算方法
2.1 二进制码与进位计数制
1.二进制码
只使用“0”和“1”两个基本符号,在数值数据中选用“逢二进一”的进位规则
很容易找到表示和区分二进制码的“0”和“1”两个符号的物理器件
“0”和“1”两个符号可以很好地对应逻辑型数据的“假”和“真”两个值
用二进制码表示的数值型数据的运算规则最简单。
2.数制与进位计数法
在采用进位计数的数字系统中,如果只用r个基本符号 (例如0,1,2,…r-1) 、通过排列起来的符号串表示数值,则称其为基r数制(Radix-r Number System), r称为数制的基数(Radix)。假定用m+k个自左向右排列的符号Di(i是位序号,-k≤i≤m-1;Di表示符号串中第i位上的记数符号,属于0到r-1中的一个)表示数值N,则有:
N = Dm-1 Dm-2 … D1 D0 D-1 D-2 …D-k (2.1)
式中的Di(-k≤i≤m-1)为该数制采用的基本符号,可取值0、1、2、…、r-1,小数点位置隐含在 D0与D-1位之间,则Dm-1 … D0 为N的整数部分,D-1 … D-k 为N的小数部分。
如果为第i位上的符号1赋以某个固定的值Wi ,则称Wi 为第i位的权 (Weight) ,在选用“逢r进位”的规则时,位权Wi的值为ri(一个底为基数、幂是位序号的指数值),则称这种数制为r进位数制 (Positional Radix-r Number System),简称r进制。第i位的实际值可写成Di×ri,N的实际值为各数据位实际值的累加和,可表示为:m-1
例如,表示十进制数要使用10个基本符号:0,1,2,3,4,5,6,7,8,9,采用逢10进1规则,例如103.4 = 1×102 + 0×101 + 3×100 + 4×10-1。
N = Dm-1 Dm-2 … D1 D0 D-1 D-2 …D-k (2.1)
式中的Di(-k≤i≤m-1)为该数制采用的基本符号,可取值0、1、2、…、r-1,小数点位置隐含在 D0与D-1位之间,则Dm-1 … D0 为N的整数部分,D-1 … D-k 为N的小数部分。
如果为第i位上的符号1赋以某个固定的值Wi ,则称Wi 为第i位的权 (Weight) ,在选用“逢r进位”的规则时,位权Wi的值为ri(一个底为基数、幂是位序号的指数值),则称这种数制为r进位数制 (Positional Radix-r Number System),简称r进制。第i位的实际值可写成Di×ri,N的实际值为各数据位实际值的累加和,可表示为:m-1
例如,表示十进制数要使用10个基本符号:0,1,2,3,4,5,6,7,8,9,采用逢10进1规则,例如103.4 = 1×102 + 0×101 + 3×100 + 4×10-1。
3.不同进制数的转换
1.十→二进制数的转换
(1)整数的转换:采用除2取余,高位在下,直到商为0时为止的原则。
(2)小数的转换:采用乘2取整,高位在上的原则,位数达到要求或小数部分为0结束。
2. 二-十进制数的转换
二-十进制数的转换:通常采用公式(2.2)对二进制数各位的实际值累加求和完成。
3.八→二进制数的转换
因为2^3=8,故1个八进制位对应3个二进制位,可以把一个八进制数的整数部分和小数部分的每一位分别转换成3位二进制数。
例如:(103.4)8=(001010011.100)2
例如:(103.4)8=(001010011.100)2
4.二→八进制数的转换
因为2^3=8,故3个二进制位对应1个八进制位,可以从小数点位置分别向左和向右把每3位二进制数划分为一组,并转换成1位八进制数。注意:小数部分分组时若低位不足3位时要用0补足,否则会出错。例如: (10110110.1)2=(266.4)8
5.十六→二进制数的转换
因为2^4=16,故1个十六进制位对应4个二进制位,可以把一个十六进制数的整数部分和小数部分的每一位分别转换成4位二进制数。
(123)16=(0001,0010,0011)2
(123)16=(0001,0010,0011)2
6.二→十六进制数的转换
因为2^4=16,故4个二进制位对应1个十六进制位,可以从小数点位置分别向左和向右把每4位二进制数划分为一组,并转换成1位十六进制数。注意:小数部分分组是若低位不足4位要用0补足,否则会出错。
2.2 定点数在计算机内的表示与编码
定点小数编码
(1) 原码表示法
原码表示法是用机器数的最高一位代表符号,其余各位给出数值绝对值的表示方法
原码表示的优点在于实现乘除运算的规则简单,缺点是实现加减运算很不方便,
要比较参与加减运算两个数的符号和两个数的绝对值的大小,
才能确定运算结果的数值和符号。
原码表示的优点在于实现乘除运算的规则简单,缺点是实现加减运算很不方便,
要比较参与加减运算两个数的符号和两个数的绝对值的大小,
才能确定运算结果的数值和符号。
例如, X=+0.1011, [X]原=01011,X=-0.1011, [X]原=11011
按定义,当X=-0.1011时,[X]原= 1-X= 1.0000-(-0.1011) =11011,约定小数点在符号位和数值位之间,可省略,这里的X为数的真值,[X]原为原码表示的机器数,是符号位 + |X|。
按定义,当X=-0.1011时,[X]原= 1-X= 1.0000-(-0.1011) =11011,约定小数点在符号位和数值位之间,可省略,这里的X为数的真值,[X]原为原码表示的机器数,是符号位 + |X|。
(2) 反码表示法
反码表示法是用机器数的最高一位代表符号,数值位是对负数值各位取反的表示方法,其定义为
例如, X=+0.1011, [X]反=01011, X=-0.1011, [X]反=10100
在反码表示中,零有两个编码,即 [+0.0]反=00000 , [-0.0]反=11111
在反码表示中,零有两个编码,即 [+0.0]反=00000 , [-0.0]反=11111
(3) 补码表示法
补码表示法是用机器数的最高一位代表符号,以下各位给出数值按2取模结果的表示方法,其定义为:
例如, X=+0.1011, [X]补=01011, X=-0.1011, [X]补=10101
在补码表示中,0有唯一的编码,即 [+0.0]补=X =00000, [-0.0]补=2 + X MOD 2 = 00000,所以定点小数多出一个编码,可表示-1。例如,X1=X2=-0.1000,则[X1]补=[X2]补 =11000, 那么[X+X]补=11000+11000=110000,按2取模后得10000,这是-1的补码表示。
补码表示的机器数和它的真值的关系,是 [X]补 = 2*符号位 + X,由此又得到 X=[X]补 - 2*符号位,这个结论在讨论补码乘法是会用到。
补码表示非常适合于进行加减法运算,对符号位与数值位同等处理,只要结果不超出机器能表示的数值范围,将直接得到正确的运算结果,即符号位与数值位都是正确的补码表示,并且可以用实现加法运算的电路完成减法运算,用 + [-Y]补 的办法处理减数即可。
补码表示的机器数和它的真值的关系,是 [X]补 = 2*符号位 + X,由此又得到 X=[X]补 - 2*符号位,这个结论在讨论补码乘法是会用到。
补码表示非常适合于进行加减法运算,对符号位与数值位同等处理,只要结果不超出机器能表示的数值范围,将直接得到正确的运算结果,即符号位与数值位都是正确的补码表示,并且可以用实现加法运算的电路完成减法运算,用 + [-Y]补 的办法处理减数即可。
整数编码
带符号的整数也可以用原码、补码和反码三种不同的编码方法表示。
可以认为整数是小数点被设置在最低一位数值位的右边,机器数的最高位仍被用作数的符号位。数值的表示范围,以及整数编码的取模值,都与表示一个数所用的二进制位数有关。
例如,对于用n+1个二进制位表示的带符号的整数的补码,其数值范围是-2n≤X <2n,是用机器数的最高一位代表符号,以下各位给出数值按2n+1取模结果的表示方法,其定义为:
可以认为整数是小数点被设置在最低一位数值位的右边,机器数的最高位仍被用作数的符号位。数值的表示范围,以及整数编码的取模值,都与表示一个数所用的二进制位数有关。
例如,对于用n+1个二进制位表示的带符号的整数的补码,其数值范围是-2n≤X <2n,是用机器数的最高一位代表符号,以下各位给出数值按2n+1取模结果的表示方法,其定义为:
例如, X=+10101 [X]原 =[X]补 =[X]反 =010101
X=-10101 [X]原 =110101,[X]补 =101011,[X]反 =101010
X=-10101 [X]原 =110101,[X]补 =101011,[X]反 =101010
2.3 浮点数在计算机中应用
浮点数
小数点的位置可以在数据位之间移动的数据称为浮点型数据,与数学中的实数相对应,与定点数相比,它的表示范围可以更大,还存在一个数据精度(有效数字位数)的问题。
N=(-1)S×M×RE
其中:S:代表符号位,0代表正,1代表负,是浮点数(即尾数部分)的符号。 M:代表尾数,也就是有效数字,用定点小数表示,通常用原码表示
R:指数的底,约定为2,不必表示出来,E:代表阶码,是一个整数,可正可负,一般用移码表示,用RE×尾数M可得到浮点数的绝对值。
规格化
规格化是指非0值的浮点数的位数必须满足1/2≤|M|<1的要求,即小数点后的最高位数字必须为1
2.4数据校验码
检验原理
数据校验码就是一种常用的带有发现某些错误,甚至带有一定自动改错能力的数据编码方法。它的实现原理是在合法的数据编码之间,加进一些不允许出现的(非法的)编码,使合法数据编码出现某些错误时,就称为非法编码
码距是指任意两个合法码之间至少有几个二进制位不相同,仅有一位不同称其码距为1,例如1000与1001的码距为1,而1011与1000的码距则为2。
只有当合法码之间的码距d>=2时,校验码才具有检错能力,当码距d>= 3时,校验码才具有纠错能力。
奇偶校验码
常见的校验码有奇偶校验码、海明校验码、循环校验码3种
奇偶校验码是一种最简单的数据校验码,可以检测出一位错误(或奇数个位错误),但不能确定出错的位置,也不能检测出偶数个位错误,其实现简单,应用成本低,是一种有效的检错方法。
它的具体实现方案,是在有效的数据位之外再增加一个校验位,通过异或
门线路判断数据位中取值为1的位数是奇数还是偶数,来决定校验位的值取1或0,使新得到的码字中取值为1的总的位数成为奇数或偶数,这项操作被称为编码过程,凑成奇数的方案称奇校验,凑成偶数时称偶校验。
下面是用8个数据位得到一个校验位P的值的偶校验编码方程。
门线路判断数据位中取值为1的位数是奇数还是偶数,来决定校验位的值取1或0,使新得到的码字中取值为1的总的位数成为奇数或偶数,这项操作被称为编码过程,凑成奇数的方案称奇校验,凑成偶数时称偶校验。
下面是用8个数据位得到一个校验位P的值的偶校验编码方程。
2.5 二进制数值数据的运算
0 条评论
下一页