PPC MPC85xx e500学习笔记
powerpc的内存体系结构
E500内核中包含内存管理单元MMU,其包含两个查找表(TLB0 Transaction Lookside Buffer)和TLB1来实现虚拟地址和物理地址的转化,其中TLB0用来进行页式映射,TLB1用来进行段式映射。E500有两个版本v1和v2,其中v2内核中的物理地址为36位,支持64GB的寻址,配置上有些不同。
E500v1内核的虚实地址转换


E500内核中使用了两级MMU结构,E500内核中的地址转换不能被禁止,并且在内部支持两个地址空间,分别为地址空间0和地址空间1
L1MMU包括I-L1VSP,D-L1VSP,I-L1TLB4K,D-L1TLB4k, I-L1VSP,D-L1VSP有4个Entry,是TLB1的数据缓冲区。I-L1TLB4K,D-L1TLB4k有64个Entry,是TLB0的数据缓冲区。
E500内核的L2MMU包括TLB0(16个Entry),和TLB1(256个Entry),
L1MMU和L2MMU中的Entry
E500内核的L1MMU和L2MMU中包含了许多Entry,在这些Entry中又包含了许多字段用来支持虚实地址转换,系统软件部能直接操作L1MMU的Entry,而是通过操作L2MMU的Entry来影响L1MMU的Entry
在E500内核中TLB1用来实现虚拟地址和物理之间的段映射方式,在E500内核复位后,TLB1中除了Entry0之外,其他的Entry都被置为无效,TLB1的Entry0初始值如表

E500内核的系统复位地址为0xFFFFFFFC,此时系统只能访问从0xFFFFF000开始的4KB地址,在这段程序空间中,引导程序需要完成对TLB1的其他Entry的初始化操作,建立基本的地址映射,
TILB1支持可变的长度页表,TLB1中一共有16个Entry,支持的最大内存地址空间为4GB,改变TLB1相应的Entry的SIZE字段将会调整TLB1中所支持的页表大小

1.系统软件可以使用TLB1映射IO空间,如PCI总线地址,局部总线地址空间,也可以你使用TLB1对主存储器,如SDRAM,DDR,进行地址映射,使用TLB1进行映射的优点是配置简单,一次最多可以将最多256MB空间进行映射,对于许多简单的应用而言,系统软件设计可以只使用TLB1完成虚实地址转换,而不需要使用TLB0进行页式虚实地址转换。
2.TLB0,TLB0是MMU地址转换单元的核心,E500内核的TLB0共支持256个Entry,支持的页表大小为4KB,因此TLB0所能直接覆盖的物理地址空间只有1MB,但是系统软件只是将TLB0作为页表的缓冲,采用TLB0进行虚拟内存管理需要在主存储器中建立也变,页表的每一个Entry所能管理的页表大小也是4KB,也TLB0支持的页表大小相等,
3.由于TLB0能直接映射地址空间只有1MB,当一个程序使用的地址不在这1MB空间时,将产生TLB miss异常,E500内核中一共有两只TLB miss异常,指令TLB miss异常和数据TLB miss异常。当产生异常时,进入异常处理程序会对存放在外部存储器中的页表进行检索,然后查到页表中和的Entry,将此Entry的值更新到TLB-的Entry中。
E500内核的Cache组成
1.E500内核中仅包含L1 cache,而不包含L2 cache,目前基于E500内核的处理器如,MPC8541,MPC8548包含了L2 cache,但是这些L2cache不属于内核,而是出于处理器。
2.E500内核的L1 cache采用哈佛结构将指L1 cache 和数据L1 cache分离,指令和数据L1 cache的大小都为32K
32kB = cache行长度(32B)X 路数(8路)X组数(128组)

PPC MPC85xx e500学习笔记的更多相关文章
- 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用
目录 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用 16.1 LVM的工作原理 16.1.1 LVM常用术语 16.1.2 LVM优点 16.2 创建LVM的基本步骤 16.2 ...
- [转帖]Linux学习笔记之rpm包管理功能全解
Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
随机推荐
- JsonWriter使用
Example: 拼一个如下的json格式String { [ { "id": 912345678901, &quo ...
- loadView、viewDidLoad、viewWillAppear、viewDidAppear等详解
loadView; This is where subclasses should create their custom view hierarchy if they aren't using a ...
- error: src refspec master does not match any. 错误处理办法
自从上次学了git之后,很少用.今天在使用 本地仓库使用如下命令初始化: $ git init 之后使用如下命令添加远程库: $ git remote add origin git@github.co ...
- 解决mac升级后,出现的 xcrun: error: invalid active developer path, missing xcrun 错误
最近升级了mac系统,然后接着写代码就出问题了. 报错信息如下: xcrun: error: invalid active developer path (/Library/Developer/Com ...
- 怎么将oracle数据库的数据迁移
打开要导出数据的PC,进入cmd界面 先进入数据库输入sqlplus,账号system密码508956.有权限的账户密码 2. create directory dir_555 as 'd:/asd1 ...
- 在linux中添加ftp用户,并设置相应的权限
在linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd ...
- Winform打砖块游戏制作step by step第6节---双缓冲应用
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---双缓冲应用 1. 主界面截图如下: 2. 什么是双 ...
- php的cookie和session相同主域名共享
如何使用chrome查看cookie和session详见另一篇文章,点这里 首先说cookie, $cookieDomain = '.elf.com'; setcookie('elf', 'im el ...
- Maven pom.xml 配置说明: 打jar包不包括指定资源文件和.class xml,配置不跑testCase,建pom父子项目
**maven如何配置打jar包时,一些class 或者资源文件不打进来,把classpath的xml文件打进jar <build> <!--针对资源文件--> <res ...
- My English Dictionary
A axis 坐标轴 architecture 结构 B C consider 考虑 closure 闭包 clip 修剪 convert 改变 D default 默认的 valid 有效的 d ...