计算机组成与体系结构
这一节学的内容是关于计算机的组成与体系结构,包括数制、计算机结构、流水线、存储、总线等。都是之前学过但忘掉已经很久的东西,数制高中的时候就学过,记得当时始终搞不懂二进制“奇怪”的进位规则,因为逢十进一已经深入脑海;大学的时候学微机原理,为了应付考试,大家都能把CPU各部分的功能倒背如流;学习CPU运行原理、总线寻址、流水线等知识时,也曾惊叹于那巧妙而充满智慧的设计。可如今再学习这些时仍然像个门外汉一般;而每天用着高级语言码字的我在碰到二进制时还是需要转换半天。这块的知识博大精深,考虑到实用与精力的权衡,就跟着视频走,学点冰山一角吧。
1. Flynn分类法
这是Flynn在1966年从计算机的指令流和数据流两个角度出发给出的计算机分类方法,但目前并没有MISD型计算机,因为这种计算机被证明不可能,至少是不实际。从SISD到MIMD,从简单到复杂,现在的计算机仍然在沿着Flynn分类法的预期发展。
2. 指令集
指令集分为复杂指令集和精简指令集两大阵营,以英特尔为代表的厂商采用复杂指令集系统,处理器可支持各种各样功能齐全的指令,但这一指令系统的问题在于其设计复杂、指令长度区别太大导致流水线效率不高、功耗高过高等。到了上世纪八十年代,计算机科学家们提出了基于精简指令集的处理器设计思想,只保留很少的常用指令并将一条复杂的指令用几条简单的指令代替,这是计算机发展史上的一次革命,精简指令集一出现便受到了广泛欢迎,可惜英特尔在设计8086时还没有出现精简指令集,英特尔担心切换到精简指令集会丢失x86系列芯片在微处理器市场的领先地位,便继续发展其复杂指令集处理器,并且最终靠着市场和资金的优势,打赢了指令集之战,现在英特尔、AMD的处理器还是基于复杂指令集,不过奔腾以及后来的处理器也都吸取了精简指令集的长处,而目前基于ARM的移动处理器都采用精简指令集。