一.重点难点

        1.冯.诺依曼结构计算机特点与计算机基本工作原理

        2.程序的开发和执行过程

        3.计算机系统层次结构

        4.计算机性能评价

二.特点与工作原理

        在讲述冯·诺依曼 结构计算机之前,先介绍一下第一台实际使用的电子数字计算机——ENIAC,它是于1946年美国宾夕法尼亚大学研制出来,用于解决复杂弹道计算问题,能进行5000次加法/s,是由电子真空管组成。与现代计算机不同的是,它用十进制表示信息并计算,采用手动编程,通过设置开关和插拔电缆来实现,并且不能存储程序。

1.现代计算机的原型

        几乎现代所有通用计算机大都采用冯·诺依曼结构,而冯·诺依曼结构则是由普林斯顿高等研究院设计“存储程序”计算机的报告提出的,冯·诺依曼结构计算机也称为冯·诺依曼机器,“存储程序”计算机被称作“IAS计算机”。

          存储程序(Stored-program) 工作方式

        任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需操作人员干预下,自动完成逐条取出指令和执行指令的任务。

2.冯·诺依曼结构的思想

1.计算机应由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。
2.各基本部件的功能是:
        存储器不仅能存放数据,而且也能存放指令,形式上两者没有区别(等同看待),但  计算机应能区分数据还是指令;
        控制器应能自动取出指令来执行(顺序+转移);
        运算器应能进行加/减/乘/除四种基本算术运算,并且能进行一些逻辑运算和附加运算;
        操作人员可以通过输入设备输出设备和主机进行通信。
3.内部以二进制表示指令和数据。每条指令操作码地址码两部分组成。操作码指出操作类型,地址码指出操作数的地址。由一串指令组成程序。(二进制编码、二进制运算
4.采用“存储程序”工作方式。

3.冯·诺依曼结构计算机

        下图是冯·诺依曼结构计算机模型 

        早期,各个部件之间用分散方式相连;现在,部件之间大多用总线方式相连;趋势,点对点(分散方式)高速连接

        采用总线工作的好处:

        简化设计‌:总线作为统一的通信通道,连接CPU、内存、I/O等组件,减少了复杂的点对点连线,使硬件布局更清晰‌。

        ‌降低成本‌:统一的总线标准减少定制化线路需求,批量生产降低成本,同时兼容多厂商设备‌。

        提高扩展性‌:通过标准化总线接口(如PCI、USB),新设备可直接接入总线,无需重新设计系统架构,便于功能扩展‌。

        ‌提升可靠性‌:集中布线减少了多点接触的故障概率,提高了系统的可靠性‌。

        ‌资源共享‌:总线允许各部件共享数据和控制信号(如内存访问),提升资源利用效率‌。

        ‌增强兼容性‌:标准化的总线协议确保不同厂商设备协同工作,便于系统升级和维护‌

下图是根据冯·诺依曼结构基本思想给出的模型计算机基本硬件结构

CPU:中央处理器        PC:程序计数器        MAR:存储器地址寄存器        ALU:算术逻辑部件

IR:指令寄存器        MDR:存储器数据寄存器        GPRs:通用寄存器组

IR(OP addr):

二.程序开发和执行

        在用高级语言(如C语言)进行开发前,人们用汇编语言进行开发,而机器所能识别的是二进制编码,就需要用汇编程序将汇编语言转换为机器语言。

        汇编语言源程序由汇编指令构成,而汇编指令则是用助记符和标号来表示的指令(与机器一一对应)

        指令:是用0和1表示的一串0/1序列,用来指示CPU完成一个特定的原子操作;包含操作码和操作数或其地址码

 用高级语言开发程序

        随着技术的发展,出现了许多高级编程语言,它们与具体机器结构无关。面向算法描述,比机器级语言描述能力强得多,高级语言中一条语句对应几条、几十条甚至几百条指令。 有“面向过程”(C语言)和“面向对象”(JAVA,C++)之分

        处理逻辑分为三种结构:顺序结构、选择结构、循环结构

        有两种转换方式:“编译”和“解释”

        编译程序(Complier):将高级语言源程序转换为机器级目标程序,执行时只要启动目标程序即可(汇编或机器语言)

        解释程序(Interpreter ):将高级语言语句逐条翻译成机器指令并立即执行,不生成目标文件。

下图是不同层次语言之间的等价转换 

 三.层次结构

        功能转换:上层是下层的抽象,下层是上层的实现。底层为上层提供支撑环境

         程序执行结果不仅取决于算法、程序编写,而且取决于语言处理系统、操作系统、ISA和微体系结构

        对于每种职业所需掌握的层次不同:

        最终用户工作在由应用程序提供的最上面的抽象层

        系统管理员工作在由操作系统提供的抽象层

        应用程序员工作在由语言处理系统(主要有编译器和汇编器)的抽象层

        系统程序员(实现系统软件)工作在ISA层次,必须对ISA非常了解

        语言处理系统建立在操作系统之上,编译器和汇编器的目标程序由机器级代码组成,操作系统通过指令直接对硬件进行编程控制, ISA处于软件和硬件的交界面(接口)。ISA是对硬件的抽象,所有软件功能都建立在ISA之上

1.指令集体系结构(ISA)

        1. ISA指Instruction Set Architecture,即指令集体系结构

        2.ISA是一种规约(Specification),它规定了如何使用硬件

        3.可执行的指令的集合,包括指令格式、操作种类以及每种操作对应的操作数的相应规定;

        4.指令可以接受的操作数的类型

        5.操作数所能存放的寄存器组的结构,包括每个寄存器的名称、编号、长度和用途

        6.操作数所能存放的存储空间的大小和编址方式

        7.操作数在存储空间存放时按照大端还是小端方式存放

        8.指令获取操作数的方式,即寻址方式

        9.指令执行过程的控制方式,包括程序计数器、条件码定义等。

2.ISA和计算机组成(微结构)之间的关系

        不同ISA规定的指令集不同,如,IA-32、MIPS、ARM等;计算机组成必须能够实现ISA规定的功能,如提供GPR、标志、运算电路等,同一种ISA可以有不同的计算机组成;如乘法指令可用ALU或乘法器实现。

 四.性能评价

计算机有两种不同的性能

        1.Time to do the task:响应时间,执行时间,等待时间或时延

        2.Tasks per day,hour,sec,ns. ....:吞吐率,带宽

基本的性能评价标准是:CPU的执行时间

 1.CPU执行时间的计算

        CPU 执行时间 = CPU时钟周期数 ( 程序) × 时钟周期

                           = CPU时钟周期数 (程序 )÷ 时钟频率

                           = 指令条数 (程序) × CPI × 时钟周期

CPU时钟周期数(程序) = 指令条数 (程序) × CPI

CPI = CPU时钟周期数 ( 程序) ÷指令条数 (程序)

CPI 用来衡量以下各方面的综合结果:Instruction Set Architecture(ISA),Implementation of                 that architecture(Organization & Technology),Program(Compiler、Algorithm)

 2.计算CPI

        对于某一条特定的指令而言,其CPI是一个确定的值;

        对于某一个程序或一台机器而言,其CPI是一个平均值,表示该程序或该机器指令集中每条指令执行时平均需要多少时钟周期

3.浮点操作速度单位

        浮点运算实际上包括了所有涉及小数的运算,在某类应用软件中常常出现,比整数运算更费时间。现今大部分的处理器中都有浮点运算器。因此每秒浮点运算次数所量测的实际上就是浮点运算器的执行速度。而最常用来测量每秒浮点运算次数的基准程序(benchmark)之一,就是Linpack

一个MFLOPS(megaFLOPS)每秒一佰万(=10^6)次的浮点运算

一个GFLOPS(gigaFLOPS)每秒拾亿(=10^9)次的浮点运算,

一个TFLOPS(teraFLOPS)每秒万亿(=10^12)次的浮点运算,

一个PFLOPS(petaFLOPS)每秒千万亿(=10^15)次的浮点运算,

一个EFLOPS(exaFLOPS)每秒百亿亿(=10^18)次的浮点运算。

4.选择性能评价程序

用基准程序来评测计算机的性能

        基准测试程序是专门用来进行性能评价的一组程序

        基准程序通过运行实际负载来反映计算机的性能

        最好的基准程序是用户实际使用的程序或典型的简单程序

基准程序的缺陷

        现象:基准程序的性能与某段短代码密切相关时,会被利用以得到不当的性能评测结果

        手段:硬件系统设计人员或编译器开发者针对这些代码片段进行特殊的优化,使得执行这段代码的速度非常快

5.Amdahl定律

阿姆达尔(Amdal)定律是计算机系统设计方面重要的定量原则之一

基本思想:对系统中某部分(硬件或软件)进行更新所带来的系统性能改进程度,取决于该部分被使用的频率或其执行时间占总执行时间的比例。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐