Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16938
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 12
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-25 10:26
文章分类
文章存档

2015年(4)

2014年(1)

我的朋友

发布时间:2015-02-01 22:24:41

一、概念及基本原理
TLB即Translation Lookaside Buffer,是MMU中的一种硬件cache,用于缓存页表,即缓存线性地址(虚拟地址)到物理地址的映射关系。
如果没有TLB,那么正常的内存数据访问前需要先通过线性地址查进程页表将其转换为物理地址,页表实际也是放在物理内存中的,页表分级存放,一次地址转换需要经过多次内存访问,效率不高,尤其是类似的操作非常频繁,由此带来的性能损耗不小。
有了TLB之后,内存数据访问前只需要先从TLB中查找相应的匹配项,找到后即可跳转页表查找的操作,由于TLB是硬件cache,相对于内存访问来说,效率要高许多,所以通过TLB能较大程度改善地址转换效率。
TLB中保存着线性地址(前20位)和物理页框号(pfn)的对映关系,在TLB中查找时,通过匹配线性地址的前20位,如果匹配即可获取pfn,通过pfn与虚拟地址后12位的偏移组合即可得到最终的物理地址。
如果在TLB中没有找到匹配的entry,即出现TLB miss,此时仍需通过查找页表来进行线性地址到物理地址的转换,此时硬件会自动将相应的映射关系缓存到TL......【阅读全文】

阅读(670) | 评论(0) | 转发(0)

发布时间:2015-02-01 22:24:09

互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应.........【阅读全文】

阅读(695) | 评论(0) | 转发(0)

发布时间:2015-02-01 22:23:19

       刚开始工作的时候,主要是C和C++,使用VIM比较多,后来转到Android,主要使用IDE开发,VIM用的比较少,但是也有用到VIM的时候,总是遇到这样那样的问题,自动补全,文件查找,搜索什么的,然后就是各种插件,插件多了,冲突的问题就来了,问题是插件也不能解决一些问题,搞的很纠结。下决心苦学.........【阅读全文】

阅读(787) | 评论(0) | 转发(0)

发布时间:2015-02-01 22:08:41

......【阅读全文】

阅读(690) | 评论(0) | 转发(0)

发布时间:2014-09-09 20:11:07

操作系统:ubuntu10.04前言:    在通信过程中,无法知道将会接收到的数据的长度,因此开一个固定大小的缓冲区并不合适,开大了,很可能大多数通信都只是几十个自己而已;开小了,又无法处理大数据。因此最好的方法就是创建内存池,根据实际情况,分配合适大小的内存空间。一,思路二,实现三.........【阅读全文】

阅读(1041) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册