计算机体系结构.体系结构简介
什么是计算机体系结构
对于“Computer Architecture”,有些地方译为“计算机系统结构”,有些地方译为“计算机体系结构”。这两种翻译都对,只是经常会被混用。本文将以“体系结构”为主,不过如果偶尔出现了“系统结构”那也不要慌,其实指的都是”Computer Architecture“。
计算机体系结构包含了整个计算机设计与实现的方方面面,是对整个计算机系统的组织、功能、实现的全面考量【1】。值得一提的是,过去(上世纪)的体系结构通常指的是指令集架构(Instruction Set Architecture,简称ISA),彼时摩尔定律的效果十分强劲,只需堆砌更多的晶体管就可以获得性能上的提升,因此并不需要太多的微结构设计。
当然如今已经不仅仅是ISA了,但ISA是仍是体系结构中很重要的一部分,因为ISA设计是关乎软硬件结合的关键:软件通过指令操控硬件,硬件根据指令执行具体功能。ISA设计通常可以被视为系统结构所涵盖范围的上层,而下层是微结构(Microarchitecture)。
有些地方会将“体系结构”和“微结构”所混淆,其实是不准确的。微结构对应的是某一具体ISA在某种特定处理器上的具体实现【2】,对于常见的桌面处理器其微结构设计通常包括但不限于:流水线、存储层次结构、功能单元、乱序结构、片上网络等等,而对于专用的嵌入式处理器常常不采用乱序结构(更肯定一点的话,可以去掉“常常”二字)且流水线也十分简单。相同的ISA可以有不同的微结构实现,比如Intel和AMD的处理器都是x86指令集,但其内部架构千差万别,耳熟能详的有Intel的