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

文章目录

  • [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

相关推荐
daanpdf13 小时前
考研英语一历年真题及答案解析PDF(2010-2026)百度网盘
考研·pdf
05候补工程师14 小时前
【408狂飙·数据结构】核心考点深度复盘:数组地址计算、特殊矩阵压缩存储与树的五大性质解题直觉
数据结构·笔记·线性代数·考研·算法·矩阵
daanpdf14 小时前
历年考研数学一、数学二、数学三真题试卷及答案PDF
考研·pdf
秦明月1315 小时前
伺服撞机、丢脉冲?FX3U控制松下伺服调试避坑指南
经验分享·其他·职场和发展·创业创新·学习方法
一只机电自动化菜鸟16 小时前
一建机电备考笔记(38) 焊接技术—焊接质量检验(含考频+题型)
笔记·学习·职场和发展·生活·学习方法
如君愿17 小时前
考研复习 Day 38 | 密码学--第三章 古典密码
考研·密码学·课后习题
fake_ss1981 天前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
脆皮炸鸡7551 天前
进程信号~信号的产生
linux·服务器·开发语言·经验分享·笔记·学习方法
蒟蒻的贤2 天前
编译原理里的冲突到底是什么?
考研·算法
Reart2 天前
csapp 第三章 3.2.2 x86-64 函数调用约定:寄存器分工与c语言转汇编学习(未完成版)
后端·计算机组成原理