这是一位同学发到邮箱里面的问题,感觉有点难,试着回答一下。
呵呵,一家之言,欢迎拍砖。
===========================
原问题:
肖老师您好,有一些问题想请教您.我对组成计算机最底层的元器件的工作原理一无所知,为人类制作出如此复杂的计算机而折服,同时也很疑惑,总结了以下一些问题:
1.组成计算机的元器件除了晶体管,继电器等还有哪些?他们都是起什么作用的?
2.为什么一通电计算机就可以工作了呢?电流对哪些元器件起作用才使计算机工作的?
3.计算机识别0和1,在计算机中0和1是通过什么元器件表示的?
4.为什么计算机能处理图像和声音,cpu内部运算器好像只是完成加减乘除吧,怎么处理这些东西的?
5.计算机刚出现时,没有键盘,用机器语言编程,怎样把0和1输入计算机,用的什么器件?
6.内存为什么可以存储呢?
    问的问题可能比较幼稚,但我真的想搞明白。这些东西老困扰着我,我是软件工程专业的学生,在学组成原理,数据结构,接口之类的课时老觉得心里没底,糊里糊涂的,我始终觉得自己根本不了解计算机。希望老师能指点一下。谢谢您老师。
===========================
我的回答:
哇哦,这些问题,貌似有点难。
这位同学,这些其实都是《计算机组成原理》里面的知识,应该由你们老师讲的,我觉得首先,你应该去问问你的老师,他收了你的学费的,应该给你讲解清楚。
嗯,感谢你这么看得起我,我试着回答一下,先说明,我的不是书本上的标准答案,考试可别用我的答案啊。另外,估计你是大一的新生,学了计算机的专业,但是还没有基础,建议你这学期好好看看教科书,有些基础知识,教科书是正解。
1、组成计算机的元器件除了晶体管,继电器等还有哪些?他们都是起什么作用的?
嗯,应该说,这个问题过时了,倒退50年,你这么说是正确的,因为那会的计算机刚刚从电子管进步到晶体管,不过,目前都是超大规模集成电路计算,计算机里面都是集成电路块,CPU,内存,甚至声音处理模块,图形卡上的GPU,都是超大规模集成电路,没有晶体管了。继电器则是第一台真正意义的计算机出现前的东东,早就不用了。
 
2.为什么一通电计算机就可以工作了呢?电流对哪些元器件起作用才使计算机工作的?
通电计算机并不能工作,通电通常是给计算机CPU的某根引脚加上一个高电平,这样从软件读入,这个端口从0编程1,由此引发一路中断,而中断跳转的地址,是BIOS里面写好了的,CPU于是跳到这里开始执行机器码程序,并随之开始启动磁盘,从磁盘上读入OS操作系统,一步步BOOT,最终把整个操作系统调入内存开始运行,这些是软件的工作。硬件就是保证加电后给出一路中断信号即可。

3.计算机识别0和1,在计算机中0和1是通过什么元器件表示的?
0和1都是由电路表示的,这个电路可能是集成块的一根引脚,也可能是一段导线,在计算机里面,大家通常把+5V作为1,0V作为0,这样,一个电路,要么是1,要么是0,可以表示两种状态,由此引发了二进制的使用,我们在现代计算机里面使用的所有数字,最终在计算机内部都表示为二进制数值,连带着,16进制也比较流行,因为它是2的整倍数,转换方便。

4.为什么计算机能处理图像和声音,cpu内部运算器好像只是完成加减乘除吧,怎么处理这些东西的?
所有的图像和声音,都是“数据”,这和我们做个数组,里面填些数字没有差别,仅仅是我们用户对其使用的定义不同而已,一段数据,我们说,它是音频,它就是音频,说它是视频,它就是视频,其实数据本身是无属性的,看使用者用什么方式理解它。当然,如果我们把视频数据用音频放,放出来可能是杂音而已,数据主要看来源,看用途,中间存储和传输,是无属性的。
既然是数据,CPU当然能加减乘除,其实大多数时候,我们的CPU只有一种计算,就是加法,所有的四则运算,都是最终转换成加法运算执行的,当然,这种转换有时候是硬件执行,Intel系列的CPU是CISC复杂指令集结构,它提供乘法指令,但是,内部转换成加法执行,而诸如PowerPC、Sun的一些RISC精简指令集CPU,则只提供加法,要求应用程序自己完成这种转换。
当然,有了计算法则,就可以套用公式了,一段数据,如何还原成声音或者图像,是有公式的,这是数学家的事情,不是程序员的事情。而现代计算机,都有音频和视频设备,公式逆运算出来的数据,直接推送到声卡或显卡,即可获得图形显示和声音。

5.计算机刚出现时,没有键盘,用机器语言编程,怎样把0和1输入计算机,用的什么器件?
用按钮,一排8个按钮,按下表示1,不按表示0,把一个字节的数据,以8位二进制表示出来,按好按钮,然后有个确定按钮,一按,一个字节的数据就输入到计算机里面去了。最古老的机器码程序都是这么写的。
当然,这样太慢,后来出现穿孔纸带,一排算一个字节,打孔算1,不打孔算0,一排8个位置,表示8位二进制数字,这样效率高一些,可以一次把几十上百个Bytes打好,然后一次输入到计算机里面。有个扫描仪类似的东东,把纸带从一端插入,一按按钮,纸带过一遍,这些数据就都进去了。
后来慢慢有了行编辑,有了电传打字机,慢慢又进化到显示器+键盘,然后又进化到图形界面,你现在看到的,是进化了60年的计算机。

6.内存为什么可以存储呢?
 
内存是一种特殊的集成电路块,有三种引脚,一种是地址线,表示下个动作要碰触内部哪个单元,一般是8、16、32根,根据这个集成块内部能存储的数据多少来说。一种是数据线,一般是8根,也有16根,32根,分表表示不同位宽的数据,还有一种是触发器,表示下面进行哪个动作。
内存有两种状态,一种是写状态,就是你在数据线用高低电平放好一个数据(8位二进制),地址线用高低电平放好一个地址,然后电路以一个高电平或者低电平,触发其写脚,数字就被拷贝到内部指定单元。读呢反过来,地址线放好地址,触发一个读脚,数据线上就可以读到高低电平,就是内部该单元的数据。
内存其实就是可以保存状态的一个电路,如果我们把那个单元设置为高电平,一般说来只要不改它,下次无论什么时候读,都是高电平。磁盘,光盘其实都很类似,就是我们在某个点设置某个信号,这种材料能保证我们下次来读的时候,还能读到这个信号。
内存种类很多,不过大体意思是这个意思。
先回答道这里吧,建议你应该多看看专业书。