多核计算机已成主流_第1页
多核计算机已成主流_第2页
多核计算机已成主流_第3页
多核计算机已成主流_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多核计算机已成主流多核计算机已成主流 一 多核结构一 多核结构 由于人类的贪婪本性 我们对计算机芯片的速度总是感到不满意 英特尔公由于人类的贪婪本性 我们对计算机芯片的速度总是感到不满意 英特尔公 司一直在努力提升司一直在努力提升 CPUCPU 的时钟频率 其最新最快的奔腾芯片时钟频率已经达到了的时钟频率 其最新最快的奔腾芯片时钟频率已经达到了 令人咂舌的令人咂舌的 3 8GHZ3 8GHZ 但这时芯片的散热成为了一个不可逾越的障碍 因此英特尔 但这时芯片的散热成为了一个不可逾越的障碍 因此英特尔 公司只得宣布停止公司只得宣布停止 4GHZ4GHZ 新产品的计划 新产品的计划 质量上不行 数量上补 在今天 芯片厂商已经将将来压宝在多处理器和多质量上不行 数量上补 在今天 芯片厂商已经将将来压宝在多处理器和多 核上面 多处理器指的是在一个体系结构上放置多个核上面 多处理器指的是在一个体系结构上放置多个 CPUCPU 而多核则是指在同一块 而多核则是指在同一块 芯片 芯片 CPUCPU 上放置多个核 上放置多个核 core core 即执行单元 为简单起见 人们现在将多处理 即执行单元 为简单起见 人们现在将多处理 器和多核结构统称为多核结构 器和多核结构统称为多核结构 多核和多多核和多 CPUCPU 的区别是多核结构更加紧凑 成本在同等执行单元数量的情况的区别是多核结构更加紧凑 成本在同等执行单元数量的情况 下更便宜 功耗更低 随着下更便宜 功耗更低 随着 AMDAMD 和和 IntelIntel 在多核技术上的大力研究和推进 多核在多核技术上的大力研究和推进 多核 技术已经从双核推进到技术已经从双核推进到 4 4 核 核 8 8 核甚至更高 核甚至更高 多核计算机的出现 打破了单核环境下的许多操作系统设计的正确性或可靠多核计算机的出现 打破了单核环境下的许多操作系统设计的正确性或可靠 性 为了适应多核环境所提出的新要求 也为了更好地利用多核技术提供的新方性 为了适应多核环境所提出的新要求 也为了更好地利用多核技术提供的新方 便 操作系统需要作出相应调整 便 操作系统需要作出相应调整 要讨论多核环境下操作系统所做的调整 首先需要了解单核环境和多核环境要讨论多核环境下操作系统所做的调整 首先需要了解单核环境和多核环境 的不同之处 在的不同之处 在 X86X86 体系结构下 多处理功能芯片经过了以下四个演变阶段 体系结构下 多处理功能芯片经过了以下四个演变阶段 1 1 多处理器结构多处理器结构 即一条总线上挂载多个处理器 在多个即一条总线上挂载多个处理器 在多个 CPUCPU 的情况下 以的情况下 以 CPUCPU 之间的关系不之间的关系不 同可以分为对称多处理器结构 同可以分为对称多处理器结构 SMPSMP 结构 较普遍 和非对称多处理器结构 结构 较普遍 和非对称多处理器结构 AMPAMP 结构 结构 2 2 超线程结构超线程结构 在一台电脑里安装多个在一台电脑里安装多个 CPUCPU 虽然提升了计算机的性能 但是付出的代价是高虽然提升了计算机的性能 但是付出的代价是高 昂的成本和巨大的功耗 而在实际中 基于很多原因 昂的成本和巨大的功耗 而在实际中 基于很多原因 CPUCPU 的执行单元并没有被充的执行单元并没有被充 分利用 因此分利用 因此 IntelIntel 提出了超线程技术来让一个提出了超线程技术来让一个 CPUCPU 同时执行多重线程 从而提同时执行多重线程 从而提 高高 CPUCPU 效率和用户满意度 效率和用户满意度 超线程技术是在一个超线程技术是在一个 CPUCPU 上同时执行的多个程序共同分享该上同时执行的多个程序共同分享该 CPUCPU 内的资源 内的资源 理论上像两个理论上像两个 CPUCPU 在同一时间执行两个线程 超线程技术可在同一时间里 让应在同一时间执行两个线程 超线程技术可在同一时间里 让应 用程序使用芯片的不同部分 为了实现这种技术 需要在处理器上多加入一个逻用程序使用芯片的不同部分 为了实现这种技术 需要在处理器上多加入一个逻 辑处理单元指针 辑处理单元指针 需用注意的是 含有超线程技术的需用注意的是 含有超线程技术的 CPUCPU 需要芯片组和软件支持 才能比较理需要芯片组和软件支持 才能比较理 想地发挥该项技术的优势 操作系统如想地发挥该项技术的优势 操作系统如 WindowsWindows XPXP WindowsWindows 20032003 Linus2 4 xLinus2 4 x 以后的版本均支持超线程技术 以后的版本均支持超线程技术 虽然采用超线程技术能同时执行两个线程 但它并不像两个真正的虽然采用超线程技术能同时执行两个线程 但它并不像两个真正的 CPUCPU 那样 那样 每个每个 CPUCPU 都有具有独立的资源 当两个线程都需要某一个资源时 其中一个要暂都有具有独立的资源 当两个线程都需要某一个资源时 其中一个要暂 时停止 并让出资源 直到这此资源闲置后才能继续 因此超线程的性能并不等时停止 并让出资源 直到这此资源闲置后才能继续 因此超线程的性能并不等 同于两个同于两个 CPUCPU 的性能 的性能 3 3 多核结构 多核结构 有什么办法能同时克服多有什么办法能同时克服多 CPUCPU 和超线程的缺点呢 就是多核结构 多核结构和超线程的缺点呢 就是多核结构 多核结构 就是在一个就是在一个 CPUCPU 里面布置两个执行核 即两套执行单元 如里面布置两个执行核 即两套执行单元 如 ALUALU FPUFPU 和和 L2L2 缓存缓存 等 而其他部分则两个核共享 这样由于使用的是一个等 而其他部分则两个核共享 这样由于使用的是一个 CPUCPU 其功耗和单 其功耗和单 CPUCPU 一样 一样 由于布置了多个核 其指令级并行将是真正的并行 而不是超线程的半并行 由于布置了多个核 其指令级并行将是真正的并行 而不是超线程的半并行 4 4 多核超线程结构 多核超线程结构 而在多核情况下 我们也可以使用超线程技术 从而形成多核超线程技术 而在多核情况下 我们也可以使用超线程技术 从而形成多核超线程技术 即每个物理执行核里面又分解为两个或多个逻辑执行单元 即每个物理执行核里面又分解为两个或多个逻辑执行单元 二 多核环境下操作系统的修正二 多核环境下操作系统的修正 多核的出现对软件的设计产生了巨大的影响 例如 由于多多核的出现对软件的设计产生了巨大的影响 例如 由于多 CPUCPU 或者多个执或者多个执 行核的存在 我们在单核环境下的原语操作将不能适应 而需要修正 除此之外 行核的存在 我们在单核环境下的原语操作将不能适应 而需要修正 除此之外 进程的调度也是一个大大需要修改的地方 因为现在进程不只有一个执行核可以进程的调度也是一个大大需要修改的地方 因为现在进程不只有一个执行核可以 选择了 内存管理的变化是多核环境带来的另外一个重要变故 此外 能耗优化选择了 内存管理的变化是多核环境带来的另外一个重要变故 此外 能耗优化 也是多核环境下必须考虑的问题 如果一个核上没有执行程序 是否需要让这个也是多核环境下必须考虑的问题 如果一个核上没有执行程序 是否需要让这个 核停止工作 核停止工作 1 1 多核环境下的进程同步多核环境下的进程同步 在单核环境下 一个时候只可有一个程序在执行 而在多核环境下 由于多在单核环境下 一个时候只可有一个程序在执行 而在多核环境下 由于多 个执行核或个执行核或 CPUCPU 的存在 多个程序可以真正的同时执行 因此 多核环境下的进的存在 多个程序可以真正的同时执行 因此 多核环境下的进 程同步与单核环境下将有着很大不同 程同步与单核环境下将有着很大不同 为了保证程序执行的正确性 我们需要采取措施保证一段程序的执行是原子为了保证程序执行的正确性 我们需要采取措施保证一段程序的执行是原子 操作 不过这里的原子操作与我们单核环境下的原子操作有所不同 它必须保证操作 不过这里的原子操作与我们单核环境下的原子操作有所不同 它必须保证 跨越跨越 CPUCPU 的原子性 即一个的原子性 即一个 CPUCPU 执行某段程序时 得让另一个执行某段程序时 得让另一个 CPUCPU 不执行该程序 不执行该程序 这种保证的实现 需要硬件的支持 这种保证的实现 需要硬件的支持 2 2 多核环境下的进程调度 多核环境下的进程调度 对于进程和线程来说 多核环境与单核环境的最大不同是可以有多个线程或对于进程和线程来说 多核环境与单核环境的最大不同是可以有多个线程或 进程真正地同时执行 而在单核情景下 这个同时不是真正的物理同时 而是虚进程真正地同时执行 而在单核情景下 这个同时不是真正的物理同时 而是虚 拟的逻辑同时 就是这个从逻辑同时到物理同时的变化 使得多核环境下的调度拟的逻辑同时 就是这个从逻辑同时到物理同时的变化 使得多核环境下的调度 与单核环境下的调度有所不同 与单核环境下的调度有所不同 在多核环境下 操作系统的任务分配和调度是目前研究的一个研究热点 在在多核环境下 操作系统的任务分配和调度是目前研究的一个研究热点 在 这个新环境中 操作系统需要考虑 这个新环境中 操作系统需要考虑 1 1 新的任务给谁新的任务给谁 2 2 每个核如何调度它上面的任务每个核如何调度它上面的任务 3 3 是否采用一致的调度算法是否采用一致的调度算法 4 4 一个进程是否始终在一个核上运行一个进程是否始终在一个核上运行 5 5 如何调度实时任务和普通任务如何调度实时任务和普通任务 6 6 如何保证负载均衡 即如何保证每个核的工作量比较均衡如何保证负载均衡 即如何保证每个核的工作量比较均衡 7 7 负载不均衡是否迁移任务负载不均衡是否迁移任务 8 8 采用单独还是共同的就绪队列采用单独还是共同的就绪队列 三 多核系统的性能三 多核系统的性能 多核真的能提高计算机的性能吗 答案是不一定 对于多核来说 每个核可多核真的能提高计算机的性能吗 答案是不一定 对于多核来说 每个核可 以独立的执行任务 而这些核之间是否可以协调和在何种程度上进行协调就决定以独立的执行任务 而这些核之间是否可以协调和在何种程度上进行协调就决定 了多核系统的性能提升到底有多少 事实上 多核真的不一定能提升你的软件执了多核系统的性能提升到底有多少 事实上 多核真的不一定能提升你的软件执 行效率 多核技术到底是否带来益处完全取决于客户的应用是什么 如果说是解行效率 多核技术到底是否带来益处完全取决于客户的应用是什么 如果说是解 微分方程 请使用多核计算机 如果是进行海量信息筛选和数据挖掘 则最好不微分方程 请使用多核计算机 如果是进行海量信息筛选和数据挖掘 则最好不 要使用多核计算机 要使用多核计算机 即使是可以利用多核技术的应用 其利用程度也有赖于程序的编写方式 只即使是可以利用多核技术的应用 其利用程度也有赖于程序的编写方式 只 有在程序编写时就充分考虑到多核的结构特点的软件才能最大限度地从多核技术有在程序编写时就充分考虑到多核的结构特点的软件才能最大限度地从多核技术 获得益处 而充分利用多核结构编写并发度高的程序却不是很多人能够胜任的一获得益处 而充分利用多核结构编写并发度高的程序却不是很多人能够胜任的一 个任务 个任务 当然了 即使我们写不出并发程序 也并不意味着多核技术就没有好处 至当然了 即使我们写不出并发程序 也并不意味着多核技术就没有好处 至 少 我们可以在不同的核上面跑不同的应用 当然 这些不同应用之间的联系最少 我们可以在不同的核上面跑不同的应用 当然 这些不同应用之间的联系最 好别太多 造成多核技术这个问题的核心是所谓的内存墙 虽然好别太多 造成多核技术这个问题的核心是所谓的内存墙 虽然 CPUCPU 的速度不断的速度不断 提升 但其访问数据的速度却没有同步提升 虽然核数不断增加 但从这些核到提升 但其访问数据的速度却没有同步提升 虽然核数不断增加 但从这些核到 计算机其余部件的链接并没有同步增加 这样 保持所有计算机其余部件的链接并没有同步增加 这样 保持所有 CPUCPU 获得充足的数据就获得充足的数据就 是一个大问题 是一个大问题 四 关于多核操作系统四 关于多核操作系统 WindowsNTWindowsNT 和和 Linus2 0Linus2 0 之后的之后的 WindowsWindows 系列 系列 LinusLinus 操作系统都可以支持多操作系统都可以支持多 核 但目前还没有专门针对核 但目前还没有专门针对 CMPCMP 单芯片多处理器 体系结构的多核操作系统 缺 单芯片多处理器 体系结构的多核操作系统 缺 乏成熟的乏成熟的 CMPCMP 调度算法 虽然调度算法 虽然 WindowsWindows 和和 LinusLinus 可作为可作为 CMPCMP 多核体系结构的操

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论