The ControlLogix 1756 series backplane has more than enough bandwidth for two controllers to function totally indpendently, so you could run them sharing nothing but the power supply.
But most folks end up sharing Ethernet or ControlNet cards between the processors; they're "bridges", after all, not "scanners".
The Controllers are running totally separate programs and have totally separate databases; it's not like with a multi-core CPU in your computer where they share or divide the workload.
Data sharing between processors can be done with Produced/Consumed Tags or with MSG instructions.
Frequently, Controllers in the same chassis will share Input connections, where one is a Listen-Only connection. This conserves network bandwidth and internal connection resources.
The principal "gotcha" is when you're using ControlNet; if you have multiple Controllers running scheduled connections across the same ControlNet bridge, both of them will have to go into Program Mode to change that schedule.