pci总线,io映射内存,cpu发出一个地址以后,由谁来判断这个地址是发往内存还是外设?

qq_35867138 2017-06-24 11:34:14
我的原来想法是,内存是挂在pci总线上的,在计算机启动时配置pci总线控制器,然后由pci总线控制器确定地址是发往内存还是外设。但是我看网上画的图,内存往往并没有连接在pci总线上,而是连接在内存控制器上。而内存控制器也没有连接在pci总线上。所以我很奇怪的是,因为io地址映射到了内存,那么访内存的地址就得判断是究竟该发往内存,还是映射的外设,那么这个判断是由谁来实现的?难道在内存控制器和pci控制器之间还有一个判断机构?
本人小白,恳请各位大牛传授知识。。。。。。。。谢谢了。。。
...全文
256 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2017-06-27
  • 打赏
  • 举报
回复
先要理解,物理内存和线性(逻辑)内存是不同的概念 intel的x86体系里,内存是段页式管理 参考: http://blog.csdn.net/CJL5678/article/details/8948799
图目录 V 表目录 I 第一部分 3 1 概述 1 1.1 龙芯系列处理器介绍 1 1.2 龙芯3A简介 3 2 系统配置与控制 5 2.1 芯片工作模式 5 2.2 控制引脚说明 5 2.3 Cache一致性 6 2.4 系统节点级的物理地址空间分布 7 2.5 地址路由分布与配置 8 2.6 芯片配置及采样寄存器 15 3 GS464处理器核 17 4 二级Cache 19 5 矩阵转置模块 21 6 处理器核间中断与通信 24 7 I/O中断 26 8 DDR2/3 SDRAM控制器配置 29 8.1 DDR2 SDRAM控制器功能概述 29 8.2 DDR2 SDRAM读操作协议 30 8.3 DDR2 SDRAM写操作协议 30 8.4 DDR2 SDRAM参数配置格式 31 9 HyperTransport控制器 63 9.1 HyperTransport硬件设置及初始化 63 9.2 HyperTransport协议支持 63 9.3 HyperTransport中断支持 63 9.4 HyperTransport地址窗口 63 9.4.1 HyperTransport空间 63 9.4.2 HyperTransport控制器内部窗口配置 63 9.5 配置寄存器 63 9.5.1 Bridge Control 63 9.5.2 Capability Registers 63 9.5.3 自定义寄存器 63 9.5.4 接收地址窗口配置寄存器 63 9.5.5 中断向量寄存器 63 9.5.6 中断使能寄存器 63 9.5.7 Interrupt Discovery & Configuration 63 9.5.8 POST地址窗口配置寄存器 63 9.5.9 可预取地址窗口配置寄存器 63 9.5.10 UNCACHE地址窗口配置寄存器 63 9.5.11 HyperTransport总线配置空间的访问方法 63 9.6 HyperTransport多处理器支持 63 10 低速IO控制器配置 63 10.1 PCI/PCI-X控制器 63 10.2 LPC控制器 63 10.3 UART控制器 63 10.3.1 数据寄存器(DAT) 63 10.3.2 中断使能寄存器(IER) 63 10.3.3 中断标识寄存器(IIR) 63 10.3.4 FIFO控制寄存器(FCR) 63 10.3.5 线路控制寄存器(LCR) 63 10.3.6 MODEM控制寄存器(MCR) 63 10.3.7 线路状态寄存器(LSR) 63 10.3.8 MODEM状态寄存器 (MSR) 63 10.3.9 分频锁存器 63 10.4 SPI控制器 63 10.4.1 控制寄存器(SPCR) 63 10.4.2 状态寄存器(SPSR) 63 10.4.3 数据寄存器(TxFIFO) 63 10.4.4 外部寄存器(SPER) 63 10.5 IO控制器配置 63 第二部分 63 11 中断的配置及使用 63 11.1 中断的流程 63 11.2 中断路由及中断使能 63 11.2.1 中断路由 63 11.2.2 中断使能 63 11.3 中断分发 63 12 串口的配置及使用 63 12.1 可选择的串口 63 12.2 PMON的串口配置 63 12.3 Linux内核的串口配置 63 13 EJTAG调试 63 13.1 EJTAG介绍 63 13.2 EJTAG工具使用 63 13.2.1 环境准备 63 13.2.2 PC采样 63 13.2.3 读写内存 63 13.2.4 执行说明 63 13.2.5 在线GDB调试 63 14 地址窗口配置转换 63 14.1 一二级交叉开关地址窗口配置方法 63 14.2 一级交叉开关地址窗口 63 14.3 一级交叉开关地址窗口配置时机 63 14.4 二级交叉开关地址窗口 63 14.5 对地址窗口配置的特别处理 63 14.6 HyperTransport地址窗口 63 14.6.1 处理器核对外访问地址窗口 63 14.6.2 外部设备对处理器芯片内存DMA访问地址窗口 63 14.6.3 低速设备地址窗口 63 14.7 地址空间配置实例分析 63 14.7.1 一级交叉开关实例1 63 14.7.2 一级交叉开关实例2 63 14.7.3 二级交叉开关实例1 63 14.7.4 二级交叉开关实例2 63 15 系统内存空间分布设计 63 15.1 系统内存空间 63 15.2 系统内存空间与外设DMA空间映射关系 63 15.3 系统内存空间的其它映射方法 63 16 X系统的内存分配 63

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧