在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 2866|回复: 7

关于MIPS的存储问题

[复制链接]
发表于 2009-9-9 14:06:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
刚接触AU1500不久,对于mips架构有点疑问,AU1500上电复位是从0XBFC00000 启动,于是启动代码就存放在外部flash的高4MB的空间,内核和文件系统可以存放到从flash的0地址开始的空间。在bootloader中对flash进行读写操作的时候基址是0XA0000000,是这样的么?
发表于 2009-9-10 03:25:09 | 显示全部楼层

天才木匠明熹宗秘事xxxxxxxx贵度全能魔链

中国古代称皇帝为天子,既然是天子,必然会有至高无上的权威,享不尽的荣华富贵,但天子的身份也使他们不能无拘无束地享受平民的生活,明代就有这样一位天子,如果他不做皇帝,肯定会是一个很好的木匠,那就是明熹宗朱由校。xxxxxxxx水杯怎么样明熹宗朱由校在历代帝王中是很有特色的一个皇帝,他心灵手巧,对制造木器有极浓厚的兴趣,凡刀锯斧凿、丹青揉漆之类的木匠活,他部要亲自操作。他手造的漆器、床、梳匣等,均装饰五彩,精巧绝伦,出人意料。史书上记载;明代天启年间,匠人所造的床,极其笨重,十几个人才能移动,用料多,样式也极普通。喜宗便自己琢磨,设计图样,亲自锯木钉板,一年多工夫便造出一张床来,床板可以折叠,携带移动都很方便,床架上还雕搂有各种花纹,美观大方,为当时的工匠所叹服。明喜宗还善用木材做小玩具,他做的小木人,男女老少,俱有神态,五官四肢,无不备具,动作亦很惟妙惟肖。喜宗还派内监拿到市面上去出售,市人都以重价购买,熹宗更加高兴,往往下到半夜也不休息,常令身边太监做他的助手。熹宗的漆工活也很在行,从配料到上漆,他都自己动手,并喜欢己的手艺。他做的木像男女不一,约高二尺,有双臂但无腿足,均涂上五色油漆,彩画如生,每个小木人下面的平底处安一拘卯,用长三尺多的竹板支撑着。另外还有一个用大木头凿订成的长宽各一丈的方木池,上面添水七分满,水内放有活鱼、蟹虾、萍藻之类的海货,使之浮于水面。再用凳子支起小方木池,周围朋纱囤成屏幕,竹板在围屏下,游移拽动,这样就形成了水傀儡的戏台。在屏幕的后面,有一艺人随剧情将小木人用竹片托浮水上,游斗玩耍,鼓声喧大。当时宫中常演的剧目有《东方朔偷桃》、《三保太监下西洋》、《八仙过海》、《孙行者大闹龙宫》等,均装束新奇,扮演巧妙,活灵活现。熹宗做得是如醉如痴,看得也是如醉如痴。每到冬季,西苑冰池封冻,冰坚且滑。熹宗便命一群太监随他一起玩冰戏。他亲自为自己设计了一个小拖床,床面小巧玲拢,仅容一人,涂上红漆,上有一顶篷,周围用红绸缎为栏,前后都设有挂绳的小钩,喜宗坐在拖床上,让太监们拉引绳子,一部分人在上用绳牵引,一部分人在床前引导,一部分人在床后推行。两面用力,拖床行进速度极快,瞬息之间就可往返数里。悬牌,整个工程中熹宗都亲临现场。熹宗心灵手巧,亲手制作的娱乐工具颇为精巧。他用大缸盛满水,水画盖上圆桶,在缸下钻孔,通于桶底形成水喷,再放置许多小木球于喷水处,启闭灌输,水打木球,木球盘旋,久而不息,熹宗与妃嫔在一起观赏喝彩微美xxxxxxxxU308历史是人写出来的人的每一步行动都在书写自己的历史.春蚕到死丝方尽人至期颐亦不休xxxxxxxx价格xxxxxxxx水杯,xxxxxxxx价格,xxxxxxxx水杯价格,xxxxxxxx水杯U308价格,xxxxxxxx官方网站,xxxxxxxx水杯怎么样,xxxxxxxxU308,xxxxxxxx杯子,xxxxxxxx水杯价格表.[/url]派宁好神拖价格你若要喜爱你自己的价值你就得给世界创造价值社会犹如一条船每个人都要有掌舵的准备奥斯力神奇魔环|xxxxxxxx水杯,xxxxxxxx价格,xxxxxxxx水杯价格,xxxxxxxx水杯U308价格,xxxxxxxx官方网站,xxxxxxxx水杯怎么样,xxxxxxxxU308,xxxxxxxx杯子,xxxxxxxx水杯价格表
发表于 2010-1-27 19:23:55 | 显示全部楼层
MIPS在中国是目前国内最大的MIPS内容网站,涵盖了MIPS体系结构、MIPS核、MIPS芯片的最新资料,同时,也是Linux、WinCE、VxWorks在MIPS架构下的最大资源网站。
发表于 2010-1-27 19:54:27 | 显示全部楼层
* 当开电(Power On)的时候,只有kseg0 and kseg1 是可以存取的。
 *kseg0 512M(From 0x8000 0000 to 0xA000 0000) are DIRECTLY mapped to physical memory ranging from 0x0000 0000 to 0x2000 0000, with cache-able(either write back or write through, which is decided by SR(Status Register of MIPS CPU)
 *kseg1 512M(From 0xA000 0000 to 0xC000 0000) are (also) DIRECTLy mapped to physical memory ranging from 0x0000 0000 t0 0x2000 0000, with non-cachable.
以上两点对于理解MIPS OS的启动是至关重要的。细心的读者会发现:kseg1有点象其他CPU的real-mode方式。
 *(虚拟)地址from 0x0000 0000 to 0x8000 0000 是不可以存取的,在加电时(POWERON)!必须等到MMU TLB初始化之后才可以。
 *同理对地址from 0xC000 0000 to 0xFFFF 0000
 *MIPS的CPU运行有3个态--User Mode; Supervisor Mode and Kernel Mode.For simplicity, let's just talk about User Mode and Kernel Mode. Please always keep this in mind:
CPU can ONLY access kuseg memory area when running in User Mode
CPU MUST be in kernel mode or supervisor mode when visiting kseg0, kseg1 and kseg2 memory area.
 * MMU TLB
  MIPS CPU通过TLB 来translates all virtual addresses generated by the CPU.对于这一点,这里不多废话。
  下面谈谈ASID(Address Space Identifier). Basically, ASID, plus the VA(Virtual Address) are composed of the primary key of an TLB entry. 换句话说,虚拟地址本身是不能唯一,确定一个TLB entry的。一般而言,ASID的值就是相应的process ID.
Note that ASID can minimized TLB re-loads, since several TLB entries can have the same virtual page number, but different ASID's. 对于一个多任务操作系统来讲,每个任务都有自己的4G虚拟空间,但是有自己的ASID。
MMU 控制寄存器
  对于一个Kernel Engineer来说,对MMU的处理主要是通过MMU的一些控制寄存器来完成的。MIPS体系结构中集成了一个叫做System Control Coprocessor (CP0)的部件。CP0就是我们常说的MMU控制器。在CP0中,除了TLB entry(例如,对RM5200,有48pair,96个TLB entry),一些控制寄存器提供给OS KERNEL来控制MMU的行为。
 每个CP0控制寄存器都对应一个唯一的寄存器号。MIPS提供特殊的指令来对CP0进行操作。
  mfc0 reg. CP0_REG
  mtc0 reg. CP0_REG
  我们通过上述的两条指令来把一个GPR寄存器的值assign给一个CP0寄存器,从而达到控制MMU的目的。
发表于 2010-1-27 19:55:29 | 显示全部楼层
Index Register
  这个寄存器是用来指定TLB entry的,当你进行TLB读写的时候。我们已经知道,例如,MIPS R5提供了48个TLB pair,所以index寄存器的值是从0到47。换句话说,每次TLB写的行为是对一个pair发生的。这一点是与其他的CPU MMU TLB 读写不同的。

 EntryLo0, EntryLo1
  这两个寄存器是用来specify 一个TLB pair的偶(even)和奇(odd)物理(Physical)页面地址。
一定要注意的是:EntryLo0 is used for even pages; EntryLo1 is used for odd pages.Otherwise, the MMU will get exception fault.

 Entry Hi
  Entry Hi寄存器存放VPN2,或一个TLB的虚拟地址部分。注意的是:ASID value也是在这里被体现。

 Page Mask
  MIPS TLB提供可变大小的TLB地址映射。一个PAGE可以是4K,16K,64K,256K,1M,4M或16M。这种可变PAGE SIZE提供了很好的灵活性,特别是对Embedded System Software. 对于Embedded System Softare,一个很大的区别就是:不允许大量的Page Fault.这一点是传统OS或General OS在Embedded OS上的致命缺陷。也是为什么POSIX 1。B的目的所在。传统OS存储管理的一个原则就是:Page On Demand.这对大多Embedded System是不允许的。 For embedded system,往往是需要在系统初始化的时刻就对所有的存储进行configuration, 以确保在系统运行时不会有Page Fault.
发表于 2010-1-27 19:56:42 | 显示全部楼层
上述几个寄存器除了MAP一个虚拟页面之外,还包括设置一个页面的属性。其中包括:
 writable or not; invalide or not; cache write back or write through
下面简单谈谈MIPS的JTLB。
 在MIPS中,如R5000, JTLB is provided. JTLB stands for Joint TLB. 什么意思呢?就是
TLB buffer中包含的mixed Instruction and Data TLB 映射。有的CPU的Instruction TLB 和Data TLB buffer 是分开的。
 当然MIPS(R5000)确实还有两个小的,分开的Instruction TLB和Data TLB。但其大小很小。主要是为了Performance,而且是对系统软件透明的。
 在这里再谈谈MMU TLB和CPU Level 1 Cache的关系。
 我们知道,MIPS,或大多数CPU,的Level 1 Cache都是采用Virtually Indexed and Physicall tagged. 通过这个机制,OS就不需要在每次进程切换的时候去flush CACHE。为什么呢?
举一个例子吧:
 进程A的一个虚拟地址Addr1,其对应的物理地址是addre1;
 进程B的一个虚拟地址Addr1,其对应的物理地址是addre2;
 在某个时刻,进程A在运行中,并且Addr1在Level 1 CACHE中。
 这时候,OS does a context swith and bring process B up, having process A sleep. Now, let's assume that the first instruction/data fetch process B does is to access its own virtual address Addr1.
 这时候CPU会错误的把进程A在Level 1中的Addr1的addr1返回给CPU吗?
 我们的回答应该是:不会的。
 原因是:
  当进程切换时,OS会将进程B的ASID或PID填入ASID寄存器中。请记住:对TLB的访问,(ASID + VPN)才是Primary Key.
  由于MIPS的CACHE属性是Virtually Indexed, Physically tagged.所以,任何地址的访问,CPU都会issue the request to MMU for TLB translation to get the correct physical address, which then will be used for level cache matching.
  与此同时,CPU会把虚拟地址信号传给Level 1 Cache 控制器。然后,我们必须等待MMU的Physical Address数据。只有physical tag也 匹配上了,我们才能说一个:Cache Hit.
所以,我们不需要担心不同的进程有相同的虚拟地址的事情。
弟兄们可以重温一下我们讲过的Direct Mapped; Full Associative, and Set Associative.
从而理解为什么Cache中可以存在多个具有相同虚拟地址的entry. For example,the above Addr1 for proccess A and Addr1 for process B.
发表于 2010-2-7 10:40:35 | 显示全部楼层
呵呵,楼主太有才了。我来帮忙顶一下,楼主要是不喜欢的话,那就把你拉去拍人体艺术摄影!哈哈。。。
发表于 2010-5-3 13:08:40 | 显示全部楼层
good............
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

关闭

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 19:30 , Processed in 0.060709 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表