免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7209 | 回复: 6
打印 上一主题 下一主题

3. 什么是存储器映射I/O?为什么在一些情况下要使用它? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-21 10:14 |只看该作者 |倒序浏览
10可用积分
如题

论坛徽章:
0
2 [报告]
发表于 2009-09-21 11:33 |只看该作者
是不是把存储空间映射到IO空间那种,一般是DMA传输时用吧 ,个人愚见

论坛徽章:
0
3 [报告]
发表于 2009-09-21 16:29 |只看该作者
不是

论坛徽章:
0
4 [报告]
发表于 2009-09-21 16:52 |只看该作者
首先说什么是IO;
有这几种,老的体系结构上,CPU访问设备有2个地址空间,存储器空间,和IO空间,用2套指令.
注意这里的IO通常是同步访问的,就是说,一个in 或out指令分地址段,数据段,数据传输完了,指令才结束.
后来发现IO空间纯粹多余,因为如果存储器空间,和IO空间都经过北桥的,电器上完全就统一了,对CPU来说北桥外面是透明的.2个地址空间反而麻烦了.干脆只要一个地址空间,即存储器空间.

那对于非存储器的而是设备寻址,也就是和以前的访问设备一样,但是用内存方式的寻址,这种方式访问的IO设备就是IO内存.

随便问问2个问题.
1.听说有个方式是,本来在IO空间的设备能转成存储器地址?(想来想去没啥意义,是不是我错觉)
2,对于非同步IO,说白了是不是就是利用DMA传输的块设备?最近看了下infiniband这玩意超级复杂,和一个加密的网络差不多,但是确实所谓的IO扩展技术.那这中IO我觉得决不可能是指令同步的访问的,是不是就是所谓的块IO方式.

[ 本帖最后由 epegasus 于 2009-9-21 17:15 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-09-21 16:57 |只看该作者
kankan

论坛徽章:
0
6 [报告]
发表于 2009-09-25 11:33 |只看该作者
回答四楼的问题:
随便问问2个问题.
1.听说有个方式是,本来在IO空间的设备能转成存储器地址?(想来想去没啥意义,是不是我错觉)
2,对于非同步IO,说白了是不是就是利用DMA传输的块设备?最近看了下infiniband这玩意超级复杂,和一个加密的网络差不多,但是确实所谓的IO扩展技术.那这中IO我觉得决不可能是指令同步的访问的,是不是就是所谓的块IO方式.

1.就是存储器映射I/O,将存储器的地址分出一部分做I/O,每个控制寄存器被分配唯一的一个内存地址。
2.不是,异步I/O,即异步传输,也称为中断传输,CPU在启动传输后便转向其他工作,直到中断到达。

论坛徽章:
0
7 [报告]
发表于 2009-09-25 16:40 |只看该作者
确实,我理解有问题。
infiniband不是很懂,只知道是高速的网络通信,速度很快
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP