微处理器访存部件设计及结构功能验证_硕士学位论文(编辑修改稿)内容摘要:
理器延迟调试 处理器的运算速度是衡量处理器好坏的最重要的标准,而运算速度和处理器的频率息息相关,因此,处理器的延迟调试对处理器的性能有很关键的作用。 本文介 绍了通用的几种 ASIC 延迟调试方法,具体介绍了在工作中出现的发射模块延迟的调试过程。 3) . 基于 VMM验证方法学的对微处理器的验证 现在随着集成电路设计越来越复杂,微处理器的验证成为整个处理器的开发过程中最重要的过程,往往验证过程占整个开发设计的 70%80%。 因此加速验证的过程变得十分必要,而通过不断的测试,修改原处理器设计中不合理的地方。 本文通过基于 Systemverilog 自动对比平台的搭建,基于 C 语言的对比模型,完成自动对比,加速验证的速度。 具体分析了在测试过程中遇见的几个经典的 BUG 以及修改方法。 基于功能覆盖率的通道划分,基于嵌入式汇编的定向测试编写,保证整个微处理器的功能正确性。 在完成软件仿真后,把整个处理器下载到 FPGA 中进行硬件验证和应用程序验证。 本章阐述了课题的研究背景与意义,总结了微处理器的发展现状,分析了微处理器结构的作用,在此基础上提出了研究课题,并且给出了本课题的主要研究工作和论文的结构安排。 第二章主要介绍 MIPS 处理器的指令集,以及 MIPS 处理器的结构流水线相关策略以及性能概括。 第三章详细描述微处理器中的访存部件模块设计,包括 SRAM 的时序要求 以及应用, LSQ队列以及访存和内存的交互。 并且详细描述发射模块的结构体系设计,包括 IQ 准备和维护、指令发射和数据写回。 第四章详细介绍微处理器的延迟调试几种方法,具体介绍了发射模块调延迟的过程。 第五章介绍了基于 VMM 验证方法学的对微处理器的验证,搭建基于 systemverilog 语言的验证自动对比平台的搭建,对微处理器的 c 语言建模,快速的定位 BUG 位置,对功能覆盖率通道的划分,最后通过编写嵌入式汇编的定向测试激励达到功能覆盖率 100%的设计目标。 西安理工大学硕士学位论文 4 2. 64bit MIPS 架构处理器体系结构 微处理 器分为 RSIC(精简指令集处理器)和 CSIC(复杂指令级处理器)。 两种类型的处理器有着各自不同的优缺点。 本论文采用的是 MIPS 架构的 RSIC 处理器 【 23】。 RSIC CPU 简介 IBM 研究中心的 John Cocke 提出 RSIC(精简指令集计算机)概念。 相对于复杂指令集来说精简的指令集指令数少 【 24】。 RSIC 指令集包含了简单基本的指令集,通过这些指令,就可以组成复杂的指令。 相比于 CSIC( Complex Instruction Set Computing)微处理器来说 RSIC 微处理器有以下优点 【 25】 : 1) .RSIC 微处理器对结构的依赖不大,设计简单,结构简单,验证相对来说不复杂 【 25】。 2).RSIC 指令集指令数不多,软件开发相对简单 【 25】。 3).RSIC 编译器编译所使用的指令少,因此高级语言能更加有效的编写 【 25】。 RISC 微处理器不仅精简了指令系统,采用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。 RSIC 处理器性能特点如下: 一:由于指令集简化后,减少了指令的数量,也就是说减少了硬件的消耗; 二:采用大量 的寄存器,不需要通过频繁的和内存和 cache 交互,提高了处理速度; 三:取数存数与取指令分开执行,使处理器可以完成更多的操作。 指令集 MIPS 指令编码格式统一,都是 32位单字对齐。 不同种类的指令格式有所不同按照类型分为三种: I 类型(立即数型)、 J类型(跳转类型)和 R 类型(寄存器型)。 其指令格式入图 所示。 图 是立即数型, 015 位是立即数。 rs 是原操作数寄存器。 rt 是目的寄存器。 Opcode 表示这条指令执行的是什么样的操作。 图 是跳转类型 025 位表示的是跳转地址。 图 寄存器型,通过 funct 位和 opcode 位表明执行的操作是什么样的操作。 如果是两操作数指令,则 sa 没用, rd 是目标寄存器, rt, rs是原操作数寄存器。 如果是三操作数指令,则 rd, rt, rs是原操作数寄存器, sa 是目的寄存器。 64bit MIPS架构处理器体系结构 5 图 MIPS 指令集 3 种指令类型 Fig MIPS instruction structure MIPS 的指令种类有 分为 7种如表 所示: MIPS 指令种类 MIPS 指令(部分) 指令的意义 实现与否 访存类指令 lb, sb, lh, sh, lw, sw, ld, sd, lwc1, swc1, ldc1, sdc1 执行从内存中取数,或把数据存入内存中的操作。 实现 定点计算指令 add, sub, mult, and, or, sll, srl, slt, , ... 执行定点加减乘除移位前导等运算操作 实现 浮点运算指令 cvt, movf, mul, div,madd, sub... 执行 IEEE754 标准的加减乘除浮点运算操作 实现 跳转分支指令 j, jr, jal, beq, bne ... 执行跳转操作 实现 协处理器指令 bc1f、 bc1f bc1t、 bc1t1 执行协处理器CP0, CP1 指令操作 没实现 断点及陷阱指令 teq、 teqi、 tge、 tgei、tgeiu、 tgeu、 tlt、 tlti、执行系统操作的指令 没实现 西安理工大学硕士学位论文 6 tltiu、 tltu、 tne、 tnei。 表 MIPS 指令集的种类 Tab MIPS instruction type ( pipeline)设计思想 对通用设计来讲, pipeline 是提高系统工作频率的常见方法。 它适合 于大量数据处理的场合。 指令流水线技术是多条指令重叠执行的一个处理器实现技术,流水线的基本结构是将适当划分的 N 个操作步骤串联起来,最大特点是数据流在各个步骤的处理从时间上看是连续的。 它实际是将大量的数据处理分成几个阶段。 每个阶段都利用上一个阶段产生的中间结果,直到得到最终结果。 这样,从一个数据输入到结果输出需要多个时钟周期,但仅从输出结果来看,每个时钟周期均可以得到一个结果。 pipeline 所付出的代价就是增加了输入到输出的时钟数目。 图 流水线原理示意图 Fig pipeline elements 如图 所示步骤 1 是第一级流水线依次类推。 当 a1 的数据进入步骤一流水线时后面的流水线因为没有进入数据,可以看做没有工作。 当下个时钟周期 b1数据进入流水线后 a1 的数据经过步骤 1处理进入到步骤 2,在这一个时钟周期时,同时进行的是 b1 在步骤 1 运算, a1 在步骤 2 运算依次类推。 最后整个流水级都处于工作状态。 以每个时钟周期 ,可以看出采用流水线时 a1的数据经过 4个流水级 ,而后面每 运算出一个有效数据。 而不采用流水级的设计只能每 出 一个数据。 因此采用流水级的设计大大增加了微处理器设计大大增加了微处理器的运算效率。 步骤 1 步骤 2 步骤 3 步骤 4步骤 1 步骤 2 步骤 3 步骤 4步骤 1 步骤 2 步骤 3 步骤 4a 1b 1c 1a 2b 2a 3 a 464bit MIPS架构处理器体系结构 7 在多级流水阶段中,若某级流水处理的时间比其它流水阶段处理时间长的话,那其它流水阶段处理的速度也会受很大影响。 因此,在流水线里,应该尽量保证每个阶段所占用时间大致相同。 这就要求在电路设计中,寻求逻辑复杂性与处理速度之间的平衡,显得尤为重要。 在 IC 设计初期,系统级划分时,就应合理分配电路到不同阶段以使流水线保持均衡。 下面对微处理器中影响流水线效率的因素进行分析。 资源冲突 后 继指令等待 当处理器中多个指令同时使用同一个资源时,这样后条指令的执行就必须等前条指令执行完毕后,方可进行。 这种因素在流水线中是不不可避免的,虽然编译器在对指令进行编译时,会采取相应算法来尽量减少此类冲突,但实际在 CPU 上跑一段应用程序时,这种资源冲突的情况是普遍存在的。 因此在微处理器设计中,处理资源冲突的电路策略在前端设计中肯定得预先考虑。 依赖 流水线空泡 在流水线中有的时候中间流水级会产生无效的数据这种情况称为流水线的空泡。 产生空泡的原因有很多,比如在微处理器中发射模块中前面的指令发 射到了 fu0 里面,而后面的指令因为资源相关,在下一个时钟周期发射模块没有继续发射指令,这个是后 fu0 的第一级流水线就产生了一个空泡。 这个空泡是因第一个数据已经进入第二级流水线了,而第一级流水线没有进入新的数据,因此产生的这个空泡是可以被后面的数据给挤掉。 这里用valid 来表示流水级的数据是否有效,当 valid 为 0时表示所对应的这级流水是空的,可以被挤掉,当 valid 为 1是表示对应的流水线是有效数据,执行完后需要写回,不能被挤掉。 数据冲突 后继指令等待 数据冲突就是当后条指令的源操作数要用到 前条指令的目的操作数时,后条指令就不能发射出去,由于后条指令的该源操作数要用到更新之后的数据,因此必须等待前条指令将结果放到结果总线上时,后条指令才可进行发射。 此因素在流水线里,也是对流水线效率有所影响的。 编译器对指令编译时,算法会确保减少数据相关的发生。 西安理工大学硕士学位论文 8 64bit MIPS 架构处理器模块设计 处理器的结构是影响整个处理器的工作效率的关键部分,只有合理的结构才能使处理器的效率达到最高。 因此微处理器的结构是否合理是整个微处理器设计中最关键的部分。 作者在整个设计中负责微处理器的访存部件的所有设 计,和部分发射模块设计。 处理器结构 本论文中的微处理器流水线采用经典的取址,译码,发射,运算,写回五个部分,冯 .诺曼结构, 2KB+4KB一级片内高速缓存, 4译码,能处理 64 位数据、四发射、乱序执行(动态调度、顺序发射、静态转移预测)动态流水线结构,定点字长 64 位,浮点字长 64 位,PC 地址 32 位。 浮点部件采用 IEEE 754 标准。 本文中的微处理器设计如图 所示: P CP C + 1 6I C A C H EI T L BI RD e c o d e rI n s t r u c t i o nQ u e u eG e n e r a lR e g i s t e rF i l eF l o a t i n gP o i n tR e g i s t e rF i l eA L U 1A L U 2M E MF A L UD D R C o n t r o l l e rP r o c e s s o r I n t e r f a c eR e o d e r L o g i cb r a n c h b u sp r e b r a n c h b u sw r i t e b a c kw r i t e b a c k b u sI C A C H E m i s sr e f i l l b u s 图 处理器整体结构框图 Fig cpu structure 1) .PC 模块是整个流水线的最前端,负责计算和控制下一个时钟周期需要取出的指令,根据 PC 地址从 icache 中取出相应的指令,当取出指令后, PC地址相应的加 16。 或者由跳转类指令给出下一个时钟周期取址所需要的 PC地址。 2) .ICAHCE(指令高速缓存),是在内存和 CPU 之间的速度快存储量小的数据缓存,由SRAM 组成,宽度 128,深度 256,采用两组组相连直接映射。 包括指令数据段(每行 128bit)和 tag 段(每行 20bit), valid 位( 1bit)。 基于 64bit 基于 MIPS架构处理器模块设计 9 3) .从 icache 出来的 tag 位和 pc 中的 tag 位( pc 地址的高 20 位)进行对比,当对比命中时说明 icache 中存的数据是 pc 地址所对应的数据,把数据送入 IR 中存储。 当对比miss 的时候说明 icache 中没有 pc 地址对应的数据这个时候通过总线从内存中把数据取出来,分别放入 icahce 和 IR中。 4) .IR 存储的是 4 条 32 位指令,通过 Decoder 模块把这些指令译码成 119 位的机器码,把软件编译出来的指令转换成硬件电路的控制信号包括 op, fc, valid,op, src, dest,imm, pc等等。 5) .译码后的 4 条指令放入 IQ( instruction qu。微处理器访存部件设计及结构功能验证_硕士学位论文(编辑修改稿)
相关推荐
= true。 return。 } else 13 { = false。 //进行注册。 // BLL bll = new BLL()。 if ((().ToString())) { = 用户名已存在。 = true。 } else { = false。 User user = new User()。 = ().ToString()。 = ().ToString()。 = 2。 = ()
( 6) 为强调这个关系,图 2(c2)的纵坐标由这个卷积表达式标注 由此可见、连续函数经过周期为 xT 的无穷 序列取样离散后,其频谱与原函 数频谱相比有两点区别 : ( 1) 频谱发生了周期为 xT1 的周期延拓如果原函数的频谱宽度大于 xT1 时 ,则产生频谱混叠,引入失真. 9 (2)离散信号频谱 yfG xTx ,的幅度是原函数频谱 yfG x, 的 xT1 倍 .
路运输模型 TSP 模型求解。 通过 lingo 程序(附录 2)解决路线的选择。 得到 第一条路线优化后的路线为 013450。 用以上方法可以得到其它的路线 ( 1) 0 1 3 4 5 0 ( 2) 0 2 13 7 6 0 ( 3) 0 10 12 8 9 0 ( 4) 0 16 17 20 14 15 23 0 ( 5) 0 11 19 2 1 22 0 ( 6) 0 27 26 0
能 , 同时也减少发动机工作时的 漏气和油耗。 几种微凸起结构的加工方法 电火花成型加工 电火花成型加工技术 从起步到现阶段 已 经历了 70来 年, 由于 高速铣加工 在工作效益上大大超出它,故而一些 人 认为应该将这项技术划出 模具加工 的范畴。 反对声音也有, 电火常熟理工学院毕业设计(论文) 6 花机床制造商 认为, 对于 部分 窄槽加工 来说 ,高速铣 依旧不能解决。 同 属于
的研究意义。 第二章介绍了微电源的分类, 着重介绍了逆变型分布式电源接口逆变器的控制策略 ,并 分别针对恒压恒频控制和恒功率控制这两种逆变器控制策略下的分布式电源的故障输出特性进行了理论分析 第三章 用 MATLAB 软件分别搭建微电网仿真模型,并用仿真算例验证了控制策略的 正确性, 研究了在故障电流达到故障限流之前逆变型分布式电源端口的输出特性,并仿真给出了相应的特征量变化
等异常现象则停止升压报告指挥小组确定是否处理。 无异常则继续升压至工作压力(即),停泵并关闭升压泵出口阀门,对系统进行全面检查并做好记录。 5)经检查无渗漏和异常现象后继续升压至试验压力(即 ),停泵、关闭升压泵出口及升压管道阀门,在此压力下维持 20 分钟,每 3分钟记录一次压力,在此期间总压降不大于。 注意在系统超压试验前,将全炉人员进行撤离,经确认后,方可进行升 压。