计算机组成原理(一)

计算机内部是通过电信号传递数据

电信号:分为高电平和低电平,分别代表1/0

  • 数字、文字、图像如何用二进制表示?

  • CPU如何对二进制数进行加减乘除?

  • 如何存储这些二进制数的?

  • 如何从内存中取出想要的数据?

  • CPU如何识别和执行我们写的程序?

    这些问题我们在下面会得到解释,请往下看

计算机系统的概述

计算机系统=硬件+软件

软件分为系统软件和应用软件

系统软件:用来管理整个计算机系统。eg:操作系统

应用软件:按任务需求编制成的各种程序.eg:抖音,王者荣耀

硬件的发展:

第一代计算机:

逻辑元件是电子管,因此被称为电子管时代

体积超大、耗电量超大

第二代计算机:

逻辑元件:晶体管,被称为晶体管时代

体积和功耗降低了,出现了面对过程的编程语言

并且fortran的操作系统

第三代计算机:

逻辑元件:中小规模集成电路,因此被称为中小规模集成电路时代

第四代:

超大规模集成电路时代

机械字长:

计算机一次整数运算所能处理的二进制位数

计算机硬件的基础组成

存储系统:

将指令以二进制代码的形式事先输入计算机的主存储器。

然后将其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直到程序执行结束。

冯诺依曼机结构:

黑色的线是数据线

蓝色的线是控制器接受和指挥各个部件的控制线or反馈线

CPU=运算器+控制器

现代计算机以存储器为中心

存储器分为主存储器和辅助存储器

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

  • 1.计算机由五大部件组成,
  • 2.指令和数据以同等地位存于存储器,可按地址寻访
  • 3.指令和数据用二进制表示
  • 4.指令由操作码和地址码组成
  • 5.存储程序
  • 6.以运算器为中心

CPU+主存储器=主机

辅助存储器、输入输出设备为I/O设备

而I/O设备+主机=硬件

认识各个硬件部件

主存储器:

主存储器:存储体+MAR(地址寄存器)+MDR(数据寄存器)

数据在存储体内按地址存储

存储体分为一个一个存储单元

存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数,,一般是8个bit的整数倍

数据在存储体内按地址存储

MAR:反映存储单元的个数

MDR:存储字长

MAR=4位(4个比特位),对应2的四次方个存储单元(因为四个比特位,对应4的全排列种可能)

MDR=16位,一个字(存储字长)=16bit

运算器:

运算器:用来实现算术运算、逻辑运算

ACC:累加器,用于存放操作数or运算结果

MQ:乘商寄存器,在乘、除运算时,用来存放操作数or运算结果

X:通用的操作数寄存器,用于存放操作数

ALU:算术逻辑单元,通过内部复杂的登录实现算术运算、逻辑运算

ACC、MQ都可以用来存放操作数or运算结果

但X只能用来存放操作数

控制器:

CU:控制单元,分析指令,给出控制信号

IR:指令寄存器,存放当前的指令

PC:程序计数器,存放下一条指令的地址,有自动加1功能

完成一条指令的顺序:

PC——IR——CU

计算机的工作过程:

  • 下列这个代码在计算机的工作过程是怎么样的呢?
#include<iostream>
int main()
{int a = 2, b = 3, c = 1, y = 0;y = a * b + c;return 0;
}

代码(高级语言)先编译装入主存储器

MAR带个(),寄存器打个括号,指的是寄存器里面的内容

M代表主存储器

第一过程:

PC先指向主存储器地址为0的地址,PC通过控制线路传给MAR,MAR指向主存地址为0的地址

存储体将MAR的地址取来,再将主存地址为0的内容反馈给MDR。MDR=000001 0000000101

将MDR的内容(操作码+地址码)传给IR(指令寄存器)

IR将其中的操作码000001传给CU(控制单元,给出控制信号),CU分析后,得知是"“取数”"指令

IR的地址码0000000101传给MAR,导致MAR=5

主存储器中的MAR地址的数据传给MDR,MDR=0000000000000010=2

MDR将数据传给ACC,并存放在ACC中,导致ACC=0000000000000010=2

第二过程:

PC+1,PC=1后,ACC此时为2

PC通过数据线传给MAR,MAR=1

存储体通过MAR传来的地址传其数据给MDR=000100 000000110

MDR传给IR,IR=000100 000000110

IR将其操作码000100传给CU,CU分析后得知这是乘法指令

IR的地址码000000110传给MAR,MAR=6

MAR将其地址传给存储体,存储体传给MDR,MDR=0000000000000011=3

MDR将其数据传给MQ,MQ=0000000000000011=3

ACC=2,将ACC的数值传给X,X=2

MQ*X的数值传给ACC寄存起来,再通过ALU实现乘法运算,导致ACC=6(如果乘积太大,就需要MQ辅助存储)

PC+1=2

PC+1=3

PC=4

计算机系统的层次结构


【计算机组成原理】计算机硬件的基础组成、认识各个硬件部件相关推荐

  1. 计算机控制器代表硬件,计算机组成原理:计算机硬件系统

    计算机硬件系统是指构成计算机的所有实体部件的集合,通常这些部件由电路(电子元件).机械等物理部件组成,它们都是看得见摸得着的,故通常称为硬件,它是计算机系统的物质基础. 绝大多数计算机都是根据冯·诺依 ...

  2. 计算机组成原理——计算机硬件组成原理(冯诺依曼和现代计算机)

    冯诺依曼体系(以运算器为核心) 冯诺依曼体系的特点: 1.计算机硬件系统由五大部件,即存储器,运算器,控制器,输入设备,输出设备组成 2.计算机采用二进制形式表示信息 3.采用存储程序*的工作方式 缺 ...

  3. 计算机组成原理cu_计算机组成原理复习笔记——基础概念(一)

    第一章 计算机系统概论 1.1电子计算机的发展简史 1.第一台电子计算机:1946年,美国,ENIAC 2.冯·诺依曼计算机的特点 (1)计算机由五大部件组成:运算器.控制器.存储器.输入和输出设备: ...

  4. 计算机组成原理王道笔记——基础知识

    一.冯 诺依曼机(计算机硬件基本结构) 冯诺依曼提出了"存储程序"的概念:将指令以二进制代码的形式事先输入计算机的主存储器(内存)中,然后计算机按地址顺序一条一条的执行指令. 冯诺 ...

  5. 空闲数据概念_计算机组成原理复习笔记——基础概念(二)

    第二章 系统总线 2.1基本概念 总线:是连接各个部件的信息传输线,各模块之间传送信息的通路(是各个部件共享的传输介质). 总线上信息的传送:串行.并行 2.2总线的分类 片内总线:芯片内部的总线: ...

  6. 计算机组成原理——计算机硬件的主要性能指标

    计算机硬件的主要性能指标 1.机器字长 CPU一次能处理数据的位数,与CPU中寄存器位数有关 (一般而言,机器字长越长,机器性能越好) 2.运算速度 主频 核数:每个核支持的线程数 吉普森算法:指令的 ...

  7. 基于javaweb计算机组成原理远程教育平台研究与开发

    摘要:本论文针对南京信息工程大学专业课程计算机组成原理优课建设的需要,使用Java EE.LayUI框架.MySQL数据库管理系统等技术,开发了包含信息管理模块.在线学习模块和学习资源管理模块三大功能 ...

  8. 计算机组成原理-算术逻辑单元ALU

    先前的记录: 计算机组成原理-计算机硬件的基本组成 计算机组成原理-计算机的功能部件及层次结构 计算机组成原理-计算机性能指标 计算机组成原理-数制与编码(进制转换) 计算机组成原理-定点数的表示和运 ...

  9. 合工大计算机组成原理ppt,合工大 计算机组成原理 计算机组成原理提纲.pdf

    合工大 计算机组成原理 计算机组成原理提纲 计算机组成原理计算机组成原理 合肥工业大学 计算机与信息学院 陈陈 田田 2013.12.12 提 纲 11 考试形式和试卷结构考试形式和试卷结构 2 考查 ...

  10. 基于fpga的计算机组成原理,清华大学出版社-图书详情-《基于FPGA与Verilog的计算机组成原理实践》...

    计算机组成原理是计算机专业的核心课程,也是一门实践性很强的专业基础课.课程内容不仅包含计算机原理等理论知识,而且包含计算机设计等实践知识.因此,实践是"计算机组成原理"课程重要的组 ...

最新文章

  1. 6000星人气深度学习资源!架构模型技巧全都有,图灵奖得主LeCun推荐
  2. 动态规划算法--矩形最小路径和
  3. 模拟退火求函数最值问题求解
  4. order by、group by也会使用索引?使用这俩关键字的时候索引什么时间会失效
  5. CTF刷题网站汇总(包括本地可以自己搭建的)(1)
  6. 好看的简图动态背景图床源码 多接口聚合图床
  7. 自己动手写Docker系列 -- 5.1实现容器的后台运行
  8. mysql密码自动被改_每日一shell(十一)mysql强制自动修改密码
  9. 190413每日一句
  10. python爬取新浪博客_python爬虫-韩寒新浪博客博文
  11. 用网盘和git来管理资源
  12. 字节编程题 雀魂启动
  13. 基于C语言设计的一个医院叫号系统
  14. 嵌入式Linux设备驱动程序开发指南18(IIO子系统(二)具有硬件触发功能的IIO子系统ADC模块)——读书笔记
  15. 巴别时代php面试题,巴别时代遇到的函数
  16. Python之斐波那契
  17. python 对excel的函数操作(2)
  18. 西安某1000M3浮顶油罐设计(成品油库1000m³油罐设计与制造工艺)
  19. 通达信公式-接近均线
  20. HyperLPR 高性能开源中文车牌识别框架

热门文章

  1. 回忆一年前的快乐时光
  2. 面试官:谈谈分库分表吧?
  3. 取中文拼音首字母,提供了多音字的选择 js javascript c# java 存储过程
  4. 《疯狂Java讲义》读书笔记4
  5. 天呐!疯狂java讲义pdf第五版
  6. 非常另类的数据库插入和删除时阻塞的问题(控制台不报错,表象像是阻塞)
  7. 盘点ML/DL领域国外和国内的顶级大牛
  8. un直连服务器教程,unRAID下使用Docker部署iCloud直连相片备份服务
  9. 《Storytelling With Data》读书心得1
  10. 红楼梦第一回ruby优化