简单同学
宁静致远
展开
-
Low Power设计中的Retention技术
常规的Low Power设计,都会用到CLK Gating,在模块不工作的时候,关掉CLK。如果对功耗要求更高,则可以使用Power Gating,在模块不工作的时候,直接断掉模块供电。但是有一个问题:Power Gating确实更省电,但是关掉供电之后,模块想重新工作,就得重新上电。从重新上电到电源稳定,然后再恢复CLK(有的要重新起振PLL),会有很大的delay。而且,采用Power Gating断电之后,模块的信息和数据都会丢失。重新运行必须重新配置。有没有办法既能省很多电,又能够快原创 2021-08-06 11:43:25 · 1559 阅读 · 0 评论 -
A Beginner’s Guide on Interrupt Latency - and Interrupt Latency of the Arm Cortex-M processors
IntroductionAll experienced embedded system designers know that interrupt latency is one of the key characteristics of a microcontrolller, and are aware that this is crucial for many applications with real time requirements. However, the descriptions of原创 2021-05-17 16:27:19 · 251 阅读 · 0 评论 -
8.CPU体系架构-DMA
DMA本来不属于CPU体系架构部分的内容,只因为在开发中经常要用到其相关的知识,所以这里就其基本概念、工作原理、常见问题做一个总结。DMA概述DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问。DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。DMA内存访问原创 2021-04-30 15:53:16 · 1392 阅读 · 0 评论 -
8.CPU体系架构-MMU
在现在的工作项目中虽然没有使用到MMU功能,但MMU是较复杂的嵌入式操作系统运行的基础。例如Linux就不能够运行在没有MMU的ARM7处理器上,ucLinux就是为了适应没有MMU的处理器而对Linux进行的裁剪和修改。了解MMU基础知识,对理解编译链接,OS多进程,嵌入式系统架构等有很好的帮助。由于该部分内容涉及到MMU硬件、CPU架构、编译链接、OS等知识,学习难度较大。关键字MMU、TLB、多任务OS、地址空间、虚拟内存、虚拟地址/物理地址学习顺序问题的引出、虚拟地址和物理地址、虚拟内存..原创 2021-03-18 15:44:21 · 526 阅读 · 0 评论 -
7.CPU体系架构-Cache
Cache研究是转正答辩“MIPS BSP研究”中重要的一部分。只可惜当时时间紧,没有能够总结成文档。时隔将近一年,这次编写《CPU体系架构系列》,对于这一部分内容既是总结整理,又是温故知新。概述Cache是用来对内存数据的缓存。CPU要访问的数据在Cache中有缓存,称为“命中” (Hit),反之则称为“缺失” (Miss)。CPU访问它的速度介于寄存器与内存之间(数量级的差别)。实现Cache的花费介于寄存器与内存之间。现在 CPU 的 Cache 又被细分了几层,常见的有 L1 Cache原创 2021-03-18 15:43:12 · 600 阅读 · 0 评论 -
6.CPU体系架构-存储管理模型
MIPS32中的存储器模型被划分为四个大块,如下表所示:虚拟地址范围 命名 描述 0x0000,0000~0x7fff,ffff(0~2G-1) USEG must be mapped (set page table and TLB)and set cache before use 0x8000,0000~0x9fff,ffff(2G~2.5G-1) KSEG0 directly mapped(no need to set page table and TLB原创 2021-03-18 15:40:43 · 403 阅读 · 0 评论 -
5.CPU系统架构-函数的调用
在看过了上面的几节之后,在潜意识中你想记住的东西肯定很多了。这个时候,你需要静下心来休息一下在沉淀一下。"Now is a good point to take a break to let this information sink in."下面,我们就看看C语言撰写的程序,在不同的CPU架构下,生成的汇编语言是怎么样的,各有什么特点,这和前面介绍的各种CPU架构的知识是如何联系的。如果你觉得还不够,也很高兴一起来探讨一下在不同的CPU架构下,函数的调用时如何实现的,以及各有什么特点。反汇编文原创 2021-03-18 15:23:12 · 275 阅读 · 0 评论 -
4.CPU体系架构-指令系统
在学习了处理器的寄存器,寻址方式之后,终于到了指令系统。这可谓千呼万唤始出来。为什么让人如此激动呢,因为指令系统,或者叫做汇编语言,终于和程序员有点关系了。如果一个程序员调试BUG的时候,需要反汇编成汇编语言才得以解决,那么这个BUG肯定可属于千年老妖,该程序员也是万年成仙,具有了抓妖降魔的本事。当然了,仙界也分级别,要看本事有多大,就得看修炼有多深。我们这里所说的指令,就是指汇编语言。请注意区分在寻址方式中讲的机器指令。在这里呢,我们也不打算讲解每一种处理器(X86,MIPS,ARM)的指令集系...原创 2021-03-18 15:16:25 · 801 阅读 · 0 评论 -
3.CPU体系架构-寻址方式
在这里,主要是要说明什么是寻址方式。以及每一种CPU为什么使用这样的寻址方式。在说明什么是寻址方式之前,首先需要了解指令的构成,或者说指令的编码格式。指令编码格式一条指令(指的是机器码)由操作码(opcode)和操作数(operand)构成。操作数可以是1个,也可以是多个,甚至可以没有。操作码则是每一条指令都必须有。操作码表示该指令要做什么动作,例如跳转,加减等等。操作数则表示操作对象,操作数可能还会分为目的操作数和源操作数。操作数当然是一个数字,该操作数可以由多种来源,例如寄存器,存储器或者...原创 2021-03-18 15:11:56 · 451 阅读 · 0 评论 -
2.CPU体系架构-寄存器
CPU通用寄存器作为CPU体系架构的一部分,不可或缺。通用寄存器是CPU的算术逻辑运算操作最直接,频繁的位置。对于RISC体系的CPU,算术逻辑运算甚至只能够操作CPU通用寄存器中的数据。我们的目的不在于详尽的说明每一种CPU体系的寄存器情况,而在于将常用而且在不同CPU体系下容易混淆的寄存器做一个总结。下面就以8086处理器,ARM7内核,MIPS32内核为例说明。8086处理器通用寄存器8086处理器,是学习X86处理器的基础(严格意思上来说,8086处理器还不能够算作x86处理器。参考i...原创 2021-03-18 14:57:06 · 653 阅读 · 0 评论 -
1.CPU体系架构-RISC指令集和CISC指令集
最近一直比较疑惑,RISC指令集以及CISC指令集区别在哪些方面呢?趁机也就补充了相关资料,进行了一些总结。目前CISC(复杂指令集)的代表为X86(CISC),RISC(精简指令集)的代表为ARM、MIPS(RISC)还有新兴的RISCV指令集架构。很长一段时间,我关于处理器的相关知识,都是大学课程《微机系统原理》中的8086,甚至不涉及到x86处理器。在实际项目或者工作中,更多的却是ARM/MIPS等处理器。所以工作过程中,难免疑惑不解,张冠李戴。为什么很多基本知识在面对ARM和MIPS时不再适原创 2021-03-18 14:52:08 · 3112 阅读 · 2 评论