CPU如何设计?


21

我前一段时间开始玩电子产品,并使用晶体管制作简单的逻辑门。我知道现代集成电路使用CMOS而不是晶体管晶体管逻辑。我不禁要问的是CPU的设计方式。

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

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


2
我会说Verilog或VHDL。
avakar 2012年

3
这些主题引人入胜,但距离“根据您所遇到的实际问题而提出的实用,可回答的问题”相距甚远。我也可以想象一本完整的书来回答这个问题。
马丁

1
@Overv,还有很多工作可以确保要插入的基础块在门级得到优化,然后您只需以优化的方式插入那些优化的块即可!
2012年

13
我投重新打开-虽然我同意一个完整的答案告诉“你需要知道从头开始构建一个完整的CPU一切”是不是这个网站的一个很好的比赛,我想简要介绍和几个 环节会一个很好的答案。
大卫

1
令人惊讶的是,我们没有半导体行业的任何人可以在这里评论更复杂的ASIC设计。由于我不是专家,所以这只是我所听到的内容:IP内核中有很多许可,并且将它们全部组合在一起的领域称为VLSI。我相信设计是使用高度优化的合成工具在VHDL / Verilog中完成的,这是我所不知道的。
乔恩·L

Answers:


10

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

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

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

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

VHDL和数字设计的有趣之处在于模块的重用。例如,您可以在顶层复制并粘贴UART模块以创建2个UART(好吧,也许只有在UART模块能够寻址的情况下才这么简单!)。

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

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


正如在软件中仍然存在汇编代码的地方一样,在某些情况下,较低级别的硬件设计可能具有成本效益。例如,SRAM单元经常被广泛使用,以至于开发高度优化的设计来优化密度(最后一级缓存),访问延迟(L1缓存)或其他特性,尤其是在像Intel这样的集成设计制造商处。
保罗·克莱顿

@Paul给我提出的一个有趣的问题是,英特尔在手工优化设计方面投入了多少资金,而编写软件优化过程则可以动态更广泛地实现相同的性能改进。
Ponkadoodle

6

让我简化并扩展我以前的评论,并为那些似乎需要它的人提供帮助。

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

设计是在许多级别上完成的,子逻辑级别始终是不同的。每次制造收缩都需要最出色的物理,化学和光刻工艺经验,因为晶体管的结构发生变化,几何形状也发生变化以补偿折衷,因为它缩小到原子级,每降低1个二进制位将耗资约10亿美元。尺寸。要实现14nm的几何形状,是研发,过程控制和管理中的一项艰巨任务,但这仍然是轻描淡写!在此处输入图片说明

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

-在这个领域没有太多创新了吗? -错-根据摩尔定律和专利数量的判断,半导体物理领域有重大且投入巨大的创新,它永远不会停止,功率,热量的节省以及因此三倍的能力每次都得到回报。

-我们是否已经进入了更高的抽象水平? -它从未停止过移动。-随着对更多内核的需求,在诸如ARM RISC CPU,更强大的嵌入式µC或MCU的一条指令中执行更多操作,带DDR4的智能RAM(默认情况下具有ECC)和带有优先级位的闪存(例如用于紧急存储器提取)的扇区。-CPU的发展和架构的变化将永远不会停止。 在此处输入图片说明

让我给你一个提示。请前往英特尔,AMD,TI或AD为工程师进行工作搜索,并查看工作说明。

-数十亿个晶体管的设计来自哪里? -它来自添加更多的64位硬件块。但是现在要发生纳米管故障,必须将思维方式从碳纳米管的自上而下的方法更改为碳纳米管的自下而上的方法,以使其起作用。

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

    -还有很多手动优化吗?

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

但是,实际上CPU的增长就像东京一样,不是一朝一夕的,而是现在有成千上万的人不断改善。我没有在大学学习如何设计。但是通过阅读并试图了解事物的工作原理,我能够很快地赶上行业。在我的前5年中,我在航空航天,核仪器设计,SCADA设计,过程监控,天线设计,自动气象站设计和调试,OCXO的PLL的VLF Rx,黑布兰特火箭的2路远程控制等方面拥有10年的经验。那只是我的第一份工作。我不知道该怎么办。

不必担心数十亿个晶体管,也不必担心学习什么或需要了解多少。只需跟随您的激情并在睡眠之间阅读贸易日记,就可以使工作看起来不那么环保,不再感觉像工作。

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

但是如何设计CPU必须从规格开始。 为什么要设计CPU并制定可衡量的基准,例如: -例如,每秒宏指令(MIPS)(比CPU时钟更重要);- 英特尔的Itanium芯片基于他们所谓的显式并行指令计算(EPIC)设计。 - 全美达的专利CPU设计,超长指令字代码变形微处理器(VLIWCMM)。他们在2006年起诉英特尔,并关闭了商店,并在2007以约2亿美元的价格和解

指标还有很多,但是从来没有将CPU的设计质量基于GHz速度(请参见神话)

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


6
“ Verilog”和“ VHDL”仅涉及所有这些幼稚但启发性的搜索问题。现实世界比您想象的要比数字模拟的要多得多。
Tony Stewart Sunnyskyguy EE75,2012年

您对任何地方的运算放大器电路都有解释吗?我所看到的只是一个级联的OTA,其余的就是电路Voodoo。
Cyber​​Men 2012年

3
哇。太糟糕了,这与问题几乎无关。
戴夫·特威德

3
我必须说这是一个非常有趣的阅读。从作家逐渐转向原来的问题,然后逐渐转向他,试图用数字和词汇吹动读者的头脑,然后提供一些自助,然后回想起他的小学生时代,只带一丝傲慢,最后感动抬头说:“它是如此复杂,以至于我无法在这里总结。” 简直美极了。
Ponkadoodle

尽管我的评论有些讽刺,但我希望您能放轻松一点。老实说,我很喜欢阅读。
Ponkadoodle

2

AMD的CPU设计概述

英特尔版本

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


我以前看过TomsHardware页面。但是,它说明了处理器的制造方式,而不是它们的设计方式
stevenvh 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.