嵌入式:ARM存储器组织、协处理器及片上总线

2023-11-22 00:59

本文主要是介绍嵌入式:ARM存储器组织、协处理器及片上总线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • ARM存储器组织
      • ARM存储数据类型和存储格式
      • ARM的存储器层次简介
      • 存储器管理单元MMU
    • ARM协处理器
    • ARM片上总线AMBA

ARM存储器组织

ARM存储数据类型和存储格式

ARM处理器支持以下6种数据类型

  • 8位有符号和无符号字节。
  • 16位有符号和无符号半字,它们以两字节的边界定位。
  • 32位有符号和无符号字,它们以4字节的边界定位。

存储器组织

在以字节为单位寻址的存储器中有“小端”和“大端”两种方式存储字,这两种方式是根据最低有效字节与相邻较高有效字节相比是存放在较低的还是较高的地址来划分的,两种存储方式如图所示。

ARM的存储器层次简介

  • 寄存器组 : 存储器层次的顶层,典型为32个32位寄存器,访问时间为几个ns

  • 片上RAM :和片上寄存器组具有同级的读写速度。成本较高。

  • 片上Cache :容量为8~32KB,访问时间大概为10ns。

  • 主存储器 :可能在几兆到1G的动态存储器。访问时间大约50ns。

  • 硬盘:后援存储器,容量从几百兆到几十GB,访问时间为几十ms。

    嵌入式系统通常没有硬盘,因此也不采用页方式,但是许多嵌入式系统采用cache,ARM CPU采用了多种Cache结构。

存储器管理单元MMU

在复杂的嵌入式系统设计时,越来越多的会选用带有存储管理单元(MMU)的微处理器芯片。

MMU完成的主要功能有:

  • 将主存地址从虚拟存储空间映射到物理存储空间。
  • 存储器访问权限控制。
  • 设置虚拟存储空间的缓冲特性等。

虚拟地址存储系统示意图

ARM协处理器

ARM通过增加硬件协处理器来支持对其指令集的通用扩展,通过未定义指令陷阱支持这些协处理器的软件仿真。简单的ARM核提供板级协处理器接口,因此协处理器可以作为一个独立的元件接入。

最常使用的协处理器是用于控制片上功能的系统协处理器,例如控制ARM720上的高速缓存Cache和存储器管理单元MMU等。ARM也开发了浮点协处理器,也可以支持其它的片上协处理器。ARM体系结构支持通过增加协处理器来扩展指令集的机制。

ARM片上总线AMBA

IC设计方法从以功能设计为基础转变到了以功能整合为基础。

  • SoC设计以IP的设计复用和功能组装、整合来完成。SoC设计的重点是系统功能的分析与划分、软硬件的功能划分,IP的选择与使用,多层次验证环境和外界设计咨询服务等。
  • 片上总线OCB(On-Chip Bus)使得片上不同IP核的连接实现标准化。
  • 3种总线标准:IBM的CoreConnect、ARM的AMBA(Advanced Microcontroller Bus Architecture)和Silicore的Wishbone。

一个微处理器系统可能含有多条总线

原因:

  • 数据宽度:高速总线通常提供较宽的数据连接。
  • 成本:高速总线通常采用更昂贵的电路和连接器。
  • 桥允许总线独立操作,这样在I/O操作中可提供某些并行性。

多总线系统

嵌入式系统总线

ARM片上总线AMBA

  • AMBA是ARM公司公布的总线标准,AMBA定义了3种总线:
  • ASB(Advanced System Bus):是目前ARM常用的系统总线,用于连接高性能系统模块,它支持突发数据传输模式。
  • AHB(Advanced High-performance Bus):用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序参考同一个时钟沿。在高性能ARM系统(如:ARM1020E)中,AHB有逐步取代ASB的趋势。
  • APB(Advance Peripheral Bus):是一个简单接口支持低性能的外围接口。

通过AMBA组成的系统如下图所示:

基于AMBA总线的典型系统

AMBA总线 - S3C44b0X


参考文献:

孟祥莲.嵌入式系统原理及应用教程(第2版)[M].北京:清华大学出版社,2017.

这篇关于嵌入式:ARM存储器组织、协处理器及片上总线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/406331

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

嵌入式Linux之使用设备树驱动GPIO的实现方式

《嵌入式Linux之使用设备树驱动GPIO的实现方式》:本文主要介绍嵌入式Linux之使用设备树驱动GPIO的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、设备树配置1.1 添加 pinctrl 节点1.2 添加 LED 设备节点二、编写驱动程序2.1

嵌入式Linux驱动中的异步通知机制详解

《嵌入式Linux驱动中的异步通知机制详解》:本文主要介绍嵌入式Linux驱动中的异步通知机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、异步通知的核心概念1. 什么是异步通知2. 异步通知的关键组件二、异步通知的实现原理三、代码示例分析1. 设备结构

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor