I/O端口与内存地址(上)
我们目前的微型计算机和一些单片机。大多数都是总线结构的。也就是由CPU和Ctrl-BUS、Address-BUS、Data-BUS三总线结构构成的。CPU我们可以把它看成是一个计算器。而内存可以看作是一个写有数据和程序的纸张。CPU在加电后从内存中的某个位置开始执行放在内存中的指令。一般我们看到的BIOS就是上电初始化的第一段程序。由这些程序在进行象操作系统引导这样的工作.那么CPU和内存怎样连接呢?这个就是使用三条总线(BUS)了。不过BUS可不是一个简单的导线。而是复杂的控制系统。
+----------------+
| CPU | +-------------+
+----------------+ | I/O |
| | | +-------------+
| | | | | |
-C-BUS----+-|-|-------------------------+------+-|-|---- …
| | | | |
-A-BUS------+-|-----------------------+-|--------+-|---- …
| | | |
-D-BUS--------+---------------------+-+|----------+---- …
| | |
-(I/O-BUS)------------- | | | ---------
+-----------------+
| RAM/ROM |
+-----------------+
计算器(CPU)怎样找到纸张(RAM/ROM)中的数据和指令这个就是CPU寻址。CPU通过总线发出信号从RAM/ROM或I/O中获得数据或指令。内存和I/O的数据由A-BUS的值来确定。这个值就是地址。CPU能寻址的范围是由CPU的体系结构和A-BUS的宽度决定的。如:CPU是16位的。它可以容纳的地址范围是0~65535个。16K大小。但是,在设计计算机时不一定把所有的A-BUS都引出来!有些电脑主板的A-BUS就不是全部。所以,它们不能上大于主板规定容量以上的内存。