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学习笔记的更多相关文章

  1. 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用

    目录 学习笔记:CentOS7学习之十六:LVM管理和ssm存储管理器使用 16.1 LVM的工作原理 16.1.1 LVM常用术语 16.1.2 LVM优点 16.2 创建LVM的基本步骤 16.2 ...

  2. [转帖]Linux学习笔记之rpm包管理功能全解

    Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  7. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  8. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  9. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

随机推荐

  1. Android程序crash处理

    Android程序crash处理 时间 2014-11-24 13:45:37  CSDN博客 原文  http://blog.csdn.net/allen315410/article/details ...

  2. WPF Image控件的Source属性是一个ImageSource对象

    1.固定的图片路径是可以的,如下: <Image Source="../test.png" /> 2.绑定的Path是一个String类型的图片路径,而实际情况它需要的 ...

  3. 设计模式:Context模式

    作者:吴香伟 发表于 2014/09/12 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 Ceph实现中使用了大量派生于Context抽象类的子类,用法简单却很 ...

  4. ms sql server 在cmd中执行sqlcmd的时候报错

    cmd下直接输入sqlcmd会提示 错误: HResult 0x2,级别 16,状态 1命名管道提供程序: 无法打开与 SQL Server 的连接 [2].Sqlcmd: 错误: Microsoft ...

  5. Mac下U盘安装系统“未验证的错误”

    bash下 输入下面命令: date 1220141012015.30

  6. 将ubuntu的id_rsa秘钥转为putty的ppk格式

    1.使用putty的puttygen.exe: 2.导入需要转换的秘钥 3.保存私钥

  7. eclipse 搭建Swt 环境

    我本是想用java开发一个记事本,开发记事本使用到SWT插件,我从网上找了许多的资料去集成插件,创建我的第一个SWT项目,以下是我搭建SWT环境的过程. 一.查看当前使用的exlipse 版本型号 在 ...

  8. 无法卸载jdk的解决方法

    装了java之后非常纠结的就是无法卸载,总不能因为卸载一个jdk去重装系统,但是看着它残存在那又非常不爽, 因为卸载会牵扯注册表等琐碎的东西,,,后来在官网发现神器一枚,此神器就是java卸载工具. ...

  9. STM32之PWM波形输出配置总结

    一.   TIMER分类: STM32中一共有11个定时器,其中TIM6.TIM7是基本定时器:TIM2.TIM3.TIM4.TIM5是通用定时器:TIM1和TIM8是高级定时器,以及2个看门狗定时器 ...

  10. ubuntu14.04上Trac配置记录

    系统环境:ubuntu14.04 (并假设Apache2服务可以正常运行) 1. 安装软件: sudo aptitude install trac python-mysqldb 2. 创建数据库Tra ...