Linux嵌入式开发基础——计算机组成原理

目录

 

1.计算机体系

1.1 冯诺依曼结构

1.2 哈佛结构

2.中央处理器(CPU)

3.存储系统

4.总线系统

5.输入输出系统


1.计算机体系

计算由硬件系统和软件系统两大部分组成。

按照功能可以分为:1)指令系统;2)存储系统;3)输入输出系统等。

按照存储结构分为:1)冯诺依曼结构;2)哈佛结构。

1.1 冯诺依曼结构

该结构把计算机分成了运算器、控制器、存储器、输入设备和输出设备5个部分。

工作原理:计算机的指令存储在存储器内,工作的流程是从存储器取出指令,由运算器运算指令,控制器负责处理输入和输出设备。

缺点:数据和指令放在一起,运算器在取指令的时候不能同时取数据,造成工作流程上的延迟,运算效率不高。哈佛结构解决了该缺点。

1.2 哈佛结构

最大的特点:指令和数据分开存储。

控制器可以先读取指令,然后交给运算器解码,得到数据地址后,控制器读取数据交给运算器;在运算器运算的时候,控制器可以读取下一条指令或者数据。

优点:执行效率高;分开存储可以使指令和数据使用不同的数据宽度,方便芯片的设计。

在嵌入式系统中,大多数的处理器都使用的哈佛结构,如常见的ARM处理器,以及一些单片机。


2.中央处理器(CPU)

组成:运算器、控制器、寄存器和内部总线。

参数:工作频率(包括主频、外频和外部总线频率)、字长(位宽)、指令集和缓存。

主频是CPU的实际工作频率,外频是CPU工作的基准频率。字长决定CPU处理数据的能力,是CPU在一个周期能处理的最大数据宽度。 因此,衡量一个CPU的处理能力要看工作频率和字长。

CPU指令集按照指令的执行方式分为:1)复杂指令集(CISC);2)精简指令集(RISC)。

1)CISC:特点是使程序按照顺序执行。优点是结构简单,便于控制。缺点是计算机各部分不能同时工作,执行效率不高。常见的CISC指令集CPU是Intel的X86系列。

2)RISC:特点是简化了每条指令的复杂度并且减少了总的指令数量。改进了复杂指令集的缺点。嵌入式系统CPU大多采用RISC指令集,如ARM系列的CPU。

缓存主要用来暂时存储指令和数据,缓存越大,CPU相对处理指令的能力就越强。


3.存储系统

计算机的存储系统采用了速度由慢到快,容量由大到小和价格由低到高的多层次存储结构。

Linux嵌入式开发基础——计算机组成原理_第1张图片


4.总线系统

总线是CPU连接外部设备的通道。

  • DataBus(数据总线):从外部设备读取或者写入信息;
  • AddressBus(地址总线):向外部设备发送地址信息;
  • ControlBus(控制总线):发送信号控制外部设备。

5.输入输出系统

组成:外部设备、输入输出控制器。

CPU通过总线与输入输出系统相连。由于外部设备是速度差异,CPU可以通过不同的方式控制外部设备的访问,常见的又轮询方式、中断控制方式和DMA方式。

  • 轮询方式:CPU不断查询某个外部设备的状态,如果外部设备准备好,就可以向其发送数据或读取数据。缺点:由于CPU不断查询总线,导致指令执行受到影响,效率非常低。
  • 中断控制方式:正常情况下,CPU执行指令,不会主动去检查外部设备的状态。外部设备的数据准备好之后,向CPU发送中断信号,CPU收到中断信号后停止当前工作,根据中断信号指定的设备号处理相应的设备。优点:既不影响CPU的运行,也能保证外部设备的数据得到及时处理,工作效率很高。嵌入式系统通常会设计许多的中断信号控制线,供连接不同的外部设备。缺点:不适合大量数据传输的情况,因为每收到一个数据包后都会向CPU发出一个中断,大量的中断会导致CPU忙于处理中断而减小对指令的处理,效率会变得很低。
  • DMA方式:直接内存访问(Direct Memory Access),外部设备在数据准备好之后只需要向DMA控制器发送一个命令,把数据的地址和大小传送过去,由DMA控制器负责把数据从外部设备直接存放到内存 。优点:对处理大量数据十分有效,越来越多的嵌入式处理器支持它。

 

参考文献:弓雷的《ARM嵌入式Linux系统开发详解》第2版

你可能感兴趣的:(嵌入式)