1、计算机系统平台,后PC时代: 2000s - ?,指2000年之后,随着Internet接入家庭,以便携计算机、通信和消费产品技术结合起来的时代称之为后PC时代。人们花在智能手机、平板电脑、智能电视、游戏机等各种移动设备的时间已经超过了55%,而传统的台式电脑和笔记本仅占据45%,2,后PC时代计算机教学面临的挑战,对应用程序员的要求更高应用问题更复杂,领域更广气象、生物、医药、地质、天文等领域的高性能计算物联网(移动设备、信息家电等)嵌入式开发银行、保险、证券等大型数据库系统开发和维护游戏、多媒体等实时处理软件开发,。原有的计算机专业人才培养从强调“程序”设计,逐渐变为强调“系统”设计。为更
2、好地理解高级语言编程服务。,故事引入:用“系统思维”分析问题,关键差别在于一条指令:fldl 和 fildl,用“系统思维”分析问题,有一个回帖如是说,计算机专业人员应该是“上帝”,怎么自己不明白自己呢!,系统能力基于对系统的理解,了解计算机系统整体概念,理解计算机系统层次结构理解高级语言程序、ISA、编译/链接、OS、硬件等之间的关系高级语言语句与具体指令的对应关系变量(常量)如何表示和存放数组、指针等如何在指令级进行访问操作理解指令在计算机硬件上的执行过程算术逻辑运算部件以及运算指令执行过程层次化存储结构(Cache、RAID等)以及访存过程I/O结构(I/O外设和接口、BUS、网络等)以
3、及I/O过程理解构成计算机硬件的基本电路特性和设计方法布尔代数、逻辑门电路,第一章 概述,1.1 回顾计算机的发展简史 1.2 计算机系统结构组成 1.3 程序在计算机中的执行1.4 计算机性能评价,1.1 .1回顾计算机的发展简史,1943年,美军每天需要计算6张火炮射程表(每张表要计算几百条弹道弹道参数,一条射程的弹道参数用微分分析仪计算需要分钟)1945年,第一台电子数字计算机ENIAC诞生(一条弹道计算时间只需要秒!),高8英尺(约2.44米)、宽3英尺(约0.9米)、长100英尺(约30.48米)占地170平米重吨,ENIAC十进制操作不能存储程序通过开关、电缆或硬连线实现编程EDV
4、AC和EDSAC“存储程序”式计算机,存储程序原理,由1946年6月,美籍匈牙利数学家冯.诺伊曼(Von Neumann)提出;原理表述:计算机由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成采用“存储程序”工作方式存储器不仅能存放数据,也能存放指令;控制器能自动执行指令;运算器除了能进行基本算术运算,还能进行逻辑运算;计算机内部以二进制形式表示指令和数据。,1.1.1 回顾计算机的发展简史,第一代:真空管(电子管Vacuum Tube)194657年以电子管作为逻辑元件;使用汞延迟线或磁鼓作为存储设备、后来逐渐过渡到用磁芯存储器;数据主要是定点表示,用机器/汇编语言编写程序;运算
5、速度大约每秒几千次至几万次。代表:ENIAC和EDSAC,一支磁鼓有12英寸长(约30.48厘米),电子管,1.1.1 回顾计算机的发展简史,第二代计算机(20世纪50年代中、后期到60年代中期)以晶体管作为逻辑元件;用磁芯或磁鼓作为存储器;引入浮点运算硬件;运算速度每秒几万次至几十万次。高级语言FORTRAN、COBOL和ALGOL出现;代表:IBM 7040,国产441B机, DEC PDP-1等,晶体管,磁芯,1.1.1 回顾计算机的发展简史,第三代计算机(20世纪60年代中期到70年代中期)主要采用中、小规模集成电路;以半导体存储器作为内存,磁盘和磁带作为外存; 运算速度每秒几十万次至
6、几百万次。引进了多道程序和并行处理等新的技术;代表:IBM360系列、CDC6600/7600系列和CYBER系列,国产150、151、DJS-2000系列和DJS-1000系列等。,二极管与三极管,集成电路,半导体存储器,1.1.1 回顾计算机的发展简史,第四代计算机(20世纪70年代中期至今)采用大规模集成电路和超大规模集成电路;运算速度每秒几百万次至上千万亿次。并行处理、多机系统、分布式计算机、计算机网络等技术迅速发展;各种高级语言、分布式操作系统、数据库技术竟相争艳。,Intel 公司的诞生,Intel的元老们,摩尔、诺宜斯、葛洛夫(从左至右),1959年,美国仙童公司的诺伊斯用一种平
7、面工艺制成半导体集成电路,从此开启了集成电路比黄金还诱人的时代。其后,摩尔、诺宜斯、葛洛夫这三个“伙伴”离开原来的仙童公司,一起开创事业筹建一家他们自已的公司。三人一致认为,最有发展潜力的半导体市场是计算机存储器芯片市场。,Intel 公司的诞生,半导体市场几乎完全依赖于高新技术,你可以尽可能地在一个芯片上放最多的电路,谁的集成度高,谁就能成为这一行业的领袖。,基于以上考虑,摩尔为新公司命名为:Intel,这个字是由“集成/电子(Integrated Electronics)两个英文单词组合成的,象征新公司将在集成电路市场上飞黄腾达。,第一代(1971年1973年):4位及低档8位微处理器,1
8、971年英特尔诞生了第一个微处理器4004,这是第一个可用于微型计算机的四位微处理器,这款微处理器虽然功能有限,每秒只能执行5万条指令,主频只有108 KHz,还不如第一台计算机ENIAC。但它的集成度很高,一块重量不到一盎司 (约28.35克)的4004芯片上集成了2300只晶体管。 Intel 4004芯片推出后,业内反应很平淡。后英特尔又推出了8008, 8008的频率为200 KHz,晶体管集成数量达到了3500个,性能是Intel 4004的两倍,能处理8位的数据。由于运算性能很差,其市场反应十分不理想。,第二代(1974年1978年):中、低档8位微处理器,1974年,8008发展
9、成8080,成为第二代微处理器。 Intel 8080芯片的指令执行速度是Intel 8008的10倍,晶体管集成数量为6000个,频率为2MHz。立刻引起了业界的轰动。,第三代(1978年1983年)16位微型计算机的发展阶段,1978年,Intel公司推出了首枚16位微处理器Intel 8086,集成了29000只晶体管。1982年,Intel 80286问世该芯片虽然还是16位数据总线,但是集成了13.4万个晶体管。时钟频率达到10MHz。CPU速度比Intel 8086提高了5倍多。,第四代(1983年2000年):主要是字长为32位的微处理器,这一阶段Intel公司推出的典型的微处理
10、器芯片有: 80386、80486、Pentium、PentiumII、PentiumIII及Pentium4等,第五代(2000年)出现了字长为64位的微处理器芯片,2006年英特尔公司继使用长达12年之久的“奔腾”的处理器之后推出酷睿(Core)系列,Intel先推出的酷睿一代用于移动计算机,上市不久即被酷睿2代所取代。酷睿2代包括“Core 2 Duo”双核和“Core 2 Quad” 四核处理器, Core 2 Duo在单个芯片上封装了2.91亿个晶体管,核心尺寸为143平方毫米。从2010开始又逐渐推出了Core i3 , Core i5, Core i7, Core i9四个品牌的
11、CPU。,芯片的制造,从晶体管到集成电路芯片晶体管泛指一切以半导体材料为基础的单一元件,包括各种半导体材料制成的二极管、三极管、场效应管、可控硅等。集成电路是指采用一定的工艺,把一个电路中所需的晶体管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构,集成电路制造工艺,单晶硅锭,圆形薄片 / 硅抛光片(6/8/12寸,厚度不足1mm),IC小片 / 芯片,不合格的用磁浆点上记号,封装:将芯片固定在塑胶或陶瓷基座上,把芯片上蚀刻出来的引线与基座底部伸出的引脚连接,盖上盖板并封焊成芯片,约需400多道工序!,“晶
12、圆” / 大芯片,1.1.1 回顾计算机的发展简史,摩尔定律由Intel公司的缔造者之一Gordon Moore于1965年提出;定律内容:“在每18个月内,集成电路的性能翻一番,集成晶体管的数量翻一番,集成电路的价格下降一半”。,1.1.1 回顾计算机的发展简史,1.1.1 回顾计算机的发展简史,时代划分,1.1.2 微机的出现与发展,什么是微机?规模最小的计算机;定义:以微处理器为基础,配以读写存储器(RAM),只读存储器(ROM)及输入输出(I/O)设备和其他相应配套电路构成的计算机系统。特点:体积小,可靠性高、价格低、功耗小、更新速度快;,1.1.2 微机的出现与发展,PC机的组成包括
13、:主机、显示器、键盘鼠标、外部存储器及其他外部设备。,计算机硬件:打开计算机来看看,PC主板,CPU插座,内存条,PCI总线插槽,解剖一台计算机,1.2 计算机系统结构组成,计算机软硬件组成,1.2 计算机系统结构组成,硬件定义组成计算机的所有电子器件和机电装置的总称;构成计算机的物质基础;由运算器、控制器、存储器、输入设备、输出设备以及将它们联结为有机整体的总线构成。,计算机组成部件介绍,1控制器2运算器3存储器4输入设备5 输出设备6 总线,控制器,控制器是计算机的管理机构和指挥中心按照预先确定的操作步骤,协调控制计算机各部件有条不紊地自动工作控制器工作的实质就是解释程序逐条读取、分析、执
14、行指令,控制各部件动作高级计算机中的控制器可以改变某些指令的顺序,以改善性能,运算器,运算器是一个用于信息加工的部件,用于对数据进行算术运算和逻辑运算运算器通常由算术逻辑单元(Arithmetic Logic Unit,ALU)和一系列寄存器组成ALU是具体完成算术与逻辑运算的单元是运算器的核心由加法器和其他逻辑运算单元组成寄存器用于存放参与运算的操作数累加器一个特殊的寄存器除了存放操作数之外,还用于存放中间结果和最后结果,存储器,存储器的主要功能是存放程序和数据程序和数据都用二进制数表示,统称为信息向存储器存入或从存储器取出信息,都称为访问存储器存储器由一系列存储单元组成每个存储单元的编号称
15、为地址要按给定的地址来寻找所选择的存储单元信息单位位(bit)数字计算机的最小信息单位包含1位二进制信息(0或1)字节(Byte)由8位二进制信息组成字(Word)计算机一次所能处理的二进制位数,至少一个字节通常把组成一个字的二进制位数称为字长例如微型机的字长可以少至8位,多至32位,甚至达到64位,存储器,存储容量存储器中所有存储单元的总数常用单位KB(Kilobyte,千字节)、MB(Megabyte,兆字节)、GB(Gigabyte,千兆字节)各级单位之间的关系1KB=1024B,1MB=1024KB,1GB=1024MB,输入设备,将人们熟悉的信息形式,变换成计算机能接受并识别的二进制
16、信息形式理想的输入设备应该是“会看”和“会听”的 键盘、鼠标、扫描仪等,以及用于文字识别、图像识别、语音识别的设备,输出设备,将计算机输出的处理结果信息,转换成人类或其他设备能够接受和识别的信息形式理想的输出设备应该是“会写”和“会讲”的激光打印机、绘图仪、CRT/LCD显示器等,以及输出语言的设备(如语音合成产品),总线,计算机系统通过总线(Bus)将CPU、主存储器及I/O设备连接起来总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路按照信号类型,可将总线分为数据总线(data bus)主要传送数据,双向,可输入输出地址总线(address bus)传送地址信息,单向,决
17、定数据或命令传送给谁控制总线( control bus)传送各种控制信号,双向,一个典型系统的硬件组成,PC:程序计数器;ALU:算术/逻辑单元;USB:通用串行总线,Hardware/Software Interface(界面),软件和硬件的界面: ISA(Instruction Set Architecture ) 指令集体系结构,软件,硬件,计算机系统抽象层的转换,高级语言,高级语言和底层计算机结构关联不大,它是将许多相关的机器指令合成为单条指令。高级语言不能被计算机识别,需要通过转换成机器语言才能被执行,因此程序员编写的程序都需要通过翻译程序变成计算机所能识别的机器语言。编译程序解释程
18、序汇编程序,操作系统(OS,Operating System),管理和控制计算机硬件与软件资源的计算机程序。是直接运行在“裸机”上的最基本的系统软件。为各种软件提供支持和资源调用,让计算机系统所有资源最大限度地发挥作用。,ISA(指令集体系结构),指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。可执行的指令的集合指令可以接受的操作数的类型操作数所能存放的寄存器组的结构等。,微体系架构层,上层的ISA翻译为具体的实现ISA与微体系架构的区别ISA是对指令系统的一种规定或结构规范具体的实现就是微架构,数字逻辑电路层,微架构中的不同功能部件就是用不同的逻辑电路来实现的逻辑电路就是由不同
19、的逻辑门电路组成逻辑门电路由与门、或门、非门等构成,电子器件层,每一种逻辑门电路都是由特定的器件来实现的。逻辑门电路分为分立门电路(包括二极管和三极管)以及集成门电路,1.3 程序开发与执行过程(例1),#include int main() int a,b, c; a = 12; b = 3; c = a - b; printf(“result is : %dn”, c);,经典的“Sub.c”C-源程序,Sub.c的ASCII文本表示(文本文件),计算机能够直接识别Sub.c源程序吗?,不能,需要转换为机器语言代码! 即:编译、汇编等,Sub.c编译过程,不同层次语言之间的等价转换,存放程
20、序和程序处理的数据,1.3 程序在计算机系统中运行,奔腾机器的硬件模型,从键盘读取Sub命令,用户输入“Sub”,“Sub”,1.3 程序在计算机系统中运行,从磁盘加载可执行文件到主存,用户输入“Sub”,Sub代码,存储在磁盘上的Sub可执行文件,1.3 程序在计算机系统中运行,从存储器写输出串到显示器,“c=9”,Sub代码,存储在磁盘上的Sub可执行文件,1.3 程序在计算机系统中运行,用户程序的执行必须依靠操作系统的支持,1.4 计算机性能评价,1.4.1计算机硬件技术指标 纯硬件角度分析:计算机性能受总体结构、指令系统、硬件组成等多方面的因素影响1.4.2计算机性能评价准则,1.4.
21、1计算机硬件技术指标,1)主频定义:CPU的工作节拍是由时钟控制的,时钟不断产生固定频率的时钟脉冲,这个时钟的频率就是CPU的主频。 主频越高,CPU的工作节拍就越快,运算速度就越高 ;主频通常用一秒钟内处理器所能发出电子脉冲数来表示,单位一般为吉赫兹(Hz)。,1.4.1计算机硬件技术指标,2)运算速度 定义:计算机运算速度是指每秒钟所能执行的指令条数,其计量单位为MIPS(百万条指令每秒)或者MFLOPS(百万次浮点运算每秒) 。 几种计算方法: a) 吉布森混合法: 从应用课题程序中统计各类指令所占百分比,然后用指令混合比计算指令的平均执行速度。 b) 计算各种指令的执行速度; c) 计
22、算典型程序的运算速度; d) 模型分析和模拟等其他方法。,1.4.1计算机硬件技术指标,3)运算精度通常用计算机能直接处理的二进制信息位数来衡量。一般和CPU中存储数据寄存器的位数是相同的,位数越多,精度越高;参与运算操作数的基本位数称为基本字长 ,早期的微型计算机字长多为8位和16位,现在多为32位;大中型计算机多为32位和64位。,4) 存储容量主存越大,处理问题的速度越快与外存交换次数越少,效率越高,1.4.1计算机硬件技术指标,主存容量,辅存容量,5)存取周期对主存储器连续两次访问所允许的最小时间间隔存取周期愈小,系统性能愈高,1.4.1计算机硬件技术指标,总线带宽数据在总线传输的速度
23、,是用字节每秒做单位的。 总线带宽 =(总线的频率 * 总线位宽) /8例如,对于64位、800MHz的前端总线,它的总线带宽就等于64bit800MHz8(Byte)=6.4GB/s;,综合考虑各种因素是否还有别的评价要素?,1.4.1计算机硬件技术指标,系统结构、硬件组成、外设配置、软件种类、吞吐率和响应时间,还有可靠性,可用性、可维性、完整性和安全性等。,6299,主频、外频、倍频 、超频、睿频,主频是CPU频率,就是CPU的时钟频率,简单说是CPU运算时的工作的频率。外频是CPU与主板之间同步运行的速度,而且绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度。倍频即主频与外频之比
24、的倍数。超频将CPU的工作频率提高,让它们在高于其额定的频率状态下稳定工作。(主频)=(外频)*(倍频)。睿频使得CPU的主频可以在某一范围内根据处理数据需要自动调整主频。最高睿频指的是笔记本电脑处理多任务或者大型任务时,CPU能达到的最高工作频率。,指令集,Intel有x86,x86-64,MMX,SSE,SSE2,SSE3,SSSE3 (Super SSE3),SSE4.1,SSE4.2和针对64位桌面处理器的EM-64T。2007年8月,AMD抢先宣布了SSE5指令集(SSE到SSE4均为英特尔出品),英特尔当即黑脸表示不支持SSE5,转而在2008年3月宣布Sandy Bridge微架
25、构将引入全新的AVX指令集。 AVX指令集借鉴了一些AMD SSE5的设计思路,进行扩展和加强,形成一套新一代的指令集规范。,内存速度与CPU速度,内存: DDR3 1333 读写速度10664MB/sCPU :Intel Core i7 980X Extreme 运算速度799.2亿次/s,第二章数字电路分析与设计基础,计算机系统抽象层的转换,编程(语言)层 高级语言程序设计指令集体系结构(ISA)和汇编层 汇编语言 程序设计 微体系结构及硬件层 计算机组成原理I、 计算机组成原理II 操作系统 操作系统逻辑门电路 数字逻辑,内容提要,2.1 布尔代数2.2 组合逻辑电路分析与设计2.3 同
26、步时序电路分析与设计,模拟信号与数字信号,模拟信号:是时间连续、数值也连续的物理量,它具有无穷多的数值,其数学表达式也较复杂。,模拟信号与数字信号,数字信号:在时间上和数值上均是离散的,常用数字0和1来表示,布尔代数与数字电路的关系,在数字逻辑电路中,用二进制数码的0和1表示一个事物的两种逻辑状态。用多变量的不同状态组合表示事物的多种逻辑状态,处理任何复杂的逻辑问题。1849年英国数学家乔治布尔(George Boole)首先提出了进行逻辑运算的数学方法布尔代数。数字电路要研究的是电路的输入与输出之间的逻辑关系,所以数字电路又称数字逻辑电路。,2.1.1布尔代数及其基本运算,布尔代数定义:布尔
27、代数是一个由布尔变量集K,常量0、1以及“或”、“与”、“非”三种运算符所构成的代数系统,记为: B(,0,1),2.1.1布尔代数及其基本运算,基本逻辑运算 “与”,基本逻辑运算 “或”,基本逻辑运算 “非”,虽然基本的逻辑运算只有与、或、非三种但通过这三种基本逻辑运算可以组合出各种复杂的逻辑函数运算,使数字电路的设计更为方便。与非 或非,异或同或,2.1.3 布尔函数及其表示方法,设输入变量为x1,x2,xn,输出变量为F,对应于变量x1,x2,xn的每一组确定值,F就有唯一确定的值,则称F是变量x1,x2,xn的布尔函数。记为:Ff (x1,x2,xn) 布尔函数的表示方法有三种形式:真
28、值表布尔表达式卡诺图,一、真值表,真值表是一种用表格形式表示布尔函数的方法,它由输入变量的所有可能取值组合及其对应的输出函数值所构成。 例:异或函数,二、布尔表达式 -“与或”式,“与或”式 “与”项的“或”运算表示的函数。例如:异或函数可用“与或”式表示: Ff(A,B)“与或”式也称为函数的“积之和”形式。,1. 标准与或式,最小项 “与”项中包含函数的所有变量,每个变量或者以原变量或者以反变量的形式出现一次,且仅出现一次,这个乘积项称为最小项,用mi表示。例如:,1. 标准与或式,由最小项之和形式表示的函数上述的异或函数“与或”式就是一个标准与或式,记为:Ff(A,B) m1m2m(1,
29、2)一个布尔函数的标准与或式 是唯一的。,例:在交通信号灯控制系统中,每一组信号灯由红、黄、绿三盏灯组成。正常情况下,任何时刻必有一盏灯亮,而且只能有一盏灯亮,否则故障检测系统应发出信号提醒维护人员前去维修。试列出描述监视交通信号灯工作状态的逻辑电路逻辑关系的真值表,并写出逻辑表达式。,2.1.4 布尔函数的化简与实现,化简的目的-简化电路设计代数化简法 卡诺图化简法 布尔函数的实现,一、代数化简法,(1)并项法:利用公式 两项合并为一项,消去一个因子。,吸收法消去多余的乘积项或多余的因子。,(3)添项法在函数表达式中重复书写某一项,以便简化函数表达式。,配项法将某个与项乘以 项或加上 ,进而
30、将其拆成两项,以便与其他项配合化简。,卡诺图化简法的基本原理,卡诺图由于采用了Gray码的编码顺序,两个相邻代码之间只有一位不同,使得任意两个相邻的最小项在图上也是相邻的。,F(A,B,C)m(2,3,5,7)的真值表,二、卡诺图化简法,1卡诺图化简法的基本原理 实质是两个相邻最小项的合并 只有一个变量互补,其余变量相同例:F(A,B,C)m(2,3,5,7),三、卡诺图,卡诺图实际上是真值表的一种重新排列。,AB,CD,AB,C,A,B,2布尔函数在卡诺图上的表示,如果布尔函数是以真值表的形式或者以“标准与或”式给出的,只要在卡诺图上找出那些与给定布尔函数的最小项相对应的方格,并标以1,其余
31、的方格标0,就得到该函数的卡诺图。,4用卡诺图化简布尔函数步骤,将布尔函数用卡诺图表示。按下述原则合并最小项:每个卡诺圈应尽可能大,以合并尽可能多的最小项;在覆盖所有标1小方格的前提下,卡诺圈的个数应为2n (n=1,2)个,并且应尽可能少;每个标1小方格至少应被一个卡诺圈包含,也可根据需要被多个卡诺圈包含。将卡诺图上所有卡诺圈对应的“与”项“或”起来,得到布尔函数的最简“与或”表达式。,3卡诺图上最小项的合并 (两变量),3卡诺图上最小项的合并(三变量),3卡诺图上最小项的合并(四变量),3卡诺图上最小项的合并(四变量),化简以下卡诺图。,由此可见,一个逻辑函数的真值表是唯一的,卡诺图也是唯
32、一的,但化简结果有时并不唯一。,例2.2,化简函数F(A,B,C,D)=m(0,3,4,5,7,11,13,15) (1)画出函数的卡诺图。,例2.2,(2)画卡诺圈,(3)根据卡诺圈,写函数的最简“与或”表达式:,三、布尔函数的实现,2.2 逻辑电路分析与设计,组合逻辑电路逻辑电路在任何时刻产生的稳定输出值仅仅取决于该时刻各输入值的组合,而与过去的输入值无关。时序逻辑电路逻辑电路的输出不但与该时刻电路的输入有关,而且与电路过去的输入有关。同步时序逻辑电路异步时序逻辑电路。,2.2 逻辑电路分析与设计,逻辑电路分析就是对给定的逻辑电路,应用逻辑函数来描述它的工作、研究它的工作特性和逻辑功能。
33、在实际应用中,有时会遇到这样一些需求:需要更换电路的某些组件需要评价该电路的经济技术指标需要获取其设计思想 逻辑电路设计 对已知的逻辑要求,确定用什么逻辑电路来实现,这一过程叫做逻辑电路设计,或称为综合。,2.2.1 组合电路的分析,步骤:根据给定的逻辑电路图,写出布尔函数表达式;化简该表达式;由表达式列真值表;根据应用背景,判断电路完成的逻辑功能,并做简要的文字描述。,例2.3 分析下图所示电路,例2.3,1写出布尔函数表达式如下: 2表达式已是最简表达式。3由表达式列真值表如下表所示。,逻辑电路分析例题真值表,例2.3,4这是一个三输入、八输出的逻辑电路,每个输出函数对应一个最小项。对于三
34、输入的每一种编码组合,只有一个函数输出为1,其余输出为0,即每一个输入组合只选中一个输出。这是一个二进制译码器,在计算机中常用做存储器地址译码和指令译码。,练习,例2、分析电路的逻辑功能。,0,1,1,0,同或门,2.2.2 组合电路的设计,步骤: (1)根据设计的逻辑要求列出真值表; (2)化简函数; (3)根据给定的逻辑门写出表达式; (4)画出逻辑图。,例2.5 全加器设计,所谓全加器就是能对两个一位二进制数相加,并加上低位来的进位,形成“和”及“进位”的逻辑电路。它的逻辑框图如图所示,例2.5 全加器设计,(1)列真值表,例2.5 全加器设计,(2)化简函数 根据真值表画Si和Ci的卡
35、诺图,由卡诺图得:,(4)逻辑电路图如图所示:,例2.5 全加器设计,练习,设计一个三人表决器,结果为少数服从多数。,练习,例2.19:设计一个交通信号灯工作状态检测电路。分析:正常工作状态下,任何时刻点亮的只能是红、黄、绿中的一种。当出现其他五种点亮状态时,电路发生故障,要求电路发出故障信号,以提醒维护人员前去修复。,2.3 同步时序电路分析与设计,2.3.1 引言2.3.2 触发器 2.3.3 同步时序电路的分析 2.3.4 同步时序电路的设计,例:八位二进制数加法的组合电路,时序电路 更为经济的方法是分步解决问题。每一步的结果都是基于前一步获取的信息。需要一个存储元件来保存前一步的结果。
36、包含存储元件的电路 触发器扮演的正是这样的角色。输出不但与当前时刻电路的输入有关,而且与电路过去的输入有关。,例:八位二进制数加法的时序电路,时序电路的结构模型,内部输入(现态),内部输出(次态),2.3.2 触发器,常用的触发器JK触发器T触发器D 触发器触发器的内部特性请参阅数字电子技术的有关书籍触发器的外部特性供分析与设计时序电路时正确选用。,二)JK触发器,逻辑符号 状态表,逻辑电路图,JK触发器的特性方程:,三)T触发器,逻辑符号 状态表,T触发器的特性方程 :,四)D触发器,逻辑符号 状态表,D触发器的特性方程 : Q n+1=D,分析同步时序逻辑电路的步骤:,1.了解电路的组成:
37、电路的输入、输出信号、触发器的类型等,.确定电路的逻辑功能.,3.列出状态转换表或画出状态图和波形图;,2. 根据给定的时序电路图,写出下列各逻辑方程式:,() 输出方程;,() 各触发器的驱动方程;,(3)状态方程: 将每个触发器的驱动方程代入其特性方程得状态方程.,例 试分析如图所示时序电路的逻辑功能。,电路是由两个JK触发器组成的同步时序电路。,解:,1.了解电路组成。,J2=K2=X Qn1,J1=K1=1,Y=Qn2Qn1,2.写出下列各逻辑方程式:,输出方程,驱动方程,J2=K2=X Q1,J1=K1=1,将驱动方程代入JK触发器的特性方程得状态方程,整理得:,FF2,FF1,3.
38、列出其状态转换表,画出状态转换图和波形图,Y=Qn2Qn1,状态图,画出状态图,根据状态转换表,画出波形图。,00,X=0时,电路功能:可逆计数器,X=1时,Y可理解为进位或借位端。,电路进行加1计数,电路进行减1计数 。,.确定电路的逻辑功能.,分析以下时序电路的功能,2.3.4 同步时序电路的设计,例,用T触发器设计一个模16同步加1计数器。解:(1)建立状态表 由于计数器的工作状态很有规律,所以可以直接建立二进制状态表。这里,由于计数状态n16,故需要4个触发器。,例,(2)求激励函数和输出函数 根据上述状态表和T触发器的状态表,可得到网络的激励矩阵,如表右边部分所示。,例,分别画出激励
39、函数T1T4和输出函数Z的卡诺图,并化简得到表达式 :,例,例,例,(3)画逻辑图,在计算机系统内部,所有信息都是用二进制进行编码的,原因:二进制只有两种基本状态,使用两个稳定状态的物理器件就可以表示二进制数的每一位。二进制的编码、计数和运算规则都很简单。两个符号“1”和“0”正好与逻辑例题的“真”和“假”相对应。,补码,数值数据的表示,数值数据表示的三要素进位计数制定、浮点表示如何用二进制编码即:要确定一个数值数据的值必须先确定这三个要素。例如,机器数 01011001的值是多少?进位计数制十进制、二进制、十六进制、八进制数及其相互转换定/浮点表示(解决小数点问题)定点整数、定点小数浮点数(
40、可用一个定点小数和一个定点整数来表示)定点数的编码(解决正负号问题)原码、补码、反码、移码 (反码很少用),答案是:不知道!,进位计数制,1.R进制转换成十进制数2.十进制数转换成R进制3.二、八、十六进制数的相互转换,定点和浮点的出现是为了解决小数点的问题。定点数:小数点固定的数,用来对定点小数和定点整数进行表示。定点整数:固定在机器数的最低位之后定点小数:固定在符号位之后,定点与浮点表示,2. 浮点格式,1)浮点数的表示方法浮点表示法就是一个数的小数点的位置不固定,可以浮动。 例如0.0000000000000101可表示成1.01214任意进制数 101000000000000可表示成
41、1.01214 可以写成 N = ME,R=2任意一个浮点数可用两个定点数来表示。,浮点数的范围,浮点数与定点数的关系,由浮点数的范围可知,浮点数X的绝对值:浮点数的最小数是定点小数的最小数2-n除以一个很大的数2(2m-1) ,最大数则是定点小数的最大数(1-2-n)乘以这个大数2(2m-1) 。因此浮点数的表示范围比定点数要大得多。,定点数的编码表示,将数的正/负号用0/1来表示称为符号数字 化。为了解决数字化后的符号是否能一起参加运算,就出现了各种编码方法。编码方法主要有原码、反码、补码和移码。由于任意一个浮点数都可以用定点整数和定点小数来表示,因此只考虑定点数的编码方法。,把带有“”、
42、“”号的数据表示形式称为真值。把符号数值化的数据表示形式称为机器数;表示机器数的常用的方法有三种,即原码、反码和补码。这三种机器数的表示形式中,符号部分的规定是相同的,所不同的是数值部分的表示形式。,二、数的机器码表示,1. 原码表示符号用代码0表示“”,用代码1表示“”,数值部分以真值形式表示 。例:x11101 x21101则:x1原01101 x2原111012. 原码性质:若xx1x2 xn-1 ,则x原0 x1x2 xn-1;若xx1x2 xn-1 ,则x原1x1x2 xn-1。原码零有两种表示形式,当x 000时000原0000000原1000,数的机器码表示,原码优缺点,优点:简
43、单直观,容易变换缺点:进行加、减运算较为复杂。首先要比较两个数的符号,符号相同,则数值相加;符号不同,则比较两数数值大小,由数值大的数减去数值小的数,符号与数值大的数相同。,符号位用0表示正数,用1表示负数。对于正数,反码的数值与原码相同;对于负数,反码数值是将原码数值按位取反 例:x11011 x21011 则:x1反01011 x2反10100 反码性质:若xx1x2 xn-1 ,则x原0 x1x2 xn-1;若xx1x2 xn-1 ,则x原1x1x2 xn-1。原码零有两种表示形式,当x 000时000反0000000反1111,反码表示,反码性质:用反码进行运算时,两数反码的和等于两数
44、和的反码;符号位也参加运算,当符号位产生进位时,需要循环进位,反码表示,例 已知x11001,x20101,求x1x2 解 x1反01001 ) x2反11010,x1反x2反100011,) 1,00100即:x1x2反00100,所以x1x20100,反码优缺点,优点:进行加法运算时比原码表示法简单;缺点:当有符号位进位时,存在循环进位的问题,即多执行一次加法。,符号部分同原码,数值部分与它的符号位有关:对于正数,补码的数值位与原码相同;对于负数,补码的数值位是将原码按位变反,再在最低位加1。例:x111010 x211010 则:x1补011010 x2补100110补码性质:若xx1x
45、2 xn-1 ,则x补0 x1x2 xn-1;若xx1x2 xn-1 ,则x补1x1x2 xn-11。补码零有一种表示形式,当x 000时000补0000000补0000(mod 2n),3. 补码表示,两数相加,不论两数的真值是正数还是负数,只要先把它们表示成相应的补码形式,然后按二进制规则相加(符号位也参加运算),其结果即为两数和的补码。 例3.3 已知x11110,x20111,求x1x2解 x1补 01110 ) x2补 11001 x1补x2补100111 丢弃 即x1x2补00111,所以x1x200111,补码表示,补码优点:可以简化加法运算,只需一套实现加法运算的线路,移码(又
46、叫增码)是符号位取反的补码,一般用做浮点数的阶码。例:X=+1011 X=1011 X移=11011 X移=00101,移码表示,各种数的编码,有三种定点编码方式原码 现用来表示浮点(实)数的尾数反码 现已不用于表示数值数据补码 50年代以来,所有计算机都用补码来表示定点整数中带符号整数移码用来表示浮点数的“阶码”为什么用补码表示带符号整数?补码运算系统是模运算系统,加、减运算统一数0的表示唯一,方便使用比原码和反码多表示一个最小负数,4. 原码、反码和补码之间的转换,例: x1 = 1101 x1原= 01101 x2 = 1101 x2补= 10011 x =(-13/64)10 = (0
47、.001101)2 x原1.001101,x补1.110011x补11011 x原10101,原码、反码和补码之间的转换,C语言中数的表示,定点整数表示无符号整数有符号整数,Unsigned integer(无符号整数),一般在全部是正数运算且不出现负值结果的场合下,可使用无符号数表示。例如,地址运算,编号表示,等等无符号整数的编码中没有符号位没有原码、反码、补码之分。能表示的最大值大于位数相同的带符号整数的最大值(Why?)例如,8位无符号整数最大是255(1111 1111) 而8位带符号整数最大为127(0111 1111)总是整数,所以很多时候就简称为“无符号数”语言中对应unsign
48、ed short, unsigned int ,unsigned long,有符号整数,带符号整数也被称为有符号整数,它必须用一个二进制位来表示符号。现代计算机中都是有补码来表示有符号整数。n位带符号整数的表示范围为-2n-1(2n-1-1)。例如:8位带符号数的表示范围为: -128 +127 10000000 01111111语言中对应short, int , long,浮点数的表示,由于用定点数无法表示大量带有小数点的实数,因此计算机机中专门用浮点数来表示实数。语言中float型(32位)其中尾数用原码表示,阶码用移码表示。(n位移码范围: -2n-1(2n-1-1)。规格化尾数第一位总
49、为1,因此在尾数中缺省第一位的1.使得23位尾数表示了24位数字。,例:画出下述32位浮点数格式的表数范围。 0 1 8 9 31 第0位数符S;第18位为8位移码表示阶码E;第931位为24位二进制原码小数表示的尾数M。规格化尾数的第一位总是1,故规定第一位默认的“1”不明显表示出来。这样可用23个数位表示24位尾数。,语言中double型(位)其中尾数用原码表示,阶码用移码表示。规格化尾数第一位总为1,因此在尾数中缺省第一位的1.使得52位尾数表示了53位数字。,数值数据(numerical data)的两种表示Decimal (十进制数) 用ASCII码表示用BCD(Binary cod
50、ed Decimal)码表示计算机中为什么要用十进制数表示数值?日常使用的都是十进制数,所以,计算机外部都使用十进制数。在一些有大量数据输入/出的系统中,为减少二进制数和十进制数之间的转换,在计算机内部直接用十进制数表示数值。,十进制数的表示,数据的存储与排列顺序,比特(bit)是计算机中处理、存储、传输信息的最小单位二进制信息的计量单位是“字节”(Byte),也称“位组”现代计算机中,(内存)存储器按字节编址字节是最小可寻址单位 (addressable unit ) 如果以字节为一个排列单位,则LSB表示最低有效字节,MSB表示最高有效字节除比特和字节外,还经常使用“字”(word)作为单