计算机组成原理学习 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)字节数字节数

相关推荐
dayouziei2 小时前
java的类加载机制的学习
java·学习
dsywws5 小时前
Linux学习笔记之vim入门
linux·笔记·学习
晨曦_子画6 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
城南vision6 小时前
Docker学习—Docker核心概念总结
java·学习·docker
ctrey_7 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
十年之少7 小时前
由中文乱码引来的一系列学习——Qt
学习
u0101526588 小时前
STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器
笔记·stm32·学习
王俊山IT9 小时前
C++学习笔记----10、模块、头文件及各种主题(二)---- 预处理指令
开发语言·c++·笔记·学习
慕卿扬9 小时前
基于python的机器学习(二)—— 使用Scikit-learn库
笔记·python·学习·机器学习·scikit-learn
WZF-Sang9 小时前
Linux—进程学习-01
linux·服务器·数据库·学习·操作系统·vim·进程