当前位置: 首页 > news >正文

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

目录

  • 一. 计算机的发展
  • 二. 计算机硬件的基本组成
    • 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是超大规模的集成电路的一种,而集成电路都可以叫做芯片

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

相关文章:

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

目录 一. 计算机的发展二. 计算机硬件的基本组成2.1 早期冯诺依曼机2.2 现代计算机的结构 三. 各硬件的工作原理3.1 主存储器的基本组成3.2 运算器的基本组成3.3 控制器的基本组成 四. 计算机的工作过程 \quad 一. 计算机的发展 计算机系统 硬件 软件 #mermaid-svg-gp2AsYELE…...

Qt手写ListView

创建视图: QHBoxLayout* pHLay new QHBoxLayout(this);m_pLeftTree new QTreeView(this);m_pLeftTree->setEditTriggers(QAbstractItemView::NoEditTriggers); //设置不可编辑m_pLeftTree->setFixedWidth(300);创建模型和模型项: m_pLeftTree…...

【开源】基于Vue.js的城市桥梁道路管理系统的设计和实现

项目编号: S 025 ,文末获取源码。 \color{red}{项目编号:S025,文末获取源码。} 项目编号:S025,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥…...

2、git进阶操作

2、git进阶操作 2.1.1 分支的创建 命令参数含义git branch (git checkout -b)<new_branch> <old_branch>表示创建分支-d <-D>删除分支 –d如果分支没有合并&#xff0c;git会提醒&#xff0c;-D强制删除-a -v查看分支-m重新命名分支commit id从指定的commi…...

集线器-交换机-路由器

1.集线器(Hub) 集线器就是将网线集中到一起的机器&#xff0c;也就是多台主机和设备的连接器。集线器的主要功能是对接收到的信号进行同步整形放大&#xff0c;以扩大网络的传输距离&#xff0c;是中继器的一种形式&#xff0c;区别在于集线器能够提供多端口服务&#xff0c;也…...

金融众筹模式系统源码 适合创业孵化机构+天使投资机构+投资基金会等 附带完整的搭建教程

随着互联网技术的发展和金融市场的开放&#xff0c;金融众筹模式逐渐成为一种新型的融资方式。这种模式通过互联网平台聚集大量投资者&#xff0c;共同参与到一个项目中&#xff0c;为项目提供资金支持&#xff0c;最终获得投资回报。今天罗峰给大家分享一款金融众筹模式系统源…...

大数据学习(24)-spark on hive和hive on spark的区别

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

SQLite3 数据库学习(六):Qt 嵌入式 Web 服务器详解

参考引用 SQLite 权威指南&#xff08;第二版&#xff09;SQLite3 入门 1. Apache 搭建 cgi 环境 1.1 什么是 Apache Apache 是世界使用排名第一的 Web 服务器软件 它可以运行在几乎所有广泛使用的计算机平台上&#xff0c;由于其跨平台和安全性被广泛使用 1.2 具体搭建流程…...

各平台chatGPT使用体验(国内外)

首推&#xff1a;openAI 地址&#xff1a;https://chat.openai.com/ 这个真的很好用&#xff0c;而且回复的结果也基本让让人满意&#xff0c;个人首推&#xff0c;而且对比国内的除了回答更令人满意外&#xff0c;它更连贯&#xff0c;不像国内的gpt一句一问&#xff0c;跟进…...

机器学习【02】在 Pycharm 里使用 Jupyter Notebook

只有 Pycharm 的 Professional 版才支持 Jupyter Notebook 一.新建一个项目 参考新建项目 二.相关设置 右键你的项目名&#xff0c;新建一个JupyterNotebook文件 新建后发现 点击最右边的install jupyter可以自动安装 也可以使用命令行在对应的虚拟环境中安装 我们使用直…...

什么是proxy代理?

1. 什么是proxy代理 代理&#xff08;Proxy&#xff09;是 JavaScript 中一种非常强大而灵活的功能。代理允许你拦截并覆盖对象的默认行为&#xff0c;提供了一种拦截、定制和扩展对象操作的机制。 简单说&#xff0c;就是在访问对象属性或者赋值时&#xff0c;可以做一些额外…...

opencv-python读取的图像分辨率太大不能完全显示

如果使用OpenCV-Python读取的图像分辨率太大&#xff0c;无法完全显示在屏幕上&#xff0c;可以考虑以下几种方法&#xff1a; 1.缩放图像&#xff1a;使用OpenCV的resize函数&#xff0c;将图像缩小到适合屏幕显示的大小。例如&#xff0c;可以将图像的宽度和高度都缩小到屏幕…...

【ArcGIS Pro微课1000例】0038:基于ArcGIS Pro的人口密度分析与制图

文章目录 一、人口密度二、人口密度分析1. 点密度分析2. 核密度分析三、结果比对一、人口密度 人口密度是指单位土地面积上居住的人口数,通常以每平方千米或每公顷内的常住人口为单位计算。人口密度同资源、经济密切结合,因此,科学准确地分析人口密度的分布情况,对合理制定…...

Python 安装Vue依赖包发生异常:npm ERR! notsup Required: {“node“:“^18.17.0 || >=20.5.0“}

异常&#xff1a; 原因&#xff1a;node和npm要求升级为高版本 解决&#xff1a;重新安装node环境 &#xff08;1&#xff09; 官网下载Node.js &#xff08;2&#xff09;双击安装node.js &#xff08;3&#xff09;运行查看...

TypeScript 项目 Airbnb 语法风格 ESLint 配置

TypeScript 项目 Airbnb 语法风格 ESLint 配置 1. 配置 安装&#xff1a; npm i -D eslint-config-airbnb-typescript typescript-eslint/eslint-plugin^6.0.0 typescript-eslint/parser^6.0.0配置&#xff1a; .eslintrc.js: module.exports {root: true,env: {node: true…...

怎么使用sentinel,以及所有的知识点

Sentinel是一个开源的流量控制和实时监控系统&#xff0c;主要用于保护企业级应用程序免受不良的请求。下面是使用Sentinel需要了解的知识点&#xff1a; 1. 什么是流量控制&#xff1f; 流量控制指的是限制应用程序的请求流量&#xff0c;防止过多的请求超出系统的承受范围。…...

中国一年有457万人确诊癌症!医生提示:这4种食物,再爱吃也要管住嘴

癌症是威胁人类生命健康的重大疾病&#xff0c;癌症的发生因素一直以来都是专家学者重点探索的课题。据世卫组织最新公布的数据显示&#xff0c;食物或与癌症发生之间存在着密切的联系&#xff0c;某些食物的摄入过多可能会增加患癌症的风险&#xff0c;所以我们应该警惕&#…...

小程序项目:springboot+vue基本微信小程序的宠物领养系统

项目介绍 当今科技发展迅速&#xff0c;交通环境也变得越来越复杂。人们的出行方式变得多元化&#xff0c;这给视障人士带来了一定的困扰。而导盲犬可以帮助视障人士外出行走&#xff0c;提高他们的生活质量。在我国&#xff0c;导盲犬的数量远远少于视障人士的数量。由于导盲…...

数据挖掘 K近邻

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

项目去除git版本控制

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...