在CPU眼中,其他的硬件(如声卡,U盘)算是什么东西?
这个问题我一直搞不懂,一个计算机系统不光有cpu,还有很多其他的硬件,如声卡,U盘,打印机,超市用的条码识别器等,可是在设计CPU的指令集的时候,不可能考虑这么多东西啊,那么如果使用汇编语言来编程的话,如何操作这些硬件呢? 问题点数:18、回复次数:12Top
1 楼fhb13(游途道标)回复于 2006-03-02 13:38:12 得分 2
硬件在CPU眼中,无非是一个黑盒子。
CPU只管送数据,取数据。
硬件就像C语言的函数,CPU也是通过特定的规则和硬件通信的。Top
2 楼andycpp(幻瞳)回复于 2006-03-02 14:32:58 得分 0
谢谢楼上2位的解释,我似乎稍微懂了一点,但不是全懂,我把我的理解说说,你们看看对不对:
也就是说CPU如果想对哪一个硬件进行操作的话,它应该不会和这个硬件直接打交道,中间应该存在一个接口芯片,CPU唯一所作的工作就是向这个接口芯片发送数据,这些数据的格式是接口芯片实现约定好的,接口受到数据后就会明白CPU想干什么,然后接口再去和相关硬件直接打交道,这样就保证了其他硬件对CPU的透明性。
根据上述理解,我还有一点不太明白,CPU如何给相关接口发送数据呢?CPU指令的寻址方式都是内存、寄存器等,似乎没有接口啊,难道把接口地址映射到内存地址中?烦劳高手再解释一下。Top
3 楼icbm(雪狼)回复于 2006-03-02 14:39:33 得分 2
in / out 指令就是从端口接收、发送数据用的。Top
4 楼Muf(沐枫)回复于 2006-03-02 15:18:24 得分 3
正确,楼主的悟性很高啊。
CPU的最多只能做到往内存中读写数据。
为了能让CPU操作硬件,硬件的接口地址,就只能映射到CPU能访问到的内存或端口中。
BTW:为了更方便操作80x86额外提供了IN/OUT指令,来访问专用内存,这个内存地址是专门让硬件来映射用的。因此又称为端口。
而象显存之类的大容量数据,就直接映射到内存中,这样操作起来速度是最快的。Top
5 楼Leomaxking(害怕孤独,但已习惯孤独)回复于 2006-03-03 11:33:12 得分 3
所有的设备都必须遵循相应的总线规范,CPU是通过相应的总线与设备打交道的,比如说声卡以前是属于ISA总线设备,现在是属于PCI总线设备。所以说cpu其实只是从总线上读数据,向总线写数据。所以其它硬件只要遵循相应的总线规范cpu都可以与之通讯Top
6 楼andycpp(幻瞳)回复于 2006-03-03 12:33:14 得分 0
谢谢楼上的各位帮助,还有一个小问题,解决后马上结贴
CPU只能和总线打交道,显卡是AGP,声卡是PCI,那么鼠标、键盘这些设备没有连接总线啊,如何解释?Top
7 楼TheSaviour(恶贯满盈)回复于 2006-03-03 12:59:27 得分 2
最后都归于南北桥芯片与CPU联络。Top
8 楼hyigle_love(parker)回复于 2006-03-03 13:14:11 得分 2
我正在学接口技术,我觉得楼主不防去看看接口技术的书!里面把这部分讲的很清楚!
cpu和外设是不直接打交道的,至少速度上就不行,所以他们之间都要经过接口电路实现!
我刚学接口,对这部分还了解不深,不过总体上还是有了一点了解!Top
9 楼hyigle_love(parker)回复于 2006-03-03 13:28:24 得分 0
今天刚学了I/O的编址方式.把我的笔记写下来供楼主参考 有两种,一种是统一编址方式,优点是不需要专门的I/O指令,端口寻址也就是内存寻址,有利于I/O程序的设计.缺点是I/O端口占用一部分存储器寻址空间,在程序中不容易区分那些指令是访问存储器.另一种是I/O接口独立编址,优点是由于使用了专门的I/O指令使得程序清晰易读,I/O接口的地址空间独立且一般小于存储器的存储空间,所以其不占用存储器的存储空间且地址译码电路相对简单.
缺点是访问端口的指令没有访问存储器的指令丰富,cpu需设置专门的控制信号区分存储器与端口访问.
Top
10 楼andycpp(幻瞳)回复于 2006-03-03 14:08:22 得分 0
TheSaviour(恶贯满盈)
最后都归于南北桥芯片与CPU联络。
--------------------------------------------------
CPU可以直接和北桥进行数据传输,那么南桥呢?CPU和南桥是直连还是中间需要北桥过渡?
Top
11 楼Bannyjoe(Joe)回复于 2006-03-03 14:45:14 得分 2
CPU
|
AGP-北桥-内存
|
|
ATA-南桥-PCI…等接口
|
USB等…等等……
不知这样LZ看的懂不,我菜鸟一个。。。Top
12 楼hswxf(黄山一刀)回复于 2006-03-03 14:56:19 得分 2
楼主说的是以CPU为中心的设计方案,它有二个方式:
1、早期的是以(IBM)CPU为中心,总线挂接设备,这时包括内存也是设备,只是地位特殊(总线裁决器始终将其视为权最高的设备;
2、后期是以CPU为核心的南北桥分层设计,你说的那些设备,已经由南北桥(桥接器)管理,实际也是由CPU管理的;
以内存为中心设计是一个大趋势,呵呵!Top




