最近在找PCIe/NVMe协议分析仪,发现一款软件分析仪:busTRACE,非常不错的工具,对于从事协议开发的同胞们,是个福利,下面把硬件和软件两种分析仪的各自的优势比较了一下(来自busTrace文档),供参考学习:
Hardware
Analyzer Advantages over busTRACE 硬件协议分析仪的优势
-
Captures all state transitions 可以抓取所有的状态转换信号
A hardware analyzer provides you the ability to capture the actual physical communications that occur on the bus; for example the handshaking that occurs between the host and target. busTRACE is unable to show you this low-level detail.
-
Detailed timing analysis 详细的时序分析
If you want to view detailed timing analysis, such as the time to send the command, data, messaging, etc., then only a hardware analyzer can show you this type of low-level detail. busTRACE shows you when an I/O starts and when it completes, with a timing analysis of the entire I/O sequence (not the individual state transitions).
-
Not affected by PC system crashes 不受PC系统挂机的影响
Because busTRACE is a software tool, if the Windows PC crashes, any captured I/O activity will be lost. You can use a remote capture, or capture to file, to try and limit your exposure, but results may be limited. A hardware analyzer is not affected by system crashes.
-
Ability to view I/O activity from hardware perspective 可以从硬件层面查看I/O动态
In discussing busTRACE advantages, we talk about the benefits busTRACE provides because it captures and analyzes I/O activity from the operating system's perspective. There are equal benefits from viewing the I/O activity from the hardware perspective. Here, you are seeing the exact physical communication going on between the host and target. This can help you diagnose problems, particularly timing problems or hardware problems.
-
OS independent 与操作系统不相关
busTRACE supports Windows 7 (and above) PCs. Hardware bus analyzers do not have any such restrictions and can be run independent of the OS you are using.
busTRACE Advantages over a Hardware Analyzer 软件协议分析仪busTRACE的优势
-
Cost effective 便宜
Hardware bus analyzers typically cost ten to twenty times as much as busTRACE. For the cost of one hardware bus analyzer, you could provide each engineer in a department their own copy of busTRACE 10.0.
-
Multiple bus architecture support 支持多种协议架构
busTRACE can capture I/O activity across a wide variety of bus architectures including USB, USB 2.0, USB 3.0, ATA, SATA, ATAPI, Fibre Channel, SCSI, iSCSI, 1394 (storage I/O only), RAID, SAS, PCIe, MultiPath, and more. Hardware analyzers typically support only one type of bus architecture. If they do support more than one, you usually need to purchase an additional hardware "pod" for the new architecture thereby increasing your cost even further.
-
Easy to use 方便使用
busTRACE is simpler to use than conventional hardware bus analyzers. When you run busTRACE, you simply place a checkmark on the devices you are interested in analyzing and then click on the Capture button. A detailed bus capture then occurs. The user friendly busTRACE interface, with powerful bus analysis features, is designed to be used by any engineer from junior level to the most senior level. Hardware analyzers, on the other hand, typically require a specialized skill that only the most senior engineers have.
-
Detailed command/data analysis 详细的命令、数据分析
busTRACE prides itself on not just showing you a dump of hex data that was sent or received from a device. busTRACE will look at the data and decode it into human readable terms. For example, we decode Command Descriptor Blocks (CDBs) in a format nearly identical to the format you would see in the device's command specification. This greatly speeds up your bus analysis efforts.
-
Ability to view I/O activity from the OS perspective 可以从OS层面分析I/O动态
Keep in mind that busTRACE is capturing I/O activity from the operating system's perspective. This can be advantageous in a number of ways.
- When possible, we show you which driver is generating the I/O. This can help diagnose software conflicts.
- You can see what the I/O timeout values are set for the I/O being sent. This can help you diagnose why the operating system reset the bus and/or aborted I/O activity. From the hardware perspective, all you would see is a bus reset without understanding why it occurs.
- There are times when no error appears on the actual hardware bus, but the I/O fails internally. This could be caused by a driver bug, for example. busTRACE can help diagnose this type of failure too.
- In a multiple NUMA node system, busTRACE can show you which NUMA node the device is located on, the I/O data buffer NUMA node, and the processor NUMA node.
- busTRACE can capture and show you event log activity generated by I/O failures
-
Complete Suite of Device Analysis Tools 完整的设备分析工具(获取IO动态,发送任何命令,自动检测FW bug,模拟硬件错误等)
busTRACE 10.0 is MUCH more than just a bus analyzer. It is a complete suite of bus and device analysis tools. You can capture I/O activity, send any command, automatically look for any firmware bugs, simulate hardware faults, build simple CDB scripts, and so much more.
正所谓:
既生瑜何生亮,两者生来会打仗。矛盾共存之为道,两者结合更有效。