[应用方案] NV32 BOS位操作介绍

[复制链接]
1225|6
 楼主| 萧洛毫 发表于 2018-2-27 09:27 | 显示全部楼层 |阅读模式
        位操作存储模块 BOS(Bit Operation Storage)针对基于 Cortex-M0+的微控制器中对外设地址空间的读 取-修改-写入存储器基元操作提供硬件支持。这种架构能力亦称为“位操作存储”,因其定义了一种机制,
可为针对存储器映射外设的加载和存储操作提供位操作运算,而非仅仅读取数据值,或将其写入寻址存储 器位置。在 BOS定义中,“位操作存储”经编码后进入外设地址,用于存储器参考。该引擎模块能够降低 总线的占有率和 CPU执行时间,也可以节省代码空间,以达到降低系统能耗的效果。
        通过组合 Cortex-M 指令集架构(v6M,v7M)的基本加载和存储指令,加上 BOS提供的位操作存储命令, 这种实施方法针对这类超低端微控制器具有可靠高效的读取-修改-写入能力。由该内核平台功能所定义的 架构能力可在外设寄存器中实现 n位字段操作,并与内置的 C 语言标准 I/O 硬件寻址相一致。就大多数 BOS 命令而言,单个内核读写总线周期转换为一个基元读取-修改-写入,即一个透明的“先读后写”总线序列。 仅处理器内核产生的系统总线事务提供 BOS位操作存储参考,其目标为标准 512KB 外设地址空间,基地址 为0x4000_0000,SRAM_U 空间的基地址为0x2000_0000。位操作存储嵌入地址位[28:19],在地址0x4400_0000 –0x5FFF_FFFF 处创建 448 MB 空间,用于 PBB(Peripherial Bus Bridge);在地址 0x2400_0000– 0x3FFF_FFFF 处创建 448MB 空间,用于 SRAM_U;这些位略去了发送至外设总线控制器的实际地址,BOS用 它们来定义并控制其操作。

 楼主| 萧洛毫 发表于 2018-2-27 09:28 | 显示全部楼层
   27.png       
        如该结构框图所示,BOS模块与交叉开关上的主端口连接,从而使其支持对 SRAM_U(图中所示的平台 RAM(PRAM))和外设联接器(PBRIDGE)控制器进行的基元读取-修改-写入操作。BOS硬件的微架构采用二级流
水线设计,符合 AMBA、AHB系统总线接口协议。PBRIDGE 模块将 AHB系统总线协议转换为 APB协议,用于 连接的从外设。
余三水 发表于 2018-2-27 19:59 | 显示全部楼层
这是位操作指令吗?由于系统主频已经很快了,位操作一般没人用的。
飞翔的控制器 发表于 2018-2-28 09:22 | 显示全部楼层
位操作用与或非不就可以了嘛
tomyoct 发表于 2018-2-28 10:37 | 显示全部楼层
飞翔的控制器 发表于 2018-2-28 09:22
位操作用与或非不就可以了嘛

这个是不一样的,与或非还是操作32位的,位操作就像51的bit一样,直接操作位的。
ayb_ice 发表于 2018-3-7 16:37 | 显示全部楼层
飞翔的控制器 发表于 2018-2-28 09:22
位操作用与或非不就可以了嘛

这种操作是有风险的,是不重入的,不是原子级的操作
LED2013 发表于 2018-3-21 11:59 | 显示全部楼层
跟帖似乎都有异议啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

254

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部