1. A computer-implemented method on a non-transitory medium for metadata processing, comprising executing on a processor the steps of: defining a number of security policies on data flowing within the processor; adding metadata tags to the data in a processor state; introducing a programmable metadata processing unit (PUMP) working in parallel with the data; moving metadata through the PUMP; enforcing a set of policies such that the metadata is unbounded and software programmable and adapted to be applicable to a plurality of metadata processing policies; and associating, indivisibly, a metadata tag with every word in a main memory of the processor.