soc(四) cortex核心

cpu
  • cortex-m 的寄存器和指令集
// 参考资料
痞子衡嵌入式:ARM Cortex-M内核MCU开发那些事 - 索引 - 痞子衡 - 博客园.mhtml
痞子衡嵌入式:ARM Cortex-M内核那些事(1- 内核架构编年史 - 痞子衡 - 博客园.mhtml
痞子衡嵌入式:ARM Cortex-M内核那些事(2- 第一款微控制器 - 痞子衡 - 博客园.mhtml
痞子衡嵌入式:ARM Cortex-M内核那些事(3- 功能模块 - 痞子衡 - 博客园.mhtml
痞子衡嵌入式:ARM Cortex-M内核那些事(4- 性能指标 - 痞子衡 - 博客园.mhtml
痞子衡嵌入式:ARM Cortex-M内核那些事(5- 指令集 - 痞子衡 - 博客园.mhtml
  • 寄存器
// 工作模式 有几个 // 与可用的寄存器有关系
	cortex-m 有2(handler工作模式,thread工作模式)
	arm7 arm9 arm11 有7个工作模式
	armv7 有 9个工作模式
// 每个工作模式有多少个寄存器
  • 指令集
// 工作状态 // 与 用的指令集种类相关
	cortex-m 	thumb debug
	armv7 		arm thumb

// 每个工作模式可以用哪些指令(指令分类)
	特权级别
	用户级别
  • cpu的性能
	运行频率
		Mhz
	Dhrystone标准
		Dhrystone标准的测试方法很简单,就是单位时间内跑了多少次Dhrystone程序,其指标单位为DMIPS/MHz。
		MIPS是Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。
		DMIPS中的D是Dhrystone的缩写,它表示了在Dhrystone标准的测试方法下的MIPS。
	CoreMark标准
		CoreMark程序使用C语言写成
		CoreMark标准的测试方法也很简单,就是在某配置参数组合下单位时间内跑了多少次CoreMark程序,其指标单位为CoreMark/MHz。
		CoreMark数字越高,意味着性能更高。
	
工作流程
供电供时钟之后怎么运行的?
取值 译码 执行

1/
取指令

根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。

2/
分析指令
    
指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址.

3/
执行指令。


    
如果需要操作数,指令译码器结合时序部件,产生指令中操作码的微操作 系列,使 操作数 从 某单元 取出。

然后,根据 指令的 操作码,做事情
    
  • 取指令
1 程序计数器的内容(这时是0000H)送到地址寄存器; 
2 程序计数器的内容自动加1(变为0001H); 
3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中; 
4 CPU使读控制线有效; 
5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。

  • 分析指令(译码)
 由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。 
 
 而此时就分析操作数的地址.

  • 执行
执行该指令还必须把数据(E0H)从存储器中取出送到

CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作

系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令

寄存器。

interrupt controller
调试扩展

单核心上的增加性能的技术

  • 线程级并行技术
超线程
  • 指令集并行技术
多发乱序
  • 数据级并行技术
SIMD
NEON
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值