zoukankan      html  css  js  c++  java
  • Rocket

     https://mp.weixin.qq.com/s/6e-G5RSQc7Xje7mQj8-Lag

     
    简单介绍Monitor的实现。
     
     
    1. 基本介绍
     
    用于监控各个channel上的消息是否正确。
     
    2. TLMonitorArgs
     
    Monitor的参数,包装一个边(TLEdge):
     
    3. TLMonitorBase
     
    Monitor的基类:
    a. io.in:用于接收输入数据,以待进行监控;
    b. legalize:用于对输入的数据进行监控,以判断是否合法数据;
     
    4. TLMonitor
     
    输入监控模块,主要实现legalize方法:
     
    1) legalizeFormat
     
    对channel a/b/c/d/e的格式进行监视:
     
    A. legalizeFormatA
     
    a. 判断opcode是否正确;
    b. 判断访问地址是否超出可视范围;
    c. 判断各个消息内容是否正确;
     
    B. legalizeFormatD
     
    判断channel d上的消息内容格式是否正确。
     
    C. legalizeFormatB
     
    判断channel b上的消息内容格式是否正确。
     
    D. legalizeFormatC
     
    判断channel c上的消息内容格式是否正确。
     
    E. legalizeFormatE
     
    判断channel e上的消息内容格式是否正确。
     
    2) legalizeMultibeat
     
    监控channel a/b/c/d上的burst请求是否正确,channel e不存在burst:
     
    以legalizeMultibeatA为例:
    监控多个beat之间opcode/param/size/source/address域不变。
     
    3) legalizeUnique
     
    用于监控source/sink是否唯一,即同一个source不能同时存在两个请求未被回复。(这个在规范上有要求吗?存疑)
     
     
    A. legalizeADSource
     
    判断AD中的source是否唯一。
    a. 同一个source不能同时存在两个未被回复的请求:
     
    b. 不能回复未发起请求的source:
     
    c. 若manager的最小延迟大于一个时钟周期,那么a_set和d_clr在不为零的情况下不能相同:
     
    d. 请求间隔和响应时间都不能超过limit个时钟周期,否则会被看门狗视为状态紊乱:
    相当于a.fire()和d.fire()时喂狗。
     
    B. legalizeDESink
     
    用于判断Grant/GrantAck中的sink域是否唯一:
    a. 同一个sink不能同时存在两个未被回复的Grant请求;
    b. 不能回复未发起Grant请求的sink;
     
    5. 使用
     
    Monitor在TLImp的monitor方法中使用:
     
    这里monitor.io.in接收TLBundleSnoop的输出作为输入,传入的source和sink参数都是bundle参数:
     
    这个没有问题:
    a. monitor.io.in只是从source和sink中接收信号;
    b. 而TLBundleSnoop并不会把source和sink连接到一起:
     
  • 相关阅读:
    Oracle Data Provider for .NET now on NuGet
    Entity Framework6 with Oracle(可实现code first)
    $.each()方法详解
    5次Shift会触发粘滞键的妙用(转)
    明知道员工不喜欢干一件事,干不好一件事,你还一定要他去干,犯贱就贱在和员工讲道理争输赢,有意思吗?人尽其才,物尽其用(转)
    ssh连接失败,排错经验(转)
    如何对 GIT 分支进行规划? (转)
    海外优秀资源清单(转)
    iOS中block实现的探究
    JNDI数据源配置注意事项
  • 原文地址:https://www.cnblogs.com/wjcdx/p/11440306.html
Copyright © 2011-2022 走看看