热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

跟我到CPU内部去看1+1=2是如何运行的!(2)

在上文中你知道1+12是如何在cpu中运作的么?----跟我到cpu内部去看看吧!(1)我们通过旅游的视角已经的揭开了CPU的一角面纱,到现在为止我们可以清楚一下两件事情.

         在上文中你知道1+1=2是如何在cpu中运作的么?----跟我到cpu内部去看看吧!(1) 我们通过旅游的视角已经的揭开了CPU的一角面纱,到现在为止我们可以清楚一下两件事情.


         1 晶体管是CPU中的核心部件.

         2可以通过控制晶体管并对其进行逻辑组合便可以计算.


        那么1+1=2是如何通过晶体管来进行呢?

       要知道1+1=2如何运作,首先需要知道12在计算机中如何通过晶体管来表示呢?


        在上文中我们已经提到,一个小灯泡的状态可以通过两个晶体管(开关)进行逻辑组合来控制.现在你可以这样理解:


       一个小灯泡的状态代表着计算机中的两个数值:亮着表示1 关闭表示0

       现在我们可以拿出四个小灯泡,并且把四个小灯泡排成一排,如果你稍微懂一些二进制的话,现在已经很清楚了.我们可以通过这四个小灯泡的开关组合最多能够表示我们常用数制即十进制的16个数字(也就是24次方).


      现在就会有一下情况出现:

1四个小灯泡全部熄灭:                           二进制:0000  十进制:0

2从右面数第一个小灯泡打开,其他关闭:  二进制:0001      十进制:1 

3从右面数第二个小灯泡打开,其他关闭二进制:0010  十进制:2

依次类推,直到全部的四个小灯泡都打开:  二进制:1111  十进制15

 

以上过程可以通过下图来进行概括:

 

 

计算机生成了可选文字: 月.098761匀43丹乙月.0月.月.00000nU0000―丁十丰―丁十十工―丁十牛上土!1、0、1、1(,1:01:O:,,:00,:i,010:O宕10111;1:1011110;101101,};011010}00'1'1:00,O0001:'00'00';留谷曾曾

 

 

      那么1+1=2如果用上图进行表示的话可以得到下面的示例图:

 

 

计算机生成了可选文字: 月.月.J『.月.曰.〕户.妇0000月.月.月.月.J『.J飞.翻.』翻r』月.月.月.月.月.月.月.月.曰.』翻.〕月.月.月.月.0:0:11丁才不而0;0!0:10000QQ日Q月.月.月.月.00011O云000云QQQQ④日Q公

 

       好了,至此为止我们已经知道1 2还有其他的数值是如何在计算机中通过晶体管来表示,但具体"+"的这个过程是如何运行呢?

 

     现在我们开始进行下一步的理解.

     把一个晶体管抽象成一个开关,一个开关可以表示数字10,我们可以通过连接两个开关和两个灯泡通过一定的结构,开关用来表示输入0或者1而两个灯泡表示通过特殊结构的处理所得到的结果,这个特殊结构便是"加法器".加法器里面都是有各种逻辑门来构成的.这些逻辑门包括:"","",""与非",两个开关通过加法器相连的逻辑图如下

 

 

 

     

计算机生成了可选文字: H日IfAddef翩O.栩一.』一.一.』口且.}一.}.一日.}一月.一


         上图只是一个两个开关的相加,但是计算机要处理的是庞大的数据,这就需要将一个个的开关进行逻辑的相连接,变形成了下面的图,通过下图的方式将一个个的开关和灯泡进行相连.

 

计算机生成了可选文字: HalfAdderl泛\{朋一/一AND.,日OR长H日!fAdd6r卜‘八咤角八囚O目价目口.,日ANO〔用

 

如果有两排八个开关通过加法器相连,没有一个开关的话.从宏观的角度来看的话,便是下图所示:

       

计算机生成了可选文字: 回回圈0。回回日。。回回圈0。回回圈0。回尚图日向U回回囚品》回回圈印。回回圃问。0『0009000二0009000

 

     而我们此次的主角:1+1=2的运作流程便是下图所示

 

计算机生成了可选文字: .曰日.10000000,回回回回回回回1D0000O01回回回回回回回}回+圈日日圈圈日瞥曾曾曾曾曾几BOO,决dd陌四.,01CO吕.栩八BC.,,0决山如dA卜10CO,u旧2200000010曾

 

        此篇博客解决在准备软件设计师的过程中的疑惑.通过对CPU运作原理的探索,再一次理解了大道至简的道理,我们看似复杂的CPU,看似复杂的很多事物,归根到底都是一些特别简单的元素,而也就是这些"元素"通过各种组合,变换,便形成了复杂的运算,解决各种复杂的问题.

      

       想起了老子<<道德经>>里的一段话:“道生一,一生二,二生三,三生万物,万物负阴而抱阳,冲气以为和。”


         


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 显卡驱动对游戏的影响及其提升效果的研究
    本文研究了显卡驱动对游戏体验的提升效果,通过比较新旧驱动加持下的RTX 2080Ti显卡在游戏体验上的差异。测试平台选择了i9-9900K处理器和索泰RTX 2080Ti玩家力量至尊显卡,以保证数据的准确性。研究结果表明,显卡驱动的更新确实能够带来近乎50%的性能提升,对于提升游戏体验具有重要意义。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 记录一次es集群load过高问题(待更新)
    toptop-H-ppid按shiftp以cpu来排序按shiftm以memory来排序将10进制线程pid转为16进制printf%x\npidjstackjstackP ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在iOS平台中的Metal框架中,对于if语句中的判断条件的限制和处理方式。作者提到了在Metal shader中,判断条件不能写得太长太复杂,否则可能导致程序停留或没有响应。作者还分享了自己的经验,建议在CPU端进行处理,以避免出现问题。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
梦幻死灵_791
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有