0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个RMW操作的例子

SwM2_ChinaAET 来源:未知 作者:李倩 2018-07-20 08:41 次阅读

操作系统中,有一种重要的进程间的同步机制称作信号量机制。信号量即当前可用资源的计数。信号量是一个用来实现同步的整型或记录型(Record)变量,除了初始化外,对它只能执行等待和释放这两种原子操作。一次对信号量的等待操作是获得信号量的过程,读取当前信号量的值,如果发现有可利用资源,则将信号量减1,否则进入等待状态。一次对信号量的释放过程即将信号量加1。一个进程对信号的读取、计算新的信号量值、更新信号量的值,这三个步骤是不允许被其他进程打破的,如果被打破,则信号量的值将会发生错误,RMW操作的最大用途在于信号量操作。当然,用户也可以将总线精简为不支持RWM操作。

一次RMW操作对于总线来说,本质上是两次子操作,一次读,一次写,只不过这两次子操作必须由同一个主设备的完成,且读数据和写数据的地址相同。"改"是不发生在总线上的,它发生在主设备内部。一个RMW操作的例子如图19所示,其过程如下:

时钟上升沿0:

·主机将有效地址置于ADR_O()和TGA_O();

·主机将WE_O复位,以表明进入读周期;

·主机输出SEL_O()(bank select)表明其操作的数据地址;

·主机将CYC_O和TGC_O()置位,以表明周期的开始;

·主机将STB_O置位。

注意:主机可以在时钟上升沿1到来之前的任意时间将CYC_O和TGC_O()置位,而TAGN_O信号是可选的。

时钟上升沿1(SETUP):

·从机解码输入,并对ACK_I的置位做出响应;

·从机将有效数据置于DAT_I()和TGD_I()上;

·主机监控ACK_I信号,并准备锁存DAT_I()和TGD_I()上的信号;

时钟上升沿1:

·主机锁存DAT_I()和TGD_I()上的数据;

·主机将STB_O复位,以插入一个等待周期(-WSW-)。

时钟上升沿2(SETUP):

·从机将ACK_I复位以响应STB_O信号;

·主机将WE_O置位,以表明进入写周期。

注意:实际上主机可以在本过程之前插入任意多个周期。

时钟上升沿2:

·主机将写数据置于DAT_O()和TGD_O()上;

·主机输出SEL_O()(bank select)表明其操作的数据地址;

·主机置位STB_O信号。

时钟上升沿3(SETUP):

·从机解码输入,并响应ACK_I的置位;

·从机准备锁存DAT_O()和TGD_O()上的数据;

·主机监控ACK_I信号,并准备结束数据段(phase)传输。

注意:实际上从机可以在本过程之前插入任意多个周期。

时钟上升沿3:

·从机将DAT_O()和TGD_O()上的数据锁存;

·主机复位STB_O和CYC_O信号,以表明本周期的结束;

·从机将ACK_I信号复位,以响应STB_O信号的复位。

图19 RWM周期

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 进程
    +关注

    关注

    0

    文章

    193

    浏览量

    13876
  • 信号量
    +关注

    关注

    0

    文章

    53

    浏览量

    8259

原文标题:【博文连载】Wishbone总线周期之RMW操作

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    技术新知:RMW突破性半导体焊线技术有望代替金线

      RED Equipment旗下子公司RED Micro Wire (RMW)日前宣布推出带玻璃绝缘性能的新型高品质铜线,可用于半导体线焊。通过在微细线生产中采用突破性技术,这种焊线就可以像传统的铜焊线
    发表于 03-29 08:56 1594次阅读

    labview的例子使用

    labview的串口通讯小例子
    发表于 02-20 22:56

    ATMEGA16模仿手机按键,很好的例子

    很不错的例子
    发表于 03-23 17:07

    labview 宝典中的个例子

    `labview 宝典中的个例子在看这个例子的时候,发现字符串显示控件的背景都是方格,而我自己写的程序显示控件会有方框,即使用工具选板中的透明色,也不能把方框去掉呀.请各位高手指教.`
    发表于 04-07 17:02

    和大家讨论关于趋肤效应的例子哈~~

    各位大虾,这是麦克莱曼大师《变压器与电感器设计手册》书中第18章的个例子,所示电路图是静音变换器电路,也叫做电流馈电式并联谐振变换器
    发表于 04-24 17:47

    实用的例子——统计分析

    `实用的例子——统计分析`
    发表于 05-07 09:14

    teststand 中的个例子

    对于Teststand I 中的个例子 Exercise 4-4 中 ,如果是CPU 的型号是三种,或是三种以上.改如何修改下列语句?Locals.CPUtype= ((Step.Result.ButtonHit==2)? "AMD":"INTEL")
    发表于 07-13 22:01

    ucos的个例子

    ucos的个例子,希望对大家有用。
    发表于 04-14 21:41

    与PLC通讯例子

    与PLC通讯例子最好是永宏PLC的,谢谢各位
    发表于 12-23 09:39

    操作者框架(AF)的简单例子

    看了几个大神关于AF的例子和NI的Demo,做了简单的Test功能:两操作者间进行数据传输,实现数值+1,-1架构:Launch为运行
    发表于 04-13 09:52

    介绍些MOV与ADD指令的简单例子

    因为嵌入式系统学习需要,开始学习汇编语言学习资料是B站的视频:汇编语言程序 P9目录些简单的指令例子二、练习
    发表于 01-07 06:39

    请教大家问题有没有CH579跑操作系统的例子

    初次涉及,请教大家问题有没有CH579跑操作系统的例子
    发表于 06-09 07:41

    PSRAM简单的读写例子

    下 esp32-s3-devkitc-1 N16R8 上面有 8M PSRAM 是用 SPI 控制的,似乎是满足我需要的。但是,我怎么就找不到 PSRAM 简单的 读写例子,有的是基于 #include的,我用不上,整的我有
    发表于 03-03 08:12

    C位操作例子大全

    C位操作例子大全 1.对硬件寄存器位操作,如清零,置位,取反,位域 2.用异或实现交换两个变量值 3.编译器测试 4.位域在嵌入式中的应用
    发表于 03-08 16:15 18次下载

    labview与access操作简单例子

    做的labview与access操作简单例子,互相学习吧
    发表于 03-15 16:00 87次下载