加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

操纵体系必要如安在多CPU上调治事变?

发布时间:2021-06-03 13:47:15 所属栏目:移动互联 来源:互联网
导读:虽然,多核CPU带来了很多坚苦。首要坚苦是典范的应用措施(譬喻你写的许多C措施)都只行使一个CPU,增进了更多的CPU并没有让这类措施运行得更快。为了办理这个题目

虽然,多核CPU带来了很多坚苦。首要坚苦是典范的应用措施(譬喻你写的许多C措施)都只行使一个CPU,增进了更多的CPU并没有让这类措施运行得更快。为了办理这个题目,不得不重写这些应用措施,使之能并行(parallel)执行,大概行使多线程(thread,本书的第2部门将用较多篇幅接头)。多线程应用可以将事变分手到多个CPU上,因此CPU资源越多就运行越快。

增补:高级章节

必要阅读本书的更多内容才气真正领略高级章节,但这些内容在逻辑上放在一章里。譬喻,本章是关于多处理赏罚器调治的,假如先辈修了中间部门的并发常识,会更故意思。可是,从逻辑上它属于本书中假造化(一样平常)和CPU调治(详细)的部门。因此,提议不按次序进修这些高级章节。对付本章,提议在本书第2部门之后进修。

除了应用措施,操纵体系碰着的一个新的题目是(不稀疏!)多处理赏罚器调治(multiprocessor scheduling)。到今朝为止,我们接头了很多单处理赏罚器调治的原则,那么怎样将这些设法扩展到多处理赏罚器上呢?尚有什么新的题目必要办理?因此,我们的题目如下。

要害题目:如安在多处理赏罚器上调治事变

操纵体系应该如安在多CPU上调治事变?会碰着什么新题目?已有的技能仍旧合用吗?是否必要新的思绪?

10.1 配景:多处理赏罚器架构

为了领略多处理赏罚器调治带来的新题目,必需先知道它与单CPU之间的根基区别。区此外焦点在于对硬件缓存(cache)的行使(见图10.1),以及多处理赏罚器之间共享数据的方法。本章将在较高层面接头这些题目。更多信息可以其他处所找到[CSG99],尤其是在高年级或研究生存较机架构课程中。

在单CPU体系中,存在多级的硬件缓存(hardware cache),一样平常来说会让处理赏罚器更快地执行措施。缓存是很小但很快的存储装备,凡是拥有内存中最热的数据的备份。对比之下,内存很大且拥有全部的数据,但会见速率较慢。通过将频仍会见的数据放在缓存中,体系好像拥有又大又快的内存。

举个例子,假设一个措施必要从内存中加载指令并读取一个值,体系只有一个CPU,拥有较小的缓存(如64KB)和较大的内存。

措施***次读取数据时,数据在内存中,因此必要耗费较长的时刻(也许数十或数百纳秒)。处理赏罚器判定该数据很也许会被再次行使,因此将其放入CPU缓存中。假如之后措施再次必要行使同样的数据,CPU会先查找缓存。由于在缓存中找到了数据,以是取数据快得多(好比几纳秒),措施也就运行更快。

缓存是基于局部性(locality)的观念,局部性有两种,即时刻局部性和空间局部性。时刻局部性是指当一个数据被会见后,它很有也许会在不久的未来被再次会见,好比轮回代码中的数据或指令自己。而空间局部性指的是,当措施会见解点为x

的数据时,很有也许会紧接着会见x

周围的数据,好比遍历数组或指令的次序执行。因为这两种局部性存在于大大都的措施中,硬件体系可以很好地猜测哪些数据可以放入缓存,从而运行得很好。

风趣的部门来了:假如体系有多个处理赏罚器,并共享统一个内存,如图10.2所示,会奈何呢?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读