Linux驱动前置-2虚拟地址高速缓存cache不不过cache并不-majiotto.PDF

Linux驱动前置-2虚拟地址高速缓存cache不不过cache并不-majiotto.PDF

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux驱动前置-2虚拟地址高速缓存cache不不过cache并不-majiotto.PDF

Linux驱动前置-2 虚拟地址 在ARM-Linux编程中,需要把物理地址转换成虚拟地址,然后通过虚拟地址,对设 备进⾏操作 在ARM上,如果没有启动MMU (相当于裸机程序),需要通过物理地址对设备进⾏ 操作 在Linux中,使⽤了MMU,这时就需要使⽤虚拟地址对设备进⾏操作 RISC (精简指令集) ARM MIPS POWERPC CISC (复杂指令集) 8051 X86 RISC与CISC的区别在于,RISC的每条指令的执⾏时间以及⻓度都是⼀样的 ⾼速缓存cache cache位于CPU与内存之间,作⽤是提⾼处理器访问内存的速度 cache出现的原因,就是CPU与内存之间的io速度差距太⼤ 不过cache并不是CPU与内存之间的唯⼀通道,CPU读取数据会先从 cache中读取,如果cache⾥没有,再从内存中读取 处理器访问速度最快的是寄存器,其次就是cache cache :SRAM 内存: DRAM SRAM⽐DRAM贵,最贵的还是寄存器 内存管理单元Memory Management Unit MMU实现了从虚拟地址到物理地址的转换 通过物理地址找到虚拟地址 —— ioremap 函数 MMU还有两个重要功能: ● 辅助实现虚拟内存 ● 辅助实现多任务管理 ⽬前我的感觉,MMU就像⼀个路由器,内部的路由表实现了虚拟地址和物理地址的 转换,通过修改这份路由表,也可以改变原来的⼀些对应关系 MMU —— 虚拟内存 虚拟内存的⼤⼩和实际内存的⼤⼩⽆关 ⽐如地址总线32位的CPU,它的寻址能⼒是4G,也许实际内存只有 1G、2G,但对于程序员⽽⾔,看到的就是4G这个虚拟内存 虚拟内存使存储系统既具有相当于外部存储的容量,⼜有接近于内存的访问速度 这⾥所说的外部存储,指的是硬盘、闪存这类外置的存储设备,⽽不是内存,不要 与上上句话搞混淆了 int *p, data; p = 0x1000af2e; //这⾥是虚拟内存 data = *ptr; //通过MMU将实际内存中的数据进⾏赋值,这个过程可能会引 起中断,如果映射的物理地址超出实际内存的范围的话,具体过程后⾯再讨论 Linux体系结构分为两部分:⽤户空间 + 内核空间 Linux的内核结构: System Call Interface (SCI层) 为⽤户空间提供了⼀套标准的系统调⽤函数来访问Linux内核 Process Management (PM) 进程管理是创建进程(fork 、exec),停⽌进程(kill、exit),并控制它们之间的 通信(signal等) 还包括进程调度,控制活动进程如何共享CPU Memory Management (MM) 内存管理的主要作⽤是控制多个进程安全的共享内存区域 Virtual File Systems (VFS) 虚拟⽂件系统,隐藏各种⽂件系统的具体细节,为⽂件操作提供统⼀的接⼝ Linux提供了⼀个⼤的通⽤模型,使这个模型包含了所有⽂件系统功能的集合(⼀切 皆⽂件) Device Drivers设备驱动 Linux内核中有⼤量的代码在设备驱动程序部分,⽤于控制特定的硬件设备 Linux驱动⼀般分为⽹络设备、块设备、字符设备、杂项设备 ⽹络协议栈 内核⽹络协议栈为Linux提供了各种的⽹络协议实现

文档评论(0)

zcbsj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档