[工学]嵌入式系统及应用第四讲.ppt

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

ARM的组织和实现(二) 李 登 峰 组相联映像方式 (1) 主存和Cache按同样大小划分成块。 (2) 主存和Cache按同样大小划分成组。 (3) 主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。 (4) 从主存的组到Cache的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。 问题二:Cache的替换算法 1.随机法(RAND法) 2.先进先出法(FIFO法) 3.最近最少使用法(LRU法) 4、存储器管理单元MMU 虚拟存储器 虚拟存储器的基本思想是程序、数据、堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。比如对一个16MB的程序和一个内存只有4MB的机器,OS通过选择,可以决定各个时刻将哪4M的内容保留在内存中,并在需要时在内存和磁盘间交换程序片段,这样就可以把这个16M的程序运行在一个只具有4M内存机器上了。 虚拟地址空间和虚拟地址 32位的CPU,它的地址范围是0~0xFFFFFFFF (4G),而对于一个64位的CPU,它的地址范围为0~0xFFFFFFFFFFFFFFFF (64T)。这个范围就是我们的程序能够产生的地址范围,我们把这个地址范围称为虚拟地址空间,该空间中的某一个地址我们称之为虚拟地址。 物理地址空间和物理地址 与虚拟地址空间和虚拟地址相对应的则是物理地址空间和物理地址,大多数时候我们的系统所具备的物理地址空间只是虚拟地址空间的一个子集,这里举一个最简单的例子直观地说明这两者,对于一台内存为256MB的32bit x86主机来说,它的虚拟地址空间范围是0~0xFFFFFFFF(4G),而物理地址空间范围是0x000000000~0x0FFFFFFF(256MB)。 MMU 全称Memory Manage Unit, 中文名——存储器管理单元。 在没有使用虚拟存储器的机器上,虚拟地址被直接送到内存总线上,使具有相同地址的物理存储器被读写。而在使用了虚拟存储器的情况下,虚拟地址不是被直接送到内存地址总线上,而是送到内存管理单元——MMU。一般存于协处理器中,其功能是把虚拟地址映射为物理地址。 虚拟存储器管理 虚拟地址被分为2个部分,第一部分是页号索引(page Index),第二部分则是相对该页首地址的偏移量(offset). S3c2410的内存映射方式 1.Fault (无映射) 2.Coarse Page (粗表) 3.Section (段) 4.Fine Page (细表) Section(段)方式 ARM920T是一个32bit的CPU,它的虚拟地址空间为2^32=4G。在Section模式,这4G的虚拟空间被分成4096个段(Section),每个段的长度是1M (1M*4096=4G)。因此我们必须用4096个描述符来对这组段进行描述,这4096个描述符构为一个表格,我们称其为Translation Table. Section base address: 段基地址(相当于页框号首地址) AP: 访问控制位Access Permission Domain: 访问控制寄存器的索引。 Domain与AP配合使用,对访问权限进行检查 C: 当C被置1时为write-through (WT)模式 B: 当B被置1时为write-back (WB)模式 (C,B两个位在同一时刻只能有一个被置1) s3c2410内存映射后的示意图(Section方式) 设s3c2410上配置的SDRSAM大小为64M,该SDRAM的物理地址范围是0x3000 0000~0x33FF FFFF(属于Bank 6),由于1个Section的大小是1M,所以该物理空间可以被分成64个物理段在Section模式下,送进MMU的虚拟地址被分为两部分(这点和我们上面举的例子是一样的),这两部分为 Descriptor Index(相当于上面例子的Page Index)和 Offset,descript index长度为12bit(2^12=4096),Offset长度为20bit(2^20=1M).观察一下一个描述符(Descriptor)中的Section Base Address部分,它长度为12 bit,里面的值是该虚拟段(页)映射成的物理段(页框)的物理地址前12bit,由于每一个物理段的长度都是1M,所以物理段首地址的后20bit总是为0x00000(每个Sec

文档评论(0)

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

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

1亿VIP精品文档

相关文档