Cortex CM3 内核架构

  • CM3内核主要包含几个部分:取指(Fetch)\指令译码(Decoder/DEC)\执行(EXEC)\ALU
  • 内存取数通过load & store指令,就是通过一个LSU(Load & Store Unit)单元
  • Status - 状态上报
  • 内核和外部进行交互都是通过中断进行的,CPU通常不会一直查询外部的设备,降低CPU效率,通常都是设备发起中断给CPU,CPU进行响应中断
  • PMU模块是可选的
  • 接口 - AHB总线接口和PPB接口,两个总线的命令会进行一定的转换

内核 - 寄存器

  • 内置13个通用寄存器
  • MSP(master stack point)和PSP(processor stack point) - 用于防止内存踩踏
  • 连接寄存器,存储子程序指针,cpu收到中断之后,可以执行中断处理程序,读到stack point,之后可以执行程序;如果子程序的指针存储在CPU外部的RAM中,访问需要时间,中断处理程序执行比较慢
  • 程序计数寄存器 - 计算机执行指令完成后,下一条指令的取址通过程序计数寄存器存储
  • 程序状态字寄存器组(PSRs)

指令预取

  • 指令预取,指令取回来之后会放到指令的缓冲区(32*3 FIFIO),第一个指令存储在FIFO的第一个存储单元,下一个指令会存在下一个FIFO单元
  • Thumb 16bit - 一个cycle会取两个指令,数据总线是32bit的,所以一个cycle可以取两个指令
  • Thumb2 - 一个cycle取一个指令
  • 取值\解码\执行的指令依次进行存储,取指才能连续
  • 如果遇到中断或者分支预测(if-else)的时候,流水会被打断,FIFO就会被清除掉

流水技术

  • 非流水的操作,一个指令执行完成之后才会执行下一个指令

Interface

  • AHB_Lite主要包含Icode(指令接口)\Dcode(数据接口)\System Bus(系统总线命令)

Cortex M3 CORE的更多相关文章

  1. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)

    ARM架构:  由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7:       一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...

  2. ARM Cortex M3系列GPIO口介绍(工作方式探讨)

    一.Cortex M3的GPIO口特性    在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图     从图中可以看出 ...

  3. ARM Cortex M3(V7-M架构)硬件启动程序 一

    Cortex-m3启动代码分析笔记 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析. 启动代码作用一般是: 1)堆和栈的初始化: 2)中断向量表定义: 3)地址重映射及中断向量表 ...

  4. STM32学习之路入门篇之指令集及cortex——m3的存储系统

    STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码        操作数1, 操作数2,... ...

  5. Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors

    Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ...

  6. 【ARM-Linux开发】ARM7 ARM9 ARM Cortex M3 M4 有什么区别

    ARM7 ARM9 ARM Cortex M3 M4 区别 arm7 arm9 可以类比386和奔腾, 不同代,arm9相比arm7指令集和性能都有所增强,arm7和arm9都有带mmu和无mmu的版 ...

  7. 【freertos】002-posix模拟器设计与cortex m3异常处理

    目录 前言 posix 标准接口层设计 模拟器的系统心跳 模拟器的task底层实质 模拟器的任务切换原理 cortex M3/M4异常处理 双堆栈指针 双操作模式 栈帧 EXC_RETURN 前言 如 ...

  8. ARM Cortex M3(V7-M架构)硬件启动程序 二

    解析 STM32 的启动过程 解析STM32的启动过程 当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择.如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main ...

  9. stm32和cortex M3学习内核简单总结

    1.stm32综述 2.寄存器组 3.操作模式和特权级别 4.存储器映射 5.中断和异常 6.其他 Stm32综述 这可以说是我第一款认真学习的单片机了,学完这个就要开启我通往arm9的大门了,接下来 ...

  10. CORTEX -M3 : Registers in depth

    http://www.zembedded.com/cortex-m3-registers-in-depth/ Thanks for the overwhelm response you show in ...

随机推荐

  1. Docker的安装、镜像加速配置

    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce. ...

  2. 华企盾DSC导入离线客户端没有获取到信息

    安装客户端的时候禁用了网卡,导致导入离线客户端获取不到信息. 解决方法: 1.启用网卡,重启电脑 2.启用网卡,重装客户端

  3. CentOS配置DNS服务器(BIND 9.11.*版本),并配置3种转发模式

    BIND 9.11.*版本可以yum直接安装 安装BIND组件,开启DNS服务,检查状态 yum install bind bind-utils systemctl start named syste ...

  4. Python用辗转相除法计算两数的最大公约数和最小公倍数

    计算最大公约数运用辗转相除法就行了 计算最小公倍数需要运用公式:最小公倍数=数字1*数字2/最大公约数 有关辗转相除法的知识请查看:辗转相除法 以下为代码: #计算最大公约数 def gys (x,y ...

  5. kubernetes安装(一)

    参考: https://www.cnblogs.com/liuyangQAQ/p/17299871.html 部署组件包 名称 安装包 kubeadm集群组件 kubelet-1.20.9 kubea ...

  6. RV1126 DSI 调试

    一.基本信息 开发板:RV1126 linux版本:4.19.111 显示屏:HX070JGI50(7寸) 显示器分别率:1024 * 600 二.MIPI协议 连接示意图(图片来源,正点资料) MI ...

  7. 什么是HuggingFace

    一.HuggingFace简介 1.HuggingFace是什么 可以理解为对于AI开发者的GitHub,提供了模型.数据集(文本|图像|音频|视频).类库(比如transformers|peft|a ...

  8. 在线编辑Word——插入公式

    在Word中可插入多种公式,用于满足于不同运算场景需求,从基本的运算符到大型的运算公式,我们可以根据文档内容的编排需要,任意插入所需公式.下面,介绍如何通过在线编辑Word的方式,向Word中插入公式 ...

  9. 自动调优工具AOE,让你的模型在昇腾平台上高效运行

    摘要:当算子性能或者网络性能不佳时,可以使用AOE进行调优.本文就带大家了解自动调优工具AOE,让你的模型在昇腾平台上高效运行. 本文分享自华为云社区<自动调优工具AOE,让你的模型在昇腾平台上 ...

  10. 语音识别端到端模型解读:FSMN及其变体模型

    摘要:在很长一段时间内,语音识别领域最常用的模型是GMM-HMM.但近年来随着深度学习的发展,出现了越来越多基于神经网络的语音识别模型. 一.概述 在很长一段时间内,语音识别领域最常用的模型是GMM- ...