Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Two ways. The first is IO mapped IO, which is what the x86 supports with the IN and OUT instructions. All this really is is a MOV to a different "address" space (16 bits of addressing). The second is memory mapped IO, in which hardware is mapped to the addressing space of the CPU (Motorola 68K uses this format). A CPU that allows IO mapped IO can also do memory mapped IO (it's not precluded).


Question I've been wondering about for a while: where does PCI fall into this? Do modern x86 PC systems still use in & out at all?


I found this article to be helpful on how PCIe interacts with the CPU: http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tu...


PCI did for discovery, and could use it for device access (but often also memory-mapped). More info from the osdev wiki, which btw is a great place if you want to know about low-level initialization, the boot process etc.

http://wiki.osdev.org/PCI


Don't forget DMA is different from both of those too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: