教你彻底搞懂ARM Cortex-A75 CPU的数字后端实现报告

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

下图为 ARM 公司 release 的 Cortex-A75 CPU 性能报告。今天吾爱 IC 社区的小编将从数字后端设计实现的角度,带领各位彻底看懂这份报告。

第一行为 RTL 集成配置的信息部分。设计中使用了一级缓存 DCache 64KB,一级缓存 Icache 64KB,二级缓存大小为 256KB,并集成了 Crypto 加密模块,NEON 和浮点运算单元 FP。一般情况下,一级缓存放置在 cpu core 中,二级缓存放置在 Non-Cpu 模块中。在 Non-CPU 模块中,有个非常大的模块,它被称之为 SCU(Snooping Control Unit)。

这些配置直接影响了最后芯片实现的面积大小。在满足设计要求的同时需要尽量减少一级二级缓存的大小,这样可以显著减少芯片的面积。该图中的数据是 ARM 公司为了推广他们的处理器,简单做一个数字后端实现的数据报告,所以在 16nm 工艺及以下的实际应用场景中,L1 和 L2 的大小可能远远大于图中所列的数值。

第二行为数字后端实现后的频率,3.1GHz @TT/1.00v/85c/typical。这一项简明扼要指出这款 cpu 在 TT85 度,电压为 1.0v 条件下(某个特定 PVT),芯片可以最高跑到 3.1GHz 的频率。为何要选用 TT85c 这个 corner 呢?频率可以跑得更高,可以用来吹牛,推广市场呗!实际项目中虽然也 checktt85c 下的 setup,但往往仅仅用来分析 power,并不是需要 timing signoff 的 corner。

我们知道,在一个晶圆 wafer 上,不可能每个点的电子漂移速度都一样,而电压,温度不同,它们的特性也会不同,我们把它们分类,就有了 PVT(Process, Voltage, Temperature)。下图为摘自静态时序分析(STA)红宝书的一个图表,(a)图原书存在错误,小编已经用红色标注出来了。

第三行为 A75 core 的功耗信息部分。前面那部分为静态漏电功耗 leakage,大小为 70mw。后面那部分为动态功耗(Dynamic Power), 大小为 270mw/GHz。其实这样写功耗信息,个人觉得不够严谨。因为功耗分析时,需要指定工作场景,你所用的 pattern 是什么。

通常情况,我们在分析 CPU 动态功耗的时候,采用两种常见的模式,一种是 Dhrystone,另外一种是 Max Power。Dhrystone 是一个比较古老的跑分程序,基本上是在做字符串拷贝,比较容易被软件编译器和硬件优化。但是它有个好处,就是程序很小,数据量也少,可以只运行在一级缓存,这样二级缓存和其他电路只存在漏电。

Max Power 则是一个最大功耗模式,仿真时让大部分逻辑都处于高翻转状态,从而获得一个最高的工作功耗。这种模式显然会过于悲观,因为实际应用场景,很难出现这种场景。一般这种模式可以用来评估在做恶劣的情况下芯片的功耗大小。

第四行为 A75 CORE 的面积信息部分,其大小为 1.729mm2。这里需要指出的是,在 28nm 及以上工艺时,我们谈芯片面积时,务必指出面积大小为 pre-shrinked 或者为 post-shrinked 的。这一项的大小直接影响了芯片的成本,决定了芯片的市场竞争力。

第五行为数字后端实现的工艺,本设计 A75 采用的是台积电TSMC16nm的工艺。TSMC16 nm 又分为很多小节点,比如 FFLL+,FFC 等。如何选择一个适合自己公司产品的工艺节点非常关键,因为它涉及到芯片的性能,功耗,面积等方面的 tradeoff。

第六行和第七行指出本设计采用的是台积电 TSMC16 nm 工艺, Metal Stack 为 11m_2xa1xd3xe2y2r_utrdl 9Track library(总共 11 层金属层)来进行数字后端实现的。Foundary 在提供的 design manual 中都对所有的 metal stack 进行了详细的介绍,在采用一个新工艺节点时,各位数字后端工程师务必要认真查阅相关文档,比如 design manual,design guidline 或者 implementation guidline。

第八行指出在数字后端实现(P&R)时,设置的 route layer 范围,从 M2 到 M9。那么最顶上的两层金属层用来干啥了呢?很显然用于规划我们的 power。为何 M1 不能用于绕线呢?老铁们你们知道原因不?

第九行为设计实现所用不同阈值 VT 的 library。

第十行指出设计所采用的是 channel length 为 16 的 c16 ulvt(Ultra Low Voltage Threshold)。这里需要指出的是采用 ulvt 虽然可以使得 timing 更好,跑得更快,但是会导致 leakage 特别大,需要谨慎使用。这里还指出这个 A75 CORE 的实现中使用了 ARM 的 POP library。所谓的 POP library 就是指 ARM 为了满足部分客户高性能需求而定制的一套高速 library。

第十一行至第十二行指出设计实现选用了三种不同的 VT,分别为 ULVT,LVT,SVT。用来优化时序和功耗用了三种不同 channel length 的 library cell。

最后一行指出本设计采用的是单一电压,单独供电的情况。

另外,根据小编多年与 ARM 打交道的经验来看,官方提供的数据并不一定是可靠的,所有的数据只能作为参考,而非比较的标准。这里简单指出以下几点。

  • Design 的 margin

比如 PT signoff 时,setup 和 hold 的 uncertainty,derate 设置值分别是多少。这些值会直接影响到芯片的各项指标,如面积,性能,功耗等。

  • Design 的数据是否已经 fix hold

很多时候 ARM 在公布数据时,往往自己只做到 PR 阶段,并没有进行 hold fix。试问这样的数据能用来做比较吗?

  • Design 是否 routeable

如果 ARM 公司发布的数据是基于一个存在很多 Physical DRC,特别是很多 short 时,那么他们可能提供了一个很漂亮的数据,但是真正物理实现时可能很难做到。

  • Design 实现的物理条件

ARM 一般在做模块 hardening 时,往往都是选用最舒服,最易于实现的形状(boundary)来进行设计评估的。特别是 CPU 这种模块,形状的差异性可能能带来较大的性能差异。但是对于 ARM 公司来讲,他们也只能是做一个比较规整的形状,为客户提供一套标准的 reference。这个我觉得倒是合理的。

对于数字后端工程师来讲,每当实现一个模块时都需要做好各种数据的记录,整理和归纳,并以表格的形式保存下来。我相信大家做的实现数据报告一定会比今天展示的这个报告更为详尽,更为严谨。要能做到老板一看你的图表就知道 design 的实现情况。

最后吾爱 IC 社区的小编想传达一个观点:在数据面前,数字后端工程师需要时刻保持一种怀疑的态度,同时还需要自己去不断实践。

小编知识星球简介:

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程(已经发布)

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现(已经发布)

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程(准备中)

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期在星球布置作业题(星球已经支持布置作业功能)

在这里,各位可以就公众号推文的内容或者实际项目中遇到的难题提问,小编会在 24 小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有五十四星球成员,感谢这五十四童鞋的支持!欢迎各位铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。 (星球的门槛将会越来越高,有需求的朋友趁早上车)****

相关文章推荐

数字后端设计实现中 route 阶段的那些事

低功耗设计实现中 secondary power pin 的连接方法汇总

数字后端面试问答 No.22-24(每日三问)

免费领取数字 IC 后端实现培训教程,再赠送一箱水蜜桃!

项目后期踩到这些坑,原来可以这么简单处理!(数字后端实现救火篇)

想要彻底掌握 placement 各种技巧,这个一定可以如你所愿!

IC 自媒体访谈:吾爱 IC 社区

教你轻松玩转天线效应 (Process Antenna Effect)

深度揭秘异步复位同步释放原理

数字后端面试问答 No.19-21(每日三问)

这些低功耗设计实现经验,你真的懂了吗?

Lockup latch 的用法,看这个就够了!

深度解析 Create_clock 与 Create_generated_clock 的区别

盘点数字后端设计实现用到的各种文件

clock jitter 是否对 hold time 有影响?(文末有福利)

为什么时钟树上要用 clock inverter(min pulse width check)

LVS 就是这么简单!(数字后端物理验证篇)

揭秘为何 net delay 是负值(数字后端实现时序篇)

PBA(Path Base Analysis)想说爱你不容易(静态时序分析基础篇)

一网打尽时钟树综合 Clock Skew

数字后端设计实现之时钟树综合实践篇

【惊呆了!】你居然还在用 flatten 方式进行 timing signoff

数字后端面试问答 No.16-18

合理的时钟结构能够加速 Timing 收敛(时钟树综合中级篇)

数字后端面试问答 No.13-15(每日三问)

【机密】从此没有难做的 floorplan(数字后端设计实现 floorplan 篇)

数字后端面试问答 No.10-12(每日三问)

数字后端面试问题 No.7-9(每日三问)

听说 Latch 可以高效修 hold 违例(Timing borrowing 及其应用)

15 天零基础入门到精通 python - 最全的视频教程

数字后端面试问答 No.4-6(每日三问)

IR Drop 分析之 Redhawk 分析流程

CRPR 能补偿 crosstalk 吗?

原来电路最高工作频率是这么算出来的(STA 基础篇)

数字后端面试问答 No.1-3(每日三问)

秒杀数字后端实现中 clock gating 使能端 setup violation 问题

教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性

数字芯片设计实现中修复 setup 违例的方法汇总

数字 IC 设计中 ECO 的那些事,其实并不是事!

Scan chain reordering 怎么用你知道吗?

如何评价数字后端设计中 floorplan 的好坏?

数字后端实现时 congestion 比较严重,你 hold 得住吗?

数字后端实现 place 过程进阶

Final netlist release 前,你应该做好哪些工作?

基于 Physical Aware 的动态功耗优化实现方案

深入浅出讲透 set_multicycle_path,从此彻底掌握它

【大师必备】最全的数字 IC 设计经典书籍电子版下载

你与数字后端大神的差距在这里,快来瞧瞧!

数字后端实现时 congestion 比较严重,你 hold 得住吗?

时钟树综合(clock tree synthesis)基础篇

【福利】数字 IC 后端各种 Userguide 下载

好了,今天的码字就到这里了,原创不容易,喜欢的可以帮忙转发和赞赏,你的转发和赞赏是我不断更新文章的动力。小编在此先谢过!与此同时,吾爱 IC 社区(52-ic.com)也正式上线了。吾爱 IC 社区(52-ic.com)是一个专业交流和分享数字 IC 设计与实现技术与经验的 IC 社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。

https://mp.weixin.qq.com/s/WivC1B91G4QTKC538iib-A

教你彻底搞懂ARM Cortex-A75 CPU的数字后端实现报告相关推荐

  1. 一文搞懂 | ARM微架构的变化

    一.引言 伴随智能手机的高速发展,移动处理器架构设计厂商ARM公司几乎每年都更新CPU的核心架构.从2018至2020年,ARM公司基于ARMv8架构推出了三代Cortex-A76.Cortex-A7 ...

  2. 一文搞懂 | ARM MMU

    MMU概念介绍 MMU分为两个部分: TLB maintenance 和 address translation MMU的作用,主要是完成地址的翻译,无论是main-memory地址(DDR地址),还 ...

  3. ES6学习笔记(四):教你轻松搞懂ES6的新增语法

    文章目录 let const let.const.var的区别 解构赋值 数组解构 对象解构 箭头函数 剩余参数 总结 let ES6新增的用于声明变量的关键字 let声明的变量只在所处于的块级有效 ...

  4. 20分钟教你搞懂Git!

    Git 是最流行的版本管理工具,也是程序员必备的技能之一.本文就来教你 20 分钟搞懂 Git! 以下为译文: 尽管每天你都会用到Git,但也有可能搞不懂它的工作原理.为什么Git可以管理版本?基本命 ...

  5. 五个小例子教你搞懂 JavaScript 作用域问题

    原文:五个小例子教你搞懂 JavaScript 作用域问题 众所周知,JavaScript 的作用域和其他传统语言(类C)差别比较大,掌握并熟练运用JavaScript 的作用域知识,不仅有利于我们阅 ...

  6. 20 分钟教你搞懂 Git!

    Git 是最流行的版本管理工具,也是程序员必备的技能之一.本文就来教你 20 分钟搞懂 Git! 以下为译文: 尽管每天你都会用到Git,但也有可能搞不懂它的工作原理.为什么Git可以管理版本?基本命 ...

  7. 计算机话筒技术指标,手把手教你搞懂麦克风的技术指标

    手把手教你搞懂麦克风的技术指标 2015/12/24 11:00:32      来源:艾维音响网 [提要]当你阅读麦克风技术指标的时候,重要的是你要知道怎么去理解它们.在大部分的状况下,技术指标可以 ...

  8. sip 时序图_时序图怎么看_教你如何看懂时序图 - 什么是时序图_时序图怎么看_教你如何看懂时序图...

    时序图怎么看_教你如何看懂时序图 操作时序永远使用是任何一片IC芯片的最主要的内容.一个芯片的所有使用细节都会在它的官方器件手册上包含.所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上 ...

  9. 干货丨先搞懂这八大基础概念,再谈机器学习入门

    翻译 | AI科技大本营 参与 | 林椿眄 准备好开始AI了吗?可能你已经开始了在机器学习领域的实践学习,但是依然想要扩展你的知识并进一步了解那些你听过却没有时间了解的话题. 这些机器学习的专业术语能 ...

最新文章

  1. Python 骚操作:微信远程控制电脑
  2. OpenShift — 核心业务流程
  3. 线性回归原理和实现基本认识(转载)
  4. MFC中绘制动态曲线
  5. 创建型模式、结构型模式和行为型模式_设计模式之创建型模式
  6. 【转】什么是线程安全和线程不安全
  7. Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)
  8. 快捷键 自动调整顺序_关于代码自动补全快捷键无法使用的新解决方案
  9. 正则表达式验证手机号,正则表达式验证邮箱号,正则表达式验证QQ号,正则表达式验证微信号等
  10. c语言大作业:员工工资管理系统
  11. Java获取文本文件编码
  12. 利用计算机Tracert,计算机网络 Tracert 命令
  13. 实践php检测图片木马
  14. 智慧城市大屏可视化(Axure高保真原型)
  15. .NET Core中Expression<Func<T,bool>>简洁明了
  16. java计算机毕业设计Internet快递柜管理系统(附源码、数据库)
  17. lt;=gt;与lt;gt;的区别
  18. CSDN联合安恒信息 共同发布安全开发工程师能力标准
  19. java中 数组声明,java数组声明格式
  20. 七夕送什么给女朋友好?2022年送女朋友的七夕礼物推荐

热门文章

  1. Java 打印HelloKitty
  2. SQl语句的效率问题
  3. 云视通2.0本地开发新方案
  4. bluestack模拟器测试APK,使用obb文件资源解压
  5. 按图幅号批量裁剪和命名影像操作流程
  6. Cesium与Intel Geospatial合作,为企业提供地理空间解决方案
  7. 【Linux】之 VT100 终端控制码
  8. Py-plt:Plot如何控制坐标轴,图例和注释画出精美的图
  9. [实用]推荐一些非常棒的前端网站
  10. MPLS WPN实验