这15项科技成果世界领先!华为芯片、小程序上榜
(央视记者 曲羿 摄)
11月7日下午,第五届世界互联网大会“世界互联网领先科技成果发布活动”在乌镇互联网国际会展中心举行。大会共现场发布了15项世界互联网领域领先的“黑科技”,引得观众阵阵惊叹。
15项世界互联网领先科技成果
(按发布先后顺序)
1、微信小程序商业模式创新
微信小程序是腾讯公司基于微信打造的一种互联网应用形态。它是一种无需下载、不用安装的应用,开发者无需针对lOS和Android两个系统分别适配,有助于削减企业开发原生APP的成本。特别是对于资金有限的中小企业而言,开发者仅需将产品核心功能抽出接入小程序,着重从用户角度考虑如何提升用户体验,基于微信平台实现盈利。
据测算,2017年小程序带动就业达104万,其中直接就业达38万。通过小程序,赋予每个微信个体以新型生产力,推动数字经济创新发展,使人类的生活更美好。
2、华为昇腾310芯片
Ascend 310是一款高能效、灵活可编程的人工智能处理器,突破人工智能芯片设计的功耗、算力等约束,大幅提升了能效比,为平安城市、自动驾驶、云业务和IT智能、智能制造、机器人等应用场景提供全新的解决方案,加速Al向各产业赋能。
3、蚂蚁金服自主可控的金融级商用区块链平台
蚂蚁金服自主研发的金融级区块链平台是一项可在多个社会和商业应用场景中,为各类数字服务提供基于技术的信任机制。
蚂蚁金服区块链具备高性能、高可靠和高安全的特点:
支持秒级确认;使用高效的并行共识算法,保障了区块链平台的高性能;提供全面的数据隐私保护;支持友好编程模式的图灵完备编程语言以及高性能执行效率的原生合约语言;具备持续稳定长时间运行的高可靠性;解决了近万公里距离带来的长通讯时延的技术挑战。蚂蚁区块链已有多个生产级落地应用,将领先的技术运用到了民生、商业、金融等各个领域。
今年8月,在政府的指导下,在浙江杭州、金华、台州众多医院推出的基于区块链电子票据,两周时间60万张票据,极大方便了百姓看病和后续的报销;今年9月,蚂蚁金服和杭州互联网法院、钱塘公证处合作,正式推出了全球第一家被法院认可的司法可信存证链,未来可以大幅提高纠纷处理的效率。
4、破解信息孤岛的接口高效互操作技术与燕云DaaS系统
信息技术经过20多年的网络化发展,形成了数百万计的信息孤岛,其中也蕴藏了富含价值的海量数据。如今,打破信息孤岛已成为大数据发展的重大需求,成为了制约大数据价值链上下游的“卡脖子”技术。
北京大学在十余年系统软件研究的基础上,发明了云-端融合系统的资源反射机制与高效互操作技术。该技术可以通过对系统客户端的外部监测与控制来实现系统业务数据和功能的高效互操作,消除了系统源码、数据库表、后台权限、原开发团队等依赖,信息孤岛开放效率平均提升2个数量级。
这项技术将应用于工业大数据领域,在能源、纺织、食品等多个行业,成为支撑我国大数据产业生态发展的一项共性关键技术。
5、Amazon SageMaker
Amazon SageMaker是一个帮助客户创建并训练机器学习的服务平台,可以帮助开发人员和数据科学家快速轻松地构建、训练和部署任何规模的机器学习模型。它消除了阻碍开发人员成功完成每个步骤的复杂性,让开发者可以在云端构建自己的机器学习模型。
虽然机器学习功能强大,但如果没有深厚的专业知识,就很难开始第一步的开发。SageMaker旨在为客户提供各种预建开发环境,让日常开发人员和科学家更容易建立自己的定制机器学习系统。
6、360安全大脑-分布式智能网络安全防御系统
360推出的“安全大脑”综合利用人工智能、大数据、云计算、传感器、区块链等新技术,大幅提高网络安全检测和响应的效率与能力,以保护关键基础设施安全、社会安全、城市安全以及个人安全。
目前,360“安全大脑”已先后应用于网络态势感知、智能病毒木马查杀、Al辅助决策等场景。未来360还将建立基于“安全大脑” 的开放生态,赋能大安全时代的各行各业。
7、智能供应链技术服务平台
这是京东构建的一个以智能选品、智能库存、智能定价功能为核心的智能供应链技术服务平台。
该平台大量应用机器学习、深度学习、区块链技术等新技术,同时将AI、云计算、大数据能力与垂直领域知识深度结合,形成面向商品选品、商品定价、需求预测、网络规划、商品防伪追溯等一系列的供应链决策管理、运营执行、绩效监管与服务应用等。
8、Apollo自动驾驶开放平台
Apollo是一个开放的、完整的、安全的自动驾驶开源平台。平台已经有超过230000行开源代码,100多个自动驾驶产品研发合作项目。
目前,Apollo推出三个自动驾驶量产解决方案——自主泊车、无人作业小车、自动接驳巴士。其中,无人作业小车的量产解决方案已落地,未来的Apollo自动接驳巴士将发往北京、雄安、深圳、平潭、武汉、日本东京等地开展商业化运营。
9、Arm China Al Platform zhouyi(周易)
“周易”是安谋中国自主研发且得到全球生态系统支持的AI平台解决方案,其主要技术特点及创新包括:
能够在各种不同类型的边缘设备上实现人工智能;支持所有现有的深度神经网络,能够在边缘设备上以非常小的功耗实现深度学习计算;全栈式解决方案,包括软件框架、硬件、工具链、参考算法和应用;第一款能够为人工智能算法、代码和数据提供安全保护的人工智能IP产品。“周易”作为一个完整的人工智能平台解决方案,赋能所有芯片合作伙伴为各种应用设计和制造AI芯片,使整个行业创造万亿级的价值,助力打造“万亿智能物联”。
10、特斯拉智能售后服务
区别于传统车企以4S店为实体中心开展维保,特斯拉构建了以客户为中心的智能售后服务体系,提供无缝衔接的线上线下服务,其中就包括虚拟服务中心。该中心可针对车辆故障实现远程维修,或进行优化的线下服务预约和资源调拔,降低了车辆“不能使用”的时间和维护成本。
虚拟服务中心是建立在云端的、集中化的技术支持服务系统。其核心在于人工和自动相结合的联网远程诊断技术。分布全球的人工诊断团队与总部实时协作,并利用算法建立并完善自动诊断系统,以提升诊断准确性和效率。
在接到客户需求后,工程师借助诊断系统远程分析判断,推荐进行线上修复或者线下维修。结束后自动推送客户回访,维修记录上传至车辆全生命周期档案,同时进入大数据系统维护,为后期的智能维保提示系统提供支撑,并帮助改进未来产品的设计。
11、supET工业互联网平台
supET工业互联网平台是为制造业企业提供一站式的数字化、网络化、智能化服务,促进工业互联网与消费互联网融通发展,推动新一代信息技术与实体经济深度融合。
supET平台具有三大创新点:
采用“平台+生态”的开放协同发展模式;应用人工智能技术对工业数据进行智能化分析,并利用分析结果优化工业生产制造过程,帮助企业提质降本增效,挖掘了数据带来的新价值空间;与阿里巴巴淘工厂平台实现订单对接,打通工业互联网与消费互联网,为实现按需制造摸索了宝贵经验。目前,supET平台的工业Paas能力已经在光伏、电力、石化等十多个行业获得应用,系统已服务上万家企业。
12、全球首款全集成5G新空口毫米波及6GHz以下射频模组
由于面临诸多技术和设计挑战,毫米波信号迄今仍未被应用于移动无线通信之中。这些挑战几乎涵盖终端工程的方方面面,包括材料、外形尺寸、工业设计散热和辐射功率的监管要求等。鉴于此,移动行业中很多人都认为毫米波在移动终端和网络中的应用是不切实际且不可实现的。
高通在5G领域的前瞻性投入,得以为行业提供曾被认为无法实现的移动毫米波解决方案,以及全集成的6GHz以下射频解决方案。
目前,此类从调制解调器到射频且跨毫米波和6GHz以下频段的解决方案正使移动5G网络和终端——尤其是智能手机准备就绪,为实现大规模商用提供支持。
13、CPU硬件安全动态监测管控技术
CPU是现代信息系统的运算核心,其硬件安全是信息系统安全的首要环节。由于CPU芯片的结构复杂、规模庞大、设计生产流程环节众多,其面临的硬件漏洞、恶意硬件植入及后门利用等威胁不容忽视。
2015年,清华大学微电子所的硬件安全团队提出“CPU硬件安全动态监测管控技术”。该技术无需硬件威胁的特征等先验知识,对于信息泄露、篡改等为代表的恶意硬件行为以及漏洞、后门、硬件木马均能够有效检测,并控制其危害。
2016年起,清华大学携手中国电子旗下澜起科技,将“CPU硬件安全动态监测管控技术”成功应用于X86服务器芯片,推出了面向主流高性能服务器市场的津逮CPU芯片以及服务器平台。
14、Azure Sphere物联网安全解决方案
随着互联网的长足发展和进步,未来十年将进入万物互联时代。每一部电器设备,无论是儿童玩具、家用电器,还是工业设备,都将实现广泛的互联。
然而,产业界普遍低估了这些联网设备最高水平的安全要求,即使是最普通的设备,一旦接入到互联网,都可能是危险的。比如,一枚玩具可能成为密探,一部家电可能自毁,一套技术设备可能失灵。
Azure Sphere是一款打造高效安全的、连接互联网的微处理器设备。它包含“认证微处理器”、“操作系统”和“安全服务”三大组件:
认证微处理器用于提供连接和可靠的硬件信任根;操作系统用于建立物联网可信体验平台;安全服务用于保护每台 Azure Sphere设备。它们协力配合,满足高度安全设备的需要。
15、小米面向智能家居的人工智能开放平台
小米人工智能开放平台,是一个以智能家居需求场景为出发点,深度整合人工智能和物联网能力,为用户、软硬件厂商和个人开发者提供智能场景及软硬件生态服务的开放创新平台。
小米人工智能开放平台以“云+端”的形式,为软硬件企业和开发者提供业内领先的AI能力与服务,通过小米IoT(物联网)开放平台,开发者可以轻松实现智能硬件间彼此的互联互通,为用户提供优质的交互体验。
监制/唐怡 主编/李浙 张天宇
记者/李欣蔓 林侃 郭津 仲夏
编辑/王元 王烁 姜萍 曲羿
©央视新闻
科技改变生活!
如何设计和生产CPU?这篇文章说得最详细!半导体行业观察
来源:本文由公众号半导体行业观察(ID:icbank)翻译自「techspot」,作者 William Gayde,谢谢。
我们都认为CPU是计算机的“大脑”,但这到底是什么意思呢?用数十亿个晶体管让你的计算机工作到底是怎么回事?在这篇文章中,我们将专注于计算机硬件设计,涵盖计算机工作原理的来龙去脉。
文章将涵盖计算机架构、处理器电路设计、超大规模集成电路(VLSI)、芯片制造和未来的计算趋势。如果你一直对处理器内部工作原理的细节感兴趣,请继续关注,因为这就是你想要了解的内容。
CPU的原理
我们将从一个非常高的层次开始,了解处理器的功能,以及各个组成部分在功能设计中是如何组合在一起的。这包括处理器内核、内存层次结构、分支预测等等。首先,我们需要知道CPU的基本定义。最简单的解释是CPU遵循一组指令,对一组输入执行某些操作。例如,可能是从内存中读取一个值,然后将其加上另一个值,最后将结果存储在不同位置的内存中。如果前一次计算的结果大于零,那么也可能是更复杂的事情,如将两个数字相除。
当你想要运行一个像操作系统或游戏这样的程序时,程序本身就是CPU要执行的一系列指令。这些指令从内存中加载,并在一个简单的处理器上逐一执行,直到程序完成。当软件开发人员用高级语言(如C++或Python)编写程序时,处理器无法理解。它只能理解1和0,所以我们需要一种方式来表示这种格式的代码。
程序被编译成一组称为汇编语言的低级指令,作为指令集体系结构(ISA)的一部分。这是CPU用来理解和执行的一组指令。一些最常见的ISA是x86、MIPS、ARM、RISC-V和PowerPC。就像用C++编写函数的语法与用Python编写相同函数的语法不同一样,每种ISA也有不同的语法。
这些ISA可以分为两大类:固定长度和可变长度。RISC-V ISA使用固定长度的指令,这意味着每条指令中一定数量的预定义位决定了它是哪种类型的指令。这与x86不同,x86使用可变长度指令。在x86中,指令可以按照不同的方式进行编码,并且针对不同的部分使用不同的位数。由于这种复杂性,x86 CPU中的指令解码器通常是整个设计中最复杂的部分。
固定长度的指令允许更容易的解码,因为它们有规则的结构,但限制了ISA可以支持的总指令数。虽然普通版本的RISC-V架构有大约100条指令,而且是开源的,但是x86是专有的,没有人知道究竟有多少条指令。人们通常认为有几千条x86指令,但确切的数字并不公开。 尽管ISA之间存在差异,但它们都具有基本相同的核心功能。
一些RISC-V指令的示例。右边的操作码是7位,它决定了指令的类型。每条指令还包含要使用的寄存器和要执行的功能的位。这就是汇编指令如何被分解成二进制以便CPU理解。
现在我们准备好打开计算机,开始运行程序。指令的执行实际上有几个基本部分,这些部分通过处理器的许多阶段分解。
第一步是将指令从内存提取到CPU中开始执行。第二步对指令进行解码,以便CPU能够确定它是什么类型的指令。有很多类型,包括算术指令、分支指令和内存指令。一旦CPU知道它正在执行的指令类型,就从CPU中的存储器或内部寄存器收集指令的操作数。如果你想把数字A和数字B相加,在你真正知道A和B的值之前不能进行相加。大多数现代处理器都是64位的,这意味着每个数据值的大小都是64位。
64位是指CPU寄存器、数据路径,以及内存地址的宽度。对于普通用户来说,这意味着一台计算机一次可以处理多少信息,最好与较小的32位体系结构相比较来理解。64位体系结构一次处理的信息位数是32位的两倍。
在CPU有了指令的操作数之后,就移动到执行阶段,在此阶段对输入执行操作。可能是将数字相加,对数字执行逻辑操作,或者只是传递数字而不对其进行修改。计算结果后,可能需要访问内存来存储结果,或者CPU可以将值保存在其内部寄存器中。存储结果后,CPU将更新各个元素的状态,然后转到下一条指令。
当然,这种描述是极大的简化,大多数现代处理器将把这几个阶段分解为20个或更多更小的阶段,以提高效率。这意味着尽管处理器将在每个周期中启动和完成多个指令,但是任何一条指令从开始到结束可能需要20个或更多的周期。这个模型通常被称为流水线,因为它需要一段时间来填充流水线,让液体通过流水线,但是一旦流水线满了,就会得到一个恒定的输出。
4级流水线示例。彩色方框表示相互独立的指令。(图片来源:维基百科)
指令经过的整个周期是一个非常精心编排的过程,但并非所有指令都可以同时完成。例如,加法非常快,而除法或从内存加载可能需要数百个周期。大多数现代处理器都是无序执行的,而不是在一条缓慢的指令完成时使整个处理器停止运行。这意味着处理器将确定在给定时间执行哪条指令最有益,并缓冲其他未准备好的指令。如果当前指令尚未就绪,则处理器可以在代码中向前跳转,以查看是否有其他指令准备就绪。
除了无序执行之外,典型的现代处理器还采用了所谓的超标量体系结构(superscalar architecture)。这意味着在任何时候,处理器都在流水线的每个阶段同时执行许多指令。它可能还在等待数百条指令开始执行。为了能够一次执行许多指令,处理器将在每个流水线阶段中包含多个副本。如果处理器看到两条指令已经准备好执行,并且它们之间没有依赖关系,那么它将同时执行这两条指令,而不是等待它们分别完成。这种方法的一个常见实现称为同步多线程(SMT),也称为超线程。英特尔和AMD处理器目前支持双向SMT,而IBM已开发出支持多达八路SMT的芯片。
为了完成这种精心编排的执行,处理器除了基本核心之外还有许多额外的元素。在一个处理器中有数百个单独的模块,每个模块都有特定的用途,但我们将只简单介绍一下基本的功能。两个最大和最有益的是缓存和分支预测器。我们不会涉及重新排序缓冲区、寄存器别名表和保留站这些结构。
缓存的目的常常令人困惑,因为它们像RAM或SSD一样存储数据。缓存的不同之处在于它们的访问延迟和速度。尽管RAM非常快,但对于CPU来说,它的速度慢了几个数量级。RAM可能需要数百个周期才能对数据做出响应,处理器可能会陷入无事可做的境地。如果数据不在RAM中,则可能需要数万个周期才能访问SSD上的数据。没有缓存,我们的处理器就会陷入停顿。
处理器通常具有三级缓存,形成所谓的内存层次结构。L1缓存最小且速度最快,L2位于中间,L3是最大且最慢的缓存。在层次结构中的缓存之上是小型寄存器,在计算期间存储单个数据值。这些寄存器是系统中速度最快的存储设备。当编译器将高级程序转换成汇编语言时,它将确定使用这些寄存器的最佳方法。
当CPU从内存中请求数据时,它将首先检查该数据是否已经存储在L1缓存中。如果是,则可以在几个周期内快速访问数据。如果不存在,CPU将检查L2缓存并随后搜索L3缓存。缓存的实现方式通常对核心是透明的。核心只需要在指定的内存地址中请求一些数据,层次结构中的任何级别都将响应它。当我们进入内存层次结构的后续阶段时,大小和延迟通常会增加几个数量级。最后,如果CPU在任何缓存中都找不到它要查找的数据,那么它就会进入主内存(RAM)。
在典型的处理器上,每个核心将有两个L1缓存:一个用于数据缓存,一个用于指令缓存。L1缓存的总容量通常在100KB左右,大小可能因芯片和代际而异。每个核心通常也有一个L2缓存,尽管在某些体系结构中,它可能在两个核心之间共享。L2缓存通常为几百KB。最后,还有一个L3缓存在所有核心之间共享,大小为几十MB。
当处理器执行代码时,它最常用的指令和数据值将被缓存。这极大地加快了执行速度,因为处理器不需要不断地访问主存来获取所需的数据。在本系列的第2部分和第3部分中,我们将更多地讨论如何实现这些内存系统。
除了缓存之外,现代处理器的另一个关键组件是精确的分支预测器。分支指令类似于处理器的“if”语句。如果条件为真,将执行一组指令,如果条件为假,将执行另一组指令。例如,你可能想比较两个数字,如果它们相等,则执行一个函数,如果它们不同,则执行另一个函数。这些分支指令非常常见,大约占程序中所有指令的20%。
从表面上看,这些分支指令似乎没什么问题,但对于处理器来说,它们实际上非常具有挑战性。因为在任何时候,CPU可能同时执行10条或20条指令,所以知道要执行哪条指令是非常重要的。可能需要5个周期来确定当前指令是否为分支,另外需要10个周期才能确定条件是否为真。在此期间,处理器可能已经开始执行许多附加指令,甚至不知道这些指令是否是要执行的正确指令。
为了解决这个问题,所有现代高性能处理器都使用了一种称为“推测”( speculation)的技术。这意味着处理器将跟踪分支指令,并猜测是否将采用分支。如果预测是正确的,那么处理器已经开始执行后续指令,因此这将带来性能提升。如果预测不正确,那么处理器将停止执行,删除已经开始执行的所有错误指令,并从正确的位置重新开始。
这些分支预测器(branch predictors )是机器学习的一些早期形式,因为预测器在运行过程中学习分支的行为。如果预测错误太多,它就会开始学习正确的行为。几十年来对分支预测技术的研究已经使现代处理器的准确率超过90%。
虽然推测带来了巨大的性能提升,因为处理器可以执行准备好的指令,而不必在繁忙的指令上排队,但也暴露了安全漏洞。著名的幽灵攻击(Spectre attack)就是利用了分支预测和猜测中的漏洞。攻击者使用经特殊设计的代码来使处理器推测性地执行会泄漏内存值的代码。推测的某些方面必须重新设计,以确保数据不会泄露,这导致性能略有下降。
在过去的几十年里,现代处理器的体系结构已经取得了长足的进步。创新和巧妙的设计带来了更高的性能和对底层硬件的更好利用。不过,CPU制造商对其处理器中的技术非常保密,因此不可能确切知道其内部究竟发生了什么。话虽如此,计算机工作的基本原理在所有处理器上都是标准化的。英特尔可能会增加他们的秘密调整以提高缓存命中率,AMD可能会添加一个高级分支预测器,但他们都是完成相同的任务。
CPU设计过程
既然我们已经了解了处理器在高层次上的工作原理,现在是深入了解内部组件是如何设计的时候了。
你可能知道,处理器和其他大多数数字技术都是由晶体管构成的。思考晶体管的最简单方法是把它想象成有三个引脚的可控开关。当栅极打开时,电就可以通过晶体管。当栅极关闭时,电流不能流动。就像你墙上的电灯开关一样,但是要比电灯开关小得多,速度也快得多,而且可以用电来控制。
现代处理器中使用的晶体管主要有两种:PMOS和NMOS。NMOS晶体管在栅极充电或设置为高电平时允许电流流过,PMOS晶体管在栅极放电或设置为低电平时允许电流流过。通过将这些类型的晶体管以互补的方式组合起来,我们可以创建CMOS逻辑门。在本文中,我们不会详细讨论晶体管的工作原理,但我们将在本系列的第3部分中讨论它。
逻辑门是一种简单的设备,它接受输入,执行一些操作,并输出结果。例如,只有当且仅当门的所有输入都处于打开状态时,与门才会打开其输出。如果输入关闭,那么反相器或非门将打开其输出。我们可以将这两者结合起来,创建一个与非门。当且仅当所有输入都不打开时,它才打开其输出。还有其他具有不同逻辑功能的门,如或门、或非门、异或门和同或门。
下面我们可以看到两个基本的逻辑门是如何从晶体管开始设计的:一个反相器和一个与非门。在反相器中,顶部有一个PMOS晶体管连接到VDD,底部有一个NMOS晶体管连接到GND。PMOS晶体管的画法是一个小圆圈连接到栅极上。我们说过,PMOS器件在输入关闭时导通,NMOS器件在输入打开时导通,所以很容易看到输出信号总是与输入信号相反。再看看与非门,我们看到它需要四个晶体管,只要至少有一个输入是关的,输出就会打开。设计更先进的逻辑门和处理器内部其他电路也是这种过程——将晶体管连接成这样的简单网络。
由于组件就像逻辑门一样简单,所以很难看到它们如何变成一台正常运行的计算机。此设计过程涉及到将多个门组合在一起,以创建一个可以执行简单功能的小型器件。然后,你可以连接许多这样的器件,形成能够执行更高级功能的器件。组合单个组件以创建工作设计的过程正是当今用于创建现代芯片的过程。唯一不同的是,一个现代芯片有数十亿个晶体管。
举一个简单的例子,我们将看到一个基本的加法器——1位全加器。它接受三个输入——A、B和输入进位(Carry-In),并产生两个输出——和(Sum)与输出进位(Carry-Out)。基本设计使用五个逻辑门,它们可以连接在一起,创建你想要的任意大小的加法器。现代设计通过优化一些逻辑和进位信号来改进这一点,但基本原理仍然相同。
如果A、B二者之一处于打开状态,或者存在输入进位信号,且A、B全开或全关,那么输出和就是开。输出进位有点复杂。当A和B同时开时,或者存在输入进位信号且A、B二者之一处于打开状态,此时输出进位是有效的。要连接多个1位加法器以形成更宽的加法器,只需将前一位的输出进位连接到当前位的输入进位。电路越复杂,逻辑就越混乱,但这是最简单的两个数字相加的方法。现代处理器使用更复杂的加法器,但是这些设计太复杂了,无法像这样进行概述。除了加法器,处理器还包含所有这些操作的除法、乘法和浮点运算的单元。
将一系列这样的门组合起来对输入执行某种功能称为组合逻辑(Combinational Logic)。然而,这种逻辑并不是计算机中唯一存在的东西。如果我们不能存储数据或跟踪任何东西的状态,那么就没有多大用处。为此,我们需要具有存储数据能力的时序逻辑。
时序逻辑是通过仔细连接反相器和其他逻辑门来构建的,使得它们的输出反馈到门的输入。这些反馈回路用于存储一位数据,称为静态RAM或SRAM。它被称为静态RAM而不是动态DRAM的原因是,存储的数据总是直接连接到正电压或GND。
实现单个SRAM的标准方法是使用如下所示的6个晶体管。顶部信号(标记为WL,Word Line)是地址,当它被使能时,存储在这个1位单元中的数据被发送到的位线(标记为BL,Bit Line)。BLB输出被称为Bit Line Bar,即位线的翻转值。你应该认识晶体管的两种类型,并且M3、M1与M4、M2一起构成了一个反相器。
SRAM用于在处理器中构建超高速缓存和寄存器。它非常稳定,但是需要6到8个晶体管来存储每一位数据。这使得它与DRAM相比,在成本、复杂性和芯片面积方面生产成本极高。另一方面,动态RAM将数据存储在微型电容中,而不是使用逻辑门。它被称为动态的原因是电容器的电压可以动态变化,因为它没有连接到电源或GND。只有一个晶体管用于访问存储在电容器中的数据。
由于DRAM每位只需要一个晶体管,而且设计非常可扩展,因此可以密集且廉价地进行封装。DRAM的一个缺点是电容器中的电荷太小,需要不断刷新。这就是为什么当你关掉计算机时,电容全部耗尽,RAM中的数据丢失。
英特尔、AMD和英伟达等公司当然不会发布它们的处理器工作原理图,所以对于现代处理器,无法展示完整的图纸。但是,这个简单的加法器应该可以让您很好地了解如何将处理器中最复杂的部分拆分为逻辑门、存储单元,然后再拆分为晶体管。
既然我们已经知道了处理器的一些组件是如何构造的,那么我们就需要弄清楚如何将所有东西连接起来并同步它们。处理器中的所有关键部件都连接到时钟信号上。它以预定义的间隔(称为频率)在“高”和“低”之间交替。处理器内部的逻辑通常在时钟从低到高时切换数值并执行计算。通过将所有数据同步在一起,我们可以确保数据总是在正确的时间到达,这样处理器中就不会出现任何故障。
你可能听说过,可以提高处理器的时钟(称为超频)以提高其性能。这种性能提升来自于处理器内部晶体管和逻辑的切换速度比设计的要快。由于每秒有更多的周期,所以可以完成更多的工作,处理器将具有更高的性能。不过在某种程度上,这是正确的。现代处理器通常运行在3.0GHz~4.5GHz之间,而在过去的十年中,这种情况似乎并没有改变。就像金属链的强度只取决于最弱的一环一样,处理器的运行速度也只能和最慢的部分一样快。在每个时钟周期结束时,处理器中的每个部件都需要完成其操作。如果时钟太快,有某个部分还没有完成,处理器就无法工作。设计人员将这个最慢的部分称为关键路径,它设置了处理器运行的最大频率。超过一定的频率,晶体管无法足够快地开关,并将开始出现故障或产生不正确的输出。
通过提高处理器的电源电压,我们可以加快晶体管的开关速度,但这也只能在一定程度上起作用。如果我们施加太高的电压,就有烧坏处理器的危险。当我们提高处理器的频率或电压时,它总会产生更多的热量,并消耗更多的能量。这是因为处理器的功率与频率成正比,与电压的平方成正比。为了确定处理器的功耗,我们通常认为每个晶体管都是一个小电容,当它改变值时必须充电或放电。
功率传输是处理器非常重要的一部分,在某些情况下,芯片上一半的物理引脚可能仅用于电源或接地。一些芯片在满载时可能会产生超过150安培的电流,这些电流必须非常小心地管理。从这个角度看,CPU每单位面积产生的热量要比核反应堆多。
现代处理器中的时钟约占其总功率的30%~40%,因为它非常复杂,必须驱动许多不同的器件。为了节约能源,大多数低功耗设计会在芯片不使用的时候关闭芯片的某些部分。这可以通过关闭时钟(称为时钟门控)或关闭电源(称为电源门控)来完成。
时钟给处理器的设计带来了另一个挑战,因为随着时钟频率的不断增加,物理定律开始阻碍它的发展。尽管光速非常快,但对于高性能处理器来说,光速还不够快。如果你将时钟连接到芯片的一端,当信号到达另一端时,它会出现相当严重的不同步。为了使芯片的所有部分保持相同时间,时钟使用所谓的H-Tree来分配。这是一种结构,可确保所有端点与中心的距离完全相同。
在一个芯片中设计每一个晶体管、时钟信号和电源连接看起来或许非常繁琐和复杂,这肯定是真的。尽管英特尔、高通和AMD等公司有成千上万名工程师,但他们不可能手动设计芯片的各个方面。为了在如此大的规模上组装芯片,他们使用了各种先进的工具来为他们生成设计和原理图。这些工具通常会对组件应该执行的操作进行高级别的描述,并确定满足这些要求的最佳硬件配置。最近出现了一种名为“高级综合”的技术,它允许开发人员在代码中指定他们想要的功能,然后让计算机找出如何在硬件中以最佳方式实现它。
正如你可以通过代码定义计算机程序一样,设计人员也可以通过代码定义硬件。Verilog和VHDL等语言允许硬件设计人员表达他们正在制作的任意电路的功能。仿真和验证是在这些设计上进行的,如果一切都通过了,它们就可以被合成到构成电路的特定晶体管中。虽然验证可能不像设计一个新的缓存或核心那样华而不实,但它要重要得多。对于公司雇用的每位设计工程师,可能有五名或更多的验证工程师。
验证一个新设计通常比制造实际的芯片本身要花费更多的时间和金钱。公司在验证上花费了大量的时间和金钱,因为一旦芯片投入生产,就没有办法修复。使用软件,你只需要发布一个补丁,但硬件不是这样。例如,英特尔的某些奔腾芯片的浮点分区单元中存在bug,最终导致它们损失了大约20亿美元。
你可能很难想象一个芯片如何拥有数十亿个晶体管以及它们所做的一切。当你把芯片分解成单独的内部组件时,事情就简单多了。晶体管构成逻辑门,逻辑门被组合成执行特定任务的功能单元,这些功能单元连接在一起形成我们在第1部分中讨论的计算机体系结构。
大部分设计工作都是自动化的,但这应该会让你对你购买的新CPU有多么复杂有了新的认识。
构建芯片:芯片的布局和物理构建
如何把一堆沙子变成高级处理器?让我们看看。
如前所述,处理器和所有其他数字逻辑都是由晶体管构成的。晶体管是一种电子控制开关,我们可以通过施加或消除栅极上的电压来打开或关闭它。我们讨论了两种主要类型的晶体管:当栅极打开时允许电流流过的NMOS器件和在栅极关闭时允许电流流过的PMOS器件。处理器内部的晶体管的基本结构是硅。硅被称为半导体,因为它不能完全导电或绝缘;它位于二者之间的某个位置。
为了通过添加晶体管将硅片变成有用的电路,制造工程师使用了一种称为掺杂的工艺。掺杂工艺包括将精心选择的杂质添加到硅衬底中以改变其导电性。这里的目标是改变电子的行为方式,以便我们能够控制它们。就像有两种晶体管一样,掺杂也有两种主要的对应类型。
如果我们添加精确控制数量的电子给体元素,如砷、锑或磷,就可以创建一个n型区域。由于现在施加这些元素的硅区域具有多余的电子,因此它将带负电。这就是n型和NMOS中的“n”的由来。通过在硅中加入硼、铟、镓等电子受体元素,我们可以得到带正电荷的p型区域。这就是p型和PMOS中的“p”的由来。将这些杂质添加到硅中的具体过程称为离子注入和扩散,这超出了本文的范围。
既然我们可以控制硅的某些部分的电导率,就可以结合多个区域的特性来制造晶体管。集成电路中使用的晶体管称为MOSFET(金属氧化物半导体场效应晶体管),有四个连接。我们控制的电流流经源极和漏极。在n沟道器件中,它通常从漏极流入从源极流出,而在p沟道器件中,它通常从源极流入从漏极流出。栅极是用来开关晶体管的开关。最后,器件的主体与处理器无关,所以我们不在这里讨论。
硅制反相器的物理结构。每个着色区域具有不同的导电特性。注意不同的硅组件与右边的原理图的对应关系。
晶体管的工作原理以及不同区域如何相互作用的技术细节足以填满研究生水平的大学课程,因此我们将只触及基础知识。晶体管的工作原理的一个很好的类比是河上的吊桥。汽车就像晶体管中的电子,会从河的一边流向另一边,即晶体管的源极和漏极。以NMOS器件为例,当栅极不带电时,吊桥上升,电子不能流过沟道。当我们放下吊桥时,河上形成了一条道路,汽车可以自由移动。同样的事情也发生在晶体管上。充电的栅极在源极和漏极之间形成一个沟道,允许电流流动。
为了能够精确控制硅的不同p和n区域,英特尔和台积电这样的制造商使用一种称为光刻的工艺。这是一个非常复杂的多步骤工艺,公司花费数十亿美元来完善它,以便能够制造更小、更快、更节能的晶体管。想象一下,有一台超精密打印机可以用来在硅片上绘制每个区域的图案。
在芯片中制造晶体管的过程是从一个纯晶圆开始的。晶圆在炉中加热,顶部生长一层薄薄的二氧化硅。然后在二氧化硅上涂上一种光敏光刻胶聚合物。通过将特定频率的光照射到光刻胶上,我们可以在我们想要掺杂的区域剥离光刻胶。这是光刻步骤,类似于打印机将墨水印到页面的某些区域,只是尺度小得多。
晶圆被氢氟酸蚀刻以溶解除去光刻胶的二氧化硅。然后除去光刻胶,只留下下面的氧化层。掺杂离子可以被应用到晶圆上,并且只能在氧化物中有间隙的地方植入。
这种掩膜、成像和掺杂的过程要重复数十次,才能慢慢地在半导体中建立起每个特征层。一旦硅基底完成,金属连接将在顶部制造,以把不同的晶体管连接到一起。我们稍后会详细介绍这些连接和金属层。
当然,芯片制造商并不是一次只生产一个晶体管。当一个新芯片被设计出来时,他们将为制造过程中的每一步生成掩模。这些掩模将包含芯片上数十亿个晶体管的每个元件的位置。多个芯片组合在一起,并在一个裸片上一次制造。
一旦晶圆被制造出来,各个裸片就会被切割和封装。根据芯片的大小,每个晶圆可以容纳数百个或更多的芯片。通常情况下,芯片的功能越强,裸片就越大,制造商从每个晶圆上得到的芯片就越少。
我们很容易想到,我们应该制造超级强大的、拥有数百个内核的大规模芯片,但这是不可能的。目前,阻碍我们制造越来越大芯片的最大因素是制造工艺中的缺陷。现代芯片有数十亿个晶体管,如果其中一个的一个部分坏了,整个芯片可能需要废弃。随着处理器尺寸的增大,芯片出现故障的几率也会增加。
公司从制造过程中获得的实际收益是保密的,但70%~90%是很好的估计。公司通常会使用额外的功能来过度设计芯片,因为他们知道某些部件无法工作。例如,英特尔可能会设计一个8核芯片,但只将其作为6核芯片出售,因为他们估计一个或两个核可能会损坏。在一个称为“binning”的过程中,缺陷数量非常少的芯片通常被预留出来以更高的价格出售。
与芯片制造相关的最大营销术语之一是特征尺寸。例如,英特尔正在努力实现10nm工艺,AMD正在为一些GPU使用7nm工艺,而台积电已开始研发5nm工艺。但是,这些数字意味着什么呢?传统上,特征尺寸表示晶体管的漏极和源极之间的最小宽度。随着技术的进步,我们已经能够缩小晶体管,以便能够在单个芯片上容纳越来越多的晶体管。随着晶体管变得越来越小,它们也变得越来越快。
在查看这些数字时,需要注意的是,一些公司可能会根据不同的指标而不是标准宽度来确定工艺尺寸。这意味着不同公司的不同尺寸的工艺实际上可能产生相同尺寸的晶体管。另一方面,在给定的工艺中,并非所有的晶体管都是相同的大小。设计师可能会根据某些权衡来选择制造比其他晶体管更大的晶体管。对于给定的设计过程,较小的晶体管将更快,因为它的栅极充放电需要的时间更短。然而,较小的晶体管只能驱动很小数量的输出。某个特定的部件,如果逻辑要驱动的东西需要很大的功率,如输出引脚,它就需要做得更大。这些输出晶体管可能比内部逻辑晶体管大几个数量级。
一张最新的AMD Zen处理器的照片。这个设计由几十亿个晶体管组成。
然而,设计和制造晶体管只是芯片的一半。我们需要根据原理图把所有的东西连接起来。这些连接使用晶体管上方的金属层制成。请设想多层公路交汇处,有上坡道、下坡道和相互交叉的不同道路。这正是芯片内部发生的事情,不过尺度要小得多。不同的工艺在晶体管上方会有不同数量的金属互连层。随着晶体管变得越来越小,我们需要更多的金属层来传送所有的信号。台积电即将推出的5nm工艺有15个金属层。设想一座15层的垂直公路立交桥,这会让你了解芯片内部的布线有多复杂。
下面的显微镜图像显示了由七个金属层组成的晶格。每一层都是平坦的,随着它们的升高,这些层变得更大,以减小电阻。每一层之间都有被称为通孔的小金属圆柱体,用于跳跃到更高层。每一层通常与下面的一层在方向上交替,以便减少不必要的电容。奇数层可用作水平连接,偶数层可用作垂直连接。
正如你所能想象的,所有这些信号和金属层都变得难以快速管理。为了帮助解决这个问题,计算机程序被用来自动放置和布线晶体管。根据设计的先进程度,程序甚至可以将高级C代码中的函数转换为每根导线和晶体管的物理位置。通常情况下,芯片制造商会让计算机自动生成大部分设计,然后他们会手工对某些关键部分进行优化。
当公司想要制造一种新的芯片时,他们将从制造公司提供的标准单元开始他们的设计。例如,英特尔或台积电将为设计师提供逻辑门或存储单元等基本部件。设计人员可以将这些标准单元组合到他们想要构建的任意芯片中。然后,他们将芯片的晶体管和金属层的布局发送给代工厂,代工厂是将硅制造成功能芯片的地方。这些布局被转换成掩模,在我们上面提到的制造过程中使用。接下来,我们将了解一个非常基本的芯片的设计过程。
首先,我们看看反相器的布局,这是一个标准单元。顶部的斜切绿色矩形是PMOS晶体管,底部的透明绿色矩形是NMOS晶体管。垂直红线为多晶硅栅极,蓝色区域为金属1,紫色区域为金属2。输入A位于左侧,输出Y位于右侧。电源和GND连接在金属2的顶部和底部。
把几个门结合起来,我们得到了一个基本的1位算术单元。这种设计可以对两个1位输入进行加法、减法和逻辑运算。垂直方向的蓝色切割导线是金属3层。导线两端稍大的正方形是连接两层的通孔。
最后,将许多单元和大约2000个晶体管组合在一起,我们得到了一个基本的4位处理器,在四个金属层上有8字节的RAM。看看它有多复杂,我们可以想象设计一个64位CPU的困难,它有兆字节的缓存、多个核心和20多个流水线阶段。考虑到当今高性能CPU可以拥有50亿~100亿个晶体管和12个金属层,毫不夸张地说,它实际上要比这个复杂数百万倍。
这应该会让你理解为什么你的新CPU是一项昂贵的技术,以及为什么AMD和英特尔在产品发布之间花了这么长时间。一般来说,一个新芯片从设计阶段进入市场需要3~5年的时间。这意味着今天最快的芯片是用几年前的技术制造出来的,而我们在许多年内都不会看到使用当今最先进制造技术的芯片。
由此,我们完成了对处理器构建方式的深入研究。
相关问答
什么是芯片程序?
芯片程序是指嵌入在集成电路芯片中的软件代码,用于控制芯片的功能和行为。这些程序包含指令和算法,可以实现各种任务,如数据处理、通信、控制等。芯片程序的设...
芯片的程序怎么解出来?
解芯片的程序是一个复杂的过程,需要深入了解芯片的架构、指令集、存储器布局、加密技术等方面的知识。以下是一个大致的步骤概述:准备工具和环境:需要准备适当...
怎么把程序写入芯片?
把程序写入芯片要用程序烧写器,会自动擦除的,一般是用stc的芯片,工具在stc官网,右边,下载,用串口,可以用pl2303或串口。单片机其实就是一个完整的计算机系统,...
程序在芯片中如何存在?
程序在芯片中是以二进制代码的形式存储。在编程时,程序员通过编写代码来描述计算机指令,然后使用编译器将代码翻译成字节码或机器语言。这些字节码或机器语言...
智能芯片要注入程序吗?
1.是的,智能芯片需要注入程序。2.智能芯片是一种能够进行自主学习和决策的芯片,但是在使用之前需要事先注入程序,这些程序包括控制芯片运转的指令,以及让芯...
请问计算机软件和硬件是如何结合的?-超酷的回答-懂得
硬件其实分为两个部分,物理部分与逻辑部分。物理部分就是电子电路,核心是各种芯片,就是由许多的门电路组成的大规模集成电路。逻辑部分就是固化在芯...
集成芯片如何输入程序?
集成芯片的程序输入通常需要通过编程器或者烧录器进行操作,将程序代码通过特定的接口和协议,以二进制数据的形式写入芯片的存储器中。在烧录过程中需要注意正...
芯片是干什么用的?是不是存储在硬件中的一段程序?
不是。芯片是硬件,不是一段程序。芯片是对一类产品的统称,可以负责包括计算、存储等不同分工在内单位多种工作。可以认为一段程序是存储在存储芯片上,运行在...
关于芯片程序的复制?
1可以通过复制粘贴来拷贝IC程序。2IC程序一般是以文件的形式存在于计算机中,可以通过复制文件的方式来进行拷贝。同时,也可以通过一些专业的拷贝软件来实现...
芯片组驱动程序是什么?
就是主板驱动程序,在沟通中起着至关重要的任用,它主要用来开启主板芯片组内置功能与特性,主板驱动里一般是主板识别管理各种周边设备的驱动程序或补丁。就是...