华为荣耀e75O一T01相机存储卡卡应该用多少eB的,本机是8eB最大支持32eB的micY0sD卡扩展

希而科工业控制设备(上海
类型:经销商
联系人:黄一鹏
电话:86-021-
传真:86-021-
联系我时,请说明是在中国安防展览网上看到的,谢谢
主营产品:工业控制仪器仪表及零部件
公司性质:经销商
该商家其它产品
摘要:Dietz超出众报价AGFDRU160L/2Artikel-Nr.5phone:
摘要:INOR德国资料IPAQ-LPLUSHBMAG1-U9C/20KNphone:最快的报价A
摘要:parker大数据报价ZNS-AB02-5-S0-D1wandfluhAGS4410A-G24phone:1881758
摘要:phone:最快的报价Attn:黄一鹏(先生)QQ询价:
摘要:phone:最快的报价Attn:黄一鹏(先生)QQ询价:
摘要:phone:最快的报价Attn:黄一鹏(先生)QQ询价:
摘要:phone:最快的报价Attn:黄一鹏(先生)QQ询价:
摘要:phone:最快的报价Attn:黄一鹏(先生)QQ询价:
其它商家同类产品&p&某通信公司,HK某运营商项目,某中间件产品,实时系统,三期割接上线。&/p&&p&因为一期二期已经上线,现网系统已经承载C网200w用户。&/p&&p&连续两晚通宵,终于成功割接,系统运行正常。&/p&&p&一觉醒来,下午四点,业务高峰,登录系统检查状态,运行正常,但发现系统后台目录下有11个昨晚操作留下临时文件,一共都不到1M的样子。完美主义者+强迫症患者。没经客户允许,打算直接删除。好了,事情来了。&/p&&p&业务操作员,应用后台home目录下,rm -rf ./*XXXX* 不知道怎么敲成了rm -rf ./* XXXX* 。多了个空格。&/p&&p&rm 3秒没完成,第一反应,麻蛋,不对劲,貌似这次删除时间有点长。&/p&&p&随即系统立即报出rm: cannot remove directory `./mdsfiles': Device or resource busy,&/p&&p&X,TMD,这可是生产环境啊,完了,出事了,赶紧一顿 Ctrl+C,12个^C,rm操作取消。ls查看文件,不用细看就知道明显少了好多文件。&/p&&p&下图就是SecureCRT记录的当时的操作日志。(16:15:08的操作是Tab,不是回车,16:15:11的操作才是真正的rm操作)&/p&&figure&&img src=&https://pic4.zhimg.com/v2-2a94d21c6e3720ecf42f83_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&673& data-rawheight=&242& class=&origin_image zh-lightbox-thumb& width=&673& data-original=&https://pic4.zhimg.com/v2-2a94d21c6e3720ecf42f83_r.jpg&&&/figure&&p&&br&&/p&&p&其实之前身边已经有人因为rm文件出过事故,自己也曾多次脑补过这个场景,也因为好奇使用root用户在测试镜像下搞过rm -rf /。&/p&&p&但第一时间还是懵了。也许是HK的空调太低,并没有惊出一身汗,只是手有点抖。&/p&&p&赶紧登录Web前台监控系统状态,发现监控进程自己都已经挂掉了,业务进程状态无法查询。不行,要Hold不住。&/p&&p&通知身边同事,和PM汇报上升问题,看看能不能让客户上游请求系统先暂时自己缓存请求,给我们半小时时间恢复之后再下发。后来据说当时PM正在和客户开会,和客户说了我们系统出了问题,客户脸都白了,本想联系他主管,但又觉得不够,直接打了电话给主管的主管,说赶紧下发紧急告警,启动应急预案。&/p&&p&同时我这边Web前台查询请求状态,发现还在处理业务请求。数据库查询请求数量,发现并无明显积压。感觉主进程应该暂时还在,我们应该还可以自己Hold一会。赶紧让同事和PM说让客户先不要操作,我们自己再压一会儿。PM和正在给领导打电话的客户谎称是我们自己看错了。客户又在电话里大喊告警解除。有种电影里发射核弹的感觉,很遗憾当时没在场。如果启动应急预案,估计可以去客户官网看公告了。&/p&&p&凭直觉直接脚本拉起监控进程,命令敲完一半,Tab联想不出来,才发现启动脚本都已经删没了,Fxxx。因为生产环境为双机,本来可以切换到备机,但双机管理软件因为这次上线已经冻结,现在恢复管理未必成功,如果中间出现问题无法完全启动将会更加麻烦,而且切换过程中必定存在业务中断,现在是业务高峰,所以不到万不得已,绝对不能切!&/p&&p&全量下载备机环境,并和主机比对,批量上传缺失文件,更新权限777。脚本拉起监控进程,启动正常。重新登录web前台,已经可以查看系统状态,发现两个主进程的确还在。&/p&&p&初步Hold住,赶紧联系机关R&D,手机热点,远程共享桌面,逐一反馈修复之后后台目录下文件信息,确认主要文件都在,并评估部分缺失文件及本次操作影响。&/p&&p&目前系统状态基本正常,CPU占用率较高,原因还需定位,预计后续可能会出现报错,但应该不至于影响业务。再次和PM汇报情况,但PM已经气得不接我电话了...&/p&&p&误删文件之后,系统依旧坚挺,这应该是这次不幸中的万幸,一直被我们抱怨不靠谱的新系统,这次终于靠谱了一把,也救了我一命。也幸好内部消化,否则饭碗肯定不保了。&/p&&p&现在监控系统状态中,感觉应该趁加班写个脚本,以后更安全的调用rm。&/p&&p& 更新:&br&因为当时是业务高峰,且并没有有效定位思路,所以虽然CPU已经飙到300+%,但依旧决定进一步监控看下。当天夜里CPU使用率居高不下,但一切正常。第二天凌晨两点,爬起来监控,发现Web前台监控进程又挂了。深深呼了一口气,冷静。VPN远程登录服务器,看了下日志,有磁盘空间不足的报错。df一下,果然磁盘空间不足。du一下发现,是系统日志目录过大,后台一晚上打了几百G的日志。&br&拉一个下来,同时删除其余日志文件。再次手动拉起监控进程,系统监控页面恢复,日志仍在迅速增长。&/p&&p&看了下拉下来的日志,发现全是x个文件请求监控线程的报错,请求路径不存在。登上服务器看了下,发现文件请求目录的确不存在。下午恢复的时候,只恢复了主路径,并未恢复子路径(子路径为系统启动时自动创建,备机环境并无子路径)。mkdir手动创建目录。ll日志不再迅速增长,tail一下可以看到正常请求日志。感觉CPU使用率居高不下的原因肯定也是因为这个,登录Web前台,发现果然已经降到80%左右。&/p&&p&夜深人静,一个人偷偷摸摸擦屁股的感觉真不好。&/p&&p&睡觉。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-8b92cbe8d75af82d13f338_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&2448& data-rawheight=&2448& class=&origin_image zh-lightbox-thumb& width=&2448& data-original=&https://pic1.zhimg.com/v2-8b92cbe8d75af82d13f338_r.jpg&&&/figure&&p&&br&&/p&&p&第二天早上起来,VPN监控,系统状态正常,请求处理正常。七点,背着笔记本去见异地的女友。中午登录系统检查状态的时候发现,进程一切正常,CPU使用率在30%左右,的确不高,但是这低得也有点夸张啊。紧接着查询了下请求状态。妹的,从早上八点50之后就再也没有新请求过来。这他妹的少说也丢了几十万条的请求了。完了,饭碗又不保了。&br&正打算联系客户,客户的WhatsApp就过来了。很奇怪的是,客户语焉不详,感觉似乎是早上很快就发现了,只是一直不确定是不是他们自己请求系统(客户自己开发,和我们同时上线)的问题,所以直到下午才找到我们,这帮孙子...现在要拉上我们一起联合定位,定位个鬼,赶紧力荐客户重启。反正现在环境文件已经完全恢复,只要重启,昨天下午删除操作的一切可能的隐患都可以规避掉。&/p&&p&结果是重启之后果然就好了。后续定位这次的工单丢失4个小时是因为客户自己请求系统的Bug导致的,和那次误删没关系。但是两件事碰巧先后发生,真的是不得不让人紧张。&br&突然想到了我“岳父”的一段话:有时候,“虚惊一场”这四个字是人世间最美好的成语,比起什么兴高采烈,五彩缤纷,一帆风顺都要美好百倍。你可懂什么叫失去。这些时间来,更觉如此。愿悲伤恐惧能够过去,事外之人更懂珍惜。&/p&&p&终:后来在不久之后的一次和客户申请的正式升级操作过程中已将系统全部重新部署,现在已经稳定运行。我也于2016年7月结束14个月的HK项目交付工作,外人看来的“功成身退”,只有我自己知道这段日子有多难熬。&/p&&p&更新&/p&&p&不知道是不是因为这两天的gitlab rm -rf事故让大家对这个问题产生了兴趣,但两天500+的点赞量着实让我有点受宠若惊。&br&其实这次经历很大一部分原因在于我自己的手残,而且处理的方式也并无什么值得借鉴之处,所以这么高的点赞量让我更加惭愧。&/p&&p&于心有愧,所以我觉得应该和大家分享自己的一些思考...&/p&&p&1.工作的时候尽量保持清醒,进行高危操作的时候一定要保持清醒&/p&&p&2.建议每次执行rm操作前,核对一遍之后再敲回车(虽然这个动作可能已经成为很多程序员神经回路的一部分)。如有必要,可对rm命令设置alias,设置别名为mv到指定目录,crontab定时清理 &/p&&p&3.做好用户权限控制,root不公开,使用低权限业务用户进行日常操作。需要高权限使用密码sudo (当时使用的业务用户,操作的是应用后台根目录,误删文件的数量,用途和影响至少都大致了解,风险可控)&/p&&p&4.操作窗口之外,不要乱动生产,我现在觉得最好登都不要登&/p&&p&更新&/p&&p&&a class=&member_mention& href=&//www.zhihu.com/people/ecc0ec035f& data-hash=&ecc0ec035f& data-hovercard=&p$b$ecc0ec035f&&@vczh&/a& 轮子哥竟然点赞了,有点受宠若惊。&/p&&p&最近工作一直比较忙,评论内容稍后回复。 -- 0&/p&
某通信公司,HK某运营商项目,某中间件产品,实时系统,三期割接上线。因为一期二期已经上线,现网系统已经承载C网200w用户。连续两晚通宵,终于成功割接,系统运行正常。一觉醒来,下午四点,业务高峰,登录系统检查状态,运行正常,但发现系统后台目录下…
&figure&&img src=&https://pic4.zhimg.com/v2-a01a92d0b32ef71a63da9aaa10bd7a31_b.jpg& data-rawwidth=&527& data-rawheight=&260& class=&origin_image zh-lightbox-thumb& width=&527& data-original=&https://pic4.zhimg.com/v2-a01a92d0b32ef71a63da9aaa10bd7a31_r.jpg&&&/figure&&p&这期文章,作者君想给大家讲讲一个对于模拟工程师来说,既熟悉又有点陌生的内容:ESD Electrostatic discharge, 也就是所谓的“&b&静电保护&/b&”。&/p&&p&Wikipedia里面是这样定义的:Electrostatic discharge (ESD) is the sudden flow of electricity between two electrically charged objects caused by contact。翻译过来呢,就是指两个储存有电荷的物体相互接触时候产生的瞬时电流。&/p&&p&最近作者君做的项目呢,对于ESD的要求比较严格,就经常和一个ESD部门的哥们讨论学习一下。他告诉我说,ESD可以在任何地方发生,无论是制造,生产,装配,测试,甚至运输及现场应用。当时我就有一种想放弃治疗的想法。。。。&/p&&p&那么,问题来了,我们怎么在电路中对其进行模拟并仿真呢?一般我们熟悉并且在电路仿真里面需要用到的模型有两种:CDM和HBM. &/p&&p&CDM就是所谓的Charge Device Model,HBM就是所谓的Human Body Model。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f634d2e7a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&519& data-rawheight=&229& class=&origin_image zh-lightbox-thumb& width=&519& data-original=&https://pic4.zhimg.com/v2-f634d2e7a_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-6109c4cbb4c806a4096d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&565& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&565& data-original=&https://pic1.zhimg.com/v2-6109c4cbb4c806a4096d_r.jpg&&&/figure&&p&两者对比可以看出,一般来说CDM的电流比HBM的电流大一些、也快一些,因为并无较大的电阻在放电通路上面限制放电的过程。&/p&&p&因此,在ESD的仿真中,需要在supply上添加这样一个pulse电压。例如:CDM情况下,supply上面需要加入一个高达15V的pulse,上升沿和下降沿都是200ps,持续4ns。而在HBM的情况下,这个pulse的peak电压仅仅只是6V,上升沿和下降沿是2ns,持续时间400ns。&/p&&p&这里插入一句那个哥们的话:“我们就是计算这种 secondary 的ESD的相关数值给你们用的啦。”说罢,事了拂衣去,深藏身与名。。。&/p&&p&等等,为什么上来就说到了&b&secondary ESD protection&/b&呢?既然有&b&secondary ESD&br&protection&/b&,那&b&primary ESD protection&/b&在哪里呢?&/p&&p&我们熟悉的IO结构,那种上下各有一个diode的pad,就是primary esd protection:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-760beb8b6b72f97a261bbe_b.jpg& data-size=&small& data-rawwidth=&761& data-rawheight=&632& class=&origin_image zh-lightbox-thumb& width=&761& data-original=&https://pic3.zhimg.com/v2-760beb8b6b72f97a261bbe_r.jpg&&&figcaption&通用型的带ESD保护的IO&/figcaption&&/figure&&p&比如HBM模型里面,IO被加上一个+2000V的高压,则上面的diode D1就自然导通了,外界的高压顺着VDDP被迅速导走。同理,若是加上一个-2000V的高压,D2就导通了,大电流从VSSP快速流向IO,也未伤及内部的电路。&/p&&p&在这里,作者君想问大家一个问题:VDDP和VSSP都是给IO的diode们提供偏置的supply。那么VDDP和VSSP的IO 又当是怎么样的呢?还能上下各放一个diode吗?&/p&&p&快速思考一秒后……&/p&&p&肯定不能是这样的嘛!感觉就是不能这样……&/p&&p&那没有了上下两个diode,要如何保护VDDP和VSSP的IO呢?&/p&&p&嘿嘿,不如去看看VDDP和VSSP的IO电路好了!&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ef778f0ebb0a79589baf_b.jpg& data-size=&normal& data-rawwidth=&1416& data-rawheight=&632& class=&origin_image zh-lightbox-thumb& width=&1416& data-original=&https://pic1.zhimg.com/v2-ef778f0ebb0a79589baf_r.jpg&&&figcaption&包括了IO的ESD protection的pad模型&/figcaption&&/figure&&p&因此,此处应当有另外的ESD保护电路在VDDP的IO和VSSP的IO之间。比如VDDP被加上+2000V的高压时,通过这个ESD diode快速导走高压电流。而当VDDP是0,而VSSP被加上+2000V的高压时,这个……&/p&&p&等等,容在下先想想,这里有两个方向相反的diode吗?&/p&&p&……&/p&&p&一秒后。&/p&&p&如果VSSP被加上了+2000V,那么岂不是所有的IO都挺热闹了?&/p&&p&为什么这么说?&/p&&p&嘿嘿,所有的nwell都是被VDDP给biased成为0V,而substrate因为VSSP变成了2000V,那么,岂不是&b&所有的nwell和sub之间的寄生diode都被打开了&/b&?&/p&&p&哇!想想看,听起来好欢乐的场景啊!&/p&&p&然后,作者君听说,还有一个所谓的“&b&1 Ohm”原则&/b&,据说是从IO到那些esd diode之间的导通电阻必须要小于1 Ohm,以免寄生电阻太大,影响了快速放电的效果,避免有些“漏网之鱼”流到内部电路里面去了。所以大家若是仔细看看IO的版图,会发现那里metal真是密密麻麻的,“无所不用其极”。&/p&&p&最后,再多说一个小的电路(懒得画图,所以拿来借用一下):&/p&&figure&&img src=&https://pic2.zhimg.com/v2-681ba42b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&301& data-rawheight=&257& class=&content_image& width=&301&&&/figure&&p&&i&[来自:&a href=&https://link.zhihu.com/?target=https%3A//interferencetechnology.com/seeding-and-harvesting/%23& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&interferencetechnology.com&/span&&span class=&invisible&&/seeding-and-harvesting/#&/span&&span class=&ellipsis&&&/span&&/a&]&/i&&/p&&p&这也是一个ESD的保护电路。为什么要说这个呢?因为作者君昨天刚刚被要求在自己内部的电路上面加一个nmos的switch,这个nmos的gate就是图中A点。而且被人告知,这也是secondary ESD protection。(请大家注意,这个fig.1是io的一部分,那个大的nmos并不是内部电路。我在说的是内部电路可以使用io的内部节点进行控制)&/p&&p&我们简单分析一下:如果VDD上面有高压pulse的时候,因为电容的电压滞后作用,电容上面的电压并没有跟着VDD迅速提高。因此此时Mp的gate电压值比source小了不少,导致Mp导通,A点也被连到了VDD上面,巨大size的Mclamp被打开,VDD和VSS通过Mclamp连在了一起。这样一来,&b&&u&VDD上面的pulse就这样被巨大的Mclamp给导走&/u&了&/b&,因此,我们脆弱的内部电路也就被保护了起来。&/p&&p&再回到作者君被要求加switch的地方。那个nmos的switch其实类似于一个power down的功能,只是被图中的A点控制着。当出现很严峻的ESD event的时候,内部电路能关断的赶紧关断,千万不能给ESD的大电流有可乘之机。&/p&&p&最后推荐大家一篇博士论文:&br&&a href=&https://link.zhihu.com/?target=http%3A//www-tcad.stanford.edu/tcad/pubs/theses/ShuqingCao.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&www-tcad.stanford.edu/t&/span&&span class=&invisible&&cad/pubs/theses/ShuqingCao.pdf&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&这篇论文里面还很详细的讲了随着工艺的缩小,所谓的ESD Design Window是如何越来越小的。因为gate oxide的尺寸越来越小,gate的击穿电压也会变小,ESD protection的可以使用的范围也越来越小。听起来真是很可怜!&/p&&p&据作者君的比较,0.18um的IO和28nm的IO大小并无很大区别(甚至28nm的似乎看起来更大一些)。花了那么多力气减小工艺尺寸,即使内部电路变小,却被IO的面积给瓶颈了。这真是个悲伤的故事啊!&/p&&p&&br&&/p&&p&&b&PS:一些可供参考的Reference:&/b&&/p&&ul&&li&&b&Understanding ESD And EOS Failures In Semiconductor Devices&/b&&/li&&li&&b&CDM和HBM. &br&(&a href=&https://link.zhihu.com/?target=http%3A//www.electronicdesign.com/power/what-s-difference-between-hbm-cdm-and-mm-test& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&electronicdesign.com/po&/span&&span class=&invisible&&wer/what-s-difference-between-hbm-cdm-and-mm-test&/span&&span class=&ellipsis&&&/span&&/a&)&/b&&/li&&/ul&&p&——————————————————————————————————————&/p&&p&&b&原创声明:本文为原创,未经许可,严禁转载。如需转载,请联系作者。&/b&&/p&&p&&b&微信公众号:analogIC_gossip&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/e68ad9e9d09b5e05051e8ca_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&258& data-rawheight=&258& class=&content_image& width=&258&&&/figure&
这期文章,作者君想给大家讲讲一个对于模拟工程师来说,既熟悉又有点陌生的内容:ESD Electrostatic discharge, 也就是所谓的“静电保护”。Wikipedia里面是这样定义的:Electrostatic discharge (ESD) is the sudden flow of electricity between two ele…
&figure&&img src=&https://pic3.zhimg.com/v2-efd_b.jpg& data-rawwidth=&500& data-rawheight=&330& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&https://pic3.zhimg.com/v2-efd_r.jpg&&&/figure&&p&这是IC君的第18篇原创文章 (同步于公众号 icstudy)&/p&&p&电压/电平转换器(Level Shift,LS)是一个在SOC设计中经常会用到的基础电路。它的主要作用是将输入信号从一个电压域切换到另一个电压域。不同电压域的VDD是不一样的,如果不进行电压转换,器件就无法正常工作。举个例子,将1V的电压信号送到5V的电压域,有可能连5V区域MOS的VTH都达不到(通常VDD越高的工艺对应MOS的VTH也越高),器件自然无法工作了。就IC君的认知来看,LS存在以下的应用场景:&/p&&p&&br&&/p&&p&&b&应用场景1:&/b&随着逻辑电路的电压从3.3V一步步走到1V甚至0.8V,有时候为了低功耗的设计,芯片内部通常会划分为不同的电压区域,这时候电平转换器(LS)能够帮助不同电压域的模块通信。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-ef21bf9bc2eab6b4b1c243_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&374& data-rawheight=&362& class=&content_image& width=&374&&&/figure&&p&有同学可能就要问了,我这边用的电压范围都是1V左右,应该不需要用LS吧? 也许0.8V送到1.2V区域后反相器等器件最后都能翻对,但是0.8V的输入有可能会同时打开1.2V区域的NMOS和PMOS,这样会产生比较大DC电流,消耗大量的power。&/p&&figure&&img src=&http://pic4.zhimg.com/v2-dbf6ee0d8dedb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&366& data-rawheight=&172& class=&content_image& width=&366&&&/figure&&p&另外我们平时综合用的标准单元库也是基于干净快速的输入建立的时序参数,如果跨区域使用,可能会使得输入slop不可控而且电压只在某一段电压区间,这样有可能导致时序的不收敛。&/p&&p&&b&应用场景2:&/b&还有一种情况是芯片内部通过电荷泵(Charge Pump)或者BOOST电路产生了远高于电源电压(VDD)的高压(VH),电平转换器(LS)常被用来控制这类高压电路。&/p&&figure&&img src=&http://pic1.zhimg.com/v2-01e9cc06280c8efa7524_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&934& data-rawheight=&269& class=&origin_image zh-lightbox-thumb& width=&934& data-original=&http://pic1.zhimg.com/v2-01e9cc06280c8efa7524_r.jpg&&&/figure&&p&电压转换方向分为两种:由高到低,由低到高。下面就来聊聊这两种方向的LS如何设计。&/p&&p&&b&LS 从高到低&/b&&/p&&p&从高压转低压是比较容易实现的,只要通过两级反相器就可以实现。例如从3.3V转1.8V时,两个反相器电源都连1.8V,其中第一级反相器采用3.3V的器件,第二级反相器采用1.8V的器件。&/p&&figure&&img src=&http://pic2.zhimg.com/v2-50d4e499d79e4ea61f43dc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&161& data-rawheight=&169& class=&content_image& width=&161&&&/figure&&p&&b&LS 从低到高&/b&&/p&&p&下图a 是一个常用的标准电平转换器(LS)电路图,当输入Vin从0V上升到2V时,输出Vout从0V上升到Vpp。从图中可以看到三个关键参数分别是&/p&&p&1)输入Vin的电压 &/p&&p&2)PMOS和NMOS的尺寸 &/p&&p&3)最终Vpp的电压。&/p&&figure&&img src=&http://pic2.zhimg.com/v2-3f97e8dcbfbad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&388& data-rawheight=&285& class=&content_image& width=&388&&&/figure&&p&
一般VDD由具体的项目决定,没办法改变。Vpp则是由于电路的特殊需求来决定的,在做LS的时候我们唯一能动的就是PMOS和NMOS的尺寸,当然LS本身的结构还是可以随着具体条件做出相应的优化。在讨论MOS的尺寸前我们先看图:&/p&&figure&&img src=&http://pic4.zhimg.com/v2-cc72ce34a6eb88d76d6edcae_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&464& data-rawheight=&178& class=&origin_image zh-lightbox-thumb& width=&464& data-original=&http://pic4.zhimg.com/v2-cc72ce34a6eb88d76d6edcae_r.jpg&&&/figure&&p&
为了保证LS能够正常工作,一般希望电路工作在VFIN1点,即NMOS线性区电流要大于PMOS饱和区电流。LS的翻转速度可以用来计算PMOS的尺寸,希望翻得快一点,PMOS的尺寸就大一点。再根据P/N MOS电流比来确定NMOS的尺寸,这样一个LS就被设计出来了。大家可以根据自己能接触到的工艺,来进行设计。&/p&&p&
假如遇到的VPP电压很高,上面的基本结构LS就容易遇到热载流子(热电子)效应进而损伤器件。&/p&&p&&i&热载流子效应:在强电场作用下,载流子沿着电场方向不断漂移,不断加速,即可获得很大的动能,从而可成为热载流子。热载流子注入栅氧化层的过程中会产生界面态和氧化层陷落电荷,造成氧化层的损伤。随着损伤程度的增加,器件的电流电压特性就会发生改变。当器件参数改变超过一定限度后,器件就会失效,器件损伤的程度和机理取决于器件的工作条件。&/i&&/p&&p&一般不希望漏源电压VDS超出限定值,这时候就可以用下图的叠加了两颗MOS的LS结构来有效抑制热载流子效应。因为热载流子效应主要原因是VDS过高,那么引入一个V1介于VH与VDD之间的中间电压,这样每颗MOS在LS工作时都不会超出限定的VDS值。&/p&&figure&&img src=&http://pic3.zhimg.com/v2-e1bd15a37f8bba1df3d2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&293& data-rawheight=&414& class=&content_image& width=&293&&&/figure&&p&我们在使用LS时必须注意,LS只是作电平转换,并不会影响电路的具体功能。但是LS通常会引入比较明显的delay,比如从1.8V到6V可能需要十几n。&/p&&p&&br&&/p&&p&
在数字电路中不同的电压域需要用LS来把交互界面切的比较干净,通常2个电压域的差别越大,delay越大。所以我们在做RTL设计要考虑进去。另外我们在高到低,低到高电压域切换时LS不要用错。&/p&&p&&br&&/p&&p&&b& 因为微信后台留言48小时后无法回复,如果IC君没有及时回复你的问题,请再次留言哦,谢谢!&/b&&/p&&p&&/p&
这是IC君的第18篇原创文章 (同步于公众号 icstudy)电压/电平转换器(Level Shift,LS)是一个在SOC设计中经常会用到的基础电路。它的主要作用是将输入信号从一个电压域切换到另一个电压域。不同电压域的VDD是不一样的,如果不进行电压转换,器件就无法正…
&p&&b&1.&a href=&//link.zhihu.com/?target=http%3A//www.cnblogs.com/subconscious/p/5058741.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&神经网络深入浅出&i class=&icon-external&&&/i&&/a&
!!!!!!!!!!!!!!!!!&/b&&/p&&p&&br&&/p&&p&&b&认真看两遍,保证你神清气爽。&/b&&/p&&p&&b&看懂了后,回来点个赞,就当你的答谢了。&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&这个博客下的另一篇文章也写的不错&/b&&/p&&p&2.&a href=&//link.zhihu.com/?target=http%3A//www.cnblogs.com/subconscious/p/4107357.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&从机器学习谈起&i class=&icon-external&&&/i&&/a&
不错,不过,我推的都只是适合初学者哦,大神们绕道走开&/p&&p&&br&&/p&&p&&br&&/p&&p&3.还有一篇关于SVM的,虽然有点跑题了,但是也觉得特别好。&a href=&//link.zhihu.com/?target=http%3A//blog.pluskid.org/%3Fpage_id%3D683& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM讲解&i class=&icon-external&&&/i&&/a&&/p&&p&虽然第三个链接有点跑题,但是讲真,学AI怎能不学SVM,这是我在一次双语课上做pre,查资料用到的最多的一个blog了。认真看两遍,基本可以自己跑代码了。还是不会的,欢迎私信我,一起进步。&/p&&hr&&p&哈哈哈哈哈
开心,我以为会没人看,一晚上醒来赞变多了,也算是肯定了。学神经网络的人儿们好好努力哦,好了,大早上的,我也继续看书了。&/p&
1. !!!!!!!!!!!!!!!!! 认真看两遍,保证你神清气爽。看懂了后,回来点个赞,就当你的答谢了。 这个博客下的另一篇文章也写的不错2. 推荐 不错,不过,我推的都只是适合初学者哦,大神们绕道走开 3.还有一篇…
&p&按下电源键启动,那个简单到极致的动作后面隐藏了复杂的机理。启动的开始并不仅仅是操作系统引导,亦或BIOS运行,甚至CPU在reset vector执行第一条指令之前,很多事情已经发生了。正如地球生命的发端并不由人类的到来而伊始,秘密隐藏在远古而不为人知的远古时代。让我们顺着时间回溯,站在一切发生的起点:“电源键按下”,通过时间的流转,梳理其中所有的硬件软件过程,来深入了解计算机的工作原理。&/p&&h2&&b&史前时代:上电时序&/b&&/h2&&p&上电时序,也叫做Power-up Sequence,是指电源时序关系。它牵扯到诸多计算机部件,在正式开始时间之旅之前,我们来介绍一下所有参与的小伙伴们。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-d0eed_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&391& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-d0eed_r.jpg&&&/figure&&p&&b&电源&/b&&/p&&p&ATX电源提供+12V、-12V、+5V、-5V、+3V和+5VSB等六种电压。也就是我们图上的两个白色的电源接入口。主板其他的不同电压是主板上的变压线路转换过来的,他们包括+3VSB、+1.5VSB、1.8VDual、2.5VDual、3VDual、VCore、VTDDR等等很多。&/p&&p&+12V主要是给CPU内核供电,它可以单独给PCIe设备供电,包括显卡等等。+5V应用最广,给USB等等外设供电。+5VSB等各种带SB的电压,是提供Stand By的供电,即在S3 Sleep时提供电力,保障唤醒和刷新。&/p&&p&主板右边中间那个纽扣电池,它叫做RTC电源,永不掉电。除非电池没电并且没接任何外部电源。 RTC用以保持机器内部时钟的运转和保证CMOS配置信息在断电的情况下不丢失。&/p&&p&&b&时钟&/b&&/p&&p&电脑中的CPU,AGP、PCI插槽、SATA、USB端口和PS/2端口等在通信速度上有很大差异,所以需要提供不同的时钟频率。由ck410、ck505和iCLK等芯片将原先散布在不同地方的晶振和分频电路整合在一起,为CPU、SATA、PCI、USB等等设备提供基础频率。&/p&&p&&b&电源时序控制芯片/电路&/b&&/p&&p&主板对于上电的要求是很严格的,各种上电的必备 条件都要有着先后的顺序,一项条件满足后才可以转到下一步,如果其中的某一个环节出现了故障,则整个上电过程不能继续下去。谁来控制和协调整个时序过程呢?不同的主板、芯片组、代际之间都有不同的方案,在笔记本上过去经常采用EC的方案、台式机则很多用SIO或者定制芯片。现在很多电源时序控制被整合进了ME中,在面向嵌入式设备的Atom系列主板上则越来越多的引入了在手机等设备上常用的PMIC。&/p&&p&&b&时间开始&/b&&/p&&p&我们通过一个古老的例子来了解一下开机的整个过程:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2278dffda5d595d6ddb4ea_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&606& data-rawheight=&385& class=&origin_image zh-lightbox-thumb& width=&606& data-original=&https://pic3.zhimg.com/v2-2278dffda5d595d6ddb4ea_r.jpg&&&/figure&&ol&&li&在G3(未接电源)情况下,RTC电源提供RTC_RST#和VCC_RTC电源给南桥。&/li&&li&插入电源或者电池。系统进入G2,S5的状态。EC检查电源的可靠性,并发送PM_RSMRST#通知南桥各种SB电压已经准备完毕。南桥复位,部分功能SB功能激活,进入待机状态。&/li&&li&&b&用户按下电源键,时间开始。&/b&&/li&&li&EC收到PWRSW#信号,通过PM_PWRBTN#通知南桥。南桥收到PM_PWRBTN#信号后依次拉高SLP_S5#,SLP_S4#,SLP_S3#信号给EC。&/li&&li&EC发出PCON#给ATX电源。&/li&&li&ATX电源接到低电平的PSON#信号后,开始工作,发出各路基本电压给主板上的各个元件。&/li&&li&基本电压变换的其他电压也被转换出来。&/li&&li&电源发出PWROK#给EC,EC转交给南桥和北桥(有的话)&/li&&li&VRM和CPU通讯,根据VID送出Vcore&/li&&li&VRM发生VRMPWRGD#给南桥,表示核心电压OK。&/li&&li&南桥发送PLT_RST#给北桥。&/li&&li&南桥发送PWRGOOD#给CPU。&/li&&li&北桥在收到PLT_RST#信号后,1秒钟后发生CPU_RST#,让CPU复位&/li&&/ol&&p&时序图如下:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-e0edcf8bbc8f7ef53c1ba67_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&339& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic4.zhimg.com/v2-e0edcf8bbc8f7ef53c1ba67_r.jpg&&&/figure&&h2&&b&青铜时代:神秘消失的时间&/b&&/h2&&p&在CPU复位后,是不是要立刻跳到reset vector开始执行BIOS程序了呢?还没有,pcode、on die rom会在这个阶段执行,TXT、boot guard等安全保障措施也在这里运行。&/p&&h2&&b&城邦时代:UEFI的四个阶段&/b&&/h2&&p&CPU终于开始执行reset vector的代码了,这就进入了我们熟悉的UEFI的世界。我们之前已经有很多文章都有介绍UEFI的各个阶段,这里简单回顾一下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-dc5dc520ffdbc7f772d4810a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&473& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-dc5dc520ffdbc7f772d4810a_r.jpg&&&/figure&&p&o 在SEC阶段,系统从复位开始运行(由主机引导处理器取回的第一指令),通过初始化处理器高速缓存(Cache)来作为临时内存使用,我们有了堆栈,从而可以执行c程序,然后转到PEI阶段。&/p&&p&o 在PEI最开始阶段,仅少量栈和堆可用,我们需要找到并使能足够我们使用的永久内存,通常是内存颗粒或内存条(DIMM),然后转入DXE。&/p&&p&o DXE阶段有了永久存储空间,真正开始负责初始化核心芯片,然后转换到BDS阶段。&/p&&p&o 核心芯片初始化完成后BDS阶段开始,并继续初始化引导操作系统(输入,输出和存储设备)所需的硬件。 纵观PI的整个阶段,BDS对应的是“执行UEFI驱动程序模型”来引导OS这一过程。&/p&&p&UEFI引导阶段步骤和驱动程序众多,经过多年发展,核心代码已经超过一百万行,俨然已经是个独立的小王国了。要理解UEFI,&b&必须理解UEFI的目的:初始化硬件,安全启动操作系统,并为操作系统提供统一的硬件抽象&/b&。所有纷繁复杂的驱动和表象后面,都在为了这一目的服务。只要抓住这条主线,再遇到其他的知识点也就会豁然开朗了。&/p&&h2&&b&近代和现代:引导程序和操作系统&/b&&/h2&&p&UEFI会在BDS阶段后加载操作系统引导程序,也就是OS loader。不同的OS有不同的Loader。一般用户都十分熟悉,我们这里不再赘述。&/p&&p&&b&另外传统BIOS和BIOS引导方式已经被淘汰&/b&。Intel也宣布对传统BIOS兼容模式(CSM)在2020后不再支持(参考资料1)。网上诸多Int3、引导扇区等内容,除非对历史有兴趣,全部可以一笑而过了。&/p&&h2&&b&结论&/b&&/h2&&p&按下电源键,CPU并不是第一个得到通知并立刻执行代码的。简单的开机后面隐藏了如此丰富的内容,这是很多人想象不到的。很多主板,尤其是很多服务器主板,从按下电源键到CPU开始执行UEFI固件程序,期间经历了很多隐藏的片段。这些片段可长可短,有的转瞬即逝、有的却让人等上片刻。它们究竟是什么,为什么存在,值得大家细细探究。&/p&&p&本文被整理发布在专栏&a href=&https://zhuanlan.zhihu.com/UEFIBlog& class=&internal&&UEFI和BIOS探秘&/a&中。至于按下电源键如何关机,见专栏另一篇文章:&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&按下电源键后发生了什么?电脑是如何关机的?&/a&&/p&&p&&b&UEFI历史和架构其他文章:&/b&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&UEFI和UEFI论坛 - 知乎专栏&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&UEFI背后的历史 - 知乎专栏&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&ACPI与UEFI - 知乎专栏&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&UEFI安全启动 - 知乎专栏&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&UEFI与硬件初始化 - 知乎专栏&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&UEFI架构 - 知乎专栏&/a&&/p&&p&欢迎大家关注UEFI专栏和用微信扫描下方二维码加入微信公众号&UEFIBlog&,在那里有最新的文章。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-121ecd3d4080deb1c557bf47dc00d246_b.jpg& data-size=&normal& data-rawwidth=&511& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&511& data-original=&https://pic3.zhimg.com/v2-121ecd3d4080deb1c557bf47dc00d246_r.jpg&&&figcaption&用微信扫描二维码加入UEFIBlog公众号&/figcaption&&/figure&&h2&&b&参考资料:&/b&&/h2&&p&[1]: &a href=&//link.zhihu.com/?target=http%3A//tech.sina.com.cn/roll//doc-ifynwxum3322297.shtml& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Intel计划彻底封杀Windows 7系统:2020年之前搞定&i class=&icon-external&&&/i&&/a&&/p&
按下电源键启动,那个简单到极致的动作后面隐藏了复杂的机理。启动的开始并不仅仅是操作系统引导,亦或BIOS运行,甚至CPU在reset vector执行第一条指令之前,很多事情已经发生了。正如地球生命的发端并不由人类的到来而伊始,秘密隐藏在远古而不为人知的远…
&figure&&img src=&https://pic3.zhimg.com/v2-e2c9fe0afe7d4c6bdfa9b_b.jpg& data-rawwidth=&1200& data-rawheight=&630& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&https://pic3.zhimg.com/v2-e2c9fe0afe7d4c6bdfa9b_r.jpg&&&/figure&&p&很多人有个疑问,为什么Intel系列CPU在2005年后可以力压AMD十多年?优秀的Cache设计和卓越的微架构是主要的原因。大多数高层程序员认为 Cache 是透明的,CPU可以很聪明地安排他们书写的程序,不需要关心数据是在内存中还是在Cache里。 他们也许是对的,大部分时间Cache都可以安静的工作。但对于操作系统、编译软件、固件工程师和硬件工程师来说,Cache则需要我们特别关照。现在越来越多的数据库软件和人工智能引擎也对Cache越来越敏感,需要针对性地优化。Cache设计和相关知识从而不再是阳春白雪,你也许某一天就会需要了解它。&/p&&p&本系列希望通过将Cache相关领域知识点拆解成大家关心的几个问题,来串起相关内容。这些问题包括:&/p&&ol&&li&Cache究竟在哪里?&/li&&li&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&Cache是怎么组织和工作的?什么是n-ways Set-Associative Cache?&/a&&/li&&li&什么是Cache Coloring (Page Coloring)? 什么是Inclusive Cache或者Exclusive Cache?&/li&&li&Cache line淘汰算法有哪些?&/li&&li&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&Cache为什么有那么多级?为什么一级比一级大?是不是Cache越大越好?&/a&&/li&&li&Cache的一致性是怎么保证的?&/li&&li&Cache的属性是谁设定的,怎么设定的?&/li&&/ol&&p&下面是本系列的第一篇。&/p&&h2&&b&什么是Cache?&/b&&/h2&&p&Cache Memory也被称为Cache,是存储器子系统的组成部分,存放着程序经常使用的指令和数据,这就是Cache的传统定义。从广义的角度上看,Cache是快设备为了缓解访问慢设备延时的预留的Buffer,从而可以在掩盖访问延时的同时,尽可能地提高数据传输率。 快和慢是一个相对概念,与微架构(Microarchitecture)中的 L1/L2/L3 Cache相比, DDR内存是一个慢速设备;在磁盘 I/O 系统中,DDR却是快速设备,在磁盘 I/O 系统中,仍在使用DDR内存作为磁介质的Cache。在一个微架构中,除了有L1/L2/L3 Cache之外,用于虚实地址转换的各级TLB, MOB( Memory Ordering Buffers)、在指令流水线中的ROB,Register File和BTB等等也是一种Cache。我们这里的Cache,是狭义 Cache,是CPU流水线和主存储器的 L1/L2/L3 Cache。&/p&&h2&&b&Cache在哪里呢?&/b&&/h2&&p&也许很多人会不假思索的说:“在CPU内核里。”Not so fast!它也有可能在主板上!我们先来了解一下Cache的历史。&/p&&ul&&li&PC-AT/XT和286时代:没有Cache,CPU和内存都很慢,CPU直接访问内存。&/li&&li&386时代:CPU速度开始和内存速度不匹配了。为了能够加速内存访问,芯片组增加了对快速内存的支持,这也是在电脑上第一次出现Cache(尽管IBM 360 model系统上已经出现很久了),也是L1(一级Cache)的雏形。这个Cache是可选的,低端主板并没有它,从而性能受到很大影响。而高级主板则带有64KB,甚至高端大气上档次的128KB Cache,在当时也是可以笑傲江湖了。当时的Cache都是Write-Through,即Cache内容的更新都会立刻写回内存中。&/li&&li&486时代:Intel在CPU里面加入了8KB的L1 Cache,当时也叫做内部Cache。它在当时是Unified Cache,就是不分代码和数据,都存在一起。原先在386上面的Cache,变成了L2,也被叫做外部Cache。大小从128KB到256KB不等。这时增加了Write-back的Cache属性,即Cache内容更改后不立刻更新内存,而是在Cache miss的时候再更新,避免了不必要的更新。&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-c5d059e74aa8265ada74a9bcec658001_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&404& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-c5d059e74aa8265ada74a9bcec658001_r.jpg&&&/figure&&ul&&li&586/Pentium-1时代:L1 Cache被一分为二,分为Code和data,各自8KB。这是因为code和data的更新策略并不相同,而且因为CISC的变长指令,code cache要做特殊优化。与此同时L2还被放在主板上。后期Intel推出了&u&&a href=&https://link.zhihu.com/?target=http%3A//en.wikipedia.org/wiki/Pentium_Pro& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pentium Pro&/a&&/u& ('80686'),L2被放入到CPU的Package上:&/li&&/ul&&figure&&img src=&https://pic1.zhimg.com/v2-0a00b2bdb4e8e09fa8546_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&330& data-rawheight=&300& class=&content_image& width=&330&&&/figure&&ul&&li&奔腾2/3:变化不大,L2还在CPU Die外面,只是容量大了不少。&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-f4f65feedd1f6f278720_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&402& data-rawheight=&181& class=&content_image& width=&402&&&/figure&&ul&&li&奔腾4/奔腾D:L2被放入到了Die里面。这就和现在的L1和L2很相像了,问题来了,多内核呢?第一代奔腾D双核中,L1和L2被两个Die各自占据。Netburst的Pentium 4 Extreme Edition高端版甚至加入L3。但在后期与HT一起随着Netburst架构被放弃。&/li&&li&Core/Core2:巨大的变化发生在L2,L2变成多核共享模式:&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-cd11ef0fcf50b3a122cc2c86ae7fea8c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&440& data-rawheight=&232& class=&origin_image zh-lightbox-thumb& width=&440& data-original=&https://pic3.zhimg.com/v2-cd11ef0fcf50b3a122cc2c86ae7fea8c_r.jpg&&&/figure&&ul&&li&现在:L3被加入到CPU Die中,它在逻辑上是共享模式。而L2则被每个Core单独占据。这时L2也常被指做&b&MLC&/b&(Middle Level Cache),而L3也被叫做&b&LLC&/b&(Last Level Cache):&/li&&/ul&&figure&&img src=&https://pic3.zhimg.com/v2-16ada06ec2a01cad09cc4d3c0fcc4b81_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&538& data-rawheight=&340& class=&origin_image zh-lightbox-thumb& width=&538& data-original=&https://pic3.zhimg.com/v2-16ada06ec2a01cad09cc4d3c0fcc4b81_r.jpg&&&/figure&&ul&&li&Haswell/Broadwell:在Iris系列中,一块高速DRAM被放入Package中,叫做eDRAM。&/li&&/ul&&figure&&img src=&https://pic2.zhimg.com/v2-a2e2bf84c15df14f8b8b55_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&427& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-a2e2bf84c15df14f8b8b55_r.jpg&&&/figure&&p&它在平时可以做显存。也可以被设定为L4缓存:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-dada31c65af46f4b82bfe3e8ed63fd32_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-dada31c65af46f4b82bfe3e8ed63fd32_r.jpg&&&/figure&&h2&&b&Cache速度比内存速度快多少?&/b&&/h2&&p&大家都知道内存都是DRAM,但对Cache是怎么组成就所知不多了。Cache是由CAM(Content Addressable Memory )为主体的tag和SRAM组成的。我们今后在系列文章中会详细介绍CAM的组成,这里简单比较一下DRAM和SRAM。DRAM组成很简单:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-81eb423b81c9cdfb08e15a9cfef631c7_b.jpg& data-size=&normal& data-rawwidth=&115& data-rawheight=&77& class=&content_image& width=&115&&&figcaption&DRAM&/figcaption&&/figure&&p&只有一个晶体管和一个电容。而SRAM就复杂多了,一个简化的例子:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-dfab9f7c109_b.jpg& data-size=&normal& data-rawwidth=&249& data-rawheight=&169& class=&content_image& width=&249&&&figcaption&SRAM&/figcaption&&/figure&&p&需要6个晶体管。一个简单的比较如下:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-716fc9fbabee_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&124& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-716fc9fbabee_r.jpg&&&/figure&&p&那么速度差距多大呢?各级Cache的延迟差距很大,如下图:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ce714e2a5ec81adbe545bc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-ce714e2a5ec81adbe545bc_r.jpg&&&/figure&&p&可以看到延迟最低的是Registers和MOB(Memory Ordering Buffers),L1的延迟和CPU core在一个数量级之内(注意这里并不能简单的认为L1就是3个Cycle,因为有pre-fetch),而DRAM延迟是它的60多倍。&/p&&h2&&b&结论&/b&&/h2&&p&说Cache在CPU的Die里面在现在绝大多数情况下都是正确的。最新Intel的optane内存会让普通DRAM作为cache,而自己作为真正内存,从而组成两级memory( L2 memory),为这个结构平添了一些变数。细心的读者也许会发现,Cache演变总的来说级数在增加,新加入的层级在位置上总是出现在外层,逐渐向内部靠近。Cache的设计是CPU设计的重要内容之一,我们会在今后的文章中为大家详细介绍。&/p&&p&&b&Cache其他文章:&/b&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&Cache是怎么组织和工作的?什么是n-ways Set-Associative Cache?&/a&&/p&&p&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&Cache为什么有那么多级?为什么一级比一级大?是不是Cache越大越好?&/a&&/p&&h2&&b&后记&/b&&/h2&&ul&&li&如何知道自己CPU的L2、L3的容量多大呢?当然可以用CPU-z,但其实可以有个更加简单的办法,在命令行输入:&/li&&/ul&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&wmic cpu get L2CacheSize,L3CacheSize
&/code&&/pre&&/div&&p&我的笔记本得到这个结果:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-cc8da8f6f5_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&597& data-rawheight=&44& class=&origin_image zh-lightbox-thumb& width=&597& data-original=&https://pic4.zhimg.com/v2-cc8da8f6f5_r.jpg&&&/figure&&ul&&li&想体验一下不要Cache的极限慢速吗?很多BIOS都有设置,可以关掉cache:&/li&&/ul&&figure&&img src=&https://pic4.zhimg.com/v2-3c7b633ad4d2d1f1318c8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&871& data-rawheight=&445& class=&origin_image zh-lightbox-thumb& width=&871& data-original=&https://pic4.zhimg.com/v2-3c7b633ad4d2d1f1318c8_r.jpg&&&/figure&&p&欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号&UEFIBlog&,在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!&/p&&figure&&img src=&https://pic3.zhimg.com/v2-45479ebdd2351fcdcfb0771bd06fff3a_b.jpg& data-size=&normal& data-rawwidth=&344& data-rawheight=&344& class=&content_image& width=&344&&&figcaption&用微信扫描二维码加入UEFIBlog公众号&/figcaption&&/figure&&p&&/p&
很多人有个疑问,为什么Intel系列CPU在2005年后可以力压AMD十多年?优秀的Cache设计和卓越的微架构是主要的原因。大多数高层程序员认为 Cache 是透明的,CPU可以很聪明地安排他们书写的程序,不需要关心数据是在内存中还是在Cache里。 他们也许是对的,大部…
&figure&&img src=&https://pic1.zhimg.com/v2-f4d9c242d77f8f3d6c0a_b.jpg& data-rawwidth=&1323& data-rawheight=&570& class=&origin_image zh-lightbox-thumb& width=&1323& data-original=&https://pic1.zhimg.com/v2-f4d9c242d77f8f3d6c0a_r.jpg&&&/figure&&p&这是IC君的第16篇原创文章 (同步于公众号 icstudy)&/p&&p&IC君前一篇文章提到的NXP的datasheet&a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMzIxMzg0MDk0Mg%3D%3D%26mid%3D%26idx%3D1%26sn%3Def95c8c327d4a2fb51f10ea%26chksm%3D97b1e4dca0c66dca58e2e388eccd2aacf6da0d1e41eccba34ec13d1e44b64d05%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何阅读datasheet&/a&,描述了一个I2C协议传输的EEPROM。这篇文章我们就来聊一聊I2C总线协议。I2C(Inter-Integrated Circuit)总线是80年代PHILIPS公司开发的&b&两线式&/b&串行总线,如今已经成为芯片间&b&低速&/b&串行通信的事实标准,被广泛使用在消费、控制类电子设备场合。这里的两个关键词&b&两线&/b&和&b&低速&/b&:&/p&&p&&b&两线&/b&意味着结构简单,&b&低速&/b&意味着好实现,做电路的都知道速度越慢电路实现起来就越容易,而且协议方式也很优雅。一个简单、优雅、好实现、应用又广泛的电路协议是不是有必要了解一下呢?&/p&&p&
IC君当年简历里面就写了曾经研究过I2C总线,有些面试官还挺感兴趣哦!&/p&&p&&br&&/p&&p&
下图是一个典型的嵌入式系统的I2C总线应用,系统包含了很多slave从器件,最左边的微控制器是I2C的主器件,它控制了I/O扩赞器、LED闪光灯、ADCs/DAC、EEPROM、LCD驱动器、温度放大器等。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-f4d9c242d77f8f3d6c0a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1323& data-rawheight=&570& class=&origin_image zh-lightbox-thumb& width=&1323& data-original=&https://pic1.zhimg.com/v2-f4d9c242d77f8f3d6c0a_r.jpg&&&/figure&&p&所有这些器件都是通过2根线:时钟SCL和数据SDA来控制。&/p&&p&&br&&/p&&p&I2C总线使用的是开漏结构,这样它可以进行数据的双向传输。下图是一个SDA/SCL线的基本结构,如果Slave或者Master内部的逻辑要用SDA/SCL线的时候,会通过内部的NMOS把SDA/SCL线下拉为地或者0;如果没有Slave或者Master使用SDA/SCL线的时候,上拉电阻Rpu会把SDA/SCL上拉为VDD或high。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-2beb1a3b9ad_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&520& data-rawheight=&335& class=&origin_image zh-lightbox-thumb& width=&520& data-original=&https://pic2.zhimg.com/v2-2beb1a3b9ad_r.jpg&&&/figure&&p&&br&&/p&&p&
总线上有这么多器件,显然需要靠地址来确定访问哪一个器件。主器件与从器件的通信需要发送一个开始条件和一个结束条件。如下图所示:&/p&&p&开始条件:&b&SCL high, SDA high-to-low 转换&/b&&/p&&p&结束条件:&b&SCL high, SDA low-to-high 转换&/b&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-27f8659eccd06b11db8cdf3ecb36d82f_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&377& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-27f8659eccd06b11db8cdf3ecb36d82f_r.jpg&&&/figure&&p&开始条件发送之后,就可以传输数据了,如下图所示I2C协议要求:&/p&&p&&b&传输时钟SCL high期间,数据线SDA必须保持稳定;&/b&&/p&&p&&b&SDA变化相对于SCL的go high 沿有setup时间的要求;&/b&&/p&&p&&b&SDA 变化相对于SCL go low 沿有hold 时间的要求;&/b&&/p&&p&&b&在SCL low 期间,数据SDA才能改变。&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5f407f6afc2a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&356& data-rawheight=&147& class=&content_image& width=&356&&&/figure&&p&而且这里的setup/hold 时间量级是&b&微秒级的或者几百纳秒,&/b&慢速有点体会了吧,一般I2C的频率最快也就1Mhz左右。所以I2C总线上的从器件一般不适合高速数字逻辑电路。&/p&&p&&br&&/p&&p&
下图中传输的数据是0xAAh, 一般地址定义为7位(支持127种不同的IIC设备,如果需要更多器件可以扩展地址),第8位表示读还是写,最后还会跟一个ACK或NACK,如果从器件A的地址为1010101,&/p&&p&&b&A说我现在有空,赶紧过来撩我吧,它会把SDA下拉到low;&/b&&/p&&p&&b&A说我现在没空,不想理你,它就不会下拉SDA,主器件那边有上拉电路把SDA拉到high。&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-526ed466b98fa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1252& data-rawheight=&657& class=&origin_image zh-lightbox-thumb& width=&1252& data-original=&https://pic3.zhimg.com/v2-526ed466b98fa_r.jpg&&&/figure&&p&&br&&/p&&p&下图就是一个完整的寻址、输入数据写到一个从器件的过程。其中灰色表示主器件控制SDA线,白色表示从器件控制SDA。A6-A0是用来寻址从器件的,相当于地图上一栋楼的名字;B7-B0是从器件自己内部的地址,相当于这栋楼内部的某个房间;D7-D0是往这个房间里面送东西。这里是为了形象理解,楼可以直接替换为EEPROM。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-aaa9ae4af76a1f7cbd3d430aa3be513b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1199& data-rawheight=&421& class=&origin_image zh-lightbox-thumb& width=&1199& data-original=&https://pic1.zhimg.com/v2-aaa9ae4af76a1f7cbd3d430aa3be513b_r.jpg&&&/figure&&p&注意器件地址后面跟了一个R/W bit,这里置为“0”表示写。每一个byte数据后面都有一个ACK/NACK,来确认从器件现在是不是有空;上面的图只显示输入了一个byte,主器件可以写入更多的byte数据,只要不发送结束条件。&/p&&p&下面是一个主器件到从器件中读取数据的过程,与上面的写过程非常类似。其中灰色表示主器件控制SDA线,白色表示从器件控制SDA。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-2fad7e5d851fcfda3ae7b0a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&691& data-rawheight=&163& class=&origin_image zh-lightbox-thumb& width=&691& data-original=&https://pic3.zhimg.com/v2-2fad7e5d851fcfda3ae7b0a_r.jpg&&&/figure&&p&具体执行过程: &/p&&p&&b&step1 :START+器件地址(R/W bit 置为0,执行写)+寄存器地址;&/b&&/p&&p&&b&step2 : 重复START+器件地址(R/W bit置为1,执行读)+从器件输出data(1个或多个byte)+STOP。&br&&/b&&/p&&p&&b&step1 是为了设定寄存器地址,相当于告诉你门牌号;step2 是去读这个寄存器地址指向的内容,也就是去这个门牌号指示的地方。&/b&&/p&&p&&b&step1+step2的过程也可以称为随机读;&/b&&/p&&p&&br&&/p&&p&如果没有step1,直接执行step2就是&b&顺序读&/b&的操作,如下图所示,因为每次读写1个byte内部的寄存器地址都会加1,所以顺序读就是以上次读写之后的寄存器地址为起点,继续读下去。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-dde4fddcd6cdc837ca336ebb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&161& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-dde4fddcd6cdc837ca336ebb_r.jpg&&&/figure&&p&然有的I2C还支持一些奇怪的指令,这个要看具体的产品。&/p&&p&&br&&/p&&p&基本上I2C通用的读和写的操作就讲完了,来个总结:&b&I2C最大的优点是结构简单,2根线完美连接所有器件。缺点是速度太慢,最快也就几 Mbps左右,而且每传一个BYTE就要ACK/NACK,感觉也挺烦的。&/b&有没有既简单又不那么慢的串行总线协议呢?确实有,SPI (Serial Peripheral Interface)协议,后面IC君也会重点介绍它&/p&&p&基础概念讲完了,后续文章会找一些电路和代码来继续分析I2C协议,敬请期待~&/p&&p&&b&如果觉得文章有用,麻烦转发和分享到朋友圈,谢谢!&/b&&/p&
这是IC君的第16篇原创文章 (同步于公众号 icstudy)IC君前一篇文章提到的NXP的datasheet,描述了一个I2C协议传输的EEPROM。这篇文章我们就来聊一聊I2C总线协议。I2C(Inter-Integrated Circuit)总线是80年代PHILIPS公司开发的两线式串行…
&figure&&img src=&https://pic4.zhimg.com/v2-50fd287e78156fce15c9dc_b.jpg& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic4.zhimg.com/v2-50fd287e78156fce15c9dc_r.jpg&&&/figure&&h2&最近总有同学问我,要是对人工智能芯片领域感兴趣,该怎么“入门”?我假设大家有计算机或者电子的背景,那么这四本书应该可以覆盖所需的知识。&/h2&&p&更新:架构方面增加“Computer Organization and Design RISC-V Edition”,相较“Computer Architecture: A Quantitative Approach”,用这本书“入门”可能更好操作一些(特别是RISC-V有很多资源可以参考和实践)。&/p&&hr&&h2&&b&算法&/b&&/h2&&p&领域的算法知识是设计专用芯片的基础,必须掌握。目前深度学习很火,参考资料也非常多。相对来说,这本书虽然比较枯燥,但基本包括了算法方面必备的知识,可以作为基础。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-56ec8c1fdde467f41de1069b_b.jpg& data-caption=&& data-rawwidth=&1500& data-rawheight=&1999& class=&origin_image zh-lightbox-thumb& width=&1500& data-original=&https://pic1.zhimg.com/v2-56ec8c1fdde467f41de1069b_r.jpg&&&/figure&&p&目录:&/p&&ul&&li&1 Introduction&/li&&li&Part I: Applied Math and Machine Learning Basics&/li&&li&2 Linear Algebra&/li&&li&3 Probability and Information Theory&/li&&li&4 Numerical Computation&/li&&li&5 Machine Learning Basics&/li&&li&Part II: Modern Practical Deep Networks&/li&&li&6 Deep Feedforward Networks&/li&&li&7 Regularization for Deep Learning&/li&&li&8 Optimization for Training Deep Models&/li&&li&9 Convolutional Networks&/li&&li&10 Sequence Modeling: Recurrent and Recursive Nets&/li&&li&11 Practical Methodology&/li&&li&12 Applications&/li&&li&Part III: Deep Learning Research&/li&&li&13 Linear Factor Models&/li&&li&14 Autoencoders&/li&&li&15 Representation Learning&/li&&li&16 Structured Probabilistic Models for Deep Learning&/li&&li&17 Monte Carlo Methods&/li&&li&18 Confronting the Partition Function&/li&&li&19 Approximate Inference&/li&&li&20 Deep Generative Models&/li&&/ul&&h2&&b&架构&/b&&/h2&&figure&&img src=&https://pic2.zhimg.com/v2-94ecab2e530c0df9f298fe2_b.jpg& data-caption=&& data-rawwidth=&896& data-rawheight=&1200& class=&origin_image zh-lightbox-thumb& width=&896& data-original=&https://pic2.zhimg.com/v2-94ecab2e530c0df9f298fe2_r.jpg&&&/figure&&p&目录:&/p&&ul&&li&Computer Abstractions and Technology&/li&&li&Instructions: Language of the Computer&/li&&li&Arithmetic for Computers&/li&&li&The Processor&/li&&li&Parallel Processors from Client to Cloud&/li&&li&Multiprocessors&/li&&/ul&&p&APPENDIX&/p&&ul&&li&The Basics of Logic Design&/li&&li&Graphics and Computing GPUs&/li&&li&Mapping Control to Hardware&/li&&li&Survey of RISC Architectures for Desktop, Server,and Embedded Computers&/li&&/ul&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-d238da00d6773317aaeef5a8a20152f8_b.jpg& data-caption=&& data-rawwidth=&1125& data-rawheight=&1388& class=&origin_image zh-lightbox-thumb& width=&1125& data-original=&https://pic1.zhimg.com/v2-d238da00d6773317aaeef5a8a20152f8_r.jpg&&&/figure&&p&目录:&/p&&ul&&li&Computer Design&/li&&li&Chapter 2 Memory Hierarchy Design&/li&&li&Chapter 3 Instruction-Level Parallelism and Its Exploitation&/li&&li&Chapter 4 Data-Level Parallelism in Vector, SIMD, and GPU Architectures&/li&&li&Chapter 5 Thread-Level Parallelism&/li&&li&Chapter 6 Warehouse-Scale Computers to Exploit Request-Level and Data-Level Parallelism&/li&&li&Appendix A Instruction Set Principles&/li&&li&Appendix B Review of Memory Hierarchy&/li&&li&Appendix C Pipelining: Basic and Intermediate Concepts&/li&&li&Appendix D Storage Systems&/li&&li&Appendix E Embedded Systems&/li&&li&Appendix F Interconnection Networks&/li&&li&Appendix G Vector Processors in More Depth&/li&&li&Appendix H Hardware and Software for VLIW and EPIC&/li&&li&Appendix I Large-Scale Multiprocessors and Scientific Applications&/li&&li&Appendix J Computer Arithmetic&/li&&li&Appendix K Survey of Instruction Set Architectures&/li&&li&Appendix L Historical Perspectives and References&/li&&/ul&&p&这本书不用解释了,如果没看过,一定要看;如果你看过,要问自己是不是真正掌握了。&/p&&p&&br&&/p&&h2&&b&实现&/b&&/h2&&p&这本书严格来说不能算是技术书,但它是了解整个IC产业,以及芯片从设计到实现的完整流程的很好参考。稍有遗憾的是后续没有更新,一些新的变化可能需要延伸阅读。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-db32c24bc6ec63cfc748f_b.jpg& data-caption=&& data-rawwidth=&942& data-rawheight=&1504& class=&origin_image zh-lightbox-thumb& width=&942& data-original=&https://pic2.zhimg.com/v2-db32c24bc6ec63cfc748f_r.jpg&&&/figure&&p&目录(这本书内容覆盖面很广,所以下面列出完整的目录):&/p&&ul&&li&1 Industry Perspectives&/li&&li&11 Semiconductor Industry&/li&&li&12 Fabless Industry&/li&&li&13 Key Points&/li&&li&2 The Big Picture&/li&&li&21 Electronics Markets&/li&&li&22 The Global Opportunity&/li&&li&23 Some Challenges in Today’s Electronics Marketplace&/li&&li&24 Understanding the Value Chain&/li&&li&25 Customer Needs&/li&&li&26 Overview of Fabless Company Development Activities&/li&&li&27 Key Points&/li&&li&3 Lifecycle of a Fabless IC Company&/li&&li&31 Getting Started&/li&&li&32 Business Plan&/li&&li&33 Funding Process&/li&&li&34 Development Cycle—the Four Phases&/li&&li&35 Roadmap of Products&/li&&li&36 Exit Strategies&/li&&li&37 Long Range Strategies&/li&&li&38 Key Points&/li&&li&4 Selecting the Implementation Approach&/li&&li&41 FPGA, Gate Array ASICs, Semi-custom ASICs&/li&&li&42 If You Had a Fab (IDM)&/li&&li&43 Fabless Sourcing Models (ASSP, COT, ASIC)&/li&&li&44 Design Strategies&/li&&li&45 Key Points&/li&&li&5 Selecting the Technologies&/li&&li&51 Introduction&/li&&li&52 Considerations to Pick the Right Technology&/li&&li&53 Cost per Function (CPF)&/li&&li&54 CPF Reduction from Technology Scaling &/li&&li&55 Die Cost Reduction by Increasing Wafer Size&/li&&li&56 Foundry Financials and Technologies&/li&&li&57 Process Technologies&/li&&li&58 CMOS Challenges&/li&&li&59 The Design Ecosystem&/li&&li&510 Process Alternatives&/li&&li&511 Nanotechnology Co-design Solutions&/li&&li&512 Packaging Consideratons&/li&&li&513 Key Points&/li&&li&6 Implementing the COT Approach&/li&&li&61 Introduction&/li&&li&62 Design Flow and Supply Chain&/li&&li&63 Implementation Time Line&/li&&li&64 Silicon Prototyping and Production&/li&&li&65 Packaging Considerations&/li&&li&66 Test Considerations&/li&&li&67 Quality and Reliability Considerations&/li&&li&68 Supply Chain Considerations&/li&&li&69 Operations Best Practices&/li&&li&610 Operations Effort and Resources&/li&&li&611 Resource Skill Sets&/li&&li&612 Production Operations Activities and Processes&/li&&li&613 Key Points&/li&&li&7 Managing Cost&/li&&li&71 Unit Cost Estimation&/li&&li&72 Optimizing the Die Size and Packing Density per Chip&/li&&li&73 Development Cost&/li&&li&74 Development and Operations Costs&/li&&li&75 Overall Development Cost Estimation&/li&&li&76 Some Cost Tradeoffs&/li&&li&77 Key Points&/li&&li&8 Managing Quality&/li&&li&81 Quality Manual&/li&&li&82 Documentation System&/li&&li&83 Quality in the Development Phase&/li&&li&84 IC Quality and Reliability Qualifi cation&/li&&li&85 Manufacturing Quality&/li&&li&86 Customer Support&/li&&li&87 Key Points&/li&&li&9 Managing the Implementation Program&/li&&li&91 Management at the Vertically Integrated Company&/li&&li&92 Management of the Distributed Supply Chain&/li&&li&93 Comparison of Management Processes&/li&&li&94 Relationship and Partnership Management&/li&&li&95 Program Management&/li&&li&96 Risk Management&/li&&li&97 Design Productivity&/li&&li&98 Key Points&/li&&li&10 Future Trends&/li&&li&101 Industry Stratifi cation and Opportunities&/li&&li&102 Funding&/li&&li&103 Alternatives to the IDM Model&/li&&li&104 Virtual “Re-Integration”/IFM&/li&&li&105 Order Entry Methodology&/li&&li&106 Managing Innovation&/li&&li&107 The Role of Research Organizations&/li&&li&108 Key Points&/li&&li&Appendices&/li&&li&A1 Business Plan Example&/li&&li&A2 Term Sheet Outline&/li&&li&B1 Transistor Scaling&/li&&li&B2 Yield Models&/li&&li&B3 Quality&/li&&/ul&&h2&&b&编译&/b&&/h2&&p&个人感觉区别一个芯片设计者和芯片架构师的差别很大程度在于他对软件的理解(还包括对产品和产业的理解,即上一本书的内容)。现在很少有不运行软件的硬件,硬件的效能是由软件接口体现的。而编译器作为传统上硬件和软件最基本的桥梁,是升级你对硬件的理解应该了解的东西,特别是编译优化(optimization)和run-time的相关内容。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-490d7d6d7cf8b4bff2dc0e8e24a3ae9c_b.jpg& data-caption=&& data-rawwidth=&982& data-rawheight=&1406& class=&origin_image zh-lightbox-thumb& width=&982& data-original=&https://pic4.zhimg.com/v2-490d7d6d7cf8b4bff2dc0e8e24a3ae9c_r.jpg&&&/figure&&p&目录:&/p&&ul&&li&1 Introduction&/li&&li&2 A Simple Syntax-Directed Translator&/li&&li&3 Lexical Analysis&/li&&li&4 Syntax Analysis&/li&&li&5 Syntax-Directed Translation&/li&&li&6 Intermediate-Code Generation&/li&&li&7 Run-Time Environments&/li&&li&8 Code Generation&/li&&li&9 Machine-Independent Optimizations&/li&&li&10 Instruction-Level· Parallelism&/li&&li&11 Optimizing for Parallelism and Locality&/li&&li&12 Interprocedural Analysis&/li&&li&A A Complete Front End&/li&&li&B Finding Linearly Independent Solutions&/li&&/ul&&hr&&p&除了第一本书之外,其它几本其实是设计任何芯片都应该熟悉的内容(对编译的理解算加分项吧)。而每本书涉及的范围也很广,真正搞懂并不容易,这一点从大家的评论也可以看出来。但你一旦真搞懂了,你的知识结构基本就没有什么死角了。另一方面,这也是你能够融会贯通,举一反三的起点。&/p&&p&这里其实还缺了一个环节,就是芯片设计(把算法和架构变成可以实现的电路的过程)。比如我之前写过一本《数字IC设计:方法技巧与实践》主要覆盖设计语言,EDA工具等内容。不过这些主要是些技巧和经验,在实践中可以很快掌握,需要的时候查一下资料也就可以了。另外,这些内容主要是和数字芯片相关,针对目前比较流行的Deep Learning处理器;基于模拟电路的设计,我不是很熟悉,也就不推荐了。&/p&&p&有了这些背景知识,如果需要快速了解更有针对性的内容,可以看看我&b&&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&关于AI/ML/DL硬件的文章&/a&。&/b&&/p&&p&&br&&/p&&p&&b&T.S.&/b& &/p&&p&&b&欢迎关注我的微信公众号:StarryHeavensAbove&/b&&/p&&p&&br&&/p&&p&题图来自网络,版权归原作者所有&/p&&p&&/p&&p&&/p&
最近总有同学问我,要是对人工智能芯片领域感兴趣,该怎么“入门”?我假设大家有计算机或者电子的背景,那么这四本书应该可以覆盖所需的知识。更新:架构方面增加“Computer Organization and Design RISC-V Edition”,相较“Computer Architecture: A Qu…
&p&这个问题关注度这么高,不过高赞回答显然不是业内人士,且回答有不少错误。我这半个业内人士来回答一下。&/p&&p&如同高赞回答那样,同代同一大类(面向同一个segment)i7,i5和部分i3出自一个Wafer(晶圆)产线,它们的成本是一样的。不全部生产i7并不是Intel故意搞阴谋,而是生产工艺使然。现在的做法实际上是双赢的方案:消费者和生产者都获益。消费者省钱了,生产者也减少了浪费。如果都生产i7,估计价格高到天上去了,良品率也会极度降低。&/p&&p&同一品类i7,i5和部分i3出自同一个wafer线,他们最终分叉在封测阶段后期,而这个步骤在圈内叫做&b&binning&/b&。为了读者知道我在说什么,我们先来回顾一下整个CPU制造过程。&/p&&p&Intel发布了一段录像(&a href=&//link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3Dd9SWNLZvA8g%26feature%3Dyoutu.be& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&youtube.com/watch?&/span&&span class=&invisible&&v=d9SWNLZvA8g&feature=youtu.be&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&),考虑到油管很多人看不到,优酷找到这个:&/p&&a class=&video-box& href=&//link.zhihu.com/?target=http%3A//v.youku.com/v_show/id_XNDIzOTg4NzY4.html%3Ffrom%3Ds1.8-1-1.2& target=&_blank& data-video-id=&776512& data-video-playable=&true& data-name=&from sand to silicon (intel CPU 制作)& data-poster=&https://pic1.zhimg.com/v2-77bbf7d3e386f98d26f8.jpg& data-lens-id=&&&
&img class=&thumbnail& src=&https://pic1.zhimg.com/v2-77bbf7d3e386f98d26f8.jpg&&&span class=&content&&
&span class=&title&&from sand to silicon (intel CPU 制作)&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&http://v.youku.com/v_show/id_XNDIzOTg4NzY4.html?from=s1.8-1-1.2&/span&
&/a&&p&我大概摘录一些:&/p&&p&前面几个步骤i7,i5,i3都一样,我就简单贴几个图片:&/p&&ol&&li&沙子&/li&&/ol&&figure&&img src=&https://pic1.zhimg.com/v2-1b0b7cd0ae09c04e0d40ee619e2e0998_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&430& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/v2-1b0b7cd0ae09c04e0d40ee619e2e0998_r.jpg&&&/figure&&p&2. 晶圆制造和切片&/p&&figure&&img src=&https://pic3.zhimg.com/v2-27f3f7fff78a09dcb93b30b3b3401626_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&340& data-rawheight=&112& class=&content_image& width=&340&&&/figure&&p&3. 光刻胶(Photo Resist),溶解光刻胶、蚀刻、离子注入、电镀、铜层生长&/p&&figure&&img src=&https://pic2.zhimg.com/v2-868feb2ffc58d3712377d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&340& data-rawheight=&110& class=&content_image& width=&340&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-ca47f2e1ea16_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&340& data-rawheight=&76& class=&content_image& width=&340&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-cbc326f381de60bafad0b5b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&340& data-rawheight=&89& class=&content_image& width=&340&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-f4c8fbf9eead_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&340& data-rawheight=&134& class=&content_image& width=&340&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-e617a057a1f1b93297ad31_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&340& data-rawheight=&115& class=&content_image& width=&340&&&/figure&&p&上面步骤完成后就有了我们经常看到的Wafer了:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-88b7cc1abfdddcdacb54e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&426& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-88b7cc1abfdddcdacb54e_r.jpg&&&/figure&&p&4. 晶圆测试&/p&&figure&&img src=&https://pic1.zhimg.com/v2-cd526a2e989ac_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-cd526a2e989ac_r.jpg&&&/figure&&p&5. 分片,有了die&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a4c16b3f5fdad9aa8b4b14e527a7b843_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&351& data-rawheight=&274& class=&content_image& width=&351&&&/figure&&p&6. 封装(&b&Packaging)&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-5581deedda7aa_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&640& data-rawheight=&430& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/v2-5581deedda7aa_r.jpg&&&/figure&&p&到这里所有的步骤都一样的,白牌CPU生产出来了:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-a91ad3f6a5c8cc12106e3b_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&625& data-rawheight=&620& class=&origin_image zh-lightbox-thumb& width=&625& data-original=&https://pic4.zhimg.com/v2-a91ad3f6a5c8cc12106e3b_r.jpg&&&/figure&&p&下面这个步骤就决定了这个CPU是i7,i5还是部分i3,&b&他就是binning&/b&,他的设备就是这个白盒子:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-285a9ec755ed5ca3ef141a0d07966d46_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&625& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&625& data-original=&https://pic3.zhimg.com/v2-285a9ec755ed5ca3ef141a0d07966d46_r.jpg&&&/figure&&p&&b&这个步骤是封测的最后一步,它通过测量电压、频率、散热、性能、cache等等来为该CPU分类。最差当然是废品,其次有很多个SKU,远远不止i3、i5和i7这么粗枝大叶。例如i5还分有很多不同的细类,大家可以看intel的CPU,i5也有很多种,对应不同的市场segment。&/b&&/p&&p&接下来分拣:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-f512bd847debc73aa4065dfa63a78602_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&625& data-rawheight=&374& class=&origin_image zh-lightbox-thumb& width=&625& data-original=&https://pic3.zhimg.com/v2-f512bd847debc73aa4065dfa63a78602_r.jpg&&&/figure&&p&然后就可以上市了:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-2b943e165f78e6f628dff_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&625& data-rawheight=&817& class=&origin_image zh-lightbox-thumb& width=&625& data-original=&https://pic2.zhimg.com/v2-2b943e165f78e6f628dff_r.jpg&&&/figure&&p&需要指出的是Intel这么做并不是什么市场策略,而是生产工艺使然。Wafer在2)和3)步骤中会有不少缺陷产生,看下面这个图:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-50954a8ffad4e4bf7b4eb2_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&290& data-rawheight=&294& class=&content_image& width=&290&&&/figure&&p&大圆就是晶圆,小方格就是CPU的Die。我们可以看到其中的缺陷就像撒芝麻粒,斑斑点点,而且越靠近边角越可能出现,很多小格都有。良品率高,品质控制的好,芝麻粒就少。&/p&&p&缺陷并不可怕,只要有手段控制就行了。CPU内置了很多gate,封测时发现问题就封闭出现错误的部件,core错误就关闭core,cache错误就关部分cache,温度上升快了就出错就锁到低频,等等。所以才有了i3,i5,i7和其中的细小sku。&/p&&p&接着我们来举个例子,下面是第4代酷睿(Haswell)的die:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-fa076bbefeaed_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&393& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic2.zhimg.com/v2-fa076bbefeaed_r.jpg&&&/figure&&p&我们可以看到它主要分为几个部分:GPU、4个内核、System Agent(uncore,类似北桥)、cache和内存控制器和其他小部件。譬如我们发现core 3和4有问题,我们可以直接关闭3和4。如图:&/p&&figure&&img src=&https://pic2.zhimg.com/v2-76b17cfabec6d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&393& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic2.zhimg.com/v2-76b17cfabec6d_r.jpg&&&/figure&&p&这样就得到了双core的die,接下来可能会测试速度,TDP等等。经过重重测试和筛选,binning就完成了。&/p&&p&最后澄清一些误解:&/p&&ol&&li&i7并不是Xeon共用一个wafer。只能说Xeon E3/E5/E7的内核部分和core系列设计几乎一样,但核外部分(uncore)却大不相同,不可能用一个晶圆。所以i7/i5/i3也不是Xeon封掉部分功能得到。同理Atom系列也不是core系列的阉割版&/li&&li&即使都是i7也不一定是一个wafer,die大小可能不同。面向不同的segment的die的内部是不同的,例如包不包括iris显卡等等,这不是binning能够解决的问题。&/li&&li&奔腾和赛扬不一定是i3的瘦身版,部分奔腾和赛扬是ATOM产品线的高端版。&/li&&li&i3部分是i5的缩水版,部分i3(主要部分)是奔腾、赛扬的精选版。关键在于QDF#标明其出身。&/li&&li&E7和E5设计不同,die大小不同,不适用本条。但E5和E7本身的Sku在此类&/li&&li&这种方法实际上降低了CPU的整体价格,而不是使大家吃亏。&/li&&li&不仅仅Intel这样,AMD也这样做。不仅仅CPU这样做,GPU也这样。这是芯片厂商的普遍做法。&/li&&li&CPU核心技术在设计和生产的2和3阶段,封测阶段虽有技术含量,但不是核心,国内就有封测厂。&/li&&li&买了i3别觉得质量差。在保修期内质量是可以保证的,我还没见过被用坏的CPU呢。CPU往往是过时淘汰掉的。&/li&&/ol&&figure&&img src=&https://pic1.zhimg.com/v2-8d9a2eac1b2d594f1ee4_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&400& data-rawheight=&266& class=&content_image& width=&400&&&/figure&&p&总的来说看是不是兄弟开盖一看die的大小就知道了。但开盖就不会保修了,而且大部分有焊锡,小心开盖有&奖&,&b&切忌模仿!切忌模仿!切忌模仿&/b&!&/p&&p&想到什么再补充。我打算写一些相关文章,

我要回帖

更多关于 存储卡数据恢复 的文章

 

随机推荐