报告内容 自学Marie模拟器(https://marie.js.org/)。 编写简单程序,观察程序进程,截屏说明各个寄存器的变化 学习总结 ---------------- 已经排好版,编辑好页码和字体。 目录 1.模拟器介绍 1.1 体系结构 1.2 主要指令集 2.编写程序,观察程序进程 3.心得体会 编写了一个简单的累加器程序,通过单步调试功能 观察了程序的执行过程、各个寄存器和内存的变化,了解了一条指令的基本执行流程以及 在这个流程中各个寄存器是发挥着怎样的作用。 ### MARIE西南交大智能嵌入式系统设计半期报告 #### 1. 模拟器介绍 ##### 1.1 体系结构 MARIE(Machine Architecture that is Really Intuitive and Easy)是一种专为教学目的设计的简化版计算机体系结构。它的主要目标是帮助学生理解和掌握计算机的工作原理。MARIE采用的是冯·诺依曼架构,这意味着它的程序和数据存储在同一内存空间内。 **图 1 MARIE 体系结构** MARIE.js 是基于MARIE架构的一种JavaScript实现版本,它通过浏览器界面提供了一种直观的学习工具,让学生能够更轻松地理解基本概念。MARIE的主要组成部分包括: - **寄存器** - **AC (Accumulator)**:累加器,通用寄存器,用于保存临时数据或运算结果。 - **PC (Program Counter)**:程序计数器,指示当前待执行指令的内存位置。 - **MAR (Memory Address Register)**:内存地址寄存器,保存当前要访问的内存地址。 - **MBR (Memory Buffer Register)**:内存缓冲寄存器,暂时存储从内存读取的数据或待写入内存的数据。 - **IR (Instruction Register)**:指令寄存器,保存当前正在执行的指令。 - **Out、In 寄存器**:用于输入输出操作。 - **存储器**:4K字的存储器,按照字进行编址,每个字包含16位。 - **输入输出设备**:模拟的输入输出设备,用于与外部环境交互。 ##### 1.2 主要指令集 MARIE的指令集非常简洁,每条指令长度固定为16位,其中前4位表示操作码,后12位表示操作数的地址。下面是MARIE的主要指令集: - **算术运算指令** - **Add X**:地址X的内容与AC相加,结果保存到AC中。 - **Subt X**:AC减去地址X的内容,结果保存到AC中。 - **Addl XB**:将X作为操作数的指针,与AC相加,并保存到AC中。 - **ClearA**:将AC清零。 - **数据传送指令** - **Load X**:从内存地址X中取数存到AC。 - **Store X**:将AC的值存入地址为X的内存中。 - **Loadl XD**:将X处存储的内容作为指针,获取操作数存入AC。 - **Storel XE**:将X处存储的内容作为指针,将AC的值存入指向的内存。 - **输入输出指令** - **Input**:要求用户输入一个值,存入AC。 - **Output**:将AC的值输出。 - **控制、分支指令** - **Jump X**:跳转到地址X。 - **Skipcond(C)**:根据AC和C的值决定是否跳过下一条指令。跳转条件包括: - C=000 && AC<0 - C=400 && AC=0 - C=800 && AC>0 - **Halt**:终止程序。 #### 2. 编写程序,观察程序进程 以下是一个具体的例子,该程序用于计算从1累加到20的和,并将结果保存到SUM中。 ``` LOOP, LOAD X ADD SUM STORE SUM LOAD X ADD ONE STORE X SUBT CNT SKIPCOND 400 JUMP LOOP LOAD SUM OUTPUT HALT SUM, DEC 0 X, DEC 1 ONE, DEC 1 CNT, DEC 21 ``` - **程序解析** - **LOOP**:循环起始标记。 - **LOAD X**:从X处加载当前值到AC。 - **ADD SUM**:将AC的值与SUM处的值相加。 - **STORE SUM**:将AC的值存入SUM处。 - **LOAD X**:再次从X处加载当前值到AC。 - **ADD ONE**:将AC的值加1。 - **STORE X**:将新的值存回X处。 - **SUBT CNT**:从AC中减去CNT的值。 - **SKIPCOND 400**:如果AC等于0,则跳过下一条指令,否则继续执行。 - **JUMP LOOP**:返回到循环起始点。 - **LOAD SUM**:加载SUM的值到AC。 - **OUTPUT**:输出AC的值。 - **HALT**:程序结束。 - **执行过程分析** - 初始状态下,所有寄存器均为0,程序指令已经依次加载到000H到00BH的内存地址中。 - 执行过程中,PC会不断更新,指向下一个要执行的指令。 - AC寄存器将被用来进行加法运算和存储中间结果。 - MAR和MBR寄存器用于处理内存读写操作。 - IR寄存器保存当前正在执行的指令。 - **程序运行效果** - 通过单步调试功能观察程序的执行过程,可以看到各寄存器和内存的变化情况。 - 例如,在每次循环中,X的值逐渐增加,直到达到20,此时程序跳出循环,并输出SUM的值。 通过以上步骤,学生可以深入了解计算机内部指令的执行流程及其如何影响各个寄存器的状态变化。这种实践性很强的实验可以帮助学生更好地理解计算机体系结构的基本原理。
2025-04-20 10:40:42 956KB 毕业设计
1
这本微机是电科研究生复试微机指定教材,是基于ARM的微机。 书籍文字经过OCR识别,已转为可编辑状态。同时,自带目录。
2025-01-01 14:36:39 96MB arm 毕业设计
1
超低功耗嵌入式系统设计技巧,摘要:低功耗是嵌入式系统的发展趋势,也是便携式嵌入式设备设计中要解决的关键问题之一。对影响嵌入式系统功耗的因素进行了分析,指出了降低系统功耗的途径,从硬件设计和软件设计两个方面阐述了超低功耗嵌入式系统 超低功耗嵌入式系统设计是现代电子技术领域中的一个重要课题,特别是在便携式设备中,如智能手机、可穿戴设备等,电池寿命是决定用户体验的关键因素。本文将深入探讨如何设计超低功耗的嵌入式系统,从硬件和软件两方面提供策略。 了解影响嵌入式系统功耗的因素至关重要。集成电路功耗是主要考虑的方面,特别是动态功耗和静态漏电功耗。动态功耗源于电路状态的快速切换,这与电源电压、活动因子(电容充放电次数)、负载电容和工作频率有关。降低电源电压、减少电容充放电次数和降低工作频率都是有效降低动态功耗的方法。静态漏电功耗则包括亚阈值电流和反向偏压电流,通常在低功耗设计中相对较小,但随着技术节点的缩小,其重要性逐渐凸显。 除了集成电路自身的功耗,还有其他因素不容忽视,如纯电阻元件的功率损耗、有源开关器件在状态转换时的能量消耗、非理想元件的等效电阻损耗以及印制电路板走线的功率损耗。为了降低这些损耗,应尽量减少电阻元件的使用,选择低功耗的开关器件,优化电路布局减少走线电阻,并采用低ESR的储能元件。 降低系统功耗的途径主要包括选择低功耗的集成电路,比如采用低功耗的CMOS芯片,优化电源管理,如分层供电和动态电压频率调整,以及通过设计低功耗的微处理器,如Philips P8XLPC、TI MSP430、Micro-chip PIC或NXP ARM Cortex-M0等。此外,还可以通过睡眠模式、深度睡眠模式或休眠模式来节省能量。 在硬件设计上,全CMOS化的设计能显著降低功耗。此外,硬件设计原则应遵循“电压能低就不高,频率能慢就不快,系统能静(态)就不动(态),电源能断就不通”。例如,使用低电压电源,降低时钟频率,设计能够快速进入和退出的低功耗模式,以及利用电源门控技术来切断不必要的电源。 在软件层面,优化程序设计也对降低功耗起到关键作用。例如,避免冗余计算,减少唤醒事件,优化内存访问模式,以及采用能源效率高的算法。此外,软件还能协调硬件资源,如智能调度任务,确保处理器在空闲时进入低功耗状态,或者根据任务需求动态调整工作频率和电压。 设计超低功耗嵌入式系统需要从多角度出发,综合考虑硬件和软件设计,以实现最佳的能效比。通过对功耗影响因素的分析和降低功耗的策略实施,可以显著提高便携式嵌入式设备的电池寿命,从而满足用户对长时间使用的需求。
2024-08-15 11:11:18 232KB 超低功耗
1
嵌入式系统的典型特征是面向用户、面向产品、面向应用的,市场应用是嵌入式系统开发的导向和前提。一个嵌入式系统的设计取决于系统的需求。本文主要给大家分享一个典型的嵌入式系统设计。供大家参考! 通常来说,一个嵌入式系统的开发过程如下:   确定嵌入式系统的需求;   设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;   详细的软硬件设计和RTL代码、软件代码开发;   软硬件的联调和集成;   系统的测试。   一、步骤1:确定系统的需求:   嵌入式系统的典
2024-05-27 14:04:46 261KB
1
嵌入式系统设计 PPT embedded system design
2024-04-25 15:14:21 19.05MB 系统设计 PPT embedded system
1
Xilinx Zynq-7000 嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法_pdf清晰
2023-11-10 14:37:58 106.34MB
1
结合实际项目的开发经验,详细讲解了基于Xilinx Microblaze软核开发的整个流程,包括硬件平台搭建、软件平台开发、嵌入式操作系统的加载以及用非易失性存储设备对FPGA进行上电配置等内容。利用FPGA软核进行嵌入式系统开发,将得到越来越多的关注和应用。
2023-07-07 10:38:41 298KB FPGA
1
本书是《嵌入式系统设计与实例开发》一书的第3版,其特点是体系结构完整、基本概念清晰,易读易学。本书主要以ARM9嵌入式微处理器与C/OS-II实时操作系统作为教学对象,分别介绍了嵌入式系统的概念及应用领域,嵌入式系统软硬件及设计方法基本知识,ARM微处理器体系结构与汇编语言程序设计,C/OS-II实时操作系统分析,嵌入式系统硬件接口设计,嵌入式系统软件设计与编程以及嵌入式系统的应用开发案例等知识体系。   本书定位为教材,适合作为计算机、软件、电子信息工程和自动化等专业本科生或研究生《嵌入式系统》、《嵌入式系统设计》、《嵌入式系统设计导论》等课程的教材使用。   本书配套较完整的课程大纲、PPT讲稿,这部分内容可以从清华大学出版社网站(www.tup.tsinghua.edu.cn)下载。
2023-06-03 17:38:54 12.78MB 嵌入式系统设计与实例开发
1
Xilinx Zynq-7000嵌入式系统设计与实现:基于ARM Cortex-A9双核处理器和Vivado的设计方法
2023-05-17 23:09:07 106.34MB zynq FPGA
1
嵌入式系统设计总结 整理出来的问题和答案
2023-05-15 20:27:16 153KB 嵌入式 系统设计 总结
1