一分钟看懂CPU多发射超标量/多线程/多核之概念和区别_felix_fei 一分钟看懂

【闲来无事、做做科普、反正也算是marketing job;教你一分钟看懂CPU多发射超标量/多线程/多核之概念和区别】 最近在多个场合大肆宣扬多核多线程,收到对多线程表示不解的问题n多,苦思多日,终得一形象生动的模型,你肯定懂的————。

因为是比喻和科普、过于严谨的技术控请勿吐槽。

处理器性能提高之公开秘笈:超标量、多线程、多核。

用于说明的生活模型:高速公路及收费站。

简单CPU的原型:单车道马路 + 单收费闸口,车辆只能一辆辆排队通过,并行度为1。

为了提高通行能力同时积极创收,相关部门运用世界顶尖CPU设计理念,对高速公路系统进行了如下拓宽改造:

(1)增加车道(图示为3条车道);

一分钟看懂CPU多发射超标量/多线程/多核之概念和区别_felix_fei 一分钟看懂

(2)增加收费通道(图示为2个通道);

(3)每个收费通道放置多个收费员(图示每条通道有a和b两个收费窗口)。

其中(1)+(3)组合手段就是所谓的超标量结构,该图示为双发射超标量。超标量指有多个车道,双发射是指有a和b两位收费员可以同时发卡,把两辆车送到不同车道上去。

手段(2)就是多线程的模型了,原有车道不变、只增加收费通道,这样多个车流来的时候可以同时发卡放行。

从这个比喻来看多线程显然是个非常直观和有用的办法,但为什么在CPU世界中似乎有点模糊难懂的感觉呢?那是因为CPU的指令流喜欢一个挨一个、一列纵队龟速前进,这样的话单通道多收费员还起点作用、多通道就形同虚设了。收费员1.a和1.b会累死,而2.a和2.b则能够睡觉。因此把车流进行整队就很重要——这就是并行编程,即要设法把一列纵队排列成多列纵队。

至于多核的概念,那就简单粗暴很多了,直接在这条马路边上进行征地拆迁、新修一条一模一样的高速公路便是,牛吧。现在大家手机里面的多核,就是并排几条“单收费通道+多车道”的马路,车流稀少、路况不错,不过相关部门表示因为道路利用率底下、经济效益欠佳、回收投资压力巨大。

无论多核还是多线程,都有一个同样的问题需要解决,就是要把车流整成多列纵队,这样多条马路和多个收费通道的并行度才能发挥作用。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/280356.html

更多阅读

多线程的使用(Delphi) delphi多线程实例

TThread在Classes单元中声明,直接从TObject继承下来的,因为,它不是组件.TThread是个抽象类,所以不能创建TThread的实例,而只能创建其派生类的实例.利用TThread类来编写多线程应用程序的一般步骤如下:[步骤一]从TThread类派生出一个

多态的概念和作用 java中多态的概念

多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。编程其实就是一个将具体世界进行抽象化的过程,多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个抽象的事物,与不同

什么是多线程编程 多线程编程c基础

多线程编程技术是Java语言的重要特点。多线程编程的含义是将程序任务分成几个并行的子任务。特别是在网络编程中,你会发现很多功能是可以并发执行的。比如网络传输速度较慢、用户输入速度较慢,你可以用两个独立的线程去完成这两个功能

12款超酷的兰博基尼(Lamborghini)概念车 gta5兰博基尼概念车

通常概念性质的汽车,外观非常漂亮,其设计理念也非常超前。可能其设计师们考虑采用的是未来将应用以及普及的技术,因此才会让人产生未来感。用现有技术去设计车,就不应该叫做概念车了。豪华跑车品牌兰博基尼(Lamborghini),就有很多款靓丽

多进程与多线程区别 多线程 多进程的区别

网络编程中设计并发服务器,使用多进程与多线程 ,请问有什么区别?答案一:1,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享

声明:《一分钟看懂CPU多发射超标量/多线程/多核之概念和区别_felix_fei 一分钟看懂》为网友少年的那份情分享!如侵犯到您的合法权益请联系我们删除