Memory hierarchy is designed keeping in mind the requirements and limitation of data processing capability..For this purpose only memory hierarchy is designed..
Cache memory can be placed in 2 possible ways and hence of 2 types :
a) Physically addressed cache :
This is used to those contents in physical memory(main memory) which are frequently referred by CPU..But the addressing of those data is done in terms of physical addressing mechanism i.e. the same mechanism which we use to address physical memory
b) Virtual addressed cache :
This is used to map to logical(or virtual address) directly without the involvement of physical address.Hence no address translation is required for this type of cache..Hence it is placed before TLB..
So we have seen that in no way cache is placed between main memory and secondary storage doing which will lead to violation of memory hierarchy..
Again statement 2 is also wrong..The reason being that it will deny the purpose of cache..We call those storage devices as secondary devices which are not directly accessible by CPU..So if cache is used as secondary storage , so same will happen with cache as well.So it remains no longer directly accessible to CPU..Thus access time will increase drastically..
Hence option D) is true for the given question..