什么?一个核同时执行两个线程?

作者 | 轩辕之风

来源 | 编程技术宇宙

头图 | CSDN付费下载自视觉中国

CPU里的时间

Hi,好久不见,我是CPU一号车间的阿Q,不认识我的话,可以看看:完了!CPU一味求快出事儿了!

真的是好久不见了,人类有个说法叫天上一天,地上一年,而在我们的世界里,人类一天,我们不知要过多少年~~

在我所在的CPU这座工厂里,时间的概念有些不太一样。工厂大门外的中央广场上挂着一个大大的钟表,整个计算机世界里的居民能够掐着时间过日子全都仰仗它,你们人类把它叫做晶振

这个钟表每隔66000000分之一秒就会报一次时,比人类的钟表不知道快到哪里去了。

早些年还是够用的,不过随着我们CPU工厂生产效率的不断提升,我们多次向晶振提出提升报时的精度,想让他报时报的的更快一些,不过都被拒绝了。给我们的理由是内存那家伙联合主板上其他单位带头反对,说他们受条件限制,没办法像我们这么快。

靠人不如靠己,为此,咱们工厂专门设立了一个叫倍频器的部门进一步把这个报时细分,达到了3600000000分之1秒,作为我们工厂内部工作作息的时钟周期,这数字实在是太长了,人类为了好记,取了一个叫主频的名字,表示1秒钟报时的次数,就是3.6GHz。

一不小心扯远了,这次想给大家说一件事儿······


指令依赖

我们这座工厂的任务就是不断的执行人类编写的程序指令,咱厂里有8个车间,大家开足了马力,就能同时执行8个线程,那速度那叫一个快。

可是厂里的老板还是嫌我们不够快,那天居然告诉我们要每个车间执行两个线程,实现八核十六线程,是要把我们的劳动力压榨到极致!我们都满肚子怨言······

事情的起因是这样的~~

有一次,我们一号车间的四人组趁着工作的空当,又斗起了地主,突然领导过来视察。

“你们怎么又在玩?是工作量不饱和吗?”,见我们几个闲着,领导一下就不高兴了。

我赶紧上前解释到:“不好意思领导,咱们刚刚执行了一条指令,需要内存中的一块数据,刚好又不在缓存中,所以找内存那家伙要数据去了,这不您也知道那家伙向来很慢,我们闲着也是闲着所以就稍微放松了一下······”

听了我的话领导一下皱起了眉头,“还给我狡辩,厂里现在不是用上了乱序执行技术吗?有这闲功夫你们可以先执行后面的指令啊”

“这我们当然知道,这不您看,我们把后面那几条指令也都处理了,现在遇到了一条没法提前执行的指令才停下来的。”

领导看了一下问到:“为啥那条不能提前执行?”

“那是一个加法指令,加数依赖于现在正在处理的指令的运算结果呢,所以内存那家伙不来消息,我们只能搁置着了”,我继续解释到。

领导听完,一脸不高兴的离开了。

资源闲置

过了几天,领导又来到咱们一号车间来了,也不知道怎么回事,这明明有八个车间,领导怎么老爱往我们这边跑。

不过这一次,我们没有斗地主,正在辛辛苦苦的工作着。

当时,我正在执行一个浮点数运算,领导过来一看,拍了拍我的肩膀说到:“哟,阿Q,忙着呐,这是在做什么啊?”

我笑着说到:“领导好,我刚刚用浮点数运算电路单元做了一个浮点数乘法,正在等待计算结果呢。”

图源 | 视觉中国

领导点了点头,往周边巡视一圈,指着一堆设备问到:“这一堆是什么?”

“哦,那是整数运算电路单元,这条指令用不到它。”

领导再次点了点头,若有所思的离开了。

超线程技术

又过了几天,厂里召开了一次会议,八个车间都派了代表参会。

图源:视觉中国

会上,领导发话了:“前段时间我到各个车间视察,发现现在咱们厂里资源浪费的情况很严重!”

二号车间的虎子一听就坐不住了,“领导,咱们大家伙工作都挺卖力的,哪里有浪费啊?”

领导瞥了一眼,继续说到:“一方面,厂里的计算资源——电路设备得不到充分利用,另一方面,又因为内存读取缓慢、指令依赖等方面的原因,浪费大家太多时间花在等待上。”

八号车间的代表向来爱拍马屁,接着领导的话问到:“领导是有什么指示?我们

八号车间绝对支持!”

“我们几个管理层经过讨论,决定让你们一个车间由现在执行一个线程,变成执行两个线程!”

领导这话一出,会场窃窃私语此起彼伏。虎子偏头小声对我说到:“这资本家改不了剥削的本色,这压榨的也太狠了!”

领导咳嗽了几声,会场再次安静了下来。

我起身问到:“领导,这咱们一个车间怎么能执行两个线程呢,每个车间的寄存器只有一套,这用起来岂不是要乱掉?”

“这个你不用担心,我们会给每个车间配两套寄存器!”

五号车间的代表一听说到:“要不再给我们添点人手吧,这样效率肯定提升快!”

领导一听笑着说到:“还添人手?要不要再给你们添点运算设备?那我不如再增加几个车间,还开这会干嘛?这次会议的主题就是如何让我们现有的资源得到最大程度的利用,减少浪费现象!”

会场一度陷入了尴尬又紧张的氛围。

还是虎子打破了安静,“领导,这两个线程的工作该怎么开展,我们心底没有数啊!”

领导满意的笑了一下:“这才是你们该问的问题嘛!每个车间回去重新分配一下工作,划分为两套班子,各自维护一套寄存器,对外宣称你们是两个不同的物理核心,但各车间的缓存和计算资源还是只有一套。你们内部协调好,在执行代码指令的时候,充分利用等待的时间执行另一个线程的指令,这样也不用担心指令依赖的问题。”

大家一边听一边做着笔记。

“还有,如果遇到资源闲置的情况,也可以同时执行两个线程的指令。比如一个线程是执行整数运算指令,一个线程是执行浮点数运算指令,就可以一起来,让工厂的计算资源充分用起来,别闲置。”

看我们都认真的记着笔记,领导露出了满意的笑容,“都记好了吧,我们给这项革命性的技术取了个特别酷的名字,叫超线程技术!”

散会后,大家都纷纷抱怨,把大家逼得这么紧,以后上班看来是没法摸鱼了,这日子真是越来越难过了。


毁誉参半的超线程

不过,抱怨归抱怨,大家还是得按照新规来执行。

很快,厂里就落地了这项技术,咱们一个车间摇身一变,变成了俩,咱们原来八核八线程的CPU一下变成了八核十六线程。操作系统那帮人都被我们给骗了,还以为咱们是十六核的CPU呢!

不过毕竟计算资源还是只有一份,遇到两个线程都要使用同样的计算单元时,还是得要排队,还要花时间在两个线程之前的协调工作上,所以整体工作效率的根本没有2倍,绝大多数时候能提升个20%-30%就不错了。

不仅如此,车间改造后,增加了新的逻辑电路单元,咱这CPU工厂的功耗也更大了,工厂门口那座巨大的风扇也得加大马力给我们降温了。

厂子里对这项技术的反对声音开始不绝于耳。

不过后来发生了一件事,让人们不得不关闭这项技术。听闻这个消息,我们都乐开了花,看来又可以继续摸鱼了······


彩蛋

每当有网络数据包到来,网卡那家伙就通过中断告诉我们CPU去处理。

可咱明明有8个车间,它非得一个劲的只给我们车间发中断,搞得我们都没法好好工作。

终于,我忍不住了······

预知后事如何,请关注后续精彩······

推荐阅读

  • 征战云时代,为什么安全是关键命题?

  • 25 张图读懂「文件系统」

  • 数据平台、大数据平台、数据中台……傻傻分不清?这次终于有人讲明白了!

  • Java 二十五载,正在 Kotlin 化!

  • 维度爆炸?Python实现数据压缩如此简单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海纳威上云 构建数字化透明工厂

“海纳威通过阿里巴巴的宜搭平台,开发了生产计划分配、计时计件、考勤与工资计算系统。宜搭的这种模式,可以按照我们自己的想法来设计软件,贴合现场业务来开发和调整,满足了管理诉求。效率很高,成本可控,和…

通用网站备案常见的备案场景及要求

当网站托管于中国大陆境内的服务器上时,网站需申请ICP备案。本文为您介绍常见网站的备案场景及备案要求。 通用网站备案 此种场景下: 托管于大陆境内服务器的网站需备案,托管于中国大陆境外服务器的网站无需备案。网站备案将会审核网站的三…

如何利用DTS数据同步功能,快速创建数据同步作业

数据传输服务DTS(Data Transmission Service)提供的数据同步功能简单易用,您只需在控制台上进行简单操作,即可完成整个数据同步作业的配置。 注意事项 本文仅简单介绍数据同步作业的通用配置流程,不同的数据源在配置…

震惊!程序员要放弃 Python 了!?发生了啥?

听说 Python 很难学?难在哪里?听说学完不知道做什么?为什么?Python 该怎么学?好不好学?学完做什么?许多人都会遇到了下面这些问题——1. 没经验根本不知道从何学起,而且应用方向太多…

如何快速完成企业应用IPv6改造

场景描述 对于IPv4-only的云服务器,通过DNS域名解析IPv6转换服务,快速支持对外提供IPv6访问能力。对于双栈云服务器,构建应用环境。 解决问题 改造技术复杂度高改造任务时间紧改造所需人力和设备成本较高 产品列表 虚拟专用网VPC弹性计算E…

上云七步走,助力垂直电商降本增效

甩开技术包袱,做出业务特色,越发成为垂直电商的生存之道 今天,人们通过天猫、淘宝、苏宁进行网络购物,不仅方便,而且快乐,通过盒马、饿了么享受更加快捷的本地生活服务,与此同时,家电…

3.3亿人都在用小程序,中国首次定义的互联网标准又有新进展

2020年,你的一天可能是这样度过。早晨,用天气小程序,看看立秋后天气是否降温;中午,用外卖小程序,点一份你最爱的水煮鱼;下午,用咖啡小程序,买一份4.8折的美式咖啡&#x…

Elasticsearch7.15.2 分布式集群安装(linux环境)

前言:一到六演示采用伪分布式,七单独介绍分布式集群方式 文章目录一、前期准备1. 下载2. 解压3.创建es用户4. 增加资源分配5. 内核参数6. 刷新 配置二、node1节点2.1. 重命名2.1. 编辑配置三、node2节点3.1. 复制node-13.2. 修改配置四、node3节点4.1. 复…

中小企业上云多地域办公组网,建立高质量云上内网环境

场景描述 举例企业存在三个网络:阿里云 VPC(北京)、云下北京 IDC,云下上海 IDC。SAG 可就近接入阿里云上海接入点CCN网络,并通过CEN 走阿里内网高质量链路连接北京阿里云 VPC。阿里云 VPC(北京&#xff09…

简单五步,实现物联网批量创建设备

产品指某一类设备,创建完产品后,需要为具体设备创建身份。您可以创建单个设备,也可以批量创建设备。本文为您讲述如何批量创建设备。 操作步骤 1.登录物联网平台控制台。 2.在左侧导航栏,选择设备管理 > 设备,单…

Elasticsearch7.15.2 集成ik中文分词器 适用于单机和集群

文章目录一、下载部署1. 版本对应2. 下载ik3. 目录权限4. 切换es用户5. 启动es6. 验证es7. 切换kibana 用户8. 启动kibana9. 验证kibana二、ik分词测试2.1. 测试ik2.2. 分词器2.3. 最佳实践一、下载部署 1. 版本对应 软件Elasticsearch版本i版本k中文分词器版本Elasticsearch…

快速部署web项目上线云服务器

快速部署web项目上线云服务器 一、第一步登录腾讯云 1、登录腾讯云后,先购买或者在最新活动中免费领取一个十五天的云服务器产品 2、然后点击头像 3、在云产品选项中选择你需要的云服务器或轻量级应用服务器 4、我选择的是轻量级应用服务器,点击服务器…

如何让 Mac在运行 Windows时享受极致体验?Parallels Desktop 16给你答案!

在工作、生活与学习中我们都能够体会到Mac确实非常好用,但很多时候,仍然会需要用到一些Windows上的软件,而这些软件大部分是macOS没有的,因此,如何在Mac上运行Windows软件,成为了很多人的切实需求。当然&am…

建站零基础入门:手把手教你如何自助建站

使用阿里云云服务器ECS搭建网站有多种方式,本文主要介绍自助建站的流程。 建站方式 使用ECS建站的方式如下表所示。请根据实际业务需求,选择适合您的建站方式。 自助建站步骤 1.选择服务器。 不同网站类型需要的ECS配置不同,请您确认网站…

logstash-input-jdbc 下载安装 linux

文章目录1.下载2. 解压3. 下载插件1.下载 官网:https://www.elastic.co/cn/ 下载logstash cd /app wget https://artifacts.elastic.co/downloads/logstash/logstash-7.15.2-linux-x86_64.tar.gz2. 解压 tar -zxvf logstash-7.15.2-linux-x86_64.tar.gz 3. 下…

安心加科技打造多维度全场景式安心加物联平台

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 广东省安心加科技有限公司是一家专注于地产行业智能化和物联网领域&#xff0…

MySQL 索引分析除了 EXPLAIN 还有什么方法?

作者 | adrninistrat0r责编 | 夕颜出品 | CSDN(ID:CSDNnews)前言对于非数据库开发人员而言,难以对MySQL源码进行分析或调试,接近一个黑盒,但MySQL提供了一些命令及系统状态变量,可对索引及其他内容进行分析…

阿里云助力宁波市教育局“甬上云校”停课不停学

突如其来的新冠病毒肺炎疫情,让全国的师生正在经历着一个非常特殊的寒假。 疫情当下,教育部明确要求2020年春季延期开学,并且鼓励利用互联网和信息化教育资源确保学生“停课不停学”。虽然远离一线战场,各地教育部门和学校也迅速…

Elasticsearch7.15.2 报java.lang.NoClassDefFoundError: org/elasticsearch/client/Cancellable的解决方案

文章目录1. 现象2. 分析定位3. 解决方案1. 现象 2. 分析定位 原因:查看依赖项的级联关系,发现rest-high-level-client这个7.15.2包,的引用了6.4.3的rest-client。 3. 解决方案 直接把rest-client包的7.15.2版本的依赖项加进来就好了。 springboot集成…

全流分析取证:高级威胁哪里跑?!

网络安全的趋势和技术选择 网络空间安全涉及的安全响应,是指在安全事件发生后,通过人工或者自动化的方式,能采取相应的措施,降低安全事件带来的危害和影响;从启明星辰发布的近几年安全态势观察报告来看,安…