揭晓计算机的神秘面纱——计算机是如何工作的(一)
文章目录
- 前言
- 计算机的发展史
- 冯诺依曼体系
- 什么是CPU(中央处理器)
- 算数逻辑单元ALU
- 算数单元
- 逻辑单元
- ALU符号
- 寄存器和内存
- 控制单元CU
- 指令
- CPU的工作流程
- CPU的中断模式
- 编程语言
- 总结
前言
当前计算机技术获得了迅猛发展,广泛的应用于人们的日常生活中,给人类的生活带来了巨大的便利,随着社会发展,越来越多的人对计算机产生了浓厚的兴趣,下面我就带大家来揭开计算机的神秘面纱,学习计算机是如何工作的!
计算机的发展史
关于计算机的发展史,不得不说,如果让我来写,我可能写三天三夜也写不完,历史是人类宝贵的财富,而将计算机和历史联系在一起又能产生怎样的火花呢?下面这篇文章就会告诉我们:
来自 涛歌依旧 的:《古今计算机发展简史》
古今计算机发展简史
冯诺依曼体系
现代计算机之父----冯诺依曼
约翰·冯·诺依曼(John von Neumann,1903年12月28日-1957年2月8日),美籍匈牙利数学家、计算机科学家、物理学家,是20世纪最重要的数学家之一。冯·诺依曼是罗兰大学数学博士,是现代计算机、博弈论、核武器和生化武器等领域内的科学全才之一,被后人称为“现代计算机之父”、“博弈论之父”。
那什么是冯诺依曼体系呢?
冯诺依曼结构图如下:
- CPU 中央处理器: 进行算术运算和逻辑判断.
- 存储器: 分为外存和内存, 用于存储数据(使用二进制方式存储).
- 输入设备: 向计算机输入数据和信息的设备.
- 输出设备: 计算机硬件系统的终端设备.
什么是CPU(中央处理器)
CPU是计算机的心脏,负责执行提供给它们的指令,它的主要任务是执行算术运算和逻辑运算,并将指令协调在一起。
算数逻辑单元ALU
ALU 是计算机中进行算数、逻辑运算的核心部件,是计算机的数学大脑。ALU的基本功能包括加,减,乘,除四则运算,与,或,非,异或等逻辑运算,以及移位,求补等操作。
算数单元
算数单元:算数单元就是负责计算机里的所有数字操作,比如四则运算等。
接下来我们通过实现一个8位数加法器来理解算数单元。
半加器:
全加器:
上面介绍了半加器和全加器,8位数加法器就是由半加器和全加器组合而成的,如下图所示:
逻辑单元
逻辑单元:逻辑单元主要用来进行逻辑操作,最基本的操作就是与、或、非、异或操作,它还能做简单的数值测试,比如利用许多个“或门”来检测一个8位数是否为“0”。
判断一个8位数不为0:
判断一个8位数为0:
ALU符号
一个8位的ALU可能会需要数百个逻辑门,所以科学家们用一个特殊的符号来代表它,它的形状就像一个大写的V。
寄存器和内存
AND-OR锁存器:
之所以叫“锁存”,是因为它锁定了一个值,放入数据的动作叫“写入”,拿出数据的动作叫“读取”。
但是它有两条输入线,为了方便使用,我们希望它只有一条输入线,所以就出现了“门锁”这个概念,对于门锁来说,当允许写入线被置为0时,数据输入线不论是1还是0,数据输出不变,而当允许写入线被置为1时,数据输入1,输出就为1,数据输入0,输出就为0。
寄存器就是由一组锁存器构成的,如下图所示为一个8位寄存器:
内存(RAM)的构建基本原理和寄存器是一致的:
控制单元CU
控制单元:控制单元CU是CPU部件之一,有时也安装于CPU外部,其基本功能是从内存取指令、分析指令和执行指令。
控制单元结构:
从上图可以看出控制单元CU分为输入信号和输出信号。
输入信号:指令寄存器、标志、时钟、来自系统总线的控制信号(中断请求)。
输出信号:CUP内部的控制信号、到系统总线的控制信号(读写,中断响应)。
指令
指令:所谓指令,即指导 CPU 进行工作的命令,主要有操作码 + 被操作数组成。其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是寄存器编号等。
如下图所示:
CPU的工作流程
CUP的操作流程如下:
- 取码阶段:CU根据PC寄存器的值,去内存的响应位置,把数据(指令)读取到 IR 寄存器中,正常情况下,PC寄存器中的值自动+1;
- 解码阶段:CU按照预先设定的指令集解读指令数据(opcode+操作数),例如上述的:0010 1110,人为规定:0010是opcode,查询指令表,知道0010代表的意思是,从后边地址指定内存处,将数据读取到A寄存器,1110代表地址为14的内存处;
- 执行阶段:LOAD指令应该由CU执行,所以按照规定执行指令:从内存的14地址处,将数据读取到A寄存器中。
关于PC寄存器:
- 由于硬件中PC在自动+1,所以我们的代码变成的指令才能顺序的的往下去执行
- 代码中的一条语句,很可能是需要多条指令才能完成的
- PC寄存器中的值在这个指令周期中很关键,可以控制执行哪里的指令
- 通过CPU中预先规定的指令,可以修改PC中的值(带条件修改),进而影响执行流
CPU的中断模式
在正常模式下,CPU可以顺序执行,可以分支执行,但总归只能按照既定的顺序执行,但现实中,很多时候需要暂时中断CPU的当前执行流,先让CPU去做其他工作,再回头来继续原来的执行流。
CPU中提供了一种机制让CPU停下:
- 保存当前的PC的值到内存的某个位置
- 修改PC的值,让执行其他执行流
- 其他执行流执行结束之后,通过刚才保存的PC值恢复到PC寄存器
- 继续原来的执行流
中断的应用:
- IO设备的处理
- 操作系统中用来作进程调度
编程语言
程序:所谓程序,就是一组指令以及这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为一组文件。
程序 = 指令 + 指令要处理的数据
总结
以上就是今天要讲的内容,本文仅仅简单介绍了CPU,实际上计算机中的结构是非常复杂的,要花费更多的时间才能学习透彻,如果觉得本文对你有帮助的话,就留下你的
揭晓计算机的神秘面纱——计算机是如何工作的(一)相关推荐
- 计算机精准教学,“精准教学”一定要平板电脑?看看他们如何因陋就简,揭开精准教学的神秘面纱...
原标题:"精准教学"一定要平板电脑?看看他们如何因陋就简,揭开精准教学的神秘面纱 10月28日上午,丽水经济开发区第一中(小)学邀请了两位来自上海的教育技术专家来校,就关于如何开展 ...
- 四川音乐学院计算机音乐创作,大学生计算机音乐创作类决赛揭晓 浙音6件作品均获奖...
4个获奖作品被推荐为北京国际电子音乐节演出系列作品,这在以往的9届中国大学生计算机设计大赛计算机音乐创作类比赛中从未出现过.浙江音乐学院侯智鹏作品<错音>和伍真.刘志良作品<悬空的琴 ...
- 了解黑客的关键工具---揭开Shellcode的神秘面纱
2019独角兽企业重金招聘Python工程师标准>>> ref: http://zhaisj.blog.51cto.com/219066/61428/ 了解黑客的关键工具---揭开 ...
- 揭开人类语言的神秘面纱:从理解到处理自然语言
https://www.toutiao.com/a6709740042509615619/ 随着人工智能的进步和技术变得越来越复杂,我们希望现有的概念能够接受这种变化或者改变自己.同样,在自然语言的计 ...
- python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24 来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...
- 揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器开源项目介绍
揭开webRTC媒体服务器的神秘面纱--WebRTC媒体服务器&开源项目介绍 WebRTC生态系统是非常庞大的.当我第一次尝试理解WebRTC时,网络资源之多让人难以置信.本文针对webRTC ...
- 未来已来?揭开量子计算机的神秘面纱
从第一台现代计算机ENIAC的诞生到个人PC时代的降临,从互联网概念的提出到移动互联的疾跑,在这个信息年代里,变革正以前所未有的速度改变着我们熟悉的世界.熟悉的生活. 作为个人,我们早已习惯于智能计算 ...
- python可以给你干什么-Python可以用来做什么 为你揭开python神秘面纱
Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24 来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...
- linux操作系统说课稿,信息技术《揭开LINUX的神秘面纱》教案范文
信息技术<揭开LINUX的神秘面纱>教案范文 教学目标: 1.会启动LINUX系统: 2.会关闭LINUX系统: 3.LINUX基本界面的认识. 教学重点: 1.会启动LINUX系统: 2 ...
最新文章
- JQuery轻量级网页编辑器 选中即可编辑
- git 常用命令使用
- Linux网络安装(PXE + DHCP+TFTP+ Kickstart+ FTP)
- Linux之部署虚拟环境、安装系统
- java String类 常用函数
- android 代码 lut,Android BitmapFactory.decodeResource()错误或用于加载大LUT的替代选项...
- python 调用rpc服务_在Django项目中对Python函数进行RPC调用的优雅方式
- 【转】javascript判断浏览器是不是IE
- Pannellum:实例之在部分视角内展示全景图
- QT 控件动态效果之QPropertyAnimation
- 【SaaS】企业微信裂变系统引流变现系统产品介绍
- 【PowerBI】钉钉邮箱已经不能注册 Power BI 账号
- 扫描微信小程序体验版二维码无法打开
- Spurious vs Harmonics
- 内网渗透-信息收集整合
- java fx scen,java基础:10.2 Java FX之显示图片
- R语言使用Epi包的的ROC函数对多变量进行ROC分析并可视化ROC曲线、寻找最佳阈值(threshold、cutoff)、在可视化曲线中添加最佳阈值点
- Log Parser 2.2 + Log Parser Lizard GUI 分析IIS日志示例
- Halcon知识:binocular_disparity(双目视差)
- JsPlumb获取线数据
热门文章
- python怎么算一元二次方程_python如何解一元二次方程
- 人行征信2.0对接服务:全业务种类数据,精细您的征信业务管理!
- 《进化——我们在互联网上奋斗的故事》一一1.11 OKRs在J公司
- 电子产品高温贮存试验的价格-第三方检测机构
- 浅谈地面生产系统智能化配电室的应用与研究
- html第一个子元素选择,css选中父元素下的第一个子元素(:first-child)
- Mysql 删除的数据恢复
- Python机器学习、深度学习库总结
- Leetcode打卡四:将给定的单链表L: L 0→L 1→…→L n-1→L n, 重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→… 要求使用原地算法,并且不改变节点的
- nginx设置禁止访问某个页面及只允许域名访问或某个ip禁止访问