什么是IO ? 什么是内存?
- 内存是程序的运行场所,内存和 CPU之间通过总线连接,CPU通过一定的地址来访问通过总线来连接,CPU通过一定的地址来访问具体内存单元
- IO ( Input and out put) 是输入输出接口。是CPU和其他外部设备(如窗口与、LED、触摸屏、LED等)之间通信的道路。一般的,IO就是指CPU的各种内部或外部外设
内存的访问方式
- 内存通过CPU的地址总线来寻址定位,然后通过 CPU数据总线来读写
- CPU 的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用cpu的寻址空间的
- 内存与cpu的这种总线式访问方式是一种直接连接,优点是效率高访问快,缺点是资源有限,扩展性差
. IO 的访问方式
- IO指的是与CPU连接的各种外设
- CPU访问各种外设有2种方式:一种是类似于访问内存的方式,即把外设的寄存器当做一个内存地址来读写,从而以访问内存统一编制方式来操作外设,叫IO与内存统一编制方式,另一种是使用专用的 CPU指令来访问某种特定外设,叫 IO 与内存独立编址
对比
- 由于内存访问频率高,因此采用总线式连接,直接访问,效率最高
- IO与内存统一编制方式,优势是 IO 也需要占用一定的 CPU 地址空间,而 CPU的地址空间是有限资源
- IO与内存独立编址方式,优势是不占用 CPU 地址空间,缺点是 CPU 设计变复杂了
程序和数据
- 程序运行时两大核心元素:程序 + 数据
- 程序是我们写好的源代码经过编译、汇编之后得到的机器码,这些机器码可以拿给 CPU去解码执行, CPU 不会也不应该修改程序,所以程序是只读的
- 数据是程序运行过程中定义和产生的变量的值,是可以读写的,程序运行实际就是为了改变数据的值
冯诺依曼结构与哈佛结构
- 程序和数据都放在内存中,且不彼此分离的结构称为冯诺依曼结构,譬如 Intel 的CPU 均采用冯诺依曼结构
- 程序和数据分开独立放在不同的内存块中,彼此完全分离的结构称为哈佛结构,譬如大部分单片机均采用哈佛结构
优势对比
- 冯诺依曼结构中程序和数据不区分的放在一起,因此安全和稳定是个问题,好处是处理起来简单
- 哈佛结构中程序(一般放在 ROM、 flash 中)和数据(一般放在RAM中)独立分开存放。
因此好处是安全和稳定性高, 缺点是软件处理复杂一些(需要统一规划链接地址等 )
网友评论