1. A semiconductor device having first and second nonvolatile-memory-elements in which gate electrodes are provided via a charge-storage insulating film on a main surface of a semiconductor substrate, wherein the first nonvolatile-memory-element is used for storing data for forming a program, and the second nonvolatile-memory-element is used for storing data processed by executing the program, and has a gate width larger than a gate width of the first nonvolatile-memory-element.