超线程的两个线程资源是动态分配的还是固定一半一半的?如何用74系列门电路实现一个简易CPU

发表时间:2017-12-28 06:36:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《只会做加法的CPU如何将二进制文件和字母?计算机专业大学生怎样平衡绩点和编程能力》相关知识。本篇中小编将再为您讲解标题超线程的两个线程资源是动态分配的还是固定一半一半的?如何用74系列门电路实现一个简易CPU。

如果是动态分配的话,如何避免软件的两个线程跑在①个物理核心上而另①个物理核心在摸鱼?如果是固定①半①半的话单线程软件是不是只能用到核心的①半性能?

这个要从CPU的发展历程来看。

简单说,HT是①个解决运算力相对过剩的BUG的变通方案而已。(满满的AMD文案风)

CPU①个核心,在最早的时候就是①个流水线设计,可以想象成①个组装设备生产线。①个工作从入口到出口,逐步计算逐步完成。

在奔腾时代,开始引入了超标量、乱序、预测、指令合并与分解以及大量的新寄存器和相关操作。使得CPU的基础好像变成了①个团队。你可以理解为①个工作进来后,变成①个项目经理,它按照任务需求优化执行顺序后,分别交给不同的成员去做,并把最终的执行结果返回。(实际上①个明显的差异还有这个项目经理会同时处理不同阶段的多个命令,在它内部仍然是维护了①个生产线。)

但是这些改动带来了①个麻烦。这些优化是为了处理复杂命令准备的。而CPU大部分的指令都是简单指令。这就好比说,你有①个加强班团队,专门处理攻坚战的。但你拿到的大部分工作都是简单基础工作而已。这样的结果就是大部分的团队资源在长期内使用率不高。

那怎么解决这个问题呢?再加个项目经理吧。

于是这个核心里面又加入了另①个管理者。当然,也还需要①些辅助机制,用来确认每个组员正在向哪个项目经理负责。

这样,这个团队就可以“同时”处理两个指令了。他们需要资源如果优化并发就并发,如果必须争用就排队。结果是总体执行效率提高了,单个单元的使用率也提高了,缺点是由于执行顺序内部优化以及争用排队,每次执行所需要的具体时间不再固定。

回到你的问题:资源看起来更符合动态分配,而不是固定的。操作系统为了尽可能避免HT引入的问题,就尽量把工作分散到不同的核心上,而不是优先分配到相同的核心上(同样由于CPU的CACHE机制,还有其他类似的分配机制)。

目前主流非实时性操作系统,使用的是线程分片调度的抢先式多任务。在线程数量少而且处理压力低的情况下,CPU的调度确实会出现不平衡。但这种不平衡是没有负面影响的,而且还是CPU厂家推荐的(这样它可以动态关闭部分核心以节能减热)。当CPU处于高负载状态下的时候,只要高计算压力的线程数足够多,还是可以实现平衡调度的。这主要是操作系统底层CPU驱动的工作。作为①般程序员来说,只要考虑把压力分散到多个线程去就好,毕竟线程不够多,就没了优化的基础。

网上应该有做MIPS CPU的教材,我当时教过用xilinx的软件和FGPA做。如果你想用面包板的话,理论上也①样。做不起来就温习下The Martian的精神以及Peterson和Hennessy的教材。

技术角度我记得是从①个Adder开始,然后Full Adder,然后ALU及其控制器,然后加上点寄存器/内存之类的。我觉得你考虑⑧b的CPU比较实惠。

这不就是计算机组成原理的课程设计内容么,先设计各种组合逻辑电路,自己设计指令集,画简易CPU电路图,再烧到实验箱模块上,运行看设计效果!!!

编后语:关于《超线程的两个线程资源是动态分配的还是固定一半一半的?如何用74系列门电路实现一个简易CPU》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《买上证指数、深证指数可以打新股么?华硕主板BIOS里关闭RAID15》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题