E810-CQDA1 E810-CQDA2 E810-2CQDA2 E810-XXVDA2 E810-XXVDA4 英特尔®以太网800系列 Linux性能调优指南(第二篇 续)

E810-CQDA1 E810-CQDA2 E810-2CQDA2 E810-XXVDA2 E810-XXVDA4 英特尔®以太网800系列 Linux性能调优指南(第二篇 续)

4.0性能故障处理

4.1 CPU利用率

在工作负载运行时检查每个核心的CPU利用率。

注意:与总体CPU利用率相比,每个核心的利用率与性能更相关,因为它提供了每个网络队列的CPU利用率。
如果只有几个线程运行网络流量,那么可能只使用了几个内核。但是,如果这些核心是100%,您的网络吞吐量可能受到CPU利用率和它的限制是时候:
•调整IRQ调节/环大小,详见5.6节。
•增加应用程序线程的数量,将CPU负载分散到更多的内核上。如果所有核心
如果您的应用程序以100%的速度运行,那么您的应用程序可能受到CPU限制而不是网络限制。
常用工具:
•top
1. 按1展开cpu列表,查看正在使用的cpu。
2. 注意利用率。
3. 注意哪些进程被列为最活跃的(列表顶部)。
•htop
可视化所有内核利用率的伟大工具。
•mpstat
下面的示例命令行在Red Hat Enterprise Linux 7.x上进行了测试。显示CPU每个核心的利用率(通过查找总空闲百分比并从100中减去),并突出显示数值超过80%用红色表示。

mpstat -P ALL 1 1 | grep -v Average | tail -n +5 | head -n -1 | awk '{ print (100- $13)}' | egrep -- color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*|100|' | column

• perf
perf工具在查找可能导致高资源利用率的组件方面非常有用
在性能测试期间。它可以在工作负载期间运行,以生成可以给出的报告为进一步调查提供指导。
-在基准测试或工作负载期间开始记录:

perf record -a <benchmark command>

-根据记录的性能数据生成报告:

pref report

4.2 ice Counters

ice驱动程序为接口调试和监控提供了一长串计数器
ethtool -S ethX命令。在工作负载运行和/或运行时查看输出可能会有所帮助比较工作负载运行前后的计数器值。在调试性能问题时,比较这些计数器的输出通常会有所帮助在运行工作负载之后。
•想要获得完整的ice计数器:

ethtool -S ethX

•只看非零计数器:

watch -d ethtool -S ethX | egrep -v :\ 0 | column

需要注意的是:
•rx_drop意味着CPU服务缓冲区不够快。
•rx_dropped。Nic表示槽位/内存/系统中的资源限制。
在工作负载运行前后检查netstat -s。
netstat工具收集来自系统中所有网络设备的网络信息,因此结果可能受测试网络之外的其他网络的影响。输出netstat -s可以很好地指示Linux操作系统或内核中的性能问题。
参考操作系统调优指南,例如Red Hat Enterprise Linux Network Performance调优指南,了解更多关于一般操作系统调优的信息:

4.3 Intel统一驱动统计

英特尔还提供了一个新的框架,通过该框架,ethtool或类似工具收集的统计数据可以利用Intel以太网Linux驱动程序的通用命名方案。当使用ethtool读取信息时从以太网设备,如统计,驱动程序返回一个缓冲区,其中包含各种统计数据。这些统计信息没有标准的命名约定。两者之间存在许多差异各种英特尔以太网设备。由于这些原因和其他原因,一个通用的统计命名方案已创建。

在这里找到有关

<think>好的,我现在需要帮助用户了解SMBus和I2C的核心模块,涉及硬件通信协议或IP核心模块的相关信息。首先,我要回顾用户之前的问题和我的回答,确保信息一致。用户之前问过I2C是否是IP,我解释了I2C协议与IP核心的区别,现在需要扩展到SMBus。 首先,确认SMBus和I2C的关系。SMBus是基于I2C的,但增加了更多规范和功能,比如超时、CRC校验等。用户可能想知道两者的异同,以及它们的IP核心实现有什么不同。 接下来,需要结合用户提供的引用。引用[1]提到Intel的以太网适配器,但可能和SMBus/I2C无关,可以暂时忽略。引用[2]提到APML兼容SMBus v2.0,是2线处理器从接口,称为边带接口。这点很重要,说明SMBus在平台管理中的应用,比如服务器或嵌入式系统中的硬件监控。 用户需求是了解核心模块,可能涉及协议细节和IP实现。需要分结构回答:协议对比、IP核心设计要点、应用场景。需要确保使用正确的中文术语,并按照之前的格式,分点清晰,加入公式和代码示例。 还要注意用户之前的回答中提到的IP核心定义,比如商业IP和自主设计的区别。需要比较SMBus和I2C的IP核心在功能、复杂度、授权上的差异。 最后,生成相关问题,帮助用户深入理解。例如,如何选择SMBus和I2C的IP核心,或者验证方法。确保引用正确,比如引用[2]提到的APML作为SMBus应用实例。</think>#### SMBus与I2C核心模块的对比与实现分析 --- ##### **一、SMBus与I2C的协议特性对比** 1. **基础共性** - **物理层兼容性**:SMBus(System Management Bus)基于I2C协议构建,采用**双线制**(SDA据线、SCL时钟线)的串行通信架构,电气特性与I2C完全兼容[^2]。 - **基础操作**:支持主从模式、7/10位寻址,以及类似的时序信号(起始条件$S$、停止条件$P$、ACK/NACK响应)。 2. **协议差异** - **功能增强**: - **超时机制**:SMBus要求总线空闲时间$t_{\text{TIMEOUT}} \leq 35\text{ms}$,防止死锁[^2],而I2C无此限制。 - **据包校验**:SMBus强制使用CRC-8校验(可选PEC字段),而I2C通常省略校验。 - **电压与速率**:SMBus规定工作电压为$3.3\text{V}$且速率固定为$10\text{kHz}/100\text{kHz}$,I2C支持更宽电压范围($1.8\text{V}-5\text{V}$)及高速模式($400\text{kHz}$以上)。 - **命令集规范**:SMBus定义了标准命令码(如`Read Word`、`Send Byte`),I2C仅提供底层传输框架。 --- ##### **二、IP核心模块的设计要点** 1. **硬件实现架构** - **通用I2C控制器**: - 实现基础状态机(空闲、地址传输、据读写),支持可编程时钟分频(例如: $$ f_{\text{SCL}} = \frac{f_{\text{CLK}}}{2 \times (\text{PRESCALE} + 1)} $$ - 示例代码(Verilog片段): ```verilog always @(posedge clk) begin if (state == ADDR_PHASE) sda <= addr_reg[bit_counter]; end ``` - **SMBus控制器扩展**: - 需集成超时计器、CRC生成/校验模块、命令解析器。 - 引用[2]中的APML接口即为典型SMBus从设备,支持边带管理功能(如温度传感器读取)。 2. **IP核心的兼容性设计** - **模式切换**:部分商用IP核(如Synopsys DesignWare® I2C)支持SMBus与I2C模式动态切换,通过配置寄存器选择协议特性。 - **验证要求**: - I2C IP需覆盖标准时序(如$t_{\text{SU;STA}}$、$t_{\text{HD;DAT}}$)。 - SMBus IP额外验证超时中断、CRC错误标志等。 --- ##### **三、应用场景与IP核心选择** 1. **I2C核心的典型应用** - **低速外设互联**:传感器(如加速度计$BMA250$)、EEPROM存储器、LCD控制器。 - **自定义协议扩展**:在基础I2C上叠加私有据格式(如特定校验算法)。 2. **SMBus核心的核心应用** - **平台管理**:服务器/PC中的BMC(基板管理控制器)、电源管理IC(PMIC)通信[^2]。 - **电池管理**:智能手机/笔记本电池的充放电状态监控(SMBus v3.0定义`Smart Battery`标准)。 3. **IP选型建议** - **商用IP势**:已验证功能完整性(如Cadence SMBus IP支持多主仲裁、时钟同步$T_{\text{sync}}$),缩短ASIC开发周期。 - **自研场景**:若仅需基础功能(如单主模式传感器读写),可基于开源I2C核(如OpenCores项目)裁剪实现。 --- ##### **四、示例:SMBus IP核功能配置** - **某商用SMBus主控制器参**: $$ \text{最大时钟频率}=100\text{kHz}, \quad \text{支持PEC校验}, \quad \text{超时阈值}=30\text{ms} $$ 配置寄存器字段: ``` CR_REG[7:4] = 0x1 (使能CRC) CR_REG[3] = 1 (启用超时检测) ``` - **自主设计简化SMBus从机**: - 仅响应特定地址(如`0x48`),忽略CRC以节省逻辑资源,适用于低功耗传感器接口。 --- #### 相关问题 1. 如何在FPGA中实现SMBus超时检测机制? 2. SMBus的CRC校验算法具体如何实现? 3. 商用I2C/SMBus IP核的授权模式有哪些(如一次性授权费、按量付费)? 4. SMBus在据中心硬件管理中的具体应用案例有哪些? --- [^1]: Intel® Ethernet Network Adapter E810-CQDA1/CQDA2技术规格。 [^2]: APML接口的SMBus兼容性定义与功能描述。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值