计算机系统抽象层应用的功能,计算机系统概述

现代计算机的原型

冯·诺依曼

1946年,普林斯顿高等研究院(the Institute for Advance Study at Princeton,IAS )开始设计“存储程序”计算机,被称为IAS计算机.

冯·诺依曼结构最重要的思想是“存储程序(Stored-program)”

工作方式:

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

冯·诺依曼结构计算机也称为冯·诺依曼机器(Von Neumann Machine)。

几乎现代所有的通用计算机大都采用冯·诺依曼结构,因此,IAS计 算机是现代计算机的原型机。

冯·诺依曼结构是怎样的?

有主存,用来存 放程序和数据

一个自动逐条取 出指令的部件

具体执行指令 (即运算)的部件

程序由指令构成

指令描述如何对数据进 行处理

将程序和原始数 据输入计算机的部件

将运算结果输出 计算机的部件

af42942c8e091a675e446e19878ec23a.png

冯·诺依曼结构的主要思想

计算机应由运算器、控制器、存储器、输入设备和输出设备 五个基本部件组成。

各基本部件的功能是:

存储器不仅能存放数据,而且也能存放指令,形式上两者 没有区别,但计算机应能区分数据还是指令;

控制器应能自动取出指令来执行;

运算器应能进行加/减/乘/除四种基本算术运算,并且也 能进行一些逻辑运算和附加运算;

操作人员可以通过输入设备、输出设备和主机进行通信。

内部以二进制表示指令和数据。每条指令由操作码和地址码 两部分组成。操作码指出操作类型,地址码指出操作数的地 址。由一串指令组成程序。

采用“存储程序”工作方式。

现代计算机结构模型

CPU:中央处理器;PC:程序计数器;

MAR:存储器地址寄存器 ALU:算术逻辑部件;

IR:指令寄存器;MDR:存储器数据寄存器 GPRs:通用寄存器组(由若干通用寄存器组成,早期就是累加器)

f1f4f381ca26cf031f76b1556deff7dc.png

计算机的执行过程

程序在执行前

数据和指令事先存放在存储器中,每条指令和每个数据都有地址, 指令按序存放,指令由OP(操作码)、ADDR(地址码)字段组成,程序起始地址置PC

开始执行程序

第一步:根据PC取指令

第二步:指令译码

第三步:取操作数

第四步:指令执行

第五步:回写结果

第六步:修改PC的值

继续执行下一条指令

简单的流程图:

d1c5c7ac7c0540070f0acb50c1312d85.png

指令和数据

程序启动前,指令和数据都存放在存储器中,形式上没有差别,

都是0/1序列

• 采用”存储程序“工作方式:

– 程序由指令组成,程序被启动后,计算机能自动取出一条一条

指令执行,在执行过程中无需人的干预。

• 指令执行过程中,指令和数据被从存储器取到CPU,存放在CPU

内的寄存器中,指令在IR中,数据在GPR中。

指令中需给出的信息:

操作性质(操作码)

源操作数1 或/和 源操作数2 (立即数、寄存器编号、存储地址)

目的操作数地址 (寄存器编号、存储地址)

存储地址的描述与操作数的数据结构有关!

计算机的基本组成与基本功能

计算机的基本部件及功能:

运算器(数据运算):ALU、GPRs、标志寄存器等

存储器(数据存储):存储阵列、地址译码器、读写控制电 路

总线(数据传送):数据(MDR)、地址(MAR)和控制线

控制器(控制):对指令译码生成控制信号

计算机实现的所有任务都是通过执行一条一条指令完成的

程序开发和执行过程

程序开发

机器语言编写程序

用机器语言编写程序,并记录在纸带或卡片上

e513c5a0a0b5af8608bc5800c886b2f2.png

c4324814bc1ff668213afce4aa23b5df.png

输入:按钮、开关;

输出:指示灯等 所有信息都 是0/1序列!

机器语言编写程序不仅难读,难写而且非常不灵活.

用汇编语言开发程序

若用符号表示跳转位置和变量位置,是否简化了问题?

• 于是,汇编语言出现

– 用助记符表示操作码

– 用标号表示位置

– 用助记符表示寄存器

ffd35253ca7da0f12be7bbad80037d49.png

用汇编语言编写的优点是: 不会因为增减指令而需要修改其他指令 不需记忆指令编码,编写方便 可读性比机器语言强

不过,这带来新的问题,是什么呢?

人容易了,可机器不认识这些指令了.

需将汇编语言转 换为机器语言! 我们用汇编程序作为中介进行转换

进一步认识机器级语言

汇编语言(源)程序由汇编指令构成

• 用一句话描述什么是汇编指令

– 用助记符和标号来表示的指令(与机器指令一一对应)

• 指令又是什么呢?

– 包含操作码和操作数或其地址码

(机器指令用二进制表示,汇编指令用符号表示)

– 只能描述:取(或存一个数)

两个数加(或减、乘、除、与、或等)

根据运算结果判断是否转移执行

• 想象用汇编语言编写复杂程序是怎样的情形?

(例如,用汇编语言实现排序(sort)、矩阵相乘)

– 需要描述的细节太多了!程序会很长很长!而且在不同

结构的机器上就不能运行!

机器语言和汇编 语言都是面向机 器结构的语言, 故它们统称为机 器级语言

结论:用汇编语言比机器语言好,但是,还是很麻烦!

用高级语言开发程序

高级编程语言

它们与具体机器结构无关

面向算法描述,比机器级语言描述能力强得多

高级语言中一条语句对应几条、几十条甚至几百条指令

有“面向过程”和“面向对象”的语言之分

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

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

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

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

程序执行

一个典型程序的转换处理过程

经典的“ hello.c ”C-源程序

#include

intmain()

{

printf("hello, world\n");

}

cf75764d69779ba560458bbadf60539e.png

89d808613065612ee48ba052996e2ad3.png

Hello程序的数据流动过程

5003d1194c28a1509c76ae3bfb3b37b5.png

数据经常在各存储部件间传送。故现代计算机大多采用“缓存”技术

所有过程都是在CPU执行指令所产生的控制信号的作用下进行的

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

9f2650e00302b634b8d55e382109715f.png

开发和运行程序需什么支撑?

用高级语言开发程序需要复杂的支撑环境(怎样的环境?)

需要编辑器编写源程序

需要一套翻译转换软件处理各类源程序

编译方式:预处理程序、编译器、汇编器、链接器

解释方式:解释程序

以上称为语言处理程序

需要一个可以执行程序的界面(环境)

GUI方式:图形用户界面

CUI方式:命令行用户界面

语言处理程序+人机接口+操作系统+操作系统内核+语言的运行时系统+指令集体系结构+计算机硬件

支撑程序开发和运行的环境由系统软件提供

最重要的系统软件是操作系统和语言处理系统

语言处理系统运行在操作系统之上,操作系统利用指令管理硬件

计算机系统层次结构

早期计算机系统的层次

最早的计算机用机器语言编程

机器语言称为第一代程序设计语言

7751b0af91818e11aab1c718de02782c.png

汇编语言编程

汇编语言编程

a3daa4aa6c538b7c18f8653e295f3cc0.png

现代(传统)计算机系统的层次

现代计算机用高级语言编程

第三代程序设计语言(3GL)为过程式 语言,编码时需要描述实现过程,即“ 如何做”。

第四代程序设计语言(4GL) 为非过程 化语言,编码时只需说明“做什么”, 不需要描述具体的算法实现细节。

ed48dcc63a728aa33978b52038790678.png

语言处理系统包括:各种语 言处理程序(如编译、汇编、 链接)、运行时系统(如库 函数,调试、优化等功能)

操作系统包括人机交互界面、 提供服务功能的内核例程

可以看出:语言的发展是一 个不断“抽象”的过程,因 而,相应的计算机系统也不 断有新的层次出现

计算机系统抽象层的转换

f433e474ece7cfd30a247d2bb9566ba6.png

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

计算机系统的不同用户

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

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

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

语言处理系统建立在操作系统之上

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

编译器和汇编器的目标程序由机器级代码组成

操作系统通过指令直接对硬件进行编程控制ISA处于软件和硬件的交界面(接口)

ea3e87b8aae5e5931f1be831cf00666f.png

ISA是对硬件的抽象所有软件功能都建立在ISA之上

指令集体系结构(ISA)

SA指Instruction Set Architecture,即指令集体系结构,有时 简称为指令系统

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

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

– 指令可以接受的操作数的类型;

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

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

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

– 指令获取操作数的方式,即寻址方式;

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

ISA在通用计算机系统中是必不可少的一个抽象层,

– 没有它,软件无法使用计算机硬件!

– 没有它,一台计算机不能称为“通用计算机”

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

ISA是计算机 组成的抽象

不同ISA规定的指令集不同,

如,IA-32、MIPS、ARM等 计算机组成必须能够实现ISA规定的功能,如提供GPR、标志、运算电路等 同一种ISA可以有不同的计算机组成,

如乘法指令可用ALU或乘法器实现

原文:https://www.cnblogs.com/chenxuming/p/9609463.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值