计算机组成原理学习-哈工大《计算机组成原理》第一章

简介: 计算机组成原理学习-哈工大《计算机组成原理》第一章

本专栏主要记录自己学习计算机组成原理的整个过程。
大致分为以下二部分:

  1. 视频学习。

         [计算机科学速成课](https://www.bilibili.com/video/BV1EW411u7th?from=search&seid=9430587122372415279&spm_id_from=333.337.0.0) 【看前10个视频】
     [    哈工大的《计算机组成原理》](https://www.bilibili.com/video/BV1WW411Q7PF?from=search&seid=10281193837768404457&spm_id_from=333.337.0.0)
  2. 通过相应图书进行学习。

入门级:《计算机是怎么样跑起来》 《程序是怎么跑起来的》《Computer Organization》
深入级:《计算机组成与设计:硬件 / 软件接口》《深入理解计算系统》

@TOC

一.计算机科学速成课

视频链接: 计算机科学速成课

本阶段学习笔记:公开分享版本【计算机科学速成课】 笔记
学习进度:前十节课【已完成】
备注:上面的笔记并不是博主本人编写,来源于网络。

二. 哈工大的《计算机组成原理》-第一章

视频链接: 计算机组成原理(唐朔飞)

(一) 计算机组成的简介

1.课程概貌

在这里插入图片描述

2.课程用书以及参考教材

(1) 课程用书

  • 课程用书:唐朔飞《计算机组成原理》(第2版)
  • 辅导用书:《计算机组成原理学习指导与习题解答》
  • 作者详情:百度百科-唐朔飞
  • 备注:《计算机组成原理》目前最新版本为《计算机组成原理》(第3版)

在这里插入图片描述
(2) 参考教程

相关链接:
[电子英文版-[计算机系统结构量化研究方法].John.L.Hennessy,.David.A.Patterson.](https://www.taodocs.com/p-6976889.html)
[电子英文版-digital design and computer architecture-[david harris, sarah harris]](https://www.doc88.com/p-6714560961436.html)

3.本节课在课程体系中的地位

在这里插入图片描述

4.本书结构

在这里插入图片描述
在这里插入图片描述

(二) 计算机的基本组成

1.计算机系统概论

前面过渡:物联网概念,传感器,计算机,服务器,超级计算机..
计算机的分类:
按处理方式分为:模拟计算机和数字计算机。
按专用性分为:通用计算机和专用计算机。
按规模分为:巨型机、大型机、小型机、微型机等几类。
按功能分为:超级计算机、网络计算机、工业控制、个人电脑和嵌入式五类。

问题:现代计算机系统由哪二部分构成?
通过百度百科-抽象的方式进行描述:
在这里插入图片描述
软件的分类:

  • 系统软件:用来管理整个计算机系统
  • 应用软件:按任务需要编制成的各种程序

在这里插入图片描述

2.计算机层次机构

(1) 从计算机物理结构进行抽象
在这里插入图片描述
(2) 从计算机程序员【硬件程序员】视角进行抽象
在这里插入图片描述

在这里插入图片描述

3.计算机体系结构

在这里插入图片描述

4.计算机的基本组成

(1) 百度百科-冯诺依曼计算机的特点
在这里插入图片描述
(2) 百度百科-冯诺依曼计算机硬件框图
各个部件的功能:

  • 运算器:算术运算和逻辑运算
  • 存储器:存放数据和程序
  • 控制器:指挥和控制程序的运行
  • 输入设备:把信息转换成机器能识别的形式
  • 输出设备:将结果转换成人们熟悉的形式

下图的硬件框图以运算器为核心:
在这里插入图片描述
备注:虚线表示控制和状态反馈,实线表示数据通过。

冯诺依曼计算机硬件框图的改进(硬件框图以存储器为核心):
在这里插入图片描述
备注:双箭头表示传输
(3) 现代计算机的硬件框图
在这里插入图片描述
(4) 系统复杂性管理的方法(3'Y)
在这里插入图片描述

(三) 计算机工作步骤

本节课提出问题:

  • 一个现实中的问题,如何用计算机来解决?
  • 是不是所有的问题都可以用计算的方法来解决?

1.一个现实中的问题,如何用计算机来解决?

(1) 计算机解决现实中问题步骤

  • 建立数学模型
  • 确定计算方法
  • 编制解题程序

在这里插入图片描述
(2) 计算ax^2+bx+c
编程举例(下图左右分别为二种不同的解题方式):

很明显右边的程序要远远优于左面的程序,运行的指令更少,执行速度更快。

在这里插入图片描述
指令格式举例:

在这里插入图片描述
程序清单:

  • 指令=操作码+地址码
  • 指令和数据都是保存在存储器中

在这里插入图片描述

2.是不是所有的问题都可以用计算的方法来解决?

  • 可计算理论
  • 假设说函数的定义域是D,值域是R,如果存在一种算法对于D当中给定的任意一个X,都能计算出F(x)的值,就说明这个函数是可计算的
  • 可计算问题表示一类问题是否可以通过计算机来解决
  • 不可计算问题:图灵机停机,歌德巴赫猜想,理发师问题,煎鸡蛋...

3.存储器,运算器

(1) 存储器的基本组成

  • 存储器的结构?

答:存储体+MAR+MDR

  • 如何进行访问?

答:按地址进行访问(按地址寻访)

  • 每次访问获得的数据的位数是多少呢?

答:每次访问一个地址对应一个存储单元,一般一个存储单元8bit.

存储体:

把存储体比作大楼,存储单元就是大楼里的房间(一个存储单元对应一个地址,一个存储单元对应一个房间门牌号),而存储元件就是某间房间的床位(床位有人无人对应存储原件的状态)。
  • 存储单元:存放一串二进制代码 存储字:存储单元中二进制代码组合 存储字长:存储单元中二进制代码的位数,每个存储单元赋予一个地址。
  • 存储元件:(元件状态-> 0:低电平 1:高电平)

在这里插入图片描述
MAR,MDR:

  • MAR:存储器地址寄存器,反映存储单元的个数(一个地址对应一个存储单元)
  • MDR:存储器数据寄存器,反映存储字长

例题:设MAR=4位,MDR=8位对应的存储单元个数为16(地址数量:2^4=16),存储字长为8
在这里插入图片描述
(2) 运算器的基本组成及操作过程(下图运算器采用累加型计算机)

  • 运算器的结构是什么?

答:ALU,ACC寄存器,MQ寄存器,X寄存器

  • 运算器的功能是什么?如何工作?

答:运算器的功能就是运算,核心就是ALU,加减乘除工作过程如下

在这里插入图片描述
下面分别通过加减乘除相应运算来理解表格含义。
加法:
举例:a=1,b=1求a+b的过程。
第一步:将a被加数放入ACC寄存器中
在这里插入图片描述
第二步:将[M]的值放入X寄存器中([M]->x),[M]表示内存地址中M地址执行的值b
在这里插入图片描述
第三步:ALU执行加法操作:[ACC]+[x]
在这里插入图片描述
第四步:将运算的结果保存到ACC当中
在这里插入图片描述

减法:
减法的执行过程和加法一致:
举例:a=1,b=1,求a-b的过程

  1. 将被减数a放入ACC寄存器中
  2. [M]的值放入X寄存器中([M]->x),[M]表示内存地址中M地址执行的值b
  3. ALU执行减法操作:[ACC]-[X]
  4. 将运算的结果保存到ACC当中

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

乘法:
举例:a=1,b=1,求a*b的整个过程。
第一步:将被乘数a放入到ACC寄存器当中
在这里插入图片描述
第二步:将乘数[M]的值b放入到MQ寄存器中
在这里插入图片描述
第三步:将[ACC]里的值a放入到X寄存器中

在这里插入图片描述
第四步:将ACC寄存器的数据清零
在这里插入图片描述
第五步:ALU进行乘法运算:[x]X[MQ]
在这里插入图片描述
第六步:将运算结果高位保存到ACC寄存器低位保存到MQ寄存器
在这里插入图片描述
备注:上文中第一步和第二步的运算过程顺序可以对换,该顺序由控制器控制。

除法:
举例:a=1,b=1,求a/b的整个过程。
第一步:将被除数a放入ACC寄存器中
在这里插入图片描述
第二步:将[M]对应的值b放入X寄存器中
在这里插入图片描述
第三步:ALU执行除法运算:[ACC]÷[x]
在这里插入图片描述
第四步:将余数放入ACC寄存器,运算结果放入MQ寄存器
在这里插入图片描述

4.控制器

(1) 控制器组成和功能
本节问题:

  • 控制器的基本结构如何呢?

    答:CU,IR,PC
  • 控制器的功能?
    答:解释指令,保证指令的按序执行

控制器的基本组成:

  • PC存放当前欲执行指令的地址,具有计数功能(PC)+1->PC
  • IR存放当前欲执行的指令
  • CU执行指令

在这里插入图片描述
(2) 主机完成一条指令的过程
指令执行过程:

  • 取指令
  • 分析指令
  • 执行指令

完成一条取数指令:

在这里插入图片描述
第一步:PC将地址交给MAR寄存器,让MAR从存储体中取出对应的要执行的指令
在这里插入图片描述
第二步:MAR寄存器从存储体中取出要执行的指令
在这里插入图片描述第三步:存储体将指令交给MDR存储器
在这里插入图片描述
第四步:MDR寄存器将指令存放到IR寄存器中

在这里插入图片描述
第五步:IR寄存器将指令交给CU控制单元执行指令
在这里插入图片描述第六步:CU执行指令,IR寄存器将要取的数据地址交给MAR
在这里插入图片描述
第七步:MAR将地址交给存储体
在这里插入图片描述
第八步:存储体将对应地址的数据交给MDR

在这里插入图片描述第九步:MDR将数据交给ACC寄存器
在这里插入图片描述
完成一条存数指令:
前面七步步骤和取指令一致,但是CU执行的指令为指令。

第八步:MAR的地址指向存储体中ACC的数据地址,ACC将数据交给MDR
在这里插入图片描述第九步:MDR将数据交给存储体进行存储
在这里插入图片描述

5.ax^2+bx+c指令执行过程

(PC)+1->PC:表示当前这条指令执行完之后,执行下一条指令

在这里插入图片描述

6.计算机的挑选和相关性能参数

(1) 如何买一台合适的机器
在这里插入图片描述
(2) 计算机硬件的主要技术指标
在这里插入图片描述在这里插入图片描述

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
存储 人工智能 机器人
【期末计算机组成原理速成】第一章:计算机系统概论
【期末计算机组成原理速成】第一章:计算机系统概论
89 1
|
9月前
|
存储 程序员 调度
[计算机组成原理(唐朔飞 第2版)]第一章 计算机系统概论 & 第二章 计算机的发展及应用(学习复习笔记)
[计算机组成原理(唐朔飞 第2版)]第一章 计算机系统概论 & 第二章 计算机的发展及应用(学习复习笔记)
|
5月前
【408计算机组成原理】—计算机基础(一)
【408计算机组成原理】—计算机基础(一)
|
11月前
|
存储 数据处理 调度
计算机组成原理(1)概论
1.1.定义 计算机,一种可以存储程序,并且通过执行程序指令,可以自动、高速、精确地对数字信息进行各种复杂处理,然后输出运算结果的电子设备。1.2.发展史 1944年,“冯诺依曼”加入美国军方一个名叫“ENIAC”的计算机研制项目,1945年他提出了一个名叫“存储程序通用电子计算机”的方案——“EDVAC”。该方案中定义了计算机的工作方式以及几大组成部分,后来将该方案中提出的这一套对于计算机的整体架构称为——“冯诺依曼体系”。 1946年参照冯诺依曼体系,在宾夕法尼亚大学诞生了世界上第一台计算机。如今世界上的计算机都是参照冯诺依曼体系进行的实现。
71 0
|
11月前
|
存储 算法 编译器
考研计算机组成原理总结(2)
考研计算机组成原理总结(2)
937 0
|
11月前
|
存储 芯片 内存技术
考研计算机组成原理总结(4)
考研计算机组成原理总结(4)
228 0
考研计算机组成原理总结(4)
|
存储 编译器 C语言
计算机组成原理 第二章
计算机组成原理 第二章
239 0
|
芯片 异构计算
计算机组成原理实验第一章
计算机组成原理实验第一章
105 0
|
存储 NoSQL
【计算机组成原理】第一章:计算机系统概述(上)
计算机如何识别并且处理数据? 通过高低电平来处理0-1数据。低电平表示二进制的0,高电平表示1。类似五个手指比喻成计算机接口的话,那么五个手指同时接收到的高低电平,就代表了接收到的二进制数据,如10001,或者00010等等。
【计算机组成原理】第一章:计算机系统概述(上)
计算机组成原理(一)系统概论
计算机组成原理(一)系统概论
120 0