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

  1. 视频学习。
    计算机科学速成课 【看前10个视频】
    哈工大的《计算机组成原理》
  2. 通过相应图书进行学习。
    入门级:《计算机是怎么样跑起来》 《程序是怎么跑起来的》《Computer Organization》
    深入级:《计算机组成与设计:硬件 / 软件接口》《深入理解计算系统》

目录:

  • 一.计算机科学速成课
  • 二. 哈工大的《计算机组成原理》-第一章
    • (一) 计算机组成的简介
      • 1.课程概貌
      • 2.课程用书以及参考教材
      • 3.本节课在课程体系中的地位
      • 4.本书结构
    • (二) 计算机的基本组成
      • 1.计算机系统概论
      • 2.计算机层次机构
      • 3.计算机体系结构
      • 4.计算机的基本组成
    • (三) 计算机工作步骤
      • 1.一个现实中的问题,如何用计算机来解决?
      • 2.是不是所有的问题都可以用计算的方法来解决?
      • 3.存储器,运算器
      • 4.控制器
      • 5.ax^2+bx+c指令执行过程
      • 6.计算机的挑选和相关性能参数

一.计算机科学速成课

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

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

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

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

(一) 计算机组成的简介

1.课程概貌

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

(1) 课程用书

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


(2) 参考教程

  • David A.Patterson. ,John L.Hennessy.
  • David Harris,Sarah Harris

相关链接:
电子英文版-[计算机系统结构量化研究方法].John.L.Hennessy,.David.A.Patterson.
电子英文版-digital design and computer architecture-[david harris, sarah harris]

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) 计算机硬件的主要技术指标

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

  1. 408计算机组成原理学习:计算机的基础

    408计算机组成原理学习:计算机的基础 计算机系统 = 硬件 + 软件 硬件:计算机的实体,如主机.外设等 软件:由具有各类特殊功能的程序组成 计算机性能的好坏取决于"软".&qu ...

  2. 医用计算机基础学习心得,计算机基础学习心得.doc

    计算机基础学习心得 计算机基础学习心得一:计算机基础学习心得 当今社会,到处充满机会与挑战.知识是我们面对这一切的筹码,而计算机知识则更为重要.如何在本科函授这样一种形式下,学好计算机课程,这是摆在我 ...

  3. 基于JAVA计算机在线学习管理系统-计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA计算机在线学习管理系统-计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA计算机在线学习管理系统-计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技 ...

  4. 《java学习之路》第一章:初识java第二节:helloworld

    嗨大家好,我是埪动白,前一段时间由于一些原因,java学习之路停更了,我向大家道歉.今天我们来学习下一节 第一章:初识java 第二节:hello world 如果哪位同学没有看第一节,建议先看一下, ...

  5. 408计算机组成原理学习笔记——计算机系统概述

    目录 1.计算机硬件的基本组成 1.1.计算机硬件组成部分 1.2.冯诺依曼计算机的特点 1.3.现代计算机的特点 2.主存储器的基本组成 2.1.MAR和MDR 2.2.存储单元.存储字长和存储字 ...

  6. 计算机图形学原理及实践学习笔记第一章

    第一章 绪论 1.1 计算机图形学简介 在计算机图形学中,"模型"这个词指的可以是 几何模型 也可以是 数学模型. 几何模型:我们想要呈现在图像中的物体的模型,例如 构建的汽车模型 ...

  7. 计算机科学家沃斯提出的公式,第一章C语言的概述

    第一章 C 语言的概述 本章介绍C语言的起源.发展和特点,C程序的基本结构和C程序的开发过程,以及Tuber C 2.0集成环境的使用.C语言是一种结构化程序设计语言,它既具有高级语言的特点,也兼有汇 ...

  8. 计算机术语new一个,微机原理第一章计算机基础知识(new)

    <微机原理第一章计算机基础知识(new)>由会员分享,可在线阅读,更多相关<微机原理第一章计算机基础知识(new)(47页珍藏版)>请在人人文库网上搜索. 1.1.第一章计算机 ...

  9. 海南大学计算机原理,海南大学微机原理课件 第一章 计算机基础知识

    第一章 计算机基础知识 数 制 §1.1 一.计算机使用的数制及其相互转换 十进制(D).二进制(B).八进制(O)和十六进制(H). 数制中用少量数码按次序排列成数位,并按由低到高的进位方式进行计 ...

  10. 计算机二级考试公共基础知识——第一章计算机系统

    第一章计算机系统 概述 公认的第一台电子计算器ENIAC 计算机发展的四个阶段 第一阶段,1946年至20世纪50年代后期:电子管计算机时代 第二阶段,二世纪50年代后期至20世纪60年代中期:晶体管 ...

最新文章

  1. [WCF编程]10.操作:回调操作
  2. Dockerfile中npm中Error: could not get uid/gid问题的解决方法
  3. [CQOI2014]和谐矩阵
  4. 非索引查询如何提高效率_Python数据分析:数据库索引如何提高效率?
  5. 《研磨设计模式》chap16 模板方法模式
  6. spring cloud入门_Spring Boot 2.x基础教程:快速入门
  7. 1001. A+B Format
  8. Nginx学习之一:从权威途径(wiki)了解Nginx
  9. 微信公众平台开发(83) 生成带参数二维码
  10. GridView的DataFormatString
  11. 基于JAVA的网上购物系统设计_基于Java的网上购物系统的设计与实现
  12. 圆锥曲线中的存在性探索性问题
  13. 从零开始学习CTF——CTF是什么
  14. 多一份感动,多一份行动
  15. Problem L: 最简分式
  16. android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
  17. 用你的微笑魔力征服下属
  18. [IOS]Presenting modal in iOS 13 fullscreen
  19. vm虚拟机中的问题 key are too open. It is required that your private key files are NOT accessible by others.
  20. 计算机类公务员 真题解析,公务员考试C类计算机考试真题及答案2[文].pdf

热门文章

  1. Linux宝库名人轶事栏目 | 我与中国开源软件二十年(一)
  2. 【TWVRP】基于matlab改进的遗传算法求解带时间窗约束多卫星任务规划问题【含Matlab源码 1774期】
  3. 【数字信号去噪】基于matlab小波软阈值+硬阈值+改进阈值轴承故障仿真信号去噪【含Matlab源码 1024期】
  4. 【数字信号去噪】基于matlab低通滤波数字信号去噪【含Matlab源码 964期】
  5. python图形库可以干什么_安装Python图形库matplotlib
  6. jvm调优工具_高级程序员必会的5个JVM性能监控、调优工具使用详解
  7. mc2180 刷机方法_MC控制和时差方法
  8. matplotlib——3D图
  9. Ubuntu16.04安装VSCode
  10. html读取本地json数据库,用Javascript读取本地JSON到HTML