Chinaunix

标题: 超线程关中断怎么回事,会不会把另外一个线程的中断也关了 [打印本页]

作者: mordorw    时间: 2013-01-07 12:00
标题: 超线程关中断怎么回事,会不会把另外一个线程的中断也关了
超线程在内核看来就是一个单独的CPU吧
作者: liuiang    时间: 2013-01-07 12:06
从软件看是多个CPU,内核也算是软件~~~~~
作者: stephen_du    时间: 2013-01-07 13:02
mordorw 发表于 2013-01-07 12:00
超线程在内核看来就是一个单独的CPU吧


软件上看不到所谓的“超线程”,包括内核。

软件上只有线程
作者: 帅绝人寰    时间: 2013-01-07 13:35
stephen_du 发表于 2013-01-07 13:02
软件上看不到所谓的“超线程”,包括内核。

软件上只有线程


sure? 论据?
作者: stephen_du    时间: 2013-01-07 13:46
本帖最后由 stephen_du 于 2013-01-07 13:52 编辑
帅绝人寰 发表于 2013-01-07 13:35
sure? 论据?


Sure

物理CPU->物理CPU核->逻辑CPU。

超线程据我所知是x86的一种技术。
对于Linux而言,不存在所谓的真正线程,即没有专门的数据结构描述thread也没有专门针对thread的调度器,
其实都是进程的task_struct.
针对不同CPU技术,内核只是对每一个逻辑CPU分配一个runqueue,
至于这些task_struct之间的并发level是CPU的物理核level还是逻辑核level之上的软件都不知道

作者: stephen_du    时间: 2013-01-07 13:51
本帖最后由 stephen_du 于 2013-01-07 13:53 编辑
帅绝人寰 发表于 2013-01-07 13:35
sure? 论据?


我其实也不懂,看看下面我摘抄的专业介绍吧:

超线程技术就是利用特殊的硬件指令,
把两个逻辑内核模拟成两个物理芯片
,让单个处理器都能使用线程级并行计算,(软件应该是被欺骗了,因为实际上只有一颗物理CPU,也就是说软件不知道“超线程”)
从而兼容多线程操作系统和软件,
提高处理器的性能。
操作系统或者应用软件的多线程可以同时运行于一个处理器上
,两个逻辑处理器共享一组处理器执行单元,
并行完成加、乘、负载等操作。这样就可以使得运行性能提高30%,
这是因为在同一时间里,应用程序可以使用芯片的不同部分。
虽然单线程芯片每秒钟能够处理成千上万条指令,
但是在任一时刻只能够对一条指令进行操作。
而“超线程”技术可以使芯片同时进行多线程处理,使芯片性能得到提升。
作者: liuiang    时间: 2013-01-07 14:18
A版的意思是说内核对超线程初始化和配置?

好吧,参考A版的意见,内核还是可以看到的~~~~
作者: liuiang    时间: 2013-01-07 14:21
另外还有balance的问题吧,谁能推荐点资料see see~~
作者: 帅绝人寰    时间: 2013-01-07 15:48
stephen_du 发表于 2013-01-07 13:51
我其实也不懂,看看下面我摘抄的专业介绍吧:

超线程技术就是利用特殊的硬件指令,


你摘抄的资料,其措辞是含糊的,因此导致了你的理解错误。

see the implementation of detect_ht() in Linux kernel.


作者: stephen_du    时间: 2013-01-07 20:35
帅绝人寰 发表于 2013-01-07 15:48
你摘抄的资料,其措辞是含糊的,因此导致了你的理解错误。

see the implementation of detect_ht()  ...


不好意思,能够指点下我理解错在哪里了?我这个人可能反应慢一点
作者: mordorw    时间: 2013-01-08 08:55
cat /proc/cpuinfo时能看到每个超线程对应到一个CPU,比如双核4线程,就可以看到4个CPU




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2