151:
43:
649:
349:. A further complication is that a device traditionally considered an input device, e.g., card reader, keyboard, may accept control commands to, e.g., select stacker, display keyboard lights, while a device traditionally considered as an output device may provide status data (e.g., low toner, out of paper, paper jam).
404:
should be implemented by the interface using appropriate commands (like BUSY, READY, and WAIT), and the processor can communicate with an I/O device through the interface. If different data formats are being exchanged, the interface must be able to convert serial data to parallel form and vice versa.
416:
accesses hardware by reading and writing to specific memory locations, using the same assembly language instructions that computer would normally use to access memory. An alternative method is via instruction-based I/O which requires that a CPU have specialized instructions for I/O. Both input and
340:
The designation of a device as either input or output depends on perspective. Mice and keyboards take physical movements that the human user outputs and convert them into input signals that a computer can understand; the output from these devices is the computer's input. Similarly, printers and
490:
requires the use of instructions that are specifically designed to perform I/O operations. The I/O instructions address the channel or the channel and device; the channel asynchronously accesses all other required addressing and control information. This is similar to DMA, but more flexible.
502:
also requires the use of special I/O instructions. Typically one or more ports are assigned to the device, each with a special purpose. The port numbers are in a separate address space from that used by normal instructions.
345:'s perspective, the process of reading or seeing these representations is receiving output; this type of interaction between computers and humans is studied in the field of
341:
monitors take signals that computers output as input, and they convert these signals into a representation that human users can understand. From the human
405:
Because it would be a waste for a processor to be idle while it waits for data from an input device there must be provision for generating
622:
364:, is considered the brain of a computer. Any transfer of information to or from the CPU/memory combo, for example by reading data from a
388:
is one designed to exploit locality and perform efficiently when exchanging data with a secondary storage device, such as a disk drive.
456:, which permits programs to just describe I/O, and the actions are carried out outside the program. This is notable because the
578:
396:
An I/O interface is required whenever the I/O device is driven by a processor. Typically a CPU communicates with devices via a
156:
107:
79:
155:
86:
616:
126:
446:
93:
572:
461:
361:
346:
173:
157:
64:
653:
465:
333:, typically perform both input and output operations. Any interaction with the system by an interactor is an
60:
514:(DMA) is a means for devices to transfer large chunks of data to and from memory independently of the CPU.
438:
234:
75:
400:. The interface must have the necessary logic to interpret the device address generated by the processor.
472:
17:
385:
334:
154:
353:
53:
283:
sent from it. The term can also be used as part of an action; to "perform I/O" is to perform an
445:. Most programming languages provide I/O facilities either as statements in the language or as
606:
669:
401:
275:, and the outside world, such as another computer system, peripherals, or a human operator.
100:
511:
422:
373:
298:
31:
8:
421:
rate that can vary greatly. With some devices able to exchange data at very high speeds
409:
and the corresponding type numbers for further processing by the processor if required.
441:. For example, most operating systems provide application programs with the concept of
612:
568:
499:
413:
369:
302:
203:
183:
523:
434:
342:
318:
314:
280:
227:
198:
142:
301:
used by a human (or other system) to communicate with a computer. For instance, a
562:
418:
397:
476:
306:
284:
279:
are the signals or data received by the system and outputs are the signals or
663:
538:
442:
377:
322:
193:
27:
Communication between an information processing system and the outside world
533:
437:
and programming facilities employ separate, more abstract I/O concepts and
330:
310:
271:) is the communication between an information processing system, such as a
487:
381:
357:
276:
220:
188:
365:
368:, is considered I/O. The CPU and its supporting circuitry may provide
528:
453:
406:
248:
178:
42:
272:
479:, or stream-oriented, with the file containing a stream of bytes.
425:
to memory (DMA) without the continuous aid of a CPU is required.
648:
360:, to which the CPU can read or write directly using individual
326:
604:
337:
and the reaction the system responds is called the output.
564:
The
Essentials of Computer Organization and Architecture
471:
The I/O facilities provided by operating systems may be
325:. Devices for communication between computers, such as
608:
Fundamentals of
Computer Organization and Architecture
452:
An alternative to special primitive functions is the
67:. Unsourced material may be challenged and removed.
352:In computer architecture, the combination of the
661:
605:Abd-El-Barr, Mostafa; Hesham El-Rewini (2005).
560:
153:
567:. Jones & Bartlett Learning. p. 185.
428:
464:to any programming language, but this allows
228:
611:. John Wiley & Sons. pp. 161–162.
235:
221:
30:"I/O" redirects here. For other uses, see
127:Learn how and when to remove this message
449:in a standard library for the language.
506:
14:
662:
600:
598:
596:
556:
554:
625:from the original on 21 December 2016
581:from the original on 20 December 2016
65:adding citations to reliable sources
36:
593:
551:
376:, such as in the implementation of
24:
494:
149:
25:
681:
641:
561:Null, Linda; Julia Lobur (2006).
647:
41:
52:needs additional citations for
482:
13:
1:
544:
466:purely functional programming
391:
7:
517:
429:Higher-level implementation
380:, or may provide access to
10:
686:
460:functions would introduce
372:that is used in low-level
347:human–computer interaction
29:
285:input or output operation
475:, with files containing
417:output devices have a
313:for a computer, while
160:
412:A computer that uses
159:
656:at Wikimedia Commons
512:Direct memory access
507:Direct memory access
374:computer programming
61:improve this article
32:I/O (disambiguation)
297:are the pieces of
174:Process management
161:
652:Media related to
468:to be practical.
414:memory-mapped I/O
370:memory-mapped I/O
245:
244:
184:Memory management
143:Operating systems
137:
136:
129:
111:
16:(Redirected from
677:
651:
635:
634:
632:
630:
602:
591:
590:
588:
586:
558:
524:Asynchronous I/O
459:
435:operating system
295:
294:
263:, or informally
237:
230:
223:
152:
139:
138:
132:
125:
121:
118:
112:
110:
69:
45:
37:
21:
685:
684:
680:
679:
678:
676:
675:
674:
660:
659:
644:
639:
638:
628:
626:
619:
603:
594:
584:
582:
575:
559:
552:
547:
520:
509:
500:Port-mapped I/O
497:
495:Port-mapped I/O
485:
473:record-oriented
457:
431:
419:data processing
394:
292:
291:
241:
166:Common features
158:
150:
133:
122:
116:
113:
70:
68:
58:
46:
35:
28:
23:
22:
15:
12:
11:
5:
683:
673:
672:
658:
657:
643:
642:External links
640:
637:
636:
617:
592:
573:
549:
548:
546:
543:
542:
541:
536:
531:
526:
519:
516:
508:
505:
496:
493:
484:
481:
430:
427:
393:
390:
378:device drivers
323:output devices
307:computer mouse
243:
242:
240:
239:
232:
225:
217:
214:
213:
212:
211:
206:
201:
196:
194:Device drivers
191:
186:
181:
176:
168:
167:
163:
162:
146:
145:
135:
134:
76:"Input/output"
49:
47:
40:
26:
9:
6:
4:
3:
2:
682:
671:
668:
667:
665:
655:
650:
646:
645:
624:
620:
618:9780471478331
614:
610:
609:
601:
599:
597:
580:
576:
570:
566:
565:
557:
555:
550:
540:
539:Output device
537:
535:
532:
530:
527:
525:
522:
521:
515:
513:
504:
501:
492:
489:
480:
478:
474:
469:
467:
463:
455:
450:
448:
444:
440:
436:
433:Higher-level
426:
424:
423:direct access
420:
415:
410:
408:
403:
399:
389:
387:
386:I/O algorithm
383:
379:
375:
371:
367:
363:
359:
355:
350:
348:
344:
338:
336:
332:
331:network cards
328:
324:
320:
316:
312:
308:
304:
300:
296:
288:
286:
282:
278:
274:
270:
266:
262:
258:
254:
250:
238:
233:
231:
226:
224:
219:
218:
216:
215:
210:
207:
205:
202:
200:
197:
195:
192:
190:
187:
185:
182:
180:
177:
175:
172:
171:
170:
169:
165:
164:
148:
147:
144:
141:
140:
131:
128:
120:
117:November 2019
109:
106:
102:
99:
95:
92:
88:
85:
81:
78: –
77:
73:
72:Find sources:
66:
62:
56:
55:
50:This article
48:
44:
39:
38:
33:
19:
670:Input/output
654:Input/output
627:. Retrieved
607:
583:. Retrieved
563:
534:Input device
510:
498:
486:
470:
462:side-effects
451:
432:
411:
395:
382:I/O channels
362:instructions
351:
339:
311:input device
290:
289:
268:
264:
260:
256:
253:input/output
252:
246:
209:Input/output
208:
123:
114:
104:
97:
90:
83:
71:
59:Please help
54:verification
51:
629:11 December
585:11 December
488:Channel I/O
483:Channel I/O
402:Handshaking
358:main memory
293:I/O devices
189:File system
574:0763737690
545:References
439:primitives
407:interrupts
366:disk drive
199:Networking
179:Interrupts
87:newspapers
18:I/O device
529:I/O bound
454:I/O monad
447:functions
392:Interface
249:computing
664:Category
623:Archived
579:Archived
518:See also
319:printers
315:monitors
303:keyboard
299:hardware
273:computer
204:Security
477:records
101:scholar
615:
571:
327:modems
309:is an
277:Inputs
103:
96:
89:
82:
74:
443:files
384:. An
335:input
108:JSTOR
94:books
631:2016
613:ISBN
587:2016
569:ISBN
356:and
343:user
329:and
321:are
317:and
281:data
80:news
458:I/O
398:bus
354:CPU
305:or
267:or
261:i/o
257:I/O
247:In
63:by
666::
621:.
595:^
577:.
553:^
287:.
269:IO
265:io
259:,
251:,
633:.
589:.
255:(
236:e
229:t
222:v
130:)
124:(
119:)
115:(
105:·
98:·
91:·
84:·
57:.
34:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.