cpu
痞子衡嵌入式: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
特权级别
用户级别
运行频率
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