计算机组成原理学习 第一章 第二章

本课程来自中国大学慕课网的 计算机组成原理

第一章 概述

第一节 冯诺依曼计算机

冯诺依曼计算机的核心是存储程序,即把需要执行的程序先存储到计算机里,然后计算机自动抽出指令执行。
冯诺依曼计算机的组成:

  • 输入设备
  • 存储器:不光能存储数据,还能存储指令。内部每条指令由二进制码标识,由操作码和地址码组成,操作码指示操作的类型,地址码指出要进行运算的数据的地址。
  • 控制器:能自动的取出指令,一条条的执行。
  • 运算器:执行加减乘除以及一些逻辑运算。
  • 输出设备

第二节 现代计算机结构

与冯诺依曼计算机基本一样,多出来的就是寄存器,减少调用存储器带来的时延。
计算机结构:
在这里插入图片描述
程序执行前:数据和指令都存在存储器中,指令包括OP(操作码)和ADDR(数据地址)字段组成。首个指令的地址交给PC寄存器。
程序执行

  1. 取出PC中的指令
  2. 对指令中的OP进行解码,明白该进行什么操作。
  3. 根据指令中ADDR找到操作数,有可能直接给出,或位于存储器中,或寄存器中。
  4. ALU进行运算。
  5. 运算结果存入存储器或寄存器中,或者直接输出
  6. 将PC中的地址加一,继续执行步骤1,开始下一条指令。

第三节 编程语言

机器语言:只有0和1的指令,十分不灵活,阅读也困难,但是机器唯一认识的语言。
汇编语言:用助记符和标号表示指令,与机器语言一一对应。可以进行的操作有:把存储器的数据装入寄存器,把寄存器的数据存入存储器,对操作数加减乘除,或者符合一定条件就跳转。

汇编语言比机器语言更容易理解和编写,但是机器不认识,所以需要通过汇编程序转换成机器语言。但是汇编语言还有两大问题,一是一条指令只对应一个操作,即汇编语言是面向操作的,所以编写复杂的程序时会非常长;第二是汇编语言不可移植,一个汇编程序只对应一台电脑,十分不方便。为了解决这俩两个问题,我们把汇编语言向上抽象得到了高级语言
高级语言:是面向算法的语言,一条指令可能包含几十个,上百个操作。分为面向对象和面向过程两种。
高级语言机器也无法直接理解,所以需要把高级语言转换成机器语言,有两种方式:

  • 编译,编译程序将高级语言转换为机器级语言,生成可执行文件。
  • 解释,解释程序逐条指令进行翻译,翻译出来直接执行,不生成可执行文件。

第四节 程序的开发执行与其支撑环境

程序的运行过程:

  1. .cpp源程序经过预处理生成.i源程序
  2. .i源程序经过编译生成.s汇编语言程序程序
  3. .s汇编语言程序程序经过汇编程序生成.o机器语言程序
  4. 各个.o机器语言程序经过链接生成.exe可执行程序
    在这里插入图片描述

一个程序执行时的数据流动过程:

  1. 通过键盘输入要执行的程序名字(linux命令行),名字先被传到寄存器里,然后通过寄存器的存入命令存入存储器。
  2. 系统将控制权交给该执行程序,执行的结果仍然存入存储器中,这是存储程序的过程。
  3. 执行的结果从存储器转移到输出窗口中。

    由于数据经常在各个寄存器和存储器中流动,所以现代计算机采用了缓存技术。

高级语言程序开发和执行需要的支撑:

  • 操作系统:包括人机接口(如WINDOWS界面和LINUX命令行),和操作系统内核(采用了指令集体系结构来管理硬件)
  • 语言处理系统:包括编辑器,和各种翻译软件(预处理器,编译器,汇编程序,连接器)。

第五节 现代计算机层次结构

语言发展的过程是一个不断抽象的过程,因此不断有新的层次出现。

高级语言程序需要转换为机器语言程序才能运行,转换是靠语言处理系统,转换的过程是在操作系统的提供的界面和内核上进行的。转换成机器语言后,再通过ISA(指令集体系结构)来调用硬件。
在这里插入图片描述
整个计算机的抽象层次:
在这里插入图片描述
上层是底层的抽象,底层为上次提供支持。程序运行的结果不光和算法以及编程语言有关,也和底层的实现息息相关。

ISA是一种规约,规定了软件如何使用硬件。不同的ISA规定的使用硬件的方式,如寄存器和操作是不同的。但是同一种ISA的硬件实现可以不同。

第二章 计算机性能评价

计算机性能评价的两个指标:执行时间吞吐量。执行时间是指完成一个任务需要的时间,吞吐量是其倒数,即单位时间内完成的任务数。
用户感受到的执行时间

  • CPU时间,包括用户CPU时间,和系统CPU时间。
  • 其他时间:包括I/O的时间,或等待CPU执行其他程序的时间。
    本章主要讨论计算机性能中的CPU时间,即CPU真正花在程序上的时间。
    CPI:每条指令的时钟周期数
    CPU执行时间=CPI* 指令数 *时钟周期
    等式右边这三项和以下几个方面有关:
  • 软件部分:算法和编译器
  • ISA:软硬件接口
  • 硬件部分:硬件是如何组织的,以及实现硬件的技术。
    其中,CPI和指令数主要与软件部分和ISA相关,时钟周期与硬件相关。

CPU时间通常由基准程序进行评测,但有时候不准,所以要通过加权平均或算数平均的方式来得出评价结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值