CN113282219B - 一种流水线cpu架构图的绘制方法及终端设备 - Google Patents

一种流水线cpu架构图的绘制方法及终端设备 Download PDF

Info

Publication number
CN113282219B
CN113282219B CN202110830218.XA CN202110830218A CN113282219B CN 113282219 B CN113282219 B CN 113282219B CN 202110830218 A CN202110830218 A CN 202110830218A CN 113282219 B CN113282219 B CN 113282219B
Authority
CN
China
Prior art keywords
instruction
cpu
module
acquiring
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110830218.XA
Other languages
English (en)
Other versions
CN113282219A (zh
Inventor
陈鑫
汪威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Injoinic Technology Co Ltd
Original Assignee
Shenzhen Injoinic Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Injoinic Technology Co Ltd filed Critical Shenzhen Injoinic Technology Co Ltd
Priority to CN202110830218.XA priority Critical patent/CN113282219B/zh
Priority to CN202111234049.XA priority patent/CN115687237A/zh
Publication of CN113282219A publication Critical patent/CN113282219A/zh
Application granted granted Critical
Publication of CN113282219B publication Critical patent/CN113282219B/zh
Priority to PCT/CN2022/102146 priority patent/WO2023000938A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/02Electrically-operated educational appliances with visual presentation of the material to be studied, e.g. using film strip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请提供了一种流水线CPU架构图的绘制方法及终端设备,所述方法应用于终端设备中,所述方法包括:获取用户通过终端设备输入的模块选取指令,根据所述模块选取指令在工作区域确定出CPU初始框架;获取用户通过终端设备输入的指令集选取指令,根据所述指令集选取指令在所述工作区域确定出所述CPU指令集;获取用户通过终端设备输入的组合指令,根据组合指令将所述CPU指令集中的目标指令与所述CPU初始框架进行组合,根据组合结果在所述工作区域生成所述模块组件;获取用户通过终端设备输入的完成指令,根据模块组件和CPU初始框架生成CPU架构图。本申请通过将流水线CPU架构图的绘制方法软件化,提高了绘图的可视性和便捷性。

Description

一种流水线CPU架构图的绘制方法及终端设备
技术领域
本申请涉及CPU设计领域,特别涉及一种流水线CPU架构图的绘制方法及终端设备。
背景技术
目前基于流水线结构的CPU教学设计方法、系统和设备较少,大部分对CPU的教学设计方法、系统和设备采用基于状态机的单周期或多周期的CPU进行,这并不能很好的反映出流水线CPU结构的特性,不利于工程技术人员、学生等快速掌握流水线CPU架构图的绘制方法。
因此,现有技术仍有待改进。
发明内容
鉴于上述现有技术的不足之处,本申请的目的在于提供一种流水线CPU架构图的绘制方法及终端设备,旨在解决现有的CPU的教学设计方法不利于工程技术人员、学生等快速掌握的问题。
为了达到上述目的,本申请采取了以下技术方案:
第一方面,本申请提供了一种流水线CPU架构图的绘制方法,应用于终端设备中,所述方法包括:
获取用户通过所述终端设备输入的模块选取指令,根据所述模块选取指令在工作区域确定出CPU初始框架,其中,所述工作区域用于显示绘图控件,所述绘图控件包括CPU指令集、目标指令、模块组件;
获取用户通过所述终端设备输入的指令集选取指令,根据所述指令集选取指令在所述工作区域确定出所述CPU指令集,其中,所述CPU指令集包括一个或多个所述目标指令,所述目标指令用于实现预设操作;
获取用户通过所述终端设备输入的组合指令,根据所述组合指令将所述CPU指令集中的所述目标指令与所述CPU初始框架进行组合,根据组合结果在所述工作区域生成所述模块组件,其中,所述模块组件用于实现所述目标指令的预设操作;
获取用户通过所述终端设备输入的完成指令,根据所述模块组件和CPU初始框架生成CPU架构图。
可见,本申请通过将流水线CPU架构图的绘制方法软件化,解决了现有技术不利于工程技术人员、学生等快速掌握流水线CPU架构图的绘制方法的问题,提高了绘图的可视性和便捷性。
第二方面,本申请还提供了一种终端设备,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如上文所述的方法中的步骤。
第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上文所述的方法中的步骤。
附图说明
图1为本申请提供的终端设备的结构原理图;
图2为本申请提供的CPU架构图;
图3为本申请提供的工作区域的结构图;
图4a为本申请提供的mov指令的指令数据流图;
图4b为本申请提供的lui指令的指令数据流图;
图4c为本申请提供的inc指令或dec指令的指令数据流图;
图4d为本申请提供的ori指令的指令数据流图;
图4e为本申请提供的jmp指令的指令数据流图;
图4f为本申请提供的beq指令的指令数据流图;
图4g为本申请提供的in指令的指令数据流图;
图4h为本申请提供的out指令的指令数据流图;
图5为本申请提供的CPU结构框图;
图6为本申请提供的流水线CPU架构图的绘制方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请中的“至少一个”指的是一个或多个,多个指的是两个或两个以上。本申请中和/或,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c中的每一个本身可以是元素,也可以是包含一个或多个元素的集合。
需要指出的是,本申请实施例中涉及的等于可以与大于连用,适用于大于时所采用的技术方案,也可以与小于连用,适用于与小于时所采用的技术方案,需要说明的是,当等于与大于连用时,不与小于连用;当等于与小于连用时,不与大于连用。本申请实施例中“的 (of)”,“相应的 (corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
首先,对本申请实施例中涉及的部分名词进行解释,以便于本领域技术人员理解。
1、CPU。中央处理器(CPU,Central Processing Unit)是计算机硬件的核心器件,电子计算机三大核心部件就是CPU、内部存储器、输入/输出设备。CPU作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。CPU是计算机中负责读取指令,对指令译码并执行指令的核心部件。中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。中央处理器的功能主要为处理指令、执行操作、控制时间、处理数据。目前商用的CPU或微控制器(MCU,Microcontroller Unit)几乎无一例外采用流水线结构。
2、工作区域。工作区域一般包括工具栏、编辑区、素材区和其他区域。工具栏就是在一个软件程序中,综合各种工具,让用户方便使用的一个区域;编辑区则是利用各个命令编辑CPU架构图的区域,在该区域可以进行文档的移动、增加、删除、修改等工作;素材区则是显示各种绘图控件的区域。在本申请中,编辑区为结构显示区域;素材区包括指令集区域、模块组件区域;工具栏则默认设置绘图所需的常规工具,包括但不限于移动工具、字体工具、段落工具、编辑工具等;其他区域包括但不限于确认区域、信息显示区域等。
3、指令数据流图。指令数据流图是体现指令所引起的一系列数据在系统中的流向。在本申请中是指完成目标指令的预设功能所需要进行的数据调用的具体数据流向。目前,基于流水线结构的CPU教学设计方法、系统和设备较少,大部分对CPU的教学设计方法、系统和设备采用基于状态机的单周期或多周期的CPU进行,这并不能很好的反映出流水线CPU结构的特性,不利于工程技术人员、学生等快速掌握流水线CPU架构图的绘制方法,而且也无法指导新手快速熟悉CPU的整体架构。
针对上述问题,本申请提供一种流水线CPU架构图的绘制方法,解决了现有技术不利于工程技术人员、学生等快速掌握流水线CPU架构图的绘制方法,而且也无法指导新手快速熟悉CPU的整体架构的问题。
下面以具体的实施例对本申请所提供的信息查询方法进行说明。
如图3和图6所示,本申请提供了一种流水线CPU架构图的绘制方法,应用于终端设备中,所述方法包括:
步骤101、获取用户通过所述终端设备输入的模块选取指令,根据所述模块选取指令在工作区域10确定出CPU初始框架。
示例的,用户可以是任意使用终端设备绘制流水线CPU架构图的人,所述用户可以通过外部设备向所述终端设备输入所述模块选取指令,所述终端设备中的处理器根据所述模块选取指令在所述工作区域10确定出CPU初始框架。
具体的,根据所述模块选取指令的输入方式不同,具体的操作也不相同,下面举例进行说明。
方式1,所述模块选取指令可以是通过外部设备或触摸屏等触发的单击操作,通过点击相应的模块确定出所述CPU初始框架。
方式2,所述模块选取指令也可以是通过鼠标或触摸屏等触发的拖拽操作,以将CPU初始框架拖拽到所述工作区域10,以确定出所述CPU初始框架。
其中,所述工作区域10用于显示绘图控件,所述绘图控件包括CPU指令集、目标指令、模块组件。
在一种可能的实例中,在所述步骤101之后,所述方法还包括:
201、获取所述用户通过所述终端设备输入的端口设置指令,根据所述端口设置指令配置所述CPU初始架构的端口定义。
示例的,请参阅图5,所述CPU初始架构仅包括初始的模块,需要为模块配置相应的端口定义,例如,配置输入端口,输出端口,时钟端口等。端口的属性包括但不限于:1、端口名称;2、数据方向性:输入/输出/双向;3、数据位宽。基于所述CPU初始架构、端口定义以及模块组件得到CPU结构框图。所述CPU结构框图包括CPU主体(CPU),所述CPU主体上配置有输入端口(Instr)、复位端口(Rst_n)、数据输入端口(Port_in)、数据输出端口(Port_out)、指令存储器使能端口(Rom_e)、时钟输入端口(Clk)、地址输出端口(Add),所述CPU主体还包括控制模块110和数据通路模块111。所述数据通路模块与所述控制模块分别通过控制信号(Control_signal)和指令操作码(Instr_op)进行数据交互。
在一种可能的实例中,请继续参阅图3,所述工作区域10包括结构显示区域11、指令集区域12、模块组件区域13、信息显示区域14和确认区域15;所述结构显示区域11用于显示所述CPU初始架构,所述指令集区域12用于显示所述指令集中的全部指令,所述模块组件区域13用于显示所述模块组件,所述信息显示区域14用于提示当前步骤所要进行的操作,所述确认区域15用于输入所述完成指令。
在一种可能的实例中,所述步骤101,包括:
步骤1011、获取用户通过所述终端设备输入的第一模块选取指令,在所述结构显示区域11确定出控制模块110。
示例的,所述第一选取指令可以是通过外部设备或触摸屏等触发的单击操作,通过点击所述控制模块110将所述控制模块110添加到所述结构显示区域11中;所述第一选取指令也可以是通过鼠标或触摸屏等触发的拖拽操作,通过拖拽所述控制模块110将所述控制模块110拖拽到所述结构显示器区域中。
步骤1012、获取用户通过所述终端设备输入的第二模块选取指令,在所述结构显示区域11确定出数据通路模块111。
示例的,所述第一选取指令可以是通过外部设备或触摸屏等触发的单击操作,通过点击所述数据通路模块111将所述控制模块110添加到所述结构显示区域11中;所述第一选取指令也可以是通过鼠标或触摸屏等触发的拖拽操作,通过拖拽所述数据通路模块111将所述数据通路模块111拖拽到所述结构显示器区域中。
步骤1013、根据所述控制模块110和所述数据通路模块111组成所述CPU初始框架。
示例的,将所述控制模块110与所述数据通路模块111进行连接,组成了所述CPU初始架构。
可见,本示例中,实现了绘图可视化操作,通过点选或拖拽在所述结构显示区域11放置相应的模块,以形成CPU初始框架。
步骤102、获取用户通过所述终端设备输入的指令集选取指令,根据所述指令集选取指令在所述工作区域10确定出所述CPU指令集。
示例的,所述用户可以通过外部设备向所述终端设备输入所述指令集选取指令,所述终端设备接收到所述指令集选取指令后,根据所述指令集选取指令确定出如表1所示的所述CPU指令集,同时设定所述CPU指令集中目标指令的指令宽度和数据宽度,所述指令宽度用于限定所述目标指令的位宽,所述数据宽度用于限定数据的位宽。可以理解的是,所述CPU指令集可以进行自定义,不限于表1中的目标指令。
其中,所述CPU指令集包括一个或多个所述目标指令,所述目标指令用于实现预设操作。
具体的,根据所述指令集选取指令的输入方式不同,具体的操作也不相同,下面将举例进行说明。
方式1,所述指令集选取指令可以是通过外部设备或触摸屏等触发的单击操作,在点击相应的目标指令添加进所述CPU指令集中,并在所述工作区域10进行显示。
方式2,所述指令集选取指令也可以是通过鼠标或触摸屏等触发的拖拽操作,以将目标指令拖拽到所述工作区域10,以确定出所述CPU指令集。
表1 CPU指令集
助记符 操作码 操作数 指令格式 功能说明
mov 0001 rd(4bit),rs(4bit) mov $rd,$rs, 寄存器之间数据转移
lui 1111 rd(4bit),imm(8bit) lui $rd,imm, 立即数加载至寄存器
ori 0111 rd(4bit),imm(8bit) ori $rd,imm, 立即数和寄存器值按位或
beq 0110 rd(4bit),num(8bit) beq $rd,num, 寄存器值不等于0跳转
inc 0100 rd(4bit) inc $rd, 寄存器值自加一
dec 0101 rd(4bit) dec $rd, 寄存器值自减一
in 1010 rd(4bit) in $rd, 输入端口值写入寄存器
out 0011 rd(4bit) out $rd, 寄存器的值输出到端口
jmp 1000 rd(4bit) jmp $rd, 寄存器的值作为地址跳转
步骤103、获取用户通过所述终端设备输入的组合指令,根据所述组合指令将所述CPU指令集中的所述目标指令与所述CPU初始框架进行组合,根据组合结果在所述工作区域10生成所述模块组件。
示例的,所述用户可以通过外部设备向所述终端设备输入所述组合指令,所述终端设备接收到所述组合指令后,根据所述组合指令将所述CPU初始框架与所述目标指令进行组合。
其中,所述模块组件用于实现所述目标指令的预设操作。
具体的,根据所述组合指令的输入方式不同,具体的操作也不相同,下面将举例进行说明。
方式1,所述组合指令可以是通过外部设备或触摸屏等触发的单击操作,通过点击相应的目标指令以将所述目标指令加入到所述CPU初始框架的;或者是多个单击操作构成的一系列组合操作,最终实现组合指令的功能,例如,点击CPU初始框架,弹出目标指令选择界面,在所述目标指令选择界面中选择相应的目标指令添加进所述CPU初始框架中,完成组合指令的输入。
方式2,所述组合指令也可以是通过鼠标或触摸屏等触发的拖拽操作,直接逐个将所述目标指令拖拽到所述CPU初始框架中,以将目标指令添加进行所述CPU初始框架中,完成组合指令的输入。
进一步的,在完成组合指令的输入后,终端设备根据所述组合指令筛选出实现所述目标指令所需要的实际电路模块的模块组件,并在所述工作区域10中进行显示。可以理解的,实现同一个目标指令的模块组件可以有一个或多个,在此不做唯一性限定。可见,本示例实现了模块组件的自动筛选。
在一种可能的实例中,所述步骤103,包括:
步骤1031、根据所述组合指令从所述指令集区域12获取所述CPU指令集中的目标指令与所述控制模块110进行组合。
示例的,根据所述组合指令将所述CPU指令集中相应的目标指令与所述控制模块110进行组合。所述组合操作具体为:根据预设规则,得到所述控制模块110执行所述目标指令所需的模块组件,生成组合结果。
步骤1032、根据组合结果在所述模块组件区域13生成所述模块组件。
其中,所述模块组件具体用于构成所述数据通路模块111,并实现所述目标指令的功能。
示例的,根据所述组合结果在所述模块组件区域13生成所述模块组件,实现相同功能的所述模块组件可以包括一个或多个,可供用户自由选择。
步骤104、获取用户通过所述终端设备输入的完成指令,根据所述模块组件和CPU初始框架生成CPU架构图。
示例的,请参阅图2,在筛选出所述模块组件后,由用户输入完成指令,所述终端设备接收到所述完成指令后,根据所述模块组件和CPU初始框架生成如图2所示的CPU架构图。
如图2所示,其中CPU架构图所述包括控制模块110、数据通路模块111和存储模块(Rom),所述控制模块110为纯组合逻辑电路,所述数据通路模块111则包括组合逻辑电路和时序逻辑电路。所述组合逻辑电路包括数据选择器(MUX)、算数逻辑单元(ALU)、减法器(Sub)和比较器(Cmp_zero)。所述时序逻辑电路包括程序计数器(PC)、寄存器组(Regs)、输出寄存器(Output_reg)和Add_reg(地址寄存器)。
具体的,根据所述完成指令的输入方式不同,具体的操作也不相同,下面将举例进行说明。
方式1,所述完成指令可以是通过外部设备或触摸屏等触发的单击操作,通过点击确认控件或确认按钮,实现对完成指令的输入;或者所述完成指令是由多个单击操作构成的一系列组合操作。
方式2,所述完成指令可以是通过鼠标或触摸屏等触发的拖拽操作,选择相应的模块组件拖拽到所述工作区域10,进而构成CPU架构图。
方式3,所述完成指令还可以是一个或多个单击操作和一个或多个拖拽操作组成的组合操作,以实现完成指令的输入。例如,拖拽模块组件到所述工作区域10,然后通过点击确认控件或确认按钮自动生成CPU架构图。
进一步的,在自动生成CPU架构图的过程中,可以根据每个模块组件和CPU初始框架以及端口定义自动生成连线,以生成CPU架构图。例如,通过将端口标号相同的接口互联来实现。
在一种可能的实例中,所述步骤104之后,所述方法还包括:
步骤105、获取所述用户通过所述终端设备输入的组件选择指令,将所述模块组件添加入所述数据通路模块111中,以构成所述数据通路模块111,以得到所述CPU架构图。
示例的,所述组件选择指令可以是通过设备或触摸屏等触发的单击操作通过外部设备或触摸屏等触发的单击操作,可以是由多个单击操作构成的一系列组合操作,也可以是通过鼠标或触摸屏等触发的拖拽操作,还可以是一个或多个单击操作和一个或多个拖拽操作组成的组合操作。通过触发所述组件选择指令,将相应的所述模块组件逐个添加进所述数据通路模块111中,最终构成完整的数据通路模块111,最终由所述控制模块110和所述数据通路模块111构成CPU架构图。
在一种可能的实例中,所述步骤104之后,所述方法还包括:
步骤301、获取用户通过所述终端设备输入的仿真指令,将所述CPU架构图进行仿真。
示例的,当得到所述CPU架构图后,需要经过仿真以判断所述CPU架构图是否能够准确实现相应的功能,因此设置了仿真功能,获取用户通过所述终端设备输入的仿真指令,进入仿真模式,以使得用户能够执行相应的仿真操作。
在一种可能的实例中,所述步骤301之后,所述方法还包括:
步骤302、获取用户基于所述CPU指令集输入的第一指令,所述CPU架构图根据所述第一指令执行相应的操作,得到执行结果。
示例的,输入第一指令选择所述CPU指令集中的第一目标指令,使得所述CPU架构图执行所述第一目标指令,获取所述CPU架构图执行所述第一目标指令后的执行结果。
步骤303、若所述执行结果正确,则提示仿真成功。
示例的,将所述执行结果与所述目标指令的预设结果进行比较,若相同,则判断所述执行结果正确,然后弹窗提示仿真成功。
步骤304、若所述执行结果错误,则进行报错。
示例的,将所述执行结果与所述目标指令的预设结果进行比较,若不相同,则判断所述执行结果错误,然后弹窗进行报错,并将错误信息进行显示,以便用户检查错误来源。
在一种可能的实例中,在所述步骤104之后,所述方法还包括:
步骤401、获取用户通过所述终端设备输入的模式切换指令,根据所述模式切换指令切换至教学模式或者正常模式。
示例的,所述组件选择指令可以是通过设备或触摸屏等触发的单击操作通过外部设备或触摸屏等触发的单击操作,可以是由多个单击操作构成的一系列组合操作,也可以是通过鼠标或触摸屏等触发的拖拽操作,还可以是一个或多个单击操作和一个或多个拖拽操作组成的组合操作。
具体的,获取到所述模式切换指令后,若当前为正常模式,则根据所述模式切换指令将当前的工作区域10转换为教学模式;若当前为教学模式,则根据所述模式切换指令将当前的工作区域10转换为正常模式。
步骤402、当处于教学模式时,锁定当前步骤未涉及到的工作区域10,并在所述信息显示区域14显示当前步骤所要执行的操作和操作要求。
示例的,在所述教学模式中,从步骤101-104顺序执行,执行到的步骤(即当前步骤)所涉及到的工作区域10则为可编辑状态,执行到的步骤未涉及到的工作区域10则为锁定状态。在执行到相应的步骤时,所述信息显示区域14对当前步骤进行提示当前步骤所要执行的操作和操作要求,以指导新人进行相应的操作,以便新人快速熟悉CPU架构图的绘制流程,提高了CPU结构的掌握速度。
可以理解的是,本申请中的所有步骤可根据具体前后顺序执行,不局限于步骤101-104。
步骤403、当完成当前步骤之后,解锁下一个步骤涉及到的工作区域10,并在所述信息显示区域14显示所述下一个步骤所要执行的操作和操作要求。
示例的,解锁下一个步骤涉及到的工作区域10后,开始通过所述信息显示区域14指导用户执行所述下一个步骤的相关操作和操作要求,同时锁定所述下一个步骤未涉及到的区域。
可见,本示例中,通过设置教学模式,为学生、新员工等用户提供了CPU架构图的绘制指导,以便新手快速熟悉CPU架构图的绘制流程,提高了新手对CPU结构的掌握速度。
在一种可能的实例中,所述步骤104之后,所述方法还包括:
步骤501、根据所述指令集和所述CPU初始框架生成指令数据流图。
示例的,在生成CPU架构图后,还可以同步生成指令数据流图。所述CPU指令集可包括如表1中的目标指令,请参阅如图4a-图4h,下面一一对指令的指令数据流图进行举例说明。
如图4a所示,图为mov指令的指令数据流图。mov指令将 rs 地址对应的读寄存器的值传送到 rd 地址对应的写寄存器中。具体的,在第一个时钟周期给出读寄存器的地址(Raddr)和写寄存器的地址(Waddr)和要写入寄存器的数据(读寄存器的值),第二个时钟周期将数据写入第二寄存器。
如图4b所示,图为lui指令的指令数据流图。lui 指令将立即数(指令的第 0 位到第 7 位)传送到 rd 地址对应的寄存器中。具体的,在第一个时钟周期给出了写寄存器的地址和立即数(imm),第二个时钟周期将立即数写入所述写寄存器中。
如图4c所示,图为inc指令或dec指令的指令数据流图,inc指令和dec指令的数据流图相同,区别就是在Alu中进行的运算不同。inc指令或dec指令的读地址和写地址相同,在第一个时钟周期将寄存器数据(Rdata)读出送至Alu进行运算,并送至寄存器组(Regs)的数据输入端(Wdata),第二个时钟周期将运算结果写入所述写寄存器中。
如图4d所示,图为ori指令的指令数据流图。ori指令第一个时钟周期给出读寄存器的地址(Raddr)和写寄存器的地址(Waddr),将立即数(imm)和寄存器数据(Rdata)一并送到Alu进行按位或运算,第二个时钟周期将Alu运算结果写入寄存器中。
如图4e所示,图为jmp指令的指令数据流图。jmp指令数据流图第一个时钟周期把给定寄存器的值(Rdata)输入到程序存储器(Rom)的地址端以实现指令跳转,同时把给定寄存器的值(Rdata)输入到Pc模块(程序计数器),下一个时钟有效沿到来时更新输入地址。
如图4f所示,图为beq指令的指令数据流图。beq指令在第一个时钟周期通过Sub模块(减法器)比较对应寄存器的值和0的大小,若两者相等,则Sub模块输出值为当前地址值加一,使得指令顺序执行;若两者不相等,则Sub模块输出值为当前地址值减去num的值,使得指令跳转,同时把Sub模块的输出值赋给Pc模块(程序计数器)以便在下一个时钟周期到来时更新地址。
如图4g所示,图为in指令的指令数据流图。in指令在第一个时钟周期给出了写寄存器的地址(Waddr),第二个时钟周期把输入端口(port_in)的数据写入相应的寄存器中。
如图4h所示,图为out指令的指令数据流图。out指令在第一个时钟周期给出读寄存器的地址(Raddr)并且把数据读出至输出寄存器(output_reg)的输入端,第二个时钟周期将数据输出至端口(port_out)。
步骤502、根据所述模块组件和所述CPU初始框架生成CPU结构框图。
示例的,请参阅图5,在生成CPU架构图后,还可以同步生成CPU结构框图,所述CPU结构框图具体为CPU的模块结构图。由于所述CPU结构框图已在上文进行了详细描述,在此不再赘述。
在一种可能的实例中,所述步骤101之前,所述方法还包括:
步骤601、预先配置所述CPU初始架构的一个或多个第一模板,当获取到所述模块选取指令时,直接将所选择的第一模板添加至所述工作区域10中的结构显示区域11中。
示例的,为了提高CPU架构图的绘制效率,可以将常用的CPU初始架构形成一个或多个第一模板并存储,当需要用到时,通过所述模块选取指令直接将所述第一模板添加至所述结构显示区域11中即可。例如,可以将常用的CPU两层流水线结构、三层流水线结构等作为第一模板,也可以设置其他流水线结构,在此不做唯一性限定。
在一种可能的实例中,所述步骤101之前,所述方法还包括:
步骤701、预先配置CPU指令集的一个或多个第二模板,当获取到所述指令集选取指令时,直接将所选择的第二模板添加至所述工作区域10中的指令集区域12中。
示例的,为了提高CPU架构图的绘制效率,可以进一步将常用的CPU指令集形成一个或多个第二模板并存储,当需要用到时,通过所述指令集选取指令直接将所述第二模板添加至所述结构显示区域11中即可。
综上所述,本申请提供的一种流水线CPU架构图的绘制方法及终端设备,所述方法应用于终端设备中,所述方法包括:获取用户通过所述终端设备输入的模块选取指令,根据所述模块选取指令在工作区域确定出CPU初始框架;获取用户通过所述终端设备输入的指令集选取指令,根据所述指令集选取指令在所述工作区域确定出所述CPU指令集;获取用户通过所述终端设备输入的组合指令,根据所述组合指令将所述CPU指令集中的所述目标指令与所述CPU初始框架进行组合,根据组合结果在所述工作区域生成所述模块组件;获取用户通过所述终端设备输入的完成指令,根据所述模块组件和CPU初始框架生成CPU架构图。本申请通过将流水线CPU架构图的绘制方法软件化,提高了绘图的可视性和便捷性。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的方法中的步骤。
本申请还提供了一种终端设备25,如图1所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(CommunicationsInterface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备25的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
可选的,如图1所示,所述流水线CPU架构图的绘制方法具体体现为一种绘图软件,所述绘图软件应用于终端设备中,所述绘图软件的界面通过所述显示屏21进行显示;所述流水线CPU架构图的绘制方法的具体程序通过所述存储器22进行存储,并通过所述处理器20进行调用。由用户通过外部设备或者触摸屏向所述终端设备输入相应的指令,进而实现相应的绘图操作。所述外部设备包括但不限于鼠标、按键、键盘、语音模块等设备中的一个或多个。
此外,上述存储介质以及移动终端中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种流水线CPU架构图的绘制方法,其特征在于,应用于终端设备中,所述方法包括:
获取用户通过所述终端设备输入的模块选取指令,根据所述模块选取指令在工作区域确定出CPU初始框架,其中,所述工作区域用于显示绘图控件,所述绘图控件包括CPU指令集、目标指令、模块组件;
获取用户通过所述终端设备输入的指令集选取指令,根据所述指令集选取指令在所述工作区域确定出所述CPU指令集,其中,所述CPU指令集包括一个或多个所述目标指令,所述目标指令用于实现预设操作;
获取用户通过所述终端设备输入的组合指令,根据所述组合指令将所述CPU指令集中的所述目标指令与所述CPU初始框架进行组合,根据组合结果在所述工作区域生成所述模块组件,其中,所述模块组件用于实现所述目标指令的预设操作;
获取用户通过所述终端设备输入的完成指令,根据所述模块组件和所述CPU初始框架生成CPU架构图。
2.根据权利要求1所述的方法,其特征在于,所述根据所述模块组件和所述CPU初始框架生成CPU架构图之后,所述方法还包括:
获取用户通过所述终端设备输入的仿真指令,将所述CPU架构图进行仿真。
3.根据权利要求2所述的方法,其特征在于,所述将所述CPU架构图进行仿真之后,所述方法还包括:
获取用户基于所述CPU指令集输入的第一指令,所述CPU架构图根据所述第一指令执行相应的操作,得到执行结果;
若所述执行结果正确,则提示仿真成功;
若所述执行结果错误,则进行报错。
4.根据权利要求1所述的方法,其特征在于,所述工作区域包括结构显示区域、指令集区域、模块组件区域、信息显示区域和确认区域;所述结构显示区域用于显示所述CPU初始框架 ,所述指令集区域用于显示所述指令集中的全部指令,所述模块组件区域用于显示所述模块组件,所述信息显示区域用于提示当前步骤所要进行的操作,所述确认区域用于输入所述完成指令;
所述获取用户通过所述终端设备输入的模块选取指令,根据所述模块选取指令确定出CPU初始框架,包括:
获取用户通过所述终端设备输入的第一模块选取指令,在所述结构显示区域确定出控制模块;
获取用户通过所述终端设备输入的第二模块选取指令,在所述结构显示区域确定出数据通路模块;
根据所述控制模块和所述数据通路模块组成所述CPU初始框架。
5.根据权利要求4所述的方法,其特征在于,所述根据所述组合指令将所述CPU指令集中的所述目标指令与所述CPU初始框架进行组合,根据组合结果在所述工作区域生成所述模块组件,包括:
根据所述组合指令从所述指令集区域获取所述CPU指令集中的目标指令与所述控制模块进行组合;
根据组合结果在所述模块组件区域生成所述模块组件,其中,所述模块组件具体用于构成所述数据通路模块,并实现所述目标指令的功能。
6.根据权利要求4所述的方法,其特征在于,所述根据所述模块组件和CPU初始框架生成CPU架构图之后,所述方法还包括:
获取所述用户通过所述终端设备输入的组件选择指令,将所述模块组件添加入所述数据通路模块中,以构成所述数据通路模块,以得到所述CPU架构图。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取用户通过所述终端设备输入的模式切换指令,根据所述模式切换指令切换至教学模式或者正常模式;
当处于教学模式时,锁定当前步骤未涉及到的工作区域,并在所述信息显示区域显示当前步骤所要执行的操作和操作要求;
当完成当前步骤之后,解锁下一个步骤涉及到的工作区域,并在所述信息显示区域显示下一个步骤所要执行的操作和操作要求。
8.根据权利要求1所述的方法,其特征在于,所述根据所述模块组件和CPU初始框架生成CPU架构图之后,所述方法还包括:
根据所述指令集和所述CPU初始框架生成指令数据流图;
根据所述模块组件和所述CPU初始框架生成CPU结构框图。
9.一种终端设备,其特征在于,包括:处理器和存储器;所述存储器上存储有可被所述处理器执行的计算机可读程序;所述处理器执行所述计算机可读程序时实现如权利要求1~8任意一项所述的方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~8任意一项所述的方法中的步骤。
CN202110830218.XA 2021-07-22 2021-07-22 一种流水线cpu架构图的绘制方法及终端设备 Active CN113282219B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110830218.XA CN113282219B (zh) 2021-07-22 2021-07-22 一种流水线cpu架构图的绘制方法及终端设备
CN202111234049.XA CN115687237A (zh) 2021-07-22 2021-07-22 流水线cpu架构图的绘制方法及设备和介质和程序
PCT/CN2022/102146 WO2023000938A1 (zh) 2021-07-22 2022-06-29 一种流水线cpu架构图的绘制方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110830218.XA CN113282219B (zh) 2021-07-22 2021-07-22 一种流水线cpu架构图的绘制方法及终端设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111234049.XA Division CN115687237A (zh) 2021-07-22 2021-07-22 流水线cpu架构图的绘制方法及设备和介质和程序

Publications (2)

Publication Number Publication Date
CN113282219A CN113282219A (zh) 2021-08-20
CN113282219B true CN113282219B (zh) 2021-09-28

Family

ID=77287098

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110830218.XA Active CN113282219B (zh) 2021-07-22 2021-07-22 一种流水线cpu架构图的绘制方法及终端设备
CN202111234049.XA Pending CN115687237A (zh) 2021-07-22 2021-07-22 流水线cpu架构图的绘制方法及设备和介质和程序

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202111234049.XA Pending CN115687237A (zh) 2021-07-22 2021-07-22 流水线cpu架构图的绘制方法及设备和介质和程序

Country Status (2)

Country Link
CN (2) CN113282219B (zh)
WO (1) WO2023000938A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282219B (zh) * 2021-07-22 2021-09-28 深圳英集芯科技股份有限公司 一种流水线cpu架构图的绘制方法及终端设备
CN114429101B (zh) * 2022-04-06 2022-06-17 北京燧原智能科技有限公司 一种ai处理器架构的绘制方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506809A (zh) * 2002-12-12 2004-06-23 松下电器产业株式会社 模拟装置、模拟方法及程序
CN1645338A (zh) * 2005-02-25 2005-07-27 清华大学 单芯片多处理器结构模拟系统
CN109683962A (zh) * 2017-10-18 2019-04-26 深圳市中兴微电子技术有限公司 一种指令集模拟器流水线建模的方法及装置
CN111180440A (zh) * 2020-01-20 2020-05-19 杭州电子科技大学 一种单相直流马达驱动芯片及芯片绘制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US7533294B2 (en) * 2004-09-09 2009-05-12 The Regents Of The University Of California Functional coverage driven test generation for validation of pipelined processors
CN103268282B (zh) * 2013-05-10 2016-03-23 清华大学 基于远程计算机硬件实验系统的cpu设计方法及系统
CN112051981B (zh) * 2020-09-15 2023-09-01 厦门壹普智慧科技有限公司 一种数据流水线计算路径结构及单线程数据流水线系统
CN113282219B (zh) * 2021-07-22 2021-09-28 深圳英集芯科技股份有限公司 一种流水线cpu架构图的绘制方法及终端设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1506809A (zh) * 2002-12-12 2004-06-23 松下电器产业株式会社 模拟装置、模拟方法及程序
CN1645338A (zh) * 2005-02-25 2005-07-27 清华大学 单芯片多处理器结构模拟系统
CN109683962A (zh) * 2017-10-18 2019-04-26 深圳市中兴微电子技术有限公司 一种指令集模拟器流水线建模的方法及装置
CN111180440A (zh) * 2020-01-20 2020-05-19 杭州电子科技大学 一种单相直流马达驱动芯片及芯片绘制方法

Also Published As

Publication number Publication date
WO2023000938A1 (zh) 2023-01-26
CN115687237A (zh) 2023-02-03
CN113282219A (zh) 2021-08-20

Similar Documents

Publication Publication Date Title
CN113282219B (zh) 一种流水线cpu架构图的绘制方法及终端设备
US7721255B2 (en) Sequence program editing apparatus
CN106919307B (zh) 一种文本复制方法及移动终端
JP5076381B2 (ja) ソフトウェア開発装置及びソフトウェア開発方法
CN103984626A (zh) 一种生成测试用例脚本的方法及装置
KR20060120539A (ko) 그래피컬 프로그래밍 장치 및 프로그래머블 표시기
CN107463543A (zh) 一种表单信息录入方法及设备
JP4525771B2 (ja) 電子式計算機
CN110765028B (zh) 验证环境的可视化搭建方法、装置及存储介质
US20030177471A1 (en) System and method for graphically developing a program
JP4774237B2 (ja) プログラム開発支援装置、プログラム動作比較方法および半導体集積回路製造方法
JP2007280092A (ja) 画面データ作成方法
CN108062298A (zh) 图表数据生成方法、装置及可读存储介质
US7761845B1 (en) Method for parameterizing a user module
CN107679264B (zh) 一种pcb设计中辅助检查位号错位的方法
JPH08263130A (ja) シミュレーション方式
US20020062208A1 (en) Method and apparatus for visualization of microprocessor pipeline operation
US20230176834A1 (en) Graphical programming environment
CN117850305A (zh) 自动化流程中变量的编辑方法和自动化流程的控制方法
WO2024066576A1 (zh) 软件配置方法和装置
JP2010182031A (ja) ソフトウエア生成支援装置
CN115525262A (zh) 命令的执行方法及装置、非易失性存储介质、处理器
JPS6379176A (ja) デイスプレイ上の設計画面より入力した設計仕様から部品を組合せてプログラムを自動生成する方法
JPH052477A (ja) グラフイカル・ユーザ・インタフエースの作成方式
JPH07225783A (ja) 機能設計支援装置及びその方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant