Flash memories for SoC: an overview on system constraints and technology issues