Separation gap after subdivide When you subdivide a cube into 9 smaller cubes,
how to separate them 
so that between each smaller cubes is a gap ?

But, the mesh is whole so that each smaller cube is not represented by individual smaller cube meshes.
If you want individual smaller cubes it would be easier to generate them with an array rather than subdividing a large cube.  This is because when you subdivide, Blender doesn't generate internal faces.


Create a cube.   
Add an array modifier with a count of 3 and an X
relative offset of 1.1.   
Add a second array modifier with a count of 3 and a Y relative offset of 1.1.  
Add a third array modifier with a count of 3 and a Z relative offset of 1.1.


At this point you should have something that looks like a subdivided cube.



To convert to a single mesh object, select the object then press Alt+C to bring up the Convert To menu then select Mesh from Curve/Meta/Surf/Text.