1.计算机的发展历程
2.计算机的基本组成
3.计算机系统层次结构
4.程序开发与执行过程
5.精选习题 (1 - 4节练习题,含考研真题)
6.计算机系统性能评价


前言

随着计算机考研 408 统考的全面普及,计算机组成原理作为 408 考试三门核心科目(数据结构、计算机组成原理、操作系统、计算机网络)里,概念抽象、硬件底层难理解、考点细碎且分值占比极高的科目,一直是很多备考同学、在校期末复习同学的重难点。
很多同学在初学计组时,会被底层硬件原理、总线结构、CPU 工作机制、存储器体系、指令系统等晦涩概念困住,课本原文过于枯燥难懂,零散的资料不成体系,刷题找不到对应知识点,真题考点无法精准对应,复习没有完整的脉络框架。
为此,本系列专栏笔记应运而生。本系列将用整整 2 个月连载更新完毕,覆盖计算机组成原理大部分考纲考点,从计算机基础入门、硬件系统组成、系统层次结构、程序执行底层原理,到存储器、CPU、指令系统、总线、I/O 系统全部核心章节,全程做到知识点通俗拆解、原理图文并茂详解、考点重点标注、配套章节习题 + 历年 408 考研真题、附带完整详细解析。
本笔记兼顾两大学习人群:
408计算机统考考研党:严格对标考研考纲,梳理高频考点、易混淆考点、重难点深度剖析,适配考研一轮基础夯实、二轮强化复习;
高校期末备考学生:贴合本科计组课程教学大纲,知识点由浅入深、逻辑框架完整,适合期末考前系统梳理、刷题应急复习。
免责声明:本系列笔记参考的文章和例题:袁春风《计算机组成与系统结构》。唐朔飞《计算机组成原理》。王道《2027年计算机组成原理考研复习指导》学习笔记+思维导图;B站视频:2025王道考研 计算机组成原理。

1. 计算机的发展历程

【注】:计算机的发展这部分十分简单大家,所以只放思维导图,这里的内容不做过多解释

在这里插入图片描述

2.计算机系统的基本组成

通常所说的计算机系统,除了包含看得见的计算机硬件之外,还包括运行在计算机硬件上的软件。即计算机系统由硬件和软件两部分组成。硬件是具体物理装置的总称,人们看到的各种芯片、板卡、外设、电缆等都是计算机硬件。软件包括运行在硬件上的程序和数据以及相关的文档。程序是指挥计算机如何操作的一个指令序列,数据是指令操作的对象。

2.1 计算机硬件的基本主成

尽管计算机硬件技术经历了电子管、晶体管、集成电路和超大规模集成电路等发展阶段,计算机体系结构也取得了很大发展,但目前为止,绝大部分通用计算机的基本组成仍然具有冯·诺依曼结构计算机的特征。
冯·诺依曼结构的基本思想主要包括以下几方面。
(1)采用“存储程序”的工作方式。
(2)计算机由运算器、控制器、存储器、输入设备和输出设备5个基本部件组成。
(3)存储器不仅能存放数据,而且也能存放指令,形式上数据和指令没有区别,但计算机应能区分它们;控制器应能控制指令的自动执行;运算器应能进行加、减、乘、除4种基本算术运算,并且也能进行逻辑运算;操作人员可以通过输入/输出设备使用计算机。
(4)计算机内部以二进制形式表示指令和数据;每条指令由操作码和地址码两部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序。
现代计算机中,通常把运算器、控制器和各类寄存器等部件互连做在一个称为中央处理器(central processing unit,CPU)的芯片中。计算机硬件主要包括中央处理器、存储器、I/O控制器、外部设备和各类总线等。在这里插入图片描述
在这里插入图片描述

“存储程序”的基本思想是:将事先编制好的程序和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无须操作人员的干预,计算机会自动逐条执行指令,直至程序执行结束

2.1.1 中央处理器

中央处理器简称 CPU或处理器,是整个计算机的核心部件,主要用于指令的执行。CPU主要包含两种基本部件:数据通路和控制器。数据通路主要包含算术逻辑部件(arithmetic and logic unit,ALU)和通用寄存器等,ALU用来执行算术和逻辑运算等操作,通用寄存器用来暂存指令所用的操作数或执行结果。控制器用来对指令进行译码,生成相应的控制信号,以控制数据通路进行正确的操作。

2.1.1.1 运算器(数据通路的核心)

运算器是计算机的执行部件,用于进行算术运算和逻辑运算。算术运算是按算术运算规则进行的运算,如加、减、乘、除:逻辑运算包括与、或、非、异或、比较、移位等运算。
运算器的核心是算术逻辑单元(Arithmetic and Logic Unit,ALU)。运算器包含若干通用寄存器,用于暂存操作数和中间结果,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR)等,其中前三个寄仔器是必须具备的。
运算器内还有程序状态寄存器(PSW),也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息,如结果是否溢出、有无产生进位或借位、结果是否为负等。
在这里插入图片描述

2.1.1.2 控制器(CPU的“指挥中心”)

控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。
PC用来存放当前欲执行指令的地址,具有自动加1的功能(这里的“1”指一条指令的长度)即可自动形成下一条指令的地址,它与主存储器的MAR之间有一条直接通路。
IR用来存放当前的指令,其内容来自主存储器的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码Ad(IR)送往MAR,用以取操作数。
在这里插入图片描述

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

运算器:算术逻辑单元 ALU、累加器、寄存器、状态寄存器
控制器:指令寄存器、指令译码器、程序计数器 PC、时序电路

2.1.2 存储器

存储器分为内存和外存,内存包括主存储器(main memory,简称主存)和高速缓存(cache)。因为早期计算机中没有高速缓存,所以一般情况下,并不区分内存和主存,两者含义相同,都是特指主存储器。冯·诺依曼结构计算机采用“存储程序”的工作方式,在程序执行前,指令和数据都需事先输入到存储器中,这里的存储器就是指主存储器。
外存包括磁盘存储器和固态硬盘等直接和主存交换信息的存储器,以及一些用于数据备份的海量后备存储器。

2.1.2.1主存储器

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

存储体由许多仔储单元组成,每个存储单元包含若干存储元件,每个存储元件仔储一位二进制代码“0”或“1”。因此存储单元可存储一串二进制代码,称这串代码为存储字,称这串代码的位数为存储字长,存储字长可以是1B(8bit)或是字节的偶数信。
MAR 用于寻址,其位数反映最多可寻址的存储单元的个数,如 MAR 为 I6位,则最多有2的16次方=65536个存储单元,记为64K。MAR的长度与PC(程序计数器Program Counter)的长度相等。
MDR的位数通常等于存储字长,一般为字节的2次幂的整数信。
在这里插入图片描述

【注】MAR与MDR虽然是存储器的一部分,但在现代计算机中却是存在于CPU中的:另外,后文提到的高速缓存(Cache)也存在于CPU中。

2.1.3 外部设备和设备控制器

外部设备简称外设,也称为I/O设备,其中,I/O是输入/输出(input/output)的缩写。外设通常由机械部分和电子部分组成,而且两部分通常是可以分开的,机械部分是外部设备本身,而电子部分则是控制外部设备的设备控制器。
外设通过设备控制器连接到主机上,各种设备控制器统称为1/O控制器、1/O接口或I/O模块。例如,键盘接口、打印机适配器、显示控制器(简称显卡)、网络控制器(简称网卡)等都是一种设备控制器。

2.1.3.1 常见输入设备

把外部信息→传入主机
键盘
鼠标
扫描仪
摄像头
麦克风(话筒)

2.1.3.2 常见输出设备

主机内部信息→展示出来
显示器
打印机
音箱、耳机
绘图仪

【注】:易错重点
硬盘、U 盘、固态硬盘、光盘
属于外存,不属于输入输出设备,但它们兼具输入、输出功能。
触摸屏 : 既是输入设备,也是输出设备。

2.1.4 总线

总线(bus)是传输信息的介质,用于在部件之间传输信息,CPU、主存和I/O模块通过总线互连,在CPU和I/O模块中都内含相应的存储部件,即各类寄存器或缓存器。

图1.1是一个典型的多总线计算机系统硬件结构示意图。其中,CPU包含控制器、
ALU、寄存器堆(有些教材称为寄存器文件 register file或通用寄存器组 GPRs)、总线接口等。CPU通过处理器总线、I/O桥接器等与主存储器和I/O设备交换信息;主存通过存储器总线、I/O桥接器与CPU和1/O设备交换信息;I/O设备通过各自的外设控制器连到I/O总线上,例如,可以把鼠标和键盘连接到 USB控制器的接口上,显示器连接到显示
适配卡的接口上。在一个I/O总线上可以设置多个I/O扩展槽,以连接更多的外设。
在这里插入图片描述
小结
在这里插入图片描述
在这里插入图片描述

2.2 计算机软件

计算机中的操作由存储并运行在其内部的程序进行控制,这是冯·诺依曼结构计算机“存储程序”工作方式的重要特征。计算机软件就是指存储和运行在计算机硬件中的程序,因此程序和软件质量的好坏将大大影响计算机性能的发挥。一般将软件分成应用软件和系统软件两大类。

2.2.1 应用软件

专门为数据处理、科学计算、事务管理、多媒体处理、工程设计以及过程控制等应用所编写的各类程序都称为应用软件。例如,人们平时经常使用的电子邮件收发软件、视频播放软件、游戏软件、炒股软件、文字处理软件、电子表格软件、演示文稿制作软件等都是应用软件。

2.2.2 系统软件

系统软件包括为有效、安全地使用和管理计算机以及为开发和运行应用软件而提供的各种软件,介于计算机硬件与应用软件之间,它与具体应用关系不大。系统软件包括操作系统(如 Windows)、语言处理系统(如C语言编译器)、数据库管理系统(如 Oracle)和各类实用程序(如磁盘碎片整理程序、备份程序)等。操作系统主要用来管理整个计算机系统的资源,包括对它们进行调度、管理、监视和服务等,操作系统还提供计算机用户和硬件之间的人机交互界面,并提供对应用软件的支持;语言处理系统主要用于提供一个用高级语言编程的环境,包括源程序的编辑、转换、链接、装入和调试等功能;数据库管理系统是一种用于建立、使用和维护数据库的软件系统。

系统软件(高频易错)
系统软件 4 大类
操作系统(Windows、macOS、Linux)
语言处理程序(编译、解释、汇编程序)
数据库管理系统(DBMS)
服务性程序(系统工具、维护软件)
包含:杀毒软件、防火墙、驱动程序、磁盘清理、系统诊断、调试程序
应用软件(常见)
办公软件、浏览器、社交软件、图像处理软件、游戏软件、各类专用工具软件

3. 计算机系统层次结构

计算机系统是一个层次结构系统,每一层都通过向上层用户提供一个抽象的简洁接口而将低层的实现细节隐藏起来。计算机解决应用问题的过程就是不同抽象层进行转换的过程。

3.1 计算机系统抽象层的转换

如图是计算机系统层次转换示意图,描述了从最终用户希望计算机完成的应用(问题)到电子工程师使用器件完成基本电路设计的整个转换过程。
在这里插入图片描述
通常用自然语言对应用(问题)进行描述,但计算机硬件只能理解机器语言,要将一个自然语言描述的应用问题转换为机器语言程序,需要经过多个抽象层的转换。

3.1.1 算法和程序

首先,要将应用问题转换为算法(algorithm)描述,使得应用问题的求解变成流程化的清晰步骤,并能确保步骤是有限的。其次,将算法转换为用编程语言描述的程序(program),需要程序员进行程序设计。编程语言(programming language)与自然语言不同,它有严格的执行顺序,不存在二义性,能够唯一地确定计算机执行指令的顺序。

3.1.2 编程语言

编程语言可以分成高级语言和低级语言两类。高级语言(high-level language)和底层计算机结构无关,大部分编程语言都是高级语言;低级语言(low-level language)则和运行程序的计算机的底层结构密切相关,通常称为机器级语言(machine-level language)。机器语言和汇编语言都是机器级语言。
机器语言(machine language)就是用二进制进行编码的机器指令(instruction),每条机器指令都是一个0/1序列。机器语言程序的可读性很差,也不易记忆,给程序员的编写和阅读带来极大的困难。因此,人们引入了一种机器语言的符号表示语言,通过用简短的英文符号和二进制代码建立对应关系,以方便程序员编写和阅读,这种语言称为汇编语言(assembly language)。

3.1.3 语言处理系统

与低级语言相比,高级语言的可读性要好得多,因此绝大部分程序员使用高级语言编写程序。程序员编写的高级语言程序必须转换成机器语言程序才能被计算机直接执行。这个转换过程是计算机自动完成的,因而需要有能够执行自动转换的程序,包含这种转换程序的软件开发工具统称为语言处理系统。
任何一个语言处理系统中,都包含一个翻译程序(translator), 它能把一种编程语言表示的程序转换为等价的另一种编程语言程序。被翻译的语言和程序分别称为源语言和源程序,翻译生成的语言和程序分别称为目标语言和目标程序。翻译程序有以下3类。
(1) :汇编程序(assembler):也称汇编器,用来将汇编语言源程序翻译成机器语言目标程序。
(2) :解释程序(interpreter):也称解释器,用来将源程序中的语句按其执行顺序逐条翻译成机器指令并立即执行。(逐行翻译、翻译一行执行一行,不生成完整目标文件)
(3) :编译程序(compiler):也称编译器,用来将高级语言源程序翻译成汇编语言或机器语言目标程序。

在这里插入图片描述

编译程序、汇编程序、解释程序、链接程序、预处理程序。全部属于:系统软件 → 语言处理程序

3.1.4 操作系统

所有的语言处理系统都必须在操作系统提供的计算机环境中运行,操作系统是对计算
机底层结构和计算机硬件的一种抽象,这种抽象构成了一台可以让程序员使用的虚拟机
(virtual machine)。

3.1.5 指令集体系结构

从应用问题到机器语言程序的每次转换所涉及的概念都是属于软件的范畴,而机器语
言程序所运行的计算机硬件和软件之间需要有一个“桥梁”,这个在软件和硬件之间的界面
就是指令集体系结构(instruction set architecture,ISA),简称体系结构或系统结构
(architecture),有时也称为指令系统或指令集架构,它是软件和硬件之间接口的一个完整
定义。ISA定义了一台计算机可以执行的所有指令的集合,每条指令规定了计算机执行什
么操作,所处理的操作数所存放的位置以及操作数的类型等。ISA 规定的内容包括指令格
式、指令操作类型,指令的操作数类型、寻址方式和可访问地址空间大小,程序可访问的寄存
器个数、位数和编号,控制寄存器的定义,I/O空间的编址方式,中断结构,机器工作状态的
定义和切换,输入/输出结构和数据传送方式,存储保护方式等。
因此,指令集体系结构是指软件能感知到的部分,也称软件可见部分。机器语言程序就
是一个ISA规定的指令的序列,因此,计算机硬件执行机器语言程序的过程就是执行程序
所包含的一条一条指令的过程。

3.1.6 微体系结构

ISA是对指令系统的一种规定或结构规范,而具体实现的组织(organization)称为微体
系结构(microarchitecture),简称微架构。ISA和微体系结构是两个不同层面上的概念,微
体系结构是软件不可感知的部分。例如,加法器采用串行进位方式还是并行进位方式实现
属于微体系结构范畴。相同的ISA可能具有不同的微体系结构,例如,对于Intel x86 这种
ISA,很多处理器的组织方式不同,即具有不同的微架构。
微体系结构由逻辑电路(logic circuit)实现,当然,微架构中的一个功能部件可以用不同
的逻辑来实现,用不同的逻辑实现方式得到的性能和成本有差异。最后,每个基本的逻辑电
路都是按照特定的器件技术(device technology)实现的。

3.2 计算机系统的不同用户

按照在计算机上完成任务的不同,可以把使用计算机的用户分成以下4类:最终用户、系统管理员、应用程序员和系统程序员。

3.2.1 最终用户

使用应用程序完成特定任务的计算机用户称为最终用户(end user),例如,使用炒股软件的股民,使用财会软件的会计等。最终用户使用键盘和鼠标等外设与计算机交互,通过操作系统提供的用户界面启动执行应用程序,从而完成用户任务。

3.2.2 系统管理员

系统管理员(system administrator)是指利用操作系统、数据库管理系统等软件提供的功能对系统进行配置、管理和维护,以建立高效合理的系统环境供计算机用户使用的操作人员。其职责主要包括安装、配置和维护系统的硬件和软件,建立和管理用户账户,升级软件,备份和恢复业务系统和数据等。

3.2.3 应用程序员

应用程序员(application programmer)是指使用高级编程语言编制应用软件的程序员。应用程序员大多使用高级程序设计语言编写程序。

3.2.4系统程序员

系统程序员(system programmer)指设计和开发操作系统、编译器、数据库管理程序等系统软件的程序员。
很多情况下,同一个人可能既是最终用户,又是系统管理员,同时还是应用程序员或系统程序员。例如,对于一个计算机专业的学生来说,有时需要使用计算机玩游戏或网购物品,此时为最终用户的角色;有时需要整理计算机磁盘中的碎片、升级系统或备份数据,此时是系统管理员的角色;有时需要完成老师布置的一个应用程序的开发,此时是应用程序员的角色;有时可能还需要完成老师布置的操作系统或编译程序等软件的开发,此时是系统程序员的角色。
计算机系统可以认为是由各种硬件和各类软件采用层次化方式构建的系统,如图所示,不同用户工作在计算机系统的不同层次。
在这里插入图片描述
从图中可以看出,软件通过ISA在计算机上执行。因此ISA 是整个计算机系统的核心部分。ISA层下面是硬件部分,上面是软件部分。硬件部分包括 CPU、主存和输入/输出等主要功能部件,这些功能部件通过数字逻辑电路设计实现。软件部分包括低层的系统软件和高层的应用软件,汇编程序、编译程序和操作系统等这些系统软件直接在ISA上实现,系统程序员所看到的机器的属性是属于ISA层面的内容,所看到的机器是配置了指令系统的机器,称为机器语言机器,工作在该层次的程序员称为机器语言程序员;系统管理员工作在操作系统层,所看到的是配置了操作系统的虚拟机器,称为操作系统虚拟机;汇编语言程序员工作在提供汇编程序的虚拟机器级,所看到的机器称为汇编语言虚拟机;应用程序员大多工作在提供编译器或解释器等翻译程序的语言处理系统层,因此,应用程序员大多用高级语言编写程序,因而也称为高级语言程序员,所看到虚拟机器称为高级语言虚拟机;最终用户则工作在最上面的应用程序层。

在计算机技术中,一个存在的事物或概念从某个角度看似乎不存在,即感觉不到实际存计算机系统概述在的事物或概念,则称其是透明的。通常,在一个计算机系统中,系统程序员所看到的底层机器级的概念性结构和功能特性对高级语言程序员(通常就是应用程序员)来说是透明的, 即看不见或感觉不到。
在这里插入图片描述

4.程序开发与指令执行过程

4.1从源程序到可执行程序

在这里插入图片描述
预处理程序(cpp)对源程序中以字符#开头的命令进行处理,例如,将#include 命令后面的.h文件内容嵌入到源程序文件中。预处理程序的输出结果还是一个源程序文件,以.i为扩展名。
编译程序(ccl)对预处理后的源程序进行编译,生成一个汇编语言源程序文件,以.s为扩展名,例如,hello.s 是一个汇编语言程序文件。
汇编程序(as)对汇编语言源程序进行汇编,生成一个可重定位目标文件(relocatableobjeet file),以.o为扩展名,例如,hello.o是一个可重定位目标文件;它是一种二进制文件(binary file),因为其中的代码已经是机器指令,数据以及其他信息也都用二进制表示,所以它是不可读的,即打开显示出来的是乱码。
链接程序(ld)将多个可重定位目标文件和标准库函数合并成一个可执行目标文件(executable object file),可执行目标文件简称为可执行文件。本例中,链接器将 hello.o 和标准库函数 printf所在的可重定位目标模块 printf.o进行合并,生成可执行文件 hello。
最终生成的可执行文件保存在磁盘等外存中,可以通过某种方式启动可执行文件运行。
在这里插入图片描述

4.2 指令的执行过程

1 计算机的工作原理

这部分能容并不是很好理解,请先看视频讲解

【王道计算机考研 计算机组成原理】:计算机硬件的工作原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 指令的执行过程
    可执行文件中的代码段是由一条一条机器指令构成的,指令是用0和1表示的一串0/1序列,用来指示CPU完成一个特定的原子操作。例如,取数指今从存储单元中取出一个数据送到CPU的寄存器中,存数指令将CPU寄存器的内容写入一个存储单元,ALU指令将两个寄存器的内容进行某种算术或逻辑运算后送到一个CPU寄存器中,等等。指令的执行过程在第5章中详细描述。下面以取数指令(送至运算器的ACC中)为例来说明,其信息流程如下
    1)取指令:PC一MAR一M一MDR一IR
    根据PC取指令到IR。将PC的内容送MAR,MAR中的内容直接送地址线,同时控制器将读信号送读/写信号线,主存储器根据地址线上的地址和读信号,从指定存储单元读出指令,送至数据线上,MDR从数据线接收指令信息,并传送到IR中。
    2)分析指令:OP(IR)→CU
    指令译码并送出控制信号。控制器根据 IR 中指令的操作码,生成相应的控制信号,送到不同的执行部件。在本例中,IR中是取数指令,因此读控制信号被送到总线的控制线上
    3)执行指令:Ad(IR)→MAR一M→MDR一ACC
    取数操作。将IR中指令的地址码送MAR,MAR中的内容送地址线,同时控制器将读信号送读/写信号线,从主在储器中读出操作数,并通过数据线送至MDR,再传送到ACC中
    每取完一条指令,还需为取下一条指令做准备,计算下一条指令的地址,即(PC)+1一PC

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

5. 精选习题 (1 - 4节练习题,含考研真题)

在这里插入图片描述

答案在这里插入图片描述

在这里插入图片描述
答案
C
在这里插入图片描述
3.
在这里插入图片描述
4.
在这里插入图片描述
心得
在这里插入图片描述
5.
在这里插入图片描述
6.
在这里插入图片描述
7.
在这里插入图片描述
答案
在这里插入图片描述

在这里插入图片描述9.
在这里插入图片描述
10.
在这里插入图片描述

在这里插入图片描述
答案:
C
在这里插入图片描述

在这里插入图片描述
答案:
在这里插入图片描述

6. 计算机系统性能评价

6.1 计算机主要性能指标

6.1.1机器字长

通常所说的“某16位或32位机器”,其中的16、32指的是机器字长,简称字长。字长是指计算机进行一次整数运算(定点整数运算)所能处理的二进制数据的位数,通常与CPU的寄存器位数、ALU有关。因此,字长一般等于通用寄存器的位数或ALU的宽度,字长越长,数的表示范围越大,计算精度越高。计算机字长通常选定为1字节(8位)的整数倍。

6.1.2 数据通路带宽

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

6.1.3 主存容量

主存容量是指主存储器所能存储信息的最大容量,通常以字节(B)来衡量,也可用字数 * 字长(如512Kx16位)来表示存储容星。其中,MAR的位数反映了存储单元的个数,MDR的位教反映了存储单元的字长。例如,MAR为16位,2的16次方=65536,即表示此存储体内有65536个有储单元(可称为64KB内存,1K=1024),若MDR为32位,则表示存储容量为64Kx32位.
在这里插入图片描述
在这里插入图片描述

6.1.4 运算速度

6.1.4.1吞吐量和响应时间。
  1. 吞吐量。指系统在单位时间内处理请求的数量。它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或入,以及所得结果能多快地从内存送给一台外部设备。几乎每步都关系到主存储器,因此系统吞吐量主要取决于主存储器的存取周期。
  2. 响应时间。指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间。通常包括CPU时间(运行一个序所花费的时间)与等待时间(用于磁盘访问,存储器访问,I/O操作,操作系统开销等的时间)。
6.1.4.2 主频和CPU时钟周期。
  1. CPU时钟周期。机器内部主时钟脉冲信号的宽度,它是CPU工作的最小时间单位。时钟脉冲信号由机器脉冲源发出的脉冲信号经整形和分频后形成。
    时钟周期以相邻状态单元间组合逻辑电路的最大延迟时间为基准确定。时钟周期也以指令流水线的每个流水段的最大延迟时间确定。

  2. 主频(CPU时钟频率)。机器内部主时钟的频率,即时钟周期的倒数,它是衡量机器速度的重要参数。对于同一个型号的计算机,其主主频越高,完成指令的一个执行步骤所用的时间越短,执行指令的速度越快。主频最直观的理解就是每秒有多少个时钟周期

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

  1. CPI(Cycle Per Instruction),即执行一条指令所需的时钟周期数。
    不同指令的时钟周期数可能不同,因此对于一个程序或一台机器来说,其CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数,即平均CPI
  2. IPS(Instructions Per Second),即每秒执行多少条指令,IPS=主频/平均 CPI.
  3. MIPS (Million Instructions Per Second),即每秒执行多少百万条指令。
  4. FLOPS (Floating-point Operations Per Second),即每秒执行多少次浮点运算。

CPU执行时间。指运行一个程序所花费的时间。 CPU执行时间=CPU时钟周期数/主频=(指令条数xCPI)+主频

上式表明,CPU的性能(CPU执行时间)取决于三个要素:主频,CPI和指令条数。主频、和指令条数是相互制约的。例如,更改指令集可以减少程序所含的指令条数,但同时可能引CPU结构的调整,从而可能增加时钟周期的宽度(降低主频)。
在这里插入图片描述

6.1.5 基准程序

基准程序(Benchmarks)是专门用来进行性能评价的一组程序,能够很好地反映机器在运行实际负载时的性能,可以通过在不同机器上运行相同的基准程序来比较在不同机器上的运行时间,从而评测其性能。对于不同的应用场合,应该选择不同的基准程序。
使用基准程序进行计算机性能评测也存在一些缺陷,因为基准程序的性能可能与某一小段的短代码密切相关,而硬件系统设计人员或编译器开发者可能针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快,以至于得不到准确的性能评测结果。

6.2 几个专业术语

  1. 系列机。具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成的一个产品系列。
  2. 兼容。指软件或硬件的通用性,即运行在某个型号的计算机系统中的硬/软件也能应用于另一个型号的计算机系统时,称这两台计算机在硬件或软件上存在兼容性。
  3. 固件。将程序固化在ROM中组成的部件称为固件。固件是一种具有软件特性的硬件,吸收了软件/硬件各自的优点,其执行速度快于软件,灵活性优于硬件,是软/硬件结合的产物。例如,目前操作系统已实现了部分固化(把软件永恒地存储于ROM中)。
    小结
    在这里插入图片描述
    在这里插入图片描述

6.3 精选习题

在这里插入图片描述
答案
在这里插入图片描述

在这里插入图片描述

答案
在这里插入图片描述

在这里插入图片描述
答案
B
在这里插入图片描述

在这里插入图片描述

答案
在这里插入图片描述

在这里插入图片描述

答案
在这里插入图片描述

在这里插入图片描述
答案
在这里插入图片描述

在这里插入图片描述
答案
D
在这里插入图片描述

8在这里插入图片描述
答案
在这里插入图片描述

在这里插入图片描述

总结

本章完成了计算机组成原理入门基础框架的全部学习。我们梳理了计算机发展历程、软硬件系统完整组成、系统层次结构、程序底层执行全过程,学习了计算机系统性能评价指标,并结合章节考点、考研真题完成习题训练。
本章是整个计组学科的地基,所有后续 CPU、存储器、总线、I/O 系统等核心章节的知识,都依托于本章的系统结构逻辑。后续本系列会持续连载全部剩余章节,保持图文详解、真题习题全解的内容风格,完整覆盖考点。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐