TUPELO Blog

Thinking will not overcome fear but action will.

MIPS架构深入理解3-协处理器0

理解CP0协处理器的作用以及如何控制CPU的行为

1 引言 1.1 什么是协处理器0 前面我们已经对MIPS架构CPU有了粗略的了解。显然,它提供了众多优秀的功能。但是,应用的场景不同,往往需要CPU做的事情也不一样,这就需要必须能够对CPU以及它提供的功能进行有选择的配置。这是协处理器诞生的根本原因。 ARM架构也使用协处理器进行控制,称为协处理器15,(cp15)。 MIPS架构CPU使用协处理器0进行CPU的配置和管理。...

MIPS架构深入理解2-MIPS架构体系

从宏观上理解MIPS架构的主要功能,以及优缺点

0 目录 2.1 MIPS汇编语言的风格初探 2.2 寄存器 2.3 整数乘法硬件单元 2.4 加载与存储:寻址方式 2.5 存储器与寄存器的数据类型 2.5.1 整数数据类型 2.5.2 非对齐load和store 2.5.3 内存中的浮点数 2.6 汇编语言的合成指令 2.7 基本地址空间 ...

一步步写属于自己的makefile

轻松掌握makefile的编写技巧

本文将自己常用的一个makefile一步步按照解决需求的思路,逐步深入。并没有枯燥地讲解makefile的基础,而是在涉及的地方进行说明。这样,在解决问题的兴奋中,逐渐也掌握了makefile编写的真谛。希望对大家有帮助。 1 makefile初探 如果没有makefile,我们编译C或者C++代码只能是手动一个个敲,然后再编译。比如,有一个文件hello.c, gcc -c -o h...

MIPS架构深入理解1-MIPS和RISC架构体系介绍

从宏观上对MIPS架构有一个基本理解,对MIPS架构和CISC架构差异有一个感官上的认识

0 目录 1.1 流水线 1.1.1 制约流水线效率的因素 1.1.2 制约流水线效率的因素 1.2 MIPS架构5级流水线 1.3 RISC和CISC对比 1.4 MIPS架构的发展 1.5 MIPS架构和CISC架构的对比 众多RISC精简指令集架构中,MIPS架构是最优雅的”舞者”。就连它的竞争者也为其强...

Linux内核2-Cache基本原理

了解Cache相关概念,对其工作原理有一个基本认识

1 Cache最小单位 主存和缓存之间以固定大小的块(block)为单位进行搬运,也就是每次从主内存读写的最小数据单元。每个块的大小可能是4,8,16字节或其它值,不同的CPU不尽相同。目前,X86架构和ARM架构都是采用64字节大小的块。通常,人们更习惯称这样的块为cache行,或者cache line。每个line除了包含数据之外,还包含TAG(地址信息)和状态信息。 2 关联方式 ...

sel4-微内核与宏内核

快速了解微内核和宏内核的差异,理解什么是微内核

1 微内核与宏内核有何异同 微内核——内核只提供任务调度和进程间通信(IPC),当然还包括为任务调度提供服务的系统时钟、中断以及内存管理等最基本的硬件管理能能力。至于用户态需要的系统服务,则由用户态完成。代表OS:L4系列微内核。 宏内核——也称为单内核,所有的系统服务,包括任务调度,系统资源访问等等,都由内核态通过系统调用向用户态提供系统服务。 一张图说明它们的区别: 总结se...

Linux内核39-内核同步之大内核锁

Linux内核之大内核锁的前世今生

转载他人文章,原文地址[大内核锁将何去何从](https://blog.csdn.net/universus/article/details/5623971)。 大内核锁这个简单且不常用的内核加锁机制一直是内核开发者之间颇具争议的话题。它在早期linux版本里的广泛使用,从2.4内核开始逐渐被各种各样的自旋锁替代,可是直到现在还不能完全将它抛弃;它曾经使用自旋锁实现,到了2.6.11版修...

Linux内核38-内核同步实际例子

内核同步在Linux内核中的实际应用

要想一个系统不崩溃,性能还得好,同步技术是非常关键的。但是,完全避免竞态条件几乎是难于上青天。因为它要求对内核各个功能模块之间的交互得有一个清晰深刻的理解。下面我们看一下Linux内核中一些具体保护数据访问的示例,加深对其理解,甚至可以在自己的内核设计上借鉴一下。 1 引用计数器 引用计数器是内核中保护某个资源或者模块的一种有效手段,比如分配内存,使用某个内核模块,或者打开某个文件的时候...

Linux内核37-内核数据的同步访问

串联所有同步手段,分析其使用场景

每一种技术的出现必然是因为某种需求。正因为人的本性是贪婪的,所以科技的创新才能日新月异。 1 内核数据的同步访问 前面,我们学习了这么多内核同步技术。那我们该怎么选择呢?选择不同的内核同步技术,可能对系统的性能影响很大。根据经验,基本可以遵守这么一条准则:尽可能高地保证系统的并发性。 而系统的并发水平又依赖于两个关键的因素: 可以并发访问的I/O设备数量; 能够执行有效工作...

Linux内核36-内核同步之禁止中断

禁止中断作为同步手段的使用方法

每一种技术的出现必然是因为某种需求。正因为人的本性是贪婪的,所以科技的创新才能日新月异。 今天,我们了解一下内核同步的最后一种方法,关闭中断。这是一种简单粗暴的方式,但行之有效。 1 禁止中断 作为嵌入式软件开发人员,对于禁止中断肯定不陌生。尤其是基于MCU的嵌入式软件,因为就一个微处理器核,所以禁止中断是实现临界代码段的有效手段。笔者比较熟悉的μC/OS-II或III,就是使用禁止中...