1. A method for allocating a plurality of data streams, comprising: receiving, at an allocator, a first data stream comprising a first memory address and first data associated with the first memory address; examining, by the allocator, the first data stream to make a first determination that the first data stream is a soft allocating data stream; sending, from the allocator based on the first determination, a plurality of write probes to a plurality of caches, wherein each write probe of the plurality of write probes comprises at least part of the first memory address; receiving, at the allocator in response to a first write probe of the plurality of write probes, a cache line present acknowledgement from a first cache of the plurality of caches; and directing, by the allocator in response to the cache line present acknowledgement, the first data of the first data stream to the first cache.