当前位置:首页 > 风云人物 > x86是多少位(什么是x86架构)

x86是多少位(什么是x86架构)

2022-10-14 10:47:49 来源:金风故事网

我们都知道英特尔生产了无数的CPU产品。如果按照架构来分类的话,8086也是一样,因为8086之前是没有架构这个概念的。直到今天,总有两种架构,32位架构(也称x86)和64位架构。说到架构,就不得不说说每个架构下的模式了。虽然很多人都在写相关的文章,但是看完之后还是很迷茫。不知作者境界是否太高。今天敢说一下自己的理解,难免有疏漏。不要怪我。

首先来说说这几款特殊的处理器:8086,80186,80286。虽然这些处理器都是16位的,但它们也属于32位架构的范围。真正的第一个32位处理器是80386**。可以说32位架构是16位架构的扩展版,64位架构是16位架构的扩展版。毫不夸张地说,即使是刚刚兴起的64位CPU,也依赖于x86架构(x86 16位架构)。

解释一下这是怎么做到的,市场上所谓的32位和64位,实际上是指寄存器能存储的最大数是32位或者64位。当然,这里说的32位和64位并不是生活中的十进制数,而是计算机中的二进制数,不要混淆。

众所周知,一个CPU有匹配的指令集,没有指令集的CPU是没用的。所以还是从8086开始吧。毕竟是“最初的蓝图”。8086使用16位寄存器,80386使用32位寄存器。为了坚持兼容的设计理念,设计者对原有的8086指令集进行了扩展,也就是从x86-16到x86-32的转换,而这些扩展(新增)的指令就是为了让额外的寄存器正常工作。64位CPU也是如此。(当然,这些不仅仅体现在指令集上,还需要额外的技术、软件和硬件支持)

32位架构

实模式

好了,大前提终于讲完了。现在来说说32位架构的实模式(也叫真8086模式或快8086模式)。

如上所述,32位架构是基于16位架构的扩展版本。虽然这样可以保证CPU能够运行前期遗留下来的相对“低端”的程序,但是也学到了当时8086的一些“生活习惯”,比如视野比较小(寻址1M)、脑子比较直(单任务)等等。

可以说,从80386开始,这份来自8086的“遗产”就代代相传。你不知道的是,当你启动重启的时候(只有你启动重启的时候),电脑会悄悄进入实模式,然后切换到保护模式。虽然真实模式运行的时间很短,但是它确实运行了。悄悄告诉你一个秘密,就是8086模式下第21条地址总线的(A20门),通过它计算机从实模式切换到保护模式。

计算机从启动到真正运行之前都处于实模式。在这种模式下,32条地址总线中只有20条被使能。通过这种启用的20条地址总线,最多可以访问1M大小的常规存储器。1M不算多,但是细算一下,这个1M包括了BIOS-ROM和一些内存条。如果需要访问1M以上的内存,需要启用更多的地址总线(8086和8088除外,只有20条地址总线)。

综上所述,实模式是为了兼容历史遗留下来的程序而做出的让步,这也是为什么你打开电脑需要这么长时间的原因。物理地址= 4位左段地址偏移地址

保护模式

严格来说,保护模式是286处理器中首次引入的概念,也称为“虚拟地址保护模式”。当然,在286时代,保护模式只是一个概念,真正出现在80386处理器上,虽然16位286也可以模拟32位保护模式。286的虚拟保护模式导致了混乱。为了避免这样的事情,286的虚拟保护模式从80386开始就被彻底抛弃了。从这个角度来说,286是一个过渡产品。

说了保护模式的出现,现在来说说它的好处。简单来说就是在进程所属的内存中安装了一扇门,程序只能访问自己的地址空。比如你在电脑上同时听音乐(音乐软件:任务A)和玩游戏(游戏客户端:任务B),系统会给每个音乐软件和游戏客户端分配一段内存空。在保护模式下,音乐软件不可能访问游戏客户端的数据。我们再做一个假设。如果两个软件兼容(实际上不可能),没有保护模式的介入会怎么样?软件突然变成了打怪物的角色,本来要打怪物的游戏却放出了音乐。

以上例子是为了说明一些问题,不要当真。当然好处不仅仅是对进程内存的保护,还有硬件的分页机制和虚拟存储。这么多特性构成了保护模式,旨在提高系统的多任务性和稳定性。

当然,保护模式下的寻址与真实模式完全不同。在实模式下,偏移地址存储在段寄存器中。在保护模式下,段寄存器存储的不是偏移地址,而是指向GDT(全局描述符表)和LDT(局部描述符表)的指针。简单来说,偏移地址的赋值已经被这两个货取代了,只有在GDT和LDT的帮助下才能获得真实的物理地址。

虚拟8086模式

解释真实模式相对来说要简单很多。说白了就是运行在保护模式下的虚实模式。我们都知道Intel CPU从8086开始就编写了很多应用程序,为了保证这些历史遗留下来的程序在新版CPU上完美运行,虚拟8086模式出现了。虽然有些程序在CPU添加(启动)和复位(重启)时已经在实模式下运行,但远远不能满足需求。

在程序真正运行后,也就是处于保护模式时,如果用户运行较老的程序,比如8086开发的程序,系统会自动进入虚拟8086模式运行这些程序。虽然这看起来和真实模式差不多,但实际上是不同的。最大的区别是虚拟8086模式支持多任务,每个人的任务都在真实模式下工作。

声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场。
相关内容推荐
标签:
与文章关键字相关的新闻
风云人物最新文章
精华推荐
热门图文