Fork me on GitHub

cpu

====================================================

x86/amd64

这一系列CPU就称作x86,正式一点称作IA-32(Intel Architecture 32-bit)。
x86架构的特点是cpu的寄存器是32位的,因此也叫32位cpu。

基于32位cpu开发的操作系统就叫32位操作系统,因为目前x86架构在32位cpu的知名度,32位操作系统也通常被称为x86系统。


这里再来讲讲故事:

(1) 上个世纪70年代末,因特尔生产了著名的16位8086处理器,之后又推出了80186与80286;
(2) 1985年,因特尔继摩托罗拉之后,第二个研制出32位的微处理器80386;
(3) 1989年,因特尔推出80486处理器,具有浮点运算功能;
(4) 当初与因特尔竞争微处理器的摩托罗拉公司是以86开头的,如68000,68010,68020。
(5) 1993年,因特尔推出奔腾处理器,不再以数字命名其产品;

后来在微处理器行业摩托罗拉没有竞争过因特尔,而特尔也不再以数字命名其产品(单纯的数字不是不能注册为商标,只是很难而已),所以在工业界和学术界,大家仍然习惯性的把因特尔的处理器称为X86系列,X作为通配符代替前面的数字。这个也就是历史原因,带86的也不一定为32位处理器,只是因为这些带86的32位处理器比较出名,叫的用的都比较多,最后也就习惯了。

x86_64与amd64
由于32位系统x86架构的种种限制,包括速度,性能等方面,Intel开始向64位架构发展,那么有2选择:

1向下兼容x86
2完全重新设计指令集,不兼容x86

结果AMD领先,比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同。

而Intel选择了设计一种不兼容x86的全新64为指令集,称之为IA-64,但是比amd晚了一步,而且IA-64也挺惨淡的,因为是全新设计的CPU,没有编译器,也不支持windows(微软把intel给忽悠了,承诺了会出安腾版windows server版,但是迟迟拿不出东西)。。。后来不得不在时机落后的情况下也开始支持AMD64的指令集,但是换了个名字,叫x86_64,表示是x86指令集的64扩展。

也就是说实际上,x86_64,x64,AMD64基本上是同一个东西,我们现在用的intel/amd的桌面级CPU基本上都是x86_64

i386
首先可以简化一个概念,i386=Intel 80386。 其实i386通常被用来作为对Intel(英特尔)32位微处理器的统称。

但是目前更多的时候,我们公认i386为32位系统,其实就是x86了。

在Intel做实现之前就开始支持AMD的64位x86方案的软件项目一般使用amd64,Intel实现之后启动的软件项目开始使用x86-64这种写法x86-64这种写法无偏向性,但是和x86区分度比较小,而且看起来写起来啰嗦。不过目前的风气还是无偏向性最重要x86-64也有写成x86_64的(这也是这种写法的一个缺点),这个一般是因为大多数编程语言的变量名不能包括减号只能写成x86_64,然后输出的字符串和文档为了统一也干脆这么写微软市场部另外又发明了x64这种写法

https://blog.csdn.net/Gerwels_JI/article/details/83001611

====================================================

PCH

PCH全称为Platform Controller Hub,是intel公司的集成南桥。

北桥中的内存控制器和PCIe控制器都集成到了CPU内部,相当于整个北桥芯片都集成到了CPU内部,主板上只剩下南桥.所以PCH可以理解成南桥.目前Intel的有些SOC就是连PCH也集成到了CPU内部,比如:Intel Xeon D系列.

从Intel5系列芯片组开始,已经完全看不到北桥芯片的缩影,只剩下一个名为PCH的芯片用来支持外设,北桥芯片已经完全被整合在CPU当中,就连最后的PCIE总线也被整合到其中。PCH芯片部分虽然比原来的南桥芯片功能上更为丰富,但其性质大体相同,它与CPU之间同样不需要交换太多的数据,因此连接总线采用DMI技术。所以看似只有2.5GT/S的DMI总线实质上是彻底释放了北桥的压力,换来的是更高的性能。

PCH具有原来ICH的全部功能,又具有原来MCH的管理引擎功能。

MCH相当于北桥芯片,是memory control hub内存控制器中心的缩写,负责连接CPU、AGP总线和memory.

ICH(I/O controller hub输入输出控制器中心)负责连接PCI总线、IDE设备、I/O设备等,是INTEL的南桥芯片系列名称。

 

1、直接媒体接口(DMI)

是CPU和PCH之间芯片到芯片的连接,在4系列芯片组开始的新架构设计中,北桥芯片的功能被整合进CPU,显卡采用PCIEX16的通道直连CPU。DMI升级到DMI2.0,单通道单向传输速率达到5GT/S,同事DMI2.0也不再用于南北桥芯片的连接,而是用于CPU和PCH芯片组的连接。

2、LPC接口

视为了连接SIO以及BIOS芯片而设计的。

3、LAN控制器可以在多种速度(10/100/100MB/S)下运行,也可以在任一种情况下运行全双工和半双工模式。

4、SMBus

PCH提供SMBus主机控制器以及SMBus接口,主机控制器为处理器提供机制以启动与SMBus外围设备的通信。

====================================================

64位cpu

在i3 Cpu上允许64位系统

今天想在64位系统上运行一些代码,看和32位系统有什么差别。然后准备在虚拟机中安装一个64位的Fedora系统,但是开始之后却提示:this kernel requires an x84-84cpu,but only detected an i686 cpu. unable to boot please use a kernel appropriate for your cpu.

然后我就怀疑是我的i3处理器不支持64位系统,在网上查了一下,发现:
i7 i5 i3是都是32位处理器,但都能执行64位指令,就是能像64位处理器一样用,它们对64位的支持是通过扩展指令集实现的。

64位和32位的是指操作系统的分法,CPU只是说支持64位系统与否。
I5是四核处理器,双核心以上的处理器都称为64位处理器的。
一般来说,双核或者以上处理器都支持64位系统。

然后再找了一下原因,才知道原因,原来需要在BIOS中开启CPU的Virtualization技术之后才能支持64位的指令。

然后我进入bios,找到CPU中的Virtualization Technology选项,设置为Enabled,然后F10,保存退出。重启,然后就可以安装64位系统了。

下面是官方参考:

在 Vmware的官方知识库里面(http://kb.vmware.com/selfservice/microsites /search.do?language=en_US&cmd=displayKC&externalId=1003945)说明了在虚 拟机中安装64位操作系统所需的硬件条件:
Vmware的虚拟机控制器使用传统的内存空间分段来隔离虚拟机操作系统和控制器,由于虚拟机操作系统和虚拟机控制器共享同样的线性地址空间,CPU必须能提供分段能力(64位模式下)才能运行64位的虚拟机操作系统。

AMD的CPU:
最早的AMD64 CPU没有提供分段能力 ,后来才引入了64位模式下有限的分段支持,如下列出的CPU都可以支持运行64位的虚拟机操作系统:
AMD Athlon 64, revision D or later;
AMD Opteron, revision E or later;
AMD Turion 64, revision E or later;

Intel的CPU:
由于Intel的64位CPU(EM64T)不支持长模式下分段,所以必须同时支持硬件虚拟化的VT技术(同时在BIOS中开启支持),才能运行64位的虚拟机操作系统。
只要CPU能够满足以上的条件,无论宿主机操作系统是32位或64位的,就可以在VMware中安装64位的虚拟机操作系统了。
也就是要在电脑的BIOS中打开虚拟化选项,找到Virtualization后将其开启。

====================================================

vt 虚拟化
ht 超线程
smp

Intel® VT-x with Extended Page Tables (EPT)

今天我来给大家介绍一个好的方法检测自己的处理器或者服务器处理器是否支持开启RemoteFX的功能吧,主要就是看您的处理器是否支持SLAT。

SLAT:什么是二级地址转换呢?二级地址转换技术(Second Level Address Translation)在Intel和AMD处理器中均有所支持,但名称有所不通,Intel叫做EPT(Extended Page Tables),在Nehalem架构中开始支持;AMD叫做RVI(Rapid Virtualization Indexing),在第三代Opteron处理器Barcelona中才开始支持。Hyper-V使用SLAT帮助执行更多内存管理功能,并且减少在客 户机物理机地址和实体机物理地址之间转换的系统开销,减少了运行虚拟机时,Hypervisor的CPU和虚拟机的内存占用。
这个参数对于Hyper-V来说不是必备的参数,但对于需要开启RemoteFX功能来说就是必须的。
引伸一下,在Windows 8中要开启Hyper-V就必须处理器支持这个参数,否则无法开启Hyper-V功能,对于服务器的Hyper-V不是必须的!

这个小工具叫:“Coreinfo.exe”下载地址是:
http://technet.microsoft.com/en-us/sysinternals/cc835722
不支持的在Windows 8开启Hyper-V也是不行的,会提示“该处理器没有二级地址转换(SLAT)功能”!
就这样就可以轻松检测出您的处理器是否支持开启Window 8和Hyper-V功能和远程桌面服务的RemoteFX功能了呦!

====================================================

芯片厂商比如英特尔会在新的芯片发布后公布参考设计(Reference Design),主要的零部件设计方案、部件调试等工作都由这份方案解决。联想、戴尔等厂商往往只是在这个设计的基础上做少量修改。

 

====================================================

cisc与risc

http://www.cnblogs.com/createyuan/p/4626235.html

CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。

RISC的英文全称是Reduced Instruction Set Computer,中文是精简指令集计算机。特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。在中高档服务器中采用RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的PowerPC、MIPS公司的MIPS和SUN公司的Sparc。
常用的精简指令集微处理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。

从计算机诞生以来,人们一直沿用CISC指令集方式。早期的桌面软件是按CISC设计的,并一直沿用。桌面计算机流行的x86体系结构即使用CISC。微处理器(CPU)厂商一直在走CISC的发展道路,包括Intel、AMD,还有其他一些现在已经更名的厂商,如TI(德州仪器)、Cyrix以及VIA(威盛)等。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。CISC架构的服务器主要以IA-32架构(IntelArchitecture,英特尔架构)为主,而且多数为中低档服务器所采用。


Intel公司X86为核心的PC系列正是基于CISC体系结构,而 Apple公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别?
从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。

 

posted on 2019-05-29 17:04  阳光-源泉  阅读(499)  评论(0编辑  收藏  举报

导航