1. A three-dimensional memory array comprising: one or more two-dimensional memory arrays of one-time programmable memory elements arranged in horizontal layers and stacked vertically upon one another; and a two-dimensional memory array of reprogrammable phase change memory elements stacked on said one or more two-dimensional memory arrays as the top layer of said three-dimensional memory array.