计算机组成原理---计算机系统概述

文章目录

  • [1. 本书围绕的思考点](#1. 本书围绕的思考点)
  • [2. 计算机发展历程(408大纲已删)](#2. 计算机发展历程(408大纲已删))
  • [3. 计算机硬件的基本组成](#3. 计算机硬件的基本组成)
    • [3.1 早期冯 · 诺依曼机的结构](#3.1 早期冯 · 诺依曼机的结构)
    • [3.2 现代计算机的结构](#3.2 现代计算机的结构)
    • [3.3 总结](#3.3 总结)
    • [3.4 补充:各个硬件的工作原理](#3.4 补充:各个硬件的工作原理)
  • [4. 了解知识](#4. 了解知识)
    • [4.1 计算机软件](#4.1 计算机软件)
    • [4.2 计算机系统的多级层次结构](#4.2 计算机系统的多级层次结构)
    • [4.3 计算机系统的工作原理](#4.3 计算机系统的工作原理)
  • [5. 计算机的性能指标](#5. 计算机的性能指标)

1. 本书围绕的思考点


2. 计算机发展历程(408大纲已删)




  • 机器字长: 计算机一次整数运算所能处理的二进制位数


总结:

3. 计算机硬件的基本组成

3.1 早期冯 · 诺依曼机的结构

  • "存储程序" 概念是由冯 · 诺依曼首次提出的,即是指将指令以二进制代码的形式事先输入到计算机的主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束
  • 在计算机系统中,软件和硬件在逻辑上是等效的。Eg:对于乘法运算,可以设计一个专门的硬件电路来实现,也可以用软件的方式,执行多次加法来实现

冯 · 诺依曼计算机的特点:

    1. 计算机由 输入设备、输出设备、存储器、运算器和控制器五大部件组成
    1. 指令和数据以同等地位存于存储器,可按地址寻访。即都是二进制存储,不存在谁的二进制串就特殊一些
    1. 指令和数据用二进制表示
    1. 指令操作码和地址码组成
    1. 采用存储程序的设计
    1. 以运算器为中心,即输入/输出设备与存储器之间的数据传送通过运算器完成

3.2 现代计算机的结构


注意:

    1. 现代计算机以存储器为中心
    1. CPU = 运算器 + 控制器

3.3 总结

3.4 补充:各个硬件的工作原理

注意:

    1. 存储体由许多存储单元组成,而每个存储单元包含若干个存储元件,且每个存储元件存储一位二进制数
    1. 存储单元中存储的一系列二进制串 被称为存储字
    1. 存储单元中存储的二进制串的位数 被称为存储字长
    1. 现代计算机一般把MAR和MDR都给集成到了CPU中
    1. MAR反映存储单元,MDR反映存储字长,存储容量 = 存储单元 × 存储字长
  • ACC可以用于存放操作数,也可以用于存放运算结果;x一般存放操作数;MQ一般只存放根乘除运算相关的操作数和运算结果


注意:

  • CPU = 运算器 + 控制器 ;而现代计算机中MAR和MDR都集成到了CPU中,且在CPU中,IR、MAR和MDR对各类程序员都是透明的

下面将以上图分析计算机的工作过程,这里只是简单叙述,更多详细内容会在指令系统中提到

解释:

    1. PC内容为0,指向第一条指令的存储地址;PC是指向下一条将要处理指令的地址
    1. 将PC的内容(存放的指令地址)通过数据线送入MAR中,此时MAR=0
    1. MAR开始解析这条地址,控制线发出读信号并通过地址线去存储体中找到对应地址处,将该地址存放的 二进制数(指令) 通过数据线放入MDR中
    1. MDR通过数据线将该二进制数传入IR中
    1. IR把该二进制串对应的操作码通过数据线传入CU中,CU分析后得知此为 "取数" 指令
    1. 经CU译码后,控制线发出读信号,同时IR中的地址码经数据线传入给MAR,此时MAR=5
    1. MAR接收到控制线发出的读信号,于是通过地址线去地址5处将存储的二进制数读入至MDR中,此时MDR=2
    1. 然后MDR通过数据线将该二进制数传入ACC中

解释:

    1. 每取完一条指令,PC自动指向下一条将要执行的指令处;于是,上一条指令执行完,导致PC=1,ACC=2
    1. 去指令的步骤都是类似的,这里不再赘述,直接跳到分析指令处
    1. 此时经分析得出,该指令是"乘法"指令
    1. 继续将IR中的地址码传入MAR中,此时MAR=6,然后去地址6处取数,并存入MDR中,此时MDR=3
    1. 由于是乘法指令,MDR的二进制数会通过数据线传入MQ中,此时MQ=3
    1. 再将ACC中原来的数字2传入X中,此时x=2
    1. 然后X寄存器和MQ寄存器中的数经过ALU执行乘法运算后,将结果输入到ACC中,此时ACC=6
  • 与上述雷同,交给感兴趣的读者自己解释

解释:

    1. CU分析得知此为"存数"指令,然后让控制线发出写信号
    1. 当IR中地址传入MAR中时,MAR=8,写信号会先让ACC中的数传入MDR中,此时MDR=7
    1. 然后写信号会让MAR进行地址解析,找到对应地址8处,最后通过数据线让MDR中的数写入地址8处,此时地址8处值为7
  • 交给感兴趣的读者自己完成

总结:

4. 了解知识

4.1 计算机软件


【2016 统考真题】将高级语言源程序转换为机器级目标代码文件的程序是(C)

A. 汇编程序 B. 链接程序 C. 编译程序 D. 解释程序

解答:编译程序是将高级语言源程序一次全部翻译成目标程序,其会生成目标代码文件;解释程序是将高级语言翻译一句执行一句,不会生成目标代码文件。

  • 记住一句话,软件和硬件在逻辑功能上是等价的

总结:

4.2 计算机系统的多级层次结构


总结:

4.3 计算机系统的工作原理



总结:

5. 计算机的性能指标

  • 总容量 = 存储单元个数 × 存储字长(单位bit)
  • 描述存储文件和容量大小时,常用2的幂次表示


  • IPC:一个时钟周期内可以执行多少条指令。其与CPI互为倒数
  • 描述速率、频率等时,常用10的幂次来表示

例题:

解答:

  • ①计算主频率:主频率 = 1/时钟周期 = 1/2ns = 1/2×10-9=500MHz
  • ②计算平均CPI:序列一平均CPI=(1×1+2×1+3×4)÷(1+1+4)=15÷6=2.5;序列二平均CPI=(1×2+2×1+3×2)÷(2+1+2)=10÷5=2
  • ③计算MIPS,IPS=主频/平均CPI序列一MIPS= (500MHz÷2.5÷106)=200序列二MIPS= (500MHz÷2÷106)=250
  • ④计算CPU执行时间,CPU执行时间=CPU时钟周期数/主频=(指令条数×CPI)÷主频=(指令条数×CPI)×时钟周期: 序列一CPU执行时间=6×2.5×2ns=30ns;序列二CPU执行时间=5×2×2ns=20ns
  • ⑤总结,序列二的MIPS数比序列一多50,序列二的执行速度比序列一快10ns,选D



总结:

第一章是整本书的概要,相当于简单了解下计算机组成原理这门课在讲什么,着重注意计算机的性能指标,在后面章节也会出现对应的计算。

参考:《王道计算机考研 计算机组成原理》

https://www.bilibili.com/video/BV1ps4y1d73V?t=0.5\&p=2

相关推荐
xwz小王子18 小时前
Science Robotics 研究综述:基于学习方法的机器人操作动力学模型
机器人·学习方法
小龙报18 小时前
《彻底理解C语言指针全攻略(2)》
c语言·开发语言·c++·visualstudio·github·学习方法
立志成为大牛的小牛1 天前
数据结构——十四、构造二叉树(王道408)
数据结构·笔记·学习·程序人生·考研
破晓之翼1 天前
控制论的定义、工程意义及系统功能整合
设计模式·软件工程·产品经理·学习方法
沐浴露z2 天前
【深入理解计算机网络08】网络层之IPv4
网络·计算机网络·网络编程·信息与通信·408
峰顶听歌的鲸鱼2 天前
38.Shell脚本编程2
linux·运维·服务器·笔记·学习方法
LXS_3572 天前
Day 09(下) B2a实例解说----exampleB2a.cc+ActionInitialization+PrimaryGeneratorAction
笔记·学习方法·改行学it·geant4·b2a
蒙奇D索大3 天前
【数据结构】考研数据结构核心考点:二叉排序树(BST)全方位详解与代码实现
数据结构·笔记·学习·考研·算法·改行学it
岑梓铭3 天前
《考研408数据结构》第四章(串和串的算法)复习笔记
数据结构·笔记·考研·算法