Create the system memory model using uvm_mem

I am trying to build a system memory model using the uvm_mem. I have couple of questions.

  1. Can uvm_mem be used as a storing element? As in without using the dut’s memory can i write/read data into the memory created using uvm_mem. If yes, how? If no, why is it not possible.

  2. Can i use uvm_mem outside the RAL block? Does UVM support that?

  3. If i want to do configure/alloc/de-alloc/read/write using uvm_mem how can that be achieved?

I am new to UVM, thee questions might be very basic also. But I could not find out the answers till now. Please help me out.