A method of operating a program of a three-dimensional flash memory including word lines formed to extend in a horizontal direction on a substrate, spaced apart from each other in a vertical direction, and laminated and vertical channel structures passing through the word lines and extending in the vertical direction, wherein each of the vertical channel structures includes a vertical channel pattern formed to extend in the vertical direction, a back gate formed to cover an inner wall of the vertical channel pattern and extend in the vertical direction, and a ferroelectric-based data storage pattern formed to cover an outer wall of the vertical channel pattern, and the data storage pattern and the vertical channel pattern constitute memory cells corresponding to the word lines, the method comprising:
- applying a program voltage to a selected word line corresponding to a target memory cell that is a target of a program operation among the word lines;
- floating each of unselected word lines except for the selected word line among the word lines;
- applying a pass voltage to a back gate of a selected vertical channel structure including the target memory cell among the vertical channel structures;
- and
- performing the program operation on the target memory cell in response to the program voltage being applied to the selected word line, the unselected word lines being floating, and the pass voltage being applied to the back gate.