Trouble Uploading Program to Arduino Uno

I purchased an Arduino Uno through spark fun about a month ago. The board had been running fine. I was uploading software through the serial port COM3 with no problems.
I ran into a problem tonight, whenever I try to upload a program to the Arduino Uno, I receive the following error

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

When I try to hit the reset button on the board, the led at pin 13 will not light up.

I am not sure why I am receiving this. My arduino 022 program still recognizes the serial port. I even tried switching to serial port COM 9, but still no luck.

I also ran through the troubleshooting guide and tried everything.

Is it possible my ATMega328P chip may of gone bad?

The Mega328 may well have died. But normally it takes something like a short on the output pins to kill it. It is certainly worth swapping it out for another. But make sure that you get one with the Uno bootloader already burnt onto it. Sparkfun amongst others sell them, so its worth $5 to find out before you buy a new Uno.

The other thing that sometimes fails is the voltage regulator. Does the board behave the same with both external power and USB power?

I feared that it may of been the Mega328 chip.

I am going to order a new ATmega328 chip from sparkfun and see if that doesn't fix the problem. Is this the correct chip I need for the Arduino Uno?

Si: Does the board behave the same with both external power and USB power?

Yes, there is no difference in performance between external power and USB power. I can't get it to communicate rather I put it on external power or USB power.