1. A method of storing trace data in a data processing system controlled by microcode comprising the steps of: executing a microinstruction in said microcode that writes a selected subset of trace data to a hardware queue; copying said selected subset of trace data under hardware control from said hardware queue to a hardware buffer; and processing said subset of trace data.