> "how do you plan on separating data from instructions?"
Use a Harvard Architecture CPU, duh
https://en.wikipedia.org/wiki/Harvard_architecture
(j/k, if it wasn't obvious)