从架构到芯片
架构
计算机体系结构
体系结构领域圣经(Computer Architecture - A Quantitative Approach 5E)的一些关于Architecture的解释:
“Several years ago, the term computer architecture often referred only to instruction set design. Other aspects of computer design were called implementation, often insinuating that implementation is uninteresting or less challenging.”
意思是多年以前,体系结构主要指指令集,也就是ISA的设计,而其他的层面都叫做“实现”,那时候认为ISA是最难设计的。然后,文中指出了以前的观点的错误(过时):
“We believe this view is incorrect. The architect’s or designer’s job is much more than instruction set design, and the technical hurdles in the other aspects of the project are likely more challenging than those encountered in instruction set design.”,
这段话表达的意思是设计和实现的难度是远远大于ISA的。知道CISC和RISC的都会明白ISA。我们主要关注书中所说的“实现”,也就是implementation:
“The implementation of a computer has two components: organization and hardware.”
也就是implementation主要包括组织架构和硬件两部分。
何为组织架构:
“The term microarchitecture is also used instead of organization. For example, two processors with the same instruction set architectures but different organizations are the AMD Opteron andthe Intel Core i7. Both processors implement the x86 instruction set, but they have very different pipeline and cache organizations.”
组织结构也就是我们常提前的微架构,文中还举了intel和amd的例子让读者加深理解。
何为hardware:
“Hardware refers to the specifics of a computer, including the detailed logic design and the packaging technology of the computer.”
主要涉及到详细的逻辑设计以及封装工艺等等。
“the word architecture covers all three aspects of computer design—instruction set architecture, organization or microarchitecture, andhardware.”
***所以显而易见,计算机体系结构 = ISA(RISC/CISC) + 微架构 + 硬件 ***
其实现在芯片设计的整个流程也就是按照这个思路来走的,选好了ISA,然后就行逻辑上的设计(最常见的ARM的IP软核就是这个层面,就是verilog/vhdl写的rtl代码),当然你要做soc的话就会逻辑设计过程会和验证交叉耦合的,然后rtl代码freeze后会物理设计就会大张旗鼓的进行了,再之后便是tape out 流片了。
或许,现在CPU的设计微架构的实现才是难点:ISA都有,但没见过会把微架构详细公开的,有了详细的微架构,就可以直接写RTL了;微架构的实现直接影响性能,面积和功耗这些都是需要各种折衷的,千差万别。
这里所说的“微架构的实现”,可能就是说的ARM cortex-Ax的实现,也就是高通自己研制的Scorpion、Krait、Kryo这些东西,这些东西的实现涉及到流水线的设计,流水的取指、译码等的宽度,是否乱序,乱序的程度等。
比较苹果A6、A7不同的自研架构之间比较显眼的区别就是流水线参数的不同:发射宽度、重排序缓冲区的大小等的不同。
ARM架构的授权方式
-
架构/指令集层级授权
指可以对ARM架构进行大幅度改造,甚至可以对ARM指令集进行扩展或缩减。
苹果就是一个很好的例子,在使用ARMv7-A架构基础上,扩展出了自己的苹果swift架构(这儿的swift是类似于A53这样的核,因为其实指令集是很简单的,但是由指令集造出来核是很麻烦的)。 -
内核层级授权(ip核授权)
指可以以一个内核为基础然后在加上自己的外设,比如USART GPIO SPI ADC,最后形成了自己的MCU。
这些很多,比如三星、德州仪器(TI)、博通、飞思卡尔、富士通以及Calxeda等等。IP核分为行为(Behavior)、结构(Structure)和物理(Physical)三级不同程度的设计,对应描述功能的不同分为三类,即软核(Soft IP Core)、完成结构描述的固核(Firm IP Core)和基于物理描述并经过工艺验证的硬核(Hard IP Core)。
2.1 软核
软核就是熟悉的RTL代码。是用硬件描述语言实现对功能模块进行描述(比如用VHDL编写的一个触发器,是文本形式),不包含任何物理实现信息。2.2 固核
固核就是指门级电路网表。除了实现功能模块的程序代码之外,还包括门级电路综合和时序仿真等设计环节。网表:不是HDL语言里面的东西,而是综合工具里面的东西。将HDL代码变为可用的电路过程如下:
- xilinx的步骤synphysize(综合) translate(注译),map(映射),和place and route(布局布线)
- altera的步骤为complie(编译)synphysize(综合) fitter(布线)
综合以后生成的就为网表文件。这个文件只是一个电路的雏形,这步完成以后你可以看到RTL(寄存器传输级)电路。也可以看到technology 电路。两者区别等你看到就很快明白。这两张图片是对网表的一种直观的显示。也就是综合器最后综合出了你的逻辑电路。放在网表文件中。注意,到网表层时,你的HDL语言已经无用,这个时候需要用综合器生成的网表文件来做下面的步骤。
2.3 硬核
硬核就是指经过验证的设计版图。基于物理描述,并且已经通过工艺验证可行的,性能有保证。是以电路物理结构掩模版图和全套工艺文件的形式提供给芯片生产厂家的。 -
使用层级授权
要想使用一款处理器,得到使用层级的授权是最基本的,这就意味着你只能拿别人提供的定义好的ip来嵌入在你的设计中,不能更改人家的ip,也不能借助人家的ip创造自己的基于该ip的封装产品。
作为最低的授权等级,拥有使用授权的用户只能购买已经封装好的ARM处理器核心,而如果想要实现更多功能和特性,则只能通过增加封装之外的DSP核心的形式来实现(当然,也可以通过对芯片的再封装方法来实现)。由于担心对知识产权保护不力,ARM对很多中国背景的企业均采取这一级别的授权。
ARM还是以软核为主。直接拿到RTL,有了RTL代码就有了微架构的实现方式。所以给你RTL就相当于给了你ARM cortex-Ax的ip核心。所以说RTL的授权应该就是cortex-Ax这些核心的授权,虽然给你RTL,但是你不能拿ARM的RTL直接改然后变成自己的微架构,这样是不允许的。给了你RTL你所能改动的东西就是cache的大小,核心的多少配置。如果想弄自己的微架构,只有买指令集授权,然后一点点的慢慢做。
ARM cortex-A72系列的微架构:
![cortex-A72microarchitecture.jpg][1]
[1]: https://lxy98.cn/usr/uploads/2021/04/2705904838.jpg
15+级乱序流水线,128位预取,3宽度解码,每时钟周期可分派最多5个微操,满足最多7个发射队列,进入8个执行流水线。
芯片制造
无论是直接“硬核授权”还是基于其他授权方式然后自行设计出“设计版图”之后,就可以进行芯片的制造了,请看 转载1-芯片设计流程。

浙公网安备 33010602011771号