Dvido
I think that you need to think about your design functionality a bit and whether your calibration is in fact part of your main design. Without knowing your project it's difficult to suggest anything but bear in mind that you are designing a logic circuit - not software code. Your code is synthesised and the synthesised logic exists throughout the life of power on the chip - i.e. code doesn't run and then disappear - the logic is always there regardless of whether it is doing anything useful at any particular time.
If you create a whole lump of logic to do some calibration straight after power up and then disable this and enable another lump of logic, both lumps of logic exist at all times - you're just freezing one of them at a time.
Sketch out a block diagram of what you're design is doing if you're getting stuck - this approach usually helps you get things straight in your head.
As far as two architectures for the same entity go you it's fairly self explanatory - you just write two architectures:
entity my_entity is
port ( A : in std_logic;
B : in std_logic;
Q : out std_logic
);
architecture rtl of my_entity is
Q <= A and B;
end rtl;
architecture behave of my_entity is
Q <= A and B after 10 ns;
end behave;
The architectures and entity can be in the same or different files but bear in mind that the entity has to be compiled first - I would suggest either putting them all in the same file or all in their own fine (i.e. don't put the entity and one architecture in one file and the second architecture in a different file; don't duplicate the entity).
You can specify which architecture you instantiate either as I showed you previously or using configurations. If you don't specify the architecture then the most recently compiled one will be used.
From what you've said though I think that you need to think about the structure of your project a little bit.