首页 VxWorks下的高速缓冲存储器一致性问题解决方案

VxWorks下的高速缓冲存储器一致性问题解决方案

举报
开通vip

VxWorks下的高速缓冲存储器一致性问题解决方案VxWorks下的高速缓冲存储器一致性问题解决方案ΞTheResolutionofCacheCoherenceinVxWorks烽火通信科技股份有限公司技术部 (武汉430074)  郑更生上海贝尔有限公司传输网络事业部 (上海201206)郑炜煜  【摘 要】 介绍了VxWorks下高速缓冲存储器一致性问题的通用解决方法,针对MotorolaMPC860上的高速缓冲存储器一致性问题提出了具体解决方案。关键词:高速缓冲存储器一致性,VxWorks,缓冲区描述符,快速以太网控制器【Abstract】 Thepa...

VxWorks下的高速缓冲存储器一致性问题解决方案
VxWorks下的高速缓冲存储器一致性问题解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ΞTheResolutionofCacheCoherenceinVxWorks烽火通信科技股份有限公司技术部 (武汉430074)  郑更生上海贝尔有限公司传输网络事业部 (上海201206)郑炜煜  【摘 要】 介绍了VxWorks下高速缓冲存储器一致性问题的通用解决方法,针对MotorolaMPC860上的高速缓冲存储器一致性问题提出了具体解决方案。关键词:高速缓冲存储器一致性,VxWorks,缓冲区描述符,快速以太网控制器【Abstract】 ThepaperdiscussesthegeneralresolutionofcachecoherenceintheVxWorks.AndaspecificprojectisofferedinaccordancewithMotorolaMPC860.Keywords:cachecoherence,VxWorks,BD(BufferDescription),FEC(FastEthernetController)1 VxWorks下的高速缓冲存储器一致性问题美国风河(WindRiver)公司的VxWorks是目前最先进的实时嵌入式操作系统,Tornado是它的集成一体开发环境。然而,VxWorks下编程硬件驱动程序时却存在着高速缓冲存储器一致性(CacheCoherence)的问题。该系统下有两个cache区:数据高速缓冲存储器和指令高速缓冲存储器。本文讨论的高速缓冲存储器问题均指数据高速缓冲存储器。高速缓冲存储器一致性问题是指高速缓冲存储器中的数据必须与内存中的数据保持同步(一致)。这个问题常发生在CPU内核与另一个设备异步访问内存时。高速缓冲存储器可以工作在Write2through或copyback模式。在Write2through模式下,数据输出时,系统会把数据同时写入高速缓冲存储器和内存中,这样,就保证了输出时的高速缓冲存储器一致性。但该模式却无法解决输入时的高速缓冲存储器一致性问题。在Copyback模式下,系统只写数据到高速缓冲存储器中,因此对于数据输入和输出都存在高速缓冲存储器一致性问题。VxWorks下通常有两种方法解决高速缓冲存储器一致性问题:(1)Cache2safebuffer(即non2cacheable的buffer)。这种情况下,CPU读数据时会从内存中读取,而不是从高速缓冲存储器中读取;而CPU写数据时则同时写入高速缓冲存储器和内存。该方案可通过以下两种方法实现:·在内存段属性中定义此段buffer空间属性为non2cacheable;·在内存管理单元MMU支持下,用cacheDmaMalloc()öcacheDmaFree()获得此段buffer,则此段buffer是non2cacheable的(注意无MMU时,分配的buffer是cacheable,此法不支持这种情况)。(2)对于cacheable的buffer空间,采用flush()öinvalidate()函数或宏来配合读ö写使用此段buffer空间。flush()将高速缓冲存储器中的数据写入内存,invalidate()则将内存中数据写入高速缓冲存储器。这两个函数都保证了高速缓冲存储器与内存同步。实际flush()öinvalidate()函数有如下两组,功能相同稍有区别:组1:CACHE DMA FLUSH()函数和CACHE DMA INVALIDATE()函数组2:cacheFlush()函数和cacheInvalidate()函数第一组中实际是2个宏,与cacheDmaMalloc()函数配合使用。2 MPC860上高速缓冲存储器一致性的软件设计方法MPC860是摩托罗拉公司的32位多用途集成通信控制器,主要包括一个32位的嵌入式PowerPCcore,一个通信处理模块CPM,一个系统集成模块·31·电子工程师计算机应用 Vol.28No.1 2002Ξ收稿日期:2001—11—02©1995-2004TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.SIM60及一个独立的快速以太网FEC模块。在VxWorks下编写MPC860的驱动程序,要保护的是CPM、FEC模块的发送ö接收缓冲区描述符TXBDöRXBD及其对应的缓冲区。对于MPC860开发中象BD(BufferDescription)这样的静态空间适合采用cache2safebuffer方法,即采用第1种方法:而对BD域中对应的缓冲区,由于该缓冲区多是动态分配和释放,更适合采用第2种方法,即采用flush()öinvalidate()函数或宏来配合读ö写使用此段缓冲区空间,这样可以避免将整个的包括还未分配的空间都预先标记为non2cacheable而造成效率低下。具体可以采用下面的方法:(1)TXBDöRXBD放在MPC860双口RAM中,并在板级支持包BSP文件Syslib.c中的页描述符数据结构sysPhysMemDesc〔〕中定义860上所有64K内存空间为non2cachable的缓冲区,从而不必做cachecoherence的保护了。(2)对应TXBDöRXBD中数据指针域的发ö收缓冲区均用cacheDmaMalloc()获得(具体是指初始化时给所有接收RXBD挂接的初始缓冲区和接收帧函数中给RXBD挂接的新缓冲区,以及在应用层中使用的发送TXBD对应的缓冲区),而用cacheDmaFree()释放。同时发送帧函数中用cacheFlush()函数保护待发送TXBD对应的缓冲区;接收帧函数中用cacheInvalidate()函数保护已经装载了接收数据的接收缓冲区。以快速以太网FEC的驱动程序为例,保护具体实现如下:ö3FEC发送帧函数3öFEC SEND FRAME(){ö3填写发送buffer内容,实际填写在datacache中3ösptr tx buffer〔i〕=data;⋯⋯fec.txBd.dataPointer=(char3)sptr tx buffer;ö3将填写在datacache中的内容写回内存中的实际发送buffer(即以sptr tx buffer为地址的内存)中3öcacheFlush(DATA CACHE,sptr tx buffer,1518);ö3启动发送命令,FEC控制器发送内存中buffer内容而非datacache中内容3ö3(UINT323)VXImmrGet()+MOT FEC TX ACT OFF))=MOT FEC TX ACT;}ö3FEC接收帧函数3öFEC RECEIVE FRAME(){ö3取得实际接收buffer的地址3öpBuffer=(void3)fec.rxBd.dataPointer;ö3将RXBD对应的内存中接收buffer中内容写回datacache中3öcacheInvalidate(DATA CACHE,pBuffer,1520);3vptr buffer=pBuffer;ö3以后CPU可以安全使用接收buffer中的内容33vptr buffer了3ö}参 考 文 献1 WidRiverInc.VxWorksProgrammer′sGuide,5.4.WidRiverInc.,19992 MotorolaInc.MPC860TUser′sManual.MotorolaInc.,1998 ■(上接第12页)图3 数据库设计内容程序的VB代码通过向数据库引擎Jet提出服务请求,该引擎执行对数据库请求的操作,并向应用程序返回所需结果;数据库引擎存在于程序和物理数据库文件之间,是一种通用数据库接口,使得各种数据库在用户面前呈现统一的形式。它把应用程序的请求翻译成对.Mdb文件或其它数据库主体的物理操作,通过查询处理器,接收并执行SQL查询,来实现所需的数据库操作。本系统考虑到VB与数据库的兼容问题,仅使用了数据库的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 存储功能,而对表的查询、统计等均由VB在编程中用SQL语言实现,因而在使用何种数据库的问题上,空间比较大。5 结束语该程控交换机计费系统的特点是适用范围广、运行稳定可靠,用户容易调整、维护,并且能够根据 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的变化及时修改参数。参 考 文 献1 程林强等.2000系列电话计费控制系统.南京:南京邮电学院学报,1999,10(4)2 刘颖等.数字通信原理与技术.北京:北京邮电大学出版社,2000,43 孙宏林等.VisualBasic6.0开发数据库.北京:人民邮电出版社,2000,84 胡荣根.VisualBasic6.0中文版数据库和Internet编程.北京:清华大学出版社,1999,9 ■欢迎投稿·41·郑更生,等:VxWorks下的高速缓冲存储器一致性问题解决方案©1995-2004TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.
本文档为【VxWorks下的高速缓冲存储器一致性问题解决方案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
Vivian_Anne
暂无简介~
格式:pdf
大小:162KB
软件:PDF阅读器
页数:0
分类:工学
上传时间:2018-12-26
浏览量:12