ETB stores data that ETM or ITM or both produces. ETB provides on-chip storage of trace data using a configurable sized RAM. This reduces the clock rate and removes the requirement of high-speed for collecting trace data. The debugging tools access the buffered data using a JTAG interface.
ETB contains a trace formatter, an internal input block that embeds the trace source ID within the data to create a single trace stream. The trace formatter uses a protocol that allows trace from several sources to be merged into a single stream and later separated. This protocol outputs data in 16-byte frames.
The ETM and ITM blocks generate trace. The processor dumps the generated trace into ETB, which is a memory buffer from the on-chip memory. The bottleneck here is how to transfer the collected trace data from the chip's memory to the computer. This is where probes are useful which implement a protocol that allows communication between the chip and the computer. These probes have the ability to read registers and chip's memory.
ETB stores only 2KB of trace data and it transfers data at a very slow speed. An alternative to ETB is to output the trace data to a port instead of storing it in the chip's memory. There is a block on the processor that manages the output of trace called Trace Port Interface Unit (TPIU). If the trace is output to an external port, it must be stored in real-time, and therefore, a probe is necessary.