RISC
模型
汇编语言
程序
开发
环境设计
教学
应用
基金项目:教育部产学合作协同育人项目(项目编号:)作者简介:张伟涛,男,副教授,主要从事机器学习、数字电路、微机原理的教学与研究工作.R I S C V模型机汇编语言程序开发环境设计及教学应用张伟涛,黄力,袁晓光,任爱锋,全英汇(西安电子科技大学 电子工程学院,陕西 西安 )摘要:在微机原理教学中,利用模型C P U比基于具体型号C P U开展教学具有指令集可灵活设置,通用性强等优势.R I S C V架构是一个年轻且精简高效的开放指令集架构,非常适合于微机原理教学,然而目前微机原理教学中缺乏与R I S C V架构的模型机配合使用的汇编语言程序设计集成开发环境,无法实现模型机的机器码生成与分析.本文提出了一种R I S C V模型机汇编器设计方案,实现了R I S C V汇编语言程序设计集成开发环境,它具有源程序输入、编辑、汇编、调试、仿真等功能,能够生成R I S C V模型机上可执行的机器码文件,帮助学生更好地理解C P U的功能与结构,掌握微机接口设计等课程内容,也有利于激发学生基于开源架构设计和实现模型C P U的创新意识.关键词:R I S C V架构;实验教学;汇编语言中图分类号:G I n t e g r a t e dD e v e l o p m e n tE n v i r o n m e n tD e s i g nf o rR I S C VA s s e m b l yL a n g u a g ea n dT e a c h i n gA p p l i c a t i o nZ h a n gW e i t a o,H u a n gL i,Y u a nX i a o g u a n g,R e nA i f e n g,Q u a nY i n g h u;(S c h o o l o fE l e c t r o n i cE n g i n e e r i n g,X i d i a nU n i v e r s i t y,X ia n ,S h a a n x i,C h i n a)A b s t r a c t:I nt h et e a c h i n gp r o c e s so fm i c r o c o m p u t e rp r i n c i p l e sc o u r s e,c o m p a r e d w i t hs p e c i f i cC P U,am o d e l e dC P Uh a s t h e a d v a n t a g e so f f l e x i b l e i n s t r u c t i o ns e t a n dh i g hg e n e r a l i t y R I S C Vi sa no p e ns t a n d a r dI n s t r u c t i o nS e tA r c h i t e c t u r e(I S A)e n a b l i n gan e we r ao fp r o c e s s o r i n n o v a t i o nt h r o u g ho p e nc o l l a b o r a t i o n,w h i c hi sv e r ys u i t a b l ef o rt h et e a c h i n go fm i c r o c o m p u t e rp r i n c i p l e sc o u r s e H o w e v e r,t h e r e i sa l a c ko f a n i n t e g r a t e dd e v e l o p m e n t e n v i r o n m e n t f o ra s s e m b l y l a n g u a g ep r o g r a mm i n gw i t ham o d e lm a c h i n eo ft h eR I S C Va r c h i t e c t u r e T h i sp a p e rp r o p o s e sad e s i g ns c h e m ef o rR I S C V m o d e lm a c h i n ea s s e m b l e r,a n di m p l e m e n t st h eR I S C Va s s e m b l yl a n g u a g ep r o g r a mm i n gi n t e g r a t e dd e v e l o p m e n t e n v i r o n m e n t f o r t e a c h i n gp u r p o s e I t e n a b l e s t h e s o u r c ep r o g r a mi n p u t,e d i t i n g,a s s e m b l y,d e b u g g i n g,a n ds i m u l a t i o n,a n dc a ng e n e r a t eR I S C V m a c h i n ec o d ef i l ew h i c hc a nb e e x e c u t e do n t h em o d e lm a c h i n e T h ep r o p o s e da s s e m b l e r c a nh e l ps t u d e n t sb e t t e ru n d e r s t a n ds t r u c t u r ea n df u n c t i o no fC P U,a n db e t t e rl e a r nt h em i c r o c o m p u t e ri n t e r f a c ed e s i g nm e t h o d M o r e o v e r,i tm o t i v a t e s t h es t u d e n t s i n n o v a t i v ea w a r e n e s so fd e s i g n i n ga n d i m p l e m e n t i n gm o d e lC P U sb a s e do no p e nI S AK e y w o r d s:R I S C Va r c h i t e c t u r e;e x p e r i m e n t a l t e a c h i n g;a s s e m b l y l a n g u a g e 引言R I S C V是一个基于精简指令集(R I S C)原则的开放指令集架构,因其精简、开放、模块化的设计和高可定制的特点在工业界和教育界广受欢迎.随着面向R I S C V的处理器接连问世,围绕R I S C V建设完善的软件生态系统将会大大提高系统和应用软件的设计开发效率,并降低其维护成本 .鉴于以上原因,部分高校开始陆续采用R I S C V架构替换典型的x 架构或A RM架构来开展微机原理教学.近年来,R I S C V的硬件和软件生态均得到了长足的发展,基于R I S C V架构的微控制器(MC U)是目前R I S C V架构发展最活跃的一个领域,国内外众多C P U芯片厂商,例如S i F i v e、I n t e l、华为、阿里平头哥、芯来科技等均已陆续推出了自研的R I S C V架构MC U产品,而且计算平台还在不断向高性能计算领域延伸.为了配合硬件完成应用开发,尽快建立R I S C V完整生态,芯片厂商也推出了相应的R I S C V应用集成开发环境(I D E),例如S e g g e rE m b e d d e dS t u d i o I D E、I A RE m b e d d e dW o r k b e n c h、HUAWE IL i t e O SS t u d i o、L a u t e r b a c hT r a c e 、N u c l e i S t u d i o I D E等.以上集成开发环境大多是芯片厂商在E c l i p s e框架上开发的定制化I D E,例如HUAWE IL i t e O SS t u d i o是基于L i t e O S轻量级操作系统开发的工具,它提供了代码编辑、编译、烧录、调试及跟踪等功能,可以对系统关键数据 进行实时 跟踪与保存,支持基于R I S C V架构自研的H i V 物联网芯片.除以上支持定制化芯片的I D E外,R I S C V爱好者在开源社区里提供的J u p i t e r软件也是一款很受欢迎的R I S C V汇编语言程序设计、调试与仿真的工具软件.虽然以上芯片厂商和开源社区推出的R I S C V硬件平台和开发工具功能完备,可靠性强,但并不适合学生课堂教学和实验教学,主要原因在于:定制化的S o C芯片内部逻辑复杂,适合工程应用,但不利于学生理解微处理器的内部结构与功能,而且缺少微处理器设计的灵活性,不利于激发学生完成微处理器设计的创新思维;基于E c l i p s e框架开发的定制化I D E只能支持特定厂商的MC U,通用性差,且一般不支持使用汇编语言开发程序,生成的机器码文件可读性不强,不利于学生理解微处理器的工作原理和接口设计技术.此外,开源J u p t i e r软件虽简单易用,但主要用于汇编语言程序的编辑、调试与仿真,不能生成机器码文件,无法与硬件配合工作.因此以上平台无法准确考核学生对知识点的理解情况与创新能力.鉴于以上原因,课程组在F P GA上开发了适合教学使用的R I S C V架构微处理器I P核,提高了微处理器设计和实现的灵活性.为了配合该模型C P U完成汇编语言编程和效果验证,论文开发了适合R I S C V架构的模型C P U汇编语言源程序设计、调试与仿真的软件,并能够生成可以在模型C P U上执行的机器码文件,帮助学生更好地理解和掌握C P U功能与结构、接口设计等内容.图R I S C V汇编器架构 汇编器设计 汇编器架构为了使学生能够更好地了解R I S C V汇编语言的基本结构和指令集架构,熟悉掌握R I S C V汇编指令的使用方法,同时更好地理解R I S C V汇编程序运行的逻辑,应该为学生提供了一个友好的图形界面,方便学生对汇编语言源程序的编辑、调试操作,以及运行结果的显示,汇编器软件总体结构如图所示.其中,程序的调试功能是汇编器的核心功能,包括单步执行和全速运行,用户在调试过程中可以清楚地看到程序的运行过程,还可以通过增加断点来控制程序的运行.软件可以模拟代码在硬件中的执行过程,通过内存查看窗口和寄存器查看窗口实时查看代码运行过程中内存区域和C P U的寄存器内容变化情况.汇编器开发方案汇编器开发主要包含两个部分的设计,即软件界面设计和功能设计,开发方案的功能结构如图所示,开发过程中,以C语言编写代码实现相应功能,在Q t环境下设计软件界面.高校实验室科学技术图汇编器功能结构图软件界面的设计应该给学生提供一个友好的图形用户接口,包括以下功能:()源程序编辑窗口:提供代码编辑、行号显示、断点显示的功能.()编译调试信息显示.()菜单栏.()工具栏,为常用功能提供快捷访问.()指令解译显示窗口:显示汇编源程序解译信息,包括对应的基本指令语句,机器码以及内存地址.()文件操作:显示汇编语言源程序目录结构,提供快速打开文件的功能.设计的软件界面如图所示.系统功能设计应该主要由个部分构成:R I S C V汇编源程序文件的操作,汇编模块和调试功能模块.R I S C V汇编源程序文件是以 s文件为默认格式的,可以实现以下操作:()新建文件.()打开文件.()保存文件.()另存为新文件.汇编模块和调试模块是软件的核心功能.汇编模块可以实