你知道1+1=2是如何在cpu中运作的么?----跟我到cpu内部去看看吧!(1)
1+1=2
好吧,我承认这是小学生也会做的题目,但是作为一个程序员,或者是软件设计师,你知道1+1=2如何在计算机内部表示并执行的么?
在复习软件设计师中的计算机组成原理的时候这个问题一直在困扰着我,因为这里的内容涉及到了cpu运行原理.而对我们大多数人而言,cpu只不过是一个"黑盒子",具体里面是如何构造的我们并不是很清楚.
为了搞清楚,自己在这方面花费了一些功夫,查阅了相关的书籍和一些资料,逐渐的解开了cpu的内部的面纱,接下来我将通过图片来和大家一起到cpu的内部观察它是如何运作1+1=2的.
旅途开始:我将通过显微镜的旅游方式为大家展现.
- 电脑:作为程序员这是我们熟悉的不能在熟悉的家伙了.
- 主机是电脑重要的部件.
- 主机里面的重要组成部分--主板
- 主板中有整个电脑的核心
- 打开cpu外的散热器我们可以看到传说中的cpu
- cpu的内部构造,
- cpu主要是有晶体管构成的,下图为一个晶体管的示意图.
- 晶体管中有两个电流,左侧为输入流,右侧为输出流
- 在两个电流中间有一个白色的绝缘体,而被白色绝缘体包围的是半导体,主要是进行控制开关
- 而被白色绝缘体包围的是半导体,主要是进行控制开关,两端电流上面是金属导体.
- 当输入流通电的时候,并且半导体的开关是处于打开的状态下,那么输出流也处于通电状态
- 为了便于形象的理解,我们给每个晶体管"装上"一个开关,开表示1,关表示0,同时为晶体管的输入流通电.
- 现在拿出两个晶体管,将两个晶体管的输出流(右侧电流)通过导线相连,并在导线上可以想象安置一个小灯泡,有电则小灯泡亮,没有电则不亮.这就形成了著名的"逻辑门"中的"或"门,下图是一个"或"门的构造.
- 如果只打开第一个晶体管的开关,则小灯泡亮了.
- 如果只打开第二个晶体管的开关,则小灯泡也亮了.
- 如果两个开关都打开的话,则小灯泡还是亮了.
- 以上三种情况是解释的"或"们会有的三种情况,接下来通过一个小小的变化将导线同第一个晶体管的输出流与第二个晶体管的输入流相连,则形成了另一个逻辑门----"与"门.
- 如果只开第一个晶体管的开关的话,小灯泡不会亮.
- 如果只开第二个晶体管开关的话,小灯还是不会亮.
- 如果两个都开的话,小灯才能亮.
至此为止我们已经了解到了晶体管的基本工作原理,并且通过图像展现出来,了解到了什么是逻辑门,逻辑门中的"与门"和"或门"但是1+1是如何通过这些晶体管来表示,并在计算机中运行,我将会在下一篇文章中与你走完剩下的旅途.
下图为上面整个路线的一个宏观概念图.
- 电脑:作为程序员这是我们熟悉的不能在熟悉的家伙了.
你知道1+1=2是如何在cpu中运作的么?----跟我到cpu内部去看看吧!(1)相关推荐
- 如何在CAD中修复CAD图纸
在日常的工作中,最长使用的CAD办公软件就是CAD编辑器,一般大家都知道CAD编辑器都是用来编辑CAD图纸的.其实编辑器也还有许多的功能的,就比如说可以修复损坏的CAD图纸,那么如何在CAD中修复CA ...
- 如何在SharePoint2010中添加Deep Zoom Image
如何在SharePoint2010中添加Deep Zoom Image 应用范围 SharePoint 2010 Foundation:SharePoint 2010 Standard:SharePo ...
- php如何对数组进行分组,如何在PHP中对数组进行分组排序
如何在PHP中对数组进行分组排序 发布时间:2021-01-04 16:28:51 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关如何在PHP中对数组进行分组排序,文章内容质量 ...
- html中section与div,如何在html中的section标签内包含div标签
我正在制作一个完整版块的页面网站,如this.每个页面都有自己的标签.目前我的网页有4个部分(呈现不同的背景颜色).如何在html中的section标签内包含div标签 我的第一部分有一个容器div, ...
- html img调用js,html调用js变量 如何在html中输出js文件中的变量
html页面代码中怎么调用js变量?html页面代码中怎么调用js变量,例如 在html代码中插入js代码: a=取浏览你把index1.js 中的onReady 去掉,把index1.js改成 fu ...
- 如何在OpenCV中为InRange阈值选择颜色的最佳HSV值
如何在OpenCV中为InRange阈值选择颜色的最佳HSV值 1. 效果图 2. 源码 参考 之前的博客介绍了如何使用Python,OpenCV通过HSV颜色空间转换检测对象,并进行轨迹追踪.怎么选 ...
- 管理 zabbix_Zabbix 2019 峰会丨看睿象云如何在 Zabbix 中玩转告警
2019年11月29日-30日,为期两天的 Zabbix 大会中国站在北京盛大召开,本届 Zabbix 大会以"新视界,新技术,共建未来新监控!"为主题,为与会人员提供前沿的监控技 ...
- 如何在JavaScript中实现链接列表
If you are learning data structures, a linked list is one data structure you should know. If you do ...
- csv文件示例_如何在R中使用数据框和CSV文件-带有示例的详细介绍
csv文件示例 Welcome! If you want to start diving into data science and statistics, then data frames, CSV ...
最新文章
- Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)
- pbs分解_UML使用产品分解结构(PBS)教程
- shiro权限管理_重量级课程发布~企业权限管理平台(SpringBoot2.0+Shiro+Vue)
- 近世代数--置换群--置换permutation分解成什么?置换的级如何计算?
- 数字型变量可以直接计算
- 这是一个沙雕题III(坑题)
- 第二篇: 在虚拟主机上使用ASP.NET Ajax
- IPv4与IPv6数据报格式
- 190420每日一句
- 高级语言程序设计(C语言) 笔记整理
- android 4g wifi热点,全网通吃!中兴MF910S 4G无线热点上手体验
- python小游戏:剪刀,石头,布
- html放大镜,可清晰放大整个网页
- 手写基于redis实现分布式限流器-pdlr
- oracle 存储过程教程
- hdu 4001 (2011ACM/ICPC大连网络赛)
- docker desktop 点击setting 一直转圈圈
- 动态网站开发(应该怎么做啊)
- VS模板 孤狼优化版v1.1
- ES--索引生命周期管理