第一单元第二讲计算机发展简史运算器功能及数据表示内容提要•计算机发展简史•运算器基本功能•数据表示–数值•整数•定点小数•浮点数–字符–逻辑值ComputerGenerations•Gen-0:Mechanicalcomputers(BCtoearly1940s)•Gen-1:VacuumTubes(1943-1959)•Gen-2:Transistors(1960-1968)–JohnBardeen,WalterBrattain,andWilliamShockley•Gen-3:IntegratedCircuits(1969-1977)–JackKilby(1958)•Gen-4:VLSI(1978-present)•Gen-5:Optical?Quantum?生物?古代及近代计算技术公元前500年,中国出现算盘1642年,BlaisePascal发明自动进位的加法机器,齿轮驱动拨盘,在窗口显示结果1822年,CharlesBabbage,差分机(DifferentialEngie)1833年,分析机(AnalyticalEngine),通用机器16世纪,Alkhowarizmi提出算法概念,并出版以算法(Algorithm)为题的书籍Turing机1937年,AlanTuring提出一种“通用”计算机的概念,它可以执行任何一个描述好的程序(算法),实现需要的功能,形成了“可计算性”概念的基础。存储程序的思想,使计算机从专用走向通用。正是这一创新,开创了计算机的新时代。Turing机特点•通用计算机:并不是保存所有问题的结果。•存储程序计算机:问题的求解由程序或过程给出,程序和过程可以通过语言描述。•有限速度:计算机执行程序的时间是有限的。•是现代计算机的鼻祖。现代计算机的里程碑年代机器名称制造者说明1834AnalyticalEngineBabbage建造数字计算机的第一次尝试1936Z1Zuse第一台使用继电器的计算机器1943COLOSSUS英国政府第一台电子计算机1944MarkIAiken第一台美国通用计算机1946ENIACIEckert/Mauchley现代计算机历史从它开始1949EDSACWilkes第一台存储程序的计算机1951WhirlwindIM.I.T.第一台实时计算机1952IASVonNeumann大多数现代计算机还用的设计1960PDP-1DEC第一台小型机(销售50台)19611401IBM非常流行的小型商用机19627094IBM60年代早期的主流科学计算用机1963B5000Burroughs面向高级语言设计的第一台计算机1964360IBM系列机的第一个产品19646600CDC第一台用于科学计算的超级计算机1965PDP-8DEC第一台占领市场的小型机(销售50,000台)1970PDP-11DEC70年代的主导小型机19748080Intel第一台在一个芯片上的8位计算机1974CRAY-1Cray第一台向量超级计算机1978VAXDEC第一台32位超级小型计算机1981IBMPCIBM开创现代个人计算机新纪元1985MIPSMIPS第一台商用RISC机1987SPARCSun第一台基于SPARC的RISC工作站1990RS6000IBM第一台超标量体系结构计算机第一台通用电子计算机ENIACElectronicNumericalandIntegrateCalculatorMauchlyandEckert设计1946年2月14日第一台通用电子计算机,设计用于计算火炮的弹道重30吨,占地15000平方英尺,18000个电子管,耗电140KW运算速度:5000次加法/秒使用十进制数20个寄存器,每个存放10位的十进制数通过设置6000个开关和其它众多的插头和插座来编程VonNeumann机IAS现代计算机结构的鼻祖:五大功能部件将程序和数据统一表示:存储器有4096个字,每个字40位。采用二进制数据:简化了存储器只提供整数运算:任何有能力的数学家都能在头脑中记住小数点的位置。第一台小型计算机:PDP-1•1957年由DEC公司生产•第二代计算机(晶体管)•18位字长,4K内存,机器周期为5微秒•售价120000美元。售出50台。•开创了计算机产业!第一个系列计算机:IBM360•第三代计算机•计算机应用:科学计算和商务处理•如何在不同的硬件平台上运行相同的软件?•系列计算机:IBM360•计算机系统结构:程序员眼中的计算机。具有相同系统结构的计算机可以运行相同的程序。•微程序控制器应用的普及:IBMPC机RISC计算机精简指令系统计算机指令系统尽量简单,复杂指令通过简单指令的组合来完成提高计算机的运行速度下一代计算机•????????运算器基本功能•完成算术、逻辑运算–+、—、、、、、。•取得操作数–寄存器组、立即数•输出、存放运算结果–寄存器组、数据总线•暂存运算的中间结果–Q寄存器、移位寄存器运算器基本功能•获得运算结果的状态–C、Z、V、S•理解、响应控制信号DatapathMemoryI/OALU功能和设计•功能–对操作数A、B完成算术逻辑运算–ADD、AND、OR•设计–算术运算•加法器–逻辑运算•与门、或门323232operationresultabALUOne-BitLogicalInstructions•Mapdirectlyontohardwarecomponents–ANDinstruction•OneofdatalinesshouldbeasimpleANDgate–ORinstruction•AnotherdatalineshouldbeasimpleORgateABC01Op(control)DefinitionAorB1AandB0COpOne-BitFullAdder•Eachbitofadditionhas–Threeinputbits:Ai,Bi,CarryIni–Twooutputbits:Sumi,CarryOuti(CarryIni+1=CarryOuti)CarryIn...(0)(1)(0)(0)(0)...00101...00110...0(0)1(1)0(0)1(0)1+InputsOutputsA:B:Sum:CarryOutFullAdder’sTruthTableSumASymbolBCarryInCarryOut+DefinitionABCarryInCarryOutSum0000000101010010111010001101101101011111CarryOut=(A’*B*CarryIn)+(A*B’*CarryIn)+(A*B*CarryIn’)+(A*B*CarryIn)=(B*CarryIn)+(A*CarryIn)+(A*B)Sum=(A’*B’*CarryIn)+(A’*B*CarryIn’)+(A*B’*CarryIn’)+(A*B*CarryIn)FullAdderCircuit(1/2)•ConstructthegatesforSum•ImplementthegatesforCarryOut•ConnectallinputswiththesamenameFullAdderCircuit(2/2)One-BitALULeastsignificantbitOtherbits数据编码与表示•计算机中要存储的数据–程序、整数、浮点数、字符(串)、逻辑值–需要编码进行表示•存储方式–用数字电路的两个状态表示–由上一层的抽象计算机来识别不同的内容•编码原则–少量简单的基本符号–一定的规则–表示大量复杂的信息基二码(二进制码)只使用两个基本符号:10符号个数最少,物理上容易实现与二值逻辑的真假两个值对应简单用二进制码表示数值数据运算规则简单数据表示二进制位可以表示任何对象:•字符–26字母=5位–大/小写+其它符号=7bits(in8)–世界上其他语言=16bits(unicode)•无符号整数(0,1,…,2n-1)•逻辑值–0-False,1=True•颜色•位置/地址/指令•但n位只能代表2n个不同的对象逻辑型数据逻辑型数据只有两个值:真和假,正好可以用二进制码的两个符号分别表示,例如1表示真则0表示假不必使用另外的编码规则。对逻辑型数据可以执行逻辑的与或非等基本逻辑运算。其规则如下:逻辑型数据基本运算规则XYX与YX或YX的非00001010111001011110字符型数据的表示字符作为人—机联系的媒介,是最重要的数据类型之一,当前的西文字符集由128个符号组成,通常用8位二进制编码,即用一个字节来表示每一个符号,当前通用的两个标准字符集是:ASCII码:即AmericanStandardCodeforInformationInterchangeUNICODE:IS10646ASCII码字符集具体编码如下表所示:ASCII字符编码集b6b5b4000001010011100101110111b3b2b1b00000NULDLESP0@P,p0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,L\l|1101CRGS-=M]m}1110SORS.N^n~1111SIUS/?O_o字符串的表示与存储字符串是指连续的一串字符,它们占据主存中连续的多个字节,每个字节存放一个字符,对一个主存字的多个字节,有按从低位到高位字节次序存放的,也有按从高位到低位字节次序存放的。表示字符串数据要给出串存放的主存起始地址和串的长度。例如:IFABTHENREAD(C)就可以有如下不同的存放方式:IFAAFIBTTB假定每个字HENNEH由4个字节READDAER组成(C))C(UNICODE编码•使用16位表示一个字符,可以表示65536个字符•将整个编码空间划分为块,每块为16的整数倍,按块进行分配。•保留6400个码点供本地化使用。•并无法覆盖所有字符。进位记数法与进制转换进位记数法N=i=mDi*irN代表一个数值r是这个数制的基(Radix)i表示这些符号排列的位号Di是位号为i的位上的一个符号ri是位号为i的位上的一个1代表的值irDi*是第i位的所代表的实际值表示m+k+1位的值求累加和-k十进制转二进制整数部分除2取余小数部分乘2取整211222521011010.625*210.25*200.5*210.0除尽为止求得位数满足要求为止低高高低从二进制数求其十进制的值,逐位码权累加求和二到八或十六进制转换二到八从小数点向左右三位一分组(10011100.01)2=(234.2)8010二到十六从小数点向左右四位一分组(10011100.01)2=(9C.4)160100说明:整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,否则出错。二—十进制编码(BCD编码)用四位二进制表示一位十进制,16个编码状态选用其中的10个编码有多种方案,例如:8421码,余3码,循环码又可区分为:有权码:每位上的1代表确定的值无权码:无法确定每位上的1代表的值00000001100000000100010100000101112001001010011011030011011000100101401000111011001005010110001110101160110100110101010701111010100010018100010111100100091001110001001111有权码无权码8421余3码循环码84-2-1如何判定码权00000101114+(-2)+(-1)201104+(-2)验证每个码的值301014+(-1)401004从一编码求码权51