【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » 教程 » 正文

x86硬件架构

放大字体  缩小字体 发布日期:2020-11-09 01:06:20    浏览次数:13
导读

  又名大型主机,使用专用的处理器指令集、操作系统和应用软件。故此,大型机不仅仅是一个硬件上的概念,更是一个硬件和专属软件的有机整体。大型机是上世纪六十年代发展起来的计算机系统。经过四十年的不断更新,其稳定性和安全性在所有计算机系统中是首屈一指的。  现在的大型机的性能,并不能用单一的每秒并行浮点计

  又名大型主机,使用专用的处理器指令集、操作系统和应用软件。故此,大型机不仅仅是一个硬件上的概念,更是一个硬件和专属软件的有机整体。大型机是上世纪六十年代发展起来的计算机系统。经过四十年的不断更新,其稳定性和安全性在所有计算机系统中是首屈一指的。

  现在的大型机的性能,并不能用单一的每秒并行浮点计算能力来体现,大型机相比于其他计算机系统,其主要特点在于其RAS(Reliability, Availability, Serviceability 高可靠性、高可用性、高服务性)。

  一种介于PC服务器和大型机之间的高性能计算机,一般认为,传统小型机是指采用RISC、MIPS等专用处理器,主要支持UNIX操作系统的封闭、专用的计算机系统,所以又称RISC服务器或Unix服务器。

  大型机与小型机的区别并不是很明显,他们与x86服务的区别主要是在于RAS、I/O吞吐量以及ISA

  X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC领域。

  x86架构于1978年推出的Intel 8086中央处理器中首度出现。X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。

  CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指令来完成所需的计算任务。RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大。

  介绍功能的模式大致是先说明功能的基本概述,然后介绍从哪代CPU开始引入,如何判断是否支持,以及如何使能该功能。

  VT-x ——面向 IA-32 架构的英特尔® 虚拟化技术,为 IA-32 增加了两种全新的 CPU 操作模式:VMX 根操作和 VMX 非根操作。VMX 根操作设计用于 VMM,其运行方式非常类似于没有 VT-x 的 IA-32。VMX 非根操作可提供 VMM 控制,且用于支持虚拟机的其它 IA-32 环境。这两种操作模式均可支持全部 4 种优先级水平,支持客户机的软件以适当的优先级水平运行,并为 VMM 提供运行多种优先级水平的灵活性。通过 VT-x,客户机软件与 VMM 之间的每次转换都可改变线性地址空间,从而支持客户机软件充分利用其自己的地址空间。VMX 转换由 VMCS 进行管理,它驻留在物理地址空间中,而且不是线性地址空间中。

  VT-i ——面向安腾架构的英特尔® 虚拟化技术,可为 VMM 提供客户机软件不能使用的虚拟地址位。VMM 可通过将客户呼叫截取到 PAL 流程(报告所部署的虚拟地址位数量),从而隐藏对该地址位的硬件支持。这样,客户机将不会期望使用这一最高位,硬件也不允许它使用,从而为 VMM 提供单独使用一半虚拟地址空间的“特权”。通过 VT-i,VMM 可以使用虚拟处理器描述符(VPD)中的虚拟化加速字段来表示客户机软件能够读取或写入中断控制寄存器,而且不需要调用每次存取的 VMM。VMM 可在发出任何虚拟中断前建立这些寄存器的数值,并且可以在客户机中断处理程序返回前对其进行修改。

  VT-d ——面向 Directed I/O 的英特尔® 虚拟化技术,是接下来通往英特尔平台虚拟化全面硬件支持的关键一步。VT-d 扩展了英特尔® 虚拟化技术的发展蓝图,从目前支持 IA-32(VT-x)和英特尔® 安腾® 处理器(VT-i)虚拟化,到对 I/O 设备虚拟化的全新支持。VT-d 能够满足使用虚拟机(VM)技术的两项主要要求。首先,保护从虚拟机访问 I/O 资源不会干扰同一平台上另一台虚拟机的正常运行。VM 之间的相互隔离是实现可用性、可靠性和相互信任的基础。其次,虚拟平台必须提供在多台虚拟机之间共享 I/O 资源的能力。为每台虚拟机复制存储或网络控制器等 I/O 资源既不实用也不经济高效。VT-d I/O 设备虚拟化可以解决上述问题。

  简单来说,VT-x是对CPU的虚拟化;VT-d是对外设(一般是PCIE的外设,也称为SRIOV)虚拟化;VT-i是安腾的架构下的虚拟化,不是很熟......

  为了完成上述的内容,引入了一个称为Domain的概念,它最终化为一张张的映射表放到VMM中,来形成对应。

  虚拟化其实不是TXT的必要条件,只是TXT也可以在虚拟化中使用(后面讲虚拟化的时候还会涉及到TXT)。

  SGX全称是Software Guard Extensions。Intel支持SGX的CPU提供了一种特定的访问内存的方式(称为Enclave)和一组指令,用来提供更加安全的方式来保护应用的代码和数据,如下图所示:

  Intel提供了一个SDK用来编写有Enclave的应用程序,关于SGX的详细介绍可以在找到。

  SGX同样是一个需要在BIOS下使能的功能,如下面的寄存器所示(还是IA32_FEATURE_CONTROL):

  在x86平台中,能耗和性能是两个不可分割的部分,Intel提供了很多的技术来满足不同的能耗和性能的需求。

  这是两项相关的技术,前者指在一个CPU中包含多个物理核,后者是指一个物理核中包含若干个逻辑核。

  我们常说的2核4线程就是指支持HT的CPU里面有2个物理核,每个物理核包含2个逻辑核,如下图所示:

  关于多核支持,是在Intel奔腾处理器Extreme版本(就是双核四线程)中首次引入的,那应该是在2005年:

  Turbo Boost的作用是让CPU的核心(包括图形处理的核)能够在基准频率之上运行。当然这种调节是自动的,并且是智能的。

  目前最新的CoffeeLake CPU已经支持到第二代的Turbo Boost技术,主要是增强了多线程和单线程上的性能。

  这个SIMD的概念是在Intel的MMX技术中引入的,它的重点在于相同时钟周期内能够处理的数据变多了,这样就能够提升CPU的性能。

  SSE基础从MMX开始,又经历的SSE、SSE2、SSE3、SSE4等,CPU能够在相同周期内处理的数据越来越多。

  简单来说就是CPU的处理能力变强了,不仅是在整型的处理,在浮点的处理也是,这就在执行某些运算的时候提升了性能。

  X86主要用于PC领域如笔记本、台式机、小型服务器;ARM主要用于移动领域如手机、平板。总体还是为了在不同设备上达到性能最优,性能不仅仅是运算速度,距离,数据的增删改查在不同的数据结构中运算效率都各有不同,同样,运算速度,节电等等都是性能的范畴,综合考虑设备在不同环境,使性能达到最优,所有有不同的指令集,来部署在硬件中。

  1.X86的功耗比较高比如我们常用的台式机的CPU的TDP可达65W甚至更高;ARM的功耗很低只有个位数。

  2.X86性能很牛,比如我们可以单只利用1颗i5就能够编辑转换视频;ARM性能较弱多数在对性能要求不算高的移动领域工作.X86发热量比较大,需要主动散热;ARM发热量小,不需要主动散热,X86通用性很好,ARM的通用性不太好。

  3.X86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称,包括Intel8086、80186、80286、80386以及80486以86结尾系列,英特尔统治整个CPU产业链长达数十年。但是,Intel以增加处理器本身复杂度作为代价,去换取更高的性能,但集成的指令集数量越来越多,给硬件带来的负荷也就越来越大,无形中增加了功耗和设计难度。

  4.ARM(Advanced RISC Machines)公司是苹果、Acorn、VLSI、Technology等公司的合资企业。ARM采用将芯片的设计方案授权(licensing)给其他公司生产的模式,在世界范围结成了超过100个的合作伙伴(Partners),将封闭设计的Intel公司变成全民公敌。ARM处理器非常适用于移动通信领域,具有低成本、高性能和低耗电的特性,ARM的高性价比和低耗能在移动市场比英特尔更具优势。

  本文参考文档是《64-ia-32-architectures-software-developer-vol-1-manual》(本文之后都以Vol1来指代),介绍了x86架构的基础。这些基础内容几乎所有的程序员都或多或少听说过,但是很多时候都不会直接与它们打交道。

  本文按照自己的理解简要说明这些基础内容,不保证完成的正确性。对于某些自已也不太了解的内容,会直接贴出原文。

  x86平台目前的架构有32位和64位两种,而不同的架构支持的运行模式也是不一样的,不过基本上64位的能够兼容32位。

  其中4.1和4.2统称为IA-32e模式(即IA-32 Extension),它是在64位运行模式之中引入的,而前面的三种在32位模式时就已经引入。

  64位运行模式简单来说就是增加了系统访问空间,扩展了32位模式的寄存器的尺寸,并增加了部分寄存器,上述所说的系统访问空间,寄存器等其实就是这里要说的执行环境了。

  地址空间:它是指从CPU角度来看能够访问到的一段地址,一般直接称为系统地址,是从0开始的一段线位系统来说,它的地址就是从0到2的32次方;对于64位系统来说就是从0到2的64次方。与线性地址对应的还有一个物理地址,表示的是系统上内存的大小。线性地址和物理地址的对应关系大致如下(来自CoffeeLake CPU EDS):

  1. 系统地址跟实际的物理内存地址之间在大多数模式下都没有什么对应关系,即使是实模式下,很多系统地址也是映射到其它模式上;

  2. 上图中的CoffeeLake当然是一个64位的架构,但是可以看到它的系统地址最大并不是2的64次方,而是512G,即2的39次方,这在Vol1中有说明:

  基础编程寄存器:如通用寄存器(AX、BX等),段寄存器(CS、DS等),FLAG寄存器,IP寄存器以及其它通用寄存器,这些寄存器在32位和64位架构下的名称和尺寸都会不一样。

  FPU寄存器:CPU内部集成了一个浮点执行单元,同时就有一部分的寄存器给这个单元用,包括数据寄存器、控制寄存器、状态寄存器等等。

  MMX寄存器、XMM寄存器、YMM寄存器:这一堆寄存器都是用来处理SIMD操作的,SIMD操作指的是一条命令就可以操作多个数据。

  堆栈:这个不用多介绍,就是存放函数入参和临时变量的地方,它通过段寄存器SS指定位置,而实际指向的是一段内存或者Cache。

  以上是最基本的执行环境,但是光有这一部分还无法使x86能够正常工作,还需要下面额外的执行环境:

  IO端口:当通过CPU访问外部设备,我们可以使用系统地址,此时这段系统地址已经被映射到了外部的设备,所以访问该段空间就相当于访问外部的设备,这种方式称为Memory-Maped IO,这种方式是最常用的;除此之后还有一种比较老的方式,就是通过另外一段独立的IO地址(这段地址相比于系统地址要小很多,通常就64K),这里要讲的就是这段IO地址的访问。它使用的就是这里的IO端口,而使用的指令也不同于系统地址的访问,是由in/out这两个汇编指令来访问的。

  控制寄存器:x86架构提供了5个控制寄存器(CR0-CR4),它们用来控制CPU的执行模式和特性等,这里直接列出这5个寄存器:

  MTRRs:全称是Memory Type Range Resisters,它们用来控制物理地址某个范围的类型。这里说的类型有以下的几种:

  MCA架构寄存器:x86平台提供了一个硬件检测和纠正的功能,称为Machine Check Architecture,相对应的也提供了一堆的寄存器用来查看相关的状态,可以参考x86架构——MCA。这些寄存器其实也是MSR。

  性能监控计数寄存器:x86平台CPU内部有一个PMU(Performance Monitoring Unit)用来监控性能,相对应的也提供了一堆的寄存器,它们也是MSR。

  图,最后从性能、扩展能力、操作系统的兼容性、软件开发的方便性及可使用工具的多样性及功耗这五个方面详细的对比了arm

  CPU内存空间 PCIE配置空间 如何访问各个控制器的寄存器 电源设计 DCDC选型 MOS 电感等等 需要考虑哪些因素 PCB设计要点 辅助设计工具等等介绍

  相对于普通PC来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等

  和普通PC有所不同。 服务器作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵

  的区别 在众多的安全产品中,防火墙产品无疑是保障网络安全的第一道防线,很多企业为了保障自身服务器或数据安全都采用了防火墙。 随着Internet的迅速普及,全球范围内的计算机网络...

  的电脑系统(特别是在终端方面应用)受到用户的广泛支持和追捧,ARM+Android成为IT、通信领域最热门的话题,众多芯片厂商纷纷推出具有各种独特应用功能基于ARM...

  过去称作进阶精简指令集机器(AdvancedRISCMachine,更早称作:AcornRISCMachine),是一个32位精简指令集(RISC)处理器

  是略有差别的比如说,目前很多主板已经将北桥集成到CPU当中,将南桥集成为PCH,但大致的框架还是如此的。下面对...

  的 CPU(Intel 的 CPU),因为这些设备更需要的是高性能的运转和高效的运算,而对...

 
关键词: x86服务器芯片
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-736365.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4