【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 并不是直接与内存进行数据交互 , 在显卡中维护了一块 显存 , 显存中的数据可以直接与内存进行交互 , 显卡与显存进行数据交互 ;


目录
相关文章
|
1月前
|
Java 大数据 Go
从混沌到秩序:Java共享内存模型如何通过显式约束驯服并发?
并发编程旨在混乱中建立秩序。本文对比Java共享内存模型与Golang消息传递模型,剖析显式同步与隐式因果的哲学差异,揭示happens-before等机制如何保障内存可见性与数据一致性,展现两大范式的深层分野。(238字)
63 4
|
3月前
|
人工智能 边缘计算 自然语言处理
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
随着模型量化技术的发展,大语言模型(LLM)如今可在低配置设备上高效运行。本文介绍本地部署LLM的核心技术、主流工具及十大轻量级模型,探讨如何在8GB内存环境下实现高性能AI推理,涵盖数据隐私、成本控制与部署灵活性等优势。
1736 0
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
|
6月前
|
缓存 编解码 Android开发
Android内存优化之图片优化
本文主要探讨Android开发中的图片优化问题,包括图片优化的重要性、OOM错误的成因及解决方法、Android支持的图片格式及其特点。同时介绍了图片储存优化的三种方式:尺寸优化、质量压缩和内存重用,并详细讲解了相关的实现方法与属性。此外,还分析了图片加载优化策略,如异步加载、缓存机制、懒加载等,并结合多级缓存流程提升性能。最后对比了几大主流图片加载框架(Universal ImageLoader、Picasso、Glide、Fresco)的特点与适用场景,重点推荐Fresco在处理大图、动图时的优异表现。这些内容为开发者提供了全面的图片优化解决方案。
269 1
|
8月前
|
存储 人工智能 编解码
TripoSF:3D建模内存暴降80%!VAST AI新一代模型细节狂飙82%
TripoSF 是 VAST AI 推出的新一代 3D 基础模型,采用创新的 SparseFlex 表示方法,支持 1024³ 高分辨率建模,内存占用降低 82%,在细节捕捉和复杂结构处理上表现优异。
265 10
TripoSF:3D建模内存暴降80%!VAST AI新一代模型细节狂飙82%
|
11月前
|
人工智能 物联网 C语言
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。
698 5
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
|
监控 Java Android开发
深入探讨Android系统的内存管理机制
本文将深入分析Android系统的内存管理机制,包括其内存分配、回收策略以及常见的内存泄漏问题。通过对这些方面的详细讨论,读者可以更好地理解Android系统如何高效地管理内存资源,从而提高应用程序的性能和稳定性。
496 16
|
11月前
|
监控 Java Android开发
深入探索Android系统的内存管理机制
本文旨在全面解析Android系统的内存管理机制,包括其工作原理、常见问题及其解决方案。通过对Android内存模型的深入分析,本文将帮助开发者更好地理解内存分配、回收以及优化策略,从而提高应用性能和用户体验。
|
12月前
|
存储 人工智能 编译器
【AI系统】CPU 指令集架构
本文介绍了指令集架构(ISA)的基本概念,探讨了CISC与RISC两种主要的指令集架构设计思路,分析了它们的优缺点及应用场景。文章还简述了ISA的历史发展,包括x86、ARM、MIPS、Alpha和RISC-V等常见架构的特点。最后,文章讨论了CPU的并行处理架构,如SISD、SIMD、MISD、MIMD和SIMT,并概述了这些架构在服务器、PC及嵌入式领域的应用情况。
965 5
|
Android开发 开发者
Android性能优化——内存管理的艺术
Android性能优化——内存管理的艺术
|
机器学习/深度学习 算法 物联网
大模型进阶微调篇(一):以定制化3B模型为例,各种微调方法对比-选LoRA还是PPO,所需显存内存资源为多少?
本文介绍了两种大模型微调方法——LoRA(低秩适应)和PPO(近端策略优化)。LoRA通过引入低秩矩阵微调部分权重,适合资源受限环境,具有资源节省和训练速度快的优势,适用于监督学习和简单交互场景。PPO基于策略优化,适合需要用户交互反馈的场景,能够适应复杂反馈并动态调整策略,适用于强化学习和复杂用户交互。文章还对比了两者的资源消耗和适用数据规模,帮助读者根据具体需求选择最合适的微调策略。
3698 5

热门文章

最新文章

下一篇
oss云网关配置