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

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

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

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

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

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

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

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

指令依赖

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

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

事情的起因是这样的~~

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

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

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

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

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

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

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

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

资源闲置

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

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

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

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

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

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

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

超线程技术

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

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

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

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

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

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

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

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

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

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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywzzy.html