计算机体系结构课程 - 卡内基梅隆大学

  • 名称:计算机体系结构课程 - 卡
  • 分类:电脑基础  
  • 观看人数:加载中
  • 时间:2021/12/18 10:57:24

计算机体系结构是计算机科学与技术学科重要的分支之一。它从全局的观点出发,通过采用定量分析技术,建立起设计、评价、优化计算机体系结构的方法和技术。利用这些方法和技术,可有效地评价已有计算机系统的性能、改进已有的系统设计、进而探讨新的体系结构。计算机系统结构是计算机科学工作者,特别是从事偏重于计算机硬件系统和系统软件研究的科学工作者的一门必备基础。

本篇上接《芯片》,从芯片深入到CPU。本篇分三部分,第一部分接上篇介绍设计CPU的基本步骤,第二部分介绍CPU原理,第三部分介绍cache原理。

设计CPU的基本步骤

第一步竟然是matlab(或cadence)仿真(matlab真强大啊)。印象中matlab是可以进行FPGA设计的,设计好还能自动转换verilog代码。

第二步当然就是实际的verilog/VHDL代码编写了,这个过程也叫前端仿真,之前用赛灵思做通信收发机实验的时候印象中仿真软件是可以根据verilog直接输出波形的,用来进行功能验证足够了。

第三步逻辑综合,生成实际的逻辑门电路,据说还会考虑时延。这一步里就要引入台积电、中芯国际这种代工厂的工艺库了,芯片设计企业拿到工艺库后,就能根据工艺库生成对应的电路参数,验证芯片了。

第四步仿真验证,也叫后端仿真,这个在学校做过的,就是拿FPGA验证一下综合之后的逻辑门电路。一般在学校做项目或者课题到这里就结束了,“我都已经做出实物了,很厉害了好吧?”,其实还有一步后端设计,就是把这个烧进FPGA的东西设计成电路板图,加一些测试电路,进行布局规划等等。

(之前跟做芯片的大佬一起出差招聘,听他们唠嗑各种前端后端的,现在终于明白是做啥了。

现在的所谓高端芯片,核心架构是ARM的,代工是台积电的,设计工具是美国的,谁能告诉我芯片设计企业的核心竞争力在哪里?仅仅是离最终产品更近吗?所以海思永远无法脱离华为而单独变得伟大?)

CPU原理

在上世纪40年代,英国科学家图灵发明了图灵机,图灵机由纸带、读写头、控制规则、状态寄存器等组成,图灵机在原理上与现代计算机一模一样。下面简单描述一下这个“原理”:

我有一个纸带(有没有想到高中物理牛顿力学里的纸带?),纸带上写了我需要的计算比如这样:

a = 5;

b = 1;

c = a + b;

d = a - b;

e = a * b;

f = a / b;

读写头按纸带的进入顺序读纸带的内容,图灵机里有abcdef 6个寄存器,读到c = a + b,就需要翻译一下去找加法操作和取a b值,把a和b两个寄存器里的值和加法告诉运算器,就输出了一个结果保存到c里。

现代计算机采用了相同的原理。纸带上的内容叫程序,程序放到了内存里。读写头叫PC,用来从内存里按顺序读取程序内容,控制单元对读到的内容进行译码分解成操作码(加法)和操作数(a的地址),然后根据a的地址去内存里取数据内容,这个时候把操作码和操作数告诉算术逻辑单元(ALU),计算出结果后回写到内存里。

为什么写上面这么些废话?因为我以前不知道图灵机是啥,你知道吗?下面提一个问题,提到计算机总说源自冯诺依曼架构,那么现代计算机是冯诺依曼计算机结构吗?这个不一定。还有一个哈弗架构,哈弗架构跟冯诺依曼架构的主要区别是“是否设计了单独的程序存储器和数据存储器”,如果你的计算机有单独的程序存储器和数据存储器,那么它就是哈弗架构,哈弗架构的特点很明显:并行带来速度提升,但实现复杂,代表就是51单片机。现代高性能arm多采用混合架构,一块同时存储指令和数据的内存,但还加了单独的指令cache和数据cache。

cache原理

既然提到cache了,最后这部分介绍cache。CPU速度按照摩尔定律指数级上涨,内存运行速度却没有相应提升(挺奇怪的)。算了,已经写了1200字了,cache还挺重要的,单独写一篇吧。