码迷,mamicode.com
首页 > 其他好文 > 详细

TLB的作用及工作过程

时间:2014-06-05 01:44:03      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:or1200 openrisc 软核处理   处理器   软核   开源   or1200 软核处理器   

以下内容摘自《步步惊芯——软核处理器内部设计分析》一书

  

      页表一般都很大,并且存放在内存中,所以处理器引入MMU后,读取指令、数据需要访问两次内存:首先通过查询页表得到物理地址,然后访问该物理地址读取指令、数据。为了减少因为MMU导致的处理器性能下降,引入了TLBTLBTranslation Lookaside Buffer的简称,可翻译为“地址转换后援缓冲器”,也可简称为“快表”。简单地说,TLB就是页表的Cache,其中存储了当前最可能被访问到的页表项,其内容是部分页表项的一个副本。只有在TLB无法完成地址翻译任务时,才会到内存中查询页表,这样就减少了页表查询导致的处理器性能下降。

      TLB中的项由两部分组成:标识和数据。标识中存放的是虚地址的一部分,而数据部分中存放物理页号、存储保护信息以及其他一些辅助信息。虚地址与TLB中项的映射方式有三种:全关联方式、直接映射方式、分组关联方式。OR1200处理器中实现的是直接映射方式,所以本书只对直接映射方式作介绍。直接映射方式是指每一个虚拟地址只能映射到TLB中唯一的一个表项。假设内存页大小是8KBTLB中有64项,采用直接映射方式时的TLB变换原理如图10.4所示。

 

bubuko.com,布布扣

 

因为页大小是8KB,所以虚拟地址的0-12bit作为页内地址偏移。TLB表有64项,所以虚拟地址的13-18bit作为TLB表项的索引。假如虚拟地址的13-18bit1,那么就会查询TLB的第1项,从中取出标识,与虚拟地址的19-31位作比较,如果相等,表示TLB命中,反之,表示TLB失靶。TLB失靶时,可以由硬件将需要的页表项加载入TLB,也可由软件加载,具体取决于处理器设计,OR1200没有提供硬件加载页表项的功能,只能由软件实现。TLB命中时,此时翻译得到的物理地址就是TLB1项中的标识(即物理地址13-31位)与虚拟地址0-12bit的结合。在地址翻译的过程中还会结合TLB项中的辅助信息判断是否发生违反安全策略的情况,比如:要修改某一页,但该页是禁止修改的,此时就违反了安全策略,会触发异常。

OR1200中的MMU分为指令MMU、数据MMU,分别简称为IMMUDMMU。采用的是页式内存管理机制,每一页大小是8KB,没有实现页表管理、页表查询、更新、锁定等功能,都需要软件实现。实际上OR1200MMU模块主要实现的就是TLBOR1200TLB的大小可以配置,默认是64项,采用的是直接映射方式。IMMU中有ITLBDMMU中有DTLB,但是ITLBDTLB的加载、更新、失效、替换等功能也都需要软件实现。本章从下一节开始将分别对IMMUDMMU进行分析。

 

TLB的作用及工作过程,布布扣,bubuko.com

TLB的作用及工作过程

标签:or1200 openrisc 软核处理   处理器   软核   开源   or1200 软核处理器   

原文地址:http://blog.csdn.net/leishangwen/article/details/27190959

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!