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

计算机组成原理之硬件的基本组成,深入介绍两大计算机结构体系,从底层出发认识计算机。

大家好,欢迎阅读《计算机组成原理》的系列文章,本系列文章主要的内容是从零学习计算机组成原理,内容通俗易懂,大家好好学习吧!!!

更多的优质内容,请点击以下链接查看哦~~

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

深入学习计算机组成原理文章体系

在这里插入图片描述

文章目录

  • 什么是计算机系统
  • 硬件的发展历史
  • 冯诺依曼结构
  • 冯诺依曼结构的特点
  • 现代计算机的结构
  • 现代计算机的结构的特点

什么是计算机系统

计算机系统是由硬件和软件组成的,能够执行数据处理信息传输任务的一种计算机技术体系。

我们接下来着重介绍一下硬件相关的知识。

硬件的发展历史

时间名称描述
1946-1957冯诺依曼(第一代计算机)逻辑元件为:电子管,由于电子管的特性,耗电量异常高。
1958-1964第二代计算机逻辑元件为:晶体管,这种晶体管体积比电子管小,耗电较低。缺点是需要焊接硬件。
1964-1971第三代计算机逻辑元价为:中小规模集成电路。这时候开始 操作系统,编程语言形成初步雏形。
1972-现在第四代计算机逻辑元价为:大/超大规模集成电路。这时开始,计算机开始飞速发展。

这里穿插一个小知识,bug的由来

第一代计算机使用机器码编程,就是使用二级制数0101....的形式在纸带上进行编写,就类似于如下图这样

在这里插入图片描述

但是,在早期,如果纸带上面出现了小虫子,就是bug,这个时候机器就不能识别出bug,导致程序出现异常,所以bug这个称呼一直延续至今。

在这里插入图片描述


计算机硬件的组成分为两个体系,一个是早期计算机的冯诺依曼结构,一个是现代计算机的结构

冯诺依曼结构

在这里插入图片描述

  • 存储程序

    将指令以二进制的代码的形式事先输入计算机的主存储器,然后按照其在存储器当中的首地址执行程序的第一条执行指令,以后就按照程序的规则顺序执行其他指令,直至程序执行结束。

  • 输入设备

    将信息转换为机器能识别的形式。

  • 运算器

    实现算术运算(加减乘除)和逻辑运算(与或非)。

  • 输出设备

    将结果信息转换为人类能够熟悉的形式

  • 控制器

    负责指挥程序运行。

冯诺依曼结构的特点

  1. 存储程序:

    冯·诺依曼计算机将 程序和数据存储在同一存储器中程序被看作是一系列指令的集合,可以像数据一样存储、传输和修改。 这种存储程序的方式使得计算机能够灵活地执行不同的任务。

  2. 顺序执行:

    冯·诺依曼计算机 按照指令的顺序依次执行,每条指令的执行都由控制单元负责。这种顺序执行方式保证了指令的正确性和一致性,并且使得程序的运行结果可预测。

  3. 存储器的随机访问:

    计算机的 主存储器被划分为连续的地址空间,并且每个地址对应一个存储单元。这意味着计算机可以通过指定地址直接访问存储单元中的数据或指令,而不需要按照顺序逐个访问。

  4. 单一总线系统:

    冯·诺依曼计算机使用 单一总线系统来连接CPU、内存和输入/输出设备(IO设备)等各个组件。 总线用于传输指令、数据和控制信号,实现了这些组件之间的通信与协调。

  5. 通用性和可编程性:

    冯·诺依曼计算机是 通用 的,可以执行各种不同的任务。它的可编程性使得用户能够根据需要编写和修改程序,从而适应不同的应用场景。

  6. 存储器层次结构:

    为了提高计算机的性能和存储容量,冯·诺依曼结构常常采用 存储器层次结构,包括 高速缓存、内存和辅助存储器等不同级别的存储设备。这种层次结构可以在速度、容量和成本之间做出平衡。

  7. 以计算器为设备的核心

    这种方式导致计算机的运行 效率非常低,因为所有的操作都必须经过计算器。

现代计算机的结构

在这里插入图片描述

可以看到,现代的计算机已经以 存储器为核心 了。

我们平常电脑里面的 CPU就是包括了计算器与控制器。

所以可以把结构图按照以下进行简化。

在这里插入图片描述

现代计算机的结构的特点

现代计算机的结构包括以下几个主要组成部分:

  1. 中央处理器(Central Processing Unit,CPU)

    CPU是计算机的核心,负责执行指令和控制计算机的运行。它包括算术逻辑单元(ALU)、控制单元(CU)和寄存器等部件,用于进行数据运算和控制流程。

  2. 存储器

    存储器用于存储数据、指令和程序。主要包括 随机存取存储器(Random Access Memory,RAM)和只读存储器(Read-Only Memory,ROM)。RAM是临时存储器,用于存储正在执行的程序和数据;而ROM是永久存储器,用于存储固定的程序和数据。

  3. 输入/输出设备

    输入/输出设备用于与外部环境交互,实现数据的输入和输出。 常见的输入设备包括键盘、鼠标、触摸屏等;常见的输出设备包括显示器、打印机、音频设备等。

  4. 总线系统

    总线是不同组件之间传输数据、指令和控制信号的通道。 它分为数据总线、地址总线和控制总线。数据总线用于传输数据,地址总线用于指定数据在存储器中的位置,控制总线用于传输控制信号。

  5. 存储器层次结构

    现代计算机通常采用存储器层次结构,包括寄存器、高速缓存、主存储器和辅助存储器等不同级别的存储设备。 这种层次结构可以在速度、容量和成本之间做出平衡,提高计算机的性能和效率。

  6. 指令集架构(Instruction Set Architecture,ISA)

    ISA定义了计算机的指令集和编程模型。它规定了CPU支持的操作、寄存器的使用方式等,决定了软件与硬件之间的接口。常见的ISA包括x86、ARM等。

  7. 并行处理和多核技术

    现代计算机 采用并行处理和多核技术,将多个处理器核心集成到一个芯片中,实现同一时间处理多个任务或同时执行多条指令。

相关文章:

计算机组成原理之硬件的基本组成,深入介绍两大计算机结构体系,从底层出发认识计算机。

大家好,欢迎阅读《计算机组成原理》的系列文章,本系列文章主要的内容是从零学习计算机组成原理,内容通俗易懂,大家好好学习吧!!! 更多的优质内容,请点击以下链接查看哦~~ ↓ ↓ ↓ …...

二十五、MySQL事务的四大特性和常见的并发事务问题

1、事务的四大特性 2、常见的并发事务问题 (1)并发事务问题分类: (2)脏读: 一个事务正在对一条记录做修改,在这个事务完成并提交前,这条记录的数据就处于不一致的状态;…...

辨析常见的医学数据分析(相关性分析回归分析)

目录 1 常见的三种分类结果? 2 什么是相关性分析? 相关性分析的结果怎么看? 3 什么是回归分析? 1)前提 2)常见的回归模型 4 对于存在对照组实验的医学病例如何分析? 1)卡方检验…...

SpringBoot项目中只执行一次的任务写法

SpringBoot项目中只执行一次的任务写法 有时候我们需要进行初始化工作,就说明只要进行一次的工作,那么,在Springboot项目中如何做到任务只进行一次呢 利用定时任务 在Spring Boot项目中,你可以使用Spring框架提供的Scheduled注解…...

TCK、TMS、TDI、TDO的含义

这四个信号是JTAG(Joint Test Action Group)界面的一部分。JTAG是一种用于测试和验证集成电路和印刷电路板的技术,也用于进行设备编程和调试。这四个信号分别是: TCK (Test Clock): 意义:测试时钟&#xff…...

R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据...

全文链接:http://tecdat.cn/?p24456 如果你正在进行统计分析:想要加一些先验信息,最终你想要的是预测。所以你决定使用贝叶斯(点击文末“阅读原文”获取完整代码数据)。 相关视频 但是,你没有共轭先验。你…...

【PowerShell】PowerShell的Core版本的额外配置

在PowerShell 7.1 安装完成后,默认情况下打开PowerShell 会直接进入到系统内置的PowerShell,如果希望通过远程连接或者PowerShell Web Access 进入到PowerShell 7环境的界面,就需要进行环境的再配置才能实现PowerShell 7.1 的环境连接。需要为外部的环境提供连接的话需要按照…...

数据结构----链式栈

目录 前言 链式栈 操作方式 1.存储结构 2.初始化 3.创建节点 4.判断是否满栈 5.判断是否空栈 6.入栈 7.出栈 8.获取栈顶元素 9.遍历栈 10.清空栈 完整代码 前言 前面我们学习过了数组栈的相关方法,(链接:线性表-----栈(栈…...

实在智能携手40+央企,探索财务大模型及数智化实践与应用

“这次培训给我一个最大的感触就是,过去以为AI智能化、大模型技术是很高深的事情。但现在,我们通过RPA等数字化工具,自主根据自己的工作岗位,完成业务自动化流程的开发和设计。AI技术没有想象中的那么难入门。” 这是一位参加了“…...

upload-labs文件上传1-5关

第一关 编写一句话木马1.php,编写完成后将后缀名修改为png 将1.png上传,上传时使用bp抓包 抓包后将后缀名修改为png 连接蚁剑 第二关 上传1.php,显示文件类型不正确 使用bp抓包发送重发器,修改文件后缀名后点击发送,…...

git的基本使用

查看当前分支 git branch //查看本地分支 git branch -a // 查看本地和远程的分支切分支 git checkout -b 分支的名字从当前分支切换到其他分支 拉取远程分支到本地 拉取远程develop分支代码到本地develop分支 git checkout -b develop origin/developgit merge B分支合并…...

Mac台式电脑内存清理方法教程

对于一些小白用户,如果觉得以上的清理方法比较复杂却又想要更好的优化Mac电脑内存,专业的系统清理软件是一个不错的选择。比起花几个小时时间浏览文件夹、删除临时文件、缓存和卸载残留。Cleanmymac X,只需单击几下即可完成所有内存清理工作&…...

FL Studio怎么破解?2023年最新FL Studio 21图文安装激活教程?FL 21中文版下载 v21.1.1.3750 汉化 版

fl studio21中文解锁特别破解版是一款功能强大的编曲软件,也就是众所熟知的水果软件。它可以编曲、剪辑、录音、混音,让您的计算机成为全功能录音室。除此之外,这款软件功能非常强大,为用户提供了许多音频处理工具,包含…...

Zookeeper高级_四字命令

之前使用stat命令来验证ZooKeeper服务器是否启动成功,这里的stat命令就是ZooKeeper 中最为典型的命令之一。ZooKeeper中有很多类似的命令,它们的长度通常都是4个英文字母,因此我们称之为“四字命令”。 添加配置 vim zoo.cfg 4lw.commands…...

/usr/bin/ld: cannot find -lmysqlcllient

文章目录 1. question: /usr/bin/ld: cannot find -lmysqlcllient2. solution 1. question: /usr/bin/ld: cannot find -lmysqlcllient 2. solution 在 使用编译命令 -lmysqlclient时,如果提示这个信息。 先确认一下 有没有安装mysql-devel 执行如下命令 yum inst…...

折线图geom_line()参数选项

往期折线图教程 图形复现| 使用R语言绘制折线图折线图指定位置标记折线图形状更改 | 绘制动态折线图跟着NC学作图 | 使用python绘制折线图 前言 我们折线的专栏推出一段时间,但是由于个人的原因,一直未进行更新。那么今天,我们也参考《R语…...

百度SEO优化基本原理(掌握SEO基础,提高网站排名)

随着互联网的迅速发展,越来越多的企业开始意识到网站优化的重要性,其中百度SEO优化是企业不可忽视的一项工作。本文将介绍百度SEO优化的基本概念、步骤、原理、解决方法和提升网站标题优化的方法。蘑菇号-www.mooogu.cn 百度SEO优化是指针对百度搜索引擎…...

2023 ICPC 网络赛 第一场 部分题解 (待完善)

D Transitivity 题解: 根据题意可以推出结论: 如果存在连通块,那么这个连通块要满足条件,必然是满连通块. 一共有两种情况 1. 存在一个连通块不是满连通块 设cnt表示连通块的节点个数, num表示连通块边的个数 一个连通块的贡献 cnt*(cnt-1)/2 - num; 那么最终答案 连…...

Hadoop的HDFS高可用方案

一、Hadoop高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFSNameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂 1、HDFS系统高可用简介…...

【计算机基础】让我们重新认识一下Visual Stduio及其操作,知识点汇总!!

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

sshd代码修改banner

sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...