跟我到CPU内部去看1+1=2是如何运行的
2014-08-11 23:05
579 查看
跟我到CPU内部去看1+1=2是如何运行的!(转)
1+1=2
好吧,我承认这是小学生也会做的题目,但是作为一个程序员,或者是软件设计师,你知道1+1=2如何在计算机内部表示并执行的么?
在复习软件设计师中的计算机组成原理的时候这个问题一直在困扰着我,因为这里的内容涉及到了cpu运行原理.而对我们大多数人而言,cpu只不过是一个"黑盒子",具体里面是如何构造的我们并不是很清楚.
为了搞清楚,自己在这方面花费了一些功夫,查阅了相关的书籍和一些资料,逐渐的解开了cpu的内部的面纱,接下来我将通过图片来和大家一起到cpu的内部观察它是如何运作1+1=2的.
旅途开始:我将通过显微镜的旅游方式为大家展现.
电脑:作为程序员这是我们熟悉的不能在熟悉的家伙了.
主机是电脑重要的部件.
主机里面的重要组成部分--主板
主板中有整个电脑的核心
打开cpu外的散热器我们可以看到传说中的cpu
cpu的内部构造,
cpu主要是有晶体管构成的,下图为一个晶体管的示意图.
晶体管中有两个电流,左侧为输入流,右侧为输出流
在两个电流中间有一个白色的绝缘体,而被白色绝缘体包围的是半导体,主要是进行控制开关
而被白色绝缘体包围的是半导体,主要是进行控制开关,两端电流上面是金属导体.
当输入流通电的时候,并且半导体的开关是处于打开的状态下,那么输出流也处于通电状态
为了便于形象的理解,我们给每个晶体管"装上"一个开关,开表示1,关表示0,同时为晶体管的输入流通电.
现在拿出两个晶体管,将两个晶体管的输出流(右侧电流)通过导线相连,并在导线上可以想象安置一个小灯泡,有电则小灯泡亮,没有电则不亮.这就形成了著名的"逻辑门"中的"或"门,下图是一个"或"门的构造.
如果只打开第一个晶体管的开关,则小灯泡亮了.
如果只打开第二个晶体管的开关,则小灯泡也亮了.
如果两个开关都打开的话,则小灯泡还是亮了.
以上三种情况是解释的"或"们会有的三种情况,接下来通过一个小小的变化将导线同第一个晶体管的输出流与第二个晶体管的输入流相连,则形成了另一个逻辑门----"与"门.
如果只开第一个晶体管的开关的话,小灯泡不会亮.
如果只开第二个晶体管开关的话,小灯还是不会亮.
如果两个都开的话,小灯才能亮.
至此为止我们已经了解到了晶体管的基本工作原理,并且通过图像展现出来,了解到了什么是逻辑门,逻辑门中的"与门"和"或门"但是1+1是如何通过这些晶体管来表示,并在计算机中运行,我将会在下一篇文章中与你走完剩下的旅途.
下图为上面整个路线的一个宏观概念图.
到现在为止我们可以清楚一下两件事情.
1 晶体管是CPU中的核心部件.
2 可以通过控制晶体管并对其进行逻辑组合便可以计算.
那么1+1=2是如何通过晶体管来进行呢?
要知道1+1=2如何运作,首先需要知道1和2 在计算机中如何通过晶体管来表示呢?
在上文中我们已经提到,一个小灯泡的状态可以通过两个晶体管(开关)进行逻辑组合来控制.现在你可以这样理解:
一个小灯泡的状态代表着计算机中的两个数值:亮着表示1 关闭表示0
现在我们可以拿出四个小灯泡,并且把四个小灯泡排成一排,如果你稍微懂一些二进制的话,现在已经很清楚了.我们可以通过这四个小灯泡的开关组合最多能够表示我们常用数制即十进制的16个数字(也就是2的4次方).
现在就会有一下情况出现:
1 四个小灯泡全部熄灭: 二进制:0000 十进制:0
2 从右面数第一个小灯泡打开,其他关闭: 二进制:0001 十进制:1
3 从右面数第二个小灯泡打开,其他关闭: 二进制:0010 十进制:2
依次类推,直到全部的四个小灯泡都打开: 二进制:1111 十进制15
以上过程可以通过下图来进行概括:
那么1+1=2如果用上图进行表示的话可以得到下面的示例图:
好了,至此为止我们已经知道1 和 2 还有其他的数值是如何在计算机中通过晶体管来表示,但具体"+"的这个过程是如何运行呢?
现在我们开始进行下一步的理解.
把一个晶体管抽象成一个开关,一个开关可以表示数字1和0,我们可以通过连接两个开关和两个灯泡通过一定的结构,开关用来表示输入0或者1 而两个灯泡表示通过特殊结构的处理所得到的结果,这个特殊结构便是"加法器".加法器里面都是有各种逻辑门来构成的.这些逻辑门包括:"与"门,"或"门,""与非"门 ,两个开关通过加法器相连的逻辑图如下
上图只是一个两个开关的相加,但是计算机要处理的是庞大的数据,这就需要将一个个的开关进行逻辑的相连接,变形成了下面的图,通过下图的方式将一个个的开关和灯泡进行相连.
如果有两排八个开关通过加法器相连,没有一个开关的话.从宏观的角度来看的话,便是下图所示:
而我们此次的主角:1+1=2的运作流程便是下图所示
此篇博客解决在准备软件设计师的过程中的疑惑.通过对CPU运作原理的探索,再一次理解了大道至简的道理,我们看似复杂的CPU,看似复杂的很多事物,归根到底都是一些特别简单的元素,而也就是这些"元素"通过各种组合,变换,便形成了复杂的运算,解决各种复杂的问题.
想起了老子<<道德经>>里的一段话:“道生一,一生二,二生三,三生万物,万物负阴而抱阳,冲气以为和。”
1+1=2
好吧,我承认这是小学生也会做的题目,但是作为一个程序员,或者是软件设计师,你知道1+1=2如何在计算机内部表示并执行的么?
在复习软件设计师中的计算机组成原理的时候这个问题一直在困扰着我,因为这里的内容涉及到了cpu运行原理.而对我们大多数人而言,cpu只不过是一个"黑盒子",具体里面是如何构造的我们并不是很清楚.
为了搞清楚,自己在这方面花费了一些功夫,查阅了相关的书籍和一些资料,逐渐的解开了cpu的内部的面纱,接下来我将通过图片来和大家一起到cpu的内部观察它是如何运作1+1=2的.
旅途开始:我将通过显微镜的旅游方式为大家展现.
电脑:作为程序员这是我们熟悉的不能在熟悉的家伙了.
主机是电脑重要的部件.
主机里面的重要组成部分--主板
主板中有整个电脑的核心
打开cpu外的散热器我们可以看到传说中的cpu
cpu的内部构造,
cpu主要是有晶体管构成的,下图为一个晶体管的示意图.
晶体管中有两个电流,左侧为输入流,右侧为输出流
在两个电流中间有一个白色的绝缘体,而被白色绝缘体包围的是半导体,主要是进行控制开关
而被白色绝缘体包围的是半导体,主要是进行控制开关,两端电流上面是金属导体.
当输入流通电的时候,并且半导体的开关是处于打开的状态下,那么输出流也处于通电状态
为了便于形象的理解,我们给每个晶体管"装上"一个开关,开表示1,关表示0,同时为晶体管的输入流通电.
现在拿出两个晶体管,将两个晶体管的输出流(右侧电流)通过导线相连,并在导线上可以想象安置一个小灯泡,有电则小灯泡亮,没有电则不亮.这就形成了著名的"逻辑门"中的"或"门,下图是一个"或"门的构造.
如果只打开第一个晶体管的开关,则小灯泡亮了.
如果只打开第二个晶体管的开关,则小灯泡也亮了.
如果两个开关都打开的话,则小灯泡还是亮了.
以上三种情况是解释的"或"们会有的三种情况,接下来通过一个小小的变化将导线同第一个晶体管的输出流与第二个晶体管的输入流相连,则形成了另一个逻辑门----"与"门.
如果只开第一个晶体管的开关的话,小灯泡不会亮.
如果只开第二个晶体管开关的话,小灯还是不会亮.
如果两个都开的话,小灯才能亮.
至此为止我们已经了解到了晶体管的基本工作原理,并且通过图像展现出来,了解到了什么是逻辑门,逻辑门中的"与门"和"或门"但是1+1是如何通过这些晶体管来表示,并在计算机中运行,我将会在下一篇文章中与你走完剩下的旅途.
下图为上面整个路线的一个宏观概念图.
到现在为止我们可以清楚一下两件事情.
1 晶体管是CPU中的核心部件.
2 可以通过控制晶体管并对其进行逻辑组合便可以计算.
那么1+1=2是如何通过晶体管来进行呢?
要知道1+1=2如何运作,首先需要知道1和2 在计算机中如何通过晶体管来表示呢?
在上文中我们已经提到,一个小灯泡的状态可以通过两个晶体管(开关)进行逻辑组合来控制.现在你可以这样理解:
一个小灯泡的状态代表着计算机中的两个数值:亮着表示1 关闭表示0
现在我们可以拿出四个小灯泡,并且把四个小灯泡排成一排,如果你稍微懂一些二进制的话,现在已经很清楚了.我们可以通过这四个小灯泡的开关组合最多能够表示我们常用数制即十进制的16个数字(也就是2的4次方).
现在就会有一下情况出现:
1 四个小灯泡全部熄灭: 二进制:0000 十进制:0
2 从右面数第一个小灯泡打开,其他关闭: 二进制:0001 十进制:1
3 从右面数第二个小灯泡打开,其他关闭: 二进制:0010 十进制:2
依次类推,直到全部的四个小灯泡都打开: 二进制:1111 十进制15
以上过程可以通过下图来进行概括:
那么1+1=2如果用上图进行表示的话可以得到下面的示例图:
好了,至此为止我们已经知道1 和 2 还有其他的数值是如何在计算机中通过晶体管来表示,但具体"+"的这个过程是如何运行呢?
现在我们开始进行下一步的理解.
把一个晶体管抽象成一个开关,一个开关可以表示数字1和0,我们可以通过连接两个开关和两个灯泡通过一定的结构,开关用来表示输入0或者1 而两个灯泡表示通过特殊结构的处理所得到的结果,这个特殊结构便是"加法器".加法器里面都是有各种逻辑门来构成的.这些逻辑门包括:"与"门,"或"门,""与非"门 ,两个开关通过加法器相连的逻辑图如下
上图只是一个两个开关的相加,但是计算机要处理的是庞大的数据,这就需要将一个个的开关进行逻辑的相连接,变形成了下面的图,通过下图的方式将一个个的开关和灯泡进行相连.
如果有两排八个开关通过加法器相连,没有一个开关的话.从宏观的角度来看的话,便是下图所示:
而我们此次的主角:1+1=2的运作流程便是下图所示
此篇博客解决在准备软件设计师的过程中的疑惑.通过对CPU运作原理的探索,再一次理解了大道至简的道理,我们看似复杂的CPU,看似复杂的很多事物,归根到底都是一些特别简单的元素,而也就是这些"元素"通过各种组合,变换,便形成了复杂的运算,解决各种复杂的问题.
想起了老子<<道德经>>里的一段话:“道生一,一生二,二生三,三生万物,万物负阴而抱阳,冲气以为和。”
相关文章推荐
- 跟我到CPU内部去看1+1=2是如何运行的!(2)
- 跟我到CPU内部去看1+1=2是如何运行的!(2) 【转载】
- 跟我到CPU内部去看1+1=2是如何运行的!(2)
- 如何理解CPU卡内部认证与外部认证
- 如何将双核电脑配置成仅运行单CPU(以便运行仅支持单CPU的程序)
- 如何指定CPU只运行特定任务,linux中断interrupt
- 如何指定进程运行的CPU
- 如何精确计算出一个算法的CPU运行时间?
- 如何解决在cmd中出现的:“cmd不是内部或外部命令,也不是可运行的程序或批处理文件”。
- 【CPU占用不高 电脑运行速度慢】如何解决{页面文件}
- 如何将所有的进程运行在一个指定的CPU上
- 你知道1+1=2是如何在cpu中运作的么?----跟我到cpu内部去看看吧!(2)
- 深入探索.NET框架内部了解CLR如何创建运行时对象
- 在VB中如何让线程或进程在指定的CPU上运行
- 深入探索.NET框架内部了解CLR如何创建运行时对象(转载)
- 如何设置进程(线程)在指定的CPU上运行
- 深入探索.NET框架内部了解CLR如何创建运行时对象zz
- 11如何精确计算出一个算法的CPU运行时间?
- 如何精确计算出一个算法的CPU运行时间
- 教你如何将CPU改为单核运行