Single Cycle Data-path Requirements
Each element in that data path is purely logical, thus in each cycle an element can perform only a single operation.
If you had only one memory element, you would've possibly need to perform two operations in one cycle: (1) read the instruction (2) read/write data. This is impossible with a logic-only (sateless) elements within a single cycle.