从现在开始,本人根据手头的IA-64材料开始研究,目前的IA-64编程手册一共四卷,4卷手册的第1章都是同一内容,就是对4卷材料的所有内容做一个纵览。因此在笔记上我就忽略具体内容,大致第1卷讲的是有关应用编程结构;第2卷讲的是系统程序结构;第3卷讲的是IA-64指令集;第4卷讲的是安腾处理器编程指南,目前只有安腾处理器使用的是IA-64结构,其它的桌面型处理器使用的64位结构都是EM64T。所以暂时不谈了,我们把主要的精力放在IA-64上。
第2卷:IA-64处理器体系结构的介绍:
开篇大谈了一通IA-64的好处,什么是目前最厉害的体系结构,克服的传统结构的某某限制之类的,IA-32的编程手册上也是这样吹的。不过那本手册我没有看完,只看了个开头。不过IA-64有一个特点,就是所谓的精确指令并行执行。在以往的IA-32中,CPU一次执行一条指令,操作系统之所以能达到多任务是由于在不同的程序中来回切换,所以在宏观上来看好象是同时执行的,但每个程序其实都会停下来一小会儿。到了IA-64,基本上就能做到一次执行多条指令,也就是从微观上做到并行执行。除此之外,IA-64对IA-32指令集提供兼容。并可以允许IA-32和IA-64代码混合起来执行。
接下来是IA-64操作环境。IA-64体系结构支持两种操作环境:支持IA-32的32位操作系统的IA-32环境以及支持IA-64操作系统的IA-64环境。体系结构同时也支持在单个IA-64操作系统中同时拥有IA-32和IA-64应用程序。
操作环境完了以后是指令集转换模式(Instruction Set Transition Model Overview),可能就是在IA-64和IA-32混合代码执行的时候在不同的指令集之间转换所要用的吧。转换方式有四种:JMPE,IA-32指令,用于跳转到IA-64目标指令,将指令集转到IA-64指令集;br.ia,IA-64指令,作用和JMPE相反;第三个是中断,任何中断都是在IA-64下处理的。最后一个是rfi,IA-64指令,用于从中断中返回到IA-32或IA-64。其中,JMPE和br.ia两条转换指令的系统开销比较低,可以用于调用或连接静态或动态库的时候使用。
转换模式完了后是指令集特征,IA-64有一个特性就是能将程序代码中不会用到分支给去掉,以便于提高程序的性能。所谓指令集特征有以下几个:精确指令并行,以及分支预判、循环流水线等提升指令级并行能力的特性,还有对软件模块化的支持、高性能浮点体系结构、专用的多媒体指令等。
先写这么多吧,接下来的很多特性我目前还不太了解,写了怕引起误导,所以不敢乱写了,IA-64为了配合指令并行执行好象增加了很多的机制,以我目前的能力而言很难理解,但我打算继续努力下去。还有,IA-64的材料在中文网站上找不到,必须到英文网站上去找,大家想要的话自己在英文雅虎上搜一下吧,很方便的。还是奉劝各位多多关注这方面的技术吧,不说将来写操作系统,至少也要在未来的职业选择上不至于落后啊。