dbo:abstract
|
- Memory Mapped I/O (MMIO) (deutsche Übertragungen wie speicherabgebildete Ein-/Ausgabe oder speicherbezogene Adressierung konnten sich bislang nicht durchsetzen) ist ein Verfahren zur Kommunikation einer Zentraleinheit mit Peripheriegeräten. Die I/O-Register von elektronischen Bauelementen, mit denen angeschlossene Hardware gesteuert wird, werden in den Hauptspeicher-Adressraum abgebildet. Der Zugriff auf die Bauelemente kann dann über übliche Speicherzugriffsroutinen geschehen. Es werden keine besonderen Befehle benötigt wie bei der Realisierung der Ein-/Ausgabe mittels I/O-Ports am Prozessor. Sind die Bauelemente in den Prozessor integriert (Mikrocontroller), ist Memory Mapped I/O der Regelfall. Das Gegenstück ist Port-Mapped I/O oder Isolated I/O – die Register der Bauelemente werden über eigene Portadressen in einem separaten I/O-Adressraum angesprochen. Gegenüber einem separaten I/O-Bus besitzt Memory Mapped I/O den Vorteil, dass man in der Regel über Strukturen und Pointer aus einer Hochsprache wie C oder C++ vollständig auf die Hardware zugreifen kann, ohne Teile des Programms in Assembler bzw. Maschinensprache schreiben zu müssen. Der Nachteil besteht darin, dass ein Teil des Adressraums dadurch belegt wird und nicht mehr für echten Hauptspeicher genutzt werden kann. Somit verkleinert sich die maximale nutzbare Speichergröße, was vor allem bei Prozessoren mit kleinen Adressräumen problematisch sein kann. Heute herrscht immer noch ein Nebeneinander von Memory- und Port-Mapped-Verfahren. Memory-Mapped-I/O ist zwar eine Vereinfachung für die Softwareentwicklung, jedoch problematisch in Bezug auf die Konstruktion – insbesondere bei einem modularen Aufbau der Systeme. Memory-Mapped-I/O wurde daher anfänglich im Wesentlichen bei Systemen mit festem Aufbau verwendet, etwa vielen 8-Bit-Rechnern und dem Commodore Amiga. Die bei Personal Computern dominierenden Intel-Prozessoren bieten zwar auch Port-Mapped I/O an, werden aber trotzdem immer mehr auch in Memory-Mapped-Umgebungen betrieben, um deren Vorteile auszunutzen, was dank der in der 64-Bit-Ära größer gewordenen Adressräume leichter umsetzbar ist. (de)
- E/S mapeada en memoria y E/S independiente son dos métodos de implementar entradas/salidas entre los periféricos y la CPU en un computador. Otro método, no discutido en este artículo, es usar DMA. La E/S mapeada en memoria usa el mismo bus de direcciones para memoria y dispositivos de E/S, y las instrucciones de la CPU usadas para acceder a la memoria son también usadas para acceder a los dispositivos. Para tener espacio para los dispositivos de E/S, las áreas del espacio direccionable por la CPU deben ser reservadas para E/S más que para memoria. Esta reserva puede ser temporal (Commodorere 64 podía usar bank switingch entre dispositivos de E/S y memor) o permanente. Cada dispositivo de E/S monitoriza el bus de direcciones de la CPU y responde a cualquier acceso de esta al espacio de direcciones del dispositivo, conectando el bus de datos con la localización en memoria física del dispositivo deseado. La E/S independiente usa un tipo especial de instrucciones de la CPU para implementar E/S. Principalmente en microprocesadores Intel encontramos las instrucciones IN y OUT que pueden leer y escribir un único byte en un dispositivo de E/S. Estos tienen un espacio de direcciones separadas de la memoria, llevado a cabo o bien por un "pin E/S” extra en la CPU o bien por un bus entero dedicado a E/S. Un dispositivo de acceso directo a memoria (DMA) no se ve afectado por estos métodos de comunicación CPU-dispositivo, especialmente por la E/S mapeada en memoria. Esto es porque, por definición, DMA es un método de comunicación memoria-dispositivo que evita la CPU. Una interrupción hardware es otro método de comunicación entre CPU y periféricos. No obstante, se trata siempre separadamente por múltiples razones. Es un iniciador de dispositivo, en oposición a los métodos iniciadores de CPU. Es también unidireccional, pues la información fluye solo del dispositivo a la CPU. Para terminar cada interrupción lleva consigo misma solo un bit de información con la única intención de notificar la interrupción. (es)
- Memory-mapped I/O (MMIO) and port-mapped I/O (PMIO) are two complementary methods of performing input/output (I/O) between the central processing unit (CPU) and peripheral devices in a computer. An alternative approach is using dedicated I/O processors, commonly known as channels on mainframe computers, which execute their own instructions. Memory-mapped I/O uses the same address space to address both main memory and I/O devices. The memory and registers of the I/O devices are mapped to (associated with) address values. So a memory address may refer to either a portion of physical RAM, or instead to memory and registers of the I/O device. Thus, the CPU instructions used to access the memory can also be used for accessing devices. Each I/O device monitors the CPU's address bus and responds to any CPU access of an address assigned to that device, connecting the data bus to the desired device's hardware register. To accommodate the I/O devices, some areas of the address bus used by the CPU must be reserved for I/O and must not be available for normal physical memory. The reservation may be permanent, or temporary (as achieved via bank switching). An example of the latter is found in the Commodore 64, which uses a form of memory mapping to cause RAM or I/O hardware to appear in the 0xD000-0xDFFF range. Port-mapped I/O often uses a special class of CPU instructions designed specifically for performing I/O, such as the in and out instructions found on microprocessors based on the x86 and x86-64 architectures. Different forms of these two instructions can copy one, two or four bytes (outb, outw and outl, respectively) between the EAX register or one of that register's subdivisions on the CPU and a specified I/O port which is assigned to an I/O device. I/O devices have a separate address space from general memory, either accomplished by an extra "I/O" pin on the CPU's physical interface, or an entire bus dedicated to I/O. Because the address space for I/O is isolated from that for main memory, this is sometimes referred to as isolated I/O. (en)
- Port I/O yang berarti gerbang konektor Input/Output pada komputer, seperti pada keyboard, mouse paralel/serial ataupun USB. Menyediakan koneksi untuk seperti kamera digital, printer dan scanner.
* l
*
* s (in)
- Memory-mapped I/O (MMIO) e port I/O (chiamato anche port-mapped I/O o PMIO) sono due metodi complementari per eseguire operazioni di input/output (I/O) in un computer, tra la CPU ed un dispositivo di I/O. Un altro metodo è quello di usare dei processori di I/O dedicati (canali). (it)
- ( 입출력 포트에 대한 일반적인 의미에 대해서는 컴퓨터 포트 문서를 참고하십시오.) 메모리 맵 입출력(영어: Memory-mapped I/O, MMIO)는 마이크로프로세서(CPU)가 입출력 장치를 액세스할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식이다. 따라서 전체 메모리의 주소공간에 입출력 장치의 메모리나 레지스터를 메모리로 취급하여 전체 메모리의 일부분으로 특정영역에 할당하여 배치하는 방식이다. 입출력 장치의 메모리 주소가 나뉘어 있지 않기 때문에 액세스할 때는 메모리와 같은 주소공간이므로 같은 기계어 코드로 수행한다. 입출력 맵 입출력의 주소공간이 나뉘어 있어서 분리되어 있는 반면 메모리 맵 입출력은 메모리의 한 부분일 뿐이다. 보통 입출력 장치가 메모리에 비해 속도가 느리고, 주소공간의 크기가 작다고 가정하고 설계한다. 물론 다 느리지는 않지만 느린경우가 있으므로 느린것으로 상정할 수 밖에 없다. 입출력 장치가 느린속도의 액세스 속도를 갖는 경우, 마이크로프로세서에게 속도를 조절할 수 있는 하드웨어 수단을 제공하여 효율을 기하는 경우가 많다. 일반적으로 인텔의 마이크로프로세서(8085, x86)는 입출력 맵 입출력을 사용한다. 이에비해 프리스케일(과거 모토로라, 6800, 6809, 68000패밀리)에서는 메모리 맵 입출력을 사용한다. ARM과 같은 RISC의 경우 하드웨어와 기계어 명령어의 단순화 원칙에 따라 메모리 맵 입출력 방식을 사용한다. 메모리 맵 입출력과 포트 입출력은 컴퓨터 안의 CPU와 주변 장치 사이에서 입출력을 수행하는 두 가지의 상호 보완적인 방법이다. 또, 보통 메인프레임 컴퓨터에서 보통 채널이라고 불리는 입출력만 전담하는 프로세서를 사용하는 방법도 있다. 이러한 전담 프로세서는 자신만의 명령어를 가지고 이를 수행한다. 메모리 맵 입출력(메모리 맵 파일 입출력과 혼동하지 말 것.)은 메모리와 입출력 장치 접근을 위해, 같은 주소 버스를 이용한다. 그리고 메모리에 접근하기 위한 CPU 명령어는 장치에 접근하는 데에도 쓰인다. 입출력 장치를 처리하려면 CPU의 주소 공간 중 일부가 입출력을 위해 할당되어야 하는데, 이렇게 할당하는 것은 일시적일 수도 있고 (코모도어 64 컴퓨터는 입출력 장치와 일반적인 메모리를 뱅크 스위치할 수 있었다.), 아니면 영구적일 수도 있다. 각 입출력 장치는 CPU의 주소 버스를 감시하고 있다가, CPU가 장치를 위해 할당한 메모리 공간에 접근하면 이에 반응을 보낸다. 그리고 데이터 버스를 의도한 장치의 하드웨어 레지스터에 연결해 준다. 포트 맵 입출력은 입출력을 수행하기 위해 특별히 고안된 CPU 명령어를 사용한다. 이 방식은 보통 인텔 마이크로프로세서들에서 구현된다. 인텔 프로세서에는 IN과 OUT이라는 명령어가 있는데, 이것은 입출력 장치에 1 바이트를 읽고 쓰기 위한 것이다. 또한 입출력 장치는 일반적인 메모리 공간과 별도로, 독립된 주소 공간을 가진다. 이러한 것은 CPU의 물리적 인터페이스에서, 특별히 준비된 입출력 핀을 이용해서 구현되거나, 아니면 입출력 전담으로 쓰이는 버스를 이용해서 구현된다. 한 장치의 직접 메모리 접근 (Direct Memory Access, DMA)은 그러한 CPU와 장치 사이의 통신 방식에 영향을 받지 않는다. 특히 메모리 맵에 영향을 받지 않는다. DMA가 CPU를 통하지 않고, 메모리와 장치 사이에 직접 통신하기 때문이다. 하드웨어 인터럽트는 CPU와 주변 장치 사이에 통신을 하는 또 하나의 방법이다. 하지만, 여러 이유로 조금 다르게 취급된다. 앞서 살펴본 방법과 달리, 이 방식은 장치가 요청을 하며 한 방향으로만 통신한다. 다시 말해, 정보가 장치로부터 CPU로만 흐른다는 것이다. 마지막으로 각 인터럽트 라인은, "인터럽트가 발생했다"라는 식으로 고정된 의미를 갖는 단 한 비트의 정보만을 가지게 된다. (ko)
- MMIO (ang. Memory-Mapped Input/Output) – sposób ułatwienia obsługi dostępu do i wykonywania operacji na urządzeniach wejścia/wyjścia w systemach komputerowych. W metodzie tej rejestry urządzenia zostają odwzorowane w przestrzeni adresowej pod zadanym adresem. Oznacza to, że zapisy i odczyty do pamięci pod tym adresem, wykonywane przez procesor, zamiast powodować operacje na rzeczywistej pamięci operacyjnej, skutkują zapisami i odczytami do fizycznych rejestrów urządzenia. Dzięki temu komunikacja z urządzeniem staje się łatwiejsza, gdyż nie różni się niczym od korzystania z pamięci operacyjnej. W szczególności używa się do tego celu tych samych instrukcji, dzięki czemu możliwe jest uproszczenie budowy i wewnętrznej logiki mikroprocesora. (pl)
- メモリマップドI/O(英: memory-mapped I/O)とは、コンピュータ内でCPUと入出力機器の間で入出力を行う手法の一種。他の入出力手法としては、ポートマップドI/O(英: port-mapped I/O)と、メインフレームなどで独立した入出力プロセッサを使用するチャネル・コントローラ方式がある。本項目ではポートマップドI/Oについても併せて解説する。「メモリマップト」と「ト」に濁音を付けない表記も用いられる。 (ja)
- E/S mapeada em memória (em inglês, memory-mapped I/O) ou E/S mapeada em portas (em inglês, port-mapped I/O ou port I/O) são dois métodos complementares de executar entrada/saída entre a CPU e os dispositivos periféricos no computador. Outro método, não discutido nesse artigo, é usar um processador dedicado de E/S (comumente conhecido como canal em computadores mainframe) que executa suas próprias instruções. O método de mapeamento de E/S em memória utiliza a via de endereços para endereçar tanto a memória quanto os dispositivos de E/S e as instruções da CPU usadas para acessar a memória também são usadas para acessar os dispositivos. Para acomodar os dispositivos de E/S áreas do espaço endereçável da CPU devem ser reservadas para E/S. A reserva de espaço pode ser temporária (o Commodore 64 podia trocar entre seus dispositivos de E/S e a memória regular) ou permanente. Cada dispositivo de E/S monitora a via de endereçamento da CPU e responde a qualquer acesso da CPU ao espaço de endereço destinado ao dispositivo, conectando a via de dados ao registrador do hardware do dispositivo desejado. E/S mapeada em porta utiliza uma classe especial de instruções do processador. Isto é normalmente encontrado em , especificamente as instruções IN e OUT, que podem escrever de um a quatro bytes (outb, outw, outl) em um dispositivo de E/S. Estes dispositivos possuem um espaço de endereços separado da memória geral, implementado por um pino extra de E/S na interface da CPU ou por um barramento inteiro dedicado a entrada/saída. Por esta área de memória, dedicada a E/S, ser isolada da memória principal ela é, às vezes, chamada de E/S isolada. O acesso direto à memória (DMA) de um dispositivo não é afetado por esses métodos de comunicação CPU-dispositivo, nem pelo mapeamento em memória. Isto porque o DMA é, por definição, algo distinto da comunicação com a CPU. A Interrupção de Hardware é outra forma de comunicação entre a CPU e dispositivos periféricos, mas, por várias razões, é tratada separadamente: ela é iniciada pelo dispositivo, enquanto o método descrito acima é iniciado pela CPU; é unidirecional, pois os sinais de informação fluem somente do dispositivo para a CPU; cada interrupção carrega somente um bit de informação, com um significado fixo, dizendo algo como "um evento que requer atenção ocorreu num dispositivo dispositivo, nesta linha de interrupção". (pt)
- 内存映射输入输出(英語:Memory-mapped I/O, MMI/O,简称为内存映射I/O),以及端口映射输入输出(port-mapped I/O, PMI/O,也叫作独立输入输出(isolated I/O),是PC机在中央处理器(CPU)和外部设备之间执行输入输出操作的两种方法,这两种方法互为补充。除此之外,执行输入输出操作也可以使用专用输入输出处理器(dedicated I/O processors)——这通常是指大型電腦上的通道输入输出(Channel I/O),这些专用处理器执行自有的指令集。 内存映射I/O(不要和的输入输出混淆)使用相同的地址总线来寻址內存和输入输出设备(简称I/O设备),前提是I/O设备上的设备内存和寄存器都已经被映射到内存空间的某个地址。这样当CPU访问某个地址的时候,可能是要访问某一部份物理內存,也可能是要访问I/O设备上的内存。因此,设备内存也可以通过内存访问指令来完成读写。每个I/O设备监测CPU的地址总线,并且在发现CPU访问被分配到本设备的地址区域的时候做出响应,建立数据总线和相应设备寄存器之间的连接。为了实现CPU对MMI/O设备的访问,相应的地址空间必须给这些设备保留, 并且不能再分配给系统物理内存。这可以是永久保留,也可以是暂时性的保留。通常来说X86架构都是永久保留的,而在Commodore 64中,由于采用了I/O设备和普通内存之间的堆交换技术(),可以做到暂时性保留。 PMI/O通常使用一组专门为I/O设计的CPU指令来执行I/O操作。比如在基于x86和x86-64架构的微处理器中使用in/out指令。这两条指令有一些不同的形式,分别用来在CPU的EAX寄存器(或高16位/低16位/高8位/低8位)和I/O设备的某个端口之间完成对单字节/双字节/四字节数据的操作(比如对out指令,分别有outb, outw和outl) 。I/O设备有一个和内存地址空间相互独立的I/O地址空间。I/O设备通过专用I/O针脚或者专用的总线和CPU相连。因为这个I/O地址空间和内存地址空间相互独立,所以有时候称为独立I/O. (zh)
- Ввод-вывод через порты (англ. I/O ports) — схемотехническое решение, организующее взаимодействие процессора и устройств ввода-вывода. Противоположность вводу-выводу через память. Во многих моделях процессоров ввод-вывод организуется теми же функциями, что и чтение-запись в память — так называемый «ввод-вывод через память». Соответственно, схемотехнически устройства ввода-вывода располагаются на шине памяти, и часть адресов памяти направляется на ввод-вывод. В процессорах Intel, микроконтроллерах AVR и некоторых других существуют отдельные команды для ввода-вывода — IN и OUT — и, соответственно, отдельное адресное пространство: в процессорах Intel — от 000016 до FFFF16. Порты ввода-вывода создаются в системном оборудовании, которое циклически декодирует управляющие, адресные и контакты данных процессора. Затем порты настраиваются для обеспечения связи с периферийными устройствами ввода-вывода. Одни порты используются для передачи данных (например, приём данных от клавиатуры или чтение времени системных часов), другие — для управления периферийными устройствами (команда чтения данных с диска). Исходя из этого порт ввода-вывода может быть портом только для ввода, только вывода, а также двунаправленным портом. Ввод-вывод через память никак не связан с прямым доступом к памяти; ПДП — отдельное схемное решение, связывающее шину ввода-вывода с контроллером памяти и разгружающее процессор на крупных операциях ввода-вывода. В машине с ПДП, чтобы записать блок памяти, например, на диск, надо сформировать этот блок в памяти, а затем операциями ввода-вывода (либо через порт, либо через специальный адрес памяти, в зависимости от архитектуры) отправить команду «Начать запись». Когда запись будет закончена, устройство каким-то образом предупредит процессор об этом (например, прерыванием). В частности, известные любому знакомому с DOS три параметра SoundBlaster — порт, DMA и IRQ — указывают, как передавать звуковой плате команды, как она будет брать звуковую волну из памяти и как плата сообщит процессору, что отрезок волны проигран. (ru)
|
rdfs:comment
|
- Port I/O yang berarti gerbang konektor Input/Output pada komputer, seperti pada keyboard, mouse paralel/serial ataupun USB. Menyediakan koneksi untuk seperti kamera digital, printer dan scanner.
* l
*
* s (in)
- Memory-mapped I/O (MMIO) e port I/O (chiamato anche port-mapped I/O o PMIO) sono due metodi complementari per eseguire operazioni di input/output (I/O) in un computer, tra la CPU ed un dispositivo di I/O. Un altro metodo è quello di usare dei processori di I/O dedicati (canali). (it)
- MMIO (ang. Memory-Mapped Input/Output) – sposób ułatwienia obsługi dostępu do i wykonywania operacji na urządzeniach wejścia/wyjścia w systemach komputerowych. W metodzie tej rejestry urządzenia zostają odwzorowane w przestrzeni adresowej pod zadanym adresem. Oznacza to, że zapisy i odczyty do pamięci pod tym adresem, wykonywane przez procesor, zamiast powodować operacje na rzeczywistej pamięci operacyjnej, skutkują zapisami i odczytami do fizycznych rejestrów urządzenia. Dzięki temu komunikacja z urządzeniem staje się łatwiejsza, gdyż nie różni się niczym od korzystania z pamięci operacyjnej. W szczególności używa się do tego celu tych samych instrukcji, dzięki czemu możliwe jest uproszczenie budowy i wewnętrznej logiki mikroprocesora. (pl)
- メモリマップドI/O(英: memory-mapped I/O)とは、コンピュータ内でCPUと入出力機器の間で入出力を行う手法の一種。他の入出力手法としては、ポートマップドI/O(英: port-mapped I/O)と、メインフレームなどで独立した入出力プロセッサを使用するチャネル・コントローラ方式がある。本項目ではポートマップドI/Oについても併せて解説する。「メモリマップト」と「ト」に濁音を付けない表記も用いられる。 (ja)
- E/S mapeada en memoria y E/S independiente son dos métodos de implementar entradas/salidas entre los periféricos y la CPU en un computador. Otro método, no discutido en este artículo, es usar DMA. La E/S mapeada en memoria usa el mismo bus de direcciones para memoria y dispositivos de E/S, y las instrucciones de la CPU usadas para acceder a la memoria son también usadas para acceder a los dispositivos. (es)
- Memory Mapped I/O (MMIO) (deutsche Übertragungen wie speicherabgebildete Ein-/Ausgabe oder speicherbezogene Adressierung konnten sich bislang nicht durchsetzen) ist ein Verfahren zur Kommunikation einer Zentraleinheit mit Peripheriegeräten. Die I/O-Register von elektronischen Bauelementen, mit denen angeschlossene Hardware gesteuert wird, werden in den Hauptspeicher-Adressraum abgebildet. Der Zugriff auf die Bauelemente kann dann über übliche Speicherzugriffsroutinen geschehen. Es werden keine besonderen Befehle benötigt wie bei der Realisierung der Ein-/Ausgabe mittels I/O-Ports am Prozessor. Sind die Bauelemente in den Prozessor integriert (Mikrocontroller), ist Memory Mapped I/O der Regelfall. Das Gegenstück ist Port-Mapped I/O oder Isolated I/O – die Register der Bauelemente werden übe (de)
- Memory-mapped I/O (MMIO) and port-mapped I/O (PMIO) are two complementary methods of performing input/output (I/O) between the central processing unit (CPU) and peripheral devices in a computer. An alternative approach is using dedicated I/O processors, commonly known as channels on mainframe computers, which execute their own instructions. (en)
- ( 입출력 포트에 대한 일반적인 의미에 대해서는 컴퓨터 포트 문서를 참고하십시오.) 메모리 맵 입출력(영어: Memory-mapped I/O, MMIO)는 마이크로프로세서(CPU)가 입출력 장치를 액세스할 때, 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식이다. 따라서 전체 메모리의 주소공간에 입출력 장치의 메모리나 레지스터를 메모리로 취급하여 전체 메모리의 일부분으로 특정영역에 할당하여 배치하는 방식이다. 입출력 장치의 메모리 주소가 나뉘어 있지 않기 때문에 액세스할 때는 메모리와 같은 주소공간이므로 같은 기계어 코드로 수행한다. 입출력 맵 입출력의 주소공간이 나뉘어 있어서 분리되어 있는 반면 메모리 맵 입출력은 메모리의 한 부분일 뿐이다. 보통 입출력 장치가 메모리에 비해 속도가 느리고, 주소공간의 크기가 작다고 가정하고 설계한다. 물론 다 느리지는 않지만 느린경우가 있으므로 느린것으로 상정할 수 밖에 없다. 입출력 장치가 느린속도의 액세스 속도를 갖는 경우, 마이크로프로세서에게 속도를 조절할 수 있는 하드웨어 수단을 제공하여 효율을 기하는 경우가 많다. (ko)
- Ввод-вывод через порты (англ. I/O ports) — схемотехническое решение, организующее взаимодействие процессора и устройств ввода-вывода. Противоположность вводу-выводу через память. Во многих моделях процессоров ввод-вывод организуется теми же функциями, что и чтение-запись в память — так называемый «ввод-вывод через память». Соответственно, схемотехнически устройства ввода-вывода располагаются на шине памяти, и часть адресов памяти направляется на ввод-вывод. В процессорах Intel, микроконтроллерах AVR и некоторых других существуют отдельные команды для ввода-вывода — IN и OUT — и, соответственно, отдельное адресное пространство: в процессорах Intel — от 000016 до FFFF16. (ru)
- E/S mapeada em memória (em inglês, memory-mapped I/O) ou E/S mapeada em portas (em inglês, port-mapped I/O ou port I/O) são dois métodos complementares de executar entrada/saída entre a CPU e os dispositivos periféricos no computador. Outro método, não discutido nesse artigo, é usar um processador dedicado de E/S (comumente conhecido como canal em computadores mainframe) que executa suas próprias instruções. (pt)
- 内存映射输入输出(英語:Memory-mapped I/O, MMI/O,简称为内存映射I/O),以及端口映射输入输出(port-mapped I/O, PMI/O,也叫作独立输入输出(isolated I/O),是PC机在中央处理器(CPU)和外部设备之间执行输入输出操作的两种方法,这两种方法互为补充。除此之外,执行输入输出操作也可以使用专用输入输出处理器(dedicated I/O processors)——这通常是指大型電腦上的通道输入输出(Channel I/O),这些专用处理器执行自有的指令集。 PMI/O通常使用一组专门为I/O设计的CPU指令来执行I/O操作。比如在基于x86和x86-64架构的微处理器中使用in/out指令。这两条指令有一些不同的形式,分别用来在CPU的EAX寄存器(或高16位/低16位/高8位/低8位)和I/O设备的某个端口之间完成对单字节/双字节/四字节数据的操作(比如对out指令,分别有outb, outw和outl) 。I/O设备有一个和内存地址空间相互独立的I/O地址空间。I/O设备通过专用I/O针脚或者专用的总线和CPU相连。因为这个I/O地址空间和内存地址空间相互独立,所以有时候称为独立I/O. (zh)
|