Which should come 1st, the chicken or the egg (Master/Slave)?

  • Thread starter Thread starter signmeuptoo
  • Start date Start date
S

signmeuptoo

I have been wondering lately, as the topic has come up elsewhere:

What Device should run as the Master/Device #0 and what device should the
the slave/Device #1 on a Parallel ATA-EIDE channel when one wants to pair
up a hard drive and an optical drive?

Some people, of late, have been suggesting that the *Optical Drive* be put
in the Master position, particularly *if* that optical drive is a DVD. Why
would that be?

Other than logical position assignment, what is involved in the
Master/Slave issue, and why choose one and not the other?

Also, is there any advantage or speed increase if one has the drives set
both via cable position *and* jumper assignment (EG, setting an optical
drive as MA (master jumpered) and also putting it on the Master position of
the cable)?

This has always been a question for me but I have always assumed (wrongly?)
that this is a total non-issue, and that convenience should dictate.
But... Hard drives have larger Caches, so shouldn't they be Master's? To
set them as Master means real cable bending though, so what is one to do?

TIA!
 
One would set the main hard drive "C drive" as primary master because that
is how it goes. If one has a dvd burner as one does, this device is
recommended by the manufacturer to be secondary master. One can then jam
anything one wants in the middle as primary and secondary slaves. This is
assuming you are using 80 wire cabling and the drives are set to cable
select.
To avoid messy bending of cables one would start at the top bay of the case
and shove the dvd burner in there.
If the secondary slave is to be a hard drive, one would use mounting rails
and whack it under the dvd burner thus eliminating fancy acrobatics with the
cable.
Immediately under this slave drive, using mounting rails again, one would
jam the "C" drive in there.
This leaves one bay empty which just happens to be the bottom bay (primary
slave). One can stick whatever one wants in there. You will be surprised the
number of people who have a dvd burner but install a cd burner too. One
can`t help but wonder why.
 
The harddrive should always be the Master on an IDE channel and the optical
drive should be the Slave.
 
signmeuptoo said:
I have been wondering lately, as the topic has come up elsewhere:

What Device should run as the Master/Device #0 and what device should the
the slave/Device #1 on a Parallel ATA-EIDE channel when one wants to pair
up a hard drive and an optical drive?

If practical, keep the optical drives separate from hard drives - both drives
on a cable are limited to the fastest speed of the slower unit. For this
reason, I installed a PCI IDE controller card. Now I have 4 independent
channels (2 on the PCI card and 2 on the motherboard), and no slow drive will
"drag down" the throughput of any other - until I get a 5th drive, that is!
If you have only 2 channels and don't want to add more, keep the 2 slowest
devices (often 2 optical drives) on the same cable. It probably doesn't make
much difference, but I prefer to have the faster of two on a single cable be
the master. I also use 80-conductor cables for all drives. This probably has
no effect on the speed of the connections for slower drives but it should
maintain better data integrity.


--
--------------------

Alan "A.J." Franzman

Email: a.j.franzman [ A T ] verizon [ D O T ] net

--------------------
 
I have been wondering lately, as the topic has come up elsewhere:

What Device should run as the Master/Device #0 and what device should the
the slave/Device #1 on a Parallel ATA-EIDE channel when one wants to pair
up a hard drive and an optical drive?

Some people, of late, have been suggesting that the *Optical Drive* be put
in the Master position, particularly *if* that optical drive is a DVD. Why
would that be?

Other than logical position assignment, what is involved in the
Master/Slave issue, and why choose one and not the other?

Also, is there any advantage or speed increase if one has the drives set
both via cable position *and* jumper assignment (EG, setting an optical
drive as MA (master jumpered) and also putting it on the Master position of
the cable)?

This has always been a question for me but I have always assumed (wrongly?)
that this is a total non-issue, and that convenience should dictate.
But... Hard drives have larger Caches, so shouldn't they be Master's? To
set them as Master means real cable bending though, so what is one to do?

TIA!

I've been looking for info on how the IDE interface works for
a while now, and I'm puzzled by why there isn't a web page
somewhere that does a decent job of explaining the low level
hardware operation. I started today's search here:

http://en.wikipedia.org/wiki/Advanced_Technology_Attachment

The only thing that caught my eye there, was the statement about
"The master drive arbitrates access to devices on the channel".
I haven't seen any other technical references to this arbitration
function, and if there is such a function, it would be important
to understand how it works.

This guide contains more practical advice. It stretches for several
pages.

http://www.storagereview.com/guide2000/ref/hdd/if/ide/confJumpering.html

Whether you are using cable_select for the two drives, or are
over-riding the cable_select function by setting the drives
to master and slave explicitly, the results are the same. Each
device is being given a static unchanging logic value of 0 or 1.
The device uses that to recognize when a command is addressed to it.
Thus, there is no speed advantage to either scheme. Cable_select
applies the logic 0 or logic 1 to a pin on the drive's IDE connector.
The master or slave jumpers apply the logic level when a jumper
is installed.

To find out about the most basic of operations, I looked at
the datasheet for the Southbridge of the 440BX chipset. This
would be back in the era when bus mastering was invented, so
I was hoping they wouldn't be as bashful about explaining
how IDE works.

It seems the two CS signals on the cable are not used to
address the two disks individually. In fact, those two
signals address both disks at the same time. Each disk
has a block of control registers and a block of commmand
registers. One CS signal talks to control registers, and
the other to the command registers. A CS signal is seen by
both drives, and the registers in both drives are written
at the same time. The drive compares the drive number written
in the drive/head register, to the master/slave value it was
given via cable_select or master/slave jumper. As far as I
can figure out, that is how a drive determines whether the
latest command is for it or not.

PDF page 193 of 440BX Southbridge:
http://developer.intel.com/design/intarch/datashts/290562.htm

In terms of one drive holding up another, I found this
document in a search. It seems this made it into the
standards. PDF page 18 shows how operations to the
disks may overlap - the implication is, that only the
data transfer phase represents a significant contention
between the drives - so you wouldn't be waiting 110ms for
the head on a CDROM drive to seek to a spot on the CD,
holding up a hard drive in the process.

http://www.t10.org/ftp/t10/document.95/95-301r0.pdf

In terms of standards, there are interim releases of the
standards (before they are official) on sites like this.
The first is Commands, the second is Transport Layer.
PDF pages 37 and 39 of the second document (d1532v2r1a),
have drawings of the 40 and 80 pin IDE cable.

http://www.t13.org
http://www.t13.org/docs2002/d1532v1r1a-ATA-ATAPI-7.pdf
http://www.t13.org/docs2002/d1532v2r1a-ATA-ATAPI-7.pdf

On the 80 wire cable, master (device 0) is shown on the end
of the cable. That is where it would be when using cable_select.
Master can be forced by using the drive jumpers. But, if you
had only a single drive, connected it to the middle connector,
and forced it to master, the system software would refuse to
use the fast ultra DMA transfer modes, because of the big
stub hanging off the end of the cable. That is why, with
the 80 wire cable, you fill the end position first, then
the middle connector. If both positions are filled, then
you can make either drive the master if you want. And
that kind of answers how you would handle a case of CDROM
on top and hard drive underneath. Just set the hard drive
to master, the CDROM to slave, and connect the CDROM to the
end of the cable.

Apparently, IDE timing is independent on the cable. That
means two drives may use different UDMA rates if they want,
without affecting one another. I didn't see anything permitting
the mixing of PIO and DMA on the same cable, but you wouldn't
want PIO polled mode in any case.

While I haven't explicitly answered your question, I hope
that gives you a few ideas about how flexible this stuff is.
Naturally, there will always be pieces of hardware that
defy the rules.

Paul
 
Paul said:
I've been looking for info on how the IDE interface works for
a while now, and I'm puzzled by why there isn't a web page
somewhere that does a decent job of explaining the low level
hardware operation. I started today's search here:

http://en.wikipedia.org/wiki/Advanced_Technology_Attachment

The only thing that caught my eye there, was the statement about
"The master drive arbitrates access to devices on the channel".
I haven't seen any other technical references to this arbitration
function, and if there is such a function, it would be important
to understand how it works.

This guide contains more practical advice. It stretches for several
pages.

http://www.storagereview.com/guide2000/ref/hdd/if/ide/confJumpering.html

Whether you are using cable_select for the two drives, or are
over-riding the cable_select function by setting the drives
to master and slave explicitly, the results are the same. Each
device is being given a static unchanging logic value of 0 or 1.
The device uses that to recognize when a command is addressed to it.
Thus, there is no speed advantage to either scheme. Cable_select
applies the logic 0 or logic 1 to a pin on the drive's IDE connector.
The master or slave jumpers apply the logic level when a jumper
is installed.

To find out about the most basic of operations, I looked at
the datasheet for the Southbridge of the 440BX chipset. This
would be back in the era when bus mastering was invented, so
I was hoping they wouldn't be as bashful about explaining
how IDE works.

It seems the two CS signals on the cable are not used to
address the two disks individually. In fact, those two
signals address both disks at the same time. Each disk
has a block of control registers and a block of commmand
registers. One CS signal talks to control registers, and
the other to the command registers. A CS signal is seen by
both drives, and the registers in both drives are written
at the same time. The drive compares the drive number written
in the drive/head register, to the master/slave value it was
given via cable_select or master/slave jumper. As far as I
can figure out, that is how a drive determines whether the
latest command is for it or not.

PDF page 193 of 440BX Southbridge:
http://developer.intel.com/design/intarch/datashts/290562.htm

In terms of one drive holding up another, I found this
document in a search. It seems this made it into the
standards. PDF page 18 shows how operations to the
disks may overlap - the implication is, that only the
data transfer phase represents a significant contention
between the drives - so you wouldn't be waiting 110ms for
the head on a CDROM drive to seek to a spot on the CD,
holding up a hard drive in the process.

http://www.t10.org/ftp/t10/document.95/95-301r0.pdf

In terms of standards, there are interim releases of the
standards (before they are official) on sites like this.
The first is Commands, the second is Transport Layer.
PDF pages 37 and 39 of the second document (d1532v2r1a),
have drawings of the 40 and 80 pin IDE cable.

http://www.t13.org
http://www.t13.org/docs2002/d1532v1r1a-ATA-ATAPI-7.pdf
http://www.t13.org/docs2002/d1532v2r1a-ATA-ATAPI-7.pdf

On the 80 wire cable, master (device 0) is shown on the end
of the cable. That is where it would be when using cable_select.
Master can be forced by using the drive jumpers. But, if you
had only a single drive, connected it to the middle connector,
and forced it to master, the system software would refuse to
use the fast ultra DMA transfer modes, because of the big
stub hanging off the end of the cable. That is why, with
the 80 wire cable, you fill the end position first, then
the middle connector. If both positions are filled, then
you can make either drive the master if you want. And
that kind of answers how you would handle a case of CDROM
on top and hard drive underneath. Just set the hard drive
to master, the CDROM to slave, and connect the CDROM to the
end of the cable.

Apparently, IDE timing is independent on the cable. That
means two drives may use different UDMA rates if they want,
without affecting one another. I didn't see anything permitting
the mixing of PIO and DMA on the same cable, but you wouldn't
want PIO polled mode in any case.

While I haven't explicitly answered your question, I hope
that gives you a few ideas about how flexible this stuff is.
Naturally, there will always be pieces of hardware that
defy the rules.

Paul

Please correct me if I'm misinterpreting the results of your research,
but you appear to have concluded it really doesn't matter how devices on
the IDE bus are arranged.

This defies conventional wisdom, which says optical drives should be
slaves for optimal performance, but is consistent with my own empirical
observations.

Let the flame war begin ;-)

Triffid
 
Triffid said:
Please correct me if I'm misinterpreting the results of your research,
but you appear to have concluded it really doesn't matter how devices on
the IDE bus are arranged.

This defies conventional wisdom, which says optical drives should be
slaves for optimal performance, but is consistent with my own empirical
observations.

Let the flame war begin ;-)

Triffid

Well, that is what happens when I tried not to use wisdom :-)

I was trying to find evidence for one case or another, without
resorting to anecdote. There are plenty of recipes out there,
and I figured it would be bad to just tally up how many people
said this and how many people said that.

What surprised me most, is the total lack of technical analysis
of IDE. I mean, I couldn't even get a satisfactory description of
all the signals, so at this point, I don't even know how the DMA
or interrupts works.

One thing I read, talked about "latency" in the master, and
yet other material made light of the fact that they were
called master and slave in the first place (meaning it
doesn't matter).

Perhaps the best place for this question is in a storage
group, rather than a motherboard group. There are probably a
couple of people in those groups who have grown up with this
stuff, who can give good theoretical reasons why one way is
better than another.

*******
I've just run off and done some benchmarks. The tool I used
isn't the best (the HDTach I have here won't run on Win2K),
but Sandra 2002's File benchmark will have to do. I selected
only the read benchmarks, because I'm too impatient to wait
for all of them to run.

The WD 4GB hard drive was thrown in, to demonstrate a device
with a slower transfer speed, but with protocols the same as
the other device.

The CRD8522B is a 52X CDROM with manufacture date Mar.2002.

Seagate 7200.7 UDMA5 Master ==> Sequential Read 54MB/sec Rand 7MB/sec
<None>

Seagate 7200.7 UDMA5 Master ==> Sequential Read 52MB/sec Rand 7MB/sec
WD 24300L 4GB UDMA2 Slave

Seagate 7200.7 UDMA5 Slave ==> Sequential Read 52MB/sec Rand 7MB/sec
WD 24300L 4GB UDMA2 Master

Seagate 7200.7 UDMA5 Master ==> Sequential Read 51MB/sec Rand 6MB/sec
CRD8522B CD MWDMA2 Slave

Seagate 7200.7 UDMA5 Slave ==> Sequential Read 51MB/sec Rand 6MB/sec
CRD8522B CD MWDMA2 Master

And when I returned the system to its default configuration (config 2
above), the benchmark read sequential 51MB/sec random read 6MB/sec

Let the benchmarks begin...

Paul
 
If practical, keep the optical drives separate from hard drives - both drives
on a cable are limited to the fastest speed of the slower unit. For this
reason, I installed a PCI IDE controller card. Now I have 4 independent
channels (2 on the PCI card and 2 on the motherboard), and no slow drive will
"drag down" the throughput of any other - until I get a 5th drive, that is!
If you have only 2 channels and don't want to add more, keep the 2 slowest
devices (often 2 optical drives) on the same cable. It probably doesn't make
much difference, but I prefer to have the faster of two on a single cable be
the master. I also use 80-conductor cables for all drives. This probably has
no effect on the speed of the connections for slower drives but it should
maintain better data integrity.

Where did you get your information that "both drives on a cable are
limited to the fastest speed of the slower unit?" While apparently
true years ago, I don't believe that IDE has worked that way for a
long time now. As far as I know, the slower device does NOT limit the
speed of the faster in modern systems.

Ron
 
I've been looking for info on how the IDE interface works for
a while now, and I'm puzzled by why there isn't a web page
somewhere that does a decent job of explaining the low level
hardware operation. I started today's search here:

http://en.wikipedia.org/wiki/Advanced_Technology_Attachment

The only thing that caught my eye there, was the statement about
"The master drive arbitrates access to devices on the channel".
I haven't seen any other technical references to this arbitration
function, and if there is such a function, it would be important
to understand how it works.

This guide contains more practical advice. It stretches for several
pages.

http://www.storagereview.com/guide2000/ref/hdd/if/ide/confJumpering.html

Whether you are using cable_select for the two drives, or are
over-riding the cable_select function by setting the drives
to master and slave explicitly, the results are the same. Each
device is being given a static unchanging logic value of 0 or 1.
The device uses that to recognize when a command is addressed to it.
Thus, there is no speed advantage to either scheme. Cable_select
applies the logic 0 or logic 1 to a pin on the drive's IDE connector.
The master or slave jumpers apply the logic level when a jumper
is installed.

To find out about the most basic of operations, I looked at
the datasheet for the Southbridge of the 440BX chipset. This
would be back in the era when bus mastering was invented, so
I was hoping they wouldn't be as bashful about explaining
how IDE works.

It seems the two CS signals on the cable are not used to
address the two disks individually. In fact, those two
signals address both disks at the same time. Each disk
has a block of control registers and a block of commmand
registers. One CS signal talks to control registers, and
the other to the command registers. A CS signal is seen by
both drives, and the registers in both drives are written
at the same time. The drive compares the drive number written
in the drive/head register, to the master/slave value it was
given via cable_select or master/slave jumper. As far as I
can figure out, that is how a drive determines whether the
latest command is for it or not.

PDF page 193 of 440BX Southbridge:
http://developer.intel.com/design/intarch/datashts/290562.htm

In terms of one drive holding up another, I found this
document in a search. It seems this made it into the
standards. PDF page 18 shows how operations to the
disks may overlap - the implication is, that only the
data transfer phase represents a significant contention
between the drives - so you wouldn't be waiting 110ms for
the head on a CDROM drive to seek to a spot on the CD,
holding up a hard drive in the process.

http://www.t10.org/ftp/t10/document.95/95-301r0.pdf

In terms of standards, there are interim releases of the
standards (before they are official) on sites like this.
The first is Commands, the second is Transport Layer.
PDF pages 37 and 39 of the second document (d1532v2r1a),
have drawings of the 40 and 80 pin IDE cable.

http://www.t13.org
http://www.t13.org/docs2002/d1532v1r1a-ATA-ATAPI-7.pdf
http://www.t13.org/docs2002/d1532v2r1a-ATA-ATAPI-7.pdf

On the 80 wire cable, master (device 0) is shown on the end
of the cable. That is where it would be when using cable_select.
Master can be forced by using the drive jumpers. But, if you
had only a single drive, connected it to the middle connector,
and forced it to master, the system software would refuse to
use the fast ultra DMA transfer modes, because of the big
stub hanging off the end of the cable. That is why, with
the 80 wire cable, you fill the end position first, then
the middle connector. If both positions are filled, then
you can make either drive the master if you want. And
that kind of answers how you would handle a case of CDROM
on top and hard drive underneath. Just set the hard drive
to master, the CDROM to slave, and connect the CDROM to the
end of the cable.

Apparently, IDE timing is independent on the cable. That
means two drives may use different UDMA rates if they want,
without affecting one another. I didn't see anything permitting
the mixing of PIO and DMA on the same cable, but you wouldn't
want PIO polled mode in any case.

While I haven't explicitly answered your question, I hope
that gives you a few ideas about how flexible this stuff is.
Naturally, there will always be pieces of hardware that
defy the rules.

Paul

Paul, awesome, man! Thanks for going through all that trouble. So I
imagine the only reason to make a CD/DVD drive Master would be in case I
had a problem with running Knoppix or some other "live CD" OS disk. Or
would it. I will find out on this old BX motherboard of mine when I
finally get my DVD burner. The drive I am running now just won't load
Knoppix, it is a flaky drive...
 
What about ATAPI devises...like a ZIP drive (yes, I still use one)...does it
make any difference???
CP
 
Back
Top