免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5150 | 回复: 11
打印 上一主题 下一主题

奇怪,SMP类型的机器为什么能提高性能呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-07 09:07 |只看该作者 |倒序浏览
大家都知道,机器处理的瓶颈在于内存的速度,而不是cpu的速度
(内存的速度和cpu的速度差数个数量级)

且SMP多处理器环境下,多个cpu访问内存时,都是要锁总线的(也就是说,
内存访问在硬件级别总是串行的,多cpu访问内存和单cpu访问内存几乎没
啥区别,由于某些同步操作反而可能更慢)

那么,在如上两个条件的约束下,SMP计算机经常能提供比单CPU机器高大致
cpu个数倍的性能是怎么回事呢??

难道是由于cpu的一级缓存多了?比如,同主频的cpu,单cpu的一级缓存是2MB
而2个cpu的SMP机器两个cpu就是2MB*2=4MB??

还是其它什么决定性因素呢?

论坛徽章:
0
2 [报告]
发表于 2010-01-07 09:30 |只看该作者
SMP的服务器,一般在每个核心内部,都会集成一个内存控制器,因此,访问内存的带宽远远大于单个CPU时的带宽。
另外,你说的缓存也是一个因素,但更重要的是二级缓存。一级缓存的容量太小(指令缓存和数据缓存一般都不超过64K)。

论坛徽章:
0
3 [报告]
发表于 2010-01-07 09:37 |只看该作者
前端呀 前端

论坛徽章:
0
4 [报告]
发表于 2010-01-07 11:17 |只看该作者
SMP 的机器,内存不是多通道的么?

论坛徽章:
0
5 [报告]
发表于 2010-01-07 12:18 |只看该作者
主要还是多进程的程序,性能提高明显吧。
编译的时候加个-jn 估计很能说明问题。

要是在SMP上跑单进程(线程)的程序,感觉不到什么的。

论坛徽章:
0
6 [报告]
发表于 2010-01-11 10:36 |只看该作者
原帖由 drowndog 于 2010-1-7 09:30 发表
SMP的服务器,一般在每个核心内部,都会集成一个内存控制器,因此,访问内存的带宽远远大于单个CPU时的带宽。
另外,你说的缓存也是一个因素,但更重要的是二级缓存。一级缓存的容量太小(指令缓存和数据缓存一 ...


按照ULK的说法,SMP环境下的内存访问也是严格串行的:

In multiprocessor systems, all CPUs usually share the same memory; this
means that RAM chips may be accessed concurrently by independent CPUs.
Because read or write operations on a RAM chip must be performed serially,
a hardware circuit called a memory arbiter is inserted between the bus and
every RAM chip. Its role is to grant access to a CPU if the chip is free
and to delay it if the chip is busy servicing a request by another processor.
... ...

----from《Understanding the Linux Kernel, 3rd Edition》:2.1. Memory Addresses

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
7 [报告]
发表于 2010-01-11 10:40 |只看该作者
访问一下地址,计算机就要去读一下外部RAM,特别是DRAM的话,那计算机就是蜗牛速了

论坛徽章:
0
8 [报告]
发表于 2010-01-11 10:42 |只看该作者
“前面已经说过,双通道内存主要是依靠主板北桥的控制技术,与内存本身无关。因此如果
要使用支持双通道内存技术的话主板才是关键。目前支持双通道内存技术的主板有Intel
的i865和i875系列、SIS的SIS655、658系列、nVIDIAD的nFORCE2系列等。Intel最先推出
的支持双通道内存技术的芯片组为E7205和E7500系列。”
----如上内容摘自: http://zhidao.baidu.com/question/85081982.html

双通道或者多通道内存控制器好像是主板上的一个硬件吧?

假设同主频,同1,2级缓存的单cpu和双cpu,访问同一个主板上的双通道或者多通道内存
那么这时的SMP还有优势吗?

[ 本帖最后由 redac 于 2010-1-11 10:49 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2010-01-11 10:45 |只看该作者
“双通道DDR有两个64bit内存控制器,双64bit内存体系所提供的带宽等同于一个128bit
内存体系所提供的带宽,但是二者所达到效果却是不同的。双通道体系包含了两个独立的、
具备互补性的智能内存控制器,两个内存控制器都能够在彼此间零等待时间的情况下同时
运作。例如,当控制器B准备进行下一次存取内存的时候,控制器A就在读/写主内存,反之
亦然。两个内存控制器的这种互补“天性”可以让有效等待时间缩减50%,双通道技术使内存
的带宽翻了一翻。”

----如上内容摘自: http://zhidao.baidu.com/question/85081982.html

论坛徽章:
0
10 [报告]
发表于 2010-01-14 13:19 |只看该作者
RTL8139网卡驱动程序分析

一文的第一章中提到: 新的集成内存控制器的cpu可以自己判断对内存
的寻址

看来,内存控制器可能在主板上,也可能在cpu内部,两个地方啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP