Blog开张啦!~

           先前的Blog关站了,发现这里蛮好,决定驻扎啦。第一篇文章写什么呢,写篇《各种处理器介绍》的读书笔记吧。 涉及到的处理器以64位和准64位为主,包括AlphaItaniumOpteronPA-RISCPentium ExonPOWER 4 / 4+ / 5 / 5+Sun UltraSPARC IV / T1。文章的主要内容是探讨了各种概念、术语。

概念1Processor Components
 
Execution Units (Int, FP, etc)——This is where the calculations actually take place, covering integer instructions, floating point instructions, bit-shift and logical instructions, comparison instructions to decide on whether to branch the flow of control, media instructions, load and store instructions, etc.
 
Register ——which are by far the fastest memory in the system. In some chips there aren’t very many registers (early x86 chips had 8 general purpose registers and 8 data registers) and they aren’t very big (again, early x86 chips were only 16 bits wide), while in others there are literally hundreds of registers and they are huge (64 bits to 256 bits wide).
 
I(nstruction) and D(ata) Cache - L1 Cache ——This is the level 1 (L1) cache, which holds both instructions (i-cache) and data (d-cache). Compared to the registers there is quite a lot of this, usually 32KBytes to 128KBytes of both types, and it is the second fastest memory in the system.
 
L2 Cache ——This is usually measured in megabytes
 
Dual Core ——These are two fully functional processors, each with their own arithmetic and logical units, each with their own registers, each with their own cache, but sharing an interface to main memory and I/O. POWER 里面,这个共享的 Interface 就是 Shared L2 Cache Distributed Switch
 
概念2Cache Components
 
         两个重要的概念, Cache Coherence TLB – Translation Lookaside Buffer Cache Coherence 通过例如 Snooping 的机制实现,含义如下: what is in one processor’s cache is the same as in all other processor’s cache , and it matches what is in RAM

a list of cached blocks 另外一个定义是 cache line : Cache Memory 之间数据传输的最小单元
Snooping Protocols : write invalidate cache blocks are invalidated , write broadcast cache blocks are updated )。所有 Cache Cache line 应当保持一致,这就是 Cache Coherence 的体现了吧。
 
一:TLB的基本概念:
    TLB Translation lookaside buffer, 即旁路转换缓冲,或称为页表缓冲;里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。
    X86 保护模式下的寻址方式:段式逻辑地址 〉线形地址 〉页式地址;
    页式地址 = 页面起始地址 + 业内偏移地址;
    对应于虚拟地址:叫 page (页面);对应于物理地址:叫 frame (页框);
    X86 体系的系统内存里存放了两级页表,第一级页表称为页目录,第二级称为页表。
   
TLB CPU 里的一级、二级缓存之间不存在本质的区别,只不过前者缓存页表数据,而后两个缓存实际数据
 
二:内部组成:
 
1 TLB X86 体系的 CPU 里的实际应用最早是从 Intel 486CPU 开始的,在 X86 体系的 CPU 里边,一般都设有如下 4 TLB:
    第一组:缓存一般页表( 4K 字节页面)的指令页表缓存( Instruction-TLB );
    第二组:缓存一般页表( 4K 字节页面)的数据页表缓存( Data-TLB );
    第三组:缓存大尺寸页表( 2M/4M 字节页面)的指令页表缓存( Instruction-TLB );
    第四组:缓存大尺寸页表( 2M/4M 字节页面)的数据页表缓存( Data-TLB );
 
2 TLB 命中和 TLB 失败
    如果 TLB 中正好存放着所需的页表,则称为 TLB 命中( TLB Hit );如果 TLB 中没有所需的页表,则称为 TLB 失败( TLB Miss )。
 
3 TLB 条目数
    即页表条目数, Entry!
 
4 TLB 的联合方式
    1 〉全联合方式: Athlon XP
    2 4 路联合方式: P4

概念3Processor Packaging
 
         Single processor in a slot Two processor in a slot Four processor in a slot ;这里有两个概念需要澄清一下,就是 Two processor in a slot Dual-core 。先讨论双核的概念,这个是最近处理器市场的热门话题同时也是公认的未来处理器发展趋势(如何保持摩尔定律的继续成立)。到底什么是 Dual-core 呢?

Dual-core 定义
 
所谓双核心处理器,简单地说就是在一块 CPU 基板上集成两个处理器核心,并通过并行总线将各处理器核心连接起来。 with CPU-local Level 1 caches, and a shared, on-die Level 2 cache
 
双核心并不是一个新概念,而只是 CMP(Chip Multi Processors ,单芯片多处理器 ) 中最基本、最简单、最容易实现的一种类型。其实在 RISC 处理器领域,双核心甚至多核心都早已经实现。 CMP 最早是由美国斯坦福大学提出的,其思想是在一块芯片内实现 SMP(Symmetrical Multi-Processing ,对称多处理 ) 架构 ,且并行执行不同的进程。早在上个世纪末,惠普和 IBM 就已经提出双核处理器的可行性设计。 IBM 2001 年就推出了基于双核心的 POWER4 处理器 ,随后是 Sun 和惠普公司,都先后推出了基于双核架构的 UltraSPARC 以及 PA-RISC 芯片,但此时双核心处理器架构还都是在高端的 RISC 领域,直到前不久 Intel AMD 相继推出自己的双核心处理器,双核心才真正走入了主流的 X86 领域。
 
Intel AMD 之所以推出双核心处理器,最重要的原因是原有的普通单核心处理器的频率难于提升(摩尔定律是否依然??),性能没有质的飞跃。由于频率难于提升, Intel 在发布 3.8GHz 的产品以后只得宣布停止 4GHz 的产品计划;而 AMD 在实际频率超过 2GHz 以后也无法大幅度提升, 3GHz 成为了 AMD 无法逾越的一道坎。正是在这种情况下,为了寻找新的卖点, Intel AMD 都不约而同地祭起了双核心这面大旗。
 
Intel 双核心处理器的简介
 
Intel 目前的桌面平台双核心处理器代号为 Smithfield ,基本上可以简单看作是把两个 Pentium 4 所采用的 Prescott 核心整合在同一个处理器内部,两个核心共享前端总线,每个核心都拥有独立的 1MB 二级缓存,两个核心加起来一共拥有 2MB ,但这显然与 Pentium 4 6XX 系列处理器的 2MB 缓存不同。但由于处理器中的两个内核都拥有独立的缓存,因此必须保证每个物理内核的缓存信息必须保持一致,否则就会出现运算错误。例如在系统的内存数据区记录着 A 1 ;如果第一个处理器内核对此数据区进行读写操作,并且改写为 A 0 ,那么第二个处理器内核的缓存也必须进行更新,把 A 更新为 0 ,否则的话,在以后的操作中数据就会出错。这样一个过程就是缓存数据的一致性,也就是说双核心处理器需要 " 仲裁器 " 来作协调 。针对这个问题, Intel 将这个协调工作交给了北桥芯片 (MCH GMCH) :两个核心需要同步更新处理器内缓存的数据时,需要通过前端总线再通过北桥作更新 。虽然缓存的数据并不巨大,但由于需要通过北桥作出处理,无疑会带来一定的延迟,核心之间的通信就会变得缓慢,这将大大影响处理器性能的发挥。
 
Intel 目前的桌面平台双核心处理器产品分为 Pentium D Pentium Extreme Edition(Pentium EE) 两大系列,其中, Pentium D 包括 820(2.8GHz) 830(3.0GHz) 840(3.2GHz) 三个型号,采用 800MHz FSB ,面向主流市场;而 Pentium EE 目前只有 840(3.2GHz) 一个型号,同样采用 800MHz FSB ,面向高端应用。 Pentium D Pentium EE 都采用 0.09 微米制程, LGA775 接口;它们最主要的区别就是 Pentium EE 支持超线程技术,而 Pentium D 则不支持超线程技术,也就是说在打开超线程技术的情况下 Pentium EE 将被操作系统识别为四颗处理器。
 
在主板芯片组方面,由于北桥芯片担负着处理和交换不同核心缓存数据的重要作用,所以目前能够支持 Pentium D Pentium EE 的是 945/955 系列,而 915/925 是不能支持的,在 915/925 主板上就算是能够开机,也只能使用双核心其中的一个核心!
 
AMD 双核心处理器的简介
 
AMD 目前的桌面平台双核心处理器代号为 Toledo Manchester ,基本上可以简单看作是把两个 Athlon 64 所采用的 Venice 核心整合在同一个处理器内部,每个核心都拥有独立的 512KB 1MB 二级缓存,两个核心共享 Hyper Transport ,从架构上来说相对于目前的 Athlon 64 架构并没有任何改变。但与 Intel 的双核心处理器不同的是,由于 AMD Athlon 64 处理器内部整和了内存控制器,而且在当初 Athlon 64 设计时就为双核心做了考虑,但是仍然需要仲裁器来保证其缓存数据的一致性。 AMD 在此采用了 SRQ(System Request Queue ,系统请求队列 ) 技术,在工作的时候每一个核心都将其请求放在 SRQ 中,当获得资源之后请求将会被送往相应的执行核心,所以其缓存数据的一致性不需要通过北桥芯片,直接在处理器内部就可以完成。 Intel 的双核心处理器相比,其优点是缓存数据延迟得以大大降低。
 
AMD 目前的桌面平台双核心处理器是 Athlon 64 X2 ,其型号按照 PR 值分为 3800+ 4800+ 等几种,同样采用 0.09 微米制程, Socket 939 接口,支持 1GHz Hyper Transport ,当然也都支持双通道 DDR 内存技术。
 
由于 AMD 双核心处理器的仲裁器是在 CPU 内部而不是在北桥芯片上,所以在主板芯片组的选择上要比 Intel 双核心处理器要宽松得多,甚至可以说与主板芯片组无关。理论上来说,任何 Socket 939 的主板通过更新 BIOS 都可以支持 Athlon 64 X2 。对普通消费者而言,这样可以保护已有的投资,而不必象 Intel 双核心处理器那样需要同时升级主板

         注意,关于双核技术的历史纪录表, IBM / POWER4 / 2001 HP / PA-8800 / 2004 SUN / UltraSPARC IV / 2004 Intel / Montecito / 2006 。可以看到, IBM 在双核技术领域是历史开创者也是业界领军者。
 
         再继续讨论 Two processor in a slot ,这里还有很多其他名称,像是 Dual-Processor DCM Dual-Core Module )等等,这些名字又有怎样的区别呢?先说说 IBM 的命名规则—— DCM QCM MCM POWER 的基本单元是 Processor ,全部都是 Dual-core ,最后的总体是 Module ,就是一个 CPU 模块,或者说一个 CPU 板。 DCM 是一个 CPU Module 封装一个 Dual-Core Processor QCM 是一个 CPU Module 封装 2 Dual-Core Processor MCM 是一个 CPU Module 封装 4 Dual-Core Processor ,这也刚好对应了 Single processor in a slot Two processor in a slot Four processor in a slot 。而且 IBM POWER 是从高端大型机服务器技术向下移植,是先有了 MCM 技术(当然那个时候基本单元是 Single-Core Processor ),然后再是 DCM (这个时候已经有 Dual-Core 了),然后是 QCM 。而 HP 的产品里面,最早的双核是 mx2 ,有 PA-RISC Itanium 两种,其中,基于 Itanium mx2 2005 年推出,当年号称伪双核,与 Opteron 的双核已经 IBM 的双核并不是一个境界,仅仅是并置两个 CPU 核心而已;而 2004 年推出的基于 PA-RISC mx2 双核,具体细节并不清楚,可能是真正的双核吧。——这里用到的技术是 with a little clever electronics, you can package two processors into that same slot, and have the firmware of the system they are plugging into recognize and address them as totally separate processors (这里需要实现 Cache Coherence IBM 通过 Distributed Switch Intel 通过北桥, AMD 通过 Hyper Transport , even though they are in a single slot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值