ZHCZ045A December   2024  – July 2025 AM2752-Q1 , AM2754-Q1

 

  1.   1
  2.   摘要
  3. 1使用说明和公告模型
    1. 1.1 支持的器件
  4. 2器件修订版本使用说明和公告
    1. 2.1 器件使用说明
      1.      i2284
      2.      i2351
      3.      i2424
    2. 2.2 器件公告
      1.      i2049
      2.      i2062
      3.      i2120
      4.      i2137
      5.      i2189
      6.      i2196
      7.      i2199
      8.      i2249
      9.      i2253
      10.      i2278
      11.      i2279
      12.      i2310
      13.      i2311
      14.      i2312
      15.      i2377
      16.      i2383
      17.      i2401
      18.      i2427
      19.      i2431
      20.      i2435
      21.      i2436
      22.      i2438
      23.      i2449
      24.      i2455
  5. 3商标
  6. 4修订历史记录

i2196

IA:IA 中可能出现的死锁情况

详细信息:

中断聚合器 (IA) 的一个主要功能是转换到达事件传输通道 (ETL) 总线的事件,它可以将事件转换为用于产生电平中断的中断状态位。在 IA 1.0 版中执行此功能的块称为状态事件块。

除了状态事件块外,还有另外两个主处理块:多播事件块和计数事件块。多播块实际上用作事件分离器。对于它接收的每个事件,多播块都可以生成两个输出事件。计数事件块用于将高频事件转换为可读计数。它对输入事件进行计数,并在计数从 0 转换到非零计数值/从非零读数值转换到 0 时生成输出事件。与状态事件块不同,多播和计数事件块生成输出 ETL 事件,然后将这些事件映射到其他处理块。

在设计后,发现了一个可能导致 IA 死锁的问题。当事件“循环”在这三个处理块之间发生时,就会出现该问题。有可能出现一种情况:由于路径阻塞,处理块无法输出事件,并且由于它无法输出事件,因此不能接收任何新的输入事件。无法接受输入事件这种情况会阻止输出路径展开,因此两条路径都被阻塞阻止。

权变措施:

图 2-1 展示了 IA 1.0 的概念方框图。通过采用不允许计数事件块向多播块发送事件的策略,可以避免可能出现的循环。选择此方法是因为更常见的做法是先拆分一个事件,然后对其中一个事件进行计数,同时将另一个事件发送到其他位置。由于该路径由于约定被阻塞,单个事件无法多次访问任何块,因此只要输出保持未阻塞状态,路径就无法被阻塞。

AM275 中断聚合器 1.0 版图 2-1 中断聚合器 1.0 版

通过遵循此处概述的约定,系统不会出现可能产生死锁情况的危险循环。