CPU是如何设计的?

电器工程 设计 中央处理器 CMOS
2022-01-25 02:43:15

不久前我开始玩电子产品并使用晶体管制作简单的逻辑门。我知道现代集成电路使用 CMOS 而不是晶体管晶体管逻辑。我不禁想知道的是 CPU 是如何设计的。

设计是否仍然在(子)逻辑门级别完成,或者该领域不再有太多创新,我们是否已经转向更高级别的抽象?我了解 ALU 是如何构建的,但 CPU 的功能远不止于此。

数十亿晶体管的设计从何而来?它们主要是由软件自动生成的还是仍然有很多手动优化?

3个回答

CPU 和 SoC 很可能被 Verilog 和 VHDL(两个主要参与者)等硬件描述语言使用。

这些语言允许不同级别的抽象。在 VHDL 中,您可以将逻辑块定义为实体;它包含输入和输出端口。在块中,您可以定义所需的逻辑。假设您定义了一个具有输入 A、输入 B 和输出 C 的块。您可以轻松编写 C = A 和 B;,基本上您创建了一个 AND 端口块。这可能是你能想象到的最简单的块。

数字系统通常设计有很强的层次结构。可以从 CPU 所需的主要功能开始“顶级”:处理器(多个?)内存、PCI-express 和其他总线。在此级别内,可能已经定义了存储器和处理器之间的总线和通信信号。

当你降一级时,它将定义使某些东西“工作”的内部运作。以微控制器为例,它可能包含一个 UART 接口。制作功能性 UART 所需的实际逻辑在下面一层定义。在这里,可能需要许多其他逻辑来生成和划分所需的时钟、缓冲区数据(FIFO 缓冲区)、向 CPU 报告数据(某种总线系统)。

VHDL 和数字设计的有趣之处在于模块的重用。例如,您可以在顶层复制和粘贴 UART 块来创建 2 个 UART(好吧,也许不是那么容易,只有 UART 块能够进行某种寻址!)。

这种设计不是任何门级设计。VHDL 也可以以最终转换为逻辑门的方式“编译”。机器可以比人类更好地优化这一点(而且速度也更快)。例如; 块 A 的内部在输出信号之前需要一个反相器。块 B 获取此输出信号并再次将其反转。那么,串联的 2 个逆变器并没有做太多的事情,对吧?正确,因此您也可以将它们排除在外。但是,在“顶级”设计中,您将无法发现两个串联的逆变器。您只会看到两个端口连接。编译器可以比人类更快地优化这一点。

基本上,数字系统设计包含的是对逻辑应该如何“表现”的描述,并且计算机用于找出最有效的方法是布置各个逻辑门。

让我简化和扩展我以前的评论,并为那些似乎需要它的人连接点。

设计是否仍然在(子)逻辑门级完成?

  • 是的

设计是在很多层次上完成的,子逻辑层次总是不同的每次制造缩小都需要最出色的物理、化学和光刻工艺经验,因为晶体管的结构发生变化,几何形状也发生变化以补偿权衡,因为它缩小到原子水平,每个二进制步骤的成本约为数十亿美元尺寸。实现 14nm 几何尺寸在研发、过程控制和管理方面是一项艰巨的任务,这仍然是轻描淡写的!在此处输入图像描述

例如,执行此操作所需的工作技能包括: -“FET、单元和块级自定义布局、FUB 级平面图、抽象视图生成、RC 提取以及使用物理设计开发阶段(包括寄生提取、静态时序、线负载)的原理图到布局验证和调试模型、时钟生成、自定义多边形编辑、自动布局和布线算法、平面规划、全芯片组装、封装和验证。”*

- 在那个领域没有太多的创新了吗? - 错误 - 从摩尔定律和专利数量来看,半导体物理学领域有重大且资金雄厚的创新,它永远不会停止。每次节省电力、热量以及因此能力翻两番都会得到回报。

- 我们是否进入了更高层次的抽象? - 它从未停止移动。- 随着对更多内核的需求,在一条指令中执行更多操作,例如 ARM RISC CPU、更强大的嵌入式 µC 或 MCU、带 DDR4 的智能 RAM(默认具有 ECC)以及具有优先级位的闪存等扇区,用于紧急内存提取。- CPU 进化和架构变化永远不会停止。 在此处输入图像描述

让我给你一个提示。去英特尔、AMD、TI 或 AD 寻找工程师职位并查看职位描述。

- 数十亿晶体管的设计从何而来? - 它来自于添加更多的 64 位硬件块。但现在纳米管出现故障,思维必须从块的自上而下的方法转变为纳米管的自下而上的方法才能使其发挥作用。

  • 它们主要是由软件自动生成的吗?舌头牢牢地埋在脸颊上……
  • 实际上,他们仍在从宇宙飞船的 Area51 中提取设计,并且还有很长的路要走……直到我们完全符合纳米纳米管的要求。一位工程师进入图书馆并说 nVidia 我们希望你加入我们的这个芯片并成为其中的一部分,进入宏块布局可以像 Toystory 中的 Ants 一样复制,但必须手动路由/签出对所有连接的显式控制,并使用 DRC 和自动路由进行比较。是的,自动化工具不断升级,以消除重复和浪费时间。

    - 还有很多手动优化吗?

  • 考虑到一家航空公司通过在头等舱的晚餐中仅移除 1 个橄榄就节省了足够的钱来支付您的薪水,英特尔将寻找在时间范围内移除尽可能多的原子的方法。任何多余的电容都意味着浪费热量,性能和哎呀也更多的噪音,不是那么快......

但真的 CPU 像东京一样成长,不是一夜之间,而是数以千万计的人住在那里,并且稳步提高。我没有在大学学习如何设计。但是通过阅读并尝试了解事物的运作方式,我能够很快地跟上行业的步伐。我在航空航天、核仪器设计、SCADA 设计、过程监控、天线设计、自动气象站设计和调试、OCXO 的 PLL 的 VLF Rx、Black Brandt 火箭的 2 路远程控制等方面获得了 10 年的经验……和那只是我的第一份工作。我不知道我能做什么。

不要担心数十亿的晶体管或害怕学习什么或你需要知道多少。只要追随你的热情,在你睡觉的时候阅读贸易期刊,那么你在工作中就不会显得那么青涩,也不再像在工作了。

我记得有一次必须在 20 分钟内设计一个“类似”的 741 运算放大器作为考试的一部分。我从来没有真正使用过它,但我可以从伟大的设计中识别出好的一面。但那时它只有 20 个晶体管。在此处输入图像描述

但是如何设计一个CPU必须从一个规范开始,即; 为什么要设计 CPU 并制定可衡量的基准来实现,例如; - 每秒宏指令数 (MIPS)(比 CPU 时钟更重要),例如;-英特尔的安腾芯片基于他们所谓的显式并行指令计算 (EPIC) 设计。 - Transmeta 专利 CPU 设计,带有超长指令字代码变形微处理器 (VLIWCMM)。他们在 2006 年起诉英特尔,关闭商店并在 2007 年以约 2 亿美元的价格和解。 - 每瓦性能 (PPW),当电力成本 > 芯片成本(对于服务器) - 每秒浮点运算 (FLOPS) 用于数学性能。

还有更多指标,但决不能将 CPU 的设计质量基于其 GHz 速度(见神话)

那么设计 CPU 需要哪些工具呢?从原子级物理设计到动态网格 EMC 物理 EM/RF 设计再到前端设计验证测试工程师的列表不适合此页面,其中需要的技能包括:- 前端 RTL 仿真 - 了解 IA 和计算机架构以及系统级设计 - 使用 VHDL 或 Verilog 进行逻辑验证和逻辑仿真。- 面向对象的编程和各种 CPU、总线/互连、一致性协议。

AMD的CPU设计概述

英特尔的版本

这些都没有提供太多细节,但仍然很有趣。不要接受这个作为答案。其他人已经详细考虑了您的问题,并在尝试详细回答时付出了更多努力。