考试中本章节没有大题,都是概念性质的题目。
简单了解下计算机的发展历史:
用几张图带大家直观感受下实实在在的不同:
电子管:
电子管因为本身的物理构成,以及需要加热阴极和真空要求等特性导致,器件本身很难做成很微小的样子,也就限制了它的发展。
晶体管
晶体管有很多种类是一种固体半导体器件;浅陋一点可以认为他是一种开关,一种可变电流的开关;
与普通的开关相比晶体管利用电信号来控制自身的开合,所以开关速度可以非常快,实验室中的切换速度(频率)可达100GHz以上。
2016年,劳伦斯伯克利国家实验室的一个团队打破了物理极限,将现有的最精尖的晶体管制程从14nm缩减到了1nm,完成了计算技术界的一大突破。
因此,晶体管与电子管相比拥有更多的突破和发展可能性。
(大规模)集成电路(集成电路板-正面)
集成电路(Integrated Circuit,简称IC)是指将多个电子器件(如晶体管、电阻、电容等)集成在一块半导体材料上,并通过金属线路连接起来,形成一个完整的电子功能模块。根据集成度的不同,可分为小规模集成电路(SSI)、中规模集成电路(MSI)、大规模集成电路(LSI)和超大规模集成电路(VLSI)等。
(大规模)集成电路(集成电路板-背面)
超大规模集成电路
大规模集成电路(Large Scale Integration,LSI)是指在一个芯片上集成了大量的电子元件,通常包含几千到几十万个晶体管。这种集成电路具有较高的集成度,可以实现复杂的功能,如微处理器、存储器等。LSI的制造工艺要求非常高,需要使用先进的光刻技术和微影技术。
超大规模集成电路(Very Large Scale Integration,VLSI)是在一个芯片上集成了数百万到数十亿个晶体管的集成电路。VLSI技术的出现使得芯片的集成度进一步提高,可以实现更加复杂和高性能的电子系统。VLSI技术也需要更加先进的制造工艺,如深紫外光刻技术和多层金属线技术。
芯片内部的实际样子是怎样的,可以来这里直观体验:
https://www.bilibili.com/video/BV1aY411L7MM/?vd_source=faa1dc615b52ddcc8cd54abb2830cb22
内存内部的实际样子是怎样的,可以来这里直观体验:
https://www.bilibili.com/video/BV1Ce4y1W71k/?vd_source=faa1dc615b52ddcc8cd54abb2830cb22
机械磁盘的内部:
https://www.bilibili.com/video/BV1R8411c7uZ/
有了这些初步的印象,我们再开始本系列课程。
1.1 计算机系统的层次结构
计算机系统层次结构中,**“机器”**被定义为是能存储和执行相应语言程序的算法和数据结构的集合体。
各级机器级的实现采用翻译技术或解释技术,或是这两种技术的结合。
计算机系统的多级层次结构:
M5:应用语言机器 应用语言程序 → to→ 应用程序包翻译 → to→ 高级语言程序
M4:高级语言机器 高级语言程序 → to→ 编译程序翻译 → to→ 汇编语言
M3:汇编语言机器 汇编语言程序 → to→ 汇编程序翻译 → to→ 机器语言程序
M2:操作系统机器 用机器语言程序解释作业控制语句
M1:传统机器语言机器 用微指令程序解释机器指令
M0:微程序机器 微指令由硬件直接执行
通常把没有配备软件的纯硬件系统称为“裸机”。第3层~第5层称为虚拟机,简单来说就是软件实现的机器。
执行翻译动作的装置或者软件被称作**"编译器"**
下图可以更好地理解各层的作用:
翻译:将第N+1级程序全部变换成第N级程序,再在第N级执行。故速度快, 占用存储空间大(L4级以上)。 解释:将第N+1级程序的第一条语句变换成第N级程序语言,执行,在将第N+1级程序的第二条语句变换成第N级程序语言,执行,以此类推,直到程序的最后一条语句执行完成。故速度慢, 占用的存储空间小(L3级以下)。
高级语言以低级语言为基础,由低级语言支撑。
低级语言指令功能较简单,但速度快,高级语言指令功能较强,执行速度慢。
高级语言通过低级语言实现。
1.2 计算机系统结构、计算机组成和计算机实现
1.2.1 计算机系统结构的定义和内涵
计算机系统结构【本课程的研究对象】:也叫计算机系统的体系结构,它只是系统结构中的一部分,指的是传统机器级的系统结构。计算机系统结构研究的是软、硬件之间的功能分配以及对传统机器级界面的确定。偏向概念设计(战略、方向)
计算机组成:计算机系统结构的逻辑实现,包括机器级内部的数据流和控制流的组成以及逻辑设计等。偏向详细设计(战术)
计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,器件、模块、插件、底板的划分与连接,专用器件的设计,微组装技术,信号传输,电源、冷却及整机装配技术等。偏向物理实现(战斗)
计算机实现的设计着眼于器件技术和微组装技术,其中,器件技术起着主导作用。
结构?组成?实现?
- 结构:一个整体应该包含哪几个重要部分,其分界线是什么。
- 组成:这个整体应如何对这几个部分进行一个组织,让它们使用起来更方便。
- 实现:选择什么样的材料来完成这个整体。
系统结构是对计算机系统中各级界面的定义及其上下的功能分配。
透明性概念:客观存在的事物或属性从某个角度看不到,称这些事物和属性对它是透明的。
打个比方,以我们实际工作生活中的一个项目举例:(我个人这么理解,大家有更好的建议也请教教我哈。。)
系统结构:就是在建设一个系统早期我们做的架构图设计
组成:在架构图的基础上,形成的逻辑拓扑设计;主要在架构图的基础上标示系统工作的数据流和控制流设计。
实现:系统完工后(也可能是前),形成的系统物理构成信息;包括了系统中各部件之间的物理的连接,组装等。
例一:
计算机系统结构:指令系统的确定。
计算机组成:指令的实现,如取指令、指令操作码译码、计算操作数地址、取数、运算、送结果等的操作安排和排序。
计算机实现:实现这些指令功能的具体电路、器件的设计及装配技术。
例二:
指令系统中是否有乘法指令:计算机系统结构内容
乘法指令使用专门的乘法器实现还是用加法器经多步操作来实现:计算机组成内容
乘法器、加法器的物理实现,如选择什么样的器件什么样的组装技术:计算机实现内容。
计算机系统结构:确定指令系统中是否要设乘法指令。
计算机组成:乘法指令是用专门的高速乘法器实现,还是靠用加法器和移位器经一连串时序信号控制其相加和右移来实现。
计算机实现:乘法器、加法-移位器的物理实现,如器件的类型、集成度、数量、价格,微组装技术的确定和选择。
例三:
确定主存容量与编指方式:计算机系统结构内容
主存逻辑结构是否采用多体交叉:计算机组成内容
选择什么样的器件什么样的组装技术:计算机实现内容。
计算机系统结构:主存容量与编址方式(按位、按字节还是按字访问等)的确定。
计算机组成:为达到性能价格要求,主存速度应该为多少,逻辑结构是否采用多体交叉。
计算机实现:主存器件的选定、逻辑设计、微组装技术的使用。
1.3 计算机系统的软硬取舍、性能评测及定量设计原理
1.3.1 软、硬件的基本原则
软、硬件功能分配比例对计算机系统性能的影响:
(1) 提高硬件功能的比例可提高解题速度,减少程序所需的存储空间,但会增加硬件成本,降低硬件利用率和计算机系统的灵活性及适应性。
(2) 提高软件功能的比例可降低硬件成本,提高系统的灵活性、适应性,但解题速度会下降,软件设计费用和所需的存储量将增加。
程序访问的局部性定律
程序访问的局部性包括了时间上和空间上的两个局部性。
计算机系统设计方法
- 从上往下
- 从下往上
- 从中间向两边
计算机系统设计方法最好是从中间向两边设计。(中间确定软硬件功能分配,然后往两边)
1.4 软件、应用、器件的发展对系统结构的影响
1.4.1 软件发展对系统结构的影响
(1)实现软件移植的技术途径及其适用环境。(常考简答题)
① 统一高级语言:适用于结构完全相同以至完全不同的机器之间的高级语言程序应用软件的移植;
② 采用系列机:适用于结构相同或相近的机器之间的汇编语言应用软件和部分系统软件的移植;
③ 模拟与仿真:适用于结构不同的机器之间的机器语言程序的移植。
(2)高级语言面向题目和算法,与机器具体结构关系不大;统一出一种通用的高级语言就可以编写出可移植与不同机器的软件。那么软件移植采用统一高级语言途径的方法和存在的问题:
存在的问题:
- 不同的用途要求的语法语义结构不同。
- 人们对语言的基本结构看法不一。
- 同一种高级语言在不同厂商的机器上也不能完全通用。
- 受习惯势力阻挠,人们不愿抛弃惯用的已验证的软件。
(3)软件兼容的定义及系列机对软件兼容的要求:
- 机器语言程序及编译程序都不加修改地适用于系列内各档机器,则称各档机器是软件兼容。
- 软件兼容包括向上(下)兼容和向前(后)兼容。
- 同一系列内的机器一般应做到向上兼容。
- 系列机软件必须保证向后兼容,力争向前兼容。
向后兼容是指新版本的软件能够在旧版本的硬件或软件环境中正常运行,保持与旧版本的兼容性。
(4)模拟与仿真的概念及两者区别(常考简答题)
模拟:用机器语言程序解释实现软件移植的方法。
仿真:用微程序直接解释另一种机器指令系统的方法。
模拟与仿真的主要区别在于解释用的语言及其存储的位置,
模拟是用机器语言程序解释,其解释程序存储于主存中;
仿真是用微程序解释,其解释程序存储于控制存储器中。
模拟的意思在当前计算机是用软件方法模拟一个计算机的指令系统,用解释的方式实现,最常见的应用是虚拟机,这是指我们VMware,VirtualBox那种虚拟机,俗称 “沙盒” ,但速度很慢的。
仿真的意思是用当前计算机的微程序去解释另一台计算机的指令系统,这叫做仿真,那种Android x86系统就是仿真。
1.5 系统结构中的并行性发展和计算机系统的分类
1.5.1 并行性的概念与开发
并行性的含义与级别
从计算机执行的角度来看,并行性等级由高到低可分为指令内部、指令之间、任务或进程间和作业或程序间。
提高计算机系统并行性技术的三个途径?(常考简答题)
① 时间重叠:在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,加快硬件周转来赢得速度。
② 资源重复:在并行概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能。
③ 资源共享:用软件方法让多个用户按一定时间顺序轮流使用同一套资源来提高资源利用率,从而提高系统的性能。
1.5.2 计算机系统的分类
(1)弗林(Flynn分类法)提出按 指令流 和 数据流 的多倍性对计算机系统进行分类。(常考简答题)
① 单指令流单数据流SISD:传统单处理器计算机;(就是传统的顺序执行的单处理器计算机,早期的计算机都是SISD机器)
② 单指令流多数据流SIMD:阵列处理机(ILLICA Ⅳ、分布式存储器阵列处理机);相联处理机;
SIMD以并行处理机(阵列处理机)为代表,并行处理机包括多个重复的处理单元,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同数据。相联处理机也属于这一类。
③ 多指令流单数据流MISD:处理机间的宏流水;脉动阵列流水机;(这类系统实际上很少见到。)
④ 多指令流多数据流MIMD:多处理机;
这里给个直观理解的例子:--来自ChatGPT,哈哈哈...
以下是一些常见的服务器CPU型号和它们的Flynn分类法分类:
- Intel金牌CPU型号:Intel Xeon Gold 6240 Flynn分类法分类:多指令流多数据流(MIMD)
- Intel银牌CPU型号:Intel Xeon Silver 4214 Flynn分类法分类:多指令流多数据流(MIMD)
- Intel铜牌CPU型号:Intel Xeon Bronze 3204 Flynn分类法分类:多指令流多数据流(MIMD)
以下是三款常用的Intel PC机所使用的CPU型号以及它们在Flynn分类法中的分类:
- Intel Core i7-10700K:属于单指令流多数据流(SIMD)类型,适用于高性能计算和多媒体处理。
- Intel Core i5-10600:属于单指令流单数据流(SISD)类型,适用于一般计算任务和办公应用。
- Intel Core i3-10100:属于单指令流单数据流(SISD)类型,适用于基本计算任务和日常使用。
在计算机系统结构中,CU、PU和MM是常见的缩写,分别代表控制单元(Control Unit)、处理单元(Processing Unit)和主存储器(Main Memory)。
- 控制单元(CU):控制单元是计算机系统中的一个重要组件,负责指导和协调计算机的各个部件进行工作。它控制着数据的流动,从主存储器中读取指令并解码,然后发出相应的控制信号来执行指令。控制单元还负责处理中断和异常情况,并确保计算机系统的正常运行。
- 处理单元(PU):处理单元是计算机系统中的核心部分,也称为中央处理器(Central Processing Unit,CPU)。它包括算术逻辑单元(Arithmetic Logic Unit,ALU)和寄存器(Registers)。处理单元执行指令,进行算术和逻辑运算,控制数据的流动,并与主存储器和输入输出设备进行交互。处理单元是计算机系统的计算和控制中心。
- 主存储器(MM):主存储器是计算机系统中用于存储数据和指令的地方。它通常是随机存取存储器(Random Access Memory,RAM)的形式,用于临时存储正在执行的程序和数据。主存储器是计算机系统中速度最快的存储器,与处理单元之间的数据交换通过总线进行。主存储器的容量决定了系统可以存储和处理的数据量。
这些组件相互协作,构成了计算机系统的核心部分,实现了数据的存储、处理和控制。
- IS(Instruction Stream):指令流
- DS(Data Stream):数据流
- CS(Control Stream):控制流
- CU(Control Unit):控制部件
- PU(Processing Unit):处理部件
- SM、MM:存储器
(2)冯氏分类法(冯泽云 Tse-yun Feng)?(常考简答题)
并行性从计算机系统处理数据的角度划分:
① 字串位串(WSBS):每次只处理一个字中的一位,无并行性,如早期的位串行机
②字串位并(WSBP):每次处理一个字中的 n 位,如传统的位并行机。
③字并位串(WPBS):一次处理 m 个字中的 1 位,如某些阵列处理剂、相联处理机。
④字并位并(WPBP):一次处理 m 个字,每个字为 n 位,如某些相联处理机、大多数阵列处理机、多处理机
(3)字串位串、字并位串、字并位并具体指的是什么?有什么区别?【了解知识】
"字串位串"、"字并位串"、"字并位并" 是用来描述数据处理方式的术语,它们指的是不同的数据处理和存储方式。这些术语通常与计算机体系结构、数据传输和操作有关。以下是它们的具体含义和区别:
字串位串(Word-Serial Bit-Serial):
"字串" 意味着数据以字为单位进行传输和处理。 "位串" 意味着数据位按位地连续传输。 在这种方式下,一次传输或处理一个字的数据,然后逐位逐位地处理,然后再传输或处理下一个字的数据。
字并位串(Word-Parallel Bit-Serial):
"字并" 意味着多个字同时传输或处理。 "位串" 意味着数据位按位地连续传输。 这种方式允许多个字同时传输,但每个字内部的数据位逐位处理。
字并位并(Word-Parallel Bit-Parallel):
"字并" 意味着多个字同时传输或处理。 "位并" 意味着数据位也同时传输或处理。 这种方式允许多个字同时传输,且每个字内部的数据位也同时处理。
区别:
"字串位串" 是一种较为简单的数据传输和处理方式,每个字都在处理之后才处理下一个字,数据位一个接一个地处理。
"字并位串" 允许多个字同时传输,但每个字内的数据位仍然是一个接一个地处理。
"字并位并" 是最高级别的方式,多个字同时传输,且每个字内的数据位也同时处理。
这些方式的选择取决于计算机体系结构、数据传输的需求以及处理器设计。不同的方式可以在性能和资源利用方面产生不同的权衡,根据具体应用需求来选择适当的方式。