POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: hopetoknow2
打印 上一主题 下一主题

AMD处理器的体系架构技术方面不行

[复制链接]
21#
发表于 2006-8-29 13:22 | 只看该作者
IBM,INTEL,MOTO,TI,国家半导体等等当年都是规范厂商, 那么多年下来也只剩下IBM和INTEL(INTEL当年继承了仙童的嫡系血液)活得滋润些

AMD和他们比确实只是“小”公司, 只是近两年才火了一把

[ 本帖最后由 QCQ2003 于 2006-8-29 18:53 编辑 ]
回复 支持 反对

使用道具 举报

22#
发表于 2006-8-29 13:53 | 只看该作者
原帖由 hopetoknow2 于 2006-8-29 13:11 发表

本来客观的说,AMD能做到二流技术,也就不错了(中国目前不是连三流,都做不到吗?), AMD毕竟和Intel、IBM不是一个档次上的公司。只是相对而言, AMD的技术水准, 和其常常大言不惭的自称技术领先, 实在是差距 ...


AMD的物理、化学水平和Intel确实差太多,至于体系结构吗,别忘了当年DEC Alpha才是世界第一。Intel现在的Core 2 也是海法做的,不是Hillsboro或Santa Clara。当然Hillsboro的P6打下了很好的底子。Santa Clara team,好像是个真正的二流队。
回复 支持 反对

使用道具 举报

23#
 楼主| 发表于 2006-8-29 14:14 | 只看该作者
原帖由 rfder 于 2006-8-29 13:53 发表


AMD的物理、化学水平和Intel确实差太多,至于体系结构吗,别忘了当年DEC Alpha才是世界第一。Intel现在的Core 2 也是海法做的,不是Hillsboro或Santa Clara。当然Hillsboro的P6打下了很好的底子。Santa Clara ...

这个Eckert-Mauchly Award奖就是专门体系结构的奖

N年前,Alpha算是比较优秀的RISC之一。

别和我说什么Alpha天下第一。 你对Alpha EV6的微体系架构到底了解多少? 我敢说,全PCI,没有第二个人能比我,更清楚Alpha EV6核心的微体系架构。
回复 支持 反对

使用道具 举报

24#
发表于 2006-8-29 17:46 | 只看该作者
所有和主题无关的贴都会被删除,请各位发言注意。
回复 支持 反对

使用道具 举报

25#
 楼主| 发表于 2006-8-29 17:52 | 只看该作者
原帖由 Edison 于 2006-8-29 17:46 发表
所有和主题无关的贴都会被删除,请各位发言注意。

再来一个和主题无直接关系的(这次不算), 不负责任
-----------------------------
若合理对照以前的标准
2006年一种处理器的普通ALU指令(SUB EAX,EBX)的“基本”流水线可分为如下14级STAGE:

1 STAGE:Fetch1                                                取指1
2 STAGE:Fetch2/Fetch buffer                        取指2
3 STAGE:Predecode1                                        预译码1
4 STAGE:Predecode2/Rot                                预译码2
5 STAGE:Predecode queue                                预译码队列
6 STAGE:Dec1                                                译码1
7 STAGE:Dec2                                                译码2
8 STAGE:Dec3/uop buffer                                译码3
9 STAGE:Rat/Alloc                                        寄存器换名/资源分配
10 STAGE:Alloc/Rob1                                        再定序缓冲区1
11 STAGE:Rob2                                                再定序缓冲区2
12 STAGE:Sch                                                调度
13 STAGE:Disp                                                派指
14 STAGE:Exec                                                执行
(解释:“基本”流水线指不包括BTB和RETIRE等部分。这里一级STAGE的任务可能需要多个时钟周期完成,也或者多级STAGE是在一个时钟周期内完成)
各级说明:
第一、二级Fetch1和Fetch2为取指阶段从指令缓存中取出指令,并存入指令缓冲(Fetch Buffer)--
指令缓存中的X86指令块经取指阶段(Fetch1、2)进入取指缓冲区Fetch buffer

第三、四、五级Predecode1、Predecode2和Predecode queue为预译码阶段,获取指令长度等信息,并把指令块旋转(Rot)对齐放入预译码队列--
X86指令块从取指缓冲区中读出,经过预译码器(Predecode1)得到指令长度、指令类别等信息,X86指令块旋转对齐(Predecode2/Rot)后放入预译码队列(Predecode queue)

第六、七、八级Dec1、2、3为译码阶段,把X86指令翻译转换为微指令uop后,存入微指令缓冲区(uop buffer)--
X86指令再经过译码阶段(Dec1、2)产生微指令uop,存入微指令缓冲区(uop buffer)。4个译码器都可以做宏指令融合, 可实现对分支指令融合。宏指令融合和微指令融合的概念区别是:宏指令融合是把多条X86指令融合为一条微指令, 而微指令融合是把同一条X86指令中含有的多个微指令融合为一条微指令。
而各译码器也都可以进行微指令融合,原来一条X86指令可能含有2个微指令, 现在是把一条X86指令直接翻译为一个融合微指令(fusion uop)。Store指令、读修改类指令等可生成融合微指令:例如sub eax,[ebx+esi]指令原来译码器是产生Load tmp,[ebx+esi]; Sub eax,tmp两条微指令,现在译码器直接把sub eax,[ebx+esi]翻译成一条融合微指令Load&Sub eax,[ebx+esi],一条融合微指令可以有3个源寄存器操作数,而以前的一条微指令只能有两个源寄存器操作数。

第九级Rat为寄存器换名阶段,把微操作uop中的寄存器做重命名操作,把逻辑寄存器映射为实际的物理寄存器。资源分配阶段(Alloc)给微操作uop分配再定序缓冲区(ROB)和保留站(RS)以及发射端口等--
微指令中的逻辑寄存器操作数通过Rat单元,映射为实际的物理寄存器,而资源分配单元(Alloc)给微指令分配再定序缓冲区(ROB)和保留站(RS)以及发射端口等

第10、11级为再定序缓冲区阶段(Rob1、Rob2),从ROB中的物理寄存器读计算数据,写到保留站(RS)的寄存器中--
微指令被放入再定序缓冲区ROB,从ROB内的物理寄存器读取计算数据,写到保留站(RS)里。 这里的再定序缓冲区ROB实际是一种先入先出(FIFO)的顺序存储单元,而物理寄存器也在ROB里

第12级Sch为调度阶段,调度器/保留站(RS)单元对微操作进行乱序执行调度。第13级Disp为派发阶段,从发射端口派发微操作指令和保留站(RS)中的寄存器数据到计算单元(例如加法器、移位器等)。第14级Exec为执行阶段, 在计算单元中执行微操作--
微指令在保留站(RS)中得到乱序调度(Sch), 当所有操作数和其它相关资源就绪后, 可被派发(Disp)到计算单元中执行(Exec)

流程:
从指令缓存中取出指令(Fetch1/Fetch2),对指令进行预译码(Predecode1,2)和译码(Dec1,2,3)转化为处理器可执行的微操作指令uop并存入微操作队列;然后利用寄存器换名单元对微操作uop中的寄存器做重命名操作,把微指令中的逻辑寄存器映射为实际的物理寄存器(Rat基本作用是破解uop微指令之间的寄存器伪相关,便于后续的乱序执行提高指令级并行性能), 处理器还将为微指令分配(Alloc)执行资源(这里主要是指:明确微指令该放到ROB中什么位置和RS中什么位置以及哪个派发端口等)。微指令经过寄存器换名和资源分配后,放入再定序缓冲区(ROB)。微指令从再定序缓冲区(ROB)的物理寄存器中读出运算数据,然后写入到调度器(即保留站RS)里;微指令在调度器内进行乱序调度(Sch),不必按原代码顺序执行,只要调度器检测发现各操作数、端口和计算单元就绪,即可派发(Disp)微指令到相应的计算单元执行(Exec)。
取指,预译码,译码,寄存器换名,资源分配 到 进入再定序缓冲区ROB-- 为按序执行阶段;调度和执行阶段--为乱序执行阶段。

普通LOAD指令的“基本”流水线可分为如下16级STAGE:
1 STAGE:Fetch1
2 STAGE:Fetch2/Fetch buffer
3 STAGE:Predecode1
4 STAGE:Predecode2/Rot
5 STAGE:Predecode queue
6 STAGE:Dec1
7 STAGE:Dec2
8 STAGE:Dec3/uop buffer
9 STAGE:Rat/Alloc
10 STAGE:Alloc/Rob1
11 STAGE:Rob2
12 STAGE:Sch
13 STAGE:Disp
14 STAGE:AGU        Load地址计算
15 STAGE:DCU1   缓存单元流水线1
16 STAGE:DCU2        缓存单元流水线2
第14级为地址计算而不是ALU计算,并多了第15、16级 两级L1数据缓存单元流水线。L1D的延迟:Load to use延迟为3。
2003年一种处理器的“基本”流水线可分为如下12级STAGE:
1 STAGE:Fetch1
2 STAGE:Fetch2/Fetch buffer
3 STAGE:Predecode1
4 STAGE:Predecode2/Rot
5 STAGE:Predecode queue
6 STAGE:Dec1
7 STAGE:Dec2/uop buffer
8 STAGE:Rat/Alloc
9 STAGE:Rob
10 STAGE:Sch
11 STAGE:Disp
12 STAGE:Exec

1999年一种处理器的“基本”流水线可分为如下10级STAGE:
1 STAGE:Fetch1
2 STAGE:Fetch2
3 STAGE:Decode1
4 STAGE:Decode2
5 STAGE:Decode3
6 STAGE:Rat/Alloc
7 STAGE:Rob
8 STAGE:Sch
9 STAGE:Disp
10 STAGE:Exec

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
26#
发表于 2006-8-29 18:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

27#
 楼主| 发表于 2006-8-29 18:08 | 只看该作者
原帖由 RacingPHT 于 2006-8-29 18:02 发表
请比较一下各处理器体系对内存一致性的支持和内存屏障的处理吧。

要谈问题, 就先谈核心,不要先谈memory方面, 原因特简单。

请你比较一下各处理器体系的CPU核心的流水线对指令的处理吧? 我看目前全PCI, 连vv都不见得比我清楚。

[ 本帖最后由 hopetoknow2 于 2006-8-29 18:14 编辑 ]
回复 支持 反对

使用道具 举报

28#
发表于 2006-8-29 18:27 | 只看该作者
如果能再补充个2001年和2004年的,这个流水线工位贴就更齐全了,虽然04年的不少stage大都是driver。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
29#
发表于 2006-8-29 18:40 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

xiaxiaf 该用户已被删除
30#
发表于 2006-8-29 19:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

31#
 楼主| 发表于 2006-8-29 19:36 | 只看该作者
原帖由 RacingPHT 于 2006-8-29 18:40 发表


如果不是各memory操作的相依性, 现在何止4路乱序并行.

对于单核而言, Load/sotre操作的相关性, 根本和memory coherent、memory wall不是指同一个东西。  那Load/sotre操作的相关性这些内容, 主要是MOB和L/S单元之类。

如果你是要谈处理器核心里的MOB和L/S单元, 那很好。 我看PCI真还没有几个比我更清楚的。
回复 支持 反对

使用道具 举报

32#
 楼主| 发表于 2006-8-29 19:37 | 只看该作者
原帖由 Edison 于 2006-8-29 18:27 发表
如果能再补充个2001年和2004年的,这个流水线工位贴就更齐全了,虽然04年的不少stage大都是driver。

那还做不到, 这要看Intel了。 也许Intel永远不会说。
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
33#
发表于 2006-8-29 19:52 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

34#
发表于 2006-8-29 20:13 | 只看该作者
Conroe的store throughtput是1 cycle,P4是4个cycle。
回复 支持 反对

使用道具 举报

35#
 楼主| 发表于 2006-8-29 20:19 | 只看该作者
原帖由 RacingPHT 于 2006-8-29 19:52 发表


如果你鄙视memory的内容, 那我觉得你可能对处理器的流水线熟读于心, 但是没有看到制约性能的本质问题.
memory只是一个泛指, 就单核来说, 最大的挑战问题就是去除指令序列各项操作的相关性(主要来自于寄存器的 ...

我认为你有 概念性错误.
我极为失望,因为你不清楚性能是如何来的。

首先memory coherent的概念, 你不清楚。 对多处理器/核心而言,memory coherent的主要内容为多个核心在共享存储区上的数据一致性。
现在I/A都是SMP,单核能大胜,双核也就胜。 你去看看Cinbench测试中,不同处理器的双核的加速比你就有数了。 你根本就提的都不是首要关键问题。

对于单核单处理器系统而言, 不太特指memory coherent的概念,要么就是说缓存系统。

至于谈Load/store相关性, 那是围绕MOB、LS为核心进行讨论的。

放着核心,你不谈。 谈memory wall更是虚的很,不就是要先从AMD谈起吗? 不这么谈你当然要失望了,呵呵。
回复 支持 反对

使用道具 举报

36#
 楼主| 发表于 2006-8-29 20:20 | 只看该作者
原帖由 Edison 于 2006-8-29 20:13 发表
Conroe的store throughtput是1 cycle,P4是4个cycle。

P4C好像是1.7个cycle.
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
37#
发表于 2006-8-29 20:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

38#
 楼主| 发表于 2006-8-29 21:06 | 只看该作者
原帖由 RacingPHT 于 2006-8-29 19:52 发表


如果你鄙视memory的内容, 那我觉得你可能对处理器的流水线熟读于心, 但是没有看到制约性能的本质问题.
memory只是一个泛指, 就单核来说, 最大的挑战问题就是去除指令序列各项操作的相关性(主要来自于寄存器的 ...

我认为你不了解现在本质性能是在于单核心时的性能。单核足够强, 才是双核胜出的根本原因。

你要是想讨论处理器微体系架构的问题, 也应该向外是以L2缓存为界限。 外围RAM是最后谈的。一般是集成MC或预取处理。
更应该优先讨论核心(带L1), 也许你不知道,核心也是包括memory操作内容, 尤其是Load和Store的相关性,是核心内的重要内容。
回复 支持 反对

使用道具 举报

39#
 楼主| 发表于 2006-8-29 21:38 | 只看该作者
原帖由 RacingPHT 于 2006-8-29 20:53 发表


你说话比较武断, 我不知道你是否熟悉P3之后新增加的Fence类指令, 已经CMPXCHG8b这样的东西的用法. 我不想扯到Fans的讨论中去.

看来,以后交流,一定要加英语。
mfencelfencesfence这是你内存屏障

我是说内存屏障memory wall
回复 支持 反对

使用道具 举报

RacingPHT 该用户已被删除
40#
发表于 2006-8-29 21:52 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2024-11-23 22:30

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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