0%

周谈(52)- 《CPU通识课》读后小结

前言

这两天把前一段时间从图书馆借的《CPU通识课》这本书看了一遍,这是一本科普类书籍,还是蛮适合IT人员阅览的。作者在讲解的过程中会结合自身的实践,感受不会很空洞。
内容还是挺多的,包含CPU的概览、术语、架构原理、生产制造的流程、相关企业及软件生态。

个人在阅读的过程中也稍微记了一些笔记,下面小结一下。

CPU性能

从最早的MIPS和MFLOPS方法(指令功能不同,不同指令测出来的结果不一),到通用的标准SPEC CPU测试。
从只对CPU进行性能测试,到考虑CPU与外设、内存数据交换的因素考量, 如stream可以用于测试CPU访问内存的性能。
从硬件测试到软件的测试,不同厂商还会优化编译器,如intel的icc,为了测试而测试,当然能体现其技术能力,但不一定适用于通用场景。

还提到过时的UnixBench测试,项目老旧、测试原理不能体现最新架构的性能。

CPU制作

制作计算机 = 制作CPU + 制作操作系统,相较于CPU,操作系统难度更大。

CPU企业制作CPU的几种方式:1)自主研发指令集;2)获取指令集授权,研发兼容CPU;3)单纯的SOC拼装,完全用他人的CPU。

做CPU更难的还是在于生态的建立,有人用才卖的好。

CPU指令集

RISC和CISC指令集,X86代表CISC, ARM、MIPS、RISC-V等代表RISC;RISC精简指令集指令格式固定,个数少,寄存器要多,指令库庞大。CISC指令变长,执行周期不一。

intel对外提供CISC,内部先预译码,再转RISC。

指令5级流水线:指令预取、指令译码1、指令译码2、指令执行、结果回写。

CPU术语

IP核: 一个设计好的电路模块,实现了预定义的功能,模块化,可以在不同的芯片中复用。

SOC:片上系统,在一个芯片中集成了多个电路模块,组合而成的电路系统。

功耗: 电子设备在单位时间内所消耗的电能。降功耗的方法有三种:1)使用更先进的工艺;2)操作系统做电源管理;3)根据运行负载自动调整主频; 还可以使用大小核的设计。

摩尔定律:集成电路的晶体管每一两年会翻一倍。目前已经达到极限了,5nm级已经只有几个原子大小了,没法继续操控了,会导致不可靠。

intel Tick-Tock策略: 每两年更新换代一下。 先制造工艺提升,再继续微结构设计优化。

异构计算:一个是专人专事,不同计算单元组合完成一个任务,另外就是把软件的功能交给硬件做,提高特定功能的性能。比如国密的专用指令,其他专用处理器。

向量: 一条指令可用同时计算两组以上的操作数。

标量:一条指令只可以计算一组操作数。

多核: 在一个芯片中集成多个独立的CPU单元。

多路: 一个主板上安装多个CPU芯片。

超线程:硬件多线程,通过CPU增加执行单元实现。

CPU设计

硬件设计比软件设计更难:1)软件语言更方便使用;2)电路系统比软件系统更负责,不易分层;3)电路存在大量有状态模块,复杂度高于软件的无状态模块。

EDA(电子设计自动化)工具,可用简化设计工作,还可以用于验证(仿真),对设计代码进行自动化检查。

国内EDA厂商产品远落后于国外先进厂商,占有率也很低。存在开源的EDA软件,可用进行简单芯片的制作。

CPU设计语言Verilog,Verilog对于CPU设计师而言,就先C语言对于软件设计师一样。

Verilog语言(RTL)描述了抽象的电路结构,需要使用工具将其转换为门单元,得到网表。以网表为分界点,CPU设计的前后端阶段。网表经过布局布线,确定晶体管位置,得到版图。版图交给流片厂商。

cpu_rtl

可以用FPGA验证CPU功能, 也可以使用模拟器实现。由于主频的限制,运行的都比较慢。

计算机系统相关

并行内存结构:a)SMP,所有CPU访问相同的内存,CPU和内存通过高速互联总线进行数据传递;b)NUMA,每个CPU都安装内存条,CPU之间通过互联网络连接。

cpu_arch

Cache一致性: a)强一致性,必须所有cpu更新后才处理后续的指令;b)弱一致性,不需要等待,不同cpu可能存在cache不一致的问题,需要软件使用内存同步指令,大部分并行CPU都是弱一致性的。

CPU生态

一流的企业做标准,二流的企业做品牌,三流的企业做产品。我国企业大部分是二三流芯片企业。

更多

这是2024年以来的第一篇blog,只能说自己懒惰了吧,但也的确比较忙了,时间比较紧张了。

去年底定的计划,2024上半年考那个系统分析师,跟着报了个班,系统地学习了相关的体系知识,每周都有2次课,课前要预习,课后要做题。

周末大部分时间都在看学习资料,刷题目,复习视频背概念,准备写论文等等。而且不下雨的话,都要去跑个十公里,锻炼一下身体。

工作上面也是忙,研发任务还是比较紧的,也承担了更多的事情,驱动相关的知识也还在补漏。

每周都过得很饱满,刷刷地就过去了。

总之,IT这行就得不停的学习,才能让自己更充实,不被淘汰吧。

当然,时间还是得挤一挤的,对自己再狠一些。


行动,才不会被动!

欢迎关注个人公众号 微信 -> 搜索 -> fishmwei,沟通交流。

欢迎关注

博客地址: https://fishmwei.github.io

掘金主页: https://juejin.cn/user/2084329776486919