A computer components & hardware forum. HardwareBanter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » HardwareBanter forum » General Hardware & Peripherals » Storage & Hardrives
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

SATA optical drive problems with DMA/PIO transfer



 
 
Thread Tools Display Modes
  #1  
Old April 11th 09, 10:33 AM posted to comp.arch.storage
[email protected]
external usenet poster
 
Posts: 2
Default SATA optical drive problems with DMA/PIO transfer

Hi...I'm trying to setup on XP Home an LG Electronics SATA GH22NS30
DVD-writer on an older Intel D845PEBT2 motherboard (ICH4 core) with a
Silicon Image Si3112 SATA controller. It 'should' work but something
is wrong.

The drive reads both DVD and CD data disks, but a bit slow (8 MB/s). I
can't write either type at all. Using Nero 7, or another writer, it
stalls consistently about 10% into the write, even in simulate mode.
Both the Silicon Image configuration utility and Nero report the drive
in PIO4 mode.

I have been able to boot from the writer by configuring it to do that
in BIOS, but there's nothing else in BIOS related to SATA except a
means to enable RAID, which I don't want. I returned the drive to the
retailer and they supposedly tested it. They claim it's working fine.

It seems the PIO4 mode is way too slow but I have no means to manually
switch to UDMA mode. There is a feature in the SI config utility for
switching between modes, but all it does is write an entry to the
registry which is ignored. There is nothing in Device Manager for
switching modes.

I have a hunch it may have something to do with Microsoft. They check
for CRC errors, and if found, they drop the transfer rate back one
level at a time till a suitable level is found. I don't know where
they do that, but if that is the case, it's supposed to revert to UDMA
mode if the driver is deleted and re-installed. It doesn't, unless
it's doing it so fast I'm missing it.

I'm out of ideas. I downloaded the WDK and may try to trace the code
using a debugger. Before doing that, I'm hoping someone will know
something.
  #2  
Old April 11th 09, 10:47 PM posted to comp.arch.storage
Maxim S. Shatskih[_2_]
external usenet poster
 
Posts: 36
Default SATA optical drive problems with DMA/PIO transfer

Both the Silicon Image configuration utility and Nero report the drive
in PIO4 mode.


Are you sure that the terms "PIO" and "UDMA" apply to non-standard (i.e. not register-compatible with the old PC/AT IDE) SATA controllers?

This very same Silicon Image chip serviced a disk array of 2 disks important to me (Windows Dynamic Disk stripe set) for ~3 years, and I had no issues with it.

I have a hunch it may have something to do with Microsoft.


Doubts. SiL chip is presented as SCSI in Windows, i.e. it does not use MS's ATA stack, and MS are not the driver writers for the SiL chip.

SCSIPORT itself, on which the SiL's driver is based, is surely stable and has no this major perf issues. BTW - SCSIPORT does not what is "PIO" and "UDMA" at all :-)

I'm out of ideas.


Try moving the combination of CD drive+SiL card to another machine. Try connecting this CD to another SATA controller. Try connecting another SATA CD to this SiL chip.

You have some unlucky hardware configuration.

BTW - this SiL chip is known to have PCI issues with nForce north bridge (actually they are nForce's issues, but nevertheless).

I downloaded the WDK and may try to trace the code using a debugger.


Useless without the source which you do not have.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

  #3  
Old May 19th 09, 01:21 PM posted to comp.arch.storage
Maxim S. Shatskih[_2_]
external usenet poster
 
Posts: 36
Default SATA optical drive problems with DMA/PIO transfer

According to the specs on my Silicon Image Si3112 SATA controller, it
supports PIO modes 0 to 4, mdma 0 to 2 and UDMA 0 to 5.


The whole PIO/DMA thing has 2 meanings:

a) data rate and command set on ATA cable between the controller and the drive. I'm not even sure that this applies to SATA. Probably the distinction between slower PIO/DMA and faster UDMA data transfer mode applies to parallel ATA only, where it was enforced by the cable type among the other things.

Are you sure that SATA wire supports reduced speeds? are you sure that the SATA drive can be uncapable of running its SATA interface at full speed and can require slower speed, the same speeds as for obsolete pre-UDMA parallel ATA hardware? Doubts.

There is no doubts about this all with parallel ATA, since it evolved over time from slower version to faster. But SATA is designed to be fast from the beginning.

b) register interface to the controller (between CPU/RAM and the controller). In PIO mode, the _classic_ PC/AT IDE controller uses the REP INSW or REP OUTSW CPU opcode to transfer the actual data to the controller's 16bit data IO port.

a) can be related to any parallel ATA hardware (but I have doubts about SATA).

b) is only about the classic PC/AT controller, since the newer chips like SiL will never use this stupidity of 1980ies between CPU/RAM and the chip. I even have doubts about support of this obsolete stuff in nForce south bridge. It is surely supported by Intel's south bridges though, to provide the exact PC/AT compatibility.

SATA can run in native mode or legacy mode


This is only about south bridge controller (and maybe about other south bridges too). The thing is that for this controller, the "legacy mode" emulates the classic PC/AT controller, so that the OS will be able to access the disk as "standard IDE" without having drivers/settings/kernel build options for the modern new controller.

AHCI, SiL, Promise, HighPoint and so on just cannot do this.

Some MBs allow to switch the south bridge's SATA controller (Intel ICH9B or so) to AHCI, after which, the port 0x1f0/interrupt 0xf is no more and you need to reinstall the driver in the OS or the OS will not boot (a non-trivial process in Windows).

In device manager, the controller 'device info' says the device is in
PIO4 mode.


And what is the actual speed? is it OK? if yes - then forget this minor bug in SiL's driver's UI :-)

The properties box you're seeing in the Device Manager belongs to the plugin DLL which is shipped and installed together with the SiL's .sys driver binary. So, probably they have bugs.

I will not be surprised if SiL _only supports 1 mode of operation_ and _the whole this UI is a fake_.

which lists my device: HL-DT-STDVD-RAM GH22NS30 1.02


OK, so, this is LG's DVD drive, and not a hard disk.

I have doubts that DVD can really require the fastest possible ATA wire speed, I think that around 20/30MB/s is the maximum speed for DVDs (~22MB/s is surely the maximum _burning_ speed, achievable on DVD+R media only).

What is the actual data transfer rate you have on this DVD drive? is it OK? what is the CPU load you have on a DVD drive busy with data transfers? if both these values are OK - then I would forget the SiL's settings and consider that everything is OK.

along with the REG_SZ MaxMode = UDMA-2


Note "MaxMode". This is the maximum limit, not the actual mode.

The driver is either ignoring the value or the controller is not
responding to it.


or c) there can be a bug in the UI. Or d) the SIlL's driver/hardware tries to handshake with the device and chooses the slower data rate (if this is applicable on a SATA wire anyway, probably the whole PIO/DMA thing does not change the actual data rate on _SATA_ wire).

the 'bustype' is listed as 0x0000000b, which is a SATA bus type.


Correct:

typedef enum _STORAGE_BUS_TYPE {
BusTypeUnknown = 0x00,
BusTypeScsi,
BusTypeAtapi,
BusTypeAta,
BusType1394,
BusTypeSsa,
BusTypeFibre,
BusTypeUsb,
BusTypeRAID,
BusTypeiScsi,
BusTypeSas,
BusTypeSata,
BusTypeSd,
BusTypeMmc,
BusTypeMax,
BusTypeMaxReserved = 0x7F
} STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE;

Elsewhere on the net, I read that XP does not recognize a SATA bustype and that the bus type should be SCSI = 1 or ATA = 3.


What is the icon for SiL in Device Manager? the SCSI one? or some other? can you look at "driver files" tab in Properties? what files are there? SCSIPORT.SYS?

According to the docs, BusTypeSata is supported since Server 2003 SP1. But there are chances that, in this particular context of SCSIPORT's registry, _any_ value is supported which is desired by the driver. Also it is possible that XP SP2 or SP3 added this support to XP. So, probably this does not mean anything.

My practical experience with this same SiL chip was on old Pentium-3 computer with i815 chipset (NOTE: SiL has issues with nForce north bridge due to bugs in PCI implementation by nVidia) and Windows 2000 OS.

SiL was looking as SCSI device there (which means that the SiL's driver for w2k is SCSIPORT-based, probably it is so for XP too). I don't remember what ATA modes the SiL's UI was displaying, I just remember that the disk's data transfer rates were OK (the SiL have not added a bottleneck there) and there was no CPU load due to disk IO on SiL.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

  #4  
Old May 21st 09, 08:35 AM posted to comp.arch.storage
gordo999
external usenet poster
 
Posts: 2
Default SATA optical drive problems with DMA/PIO transfer

Maxim...thanks for time taken to reply in such detail. Your
suggestions and questions are helpful.


The whole PIO/DMA thing has 2 meanings.... Are you sure that SATA wire supports reduced speeds?


Here's a manual I found on the Silicon Image 3112A controller. It goes
into great detail on the UDMA/PIO capabilities. Unfortunately the file
is packed in .bz format but fortunately modern versions of Winrar and
PkZip unpack it with ease.

http://gkernel.sourceforge.net/specs/sii/

It's the top selection on the list, 3112A_SiI-DS-0095-B2.pdf.bz2

While I'm at it, here's one from Intel on SATA implementation of the
ICH5 hub. Mine is ICH4, but intel claims they are quite similar:

http://www.intel.com/assets/pdf/manual/252671.pdf

Here's the programming reference for the ICH familly of controllers:

http://www.intel.com/Assets/PDF/manual/298600.pdf


are you sure that the SATA drive can be uncapable of running its SATA interface at full speed and can require slower speed, the same speeds as for obsolete pre-UDMA parallel ATA hardware? Doubts.


I'm not sure of anything :-)

I have come across something of interest. Based on Intel's explanation
of how SATA/PATA controllers are implemented in the ICH5 hub, it would
seem there are several arrangements which are left up to the OS. Intel
left selection of controller combos out of the BIOS on purpose because
some combinations are unpredictable.

I have a configuration utility from Silicon Image which is labeled
'Configuration for SATALink. It shows a diagram with a hierarchy as
follows: 'Computer name' - SI3112U-0 - Channel 0 - Device 0. Coming
off the SI3112U-0 branch is another leg labelled Channel 1, with no
Device attached. Beside the Device 0 leg is a red X, seemingly an
indication that something is wrong.

If I right-click on Device 0, next to the red X, a small window comes
up saying 'Disable'. Out of curiosity, I selected the disable function
to see if it would disable the device. Nothing seemed to happen, but
later, I noticed the ATA hard drive on the primary controller in
position 2 was missing. So, instead of switching off the optical drive
attached to SATA channel 0, Device 0, it switched off PATA Channel 0,
Device 1, my second drive on the primary controller. I have considered
unplugging Device 1 to see if it helps but that's on the 'to do' list.

Before I go on, let me describe the other parts of the hierarchy. If I
left-click SI3112U-0, it brings up a windows with the information that
the device is an Si3112, version 1 and it's PCI information is: IRQ
21, Bus 2, Device 6.

If I press on Channel 0, it only tells me that the channel speed is
Generation 1 @ 1.5 Gb/s. It's not clear if it is measuring that speed
or advertising it.

If I left-click 'Device 0', I get a window with 3 tabs. Tab 1describes
Device 0 as an HL-DT-STDVD-RAM GH22NS30, the SATA optical device I
have connected to the SATA port. It also says ATA Version: ATA/ATAPI
6, Current Mode: PIO4. It also says the look ahead and write cache are
disabled. I have seen elsewhere that the device is supposed to have a
2 Mb write cache.

Tab 2 is labeled 'SMART/configuration'. There is no SMART data
available. Under 'Transfer Mode', it lists the current mode at PIO4
and gives a dropdown window that lists available transfer modes from
PIO1 to PIO4, MDMA 0 to 2, and UDMA 0 to 5. There is a note claiming a
reboot is required before the mode will change, but all it does is
make an entry in the registry while the mode does not change.

Tab 3 is a mystery. It is marked 'Identity Table' and has an 8 column
by 32 row table filled with hex data.The first entry is 85C0 in column
1 row 1.

There is no doubts about this all with parallel ATA, since it evolved over time from slower version to faster. But SATA is designed to be fast from the beginning.


I can understand that but apparently it was designed to emulate PATA
in one of its modes and that's what Intel claim in one of those pdf's
I linked to above. If a device attached to a SATA controller is not
capable of UDMA transfer rates, and can only run in PIO mode, the
device has to be able to accomodate that.


b) register interface to the controller (between CPU/RAM and the controller). In PIO mode, the _classic_ PC/AT IDE controller uses the REP INSW or REP OUTSW CPU opcode to transfer the actual data to the controller's 16bit data IO port.


I'm just learning about that now. My background is in hardware, as a
technician, and I am more familiar with registers from the old PC/AT
days. I have a lot of catching up to do. When I worked as a tech, we
used to program short Basic programs live and use them to position the
heads on hard drives. etc. All that has gone out the window with the
likes of the HAL interface but I'd like to be able to write a simple
assembler program to interrogate the controller. I know just enough
assembler to be dangerous. :-)


This is only about south bridge controller (and maybe about other south bridges too). The thing is that for this controller, the "legacy mode" emulates the classic PC/AT controller, so that the OS will be able to access the disk as "standard IDE" without having drivers/settings/kernel build options for the modern new controller.


There is a software device made in Russia (PC-3000) for repairing hard
drives. It comes with a PCI card that allows the user to gain control
over the hard drive independently of the OS. I'd like to get down to
that level with a SATA controller so I could see what was going on.
Maybe there's a software template out there that would allow me to
modify it without having to learn driver programming from the ground
up.


In device manager, the controller 'device info' says the device is in
PIO4 mode.


And what is the actual speed? is it OK? if yes - then forget this minor bug in SiL's driver's UI :-)


I would have forgotten it a long time ago but I can't even write with
the drive. I can read OK, but it fails in write mode ...even in
simulation mode. All I can think of is that the PIO4 mode is too slow.
I did a test using Nero's speed utility, and I get an average read
speed that is about 27x (48x drive). That is comparable to the PATA
equivalent drive I have from the same manufacturer. However, the PATA
drive has a burst rate of 19 Mb/s whereas the SATA device is down at 8
Mb/s.

I have doubts that DVD can really require the fastest possible ATA wire speed, I think that around 20/30MB/s is the maximum speed for DVDs (~22MB/s is surely the maximum _burning_ speed, achievable on DVD+R media only).

What is the actual data transfer rate you have on this DVD drive?


see above. My PATA equivalent is set on UDMA 2 mode by the system.
That translates to about 33 Mhz, so your estimate is close. The burst
test is meant to check the UDMA abilities, AFAIK, and the PATA device
measures 19 Mb/s on a CD+R medium. There again, you're pretty close.
The SATA device is only passing an 8 Mhz burst.

along with the REG_SZ MaxMode = UDMA-2


Note "MaxMode". This is the maximum limit, not the actual mode.


I understand that, but the value is being ignored. I have tried
uninstalling the drivers several times with the hope the system would
reset the transfer speed. I remember the old days with IRQ conflicts
and Intel suggests that is a possibility. I just don't know where to
begin looking these days.


The driver is either ignoring the value or the controller is not
responding to it.


or c) there can be a bug in the UI. Or d) the SIlL's driver/hardware tries to handshake with the device and chooses the slower data rate (if this is applicable on a SATA wire anyway, probably the whole PIO/DMA thing does not change the actual data rate on _SATA_ wire).


my understanding on this is limited. Intel seems to suggest different
rates can be selected in legacy mode. Consider that a hard drive or
optical device is a serial device anyway. The bus is going to be too
fast for it so some kind of cache is required. With PIO mode, the data
has to be clocked through memory by the processor and Intel seems to
suggest DMA transfers are available with serial devices as well, to
bypass the processor.

The Si3112 is described as a PCI to serial converter. To program such
a device, would it not be required that a PCI programming protocol be
used? It's not as if you can get into the chip to affect the
serialization and data storage. Everything will be parallel till
inside the chip somewhere.


the 'bustype' is listed as 0x0000000b, which is a SATA bus type.


Correct:


I'm confused about that. Which bus are we talking about? The only real
serial bus is the cable between the Si3112 output and the device,
unless they are talking about a bus inside the Si3112. The Si3112
connects directly to the PCI bus but that is not considered a bustype.
There is a listing for an ATAPI bus (2) a SCSI bus (1) and an ATA bus
(3). I have considered experimenting with different buses but I'm
afraid I'll mess something up.

What is the icon for SiL in Device Manager? the SCSI one? or some other? can you look at "driver files" tab in Properties? what files are there? SCSIPORT.SYS?


The icon on the Si3112 controller is the same as the icon on the
Device Manager SCSI and RAID Controller entry. It's like a capital C
with a dash in the opening. The drivers are as follows:

Si3112.sys
SiRemFil.sys (filter)
SiWinAcc.sys (accelerator)
SilSupp.cpl (property sheet in the Control Panel)

SilSupp.cpl gives about the same information as the configuration
utility. It also has a 'Flash' utility that is currently not available
for my mobo because it is aimed at add-in cards. I do have the flash
binary for third party users but it is recommended that such binaries
come from manufacturers.

I'm confused about the SCSI aspect. What has it to do with a SATA
controller that uses an ATA/ATAPI standard?

Also, the drivers for the SATA optical drive a

cdrom.sys
imapi.sys
redbook.sys
SiRemFil.sys (filter again)
storprop.dll

Those are the same drivers used by the PATA optical device and all are
supplied by Microsoft. I have experimented with turning Microsoft's CD
Burning feature off but it doesn't help. It seems to use imapi.sys.

My practical experience with this same SiL chip was on old Pentium-3 computer with i815 chipset (NOTE: SiL has issues with nForce north bridge due to bugs in PCI implementation by nVidia) and Windows 2000 OS.


those are all viable options to check. I have an NVidia 6200 series
video card, and although that may not seem related to SATA, it uses
memory between 640K and 1 meg just as the Si3112 does. Although the
vid card memory is usually down lower, and the Si3112 uses mem about
F0000, nothing would surprise me.

I also use a firewall (Sygate) that is relatively unobtrusive, but
that gave me a lot of grief with one app.

Thanks again for your correspondence, Maxim.
  #5  
Old May 21st 09, 09:12 AM posted to comp.arch.storage
Maxim S. Shatskih[_2_]
external usenet poster
 
Posts: 36
Default SATA optical drive problems with DMA/PIO transfer

There is a software device made in Russia (PC-3000) for repairing hard
drives. It comes with a PCI card that allows the user to gain control
over the hard drive independently of the OS.


The PCI card is just a SATA controller with special driver, nothing else. Such software works by sending vendor-specific ATA commands to the hard drive, and MS's ATA stack is poor in supporting them, thus the special driver.

the drive. I can read OK, but it fails in write mode ...even in
simulation mode.


Strange. Maybe a bug in SiL's drivers.

reset the transfer speed. I remember the old days with IRQ conflicts


Any modern PCI hardware is free from this issue.

Si3112.sys
SiRemFil.sys (filter)
SiWinAcc.sys (accelerator)
SilSupp.cpl (property sheet in the Control Panel)


On my machine with SiL, I only had Si3112.sys which was linked to MS's SCSIPORT.SYS. Nothing else.

I'm confused about the SCSI aspect. What has it to do with a SATA
controller that uses an ATA/ATAPI standard?


Because the driver plugs in to the SCSI stack of the OS. Nothing surprising. For instance, in NT4, the standard PC/AT ATA driver was plugging to the SCSI stack.

imapi.sys


Pre-Vista MS's burning toolkit. Good software like Nero does not use it.

redbook.sys


Audio.

SiRemFil.sys (filter again)


I have no such filter.

It seems to use imapi.sys.


Yes.

memory between 640K and 1 meg just as the Si3112 does.


Are you sure that the modern PCI device will have such hardcoded memory region? PCI devices use configurable memory apertures.

Can you connect the SATA DVD to the usual south bridge controller? will there be any speed difference?

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

  #6  
Old May 24th 09, 02:47 AM posted to comp.arch.storage
gordo999
external usenet poster
 
Posts: 2
Default SATA optical drive problems with DMA/PIO transfer

memory between 640K and 1 meg just as the Si3112 does.

Are you sure that the modern PCI device will have such hardcoded memory region? PCI devices use configurable memory apertures.


I made a mistake with the Si3112 memory...it's at FEAFFC00. However,
the slot at A0000-BFFFF is occupied by the NVidia AGP card, the
processor to AGP controller and the PCI bus. I have seen no evidence
of conflict other than my SATA drive not reading, but I do have USB
issues with flash cards (thumb drives) and NVidia shares an IRQ with
one of the USB controllers.


Can you connect the SATA DVD to the usual south bridge controller? will there be any speed difference?

I don't understand your question. I have two SATA connectors directly
on my motherboard and the drive requires a SATA connector. I don't
seewhere else I could connect it as it has only a SATA connector.
  #7  
Old May 24th 09, 09:36 AM posted to comp.arch.storage
Maxim S. Shatskih[_2_]
external usenet poster
 
Posts: 36
Default SATA optical drive problems with DMA/PIO transfer

I made a mistake with the Si3112 memory...it's at FEAFFC00.

Yes, and this is dynamically assigned by the joint effort of Windows's pci.sys and acpi.sys and the ACPI stuff in BIOS.

issues with flash cards (thumb drives) and NVidia shares an IRQ with
one of the USB controllers.


Probably some issue of nForce, I never trusted the quality of this chipset (this is, BTW, the reason I'm avoing AMD CPUs - the CPU itself is maybe even better then Intel's, but the chipset...).

I don't understand your question. I have two SATA connectors directly
on my motherboard and the drive requires a SATA connector. I don't
seewhere else I could connect it as it has only a SATA connector.


You said you have perf issues with DVD drive attached to SiL controller.

Can you attach it to the usual on-mobo south bridge controller (nForce's or Intel's) instead of SiL? will there be any performance changes?

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Question: If a SATA optical drive TM Homebuilt PC's 2 May 23rd 08 09:32 AM
Connecting SATA drive and IDE optical? HiC Homebuilt PC's 16 July 18th 06 05:45 AM
SATA optical drive campysr Storage (alternative) 1 January 21st 06 06:08 PM
DynaMO 2300 magneto-optical drive transfer rate Gojko Magazinovic Storage (alternative) 1 October 30th 05 07:45 PM
Optical Drive Problems Vince Dell Computers 2 July 1st 05 06:10 PM


All times are GMT +1. The time now is 10:37 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 HardwareBanter.
The comments are property of their posters.