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

现代CPU的多种运行模式

目前的CPU大多是支持X86-64技术的兼容CPU,这包括AMD64以及Intel的IA32E(后被正式命名为EM64T,Extended Memory 64 Technology),因为AMD64先出,而EM64T与AMD64完全兼容,所以也统一称为AMD64技术。由于AMD64技术向下兼容,所以很好的承接了以前的16位、32位资源,与此相应,X86-64兼容CPU可以运行在多种模式之下,除了熟悉的实模式,保护模式,还有长模式等,下面统一简单介绍现代CPU可运行的各种模式。

8086/8088时代:
实模式,Real-address Mode,实地址模式,CPU寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。在实模式下,CPU只能做单任务运行。
在实模式下,寻址公式为:物理地址 = 左移4位的段地址 + 偏移地址,即:物理地址是由16位的段地址和16位的段内偏移地址组成的。比如在ES寄存器中存入0x1000,DI寄存器中存入0xFFFF,那么ES:DI=0x1000*0x10 + 0xFFFF = 0x1FFFF。

80286到80386开始:
保护模式,Protected Mode,内存保护模式,寻址采用32位段和偏移量,最大寻址空间为4GB,最大分段4GB (Pentium Pre及以后为64GB)。保护模式拥有内存保护,分页系统,以及硬件支援的虚拟内存等功能。
在保护模式下,进行寻址时,段寄存器值不再被简单的解析为段起始地址,而是全局/局部描述符表(GDT/LDT)的索引,也即是所谓的选择子。

系统管理模式,System Management Mode,系统管理模式(SMM)通常被用来执行特定的强力管理例程,关于这方面,我完全没有接触到,所以连直接拷贝都不敢了,以免出错误导他人,只知道貌似和BIOS程序有些关系。

虚拟8086模式,Virtual-8086 Mode,V86模式,在保护模式下CPU可以进入到这种模式,即虚拟8086模式是保护模式下的一种工作方式。CPU把V86任务作为与其它任务具有同等地位的一个任务,可以支持多个V86任务,每个V86任务是相对独立的。在虚拟8086模式下,处理器工作方式类似于8086。

长模式,Long mode,在长模式下,处理器完全执行64位指令,使用64位地址空间(物理内存的寻址能力却没有被完全扩展到64位,因为目前的众多CPU在其寿命期限之内都没有机会见识到如此巨大的内存)和64操作数。

http://www.lryc.cn/news/275125.html

相关文章:

  • Python PDF处理模块pypdf库详解
  • C++上位软件通过LibModbus开源库和西门子S7-1200/S7-1500/S7-200 PLC进行ModbusTcp 和ModbusRTU 通信
  • PLSQL Developer 15安装和oracle客户端安装
  • 【深度deepin】深度安装,jdk,tomcat,Nginx安装
  • 解决flask启动报错:ImportError: DLL load failed while importing _dukpy: 找不到指定的程序
  • 腾讯面试总结
  • 面向对象进阶(static关键字,继承,方法重写,super,this)
  • Blazor项目如何调用js文件
  • Windows11 - Ubuntu 双系统及 ROS、ROS2 安装
  • 深度学习(学习记录)
  • html5实现好看的个人博客模板源码
  • SpringSecurity深度学习
  • odoo17 | 用户界面的基本交互
  • Intel 性能监视器之二
  • Vert.x学习笔记-什么是事件总线
  • STM32学习笔记二十二:WS2812制作像素游戏屏-飞行射击游戏(12)总结
  • astadmin安装querylist插件Puppeteer
  • Python从入门到网络爬虫(MySQL链接)
  • 2020年认证杯SPSSPRO杯数学建模A题(第二阶段)听音辨位全过程文档及程序
  • 深入理解CRON表达式:时间调度的艺术
  • 网络安全—模拟IP代理隐藏身份
  • Resilience4j相关问题及答案(2024)
  • XSKY SDS 产品率先获得 OceanBase V4 新版本认证
  • 系统学习Python——类(class):静态方法(staticmethod)和类方法(classmethod)-[基础知识]
  • kotlin isEmpty/isNotEmpty/isNullOrEmpty和isBlank/isNotBlank/isNullOrBlank
  • Qt/QML编程学习之心得:Linux下USB接口使用(25)
  • 概率论与数理统计 知识点+课后习题
  • Spring Boot实战:深入理解@Service与@Mapper注解
  • 【DevOps-06】Jenkins实现CI/CD操作
  • 华为面经总结