I'm currently reading the paper "Surface codes: Towards practical large scale quantum computing" and have a couple of very basic questions that if answered will help me contextualize and organize the information in this paper much better. I understand the requisite info for basic QC topics but have the sneaking feeling I'm missing/misunderstanding some implicit abstraction core to the topic of surface codes. And so, would like to double check my intuitions against someone's actual knowledge.
Is a surface code an architecture onto which logical qubits, logical operations, and their connections are physically implemented? That is, is the common depiction of a surface code (the pattern of the measure qubits and data qubits) to be taken literally as a real-space image of the actual hardware or does it correspond to some abstraction in software that I'm not quite grasping?
Are quantum computers currently designed to compile programs into a surface code implementation or are surface codes still a theoretical framework due to the massive amount of qubits that are needed?