cpu的端口映射i/o和内存映射i/o

拂石 拂石     2022-09-23     111

关键词:

      CPU在访问内存时,通过数据总线和地址总线和内存交换信息,进行读写操作,这是内存映射I/O。

      而当CPU访问外接设备时,可通过内存映射和端口映射两种方式进行I/O操作,通过内存映射访问设备的方法和访问内存类似,只不过访问的是设备的不同于内存的地址设备。

      而对于片内设备来说,不同的处理器可能有不同的映射方式。X86对于片内设备,需要引出专门的地址线来连接,访问也是用的不同的in/out指令。这种方式称为端口映射。

      不同的设备需求不同,如快速性、热拔插、高带宽等。。。因此设备总线也有所不同,如常见的PCI、SATA、USB等等。CPU通过内存映射或端口映射连接到相应的总线控制器,进而访问设备。不同的设备也需要不同的驱动,而事实上,内核绝大部分是由不同的驱动所组成的。

      外接设备不同于内存,会主动产生新的数据,比如用户对键盘的敲击,将使键盘发出专门的中断信号,通过中断控制器,告诉CPU,CPU通过内存中的中断向量表跳转至专门的中断处理程序,执行后,再返回原任务继续。我们也可以修改中断向量表中可为用户定义的向量,进而控制内核当某种中断发生时,跳转到自定义的处理代码去。

linux设备驱动程序如何与硬件通信

...绍驱动程序在Linux上如何在保持可移植性的前提下访问I/O端口和I/O内存。  我们在需要示例的场合会使用简单的数字I/O端口来讲解I/O指令,并使用普通的帧缓冲区显存来讲解内存映射I/O。  I/O端口和I/O内存  计算机对每种... 查看详情

lc-3—miommiocallersavecalleesave(代码片段)

...MMIOMMIO(MemoryMappedI/O)是一种在系统内存中映射I/O端口的技术,它允许设备直接访问内存中的特定地址,从而实现I/O操作。MMIO技术可以提高I/O操作的效率,并减少CPU的负担。LC-3的MMIO技术可以提高I/O操作的效率... 查看详情

存储映射i/o

...数,因此进程只能对有效范围的内存地址进行访问。存储映射I/O是一种基于内存区域的高级I/O操作,它将磁盘文件与进程地址空间中的 查看详情

自己动手从零写桌面操作系统grapeos系列教程——18.外设和io(代码片段)

...中用省略号代表了,后面我们学到哪个再讲哪个。二、I/O端口和端口访问我们知道在CPU内部有一些寄存器,而在每个I/O接口上面也都有一些寄存器,通常叫做I/O端口。CPU与I/O接口的交流,主要就是读写这些I/O端口,也叫端口访问... 查看详情

笔记:i/o流-内存映射文件

内存映射文件时利用虚拟内存实现来将一个文件或者文件的一部分映射到内存中,然后整个文件就可以当作数组一样的访问,这个比传统的文件操作要快得多,Java 使用内存映射文件首先需要从文件中获取一个channel(通道),... 查看详情

linux内核源码分析之设备驱动(代码片段)

目录一、I/O体系结构二、与外设的交互    1、I/O端口:    2、I/O内存映射    3、轮询和中断三、驱动分类四、注册五、与文件系统关联六、资源管理七、结构体总结一、I/O体系结构与外设的通信通常称之为输入输出... 查看详情

i/o系列磁盘结构-随机i/o/顺序io转

.../输出。在计算机系统中,I/O与处理器(CPU)、存储器(内存和磁盘)是计算机的重要组成部件。输入是从I/O设备复制数据到主存,输出是从主存复制数据到I/O设备。I/O实现的功能是通过某种方式,实现计算机和外部环境(磁盘... 查看详情

内核request_mem_region和ioremap的理解

...存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:   (1)I/O映射方式(I/O-mapped)  典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通... 查看详情

i/o通道的i/o通道(channel)

...制器又控制着一个或更多的设备(磁盘驱动器、终端、LAN端口,等等。)大型机通道和PCI总线之间的一个主要区别是大型机通道通过几对大的busandtag电缆(并行通道方式),或者通过常使用ESCON(EnterpriseSystemConnection)光导纤维... 查看详情

内核request_mem_region和ioremap的理解(代码片段)

...存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种:   (1)I/O映射方式(I/O-mapped)  典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通... 查看详情

第3章文件i/o_高级文件操作:存储映射

8.高级文件操作:存储映射(1)概念:  存储映射是一个磁盘文件与存储空间的一个缓存相映射,对缓存数据的读写就相应的完成了文件的读写。 (2)mmap和munmap函数头文件#include<sys/types.h>#include<sys/mman.h>函数void*... 查看详情

线程池大小选择:针对i/o密集型场景和cpu密集型场景

...看总结I/O密集型场景I/O密集型场景指的是系统的磁盘以及内存的性能要高于CPU性能,因此系统在这种场景下,大部分时间消耗在磁盘/内存的读写,CPU的利用率不高。比如一些包含网络传输的场景。通常我们不会希望CP... 查看详情

linux系统i/o模型及select、poll、epoll原理和应用

...才能理解这些IO模型设计的依据操作系统使用虚拟内存来映射物理内存,对于32位的操作系统来说,虚拟地址空间为4G(2^32)。操作系统的核心是内核,为了保护用户进程不能直接操作内核,保证内核安全,操作系统将虚拟地址... 查看详情

cpu-bound(计算密集型)和i/obound(i/o密集型)/数据密集型(代码片段)

...8039I/O密集型(CPU-bound)I/Obound指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是CPU在等I/O(硬盘/内存)的读/写,此时CPULoading不高。CPUbound指的是系统的硬盘/内存效能相对CPU的效能要好很多,此时... 查看详情

嵌入式:arm的io访问与芯片选择

...(1)存储器映射I/OARM采用了存储器映射I/O方式。即把I/O端口地址作为特殊的存储器地址。但I/O和真正的存储器有所不同:存储器的单元可以重复读多次,其值是一致的。而I/O设备的连续2次输入,其输入值可能有所不同。这些差... 查看详情

i/o密集型和cpu密集型(代码片段)

...Ubound)CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPULoading100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处... 查看详情

i/o

i/o(计算机接口)I/O(input/output),即输入/输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被... 查看详情

网络io(代码片段)

...,这其实就是I/O。而我们时常关心的磁盘I/O指的是硬盘和内存之间的输入输出。读取本地文件的时候,要将磁盘的数据拷贝到内存中,修改本地文件的时候,需要把修改后的数据拷贝到磁盘中。网络I/O指的是网卡与内存之间的输... 查看详情