
MMU、Cache
gooogleman
学海无涯,上下求索。
展开
-
ARM920T协处理器(CP15)指令表
作者:wogoyixikexie@gliet原创 2008-12-29 10:57:00 · 2529 阅读 · 0 评论 -
学习 ARM 系列 -- FS2410 开发板上启用 MMU 实现虚拟内存管理——转载
学习 ARM 系列 -- FS2410 开发板上启用 MMU 实现虚拟内存管理 一、背景 FS2410 开发板上的 ARM 核心为 ARM920T, ARM920T 代表着什么呢? 其实ARM920T = ARM9 core + MMU + Cache,也就是说 ARM920T 为实现虚拟内存管理提供了硬件条件,这个硬件条件就是 MMU -- 内存管理单元。前面的实验我们程序里的地址都是直转载 2008-12-26 15:11:00 · 2159 阅读 · 0 评论 -
ARM协处理器CP15(设置MMU,cache等)学习
作者:wogoyixikexie@gliet 一直对协处理器CP15很恐惧,因为在网上基本上找不到中文的详细说明,现在找了一些ARM官方文档(ARM920T Technical Reference Manual)来看,准备对它做个了结。 协处理器CP15包含了如下寄存器。==================================================原创 2008-12-24 12:33:00 · 10350 阅读 · 1 评论 -
ARM920T的MMU与Cache ——转载
Cache是高性能CPU解决总线访问速度瓶颈的方法,然而它的使用却是需要权衡的,因为缓存本身的动作,如块拷贝和替换等,也是很消耗CPU时间的。MMU的重要性勿庸置疑,ARM920T(和ARM720T)集成了MMU是其最大的卖点;有了MMU,高级的操作系统(虚拟地址空间,平面地址,进程保护等)才得以实现。二者都挺复杂,并且在920T中又高度耦合,相互配合操作,所以需要结合起来研究。同时,二转载 2008-12-24 08:55:00 · 2255 阅读 · 0 评论 -
没有固化stepldr、eboot直接烧写NK会失败的原因
作者:wogoyixikexie@gliet 论坛有人问没有固化stepldr、eboot直接烧写NK会失败的原因,我觉得是cache没有清理请看:论坛地址:http://topic.youkuaiyun.com/u/20090209/20/bb90d990-052f-4d08-9af9-803c3ce5aa7b.html?seed=1018572129 以前我发的cache原理的帖子原创 2009-02-10 10:13:00 · 2069 阅读 · 0 评论 -
Windows CE 6.0 启动过程分析(转摘)
Windows CE 6.0 启动过程分析(转摘)在Windows CE 6.0中,内核(Kenerl)和OEM代码被分成oal.exe、kernel.dll和kitl.dll三个部分,其中启动代码(startup)和 OAL层的实现部分不再与内核链接生成NK.exe,取而代之的是启动代码(startup)和硬件相关且独立于内核的OAL层的实现部分编译成 oal.exe,而转载 2009-01-19 09:37:00 · 4067 阅读 · 0 评论 -
add r0, pc, #OEMAddressTable-(.+8)指令引起的论坛讨论
作者:wogoyixikexie@gliet wangxin_801115在昨天发了个帖子,本来觉得很简单,没有想到引起了很大的关注。现在收集起来造福you and me。———————————————————————————————————————————————————add r0, pc, #OEMAddressTable-(.+8) ; (r0) = OEMAddres原创 2009-01-06 14:13:00 · 5874 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之cache
Cache ARM920T有16K的数据Cache和16K的指令Cache,这两个Cache是基本相同的,数据Cache多了一些写回内存的机制,后面我们以数据Cache为例来介绍Cache的基本原理。我们已经知道,Cache中的存储单位是Cache Line,ARM920T的一个Cache Line是32字节,因此16K的Cache由512条Cache Line组成。要了解Cache的转载 2009-01-05 08:58:00 · 2475 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之虚拟内存管理
现代操作系统充分利用MMU提供的VA到PA的映射机制来做内存管理,以下称为虚拟内存管理(Virtual Memory Management)。首先看下面的例子: $ psPID TTY TIME CMD9612 pts/2 00:00:00 bash32070 pts/2 00:00:00 ps$ pmap 96129612: bash08048000 668K r-x-- /bin/bash转载 2009-01-05 08:49:00 · 3219 阅读 · 0 评论 -
MMU相关指令学习(二)(主要是页表设置指令)
作者:wogoyixikexie@gliet 本来打算在《MMU相关指令学习(一)(主要是页表设置指令)》搞定MMU指令问题的,但是这个实在是太长太多,太复杂了,现在就新开一文,就地解决!——刚好是第一百篇原创,值得纪念。————————————————————————————————Assembly code ;——在OAL的startup.s有如下:;add r0原创 2009-01-04 14:37:00 · 3430 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之MMU
MMU 我们已经简单了解了一下查页表的过程,实际上ARM920T支持多种尺寸规格的页表,图 9 “Translation Table Walk”所示的只是其中一种情况。下图示意了所有可能的情况(本节的图表均摘自[S3C2410用户手册])。 图 11. 查页表的过程 回顾一下查表的过程,首先从CP15的TTB寄存器找到一级页表的基地址,再把转载 2009-01-05 08:57:00 · 2702 阅读 · 0 评论 -
MMU代码分析(作者:wogoyixikexie@gliet)
MMU代码分析(作者:wogoyixikexie@gliet) ——以前我一直误以为MMU在OAL才开的,在bootloader是不开的,真是大错特错。这个也不怪我,因为有很多书都说在bootloader阶段是不开的。现在看看代码真是感慨万千。———————————————————————— 这两天,重新看了MMU和cache,对它有了一点了解,现在再把疑问放到论坛上来,希原创 2009-01-04 16:38:00 · 5404 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之操作MMU和Cache的内核启动代码
操作MMU和Cache的内核启动代码 bootloader加载linux内核到内存并解压之后,Linux内核首先在汇编代码中读取CPU的基本信息,对CPU做一些基本设置,创建最简单的临时页表,然后开启MMU和Cache,启用虚拟内存管理(此后CPU核发出的地址都是虚拟地址),然后跳到C代码中完成其它初始化工作,比如创建完整的页表、初始化各种内核子系统、初始化硬件设备等。本节以Linux转载 2009-01-05 09:00:00 · 6248 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之CP15协处理器
ARM920T的CP15协处理器 ARM920T的MMU和Cache都集成在CP15协处理器中,MMU和Cache的联系非常密切,本节首先从总体上介绍MMU、Cache和CPU核是如何协同工作的,后面两节分别讲解MMU和Cache的细节。三星公司的S3C2410是一种很常见的采用ARM920T的芯片,涉及到具体的芯片时我们以S3C2410为例。 以下是CP15协处理器的寄存转载 2009-01-05 08:51:00 · 4839 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之虚拟地址和物理地址的概念
虚拟地址和物理地址的概念 http://www.akaedu.org/pages/news_detail.php?id=374&page=1 CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚转载 2009-01-05 08:46:00 · 2642 阅读 · 0 评论 -
MMU相关指令学习(一)(主要是页表设置指令)
作者:wogoyixikexie@gliet————————————————————————————————————————————下面看看这张图,结合指令看看,不过我始终觉得这个图和程序描述的设置有很大差别。————————————————————————————————————————————————这里再来补充一下MMU的作用以及不使用MMU会造成什么后果。———原创 2009-01-03 23:43:00 · 5072 阅读 · 1 评论 -
MMU结构以及工作原理(作者:wogoyixikexie@gliet)
作者:wogoyixikexie@gliet—————————————————————————————————————————————— MMU的大名,早就听说了,可是一直不知道它是怎么工作的,前几月貌似看的模模糊糊,现在快年关了,来做个了结。在文中我会大量引用英文,并且不做翻译,因为俺觉得我的英文水平会误解别人。O(∩_∩)O哈哈~ One of the key serv原创 2008-12-30 11:05:00 · 9849 阅读 · 6 评论 -
cache原理学习(作者:gooogleman)
作者:wogoyixikexie@gliet cache是ARM最难理解,也是最具有闪光点的地方之一,现在是解决他的时候了。 对于这么经典的东西,我还是引用ARM工程师的书籍吧,免得误人子弟。cache以及write buffer的介绍 A cache is a small, fast array of memory placed be原创 2008-12-29 16:28:00 · 10273 阅读 · 3 评论