Programmed input/output (PIO) is a method of transferring data between the CPU and a peripheral such as a network adapter or an ATA storage device. Until the advent of DMA, it was the only method possible. The PIO interface is grouped into different modes that correspond to different transfer rates.