
内存
qwaszx523
努力成长的小菜鸟
展开
-
VA、MVA、PA
VA(虚地址),MVA(修正后虚地址),PA(物理地址)1)VA,是程序中的逻辑地址,0x00000000~0xFFFFFFFF。2)MVA,由于多个进程执行,逻辑地址会重合。所以,跟据进程号将逻辑地址分布到整个内存中。MVA = (PID << 25) | VA3)PA,MVA通过MMU转换后的地址。原创 2017-06-22 16:11:45 · 3933 阅读 · 0 评论 -
内存对齐宏ALIGN
对于正整数2^n(n>1)来说,存在这样的特性,如果整数X是2^n的整数倍,则X的二进制形式的低n位为0, 如果X不是2^n的整数倍,则X与(~(2^n-1))进行与运算可以得到一个与X相近的是2^n整数倍的正整数。这个特性经常用于内存分配时对齐。如果是上对齐,则需要先加上2^n-1,再进行上述运算。 在linux2.6.30.4中,在include/Linux/ker原创 2017-02-23 17:14:08 · 2647 阅读 · 0 评论 -
Linux内存压力测试-memtester工具简析
转自:https://my.oschina.net/liangzi1210/blog/113287?p=1 进行内存的压力测试,Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等.通过给定测试内存的大小和次数, 可以对系统现有的内存进行上面项目的测试。转载 2016-09-14 13:45:55 · 8050 阅读 · 0 评论 -
突发(Burst)
突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。 在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只原创 2016-08-29 11:11:17 · 8955 阅读 · 0 评论 -
为什么寄存器比内存快?
转自http://www.ruanyifeng.com/blog/2013/10/register.html计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。同样都是晶体管存储设备,为什么寄存器比内存快呢?Mike Ash写了一篇很好的解释,非常通俗地回答了这个问题,有助于加转载 2016-09-09 20:29:47 · 269 阅读 · 0 评论 -
什么是TLB ?
转自:http://blog.chinaunix.net/uid-16361381-id-3044981.htmlTLB:Translation Lookaside Buffer.根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲。里面存放的是一些页表文件(虚拟地址到物理地址的转换表)。当处理 器要在主内存寻址时,不是直接在内存的物理地址里查找的,而是通过一转载 2016-08-24 14:37:55 · 4232 阅读 · 0 评论 -
cache与TLB
转自 http://www.cnblogs.com/cherri/archive/2011/03/08/1976990.html cache是一种高速缓存存储器,用于保存CPU频繁使用的数据。在使用Cache技术的处理器上,当一条指令要访问内存的数据时,首先查询cache缓存中是否有数据以及数据是否过期,如果数据未过期则从cache读出数据。处理器会定期回写cach转载 2016-08-24 14:55:49 · 748 阅读 · 0 评论 -
DDR3 内存带宽计算
转自:http://blog.chinaunix.net/uid-14214482-id-3220464.html内存带宽计算公式:带宽=内存核心频率×内存总线位数×倍增系数。 先容我从DDR的技术说起,DDR采用时钟脉冲上升、下降沿各传一次数据,1个时钟信号可以传输2倍于SDRAM的数据,所以又称为双倍速率SDRAM。它的倍增系数就是2。 DDR2仍然采用时钟脉转载 2016-08-24 15:17:25 · 9046 阅读 · 0 评论 -
ARM MMU工作原理剖析
转自http://blog.chinaunix.net/uid-20698426-id-136197.html一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀转载 2016-09-24 22:00:03 · 268 阅读 · 0 评论 -
内存管理单元 MMU
转自http://www.cnitblog.com/tarius.wu/articles/322.html现代操作系统及CPU硬件中,都会提供内存管理单元(memory management unit,MMU)来进行内存的有效管理。内存管理算法有许多,从简单的裸机方法到分页和分段策略。各种算法都有其优缺点,为特定系统选择内存管理算法依赖于很多因素,特别是系统的硬件设计。1 内存管理的目的转载 2016-09-26 15:19:48 · 463 阅读 · 0 评论 -
scatterlist
使用scatterlist的原因就是系统在运行的时候内存会产生很多碎片,比如4k,100k的,1M的,有时候对应磁盘碎片,总之就是碎片。而在网络和磁盘操作中很多时候需要传送大块的数据,尤其是使用DMA的时候,因为DMA操作的物理地址必须是连续的。假设要1M内存,此时可以分配一个整的1M内存, 也可以把10个10K的和9个100K的组成一块1M的内存,当然这19个块可能是不连续的,转载 2016-11-07 16:22:49 · 1215 阅读 · 0 评论 -
DMA-BUF API使用指南
转自:http://blog.youkuaiyun.com/crazyjiang本文将会告诉驱动开发者什么是dma-buf共享缓冲区接口,如何作为一个生产者及消费者使用共享缓冲区。任何一个设备驱动想要使用DMA共享缓冲区,就必须为缓冲区的生产者或者消费者。如果驱动A想用驱动B创建的缓冲区,那么我们称B为生成者,A为消费者。生产者:实现和管理缓冲区的操作函数[1];转载 2016-07-15 16:19:25 · 596 阅读 · 0 评论