程序运行的两大核心是程序与数据。
程序(数据的加工机器)即是我们所写的代码经过编译汇编之后得到的机器码,而数据是程序运行过程中定义或产生的变量。
冯诺依曼体系即把程序与数据看作一体,不加区分将它们存储在一起(交织存放,无法区分)。PC一般采用冯诺依曼结构。
哈佛体系中程序(存放在ROM、flash中)和数据(RAM)一般分开来存放。大部分单片机和嵌入式都采用哈佛结构。
冯诺依曼体系,本身存在一定的安全隐患。因为程序和数据不加区分,程序段可以被写,可能被改动。
哈佛结构分开存放程序和数据,稳定性相对较好。