408计算机组成原理学习笔记——计算机系统概述
目录
1.计算机硬件的基本组成
1.1.计算机硬件组成部分
1.2.冯诺依曼计算机的特点
1.3.现代计算机的特点
2.主存储器的基本组成
2.1.MAR和MDR
2.2.存储单元、存储字长和存储字
2.3.运算器的基本组成
2.4.控制器的基本组成
2.5.计算机工作过程
3.计算机系统的层次结构
4.计算机的性能指标
4.1.存储器的性能指标
4.2.CPU的性能指标
1.计算机硬件的基本组成
1.1.计算机硬件组成部分
1.存储程序:将指令以二进制代码的形式存入计算机的主存储器,顺序执行
2.输入设备:将程序和数据以机器所能识别的方式输入计算机(信息转化)
存储器:存放程序和数据
运算器:执行算数运算和逻辑运算
输入设备:将计算机运算结果转换为人类所熟悉的方式(信息转化)
控制器:指挥程序运行
①控制器从存储器中取指令(加减乘除)
②对运算器进行控制进行该指令
③将结果放回存储器
3.软件和硬件在逻辑上是等效,但是软件效率低,价格低,硬件效率高,价格高(乘法)
1.2.冯诺依曼计算机的特点
1.计算机由五大部件组成:运算器、控制器、存储器、输入设备、输出设备
2.指令和数据以同等地位存入存储器,按照地址寻址
3.指令和数据用二进制表示
4.指令由操作码和地址码存放组成
操作码:指明该指令进行的具体操作。加减乘除
地址吗:该指令的操作数存放在存储器中的具体地址,对其进行访存操作
5.存储程序
6.以运算器为中心:输入和输出的数据都需要经过运算器(现代计算机以存储器为中心)
1.3.现代计算机的特点
1.以存储器为中心(提升效率,输入和输出数据无须再必须经过运算器)
2.运算器和控制器集合成CPU
3.控制器控制运算器进行操作(加减乘除),控制主存储器的读写和控制I/O设备启动/停止
4.主存储器和CPU进行数据交换(指令),指令送往控制器,运行期对操作数进行相应操作
5.I/O设备和主存储器直接进行数据交换
6.存储器分为主存(主存储器,算为主机)和辅存(硬盘,算为I/O设备)
2.主存储器的基本组成
2.1.MAR和MDR
1.MAR(Memory Address Register):存储地址寄存器(存地址)
2.MDR(Memory Data Register):存储数据寄存器(存数据)
3.取:①将数据的地址存入MAR中
②控制器发出取指令
③根据MAR存放的地址,取出数据放到MDR中
4.存:①将数据想要存放的地址放在MAR中,数据放在MDR中
②控制器发出指令,是存操作
③把MDR中的数据存入MAR相应地址
2.2.存储单元、存储字长和存储字
1.存储体会被分为若干个存储单元,每个地址对应一个存储单元,若MAR想要地址为1的存储单元的数据,存入MAR的地址为1(二进制存储,具体位数根据情况)
2.存储单元:每个存储单元存放一串二进制代码(外部看)
3.存储字:存储单元存放的二进制代码的组合(内部看)
4.存储字长:存储单元中二进制代码的位数(8bit的整数倍)
5.存储元:存储二进制的电子元件,每个存储元可存1bit,多个存储元构成一个存储单元
6.MAR位数反映存储单元的个数(位数即次方数),MDR位数 = 存储字长(存储单元内的数据取出后需要存放在MDR内,因此大小相同)
eg:MAR为4位→共有2 ^ 4个存储单元(4位最多能表示2 ^ 4个数字)
MDR为16位→每个存储单元可以存放16bit,即一个存储字为16bit,存储字长为16bit
2.3.运算器的基本组成
1.运算器作用:实现逻辑运算(与或非)和算数运算(加减乘除)
2.组成部分:
ACC(Accumulator):累加器,用于存放操作数或者运行结果
MQ(Multiple-Quotient):乘商寄存器,在乘、除运算时,用于存放操作数或者运行结果
ALU(Arithmetic and Logic Unit):算数逻辑单元,通过电路实现算术运算和逻辑运算
X:通用寄存器,用于存放操作数(可能会有多个)
2.4.控制器的基本组成
1.组成部分:
CU(Control Unit):控制单元,分析指令,给出控制信号(控制其他部件)
IR(Instruction Register):指令寄存器,存放当前执行的指令
PC(Program Counter):程序计数器,存放下一条指令的地址,有自动加“1”的功能
2.完成一条指令的过程:取指令(PC)→分析指令(区分操作码和地址码)(IR)→执行指令(分析操作码,确定具体操作)(CU)
前两个阶段为取指令,第三个阶段为执行
2.5.计算机工作过程
CPU区分指令和数据的依据:指令周期的不同阶段(取指令→分析指令→执行指令)
①初始情况:
1.主存地址为存储单元的编号
2.地址0-4存储机器指令,分为操作码和地址码,共16bit
3.地址5-8分别存储变量a、b、c、y的数据(二进制)
②执行过程
()为寄存器内的内容,M为主存储器
初始化:(PC)= 0,指向第一条指令的存储位置
1.(PC)→MAR,导致(MAR) = 0:PC的内容通过地址总线存放到MAR中
2.控制器向主存储器表明接下来访问地址为0的数据,并且通过控制总线告诉主存储为读操作
3.M(MAR)→MDR,导致(MDR) = 000001 0000000101:主存储器根据MAR存放的地址从存储体中取出相应数据,并放到MDR中
4.(MDR)→IR,导致(IR)=000001 0000000101 :MDR通过数据总线将MDR存放的内容存放到IR中
5.OP(IR)→CU,指令的操作码送到CU,CU分析后得知这是“取数”命令
6.Ad(IR)→MAR,指令的地址码送到MAR,导致(MAR)= 5
7.M(MAR)→MDR,导致(MDR)= 0000 0000 0000 0010 = 2
8.(MDR)→ACC,导致(ACC)= 0000 0000 0000 0010 = 2
1-4为取指令,5为分析指令,6-8为执行指令(取指令完成后,PC自动加1,指向下一条指令)
此时,(PC)= 1,(ACC) = 2
1.(PC)→MAR,导致(MAR) = 1
2.M(MAR)→MDR,导致(MDR) = 000100 0000000110
3.(MDR)→IR,导致(IR)= 000100 0000000110(取指令完成,PC + 1)
4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是乘法指令(分析指令完成)
5.Ad(IR)→MAR,指令的地址码送到MAR,导致(MAR)= 6
6.M(MAR)→MDR,导致MDR = 0000 0000 0000 0011 = 3
7.(MDR)→MQ,导致MQ = 0000 0000 0000 0011 = 3
8.(ACC)→X,导致(X) = 2:执行乘法操作时,将操作数放到X寄存器中
9.(MQ)*(X)→(ACC),导致(ACC)= 6:通过CU控制ALU实现(执行指令完成)
此时,(PC) = 2,(ACC) = 6
1.(PC)→MAR,导致(MAR)= 2
2.M(MAR)→MDR,导致(MDR)= 000011 0000000111
3.(MDR)→IR,导致(IR)= 000011 0000000111(取指令完成,PC+1)
4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是加法指令(分析指令完成)
5.AD(IR)→MAR,指令的地址码送到MAR,导致(MAR) = 7(指明C存放的地址)
6.M(MAR)→MDR,导致(MDR)= 0000 0000 0000 0001
7.(MDR)→X,导致(X)= 0000 0000 0000 0001
8.(ACC)+(X)→ACC,导致(ACC)= 7,由ALU实现加法运算(执行指令完成)
此时,(PC)= 3,(ACC)= 7
1.(PC)→MAR,导致(MAR)= 3
2.M(MAR)→MDR,导致(MDR)= 000010 0000001000
3.(MDR)→IR,导致(IR)= 000010 0000001000(取指令完成,PC+1)
4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是存数指令(分析指令完成)
5.AD(IR)→MAR,指令的地址码送到MAR,导致(MAR) = 8
6.(ACC)→MDR,导致(MDR)= 7
7.(MDR)→地址为8的存储单元,导致 y = 7(执行指令完成)
此时,(PC)= 4
1.(PC)→MAR,导致(MAR)= 4
2.M(MAR)→MDR,导致(MDR)= 000110 000000-000
3.(MDR)→IR,导致(IR)= 000110 0000000000(取指令完成,PC+1)
4.OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是停机指令(分析指令完成)
5.操作系统进行后续操作
3.计算机系统的层次结构
1.高级语言:面向用户。C/C++
2.汇编语言:高级语言通过编译程序翻译成汇编语言
3.机器指令:通过汇编程序将汇编语言翻译成机器指令
4.微指令:机器指令进一步分解为微指令,硬件直接执行微指令
5.汇编语言和机器指令一一对应
6.若需要调库,则需要链接,即将文件和库文件结合
7.预处理→编译→汇编→链接
8.编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序(.exe文件)(只需翻译一次)
解释程序:将源程序的一条语句翻译成对应的机器语言的语句,并立即执行,接着翻译下一句(每次执行都要翻译)
4.计算机的性能指标
4.1.存储器的性能指标
1.总容量 = 存储单元个数 * 存储字长 bit = 存储单元个数 * 存储字长 / 8 Byte
2.可以通过MAR和MDR计算总容量
MAR代表存储单元个数(最多),MDR代表存储字长
eg:MAR为32位,MDR为8位→总容量 = 2 ^ 32 * 8 = 4GB
4.2.CPU的性能指标
1.主频(HZ):数字脉冲信号振荡的频率
时钟周期(微妙,纳秒):主频的倒数,执行指令的每个动作至少需要1个时钟周期
2.CPI(Clock cycle Per Instruction):每条指令的执行需要几个时钟周期(可能会变化),通常取平均值
3.CPU执行时间:CPU时钟周期数 / 主频 = (指令条数)* CPI / 主频
4.IPS(Instruction Per Second):每秒执行多少个指令。IPS = 主频 / CPI(MIPS)
5.FLQPS(Floating-point Operations Per Second):每秒执行多少次浮点运算
K:10 ^ 3→M:10 ^ 6→G:10 ^ 9→T:10 ^ 12→P:10 ^ 15→E:10 ^ 18→Z:10 ^ 21
6.数据通路带宽:数据总线一次所能并行传送数据的位数
7.吞吐量:单位时间内处理请求的数量
8.响应时间:用户发出请求,到系统对其做出反应并得到结果的时间
408计算机组成原理学习笔记——计算机系统概述相关推荐
- 计算机组成原理学习笔记——计算机外围设备
计算机的外围设备 一.输入设备 1.键盘 2.鼠标 二.输出设备 1.显示器 1)CRT 显示器 ①字符显示器 ②图形显示器 2)LCD 显示器 3)LED显示器 2.打印机 1)针式打印机 2)喷墨 ...
- 评价微型计算机总线的性能指标,计算机组成原理学习笔记(3):总线
文章目录 课程笔记导览 附录:英语解释 第三章 总线 3.1 总线的基本概念 使用总线的原因: 总线的定义 总线上信息的传送 总线结构举例 单总线结构 面向CPU的双总线结构 以存储器为中心的双总线结 ...
- 计算机组成原理学习笔记一
计算机组成原理学习笔记一 计算机发展历程 一.计算机硬件发展 (1)计算机的四代变化 (2)计算机元件更新换代 二.计算机软件发展 三.计算机的分类 计算机系统层次结构 一.计算机系统的组成 二.计算 ...
- 计算机组成原理学习笔记(上)
计算机系统概论 计算机发展历程 原始计算工具 中国人的智慧之光 机械式计算机 西方人的智慧 机电式计算机 电子计算机 1,最古老的计算工具:算筹 2,冈特计算尺 3,达芬奇机械式计算机 4,1642年 ...
- 408计算机组成原理学习:计算机的基础
408计算机组成原理学习:计算机的基础 计算机系统 = 硬件 + 软件 硬件:计算机的实体,如主机.外设等 软件:由具有各类特殊功能的程序组成 计算机性能的好坏取决于"软".&qu ...
- 计算机组成原理学习笔记第1章 1.3——实验一 计算机性能测试
计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 本篇笔记整理:Code_流苏(CSDN) 目录 计算机组成原理学习笔记第1章 1.3--实验一 计算机性能测试 0️⃣思维导图(自制) ...
- 计算机组成原理学习笔记第5章指令系统 5.6——MIPS指令详解
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.R型指令 ...
- 计算机组成原理学习笔记第6章中央处理器CPU 6.2——数据通路DataPath
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.数据通路 ...
- 计算机组成原理学习笔记第5章指令系统 5.3——操作数寻址方式
有诗云:苔花如米小,也学牡丹开.--袁枚 本篇笔记整理:Code_流苏(CSDN) Last(在此处点击使用,直达文末) First (在文末点击使用,返回文章首部) 目录 0.思维导图 1.立即数寻 ...
最新文章
- Codeforces 698D Limak and Shooting Points (搜索)
- Java Micro-Benchmarking:如何编写正确的基准
- 【转】DPDK(一):专业术语
- matlab调用python_从MATLAB调用Python函数
- bzoj1084 [SCOI2005]最大子矩阵 dp
- 常用类 (四) ----- Random随机数类
- google地球无法连接_WiFi无法连接?解决macOS Big Sur/Mojave/ Catalina上的Wi-Fi问题
- 2017CCPC哈尔滨 B:K-th Number(二分)
- 搭建Hadoop集群(二)
- java 打印数据_Java 中的打印流
- 计算机日志文件事件ID,系统日志出现事件 ID:16001来源:AFD的警告
- git 解决push报错:[rejected] master -> master (fetch first) error: failed to push some refs to ‘ ‘
- 更新AirPods Max新固件版本以及该如何查看版本号
- [详细教程]jdk官方下载,Linux安装jdk1.7,图文解说,一看就会
- 解决ios微信公众号h5页面新增底部前进后退导航栏产生的布局问题
- ESP8266 驱动1.3寸SH1106 OLED屏幕显示库
- 2020双周训练训练日志
- 使用tinymce编辑器从word保持原格式复制粘贴的办法
- 常用英语口语绝佳句型100句
- 192.168.1.10/27,后面的27是什么意思,这样写限制的网络是哪些?
热门文章
- shiro for example: not eligible for auto-proxying
- mysql前段编写_HTML、CSS、JavaScript、PHP、 MySQL 的学习顺序是什么?
- 性能领域:你知道的越多,不知道的也就越多
- 游戏中支线任务的设计Pt.1: 如龙0——海量支线搭建起来的不夜城
- 实现Python爬虫的思路、原理
- Android4.4之后SD卡存储方案
- 手撕代码deep image matting(6):dataset(1)
- 解决导入nem-core2.jar包后所引发的maven install 失败的问题
- SRC赏金平台总结(持续更新中)
- 关于爬取企业信息类的爬虫(一)