【转载】嵌入式软件时序简介—3. 微处理器结构

发布于 2022-05-06 15:04:35

声明:本文转载自微信公众号SoftAuto文章《嵌入式软件时序(2)—— 微处理器结构》,略有改动。

硬件是软件运行的载体,嵌入式系统的时序自然要以处理器硬件为基础。本节我们以双核处理器为例介绍一下微处理器的结构。

下图显示了处理器的两个核、各种存储器、外围单元和两条不同的总线。注意: 并非所有的处理器都遵循这种结构。
image.png

1.CISC vs. RISC

  • CISC是复杂指令集计算机(ComplexInstruction Set Computer)的缩写,描述的是复杂机器指令提供相对较高功能的处理器。为了实现这样的CPU,需要一个相应的复杂的、因而昂贵的硬件。此外,CISC有一个特点,即不同指令需要的执行时间不同。
  • RISC是指精简指令集计算机(ReducedInstruction Set Computer)。这种处理器的机器指令很简单,需要很少的晶体管,而且通常指令的执行时间相同。

2.寄存器(Register)

每个处理器在其执行单元中都有一组特殊的存储单元,名为寄存器。一些常用的寄存器在下面有更详细的描述,详述如下:
1.程序计数器(Program Counter)
程序计数器(PC)通常也被称为 "指令指针"(IP)。程序存储器中的每条指令在存储器中都有一个特定的地址。PC包含当前正在处理的指令的地址。

2.数据寄存器(Data Register)
数据寄存器用于逻辑运算、计算,以及对存储器进行读写操作。

3.累加器(Accumulator)
尤其是RISC处理器有一个特殊的数据寄存器,即累加器。累加器用于大多数逻辑和算术操作。

4.地址寄存器(Address Register)
地址寄存器被用来从内存中读取数据,将数据写入内存,执行间接跳转,或间接调用函数。并非所有的处理器都区分了地址寄存器和数据寄存器。

5.状态寄存器(Status Register)
状态寄存器也可以被称为 "程序状态字"(PSW)、"条件代码寄存器"(CCR)或"标志寄存器"。它是一组数据位的集合,每位表示一个特定的状态。每位的作用就像一个标志,通常被缩写为一个或两个字母。它们所代表的状态取决于所使用的处理器,以下标志在大多数架构上是常见的:

  • IE(中断使能标志):指示中断是全局使能的(IE = 1)或全局禁止 (IE = 0)。要使能中断,必须满足进一步的要求。
  • IP(中断挂起标志):指示中断是否被挂起。IP=1表示中断被挂起,IP=0表示中断未被挂起。
  • Z(0标志):指示最近执行的逻辑或算数指令的结果是否为0。Z=1表示结果为0,Z=0表示结果不为0。
  • C(进位标志):用于标记溢出或算术运算以及逻辑运算的进位。例如,如果两个数字0xFF和0xFF在一个8位处理器上相加,进位标志代表第9位。结果0x1FE的前导"1",即MSB在进位标志中,而其余8位0xFE在结果寄存器中。当用进位加法时,进位标志就像前一个加法的进位一样被使用。如果进位标志被置位,两个数字3和4相加,结果是8。

6.当前CPU优先级
这个值在某些处理器上是一个单独的寄存器,而在其他处理器上则是状态寄存器的一部分。当前执行的代码的优先级决定了中断是否被接受。只有当中断的优先级高于当前执行的代码时,当前执行的代码才会被中断。这也意味着中断要先被使能(IE=1)。

7.堆栈指针(Stack Pointer)
堆栈指针包含一个地址,标志着到目前为止使用的堆栈的当前范围。

本期就介绍基本指令集分类和寄存器两个知识点,下期着重介绍寻址方式。

参考资料

Peter Gliwa, 《Embedded Software Timing》
Schäuffele, 《Automotive Software Engineering》

0 条评论

发布
问题