说明

本文基于某GPON MDU产品的当前情况,提出OMCI升级的加速方案。

因时间仓促和水平限制,文中难免存在错漏和不足之处,敬请指正。

一  问题提出

根据G.988标准相关描述,软件升级过程可分为版本下载(Download)和激活提交(Activate&Commit)两个过程。

激活提交过程主要耗时在于激活操作后的自动重启,但其优化空间不大;而版本下载过程主要耗时在于分片传输,因此本文也将集中讨论分片传输的加速。

目前某MDU软件升级过程中,子卡首先接收OLT下发的版本镜像分片(Section)并写入内存,收到End Software Download消息后对内存版本进行CRC校验,校验通过后再将版本通过2000字节的分块(Block)发送给主控板。主控板接收完所有分块后进行本地校验,校验通过后将版本写入Flash,完成版本下载过程。

该产品主控版本的下载实测结果表明:ONU子卡约每50ms(Avg:53.6ms)接收一个Window,计31*32=992字节。子卡接收到完整版本后,约每60ms(Avg:68.7ms)向主控板发送一个Block,计2000字节。从开始下载到写入Flash共耗时约8.5分钟。

为便于说明,当前方案记为“串行”下载。可以看出,除去CRC校验过程,版本其实被重复下载两遍(虽然分块传输比分片传输耗时稍短)。下文将介绍“准并行”的下载加速方案。

二  解决方法

“准并行”下载,即ONU子卡每接收到N个下载窗口(Windows),向主控板发送N×Win字节的Block,从而实现接收和发送的“准并行”,以加快下载过程。

基于Block的度量方式,“准并行”下载可细分为分块粒度和分片粒度。

2.1 窗口粒度

假设OLT和ONU协商每个窗口含32个分片(Section),每个分片恒为31字节。则当N=2时升级加速过程如下图所示:

图2.1 OMCI升级加速窗口粒度示意图

为突出重点,图中未示出ONU对OLT升级消息的响应,也未体现本地消息交互所必须的进程协作。

START DOWNLOAD消息中携带初次计算的Block额定数目(也可由SEND BLOCK消息携带)。SEND BLOCK消息中携带Block当前序号,Block字节数以及根据窗口尺寸而调整的Block额定数目。该Block序号对应OLT下发的两个完整窗口。

关键的处理逻辑如下:

  • 若(当前序号≤前次序号)或(当前序号>额定序号),打印错序提示及前次、当前和额定序号值。
  • 若收到SEND_BLOCK消息,则依次发送(当前序号-前次序号)个Block。
  • 若收到END_DOWNLOAD消息,则依次发送(额定序号-当前序号)个Block。

可以看出,若当前序号始终等于前次序号,则“准并行”下载退化为“串行”下载。

注意,从OLT接收Section的代码段应确保发往主控的内存版本和Block序号正确性,亦即该代码段应根据下载窗口尺寸来调整Block大小。Block Interval时长应大于单个分块传输的处理时间。对于该产品,N≥2,即Block大小至少为2×32×31=1984≈2000字节,但也不宜过大。

2.2 分片粒度

假设OLT和ONU协商每个窗口含32个分片(Section),每个分片恒为31字节。则当N=2时升级加速过程如下图所示:

图2.2 OMCI升级加速分片粒度示意图

为突出重点,图中未示出ONU对OLT升级消息的响应,也未体现本地消息交互所必须的进程协作。

START DOWNLOAD消息中携带初次计算的Section额定数目(也可由SEND BLOCK消息携带)。SEND BLOCK消息中携带Section当前序号,该Section序号对应OLT下发的两个完整窗口。

关键的处理逻辑如下:

  • 若(当前序号≤前次序号)或(当前序号>额定序号),打印错序提示及前次、当前和额定序号值。
  • 若收到SEND_BLOCK消息,则依次发送(当前序号-前次序号)个Section的Block。
  • 若收到END_DOWNLOAD消息,则依次发送(额定序号-当前序号)个Section的Block。
  • Block大小应维持在2000字节左右,过大则需强制分多块传输。

可以看出,若当前序号始终等于前次序号,则“准并行”下载退化为“串行”下载。

注意,从OLT接收Section的代码段应确保发往主控的内存版本和Section序号正确性。因分片长度固定,故Section额定数目固定,无需调整。Block Interval时长应大于单个分块传输的处理时间。对于该产品,N≥2,即Block大小至少为2×32×31=1984≈2000字节,但也不宜过大。

三  效果评价

根据“串行”下载实测值,可估算“准并行”下载将缩短升级过程近3分钟,即加速约30%。该加速对于Flash较小下载较慢的ONU更为明显。

此外,“串行”下载向主控发送版本分块时,可能由于消息发送过快,主控CPU提包限速导致收到的消息存在未剥除消息头的概率。因而该产品子卡在向主控分块传输时进行30ms延迟。而“准并行”下载时,接收Block速度低于发送Block速度,因此不需要分块延迟。

转载于:https://www.cnblogs.com/clover-toeic/p/3780107.html

某MDU产品OMCI软件升级加速方案相关推荐

  1. 嵌入式开发<单片机软件升级>

    嵌入式开发<单片机软件升级> 前言 一.单片机软件升级方式 二.IAP升级原理 1.FLASH区域划分 2. FLASH各个区域作用 三.IAP软件BOOT设计 1. 第一种设计方法 2. ...

  2. 微软公司服务器主题软件,微软重大IT升级 七款产品巩固软件帝国

    1企业产品重磅出击 对于微软而言,无论是桌面还是服务器领域,每一款重要软件组件都将面临着重大升级.随着2013年产品的升级更新,新微软路线图的逐步明确,提供企业新产品为其更好的服务是检验微软产品的重要 ...

  3. 全面升级 | 阿里云中间件推出3款新品和3项产品新特性,加速企业中台落地

    自2015年年底,阿里巴巴对外宣布全面启动2018年中台战略,构建符合DT时代的更具创新性.灵活性的"大中台.小前台"组织机制和业务机制后,承载中台战略的企业级互联网架构已在各行业 ...

  4. MDU某产品OMCI模块代码质量现状分析

    说明 本文参考MDU系列某产品OMCI模块现有代码,提取若干实例以说明目前的代码质量,亦可作为甄别不良代码的参考. 本文旨在就事论事,而非否定前人(没有前人的努力也难有后人的进步).希望以史为鉴,不破 ...

  5. MTM量身定制系统 - 富友ERP产品 - 信息化推动服装行业管理软件升级

    MTM量身定制系统 - 富友ERP产品 - 信息化推动服装行业管理软件升级 MTM量身定制系统 - 富友ERP产品 - 信息化推动服装行业管理软件升级 国内第一款量体定制管理系统 结合富友软件10年服 ...

  6. vFlash 软件升级方案

    vFlash 软件升级方案 代码源文件结构清晰,代码采用分层思想.把uds服务接口统一,按照服务名分解成源文件.通过uds.c进行统一的管理,如权限,会话模式管理. 对于需要的服务采用回数方式,给用户 ...

  7. 2020全球开源基础设施技术峰会分享 | 自研软硬一体化加速方案

    2020年全球开源基础设施技术峰会及PTG讨论,以线上的形式于10月19-30日举行. 本次线上峰会议程包括100多个主题演讲和讨论环节,参会人员来自100多个国家的30多个开源社区.涉及的开源项目包 ...

  8. 压缩 质量不变_来了!业内首个HEIF图像高质量压缩FPGA加速方案

    近日,元脑生态伙伴深维科技与浪潮联合发布业内首个基于FPGA的HEIF图像处理加速方案.相比于CPU处理,在保持图像质量不变的情况下,该方案的处理性能提升5倍以上并显著降低计算成本.HEIF是一种新型 ...

  9. p2p网络测试工具_自媒体 IPFS官方升级DHT方案,提升网络整体性能

    IPFS官方升级DHT方案,提升网络整体性能 4 月底,官方发布了迄今为止最大的 go-ipfs 更新:IPFS 0.5.0.此升级为 IPFS 带来了主要的性能和可靠性改进,尤其是在内容发现和路由方 ...

最新文章

  1. Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界
  2. 金融数据信噪比的影响力又一力证
  3. python37下载_pythoncom37.dll 3.7.224.0
  4. const和define 区别
  5. 2019-02-22-算法-进化
  6. for in / for of 要会用
  7. win10此电脑不见了_教程 | win10总提示“你要允许此应用对电脑的修改吗”,如何关闭?...
  8. 什么是防火墙?防火墙的设计主要有哪些类型?
  9. 三星Galaxy S21 FE官网“偷跑”:延续高性价比策略
  10. 仓库无证如何处罚_法律问题 | 在船舶检查过程中,我遇到的一些问题该如何解决?...
  11. 国外计算机cpu排行,处理器天梯图2020 电脑cpu处理器性能排行榜
  12. HTML将div层级升到最高,CSS层级嵌套关系详解
  13. 服务器独享宽带和共享宽带有那些区别
  14. 自由 stm32f103c8t6芯片学习原理图+中文数据手册pdf
  15. c语言 验证用户名密码
  16. Lexical error at line 1, column 18. Encountered: “\u2019“ (8217), after : ““]
  17. python程序设计基础刘艳网课_智慧职教APPPython程序设计基础(九江职业技术学院)题目答案...
  18. 测试入门-badboy(1)
  19. 数据库测试需要重点关注的16个测试点
  20. HEC-RAS水动力模型的一维二维及耦合建模

热门文章

  1. Visdom蓝屏问题解决
  2. Chrome浏览器插件开发-淘宝自动登录
  3. Docker - 容器内应用和外部非容器应用互相访问方法
  4. 运输问题系数矩阵matlab,基于MATLAB的运输问题求解方法.pdf
  5. 安卓apk文件使用命令行进行V1和V2签名
  6. h5 - PhotoSwipe图片放大功能集成和使用
  7. 网站信息无障碍辅助工具
  8. checksum 算法
  9. 回忆法切蒂的一生:大国米时代的见证人 天生的贵族
  10. 写支票的滞留金的算法