您当前的位置: 中英文核心期刊咨询网电子论文》基于Artix-7FPGA的三级存储体系设计与实现实验

基于Artix-7FPGA的三级存储体系设计与实现实验

来源:中英文核心期刊咨询网 所属分类:电子论文 点击:次 时间:2021-03-13 09:25

  摘 要: 三级存储体系设计与实现实验是计算机系统结构存储体系理论课程的同步配套实验。通过该实验增强学生对理论知识的理解,提升学生的实践开发能力。该实验以学生前期实验完成的基于 MIPS 指令集的静态和动态流水线 CPU 成果为基础,在 FPGA NEXYS 4 开发板上使用 SD 卡、DDR 模块以及片内内存模块构造主存、缓存和辅存的三级存储体系,形成一个可以自启动、自运行的简易计算机系统,为后续其他课程实验贯通,实现完整的计算机系统奠定了基础。

基于Artix-7FPGA的三级存储体系设计与实现实验

  关键词: 三级存储; 计算机系统结构; MIPS 指令集

  0 引 言

  计算机系统实验课程是计算机类专业课程的配套动手实践实验课程,它通过设置与计算机重点专业知识相适配的实验,达到帮助学生们更全面、更深入地理解计算机系统的基本组成和运作原理,培养学生们设计与开发个人计算机系统的能力。在之前“计算机系统结构”理论课程设置的基于 MIPS 指令集的静态和动态流水线 CPU 设计与实现的同步实验中,学生们很好地完成了流水线 CPU 的设计与实现[1]。然而,在实际的计算机系统中不仅是 CPU 和内存模块的交互,需要主存、缓存和辅存形成的三级存储系统来与 CPU 进行数据交互,以此达到计算机的高效运行。因此,本文在实验课程中提出了一种基于 Artix-7 FPGA 系统的三级存储体系的设计与实现方案,该方案采用自顶向下的层次模块化设计方法,使用 verilog 硬件逻辑语言进行描述。

  计算机存储体系中,“三级存储”指的是高速缓冲存储器、主存储器、辅助存储器。高速缓冲存储器用来改善主存储器与中央处理器的速度匹配问题; 辅助存储器用于扩大存储空间。三级存储系统解决存储器速度、容量和价格三者的矛盾,并且提升了 CPU 访存速度,改善了系统的总体性能。在 FPGA 系统中,共有位于 FPGA 系统的片内内存,位于片外的 DDR 存储,以及属于外设的 SD 卡 3 种存储模块,分别在三级存储实验中可以模拟对应主存储器、高速缓冲存储器和辅助存储器[2]。 1 三级存储体系设计基于 FPGA 系统的三级存储体系实验的总体框架分为 SD 卡、DDR 和 FPGA 片内内存三级,如图 1 所示。系统一通电,会先执行 SD 中初始部分的引导代码,从而将存储在 SD 中的 CPU 二进制流迁移到 DDR 缓存中,在以此调入主存供 CPU 执行,同时会将位于 SD 中的系统或用户程序目标代码迁移到 DDR 中等待 CPU 调用执行。

  一台市场上商业发售的计算机都在它的核心硬盘 ( 基本上都命名为 C 盘) 的初始地址空间固化有一段用于加载和迁移存储,在核心硬盘上的用于维护系统启动和运行的系统程序和用户程序的固定程序,常被称为 BootLoader 程序[3],这一加载的启动机制借助三级存储体系保证了计算机系统启动的快速和准确。

  实验设计的基于 Artix-7 FPGA 的三级存储体系中也设计有适用于自主启动运行系统的 BootLoader 程序。其实现方法是将 BootLoader 程序用汇编语言和 C 语言联合开发,通过 gcc 交叉编译后将其加载到 irom 里,类比于一般计算机的核心硬盘。当 FPGA 板通上电后,会加载. bit 文件,然后执行 irom 里的 BootLoader 程序[4-10]。

  1. 1 BootLoader 启动

  如图 2 所示,被执行的 BootLoader 程序首先会将存储于 SD 卡中的用户程序指令加载到 iram 中( 即图1 中的 DDR 缓存组件中) ,然后搬迁进板内等待被执行; 在完成加载任务后修改 PC 寄存器中的指令地址信息,让其指向刚被加载到板内的用户程序所在的地址空间,然后 CPU 按照 PC 寄存器所指的指令地址空间执行该用户程序,完成一个简易计算机的启动和运行。

  1. 2 程序执行的指令流和数据流

  CPU 在执行用户程序时指令和数据的流向如图 3 所示。首先 CPU 通过读取 PC 寄存器中的待执行指令地址信息,然后结合指令地址映射模块,找到存在于 irom 或 iram 地址空间的指令内容,将其加载到板内,供 CPU 执行。同理,在 CPU 执行指令时会发生对于内存的读写需求,结合数据地址映射模块,找到存在于 dram 和 SD 卡地址空间的数据内容,将其读取到板内或者写入到这些地址空间。通过多级储存器之间相互协作,实现和保证了一台简易计算机处理效率和性能。

  1. 3 统一编址

  在整个执行过程中,代码段地址和存储器地址进行统一编址,所有的代码、数据和存储器都在逻辑地址空间中有一个 32 位的地址,C 语言编写的就是对这些地址的操作。

  BootLoader 存储于 irom 地址空间,地址为 0x0000 0000,如图 4 所示。在执行完 BootLoader 程序后,需要将 PC 寄存器内容改为 0x00400000,指向存储加载而来的用户程序的 iram 地址空间中,于是在编译时需要在 0x00000000 附近加上一段跳转指令到 BootLoader 的 main 函数,以及返回时跳转回 0x00400000,具体代码实现如下:

  2 实验验证

  本次三级存储体系的设计与实现采用的 CPU 是 “计算机系统结构”课程中自主设计与实现的静态和动态流水线 CPU[12-13]。整个三级存储体系的设计和实现采用 Xilinx 公司提供的 vivado [14]集成开发工具和 verilog [15]开发语言完成,并在 Xilinx Nexys 4 Artix-7 [16]开发板上进行了下板测试。

  首先将整个三级存储体系实现代码生成的. bit 文件写入到被格式化后的 SD 卡中,然后用 WinHex 在逻辑 80 扇区( 本次实验采用的 SD 卡对应的物理扇区是 8272) 写入用户指令( 右键,从剪贴板写入,写入方式为 16 进制) 。然后放置好 FPGA 板上的跳线。之后UART 口连接上电源,开始启动,实现三级存储体系成功运行。

  3 结 语

  本文提出了一种基于 Artix-7 FPGA 的三级存储体系设计与实现方法,该方法指导学生们完成三级存储体系的设计与实现实验。此外,通过该实验,增强了学生们对于计算机的三级存储体系的结构与工作机制的深入理解和认知,是贯通后续课程实验的关键环节,为学生自主设计、实现更加完善的个人计算机系统奠定了坚实的基础[17]。——论文作者:秦国锋, 秦家豪, 邹剑煌, 刘 鲲, 胡 岳

  相关期刊推荐:《实验室研究与探索》(月刊)创刊于1982年,是教育部主管、上海交通大学主办的国内外公开发行的综合性技术刊物,全国高校实验室工作研究会会刊之一。本刊始终追踪实验室工作中的新技术、新经验、新理论,进行研究与探索,在推动高校的素质教育和创新工程、实验室建设与管理、实验教学改革、实验水平提高等方面发挥了积极作用。

转载请注明来自:http://www.lunwencheng.com/lunwen/dzi/19356.html

各行业核心期刊快速入口

医学类核心期刊汇总
口腔核心期刊
卫生核心期刊
药学核心期刊
眼科核心期刊
儿科核心期刊
医学核心期刊
兽医核心期刊
外科核心期刊
护理核心期刊
临床核心期刊
教育类核心期刊汇总
小学教育核心期刊
中学教育核心期刊
高等教育核心期刊
职业教育核心期刊
成人教育核心期刊
人文教育核心期刊
科学教育核心期刊
教育核心期刊
教学核心期刊
教育管理核心期刊
学科类核心期刊汇总
语文核心期刊
数学核心期刊
外语核心期刊
化学核心期刊
物理核心期刊
历史核心期刊
政治核心期刊
体育核心期刊
艺术核心期刊
法律核心期刊
经济类核心期刊汇总
市场经济核心期刊
经济核心期刊
金融核心期刊
财经核心期刊
审计核心期刊
旅游核心期刊
统计核心期刊
会计核心期刊
农业类核心期刊汇总
畜牧核心期刊
农业核心期刊
林业核心期刊
工业类核心期刊汇总
机械核心期刊
冶金核心期刊
电力核心期刊
铁路核心期刊
电气核心期刊
工业核心期刊
石油核心期刊
环境类核心期刊汇总
电力核心期刊
水利核心期刊
能源核心期刊
地质核心期刊
化工核心期刊
环境核心期刊
气象核心期刊
地理核心期刊
建筑类核心期刊汇总
测绘核心期刊
测量核心期刊
建筑核心期刊
交通类核心期刊汇总
铁路核心期刊
公路核心期刊
交通核心期刊
运输核心期刊
汽车核心期刊
轨道核心期刊
科技类核心期刊汇总
电子核心期刊
科技核心期刊
计算机核心期刊
其他类核心期刊汇总
管理核心期刊
档案核心期刊
心理核心期刊
政法核心期刊
文学核心期刊