1. A method for providing trace functionality for a microprocessor comprising an execution unit, said method comprising: providing a memory coupled to said execution unit, utilizing said memory to store trace data during a trace operation; providing hardware integrated with said microprocessor and utilizable during a trace operation to assist in said trace operation providing a trace control coupled to said execution unit and to said memory; providing a breakpoint control coupled to said execution unit, said trace control and said memory; providing a plurality of sets of programmable registers coupleable to said breakpoint control, and each set comprising a base address register, a data register, a data mask register and a control register; providing in said trace control a programmable trace control register and a programmable base write address register, said trace control register being programmable to determine one of a plurality of trace functions; and integrating said trace control, said breakpoint control and said plurality of sets of programmable registers with said execution unit.