关于芯片的一些概念

一、芯片是什么?

很多元器件封装在一个盒子中就成为了芯片。

工艺是什么?

集成电路是现代芯片的基石
制造工艺是集成电路的基石

  • 工艺越先进,晶体管体积越小,能效越出众。
  • 工艺越先进,单位面积内的晶体管数量越多,性能越强。
  • 工艺越先进,芯片占据的板极面积越小,手机等设备设计空间越充裕。

一段话:
麒麟990 5G发布于2020年9月,是华为推出的全球首款旗舰5GSoC。
采用7nm+EUV工艺,将5G Modem集成到SoC中,复杂度和集成度再创新高。
是业界首款晶体管数量达到103亿的手机芯片。

专业词汇

1 晶体管

一种半导体器件,通过不同的电路连接方式可以实现开关、稳压、电信号
放大、调制等多种功能。晶体管是芯片中使用最多的元器件,一块现代芯片
上通常有几亿至几百亿个晶体管,这些晶体管和其他电路元器件共同构成了
不同功能的电路,从而实现了芯片的各种功能。

2 SoC

片上系统(System On Chip),表示一块芯片中包含了具备不同功能的集成电路模块
,它们构成了一个完整的系统,使得芯片的功能大大增强。

3 集成

利用微电子技术,将大量电路元器件连接在一起构成具有特定功能电路的过程。一块芯片
中可能包含几类不同功能的集成电路。

4 封装

芯片制造的最后阶段,利用塑料、树脂、陶瓷或合金等材料将芯片的核心
晶圆电路部分保护起来,防止晶圆受到物理或化学腐蚀,同时在包装上
提供于晶圆电路相连的引脚,用于连接外部电路。封装完成之后就可以通过引脚
对芯片的各项性能参数进行测试。

5 能效

能源效率的缩写,表示电子元器件发挥的实际作用与消耗的能量之间的比值。
能效越高,表示芯片在同等能源供应下,能够进行更多的运算,对于手机来说则是
能够大大提升续航能力。

6 板极面积

表示芯片在电路板上所占的面积,芯片所占面积越小,电子设备(手机)就能够在
一定大小的电路板上容纳更多芯片,从而实现更多或更强的功能。

7 EUV

极紫外光(EUV,Extreme Ultraviolate),用紫外波段的光进行曝光的光刻工艺是
极紫外光刻(EUVL,Extreme Ultraviolate Lithography),它是当前最先进的微电子
电路加工技术,能够实现5nm工艺集成电路的加工制作。

8 Modem

调制解调器,一种数字通信中进行数字信号和模拟信号双向转换的元器件。手机中的
Modem主要负责将手机和无线通信网络相连,实现电话、短信、上网等
联网功能中的信号转换。

二、芯片是如何设计的?

如今手机的功能越来越丰富,其中助力实现的就是集成电路芯片(IC芯片)。
在指尖大小的集成电路芯片中,有上百亿个晶体管在发挥着以往巨型电路的作用。
更加精密的设计与工艺,让集成电路芯片的能耗更低、性能更强,让更多的智能设备
称为可能。

芯片设计过程概述
芯片设计与制造的过程非常复杂,我们可以简单的将芯片制作理解为三个部分

  1. 设计 Design
  2. 制造 Manufacturing
  3. 封装 Packaging
  • 由于工艺不同,芯片园生产的工艺库也是不同的,负责前端设计的工程师
    需要体现开始熟悉工艺库,尝试不同的Floorplaning(布局规划),才能输出芯片园
    想要的物流版图。
  • 如果将芯片的制作过程类比于建筑,芯片的地基是由硅晶圆及电路组成的。

芯片设计流程

1 了解和分析用户需求,确定芯片的架构

用户需求

  • 想要在芯片中加入4K HDR image技术
  • AI算法很受欢迎,升级自研的华为达芬奇架构NPU,提高算力
  • ....

2 制定实现规格的具体方案,建立系统级架构设计

  1. XXX芯片系统级方案书,进行讨论
  • NPU采用两个大核+一个小核
  • 16核GPU
  • 8核CPU,三档能效架构
  1. 进行团队的分工
  • Group1负责接口信号及模块架构定义
  • Group2负责详细的电路实现方案

3 电路设计

ELS建模之中或者之后,芯片工程师开始编辑逻辑代码。这一过程由于工具的发展已经不再需要直接设计门电路,可以通过Verilog HDL语言进行完成。Verilog HDL,用于描述RTL电路,使用代码的方式描述电路设计。

  • 芯片功能规格说明书(Functional Specs)
  • 芯片架构规格说明书(Architecture Specs)
  • 寄存器级传输设计(Register Transfer Level)
  • 物理实现约束
  • 实现接口信号的约束

4 EDA验证

这一过程主要在Verilog上进行扩展,针对于硬件验证从C++吸收了新的语言元素:类、模板、框架及面向对象的编程思想。之后会通过System verilog编程实现验证环境和验证用例,通过仿真器进行执行。简单来说就是测试分析关键电路规格的完备性,各种功能是否可以实现,再进行优化和调整。

5 将RTL编程晶体管电路(物理实现)

将RTL转换为Netlist,再转换为GDS(Graphic Display Systems,物理版图),这就是完整的布局布线图。当然,还需要同步进行检查、完善、修改。对于功能增强型芯片,还可以在上一版Taoeout网表上进行少量的修改,快速实现某些功能并回片。

芯片的制造与封装

设计流程到这里就是前端设计环节,后面还需进行后端制造和封装测试。

芯片制造

后端制造:半导体制造厂商在拿到GDS以后,将硅晶圆加工成(裸片)。
芯片制造类似于建造大楼,从沙子中提取出单晶硅制造的硅晶圆是地基,之后按照芯片设计厂输出的GDS进行蚀刻、光刻,层层堆叠,最终制造出芯片。

  1. 在晶圆上涂布光刻胶。
  2. 使用特定的紫外光,透过印着预先设计好电路的掩膜,照射在硅晶圆上。
  3. 曝光在紫外光外线下的光刻胶被溶解掉,而留下图案则是和掩膜一样的图形。
  4. 光刻胶构成的图形不是我们的目标,还需要用化学物质溶解暴露出来的晶圆,留下光刻胶保护着的部分。
  5. 接下来把硼或磷注入到硅结构中,让硅结构具有晶体管的属性。
  6. 填充铜,用来和其他晶体管互联。
  7. 最后再在上面涂一层胶,重复前面的步骤。一般来说芯片会有几十层结构。

封装测试

封装测试:将裸片封装,制作成能够正常工作的芯片。
制造厂商出厂的裸片,和我们常见的集成电路芯片仍然相差很远,需要经过封装后才能投入使用。

  1. 对硅晶圆进行切片,在芯片上盖上一层蓝膜,保证切割后不容易散落。切割后将合格芯片逐个取出。
  2. 为了能使芯片正常工作,需要使用金属导线将芯片上的连接点和引线框上的引脚进行连接。
  3. 将装配好芯片的引线框放置在模具中,再将封装材料加温注入模具,形成一层外壳。

专业词汇

  1. 芯片园:英文Foundry原意为铸造厂,在半导体行业中则代指专门的晶圆加工厂。它们不进行集成电路设计,只负责进行集成电路制造和晶圆加工。
  2. 工艺库:由晶圆加工厂商进行提供的集成电路设计范例,用于帮助集成电路工程师进行电路设计。由于各家厂商的加工生产技术各不相同,因此在电路设计过程中,需要注意的问题也各不相同。
  3. Floorplaning:布局规划,集成电路设计中的一个步骤,在实现了初步的电路功能之后,需要确定各个功能模块在芯片中的具体位置,以便更好地将它们连接起来实现芯片功能。
  4. 硅晶圆
    用于加工集成电路的高纯度硅片。可以通过蚀刻、掺杂其他元素形成大量的半导体元器件,从而构成高集成度的半导体电路。
  5. 4K:屏幕显示分辨率的一种规格,横向共有3840个像素,纵向共有2160个像素,总计约830万个像素。像素越多,屏幕上能够显示的图像就越清晰。类似的常见分辨率规格还有2K(2048像素×1080像素)、FHD(1080p、1920像素×1080像素)、HD(720p、1280像素×720像素)等。
  6. HDR image:高动态范围成像技术(HDR image,High Dynamic Range image),相比于一般的数字成像,HDR图片或视频的曝光动态范围更大,从而能够表现出不同等级的亮度,使得数字图像显得更加真实。
  7. 架构:芯片设计方式的一种总结性描述,不同架构的芯片在执行运算的实现方式略有不同,因此架构对于外围的应用开发至关重要。当前主流的芯片架构包络X86,ARM,RISC-V,MIPS等。
    华为达芬奇架构:华为达芬奇架构是华为自研的面向AI计算特征的全新计算架构,具备高算力、高能效、灵活可裁剪的特性,是实现万物智能的重要基础。
  8. NPU:神经网络处理器(NPU,Neural-Network Processing Unit),专门用于硬件加速人工智能相关计算(例如人工神经网络、机器视觉、机器学习)的微处理器,相比于利用CPU进行此类计算,利用NPU能够获得更高的能效和运算能力。
  9. CPU:中央处理器(CPU,Central Processing Unit),现代计算机的主要组成部分,负责执行计算机指令并进行数据的计算,具有控制外围设备的功能。
  10. GPU:图形处理器(GPU,Graphics Processing Unit),计算机中用于辅助进行图形运算的微处理器,通常以独立芯片的形式存在于计算机中,手机上则通常和CPU处于一个芯片中构成SoC。
  11. 接口信号:芯片中不同模块在进行计算时可能需要交换一定的信息,这些信息所使用的传输格式规范即称为接口信号。
  12. 模块架构:这里的架构不同于芯片架构,指的是芯片中各种功能模块集成电路的组成,例如加法运算单元的数量、指令运行的周期、处理器的核心数量。
  13. ESL:电子系统级(ESL,Electric System Level),芯片设计中的一个层级,根据芯片需要实现的功能,利用高级编程语言对芯片进行描述,经过ESL建模之后可以将芯片划分为不同的功能模块,并且大致明确各个模块所需的功能单元。具体单元的实现则由寄存器级传输设计语言进行实现。
  14. 门电路:数字电路中用于进行最基本逻辑运算的最小单位。常见的逻辑运算包括与、或、非、异或等,对应的则有与门电路、或门电路、非门电路、异或门电路等。门电路可以通过电阻、电容、二极管、三极管等电路元器件构成。在芯片上利用电路元器件构成大量的逻辑门电路并相互连接,最终实现芯片的运算功能。
  15. 寄存器级传输设计:寄存器传输级(RTL,Register Transfer Level)设计,集成电路设计中ESL建模的下一步,主要负责将芯片中的功能单元所需要进行的计算利用逻辑运算方式描述出来,这样在后续设计中就可以利用逻辑门电路对相关运算进行实现,从而实现芯片的物理电路设计。
  16. 时序:也叫做时钟信号,用于驱动数字电路中的触发器、计数器、寄存器等等时序逻辑器件,这类器件通常具有储存和记忆功能,因此时序正确对于芯片正确发挥作用至关重要。
  17. 硬件描述语言:用于描述电子电路(尤其是数字电路)的功能、行为的语言,能够在寄存器传输级、逻辑门级等多个层级上对数字电路进行描述,并能够进行仿真验证电路的功能。常用的硬件描述语言包括Verilog、VHDL等。
  18. EDA:电子设计自动化(EDA,Electronic Design Automation),通过软件的方式帮助芯片设计完成超大规模集成电路的设计、集成、验证、物理设计等过程。
  19. 面向对象:一种程序设计方法,通常与面向过程的程序设计对比。在面向对象的设计中,通常将数据和计算方法看作一个整体来看待,从而能够更方便地进行完整的系统建模,并且更易于描述事物的自然运行模式。
  20. 仿真器:用于测试、验证芯片功能的软件和硬件,可以帮助芯片设计师测试芯片的功能、性能参数等。
  21. Netlist:指的是网表或连线表,在完成了寄存器传输级(RTL,Register Transfer Level)设计之后,需要将逻辑运算利用基础门电路进行实现,这时候描述门电路之间连接的即是网表。
  22. GDS:物理版图(GDS,Graphic Display Systems),经过重重设计之后最终确定的集成电路设计的平面描述,在上面描述半导体掺杂、蚀刻、打孔的位置等信息。代工厂进行芯片加工时是按照物理版图进行的。
  23. Tapeout:指的是流片或出片,芯片设计完成之后,交付加工厂进行生产的最后一个阶段。通常在这个阶段中,各类设计均为最终版,但是由于芯片设计的复杂性,在最终量产之前会在流片阶段生产少量芯片进行测试。如果通过测试,就可以按照设计进行量产了。
  24. 回片:在流片过程中,如果需要进行设计上的修改,之后重新进行流片,这个过程就叫做回片。
  25. 裸片:裸片(Die)、裸晶圆、裸晶片,指经过加工之后具备了集成电路功能的硅晶片,但此时晶圆上还不具备引脚,因此无法与外部电路连接发挥作用,需要经过封装、测试之后才能成为可以接入电路的芯片。
  26. 蚀刻:利用化学手段对于晶圆表面进行腐蚀,去除不需要的部分,这样去除的部分就可以用于掺杂其他元素形成半导体器件了,而具体蚀刻的部分则需要通过光刻进行确定。
  27. 光刻:在硅晶圆上利用光刻胶绘制集成电路图样的过程,通过光照的方式腐蚀光刻胶,从而确定需要蚀刻的部分,并最终构成大规模的集成电路。
  28. 光刻胶:也叫光阻或光阻胶,一种对光敏感的混合液体,用于在硅晶圆上绘制集成电路图样。光刻胶在经过紫外线(UV)、极紫外(EUV)光等光照或辐射后,自身的溶解度会发生变化,从而通过光照区域的选择即可构成不同的区域。
  29. 掩膜:即集成电路的底片,上面描绘的图形可以用于在光刻过程中确定需要腐蚀和保留的区域。
  30. 切片:将经过光刻、蚀刻的完整硅晶片进行切割,形成单个裸晶圆的过程。
本文转载于网络 如有侵权请联系删除

相关文章

  • .Net Core 环境下构建强大且易用的规则引擎

    本文源码:https://github.com/jonechenug/ZHS.Nrules.Sample1.引言1.1为什么需要规则引擎在业务的早期时代,也许使用硬编码或者逻辑判断就可以满足要求。但随着业务的发展,越来越多的问题会暴露出来:逻辑复杂度带来的编码挑战,需求变更时改变逻辑可能会引起灾难重复性的需求必须可重用,否则必须重复性编码运行期间无法即时修改规则,但重新部署可能会带来其他问题上线前的测试变得繁琐且不可控,必须花大量的人力和时间去测试这些困境在『小明历险记:规则引擎drools教程一』一文中可以体会一番,一开始只是简单的根据购物金额来发放积分,运行期间又要更改为更多的规则层次,如果不及时引入对应的规范化处理机制,开发人员将慢慢坠入无止尽的业务深渊。对此,聪明的做法是在系统中引入规则引擎,对业务操作员要提供尽量简单的操作页面来配置规则,规则引擎和配置尽量不要耦合到一块。1.2.NetCore环境下的选择--Nrules目前最流行的规则引擎应该是Drools,用Java语言编写的开放源码规则引擎,使用Rete算法对所编写的规则求值,其操作流程如下:对于.Net应用来说,可以通

  • Windows 10 1903新特性概览

    版权声明:本文为博主原创文章,转载请注明出处。https://blog.csdn.net/u011054333/article/details/89762091Windows101903镜像已经放出,不出意外的话功能和正式推送的时候应该一样。MSDN我告诉你上也已经有相关镜像了。正好我也安装尝尝鲜,顺便为大家介绍一下1903的新特性。大家如果也想尝鲜的话推荐使用VHD方式安装,将来删除的时候非常方便。浅色主题比较直观的一点就是系统主题新增了一个浅色模式,浅色主题的任务栏和开始菜单会变成浅白色,而图标颜色会变成黑色,看起来很不错。 对应的深色主题看起来就没那么好看了。而且现在很多应用都没有适配深色主题,一堆黑色的窗口中间混杂了一个白色窗口,格外难看。我觉得到时候大家肯定都用的浅色主题。 搜索功能和Cortana分离另外一项比较直观的功能改动就是将搜索功能和微软小娜分离了。现在任务栏上有两个按钮,一个是搜索功能,另外一个小娜只有语言识别的功能了。这项改动有好有坏。对我来说不能打字和小娜沟通,实在是有点遗憾。不过搜索和小娜分离之后,本地搜索功能应该会方便一些,对于经常使用搜索功能的用户来说是

  • Lync 2013 语言包安装

    最近Lync用户问我,怎么更改Lync2013显示语言为英文?我一下子懵了,我心想Lync2010有多语言用户界面包,没见过有Lync2013的,再说了,Lync2013是Office2013中套件之一,微软官网也没有公开提供语言包下载。在网上搜索,有网站提供英文语言包下载,可惜链接失效了http://www.heidoc.net/joomla/technology-science/microsoft/73-office-2013-direct-download-links查询微软官网有提供语言包免费下载,免费的都是一些冷门的语言,主流的中文及英文竟然收费下载https://products.office.com/zh-CN/language-packs?legRedir=true&CorrelationId=8c7abc37-6ec8-4043-a16b-911827c2278f&omkt=zh-CN收费情况不乐观http://www.microsoftstore.com/store/msusa/en_US/pdp/Office-Language-Pack-2013/

  • 回顾 | 谷歌搜索中国项目恩仇录

    源/新智元编辑部 谷歌搜索进入中国的计划戛然而止。据外媒报道,谷歌暂停了一项在中国的数据收集项目,为推出符合中国法律法规的搜索引擎带来沉重打击。为了了解中国网民的习惯,谷歌从蔡文胜手中,花费2000万美元(约1.4亿人民币)买下了g.cn和265.com。265.com背后的搜索引擎其实是百度。但谷歌在265和百度中间设了一道卡,记录用户的使用习惯并交给制定的工程师进行分析,从而得到更符合中国用户的搜索结果。作为一款产品它并不非常有用,但它却为谷歌提供了一个有价值的窗口。现在,这个项目已经被终止。谷歌CEOPichai2018年12月11日,在国会听证会上,谷歌CEOPichai被问到推出中国版搜索引擎“Dragonfly”项目时,沉吟片刻表示:有这个计划,但现在不做了。谷歌CEO:有过推出中国版搜索引擎计划,但现在不做了围绕这项工作的保密工作和工作流程在谷歌是闻所未闻的。2017年2月,在谷歌总部举行的第一次关于“Dragonfly”的小组会议中,一些与会者对他们听到的内容震惊了。谷歌高管透露,这个搜索系统的基础设施将依赖一家中国合作公司,该公司的数据中心可能位于北京或上海。Yona

  • 【链表问题】删除单链表中的第K个节点

    前言以专题的形式更新刷题贴,欢迎跟我一起学习刷题。每道题会提供简单的解答。【题目描述】在单链表中删除倒数第K个节点。【要求】如果链表的长度为N,时间复杂度达到O(N),额外空间复杂度达到O(1)【难度】士【解答】删除的时候会出现三种情况:1、不存在倒数第K个节点,此时不用删除。2、倒数第K个节点就是第一个节点。3、倒数第K个节点在第一个节点之后。所以我们可以用一个变量num记录链表一共有多少个节点。如果num<K,则属于第一种情况。如果num==K,则属于第二中情况。如果num>K,则属于第三种情况,此时删除倒数第K个节点等价于删除第(num-k+1)个节点。代码如下://节点 classNode{ publicintvalue; publicNodenext; publicNode(intdata){ this.value=data; } }复制//删除第K个节点 publicNoderemoveLastKthNode(Nodehead,intK){ if(head==null||K<1) returnhead; Nodetemp=head; intnum=0; w

  • spring(2)装配Bean

    http://blog.csdn.net/pacosonswjtu/article/details/51518337#comments版权声明:本文为博主原创文章,未经博主允许不得转载。【0】README0)本文部分文字描述转自:“SpringInAction(中/英文版)”,旨在review spring(2)装配Bean 的相关知识;1)在spring中,对象无需自己查找或创建与其所关联的其他对象。相反,容器负责把需要相互协作的对象引用赋予各个对象;2)装配:创建应用对象之间协作关系的行为通常称为装配,这也是依赖注入(DI)的本质(干货——装配是依赖注入的本质);3)可以预热一下:在Spring中装配bean有多种方式:配置Spring容器最常见的三种方法;【1】Spring配置的可选方案1)Spring容器作用:负责创建应用程序中的bean并通过DI来协调对这些对象之间的关系;2)当描述bean如何进行装配时,Spring提供了3种主要的装配机制(mechanism):m1)在XML中进行显式配置;m2)在java中进行显式配置;m3)隐式的bean发现机制和自动装配;Atten

  • 区块链入门教程

    文章作者:阮一峰(http://www.ruanyifeng.com/)原文链接:http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿、为什么挖矿越来越难等问题。需要说明的是,我并非这方面的专家。虽然很早就关注,但是仔细地了解区块链,还是从今年初开始。文中的错误和不准确的地方,欢迎大家指正。一、区块链的本质区块链是什么?一句话,它是一种特殊的分布式数据库。首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何

  • ES6

    ES6 ECMAScript6.0(以下简称ES6,ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本), 是JavaScript语言的下一代标准,2015年6月正式发布,从ES6开始的版本号采用年号,如ES2015,就是ES6。ES2016就是ES7。 ECMAScript是规范,JS的规范的具体实现。 作用域 var在{}之外也起作用 let在{}之外不起作用 var多次声明同一变量不会报错,let多次声明会报错,只能声明一次。 var会变量提升(打印和定义可以顺序反)。let不存在变量提升(顺序不能反) const声明之后不允许改变 复制 <!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <metahttp-equiv="X-UA-Compatible"content="ie=edge"

  • Java - ConcurrentMap原理

    https://blog.csdn.net/justloveyou_/article/details/72783008   结构是怎样的?segment是什么?hashEntry是什么?默认可并发的大小是多少? segment继承自什么类?怎么保证线程安全? 读不需要加锁的原因? resize是一个segment还是全部?   ConcurrentMap作Cache https://my.oschina.net/zhangxufeng/blog/898864  

  • Ruby on Rails 生成指定版本的 Rails 项目

    ruby-on-railsruby 本地Rails默认5.1.6版本 $gemlist--local rails(5.1.6,5.1.5,5.1.4)复制 使用version生成指定version的项目 rails_version_newapplication_name 复制 例如:生成5.1.6    rails_5.1.6_newNewProjectName 复制   

  • Web 开发框架,你用 Django,Flask,还是 FastAPI 【转】

    首先我们达成一个共识,框架是用来帮助我们提升效率,节省时间,避免处理那些低级细节的,如果能达到这个目标,就是一个合适的框架。选择合适的框架,会事半功倍。 Python领域,开发Web应用程序的三个主流框架是Django,Flask和FastAPI。它们都非常优秀,但有各自的特点。本文接下来阐述每个框架的优缺点,以帮助你在使用时做出最合适的选择。 Django Django是用于构建网站的免费开源Web开发框架。它于2003年创建,并使用MTV模式,也就是Model-Template-View模式,如果不使用Django的模版语法,也可以认为是MVC模式,即Model-View-Controler,对应三个文件:models.py,views.py,urls.py。 它以其健壮和简单的特性而广受欢迎,地位相当于Java领域的Spring,并被Instagram,Youtube等技术巨头使用,找工作面试,Django也是重头戏。Django非常流行,极客时间已经有专门的付费教程。其次它的设计哲学与Python非常搭配,鼓励代码复用。 优点 Django框架的代码结构统一且清晰易懂,开发人员

  • 过渡——transition

    ①设置参与过渡的属性   transition-property: ;   all/transform/参与过渡的属性 ②设置过渡的时长   transition-duration: s;  ③事件曲线函数    transiton-timing-function: ;     ease——默认值,linear——匀速  ease-in  ease-out  ease-in-out  ④过渡的延迟    transition-delay: s/ms; 语法:transition:property duration timing-function delay;    简写:transtion:duration; 那些看似不起波澜的日复一日,

  • linux tail命令的使用方法详解

      本文介绍Linux下tail命令的使用方法。linuxtail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。 一、tail命令语法 tail[-f][-cNumber|-nNumber|-mNumber|-bNumber|-kNumber][File]参数解释:-f该参数用于监视File文件增长。-cNumber从Number字节位置读取指定文件-nNumber从Number行位置读取指定文件。-mNumber从Number多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。-bNumber从Number表示的512字节块位置读取指定文件。-kNumber从Number表示的1KB块位置读取指定文件。File指定操作的目标文件名称上述命令中,都涉及到number,假设不指定,默认显示10行。Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。tail可运

  • 阿里开源 Redis 数据迁移工具

    今天要推荐一个阿里巴巴开源工具redis-shake,一个Redis的数据迁移和清洗工具,工具使用起来比较简单,也经历过大厂的认证,正确性和稳定性都有保障。   Redis实例迁移到另一个大规格Redis实例。redis-shake支持迁移单实例、集群等,也支持将数据备份或者迁移到阿里云。     经过迭代,目前 redis-shake有两个版本。 从GitHub下载二进制或者自己从代码编译都行,redis-shake使用Go语言开发,整体代码也比较简单易懂,感兴趣的小伙伴也可以自行查阅。 除此之外,如果要使用数据过滤的功能,可以使用Lua语言进行自定义,保证了工具的灵活性。 更多项目详情请查看如下链接。开源项目地址:https://github.com/alibaba/RedisShake开源项目作者:https://github.com/alibaba

  • PHP扩展开发报错解决[error: ‘PHP_FE_END’ undeclared here (not in a function)] .

    PHP扩展开发报错解决[error:‘PHP_FE_END’undeclaredhere(notinafunction)]. 解决方法:进到php包的目录 sed-i's|PHP_FE_END|{NULL,NULL,NULL}|'./ext/**/*.c sed-i's|ZEND_MOD_END|{NULL,NULL,NULL}|'./ext/**/*.c复制例如: sed-i's|PHP_FE_END|{NULL,NULL,NULL}|'./ext/pcntl/*.c sed-i's|ZEND_MOD_END|{NULL,NULL,NULL}|'./ext/pcntl/*.c复制然后再编译即可!

  • yocto---学习2-bitbake

    1.yocto项目的厨师——bitbake ​bitbake是OpenEmbedded构建系统的引擎,通过解析一系列配置文件(主要为recipes,即bb/bbappend文件)来创建任务列表,并根据依赖关系依次执行。通过bitbake-clisttasksxxx(模块名或映像名)命令可以查看编译一个模块或整个映像所需任务名称。编译一个模块/映像的主要执行过程如下(内核除外):       ​下面按四个阶段来讲解bitbake的执行过程及涉及的变量,其中第四阶段(上图标黄的两任务)不是编译每个模块都有的。   2.源码获取及处理 ​这个阶段包含三个任务,分别为do_fetch、do_unpack、do_patch。   原文件来源   ​yocto编译一个模块所需的源代码或开源组件从哪里获取?         ​如上图所示,源码可以从上游开源项目(如busybox-1.28.3.tar.bz2)、本地项目(本地源代码)、软件配置管理(如git)中获取。   do_fetch任务

  • 第5章 子网划分和CIDR

    第5章子网划分和CIDR 划分网络 根据A类、B类或C类网络ID来识别网段具有一些局限性,主要是在网络级别之下不能对地址空间进行任何逻辑细分 如果一个IP是一个A类网络。数据报到达网关,然后传输到99.0.0.0地址空间。如果要考虑它在这个地址空间中是如何传递的,这个图示就会变得非常复杂,因为A类网络能够容纳超过1600万台主机。这个网络也许包含数百台主机,这大大超过了在一个子网上容纳的数量。 为了在大型网络里实现更高效的数据传输,地址空间被划分为较少的网段。把网络划分为独立的物理网络能够增加网络的整体性能,也就能够让网络使用更大的地址空间。它们不能使用网络ID,因为传输到这个网络的数据报具有相同的网络ID(99.0.0.0)。尽管可以利用主机ID来组织地址空间,但是对于能够容纳超过1600万台主机的网络来说,将会是很麻烦、非常不灵活、完全不实用的。唯一可行的解决方法是在网络标ID下对地址空间进行某种细分,让主机和路由器能够根据IP地址判断应该把数据发送到哪个网段。 TCP/IP的设计者借用了主机ID里的一些位来形成子网地址。一个名为子网掩码的参数指明了地址中多少位用于子网ID、保留多

  • [OpenCV学习笔记2][Mat数据类型和操作]

    [Mat数据类型和基本操作] ®.运行环境:Linux(RedHat+OpenCV3.0) 1.Mat的作用: Mat类用于表示一个多维的单通道或者多通道的稠密数组。能够用来保存实数或复数的向量、矩阵,灰度或彩色图像,立体元素,点云,张量以及直方图(高维的直方图使用SparseMat保存比较好)。简而言之,Mat就是用来保存多维的矩阵的。 2.Mat的常见属性: data:      uchar类型的指针,指向Mat数据矩阵的首地址。可以理解为标示一个房屋的门牌号; dims:      Mat矩阵的维度,若Mat是一个二维矩阵,则dims=2,三维则dims=3,大多数情况下处理的都是二维矩阵,是一    个平面上的矩阵。       可以理解为房屋是一个一层的平房,三维或更多维的则是多层楼房; rows:     Mat矩阵的行数。可理解为

  • 公告滚动

    1<!DOCTYPEhtml> 2<htmllang="en"> 3<head> 4<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"> 5<title>公告滚动</title> 6<metahttp-equiv="X-UA-Compatible"content="IE=EmulateIE8"/> 7<scriptsrc="js/jquery.min.js"></script> 8</head> 9<body> 10<style> 11*{padding:0;margin:0;border:0;} 12.a{position:relative;overflow:hidden;height:40px;line-height:40px;width:300px;} 13#b{position:absolute;} 14</style> 15<divclass

  • 第一次结对作业

    这个作业属于哪个课程 软件工程 队员1 <211706205> 队员2 <211706152> 这个作业要求在哪里 作业要求的链接 这个作业的目标 随笔开头,记录结队两个同学的学号和简单介绍。描述可视化的角度,分析你们选择这个角度的原因和意义、价值。描述采集的数据,记录采集过程、方式、成功,包括但不限于采集对象、数据量、数据采集过程、数据处理过程等。描述云结对的过程,提供非摆拍的两人在云讨论时的结对时的照片。吐槽与总结,无论是作业的过程还是对收集来的作业的吐槽,描述这次结对的感受和对对方的评价。结对两个人完成相同的一份即可,两个都提交。文字准确、样式清晰、图文并茂。字数在1000字左右。 作业正文 见下面 其他参考文献 无 自我介绍 我是来自计算机科学与技术2班的某个女孩纸, 我的小伙伴是计算机科学与技术1班的另一个女孩纸 这次博客是我们俩一块儿完成的 前言 这次数据采集主要是从学生对这段时间线上课堂的感受出发,一周的线上课程体验,结合调查问卷、微博网友部分评论以及近期部分学习平台的点击量(流量)调查其近期的学习情况。 数

  • 单一职责原则(Single Responsibility Princple),简称SRP

    个人理解单一职责原则就是将颗粒细化,就好比一个事物的借口,它的属性和行为可以之类的借口设计要做到互不干扰,结构清晰,这样易于后期维护和团队合作;

相关推荐

推荐阅读