I ve been working on my chess program as a hobby, the move generator seems to be correct using bitboard (from 10-30Million node / sec on a core2 duo 1.8), and seems to do perfectly legal (checked with divide/perft). I m bit tired of doing optimisation on it so I thought i ll work on alpha beta + evaluation. Though it seems that a transposition table+iterative deepening (while my opponent thinking for example) would speed up search but I m fairly confused about those two together and I hoped you could help me there

From what i understand iterative deepening, is searching all move with depth 1 and then do the same thing with depth 2 and so on until a time limit has been reached.
The advantage seems to fill up the transposition table, that s where i m bit lost ... The transposition table is checked and filled with the result of the previous search...
- If we search at depth 1, the x current move will end up in the transposition table with a bad evaluation (depth 1 isnt reliable I guess), so when we start depth 2, we ll get a huge hit on transposition table hence we shouldnt rely on transposition table ?
- So when do we put the result in the transposition table ? for the top nodes ? For every nodes ? For the bottom explored node ? Do we have to check the search depth for which the node were inserted inside the transposition table ?
Thanks a lot for your answers
