计算机组成原理(计算机系统概述)

news2024/11/16 6:54:42

目录

  • 一. 计算机的发展
  • 二. 计算机硬件的基本组成
    • 2.1 早期冯诺依曼机
    • 2.2 现代计算机的结构
  • 三. 各硬件的工作原理
    • 3.1 主存储器的基本组成
    • 3.2 运算器的基本组成
    • 3.3 控制器的基本组成
  • 四. 计算机的工作过程

\quad

一. 计算机的发展

计算机系统 = 硬件 + 软件

软件
系统软件
应用软件
用来管理整个计算机系统: 比如操作系统 DBMS 语言处理程序
按任务需要编制成的各种程序: 比如抖音 王者荣耀

\quad

第一台电子计算机:ENIAC(1946)

\quad

硬件的发展

发展阶段逻辑元件优缺点
第一代电子管体积超大,耗电量超大
第二代晶体管体积、功耗降低, 出现面向过程的程序设计语言:FORTRAN,有了操作系统雏形
第三代中小规模集成电路计算机主要用于科学计算等专业用途,高级语言迅速发展,开始有了分时操作系统
第四代超大规模集成电路开始出现 “微处理器”、微型计算机、个人计算机(PC)萌芽, 操作系统:window、MacOS、Linux

\quad

微处理器的发展

微处理器的定义:
微处理器是由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。
微处理器能完成取指令、执行指令,以及与外界存储器逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。

微型计算机的发展以微处理器技术为标志
在这里插入图片描述
机器字长: 一次整数运算所能处理的二进制位数
\quad
\quad
\quad
在这里插入图片描述
故事是这样的:
肖克利发明了晶体管, 创建了公司卖晶体管
后来那八个人慕名加入了肖克利公司
由于肖克利管理公司能力欠佳, 那八人离开了肖克利公司,
被称为八叛徒的他们创立了仙童半导体公司

\quad

摩尔定律

摩尔定律揭示了信息技术进步的速度, 集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将提升一倍

也就是说
就是说我现在买了个2000元的晶体管, 过了18个月后,还用两千元就可以买到性能是之前两倍的晶体管

\quad

计算机目前的发展趋势

“两极分化”:
1.是微型计算机向更微型化、网络化、高性能、多用途方向发展(智能手表,手机)
2.是巨型机向更巨型化、超高速、并行处理、智能化方向发展(神威.太湖之光)

在这里插入图片描述

\quad

二. 计算机硬件的基本组成

\quad

计算机硬件的基本组成
早期冯诺依曼机的结构
现代计算机的结构

\quad

2.1 早期冯诺依曼机

\quad
在这里插入图片描述
“存储程序” 的概念是指将指令以二进制代码的形式事先输入计算机的主存储器, 电脑再一条一条的去执行, 而不是像之前的每执行一条程序就要手动接线
\quad
\quad
在这里插入图片描述
程序指令的解析是由控制器来决定的
控制器指挥程序运行
\quad

在计算机系统中, 软件和硬件在逻辑上是等效的

Eg: 对于乘法运算, 可以设计一个专门的硬件电路实现乘法运算, 也可以用软件的方式, 执行多次加法运算来实现

软件和硬件都可以实现某个功能
软件实现的话,性能更低, 当然成本也更低
硬件实现的话(可以设计运算器的结构),性能更高, 成本也更高

在这里插入图片描述
效率低的原因就是输出设备要从存储器里取出数据还需要通过运算器来完成
以运算器为中心

\quad

2.2 现代计算机的结构

\quad

在这里插入图片描述
现代计算机以存储器为中心
CPU=运算器+控制器

在这里插入图片描述

需要注意的是: 主机=内存+CPU, 而不是包含风扇和其他的
主存就是内存, 辅存是机械硬盘和固态硬盘

在这里插入图片描述
\quad
\quad
在这里插入图片描述

\quad

三. 各硬件的工作原理

\quad

3.1 主存储器的基本组成

在这里插入图片描述
MAR是地址寄存器
MDR是数据寄存器

CPU的读写操作与我们取快递类似
在这里插入图片描述

在这里插入图片描述
存储单元: 每个存储单元存放一串二进制代码
存储字长:存储单元中二进制代码的位数
存储字(word):存储单元中二进制代码的组合
(一个存储字可代表一个二进制数,也可代表一串字符,如存储字为0011011001111101,既可表示为由十六进制字符组成的367DH(ASCII码),又可代表16位的二进制数,此值对应十进制数为13 949,还可代表两个ASCII码:“6”和“}”。一个存储字还可代表一条指令。)
存储元:即存储二进制的电子元件,每个存储元可存1bit

在这里插入图片描述
例如:
MAR=4位 \quad ->总共可以有24个存储单元
MDR=16位 \quad ->每个存储单元可以存放16bit

\quad

1字节(Byte) = 8位(bit)固定的,注意B与b的区别
在16位的系统中(比如8086微机) 1字 (word)= 2字节(Byte)= 16(bit)
在32位的系统中(比如win32) 1字(word)= 4字节(Byte)=32(bit)
在64位的系统中(比如win64)1字(word)= 8字节(Byte)=64(bit)

\quad

3.2 运算器的基本组成

\quad
运算器:用于实现算术运算(加减乘除)、逻辑运算(与或非)的

在这里插入图片描述
ACC(累加器):用于存放操作数或运算结果
MQ(乘商寄存器):在乘除运算时,用于存放操作数或运算结果
X(通用操作数寄存器):用于存放操作数
ALU(算术逻辑单元):通过内部复杂的电路实现算术运算、逻辑运算,是运算器的核心部件

\quad

3.3 控制器的基本组成

在这里插入图片描述
CU(控制单元):分析指令,给出控制信号,是控制器的核心部件
IR(指令寄存器):存放当前执行的指令
PC(程序计数器):存放下一条指令地址,有自动加1功能

在这里插入图片描述

\quad
\quad

四. 计算机的工作过程

\quad
\quad
以c语言为例 运行y=a*b+c的过程
在这里插入图片描述
指令由操作码地址码构成
这个是16bit的指令(有16位二进制)
\quad
在这里插入图片描述
寄存器名加上括号的意思是寄存器里面的内容(比如(MAR=0))
Memory(存储器)

程序计数器PC指向第一条指令, 主存地址为0, PC存放的内容需要通过地址总线传送到MAR(地址寄存器)中, 也就是说控制器要向主存地址要0号地址的指令,而且是读操作, 那么MAR就去存储体里面找出0号地址所对应的指令取出来放到MDR(数据寄存器)
\quad
\quad
在这里插入图片描述
IR为指令寄存器, MDR的指令传到IR里面

\quad

在这里插入图片描述

IR会把操作码送到CU控制单元里面, CU就会分析这个操作码, 结果是取数操作, 所以把这条指令的地址码对应的数据取出来放进ACC寄存器中(地址码所对应的十进制数是5, 那么就在主存地址5中拿到原始数据是a=2,然后a=2就会被送到ACC累加寄存器中)

第1~4步是取指令的过程
第5步是分析指令
第6~9步是执行取数指令

在完成取指令之后pc会自动加1

在这里插入图片描述
在这里插入图片描述

MQ(乘商寄存器)

在这里插入图片描述
被乘数a先被放在X(通用寄存器), b被放在MQ里面, 最后CU会让ALU(算数逻辑单元)进行乘法运算, 最后把乘得的结果放到ACC里面

如果ACC放不下, 就会把结果的低位放在MQ里面

在这里插入图片描述
ACC存放加数, X存放被加数

在这里插入图片描述
在这里插入图片描述

存数指令, 会把ACC里面的值传到MDR,而且MAR里面是存数指令地址为8, CU会告诉存储体为写操作, 于是存储器就会根据MAR里的地址把MDR的值存在存储体里

在这里插入图片描述

CPU区分指令和数据的依据: 指令周期的不同阶段

在这里插入图片描述

现在的计算机通常把MAR、MDR也集成在CPU内

科普:CPU是超大规模的集成电路的一种,而集成电路都可以叫做芯片

链接: 王道考研计算机组成原理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1250847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何搭建zerotier服务器组网实现内网穿透

小白花了四天的下班时间终于把zerotier网络调通,此刻坐在桌前舒畅地喝口茶~~ 下面来详细记录下这几天踩的坑: 起因就在于一直在iPad上用向日葵连接公司电脑的我觉得向日葵的界面用的实在难受,vs code操作十分不灵光&…

Windows核心编程 线程

目录 线程概述 进程与线程的关系 线程调度原理 单核与多核的线程处理方式 多线程 线程相关API 线程分配 线程切换时 线程状态 线程退出 线程退出时做的事(正常退出情况) 线程概述 程序磁盘上的一个可执行文件(由指令和数据等组成…

Flash Attention:高效注意力机制的突破与应用

注意力机制彻底改变了自然语言处理和深度学习领域。它们允许模型在执行机器翻译、语言生成等任务时专注于输入数据的相关部分。 在这篇博客[1]中,我们将深入研究被称为“Flash Attention”的注意力机制的突破性进展。我们将探讨它是什么、它是如何工作的&#xff0c…

赋值,浅拷贝,深拷贝

1.前置知识 数据分为基本类型(String, Number, Boolean, Null, Undefined,Symbol)和引用类型(Object)基本类型:直接存储在栈内存中的数据引用类型:指向改数据的指针变量存储在栈内存中,真实的数据存储在堆内存中引用类型在栈内存…

SpectralGPT: Spectral Foundation Model 论文翻译1

遥感领域的通用大模型 2023.11.13在CVPR发表 原文地址:[2311.07113] SpectralGPT: Spectral Foundation Model (arxiv.org) 摘要 ​ 基础模型最近引起了人们的极大关注,因为它有可能以一种自我监督的方式彻底改变视觉表征学习领域。虽然大多数基础模型…

河南省第一届职业技能大赛网络安全项目试题

河南省第一届职业技能大赛 网络安全项目试题 一、竞赛时间 总计:420分钟 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 240分钟 200分 A-2 Web安全加固(Web) A-3 流量完整性保护与事件监控&a…

Openwrt 包管理系统介绍

Openwrt 包管理系统介绍 1. OpenWrt简介1.1 主要特点1.2 开源嵌入式操作系统1.2.1 嵌入式系统概念1.2.2 嵌入式系统分类1.2.3 嵌入式系统——安卓1.2.4 嵌入式系统的对比 2 OpenWrt包管理系统2.1 工作原理2.2 OPKG命令2.2.1 命令用法2.2.2 软件包的管理2.2.3 查询信息2.2.4 选项…

ubuntu 编译linux webrtc库

ubuntu 编译linux webrtc库 安装依赖 sudo apt-get update sudo apt-get install build-essential libssl-dev libasound2-dev libpulse-dev libjpeg-dev libxv-dev libgtk-3-dev libxtst-dev libwebp-dev sudo apt-get install libglib2.0-dev sudo apt-get update 报错时出…

设计测试用例的具体方法总结

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️白马沉河共歃誓,怒涛没城亦不悔 ☁️基于需求进行测试用例的设计 基…

【Linux】匿名管道与命名管道,进程池的简易实现

文章目录 前言一、匿名管道1.管道原理2.管道的四种情况3.管道的特点 二、命名管道1. 特点2.创建命名管道1.在命令行上2.在程序中 3.一个程序执行打开管道并不会真正打卡 三、进程池简易实现1.makefile2.Task.hpp3.ProcessPool.cpp 前言 一、匿名管道 #include <unistd.h&g…

死磕Nacos系列:Nacos在我的SpringCloud项目中做了什么?

Nacos服务注册 我们一个SpringCloud项目中集成了Nacos&#xff0c;当项目启动成功后&#xff0c;就可以在Nacos管理界面上看到我们项目的注册信息&#xff0c;还可以看到项目的健康状态等等信息&#xff1a; 那Nacos是什么时候进行了哪些操作的呢&#xff1f;今天我们来一探究…

数据挖掘 K近邻

什么时候用K近邻&#xff1f; 交叉验证的时候。最常见的交叉验证方法是K折交叉验证&#xff0c;其中数据集被均匀分成K个子集&#xff0c;称为折&#xff0c;然后执行K次训练和测试&#xff0c;每次选择不同的折作为测试集&#xff0c;其余的作为训练集。最后&#xff0c;将K次…

qt5.15.2及6.0以上版本安装

文章目录 下载在线安装器安装打开软件 下载在线安装器 因为从qt5.15开始不支持离线下载安装了&#xff0c;只能通过在线安装的方式进行安装。 下载在线安装下载器&#xff1a; 这个在线安装下载器网上也都是可以找到。 这里是其放到网盘上的下载地址&#xff1a; 链接&#x…

DBT踩坑第二弹

总结下dbt-spark踩到的坑&#xff0c;连接方式采用的是thrift连接 Kerberos认证。考虑到开源组件Kyuubi也是基于Hiveserver2&#xff0c;使用的thrift协议&#xff0c;所以采用Kyuubi执行SparkSQL。 官方文档给出的Thrift方式连接示例真的是简单&#xff0c;但是真是用起来真是…

01_MySQL介绍及安装

#任务背景 一、真实案例 某公司现在有几套不同版本的MySQL数据库&#xff0c;现在大部分的生产和测试环境都已经切换到5.7版本&#xff0c;由于历史原因&#xff0c;有一套测试环境版本为MySQL-5.5。现为了将测试环境版本统一&#xff0c;需要将原来测试环境数据库MySQL-5.5版…

Linux:创建进程 -- fork,到底是什么?

相信大家在初学进程时&#xff0c;对fork函数创建进程一定会有很多的困惑&#xff0c;比如&#xff1a; 1.fork做了什么事情?? 2.为什么fork函数会有两个返回值?3.为什么fork的两个返回值&#xff0c;会给父进程谅回子进程pid&#xff0c;给子进程返回0?4.fork之后:父子进…

哨兵1号回波数据(L0级)包格式解析与成像参数提取

坑爹的格式,具体有多坑往下看就知道了。matlab代码在文末。 先上首字母缩写: 再来回波数据包的格式图 1. 数据包格式 众所周知,解包的第一步是找帧头和帧长,找到第4~5字节,帧长码为“0x3761”,转十进制为14777,然而实际第一帧整帧的长度是14184。。。你要是加6我还能…

机器学习与因果推断的高级实践 | 数学建模

文章目录 因果推断因果推断的前世今生&#xff08;1&#xff09;潜在结果框架&#xff08;Potential Outcome Framework&#xff09;&#xff08;2&#xff09;结构因果模型&#xff08;Structual Causal Model&#xff0c;SCM&#xff09; 身处人工智能爆发式增长时代的机器学…

LeetCode OJ循环队列(C语言)

1.题目的初步分析 我们分析上述题目的时候会发现题目非常的长&#xff0c;不好整理思路&#xff0c;我这里可以大致的将本题的几个核心点说出来&#xff1a; 1.队列的思路 循环队列说来说去不还是队列嘛&#xff0c;那么队列的基本操作增删查改、以及队列的基本结构肯定都是不能…

京东家用电器商品电子说明书在哪里能找到怎么查看产品电子说明书?草柴返利APP如何查询领取京东优惠券拿京东购物返利?

京东商品电子说明书是一种便捷、高效的说明工具&#xff0c;为消费者了解和使用商品提供了重要帮助。京东商品电子说明书是一种以电子文档、图文、视频的形式提供的商品使用说明书。它通常由商家上传至京东平台&#xff0c;以供消费者在购买商品后下载查看。与传统的纸质说明书…