Jump to content

How are I/O addresses assigned?


Kempy

Recommended Posts

Hi all. I am self studying computer science as a hobby. I am completely self taught, and as a result of this, there are gaping holes in my knowledge.

I wondered if anybody could tell me how it is that addresses are assigned to hardware devices. If you have a PCI bus, I guess the computer could connect to each device and assign it hardware addresses, but how would the computer communicate with these devices in order to assign it a hardware address in the first place?

I wondered if perhaps there was a unique address given to each piece of hardware when it is manufactured (much in the same was as network devices have a unique MAC address).

 

Thanks in advance to anybody who can shed some light on the subject, and sorry if my terminology is completely wrong. This is my first post on the forum, and as I said, I have never been tutored in computer science.

Link to comment
Share on other sites

Hi! There has been much in terms of an 'evolution' of hardware addressing. I think what I can say about this is:

 

1) Hardware has its own hardcoded addressing; device registers and I/O are given specific device addresses that driver programmers make use of

 

2) There is a combined address that is comprised of the hardcoded address and a soft address issued by the operating system

 

3) There are other considerations that have complex stories, these considerations include ports and interrupt requests IRQ

 

4) devices can be assigned a Direct Memory Access DMA channel in addition to all of the above; this has particular relevance in that a sound card can be accessed before the OS has loaded and this is a cause of the soundcard having a designated DMA channel. A DMA channel allows hardware to be accessed directly, without first going through the CPU.

 

just a gloss over :D

Edited by Xittenn
Link to comment
Share on other sites

So I guess the PCI controller sends out incrementing addresses and waits for a response from a device, and then allocates it an address for the rest of the system. This makes a lot more sense now. You can Google just about anything, but the internet didn't seem to know the answer to this one.

Thanks.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.