EEJournal

专题文章
现在就订阅

螺纹针

想象技术元处理器线程变得聪明

IP业务是一个野生和毛茸茸的地方。有很多伤亡的公司都试图找出如何节省其他公司时间赚钱。时间等于金钱。应该是一个简单的概念,但令人惊讶的是它可以让人花钱为了省钱。在某种程度上它总是感觉花钱。

所以市场动摇了一点,但是,在这个过程中,没有IP组件已经提升到崇高的高度相同的处理器。它变得至关重要的第一个决定,和所有其他决策流。处理器不仅决定驱动芯片的其他建筑和IP的选择设计,它还驱动芯片,因为软件的未来版本的遗产被建立,以后很难改变。它驱动一个巨大的生态系统的工具和相应的IP提供商必须调整他们的产品到处理器。

这里有一些非常人所熟知的名字。很少。任何人都不能马上想出手臂彻底失败,必须找到一个新的工作在洗碗。MIPS和英特尔也明显的选择,弧(现在Virage的一部分)和Tensilica是熟悉的名字;XMOS和Tilera公司摆动他们的方式。除此之外,你必须开始思考困难。(我怀疑我会得到一个愤怒的邮件我没有名字…),很大程度上是因为大男人控制的发生了什么;有一个巨大的门槛。

因此它是令人惊讶的发现市场上有一个新的条目。实际上,称之为新并不十分正确,但假设新商业化:它的想象力技术的(IMG -这样我很懒)元的处理器。它已经存在了至少12年,但只供内部使用,IMG他们为他们的客户整合系统。

它开始作为一个非常基本的处理器创建的硬件线程的概念。现在,通过说出这句话硬件线程,我们已经进入了一个黑暗的世界的任务调度器,我们潜水得深一些。(准备好你的通气管;几个阿司匹林的准备不是一个坏主意。)

IMG想出了自己的meo OS,随着核心,随着时间的推移,他们加入了MMU和缓存功能。在完成这一切,他们站在后面,看他们的创造,决定是好的,称它为一个实际的产品。他们在其核心市场有三个变化:一个简单的单线程的版本(LTP);area-optimized版本(MTP)和一个高端(HTP)。关注能耗似乎痴迷。

权力的一部分,他们的方法是提取尽可能多的工作的每一个时钟周期。所以每个核心(LTP除外)有四个他们所谓的线程(一个重载的术语,我们将回顾不久),每一种都可以配置为一个RISC或DSP线程(DSP线程有一些额外的指令和寄存器可用)。底层硬件调度器管理线程和可以做一个交换在单个周期-不久。

如果多个线程有工作计划,需要资源重叠,这两个线程可以在同一时间进行,他们称之为super-threading,它不应该与其他的混淆super-threading这意味着不同的东西。这也即将到来。我觉得这样的挑逗。

每一个线程都可以独立地分配给一个不同的操作系统。例如,三个线程在一次核心可以分配给Linux SMP,第四是裸机或分配给一个操作系统。原则上听起来很简单,但它提出了一些重要的线程管理问题——更不用说术语。事实上,这是过去我将把这些“线程”线程。这是我们进入黑暗的地方。通气管。

线程在线程

挑战在处理其中的一些问题是广泛的概念与具体的实现,这可能都是不同的,他们经常使用相同的词汇不同的东西。很容易被重载的诸如“线程困惑。“所以我们放大退出和工作方式,努力成为精确的关于语言。

这可能会审查,但和我在这里工作,因为我的易怒的旧大脑受益于类似于线性漫步穿过黑暗。我没有声称自己是一个专家;下面反映的努力认真的业余爱好者收集各种证据来自不同的人、地方和油漆一个连贯的画面。你的情况可能不同。希望你少出现困惑,但是,如果不是这样,我会认为自己很好的公司。

•从前,在paleocomputer的年龄,一次只有一个任务会存在。电脑有一个CPU可以一次只做一件事。没有什么别的。和世界很简单。和无聊。而缓慢。

•多任务允许超过一个任务在给定的时间玩,虽然CPU仍然可以一次只做一件事,和操作系统交换任务。

•多处理是另一个术语,指的是同样的事但超载硬件内涵。它可以描述一个系统,有多个CPU和有时与多核混为一谈。为了避免这种处理器/核心混淆,我们这里指的CPU不考虑位置相对于其他CPU。

•一个多处理器系统(在一般意义上),就可以同时执行多个事情,而不是管理多个东西必须共享一个CPU。这些东西可能执行过程,大致说来,独立软件实体,它们有自己的空间和环境,一般来说,与任何其他进程不重叠。也可能是线程,这一过程的部分可以相互独立地执行。一个系统,可以管理多个线程称为多线程。

•操作系统一般管理进程和线程,决定哪些运行时,,在一个多处理器系统的背景下,运行它们。我们进入调度领域,这几分钟的研究证实本身是一个复杂的学科。从调度的角度来看,该实体是否被安排是一个进程或线程通常并不重要,所以这个词一般任务通常是用来表示进程或线程。

如果你认为很容易决定哪些任务安排在任何给定的时间在一个cpu,你错了。有许多算法和方法,每种方法都有优缺点。

一个CPU和多个任务,操作系统将决定何时迎来一个又一个的任务。交换可以做为了提高效率,利用时间停滞在一个任务运行另一个任务,或者公平,确保每项任务得到了一些时间。如果CPU很简单,那么知道一次只有一个任务。

•当交换一个任务时,操作系统需要的信息任务正在执行,称为上下文,并将它保存到内存中;任务被交换在其上下文检索从内存中。上下文的内容会有所不同的架构,但通常包括诸如注册内容,最重要的是,程序计数器。

交换内存需要时间,所以总有权衡被保存的时间由于一些停滞的任务和所花费的时间交换上下文。所有安排的一部分来考虑。

•这种多线程,操作系统的几项决定哪一个任务安排在一个CPU在给定的时刻,时间多线程。某些时间多线程调用super-threading。然而,如果您有多个cpu,然后你就可以拥有真正的并行计算,因此可以安排一次多个任务。因为你可以有线程同时运行,这被称为同时多线程。

•操作系统必须是专门设计来处理同时性,通常发现在SMP(对称多处理)版本。调度变得更复杂,因为一个任务开始,然后摊上一个CPU实际上可能恢复在另一个。缓存状态和TLB内容复杂图到微积分的物品。

•我们可以添加另一个程度的复杂性硬件线程。在最简单的情况下,这就是一个CPU有一个执行单元,但可以容纳多个线程的上下文的硬件。这意味着上下文切换是非常快,因为没有交换的记忆。

•这是一个实例,语言变得混乱。在一个容纳4个线程的CPU硬件,硬件的人会认为这些“老虎机”的线程。在这种思维方式,永远不会超过四个线程(在本例中),因为这是所有的硬件将举行。但从软件的角度来看,应用程序决定了线程的数量;可能有20或1000软件线程。

从调度的角度来看,你现在有一些硬件线程可以交换迅速,其余必须由内存互换。大概最通常会运行线程将有利于剩余的硬件尽可能多。这里的操作系统调度器必须决定哪些线程保持硬件和内存。更多的算法复杂度。

•如果我们有一个与多个硬件线程CPU能力,那么操作系统可以简单地认为在一个CPU,你可以生活在一个“标准”版本的操作系统,虽然它必须知道硬件线程。但我们可以通过分裂更多的复杂的多核之间的区别和单核有多个版本的硬件执行的某些部分。

正是这意味着可以为不同的体系结构是不同的,但结果是,在适当的情况下,正确的资源不共享,两个线程可以在同一时间执行。在错误的情况下,线程正在争夺相同的执行硬件,只有一个可以执行。

这不是完整的和完全独立的多核cpu;它是介于两者之间,它仍然有资格作为同步多线程。英特尔是指他们的版本超线程;IMG使用术语super-threading,不应混淆super-threading我们只是谈论,这是一个味道的多线程。

•当你有同步多线程(是否过度或超级-品种),即使你只有一个完整的CPU,这一事实有时多做一件事意味着现在操作系统需要查看CPU不是一个CPU,而是被多个虚拟cpu(我缩写个VCPU这里)。现在你需要一个SMP版本的操作系统。

至少在理论上,重复执行单元的数量不需要匹配硬件线程的数量(你可以有四个硬件线程有两个partially-replicated执行路径)。但在具体情况下的元处理器,每个硬件线程就像自己的个VCPU。所以,当我们将前4槽称为“线程”,从现在起我会打电话给他们个vcpu。

•我们可以让事情更复杂,包括硬件调度器。到目前为止,所有的日程安排已经完成的操作系统。但它需要时间操作系统(这是它自己的进程有自己的线程)找出下一步安排。硬件调度程序应该能够更快地这样做。元核心硬件调度程序,可以实现单交换。但它只能交换之间的硬件线程;大概的操作系统必须参与如果其他线程需要预定。

这个地方的操作系统调度器和硬件调度器满足是一个休闲的研究揭示了几乎没有信息的地方。但最明显的影响是,操作系统与硬件通信调度程序在某种程度上。只要四个硬件线程包含四个并发线程的操作系统管理,硬件调度器可以交换他们来最大化性能甚至没有操作系统知道它。

但是,容忍我,我们几乎完成了小旅游,让我们一层进一步的东西:元处理器,可以有不同的硬件线程分配给不同的操作系统。个vcpu共享很多资源,所以必须有一些方法来管理操作系统之间的资源,而不知道对方的存在。

硬件调度器可以帮助,因为这是非常低级的,是这两个操作系统的范围之外。但两者之间的优先级操作系统怎么能合理化?让我们从简单的开始的所有四个vcpu被给一个操作系统。如果你想拨打的线程上执行哪些个vcpu或惹优先级、操作系统可以让你使用亲和力优先级偏见调度决策的机制。

这个场景非常容易管理,因为硬件调度程序和操作系统调度器对所有个vcpu能见度。但是当我们把Linux SMP上只有三个VCPU和有四个VCPU RTOS吗?这一事实RTOS是建议使用它有一些要求需求对时间和优先级。

操作系统可以有效地管理在其权限范围内的活动,和Linux可以管理它的线程。但由于没有操作系统知道,如何管理重点和负载平衡两者之间?这就是IMG还有另一个低级技术自动MIPS分配(AMA)。这是一个旋钮,可以实时调整分配在线程可用的周期。

一般来说,AMA将用于不同操作系统之间的仲裁。在上面的示例中,这三个Linux线程通常都得到相同的AMA设置(与任何平衡通过操作系统),而RTOS可能得到不同的AMA设置。当然,你总是可以玩得好开心的同时AMA低水平和高水平,导致操作系统设置各种各样的混乱。好干净的家庭乐趣。

呼,做到了。这熊指出大部分的复杂性来自操作系统和硬件之间的相互作用。也有可能实现“裸机”系统——也就是说,没有操作系统。在这种情况下,硬件线程和调度器提供复杂的操作系统而不需要一个操作系统。

总而言之,有一个令人惊讶的程度的灵活性,粒度和控制与元处理器是可能的。充分利用所有的自由度将是一个不寻常的项目,可能会迫使你比你想了解线程调度和控制。

最后,如果没有其他从这个讨论很清楚,一个显而易见的外卖,甚至我可以理解是术语,而柔软。关键条款意味着不同的事情不同的公司。如果你接受这样一个事实:通常,术语的含义比简单的事实真的不太重要的流行语,它变得明显,有许多强大的流行语,尚未真正应该解决的剥削。

所以,不管他们的行为描述,让记录显示这些页面催生了以下新的流行语。明显的考虑线程通过公制巨人和小范围。所以我们必须利用的概念megathreading,gigathreading,- - - - - -,petathreading在高端;微线程,纳米- - - - - -,皮科- - - - - -,毫微微- - - - - -,attothreading在低端。我们会惊叹不已gonzothreading,extremeThreading和的功能PowerThread,棉纺,NuclearThread(这将产生一个由竞争coded-named统计项目NuclearThread威慑)。

我不知道他们会做什么,但它的名字才是最重要的。你第一次看到它。

链接:元的处理器

留下一个回复

有特色的博客
2023年6月12日
多样性、公正和包容(一些)不仅仅是单词但节奏体现了通过我们的文化价值观。在DEI@Cadence博客系列,你会发现一个社区,员工分享他们的观点和经验。通过提供个人的……
2023年6月8日
学习我们的EDA工具加速5 g SoC设计客户Viettel 5 g基站芯片设计和驱动5 g推出在越南。后客户关注的焦点:Viettel加速其前5 g SoC设计Synopsys对此ASIP设计第一次出现在新H……
2023年6月2日
我刚听到的东西真的给了我一定的思考时间,死亡的事实,每个人都经历两种形式(如果让我选择,我宁愿没有经验甚至)....

有特色的视频

自动生成、预算和优化UPF值与Synopsys对此威尔第趟车师

Synopsys对此

学习翻译高级权力意图从CSV消耗品UPF值在一个典型的ASIC设计流程使用威尔第UPF值建筑师。权力架构师可以专注于效率的意图,而不是担心语法和UPF值语义。

了解更多关于Synopsys对此“节能soc的解决方案

了纸

EC解决技术简单

节奏设计系统

的节奏®摄氏™EC解决支持电子系统设计师最具挑战性的热管理/电子冷却问题迅速和准确。利用强大的计算引擎和网格技术,设计者可以模型和分析流体流动和传热的即使是最复杂的电子系统,确保电子冷却系统是可靠的。

点击阅读更多

以注入式教学法亚博里的电子竞技

dsPIC33CH DSCs:两个dsPIC33Cs在单个芯片上
在这节课中粉笔的谈话,Vijay Ba亚博里的电子竞技pu微芯片和阿米莉亚道尔顿探索双核心数字信号控制器的好处。他们讨论的关键规格时需要记住的单核和双核DSCs以及如何减少开发时间,节省空间和成本和保持所需的性能和隔离与微芯片dsPIC33CH DSCs。
2023年1月24日,
18502的浏览量
Baidu