DE102008059352A1 - Speicherzugriff auf einen portablen Datenträger - Google Patents

Speicherzugriff auf einen portablen Datenträger Download PDF

Info

Publication number
DE102008059352A1
DE102008059352A1 DE200810059352 DE102008059352A DE102008059352A1 DE 102008059352 A1 DE102008059352 A1 DE 102008059352A1 DE 200810059352 DE200810059352 DE 200810059352 DE 102008059352 A DE102008059352 A DE 102008059352A DE 102008059352 A1 DE102008059352 A1 DE 102008059352A1
Authority
DE
Germany
Prior art keywords
memory
file
application
memory area
occupied
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE200810059352
Other languages
English (en)
Inventor
Armin Dr. Bartsch
Boris Birman
Andreas RÖCK
Ingo Wenda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE200810059352 priority Critical patent/DE102008059352A1/de
Priority to EP09784065.6A priority patent/EP2370903B8/de
Priority to PCT/EP2009/065722 priority patent/WO2010060902A1/de
Publication of DE102008059352A1 publication Critical patent/DE102008059352A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Ein Direktzugriff auf einen Speicherbereich (x3) eines mit einem Endgerät (10) verbundenen portablen Speicherdatenträgers (30) durch eine auf dem Endgerät (10) ausgeführte Applikation (17) wird dadurch ermöglicht, dass in dem Speicherdatenträger (30) eine der Applikation (17) zugeordnete Datei (35) angelegt wird und die Applikation (17) auf den von der Datei (35) belegten Speicherbereich (x3) über eine Speicheradresse in dem Speicherbereich (x3) direkt zugreift.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum direkten Zugreifen auf einen Speicherbereich eines portablen Speicherdatenträgers durch eine auf einem Endgerät ausgeführte Applikation, ein derartiges Endgerät, eine derartige Applikation sowie eine Datenkommunikationsanordnung umfassend ein derartiges Endgerät und einen portablen Speicherdatenträger.
  • Portable Speicherdatenträger mit immer größeren Speicherkapazitäten, z. B. Mobilfunkkarten, sichere Multimedia- oder sonstige Speicherkarten (MMC, SD), USB-Speicherelemente oder optische Speichermedien, wie z. B. CDs oder DVDs, werden im Zusammenhang mit einer Vielzahl von elektronischen Endgeräten verwendet, beispielsweise um digitale Inhalte zu speichern. Solche Speicherdatenträger sind dabei mit verschiedenen elektronischen Endgeräten kompatibel, wie z. B. mit Mobilfunkendgeräten, Computern, Digitalkameras oder tragbaren Endgeräten, wie z. B. Laptops oder PDAs.
  • Üblicherweise wird der Speicher eines solchen mit dem Endgerät verbundenen Speicherdatenträgers von einem Betriebssystem des Endgerätes verwaltet, beispielsweise indem ein Dateisystem in dem Speicher angelegt wird, das den physischen Adressraum des Speichers auf einen logischen Adressraum abbildet und durch entsprechende logische Speicherzugriffe ein strukturiertes Ablegen von Daten in Form einer Datei in dem Speicher ermöglicht. Für die logischen Speicherzugriffe stellt das Betriebssystem auf dem Endgerät ausgeführten Applikationen entsprechend abstrakte Funktionsaufrufe bereit.
  • In bestimmten Fällen und insbesondere für privilegierte oder beschleunige Speicherzugriffe kann es jedoch zweckmäßig sein, dass eine auf dem Endgerät ausgeführte Applikation statt eines von dem Betriebssystem bereitgestellten logischen Speicherzugriffs einen direkten Speicherzugriff auf die physischen Speicheradressen des Speicherdatenträgers unter Umgehung des Betriebssystems durchführt, zum Beispiel direkt auf Speicherdatenblöcke oder Sektoren des Speichers.
  • Hierbei ergibt sich jedoch das Problem, dass Zugriffskonflikte und in infolgedessen Dateninkonsistenzen auftreten, da Direktzugriffe einer Applikation unabhängig und von dem Betriebssystem des Endgeräts unbemerkt durchgeführt werden und das Betriebssystem eine Datenmanipulation durch einen Direktzugriff weder mit regulären, logischen Speicherzugriffen anderer Applikationen synchronisieren kann, noch eine konsistente Datenbasis über die üblichen Speicherverwaltungsmechanismen garantieren kann. Ebenso wenig kann die Applikation bei einem Direktzugriff Zugriffskonflikte und Dateninkonsistenzen verhindern, da die Applikation im Speicher lediglich lokal operiert und kein globales Verständnis des Speichers besitzt.
  • Demzufolge ist es die Aufgabe der vorliegenden Erfindung, Zugriffskonflikte und Dateninkonsistenzen bei Direktzugriff einer Applikation auf den Speicherdatenträger zu verhindern.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren, ein Endgerät, ein Computerprogrammprodukt sowie eine Datenkommunikationsanordnung mit den Merkmalen der unabhängigen Ansprüche gelöst. Die davon abhän gigen Ansprüche beschreiben vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung.
  • Erfindungsgemäß führt eine auf einem Endgerät ausgeführte Applikation einen Direktzugriff auf einen mit dem Endgerät verbundenen portablen Speicherdatenträger durch, indem eine der Applikation zugeordnete Datei in dem Speicherdatenträger angelegt wird und die Applikation auf den von der Datei belegten Speicherbereich über eine Speicheradresse in dem Speicherbereich direkt zugreift. In diesem Zusammenhang ist unter einem „direkten Zugriff” oder einem „Direktzugriff” ein schreibender, lesender oder anderweitiger Speicherzugriff auf physische Speicheradressen des betreffenden Speicherdatenträgers unter Umgehung der logischen Speicherverwaltung eines Betriebssystems des Endgeräts zu verstehen. Insofern wird also zunächst die betreffende Datei gemäß den Vorgaben eines in dem Speicherdatenträger eingerichteten Dateisystems als logische Struktur angelegt, während der von der angelegten (logischen) Datei belegte Speicherbereich über dessen physischen Adressraum direkt angesprochen wird. Demzufolge beziehen sich die Begriffe „Datei” und „Dateisystem” auf in einem logischen Adressraum angelegte logische Speicherstrukturen, die gegenüber der tatsächlichen physischen Speicherstruktur abstrahieren. Demgegenüber beziehen sich die Begriffe „Speicherbereich” und „Speicheradresse” auf den physischen Adressraum der tatsächlich in dem Speicherdatenträger vorhandenen Speicherzellen.
  • Ein Direktzugriff der Applikation auf den von der Datei belegten physischen Speicherbereich ist vor Zugriffskonflikten und Dateninkonsistenzen dadurch geschützt, dass das Betriebssystem des Endgeräts alle logischen Zugriffe anderer Applikationen oder Routinen auf die Datei über das Dateisystem kontrolliert und dadurch auf der physischen Ebene des Speichers Kollisionen mit einem Direktzugriff der Applikation vermeidet. Durch den Schutz der Datei als logische Speicherverwaltungsstruktur wird also mittelbar auch der physische Speicherbereich geschützt, der von der Datei belegt wird.
  • Beispielsweise können dadurch, dass das Betriebssystem der Applikation zumindest temporär besondere Zugriffsrechte für logische Zugriffe auf die Datei zuordnet, Zugriffskonflikte und Dateninkonsistenz vermieden werden, da die gegenüber der Applikation eingeschränkten Zugriffsrechte anderer Applikationen und Routinen die physischen Direktzugriffe der Applikation auf den von der Datei belegten Speicherbereich schützen bzw. diese priorisieren. Hierbei ist es insbesondere vorteilhaft, der Applikation exklusive Rechte für logische Schreibzugriffe auf die Datei zuzuordnen, um dadurch zumindest Schreibzugriffe anderer Applikationen oder Routinen auf die Datei und damit auch auf den von der Datei belegten physischen Speicherbereich zu verhindern.
  • Ein erfindungsgemäßes Endgerät umfasst zumindest ein Betriebssystem, einen Speicher, in dem beispielsweise die Applikation abgespeichert ist, einen Prozessor zur Ausführung der in dem Speicher vorliegenden Applikation sowie eine Datenkommunikationsschnittstelle zur Verbindung mit einem portablen Speicherdatenträger, mit dem das Endgerät eine erfindungsgemäße Datenkommunikationsanordnung bildet. Das Betriebssystem des Endgeräts ist derart eingerichtet, dass eine der Applikation zugeordnete Datei in dem mit dem Endgerät verbundenen Speicherdatenträger angelegt werden kann und die Applikation ist gleichzeitig derart eingerichtet, dass sie auf den von dieser Datei belegten Speicherbereich über eine Speicheradresse in dem Speicherbereich direkt zugreifen kann, d. h. über den physischen Adressraum des Speicherdatenträgers.
  • Da die Applikation bei einem Direktzugriff auf den von der Datei belegten Speicherbereich die Speicherverwaltung des Betriebssystems umgeht und deshalb eine physische Speicheradresse innerhalb des betreffenden Speicherbereichs angeben muss, ermittelt die Applikation vor dem Direktzugriff die Speicheradresse in dem von der Datei belegten Speicherbereich, entweder selbständig oder mit Unterstützung des Betriebssystems und dessen logischer Speicherverwaltung durch das Dateisystem.
  • Vorzugsweise stellt das Betriebssystem eine Indikatorfunktionalität für die Applikation bereit, über die die Applikation eine Speicheradresse in dem von der Datei belegten Speicherbereich für einen Direktzugriff ermitteln kann. Entsprechend ist die Applikation vorzugsweise derart eingerichtet, dass sie über die von dem Betriebssystem bereitgestellte Indikatorfunktionalität für einen Direktzugriff eine Speicheradresse in dem von der Datei belegten Speicherbereich ermittelt und dann auf den belegten Speicherbereich über diese ermittelte Speicheradresse direkt zugreift.
  • Bei der von dem Betriebssystem bereitgestellten Indikatorfunktionalität kann es sich um eine Betriebssystemroutine handeln, die die Applikation über einen entsprechenden Betriebssystemaufruf aufrufen kann, mit welchem die Applikation eine Speicheradresse in dem von der Datei belegten Speicherbereich anfordern kann. Alternativ kann die von dem Betriebssystem bereitgestellte Indikatorfunktionalität auch darin bestehen, dass das Betriebssystem beim Anlegen der der Applikation zugeordneten Datei eine oder mehrere vorgegebene Indikatorsequenzen an einer oder mehreren Speicheradressen in dem von der Datei belegten Speicherbereich hinterlegt, um diese als solche Speicheradressen zu markieren, auf die die Applikation direkt zugreifen kann. Diese Speicheradressen können dann über die Indikatorsequenzen von dem Betriebssystem oder vorzugsweise von der Applikation selbst in dem Speicherdatenträger aufgefunden werden, ohne dass auf die logische Struktur des Dateisystems mit der darin angelegten Datei zugegriffen werden muss.
  • Auch ist es möglich, dass die Applikation eine Speicheradresse in dem von der Datei belegten Speicherbereich selbständig und ohne eine von dem Betriebssystem bereitgestellte Indikatorfunktionalität ermittelt, indem die Applikation die vorgegebenen Indikatorsequenzen selbst in dem von der Datei belegten Speicherbereich hinterlegt, um ihn später identifizieren zu können. Alternativ kann die Applikation aber auch das logische Dateisystem des Speicherdatenträgers auswerten und dadurch physische Speicheradressen der angelegten Datei auffinden. Insbesondere sind auch Kombinationen aus den genannten Möglichkeiten zur Ermittlung einer gültigen Speicheradresse in dem von der Datei belegten Speicherbereich möglich.
  • Derartige für einen Direktzugriff ermittelte Speicheradressen können für weitere Direktzugriffe zwischengespeichert werden, beispielsweise in der der Applikation zugeordneten Datei selbst. Jedoch ist es in regelmäßigen Abständen notwendig, diese Speicheradressen zu überprüfen und gegebenenfalls erneut zu ermitteln, da die Speicherverwaltung des Betriebssystems z. B. mittels einer Speicherbereinigung (z. B. „Garbage Collection”) dazu führen kann, dass der von der Datei belegte Speicherbereich physisch verschoben wird und dann veränderte Speicheradressen belegt, obwohl die Datei logisch unverändert bleibt.
  • Bei einem Direktzugriff der Applikation auf den von der Datei belegten Speicherbereich kann es sich um einen unbestimmten Direktzugriff, bei dem z. B. neue Daten an zunächst unbekannten, freien Speicheradressen in dem Speicherbereich abgelegt werden sollen, oder um einen bestimmten Direkt zugriff handeln, bei dem z. B. Daten aus einer bestimmten Speicheradresse ausgelesen oder bestimmte Speicheradressen bei einem aktualisierenden Schreibzugriff überschrieben werden sollen.
  • Bei einem unbestimmten Direktzugriff der Applikation kann diese den von der Datei belegten Speicherbereich dadurch identifizieren, dass sie den gesamten Speicherdatenträger oder zumindest einen Teil des Speicherdatenträgers nach einer vorher hinterlegten, vorgegebenen Indikatorsequenz durchsucht und einen direkten Schreibzugriff in einen Speicherdatenblock oder einem Speichersektor vornimmt, der die gesuchte vorgegebene Indikatorsequenz umfasst. Hierbei können verschiedene vorgegebene Indikatorsequenzen verwendet werden, die neben der reinen Markierungsfunktion eine weitere Information tragen, beispielsweise den betreffenden Speicherdatenblock oder Speichersektor als „frei” oder „belegt” kennzeichnen, und die nach jedem direkten Schreibzugriff der Applikation entsprechend aktualisiert oder erneuert werden.
  • Bei einem bestimmten Direktzugriff auf Speicheradressen in dem belegten Speicherbereich, die der Applikation bereits bekannt sind, muss die Applikation lediglich diese Speicheradressen auf Vorliegen einer Indikatorsequenz prüfen. Falls dabei keine vorgegebene Indikatorsequenz gefunden werden kann, liegt unmittelbar eine Dateninkonsistenz vor, da an der betreffenden Speicheradresse bereits für die Applikation bestimmte Daten und insofern auch eine gültige Indikatorsequenz vorlagen. Eine derartige Dateninkonsistenz ist in der Regel dadurch entstanden, dass zwischenzeitlich eine andere Applikation oder Routine auf diese Speicheradresse über das Dateisystem zugegriffen hat, z. B. im Rahmen eines logischen Schreibzugriffs auf die der Applikation zugeordnete Datei, und dabei die Indikatorsequenz überschrieben wurde. Über das Vorliegen der Indikatorsequenz an der betreffenden Speicheradresse kann also eine Dateninkonsistenz erkannt werden, die durch ein zeitlich versetztes Zugreifen auf den von der Datei belegten Speicherbereich durch einen Direktzugriff der Applikation und einen logischen Zugriff über das Betriebssystem entsteht.
  • Darüber hinaus kann ein Zugriffskonflikt, der dadurch entstehen kann, dass ein logischer Zugriff über das Betriebssystem während des Prüfens von Indikatorsequenzen durch die Applikation vorgenommen wird, dadurch verhindert werden, dass die Applikation die in dem Dateisystem angelegte Datei vor dem Prüfen der Indikatorsequenz öffnet, so dass keine andere Applikation oder Routine während des Direktzugriffs der Applikation auf diese Datei und damit auch auf den betreffenden Speicherbereich schreibend oder lesend zugreifen kann. Das Öffnen der Datei kann die Applikation beispielsweise über einen entsprechenden Betriebssystemaufruf des Betriebssystems veranlassen.
  • Umgekehrt hat dieses Vorgehen auch den Vorteil, dass die Applikation auf den von der Datei belegten Speicherbereich dann nicht per Direktzugriff zugreifen kann, wenn bereits ein logischer Zugriff auf die der Applikation zugeordnete Datei über das Betriebssystem mit einem Öffnen der Datei eingeleitet wurde. In diesem Fall würde ein Versuch der Applikation, die Datei über das Dateisystem zu öffnen, scheitern, da sie bereits geöffnet ist. Vorzugsweise kann eine bestimmte Anzahl von wiederholten Versuchen, die Datei zu öffnen, vorgegeben werden, bevor der Direktzugriff der Applikation auf den von der Datei belegten Speicherbereich mit einer Fehlermeldung abgebrochen wird.
  • Wie oben bereits im Zusammenhang mit den bestimmten Direktzugriffen angesprochen wurde, kann vorgesehen sein, dass Indikatorsequenzen nicht nur beim Anlegen der Datei durch das Betriebssystem in dem Speicherbereich hinterlegt werden, sondern dass die betreffenden Indikatorsequenzen bei jedem Direktzugriff durch die Applikation erneuert oder geändert werden. Hierbei bietet es sich an, die jeweils zu hinterlegenden Indikatorsequenzen derart vorzugeben, dass eine weiterführende Information über den betreffenden Speicherbereich oder Speicherblock integriert wird, z. B. ein Zeitpunkt der letzten Manipulation, ein Speicherstatus, eine datenbezogene Information oder dergleichen. Insbesondere werden die Indikatorsequenzen von der Applikation oder dem Betriebssystem derart erzeugt, dass lediglich eine möglichst geringe Wahrscheinlichkeit verbleibt, dass die Bitfolge der betreffenden Indikatorsequenz auch in etwaigen in dem Speicherdatenträger vorliegenden Nutzdaten enthalten ist. Vorzugsweise wird zumindest bei jedem Schreibzugriff der Applikation auf eine Speicheradresse des von der Datei belegten Speicherbereichs eine neue Indikatorsequenz aktuell erzeugt, beispielsweise durch einen Zufallsgenerator.
  • Besonders bevorzugt werden die Indikatorsequenzen in dem von der Datei belegten Speicherbereich derart hinterlegt, dass eine technische oder anderweitige von der logischen Speicherstruktur des Dateisystems unabhängige Organisationsstruktur des Speicherdatenträgers berücksichtigt wird, beispielsweise eine Speicherdatenblockstruktur oder Speichersektoren. Eine solche Speicherstruktur kann z. B. dadurch berücksichtigt werden, dass in jedem Speicherdatenblock oder im jedem Speichersektor zumindest eine Indikatorsequenz hinterlegt wird, so dass block- oder sektorweise Direktzugriffe derart möglich sind, dass lediglich die vergleichsweise wenigen Speicheradressen des betreffenden Speicherdatenblocks oder Speichersektors nach Indikatorsequenzen durchsucht werden müssen, und nicht etwa der gesamte von der Datei belegte Speicherbereich.
  • Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung von erfindungsgemäßen Ausführungsbeispielen sowie weiteren Ausführungsalternativen im Zusammenhang mit den Zeichnungen, die zeigen:
  • 1 eine Datenkommunikationsanordnung, umfassend ein erfindungsgemäßes Endgerät mit einer ausführbaren Applikation und einen mit dem Endgerät verbundenen portablen Speicherdatenträger; sowie
  • 2 eine schematische Darstellung eines Speichers eines portablen Speicherdatenträgers.
  • 1 zeigt eine Datenkommunikationsanordnung bestehend aus einem Endgerät 10 und einem mit dem Endgerät 10 verbundenen portablen Speicherdatenträger 30. Hierbei sind jeweils nur diejenigen Komponenten des Endgeräts 10 und des Speicherdatenträgers 30 dargestellt, die für die vorliegende Erfindung von Bedeutung sind. Darüber hinaus besitzt sowohl das Endgerät 10 als auch der portable Speicherdatenträger 30 die im Zusammenhang mit derartigen Geräten üblichen weiteren Komponenten.
  • Unter einem Endgerät 10 ist nachfolgend eine computerbasierte Vorrichtung zu verstehen, die Software-/Hardware-Betriebsmittel für einen Nutzer des Endgeräts 10 bereitstellt, um über die Ausführung von auf dem Endgerät lauffähigen Applikationen 17, 19 (APP) eine gewünschte Datenverarbeitung vorzunehmen. Ein derartiges Endgerät 10 kann ein nahezu beliebiges elektronisches, datenverarbeitendes Geräte sein, das über eine Datenkommunikationsschnittstelle 13 zum Anschließen eines Speicherdatenträgers 30 verfügt, wie zum Beispiel ein Personalcomputer, ein Notebook/Laptop, ein Host-Rechner für eine Mehrzahl von Nutzern oder insbesondere auch ein mobiles Endgerät, wie zum Beispiel ein Mobilfunkendgerät, ein persönlicher digitaler Assistent (PDA), eine Digitalkamera oder dergleichen.
  • Die Architektur des Endgeräts 10 basiert auf der üblichen Computerarchitektur und umfasst insbesondere ein Betriebssystem 11, das grundlegende Systemfunktionen bereitstellt, wie zum Beispiel eine Speicherverwaltung und Speicherzuteilung. Teil des Betriebssystems 11 ist insbesondere ein Dateisystem 14 (FILE SYSTEM) zur strukturierten Verwaltung der eigenen oder peripheren Speicher des Endgeräts 10, z. B. des Speichers 33 des portablen Speicherdatenträgers 30. Ebenso umfasst das Betriebssystem 11 einen Gerätetreiber 12 (DRIVER) zur Steuerung der Datenkommunikation mit einem über die Datenkommunikationsschnittstelle 13 angeschlossenen Peripheriegerät, wie zum Beispiel dem portablen Speicherdatenträger 30. Das Betriebssystem 11 stellt ferner Systemfunktionen 15, 16 bereit, über die auf dem Endgerät 10 gespeicherte und auf einem Prozessor des Endgeräts 10 auszuführende Applikationen 17, 19 auf Betriebsmittel des Endgeräts 10 zugreifen können, beispielsweise Funktionen 15 für einen schreibenden oder lesenden Zugriff auf einen eigenen oder peripheren Speicher des Endgeräts 10 oder zum Erzeugen oder Öffnen von in einem solchen Speicher über das Dateisystem 14 angelegten Dateien. Die Systemfunktion 16 stellt hierbei eine besondere Funktionalität bereit, über die die Applikation 17 einen Direktzugriff auf den peripheren Speicher 33 des Speicherdatenträgers 30 ausführen kann, also einen Speicherzugriff direkt auf die physische Ebene des Speichers 33 und unter Umgehung der von der Speicherverwaltung des Betriebssystems 11 und dem Dateisystems 14 bereitgestellten logischen Sicht des Speicher 33.
  • Unter einem portablen Speicherdatenträger 30 ist eine computerbasierte Einrichtung zu verstehen, deren Dimensionierung ein möglichst bequemes Mit führen durch einen Benutzer erlaubt. Ein solcher portabler Speicherdatenträger 30 dient in erster Linie dem Datentransport und hat zumeist keine weiterführenden Funktionalitäten oder ausgeprägte Benutzerschnittstellen in Form einer Tastatur oder einer Anzeigeneinrichtung. Typische portable Speicherdatenträger im Sinne der vorliegenden Erfindung sind beispielsweise Chipkarten, SmartCards, USB-Speicherelemente, sichere Multimediakarten (MMC), sichere digitale Speicherkarten (SD), Mobilfunkkarten (SIM) oder dergleichen.
  • Der portable Speicherdatenträger 30 umfasst insbesondere eine Datenkommunikationsschnittstelle 32 zum Verbinden mit der kompatiblen Datenkommunikationsschnittstelle 13 des Endgeräts 10, einen Controller 31 (CNTL) zur Steuerung der Speicherfunktionalität des Speicherdatenträgers 30 und der Datenkommunikation mit dem Endgerät 10 sowie einen nicht-flüchtigen wieder beschreibbaren Speicher 33, beispielsweise einen Flash- oder EEPROM-Speicher. Auf Seiten des Speicherdatenträgers 30 erfolgt die Verwaltung des Speichers 33 mittels einer Speicherbelegungstabelle 34 (FAT), die eine in dem Speicher 33 angelegte Verzeichnis- und Dateistruktur wiedergibt und eine Abbildung herstellt zwischen der von dem Betriebssystem 11 und dem Dateisystem 14 bereitgestellten logischen Speicherstruktur und der dahinter stehenden physischen Speicherstruktur des Speichers 33 und deren physischem Adressraum. 2 zeigt beispielhaft eine Belegung des Speichers 33 mit einer entsprechenden Speicherbelegungstabelle 34.
  • Die Speicherbelegungstabelle 34 muss nicht notwendigerweise im Speicher 33 vorliegen, sondern kann auch in einem separaten Speicher des Speicherdatenträgers 30 oder auch in einem geeigneten Speicher des Endgeräts 10 vorliegen. Die korrespondierenden Datenkommunikationsschnittstellen 13, 32 sind typischerweise kontaktbehaftet, können jedoch auch kontaktlos aus gestaltet sein. Sie sind insbesondere universelle Startschnittstellen, wie zum Beispiel USB-Schnittstellen, oder auf den konkreten Typ des Speicherdatenträgers 30 abgestimmte Schnittstellen, etwa Multimediakarten-, Speicherkarten-, Mobilfunkkarten- oder sonstige Schnittstellen. Zur Durchführung einer Datenkommunikation zwischen dem Endgerät 10 und dem Speicherdatenträger 30 über die Schnittstellen 13, 32 wird ein geeignetes, auf den Speicher 33 abgestimmtes Datenübertragungsprotokoll eingesetzt.
  • Das Betriebssystem 11 des Endgeräts 10 ist ein für computerbasierte Endgeräte verbreitetes Betriebssystem, wie zum Beispiel Windows, Linux, eine Java-Plattform oder dergleichen. Es führt die Applikationen 17, 19 aus, welche Nutzfunktionen realisieren, die auch Zugriffe auf Speicher des Endgeräts 10, insbesondere auf den peripheren Speicher 33 des Speicherdatenträgers 30 zur Folge haben können. Bei der Ausführung der Applikationen 17, 19 werden insofern die von dem Betriebssystem 11 bereitgestellten logischen Speicherzugriffs- und -verwaltungsfunktionen 15 im Zusammenhang mit dem Dateisystem 14 und der Speicherbelegungstabelle 34 verwendet, um in dem physischen Speicher 33 eine logische Verzeichnis- und Dateistruktur anzulegen, derartige Verzeichnisse oder Dateien zu öffnen, Daten daraus auszulesen oder darin einzuschreiben.
  • Dabei ist das Dateisystem 14 dem Betriebssystems 11 unmittelbar zugeordnet und verwaltet einen oder mehrere (transparente) Speicher des Endgeräts 10 und der angeschlossenen Peripheriegeräte und Speicherdatenträger 30. Logische Zugriffe auf den Speicher 33 über das Dateisystem 14 erfolgen anhand des jeweiligen logischen Dateibezeichners bzw. Dateinamens mittels standardisierter Zugriffsbefehle, wie zum Beispiel „write 'data' 'file” (Schreiben), „read 'file” (Lesen), „open 'file” (Öffnen) oder „create 'file” (Erzeugen) oder dergleichen. Ein solcher über das Betriebssystem 11 ausgeführter logischer Zugriffsbefehl 15 wird von dem Dateisystem 14 mittels eines geeigneten Gerätetreibers 12 in einen physischen Zugriff auf den von dem Dateisystem 14 verwalteten Speicher 33 umgesetzt. Das Dateisystem 14 verwaltet dabei gegenüber dem Betriebssystem 11 auch die Speicherbelegungstabelle 34, die die Zuordnung der von dem Dateisystem 14 angelegten logischen Speicherstruktur und dem demgegenüber transparenten physischen Adressraum des Speichers 33 herstellt.
  • Zur Ausführung eines vom Betriebssystem 11 übermittelten logischen Zugriffsbefehls 15 auf den Speicher 33 benutzt das Dateisystem 14 den Gerätetreiber 12, der entweder, wie dargestellt, als Teil des Betriebssystems 11 oder separat davon ausgestaltet sein kann. Dieser setzt die logischen Zugriffsbefehle 15 in für den Controller 31 des Speicherdatenträgers 30 interpretierbare Befehle 20 um. Diese Befehle 20 umfassen physische Speicheradressen (ADDR) des von dem jeweiligen Befehl 20 angesprochenen Speicherbereichs, sowie eine Angabe über den Typ des Zugriffsbefehls 20, beispielsweise darüber, ob ein Schreib- oder ein Lesebefehl vorliegt (R/W). Die dem Befehl 20 zugeordneten Daten (DAT) werden dann datenblockweise übermittelt, und an die betreffende physische Speicheradresse (ADDR) des Speichers 33 geschrieben. Der Controller 31 des Speicherdatenträgers 30 setzt wiederum die über die Datenkommunikationsschnittstelle 32 eingehende Zugriffsbefehle 20 in entsprechende Zugriffe auf Speicheradressen des Speichers 33 um. Zur Vorbereitung dieser Speicherzugriffe im Endgerät 10 übermittelt er dem Dateisystem 14 dazu die Speicherbelegungstabelle 34.
  • Neben solchen logischen Speicherzugriffen über die Speicherzugriffsbefehle 15 besteht auch die Möglichkeit, dass eine ausgewählte Applikation 17 einen Direktzugriff auf den Speicher 33 des Speicherdatenträgers 30 unter Umgehung der Speicherverwaltungsmechanismen des Betriebssystems 11 und des Dateisystems 14 vornimmt. Derartige Direktzugriffe auf den physischen Adressraum des Speichers 33 werden üblicherweise über eine Blockadressierung durchgeführt, so dass mit einem Direktzugriff ein oder mehrere Speicherblöcke ausgelesen oder überschrieben werden.
  • Zugriffskonflikte und Dateninkonsistenzen, die dadurch auftreten können, dass einerseits Direktzugriffe der Applikation 17 auf den Speicher 33 nicht der Speicherverwaltung des Betriebssystems 11 unterliegen und deshalb von diesem nicht erkannt werden können und andererseits die Applikation 17 auch keine logischen Zugriffe auf den Speicher 33 über die Zugriffsfunktionen 15 erkennt, werden dadurch verhindert, dass die Direktzugriffe der Applikation 17 ausschließlich in denjenigen Speicherbereich erfolgen, der von einer Datei 35 (FILE) belegt wird, welche eigens zum Zwecke der Synchronisation von direkten und logischen Zugriffen angelegt und der Applikation 17 zugeordnet wurde.
  • Diese Datei 35 wird von dem Betriebssystem 11 in der herkömmlichen Weise als logische Struktur über das Dateisystem 14 angelegt, z. B. mittels des Befehls „create 'file” 15, und in der Speicherbelegungstabelle 34 verzeichnet. In diesem Zusammenhang zeigt 2 die Datei 35 und den von ihr belegten Speicherbereich x3 sowie den entsprechenden Eintrag 36 in der Speicherbelegungstabelle 34, der die physischen Speicheradressen addr30 bis addr3n des von der Datei 35 belegten Speicherbereichs x3 wiedergibt. Direktzugriffe der Applikation 17 auf Speicheradressen des Speichers 33 erfolgen dann ausschließlich in den von der Datei 35 belegten Speicherbereich x3 bzw. in den zugehörigen Adressraum addr30 bis addr3n, so dass ein Direktzugriff auf den physischen Speicherbereich x3 möglich ist, der jedoch gleichzeitig mittels der übergeordneten, dem Dateisystem 14 bekannten und in der Speicherbele gungstabelle 34 verzeichneten logischen Datei 35 durch die Schutzmechanismen und die Zugriffspolitik des Betriebssystems 11 geschützt ist.
  • Diese Hybridlösung von Direktzugriffen in den physischen Speicherbereich x3 einer logisch angelegten Datei ermöglicht die Synchronisation zwischen Direktzugriffen der Applikation 17 und logischen Zugriffen über die Zugriffsbefehle 15 des Betriebssystems 11, da die Speicherverwaltung des Betriebssystems 11 die Datei 35 der Applikation 17 logisch zuordnen kann, so dass logische Speicherzugriffe anderer Applikationen 19 auf diese Datei 35 reguliert und eingeschränkt werden können. Dazu können der Applikation 17 von dem Betriebssystem 11 insbesondere exklusive Zugriffsrechte zugewiesen werden, so dass andere Applikationen 19 zumindest nicht durch einen logischen Zugriff in die Datei 35 schreiben können.
  • Bei einem Direktzugriff der Applikation 17 auf den von der Datei 35 belegten Speicherbereich x3 in dem Speicher 33 kann die Applikation 17 zur Ausführung des Direktzugriffs eine oder mehrere physische Speicheradressen „addr3i” ermitteln, die innerhalb des Adressraums addr30 bis addr3n des von der Datei 35 belegten Speicherbereichs x3 liegen. Dies kann beispielsweise dadurch geschehen, dass das Betriebssystem 11 eine Funktionalität bereitstellt, z. B. in Form der Systemfunktion 16, die der Applikation 17 auf Anfrage eine physische Adresse addr3i innerhalb des gewünschten Speicherbereichs x3 der Datei 35 liefert. Dazu kann das Betriebssystem 11 über das Dateisystem 14 und die Speicherbelegungstabelle 34 die zu dem von der Datei 35 belegten Speicherbereich x3 zugehörigen physischen Speicheradressen addr30 bis addr3n ermitteln und an die Applikation 17 zurückliefern. Ebenso gut kann die Applikation 17 selbst die erforderlichen Speicheradressen ermitteln, beispielsweise indem die Applikation 17 die Art des Dateisystems 14 erkennt und auf dem portablen Speicherdatenträger 30 eine geeignete Spei cheradresse addr3i der Datei 35 ermittelt, beispielsweise durch selbständiges Auslesen des entsprechenden Eintrags 36 aus der Speicherbelegungstabelle 34.
  • Eine weitere Möglichkeit des Betriebssystems 11, über die Systemfunktion 16 ein Ermitteln von geeigneten physischen Speicheradressen add3i im Adressraum addr30 bis addr3n durch die Applikation 17 zu ermöglichen, besteht darin, dass die Systemfunktion 16 beim Anlegen der Datei 35 so genannte Indikatorsequenzen 37 („Magic Words”) in den von der Datei 35 belegten Speicherbereich x3 des Speichers 33 einbringt, welche aus besonders charakteristischen, längeren Bitfolgen bestehen, z. B. aus Datenwörten einer Länge von 32 Bytes. Bei einem Direktzugriff durch die Applikation 17 auf den von der Datei 35 belegten Speicherbereich x3 kann diese eine gültige Speicheradresse in dem von der Datei 35 belegten Speicherbereich x3 ermitteln oder prüfen, ob eine derartige Indikatorsequenz 37 an einer der Applikation bekannten Speicheradresse addr3i oder einer anderen Speicheradresse eines Speicherdatenblocks vorliegt und dadurch feststellen, ob eine gültige Speicheradresse addr3i innerhalb des Speicherbereichs x3 durch den Direktzugriff angesprochen wird.
  • Nach der Ermittlung eine Speicheradresse in dem von der Datei 35 belegten Speicherbereich x3 bildet die Applikation 17 einen Direktzugriffsbefehl 18, der vorzugsweise ähnlich zu dem von dem Gerätetreiber 12 erzeugten Befehl 20 einen Kommandoanteil (R/W), einen Datenanteil (DATA) sowie einen Adressanteil (ADDR) aufweist, der unabhängig von der von dem Dateisystem 14 vorgegebenen logischen Speicherstruktur in den physischen Adressraum addr30 bis addr3n des Speichers 33 zeigt.
  • Bei derartigen Direktzugriffen der Applikation 17 kann unterschieden werden zwischen einem bestimmten Direktzugriff der Applikation 17 auf eine oder mehrere der Applikation 17 bereits bekannte Speicheradressen (z. B. bei Auslesen oder Überschreiben von vorgegebenen Speicheradressen) und einem unbestimmten Direktzugriff auf eine beliebige, der Applikation 17 vorher nicht bekannte Speicheradresse in dem von der Datei 35 belegten Speicherbereich x3 (z. B. beim Ablegen von Daten an einer freien Speicheradresse). Diese Direktzugriffe werden nachfolgend im Zusammenhang mit 2 erläutert, die eine Speicherbelegung des Speichers 33 schematisch zeigt, bei der in dem Speicher 33 sechs Dateien x0 bis x5 angelegt sind, die jeweils in der Speicherbelegungstabelle 34 mit ihren physischen Adressen verzeichnet sind.
  • Hierbei ist der Speicherbereich x3 über den Eintrag 36 in der Speicherbelegungstabelle 34 der vom Betriebssystem 11 angelegten Datei 35 zugeordnet und steht für Direktzugriffe der Applikation 17 zur Verfügung. Der Speicherbereich x3 ist in mehrere Speicherblöcke unterteilt (strichliniert angedeutet), die jeweils eine Indikatorsequenz 37 aufweisen, an der die Applikation 17 erkennen kann, dass der betreffende Speicherblock und dessen Speicheradressen) zu dem Speicherbereich x3 gehört. Die Kennzeichnung durch die Indikatorsequenzen 37 ist notwendig, da die Datei 35 lediglich eine von dem Betriebssystem 11 bzw. dem Dateisystem 14 angelegte logische Speicherverwaltungsstruktur repräsentiert und als solche auf der Ebene der physischen Direktzugriffe nicht erkennbar ist.
  • Bei einem bestimmten, blockweisen Direktzugriff auf eine vorgegebene Speicheradresse in den Speicherbereich 35 prüft die Applikation 17 zunächst, ob in dem betreffenden Speicherblock eine Indikatorsequenz 37 vorliegt. Ist dies der Fall, so kann die Applikation 17 den gewünschten direkten Schreib- oder Lesezugriff unmittelbar durchführen, da er in einen zulässigen Speicherblock innerhalb des der Applikation 17 zugeordneten Speicherbereichs x3 zielt.
  • Bei einem unbestimmten Direktzugriff ist es jedoch erforderlich, dass die Applikation 17 eine oder mehrere zunächst unbekannte Speicheradressen bzw. Speicherblöcke innerhalb des Speicherbereichs x3 anhand der hinterlegten Indikatorsequenzen 37 ermittelt, indem der gesamte Speicher 33 oder zumindest ein vorgegebener oder heuristisch festgelegter Anteil des Speichers 33 solange durchsucht wird, bis geeignete Speicherblöcke mit einer Indikatorsequenz 37 identifiziert werden können. Ein Durchsuchen größerer Anteile des Speichers 33 kann insbesondere auch dann notwendig sein, wenn der von der Datei 35 belegte Speicherbereich x3 durch das Betriebssystem 11 infolge einer Speicherbereinigung (z. B. einer „Garbage Collection”) oder einer Speicherkompaktierung verschoben wurde und inzwischen andere physische Speicheradressen umfasst. Zum Kenntlichmachen der Speicherblöcke des Speicherbereichs x3 auch nach einer Verschiebung durch das Betriebssystem 11 können die Indikatorsequenzen 37 neben ihrer eigentlichen Markierungsfunktion noch weitere Informationen vermitteln, z. B. ob es sich bei dem betreffenden Speicherblock um einen bereits belegten oder noch freien Speicherblock handelt oder dergleichen.
  • Abhängig von der Art der Speicherverwaltung und -bereinigung des Speichers 33 durch das Betriebssystem 11 kann es zweckmäßig sein, einmal ermittelte Speicheradressen in dem Speicherbereich x3 zwischenzuspeichern, beispielsweise an einer ausgewählten konstanten Speicheradresse addr3k in dem Speicherbereich x3 oder in den verbleibenden Speicherbereichen des Speichers 33. Diese zwischengespeicherten Speicheradressen müssen jedoch in regelmäßigen Abständen verifiziert werden und zwar umso öfter, desto größer die Wahrscheinlichkeit einer Speicherbereinigung und einer dadurch verursachten Verschiebung des Speicherbereichs x3 ist. In solchen Fällen ist dann bei der Ermittlung einer geeigneten Speicheradresse in dem Speicherbereich x3 ähnlich wie bei einem unbestimmten Direktzugriff vorzugehen, da die geänderten physischen Speicheradressen des von der Datei 35 belegten Speicherbereichs x3 vor einem Direktzugriff erneut ermittelt werden müssen.
  • Ein anderes Szenario kann eintreten, wenn eine andere Applikation 19 infolge eines logischen Zugriffs auf die Datei 35 einen in dem Speicherbereich x3 befindlichen Speicherblock überschreibt und dadurch auch die Indikatorsequenz 37 löscht. Ein solcher regulär überschriebener Speicherdatenblock kann dann bei einem (bestimmten) Direktzugriff nicht ohne weiteres von der Applikation 17 überschrieben werden, da dies zu einer Dateninkonsistenz führen würde. Vielmehr wird entweder der Direktzugriff mit einer Fehlermeldung abgebrochen oder eine Konsistenzprüfung der Applikation 37 oder des Betriebssystems 11 korrigiert etwaige überschriebene oder fehlerhafte Indikatorsequenzen 37 in dem Speicherbereich x3.
  • Eine Indikatorsequenz 37 wird vorzugsweise von der Applikation 17 erzeugt oder von einer hierfür eingerichteten weiteren Funktion, die z. B. das Betriebssystem 11 bereitstellen kann. Dabei wird die Indikatorsequenz 37 derart vorgegeben, dass sie ein möglichst unwahrscheinliches Bitmuster aufweist, so dass die Wahrscheinlichkeit minimal ist, dass von dem Betriebssystem 11 in dem Speicher 33 regulär abgelegte Nutzdaten das gleiche Bitmuster aufweisen und dadurch aufgrund von Fehlzugriffen der Applikation 17 Dateninkonsistenzen verursachen würden. Vorzugsweise werden die Indikatorsequenzen 37 nicht nur einmalig bei der Erzeugung der Datei 35 in dem Speicherbereich x3 hinterlegt, sondern werden regelmäßig oder nach jedem Direktzugriff erneuert oder geändert, beispielsweise indem bei jedem Di rektzugriff eine neue Indikatorsequenz 37 erzeugt und hinterlegt wird. Hierbei kann es vorteilhaft sein, in die Indikatorsequenzen 37 weitere Informationen über den jeweiligen Speicherdatenblock einzubringen, z. B. den Zeitpunkt der letzten Aktualisierung des Speicherdatenblocks, einen Belegungsstatus oder dergleichen. Vorzugsweise können die Indikatorsequenzen 37 mittels eines Zufallsgenerators erzeugt werden, wobei gegebenenfalls die weiteren Informationen über den entsprechenden Speicherdatenblock in das zufällige Bitmuster integriert werden.
  • Um Zugriffskonflikte während des Direktzugriffs zu verhindern, z. B. solche, die bei einem logischen Zugriff auf die Datei 35 über eine Betriebssystemfunktion 15 während der Prüfung auf Vorliegen einer Indikatorsequenz 37 im Rahmen eines Direktzugriffs durch die Applikation 17 entstehen könnten, kann die Applikation 17 kurz vor oder während des Direktzugriffs ein Öffnen der Datei 25 entweder selbständig oder vorzugsweise über das Betriebssystem 11 veranlassen, so dass andere Applikationen 19 von jedwedem logischen Zugriff auf die Datei 35 und den Speicherbereich x3 ausgeschlossen sind, solange die Datei 35 geöffnet ist. Sofern das Öffnen der Datei 35 durch die Applikation 17 fehlschlägt, kann angenommen werden, dass die Datei 35 infolge eines logischen Zugriffs über eine Betriebssystemfunktion 15 bereits vorher geöffnet wurde. In diesem Fall unterbricht die Applikation 17 den Direktzugriff solange, bis sich die Datei 35 wieder öffnen lässt. Hierbei kann eine bestimmte Anzahl von Öffnungsversuchen vorgegeben werden, nach deren Erreichen das Öffnen der Datei 35 auf Veranlassung der Applikation 17 abgebrochen wird und gegebenenfalls eine Fehlermeldung zurückgegeben wird.

Claims (17)

  1. Verfahren zum Direktzugriff auf einen Speicherbereich (x3) eines mit einem Endgerät (10) verbundenen portablen Speicherdatenträgers (30) durch eine auf dem Endgerät (10) ausgeführte Applikation (17), dadurch gekennzeichnet, dass in dem Speicherdatenträger (30) eine der Applikation (17) zugeordnete Datei (35) angelegt wird und die Applikation (17) auf den von der Datei (35) belegten Speicherbereich (x3) über eine Speicheradresse in dem Speicherbereich (x3) direkt zugreift.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Datei (35) durch ein Betriebssystem (11) des Endgeräts (10) gemäß einem auf dem Speicherdatenträger (30) eingerichteten Dateisystem (14) angelegt wird.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Datei (35) der Applikation (17) derart zugeordnet wird, dass das Betriebssystem (11) zumindest Schreibzugriffe anderer Applikationen (19) auf die Datei (35) verhindert.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Applikation (17) eine Speicheradresse in dem von der Datei (35) belegten Speicherbereich (x3) für einen Direktzugriff ermittelt.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die ermittelte Speicheradresse für nachfolgende Direktzugriffe der Applikation (17) zwischengespeichert wird, vorzugsweise in dem von der Datei (35) belegten Speicherbereich (x3).
  6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass die Applikation (17) eine Speicheradresse in dem von der Datei (35) belegten Speicherbereich (x3) mittels einer Betriebssystemfunktion (15) oder mittels einer Auswertung eines Dateisystems (14) des Speicherdatenträgers (30) ermittelt.
  7. Verfahren nach einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, dass die Applikation (17) bei einem Direktzugriff auf den von der Datei (35) belegten Speicherbereich (x3) das Vorliegen zumindest einer vorgegebenen Indikatorsequenz (37) in dem Speicherdatenträger (30) prüft, wobei die zumindest eine Indikatorsequenz (37) Speicheradressen in dem von der Datei (35) belegten Speicherbereich (x3) markiert und derart vorgegeben ist, dass die Wahrscheinlichkeit minimiert wird, dass in dem Speicherdatenträger (30) vorliegende Nutzdaten eine mit der zumindest einen Indikatorsequenz (37) identische Datensequenz umfassen.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Applikation (17) bei einem Direktzugriff auf eine oder mehrere bestimmte Speicheradressen in dem von der Datei (35) belegten Speicherbereich (x3) prüft, ob an zumindest einer der bestimmten Speicheradressen eine Indikatorsequenz (37) vorliegt, und eine Dateninkonsistenz feststellt, falls dort keine Indikatorsequenz (37) vorliegt.
  9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass die Applikation (17) beim Prüfen, ob in dem Speicherdatenträger (30) oder an einer oder mehreren bestimmten Speicheradressen in dem von der Datei (35) belegten Speicherbereich (x3) eine Indikatorsequenz (37) vorliegt, ein Öffnen der Datei (35) veranlasst, um einen konkurrierenden Schreibzugriff über ein Betriebssystem (11) des Endgeräts (10) auf die Datei (35) zu verhindern.
  10. Verfahren nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, dass beim Anlegen der Datei (35) zumindest eine vorgegebene Indikatorsequenz (37) an zumindest einer Speicheradresse in dem von der Datei (35) belegten Speicherbereich (x3) hinterlegt wird.
  11. Verfahren nach einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, dass bei einem Direktzugriff auf den von der Datei (35) belegten Speicherbereich (x3) durch die Applikation (17) zumindest eine vorgegebene Indikatorsequenz (37) an zumindest einer Speicheradresse in dem von der Datei (35) belegten Speicherbereich (x3) erneuert oder geändert wird.
  12. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeichnet, dass beim Hinterlegen von vorgegebenen Indikatorsequenzen (37) in dem von der Datei (35) belegten Speicherbereich (x3) jeweils unterschiedliche Indikatorsequenzen (37) vorgegeben werden.
  13. Verfahren nach einem der Ansprüche 10 bis 12, dadurch gekennzeichnet, dass beim Hinterlegen von zumindest einer Indikatorsequenz (37) an zumindest einer Speicheradresse in dem von der Datei (35) belegten Speicherbereich (x3) in im Wesentlichen jedem Speicherdatenblock des Speicherbereichs (x3) eine Indikatorsequenz (37) hinterlegt wird und die Applikation (17) auf den von der Datei (35) belegten Speicherbereich (x3) speicherblockweise zugreift.
  14. Endgerät (10), umfassend zumindest ein Betriebssystem (11), einen Speicher, einen Prozessor zur Ausführung einer in dem Speicher vorliegenden Applikation (17) sowie eine Datenkommunikationsschnittstelle (13) zur Verbindung mit einem portablen Speicherdatenträger (30), dadurch gekenn zeichnet, dass das Betriebssystem (11) eingerichtet ist, eine der Applikation (17) zugeordnete Datei (35) in dem mit dem Endgerät (10) verbundenen Speicherdatenträger (30) anzulegen und eine Indikatorfunktionalität (16) bereitzustellen, über die die Applikation (17) eine Speicheradresse in dem von der Datei (35) belegten Speicherbereich (x3) für einen Direktzugriff auf den belegten Speicherbereich (x3) ermitteln kann.
  15. Computerprogrammprodukt, das eingerichtet ist, von dem Endgerät (10) nach Anspruch 14 als Applikation (17) ausgeführt zu werden, dadurch gekennzeichnet, dass das Computerprogrammprodukt ferner eingerichtet ist, als ausgeführte Applikation (17) eine Speicheradresse in dem von der Datei (35) belegten Speicherbereich (x3) zu ermitteln und auf den belegten Speicherbereich (x3) über die ermittelte Speicheradresse direkt zuzugreifen.
  16. Endgerät (10) nach Anspruch 14 mit einem als Applikation (17) ausführbarem Computerprogrammprodukt nach Anspruch 15, dadurch gekennzeichnet, dass das Endgerät (10) und das als Applikation (17) ausgeführte Computerprogrammprodukt derart eingerichtet sind, dass sie gemäß einem Verfahren nach einem der Ansprüche 4 bis 13 in Wechselwirkung treten können.
  17. Datenkommunikationsanordnung, umfassend zumindest ein Endgerät (10) und einen mit dem Endgerät (10) verbundenen portabler Speicherdatenträger (30), wobei das Endgerät (10) zumindest ein Betriebssystem (11), einen Speicher, einen Prozessor zur Ausführung einer in dem Speicher vorliegenden Applikation (17) sowie eine Datenkommunikationsschnittstelle (13) zur Verbindung mit dem portablen Speicherdatenträger (30) umfasst, dadurch gekennzeichnet, dass in dem Speicherdatenträger (30) eine der Applikation (17) zugeordnete und von dem Endgerät angelegte Datei (35) vor liegt und die Applikation (17) eingerichtet ist, auf den von der Datei (35) belegten Speicherbereich (x3) über eine Speicheradresse in dem Speicherbereich (x3) direkt zuzugreifen, wobei das Endgerät (10) mit der ausgeführten Applikation (17) und der portable Speicherdatenträger (30) derart eingerichtet sind, dass sie gemäß einem Verfahren nach einem der Ansprüche 1 bis 13 in Wechselwirkung treten können.
DE200810059352 2008-11-27 2008-11-27 Speicherzugriff auf einen portablen Datenträger Withdrawn DE102008059352A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE200810059352 DE102008059352A1 (de) 2008-11-27 2008-11-27 Speicherzugriff auf einen portablen Datenträger
EP09784065.6A EP2370903B8 (de) 2008-11-27 2009-11-24 Speicherzugriff auf einen portablen datenträger
PCT/EP2009/065722 WO2010060902A1 (de) 2008-11-27 2009-11-24 Speicherzugriff auf einen portablen datenträger

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200810059352 DE102008059352A1 (de) 2008-11-27 2008-11-27 Speicherzugriff auf einen portablen Datenträger

Publications (1)

Publication Number Publication Date
DE102008059352A1 true DE102008059352A1 (de) 2010-06-02

Family

ID=41720550

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200810059352 Withdrawn DE102008059352A1 (de) 2008-11-27 2008-11-27 Speicherzugriff auf einen portablen Datenträger

Country Status (3)

Country Link
EP (1) EP2370903B8 (de)
DE (1) DE102008059352A1 (de)
WO (1) WO2010060902A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2929438A1 (de) * 2012-12-10 2015-10-14 Google, Inc. Verwendung einer virtuell-zu-physisch-karte zur direkten benutzerraumkommunikation mit einer datenspeichervorrichtung
EP3470989A1 (de) * 2017-10-13 2019-04-17 Proton World International N.V. Logische speichereinheit für flash-speicher

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
CN111696611B (zh) * 2019-03-11 2023-01-20 大陆汽车电子(连云港)有限公司 嵌入式芯片数据访问方法
CN112445778B (zh) * 2019-09-05 2024-05-28 中车株洲电力机车研究所有限公司 基于VxWorks的文件操作方法和文件操作系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065866A1 (en) * 2001-10-01 2003-04-03 Spencer Andrew M. Memory controller for memory card manages file allocation table
DE102006003261A1 (de) * 2005-02-04 2006-08-24 Samsung Electronics Co., Ltd., Suwon Speichersystem und Verfahren zur Datenzusammenführung

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809558A (en) * 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
US6928456B2 (en) * 2001-03-06 2005-08-09 Intel Corporation Method of tracking objects for application modifications
WO2002086719A2 (en) * 2001-04-24 2002-10-31 Koninklijke Philips Electronics N.V. Improved error correction scheme for use in flash memory allowing bit alterability
WO2007019175A2 (en) * 2005-08-03 2007-02-15 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7562204B1 (en) * 2006-03-29 2009-07-14 Sun Microsystems, Inc. Identifying and relocating relocatable kernel memory allocations in kernel non-relocatable memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065866A1 (en) * 2001-10-01 2003-04-03 Spencer Andrew M. Memory controller for memory card manages file allocation table
DE102006003261A1 (de) * 2005-02-04 2006-08-24 Samsung Electronics Co., Ltd., Suwon Speichersystem und Verfahren zur Datenzusammenführung

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2929438A1 (de) * 2012-12-10 2015-10-14 Google, Inc. Verwendung einer virtuell-zu-physisch-karte zur direkten benutzerraumkommunikation mit einer datenspeichervorrichtung
EP3470989A1 (de) * 2017-10-13 2019-04-17 Proton World International N.V. Logische speichereinheit für flash-speicher
FR3072476A1 (fr) * 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
US11144446B2 (en) 2017-10-13 2021-10-12 Proton World International N.V. Logical memory unit for flash memory

Also Published As

Publication number Publication date
WO2010060902A1 (de) 2010-06-03
EP2370903A1 (de) 2011-10-05
EP2370903B8 (de) 2017-09-20
EP2370903B1 (de) 2017-08-09

Similar Documents

Publication Publication Date Title
DE112010003650B4 (de) Container-Markierungsschema zum Verringern einer Schreibverstärkung bei Halbleiter-Einheiten
DE60006779T2 (de) Verfahren zum schreiben eines geänderten bios codes in den rompeicherchip einer hostschnittstelle
DE102018214013A1 (de) Automatische kontinuierliche Prüfpunktsetzung
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
EP2115595B1 (de) Verbesserung der leitungsfähigkeit von speicherbauelementen durch einen vorlöschmechanismus
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE202010017666U1 (de) Partitionsverteilung bei einer Datenspeichervorrichtung mit Flash-Speicherchips
EP3752905B1 (de) Append-only-streams zum speichern von daten auf einer festkörpervorrichtung
DE102010030750A1 (de) Bitfehlerschwelle und inhaltsadressierbarer Speicher zur Adressierung einer umabgebildeten Speichereinheit
DE102010018765A1 (de) Speichervorrichtung und Speicherverfahren
DE102006003261A1 (de) Speichersystem und Verfahren zur Datenzusammenführung
CN105190571A (zh) 页表数据管理
DE102008015034A1 (de) Speicherkarte, Speicherkartensystem, Verfahren zum Steuern eines Hosts und Verfahren zum Betreiben einer Speicherkarte
DE202010017644U1 (de) Hybridspeichervorrichtung
EP2370903B1 (de) Speicherzugriff auf einen portablen datenträger
DE102012022728A1 (de) Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens
DE102012201225A1 (de) Rechnersystem
DE102016001066A1 (de) Zuordnung der logischen Blockadresse für Festplattenlaufwerke
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R005 Application deemed withdrawn due to failure to request examination