- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
龙芯(MIPS)体系结构培训
谢谢! 例外发生时处理器(硬件)的工作 将例外返回地址存入EPC 设置SR(EXL, Exception Level),即进入到核心态优先级,所有例外都设置这一位。同时关闭中断。 设置Cause寄存器,软件可以通过cause寄存器知道例外的原因进入不同的例外处理器程序。比如处理外部中断等。同时设置BadVAaddr寄存器,知道访问那个地址发生的例外。 CPU然后从相应的例外入口地址取指,剩下的事情交给软件控制。 例外发生时软件要做的工作 保存现场,使用K0, K1寄存器和堆栈保存状态寄存器。 分析例外发生的原因(cause寄存器),分派(dispatch)不同的例外处理器程序。 构建例外处理器的环境,准备例外处理程序的堆栈,保存处理器状态。 处理例外 用eret指令从例外返回。Eret指令1)清除SR(EXL) 2) 将EPC填入PC开始执行。对正常程序来说感觉不到例外处理执行过。 MIPS处理器的中断资源 MIPS 处理器有8个独立的中断,但只有5-6个是从外部引入。 片上的counter/timer占用一个。 SR(IE)是全局中断使能。SR(IM)为中断屏蔽位。 中断发生时查找cause(IP)并参考SR(IM)判断中断源。 启动例外 启动在MIPS处理器中也是例外,只不过有单独的例外入口地址(0xbfc0_0000) 启动时CPU的一些控制寄存器状态可以保证CPU执行uncache状态的指令。 SR寄存器中:1)处理器处于内核态 2)中断关闭 3)中断向量入口在uncache地址空间,即SR(BEV)启动时为1 Cache处于随机状态,通过cache空间返回的值可能是任意值,因此访问cache空间前要初始化cache TLB处于随机状态,在访问mapped地址空间之前要初始化TLB 启动顺序 启动例外入口地址0xbfc0_0000,这个例外也没有足够空间(128B),因此要马上执行跳转。 设置CPU状态寄存器让CPU处于确定状态。 初始化串口或者点LED灯,可以知道程序运行状态。 初始化内存控制器(DDR2),可以做必要的内存测试,但由于在ROM中执行速度会比较慢。 初始化cache/TLB/堆栈。 把代码从ROM拷贝到RAM(DDR2)中,并跳转到RAM执行。由于堆栈已经建立,可以开始执行C代码。 内容 MIPS架构 CP0配置 中断/例外和初始化 Cache管理 TLB/MMU EJTAG Cache是什么,干什么用,为什么要cache 处理器每条指令的取指、取数都需要访问内存(DDR2)。 DDR2的访问速度远远低于处理器访问内部寄存器的速度。 如果每条指令的取指和取数都访问内存,处理器整体的运行速度将会非常慢。 Cache是为了弥补处理器访问内部寄存器和访问外部内存之间的速度差距的一个功能部件。 Cache是绝大多数处理器的最重要的部件,对处理器的运行速度有至关重要的影响。大多数处理器体系结构的研究都集中在Cache。 MIPS Cache的特点是对程序员不透明 Cache对程序员不透明是RISC处理器的特点 X86处理器最早是没有cache的,为了兼容老的代码,X86必须将后来具有cache的处理器的cache设计成对程序员透明。即X86的程序员并不知道当前的处理器有没有cache。 MIPS处理器(或者RISC处理器)从一开始就设计有cache部件,因此没有必要把cache设计成透明的和智能的。 Cache工作原理 Tag Index Cache块内地址 Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Match? Match? select data Cache RAM 1 1 2 2 2 2 2 2 3 3 4 给出物理地址,将物理地址分为tag,indx和cache块内地址。 其中index在2个cache组中同时找出index对应的tag和data的内容。 Index中的tag内容用于和物理地址tag部分比较 物理地址tag与cache中的tag比较结果用于选择data 如果命中,即物理地址tag至少和index中选出的tag相同,则这次内存访问的数据从cache中获得,否则用该物理地址取访问内存 Cache设计中的选择 选择 龙芯的选择 写穿透 VS 写回 写回 Write update VS write allocate Write allocate 直接相连 VS 全相连 VS 组相连 组相连 替换算法:random VS LRU random Unified VS Split split Virtual index VS Physical index Virtual index Cache line size 256B Cac
文档评论(0)