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. sql 标准见表语句

    建一张表 /******************************************************************************** 小区主档记录,要保证与Or ...

  2. svg path中的贝塞尔曲线

    首先介绍以下什么是贝塞尔曲线 贝塞尔曲线又叫贝茨曲线(Bezier),由两个端点以及若干个控制点组成,只有两个端点在曲线上,控制点不在曲线上,只是控制曲线的走向. 控制点个数为0时,它是一条直线; 控 ...

  3. ubuntu 15 安装cuda,开启GPU加速

    1 首先要开启GPU加速就要安装cuda.安装cuda,首先要安装英伟达的驱动.ubuntu有自带的开源驱动,首先要禁用nouveau.这儿要注意,虚拟机不能安装ubuntu驱动.VMWare下显卡只 ...

  4. weblogic部署脚本

    #!/bin/bash #-- #writen lxh dir_war=/home/weblogic/war dir_app=/servyouapp/weblogic/user_projects/do ...

  5. Hibernate一对多(注解)

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...

  6. 消除a标签点击后产生的虚线框

    为a标签添加这条属性: a:focus {outline:none;-moz-outline:none;}

  7. javascript一些方法兼容

    javascript一些方法兼容 标签(空格分隔): javascript 方法收集 [TOC] Object.keys 参考地址 if (!Object.keys) Object.keys = fu ...

  8. Ceph剖析:Leader选举

    作者:吴香伟 发表于 2014/09/11 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 Paxos算法存在活锁问题.从节点中选出Leader,然后将所有对数据 ...

  9. [转]Centos7下caffe的安装

    Centos7下caffe的安装 原文地址:http://blog.csdn.net/s2392735818/article/details/49796017   版权声明:本文为博主原创文章,未经博 ...

  10. --with-http_realip_module选项(后台Nginx服务器记录原始客户端的IP地址 )

    转自:http://blog.itpub.net/27043155/viewspace-734234/ 通过这个模块允许我们改变客户端请求头中客户端IP地址值(例如,X-Real-IP 或 X-For ...