MIPS内存管理单元的设计与实现
- 格式:pdf
- 大小:265.06 KB
- 文档页数:3
mips和x86区别MIPS和PowerPC是RISC构架,基于Load/Store的内存访问方式,长度固定的指令,流水线结构。
而MIPS是教科书似的RISC构架,使它和其它的RISC构架显得很不同,比如delay slot(对新手来说相当的难),cache管理,TLB管理都需要很繁琐的软件配合,相对来说PowerPC更偏向于向实际应用倾斜,比如有功能强大也让人头痛的移位指令、旋转指令。
而X86,曾经是CISC的典型,不过现在只是RISC的内核披了件CISC的外衣,从Pentium开始,CISC指令在内部被解码成几条RISC指令,即所谓的uOps,然后通过处理器调度机制将指令分配给RISC内核进行。
X86不同于RISC的地方:硬件管理的TLB,长短不一且执行时间也长短不一的指令。
PC服务器与小型机的区别在英文里这两位都叫server(服务器),小型机是国内的习惯称呼。
pc服务器则主要指基于intel处理器的架构,是一个通用开放的系统。
而不同品牌的小型机架构大不相同,使用risc、mips处理器,像美国sun、日本fujitsu等公司的小型机是基于sparc处理器架构,而美国hp公司的则是基于pa-risc架构,compaq公司是alpha架构,ibm和sgi等的也都各不相同;i/o总线也不相同,fujitsu是pci,sun是sbus,等等,这就意味着各公司小型机机器上的插卡,如网卡、显示卡、scsi卡等可能也是专用的;操作系统一般是基于unix 的,像sun、fujitsu是用sun solaris,hp是用hp-unix,ibm是aix,等等,所以小型机是封闭专用的计算机系统。
使用小型机的用户一般是看中unix操作系统的安全性、可靠性和专用服务器的高速运算能力,虽然小型机的价格是pc服务器的好几倍。
pc服务器一般用的操作系统是安全性、可靠性稍差的windows2000/windows nt4。
MIPS存储管理一.虚拟地址空间地址空间的最大长度与实际可用的物理内存数量无关,因此被称为虚拟地址空间(Virtual Address Space)。
这个虚拟地址空间的大小是由计算机的硬件平台决定的,具体来说是由CPU的位数决定的。
硬件决定了地址空间的最大理论上限,即硬件的寻址空间大小,比如主流的32位处理器(IA32,MIPS,ARM)等能寻址2^32B,即4GB的大小的地址空间(0~0xFFFF FFFF)。
Linux将虚拟地址空间划分为两个部分:内核空间和用户空间。
系统中每个用户进程都有自己的虚拟地址范围,从0到TASK_SIZE。
通常取TASK_SIZE=0xC000 0000,即4GB的底部3GB(0x0000 0000 ~ 0xBFFF FFFF)留给用户空间的进程使用的,顶部1GB(0xC000 0000 ~ 0xFFFF FFFF)留给内核使用。
对于Windows操作系统来说,它的进程虚拟地址空间划分是操作系统占用2GB,用户进程只剩下2GB。
二.MMU那么虚拟内存的底层内存管理机制是怎样的呢?当我们自底向上思考时,关注的主要硬件为TLB(Translation Lookaside Buffer,翻译后备缓冲)。
TLB为虚拟地址(VA)到物理地址(PA) 转换的硬件机构,它是虚拟存储的硬件基础。
当我们自顶向下思考时,该硬件通常称为MMU(Memory Management Unit,内存管理单元)。
虚拟存储的实现需要依靠硬件的支持,对于不同的CPU来说是不同的。
但是几乎所有的硬件都采用一个叫MMU的部件来进行页映射,如图1-7所示。
在页映射模式下,CPU发出的是Virtual Address,即我们的程序看到的是虚拟地址。
经过MMU转换以后就变成了Physical Address。
具体来说,TLB表中的每个表项有一个页的虚拟地址(VPN代表虚拟页号)和一个物理地址(PFN代表物理帧号)。
类MIPS单周期微处理器设计实验报告专业:班级:学号:姓名:一、微处理器各模块设计各模块的框图结构如上图所示。
由图可知,该处理器包含指令存储器、数据存储器、寄存器组、ALU单元、符号数扩张、控制器、ALU控制译码以及多路复用器等。
图中还忽略了一个单元:时钟信号产生器,而且以上各个部件必须在时钟信号的控制下协调工作。
1.指令存储器的设计指令寄存器为ROM类型的存储器,为单一输出指令的存储器。
因此其对外的接口为clk、存储器地址输入信号(指令指针)以及数据输出信号(指令)。
(1)在IP wizard 中配置ROM,分配128个字的存储空间,字长为32位宽。
(2)选择输入具有地址寄存功能,只有当时钟上升沿有效时,才进行数据的输出。
(3)配置ROM内存空间的初始化COE文件。
最后单击Generate按钮生成IROM模块。
2.数据存储器的设计数据存储器为RAM类型的存储器,并且需要独立的读写控制信号。
因此其对外的接口输入信号为clk、we、datain、addr;输出信号为dataout。
数据存储器基本建立过程同ROM的建立。
3.寄存器组设计寄存器组是指令操作的主要对象,MIPS中一共有32个32位寄存器。
在指令的操作过程中需要区分Rs、Rt、Rd的地址和数据,并且Rd的数据只有在寄存器写信号有效时才能写入,因此该模块的输入为clk、RegWriteAddr、RegWriteData、RegWriteEn、RsAddr、RtAddr、reset;输出信号为RsData、RtData。
由于$0一直输出0,因此当RsAddr、RtAddr为0时,RsData以及RtData 必须输出0,否则输出相应地址寄存器的值。
另外,当RegWriteEn有效时,数据应该写入RegWriteAddr寄存器。
并且每次复位时所有寄存器都清零。
代码如下:module regFile(input clk,input reset,input [31:0] regWriteData,input [4:0] regWriteAddr,input regWriteEn,output [31:0] RsData,output [31:0] RtData,input [4:0] RsAddr,input [4:0] RtAddr);reg[31:0] regs[0:31];assign RsData = (RsAddr == 5'b0)?32'b0:regs[RsAddr];assign RtData = (RtAddr == 5'b0)?32'b0:regs[RtAddr];integer i;always @(posedge clk)beginif(!reset)beginif(regWriteEn==1)beginregs[regWriteAddr]=regWriteData;endendelsebeginfor(i=0;i<31;i=i+1)regs[i]=0;regs[31]=32'hffffffff;endendendmodule4.ALU设计在这个简单的MIPS指令集中,微处理器支持add、sub、and、or、slt运算指令,需要利用ALU单元实现运算,同时数据存储指令sw、lw也需要ALU单元计算存储器地址,条件跳转指令beq需要ALU来比较两个寄存器是否相等。
MIPS课程设计一、课程目标知识目标:1. 理解MIPS汇编语言的基本概念,掌握其指令集和编程规则。
2. 学会使用MIPS汇编语言进行程序设计,包括顺序、分支和循环结构。
3. 了解计算机内部存储器组织和寻址方式,理解寄存器的作用和用法。
技能目标:1. 能够编写简单的MIPS汇编程序,实现基本算法和逻辑控制。
2. 能够使用模拟器和调试工具进行汇编程序的编译、运行和调试。
3. 能够分析MIPS汇编程序的性能,并进行简单的优化。
情感态度价值观目标:1. 培养学生对计算机硬件和底层编程的兴趣,激发探索精神。
2. 培养学生良好的编程习惯,注重代码规范和逻辑清晰。
3. 增强学生的团队合作意识,提高沟通与协作能力。
分析课程性质、学生特点和教学要求:本课程为计算机科学与技术专业的核心课程,以MIPS汇编语言为载体,帮助学生深入理解计算机硬件和软件的交互原理。
学生具备一定的编程基础,但大部分学生对硬件层面了解较少。
教学要求注重理论与实践相结合,强调动手实践和问题解决能力。
根据以上分析,课程目标分解为以下具体学习成果:1. 学生能够独立编写并运行简单的MIPS汇编程序。
2. 学生能够通过调试工具分析汇编程序的执行过程,找出并修复错误。
3. 学生能够以小组形式完成一个综合性的汇编程序项目,展示对知识点的掌握和团队协作能力。
二、教学内容1. 引言:计算机硬件与汇编语言概述,介绍MIPS汇编语言的发展和应用场景。
- 章节关联:课本第1章 计算机硬件基础2. MIPS汇编语言基础:- 指令集与寄存器- 数据表示与存储器寻址- 章节关联:课本第2章 MIPS汇编语言基础3. MIPS汇编程序设计:- 顺序程序设计- 分支程序设计- 循环程序设计- 章节关联:课本第3章 程序设计基础4. MIPS汇编程序调试与优化:- 使用模拟器和调试工具- 性能分析- 简单优化技巧- 章节关联:课本第4章 程序调试与优化5. 综合项目实践:- 小组项目任务分配与协作- 项目需求分析、设计与实现- 项目展示与评价- 章节关联:课本第5章 综合项目实践教学内容安排与进度:第1周:引言,计算机硬件与汇编语言概述第2-3周:MIPS汇编语言基础第4-5周:MIPS汇编程序设计第6周:MIPS汇编程序调试与优化第7-8周:综合项目实践三、教学方法本课程采用以下多样化的教学方法,旨在激发学生的学习兴趣,提高主动性和实践能力:1. 讲授法:- 用于讲解MIPS汇编语言的基本概念、指令集、编程规则等理论知识。