王道 您所在的位置:网站首页 现代计算机统称为什么 王道

王道

2024-06-02 21:19| 来源: 网络整理| 查看: 265

王道计算机系统概述计算机组成原理总考纲找不到图片(Image not found)

考纲内容

(一)计算机系统层次结构

计算机系统的基本组成;计算机硬件的基本组成;计算机软件的分类;计算机的工作过程

(二)计算机性能指标

吞吐量、响应时间、CPU时钟周期、主频、CPI、CPU执行时间

MIPS、MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS

学习本章时,请读者思考以下问题:

1)计算机由哪几部分组成?以哪部分为中心?

2)主频高的CPU 一定比主频低的CPU快吗?为什么?

3)翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?

4)不同级别的语言编写的程序有什么区别?哪种语言编写的程序能被硬件直接执行?请读者在学习本章的过程中寻找答案,本章末尾会给出参考答案。

缩写全称中译CPUCentral Processing Unit中央处理机(器)IRInstruction Register指令寄存器,存放当前正在执行的指令的寄存器;CUControl Unit控制单元(部件),控制器中产生微操作命令序列的部件,为控制器的核心部件;ALUArithmetic Logic Unit算术逻辑运算单元,运算器中完成算术逻辑运算的逻辑部件;ACCAccumulator累加器,运算器中运算前存放操作数、运算后存放运算结果的寄存器;MARMemory Address Register存储器地址寄存器,内存中用来存放欲访问存储单元地址的寄存器;MQMultiplier-Quotient Register乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。X此字母没有专指的缩写含义,可以用作任一部件名,在此表示$\color{green}{\text{操作数寄存器}}$,即运算器中工作寄存器之一,用来存放操作数;MDRMemory Data Register存储器数据缓冲寄存器,主存中用来存放从某单元读出、或写入某存储单元数据的寄存器;CPIClock cycle Per Instruction表示每条计算机指令执行所需的时钟周期I/OInput/Output equipment输入/输出设备,为输入设备和输出设备的总称,用于计算机内部和外界信息的转换与传送;PCProgram Counter程序计数器,存放当前欲执行指令的地址,并可自动计数形成下一条指令地址的计数器;FLOPSfloating-point operations per second每秒所执行的浮点运算次数IXIndexRegister变址寄存器(也许是为了和IR区分)BRBase Address Registers基址寄存器PSWProgram Status Word程序状态寄存器(程序状态字)GPRGeneral Purpose Register通用寄存器组

参考文献参考文献参考文献

*计算机发展历程计算机硬件的发展计算机的四代变化

从1946年世界上第一台电子数字计算机(Electronic Numerical Integrator And Computer,ENIAC)问世以来,计算机的发展已经经历了四代。

1)第一代计算机(1946-1957年)——电子管时代。特点:逻辑元件采用电子管;使用机器语言进行编程;主存用延迟线或磁鼓存储信息,容量极小;体积庞大,成本高;运算速度较低,一般只有几千次到几万次每秒。

2)第二代计算机(1958—1964年)——晶体管时代。特点:逻辑元件采用晶体管;运算速度提高到几万次到几十万次每秒;主存使用磁心存储器;软件开始使用高级语言,如FORTRAN,有了操作系统的雏形。

3)第三代计算机(1965-1971年)——中小规模集成电路时代。特点:逻辑元件采用中小规模集成电路;半导体存储器开始取代磁心存储器;高级语言发展迅速,操作系统也进一步发展,开始有了分时操作系统。

4)第四代计算机(1972年至今)——超大规模集成电路时代。特点:逻辑元件采用大规模集成电路和超大规模集成电路,产生了微处理器;诸如并行、流水线、高速缓存和虚拟存储器等概念用在了这代计算机中。

计算机元件的更新换代

1)摩尔定律。当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。也就是说,我们现在和 18个月后花同样的钱买到的CPU,后者的性能是前者的两倍。这一定律揭示了信息技术进步的速度。

2)半导体存储器的发展。1970 年,仙童半导体公司生产出第一个较大容量的半导体存储器,至今,半导体存储器经历了11 代:单芯片1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB和现在的1GB。

3)微处理器的发展。自1971年Intel公司开发出第一个微处理器Intel 4004至今,微处理器经历了Intel 8008(8位)、Intel 8080 (8位)、Intel 8086 ( 16位)、Intel 8088 ( 16位)、Intel 80286 ( 16位)、Intel 80386 (32位)、Intel 80486 (32位)、Pentium (32位)、Pentium pro (64位)、Pentium II (64位)、Pentium III (64位)、Pentium 4 (64位)等。这里的32位、64位指的是机器字长,是指计算机进行一次整数运算所能处理的二进制数据的位数。

计算机软件的发展

计算机软件技术的蓬勃发展,也为计算机系统的发展做出了很大的贡献。

计算机语言的发展经历了$\color{green}{\text{面向机器}}$的机器语言和汇编语言、$\color{green}{\text{面向问题}}$的高级语言。其中高级语言的发展真正促进了软件的发展,它经历了从科学计算和工程计算的FORTRAN、结构化程序设计的PASCAL 到面向对象的C++和适应网络环境的Java。

与此同时,直接影响计算机系统性能提升的各种系统软件也有了长足的发展,特别是操作系统,如Windows、UNIX、Linux 等。

计算机的分类与发展方向

通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机6类,它们的体积、功耗、性能、数据存储量、指令系统的复杂程度和价格依次递减。

此外,计算机按指令和数据流还可分为:

1)单指令流和单数据流系统(SISD),即传统冯·诺依曼体系结构。

2)单指令流和多数据流系统(SIMD),包括阵列处理器和向量处理器系统。3)多指令流和单数据流系统(MISD),这种计算机实际上不存在。

4)多指令流和多数据流系统(MIMD),包括多处理器和多计算机系统。

计算机的发展趋势正向着“两极”分化:一极是微型计算机向更微型化、网络化、高性能、多用途方向发展;另一极是巨型机向更巨型化、超高速、并行处理、智能化方向发展。

计算机系统层次结构计算机系统的组成

硬件系统和软件系统共同构成了一个完整的计算机系统。硬件是指有形的物理设备,是计算机系统中实际物理装置的总称。软件是指在硬件上运行的程序和相关的数据及文档。

计算机系统性能的好坏,很大程度上是由软件的效率和作用来表征的,而软件性能的发挥又离不开硬件的支持。对某一功能来说,其既可以用软件实现,又可以用硬件实现,则称为软硬件在逻辑上是等效的。在设计计算机系统时,要进行软/硬件的功能分配。通常来说,一个功能若使用较为频繁且用硬件实现的成本较为理想,则使用硬件解决可以提高效率。而用软件实现可以提高灵活性,但效率往往不如硬件实现高。

计算机硬件的基本组成早期的冯·诺依曼机

冯·诺依曼在研究EDVAC机时提出了“存储程序”的概念,“存储程序”的思想奠定了现代计算机的基本结构,以此概念为基础的各类计算机通称为冯·诺依曼机,其特点如下:

1)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。

2)指令和数据以同等地位存储在存储器中,并可按地址寻访。

3)指令和数据均用二进制代码表示。

4)指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。

5)指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。

6)早期的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。典型的冯·诺依曼计算机结构如图1.1所示。

$\color{red}{\text{注意}}$:“$\color{red}{\text{存储程序}}$”的概念是指将指令以代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。计算机按照此原理应该具有5大功能:数据传送功能(总线)、数据存储功能(存储器)、数据处理功能(运算器)、操作控制功能(控制器)、操作判断功能(PC)。

现代计算机的组织结构

在微处理器问世之前,运算器和控制器分离,而且存储器的容量很小,因此设计成以运算器为中心的结构,其他部件都通过运算器完成信息的传递,如图1.1所示。

而随着微电子技术的进步,同时计算机需要处理、加工的信息量也与日俱增,大量IO设备的速度和CPU的速度差距悬殊,因此以运算器为中心的结构不能够满足计算机发展的要求。现代计算机已发展为以存储器为中心,使IO操作尽可能地绕过CPU,直接在IO设备和存储器之间完成,以提高系统的整体运行效率,其结构如图1.2所示。

目前绝大多数现代计算机仍遵循冯·诺依曼的存储程序的设计思想。

计算机的功能部件

传统冯·诺依曼计算机和现代计算机的结构虽然有所不同,但功能部件是一致的,它们的功能部件包括如下几种。

(1)输入设备

输入设备的主要功能是将程序和数据以机器所能识别和接受的信息形式输入计算机。最常用也最基本的输入设备是键盘,此外还有鼠标、扫描仪、摄像机等。

(2)输出设备

输出设备的任务是将计算机处理的结果以人们所能接受的形式或其他系统所要求的信息形式输出。最常用、最基本的输出设备是显示器、打印机。计算机的输入/输出设备(简称IO 设备)是计算机与外界联系的桥梁,是计算机中不可缺少的重要组成部分。

(3)存储器

存储器是计算机的存储部件,用来存放程序和数据。

存储器分为主存储器(简称主存,也称内存储器)和辅助存储器(简称辅存,也称外存储器)。CPU 能够$\color{red}{\text{直接访问}}$的存储器是主存储器。辅助存储器用于帮助主存储器记忆更多的信息,$\color{red}{\text{辅助存储器}}$中的信息必须调入主存后,才能为CPU所访问。

主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式($\color{green}{\text{相联存储器}}$是$\color{green}{\text{按内容}}$访问的)。

存储体的最基本组成如图1.3所示。存储体存放二进制信息,地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器(MDR)用于暂存要从存储器中读或写的信息,时序控制逻辑用于产生存储器操作所需的各种时序信号。

主存储器由许多存储单元组成,每个存储单元包含若干存储元件,每个存储元件存储一位二进制代码“0”或“1”。因此存储单元可存储一串二进制代码,称这串代码为存储字,称这串代码的位数为存储字长,存储字长可以是1B (8bit)或是字节的偶数倍。

$\color{green}{\text{MAR}}$用于寻址,其$\color{green}{\text{位数}}$对应着$\color{red}{\text{存储单元的个数}}$,如 MAR为10位,则有$2^{10}$= 1024个存储单元,记为1K。MAR的长度与PC的长度相等。

$\color{green}{\text{MDR}}$的$\color{green}{\text{位数}}$和$\color{red}{\text{存储字长}}$相等,一般为字节的二次幂的整数倍。

注意:MAR 与 MDR虽然是存储器的一部分,但在现代CPU中却是$\color{red}{\text{存在于}}$CPU中的;另外,后文提到的高速缓存(Cache)也存在于CPU 中。

(4)运算器运算器是计算机的执行部件,用于进行算术运算和逻辑运算。算术运算是按算术运算规则进行的运算,如加、减、乘、除;逻辑运算包括与、或、非、异或、比较、移位等运算。

运算器的核心是算术逻辑单元(Arithmetic and Logical Unit,ALU)。运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,其中前3个寄存器是必须具备的。

运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否溢出、有无产生进位或借位、结果是否为负等。

(5)控制器控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。控制器由$\color{green}{\text{程序计数器(PC)}}$、$\color{green}{\text{指令寄存器(IR)}}$和$\color{green}{\text{控制单元(CU)}}$组成。

$\color{green}{\text{PC}}$用来存放当前$\color{green}{\text{欲执行指令}}$的$\color{green}{\text{地址}}$,可以自动加1以形成下一条指令的地址,它与主存的$\color{green}{\text{MAR}}$之间有一条直接通路。

$\color{green}{\text{IR}}$用来存放$\color{green}{\text{当前的指令}}$,其内容来自主存的 $\color{green}{\text{MDR}}$。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码Ad(IR)送往MAR,用以取操作数。

一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称为外部设备,简称外设。

图1.4所示为冯·诺依曼结构的模型机。CPU包含ALU、通用寄存器组GPRs、标志寄存器、控制器、指令寄存器IR、程序计数器PC、存储器地址寄存器MAR和存储器数据寄存器MDR。图中从控制器送出的虚线就是控制信号,可以控制如何修改PC 以得到下一条指令的地址,可以控制ALU执行什么运算,可以控制主存是进行读操作还是写操作(读/写控制信号)。

CPU和主存之间通过一组总线相连,总线中有地址、控制和数据3组信号线。MAR中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从CPU 写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。

计算机软件的分类系统软件和应用软件

软件按其功能分类,可分为系统软件和应用软件。

系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为$\color{green}{\text{系统资源}}$提供给用户使用。系统软件主要有操作系统($\color{green}{\text{OS}}$)、数据库管理系统($\color{green}{\text{DBMS}}$)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序等。

应用软件是指用户为解决某个应用领域中的各类问题而编制的程序,如各种科学计算类程序、工程设计类程序、数据统计与处理程序等。

注意:$\color{green}{\text{数据库管理系统}}$(DBMS)和$\color{green}{\text{数据库系统}}$(DBS)是有区别的。DBMS是位于用户和操作系统之间的一层数据管理软件,是系统软件;而 DBS是指计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、数据库管理员(DBA)和应用系统构成。dbs是dbms的超集 参考文献

三个级别的语言

1)机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。

2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。

3)高级语言。高级语言(如C、C++、Java等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。

计算机的工作过程

计算机的工作过程分为以下三个步骤:

1)把程序和数据装入主存储器。

2)将源程序转换成可执行文件。

3)从可执行文件的首地址开始逐条执行指令。

从源程序到可执行文件

在计算机中编写的C语言程序,都必须被转换为一系列的低级机器指令,这些指令按照一种称为可执行目标文件的格式打好包,并以二进制磁盘文件的形式存放起来。

以UNIX系统中的GCC编译器程序为例,读取源程序文件 hello.c,并把它翻译成一个可执行目标文件hello,整个翻译过程可分为4个阶段完成,如图1.5所示。

1)预处理阶段:预处理器(cpp)对源程序中以字符#开头的命令进行处理,例如将#include命令后面的.h文件内容插入程序文件。输出结果是一个以.i为扩展名的源文件hello.i.

2)编译阶段:编译器( ccl)对预处理后的源程序进行编译,生成一个汇编语言源程序hello.s。汇编语言源程序中的每条语句都以一种文本格式描述了一条低级机器语言指令

3)汇编阶段:汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成一个称为可重定位目标文件的hello.o,它是一种二进制文件,因此在文本编辑器中打开它时会显示乱码。

4)链接阶段:链接器(ld)将多个可重定位目标文件和标准库函数合并为一个可执行目标文件,或简称可执行文件。本例中,链接器将hello.o和标准库函数printf 所在的可重定位目标模块printf.o合并,生成可执行文件 hello。最终生成的可执行文件被保存在磁盘上。

指令执行过程的描述

程序中第一条指令的地址置于PC中,根据PC取出第一条指令,经过译码、执行步骤控制计算机各功能部件协同运行,完成这条指令的功能,并计算下一条指令的地址。用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止。

指令的执行过程在第5章中详细描述。下面以取数指令(即将指令地址码指示的存储单元中的操作数取出后送至运算器的ACC中)为例进行说明,其信息流程如下:

1)取指令:PC→MAR→M→MDR→IR

根据PC取指令到IR。将PC的内容送MAR,MAR中的内容直接送地址线,同时控制器将读信号送读/写信号线,主存根据地址线上的地址和读信号,从指定存储单元读出指令送到数据线上,MDR从数据线接收指令信息,并传送到IR中。

2)分析指令:OP(IR)→CU

指令译码并送出控制信号。控制器根据R中指令的操作码,生成相应的控制信号送到不同的执行部件。在本例中,R中是取数指令,因此读控制信号被送到总线的控制线上。

3)执行指令:Ad(IR)→MAR→M→MDR→ACC取数操作。将IR中指令的地址码送 MAR,MAR中的内容送地址线,同时控制器将读信号送读/写信号线,从主存指定存储单元读出操作数,并通过数据线送至MDR,再传送到ACC中。

此外,每取完一条指令,还须为取下一条指令做准备,形成下一条指令的地址,即(PC)+1→PC。

$\color{red}{\text{注意}}$:(PC)指程序计数器PC中存放的内容。PC→MAR应理解为(PC)→MAR,即程序计数器中的值经过数据通路送到MAR,也即$\color{red}{\text{表示数据通路时括号可省略}}$(因为只是表示数据流经的途径,而不强调数据本身的流动)。但$\color{red}{\text{运算时括号}}$不能省略,即(PC)+1→PC不能写为PC+1→PC。当题目中(PC)→MAR的括号未省略时,考生最好也不要省略。

计算机系统的多级层次结构

现代计算机是一个硬件与软件组成的综合体。由于面对的应用范围越来越广,因此必须有复杂的系统软件和硬件的支持。由于软/硬件的设计者和使用者从不同的角度、用不同的语言来对待同一个计算机系统,因此他们看到的计算机系统的属性对计算机系统提出的要求也就各不相同。

计算机系统的多级层次结构的作用,就是针对上述情况,根据从各种角度所看到的机器之间的有机联系,来分清彼此之间的界面,明确各自的功能,以便构成合理、高效的计算机系统。

关于计算机系统层次结构的分层方式,目前尚无统一的标准,这里采用如图1.6所示的层次结构。

第1级是微程序机器层,这是一个实在的硬件层,它由机器硬件直接执行微指令。

第2级是传统机器语言层,它也是一个实际的机器层,由微程序解释机器指令系统。

第3级是操作系统层,它由操作系统程序实现。操作系统程序是由机器指令和广义指令组成的,这些广义指令是为了扩展机器功能而设置的,是由操作系统定义和解释的软件指令,所以这一层也称混合层。

第4级是汇编语言层,它为用户提供一种符号化的语言,借此可编写汇编语言源程序。这一层由汇编程序支持和执行。

在高级语言层之上,还可以有应用程序层,它由解决实际问题和应用问题的处理程序组成,如文字处理软件、数据库软件、多媒体处理软件和办公自动化软件等。

通常把没有配备软件的纯硬件系统称为“裸机”。第3层~第5层称为虚拟机,简单来说就是软件实现的机器。虚拟机只对该层的观察者存在,这里的分层和计算机网络的分层类似,对于某层的观察者来说,只能通过该层次的语言来了解和使用计算机,而不必关心下层是如何工作的。

层次之间的关系紧密,$\color{green}{\text{下层是上层的基础}}$,$\color{green}{\text{上层是下层的扩展}}$。随着超大规模集成电路技术的不断发展,部分软件功能将由硬件来实现,因而软/硬件交界面的划分也不是绝对的。

本门课程主要讨论传统机器M1和微程序机器MO的组成原理及设计思想。

计算机的性能指标计算机的主要性能指标机器字长

机器字长是指计算机进行一次整数运算(即定点整数运算)所能处理的二进制数据的位数,通常与CPU 的寄存器位数、加法器有关。因此,机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为字节(8位)的整数倍。

$\color{red}{\text{注意}}$:机器字长、指令字长和存储字长的关系(见本章常见问题和易混淆知识点4)。

数据通路带宽

数据通路带宽是指数据总线一次所能并行传送信息的位数。这里所说的数据通路宽度是指$\color{red}{\text{外部数据总线}}$的宽度,它与CPU$\color{green}{\text{内部的数据总线宽度}}$(内部寄存器的大小)有可能不同。

注意:各个子系统通过数据总线连接形成的数据传送路径称为$\color{green}{\text{数据通路}}$。

主存容量

主存容量是指主存储器所能存储信息的最大容量,通常以字节来衡量,也可用字数×字长(如512K×16位)来表示存储容量。其中,MAR的位数反映存储单元的个数,MAR的位数反映可寻址范围的最大值(而$\color{red}{\text{不一定是实际存储器的存储容量}}$)。

例如,MAR为16位,表示$2^{16}= 65536$,即此存储体内有65536个存储单元(可称为64K内存,1K=1024),若MDR为32位,表示存储容量为64K×32位。

运算速度吞吐量和响应时间吞吐量。指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU 能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。几乎每步都关系到主存,因此系统吞吐量主要取决于主存的存取周期。响应时间。指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、IO操作、操作系统开销等的时间)。主频和CPU时钟周期CPU时钟周期。通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,执行指令的每个动作至少需要1个时钟周期。主频(CPU时钟频率)。机器内部$\color{green}{\text{主时钟的频率}}$,是衡量机器速度的重要参数。对于同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。例如,常用CPU的主频有1.8GHz、2.4GHz、2.8GHz等。

注意:CPU时钟周期=1/主频,主频通常以Hz(赫兹)为单位,1Hz表示每秒1次。

CPI (Clock cycle Per Instruction),即执行一条指令所需的时钟周期数。

不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI 指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,此时CPI是一个平均值。

CPU执行时间,指运行一个程序所花费的时间

CPU执行时间= CPU时钟周期数/主频=(指令条数×CPI)/主频

上式表明,CPU 的性能(CPU执行时间)取决于三个要素:①主频(时钟频率);②每条指令执行所用的时钟周期数(CPI);③指令条数。

主频、CPI和指令条数是相互制约的。例如,更改指令集可以减少程序所含指令的条数,但同时可能引起CPU结构的调整,从而可能会增加时钟周期的宽度(降低主频)。

MIPS (Million Instructions Per Second),即每秒执行多少百万条指令

MIPS=指令条数(执行时间×$10^6$)=主频/(CPI×$10^6$)。

MIPS 对不同机器进行性能比较是有缺陷的,因为不同机器的指令集不同,指令的功能也就不同,比如在机器M1 上某条指令的功能也许在机器M2上要用多条指令来完成;不同机器的CPI和时钟周期也不同,因而同一条指合在不同机器上所用的时间也不同。

MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS和 ZFLOPS.

MFLOPS (Mega Floating-point Operations Per Second),即每秒执行多少百万次浮点运算。MFLOPS=浮点操作次数/(执行时间×$10^6$)。

GFLOPS (Giga Floating-point Operations Per Second),即每秒执行多少十亿次浮点运算。GFLOPS= 浮点操作次数/(执行时间×$10^9$)。

TFLOPS (Tera Floating-point Operations Per Second),即每秒执行多少万亿次浮点运算。TFLOPS=浮点操作次数(执行时间×$10^{12}$)。

此外,还有PFLOPS=浮点操作次数(执行时间×$10^{15}$);EFLOPS = 浮点操作次数(执行时间×$10^{18}$);ZFLOPS=浮点操作次数(执行时间×$10^{21}$)。

注意:在描述$\color{green}{\text{存储容量}}$、文件大小等时,K、M、G、T通常用$\color{green}{\text{2的幂次}}$表示,如 1Kb =210b;在$\color{green}{\text{描述速率}}$、频率等时,k、M、G、T通常用$\color{green}{\text{10的幂次}}$表示,如 1kb/s = 10b/s。通常前者用大写的K,后者用小写的k,但其他前缀均为大写,表示的含义取决于所用的场景。

基准程序

基准程序(Benchmarks)是专门用来进行性能评价的一组程序,能够很好地反映机器在运行实际负载时的性能,可以通过在不同机器上运行相同的基准程序来比较在不同机器上的运行时间,从而评测其性能。对于不同的应用场合,应该选择不同的基准程序。

使用基准程序进行计算机性能评测也存在一些缺陷,因为基准程序的性能可能与某一小段的短代码密切相关,而硬件系统设计人员或编译器开发者可能会针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快,以至于得不到准确的性能评测结果。

几个专业术语系列机

具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列。

兼容

指计算机软件或硬件的通用性,即使用或运行在某个型号的计算机系统中的硬件/软件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上存在兼容性。

软件可移植性

指把使用在某个系列计算机中的软件直接或进行很少的修改就能运行在另一个系列计算机中的可能性。

固件

将程序固定在ROM中组成的部件称为固件。固件是一种具有软件特性的硬件,固件的性能指标介于硬件与软件之间,吸收了软/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物。例如,目前操作系统已实现了部分固化(把软件永恒地存储于只读存储器中)。

本章小结计算机由哪几部分组成?以哪部分为中心?

计算机由运算器、控制器、存储器、输入设备及输出设备五大部分构成,现代计算机通常把运算器和控制器集成在一个芯片上,合称为中央处理器。

而在微处理器面世之前,运算器和控制器分离,而且存储器的容量很小,因此设计成以运算器为中心的结构,其他部件都通过运算器完成信息的传递。

随着微电子技术的进步,同时计算机需要处理、加上的信总重世与口供增,人重o以代社速度和CPU 的速度差距悬殊,因此以运算器为中心的结构个能满足计算机反展的妥水。现1灯算机已经发展为以存储器为中心,使IO操作尽可能地绕过CPU,直接在IO 设备和存储器之间完成,以提高系统的整体运行效率。

主频高的CPU一定比主频低的CPU快吗?为什么?

衡量CPU运算速度的指标有很多,不能以单独的某个指标来判断CPU的好坏。CPU的主频,即CPU内核工作的时钟频率。CPU 的主频表示CPU内数字脉冲信号振荡的速度,主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU 的运算速度还要看CPU的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、Cache 大小等)。由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的CPU实际运算速度较低的现象。

翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?

见常见问题和易混淆知识点2。

不同级别的语言编写的程序有什么区别?哪种语言编写的程序能被硬件直接执行?

机器语言和汇编语言与机器指令对应,而高级语言不与指令直接对应,具有较好的可移植性。其中机器语言可以被硬件直接执行。

常见问题和易混淆知识点同一个功能既可以由软件实现又可以由硬件实现吗?

软件和硬件是两种完全不同的形态,硬件是实体,是物质基础;软件是一种信息,看不见、摸不到。但在逻辑功能上,软件和硬件是等效的。因此,在计算机系统中,许多功能既可以由硬件直接实现,又可以在硬件的配合下由软件实现。

例如,乘法运算既可用专门的乘法器(主要由加法器和移位器组成)实现,也可用乘法子程序(主要由加法指令和移位指令等组成)来实现。

翻译程序、汇编程序、编译程序、解释程序的区别和联系是什么?

翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件。

翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只需执行目标程序,因此只要源程序不变,就无须重新翻译,请注意同一种高级语言在不同体系结构下,编译成目标程序是不一样的,目标程序与体系结构相关,但仍不是计算机硬件能够直接执行的程序。另一种是解释程序,它将源程序的一条语句翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句执行一句,并且不会生成目标程序。

汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译为机器语言程序。汇编语言是一种面向机器的低级语言,是机器语言的符号表示,与机器语言一一对应。

编译程序与汇编程序的区别:若源语言是诸如C、C++、Java等“高级语言”,而目标语言是诸如汇编语言或机器语言之类的“低级语言”,则这样的一个翻译程序称为编译程序。若源语言是汇编语言,而目标语言是机器语言,则这样的一个翻译程序称为汇编程序。

什么是透明性?透明是指什么都能看见吗?

在计算机领域中,站在某类用户的角度,若感觉不到某个事物或属性的存在,即“看”不到某个事物或属性,则称为“对该用户而言,某个事物或属性是透明的”。这与日常生活中的“透明”概念(公开、看得见)正好相反。

例如,对于高级语言程序员来说,浮点数格式、乘法指令等这些指令的格式、数据如何在运算器中运算等都是透明的;而对于机器语言或汇编语言程序员来说,指令的格式、机器结构、数据格式等则不是透明的。

在CPU中,IR、MAR和 MDR对各类程序员都是透明的。

机器字长、指令字长、存储字长的区别和联系是什么?

机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。

指令字长:一个指令字中包含的二进制代码的位数。

存储字长:一个存储单元存储的二进制代码的长度。它们都必须是字节的整数倍。

指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要⒉次访存来取出一条指令,因此取指周期为机器周期的2倍;若指令字长等于存储字长,则取指周期等于机器周期。

早期的计算机存储字长一般和机器的指令字长与数据字长相等,因此访问一次主存便可取出一条指令或一个数据。随着计算机的发展,指令字长可变,数据字长也可变,但它们必须都是字节的整数倍。

请注意64位操作系统是指特别为64位架构的计算机而设计的操作系统,它能够利用64位处理器的优势。但64位机器既可以使用64位操作系统,又可以使用32位操作系统。而32位处理器是无法使用64位操作系统的。

计算机体系结构和计算机组成的区别和联系是什么?

计算机体系结构是指机器语言或汇编语言程序员所看得到的传统机器的属性,包括指令集、数据类型、存储器寻址技术等,大都属于抽象的属性。

计算机组成是指如何实现计算机体系结构所体现的属性,它包含对许多对程序员来说透明的硬件细节。例如,指令系统属于结构的问题,但指令的实现即如何取指令、分析指令、取操作数、如何运算等都属于组成的问题。因此,当两台机器指令系统相同时,只能认为它们具有相同的结构,至于这两台机器如何实现其指令,完全可以不同,即可以认为它们的组成方式是不同的。例如,一台机器是否具备乘法指令是一个结构的问题,但实现乘法指令采用什么方式则是一个组成的问题。

许多计算机厂商提供一系列体系结构相同的计算机,而它们的组成却有相当大的差别,即使是同一系列的不同型号机器,其性能和价格差异也很大。例如,IBM System/370结构就包了多种价位和性能的机型。

基准程序执行得越快说明机器的性能越好吗?

一般情况下,基准测试程序能够反映机器性能的好坏。但是,由于基准程序中的语句存在频度的差异,因此运行结果并不能完全说明问题。

字长总结字长解析机器字长是指数据运算的基本单位长度,是 $\color{green}{\text{计算机的位数}}$ ,与 $\color{green}{\text{数据总线}}$ 的位数一致存储字长一个存储单元中的二进制代码的位数,等于MDR的位数(这里是不是MAR笔记记错了),一般情况下可通过寄存器的位数来判断机器字长($\color{red}{\text{Q}}$:如何判断)。指令字长数据字长数据总线一次能并行传送信息的位数,它可以不等于MDR的位数操作系统的位数操作系统可寻址的位数周期总结周期解析时钟周期是最基本的时间单位,是计算机操作的最小单位时间指令周期取出并执行一条指令的时间称为指令周期机器周期CPU 周期又称机器周期,它由多个时钟周期组成,是具有语义的一系列时钟周期CPU周期同机器周期中断周期两次中断的间隔存储周期存取周期是指存储器进行两次独立的存储器操作(连续两次读或写操作)所需的最小间隔时间图:周期总结找不到图片(Image not found)

参考文献

MISC把频率理解为多少下(次)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有