x86架构-学习笔记

x86-64是x86架构的延续,是64位微处理器架构机器相应的指令集。
在x86-64出现以前,Intel与惠普联合推出IA-64架构,此架构与x86不兼容且没什么市场。AMD首次公开64位集为IA-32提供扩展,称为x86-64,后来命名为amd64,后来Intel也采用了这个架构,叫做intel 64.
后来这个名字为了不偏袒任何一家,所以起名为x86-64架构,能够将x86架构移植到64位环境中,并兼容以前的程序。

中断架构:
中断是由设备,经过中断控制器PIC发送给CPU的。

IO架构:
计算机除了CPU计算就是IO操作了。
IO是CPU访问外设的方法。按照访问方式不同,分为端口IO,和内存映射IO。
1)端口IO是通过IO端口访问设备寄存器的。x86有65536个8位的IO端口,编号为0x0~0xFFFF,共65535个端口构成了64K的端口地址空间。CPU通过引脚标识这是一次IO端口访问。芯片组通过这个标识知道了这个是端口号,并完成相应操作。
2)内存映射IO,这种方式更为常见。通过内存访问的形式访问设备寄存器或设备RAM。将设备寄存器和设备RAM映射到物理地址空间,然后直接访问内存即可。但是MMIO不可缓存到TLB当中。有些CPU架构不支持Port IO,MMIO更先进。

特权指令和敏感指令
特权指令是 系统中操作和管理关键系统资源的指令。 特权指令只能在最高特权级上正常运行,如果不是最高特权级,会使处理器陷入到最高特权级上,进而将特权指令交由系统软件处理。

敏感指令是操作特权资源的指令,是虚拟化中的概念。读写敏感的寄存器或内存,访问内存系统或IO指令。所有的特权指令都是敏感指令。但不是所有的敏感指令都是特权指令。
传统的虚拟化技术一般是通过“陷入再模拟”的方式实现的。客户机OS在非特权级上。因执行敏感指令而陷入到VMM时,VMM模拟执行引起异常的敏感指令。如果系统中的所有的敏感指令都是特权指令,那么他就是可以虚拟化的。

异常与中断的区别:
中断是由外部设备发生的,与CPU当前执行的代码无关。但是异常却与当前执行代码有关,按照严重程度分为三类:

错误:由某种错误引起的,处理器将控制权交给相应的处理程序,缺页错误就是此类错误。
陷阱:执行某条特权指令后引起的异常。陷阱是有益的异常,陷阱最重要的用途是在用户态和内核态系统调用之间提供一个像过程一样的接口。实现系统调用的INT 80指令就是属于此类。
终止:指不可恢复的错误,将导致程序终止。典型的是一些硬件错误。

这些都是读了《虚拟化技术--原理与实现》的一些收获,好书啊。






<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(61) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章