第1章 计算机基础知识 当今,计算机技术的发展日新月异,计算机技术与通信技术的结合,形成计算机网络,使计算机如虎添翼,得到迅猛发展。现在的计算机不仅应用于科技,也已经应用于各行各业,包括工业、农业、文化教育、卫生保健、服务行业、社会公用事业等,走进万千普通人的家中,更为社会的发展做出了巨大的贡献。计算机应用技术的发展水平不仅反映了一个国家的计算机科学和通信技术水平,而且已经成为衡量其国力及现代化程度的重要标志之一。 1.1计算机概述 1.1.1计算机发展史 计算机的发展经历了机械式计算机、机电式计算机、电子计算机三个阶段。 17世纪,欧洲一批数学家就已开始设计和制造以数字形式进行基本运算的数字计算机。代表作品是1812年的差分机(图11),1834年的分析机(图12)。 图111812年的差分机 图121834年查尔斯·巴贝奇的分析机 20世纪以后,德国、美国、英国都在进行计算机的开拓工作,几乎同时开始了机电式计算机和电子计算机的研究。电子计算机的开拓过程,经历了从制作部件到整机,从专用机到通用机、从“外加式程序”到“存储程序”的演变。 1946年2月,美国宾夕法尼亚大学莫尔学院制成的大型电子数字积分计算机(ENIAC)(图13),重量30t,占地170m2,电子器件包含18000只电子管和1500个继电器,运算速度5000次/s。这台计算机最初也专门用于火炮弹道计算,后经多次改进而成为能进行各种科学计算的通用计算机。1946年6月,冯·诺伊曼(图14)等人提出了更为完善的设计报告《电子计算机装置逻辑结构初探》,提出了现代计算机“存储程序”和“程序控制”的概念及体系结构,70多年来,计算机系统基本结构没有变。 图13电子数字积分计算机 图14美籍匈牙利数学家冯·诺伊曼 电子计算机的发展阶段通常以构成计算机的电子器件来划分,至今已经历了电子管、晶体管、小规模集成电路和大规模集成电路四个阶段(表11)。 表11计算机发展历程 时代年份器件软件应用 一1946—1957电子管 机器语言科学计算 二1958—1964晶体管 汇编语言和高级语言数据处理、工业控制 三1965—1971集成电路 操作系统和高级语言企业管理、辅助设计及文字处理图形处理 四1971年迄今大规模集成电路 操作系统、数据库、网络等社会的各个领域 1.1.2计算机的发展方向 计算机技术的发展日新月异,但为了满足不同应用的领域的需求,其发展方向如下。 1. 巨型化 巨型机也称为超级计算机,是指高速度、大存储容量和功能强大的计算机。主要应用于国防、卫星发射、水文地理等高科技领域。巨型机的发展集中体现了计算机技术的发展水平,它可以推动多个学科的发展。它对国家安全、科学研究、经济和社会发展具有十分重要的意义,是一个国家科技发展水平和综合国力的重要标志。 2. 微型化 由于微电子技术的迅速发展,芯片的集成度越来越高,计算机的元器件越来越小,而使得计算机的计算速度快、功能强、可靠性高、能耗小、体积小、重量轻,向着微型化方向发展和向着多功能方向发展仍然是今后计算机发展的方向。 3. 网络化 计算机网络可以实现资源共享。计算机网络化能够充分利用计算机资源,进一步扩大计算机的使用范围,网络的应用已成为计算机应用的重要组成部分,现代的网络技术已成为计算机技术中不可缺少的内容。 4. 智能化 智能化是未来计算机发展的总趋势。智能化是指计算机能够模拟人的感觉和思维能力,具有解决问题和逻辑推理的能力。这种计算机除了具备现代计算机的功能之外,还要具有在某种程度上模仿人的推理、联想、学习等思维功能,并具有声音识别、图像识别能力。目前,人工智能已应用于机器人研发、医疗诊断、故障诊断、计算机辅助教育、案件侦破、经营管理等方面。 5. 多媒体技术应用 多媒体技术是集文字、声音、图形、图像和计算机于一体的综合技术。它以计算机软硬件技术为主体,包括数字化信息技术、音频和视频技术、通信和图像处理技术以及人工智能技术和模式识别技术等。多媒体技术拓宽了计算机的应用领域,使计算机广泛应用于商业、教育、文化娱乐等方面。同时,多媒体技术与人工智能技术的有机结合还促进了虚拟现实(Virtual Reality)、虚拟制造(Virtual Manufacturing)技术的发展,使人们可以在虚拟的环境中感受真实的场景,通过计算机仿真制造零件和产品,感受产品各方面的功能与性能。 6. 嵌入式系统 嵌入式系统是指以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗环境等)灵活裁剪软硬件模块的专用计算机系统。例如,在工业制造系统中有许多特殊的计算机,都是把处理器芯片嵌入其中,完成特定的处理任务。数码相机、数码摄像机以及高档电动玩具等都使用了不同功能的处理器,在许多智能家电中也应用了嵌入式系统。 7. 非冯·诺依曼体系结构的计算机——新一代计算机 非冯·诺依曼体系结构是提高现代计算机性能的另一个研究焦点。人们经过长期的探索,进行了大量的试验研究后,一致认为冯·诺依曼的传统体系结构虽然为计算机的发展奠定了基础,但是其“程序存储和控制”原理表现在“集中顺序控制”方面的串行机制,却成为进一步提高计算机性能的瓶颈,而提高计算机性能的方向之一是并行处理。因此许多非冯·诺依曼体系结构的计算机理论出现了。新一代计算机无论是体系结构、工作原理,还是器件及制造技术,都应该进行颠覆性变革,目前有可能应用的技术有纳米技术、光技术、生物技术和量子技术等。 (1) 量子计算机: 量子计算机(Quantum Computer)是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。量子计算机的特点主要有运行速度较快、处置信息能力较强、应用范围较广等。与一般计算机比较起来,信息处理量愈多,对于量子计算机实施运算也就愈加有利,也就更能确保运算具备精准性。2021年2月8日,中科院量子信息重点实验室的科技成果转化平台合肥本源量子科技公司,发布具有自主知识产权的量子计算机操作系统“本源司南”。专家表示,经测试该操作系统能数倍提升现有量子计算机的运行效率。 (2) 光子计算机: 现有的计算机是由电子来传递和处理信息。光子计算机是一种由光信号进行数字运算、逻辑操作、信息存储和处理的新型计算机。它由激光器、光学反射镜、透镜、滤波器等光学元件和设备构成,靠激光束进入反射镜和透镜组成的阵列进行信息处理,以光子代替电子,光运算代替电运算。光的并行、高速,天然地决定了光子计算机的并行处理能力很强,具有超高运算速度。光子计算机还具有与人脑相似的容错性,系统中某一元件损坏或出错时,并不影响最终的计算结果。光子在光介质中传输所造成的信息畸变和失真极小,光传输、转换时能量消耗和散发热量极低,对环境条件的要求比电子计算机低得多。随着现代光学与计算机技术、微电子技术相结合,在不久的将来,光子计算机将成为人类普遍的工具。 (3) 分子计算机: 分子计算就是尝试利用分子计算的能力进行信息的处理。分子计算机的运行靠的是分子晶体吸收以电荷形式存在的信息,并以更有效的方式进行组织排列。凭借着分子纳米级的尺寸,分子计算机的体积将剧减。此外,分子计算机耗电可大大减少,并能更长期地存储大量数据。 (4) 纳米计算机: 纳米是一个计量单位,采用纳米技术生产芯片成本十分低廉,它既不需要建设超洁净生产车间,也不需要昂贵的实验设备和庞大的生产队伍,只要在实验室里将设计好的分子合在一起,就可以造出芯片,大大降低了生产成本。 (5) 生物计算机: 生物计算机也称仿生计算机,主要原材料是生物工程技术产生的蛋白质分子,并以此作为生物芯片来替代半导体硅片,利用有机化合物存储数据。信息以波的形式传播,当波沿着蛋白质分子链传播时,会引起蛋白质分子链中单键、双键结构顺序的变化。运算速度要比当今最新一代计算机快10万倍,它具有很强的抗电磁干扰能力,并能彻底消除电路间的干扰。能量消耗仅相当于普通计算机的十亿分之一,且具有巨大的存储能力。生物计算机具有生物体的一些特点,如能发挥生物本身的调节机能,自动修复芯片上发生的故障,还能模仿人脑的机制等。 (6) 超导计算机: 超导计算机是利用超导技术生产的计算机及其部件,其开关速度达到几微微秒,运算速度比现在的电子计算机快,电能消耗量少。超导计算机对人类文明的发展可以起到极大作用。超导计算机运算速度比现在的电子计算机快100倍,而电能消耗仅是电子计算机的千分之一,如果目前一台大中型计算机,每小时耗电10kW,那么,同样一台的超导计算机只需一节干电池就可以工作了。 新一代计算机是把信息采集、存储、处理、通信同人工智能结合在一起的智能计算机系统。它不仅能进行数值计算或处理一般的信息,而且主要面向知识处理,具有形式化推理、联想、学习和解释的能力,能够帮助人们进行判断、决策、开拓未知的领域和获取新的知识。人机之间可以直接通过自然语言(声音、文字)或图形图像交换信息。新一代计算机系统又称第五代计算机系统。新一代计算机系统是为适应未来社会信息化的要求而提出的,与前四代计算机有着质的区别。可以认为,它是计算机发展史上的一次重大变革,将广泛应用于未来社会生活的各个方面。 1.1.3中国计算机的发展 中国计算机发展历史: 1958年,中科院计算所成功研制我国第一台小型电子管通用计算机103机(八一型),标志着我国第一台电子计算机的诞生。 1965年,中科院计算所成功研制第一台大型晶体管计算机109乙,之后推出109丙机,该机在两弹试验中发挥了重要作用。 1974年,清华大学等单位联合设计成功研制采用集成电路的DJS130小型计算机,运算速度达每秒100万次。 1983年,国防科技大学成功研制运算速度每秒上亿次的银河Ⅰ巨型机,这是我国高速计算机研制的一个重要里程碑。 1985年,电子工业部计算机管理局成功研制与IBM PC兼容的长城0520CH微机。 1992年,国防科技大学研制出银河Ⅱ通用并行巨型机,峰值速度达每秒4亿次浮点运算(相当于每秒10亿次基本运算操作),为共享主存储器的四处理机向量机,其向量中央处理机是采用中小规模集成电路自行设计的,总体上达到1980年代中后期国际先进水平。它主要用于中期天气预报。 1993年,国家智能计算机研究开发中心(后成立北京市曙光计算机公司)研制成功曙光一号全对称共享存储多处理机,这是国内首次以基于超大规模集成电路的通用微处理器芯片和标准UNIX操作系统设计开发的并行计算机。 1995年,曙光公司又推出了国内第一台具有大规模并行处理机(MPP)结构的并行机曙光1000(含36个处理机),峰值速度每秒25亿次浮点运算,实际运算速度上了每秒10亿次浮点运算这一高性能台阶。曙光1000与美国Intel公司1990年推出的大规模并行机体系结构与实现技术相近,与国外的差距缩小到5年左右。 1997年,国防科大研制成功银河Ⅲ百亿次并行巨型计算机系统,采用可扩展分布共享存储并行处理体系结构,由130多个处理节点组成,峰值性能为每秒130亿次浮点运算,系统综合技术达到1990年代中期国际先进水平。 1997至1999年,曙光公司先后在市场上推出具有集群结构(Cluster)的曙光1000A,曙光2000Ⅰ,曙光2000Ⅱ超级服务器,峰值计算速度已突破每秒1000亿次浮点运算,机器规模已超过160个处理机。 1999年,国家并行计算机工程技术研究中心研制的神威Ⅰ计算机通过了国家级验收,并在国家气象中心投入运行。系统有384个运算处理单元,峰值运算速度达每秒3840亿次。 2000年,曙光公司推出每秒3000亿次浮点运算的曙光3000超级服务器。 2001年,中科院计算所研制成功我国第一款通用CPU——“龙芯”芯片。 2002年,曙光公司推出完全自主知识产权的“龙腾”服务器,龙腾服务器采用了“龙芯1”CPU,采用了曙光公司和中科院计算所联合研发的服务器专用主板,采用曙光Linux操作系统,该服务器是国内第一台完全实现自有产权的产品,在国防、安全等部门将发挥重大作用。 2003年,百万亿次数据处理超级服务器曙光4000L通过国家验收,再一次刷新国产超级服务器的历史纪录,使得国产高性能产业再上新台阶。 2004年,由中科院计算所、曙光公司、上海超级计算中心三方共同研发制造的曙光44000A实现了每秒10万亿次运算速度。 2008年,深腾7000是国内第一个实际性能突破每秒百万亿次的异构机群系统,Linkpack性能突破每秒106.5万亿次。 2008年,曙光5000A实现峰值速度每秒230万亿次、Linkpack值每秒180万亿次。作为面向国民经济建设和社会发展的重大需求的网格超级服务器,曙光5000A可以完成各种大规模科学工程计算、商务计算。 2009年10月29日,中国首台千万亿次超级计算机天河一号诞生。这台计算机每秒1206万亿次的峰值速度和每秒563.1万亿次的Linkpack实测性能,使中国成为继美国之后世界上第二个能够研制千万亿次超级计算机的国家。 2010年11月,天河一号曾以每秒4.7千万亿次的峰值速度,让中国人首次站到了超级计算机的全球最高领奖台上。 2013年6月17日国际TOP500组织公布了最新全球超级计算机500强排行榜榜单,中国国防科学技术大学研制的“天河二号”以每秒33.86千万亿次的浮点运算速度,成为全球最快的超级计算机。此次是继天河一号之后,中国超级计算机再次夺冠。 2014年6月23日公布的全球超级计算机500强榜单中,中国“天河二号”以比第二名美国“泰坦”快近一倍的速度连续第三次获得冠军。 2016年6月,由国家并行计算机工程技术研究中心研制的“神威·太湖之光”超级计算机实测运算速度最高可达12.54亿亿次/秒,成为世界上第一台突破10亿亿次/秒的超级计算机,创造了速度、持续性、功耗比三项指标世界第一的纪录。 2017年6月19日,全球超级计算机500强榜单公布,“天河二号”以每秒3.39亿亿次的浮点运算速度排名第二。 2017年11月13日中国超级计算机“神威·太湖之光”和“天河二号”连续第四次分列冠亚军,且中国超级计算机上榜总数又一次反超美国,夺得第一。 1.1.4计算机的特点 1. 处理速度快 现在普通的微型计算机每秒可执行几十万条指令,而巨型机则达到每秒几十亿次甚至几百亿次。随着计算机技术的发展,计算机的运算速度还在提高。例如天气预报,由于需要分析大量的气象资料数据,单靠手工完成计算是不可能的,而用巨型计算机只需十几分钟就可以完成。这种高速度可以在军事、气象、金融、通信等领域中实现实时、快速的服务。 2. 计算精度高 电子计算机具任何计算机工具都无法比拟的计算精度,目前已达到小数点后上亿位的精度。 3. 具有超强的存储功能 计算机的存储系统由内存和外存组成,具有存储和“记忆”大量信息的能力,现代计算机的内存容量已达到上百兆甚至几千兆,而外存也有惊人的容量。 4. 具有逻辑判断功能 计算机借助于逻辑运算,可以进行逻辑判断,并根据判断结果自动地确定下一步该做什么,实现推理和证明。记忆功能、算术运算和逻辑判断功能相结合,使得计算机能模仿人类的某些智能活动,成为人类脑力延伸的重要工具,所以计算机又称为“电脑”。 5. 可靠性高 随着微电子技术和计算机技术的发展,现代电子计算机连续无故障运行时间可达到几十万小时以上,具有极高的可靠性。例如,安装在宇宙飞船上的计算机可以连续几年时间可靠地运行。计算机应用在管理中也具有很高的可靠性,而人却很容易因疲劳而出错。另外,计算机对于不同的问题,只是执行的程序不同,因而具有很强的稳定性和通用性。用同一台计算机能解决各种问题,应用于不同的领域。 6. 能自动运行且支持人机交互 所谓自动运行,就是人们把需要计算机处理的问题编成程序,存入计算机中: 当发出运行指令后,计算机便在该程序控制下依次逐条执行,不再需要人工干预。“人机交互”则是在人想要干预时,采用“人机之间一问一答”的形式,有针对性地解决问题。这些特点都是过去的计算工具所不具备的。 1.1.5计算机的应用领域 计算机的应用领域已渗透到社会的各行各业,正在改变着传统的工作、学习和生活方式,推动着社会的发展。计算机的主要应用领域如下: 1. 科学计算(或数值计算) 科学计算是指利用计算机来完成科学研究和工程技术中提出的数学问题的计算。在现代科学技术工作中,科学计算问题是大量的和复杂的。利用计算机的高速计算、大存储容量和连续运算的能力,可以实现人工无法解决的各种科学计算问题。 2. 数据处理(或信息处理) 数据处理是指对各种数据进行收集、存储、整理、分类、统计、加工、利用、传播等一系列活动的统称。据统计,80%以上的计算机主要用于数据处理,这类工作量大面宽,决定了计算机应用的主导方向。 目前,数据处理已广泛地应用于办公自动化、企事业计算机辅助管理与决策、情报检索、图书管理、电影电视动画设计、会计电算化等各行各业。信息正在形成独立的产业,多媒体技术使信息展现在人们面前的不仅是数字和文字,也有声情并茂的声音和图像信息。 3. 辅助技术(或计算机辅助设计与制造) 计算机辅助技术包括CAD、CAM和CAI等。 (1) 计算机辅助设计(Computer Aided Design,CAD): 计算机辅助设计是利用计算机系统辅助设计人员进行工程或产品设计,以实现最佳设计效果的一种技术。它已广泛地应用于飞机、汽车、机械、电子、建筑和轻工等领域。例如,在电子计算机的设计过程中,利用CAD技术进行体系结构模拟、逻辑模拟、插件划分、自动布线等,从而大大提高了设计工作的自动化程度。又如,在建筑设计过程中,可以利用CAD技术进行力学计算、结构计算、绘制建筑图纸等,这样不但提高了设计速度,而且可以大大提高设计质量。 (2) 计算机辅助制造(Computer Aided Manufacturing,CAM): 计算机辅助制造是利用计算机系统进行生产设备的管理、控制和操作的过程。例如,在产品的制造过程中,用计算机控制机器的运行,处理生产过程中所需的数据,控制和处理材料的流动以及对产品进行检测等。使用CAM技术可以提高产品质量,降低成本,缩短生产周期,提高生产率和改善劳动条件。 将CAD和CAM技术集成,实现设计生产自动化,这种技术被称为计算机集成制造系统(CIMS)。它的实现将真正做到无人化工厂(或车间)。 (3) 计算机辅助教学(Computer Aided Instruction,CAI): 计算机辅助教学是利用计算机系统使用课件来进行教学。课件可以用著作工具或高级语言来开发制作,它能引导学生循环渐进地学习,使学生轻松自如地从课件中学到所需要的知识。CAI的主要特色是交互教育、个别指导和因人施教。 4. 过程控制(或实时控制) 过程控制是利用计算机及时采集检测数据,按最优值迅速地对控制对象进行自动调节或自动控制。采用计算机进行过程控制,不仅可以大大提高控制的自动化水平,而且可以提高控制的及时性和准确性,从而改善劳动条件、提高产品质量及合格率。因此,计算机过程控制已在机械、冶金、石油、化工、纺织、水电、航天等部门得到广泛的应用。 例如,在汽车工业方面,利用计算机控制机床、控制整个装配流水线,不仅可以实现精度要求高、形状复杂的零件加工自动化,而且可以使整个车间或工厂实现自动化。 5. 人工智能(或智能模拟) 人工智能(Artificial Intelligence)是计算机模拟人类的智能活动,诸如感知、判断、理解、学习、问题求解和图像识别等。现在人工智能的研究已取得不少成果,有些已开始走向实用阶段。例如,能模拟高水平医学专家进行疾病诊疗的专家系统,具有一定思维能力的智能机器人等。 6. 网络应用 计算机技术与现代通信技术的结合构成了计算机网络。计算机网络的建立,不仅解决了一个单位、一个地区、一个国家中计算机与计算机之间的通信,各种软、硬件资源的共享,也大大促进了国际间的文字、图像、视频和声音等各类数据的传输与处理。 1.1.6计算机的分类 计算机发展到今天,已是琳琅满目、种类繁多,并表现出各自不同的特点。可以从不同的角度对计算机进行分类。 1. 按计算机信息的表示形式和对信息的处理方式不同分类 分为数字计算机(Digital Computer)、模拟计算机(Analogue Computer)和混合计算机。 数字计算机处理的数据都是以0和1表示的二进制数字,是不连续的离散数字,具有运算速度快、准确、存储量大等优点,因此适宜科学计算、信息处理、过程控制和人工智能等,具有最广泛的用途。 模拟计算机处理的数据是连续的,称为模拟量。模拟量以电信号的幅值来模拟数值或某物理量的大小,如电压、电流、温度等都是模拟量。模拟计算机解题速度快,适于解高阶微分方程,在模拟计算和控制系统中应用较多。 混合计算机则是集数字计算机和模拟计算机的优点于一身。 2. 按计算机的用途分类 分为通用计算机(General Purpose Computer)和专用计算机(Special Purpose Computer)。 通用计算机广泛适用于一般科学运算、学术研究、工程设计和数据处理等,具有功能多、配置全、用途广、通用性强的特点,市场上销售的计算机多属于通用计算机。 专用计算机是为适应某种特殊需要而设计的计算机,通常增强了某些特定功能,忽略一些次要要求,所以专用计算机能高速度、高效率地解决特定问题,具有功能单纯、使用面窄甚至专机专用的特点。模拟计算机通常都是专用计算机,在军事控制系统中被广泛地使用,如飞机的自动驾驶仪和坦克上的兵器控制计算机。本书内容主要介绍通用数字计算机,平常所用的绝大多数计算机都是该类计算机。 3. 按计算机的规模和处理能力大小分类 计算机按其运算速度快慢、存储数据量的大小、功能的强弱,以及软硬件的配套规模等不同又分为巨型机、大中型机、小型机、微型机、工作站与服务器等。 1) 巨型机 巨型机(Giant Computer)又称超级计算机(Super Computer),是指运算速度超过每秒1亿次的高性能计算机,它是目前功能最强、速度最快、软硬件配套齐备、价格最贵的计算机,主要用于解决诸如气象、太空、能源、医药等尖端科学研究和战略武器研制中的复杂计算。它们安装在国家高级研究机关中,可供几百个用户同时使用。 运算速度快是巨型机最突出的特点。如美国Cray公司研制的Cray系列机中,CrayYMP运算速度为每秒20~40亿次,我国自主生产研制的银河Ⅲ巨型机为每秒100亿次,IBM公司的GF11可达每秒115亿次,日本富士通公司研制了每秒可进行3000亿次科技运算的计算机。最近我国研制的曙光4000A运算速度可达每秒10万亿次。世界上只有少数几个国家能生产这种机器,它的研制开发是一个国家综合国力和国防实力的体现。 2) 大中型机 大中型机(LargeScale Computer and MediumScale Computer)有很高的运算速度和很大的存储量并允许相当多的用户同时使用。当然在量级上都不及巨型机,结构上也较巨型机简单些,价格相对巨型机来得便宜,因此使用的范围较巨型机普遍,是事务处理、商业处理、信息管理、大型数据库和数据通信的主要支柱。大中型机通常都像一个家族一样形成系列,如IBM370系列、DEC公司生产的VAX8000系列、日本富士通公司的M780系列。同一系列的不同型号的计算机可以执行同一个软件,称为软件兼容。 3) 小型机 小型机(Minicomputer)规模和运算速度比大中型机要差,但仍能支持十几个用户同时使用。小型机具有体积小、价格低、性能价格比高等优点,适合中小企业、事业单位用于工业控制、数据采集、分析计算、企业管理以及科学计算等,也可做巨型机或大中型机的辅助机。典型的小型机是美国DEC公司的PDP系列计算机、IBM公司的AS/400系列计算机、我国的DJS130计算机等。 4) 微型机 微型机(Microcomputer)简称微机,是当今使用最普及、产量最大的一类计算机,体积小、功耗低、成本少、灵活性大,性能价格比明显地优于其他类型计算机,因而得到了广泛应用。 微型机可以按结构和性能划分为单片机、单板机、个人计算机等几种类型。 (1) 单片机(Single Chip Computer)。 把微处理器、一定容量的存储器以及输入输出接口电路等集成在一个芯片上,就构成了单片机。可见单片机仅是一片特殊的、具有计算机功能的集成电路芯片。单片机体积小、功耗低、使用方便,但存储容量较小,一般用做专用机或用来控制高级仪表、家用电器等。 (2) 单板机(Single Board Computer)。 把微处理器、存储器、输入输出接口电路安装在一块印制电路板上,就成为单板计算机。一般在这块板上还有简易键盘、液晶和数码管显示器以及外存储器接口等。单板机价格低廉且易于扩展,广泛用于工业控制、微型机教学和实验,或作为计算机控制网络的前端执行机。 (3) 个人计算机(Personal Computer,PC)。 供单个用户使用的微型机一般称为个人计算机或PC,是目前用得最多的一种微型计算机。PC配置有一个紧凑的机箱、显示器、键盘、打印机以及各种接口,可分为台式微机和便携式微机。 台式微机可以将全部设备放置在书桌上,因此又称为桌面型计算机。当前流行的机型有IBMPC系列,Apple公司的Macintosh,我国生产的长城、浪潮、联想系列计算机等。 便携式微机包括笔记本计算机、袖珍计算机以及个人数字助理(Personal Digital Assistant,PDA)。便携式微机将主机和主要外部设备集成为一个整体,显示屏为液晶显示,可以直接用电池供电。 5) 工作站 工作站(Workstation)是介于PC和小型机之间的高档微型计算机,通常配备有大屏幕显示器和大容量存储器,具有较高的运算速度和较强的网络通信能力,有大型机或小型机的多任务和多用户功能,同时兼有微型计算机操作便利和人机界面友好的特点。工作站的独到之处是具有很强的图形交互能力,因此在工程设计领域得到广泛使用。Sun、HP、SGI等公司都是著名的工作站生产厂家。 6) 服务器 随着计算机网络的普及和发展,一种可供网络用户共享的高性能计算机应运而生,这就是服务器。服务器一般具有大容量的存储设备和丰富的外部接口,运行网络操作系统,要求较高的运行速度,为此很多服务器都配置双CPU。服务器常用于存放各类资源,为网络用户提供丰富的资源共享服务。常见的资源服务器有域名解析(Domain Name System,DNS)服务器、电子邮件(Email)服务器、Web服务器、电子公告板(Bulletin Board System,BBS)服务器等。 1.1.7计算机的主要性能指标 在购买个人计算机时,商家必须要提供一个报价单,上面要有主要部件的型号及性能指标,那么,计算机主要的性能指标有哪些呢? 一台微型计算机功能的强弱或性能的好坏,不是由单项指标来决定的,而是由它的系统结构、指令系统、硬件组成、软件配置等多方面的因素综合决定的。但对于大多数普通用户来说,可以从以下几个指标来大体评价计算机的性能。 1. 运算速度 运算速度是衡量计算机性能的一项重要指标。通常所说的计算机运算速度(平均运算速度),是指每秒钟所能执行的指令条数,一般用“百万条指令/秒”(Million Instruction Per Second,MIPS)来描述。同一台计算机,执行不同的运算所需时间可能不同,因而对运算速度的描述常采用不同的方法。常用的有CPU时钟频率(主频)、每秒平均执行指令数(ips)等。微型计算机一般采用主频来描述运算速度,例如,Pentium/133的主频为133MHz,PentiumⅢ/800的主频为800MHz,Pentium 4 1.5G的主频为1.5GHz。一般说来,主频越高,运算速度就越快。 2. 字长 一般说来,计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长”。在其他指标相同时,字长越大计算机处理数据的速度就越快。早期的微型计算机的字长一般是8位和16位。386以及更高的处理器大多是32位。现在市面上的计算机的处理器大部分已达到64位。 3. 存储容量 存储容量表示存储设备存储信息的能力,一般分为内存容量和外存容量。 (1) 内存储器的容量。内存储器,也简称主存,是CPU可以直接访问的存储器,需要执行的程序与需要处理的数据就是存放在主存中的。内存储器容量的大小反映了计算机即时存储信息的能力。随着操作系统的升级,应用软件的不断丰富及其功能的不断扩展,人们对计算机内存容量的需求也不断提高。内存容量越大,系统功能就越强大,能处理的数据量就越庞大。 (2) 外存储器的容量。外存储器容量通常是指硬盘容量(包括内置硬盘和移动硬盘)。外存储器容量越大,可存储的信息就越多,可安装的应用软件就越丰富。目前,常见的硬盘容量一般为500GB、750GB、1TB~16TB; 主流硬盘各参数如下: SATA 3.0接口,容量为2TB~8TB,缓存为64MB、256MB。 (3) 常用的存储容量单位。 比特(bit): 是表示信息的最小单位,用1位二进制数表示的信息,即1或0,用b做单位。 字节(byte): 信息存储的最小单位。一个存储单元,只能存储1字节的二进制数,用B做单位。 1B=8b 随着计算机技术的发展,计算机的存储容量不断的增大,原有的存储单位已不能满足要求,目前常用的存储单位有千字节(KB)、兆字节(MB)、吉字节(GB)、太字节(TB)。 换算关系为: 1KB=210B=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB 以上只是一些主要性能指标。除了上述这些主要性能指标外,微型计算机还有其他一些指标,例如,所配置外围设备的性能指标以及所配置系统软件的情况等。另外,各项指标之间也不是彼此孤立的,在实际应用时,应该把它们综合起来考虑,而且还要遵循“性能价格比”的原则。 1.2计算机的信息表示 1.2.1计算机中的数制 所有信息在计算机中均以二进制形式表示,但二进制不直观,所以日常使用阿拉伯数字称为十进制,除此之外在计算机语言中,还要经常用其他数制表示,在计算机中还有八进制、十六进制等。 1. 数制 数制是指数据的表示方法,主要有进位规则和数码两部分构成。 数制的特点: 每种进位计数制都有固定的数码,按基数进位或借位,用位权来计数。 数制的基数: 每种进位计数制中数码的个数称为基数。 (1) 二进制。二进制的数码有2个,0或1,基数为2。 进位规则: 逢二进一。 二进制的加法: 0+0=00+1=1+0=1 1+1=10(进位1,表示为2) 二进制的乘法: 0×0=01×0=0×1=01×1=1 (2) 十进制。 十进制的数码有10个,0,1,2,…9,基数为10。 进位规则: 逢十进一。 (3) 八进制。 八进制的数码有8个,0,1,2,…7,基数为8。 进位规则: 逢八进一。 (4) 十六进制。 十六进制的数码有16个,0,1,2,…9,A,B,C,D,E,F,基数为16。 进位规则: 逢十六进一。 各种进位制之间的关系如表12所示。 表12各种进位制之间的关系 十进制二进制八进制十六进制十进制二进制八进制十六进制 000081000108 111191001119 2102210101012A 3113311101113B 41004412110014C 51015513110115D 61106614111016E 71117715111117F 2. 位权值 在进位记数制中数码所处的位置不同,代表的数值大小也不同。 对每一个数位赋予的位值,在数学上叫“权”。 位权与基数的关系是: 位权的值等于基数的若干次幂。 例如,十进制1234.5可以展开为下面多项式的和。 1234.5=1×103+2×102+3×101+4×100+5×10-1 注意: 幂数,即数码的位置。从小数点左右分,小数点左侧从0开始,右侧从负1开始。 3. 进位制的表示方法 为了区分各种计数制的数,常采用如下方法: 1) 数字后面加写相应的英文字母 B(Binary)——表示二进制数。二进制数的1010可写成1010B。 O(Octonary)——表示八进制数。八进制数的1010可写成1010O。 D(Decimal)——表示十进制数。十进制数的1010可写成1010D。一般约定D可省略,即无后缀的数字为十进制数字。 H(Hexadecimal)——表示十六进制数。十六进制数的1001可写成1001H。 2) 在括号外面加数字下标 (101)2——表示二进制数的101。 (37)8——表示八进制数的37。 (1688)10——表示十进制数的1688。 (3AF)16——表示十六进制数的3AF。 4. 进位制之间的转换 设R表示二进制数、八进制数、十进制数。 1) 十进制数转换为R进制 规则: 整数部分: 除R取余数,余数倒序写。小数部分: 乘R取整数,整数顺序写。 (13.6875)10=(?)2 用除2取余法,求出整数13对应的二进制。 (13)10=(1101)2 用乘2取整法,求出0.6875对应的二进制。 0.6875×2=1.375……取出整数1 高 0.375×2=0.75……取出整数0 0.75×2=1.50…取出整数1 0.5×2=1.00……取出整数1 低 ∴(0.6875)10 =(0.1011)2 (13.6875)10=(1101.1011)2 十进制数转换为其他进位制类似,请读者仿照上例自行练习。 2) R进制转换为十进制数 规则: 本位数码乘权的和。 【例11】(10101)2=24+22+20=21 (101.11)2=22+20+2-1+2-2=5.75 (101)8=82+80=65 (101A)16=163+161+160*10=4122 3) 二进制数与八、十六进制数间的转换。 (1) 八进制数、十六进制数转换为二进制数。 规则: 每位八进制数可用3位二进制数表示,八进制最大数码为7,7D=111B。 (7123)8=(111001010011) 2 7123 每位十六进制数可用4位二进制数表示,十六进制最大数码为F,0FH=1111B。 二进制数转换为十六进制数时,从小数点左右分,每四位为一组,将各组数码转换为二进制数。 (2C1D)16=(0010110000011101)2 2C 1 D (2) 二进制数转换为八进制数、十六进制数。 二进制数转换为八进制数时,从小数点左右分,每三位为一组,不足位添零,三位二进制数可用一位八进制数表示,将各位数码转换为二进制数。 (001 101 101 110. 110 101 )2=(1556.65) 8 1 5 566 5 二进制数转换为十六进制数时,从小数点左右分,每四位为一组,不足位添零,四位二进制数可用一位十六进制数表示,将各位数码转换为二进制数。 (0011 0110 1110.11010100)2=(36E.D4)16 36 E .D 4 5. 用计算机中的计算器进行数制之间的转换 图15计算器初始界面 通过上述讲解,我们了解了计算机中的数制及其转换方法。在Windows 10操作系统中提供了计算器的应用程序,我们利用它可以方便地进行各进位制的转换。 计算器初始界面如图15所示。单击按钮,选择“程序员”模式,如图16所示,进入“程序员”模式计算器,如图17所示。其中DEC是十进制按钮,HEX是十六进制按钮,BIN是二进制按钮,OCT是八进制按钮。 例如将十进制的789转换为十六进制数。先单击DEC按钮,通过键盘输入789。单击HEX单选按钮,则文本框上的结果即为十进制789的十六进制值,如图18所示,单击BIN单选按钮,则文本框上的结果即为十进制789的二进制值,如图19所示。 其他进位制之间的转换类似,请读者自行练习。 图16选择“程序员”模式 图17“程序员”模式计算器界面 图18将十进制数789转换为十六进制数 图19将十进制数789转换为二进制数 1.2.2字符编码 字符是计算机中使用最多的信息形式之一,也是人与计算机通信的重要媒介。字符包括字母、数字及专门的符号,将字符变为指定的二进制符号称为二进制编码。在计算机内部,要为每个字符指定一个确定的编码,作为识别与使用这些字符的依据。 1. ASCII码 目前计算机中使用最广泛的符号编码是ASCII码,即美国标准信息交换码(American Standard Code for Information Interchange)。ASCII包括32个通用控制字符、10个十进制数码、52个英文大小写字母和34个专用符号,共128=27个元素,故需要用7位二进制数进行编码,以区分每个字符。通常使用一字节(即8个二进制位)表示一个ASCII码字符,规定其最高位总是0。常用的ASCII码见表13。 表13常用的ASCII码编码表 类型字符对应的十进制数对应的十六进制数 阿拉伯数字0~948~5730H~39H 大写英文字母A~Z65~9041H~5AH 小写英文字母a~z97~12261H~7AH ASCII码中从小到大排序: ①控制符②数字③大写字母④小写字母。 【例12】已知三个字符为: a、Z和8,按它们的ASCII码值升序排序,结果是(C)。 A. 8,a,ZB. a,Z,8 C. 8,Z,aD. a,8,Z 【例13】比较字符大小实际是比较它们的ASCII码值,正确的比较是(B)。 A. A比B大 B.H比h小 C. F比D小 D. 9比D大 2. BCD码 BCD码(BinaryCoded Decimal)码又称“二十进制编码”,专门解决用二进制数表示十进制数的问题。二十进制编码方法很多,有8421码、2421码、5211码、余3码、右移码等。最常用的是8421编码,其方法是用4位二进制数表示一位十进制数,自左至右每一位对应的位权是8、4、2、1。应该指出的是,4位二进制数有0000~1111共16种状态,而十进制数0~9只取0000~1001共10种状态,其余6种不同。 由于BCD码中的8421编码应用最广泛,所以经常将8421编码混称为BCD码,也为人们所接受。写出十进制数6803的8421编码。 十进制数6803的8421编码: 0110100000000011 由于需要处理的数字符号越来越多,为此又出现“标准六位BCD码”和八位的“扩展BCD码”(EBCDIC码)。 1.2.3汉字编码 在我国推广应用计算机,必须使其具有汉字信息处理能力。对于这样的计算机系统,除了配备必要的汉字设备和接口外,还应该装配有支持汉字信息输入、输出和处理的操作系统。 汉字也是一种字符,但它远比西文字符量多且复杂,常用的汉字就有3000~5000个,显然无法用一个字节的编码来区分。所以,汉字通常用两个字节进行编码。1981年我国公布的《通用汉字字符集(基本集)及其交换码标准》GB 2312—1980,共收集了7445个图形字符,其中汉字字符6763个,并分为两级,即常用的一级汉字3755个(按汉语拼音排序)和次常用汉字3008个(按偏旁部首排序),其他图形符号682个。为了直接用计算机键盘输入汉字,必须为汉字设计相应的编码,以满足计算机处理汉字的需要。 1. 区位码 用一串数字代表一个汉字,最常用的是国标区位码,它实际上是国标码的一种简单变形。把GB 2312—1980全部字符集分为94区,其中,1~15区是字母、数字和图形符号区,16~55区是一级汉字区,56~87区是二级汉字和偏旁部首区,每个区又分为94位,编号也是从01~94。这样,每一个字符便具有一个区码和一个位码,区码和位码的编码范围为0~94。将区码置前、位码置后,组合在一起就成为区位码。例如,汉字“大”字在20区第83位,它的国标区位码为2083。在选择区位码作为汉字输入码时,只要键入2083,便输入了“大”字。 2. 国标码 GB 2312—1980编码简称国标码,它规定每个图形字符由两个7位二进制编码表示,即每个编码需要占用两个字节,每个字节内占用7位信息,最高位补0。 国标码与区位码是一一对应的。可以这样认为: 区位码是十进制表示的国标码,国标码是十六进制表示的区位码。区位码转换为国标码: 将某个汉字的区码和位码分别转换成十六进制后再分别加2·0·H·。 区位码(转换成十六进制)+2020H=国标码 例如,“大”的区位码为2083,即 20(区号) 83(位号),将其转换为国标码: 2083 (十进制)→1453H(十六进制) 1453H+2020H=3473H 故汉字“大”的区位码为2083,其国标码为3473H。 【例14】已知某汉字的区位码是1221,则其国标码是(D)。 A. 7468D B. 3630H C. 3658H D. 2C35H 解析: 1212 (十进制)→0C15H(十六进制),区码和位码分别转换为十六进制。 0C15H+2020H=2C35H 3. 汉字机内码 汉字机内码是汉字在计算机内部存储、处理和传输用的信息代码,要求它与ASCII码兼容但又不能相同,以便实现汉字和西文的并存兼容。通常将国标码两个字节的最高位置1作为汉字的内码。机内码是汉字最基本的编码,不管是什么汉字系统和汉字输入方法,输入的汉字外码到机器内部都要转换成机内码,才能被存储和进行各种处理。 国标码转换为机内码等于国标码加8080H,国标码的范围: 2121H~7E7EH。 国标码+8080H=机内码 【例15】汉字“大”的国标码为3473H,其机内码为3473H+8080H=B4F3H。 【例16】已知一汉字的国标码是5E48H,则其内码应该是(B)。 A. DE48H B. DEC8H C. 5EC8H D. 7E68H 解析: 5E48H+8080H=DEC8H。 4. 汉字输入码 在计算机系统处理汉字时,首先遇到的问题是如何输入汉字。汉字输入码又称为外码,是指从键盘输入汉字时采用的编码,主要有以下几类: 使用区位码输入汉字或字符,方法简单并且没有重码,但是用户不可能把区位码背诵下来,查找区位码也不方便,所以难以实现快速输入汉字或字符,通常仅用于输入一些特殊字符或图形符号。 (1) 拼音码。以汉字的汉语拼音为基础,以汉字的汉语拼音或其一定规则的缩写形式为编码元素的汉字输入码统称为拼音码,由于汉字同音字较多,因此重码率较高,输入速度较慢。 (2) 字形码。 指以汉字的形状结构及书写顺序特点为基础,按照一定的规则对汉字进行拆分,从而得到若干具有特定结构特点的形状,然后以这些形状为编码元素“拼形”而成汉字的汉字输入码统称为形码。常用的五笔字型码和表形码就是采用这种编码方法。 (3) 音形码。这是一类兼顾汉语拼音和形状结构两方面特性的输入码,它是为了同时利用拼音码和拼形码两者的优点,一方面降低拼音码的重码率,另一方面减少拼形码需较多学习和记忆的困难程度而设计的。例如,双拼码、五十字元等。 不同的汉字输入方法有不同的汉字外码,即汉字的外码可以有多个,但内码只能有一个。目前已有的汉字输入编码方法有数百种,如首尾码、拼音码、表形码、五笔字型码等。一种好的汉字输入编码方法应该具备规则简单、易于记忆、操作方便、编码容量大、编码短和重码率低等特征。 5. 汉字输出码 汉字字形码用在输出时产生汉字的字形,通常采用点阵形式产生,所以汉字字形码就是确定一个汉字字形点阵的代码。全点阵字形中的每一点用一个二进制位来表示,随着字形点阵的不同,它们所需要的二进制位数也不同。例如: 24×24的字形点阵,因每字节8位二进制数,每行24个点为3字节,故每字3×24需要72字节; 32×32的字形点阵,每字共需128字节。与每个汉字对应的这一串字节,就是汉字的字形码。 【例17】存储一个32×32点阵的汉字字形码需要的字节数。 32×32/8=128 【例18】存储1024个24×24点阵的汉字字形码需要的字节数是(B)。 A. 720B B. 72KB C. 7000B D. 7200B 6. 各种编码之间的关系 汉字通常通过汉字输入码,并借助输入设备输入计算机内,再由汉字系统的输入管理模块进行查表或计算,将输入码(外码)转换成机器内码存入计算机存储器中。当存储在计算机内的汉字需要在屏幕上显示或在打印机上输出时,要借助汉字机内码在字模库中找出汉字的字形码,这种代码转换过程如图110所示。 图110汉字在计算机中的处理过程 1.2.4数的编码 前面我们讨论了字符的编码,其实质是将字符(包括ASCII码字符和汉字)数码化后在计算机内表示成二进制数,这个数通常被称作“机器数”。字符是非数值型数据,从算术意义上说,它们不能参与算术运算,没有大小之分,也没有正负号之说。因此,字符编码时需要考虑因素相对较少。计算机中的数据除了非数值型数据外,还有数值型数据。数值型数据有大小、正负之分,能够进行算术运算。将数值型数据全面、完整地表示成一个机器数,应该考虑三个因素: 机器数的范围、机器数的符号和机器数中小数点的位置。 1. 机器数的范围 机器数的范围由硬件(CPU中的寄存器)决定。当使用8位寄存器时,字长为8 位,所以一个无符号整数的最大值是(11111111)2=(255)10,机器数的范围为0~255; 当使用16位寄存器时,字长为16 位,所以一个无符号整数的最大值是(FFFF)16=(65535)10,机器数的范围为0~65535。 2. 机器数的符号 在计算机内部,任何数据都只能用二进制的两个数码0和1来表示。正负数的表示也不例外,除了用0和1的组合来表示数值的绝对值大小外,其正负号也必须数码化以0和1的形式表示。通常规定最高位为符号位,并用0表示正,用1表示负。这时在一个8位字长的计算机中,数据的格式如图111所示。 图111机器数的符号 最高位D7为符号位,D6~D1为数值位。这种把符号数字化,并和数值位一起编码的方法,很好地解决了带符号数的表示方法及其计算问题。这类编码方法,常用的有原码、反码、补码三种。 3. 定点数和浮点数 在计算机内部难以表示小数点。故小数点的位置是隐含的。隐含的小数点位置可以是固定的,也可以是变动的,前者表示形式称为“定点数”,后者表示形式称为“浮点数”。 1) 定点数 在定点数中,小数点的位置一旦固定,就不再改变。定点数中又有定点整数和定点小数之分。 对于定点整数,小数点的位置约定在最低位的右边,用来表示整数,如图112所示; 对于定点小数,小数点的位置约定在符号位之后,用来表示小于1的纯小数,如图113所示。 图112机器内的定点小整数 图113机器内的定点整数 【例19】设机器的定点数长度为2字节,用定点整数表示(194)10。 因为(194)10=11000010B,故机器内表示形式如图111所示。 【例110】用定点小数表示(-0.6875)10。 因为(-0.6875)10=-0.101100000000000B,其机内表示如图112所示。 2) 浮点数 如果要处理的数既有整数部分,又有小数部分,则采用定点数便会遇到麻烦。为此引出浮点数,即小数点位置不固定。 现将十进制数75.24、-7.524、0.7524、-0.07524用指数形式表示,它们分别为: 0.7524×102、-0.7524×101、0.7524×100、-0.7524×10-1 可以看出,在原数字中无论小数点前后各有几位数,它们都可以用一个纯小数(称为尾数,有正、负)与10的整数次幂(称为阶数,有正、负)的乘积形式来表示,这就是浮点数的表示法。 同理,一个二进制数N也可以表示为: N=±S×2±P 式中的N、P、S均为二进制数。S称为N的尾数,即全部的有效数字(数值小于1),S前面的±号是尾数的符号; P称为N的阶码(通常是整数),即指明小数点的实际位置,P前面的±号是阶码的符号。 在计算机中一般浮点数的存放形式如图114所示。 阶符阶码P尾符尾码S 图114浮点数的存放形式 在浮点数表示中,尾数的符号和阶码的符号各占一位,阶码是定点整数,阶码的位数决定了所表示的数的范围,尾数是定点小数,尾数的位数决定了数的精度,在不同字长的计算机中,浮点数所占的字长是不同的。 1.3计算机系统的组成 一个完整的计算机系统由硬件和软件组成(图115)。 硬件指构成计算机系统的物理实体或物理装置,由电子元件、机械元件、集成电路构成。软件系统指在硬件基础上运行的各种程序、数据及有关的文档资料。通常把没有软件系统的计算机称为“裸机”。