WO1997005617A2 - Systems and methods for accessing a data storage device - Google Patents

Systems and methods for accessing a data storage device Download PDF

Info

Publication number
WO1997005617A2
WO1997005617A2 PCT/US1996/012299 US9612299W WO9705617A2 WO 1997005617 A2 WO1997005617 A2 WO 1997005617A2 US 9612299 W US9612299 W US 9612299W WO 9705617 A2 WO9705617 A2 WO 9705617A2
Authority
WO
WIPO (PCT)
Prior art keywords
memory
window
card
memory space
ofthe
Prior art date
Application number
PCT/US1996/012299
Other languages
French (fr)
Other versions
WO1997005617A3 (en
Inventor
Richard A. Hussong
Michael J. Yetsko
Original Assignee
Systemsoft Corporation
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 Systemsoft Corporation filed Critical Systemsoft Corporation
Priority to AU67630/96A priority Critical patent/AU6763096A/en
Publication of WO1997005617A2 publication Critical patent/WO1997005617A2/en
Publication of WO1997005617A3 publication Critical patent/WO1997005617A3/en

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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Definitions

  • the invention relates to data storage devices and more particularly to systems and methods for efficiently accessing a memory location within a data storage device.
  • PCMCIA PCMCIA memory cards
  • PCMCIA Personal Computer Memory Card International Association
  • PC-Cards provide an efficient way for a portable computer to transfer and store data.
  • the PC-Card such as an 8-megabyte flash card
  • battery back SRAM memory cards, as well as flash memory cards provide permanent or semipermanent large scale data storage that allows a portable computer to store efficiently large amounts ofdata.
  • PC-Cards provide portable computers with a useful method of adding memory, the memory space that is added is accessed by the portable computer through a PCMCIA interface that can require substantial processor overhead to allow the portable computer to read and write data to and from the memory card.
  • Other objects ofthe present invention shall be made apparent upon review of the illustrated embodiments in concert with reading the detailed description thereof.
  • the invention provides systems and methods for efficiently accessing memory locations within the memory space of a data storage device.
  • the invention is understood as a computer program that accesses the memory space of a PC memory device.
  • the memory card conforms to the PCMCIA standard which defines a bus interface for connecting a portable computer to installable devices.
  • the memory card is one such installable device and it is typically formed from a collection of memory chips that are configured together as an electrical circuit card assembly that provides memory storage that can be accessed by the portable computer.
  • the invention provides a computer program, typically a memory card device driver, that receives memory access requests sent from the operating system of the portable computer and translates these operating system access requests into a set of low-level command signals that can be understood by the PC-Card memory device.
  • the memory driver ofthe invention opens a window in the memory space ofthe PC-Card memory device.
  • the window is a logical representation of a portion ofthe memory space that is accessible by the driver.
  • the memory driver generates a set of commands to issue to the software interface to the controller chip for the PC-Card that direct the PC-Card to position the window over that portion ofthe memory card's memory space that contains the memory locations which the operating system is attempting to read from or write to. Consequently, a memory driver according to the invention continuously modifies an open window within the memory space of the PC-Card memory to service the read/write requests ofthe operating system.
  • This driver provides improved efficiencies for reading to and writing from the memory space by maintaining an open window within the memory card between memory access requests. In this way, the driver avoids having to open and close a new window for each read and write request. This reduces processor overhead and speeds memory access.
  • the invention is understood as computer processes for accessing a plurality of memory locations within a memory space of a data storage device.
  • the process can comprise the steps of detecting a sequence of access signals, each being representative of a request to access a select one ofthe plural memory locations and providing an open window within the memory space during the step of detecting the sequence of access signals.
  • a sequence of access signals can be a read request issued by an operating system, followed by a second read request and a later write request, all being separate requests and which can be separated in time.
  • Computer processes according to the invention can include a further step of processing the open window, responsive to each access signal, to position the open window over a portion ofthe memory space that includes the select memory location.
  • the computer process actually opens a plurality of windows within the memory space.
  • the computer process can include the further step of selecting one ofthe plural open windows, responsive to one ofthe access signals, for positioning the selected window over the select memory location.
  • the computer process includes the step of selecting one ofthe plural windows by determining the least recently used window.
  • the process includes steps of opening plural windows within the memory space and positioning one ofthe windows over a portion ofthe memory space that is representative ofthe actual memory, or that is representative of a memory space of a memory chip that comprises the PC-Card computer memory.
  • attribute memory refers to that portion of the memory of a PC Card data storage device that stores information representative of characteristics of that PC Card, and can include information such as a version number ofthe card, the type ofthe card, the memory size of that card and other such characteristic information.
  • the PC card can also include a common memory and the common memory represents that portion ofthe PC Card memory space that is used for storing computer readable data.
  • the invention is understood as a computer process for accessing a memory location within a memory space ofthe PC Card, comprising the steps of locating a window in the PC Card memory space, detecting requests to access the memory location, making a determination whether the window is positioned over a portion ofthe memory space that includes the memory location, and repositioning the window responsive to the determination to position the window over a portion of the memory space that includes the memory location.
  • the step of locating a window in the PC Card memory space can also include steps of selecting a first window and a second window in the PC Card memory space, making determination as to which ofthe first and second windows is least recently used and locating responsive for that determination, one ofthe first and second windows.
  • the invention can be understood as an apparatus for accessing a memory location within a memory space of a PC Card.
  • Apparatus according to the invention comprise a window locator capable of locating a window in the PC Card memory space, an interface for receiving a request to access the memory location, a location processor for making a determination whether the window is positioned over a portion of a memory space that includes the memory location, and a window processor that is responsive to that determination from modifying the window to position the window over a portion of that memory that includes the memory location.
  • the window locator includes a selector that selects a first and second window in the PC Card memory space, a resource processor for determining which ofthe first and second windows is the least recently used, and a locator for locating that least recently used window.
  • FIG.1 depicts one embodiment ofthe invention that provides an open window within the memory space of a data storage device
  • FIG. 2 illustrates a functional block diagram ofthe software modules employed for accessing a memory location for a PC Card data storage device
  • FIG. 3 is a functional block diagram that depicts in more detail a system according to the invention for accessing a memory location of a PC Card data storage device
  • FIG. 4 is a flow chart diagram of one process according to the invention.
  • FIG. 1 depicts a memory access system 10 according to the invention that includes a card services module 12, a Memory Technology Driver (MTD) 14, a MTD helper function module 16, and four pre-opened windows within the memory space of a PC Card data storage device, depicted as open windows 18a - 18d.
  • MTD Memory Technology Driver
  • the depicted memory access system 10 provides an MTD 14 which employs a plurality of pre-opened windows that exist within the memory space of a PC card data storage device and that can be employed by the MTD 14 in concert with the memory driver helper function module 16 to perform read, write and erase operations in response to memory access requests provided by the card services module 12.
  • Helper services as is generally known in the art, allow control of low level details ofthe device access.
  • the memory driver helper function module 16 is illustrated as a separate element. However, the module 16 can optionally be incoiporated into the card services module 12 or the MTD 14.
  • Each window 18a - 18d can be a pre-opened window that is opened within the memory space ofthe PC Card data storage element upon insertion ofthe PC Card data storage device into the host computer.
  • the system 10 maintains the open windows during multiple accesses to the memory ofthe PC Card data storage device and employs the opened windows 18a - 18d to service the memory access requests provided by the card services module 12. Accordingly, the system 10 depicted in FIG. 1 achieves improved efficiencies during memory access processing by reducing the number of times a window is to be opened and closed within the memory space of a PC Card data storage device, and thereby reduces the processor overhead required to access a memory location within the PC Card data storage device.
  • FIG. 2 depicts in more detail a system 10 according to the invention that provides access into the memory space of a data storage device.
  • FIG. 2 depicts application programs 20a - 20c, an operating system 22, clients 24a - 24c, a card services module 28, a MTD 30, a window table 32, socket service modules 34 a and 34 b, an adapter 36, and PC Card data storage devices 38 and 40.
  • the application programs depicted in FIG. 1, 20a - 20c can be any computer program application ofthe type capable of being run on a host computer processing system and that is capable of making memory access requests to the memory space of a PC Card data storage device. As depicted in FIG. 2, the application programs 20a - 20c can couple to the operating system 22 and to the PC Card data storage device 30a.
  • the operating system 22 can be any operating system that can exchange data with an application program and can process memory access requests generated by the application program to provide the application program with access to a memory location within the address space controlled by that operating system 22.
  • Suitable operating systems include DOS, Windows 3.X, Windows 95, Windows NT, and Mac OS.
  • DOS DOS
  • Windows 3.X Windows 95
  • Windows NT Windows NT
  • Mac OS Mac OS
  • the depicted operating system 22 couples to the client elements 24a - 24c.
  • FIG. 2 depicts plural client elements 24a - 24c, however, the number of clients is immaterial to the practice ofthe invention.
  • the depicted clients 24a - 24c can be any PC Card aware device driver, configuration utility, or application program.
  • the memory clients 24a - 24c are can be device drives for virtual disks on memory cards, flash device clients or any other such clients.
  • the depicted card services module 28 couples to the clients 24a - 24c.
  • the card services module 28 coordinates access to PC Cards, sockets, and system resources among multiple clients. Typically, only one card services module 28 is implemented in any host system, where a host system is understood as the computer processing system on which the card service module is running.
  • card services modules such as the depicted card services module 28
  • card services module 28 is well known in the art of computer engineering and preferably follows from the card services specification for card compliant with the PC Card standard.
  • This card service specification is well known in the art of computer engineering for memory devices and is set forth in the document "PCMCIA Card Services Specification, published by the PCMCIA and incorporated herein by reference.
  • the depicted MTD 30 is a driver device that implements the program processes required to access a memory device, such as the card 40.
  • the above- referenced PC Card standard supports a wide range of memory devices that can be carried on PC Cards. These PC Cards can act as data storage devices that can store computer readable data that can be accessed by the depicted application programs 20a - 20c as long as a MTD 30 is provided that understands the proper access procedures and commands for that particular access card that has been inserted into the host. For example, each PC Card can have special programming procedures that may be required to be implemented to write or erase the memory devices carried on the PC Card.
  • the MTD 30 provides card services with an interface that allows the card services to read, write, or erase specific cards.
  • the depicted MTD 30 registers itself with the card services module 28 during initialization.
  • the card services modules can create a list of registered MTDs and, using information provided by the MTD's during registration, create a list that identifies which MTD supports which PC-Card data storage device.
  • FIG. 2 further depicts that the MTD 30 couples to a window table 32.
  • the window table 32 provides information to the MTD 30 as to the number and location of open windows that exist within the memory space ofthe PC Card installed in the host.
  • the MTD 30 only opens one window upon insertion into the host.
  • the MTD 30 opens more than one window, and employs the plural windows for the memory accesses.
  • the window table 32 is a data structure created by the MTD 30.
  • This window table 32 provides a persistent and logical interface into the memory space ofthe PC Cards installed into the host system. By providing a persistent opening into the memory space ofthe PC Card data storage device, the MTD 30 is capable of efficiently accessing a memory space of that PC Card data storage device.
  • FIG. 2 further depicts socket service modules 34a and 34b.
  • the depicted socket service modules 34A and 34b provide a standardized interface to manipulate the PC Cards 38 and 40, the adapter 36, and any sockets resident on the system.
  • each adapter may have its own socket services module.
  • the depicted socket service modules 34a and 34b can provide an interface for the higher level software such as the card services module 28 that provides access to the adapters, sockets, and PC Cards installed on the system, and at the same time, can provide a standard interface which can be used by the higher level software and which hides the different implementations ofthe hardware.
  • socket services 34a and 34b encapsulate the hardware functions ofthe adapter 36.
  • the design and development of such socket services 34a and 34b is well known in the art of computer engineering, and any socket service suitable for providing program control of a PC Card data storage device is practicable with the present invention.
  • the depicted adapter 36 can include a PCMCIA controller chip such as those manufactured and sold by the Texas Instruments Corporation of Austin, Texas. However, any device for controlling the installed data storage device can be employed by the invention.
  • FIG. 2 further depicts two PC Card data storage devices 38 and 40.
  • Each depicted data storage device 38 and 40 provides a computer memory that can be accessed by the application programs 20a - 20c.
  • an application program such as application program 20a
  • the application program 20a is making a request to read or write to a file.
  • the operating system 22 receives the memory access request from the application program 20a and can determine that the data file is stored within the memory space ofthe PC-Card data storage device 40.
  • the operating system 22 determines which ofthe clients 24a-24c is to receive the request for accessing the memory space.
  • this determination is made by the operating system 22 checking a configuration file, such as the windows registry, that contains identification information about the software and hardware installed on the host.
  • a configuration file such as the windows registry
  • the operating system 22 selects the appropriate memory client 24 and passes the memory request to that memory client 24.
  • the memory client 24 calls the card services module 28 and requests the card service module 28 to perform the memory access requested by the operating system 22.
  • the client services module 28 coordinates all access requests generated by the clients 24a-24c and acts as the interface into the hardware ofthe PC-Card data storage device 40.
  • the card services module 28 Upon being called by the memory client 24 to perform the requested memory read, the card services module 28 looks into its list of registered MTD devices to determine the appropriate MTD to handle that PC-Card data storage device 40 that has memory storage mapped into the memory space being accessed by the application program 20a.
  • the MTD 30 selected by the card services module 28 is that MTD that understands the specific programming procedures for reading, writing, erasing, or -other memory function for that specific PC-Card data storage device 40. Accordingly, the card service module 28 can direct the MTD 30 to perform a read or write for the specific PC-Card data storage device 40.
  • the MTD 30 reads the high level request from the card services module 28, performs the requested memory access, and exits back to the card services module 28 with the requested data, if applicable, and with a status signal indicating the success ofthe memory access operation.
  • Figure 3 depicts in more detail the system 10.
  • the depicted memory client 24 generates a memory access request signal 44 that is provided to the card services module 28.
  • the memory access request can be a read memory request to read data from the memory card.
  • a resource management client service 46 within the card services module 28 can receive the access signal 44 and turn the access signal 44 into a set of low level memory access request signals that can be implemented by the MTD 30.
  • the card services 28 determines which ofthe installed MTDs 30 services the PC-Card being accessed.
  • the card services 28 generates an MTD_request command to an interface ofthe appropriate MTD, depicted in FIG. 3. as MTD 30.
  • the MTD_request command can be a data packet that includes a read command and location data that represents what address ofthe PC Card MTD 30 is to read from.
  • the resource management client service 46 maintains a resource management table 50.
  • the resource management table provides a table of system resources that are usable by the PC-Cards and the sockets. These resources can include DMA channels, IO address base, memory address base and IRQs.
  • Figure 3 depicts an optional memory resources table 52 that represents a data structure stored within the memory resource table 50.
  • the memory resource table 52 is representative of portions ofthe virtual memory space that are addressable on the host computer processor and that can be accessed by the memory client 24.
  • the card services module 28 can optionally employ the memory resource table 52 to identify portions ofthe virtual address space ofthe host processor that has been used to map-in portions ofthe PC-Card memory space.
  • the memory resource table 52 includes four windows 54, 56, 58 and 60 each one of which represents a portion ofthe PC-Card memory that has been mapped into the virtual address space ofthe host computer. Accordingly, the depicted windows 54-60 provide a mapping between the memory space between the PC-Card 40 and the memory space ofthe host processor.
  • Each ofthe depicted windows 54-60 therefore represent virtual addresses ofthe host processor that are mapped to the hardware addresses ofthe memory chips ofthe PC-Card data storage device 40. Accordingly, the resource management table 50 allows the card services module 28 to map memory requests provided by the memory client 24 into real address locations ofthe PC-Card data storage device 40.
  • the depicted MTD 30 can respond to the MTD Request to read from the PC- Card.
  • the MTD 30 includes a window locator function that accesses Table 42 to locate a window and also includes a location processor function that can check the window table 42 to determine if a window presently exists over the location of the data to be read. If a window does exist, the MTD 30 generates the PC-Card read command to read data from the specified location. Once data is read, the MTD 30 exits back to the card services 28 with the data. However, if no window is open over the location being read from, the depicted MTD 30 employs a window processor function that provides a window over the location to be read by employing an MTD Modify Window call provided by card services 28.
  • This Modify Window call can direct the card services module 28 to access the socket services 34 and to make requests ofthe hardware controlled by the socket services to modify the memory addresses for one ofthe windows open in the memory space ofthe PC-Card data storage device 40.
  • the MTD Modify Window command directs the card services 28 to position one ofthe open windows over the location being accessed.
  • the MTD modify window call is well known in the art of PCMCIA cards and described in the PCMCIA Card Services Specification.
  • the card services 28 modifies a window by directing the PCMCIA controller chip that is incorporated into the adaptor 36 to change the range of addresses that are decoded, so that a new range of addresses is made available.
  • any device or method for repositioning the window can be employed with the invention.
  • the MTD 30 opens a window within the memory space ofthe PC-Card data storage device 40 as soon as the card 40 is inserted within the adapter 36.
  • the MTD 30 as depicted in Figure 3, opens a plurality of windows 54-60 within the memory space of the PC-Card 40.
  • the MTD 30 maintains a table 42 that identifies the window open within the PC Card 40.
  • a selector function and resource processor access the table 42 to identify and select the window that is most suited to be repositioned.
  • the MTD 30 manipulates the open windows on the card to provide access to the storage location requested by memory client 24. As the MTD 30 maintains an open window on the card it can search for that window and determine if that window encompasses the area needed. Accordingly, the MTD 30 does not have to call into the other software layers, such as socket service layer 34, to open a window.
  • the MTD 30 can use an LRU process to select which ofthe windows 54-60 is to be repositioned in the area needing access.
  • the LRU technique is well known in the art of computer engineering and any suitable implementation ofthe LRU technique can be practiced.
  • the MTD 30 can make another MTD modified window call to move or change the characteristics ofthe window, or can employ the LRU process to determine which ofthe remaining windows is available to be repositioned.
  • the MTD 30 exits to card services with the retrieved data and leaves the window open.
  • any process for selecting a window can be practiced with the present invention, including a process that selects the window that requires the least amount of modification, selecting the window closest to the location being accessed, or any other process.
  • windows can be opened and maintained over particular memory locations that can speed memory access, such as over the attribute memory, or over a portion ofthe memory that corresponds to the memory space of one memory chip ofthe data storage device.
  • FIG. 4 depicts one process 70 according to the invention for employing an open window within the memory space of a PC Card to access a memory location within that PC Card.
  • process 70 includes a first step 72 in which a card services module makes a call to an MTD through an MTD request callback.
  • this MTD request is a request to access a portion of memory held by a PC Card that is serviced by the MTD being called.
  • the MTD request can be a request to read data on a certain memory location on the PC Card.
  • step 74 the process 70 makes a decision as to whether or not there is an open window over the location being accessed.
  • the MTD maintains a table that lists each open window within the memory space ofthe PC Card being serviced by that MTD. The list can include information as to the location in the address space ofthe PC Card of each window as well as an index that indicates which ofthe windows is the least recently used window, or some other attribute or characteristic for selecting a window.
  • step 74 the process 70 determines that no window is open over the location being accessed, the process 70 proceeds to step 76.
  • the process 70 includes the step of detecting the least recently used open window within the address space ofthe PC Card.
  • the process 70 can read the table maintained by the MTD to identify the LRU window. One a determination is made as to which ofthe open windows is the LRU window, the process 70 proceeds to step 78.
  • step 78 the MTD marks the LRU window as the most recently used window, and the process 70 proceeds to step 80.
  • step 80 the MTD issues an MTD modify request to the card services module.
  • the MTD modify request directs the card services module to modify the LRU window to position the LRU window over the location being accessed.
  • the MTD modify window command sent by the MTD device identifies which window is the LRU window and what the new position of that LRU window is to be.
  • step 80 the process 70 proceeds to step 82, which is where process 70 proceeds to ifthe answer at decision step 74 is "yes".
  • step 82 the MTD now performs the access requested as a window is now positioned over the area being accessed.
  • the process exits and the MTD returns to the card services module providing the card services module with information as to the success ofthe access.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Systems and methods are disclosed for efficiently accessing memory locations within the memory space of a data storage device (28). In one aspect, the invention is understood as a memory driver that accesses the memory space of a PC memory device. In one embodiment, the memory driver of the invention opens a window in the memory space of a PC-Card (38, 40) memory device. Each time an operating system (22) issues a read or write memory request to the memory driver (30), the memory driver generates a set of commands to issue to the memory card that direct the memory card to position the window over that portion of the memory card's memory space that contains the memory locations which the operating system is attempting to read from or write to. Consequently, a memory driver according to the invention continuously modifies an open window within the memory space of the PC-Card memory to service the read/write requests of the operating system.

Description

SYSTEMS AND METHODS FOR ACCESSING A DATA STORAGE DEVICE
Claim of Priority
This application claims priority to U.S. Provisional Patent Application Serial No. 60/001,553, filed July 27, 1995 entitled "Memory Technology Driver", the teachings of which are herein incorporated by reference,
Field ofthe Invention
The invention relates to data storage devices and more particularly to systems and methods for efficiently accessing a memory location within a data storage device.
Background ofthe Invention
Today, portable computer systems, such as laptop computers, can employ installable memory devices that can be mapped into the virtual memory space of that computer device. These installable memory devices can function as additional memory that can be mapped into the virtual address space ofthe portable computer to supplement the computer memory available to that computer. Additionally, these installable memory devices can act as removable data storage devices that provide several megabytes of portable data storage. Typically, these installable memory devices take the form of PCMCIA memory cards (PC-Cards) that conform to the PCMCIA standard promulgated by the Personal Computer Memory Card International Association (PCMCIA).
These PC-Cards provide an efficient way for a portable computer to transfer and store data. In particular, the PC-Card, such as an 8-megabyte flash card, provides an installable devices for increasing the program memory of a portable computer by 8 megabytes. This allows the portable computer to achieve enhanced performance when running software applications. Additionally, battery back SRAM memory cards, as well as flash memory cards, provide permanent or semipermanent large scale data storage that allows a portable computer to store efficiently large amounts ofdata. Although PC-Cards provide portable computers with a useful method of adding memory, the memory space that is added is accessed by the portable computer through a PCMCIA interface that can require substantial processor overhead to allow the portable computer to read and write data to and from the memory card. Accordingly, memory access to the PC-Card can be quite slow. This slow memory access can create process bottlenecks that slow the execution of application software running on the portable computer. Consequently, installable memory devices can degrade system performance when the system is required to read and write large amounts ofdata from the installed memory card. Accordingly, it is an object ofthe invention to provide systems and methods for accessing a memory device with reduced processor overhead.
It is a further object ofthe present invention to provide systems and methods for accessing a memory device that provides memory access operations that are readily adapted for different types of memory devices. Other objects ofthe present invention shall be made apparent upon review of the illustrated embodiments in concert with reading the detailed description thereof.
Summary ofthe Invention
The invention provides systems and methods for efficiently accessing memory locations within the memory space of a data storage device. In one aspect, the invention is understood as a computer program that accesses the memory space of a PC memory device. Typically, the memory card conforms to the PCMCIA standard which defines a bus interface for connecting a portable computer to installable devices. The memory card is one such installable device and it is typically formed from a collection of memory chips that are configured together as an electrical circuit card assembly that provides memory storage that can be accessed by the portable computer. The invention provides a computer program, typically a memory card device driver, that receives memory access requests sent from the operating system of the portable computer and translates these operating system access requests into a set of low-level command signals that can be understood by the PC-Card memory device. In one embodiment, the memory driver ofthe invention opens a window in the memory space ofthe PC-Card memory device. The window is a logical representation of a portion ofthe memory space that is accessible by the driver. Each time the operating system issues a read or write memory request to the memory driver, the memory driver generates a set of commands to issue to the software interface to the controller chip for the PC-Card that direct the PC-Card to position the window over that portion ofthe memory card's memory space that contains the memory locations which the operating system is attempting to read from or write to. Consequently, a memory driver according to the invention continuously modifies an open window within the memory space of the PC-Card memory to service the read/write requests ofthe operating system. This driver provides improved efficiencies for reading to and writing from the memory space by maintaining an open window within the memory card between memory access requests. In this way, the driver avoids having to open and close a new window for each read and write request. This reduces processor overhead and speeds memory access.
In one embodiment, the invention is understood as computer processes for accessing a plurality of memory locations within a memory space of a data storage device. The process can comprise the steps of detecting a sequence of access signals, each being representative of a request to access a select one ofthe plural memory locations and providing an open window within the memory space during the step of detecting the sequence of access signals. For example, a sequence of access signals can be a read request issued by an operating system, followed by a second read request and a later write request, all being separate requests and which can be separated in time. Computer processes according to the invention can include a further step of processing the open window, responsive to each access signal, to position the open window over a portion ofthe memory space that includes the select memory location. In a preferred practice, the computer process actually opens a plurality of windows within the memory space. In this preferred embodiment, the computer process can include the further step of selecting one ofthe plural open windows, responsive to one ofthe access signals, for positioning the selected window over the select memory location. Preferably, the computer process includes the step of selecting one ofthe plural windows by determining the least recently used window.
In an alternative embodiment ofthe invention, the process includes steps of opening plural windows within the memory space and positioning one ofthe windows over a portion ofthe memory space that is representative ofthe actual memory, or that is representative of a memory space of a memory chip that comprises the PC-Card computer memory.
As the term attribute memory is used herein, that term refers to that portion of the memory of a PC Card data storage device that stores information representative of characteristics of that PC Card, and can include information such as a version number ofthe card, the type ofthe card, the memory size of that card and other such characteristic information. Beyond the attribute memory, the PC card can also include a common memory and the common memory represents that portion ofthe PC Card memory space that is used for storing computer readable data. In a further embodiment, the invention is understood as a computer process for accessing a memory location within a memory space ofthe PC Card, comprising the steps of locating a window in the PC Card memory space, detecting requests to access the memory location, making a determination whether the window is positioned over a portion ofthe memory space that includes the memory location, and repositioning the window responsive to the determination to position the window over a portion of the memory space that includes the memory location. In this embodiment, the step of locating a window in the PC Card memory space can also include steps of selecting a first window and a second window in the PC Card memory space, making determination as to which ofthe first and second windows is least recently used and locating responsive for that determination, one ofthe first and second windows. In a further aspect, the invention can be understood as an apparatus for accessing a memory location within a memory space of a PC Card. Apparatus according to the invention comprise a window locator capable of locating a window in the PC Card memory space, an interface for receiving a request to access the memory location, a location processor for making a determination whether the window is positioned over a portion of a memory space that includes the memory location, and a window processor that is responsive to that determination from modifying the window to position the window over a portion of that memory that includes the memory location. In one embodiment, the window locator includes a selector that selects a first and second window in the PC Card memory space, a resource processor for determining which ofthe first and second windows is the least recently used, and a locator for locating that least recently used window.
Brief Description ofthe Illustrated Embodiments FIG.1 depicts one embodiment ofthe invention that provides an open window within the memory space of a data storage device;
FIG. 2 illustrates a functional block diagram ofthe software modules employed for accessing a memory location for a PC Card data storage device; FIG. 3 is a functional block diagram that depicts in more detail a system according to the invention for accessing a memory location of a PC Card data storage device; and
FIG. 4 is a flow chart diagram of one process according to the invention.
Detailed Description ofthe Invention FIG. 1 depicts a memory access system 10 according to the invention that includes a card services module 12, a Memory Technology Driver (MTD) 14, a MTD helper function module 16, and four pre-opened windows within the memory space of a PC Card data storage device, depicted as open windows 18a - 18d.
The depicted memory access system 10 provides an MTD 14 which employs a plurality of pre-opened windows that exist within the memory space of a PC card data storage device and that can be employed by the MTD 14 in concert with the memory driver helper function module 16 to perform read, write and erase operations in response to memory access requests provided by the card services module 12. Helper services, as is generally known in the art, allow control of low level details ofthe device access. In the embodiment depicted, the memory driver helper function module 16 is illustrated as a separate element. However, the module 16 can optionally be incoiporated into the card services module 12 or the MTD 14.
Each window 18a - 18d can be a pre-opened window that is opened within the memory space ofthe PC Card data storage element upon insertion ofthe PC Card data storage device into the host computer. The system 10 maintains the open windows during multiple accesses to the memory ofthe PC Card data storage device and employs the opened windows 18a - 18d to service the memory access requests provided by the card services module 12. Accordingly, the system 10 depicted in FIG. 1 achieves improved efficiencies during memory access processing by reducing the number of times a window is to be opened and closed within the memory space of a PC Card data storage device, and thereby reduces the processor overhead required to access a memory location within the PC Card data storage device.
FIG. 2 depicts in more detail a system 10 according to the invention that provides access into the memory space of a data storage device. FIG. 2 depicts application programs 20a - 20c, an operating system 22, clients 24a - 24c, a card services module 28, a MTD 30, a window table 32, socket service modules 34 a and 34 b, an adapter 36, and PC Card data storage devices 38 and 40.
The application programs depicted in FIG. 1, 20a - 20c can be any computer program application ofthe type capable of being run on a host computer processing system and that is capable of making memory access requests to the memory space of a PC Card data storage device. As depicted in FIG. 2, the application programs 20a - 20c can couple to the operating system 22 and to the PC Card data storage device 30a.
With regard to the operating system 22, the operating system 22 can be any operating system that can exchange data with an application program and can process memory access requests generated by the application program to provide the application program with access to a memory location within the address space controlled by that operating system 22. Suitable operating systems include DOS, Windows 3.X, Windows 95, Windows NT, and Mac OS. However, it will be apparent to one of ordinary skill in the art of computer engineering that any operating system capable of providing an application program with access to the memory space of a computer memory is suitable for practice with the present invention, and any substitution, modification, or addition to the operating system 22 does not detract from the scope ofthe present invention.
The depicted operating system 22 couples to the client elements 24a - 24c. FIG. 2 depicts plural client elements 24a - 24c, however, the number of clients is immaterial to the practice ofthe invention. The depicted clients 24a - 24c can be any PC Card aware device driver, configuration utility, or application program. For example, the memory clients 24a - 24c are can be device drives for virtual disks on memory cards, flash device clients or any other such clients. The depicted card services module 28 couples to the clients 24a - 24c. The card services module 28 coordinates access to PC Cards, sockets, and system resources among multiple clients. Typically, only one card services module 28 is implemented in any host system, where a host system is understood as the computer processing system on which the card service module is running. The design and operation of card services modules, such as the depicted card services module 28, is well known in the art of computer engineering and preferably follows from the card services specification for card compliant with the PC Card standard. This card service specification is well known in the art of computer engineering for memory devices and is set forth in the document "PCMCIA Card Services Specification, published by the PCMCIA and incorporated herein by reference.
The depicted MTD 30 is a driver device that implements the program processes required to access a memory device, such as the card 40. The above- referenced PC Card standard supports a wide range of memory devices that can be carried on PC Cards. These PC Cards can act as data storage devices that can store computer readable data that can be accessed by the depicted application programs 20a - 20c as long as a MTD 30 is provided that understands the proper access procedures and commands for that particular access card that has been inserted into the host. For example, each PC Card can have special programming procedures that may be required to be implemented to write or erase the memory devices carried on the PC Card. The MTD 30 provides card services with an interface that allows the card services to read, write, or erase specific cards.
The depicted MTD 30 registers itself with the card services module 28 during initialization. The card services modules can create a list of registered MTDs and, using information provided by the MTD's during registration, create a list that identifies which MTD supports which PC-Card data storage device.
FIG. 2 further depicts that the MTD 30 couples to a window table 32. The window table 32 provides information to the MTD 30 as to the number and location of open windows that exist within the memory space ofthe PC Card installed in the host. In one embodiment, the MTD 30 only opens one window upon insertion into the host. However, in a more preferred embodiment, the MTD 30 opens more than one window, and employs the plural windows for the memory accesses. Typically, the window table 32 is a data structure created by the MTD 30. This window table 32, in a preferred embodiment, provides a persistent and logical interface into the memory space ofthe PC Cards installed into the host system. By providing a persistent opening into the memory space ofthe PC Card data storage device, the MTD 30 is capable of efficiently accessing a memory space of that PC Card data storage device.
FIG. 2 further depicts socket service modules 34a and 34b. The depicted socket service modules 34A and 34b provide a standardized interface to manipulate the PC Cards 38 and 40, the adapter 36, and any sockets resident on the system. In a host system, there is conventionally a single PC Card adapter, such as the depicted adapter 36. However, each adapter may have its own socket services module. Thus the depicted socket service modules 34a and 34b can provide an interface for the higher level software such as the card services module 28 that provides access to the adapters, sockets, and PC Cards installed on the system, and at the same time, can provide a standard interface which can be used by the higher level software and which hides the different implementations ofthe hardware. Thus the socket services 34a and 34b encapsulate the hardware functions ofthe adapter 36. The design and development of such socket services 34a and 34b is well known in the art of computer engineering, and any socket service suitable for providing program control of a PC Card data storage device is practicable with the present invention.
The depicted adapter 36 can include a PCMCIA controller chip such as those manufactured and sold by the Texas Instruments Corporation of Austin, Texas. However, any device for controlling the installed data storage device can be employed by the invention.
FIG. 2 further depicts two PC Card data storage devices 38 and 40. Each depicted data storage device 38 and 40 provides a computer memory that can be accessed by the application programs 20a - 20c. In operation, an application program, such as application program 20a, can make a request to access a data storage location within the memory space ofthe host processor. Typically the application program 20a is making a request to read or write to a file. Optionally, the operating system 22 receives the memory access request from the application program 20a and can determine that the data file is stored within the memory space ofthe PC-Card data storage device 40. The operating system 22 determines which ofthe clients 24a-24c is to receive the request for accessing the memory space. Typically, this determination is made by the operating system 22 checking a configuration file, such as the windows registry, that contains identification information about the software and hardware installed on the host. However, it will be apparent to one of ordinary skill that any other system for making this determination can be practiced with the present invention without departing from the scope thereof. The operating system 22 selects the appropriate memory client 24 and passes the memory request to that memory client 24. The memory client 24 calls the card services module 28 and requests the card service module 28 to perform the memory access requested by the operating system 22. The client services module 28 coordinates all access requests generated by the clients 24a-24c and acts as the interface into the hardware ofthe PC-Card data storage device 40. Upon being called by the memory client 24 to perform the requested memory read, the card services module 28 looks into its list of registered MTD devices to determine the appropriate MTD to handle that PC-Card data storage device 40 that has memory storage mapped into the memory space being accessed by the application program 20a. The MTD 30 selected by the card services module 28 is that MTD that understands the specific programming procedures for reading, writing, erasing, or -other memory function for that specific PC-Card data storage device 40. Accordingly, the card service module 28 can direct the MTD 30 to perform a read or write for the specific PC-Card data storage device 40. The MTD 30 reads the high level request from the card services module 28, performs the requested memory access, and exits back to the card services module 28 with the requested data, if applicable, and with a status signal indicating the success ofthe memory access operation. Figure 3 depicts in more detail the system 10. As shown therein, the depicted memory client 24 generates a memory access request signal 44 that is provided to the card services module 28. For example, the memory access request can be a read memory request to read data from the memory card. A resource management client service 46 within the card services module 28 can receive the access signal 44 and turn the access signal 44 into a set of low level memory access request signals that can be implemented by the MTD 30. In continuing with the example, the card services 28 determines which ofthe installed MTDs 30 services the PC-Card being accessed. The card services 28 generates an MTD_request command to an interface ofthe appropriate MTD, depicted in FIG. 3. as MTD 30. The MTD_request command can be a data packet that includes a read command and location data that represents what address ofthe PC Card MTD 30 is to read from. As further depicted by Figure 3, the resource management client service 46 maintains a resource management table 50. The resource management table provides a table of system resources that are usable by the PC-Cards and the sockets. These resources can include DMA channels, IO address base, memory address base and IRQs. Figure 3 depicts an optional memory resources table 52 that represents a data structure stored within the memory resource table 50. The memory resource table 52 is representative of portions ofthe virtual memory space that are addressable on the host computer processor and that can be accessed by the memory client 24. The card services module 28 can optionally employ the memory resource table 52 to identify portions ofthe virtual address space ofthe host processor that has been used to map-in portions ofthe PC-Card memory space. As depicted in Figure 3, the memory resource table 52 includes four windows 54, 56, 58 and 60 each one of which represents a portion ofthe PC-Card memory that has been mapped into the virtual address space ofthe host computer. Accordingly, the depicted windows 54-60 provide a mapping between the memory space between the PC-Card 40 and the memory space ofthe host processor. Each ofthe depicted windows 54-60 therefore represent virtual addresses ofthe host processor that are mapped to the hardware addresses ofthe memory chips ofthe PC-Card data storage device 40. Accordingly, the resource management table 50 allows the card services module 28 to map memory requests provided by the memory client 24 into real address locations ofthe PC-Card data storage device 40.
The depicted MTD 30 can respond to the MTD Request to read from the PC- Card. The MTD 30 includes a window locator function that accesses Table 42 to locate a window and also includes a location processor function that can check the window table 42 to determine if a window presently exists over the location of the data to be read. If a window does exist, the MTD 30 generates the PC-Card read command to read data from the specified location. Once data is read, the MTD 30 exits back to the card services 28 with the data. However, if no window is open over the location being read from, the depicted MTD 30 employs a window processor function that provides a window over the location to be read by employing an MTD Modify Window call provided by card services 28. This Modify Window call can direct the card services module 28 to access the socket services 34 and to make requests ofthe hardware controlled by the socket services to modify the memory addresses for one ofthe windows open in the memory space ofthe PC-Card data storage device 40. Accordingly, the MTD Modify Window command directs the card services 28 to position one ofthe open windows over the location being accessed. The MTD modify window call is well known in the art of PCMCIA cards and described in the PCMCIA Card Services Specification. In one embodiment, the card services 28 modifies a window by directing the PCMCIA controller chip that is incorporated into the adaptor 36 to change the range of addresses that are decoded, so that a new range of addresses is made available. However, any device or method for repositioning the window can be employed with the invention.
In a preferred embodiment ofthe invention, the MTD 30 opens a window within the memory space ofthe PC-Card data storage device 40 as soon as the card 40 is inserted within the adapter 36. Optionally, but more preferably, the MTD 30 as depicted in Figure 3, opens a plurality of windows 54-60 within the memory space of the PC-Card 40. The MTD 30 maintains a table 42 that identifies the window open within the PC Card 40. In a preferred embodiment ofthe invention, a selector function and resource processor access the table 42 to identify and select the window that is most suited to be repositioned.
In this preferred embodiment each time the card services module 28 calls the MTD 30 through the MTD request call back event, the MTD 30 manipulates the open windows on the card to provide access to the storage location requested by memory client 24. As the MTD 30 maintains an open window on the card it can search for that window and determine if that window encompasses the area needed. Accordingly, the MTD 30 does not have to call into the other software layers, such as socket service layer 34, to open a window.
If a window is not available, which is positioned in the area needing access, the MTD 30 can use an LRU process to select which ofthe windows 54-60 is to be repositioned in the area needing access. The LRU technique is well known in the art of computer engineering and any suitable implementation ofthe LRU technique can be practiced. Once the MTD determines which window 54-60 is to be repositioned the MTD 30 employs the MTD Modify Window call of card services module 28 to reposition the LRU window over the area ofthe PC-Cards 40 memory space that needs access.
Once the window is repositioned, data can be read, written or erased within the boundaries of that window. If another range of memory needs accessing, the MTD 30 can make another MTD modified window call to move or change the characteristics ofthe window, or can employ the LRU process to determine which ofthe remaining windows is available to be repositioned. When the MTD 30 is finished servicing the card services module 28 access request, it exits to card services with the retrieved data and leaves the window open.
Although the above embodiment was described with reference to an LRU process any process for selecting a window can be practiced with the present invention, including a process that selects the window that requires the least amount of modification, selecting the window closest to the location being accessed, or any other process. Additionally, windows can be opened and maintained over particular memory locations that can speed memory access, such as over the attribute memory, or over a portion ofthe memory that corresponds to the memory space of one memory chip ofthe data storage device.
FIG. 4 depicts one process 70 according to the invention for employing an open window within the memory space of a PC Card to access a memory location within that PC Card. Specifically, process 70 includes a first step 72 in which a card services module makes a call to an MTD through an MTD request callback. Typically, this MTD request is a request to access a portion of memory held by a PC Card that is serviced by the MTD being called. For example, the MTD request can be a request to read data on a certain memory location on the PC Card.
After card services makes the MTD call, the process 70 proceeds to step 74. In step 74, the process 70 makes a decision as to whether or not there is an open window over the location being accessed. In one embodiment, the MTD maintains a table that lists each open window within the memory space ofthe PC Card being serviced by that MTD. The list can include information as to the location in the address space ofthe PC Card of each window as well as an index that indicates which ofthe windows is the least recently used window, or some other attribute or characteristic for selecting a window.
If in step 74, the process 70 determines that no window is open over the location being accessed, the process 70 proceeds to step 76. In the embodiment depicted in FIG. 4, the process 70 includes the step of detecting the least recently used open window within the address space ofthe PC Card. In this embodiment, the process 70 can read the table maintained by the MTD to identify the LRU window. One a determination is made as to which ofthe open windows is the LRU window, the process 70 proceeds to step 78. In step 78, the MTD marks the LRU window as the most recently used window, and the process 70 proceeds to step 80.
In step 80, the MTD issues an MTD modify request to the card services module. The MTD modify request directs the card services module to modify the LRU window to position the LRU window over the location being accessed. Typically, the MTD modify window command sent by the MTD device identifies which window is the LRU window and what the new position of that LRU window is to be. On completion of step 80, the process 70 proceeds to step 82, which is where process 70 proceeds to ifthe answer at decision step 74 is "yes". In step 82, the MTD now performs the access requested as a window is now positioned over the area being accessed. After completion of step 82, the process exits and the MTD returns to the card services module providing the card services module with information as to the success ofthe access.
It will thus be seen that the invention efficiently obtains the objects set forth above, among those made apparent from the preceding description. It will also be understood that changes can be made in the above description, sequences and operations without departing from the scope ofthe invention. Moreover, it will be apparent to one of ordinary skill in the art that the invention described herein is suitable for practice with many types ofdata storage devices, including resident flash memories.
It is accordingly intended that all matters shown in the accompanying figures be interpreted as illustrative rather in any limiting sense. It is also to be understood that the following claims are intended to cover all ofthe generic and specific features ofthe invention as described herein and all statements ofthe scope ofthe invention which as a matter of language might be said to fall there between.

Claims

CLAIMSWhat is claimed is:
1. Computer process for accessing a plurality of memory locations within a memory space of a data storage device, comprising the steps of detecting a sequence of access signals each being representative of a request to access a select one of said plural memory locations, and providing an open window within said memory space during said detecting of said sequence of access signals.
2. Computer process according to claim 1 including the further step of processing said open window responsive to each said access signal, to position said open window over a portion of said memory space that includes said select memory location.
3. Computer process according to claim 1 wherein said step of providing said open window includes the step of providing a plurality of open windows within said memory space.
4. Computer process according to claim 3 including the further step of selecting one of said plural open widows, responsive to one of said access signals, for positioning over said select memory location.
5. Computer process according to claim 3 wherein said step of selecting includes the step of determining the least recently used window.
6. Computer process according to claim 3 including the further step of positioning one of said open windows over a portion of said memory space representative of an attribute memory.
7. Computer process according to claim 3 including the further step of positioning each said plural window over a respective portion of said memory space representative of a memory space of a memory chip.
8. Computer process for accessing a memory location within a memory space of a PC-Card, comprising the steps of locating a window in said PC-Card memory space, detecting a request to access said memory location, making a determination whether said window is positioned over a portion of said memory space that includes said memory location; and repositioning said window responsive to said determination to position said window over a portion of said memory space that includes said memory location.
9. Computer process according to claim 8 wherein said step of locating a window in said PC-Card memory space includes the steps of selecting a first and second window in said PC-Card memory space, making a determination as to which of said first and second windows is least recently used; and locating, responsive to said determination, one of said first and second windows.
10. Apparatus for accessing a memory location within a memory space of a PC-Card, comprising a window locator capable of locating a window in said PC-Card memory space, an interface for receiving a request to access said memory location, a location processor for making a determination whether said window is positioned over a portion of said memory space that includes said memory location, and a window processor, responsive to said determination, for modifying said window to position said window over a portion of said memory space that includes said memory location.
11. Apparatus according to claim 10 wherein said window locator includes a selector that selects a first and second window in said PC-Card memory space, a resource processor for determining which of said first and second windows is least recently used; and a locator for locating said least recently used windows.
PCT/US1996/012299 1995-07-27 1996-07-26 Systems and methods for accessing a data storage device WO1997005617A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU67630/96A AU6763096A (en) 1995-07-27 1996-07-26 Systems and methods for accessing a data storage device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US153395P 1995-07-27 1995-07-27
US60/001,553 1995-07-27

Publications (2)

Publication Number Publication Date
WO1997005617A2 true WO1997005617A2 (en) 1997-02-13
WO1997005617A3 WO1997005617A3 (en) 1997-05-01

Family

ID=21696535

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1996/012299 WO1997005617A2 (en) 1995-07-27 1996-07-26 Systems and methods for accessing a data storage device

Country Status (2)

Country Link
AU (1) AU6763096A (en)
WO (1) WO1997005617A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110895479A (en) * 2018-09-13 2020-03-20 阿里巴巴集团控股有限公司 Data processing method, device and equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5519851A (en) * 1994-03-14 1996-05-21 Sun Microsystems, Inc. Portable PCMCIA interface for a host computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5519851A (en) * 1994-03-14 1996-05-21 Sun Microsystems, Inc. Portable PCMCIA interface for a host computer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110895479A (en) * 2018-09-13 2020-03-20 阿里巴巴集团控股有限公司 Data processing method, device and equipment
CN110895479B (en) * 2018-09-13 2023-06-20 阿里巴巴集团控股有限公司 Data processing method, device and equipment

Also Published As

Publication number Publication date
WO1997005617A3 (en) 1997-05-01
AU6763096A (en) 1997-02-26

Similar Documents

Publication Publication Date Title
US5802069A (en) Implementing mass storage device functions using host processor memory
CA2010591C (en) Kernels, description tables and device drivers
US6848034B2 (en) Dense server environment that shares an IDE drive
US5073854A (en) Data processing system with search processor which initiates searching in response to predetermined disk read and write commands
US6286057B1 (en) Method and arrangement for allowing a computer to communicate with a data storage device
US5806085A (en) Method for non-volatile caching of network and CD-ROM file accesses using a cache directory, pointers, file name conversion, a local hard disk, and separate small database
US5761680A (en) Coherent film system access during defragmentation operations on a storage medium
US7007127B2 (en) Method and related apparatus for controlling transmission interface between an external device and a computer system
EP2122471A1 (en) Unified support for solid state storage
US6145030A (en) System for managing input/output address accesses at a bridge/memory controller
EP1345113A2 (en) Management server
JPH1131102A (en) Data storage system and access control method applied to the system
US6212587B1 (en) Device proxy agent for hiding computing devices on a computer bus
US5640507A (en) Method and apparatus for identifying read only memory
TWI396971B (en) Memory mapped page priorities
US7299345B2 (en) Reserved ROM space for storage of operating system drivers
EP1031083B1 (en) Apparatus and method of accessing random access memory
US5948075A (en) System for identifying operating parameters in a storage enclosure having each of first connector only for specifying a physical location associated with each of backplane interfaces
US6697866B1 (en) Access control method for data stored in fixed-block length format in computer configurations utilizing variable length data format interfaces
US6671744B1 (en) Access control method for drive units, and a drive unit using the method
JP4478458B2 (en) Method and apparatus for accessing an input / output device using desired security
WO1997005617A2 (en) Systems and methods for accessing a data storage device
CN112084524B (en) USB flash disk access method and USB flash disk
EP1692592B1 (en) Method to control the access in a flash memory and system for the implementation of such a method
US5873129A (en) Method and apparatus for extending physical system addressable memory

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AL AM AT AU AZ BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA

AK Designated states

Kind code of ref document: A3

Designated state(s): AL AM AT AU AZ BB BG BR BY CA CH CN CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: CA