•概论•运算方法•主存储器及存储系统•指令系统•中央处理器•辅助存储器•输入输出设备•输入输出系统计算机组成与结构1、课程特点课程内容多承上启下理论性强难度大计算机组成与结构2、主要内容:计算机组成角度:计算机由几部分组成各部分的组成功能及原理各部分间的关系整机如何工作信息流的角度:数据流控制流计算机组成与结构3、学习目的为培养同学们在分析、设计计算机系统方面的能力打下基础4、考核形式主要内容:计算机的语言计算机的特点计算机的基本结构与硬件组成第一章概论•机器语言:用二进制代码表示的计算机语言,可直接执行。特点:可读性差,不易编程和维护计算机的语言•汇编语言:用助记符号编写的语言。特点:可读性较好,适合编写与硬件打交道的系统软件•高级语言特点:接近自然语言,描述问题强,易维护可移植•翻译高级语言(汇编语言)机器语言•解释方式:边解释边执行,不会生成目标程序•编译方式:将高级语言编写的程序(源程序)翻译成机器语言程序(目标程序),以文件形式储存然后执行。计算机的特点1.运算速度快高速的电子元器件先进的计算技巧2.计算精度高字长加长浮点运算3.记忆和逻辑判断能力内外存布尔代数4.通用性强5.自动连续计算存储程序原理一、存储程序原理1.概念:指令:OPAD程序:指令的有序集合指令系统:一台机器所拥有的全部指令2.存储程序原理(冯·诺依曼思想)1.程序和数据都以二进制的形式顺序存放在存储器中2.机器自动顺序取出每条指令进行分析,执行其规定的操作3.计算机硬件由存储器、运算器、控制器、输入设备和输出设备组成。•第一台存储程序机器EDSAC:1949年,英国剑桥大M.WILKES取得了1967年度计算机世界最高奖-图林奖计算机的简单工作过程计算2+1=?1.从存储器取数2,暂存取数22.从存储器取数1,暂存取数13.计算2+1,结果暂存计算2+14.结果3送存储器保存45.打印结果打印结果56.停机停机数2数1程序计数器PC+1计算机的基本结构输入设备存储器运算器控制器输出设备数据结果数据数据指令结果地址计算机的硬件组成运算器控制器主存储器输入设备输出设备总线和输入输出接口高速缓存虚拟存储器(磁盘设备)第一单元第二单元第三单元第四单元第五单元1.运算器功能:完成算术运算和逻辑运算的装置组成:由ALU,移位器,通用寄存器组等构成移位器ALU选择器通用寄存器组选择器运算器结构框图移位器ALU选择器通用寄存器组选择器ALU:通过加法器实现运算操作(由全加器求和、由进位链传递进位信号)。移位器ALU选择器通用寄存器组选择器通用寄存器组:提供操作数,存放运算结果。移位器ALU选择器通用寄存器组选择器选择器:选择操作数;选择控制条件,实现各种算法。移位器ALU选择器通用寄存器组选择器移位器:直接或者移位送出运算结果。讨论:ALU组成和原理几种主要的运算方法(定、浮)2.控制器功能:产生控制命令(微命令),控制指挥全机操作。执行方式:1)按规定的操作去执行2)自动地执行3)有秩序地执行讨论:控制器组成原理与控制机制和指令执行过程。●运算器及控制器构成中央处理机(CPU)存储体大楼存储单元存放一串二进制代码存储字长存储单元中二进制代码的位数每个存储单元赋予一个地址号按地址寻访–存储单元–存储字长(0/1)–房间–床位(无人/有人)3.存储器功能:存放程序和数据的装置,并满足计算机在执行过程中能随机访问这些程序和数据。1.2主存储器存储体MARMDRMARMDR存储单元个数16存储字长8设MAR=4位MDR=8位存储器地址寄存器反映存储单元的个数存储器数据寄存器反映存储字长主存储器存储体MARMDR存储器的基本组成数据总线•讨论存储单元读/写原理、存储器逻辑设计cpu读写控制数据寄存器存储体地址寄存器地址总线控制总线ARDR4.输入/输出设备功能:转换信息输入:原始信息代码,送入主机输出:处理结果人所能接受的形式,并输出(代码)输入设备:键盘,鼠标,扫描仪输出设备:CRT,打印机,绘图仪计算机硬件的性能指标•机器字长–CPU一次能处理数据的位数•寄存器、ALU、总线、存储器等•字长越长,数的表示范围越大,精度越高–4位、8位、16位、32位、64位•存储容量–存储器可存储的二进制数据总数•容量=存储单元个数×存储字长•MAR=16位,则有64K个存储单元;MDR=32位,则共可存储64K×32=2Mb华硕P4S533-MX主板内存条插槽CPU风扇支架PCI扩展槽IDE硬盘接口各种外设接口,包括:键盘、鼠标、显示器、USB、声卡、网卡、并行口等CPU插槽第3章运算方法和运算部件3.1数据的表示方法和转换3.2机器数在计算机中的表示方法及加减法运算3.3定点乘法运算3.4定点除法运算3.5浮点数运算方法3.6数据校验码3.1.1数值型数据的表示和转换在计算机系统中,常用的几种数制有下列几种:二进制R=2,基本符号为0和1八进制R=8,基本符号为0,1,2,3,4,5,6,7十六进制R=16,基本符号为0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十进制R=10,基本符号为0,1,2,3,4,5,6,7,8,91.R进制数转换成十进制数•R进制数转换成十进制数时,只要“按权展开”即可。例1:二进制数转换成十进制数。(10101.01)2=(1×24+0×23+1×22+0×21+1×20+0×2-1+1×2-2)10=(21.25)10例2:八进制数转换成十进制数。(307.6)8=(3×82+7×80+6×8-1)10=(199.75)10例3:十六进制数转换成十进制数。(3A.C)=(3×161+10×160+12×16-1)10=(58.75)102.十进制数转换成R进制数•十进制数转换成R进制数时,要将整数和小数部分分别进行转换。(1)整数部分的转换•整数部分的转换方法是“除基取余”。例1:将十进制整数835分别转换成二、八进制数。01813810488358余数低位3051(835)10=(1503)8高位417262835104208521322222低位余数高位001100361022220111(835)10=(1101000011)2(2)小数部分的转换•小数部分的转换方法是“乘基取整”。例2:将十进制小数0.6875分别转换成二、八进制数。0.6875×2=1.3751整数部分0.375×2=0.7500.75×2=1.510.5×2=1.01高位低位(0.6875)10=(0.1011)2整数部分高位低位0.6875×8=5.550.5×8=4.04(0.6875)10=(0.54)8例3:将十进制小数0.63转换成二进制数。整数部分高位低位0.63×2=1.2610.26×2=0.5200.52×2=1.0410.04×2=0.080(0.63)10=(0.1010)2(近似值)(3)含整数、小数部分的数的转换•只要将整数、小数部分分别进行转换,得到转换后的整数和小数部分,然后再这两部分组合起来得到一个完整的数。例4:将十进制数835.6875转换成二、八进制数。(835.6875)10=(1101000011.1011)2=(1503.54)83.二、八、十六进制数的相互转换(1)八进制数转换成二进制数(13.724)8=(001011.111010100)2=(1011.1110101)2(2)十六进制数转换成二进制数(2B.5E)16=(00101011.01011110)2=(101011.0101111)2(3)二进制数转换成八进制数(10011.01)2=(010011.010)2=(23.2)8(4)二进制数转换成十六进制数(11001.11)2=(00011001.1100)2=(19.C)163.1.2十进制的编码与运算•二___十进制编码(BCD码,Binary—DecimalCode)用四位二进制码表示一位十进制数1.有权码:二进制码中每一位有确定的权2.无权码:二进制码中每一位没有确定的权1.有权码(1)8421码(2)2421码5---0101、10117---0111、11019---111112—00010010(3)5421码5---1000、01017---0111、10109---110012—00010010(4)84-2-1码2.无权码(1)余3码5—10007—10109—110012—01000101特点:每个编码代表的值比其对应的十进制多“3”(2)格雷码相邻的两代码之间只有一位不同。3.8421码加法规则◆两个8421码相加时,和小于或等于9则保持不变◆两个8421码相加时,和大于9,则和数应加0110修正。例1:(15)10+(21)10=(36)108421码加法运算:0001010115+00100001+210011011036每个十进制位的8421码和均小于9,因此,对计算结果无需修正例2:(15)10+(26)10=(41)108421码加法:0001010115+00100110+26进位0011101141修正+011001000001在8421BCD码的加法运算中,低十进制位的二进制加法和是1011,大于1001;需要在该位+6修正;修正使得本位结果正确,同时向上一位产生进位。4.余3码加法规则◆两个余三码相加时,不产生进位时,结果减0011,产生进位时,进位送入高位,本位加0011。5.数字串在计算机内的表示形式十进制数串在计算机内主要有两种表示形式:1.字符串形式:一个字节存放一个十进制的数位或符号位。2.压缩的十进制数串形式:一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。●符号位也占半个字节并放在最低数字位之后,其值选用四位编码中的六种冗余状态中的有关值,如用12(c)表示正号,用13(d)表示负号。在这种表示中,规定数位加符号位之和必须为偶数,当和不为偶数时,应在最高数字位之前补一个0。●每个数位占用半个字节(即4个二进制位),其值可用二-十编码(BCD码)或数字符的ASCII码的低4位表示。3.2机器数在计算机中的表示方法及加减法运算●真值vs.机器数–真值:正、负号加某进制数绝对值的形式称为真值。•如二进制真值:X=+1011y=-1011–机器数:符号数码化的数称为机器数如:X=01011Y=11011●机器数特点:1、数的符号数值化2、表示范围受字长限制超出此范围__溢出3、小数点的位置要约定1.定点数是指计算机中所有数据的小数点位置是固定不变的。该位置在计算机设计时已被隐含地规定,因此勿需再用任何硬件设备状态来明显表示小数点。2.浮点数在计算机中所表示的数,其小数点位置是可变的,这种数称为浮点数。●机器数,主要分成定点数与浮点数两类来加以讨论。先简要说明这两类机器数的基本定义,再详细讨论其具体编码形式原码补码反码移码•正数:原码、反码和补码表示都相同•负数:原码、反码和补码表示不同●定点机器数的编码表示:3.2.1原码表示法•原码表示法用“0”表示正号,用“1”表示负号,数值位用真值的绝对值表示。–整数的符号位与数值位之间用逗号“,”隔开;–小数的符号位与数值位之间用小数点“.”隔开。1.定点小数原码定义x[x]原=1-x10x01x例1:X=-0.1011[x]原=1+0.1011=1.1011(默认机器字长5位)0的原码有两种表示方式:[+0]原=0.0000000;[-0]原=1-0.0000000=1.0000000设[x]原=XsX1…Xn,其中Xs为符号位,共n+1位字长•最大值:1-2-n•最小值:-(1-2-n)例1:若二进制原码小数的位数分别是8位,求其该数表示的最大值、最小值及所能表示数的个数?8位:1-2-7,-(1-2-7)2.定点小数原码的表示范围注意:最高位为符号位,有效数值位分别为7。X1X≥0[X]原=1-X0≥X-13.定点整数原码定义x当2n[x]原=2n-x当-2n0xx0例1:[