在一个CPU中拥有多个内核是为了同时运行多个线程/进程,还是为了实现指令级并行? [英] Is having multiple cores in a CPU for running multiple threads/processes at once, or for instruction-level parallelism?
本文介绍了在一个CPU中拥有多个内核是为了同时运行多个线程/进程,还是为了实现指令级并行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我只是想更清楚地了解多核到底是做什么用的,以及多核和多CPU之间有什么区别。
我想了解的是,拥有多个核心是为了在给定的CPU内实现指令级并行,还是一个CPU内的多个核心都有自己的结构RQ,允许它们独立调用__Schedule()并随意调度进程/线程,然后由每个核心内的其他模块处理指令级并行。
如有任何意见,欢迎光临。
推荐答案
ILP单独位于每个物理核心中。
跨站复制:How does a single thread run on multiple cores?
(并非如此--每个核心都有多个执行单元和一个宽阔的前端。
请阅读我的链接答案,以了解我不会重复的细节。另请参阅现代微处理器
A 90分钟指南!)
__schedule()
)。一般而言,这是SMT;该概念最广为人知的品牌实现是英特尔的超线程。让多个软件线程真正同时共享一个CPU(而不是通过软件上下文切换)为核心提供了两个指令流,以寻找核心之间以及内部的并行性,通常会增加总体吞吐量(在一定程度上以单线程性能为代价,这取决于工作负载中的单个线程保持核心的繁忙程度)。
在某些情况下,";CPU";是单核的同义词。例如,perf stat
输出显示已使用7.5个CPU。
但更多时候,CPU指的是整个物理包,例如我的CPU是四核的,i7-6700k。服务器主板通常为双插槽,允许您插入两个独立的多核CPU。
也许这就是造成一些术语混淆的原因?
这篇关于在一个CPU中拥有多个内核是为了同时运行多个线程/进程,还是为了实现指令级并行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文