林鸿想了半天,始终无法得到想要的答案,于是只能暂时放弃。
“顺其自然吧。”
林鸿给了自己一个安慰,这句话是他师父经常对人说的一句话。
有些事情,勉强反倒不美,可能会造成相反的效果。
将这个心思放下,他开始继续阅读红皮书。
除了显示器固件方面的内容,其他常见的外部设备固件代码和原理他也看得差不多了。
现在他要看的,是计算机里面最核心的部位——中央微处理芯片,也即CPU。
APPLE_II采用的芯片是MOS科技出品的6502芯片,这是八位微处理器,在问世时,是当时效能最强的CPU。当然,在苹果机问世时,它已经不是最强的了,实际上,刚开始做样机的时候,设计者沃兹尼亚克使用的芯片并不是6502,后来之所以改为了这个型号,主要是为了考虑节约成本。
6502的价格只有其他同类产品的六分之一甚至更低,但是性能方面却相差无几,甚至比别的公司的八位微处理器还要更快。正是由于这种无法忽视地有点,让很多计算机或者游戏机厂商最终选择了它作为CPU。
APPLE_II苹果机就是使用这个芯片的伟大产品之一,另外一个比较著名的产品,就是任天堂的家庭游戏机,俗称红白机。
中央处理器,被称作计算机的“大脑”和“心脏”,这并不是随便叫的。因为计算机中所有的执行和计算,都必须通过CPU来完成。
所谓计算机的可编程性主要是指对CPU的编程,只不过平时针对它的操作,被层层封装隔离,使用高级语言的程序员,甚至不用知道CPU的存在以及其具体运作原理,只要编写“1+1”这样的计算等式,然后执行编译就会出现结果。而实际上,在那察觉不到的一瞬间,这其中经过了一个非常繁杂的过程。…;
首先编译器要将程序编译为计算机能够理解的机器语言,然后开始将程序交给CPU来控制,经过提取、解码、执行、写回……等一系列的动作,最终计算出结果,然后再将其显示在显示器中。
这个过程虽然繁杂,但是速度非常快,计算机刚刚诞生的那会儿,速度可能和用算盘计算差不多,但是到了现在,已经只是一瞬间的事情了。
小小的一块芯片里面,蕴含的东西却是非常多的。
在以前,CPU是使用继电器之类的基本开关元器件来实现的,这些元器件不但体积庞大,而且不可靠,很容易破碎。真空管的出现逐渐代替了继电器,直到后来晶体管的出现才是CPU技术的第一次飞跃。
集成电路将大量的晶体管都集中在一个小小的芯片上,大大缩小了CPU的体积,并且不容易损坏,稳定性也得到了极大的提升。这个时期计算机才真正有了走向千家万户的可能,微型计算机应运而生。
红皮书中,对6502的介绍非常详细,大到CPU芯片各个针脚的功能和作用,小到累加器、指令解码器以及各种各样的寄存器的详细结构都配有详细的插图。
这些插图,全部是手绘的,原作者正是苹果公司的天才计算机工程师沃兹尼亚克。
连线条都有些弯曲的手绘图形出现在计算机手册中,这要是在今天,会给人一种非常不专业的感觉,但是在红皮书出版发行的时候,正是这些手绘插图让全世界所有计算机爱好者和研究人员为之痴迷。
可以说,APPLE_II完全是为了计算机爱好者而设计的,包括红皮书,也是为这些专业人士而撰写的,因为其设计者是伍兹尼亚克,一个纯粹的技术人员。
不过苹果公司的CEO乔布斯对此意见很大,他并不是技术人员,他也不希望使用苹果计算机的用户仅仅局限于专业人员和计算机爱好者。
这不是乔布斯想要的产品,所以此后苹果公司后来陆陆续续推出了很多版本其他类型的计算机,不过却一直无法超越APPLE_II,并且由于过于保守,最终让公司陷入了面临倒闭的危机边缘,直到很久以后才重新崛起——这是后话。
林鸿对这部分内容看得尤其仔细,对照着CPU里面各部件的电路原理图,他在脑海中模拟着整个CPU的运算流程。原本他还以为自己理解起来会有一定难度,但是后来发现,他很顺利地就理解了整个CPU的运作原理。
算术逻辑单元、累加器、计数器、时钟发生器、寄存器组……
林鸿一方面惊诧于这一块小小的芯片上面竟然集成了这么多复杂的部件,另外一方面又沉迷在这些设计精妙的电路中无法自拔。
无线电台的元器件电路和原理,都是可以看得见摸得着的,可是CPU中的这些东西,却被封装在这么小的一块芯片内,只能通过外部的引脚对其进行操作,这不得不让林鸿感到非常震惊。
这就一个黑匣子,所有输入输出信号,全靠那几根针脚来实现,通过对针脚上面施加各种高低不同的电平电压,就实现了数据的处理和运算,这种巧夺天工的设计,不得不让人击节赞叹!
通过巧妙的电路处理,计算机科学家们发明了一种被称为“OPCODE”的机器语言,以此来对CPU进行指令控制,从而实现计算。
机器语言就是指二进制代码语言,是最低级最原始的语言,也是计算机微处理器可以直接理解的语言。例如“0000”表示让CPU加载程序,而“0001”则告诉它要存储东西了。
四位数,每一位都有两种可能,那么则可以表示2x2x2x2总共16种不同的操作。
16种操作在刚开始的时候还能满足需求,可是到了后面计算机的CPU越来越复杂,操作指令也越来越多,这已经无法满足需求了,于是便开始进行扩充,用8位或者12位二进制进行标示。
直接用二进制来编写程序,实在是太让人蛋疼了,满屏幕都是密密麻麻的0和1,眼睛都能看成斗鸡眼去。
https://www.du8.org https://www.shuhuangxs.com www.baquge.ccabxsw.net dingdianshu.com bxwx9.net
kenshu.tw pashuba.com quanshu.la
tlxsw.cc qudushu.net zaidudu.org
duyidu.org baquge.cc kenshuge.cc
qushumi.com xepzw.com 3dllc.net