第1章 计算机系统概述
1.1 计算机发展历程
1946年世界上第一台电子数字计算机ENIAC问世。
第一代计算机——电子管时代
特点:逻辑元件采用电子管,使用机器语言进行编程,主存用延迟线或磁鼓存储信息,容量极小,体积庞大,成本高,运算速度较低,一般只有每秒几千到几万次。
第二代计算机——晶体管时代
特点:逻辑元件采用晶体管,运算速度提高到每秒几万到几十万次,主存使用磁芯存储器,软件开始使用高级语言,有操作系统的雏形。
第三代计算机——中小规模集成电路时代
特点:逻辑元件采用中小规模集成电路,半导体存储器开始取代磁芯存储器,高级语言发展迅速,操作系统也进一步发展,开始有了分时操作系统。
第四代计算机——超大规模集成电路时代
特点:逻辑元件采用大规模集成电路和超大规模集成电路,产生了微处理器,并行、流水线、高速缓存和虚拟存储器等得以应用。
摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月增加一倍,性能提升一倍。
机器字长,是指计算机进行一次整数运算所能处理的二进制数据的位数。
计算机语言的发展经历了面向机器的机器语言和汇编语言、面向问题的高级语言。高级语言经历了从科学计算和工程计算的FORTRAN、结构化程序设计PASCAL到面向对象的C++和适应网络环境的Java。
计算机按指令和数据流可分为:
单指令流和单数据流系统(SISD),即传统冯•诺依曼体系结构
单指令流和多数据流系统(SIMD),包括列阵处理器和向量处理器系统
多指令流和单数据流系统(MISD),这种计算机实际不存在。
多指令流和多数据流系统(MIMD),包括多处理器和多计算机系统。
微型计算机的发展以微处理器技术为标志。
机器语言是计算机唯一可以直接执行的语言,汇编语言用助记符编写,以便记忆。正则语言是编译原理中符合正则文法的语言。
解释程序的特点是翻译一句执行一句,边翻译边执行;由高级语言转化为汇编语言的过程叫编译,把汇编语言源程序翻译成机器语言程序的过程称为汇编。
1.2 计算机系统层次结构
硬件系统和软件系统共同构成了一个完整的计算机系统。硬件是指有形的物理设备,是计算机系统中实际物理装置的总称。软件则是指在硬件上运行的程序和相关的数据及文档。
对于某一功能,若既可以用软件实现,也可以用硬件实现,则称为软硬件在逻辑上是等效的,硬件实现提高效率,软件实现提高灵活性。
冯•诺依曼机:
计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部分组成。
指令和数据以同等地位存储于存储器内,并可按地址寻访。
指令和数据均用二进制代码表示。
指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
早期的冯•诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。
现代计算机已经发展为以存储器为中心,使I/O操作尽可能地绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率。
输入设备:主要功能是将程序和数据以机器所能识别和接受的信息形式输入到计算机,常用最基本的设备是键盘,此外还有鼠标、扫描仪、摄像机等。
输出设备:是将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出,最常用、最基本的输出设备是显示器、打印机。
存储器:是计算机的存储部件,用来存放程序和数据。存储器分为主存储器(简称主存,也称内存储器)和辅助存储器(简称辅寸,也称外存储器)。CPU能直接访问的存储器是主存储器,辅助存储器用于帮助主存记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为CPU所访问。
运算器
控制器
软件按其功能分类可以分为系统软件和应用软件。
系统软件是一组保证计算机系统搞笑、正确运行的基础软件,通常作为系统资源提供给用户使用。主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。
应用软件是指用户为解决某个应用领域中的各类问题而编制的程序。
数据库系统一般由数据库、数据库管理系统、数据库管理员(DBA)和应用系统构成。
三个级别的语言:
机器语言:机器语言又称二进制带吗语言,是计算机唯一可以直接识别和执行的语言。
汇编语言:汇编语言用英文单词或其缩写代替二进制的指令代码,易于记忆和理解。
高级语言:高级语言更多地是为了方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或者直接由高级语言程序翻译成机器语言程序。
计算机的工作步骤:
将程序和数据装入到主存储器中。
从程序的起始地址运行程序。
用程序的首地址从存储器中取得第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址。
用心的到的指令地址继续读出第二条指令并执行,直到程序结束为止;每一条指令都是在取指、译码和执行的循环过程中完成的。
计算机系统的层次结构:
第1层是微程序机器曾,硬件层,由机器硬件直接执行微指令。
第2层是传统机器语言曾,是一个实际的机器曾,由微程序解释机器指令系统。
第3层是操作系统层,由操作系统程序实现。操作系统,由操作系统程序实现。操作系统是指由机器指令和广义指令组成的,这些广义指令为扩展机器功能而设置,是由操作系统定义和解释的软件指令。
第4层是汇编语言层,为用户提供一种符号化的语言,借此可编写汇编语言源程序,这一层由汇编程序支持和执行。
第5层是高级语言层,面向用户,为方便用户编写应用程序而设置,这一层由各种高级语言编译程序支持和执行。
1.3 计算机的性能指标
机器字长:指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、加法器有关。
数据通路带宽:指数据总线一次所能并行传送信息的位数。这里说的数据通路带宽指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。各个子系统通过数据总线连接形成的数据传送路径称为数据通路。
主存容量:指主存储器所能存储信息的最大容量,通常以字节衡量,也可用字数*字长来表示存储容量。
运算速度:
吞吐量:指系统在单位时间内处理请求的数量。
响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
CPU时钟周期:通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要一个时钟周期。
主频(CPU时钟频率):机器内部主的主时钟频率。主频的倒数是CPU时钟周期。
CPI(Clock cycle Per Instruction),即执行一条指令所需的时钟周期数。
CPU的性能(执行时间)取决于三个要素:主频、每条指令执行所用的时钟周期数、指令条数
系列机:具有基本相同的体系结构,使用相同的基本指令系统的多个不同型号的计算机组成的一个产品系列。
兼容:指计算机软件或硬件的通用性,即使用或运行在某个型号的计算机系统中的硬件、软件也能应用于另外一个型号的计算机系统时,则称这两天计算机在硬件或软件上存在兼容性。
软件可移植性:指把使用在某个系列计算机中的软件直接或进行很少修改就能运行在另外一个系列计算机中的可能性。
固件:将程序固定在ROM中组成的部件称为固件。
1.4 本章小结
计算机由哪几部分组成?以那部分为中心?
计算机由运算器、控制器、存储器、输入设备以及输出设备五大部分构成,现代计算机通过运算器和控制器集成在一个芯片上,合称为中央处理器。在微处理器面世前,运算器和控制器分离,且存储器的容量很小,故而设计成以运算器为中心,其他部件都通过运算器完成信息的传递。现代计算机已发展为以存储器为中心,使I/O操作尽可能地绕过CPU,直接在I/O设备和存储器之间完成,以提高系统的整体运行效率。
主频搞得CPU一定比主频低的CPU快吗?为什么?
CPU的主频即CPU内核工作的时钟频率。CPU的主频表示在CPU内数字脉冲信号真当的速度,主频和实际运算速度存在一定的关系。CPU的运算速度还要看CPU的流水线的各方面的性能指标(架构、缓存、指令集、CPU位数、Cache大小等)。
机器语言和汇编语言与机器指令对应,高级语言不与指令直接对应,具有较好的可移植性。机器语言可直接被硬件直接执行。
翻译程序、汇编程序、编译程序、解释程序的区别与联系?
翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件。
编译程序是将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只要执行目标程序。
解释程序是将源程序的每一条语句翻译成对应的机器目标代码,并立即执行,然后翻译吓一条源程序语句并执行,直至搜有源程序语句全部被翻译并执行完。
汇编程序是一种语言翻译程序,把汇编语言程序翻译成机器语言程序。
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。
指令字长:一个指令字中包含二进制代码的位数。
存储字长:一个存储单元存储二进制代码的长度。它们都是字节的整数倍。
64位操作系统是特别指为64为架构的计算机而设计的操作系统,能够利用64位的优势。64为机器既可以使用64位操作系统,也可以使用32位操作系统,而32位机器无法使用64位操作系统。
计算机体系结构和计算机组成的区别与联系?
计算机体系结构是指机器语言或汇编语言程序员所看到的传统机器的属性,包括指令集、数据类型、存储器寻址技术等,大部分属于抽象的属性。
计算机组成是指如何实现计算机体系结构所体现的属性,包含许多对程序员来说是透明的硬件细节。