• Programmed I/O operations are the result of I/O instructions written in the computer program.
  • In programmed I/O, each data transfer in initiated by the instructions in the CPU and hence the CPU is in the continuous monitoring of the interface.
  • Input instruction is used to transfer data from I/O device to CPU, store instruction is used to transfer data from CPU to memory and output instruction is used to transfer data from CPU to I/O device.
  • This technique is generally used in very slow speed computer and is not a efficient method if the speed of the CPU and I/O is different.

                         

                                                                    Fig: Data transfer from I/O device to CPU

  • I/O device places the data on the I/O bus and enables its data valid signal
  • The interface accepts the data in the data register and sets the F bit of status register and also enables the data accepted signal.
  • Data valid line is disables by I/O device.
  • CPU is in a continuous monitoring of the interface in which it checks the F bit of the status register.
    • If it is set e. 1, then the CPU reads the data from data register and sets F bit to zero
    • If it is reset e. 0, then the CPU remains monitoring the interface.
  • Interface disables the data accepted signal and the system goes to initial state where next item of data is placed on the data bus.

                                                             

                                                                  Fig: Flowchart for CPU program to input data

Characteristics:

  • Continuous CPU involvement
  • CPU slowed down to I/O speed
  • Simple
  • Least hardware

Polling, or polled operation, in computer science, refers to actively sampling the status of an external device by a client program as a synchronous activity. Polling is most often used in terms of input/output (I/O), and is also referred to as polled I/O or software driven I/O.