I've been checking the rate (it's actually part of my regular day job) for my trip this week. I've done some exchange in the last few weeks ranging from 1.01 to 1.022. Today's USD went back up a little bit as I type so I'm not making any exchange at the moment. Unless you're monitoring the market closely, my suggestion is to do small amount (e.g $100 or whatever amount you feel comfortable) each time for a few time to average out the up's and down's of exchange rate. I've USD account with TD and BMO. I found that TD offers lower rate in general but I normally compared the both bank's rate before making the exchange.
Have fun for your trip!