当前位置: 首页 > news >正文

ia64和X86

英特尔推出X86架构已满20年了,同486相比,Pentium向前迈进了一大步, 而PⅡ的前进步伐则没有这么大了,X86 CPU的发展似乎已到了尽头。 
英特尔非常清楚,是X86指令集限制了CPU性能的进一步提高,因此,他们正同惠普一道努力开发下一代指令集架构(Instruction Set Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,显性并行指令计算)。对英特尔而言, IA-64(英特尔的64位架构)是下一个10到15年的架构。新的ISA将使英特尔摆脱X86架构的限制,从而设计出超越所有现有RISC CPU和X86 CPU的新型处理器。那么EPIC的先进之处在什么地方呢?为什么英特尔会放弃使它成为芯片巨人的X86架构呢?
一、IA-32的问题
我们知道,工程师可以通过提高每个时钟的指令执行数来提高性能,英特尔新的指令集的首要目的在于,让指令更容易解码,更容易并行执行。这样就可以不受限制地开发新型处理器。
但是,对工程师而言,兼容8086的X86指令集一直是必须完成的任务。毕竟,兼容前代产品是使英特尔成长壮大起来的关键因素,而且还可以保护用户原先的投资和使用数以百万计应用软件。既然如此,为什么又要放弃整个X86指令集重新开始呢?X86的不足在什么地方?
(1)可变的指令长度
X86指令的长度是不定的,而且有几种不同的格式,结果造成X86 CPU的解码工作非常复杂,为了提高CPU的工作频率,不得不延长CPU中的流水线,而过长的流水线在分支预测出错的情况下,又会带来CPU工作停滞时间较长的弊端。
(2)寄存器的贫乏
X86指令集架构只有8个通用寄存器,而且实际只能使用6个。这种情况同现代的超标量CPU极不适应,虽然工程师们采用寄存器重命名的技术来弥补这个缺陷,但造成了CPU过于复杂,流水线过长的局面。
(3)内存访问
X86指令可访问内存地址,而现代RISC CPU则使用LOAD/STORE模式,只有LOAD和STORE指令才能从内存中读取数据到寄存器,所有其他指令只对寄存器中的操作数计算。在目前CPU的速度是内存速度的5倍或5倍以上的情况下,后一种工作模式才是正途。
(4)浮点堆栈
X87 FPU是目前最慢的FPU,主要的原因之一就在于X87指令使用一个操作数堆栈。如果没有足够多的寄存器进行计算,你就不得不使用堆栈来存放数据,这会浪费大量的时间来使用FXCH指令(即把正确的数据放到堆栈的顶部)。
(5)4GB限制
这似乎不是问题,但是,在6年前,主流PC只有4MB内存,而目前的绝大部分PC装备了64MB以上的内存,是以前的16倍,所以,在下一个十年,PC内存突破1GB绝对不会令人惊讶,而且目前的大型服务器已经使用了1GB以上的内存,突破4GB内存的情况很快就会出现。
(6)芯片变大
所有用于提高X86 CPU性能的方法,如寄存器重命名、巨大的缓冲器、乱序执行、分支预测、X86指令转化等等,都使CPU的芯片面积变得更大,也限制了工作频率的进一步提高,而额外集成的这些晶体管都只是为了解决X86指令的问题。

相关文章:

  • linux python 更新版本
  • Sublime Python 插件配置合集
  • syslogd klogd
  • 设计模式——装饰者模式
  • c语言的作用域、变量与结构体
  • 关于终端和控制台的一些解释
  • 从源码编译新版OGRE 1.7.2 [Cthugha] for iphone/ipad
  • VS2010 添加服务引用以后点不出引用服务的命名空间
  • 查找触发器
  • Android中的PopupWindow详解
  • 怎么使用response.write来做一个javascript的alert弹出窗口
  • 堆栈指针理解
  • Json的引入
  • Realtime Rendering 3rd笔记 8
  • CSS3 Media Queries
  • hexo+github搭建个人博客
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • github从入门到放弃(1)
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Javascript基础之Array数组API
  • JavaScript设计模式系列一:工厂模式
  • js操作时间(持续更新)
  • Koa2 之文件上传下载
  • miaov-React 最佳入门
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • PhantomJS 安装
  • Redux系列x:源码分析
  • Ruby 2.x 源代码分析:扩展 概述
  • SOFAMosn配置模型
  • Swoft 源码剖析 - 代码自动更新机制
  • vue 个人积累(使用工具,组件)
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 动态规划入门(以爬楼梯为例)
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 前端技术周刊 2019-02-11 Serverless
  • 前端面试之CSS3新特性
  • 如何解决微信端直接跳WAP端
  • 学习使用ExpressJS 4.0中的新Router
  • postgresql行列转换函数
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • #1014 : Trie树
  • #QT项目实战(天气预报)
  • #vue3 实现前端下载excel文件模板功能
  • (42)STM32——LCD显示屏实验笔记
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (三) diretfbrc详解
  • (万字长文)Spring的核心知识尽揽其中
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .CSS-hover 的解释