1.计算机是如何工作的(上)

news2024/11/18 12:31:13

文章目录

  • 1.计算机发展史
  • 2.冯诺依曼体系(Von Neumann Architecture)
  • 3.CPU 基本工作流程
    • 3.1逻辑门
      • 3.1.1电子开关 —— 机械继电器(Mechanical Relay)
      • 3.1.2门电路(Gate Circuit)
    • 3.2算术逻辑单元 ALU(Arithmetic & Logic Unit)
      • 3.2.1进制的理解
      • 3.2.2算术单元(Arithmetic Unit)
      • 3.2.3逻辑单元(Logic Unit)
      • 3.2.4ALU 符号
    • 3.3寄存器(Register) 和内存(RAM)
    • 3.4控制单元 CU(Control Unit)
    • 3.5指令(Instruction)
    • 3.6CPU 的基本工作流程
    • 3.7小结

大家好,我是晓星航。今天为大家带来的是 计算机是如何工作的(上) 相关的讲解!😀

1.计算机发展史

计算的需求在人类的历史中是广泛存在的,发展大体经历了从一般计算工具到机械计算机到目前的电子计算机的发展历程。

在这里插入图片描述

人类对计算的需求,驱动我们不断的发明、改善计算机。目前这个时代是“电子计算机”的时代,发展的潮流是:更快速、更稳定、更微型。计算机的以后将如何发展,期待大家的努力。

推荐书籍: 《计算机简史》

2.冯诺依曼体系(Von Neumann Architecture)

现代的计算机, 大多遵守 冯诺依曼体系结构

在这里插入图片描述

  • CPU 中央处理器: 进行算术运算和逻辑判断.
  • 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储)
  • 输入设备: 用户给计算机发号施令的设备.
  • 输出设备: 计算机个用户汇报结果的设备.

针对存储空间

硬盘 > 内存 >> CPU

针对数据访问速度

CPU >> 内存 > 硬盘

3.CPU 基本工作流程

接下来,我们用一个从无到有的过程,一步步搭建一个 CPU 出来,希望大家可以借助这个过程,理解CPU、内存等计算机主要部件的工作原理。

3.1逻辑门

3.1.1电子开关 —— 机械继电器(Mechanical Relay)

在这里插入图片描述

通过电子开关,我们可以实现 1 位(bit) 的看似无用的逻辑运算,但至少它工作起来了,不是么。怎么使用电子开关组合出真正有用的逻辑组件,我们接来下会做进一步的学习了解。

以后的真空管、晶体管的实质也是完成类似的工作,只是物理原理更加复杂,我们就不带着大家做深入解读了。

3.1.2门电路(Gate Circuit)

接下来,我们学习如何使用电子开关构建一些有用的部件 —— 门电路。可以实现 1 位(bit) 的基本逻辑运算。

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

3.2算术逻辑单元 ALU(Arithmetic & Logic Unit)

ALU 是计算机中进行算数、逻辑运算的核心部件,是计算机的数学大脑。接下来,我们用上一节构建的逻辑门来完成自己的一个 ALU,去学习理解它的工作模式,以便作为我们进一步理解现代计算机工作原理的基石。

3.2.1进制的理解

二进制和十进制:

在这里插入图片描述

3.2.2算术单元(Arithmetic Unit)

算数单元,负责计算机里的所有数字操作,比如四则运算,当然它能做的远远不止这些。接下来我们会带着大家实现一个 8 位(bits)的加法器(adder)来,以演示整个过程,其他的运算器就不再详细讲解了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此,一个 8 位(bits) 加法器就被我们从无到有制作了出来。算术单元支持的操作当然远不止这些,通过继续组合逻辑门,算数单元可以做到加减乘除甚至更多的算术运算,但一个加法器作为演示已经足够了。实际上,乘法器和除法器的制作难度是要高于加、减法器的,有兴趣的同学可以尝试做更多的了解。

3.2.3逻辑单元(Logic Unit)

逻辑单元主要用来进行逻辑操作,最基本的操作就是与、或、非操作,但不只是一位(bit)数的比较。

在这里插入图片描述

3.2.4ALU 符号

经过我们的努力,通过基本的逻辑门电路,我们一步步地做出了一个 8 位(bits) ALU,甚至比 Intel 74181 还要强大,Intel 74181 只是一个 4 位(bits) ALU(😀)。当然现代的计算机中的 ALU 部件非常强大,复杂度远远超过了我们的想象,32 位 甚至 64 位基本已经普及全球了。但无论如何,再复杂的 ALU 也是芯片工程师像我们这样,一层又一层,一步又一步地将其抽象出来的。ALU 是第一次将人类历史上的数学和逻辑学学科有机地结合起来,可以视为人类智慧发展的现代巅峰。

在这里插入图片描述

3.3寄存器(Register) 和内存(RAM)

光有 ALU 还是远远不够的,我们无法为 ALU 提供存储的部件,所以接来下,我们利用门电路简单说明下存储的制作。注意,虽然图中没有明显的表示出来,但这些存储都是要求必须保持通电状态的,也就是这些存储都是易失的(volatile)。

在这里插入图片描述

中间我们隐藏了一些实现细节,最后的效果就是:使能线置位时,输入为 1,保存 1;输入为 0,保存0。使能线不置位时,则写入无效。

我们可以利用门锁,构建我们需要的寄存器和内存。

在这里插入图片描述

内存的构建要比这个复杂一点,但基本原理一致。如此构建的内存被称为 RAM(Random Access Memory),可以支持 O(1) 时间复杂度访问任意位置的数据,这也就是我们数组下标访问操作是 O(1) 的硬件支持。

在这里插入图片描述

期间,为了我们学习的聚焦性,我们隐藏了大量的实现细节

3.4控制单元 CU(Control Unit)

我们现在有 ALU、存储了,但这还是不足以让我们的计算机工作起来,我们需要有一个部件来指挥 ALU 进行何种的运算,而这个部件就是控制单元(CU)。

在这里插入图片描述

我们现在有 ALU、存储了,但这还是不足以让我们的计算机工作起来,我们需要有一个部件来指挥 ALU 进行何种的运算,而这个部件就是控制单元(CU)。

在这里插入图片描述

3.5指令(Instruction)

首先,我们先介绍下我们需要到的指令(instruction)。

所谓指令,即指导 CPU 进行工作的命令,主要有操作码 + 被操作数组成。

其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。

指令本身也是一个数字,用二进制形式保存在内存的某个区域中。

在这里插入图片描述

3.6CPU 的基本工作流程

接下来,我们演示指令运行的一个周期,希望大家可以学习到其流程,并完成剩余指令的运行过程。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第一条指令的运行,其实没有用到我们之前制作的 ALU 部件,但这只是其中一些指令而已,大家尝试把剩余的 3 条指令自行运行一次,观察并理解这个过程。

我们来总结下执行周期经过哪些阶段:

当然,电子计算机中的 CPU 可不像我们刚才那样,靠自己来驱动这个周期的运转,而是靠背后一个时钟来进行周期驱动的。

知乎问题: 时钟频率是什么概念

在这里插入图片描述

最后,ALU + CU + 寄存器 + 时钟就组成了我们平时经常看到的一个词汇:中央处理器(Center Process Unit)简称 CPU。

3.7小结

通过上述的章节,我们带领大家从基本的电子开关开始,一步步的搭建了一个CPU和内存出来,虽然中间还是对很多过程和细节做了隐藏和抽象,但主要流程已经体现了出来,希望这节学习完成之后,同学们不在对CPU充满了神秘感。

然后我们把这一节中一些要点给大家做一个文字总结:

  1. CPU 中的 PC 寄存器,是决定 CPU 要执行哪条指令的关键;
  2. 指令是由 动作 + 操作对象组成
  3. CPU 眼中只有指令,没有其他的概念

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

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

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

相关文章

BossPlayerCTF 靶场

sudo nmap -sn 192.168.28.0/24 sudo nmap -sT --min-rate 10000 -p- 192.168.28.40 sudo nmap -sT -sV -sC -O -p22,80 192.168.28.40 -oA nmapscan/detail sudo nmap --scriptvuln -p22,80 192.168.28.40 -oA nmapscan/vuln 访问80 查看web源码: robots.txt ec…

AI EXPO 2023 | 图技术激活数据资产论坛圆满落幕

2023年6月25日下午,由新一代人工智能产业技术创新战略联盟、苏州市人工智能协同创新中心与苏州市大数据服务中心协会联合主办,浙江创邻科技有限公司承办的「2023全球人工智能产品应用博览会-图技术激活数据资产主题论坛」在苏州国际博览中心圆满落幕&…

JavaWeb小记——重定向和内部转发

目录 重定向 原理图 重定向语句 重定向特点 内部转发 原理图 请求转发特点 路径的书写 请求域对象request 特点 请求转发特点 重定向特点 重定向 原理图 重定向语句 response.setStatus(302); response.setHeader("location","http://www.baidu.c…

kubectl get cs显示unhealthy的解决办法

01、问题描述 使用kubectl get cs查看K8s组件状态,发现scheduler和controller-manager状态为Unhealthy,但集群可以正常使用。 [rootk8s-master ~]# kubectl get cs Warning: v1 ComponentStatus is deprecated in v1.19 NAME STATUS …

matplotlib——2. 形状和路径(Shape and Collection)底纹(hatch)

文章目录 1. 形状和路径1.1 PatchCollection替换热力图数字1.1.1原始的数字代码1.1.2 替换为PatchCollection的代码 1.2 PatchCollection绘制目标检测(COCO)标签1.3 PatchCollection绘制分割(COCO)标签 2. 底纹(hatch&…

搭建Zabbix服务(Linux系统)

环境: centos7、lamp、防火墙关闭、selinux关闭 配置阿里云zabbix yum源 [rootchenshuyi ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm 获取https://mirrors.aliyun.com/zabbix/zabbix/…

开启iis服务器通过php获取MySQL数据

开启iis服务器通过php获取MySQL数据 第一步开启iis服务器。 具体的可以查看这个:http://www.wokk.cn/40547.html 1.全部勾选,把万维网服务和web管理工具全部勾选。 2.添加网站,在网站这里添加网站,物理连接路径为你的网站存放的根目录。 3…

sql知识集锦

sql执行顺序 SELECT 的执行顺序 关键字的顺序是不能颠倒的: SELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY … 2.SELECT 语句的执行顺序(在 MySQL 和 Oracle 中,SELECT 执行顺序基本相同): FROM >…

基于FPGA的永磁同步伺服控制系统的设计,在FPGA实现了伺服电机的矢量控制, 坐标变换,电流环,速度环,位置环,电机反馈接口,SVPWM

一个基于FPGA的永磁同步伺服控制系统,利用Verilog语言在FPGA上实现了伺服电机的矢量控制、坐标变换、电流环、速度环、位置环以及电机反馈接口。这个系统具有很高的研究价值。 涉及到的知识点和领域范围主要包括:FPGA(现场可编程门阵列&…

2024广西大学计算机考研828 重点知识点分享 经验分享

这是广西大学828的考试大纲和参考书目。其实细看考试内容,第一点“计算机程序设计基础知识”的内容是比较散的,很难从给定的参考书目中的固定的一章或一节找到相关知识点,有的能找到,就是分散的比较乱,有的甚至都没有&…

动态规划入门-数据结构与算法教程

动态规划(DP)是一种在多项式时间内解决某些特定类型问题的技术。动态规划解决方案比指数蛮力法更快,并且可以很容易地证明其正确性。 动态规划主要是对普通递归的优化。只要我们看到一个递归解决方案重复调用相同的输入,我们就可以…

软考电子商务设计师备考资料

中级科目还好,难度肯定是有点的,而且电子商务设计师科目是近几年新增的,网上资料也比较少 电子商务设计可以理解为网页设计和平面设计的结合,但同时增加了用户体验和人机交互的一-些概念,互联网变成了传播,最终目的是销售商品.所…

nginx配置开机启动(Windows环境)

文章目录 1、下载nginx,并解压2、配置nginx.conf,并启动Nginx3、开机自启动 1、下载nginx,并解压 2、配置nginx.conf,并启动Nginx 两种方法: 方法一:直接双击nginx.exe,双击后一个黑色弹窗一闪…

Redis布隆过滤器详解

目录 一、前言二、RedisBloom 安装与使用三、RedisBloom 常用命令汇总四、通过 Jedis 使用 RedisBloom五、Redisson 封装的布隆过滤器六、使用哪种方式的过滤器比较好? 一、前言 布隆过滤器(Bloom Filter)是 Redis 4.0 版本提供的新功能&…

rewrite 重写跳转

Nginx Rewrite–重写跳转 Nginx Rewrite--重写跳转 一、概述:1.Rewrite 跳转场景:2.Rewrite 跳转实现:3.Rewrite 实际场景:4.Nginx正则表达式:5.Rewrite 命令:6.location分类:7.比较rewrite和l…

【FFmpeg实战】音视频解封装格式

转载自原文地址:https://www.cnblogs.com/zuojie/p/16798273.html 一、什么是封装格式 封装格式也称为容器,用于打包音频、视频以及字幕等等,比如常见的容器有MP4、MOV、WMV、FLV、AVI、MKV等等。容器里面装的是音视频的压缩帧,但…

5、基于Python所写的飞机大战设计

点击以下链接获取源码资源: https://download.csdn.net/download/qq_64505944/87953348?spm1001.2014.3001.5503 《彩图版飞机大战》程序使用说明 在PyCharm中运行《彩图版飞机大战》即可进入如图1所示的游戏界面。 图1 游戏主界面 具体的操作步骤如下&#xff…

ASEMI代理NXP可控硅BT139-600E参数,BT139-600E规格

编辑-Z BT139-600E参数描述: 型号:BT139-600E 断态重复峰值电压VDRM:600V RMS导通电流IT(RMS):16A 非重复峰值导通电流ITSM:155A 峰值栅极电流IGM:2A 峰值栅极功率PGM:5W 储存温度Tstg&…

C++进阶—二叉搜索树Key、Key-Value模型应用及二叉树OJ(非递归实现遍历)

目录 1、二叉树搜索模型实现及应用场景 1. 二叉搜索树Key模型及其应用 2. 二叉搜索树Key-Value模型及其应用 2、二叉树OJ 2.1 根据二叉树创建字符串 2.2 二叉树的层序遍历I 2.3 二叉树的层序遍历II 2.4 二叉树的最近公共祖先 2.5 二叉搜索树及双向链表 2.6 从前序与中…

想学芯片专业?一文讲清楚芯片报考指南

2021年清北相继成立集成电路学院之后,国内在电子方面有实力积累的高校纷纷跟进,设立集成电路学院、开设集成电路相关专业。 直到今年,高校在集成电路方面的投入和培养力度,仍在持续并越来越大。 就在今年,示范性28所…