求对CPU精通的大神回答关于新东方四级词汇乱序版处理的问题

资深攻城狮解读5个被误解的CPUGPU概念 | Imagination中文技术社区英特尔融合处理器为啥大受欢迎?看完你就明白了-控制器/处理器-与非网
自Core架构之后,逐渐走出了Tick-Tock定律这条路线,以工艺年和架构年交错更新。除此以外,类似AMD的APU,Intel也渐渐开始将CPU和GPU融合在一起,从以往的集成显卡慢慢提升到核芯显卡/核心显卡(下文简称核显)的概念。虽然只是名字上换了一下,但是核显和集成显卡的历史意义完全不同。前者相比后者最大的进步就是整合到CPU之中,和CPU共享很多运算资源,达到了异步计算的目的。
如果要说清楚Intel融合处理器之路,我们就要先从这一代架构开始聊起。不知不觉也快有10年的时间,Intel弹指间也推出了很多套处理器架构,虽然近两年的Tick-Tock定律在放缓,但是总体来说还是保持着一定的先进性,无论是14nm工艺还是最新的Kaby Lake架构,都有很多东西值得AMD学习。
2008年Nehalem架构进一步将Core架构的处理器核心上限从双核提升到四核心,当然,这只是消费级别而已,本文所有的例子都仅以家用处理器为主展开讨论,图形工作站和服务器处理器不在讨论范围内。之前Intel为了重点研发双核心工作,不得不放弃Pentium时代一直开外挂的超线程技术,自Nehalem架构开始,Intel重新将超线程技术引入到处理器之中,最高能够实现4核心8线程的运算能力,兼容64位指令集,支持乱序执行和超标量。虽然Nehalem还没开始整合GPU到CPU之中,但是Intel从这一代架构开始逐渐将昔日更多的主板组件整合到CPU之中,让处理器的运算能力和整合程度逐渐提高。最大的进步就是引入支持双向传输的QPI总线技术,同时将内存控制器整合到CPU之中,也就是大名鼎鼎的IMC,支持3通道DDR3内存,有效降低内存延迟,另一方面,缓存系统存储特性也进一步增强,3级缓存体系从那时候开始站稳了阵脚。
09年的Westmere架构在Nehalem基础上进一步强化制程,来到了32nm工艺节点。QPI总线、IMC、三级缓存、超线程等技术全数继承下来,功耗也进一步降低。在非家用级别处理器中推出了原生6核心和10核心版本,不过不在本文讨论范围内。
11年SandyBridge架构历史意义比较大,自这一代架构开始,Intel终于将GPU整合到CPU之中,不再在主板上整合集成显卡,而是移到CPU之中,进一步提高两者之间数据交互的速度。AMD虽然在11年才量产Fusion APU,但是融合CPU概念早在Intel推出SandyBridge架构之前就已经出现,所以很难说这两家企业谁先想到这个好点子。一直以来,双核处理器、64位架构以及整合GPU到CPU之中这些里程碑式举动都很难说Intel和AMD谁抄袭谁,毕竟两者的具体产品发布时间十分接近,算上研发周期更难推断两者的原创性了。整合了GPU之后的SandyBridge架构自然出现核显(核芯显卡/核心显卡)这一概念,分为两个版本,分别拥有6个和12个EU。Intel这一举动对老搭档Nvidia或多或少形成了一定压力。理论上只要Intel核显足够强大,未来有可能在笔记本上完全抛弃入门级别独立显卡,直接上顶配版的核显。
12年采用22nm制程的IvyBridge架构让Intel相比AMD提前进入了全新的制程节点,主要得益于3D晶体管(FinFET)技术引入。顶配版GPU型号HD4000的EU单元从SandyBridge的12个增加到16个,支持DX11、第二代快速转码单元、OpenCL、多屏、无线显示技术等。除此以外Intru3D、AVX等技术也完整保留下来。IvyBridge原生支持USB 3.0技术。这个时代的GPU更多的并不适合独立显卡争一朝之夕,而是分工合作,通过Lucid Virtu显示切换技术,用户能够根据性能选择合适的视频方案。
13年Haswell架构进一步将电压调节器整合到CPU之中,这也是继内存控制器和GPU(昔日统称为北桥)之后第三件重要主板组件,至此,主板厂商能够集中火力将设计心思花在南桥(DMI)和周边功能身上,例如Hi-Fi电路能够拥有更大的发挥空间。由于升级了CPU整合程度,接口方面也升级到LGA1150,不再兼容SandyBridge和IvyBridge时候的主板。核显方面支持DX11.1、OpenCL 1.2,优化了3D性能,支持HDMI、DP、DVI和VGA接口标准,能够实现三屏独立输出。
Haswell时代的GPU型号还是蛮丰富的,分为了5个档次:GT1、GT1.5、GT2和GT3u、GT3e。
GT1就是奔腾和赛扬系列的HD Graphic,只有10个EU单元。GT1.5和GT2分别配备了12和20个EU单元(执行单元),型号为HD4400和HD4600。GT3u对应拥有40个EU单元但是无缓存的Iris 5100和HD5000。顶配版GT3e对应Iris Pro 5200。EU单元抵达40个,配备128MB嵌入式缓存,号称性能是上一代HD4000的三倍。不过搭载顶配版GPU的CPU并不单独零售,主要用于OEM市场。Iris中文名为锐炬。
跳票已久的Broadwell终于在14年底和消费者见面,不过只限于笔记本和平板电脑领域,隶属Broadwell-Y系列。进一步将工艺节点提升到14nm,全面领先三星、台积电、GlobalFoundries等厂商,同时也升级了GPU部分。CES 2015推出面向主流笔记本、迷你PC和一体机的Broadwell-U系列,首批产品推出10款功耗为15W的Intel核显和4款功耗为28W的Intel Iris核显。其中HD Graphics 6000系列核显在14nm加持下拥有出色的能耗比表现。顶配版Broadwell-H处理器配备Iris Pro 6200核显,拥有完整48个EU单元,配备eDRAM缓存,不再仅限于OEM平台,TDP为65W。
Broadwell架构在PC处理器服役周期十分短,基本只面向移动处理器,所以15年8月初Intel第六代微处理器架构Skylake也登场了,依然采用了14nm制程,由于处于Tick-Tock定律的Tock年所以架构上做出了调整。同时支持DDR3L和DDR4-SDRAM两种内存规格,主板CPU接口变更为LGA1151,必须搭配Intel的100系列芯片组才能使用。整体来说并没有进一步将主板组件整合到CPU之中,但是性能上依然有所提升。更大更宽的核心、更高的IPC(每时钟周期指令数)、更好的电源能效以及更强的环形总线/三级缓存(改进吞吐能力),以及开放超频。GPU方面率先支持DX12、OpenCL 2.0和OpenGL 4.4,GT3和GT4两个级别核显都整合了eDRAM,在多媒体编解码、视频输出等方面均有增强。100系列主板芯片组拥有更高的I/O吞吐能力、平板机I/O接口、新的音频DSP、新的传感器中心、整合的摄像头ISP,南桥通道升级到DMI 3.0版本,走的是高速的PCI-E 3.0总线。最后我们重点看看eDRAM这个概念,经过几代产品的累积之后,和核显配套的eDRAM更像是CPU的四级缓存,能够用作内存侧缓存(Memory Side Cache),而且能够缓存任何数据,核心、I/O、显示引擎都能够调用它,无须清空来保持一致性。
踏入16年,前不久第七代酷睿家族处理器登场,由于Tick-Tock定律放缓所以延续了14nm制程,加强了鳍片、晶体管通道应变,据称可以带来12%的能耗比提升,采用全新的Kaby Lake架构。U系列顶配版型号之间横向相比Skylake性能高12%-19%。首批产品只有超低电压Y系列和低电压U系列。除了进一步提升CPU主频,还支持OPI 3.0,从而顺利开启4条PCI-E 3.0通道,对于NVMe SSD也有好处,兼容Thunderbolt 3设备。由于目前只公布了Y和U系列处理器,性能级别标准电压版本Kaby Lake处理器将在17年见面,所以目前面世的处理器核显均为GT2级别,只有24个EU单元。
总结:Intel的融合CPU之路虽然也有坎坷的地方,但是明显比AMD容易走不少,毕竟APU目前依然处在28nm落后制程,同时CPU部分还是挖掘机这种浮点运算能力遭到阉割的架构。在我看来,Intel这几年逐渐提高U系列和Y系列处理器的市场地位,Broadwell和Kaby Lake两代处理器架构都是以移动平台为首发,这也是低电压笔记本、变形本、二合一笔记本和无风扇笔记本、平板电脑等设备逐步崛起的信号。未来高性能处理器版本依然会有新品推出,只是地位并没有以前那么高而已,性能级别处理器配合中高端、旗舰显卡依然是游戏发烧玩家最佳选择,虽然Intel和AMD的核显在不断提升性能,但是相比Nvidia和AMD显卡内置的中高端、旗舰GPU来说依然存在不少距离,取代它们还是言之过早的说法。
同时我们也要看到Intel和AMD这些内置了GPU的融合处理器在这几年越来越受消费者的欢迎,得益于TDP不断下调同时性能不断提升,很多办公使用平板电脑、二合一笔记本和变形本、超轻薄本、无风扇设备已经开始普及这类型处理器,最典型的例子就是Surface、Surface Pro,还有前阵子推出的华为MateBook以及小米笔记本。Intel和AMD正在潜移默化培养着消费者接受这些全新的融合处理器。
与非网专栏作者招募
你也许是工程师甲,每天默默画电路板、写代码;
你也许是高校老师乙,每天站在三尺讲台,传授知识;
你也许是项目经理丙,每天为得到客户认可而赶工、奔忙;
不管你身处何地是何种身份,只要你是电子领域的从业者,就一定有对这一行业的一些感受和看法。
可能你已修炼成资深行业观察家,如老师那样真知灼见;
可能你善于分析行业趋势,如侃侃而谈;
可能你精通某一项技术,如那样精讲技术而不失幽默;
可能你善于发现身边的工程师故事,如般娓娓道来。
也可能你和他们都不同,有自己想发表的观点,这样的你都是我们在等的人,只要你准备好了,&与非网专栏作者&就会成为你的一个标签。你不再是普通的路人&甲、乙、丙&,而是工程师和电子产业的发言人。
我们给专栏作者的展示机会:
1. 与非网主站【与非原创】栏目的集中展示:
2. 与非网主页:首页焦点、行业发现的重点推荐
3. 与非网微信:原创推送,直达核心行业读者
4. 如果专栏内容热度很高,我们还可以帮助联系相关出版社洽谈集结出版。
成功取决于行动力,赶紧将你的职场态度和行业观点进行整理、提炼成专栏大纲吧,以&专栏作者+大纲名称&为主题,发送到:editor#eefocus.com(请将#替换为@)即可,或者你还有些疑惑想更多了解专栏作者的情况,也可以加小编的微信+qq:详谈。
与非网专栏作者,我们等你!
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
据IC Insights预测,2018年全球微处理器市场将达745亿美元,同比增长4%,从,年复合增长率为3.4%。虽然由于缺乏新的增长点,处理器市场增速逐年放缓,但体量庞大的市场还是让参与者赚得盆满钵满。
发表于: 16:50:46
至24日,由安全可靠技术和产业联盟主办的“中国安全可靠技术和应用研讨会”在京举行。会议受到了工信部领导的重视与肯定,来自安全可靠产业链上下游的400余名企业代表参与了本次大会。
发表于: 17:45:39
专注于新产品引入 (NPI) 与推动创新的领先分销商贸泽电子 (Mouser Electronics) 即日起开始备货AAEON的UP Squared Grove IoT开发套件。
发表于: 17:37:32
Spectre( 幽灵)和Meltdown(熔断)漏洞显然是不会通过一些快速补丁就被修复的,问题要严重的多。好在是英特尔宣布,今年晚些时候推出的新芯片将包括硬件/架构级别的改进,以防止这些缺陷。
发表于: 13:25:32
AMD举办活动,庆祝Ryzen锐龙处理器诞生一周年,披露了多项成功数据,对未来也是信心爆棚。
发表于: 14:23:59
自iPhone 8/X标配无线充电功能后,无线充电市场开始爆发且持续升温,给国内无线充电厂商带来了巨大的市场红利,其中发射端无线充电器快速起量,增幅超10倍。
发表于: 16:04:13
外媒报道称,Susquehanna分析师对AMD进行了降级,并根据英伟达专门为以太坊挖矿开发的ASIC,对其目标价格进行了下调。分析师认为,AMD的20%营收都来自加密货币市场,因此调低了该公司的评级。我们将在本文解释ASIC是什么?为什么用于加密货币挖矿?以及为什么以太坊ASIC不太会替代GPU挖矿?
发表于: 15:52:23
横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM),宣布参与了一个具有开创性的开源仿真框架的开发项目。
发表于: 15:23:35
机械硬盘数据恢复的原理是:人们平常所做的删除,只是让系统修改了文件分配表中的前两个代码(相当于作了“已删除”标记),同时将文件所占簇号在文件分配表中的记录清零,以释放该文件所占空间
发表于: 13:56:22
TrendForce最新统计资料,2016年至2017年底,中国新建及规划中的八吋、十二吋晶圆厂共计约二十八座,其中十二吋有二十座、八吋则为八座,多数投产时间将落在今年,以目前全球半导体晶圆厂完工的速度观察,半导体硅晶圆景气能见度直达2020年,显见硅晶圆供不应求将持续。
发表于: 11:04:33
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号其他回答(1)
bool flag=
var td=new Thread(()=&{
while(flag)
Console.WriteLine("this should not be shown");
td.Start();
Thread.Sleep(1000);
Console.WriteLine("oops");
Console.ReadLine();
java的不太会,你改下吧。
园豆:10055
园豆:10055
园豆:10055
园豆:10055
园豆:10055
园豆:10055
清除回答草稿
&&&您需要以后才能回答,未注册用户请先。后使用快捷导航没有帐号?
查看: 1204|回复: 6
CPU缓存造成的乱序问题讨论
注册会员, 积分 127, 距离下一级还需 73 积分
论坛徽章:2
本帖最后由 rickyrain 于
23:35 编辑
1)首先,老师给了一段代码,包含两个方法,首先初始化a=0,b=0,那么执行foo()过程中会出现{a=0,b=0};{a=1,b=0};{a=1,b=1}三种状态;按照bar()方法的逻辑,如果b=1跳出循环,那么这时按照foo()的状态,assert(a==1)一定成立,问题是什么情况下会让执行bar()的cpu产生{b=1,a=0}这个状态呢?
2)如果有一个main方法如下,我认为应该不会产生乱序,否则程序就没法写了。
3)如果两个cpu并行执行这两个方法,我猜是在多线程场景下a线程用cpu0执行foo(),b线程用cpu1执行bar()这个场景。
3)如果是单CPU多线程执行也不会出现{b=1,a=0}的状态;
4)多CPU,多线程的场景下,两个CPU有各自的缓存,并且当CPU更新自己缓存后,异步通知其他的CPU,但其他CPU还未收到通知就读取本地缓存数据的情况下会出现{b=1,a=0}的状态。即foo()对a=1的更新发送了,但bar()方法还为接收到更新通知就读取了a=0,这个是主要导致问题的原因,其他操作都对这个结果不产生影响。
5)如何避免这种情况呢?例子中在foo()中对a更新操作后和bar()中对a读取操作前都增加了smp_mb()操作。按照描述来说我认为这两个操作只加一个就可以避免乱序了,不知道是不是这样?
6)在smp环境中,是否要在多线程每个线程共享变量的更新操作后或读取前增加smp_mb()操作才能保证执行正确?
论坛徽章:0
单个CPU必须保证操作的串行化
必须加两个,如果只加一个的话也有问题。
cpu1接收到0发的invalidate之后会将其保存在队列中,而不是立刻执行(可能课程里面对invalidate queue没讲太多)。
这个invalidate queue的用途也是提升性能的,cpu1接收到invalidate消息之后不是立刻处理,而是先将它放到队列里面,然后立刻返回一个消息给cpu0,这样cpu0就不用等cpu1完全处理完所有的事情再继续。
所以,必须在cpu1的线程里面用内存栅,在处理a==1之前处理队列中的invalidate消息
金牌会员, 积分 1514, 距离下一级还需 1486 积分
论坛徽章:7
这个在《程序员的自我修养:链接、装载与库》中有些讲解:具体在书的1.6节
金牌会员, 积分 1207, 距离下一级还需 1793 积分
论坛徽章:2
但是我对cpu乱序也有疑问.
cpu执行时乱序与编译器优化后指令的顺序的之间是否有联系,同时是否有区别.
在编译器优化后,顺序可能为
只要实际执行的结果是正确的,我认为并不要紧.
但由于实际在机器执行时,a=1对应几条指令,b=2也对应几条指令,
从书上看,现在cpu在执行时,未必按照指令的顺序严格执行,存在预测和乱序,并发的情况,
这样,a=1在执行的途中是否可能被b=2干扰?或反之?
此时,我就不理解了, 如何保证cpu执行后的结果是我们所设定的,而不是错误的结果?
高级会员, 积分 553, 距离下一级还需 447 积分
论坛徽章:3
pingguo 发表于
这个在《程序员的自我修养:链接、装载与库》中有些讲解:具体在书的1.6节
这是本好书,没来得及看,现在基本是遇到一个知识点,就去找相关的书,看原理的讲解,《操作系统原理》《Unix网络编程》看的最多
论坛徽章:0
”现在cpu在执行时,未必按照指令的顺序严格执行“
这个说法是非常不严谨的。
除非编译器颠倒了指令序,单个cpu的执行序必须和汇编代码一致
所以cpu的指令执行的乱序主要就是多cpu之间协调导致的
dataguru.cn All Right Reserved.

我要回帖

更多关于 新东方六级词汇乱序版 的文章

 

随机推荐