查看: 5500|回复: 14
收起左侧

[硬件] 超线程,多核,多CPU之间的资源共享区别是什么?

[复制链接]
菩提祖师
发表于 2014-4-8 13:02:15 | 显示全部楼层 |阅读模式
超线程,多核,多CPU之间的资源共享区别是什么?
只知道资源共享程度是:超线程>多核>多CPU.
但具体的资源共享区别不清楚,感谢解答,谢谢.
伊川书院
发表于 2014-4-9 00:37:01 | 显示全部楼层
本帖最后由 伊川书院 于 2014-4-9 00:38 编辑


这个题目有点大了,,,,
估计涉及内核 算法,估计没几个能够说的明白。。。



消灭零回复,人人有责。。。。。。。。。。。

评分

参与人数 1人气 +1 收起 理由
peng85344558 + 1 有这么消灭0回复的么

查看全部评分

xcdt
发表于 2014-4-9 11:25:13 | 显示全部楼层
不吉岛,但感觉是这样子的,超线程还是一块CPU的同时干几件事情,就好像一家人干不同的事情,肯定沟通的最好;多核就像一个家族,不同的家庭干不同的事情,虽然也是一家人,但人心还是隔着肚皮的;多CPU就不用说了,不同的家庭,连一个姓都算不上,自己的东西肯定放肚子里。
菩提祖师
 楼主| 发表于 2014-4-9 16:26:32 | 显示全部楼层
伊川书院 发表于 2014-4-9 00:37
这个题目有点大了,,,,
估计涉及内核 算法,估计没几个能够说的明白。。。

内核,算法?这应该是纯硬件问题吧...
伊川书院
发表于 2014-4-9 20:42:17 | 显示全部楼层
本帖最后由 伊川书院 于 2014-4-9 20:43 编辑
菩提祖师 发表于 2014-4-9 16:26
内核,算法?这应该是纯硬件问题吧...


不应该说纯硬件问题。
其中,NT内核的软件层面的算法,是决定人机对话是否友好的关键。

在一个单条时钟指令的计算,我们可以认为“纯硬件计算”

在指令集的控制上,由于NT内核的负载平衡决定的,

如何最有效的计算结果,又不影响人机对话的友好,这是NT内核的设计是否科学的关键。

其中,第三方提供的“超线程,多核”等这类的订制方案,在某些特定需求的时候,的确可以起到一定的效果。

但,这类方式通用性有一定的局限性。
菩提祖师
 楼主| 发表于 2014-4-9 21:27:19 | 显示全部楼层
伊川书院 发表于 2014-4-9 20:42
不应该说纯硬件问题。
其中,NT内核的软件层面的算法,是决定人机对话是否友好的关键。

问得只是硬件方面的区别.
比如多核体系中,CPU总线是共享的,多CPU则每个CPU都有独立总线.
我想问的就是这类区别.

软件方面的就是"如何使用"的另一个问题了.
其中,第三方提供的“超线程,多核”等这类的订制方案,在某些特定需求的时候,的确可以起到一定的效果。

但,这类方式通用性有一定的局限性。

要想完美通用,唯一的方式就是增加单线程计算能力,因为很多算法都是无法并行,或者并行起来很蹩脚.
另外,NT是什么意思?WindowsNT?
伊川书院
发表于 2014-4-9 22:05:41 | 显示全部楼层
菩提祖师 发表于 2014-4-9 21:27
问得只是硬件方面的区别.
比如多核体系中,CPU总线是共享的,多CPU则每个CPU都有独立总线.
我想问的就是 ...

1.多核与多个CPU之间的区别,我的理解是:一个是内置总线,一个是外置总线。
对于多个CPU之间,虽然每个CPU都有自己的总线,能够完成自己的一个逻辑的计算,但CPU之间的协作还是需要外置总线(也许是另一个名词,不管怎么说指定有一组这样的线)。

不管是个人计算机还是超级计算机,基本原理应该是一样的。

2.NT指的是:NT Kernel & System
菩提祖师
 楼主| 发表于 2014-4-11 05:11:52 | 显示全部楼层
本帖最后由 菩提祖师 于 2014-4-12 11:27 编辑
伊川书院 发表于 2014-4-9 22:05
1.多核与多个CPU之间的区别,我的理解是:一个是内置总线,一个是外置总线。
对于多个CPU之间,虽然每个 ...


另一个区别是内置的情况下,多个核心可以更快的通讯.
不是很确定,貌似多核内部还会共享缓存之类,凭直觉猜的,希望了解真相的指教.
Fri Apr 11 05:14:07 CST 2014补充:
以下引用来自网络搜索:
架构可以千变万化,面向需求、综合考量是王道。
来,简单举个例子。假设现在我们要设计一台计算机的处理器部分的架构。现在摆在我们面前的有两种选择,多个单核CPU和单个多核CPU。

如果我们选择多个单核CPU,那么每一个CPU都需要有较为独立的电路支持,有自己的Cache,而他们之间通过板上的总线进行通信。假如在这样的架构上,我们要跑一个多线程的程序(常见典型情况),不考虑超线程,那么每一个线程就要跑在一个独立的CPU上,线程间的所有协作都要走总线,而共享的数据更是有可能要在好几个Cache里同时存在。这样的话,总线开销相比较而言是很大的,怎么办?那么多Cache,即使我们不心疼存储能力的浪费,一致性怎么保证?如果真正做出来,还要在主板上占多块地盘,给布局布线带来更大的挑战,怎么搞定?

如果我们选择多核单CPU,那么我们只需要一套芯片组,一套存储,多核之间通过芯片内部总线进行通信,共享使用内存。在这样的架构上,如果我们跑一个多线程的程序,那么线程间通信将比上一种情形更快。如果最终实现出来,对板上空间的占用较小,布局布线的压力也较小。

看起来,多核单CPU完胜嘛。可是,如果需要同时跑多个大程序怎么办?假设俩大程序,每一个程序都好多线程还几乎用满cache,它们分时使用CPU,那在程序间切换的时候,光指令和数据的替换就要费多大事情啊!

所以呢,大部分一般咱们使用的电脑,都是单CPU多核的,比如我们配的Dell T3600,有一颗Intel Xeon E5-1650,6核,虚拟为12个逻辑核心。少部分高端人士需要更强的多任务并发能力,就会搞一个多颗多核CPU的机子,Mac Pro就可以有两颗。

另外为什么用NT而不是kernel呢?感觉后两者更有代表性.毕竟kernel不是只有NT kernel.
伊川书院
发表于 2014-4-11 12:22:02 | 显示全部楼层
本帖最后由 伊川书院 于 2014-4-11 12:24 编辑
菩提祖师 发表于 2014-4-11 05:11
另一个区别是内置的情况下,多个核心可以更快的通讯.
不是很确定,貌似多核内部还会共享缓存之类,凭直觉 ...


1.不管是单核 还是多核,还是多个CPU,都有缓存,这是CPU构架的基本组成部份。在多个CPU除CPU本身内部有缓存,还有一个外置总线所对应的缓存(基本原理应该是一样的)。

2.NT内核与OS指的是两样东西(手机好像没有明显的分类)。
OS:Operating System,在计算机系统中,OS更多的是对前台用户做服务和响应。而NT内核更多的是对硬件做合理的分配与处理。
kernel:或 NT kernel:我觉得对于window的内核还是叫NT内核比较合适我们中文的称乎,但,我并不是学计算机方面的,所以,也许可能我是错的,称kernel是通用的叫法。
a280530870
发表于 2014-4-11 12:53:37 | 显示全部楼层
xcdt 发表于 2014-4-9 11:25
不吉岛,但感觉是这样子的,超线程还是一块CPU的同时干几件事情,就好像一家人干不同的事情,肯定沟通的最 ...

我可以表达一下 卧槽的情感? 你这比喻 真很好! 我一下子都看得有点明白啦 哈哈 通俗易懂
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-5-20 08:12 , Processed in 0.149845 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表