2018年5月7日

Linux下逻辑地址、线性地址、物理地址详细总结

摘要: 一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。 我们写个最简单的hello world程序,用gcc编译,再反编译后会看到以下指令: mov 0x80495b0, %eax 复制代码 这里的 阅读全文

posted @ 2018-05-07 14:22 AlanTu 阅读(8523) 评论(1) 推荐(3) 编辑

MMU内存管理单元

摘要: arm-linux学习-(MMU内存管理单元) 什么是MMU MMU(Memory Management Unit)主要用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权、多任务多进程操作系统。(来自百度百科,对其几个点不熟悉,因此可以只考虑加 阅读全文

posted @ 2018-05-07 14:06 AlanTu 阅读(25119) 评论(0) 推荐(2) 编辑

linux内存管理之malloc、vmalloc、kmalloc的区别

摘要: 一、简述 1、 kmalloc申请的是较小的连续的物理内存,虚拟地址上也是连续的。kmalloc和get_free_page最终调用实现是相同的,只不过在调用最终函数时所传的flag不同而已。除非被阻塞否则他执行的速度非常快,而且不对获得空间清零。 2、get_free_page()申请的内存是一整 阅读全文

posted @ 2018-05-07 07:10 AlanTu 阅读(3377) 评论(0) 推荐(0) 编辑

TLB的作用及工作原理

摘要: 以下内容摘自《步步惊芯——软核处理器内部设计分析》一书 页表一般都很大,并且存放在内存中,所以处理器引入MMU后,读取指令、数据需要访问两次内存:首先通过查询页表得到物理地址,然后访问该物理地址读取指令、数据。为了减少因为MMU导致的处理器性能下降,引入了TLB,TLB是Translation Lo 阅读全文

posted @ 2018-05-07 07:06 AlanTu 阅读(71126) 评论(1) 推荐(5) 编辑

导航