logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Obsługa dysku twardego pata

BetaTester2010 11 Lis 2010 10:13 2725 3
REKLAMA
  • #1 8728751
    BetaTester2010
    Poziom 15  
    Witam!

    Czy jest tu Ktoś kto bawił się twardymi dyskami? Chodzi mi o komendę write buffer i write sector... Normalnie po wpisaniu komendy write sector do dysku oczekuje on na 512 bajtów danych po czym zapisuje je na dysk, czy nie dałoby się zrobić tak, żeby najpierw wpisywać do bufora komendą write buffer, a później z bufora na dysk komendą write sector?

    Będę wdzięczny za pomoc.

    P.S.
    Tak mi przyszło do głowy, że może dysk twardy ma opcję Time Out i jeśli nie wpiszę danych to po jakimś czasie anuluje komendę, tak?
  • REKLAMA
  • #2 8729185
    nsvinc
    Poziom 35  
    Tak jak napisales - dyski maja rozkaz zapisania sektora zawartoscia bufora.

    Czy ty myslisz, ze dane, ktore wysylasz po write sector trafiaja dokad? Na talerz?? Przeciez ida do bufora, a jak skonczysz wysylac (512B) to wtedy dysk bierze ten bufor, i zapisuje na talerz. Zauwaz, ze dysk jest BUSY przez pare chwil po skonczeniu wysylania danych. W czasie tego BUSY przewaznie dysk chce zaswiecic swojego LEDa.

    Zdaje sie, ze timeout nie do tego sluzy...
    Poza tym, skoro wysylasz do dysku rozkaz zapisania czegos, to po co chcesz to anulowac? Skoro MASZ dane, to nie ma powodu anulowac, a jesli NIE MASZ danych, to po co wysylac rozkaz zapisu?
  • REKLAMA
  • #3 8729273
    BetaTester2010
    Poziom 15  
    Widzisz sprawa jest taka, zrobiłem sobie płytkę oszczędnościową - nie mam na niej RAMu... Teraz jak przychodzą dane od razu wpisuję je do bufora dysku po wydaniu komendy write sector... No ale jeśli w danych będzie błąd to chciałbym anulować zapis...

    No właśnie nie mogę nigdzie znaleźć komendy zapisu bufora na dysk, jest tylko od razu zapis na dysk (write sector) albo tylko zapis do bufora (write bufor) - co to za śmieszna komenda skoro nie można jej do niczego sensownego użyć...

    Wyjaśniłem problem?
  • #4 8729629
    nsvinc
    Poziom 35  
    512 bajtow ramu ci brak?...
    Jesli tak, to po prostu masz za slaby mikrokontroler. Nikt nie stosuje do obslugi dyskow atmega8 ani innych procow na tym poziomie.
    Zauwaz, ze kontrolery PATA na plytach glownych maja posredni bufor, i to nie jeden. Dane do dysku zapisuje sie wtedy, jak sa gotowe!.

    Poza tym, najpewniej istnieja rozkazy lub okolicznosci, ktore anuluja wydany rozkaz. W internecie krazy specyfikacja standardu UDMA ATA v6 (chyba v6...),
    gdzie jest jasno wszystko opisane.

    BTW, gdyby wziac porzadny mikrokontroler z DMA, to moznaby wykorzystac ficzer DMA ktory dyski obsluguja, a nikt z tego nie korzysta bo przewaznie nie wie jak :P A zanim padnie jakies pytanie na temat PATA, wypada wpisac nieco w google. Oto wynik

    No i biblia do standardu...
REKLAMA