【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )

简介: 【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )

文章目录

一、x86 CPU 模型

二、内存模型





一、x86 CPU 模型


下图是 x86 架构的 CPU 模型图 :


左侧的 EAX , EBX , ECX , EDX , ESI , EDI , EBP , ESP , CS , DS , ES , FS , GS , SS , EFLAGS , EIP 等 16 1616 个各种颜色的模块 , 都是 " 寄存器 " ;


寄存器可以访问 " 高速缓存 " , 这里的高速缓存就是 一级 / 二级 / 三级 缓存 ;


高速缓存 与 内存相对应 , 缓存中缓存的数据就是内存中的数据 ;


CPU 读取内存中的数据 : 如果在高速缓存中有相应数据 , 就直接加载到寄存器中 , 如果 高速缓存 中没有数据 , 就将数据从内存中加载到 高速缓存 中 ;


CPU 读取硬盘中数据 : 首先将硬盘的文件 , 加载到内存中 , 然后从内存中加载到 CPU 高速缓存中 , 最后才能将高速缓存中的数据加载到寄存器中 ;

image.png



段寄存器 , 每个寄存器 16 1616 位 , 2 22 字节 , 是 x86-32 3232 位架构 的遗留产物 , 在 64 6464 位架构中 , 基本不会使用 ;


32 3232 位的寄存器 , 通用寄存器 , 变址寄存器 , 指针寄存器 , 在 x86-64 6464 位架构中经常使用 ;


通用寄存器是用于计算的 ;

变址寄存器 和 指针寄存器 是用于访问内存的 , 如将内存中的数据加载到寄存器中 , 或者将寄存器中的数据写出到内存中 ;

标志寄存器 : 根据不同的标志 , 进行不同的操作 , 如跳转 ; ( 实现 if 和 else 类似操作 )


指令寄存器 : 表明下一条要执行的指令位置 ;






二、内存模型


CPU 和 内存之间是可以直接访问的 ;


CPU 访问 硬盘 , 显卡 , 显示器 等其它外部设备 , 是通过内存间接访问的 ;


image.png


内存访问硬盘 : 硬盘中的数据不是直接写入到内存中的 , 硬盘中维护了一个硬盘缓存 , 内存加载硬盘数据时 , 先查看硬盘缓存中是否有相应数据 ,


如果有直接加载到内存中 ;

如果没有 , 则先将硬盘数据加载到硬盘缓存中 , 然后再加载到内存中 ;

内存访问显卡 : 显卡 GPU 并不是直接与内存进行数据交互 , 在显卡中维护了一块 显存 , 显存中的数据可以直接与内存进行交互 , 显卡与显存进行数据交互 ;


目录
相关文章
|
缓存 C语言 计算机视觉
程序与技术分享:CPU0处理器的架构及应用
程序与技术分享:CPU0处理器的架构及应用
|
存储 智能硬件
CPU的定义与功能与架构
CPU(中央处理器)是计算机的核心部件,负责执行程序指令、控制数据传输和进行运算。它能处理算术与逻辑运算,并协调其他硬件协同工作。x86架构源于英特尔,适用于PC和服务器,采用复杂指令集;ARM架构则由Acorn等公司开发,广泛用于移动设备和嵌入式系统,采用精简指令集,功耗低且能效比高。
1738 5
|
存储 人工智能 编译器
【AI系统】CPU 指令集架构
本文介绍了指令集架构(ISA)的基本概念,探讨了CISC与RISC两种主要的指令集架构设计思路,分析了它们的优缺点及应用场景。文章还简述了ISA的历史发展,包括x86、ARM、MIPS、Alpha和RISC-V等常见架构的特点。最后,文章讨论了CPU的并行处理架构,如SISD、SIMD、MISD、MIMD和SIMT,并概述了这些架构在服务器、PC及嵌入式领域的应用情况。
1787 5
|
存储 缓存 开发者
CPU的架构涵盖哪些方面
CPU(中央处理单元)的架构指的是CPU的设计和组织方式,包括其内部结构、数据通路、指令集、寄存器配置、存储器管理和输入输出等一系列设计原则和技术的综合体现。
632 1
|
NoSQL Redis 开发工具
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
Redis性能优化问题之检查 Redis 实例是否启用了透明大页机制,如何解决
|
机器学习/深度学习 人工智能 并行计算
GPU 和 CPU 处理器的架构
CPU(中央处理器)和 GPU(图形处理单元)是计算机系统中最重要的两种处理器。它们各自的架构设计和技术体系决定了其在不同应用领域中的性能和效率。
1140 1
|
存储 缓存 开发者
CPU的架构指什么?
CPU(中央处理单元)的架构指的是CPU的设计和组织方式,包括其内部结构、数据通路、指令集、寄存器配置、存储器管理和输入输出等一系列设计原则和技术的综合体现。
1243 0
|
Linux Perl
如何在Linux系统中确定CPU架构
如何在Linux系统中确定CPU架构
1582 0
|
9月前
|
缓存 人工智能 算法
不同业务怎么选服务器?CPU / 内存 / 带宽配置表
本文详解了服务器三大核心配置——CPU、内存、带宽,帮助读者快速理解服务器性能原理。结合不同业务场景,如个人博客、电商、数据库、直播等,提供配置选择建议,并强调合理搭配的重要性,避免资源浪费或瓶颈限制。内容实用,适合初学者和业务选型参考。
1232 0
|
9月前
|
存储 消息中间件 缓存
从纳秒到毫秒的“时空之旅”:CPU是如何看待内存与硬盘的?
在数据爆炸的时代,如何高效存储与管理海量数据成为系统设计的核心挑战。本文从计算机存储体系结构出发,解析B+树、LSM树与Kafka日志结构在不同数据库中的应用与优化策略,帮助你深入理解高性能存储背后的原理。
279 0