计算机组成原理学习 Part 1

计算机系统

组成

计算机系统 { 硬件 计算机的实体,如主机、外设等 软件 由具有各类特殊功能的信息(程序)组成 计算机系统 \begin{cases} 硬件 &\text 计算机的实体,如主机、外设等\\ 软件 &\text 由具有各类特殊功能的信息(程序)组成 \end{cases} 计算机系统{硬件软件计算机的实体,如主机、外设等由具有各类特殊功能的信息(程序)组成
软件 { 系统软件 用来管理整个计算机系统 语言处理程序 操作系统 服务性程序 数据库管理软件 网络软件 应用软件 按任务需要编制成的各种程序 软件 \begin{cases} 系统软件 & \text 用来管理整个计算机系统\\ &\text 语言处理程序\\ &\text 操作系统\\ &\text 服务性程序\\ &\text 数据库管理软件\\ &\text 网络软件\\ 应用软件 &\text 按任务需要编制成的各种程序 \end{cases} 软件⎩ ⎨ ⎧系统软件应用软件用来管理整个计算机系统语言处理程序操作系统服务性程序数据库管理软件网络软件按任务需要编制成的各种程序

计算机系统的层次结构

系统复杂性管理的方法

抽象
  • 对于一个过程或者一件制品的某些细节有目的的隐藏,以便把其他方面、细节或者结构表达得更加清楚
  • 指高级得模型和低级得实体相对
  • 隐藏系统中不重要的细节

抽象出的计算机系统的层次结构


计算机体系结构和计算机组成

研究内容上的区别

{ 计算机体系结构 程序员所见的计算机系统的属性 概率性的结构与功能特性 (指令系统、数据类型、寻址技术、 I / O 机理) 计算机组成 实现计算机体系结构所体现的属性 (具体指令的实现) \begin{cases} 计算机体系结构 & 程序员所见的计算机系统的属性\\ & 概率性的结构与功能特性\\ & (指令系统、数据类型、寻址技术、I/O机理)\\ &\\ 计算机组成 & 实现计算机体系结构所体现的属性\\ & (具体指令的实现) \end{cases} ⎩ ⎨ ⎧计算机体系结构计算机组成程序员所见的计算机系统的属性概率性的结构与功能特性(指令系统、数据类型、寻址技术、I/O机理)实现计算机体系结构所体现的属性(具体指令的实现)
{ 计算机体系结构 有无乘法指令 计算机组成 如何实现乘法指令 \begin{cases} 计算机体系结构 & 有无乘法指令\\ 计算机组成 & 如何实现乘法指令 \end{cases} {计算机体系结构计算机组成有无乘法指令如何实现乘法指令

计算机的基本组成

计算机硬件框图

冯诺依曼计算机硬件

以存储器为中心的计算机硬件

现代计算机硬件

硬件 { 主机 { C P U { 运算器 A L U 控制器 C U 存储器 { 主存 辅存 I / O 设备 { 输入设备 输出设备 硬件 \begin{cases} 主机 & \begin{cases} CPU & \begin{cases} 运算器 & ALU\\ 控制器 & CU\\ \end{cases}\\ 存储器 & \begin{cases} 主存\\ 辅存 \end{cases} \end{cases}\\ I/O 设备 & \begin{cases} 输入设备\\ 输出设备 \end{cases} \end{cases} 硬件⎩ ⎨ ⎧主机I/O设备⎩ ⎨ ⎧CPU存储器{运算器控制器ALUCU{主存辅存{输入设备输出设备

系统复杂性管理的方法------3'Y

  • 层次化:将被设计的系统划为多个模块或子模块
  • 模块化:有明确定义的功能和接口
  • 规则性:模块更容易被重用

计算机的工作步骤

上机的准备

  1. 建立数学模型
  2. 确定计算方法
  3. 编制程序
    • 程序 ------ 运算的全部步骤
    • 指令 ------ 每一个步骤

程序的解题过程

存储器的基本组成

主存储器 { 存储体 M A R 存储器地址寄存器(反应存储单元的个数) M D R 存储器数据寄存器(反映存储字长) 主存储器 \begin{cases} 存储体 \\ MAR & 存储器地址寄存器(反应存储单元的个数)\\ MDR & 存储器数据寄存器(反映存储字长) \end{cases} 主存储器⎩ ⎨ ⎧存储体MARMDR存储器地址寄存器(反应存储单元的个数)存储器数据寄存器(反映存储字长)

  • 存储单元:存放一串二进制代码
  • 存储字:存储单元中二进制代码的组合
  • 存储字长:存储单元中二进制代码的位数
  • 按地址寻访:每个存储单元赋予一个地址号

运算器的基本组成及操作过程


A C C M Q X 加法 被加数 和 加数 减法 被减数 差 减数 乘法 乘积高位 乘数 乘积低位 被乘数 除法 被除数 余数 商 除数 \begin{array}{|c|c|c|} \hline& ACC & MQ & X \\ \hline 加法 & 被加数 \quad 和 & & 加数\\ \hline 减法 & 被减数 \quad 差 & & 减数\\ \hline 乘法 & 乘积高位 & 乘数 \quad 乘积低位 & 被乘数\\ \hline 除法 & 被除数 \quad 余数 & 商 & 除数\\ \hline \end{array} 加法减法乘法除法ACC被加数和被减数差乘积高位被除数余数MQ乘数乘积低位商X加数减数被乘数除数

控制器

功能
  • 解释指令
  • 保证指令的按序执行
基本组成

控制器 { C U I R P C 控制器 \begin{cases} CU \\ IR \\ PC \end{cases} 控制器⎩ ⎨ ⎧CUIRPC
完成一条指令 { 取指令 P C (存放当前欲执行指令的地址) 分析指令 I R (存放当前欲执行的指令) 执行指令 C U 完成一条指令 \begin{cases} 取指令 & PC(存放当前欲执行指令的地址)\\ 分析指令 & IR(存放当前欲执行的指令)\\ 执行指令 & CU \end{cases} 完成一条指令⎩ ⎨ ⎧取指令分析指令执行指令PC(存放当前欲执行指令的地址)IR(存放当前欲执行的指令)CU

运算器、控制器和存储器构成了什么?

  • 一条指令在主机上的完成过程
  • 程序在主机上是如何执行的

主机完成一条指令的过程(以取数指令为例)

计算机硬件的主要技术指标

机器字长

CPU 一次能处理数据的位数,与 CPU 中的 寄存器位数 有关

运算速度

运算速度 { 主频 核数 每个核支持的线程数 吉普森法 T M = ∑ i = 1 n f i t i C P I 执行一条指令所需时钟周期数 M I P S 每秒执行百万条指令 F L O P S 每秒浮点运算次数 运算速度 \begin{cases} 主频\\ 核数 & 每个核支持的线程数\\ 吉普森法 & T_M = \sum_{i=1}^{n}f_i t_i\\ CPI & 执行一条指令所需时钟周期数\\ MIPS & 每秒执行百万条指令\\ FLOPS & 每秒浮点运算次数 \end{cases} 运算速度⎩ ⎨ ⎧主频核数吉普森法CPIMIPSFLOPS每个核支持的线程数TM=∑i=1nfiti执行一条指令所需时钟周期数每秒执行百万条指令每秒浮点运算次数

存储容量

存放二进制信息的总位数
存储容量 { 主存容量 { 存储单元个数 × 存储字长 如 M A R = 10 , M D R = 8 则 容量 = 1 K × 8 位( 1 K = 2 10 ) 字节数 辅存容量 字节数 存储容量 \begin{cases} 主存容量 & \begin{cases} 存储单元个数 \times 存储字长\\ \quad如 \quad MAR = 10,MDR = 8\\ \quad 则 \quad 容量 = 1K \times 8位 (1K = 2^{10})\\ \\ 字节数 \end{cases}\\ 辅存容量 & 字节数 \end{cases} 存储容量⎩ ⎨ ⎧主存容量辅存容量⎩ ⎨ ⎧存储单元个数×存储字长如MAR=10,MDR=8则容量=1K×8位(1K=210)字节数字节数

相关推荐
Code哈哈笑13 分钟前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
QQ同步助手1 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
流浪的小新1 小时前
【AI】人工智能、LLM学习资源汇总
人工智能·学习
A懿轩A2 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
南宫生10 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
sanguine__10 小时前
Web APIs学习 (操作DOM BOM)
学习
数据的世界0112 小时前
.NET开发人员学习书籍推荐
学习·.net
四口鲸鱼爱吃盐12 小时前
CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击
学习
OopspoO15 小时前
qcow2镜像大小压缩
学习·性能优化
A懿轩A15 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列