资讯详情

【计算机体系结构】计算机体系结构(1) 计算机系统结构的设计基础

文章目录

  • 1.1 计算机系统结构的基本概念
    • 1.1.1 计算机系统的层次结构
    • 1.1.2 计算机系统结构
    • 1.1.3 计算机组成与实现
    • 1.1.4 计算机系统结构的分类
      • 1. `Flynn` 分类法
      • 2. 冯氏分类法
      • 3. `Handler` 分类法
  • 1.2 计算机系统设计技术
    • 1.2.1 计算机系统设计原理
      • 1. 加快频繁事件的速度 `Make the Common Case Fast`
      • 2. `Amdahl` 定律
      • 3. 程序访问的局部规律
    • 1.2.2 计算机系统设计的方法
      • 1. 软硬件舍取的基本原则
      • 2. 计算机系统设计师的主要任务
      • 3. 计算机系统设计的基本方法
  • 1.3 计算机系统的性能评估
    • 1.3.1 CPU性能
    • 1.3.2 `MIPS` 和 `MFLOPS`
      • 1. `MIPS`
      • 2. `MFLOPS`
    • 1.3.3 基准测试程序
    • 1.3.4 统计和比较性能评价结果
      • 1. 算术性能平均值 A m A_m Am
      • 2. 平均几何性能 G m G_m Gm
      • 3. 平均调和性能 H m H_m Hm
    • 1.3.5 Intel微处理器性能评价
      • 1. `iCOMP 1.0` 和 `iCOMP 2.0`
      • 2. `iCOMP 3.0`
  • 1.4 计算机系统结构的发展
    • 1.4.1 计算机系统结构的演变
    • 1.4.2 软件、应用程序和设备对系统结构发展的影响
      • 1. 软件对系统结构发展的影响
      • 2. 应用对系统结构发展的影响
      • 3. 设备对系统结构发展的影响

世界上第一个通用 Electronic Numerical Integrator And Computer,ENIAC,1946年在宾夕法尼亚大学建成。 ENIAC 输入和更换程序特别复杂,ENIAC 著名数学家冯·诺依曼提出「」概念。这个著名的存储程序 stored-program 概念已成为计算机工作的基本机制。图灵同时也提出了这一概念。

世界上第一个英国剑桥大学建于1949年 Electronic Delay Storage Automatic Calculator, EDSAC 计算机,它使用 3000 3 000 3000 只电子管,每秒钟能完成 700 700 700 次加法运算。1953年IBM公司制造出第一台

50 多年来,计算机系统性能得到了大幅度地提高,价格却大幅度地下降。计算机的发展已经历了四次更新换代,现在正处于第五代。依据半导体技术发展水平,这五代划分应该是:

  • 第一代:1945~1954 年,电子管和继电器
  • 第二代:1955~1964 年,晶体管和磁芯存储器;
  • 第三代:1965~1974 年,中、小规模集成电路 MSI-SSl
  • 第四代:1975~1990 年,LSI/VLSI 和半导体存储器;
  • 第五代:1990 年至今,ULSI/GSI (Giga-Scale Integration) 巨大规模集成电路。

计算机系统更新换代的标志主要是两个方面,一是;二是。有人统计在1965年到1975年期间,计算机系统性能提高近 100 100 100 倍,其中由于器件性能提高使其性能增加 10 10 10 倍,而另外的 10 10 10 倍主要归功于系统结构改进——在50多年的发展进程中,器件在技术上的改进是比较稳定的,而系统结构的改进则有较大起伏。特别是近20年来,由于计算机系统的设计对集成电路技术的依赖性大为增加,从而使得在这一期间内,各类不同的计算机系统的性能增长率有了差异。

  • 巨型机的性能增长得益于器件技术和系统结构两方面的改进;
  • 大型机的性能增长则主要靠器件工艺上的改进,因为系统结构方面的改进没有新的突破;
  • 小型机的发展,一方面是由于计算机实现方法有了较大的改进,另一方面是因为采用了许多大型机中行之有效的先进技术。 然而这三类计算机,在1970年到1990年期间,每年计算机的性能平均增长率均只在 18 % 18\% 18% 左右。 与之形成明显对照的是,微型计算机的性能增长非常快,每年的平均增长率约为 35 % 35\% 35% ,这是因为微型计算机能从「集成电路技术的进展中」得到最为直接的好处。自20世纪80年代起,实际上已成为新系统结构和老系统结构更新时,所选用的主要技术

自1985年开始,一种具有新颖设计风格的系统结构,即 ,为计算机工业界所青睐。它将「集成电路技术进展」、「编译技术改进」和「新的系统结构设计思想」这三者有机地结合起来,从而使这种风格设计的计算机系统的性能,以每年增长一倍的高速率加以改进。应该指出的是,这种改进的基础是通过「对以往计算机如何被使用的模拟实验数据」,进行定量分析后获得的。有的学者将这种设计风格称为,显然这比传统的定性设计风格要精确得多,开发 RISC 技术的两位先驱者,美国加州大学伯克莱分校的 D. Patterson 教授和斯坦福大学的 J .Hennessy 教授,是这种定量分析设计方法的主要倡导者。

1.1 计算机系统结构的基本概念

1.1.1 计算机系统的层次结构

现代通用计算机系统是由硬件和软件组成的一个复杂系统,按其功能可划分为,如图1.1所示。层次结构由上往下依次为应用语言机器级、高级语言机器级、汇编语言机器级、操作系统机器级、传统机器级和微程序机器级。对于一个具体的计算机系统,层次的多少会有所不同。

  • Translation 是先用转换程序将上一级机器级上的程序,整个地变换成下一级机器级上可运行的等效程序,然后再在下一级机器级上去实现的技术。
  • Interpretation 则是在下一级机器级上用它的一串语句或指令,仿真上一级机器级上的一条语句或指令的功能,通过对上一级机器语言程序中的每条语句或指令逐条解释来实现的技术。

简要介绍各个层次如下:

  • 是为了满足信息管理、人工智能、图像处理、辅助设计等专门的应用来设计的。使用 L5 编写的程序,一般是经翻译成 L4 程序后,再逐级向下实现的。
  • 上的程序,可以先用整个地翻译成 L3 程序或 L1 程序,再逐级或越级向下实现,也可以用汇编语言 L3 程序、机器语言 L1 程序,甚至 L0 程序解释实现。
  • 上的汇编语言 L3 源程序,则先用,将其整个变换成等效的二进制机器语言 L1 目标程序,再在传统机器级上实现。
  • 虽然已发展成用高级语言(如面向编写操作系统软件的C语言)编写,但最终还是要用的。它提供了传统机器级所没有,但为汇编语言和高级语言使用和实现所用的基本操作、命令和数据结构,例如,处理机管理、进程管理、文件管理、存储管理、设备管理、多道程序共行、多重处理、作业控制等所用到的操作命令、语句和数据结构等。因此,操作系统机器级放在传统机器级和汇编语言机器级之间是适宜的。
  • 采用控制,其指令可直接用来实现,也可以采用控制,用微指令 L0 程序来解释实现。
  • 。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dl46Fo59-1644076074317)(https://img-blog.csdnimg.cn/abd60653e3fc441fa9057badf8b1d794.png)]

就目前的状况来看,第 0 0 0 级用硬件实现,第 1 级用微程序(固件)实现,第 2 2 2 级到第 5 5 5 级大多用软件实现。我们称,以区别于由。虚拟机器不一定全都由软件实现,有些操作可以用固件或硬件实现。如操作系统中的某些命令可由比它低两级的微程序解释,或全部用硬件来实现;高级语言机器则直接用微程序解释或用硬件实现,没有编译软件。

计算机系统结构作为一门学科,主要研究,即哪些功能由软件完成,哪些功能由硬件完成。采用何种实现方式,要从整个计算机系统的效率、速度、价格、资源状况等方面考虑,——。原理上,软件实现的功能完全可以用硬件或固件完成,硬件实现的功能也可以由软件的模拟来完成,只是其性能、价格、实现的难易程度等有所不同。具有相同功能的计算机系统,其软、硬件功能分配比例可以在很宽的范围内变化。

1.1.2 计算机系统结构

“计算机系统结构”这个名词来源于英文 Computer Architecture ,也有译成“计算机体系结构”的。architecture 这个词原来用于建筑领域,其意义是“建筑学”、“建筑物的设计或式样”,它是指一个系统的外貌。20世纪60年代这个名词被引入计算机领域,“计算机系统结构”一词已经得到普遍应用,,已成为一门学科。但对“计算机系统结构”一词的含义仍有多种说法,并无统一的定义。

这个词是 Amdahl 等人在1964年提出的。他们把系统结构定义为由程序设计者所看到的一个计算机系统的属性,即。这实际上是。按照计算机层次结构,。例 如:

  • 对于使用FORTRAN高级语言程序员来讲,一台IBM3090大型机、一台VAX11/780小型机或一台PC微型机,看起来都是一样的,因为在这三台计算机上运行他所编制的程序,所得到的结果是一样的。
  • 但对于使用汇编语言程序的程序员来讲,由于这三台机器的汇编语言指令完全不一样,他所面对的计算机的属性就也会不一样。
  • 另外,即使对同一台机器来讲,处在不同级别的程序员,例如应用程序员、高级语言程序员、系统程序员和汇编程序员,他们所看到的计算机外特性也是完全不一样的

那么通常所讲的「」,应该是处在哪一级的程序员所看到的外特性呢?比较一致的看法,是,这种外特性是指由他们所看到的计算机基本属性,即计算机的概念性结构和功能特性,这是机器语言程序员或编译程序编写者,为使其所编写、设计或生成的程序,能在机器上正确运行所必须遵循的。由机器语言程序员或编译程序编写者,所看到的计算机的基本属性,是指;在传统机器级之上的功能被视为属于,而在其之下的则属于。因此,计算机系统的概念性结构和功能属性,实际上是

在计算机技术中,一种本来是存在的事物或属性,但从某种角度看似乎不存在,称为。通常,在一个计算机系统中,。由此看出,在层次结构的各个级上都有它的系统结构。

就目前的通用机来说,应包括以下几个方面:

  • 「硬件能直接识别和处理的数据类型和格式」等的
  • 最小可寻址单位、寻址种类、地址计算等的方式;
  • 通用/专用寄存器的设置、数量、字长、使用约定等的
  • 二进制或汇编级指令的操作类型、格式、排序方式、控制机构等的
  • 内存的最小编址单位、编址方式、容量、最大可编址空间等的
  • 中断的分类与分级、中断处理程序功能及入口地址等的
  • 系统机器级的
  • 输入/出设备的连接、使用方式、流量、操作结束、出错指示等的
  • 各部分的等。

1.1.3 计算机组成与实现

Computer Organization 指的是,也常称为。它包括机器级内的数据流、控制流的组成以及逻辑设计等,着眼于机器级内各事件的排序方式与控制机构、各部件的功能及各部件间的联系。计算机组成设计要解决的问题是在所希望达到的性能和价格下,怎样把各种设备和部件组织成计算机,以实现所确定的系统结构。计算机组成设计主要是围绕提高速度,着重从以及来进行的。

计算机组成设计要确定的方面一般应包括:

  • (在数据总线上一次并行传送的信息位数多少);
  • (设置哪些专用部件,如乘除法专用部件、浮点运算部件、字符处理部件、地址运算部件等,每种专用部件设置的数量等,这些都与机器所需达到的速度、专用部件的使用频度高低及允许的价格等有关);
  • (共享程度高,即使操作在逻辑上不相关也只能分时使用,限制了速度,但价格便宜;可以设置多个部件降低共享程度,提高操作并行度来提高速度,但价格也将提高);
  • (功能部件的控制和处理方式是采用顺序串行,还是采用重叠、流水或分布处理);
  • (事件、操作的排序机构是采用硬联控制还是用微程序控制,是采用单机处理还是用多机处理或功能分布处理);
  • (在不同部件之间怎样设置及设置多大容量的缓冲器来弥补它们的速度差异;是采用随机方式,还是先进先出、先进后出、优先级或循环方式来安排等待处理事件的先后顺序);
  • (为优化性能和优化处理,采用什么原则来预测未来的行为);
  • (采用什么样的冗余技术和容错技术来提高可靠性)

Computer Implementation 指的是。它包括处理机、主存等部件的物理结构,器件的集成度、速度和信号,器件、模块、插件、底板的划分与连接,专用器件的设计,电源、冷却、装配等技术。

计算机系统结构是指令系统及其执行模型;计算机组成是计算机系统结构的逻辑实现; 计算机实现是计算机组成的物理实现。它们各自包含不同的内容和采用不同的技术,但又有紧密的联系。在学习和理解时有两点需要注意:

1.1.4 计算机系统结构的分类

研究计算机系统的分类方法,有助于认识计算机系统结构的组成和特点,理解计算机系统的工作原理和性能。常用的计算机系统结构分类方法有三种:

1. Flynn 分类法

1966年 M. J. Flynn 提出了按照进行分类的方法,其定义如下:

  • instruction stream ———机器执行的指令序列。
  • data stream ———由指令流调用的数据序列,包括输入数据和中间结果。
  • multiplicity ———在系统最受限制的部件(瓶颈)上,同时处于同一执行阶段的、

按照指令流和数据流的不同组织方式,把计算机系统的结构分为以下四类:

  • 单指令流单数据流 Single Instruction stream Single Data stream, SISD
  • 单指令流多数据流 Single Instruction stream Multiple Data stream, SIMD
  • 多指令流单数据流 Muhiple Instruction stream Single Data stream, MISD
  • 多指令流多数据流 Muhiple Instruction stream Multiple Data stream, MIMD

对应于这四类计算机的基本结构框图,如图1.2所示。SISD 是传统的SIMD为代表。MISD 在实际上代表何种计算机,也存在着不同的看法,有的文献把看做是 MISD 结构,属于 MIMD 结构。 在这里插入图片描述

2. 冯氏分类法

1972年美籍华人冯泽云 Tse-yun Feng 教授,提出了用最大并行度 Pm 来定量描述各种计算机系统特性的 Pm 的定义为:

图1.3描述了用最大并行度对计算机系统分类的方法。用平面直角坐标系中的一个点代表一个计算机系统,横坐标代表字宽 n n n 位,即在中同时处理的二进制位数;纵坐标代表位片宽度 m m m 位,即在中能同时处理的字数。

由图1.3可得出四类不同处理方法的计算机系统结构:

  • Word Serial and Bit Serial, WSBS ,其中 n = 1 , m = 1 n = 1, m = 1 n=1,m=1 。这是
  • Word Parallel and Bit Serial, WPBS ,其中 n > 1 , m = 1 n > 1, m = 1 n>1,m=1 。这是
  • Word Serial and Bit Parallel, WSBP ,其中 n = 1 , m > 1 n = 1, m > 1 n=1,m>1 。STARAN, MPP, DAP 属于这种结构。
  • Word Parallel and Bit Parallel, WPBP ,其中 n > 1 , m > 1 n > 1, m > 1 n>1,m>1 。PEPE, ILLIAC Ⅳ, Cmmp 属于这种结构。

3. Handler 分类法

1977年 Wolfgan Handler 根据提出了另一种分类法。这种分类方法把计算机的硬件结构分成三个层次,并分别考虑它们的。这三个层次是: ① 程序控制部件 PCU 的个数 k k k ; ② 算术逻辑部件 ALU 或处理部件 PE 的个数 d d d ; ③ 每个算术逻辑部件包含基本逻辑线路 ELC 的套数 w w w 。

这样我们可以把一个计算机系统的结构用如下公式表示:t(系统型号) = (k, d, w) 。为了进一步揭示流水线的特殊性,一个计算机系统的结构可用如下公式表示:t(系统型号) = (k×k′, d×d′, w×w′) ,其中 k′ 表示宏流水线中程序控制部件的个数,d′ 表示指令流水线中算术逻辑部件的个数,w′ 表示操作流水线中基本逻辑线路的套数。

例如,Crayl 有 1 1 1 个CPU, 12 12 12 个相当于 ALUPE 的处理部件,可以最多实现 8 8 8 级流水线。字长为 64 64 64 位,可以实现 1 ~ 14 1~14 1~14 位流水线处理。所以 Crayl 的系统结构可表示为: t ( C r a y l ) = ( 1 ,   12 × 8 ,   64 ( 1 ~ 14 ) ) t(Crayl) = (1,\ 12×8,\ 64( 1~14) ) t(Crayl)=(1, 12×8, 64(1~14))

下面是用这种分类法的例子: t ( P D P 11 ) = ( 1 ,   1 ,   16 ) t ( I L L I A C Ⅳ ) = ( 1 ,   64 ,   64 ) t ( S T A R A N ) = ( 1 ,   8192 ,   1 ) t ( C m m p ) = ( 16 ,   1 ,   16 ) t ( P E P E ) = ( 1 × 3 ,   288 ,   32 ) t ( T I A S C ) = ( 1 ,   4 ,   64 × 8 ) \begin{aligned} &t( PDP11 ) = ( 1,\ 1,\ 16 ) \\ &t( ILLIAC Ⅳ) = (1,\ 64,\ 64 ) \\ &t( STA RAN) = (1,\ 8192,\ 1) \\ &t(Cmmp) = (16,\ 1,\ 16 )\\ &t( PEPE) = ( 1×3,\ 288,\ 32) \\ &t( TIASC) = ( 1,\ 4,\ 64×8) \end{aligned} ​t(PDP11)=(1, 1, 16)t(ILLIACⅣ)=(1, 64, 64)t(STARAN)=(1, 8192, 1)t(Cmmp)=(16, 1, 16)t(PEPE)=(1×3, 288, 32)t(TIASC)=(1, 4, 64×8)​


1.2 计算机系统设计技术

1.2.1 计算机系统设计原理

下面介绍计算机系统设计中

1. 加快经常性事件的速度 Make the Common Case Fast

这是计算机设计中。使经常性事件的处理速度加快,能明显提高整个系统的性能。一般说来,经常性事件的处理比较简单,因此比不经常出现的事件处理要快。例如,在CPU中两个数进行相加运算时,相加结果可能出现溢出现象,也可能无溢出发生,显然经常出现的事件是不发生溢出的情况,而溢出是偶然发生的事件。因此,在设计时应优化不发生溢出的情况,使这个经常性事件的处理速度尽可能快,而对溢出处理则不必过多考虑优化。因为发生溢出的概率很小,即使发生了,处理得慢一些也不会对系统性能产生很大的影响。

在计算机设计中经常会遇到上述情况,那么,以及,这就是下面介绍的 Amdahl 定律要解决的问题

2. Amdahl 定律

Amdahl 定律:系统中对某一部件采用某种更快的执行方式后,整个系统性能的改进程度,取决于「这种执行方式被使用的频率」或「所占总执行时间的比例」。 系 统 加 速 比 = 系 统 改 进 后 的 性 能 系 统 改 进 前 的 性 能 = 系 统 改 进 前 执 行 某 一 任 务 的 总 时 间 系 统 改 进 后 执 行 同 一 任 务 的 总 时 间 系统加速比 \\ {} \\ =\displaystyle \dfrac{系统改进后的性能}{系统改进前的性能} \\ {} \\=\dfrac{ 系统改进前执行某一任务的总时间} {系统改进后执行同一任务的总时间} 系统加速比=系统改进前的性能系统改进后的性能​=系统改进后执行同一任务的总时间系统改进前执行某一任务的总时间​

Amdahl 定律定义了。系统加速比取决于两个因素:

  1. 。例如,一个需运行 60 s 60s 60s 的程序中,有 20 s 20s 20s 的运算可以加速,那么该比例就是 20 60 \dfrac{20}{60} 6020​。这个值用“”表示,它总是小于或等于 1 1 1 的。
  2. 。例如,系统改进后执行程序,其中可改进部分花费的时间为 2 s 2s 2s ,而改进前该部分需花费的时间为 5 s 5s 5s ,则性能提高为 5 2 \dfrac{5}{2} 25​ 。用“”表示性能提高比,一般情况下它是大于 1 的。

若以 T o T_o To​ 和 T e T_e Te​ 分别表示采取某种改进措施前后,完成同一任务所需的总时间,用

标签: hm2518集成电路6ni37ic集成电路rn4907fe双晶体管继电器nt772g03d1c集成电路3rn1继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台