计算机那点事儿~

软件和网站开发以及相关技术探讨
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

计算机那点事儿~

#1

帖子 ubuntu777 » 2015-03-01 13:03

蜗牛在写C语言。我这边写汇编的语言。让大家更多了解计算机知识。增加对语言的运用,认识解决计算机问题的能力。
知识能力有限。有不对的地方,希望多多指教。

有人拆过机械的闹钟吗?拆开研究一下里面的齿轮就可以知道钟是怎么工作的。电脑就比较复杂。很多人用它工作。上网,听音乐,看视频,玩游戏,写文章,做计算,编程序等等。
貌似很少有人想拆开电脑,如了解闹钟一样理解它的工作原理。可能是觉得太复杂了。想也想不明白。其实没那么复杂。很多复杂的事情,实际是从最简单的事情开始。电脑也是这样。
如果大家有好奇心,愿意动脑思考。一步步地追问下去,就会搞清楚了。
计算机其实很简单,大家看看CPU和内存。上面有很多脚(老CPU有针脚,新CPU是金属触点)。然后主板上面插口,对应上面的脚或触点。主板上还有一排一排的线,把CPU和内存,还有其它的设备,硬盘啊,也是一排排的线,但比内存CPU少很多。都连起来就可以用了。很简单。对吧?
然后CPU里面有什么,内存里面有什么,它们在干什么就看不见了吧?其实也很简单。但需要一个知识,一个知识地了解。
先看看CPU和内存主板的图。很复杂吧?特别是主板,不要被吓到。只看看上面都是一排排的线的插槽就可以了。
CPU的图
CPU的图
台式机内存
台式机内存
主板的图
主板的图
最下面这个是主板,中间偏右下那个大方块,上面有很多小孔,就是插CPU的地方,把CPU上面的脚都接那里。它的右边蓝黑两种颜色各两条槽就是接内存的。接内存一排排的脚。插上就可以。其它的一些东西先不用管。
觉得很复杂吧?就好象一盘很好吃的菜。比如水煮肉片。里面肉片啊,青菜啊,大蒜啊,花椒啊,一大堆复杂的各种东西。但是没有人会被吓到不敢吃吧?只要开始吃,慢慢的就会了解到滋味。
如果因为看起来复杂,就吓到不敢吃了。没必要吧?


图片看完了。如果没有被吓到。就继续看下面。先想想,如果要你发明一个会计算的机器。你会怎么做?啊?怎么办啊?一点头绪也没有啊。好了,不用想了。从结绳记事到算盘到计算机,整个人类用了几千年。你一个人,几秒种能想到什么呢?绳子没有节代表零,上面打一节,代表一,打二个节,代表二。想表示数字,就打几个结。别人一看绳子上的节,就明白是几。算盘上,下面一排珠子都在下面,上面一排珠子都在上面,代表零,下面的珠子推上去一个代表一,推二个代表二,推三个珠子代表三。看几个珠子就知道是几。对吧?计算机没这么复杂。计算机只能用一根电线上面没电代表零,有电代表1。只代表零和一是不是太简单了啊?大家知道计算机都是可以做大量计算的东西。居然比结绳和算盘的功能都不如?想想前面看到的CPU和内存上面的脚。每一个脚就是一根线。每一根线,只能有电,没电两种状态。很多根电线组合起来,就可以表示很大的数字。

开始讲二进制。日常使用的都是十进制数字。可能有些人了解一点二进制的知识。如果一点也没有,也没关系。
刚才讲了,一根电线,有电代表1,没电代表零。好。那么现在给你一个台灯。现在你用它来表示数字。你心里想到1就开灯。想到0就关灯。这样你可以把0和1这两个数字通过开灯,关灯的方式告诉我。对不对?如果你想到2怎么办?想到3怎么办?怎么告诉我?没办法了吧?再给你一个台灯。现在你有两个台灯。把它们排好。想想,怎么通过两个台灯的开关表达0、1、2、3这几个数字。如果给你更多的台灯呢?你能是否能随意表达你想到的阿拉伯数字。有没有限制?用几个灯,能表达到几?好好动脑想想这些问题。然后我们再开始下一讲。
上次由 ubuntu777 在 2015-08-17 9:23,总共编辑 6 次。
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
qy117121
论坛版主
帖子: 50528
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 计算机哪点事儿

#2

帖子 qy117121 » 2015-03-01 15:49

猛一看以为蜗牛发的,



PS,因特尔处理器配amd主板真的好么


谁人唤吾名,循声不知处
来自骚黄色奥利奥
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机哪点事儿

#3

帖子 ubuntu777 » 2015-03-01 17:06

qy117121 写了:猛一看以为蜗牛发的,



PS,因特尔处理器配amd主板真的好么


谁人唤吾名,循声不知处
来自骚黄色奥利奥
:em06 谢谢指正。改了。
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
qy117121
论坛版主
帖子: 50528
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: 计算机那点事儿

#4

帖子 qy117121 » 2015-03-01 17:57

:em06
我也就是随口一说,你还改了啊

谁人唤吾名,循声不知处
来自骚黄色奥利奥
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机那点事儿

#5

帖子 ubuntu777 » 2015-03-04 17:44

上回讲到用两个灯来代表0、1、2、3这四个数字。大家想出来办法没有?下面我来讲一个方法。还是用1表示开灯,0表示关灯。有两个灯。可以有四个状态。来表示0、1、2、3四个数字。
0 0 两个零,表示两个灯都关了的状态。代表数字0
0 1 左边一个零,右边一个一。表示左边的灯关掉,右边的灯亮。代表数字1
1 0 左边的一个一,右边一个零。表示左边的灯打开,右边的灯关掉。代表数字2
1 1 左边一个一,右边一个一。两个灯都打开的状态。代表数字3。
以此类推。当我们要表示更大的数字的时候。我们往左边多加一个灯。每一个亮起来的灯在不同的位置。代表不同的数字。最右边一个灯亮,0 1表示一。1 0也是一个灯亮,但位置在右第二个,就表示二。
如果有八个灯,我们只亮一个灯,看看这个灯在不同位置代表的数字是什么。
00000001 表示:1 (2的零次方)
00000010(看起来是十进制的十)在二进制表示:2 (2的一次方)
00000100 (看起来是十进制的一百) 在二进制表示:4 (2的二次方)
00001000 表示:8 (2的三次方)
00010000 表示:16 (2的四次方)
00100000 表示:32 (2的五次方)
01000000 表示:64 (2的六次方)
10000000 表示:128 (2的七次方)
以此类推。位数越高的灯亮,表示的数字越大。二进制,00001000 表示的是8。如果想表示9怎么办?就再把最右边的那个表示1的灯亮起来。00001001就表示9。
好了。我们现在了解了怎么用二进制的办法表示数字。那么,下面我们看看怎么用二进制的方法来进行加法计算。记得我问大家,“如果让你发明计算机,你会怎么做吧?“这个问题吧?虽然只是让大家思考了几秒钟就被打断了。其实我是想大家一起把这个问题记在心里。不断动脑筋,想怎么做,就会造出一个自动计算的机器。需要完成哪些事情,才能达到这个目标。然后我一点点的给大家头绪和相关的知识。可以不断地猜,我下一步会讲什么,告诉你些什么。为什么要讲这些。比如,我讲到用两个电灯,一开一关来表示数字。你会不会想到,如果让两个人A、B,每个人各自使用两个台灯,通过控制开关,表示出他们两个人心中到0到3之间的任意一个数字。然后,让第三个人,也拿着两个台灯。看到那两个人的电灯代表的数字之后,把两个人的数字相加之后,用自己的台灯表示出两数之和。其实第三个人,需要拿三个灯。因为A、B两个如果都想到3,两数相加等于6。超出了两个灯表示的数字范围0~3。要用三个灯110来表示6。那么你会不会进一步想到。能否设计一个自动开关,来代替第三个人的功能,接到A、B的电灯上,通过他们电灯的带电状态,自动按规律点亮那个人拿的三个灯,来表示A、B两个人心中所想的数字之和?
如果想发明这样的一个开关的话。首先,我们自己要懂得怎么样做这个计算。大家记得计算十进制2位数以上的加法的列算式方法吧?现在我们用同样的方法来计算二进制的加法。让大家发现运算规律。
00
+0
----
00

01
+0
----
01

00
+1
----
01

01
+1
----
10
我们先看看一位二进制数字计算规律。一共列了4个算式。每个算式中,横线上面两个数是要相加的数,代表A、B各拿的一个灯。横线下面是相加后的结果,代表第三个人拿的两个灯。我们看到,当A、B的两个灯都没电的时候,代表两数之和的第三个人的灯不能亮。A、B两个人中只有一个人的灯亮的时候,第三个人的右边的一个灯要亮起来。当A、B两人的灯同时亮的时候。第三个人右边的灯要关掉,左边的一个灯要亮起来。如果有一个开关,通过接受A、B两个灯的带电信息,自动完成这个工作。那么可以说,自动计算的机器,就出现了。大家想一想,这样的开关要怎么实现?可以说很复杂。不过谜底揭开之后,就觉得很简单了。请大家耐心等待谜底揭开。在我们真正了解这个功能如何之前,我们还有很多知识要掌握。虽然每一步都没有特别难度。需要细心和耐心。如果要自己想到这么多,把它发明出来,真的是很难很难。
上次由 ubuntu777 在 2015-08-10 17:10,总共编辑 7 次。
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机那点事儿

#6

帖子 ubuntu777 » 2015-03-08 14:11

这次我们还是继续研究二进制的加法计算规律。这次看看二位二进制的加法。二位二进制的加法和一位二进制的不同在于,第二位的计算要考虑第一位有进位时的状况。第二位在没有进位的时候,各种状况和我们上次列出的状况是一样的。我就不重复了。下面列出的是在进位发生时的结果。第一位我们总是设为A、B两灯全亮,这样就需要进一位到第二位。注意观察第二位在有进位的状况下的各种结果。

001
+01
------
010
看看,虽然第二位上是两个0相加,但由于接受了第一位的进位,第二位上最后结果为1--灯亮。

011
+01
------
100
第二位上是1和0相加,接受进位之后,第二位上的结果是零,灯灭。但需要进一位到第三位,亮起第三个灯。

001
+11
------
100
第二位上是0和1相加,和上面的结果相同。

011
+11
------
110
第二位上是1和1相加。需要进一位到第三位,由于自己还接受了一个进位,所以第二位上也是1。所以第三位灯亮,第二位的灯也亮。

现在我们明白了二进制第二位上面的加法计算的各种状况。这个很重要。因为,再增加第三位,第四位,等等。这些位的计算方法都和第二位的计算方法相同。接受A、B的输入信息,以及低一位的计算结果有无进位的信息,确定自己这一位的灯的状况,并且把有无进位的状况信息,告诉高一位。就可以了。而且计算方法也是完全相同。
现在,我们明白了,我们需要这样一个自动开关。看图。A
fa.jpg
fa.jpg (6.36 KiB) 查看 16286 次


这个开关接收输入的两个一位的二进制数字和一个是否有进位的信息,进行加法计算后输出一个一位二进制的结果和对高一位的进位信息。

看看有箭头指向里面的三条线。下面A、B代表A、B两个需要计算的一位二进制数字。对于我们来讲,就是把A、B两个分别把自己的一个灯接出去一根电线,灯有电,这根线就有电,灯没电,这根线就没电。A的接这个图中的A、B的接B端。还有一个接入端Ci,表示接受从低位进位的端口。英文进位这个单词是Carry,接入这个单词是in。所以取头一个字母叫Ci端。一共三个输入端,A、B、Ci。

再看看输出的两条线。就是箭头指向外面的两条线,一条线是计算后本位上的加法结果。用S表示,英文加法计算的结果“和”的单词是Summation。取头一个字母S。对于我们来讲,就是表示计算结果的灯。有电就亮表示1,没电就表示0。还有一条线标为Co,是英文Carry进位,和out输入两个单词各取头一个字母的简写。表示这次计算有无向高位进入的信息。有电表示有进位,没电表示没进位。

好,这次的内容就是这么多。我们把二进制加法的规律研究清楚了。而且设想了一个控制开关,把它需要接入的线,需要接出的线都列出来,画了图。而且知道在各种不同的输入状况下,这个开关的输出端分别要输出怎么样的结果,才能满足正确加法运算的结果。如果这个机器成功。我们就可以通过S端的灯,知道结果。如果,我们想计算很大的数字,让A、B两个人拿很多的灯。每一位都接一个这个开关。A、B两人各自把自己的灯通上电,表示自己心里想的数字。这个开关上的S端的也接上灯,按顺序排列好。那么S端的灯表示的二进制数字,就刚好是A、B两人数字相加的和。

下面是使用两个全加器计算两位二进制数的图。S1表示第一位的计算结果,S2表示第二位的计算结果。如果要计算更多,就按这个方式接很多位就可以了。
fa2.jpg
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机那点事儿~

#7

帖子 ubuntu777 » 2015-03-11 17:53

上次讲到了全加器。我们了解了全加器要实现的功能。下面我们要进一步了解如何来做一个全加器,才能完成自动计算的功能。
我们先讲一下组成这个全加器需要的一些电路。这些电路能够完成对接入的一根、或者两根电线的不同的有电、没电状态进行处理,根据输入的不同的状态,决定输出的一根电线的有电没电状态。这些电路被称为逻辑门电路。
最基本的逻辑门有三种,分别是“非“门、“和“门、“或”门。分别介绍如下:
一、非门
先看代表这个电路的图。左边是输入的线,右边是输出的线。输入只有一根线,输出也是一根线。
notgate.jpg
notgate.jpg (3.88 KiB) 查看 16156 次
这个电线的功能很简单,当左边输入端没电的时候,输出端有电。当左边输入端有电的时候,输出端没电。就是把输入端的状态反过来。这种计算称为逻辑非运算。
下面是对这种计算状态的说明的一个表格,称为真值表。
输入值000000000输出值
00100000000000000
00000000000000001

二、或门
先看图。左边有两根输入的线。右边一根输出的线。
orgate.jpg
orgate.jpg (3.42 KiB) 查看 16156 次
它进行的运算被称为逻辑或运算。逻辑运算是判断真、假的运算。根据输入的两根电线的真(有电就代表真)、假(没电就代表假)两种状态,得出一个结果。这个结果也只有两种有电为真,没电为假。
为什么称为逻辑或运算?意思是输入的两根电线,只要一根有电,或者是A有电,或者是B有电,或者两个都有电,那么结果就有电。如果两个都没电,那结果就没电了。所以称为或运算。
或门的真值表如下:
输入端A000000000输入端B000000000输出结果A或B
001000000000000000100000000000000001
001000000000000000000000000000000001
000000000000000000100000000000000001
000000000000000000000000000000000000

三、与门
先看图。也是左边两根输入的线。右边一根输出的线。
andgate.jpg
andgate.jpg (3.14 KiB) 查看 16156 次
但这个是逻辑与运算。意思是输入的两根电线,只有在A与B同时有电,同为真,结果才有电、为真。必须A和B一起有电。只有一个有电,两个都没电,那么结果也是没电。称为与运算,就是A与B两个一起才为真。
与门的运算真值表如下:
输入端A000000000输入端B000000000输出结果A与B
001000000000000000100000000000000001
001000000000000000000000000000000000
000000000000000000100000000000000000
000000000000000000000000000000000000

这三个最基本的电路讲完了。CPU里面的各种功能都是由这三个电路构成的。大家一定要搞清楚它们的功能,并且能够熟练地运用。组成全加器就是把这三个东西,通过电线连接起来,导致最后能输出我们上面几次讲到加法运算的结果,以及进位的结果。大家可以自己动脑筋想想怎么连接。虽然有些复杂。但如果动脑,思维清楚。也是可以做到的。给一点提示。首先列出全加器的真值表。确定输入端各种状态对应的各种结果。然后要想清楚各输出端的结果和哪些输入端有关。再其次,确定了要使有的一个门电路之后,可以把中间结果接入其它门路,通过其它的门电路来调整最后想得到的输出结果。也可以利用非门电路,先把输入或门、与门电路的其中一根输入线调到自己想要的状况。最终得出正确的加法结果,或者进位结果。组不出来也没关系。下次我会公布答案。
上次由 ubuntu777 在 2016-01-21 20:45,总共编辑 2 次。
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
tang.zhe
帖子: 1505
注册时间: 2010-07-15 13:31

Re: 计算机那点事儿~

#8

帖子 tang.zhe » 2015-03-12 10:29

学术贴啊, :em11
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 计算机那点事儿~

#9

帖子 adagio » 2015-03-12 12:42

感觉很可能后面会有阿兰.图灵、冯.诺依曼等一大波大牛粗线 :em01
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
TeliuTe
论坛版主
帖子: 7668
注册时间: 2007-11-25 13:29
系统: 16/18/20/w7
来自: 新疆博乐
联系:

Re: 计算机那点事儿~

#10

帖子 TeliuTe » 2015-03-12 13:09

以前学的时候还知道点,现在都忘了 :em06
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机那点事儿~

#11

帖子 ubuntu777 » 2015-03-15 15:25

这次公布用逻辑电路组成全加器的答案。希望大家都已经认真思考过怎么组成这个全加器。如果思考过,再看答案就会比较有意思。
在组成为全加器这个具有加法运算功能的复杂东西之前,我们先用这三个基本电路组一个相对简单的东西。
就是逻辑异或门电路。
四、逻辑异或门路
先看图,这是代表逻辑异或门电路的符号。
xorgate.jpg
xorgate.jpg (3.58 KiB) 查看 15611 次
也是左边两个脚输入,右边一个脚输出。

逻辑异或运算的结果,就是输入两个脚的带电状况不一样,一个人0,另一个为1;或一个为1,另一个为0的时候,输出有电的结果1,为真。如果输入两个脚的状况一样,同为1,或者同为0。输出的结果就是没电,为假。

异或门电路的真值表如下。
输入端A000000000输入端B000000000输出结果A异或B
001000000000000000100000000000000000
001000000000000000000000000000000001
000000000000000000100000000000000001
000000000000000000000000000000000000

逻辑异或门电路不是基本电路,由三个基本的逻辑门电路进行如下连接组成。
xor01.jpg
xor01.jpg (8.43 KiB) 查看 15611 次
图里面细线代表电线。两条线交叉的地方有一个黑点表示这两根线在交叉的时候接通,连接在一起。如果两条线的交叉处没有黑点,就表示交叉但不接通,就是各自穿过去而已,互不影响。以后的图也都是这样表示。
大家看到,最下面是一个或门电路,或门电路真值表中己经包含了两个输入脚不一样时,输出为真的两个结果和两个输入脚都没电,输出为假的一个结果。就是或门电路和异或门电路的真值表下三排是一样的。但是在或门电路输出结果中,还要改变一下其中两个脚同时带电时,输出为真的状态。看图上面,把两个脚又接出去到一个与门电路。与门电路的运算结果是必须两个输入同时有电才为真,其它都是假。不是两个同时带电输出为真的结果吗?把这个结果反过来,变成假。于是在这个与门电路后面再接一个非门电路。好了,加一个非门电路之后,现在除了两个同时带电为假,其它的状况都为真了。然后,把这个结果,和下面或门的结果,分别再接入一个与门电路。得到最后的结果。大家注意想一下,与门的运算结果是必须两个结果同为真时,最后的结果才能为真。所以与门电路的一个输入脚有这样的功能。就是不管另一个脚怎样,我这个脚必须有电,最后的结果才可能有电。所以上面一个非门电路把两个输入脚同时有电变为假,其它状况都为真之后。就代表,最初的两个输入脚同时有电状况,进行处理后,我就不放行。其它的各种状况都放行。这样就把下面或门电路两输入脚同时有电时,输出结果为真的状况过滤掉了。最终得到异或门真值结果。

大家先回想一下前面几次学过的所有知识。下面公布全加器内部连接的答案。
先找到以前学过的全加器是什么样子,看图:
fa.jpg
fa.jpg (6.36 KiB) 查看 15611 次
然后列出全加器的真值表:

输入端A000000000输入端B00000000000输入端Ci000000000输出端S000000000输出端Co
0000000000000000000000000000000000000000000000000000000000000000000
0000000000000000001000000000000000000000000000000010000000000000000
0010000000000000000000000000000000000000000000000010000000000000000
0010000000000000001000000000000000000000000000000000000000000000001
0000000000000000000000000000000000100000000000000010000000000000000
0000000000000000001000000000000000100000000000000000000000000000001
0010000000000000000000000000000000100000000000000000000000000000001
0010000000000000001000000000000000100000000000000010000000000000001

然后看这个全加器的内部逻辑门电路图:
fa03.jpg
注意上面那个输入本位的加法结果的S端,由两个异或门电路连成。先是A B两个输入端进行计算,如果两个不一样时,灯就亮。因为两个都为0不亮,两个都为1,就进位了,也不用亮。然后再把这个结果和进位的输入端Ci一起进行逻辑异或运算。也是一样的异或运算,两个不一样就亮。如果A、B相加之后的结果和进位相同,都亮,也就进位了,最后结果不用亮为0。如果相同都是不亮。那结果也是0,不亮。必须两个都不一样。
下面进位结果Co端的运算比较复杂。大家自己动脑筋想想,一定要理解。也算是一次头脑训练。这样以后讲更复杂的东西的时候,理解起来就顺利了。否则可能到某个阶段就可能看不懂,跟不上了。大家要在增加知识的同时,也同时增加自己头脑的能力。最后才能跟上。就象练习武功,如果一个人每次都是听,从不练习。刚开始初级阶段都能听懂。达到某一阶段,别的经常练习的师兄弟们还能进阶,学得津津有味,这个人就只能稀里糊涂原地踏步,不知道大家在干什么了。子曰:学而时习之,不亦乐乎。
希望大家在自己动脑筋之后,复习所有的知识。对于各种逻辑运算的结果,头脑要非常清楚,要熟练。然后,会告诉大家如何用这些基本的逻辑门电路组成更复杂的东西CPU。CPU里面所有的东西都是由这三个逻辑门电路组成的。很惊奇吧?CPU里面就没别的东西了?答案是:没别的了。所以在这之前,还要告诉大家最基本的三个逻辑门电路是用什么材料做成的,材料有什么特性,是什么原理,怎么组,怎么接电才能形成想要的结果。
上次由 ubuntu777 在 2016-01-21 20:40,总共编辑 1 次。
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 计算机那点事儿~

#12

帖子 YeLee » 2015-03-15 16:41

像是很深的样子。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机那点事儿~

#13

帖子 ubuntu777 » 2015-03-18 20:13

这次讲基本的逻辑门电路是怎么做成的。是什么材料,怎么使用,才能根据输入端带电的状况,输出不同的带电状况。
如果大家有一些物理学电学方面的知识很好。如果没有话。也可以根据我讲的,慢慢了解一些。
首先大家知道根据物体的导电特性,可以把它们分为导体和绝缘体。比如电线,里面的金属线,一般是铜线。是导电的。铜就是导体。电线外面的要包上一层胶皮,来阻挡电流。以免电到人。胶皮就是绝缘体。
如果只使用导体。我们做成的逻辑电路。就只能输入端为有电1时,输出端也是1,有电。输入端为没电时,输出端也是没电。只能做成逻辑或门电路。大家还记得逻辑或门电路的真值表吧。逻辑或门电路怎么组成的大家也就明白了吧。其实就是把两根输入的导线连在一起,接成一根输出线,一个输出端就形成了。好。逻辑或门电路的组成就讲完了。
如果使用绝缘体,那么不管输入结果是什么,输出的都是没电,都是0。这样的电路没有使用价值。不属于我们要讲的三个基本逻辑电路。
要做成其它的两个逻辑门电路。我们还要用到一种特殊的材料。叫做半导体。顾名思意是什么意思?只导一半的电,还是有时候导电,有时候不导电?我们讲的半导体,就是后一种状况,有时候导电,有时候不导电。那么什么状况下导电,什么状况下不导电?大家知道电池吧。电池的一端是正极,一端是负极。一般在安装电池的时候。电池盒里面都有提示,不能把电池装反。如果使这种材料,把电池一个方向接好,有电流通过的。如果把电池的正负极方向换一下接。就没电了。
大家看图。
2jg.jpg
2jg.jpg (17.57 KiB) 查看 15403 次
2jgfh.jpg
2jgfh.jpg (9.35 KiB) 查看 15403 次
上面一个是二极管的实物,下面一个是二极管的符号。符号里面有一个三角形。一头写有阳极,一头写有阴极。可以用来区分安装的方向。因为方向的不同会导致使用的效果不同。如果把电池的正极,就是电池上标有加号+的那一头,接到二级管的阳极。电池的负极,就是标的减号的那一头接到二级管的阴极一端,就是导电的。反过来,就不导电。


下面讲一下怎么做成这个二极管。
其实也很简单。就是把两种不同的半导体材料拼在一起就形成了。
PN_Junction.png
PN_Junction.png (2.1 KiB) 查看 15403 次
就是这个图。左边是使用的材料叫P型硅,右边的材料叫N型硅。这个东西叫PN结。在CPU里面,可以把这个做得很小很小。然后用很细很细的铜线把他们连起来。什么纳米工艺,就是导线之间间隔只有几十个纳米。但基本的东西就是用铜线,连这个PN结。今天就讲这么多。大家看看CPU在显微镜下的照片。那一排排,一层层,间距只有几十个纳米的就是很细的铜线。
cpumc.jpg
除了这些铜线横断面,基本啥也看不到。因为硅是黑色的。硅,铜线,连起来。就是CPU。别的啥也没有。硅在地球上到处都是。砂子岩石里面就很多。一点硅,加一点铜线。连起来,卖好几百块钱一个。想想吧。 :em02
大家想不想知道PN结的工作原理?下次讲怎么通过接这个PN结(也就是二极管),形成逻辑和门电路;还是讲PN结的工作原理? :em01
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机那点事儿~

#14

帖子 ubuntu777 » 2015-03-22 20:31

我决定还是讲一下PN结的工作原理。了解一些材料方面的知识会让大家感觉到更踏实一点。
先讲一些电学方面的知识。根据现代物理学的知识。物体是由原子构成的。原子是由带正电的原子核和带负电的电子组成。电子绕着原子核运动。在外面。原子核带的正电和电子带的负电平衡的时候。物体就不带电。如果不平衡了。物体就会带电。带了电就会形成电场,产生吸力。大家知道摩擦生电的实验吧。玻璃棒和丝绸摩擦,玻璃棒上的电子会被摩到丝绸上面去。带负电的电子丢失、少了,无法和带正电的原子核平衡。玻璃棒表现出带电性,带正电。丝绸上面得到带负电的电子多了,就带负电。玻璃棒带电后,还可以用来吸小纸片。这是静电。静电可以吸东西。因为不平衡带电,就会产生吸力。
还有就是电流。电子如果在物体中流动。就会形成电流。电子流动的方向和电流的方向相反。一个电池,一边是正极,一边是负极。如果用可以具有导电性的导线相连。电流从正极往负极流动,从电压高的一端往电压力的一流动。实际就是物体中的电子从负极一端不停地往正极一端移动。电压就是拉动电子移动的力的大小,电压越高,这个力就越大。
虽然物体都是由原子核和电子构成。但不是所有物体中的电子都可以自由移动。电子不能自由移动的物体,就无法导电。没有电流。
而且电子流动的时候是一个接一个的一起移动,才可以有电流。就好象幼儿园的小朋友上街。最前面和最后面的小朋友,都有老师牵着。第二个小朋友牵住第一个小朋友的衣服,一个牵一个一起移动。如果队伍中的一个小朋友不动了,可能鞋子掉了,或者被什么东西绊住不能动了。整个队伍就都不动了。电子的流动就是这样。必须一个接一个,都能移动才能移动。如果中间有不能移动的电子。也无法导电。而且电子移动是一个挤一个挪动,象下不许跳的跳棋,前面有一个空可以挪过去。
现在回过来讲,PN结的材料。大家看到左边是P型硅,右边是N型硅。
在大家了解P型硅和N型硅之前,先看看硅晶体的结构。
看图。非常稳的晶体结构。里面小圈标有+4代表带4个正电荷的硅原子核。外面的黑点是带负电的电子。就这样被锁定。这个结构平均每个硅原子核可以锁住,并且平衡4个带负的电子。晶体里面如果掺杂了+4或+3的原子核,效果就会不同了。下面的图是硅晶体原子的实物照片。
Sil01.jpg
Sil01.jpg (27.85 KiB) 查看 15166 次
Silicium-atomes.png
Silicium-atomes.png (32.88 KiB) 查看 15166 次
所谓的N型硅,就是在就是掺杂了少量杂质磷元素的硅晶体。
硅晶体不导电。因为硅晶体的结构排列很稳定。每一个原子核可以牢牢地约束住周围所有和原子核的正电相平衡的带负电的电子。没有可移动的自由电子。在加入磷元素之后,磷有五个外层电子,参与到硅晶体的结构之中,只能约束住四个电子。其中有一个电子管不住,成为自由电子。这样就形成了可以导电的N型硅。
所谓的P型硅,就是掺杂了少量硼元素的硅晶体。
硼元素只有三个外层电子。参与到硅晶体的结构里面之后。形成有一个空档填不满结构。这个空档可以吸引电子来填满。电子就可以通过这个空档,一个一个象下跳棋一步步挪过去。形成电流。本来不导电的硅晶体。也可以导电了。
当再种材料拼在一起的时候。在交界面的一断区域。可以导电的N型硅中的自由电子被可以导电的P型硅中的空穴吸引。形成稳定的象硅晶体一样的结构。这样失去自由电子的一断N型硅就无法导电,变成绝缘体。
但是注意,这种稳定的晶体结构虽然在结构上平衡了四个电子。但是由于原子核里面正电荷不同。N型是磷里面有五个正电荷。P型是硼原子核里面只有三个正电荷。所以N型半导体接触面上少了一个电子,带正电。形成带有吸力的电场。想把丢失的电子吸过来。P型半导体多了一个电子,带负电。形成带有推力的电场,想把多的电子推回那边。

大家听到这里,如果头脑还想得很清楚的话就继续往下。如果有点乱了,先停下来仔细想一下。想清楚所有问题。
想清楚之后。对于半导体的为什么在电池的正负极方向不同的情况下导电状况不同就很容易明白了。

(这段红字是讲错的部份。往后数第二楼有纠正。)好。如果我们给这个PN结加上电压。我们讲过电压大小就是推动电子的力的大小,而且有方向。如果是和它本身形成的电场,一边是吸引电子,一边是推电子的力的方向相同。加强之后,帮助N型半导体,让它能把电子吸回去。那么N型半导体就重新成为带自由电子的导体,可以导电。如果我们加反方向的电压,你不是想吸回电子吗?我更加地不让你吸回去。这样它就更加不导电了。

好,大家仔细想想。如果看到这里,还可以继续的话。我们下次讲用这个PN结,也就是二极管来组逻辑和门电路。不知还有多少人能坚持看下去。注意,如果你理解完这些问题,认为还不太难。自己还有能力理解更多的问题。就继续。如果已经觉得到了极限,没有更多能力就算了。因为以后还有更加复杂的东西。
上次由 ubuntu777 在 2015-03-29 20:23,总共编辑 2 次。
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
头像
ubuntu777
帖子: 249
注册时间: 2007-03-28 18:40

Re: 计算机那点事儿~

#15

帖子 ubuntu777 » 2015-03-25 19:01

上次讲到了CPU里面做成逻辑门电路的基本材料晶体硅的导电性;以及P型硅和N型硅做成的具有单向导电性的PN结,二极管。这次就讲怎么用这个二极管组成逻辑和门电路,应该叫与门电路。就是英文的AND gate电路。

在用二极管组成与门电路之前。我们看看用自动开关组成的逻辑与门电路。不知道大家有没有听说过原始的计算机要占用一个很大房子。就是用自动开关来组的。
看图
200px-Relay_and.jpg
200px-Relay_and.jpg (3.87 KiB) 查看 14919 次
这就是一个实际的逻辑与门电路。左边的A、B表示输入端的两根电线。上面有+号的一端也表示一根输入的电线。这根电线只提供电源,来保证输出端的较果,并不参与计算功能。所以我们在用逻辑门电路的符号上没有这根线。但在实际组成的电路中,要接上这根线提供电源。右边的out端表示输出端。
注意+号和out之间有两个开关。在图中的状况是断开的。这样out端就没电。A端和B端下面的方盒子就表示控制这个开关的东西。盒子下面接出一根线,表示接地线。大家知道电器工作要两根线。电源插头至少有两根线,一根火线是有电的,一根零线是不带电的。有电的一根线接入电器,还有另一根线从电器接出,才可以形成电流,带动用电器工作。
盒子里面是什么呢?我估计是一个电磁铁。当A有电的时候。电磁铁就产生吸力,把它所控制的开关接通。当B有电的时候,也把它所控制的开关接通。一定要A、B两端都有电,在两个开关同时接通的情况下。才能让out端和+号电源端的电线接通。导致out端有电的结果。
这样就形成了我们逻辑与门电路的真值表。

下面看用二极管组成的与门电路。
DiodeANDgate.jpg
DiodeANDgate.jpg (3.54 KiB) 查看 14919 次
最上面的V端表示接一个电池或直流电源(直流电源和交流电源的区别就不讲了,一般来讲,电池是直流电源。家里用的插座是交流电流。电脑、手机等等要求直流电源才能工作。所以手机充电需要适配器,把交流电源变为直流电源。笔记本电脑的电源线在电脑接口和插头之间也有一个适配器来完成这个工作。台式机的机箱里面也有一个电源适配器。)的正极。正极的一端叫高电平,负极的一端叫低电平。电流就好象水流一样。一旦线路接通,就会从高的一端往低的一端流动。
我们以前讲用电灯来计算,用电线的有电或者没电状况代表1或是0。当然也可以用这种方式,用自动开关控制电路组成原始的计算功能电路。但我们现在讲现实计算机中的CPU,使用的是直流电,半导体硅来控制电路。用高电平一端表示1,低电平的一端表示0。
大家再来看这个图。V端是高电平接正极,下面接一个竖着的长方型R,表示电阻。如果电源的正负极之间接一个电阻的话。电阻接高电平的一端和高电平保持一致。电阻接低电平的一端保持低电平。如果另一端没有接东西。电阻两端的电平是相同的。
在电阻下面一点,右边是输出端out。A、B两端都接了一个二极管,表示只允许电流从往左边流动。如果A、B两端都是低电平。电流从V的这端流出通过电阻R后,流过A、B这边。out端和A、B是单向接通的,所以out端也是低电平。
当A端变为高电平时。由于接了一个二极管,反向流不动,也流不到out端。out和B端的低电平是单向连通的,保持一致还是低电平。
当A、B都变成高电平的时候。电流没有低的地方可以流了。out端就和V端的电平接近了。成为高电平。
大家可以想像一下,好象水流从V端这个很高的地方流下来。下面接上管子。二极管是单向阀门。如果A、B两个出口都是通的。有一个不堵住。右侧管out端不会有高压力的水流出去。一定两个同时堵住。out端才可以形成高水压喷出。
这样也满足了逻辑与门电路的真值表。两个输入端同为1时,输出为1。其它状况都是0。
שְׁמַע יִשְׂרָאֵל יְהֹוָה אֱלֹהֵינוּ יְהֹוָה ׀ אֶחָֽד׃
וְאָהַבְתָּ אֵת יְהֹוָה אֱלֹהֶיךָ בְּכׇל־לְבָבְךָ וּבְכׇל־נַפְשְׁךָ וּבְכׇל־מְאֹדֶֽךָ׃
回复