对计算机中领域大概分层了,不完全对,比如数字电路和数学的关系没那么强。
体系结构中也是有算法设计的,比如动态指令调度算法Tomasulo算法,乘法算子的两位booth算法,华莱士树。体系结构中也有数据结构,比如ROB,待发射指令队列,MIPs处理器对TLB的支持寄存器等。但是我们这里第5层说的是针对特定应用的算法。
算法和数据结构对数学的要求还是很高的,高效的算法和数据结构离不开扎实的数学功底。
从应用的角度看,是四五六层的关系。上面的三层基本就和具体应用无关了,就是计算机本身的问题了。
第一层,数学
加密解密、压缩算法、时频转换(傅里叶变换)、计算机模拟仿真
第二层,数字电路
机器码如何被硬件电路执行,数电模电,怎么烧CPU
第三层,计算机体系结构
计算机组成原理、硬件架构、硬件交互方式、指令集、硬件算子设计,指令调度方式、缓存策略设计等
第四层,软件环境
计算机操作系统(linux内核)、计算机图形学、编译原理(词法树,语法树)等
第五层,算法和数据结构
这里是指解决特定应用问题的算法,如低端排序,中端动态规划、贪心(dijkstra算法),高端人工智能(模式识别,NLP等等)
第六层,应用层(业务层)
计算机编程语言(C++、Java等)、IDE、软件架构、各种软件架构。