Warum ist 1 Byte die kleinste ansprechbare Speichereinheit einer Festplatte?
Hallo, in einer Aufgabe muss ich angeben, was genau die kleinste Ansprechbare Einheit einer Festplatte ist. Zuerst habe ich an einen Block gedacht(der die Daten fasst->Seiten?) aber in den Lösungen steht 1Byte, bedeutet dass, dass die Blöcke auch aufgeteilt werden? Stimmt das Ergebnis? Ich habe davon schonmal gehört, ein Block besteht aus einer gewissen Zahl an Bytes, ich weiß nur leider nicht wieviele. Und warum 1 Byte? 1Bit ist doch noch kleiner? Bin da gerade ein bisschen verwirrt.
LG
9 Antworten
Ein Byte ist eine Adresse innerhalb des Systems.
Genau wie eine Postadresse auch mehreren Zeichen besteht, besteht auch ein Byte aus mehreren "Zeichen", den Bits. Bits sind keine Zeichen wie Buchstaben oder Zahlen, sondern jedes Bit signalisiert einen Schaltzustand.
Werden die Bits nicht im floating gate gelesen? von der Festplattenelektronik? ->Strom fließt/fließt nicht? Oder verwechsel ich da gerade was?Hat das was mit Bits zu tun?
Ein Computer lädt mit einem Lesetakt genau soviel (ins RAM) wie der Bus lesen kann. Bei einem 32-bit Datenbus sind es 32 bit und bei einem 64-bit Datenbus entsprechend.
Es macht keinen Sinn kleinere Datenmengen zu laden, weil das die gleiche Zeit benötigt.
Eine Festplatte ist in Datenblöcke organisiert: Wollte man dort einzelne Byte lesen würde der R/W-Kopf dauernd hin- und herpendeln. Das kostet viel Zeit und der Lebensdauer bekommt das auch nicht. Am schnellsten ist eine Festplatte beim sequentiellen Lesen/Schreiben, also blockweise. Der PC liest deshalb von der Festplatte keine Byte, sondern gleich größere Datenmengen - typischerweise 1 kByte.
Hmm...In Kurzform ist das zumindestens korrekt.
Soweit ich das Erinnere ist die kleinste auf der Festplatte ansprechbare Einheit ein Sektor der aus 512 Byte besteht.
Es werden von der Festplatte nur Sektoren gelesen.
Die Nummer des zu lesende Sektor wird an den
Festplatten-Controller übergeben der stellt den Sektor im Buffer bereit und
muss von da aus zur Verarbeitung in den Speicher Kopiert werden.
Ab da kannst du Byte oder Bit verarbeiten.
Es gibt hier Unterschiedliche verfahren wobei die Größe 512 Byte
pro Sektor immer gleich bleibend ist.
Wenn du ein Byte oder Bit auf der Festplatte ändern willst
musst du erst den Sektor Lesen dann das Byte ändern und wieder
zurückschreiben..
Ich glaube nicht das sich das bei den SSD-Platten geändert
hat.
Also würde ich sehr sicher Tippen:Sektor ist die kleinste Einheit !
*;--------d-1342-------------------------------
*;INT 13 - IBM/MS INT 13 Extensions - EXTENDED READ
*; AH = 42h
*; DL = drive number
*; DS:SI -> disk address packet (see #00272)
*;Return: CF clear if successful
*; AH = 00h
*; CF set on error
*; AH = error code (see #00234)
*; disk address packet's block count field set to number of blocks
*; successfully transferred
*;SeeAlso: AH=02h,AH=41h"INT 13 Ext",AH=43h"INT 13 Ext"
*;
*;Format of disk address packet:
*;Offset Size Description (Table 00272)
*; 00h BYTE size of packet (10h or 18h)
*; 01h BYTE reserved (0)
*; 02h WORD number of blocks to transfer (max 007Fh for Phoenix EDD)
*; 04h DWORD -> transfer buffer
*; 08h QWORD starting absolute block number
*; (for non-LBA devices, compute as
*; (Cylinder*NumHeads + SelectedHead) * SectorPerTrack +
*; SelectedSector - 1
*; 10h QWORD (EDD-3.0, optional) 64-bit flat address of transfer buffer*;
*; used if DWORD at 04h is FFFFh:FFFFh
*;
Phönix
Was heisst schon "ansprechbar"? Ein Festplattenschreibkopf schreibt und liest Bit für Bit, also könnte man theoretisch auch einzelne Bits "ansprechen".
Nur ist das sicher nicht nötig, um Daten abzulegen. Man kann ein ganzes Byte oder auch mehr aufs Mal ablegen.
(Um ein einzelnes Bit zu ändern, wird das ganze Byte gelesen, darin das fragliche Bit geändert, und das ganze Byte neu geschrieben.)
Ich bezweifle sogar, dass heutige Festplatten "nur" Bytes ablegen und nicht Words oder noch grössere Einheiten. Das bestimmt der Controller auf der Disk.
Je kleiner die ansprechbare Einheit gewählt wird, desto aufwendiger muss die Adressierung sein. Da wird sich jeder Hersteller wohl das Optimum bezüglich Datendurchsatz, Geschwindigkeit, Anzahl Harddisk-Scheiben und -Köpfe und Bus-Breite suchen.
Danke für die Antwort, nein diese Frage wurde von meinem Professor auf einem übungsscript gestellt, ich habe sie gerade vor mir liegen :"Wie lautet die kleinste ansprechbare Speichereinheit einer Festplatte?" Dann wird noch gefragt, welche Informationen dafür notwendig sind und was das logical Block addressing ist. Ich habe mich jetzt auf die Lösung 1 Byte mit der Oberflächennummer, die Nr der Spur auf der Oberfläche und die Nr des Sektors in dieser Spur eingestellt. Das lba verfahren nummeriert den ganzen Kram durch, ich glaube das macht der Festplatten Controller. Stimmt das so? Kann ich das nächste Woche in die Klausur schreiben? :)
Ich kann dir da keinen Blanko-Check geben.
Ich glaube, ralphdieter ist hier der Crack.
Warum fragst du den Prof. nicht selbst? Wie eingangs geschrieben, scheint es nicht so klar, was er gemeint hat mit "ansprechbar".
Von wem aus gesehen? (Daten-/Adressbus des Systems oder des internen HD-Controllers)?
Ausschliesslich ansprechen, ohne andere gleichzeitig anzusprechen?
Ansprechen als "adressieren" gemeint oder als "auslesen"?
Ein Festplattenschreibkopf schreibt und liest Bit für Bit
Überhaupt nicht! Der Kopf liest und schreibt magnetische Zustände, die alles andere als 1:1-Übersetzungen von Bitmustern sind. Damit vermeidet man u.a., dass zu viele aufeinanderfolgende Nullen oder Einsen als Supermagnet gespeichert werden, der die Nachbarspuren umpolen könnte.
https://de.wikipedia.org/wiki/Run_Length_Limited
Bei diesen Verfahren ist es zwingend, dass nicht mehr einzelne Bits, sondern ganze Blöcke geschrieben werden. Der SCSI- oder ATA-Controller gibt das direkt an den Programmierer weiter: Bei Schreib- und Lesebefehlen kann man nur die Blockadresse angeben.
Stimmt genau, das habe ich nicht beachtet und auch nicht so gemeint. Ich sagte ja, dass vermutlich grössere Einheiten geschrieben werden, schon nur damit die Adressierung einfacher wird.
So wie der Fragesteller fragte, wollte er wohl auch nicht genau darauf hinaus.
Physisch kann der Kopf schon einzelne Bits schreiben, aber nicht so, wie sie vom Bus übermittelt wurden, sondern in eigener Organisation. Also so, dass sie sicher und reproduzierbar abgelegt sind. Die physische Organisation ist also nicht die gleiche wie die logische.
Siehst du, lieber Fragesteller, die Fülle von Ansätzen und Sichtweisen zeigt,dass vielleicht die Frage "falsch" gestellt ist.
Ralphdieter, bist du übrigens sicher, dass der ATA- oder SCSI-Controller bestimmt, wie das geschrieben wird? Das ist doch nur der HostBusAdapter, der quasi die Festplatte bedient. Wie diese ihre Daten organisiert (in deinen Worten also "übersetzt"), bestimmt dann der firmeneigene Controller auf der Disk selber. Oder ist es anders?
der ATA- oder SCSI-Controller bestimmt, wie das geschrieben wird
Ups, natürlich nicht! Bei SCSI schickt der Controller sicher Byte-Sequenzen ans Gerät. Erst dort werden die Daten umgewandelt. Bei ATA wird's genauso sein, obwohl da beide Controller ziemlich dicht aneinander kleben.
Ich hatte wohl noch meinen ersten ST506-Controller von OMTI im Kopf. Der kümmerte sich noch höchstpersönlich um die MFM-Codierung und wollte von mir nur wissen, ab welcher Spur er den Schreibstrom reduzieren soll — ist aber schon ein paar Tage her...
Das kleinste, was es gibt, sind Bits. 8 Bits wiederum sind ein Byte. Bits geben entweder den Zustand 0 oder 1 an, ein Byte kann dann schon etwas spezifischer sein.
wobei die Größe 512 Byte pro Sektor immer gleich bleibend ist
Alte Floppys hatten 128 oder 256 Byte, und Festplatten sind vor ein paar Jahren auf 4096 Byte umgestiegen. Bei CD und DVD sind es meines Wissens nach schon immer 4096 Byte.
Die Block-Größe wird bei der Low-Level-Formatierung des Datenträgers festgelegt.