一、计算机体系结构
既然分析了C++26中的SIMD,咱们就顺便把计算机体系的相关内容简单复习一下。可能大家这么多年,都忘记得差不多了。就算是一起复习一下,如果对这方面了解很清楚的可以不用向下看了。
看一下百度百科的概念说明:“计算机体系结构指软、硬件的系统结构,有两方面的含义:一是从程序设计者的角度所见的系统结构,它是研究计算机体系的概念性结构和功能特性,关系到软件设计的特性;二是从硬件设计者的角度所见的系统结构,实际上是计算机体系的组成或实现(参见计算机组织),主要着眼于性能价格比的合理性。亚当(Adam)等人为了说明和研究从程序设计角度所看到的计算机的属性(外特性),在1964年最先提出计算机系统结构的概念 ”。
也就是说,计算机体系结构是指“根据属性和功能不同而划分的计算机理论组成部分及计算机基本工作原理、理论的总称”。
二、计算机体系结构的发展
计算机的出现,就会慢慢发展出计算机体系结构的相关理论。早期是在早期的发展阶段(60年代以前),主要是软硬件混合在一起,属于萌芽阶段;然后是计算机体系结构发展的70年代左右,经过了一段时间的发展,计算机的软硬件技术都获得了巨大的进步。软硬件开始明显区分开来,软件技术的进步非常明显;到了70年代中期以后,此时计算机技术获得了更进一步的发展,网络、分布式等场景纷纷出现,同时开始出现了个人计算机的迅速普及;现代的计算机体系发展则从80年代中期后开始,各种新兴的网络技术和硬件新技术不断的涌现,特别是AI已经开始普及,软件发展到了一个空前的重要性阶段。软硬件共同进步,解决了一个又一个的问题。
三、计算机体系结构的分类
计算机是一个很笼统的名词,大家一定知道。不要狭义的认为PC才是计算机。所以计算机的架构体系分类就很多种方式来区分,常见的包括:
1、按指令执行模型分类
这是比较常见的,教科书上基本都有,主要是分为冯·诺依曼体系 (Von Neumann Architecture)和哈佛体系 (Harvard Architecture),它们的主要区别在于指令和数据是否存储在一起。常见的计算机一般是冯·诺依曼体系,ARM和DSP等是哈佛体系。
2、按指令级并行性分类
就是刚刚分析过的,弗林分类法,按指令流和数据流数量分为SISD、SIMD、MISD、MIMD四类。
3、按处理器架构分类
这个在教科书也常见,即CISC (Complex Instruction Set Computer),复杂指令集计算机,如X86计算机;RISC (Reduced Instruction Set Computer),精简指令集计算机如ARM相关的计算机;和VLIW (Very Long Instruction Word),超长指令字,如Intel Itanium (IA-64),一般用于DSP信号处理。
4、按数据流控制分类
按这种分类主要分为:控制流计算机 (Control Flow)如X86;数据流计算机 (Dataflow)如FPGA;脉动阵列 (Systolic Array),如谷歌的TPU等。
5、现代的异构计算机
这种分类就比较灵活了,比如CPU和GPU或FPGA在一起的,存储和运算一体的等等
计算机的体系结构在不断的发展过程中,理论在发展,实践发展的更快,所以大家不要拘泥于教科书中的理论,还要紧跟着前沿的理论和实践。它们才可能创造出更强更优的强大的计算机体系。
四、总结
更详细和更全面的计算机体系结构的相关技术知识,大家可以参看相关的教科书或者相关的网上资料。其实,在学习到一些专业的技术知识时,才蓦然会发现,原来上学学得相关的原理和理论其实正好映射到了现实。国内的教学缺点就在于缺少这个过程,导致大家在学习时,只是僵化的如八股般的学习。只有很少的人从事专职的工作后,经过反复的实践和学习,才明白了这其中的关节。
学以致用,才是真正的学会;学不能致用,等于没学。
2387

被折叠的 条评论
为什么被折叠?



