WO2001009827A1 - Removable data storage module incorporating a display - Google Patents

Removable data storage module incorporating a display Download PDF

Info

Publication number
WO2001009827A1
WO2001009827A1 PCT/US2000/020755 US0020755W WO0109827A1 WO 2001009827 A1 WO2001009827 A1 WO 2001009827A1 US 0020755 W US0020755 W US 0020755W WO 0109827 A1 WO0109827 A1 WO 0109827A1
Authority
WO
WIPO (PCT)
Prior art keywords
display
module
memory
volatile
controller
Prior art date
Application number
PCT/US2000/020755
Other languages
French (fr)
Inventor
Jack Huston Peterson
Daniel Isaac Sternglass
Original Assignee
Lexar Media, Inc.
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 Lexar Media, Inc. filed Critical Lexar Media, Inc.
Priority to AU63918/00A priority Critical patent/AU6391800A/en
Publication of WO2001009827A1 publication Critical patent/WO2001009827A1/en

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09FDISPLAYING; ADVERTISING; SIGNS; LABELS OR NAME-PLATES; SEALS
    • G09F9/00Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements
    • G09F9/30Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements in which the desired character or characters are formed by combining individual elements
    • G09F9/35Indicating arrangements for variable information in which the information is built-up on a support by selection or combination of individual elements in which the desired character or characters are formed by combining individual elements being liquid crystals

Definitions

  • Removable data storage modules of many types have become very popular in computer, consumer electronics, and commercial applications. These modules are commonly used to store images from digital cameras, audio, and many other types of digital data including e-mail and other computer files. Many of these modules conform to recognized industry standards, such as CompactFlash. Personal Computer Memory Card International Association (PCMCIA), Solid State Floppy Disk (SSFDD), Multimedia Cards. Memory Sticks from Sony Electronics (San Jose, California) and others, promoting interchange among a broad range of products, while others are custom or application specific in nature. Some of these removable data storage modules contain an on-module controller device in addition to memory Integrated Circuits (ICs) and magnetic or optical disk media and support circuitry, while others are comprised only of one or more memory chips.
  • ICs Integrated Circuits
  • magnetic or optical disk media and support circuitry while others are comprised only of one or more memory chips.
  • modules use a variety of interfaces, including parallel and serial interfaces, and in some cases implement command driven protocols such as the AT Attachment (ATA) disk drive protocol, where AT refers to IBM's "Advanced Technology” interface bus introduced in the 286 generation Personal Computer (PC).
  • ATA AT Attachment
  • PC Personal Computer
  • the logical organization of data in the module which may be a sector-based, such as used in disk drives or disk drive emulators, may be determined by a file system.
  • file systems may be proprietary or standardized.
  • An example of a standardized file system is the widely implemented Microsoft "FAT file system" (File Allocation Table).
  • a removable data storage module containing a display which may be non-volatile.
  • the display is viewable when the module is removed from the host device or viewed through a window on the host device.
  • the purpose of the display is to provide information to the user about the current status of the module.
  • Such a display permits a user to select a data storage module for use based on knowledge of the remaining available storage space, identifying information related to the module's contents, or on the basis of other displayed information such as the presence of error conditions.
  • the display is automatically updated after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed.
  • prior knowledge ofthe organization of data on the module such as the structure and operation of a file system maintained by a host device, may be used in generating the display of available module storage capacity and the display of detected error conditions.
  • certain aspects of the appearance of, and contents of the display, and information used internally by the module related to the display can be updated on modules with the appropriate capabilities through user initiated actions on hosts equipped for such updating.
  • Figure 1 is an illustration an example of components of a controller-equipped nonvolatile memory module in accordance with an embodiment of the present invention for providing numerical and graphic storage capacity information, dot-matrix identification information, and iconic status information.
  • Figure 2 is a detailed view of the display 16 of Fig. 1 indicating numerical and graphic storage capacity, dot-matrix identification information, and iconic status information display regions.
  • Figure 3 is an illustration of a removable magnetic disk drive including a non- volatile display in accordance with an embodiment ofthe present invention.
  • Figure 4 is a block diagram of a typical flash or EEPROM non-volatile memory module including a controller device and a non-volatile display coupled to the controller device in accordance with an embodiment ofthe present invention.
  • Figure 5 is a block diagram of a non-volatile memory module having a non-volatile text and graphics display operated through a display controller device in accordance with an embodiment ofthe present invention.
  • Figure 6 is a block diagram of a personal computer (PC) including a reader/writer module for updating the user definable portion of the display 16 of Fig. 1, as well as updating display formatting on a module capable of displaying data in multiple, application specific formats.
  • PC personal computer
  • Figure 8 is a block diagram of a non-volatile memory module using one or more nonvolatile memory chips having a non-volatile display driven from a controller device.
  • FIG. 10 is a flowchart of an example of internal module firmware or logic to automatically update an on-module display, including computing available remaining storage space for modules using file systems and not using file systems. Also included is an optional provision for application-specific display generation in accordance with an embodiment of the present invention.
  • Figure 11 is a block diagram illustrating a removable data storage module with self- contained functionality, a dictation module, also capable of operating as a removable data storage module, equipped with a display that can be volatile or nonvolatile.
  • the updating of display information which changes dynamically is performed automatically by the logic or microprocessor and firmware resident in the module.
  • prior knowledge of the structure and organization of data stored in the module such as the operation of a file system maintained by a host device—which organizes the data on the module— may be used in generating the display of available module storage capacity and the display of detected error conditions. This takes place with no intervention or action on the part of the host.
  • the automatic display update takes place after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed, and thus permits modules so equipped to operate in prior art host devices without modification to them.
  • the module identifying information, format of the display, and selection of optional file system to monitor and interpret for remaining capacity calculations are optionally alterable through user initiated actions taken on a properly equipped host device.
  • modules may be equipped with logic appropriate to their structure, memory organization and the manner or manners of usage of their storage, for the purpose of automatically updating the display of remaining capacity, irrespective of whether a file system is used.
  • a host device permits the display equipped modules disclosed herein to operate with prior art host devices.
  • future generations of host devices to generate commands and to control the graphics, formatting and calculated values displayed by future generations of data storage modules, and even the actual display updating.
  • Such a data storage module's display can be customized to the application and technical requirements and capabilities of the particular host device by the host device itself. This can be accomplished through the use of an Application Programming Interface (API) and supporting hardware that can be developed and potentially standardized for such a purpose.
  • API Application Programming Interface
  • Such an API can be designed so that its operational capability in a host device does not to interfere with the operation of prior art modules or with the display equipped modules disclosed herein.
  • modules designed to respond to this API can be designed to retain compatibility with prior art host devices, which have no knowledge of this API.
  • Such an API can be used to establish the desired display parameters, in a case where display updates are carried out automatically by the module, or to permit the host device to control the display updating.
  • the calculation of the updated display information is accomplished on one of the four following bases: (1) If data is explicitly written, the indicated available capacity is reduced by an amount corresponding to the amount of data written. (2) If data is explicitly erased, the indicated available capacity is increased by an amount corresponding to the amount of data erased. (3) In the case of a file structured module; if a file system erasure or other operation takes place. fFor example, in a DOS FAT file system when a "file erase" occurs, the indicated available capacity is updated in an amount corresponding to the size of the file erased, even though physical erasure or overwriting of the storage media in the module may not have taken place.
  • Examples of this include a data storage module which is a rotating magnetic disk drive, and a module which emulates a disk drive using semiconductor memory.
  • a file system may also be present in a device that is not a disk drives or disk drive emulator.
  • the indication of available capacity is determined by logic in the module having knowledge of the memory management method used. For example, reserved flag bits associated with blocks of memory or memory regions, or other methods that the module logic has prior knowledge of can be used to generate the correct indication of available storage capacity.
  • the automatic computation and display updating operation is undertaken by the logic or microprocessor and firmware in the module after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed.
  • a display can range from a simple segmented bar-graph, coarsely indicating available storage capacity, to a segmented numerical display or dot-matrix numerical or text characters, to a graphical display, including application-specific and module-specific icons and display information.
  • the display is non-volatile and reflective in nature, such as Cholesteric LCD or Ferroelectric display technology, so no power is required to maintain the display. Such a non-volatile display may be visible continuously.
  • the display may be monochromatic or color.
  • the display is coupled to and controlled by the electronics inside the removable module.
  • the information displayed may come from a microprocessor or logic within the module, for example the remaining available storage capacity and other status information pertaining to a module, or it may originate in an external device, for example, module identifying information stored into the module after manual data entry into a device capable of accepting and subsequently storing such user-entered information.
  • the display sub-assembly may optionally incorporate drive electronics, or the display may be directly coupled to a semiconductor device, such as a module controller IC, or a memory IC that has been customized to include an appropriate interface in the module which also performs other functions. It is a feature of the invention that, in an implementation where the display assembly incorporates drive electronics, multiple versions of displays that use a common interface to a module controller IC or other semiconductor device in the module can be used. This allows a single version of a module controller to interface to multiple designs of displays that are application specific.
  • the module controller IC itself, including the connection of external circuitry to the controller IC including, for example, resistors, capacitors, diodes and transistors or other passive and active components, or in conjunction with a power generation IC or ICs and the power generation ICs associated components.
  • a well known method in the art for generating high voltages using ICs is using a charge pump circuit. Such a circuit may be associated with power supply voltage generation or with driving the outputs of a plurality of pins on an IC, for example, the module controller IC, to high voltages.
  • additional functionality relating to display control is built into an IC already present in prior art data storage modules.
  • Examples include a solid-state disk emulation or rotating disk drive module equipped with a display capable module-controller IC, any other controller-equipped memory module, including those with serial interfaces, or a memory module which comprises one or more memory chips, with one memory chip modified to include additional logic and outputs to calculate the information for, and to drive or interface to a display.
  • Certain information on the display such as available storage space or the presence of error conditions is automatically updated when the module is in use, either in a portable device such as a digital camera, music recorder, or portable computer, or in a stationary device such as a desktop computer.
  • the display equipped storage module includes hardware logic or internal software that allows it to update certain regions of the display independently of any display-related action by the host device, when specific events, internal to the module, take place. For example, the remaining storage capacity and status indications are updated after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed.
  • Certain other information on the display, included in the module status information, such as module identifying information, can only be modified through a deliberate action of the user. That optional portion of the display can only be altered by appropriate external commands or other signals, which are provided along with the updated information.
  • the mechanism of updating this information does not interfere with the operation of the module as a data storage device, and in particular does not interfere with the operation of a module in prior art host devices designed for prior art modules with no display capability.
  • the display appearing on the data storage module may be application specific in nature. Due to the evolving nature of applications for removable data storage modules, in an environment of relatively stable standards for the modules themselves, it is a feature of the invention that support for new file systems and application specific displays may be retrofitted to a display equipped module that uses an internal microprocessor and updateable (e.g. uploadable) firmware.
  • a storage module including a display operates in a host device that need have no prior knowledge of the presence of the display.
  • the display is updated automatically using information that is available within the module (e.g. available storage capacity, detection of internal error conditions) and optionally information pertaining to a file system that may be used to organize the storage of data files in the module.
  • the content of such file system information if present, is maintained by file system software running on the host device.
  • the file system's data structures, tables and other information pertaining to what information is stored in particular memory regions or sectors (in the case of a disk or disk emulating module) of the module are know to the logic or microprocessor and firmware in the module. This permits modules complying with existing hardware, and optionally file system industry standards, to operate in the installed base of host devices, including mobile and stationary host devices.
  • the memory used for data storage is prone to "wear out” if the same part of memory is used over and over (e.g. stores data, has its data erased, and stores data again too many times). If the use of the memory is spread out over all of the available memory, a term referred to as “wear leveling,” it evens or “levels” the amount of wear on all parts of the memory, making the memory last longer. A simple analogy would be using the same spot on a cutting board over and over, versus spreading out the use over the entire surface to make it last longer.
  • the controller inside the module accomplishes wear leveling by "moving files around.” That is useful if a large file stored in the module is always read, like a book or a game program, but is never changed, while other areas are frequently being erased and rewritten, like e-mails or digital pictures. Continuing the earlier analogy, that is like covering part of the cutting board with a large book, which protects that part, but concentrates all the wear on the remaining part. Moving the file around is like moving the book around to expose all of the board's surface at different times. When a large, unchanging file is moved, the file system tables are updated so the host will know where to find the file.
  • both standardized and proprietary file systems can be used for the purpose of generating displays of available storage capacity, and that a single module may support multiple versions and types of file systems, and may detect the type in use using its internal logic or the file system may be selected externally in manner similar to the manner described for selecting among multiple display formats in figure 7.
  • the use of the optional file system data in computing the automatic display update is not limited to a single or specific file system.
  • Other aspects of the display also require user-initiated operations, such as specifying the module identifying information to be displayed, or the particular format ofthe display if the module has an application-specific display capability. Referring to figure 1, an exploded view of a non-volatile memory module 10.
  • the non-volatile memory module 10 is a "Compact Flash” style of non-volatile (or flash) memory module, a type of data storage module.
  • This module contains a user visible, non-volatile display 16.
  • This assembly is also representative of the way that PCMCIA types of memory modules are assembled. The components shown are as follows:
  • the top cover 12 typically constructed of thin sheet steel, has a hole 38 therein causing information from the display 16 to be visible when the module is assembled and operational.
  • the hole 38 may be covered with a display glass or clear plastic (not shown) or any other material that allows the display information to be visible to the naked eye.
  • Top cover 12 may also be constructed of clear plastic, with pain or other opaque marking applied except in the region where the display 16 is located. In such a case, hole 38 need not be present since the display can be seen through the transparent cover 12.
  • a thin piece of sheet metal 14 holds the display securely to the module's circuit board 30. It maintains compression of the conductive elastomer strips 20, ensuring an electrical connection between display 16 and circuit board 30.
  • many methods and substrates are commonly known in the art to electrically connect a display such as 16 to a circuit board such as 30, and the circuit board is just one example.
  • the display 16 can also be attached directly to circuit board 30, for example by soldering or conductive adhesive.
  • top cover 12 is a molded part, it may perform the same locating and retention function for display 16 as does sheet metal 14.
  • the non- volatile display assembly 16 is characterized by its ability to retain the visible display content with no power applied to the display.
  • this type of display 16 uses Cholesteric LCD or Ferroelectric display technology.
  • the display 16 may require a high voltage to alter the displayed information, typically 40 or more Volts for Cholesteric LCDs, for example, to be applied to it in order to change the appearance of the display, e.g. turn an element on the display 16 on or off.
  • Displays having other attributes, such as variations in shapes, sizes, the use of customized graphical designs, and other interconnection methods may be deployed without departing from the scope and spirit of the present invention.
  • a narrowly dimensioned non-volatile display could be configured for installation in one of the short edges of a module housing 34, making its connection through a clearance slot molded in the housing and mating with a connector on the circuit board's 30 surface.
  • the display assembly 16 consists of the display glass with patterned contacts on the glass's bottom surface, optionally, as in this example, mounted on a circuit board, with or without an optional display controller IC 22 as discussed below.
  • the display 16 is designed to display through the hole 38 or a transparent window in the top cover 12, one or more of the module's capacity information (numeric and/or graphical), text identification information and other status information such as the presence of an error condition.
  • the bottom view 18 of the display assembly 16 is shown including contacts for coupling the display 16 to the module's circuit board 30 in area 24.
  • the connection is made by flexible conductive elastomer strips 20 sandwiched in between the display assembly 16 and circuit board 30.
  • the flexible conductive elastomer strips 20 exemplify a common way to couple the module's circuit board 30 and the display 16.
  • the display 16 may comprise glass only,or may be mounted on a circuit board and may optionally include display controller IC 22.
  • the flexible conductive elastomer strips 20 are, essentially, thin vertical wires, insulated from each other, and embedded in soft rubber. When sandwiched between 2 circuit boards with the same pattern of connecting pads, they will connect the pads that align with each other through the short wires in the strip. A popular brand of this material is known to those skilled in the art as "Zebra Strip.”
  • An optional display controller IC 22 is mounted on the back of display assembly 16.
  • the IC 22 need not be present, in which case the LCD glass may be electrically coupled to an IC on the circuit board 30, such as module controller IC 32.
  • IC 22 is electrically coupled to the display 16.
  • Such an IC 22 can accept its input serially, minimizing pin count on the module controller IC 32.
  • Such an IC 22 permits the module controller IC 32 to devote a minimum number of pins to display control.
  • This also allows many different types of displays 16 to be used with a single module controller IC 32.
  • This display controller IC 22 may also contain logic in support of graphics display or text generation, as well as voltage generation and other display support circuitry as required by the specific data displayed, artistic design and technology of the display 16. Note also that if display 16 requires high voltage generation, such generation may be performed by the module main controller IC 32, a display controller IC 22 or other IC, using additional passive and active components on an IC or a per-pin basis, without departing from the scope and spirit of the present invention.
  • the region 24 of the module's circuit board 30 that contains the same pattern of electrical contacts as the bottom of display assembly 16 as shown in bottom view 18. In operation, these contacts are electrically coupled to display 16 through conductive elastomer strips 20.
  • the connector 26 couples the module 10 to a host device when the module is in use as a data storage device or when its configuration is being altered by a host device equipped to make such alterations, such as a user initiated update to the optional identifying information display (detail in figure 2), or during other operations described in figure 6 and elsewhere.
  • the non-volatile flash or EEPROM memory ICs 28, store digital information programmed into them without the requirement for battery or other power sources.
  • the circuit board 30 provides a substrate for the electrical coupling among the components of the memory module mounted to the circuit board 30, including the connector 26, the module controller IC 32 and its supporting circuitry, the display 16, or optionally the display controller IC 22 if used. Electrical coupling could also be achieved by other means known in the art without departing from the sprit and scope of the present invention. These means may include tape automated bonding bare die bonding and other surface mounting method commonly known in the art.
  • the module controller IC 32 contains the logic that controls the internal operation of the module as well as communication with the host device via connector 26. This controller receives and processes commands and data from the host device via connector 26, and it controls the operation of the memory ICs 28 in the module. It may include a microprocessor and firmware. It also controls updating and configuration of the display 16 in a manner transparent (e.g. invisible) to the host, which is to say that the display 16 is automatically updated after each data writing or erasing operation to the module is completed. This may involve a series of operations including internal calculations by logic or microprocessor based on memory usage, file system information, and other internally available information, and the changing of graphical, numeric and iconic images on the display 16.
  • the controller IC 32 is also responsive to specific commands, or decodes specific addresses sent by a host device, to permit user initiated updating of portions of the display 16 such as identification information seen in the display 16, the details of which are shown in figure 2.
  • the controller IC 32 may also be responsive to commands from the host device to arrange and format the appearance and content of the display 16 in a manner appropriate to a particular application or host product, for example a camera or a digital music player.
  • the plastic frame 34 provides rigidity and mechanical integrity to the assembled module 10.
  • the bottom cover 36 is typically constructed of the same thin sheet metal as the top cover 12. hHowever it may also be constructed of plastic or other material.
  • module 38 is a cutout in the top surface of the module top cover 12 that permits viewing the display when the module is assembled. As noted previously, such a cutout may not be required if top cover 12 is made from transparent material such as clear plastic. All electrical connections among the devices mounted to the circuit board 30 are made through circuit board 30.
  • the host connector 26 is coupled to module controller IC 32.
  • Module controller IC 32 is coupled to nonvolatile memory ICs 28 and to display 16 through conductive elastomer strips 20.
  • controller- equipped memory modules 10 used for data storage. Frequently such modules use the "PCMCIA/ATA" disk drive command-driven protocol, whereby the host device sends commands and data to the module 10 as if it were a disk drive, and the controller IC 32 within the module 10 manages the process of storing, reading out the requested data depending on the command, and erasing portions of the memories 28 if and when required.
  • Controller- based, command-driven modules are not limited to the ATA command set nor to a parallel interface.
  • a module 10 could also use a serial interface and a proprietary command protocol. In either case, a key function of the on-module controller IC 32 is the management of the memory in the module.
  • controller 32 is aware of the total available memory and the amount currently in use, and may optionally also be aware of the particulars of a file system that is used in the particular application where the module 10 is deployed, as well as being aware of other pertinent status information that is to be displayed or used in computing and formatting data for viewing on display 16, such as error conditions.
  • the information pertaining to the amount of storage available is formatted by the controller for display, and such formatting may be application specific (e.g. a music storage module can display available recording time rather than percentage of raw capacity available).
  • the operation of the display 16 in the module 10 of figure 1 proceeds as follows:
  • the host device issues a command to store (i.e.. write) data into the memory 28, erase data from the memory 28 on the module, or to erase a file from module 10 whose storage or memory 28 utilization is also being managed by a host based file system.
  • the resulting action of a file erasure may only be manifest in changes to the contents of file tables which are rewritten to regions or sectors of the memory 28 in the module (e.g. no physical erasure of memory 28 need take place).
  • File systems of this nature are frequently used with most magnetic disk drives, where no erasure takes place, and thus are well known to those of ordinary skill in the art.
  • a file system erase appears to module controller 32 to be a write to a recognized logical or physical region ofthe memory 28 in the module 10, which is recognized as such by module controller 32.
  • the write command is followed by the data to be written.
  • the command is processed by the module controller 32, and at the end of the write or erase operation, the module controller 32 calculates the values to be displayed on display 16, on the basis of internal and optionally file system information, and formats information in a form appropriate to the display 16, and transfers the display values and other displayable information to the display 16.
  • the ability to update the module firmware in a microprocessor equipped module with updateable firmware allows new file systems and new application- specific displays to be retrofitted to a display equipped module 10. This transfer of the displayable information involves a series of steps including controlling the display 16 power supply voltage and transferring the data using appropriate control signals. If the module controller 32 is coupled to the display, it must also control the signal timing.
  • module controller If the module controller is coupled to a display controller IC 22, it will send instructions and data to the display controller IC 22, which will in-turn apply the appropriate signals to the display 16.
  • the module controller 32 may also be responsive to user-initiated commands to alter the module identification information display, per the detail in figure 2, or the internal display formatting mode, in a manner detailed in figure 6.
  • the display 16 itself can be constructed of any available non-volatile display technology that can be handled by the electrical capabilities of the module 10 operating in a host device equipped for the non-display enabled modules (e.g. excessive power, beyond that normally used for that type of module is not acceptable).
  • the display 16 must also conform to the dimensional requirements of the module 10, particularly with respect to thickness.
  • Cholesteric LCDs have been commercialized, and Ferro-electric display technology that may prove suitable has been demonstrated.
  • FIG 2 shows the top view of display assembly 16 of figure 1 in detail.
  • the display assembly top view 200 is shown to comprise the optional substrate 202, the display glass 204, said display glass 204 containing optional visible display elements 206, 208, 210 and 212 described below, not all of which are required to be present.
  • the display glass 204 is attached and electrically coupled to optional substrate 202, if the substrate 202 is present.
  • Display glass 204 may also be mounted to the module's substrate or circuit board 30 in figure 1 in the manner described relative to figure 1.
  • the display glass 204 has patterned contacts on its bottom surface.
  • the display substrate 202 if used, has contacts on its bottom surface, visible in the display assembly 16 bottom view 18 in figure 1.
  • Display icon 206 is an example of an iconic display, iln this case, an icon indicating the presence of an error condition is shown. In operation, this would serve to warn the user that there is an internal problem with the module 10.
  • an icon 206 can indicate an application-specific display mode, for example a musical note to indicate that the display is indicating remaining available recording time in hours, minutes and seconds.
  • 208 is a graphic representation of the remaining display capacity, in this example a stacked bar-graph.
  • 210 is a numeric display, in this example the digits are made of the common 7-segment type.
  • 212 is a dot matrix alpha-numeric display, displaying module identifying information.
  • this display is not limited to solid-state storage devices.
  • a removable magnetic disk drive may also contain such a display, for the same purposes as previously described.
  • Compact Flash, and PCMCIA type I, II and III hard disks have been demonstrated or are commercially available at the time of this writing.
  • Figure 3 shows a removable magnetic disk drive 300 equipped with a non- volatile display 308.
  • a non- volatile display 308 Such a device contains a rotating magnetic storage medium 302 and associated control circuitry well known in the art, including PCMCIA/ATA removable disk drives.
  • the disk drive 300 contains a controller IC within the drive that is either coupled to the non-volatile display 308, or it is coupled to a display controller IC, in the same manner as in figure 1.
  • the disk drive 300 is removably coupled to the host device via electrical connector 304. After completion of any operation that changes the amount of available storage, or causes a change in any condition that can be displayed, which may include disk "formatting" in the manner well known in the art, the display 308 is automatically updated by the disk drive controller IC, independently of any action by the host device.
  • Prior knowledge of data organization or file system information may optionally be used by the logic or microprocessor and firmware in the module in the same manner as in figure 1. Such prior knowledge may be required, for example, in cases where the disk drive's data organization is managed by host resident file system software.
  • the controller in disk drive 300 is also responsive to user-initiated commands to alter the disk drive 300 identification information display 212, or the display format including iconic display 206, in a manner detailed in figure 6.
  • Figure 4 shows a typical non-volatile memory module 400 equipped with a nonvolatile display 426 that is coupled to a module controller IC 432.
  • the host device 402 is removably coupled to the module by connector 404.
  • Memory module controller main logic 406 contains the command processing and memory management logic, and may include a microprocessor and firmware. It operates in a manner familiar to one of ordinary skill in the art to communicate with the host device 402 and read and write data to and from the nonvolatile memory array 424, erase data from memory array 424 as required, and to handle error detection and correction and other aspects of the particular host interface protocol such as PCMCIA/ATA.
  • Host interface 408 handles the electrical signaling requirements of the particular host interface, whether serial or parallel, and communicates with the controller main logic 406 via an internal bi-directional bus 414.
  • Bi-directional memory interface 410 is coupled to drivers 412 which provide the correct electrical drive and reception characteristics for the memory array 424, which comprise a plurality of memory chips 422. The operation of a memory array 424 and its address decoding and control requirements are conventional and will be familiar to one of ordinary skill in the art.
  • Display interface 416 is coupled to the nonvolatile display 426 via electrical data and control signals 428.
  • the display interface is equipped with output drivers that, operating under control of the controller main logic 406 act to drive the display 426 inputs with the correct voltage, waveforms and timing to permit the elements of the display 426 to be turned on or off as directed by the controller main logic 406.
  • Display interface logic 416 operates in conjunction with display voltage generation block 418, also under control of controller main logic 406 to apply the proper generated voltages to nonvolatile display 426 via electrical signal lines 430.
  • the display voltage generation may include a separate voltage generator IC, or the addition of passive or active components, or passive and active components on per-chip basis or a per-pin basis.
  • Such a high voltage generating circuit may use a circuit known in the art as a charge pump.
  • Non-volatile display 426 of which an example is shown in figure 2 as 200, is capable of displaying one or more of numerical or graphic storage capacity information, dot-matrix identification information, or iconic status information in one or more display regions. This display 426 is responsive to the display interface data and control signals 428 and voltages applied via electrical signal lines 430 to alter its displayed information under control of controller main logic 406.
  • controller- equipped memory modules 400 used for data storage. Frequently such modules use the "PCMCIA/ ATA" disk drive command-driven protocol, whereby the host sends commands and data to the module as if it were a disk drive, and the module controller IC 432 within the module manages the process of storing and reading requested data depending on the command and erasing portions of memory array 424 as required.
  • Controller-based, command-driven modules 400 are not limited to the ATA command set, nor to a parallel interface. For example, such a module could also use a serial interface and a proprietary command protocol.
  • a key function of the module controller IC 432 is the management of the memory in the module, and thus it is aware of the total available memory, and the amount currently in use, as well as other pertinent status information that is to be displayed such as error conditions.
  • Module controller IC 432 may optionally be aware of the method used to organize the data stored in the module 400, such as a file system that is used by the host to logically manage the data storage in module 400. This file system information, or other organization information, may optionally be used by module controller IC 432 to compute the available memory. It is characteristic of file systems that a file erasure may take place by simply rewriting the file tables, in a logical or physical region of memory array 424 that is identifiable to module controller IC 432.
  • a file erasure may be noted, and a display indication of an increase in the available memory for the user of module 400 may take place without any physical erasure of memory array 424 taking place.
  • file systems are frequently used with magnetic disk drives and are well known in the art.
  • Other organizations of the stored data may also signal the availability of memory before or after it is actually erased, and those methods can also be incorporated into the remaining storage calculation performed by module controller IC 432.
  • the calculated information pertaining to the amount of storage available is then formatted by the controller for viewing on display 426.
  • Such formatting may be application specifice.g. a music storage module can display available recording time rather than percentage of raw capacity available, and an indication that the display is operating in an application-specific mode may be indicated by an icon such as 206 in figure 2.
  • the operation of the display 426 in the module of figure 4 proceeds as follows: Upon the completion of any operation that changes the amount of available storage or causes a change in any condition that can be displayed, the module controller IC 432 calculates and updates the display of available storage or other conditions that can be displayed.
  • An example of this for a module 400 which optionally contains a file system is as follows: The host device issues a command to store (e.g.
  • the command is processed by the controller main logic 406, and at the end of the data storage, file system table writing or memory erasure operation, the controller main logic 406 calculates and formats information in a form appropriate to the display 426 attached to it, and transfers the display information to the display 426.
  • the calculation may rely on prior knowledge of the particular file system in use in module 400, or on the presence of another data organization method not involving a file system.
  • Module 400 may be capable of supporting more than one file system, in which case controller main logic 406 may detect the presence of a particular file system or it may select the appropriate logic for a particular file system based on a previously programmed value stored in a non-volatile memory available to module controller IC 432, programmed into module 400 in the manner shown in figure 6.
  • the transfer of data to display 426 involves a series of steps including controlling the display 426 power supply voltage via display voltage generation block 418 and transferring the data to display interface 416 via bi-directional bus 414.
  • Display interface 416 and display voltage generation block 418 then operate under control of controller main logic 406 to alter the appropriate elements of non-volatile display 426, turning elements on or off as required.
  • the module controller IC 432 may also be responsive to user-initiated commands to alter the module identification information display, the display format or the selected file system, in a manner detailed in figure 6.
  • FIG. 5 shows a typical non- volatile memory module 500 equipped with a nonvolatile display 526 that is coupled to a display controller IC 532.
  • Display controller IC 532 is coupled to Module controller IC 536.
  • 502 is the host device, which is removably coupled to the module by connector 504.
  • Memory module controller main logic 506 contains the command processing and memory management logic, and may include a microprocessor and firmware. It operates in a manner familiar to one of ordinary skill in the art to communicate with the host device 502 and read data from and write data to the non-volatile memory array 524. erase data from memory array 524 as required, and to handle error detection/correction and other aspects of the particular host interface protocol such as PCMCIA/ATA.
  • main logic 506 may contain high voltage generation circuitry or that capability may reside in another IC within module 500. Further, as previously described, the high voltage generation may use active and or passive components, on a per-chip or per-pin basis. Such a high voltage generating circuit may use a circuit known in the art as a charge pump.
  • Host interface 508 handles the electrical signaling requirements of the particular host device protocol, whether serial or parallel, and communicates with the controller main logic 506 via an internal bidirectional bus 514.
  • Bi-directional memory interface 510 is coupled to drivers 512 which provide the correct electrical drive and reception characteristics for the memory 524, which comprise a plurality of memory chips 522. The operation of a memory array 524 and its address decoding and control requirements are conventional and will be familiar to one of ordinary skill in the art.
  • Display interface 516 interfaces to display controller IC 532 via electrical data and control signals 528.
  • the display interface is ideally a bi-directional serial interface which minimizes the number of pins used on the module controller IC 536.
  • the display interface 516 may be designed so that it can interface directly to a simple display in the manner of figure 4, or via serial or parallel interface to an external display controller 532. Its selection of mode, whether to be coupled to a display or an external display controller can be determined by strapping, as is well known in the art, or by programmable registers inside module controller IC 536.
  • the bi-directional capability supports reading-back the registers in the display controller IC 532 for display controllers with that capability.
  • a parallel interface may also be used.
  • the display controller 532 Operating under control of the controller main logic 506, the display controller 532 is programmed to produce the desired display on non-volatile display 526.
  • the display interface 516 operating display controller 532 works in conjunction with display voltage generation block 518 to permit the elements of the display to be turned on or off as directed by the controller main logic 506.
  • an external display controller 532 permits a more complex display requiring more electrical connections than would be feasible to couple to a potentially large number of pinson module controller IC 536.
  • Another purpose is to provide a set of consistent interface signals 528 emanating from the display interface 516 capable of supporting multiple versions of display 534.
  • An example of this is application specific displays, that may require different versions of display controller 532. This is achieved while minimizing the pins used on module controller IC 536.
  • An example display, shown in figure 2 is capable of displaying one or more of numerical or graphic storage capacity information, dot-matrix identification information, or iconic status information in one or more display regions.
  • the display 526 is responsive to the display controller 532 output signals 534, and voltages applied via electrical signal lines 530 to alter its displayed information. Display controller 532 and signal lines 530 are both controlled by controller main logic 506. As previously noted, any IC or circuitry within module 500, including display controller 532 may generate the high voltages needed for the display.
  • controller- equipped memory modules 500 used for data storage. Frequently such modules use the "PCMCIA/ATA" disk drive command-driven protocol, whereby the host device sends commands and data to the module as if it were a disk drive, and the module controller IC 536 within the module manages the process of storing and reading requested data depending on the command, and erasing portions of memory array 524 as required.
  • Controller-based, command-driven modules 500 are not limited to the ATA command set, nor to a parallel interface. For example, such a module 500 could also use a serial interface and a proprietary command protocol.
  • a key function of the module controller IC 536 is the management of the memory in the module, and thus it is aware of the total available memory, and the amount currently in use, as well as other pertinent status information that is to be displayed such as error conditions.
  • Module controller IC 536 may optionally be aware of the method used to organize the data stored in the module 500, such as a file system that is being used by the host to logically manage the data storage in module 500. This file system information, or other organizational information may optionally be used by module controller IC 536 to compute the available memory. It is characteristic of file systems that a file erasure may take place by simply rewriting the file tables, in a logical or physical region of memory array 524 that is identifiable to module controller IC 536.
  • a file erasure may be noted, and a display indication of an increase in the available memory for the user of module 500 may take place without any physical erasure of memory array 524 taking place.
  • file systems are frequently used with magnetic disk drives and are well known in the art.
  • Other organization of the stored data may also signal the availability of memory before or after it is actually erased, and these methods can also be incorporated into the remaining storage calculation performed by module controller IC 536.
  • the calculated information pertaining to the amount of storage available is then formatted by the module controller IC 536 for viewing on display 526.
  • Such formatting may be application specific-e.g.
  • a music storage module can display available recording time rather than percentage of raw capacity available, and an indication that the display 526 is operating in an application-specific mode may be indicated by an icon such as 206 in figure 2.
  • the operation of the display 526 in the module 500 of figure 5 proceeds as follows:
  • the module controller IC 536 calculates and updates the display of available storage or other conditions that can be displayed.
  • An example of this for a module 500 which optionally contains a file system is as follows: The host device issues a command to store (i.e.
  • the command is processed by the controller main logic 506, and at the end of the data storage, file system table writing or memory erasure operation, the controller main logic 506 calculates and formats information in a form appropriate to the display 526 attached to display controller 532, and transfers the display information to the display controller 532 for display on display 526.
  • the calculation may rely on prior knowledge of the particular file system in use in module 500 or on the presence of another data organization method not involving a file system.
  • Module 500 may be capable of supporting more than one file system.
  • controller main logic 506 may detect the presence of a particular file system or it may select the appropriate logic for a particular file system based on a previously programmed value stored in a non-volatile memory available to module controller IC 536, programmed into module 500 in the manner shown in figure 6.
  • the transfer of data to display 526 involves a series of steps including controlling the display 526 power supply voltage via display voltage generation block 518 and transferring the data to the display interface 516 via bi-directional bus 514.
  • Display interface 516 then transfers data and control signals to display controller 532, which drives the display 534.
  • Display voltage generation block 518 operates under control of controller main logic 506 and in conjunction with display controller 532 to alter the appropriate elements of non-volatile display 526, turning elements on or off as required.
  • the module controller IC 536 may also be responsive to user-initiated commands to alter the module identification information display, the display format or the selected file system, in a manner detailed in figure 6.
  • a module used to store images may indicate its "percentage of available free space," or the number of pictures remaining if the amount of storage per picture is constant; or, in the case of a module used with a music player, the amount of free space could be indicated in time units (e.g. hours, minutes and seconds).
  • time units e.g. hours, minutes and seconds.
  • a further example of a user initiated action is specifying that a particular file system or other method of data organization is being used to maintain the file structure of data on a data storage module or specifying a non-file system based method that the memory uses for data storage. From the user's perspective, this might be indicated by the user selecting a particular brand and model of computer or camera from a list, with the result being that information is stored in the module allowing the controller to determine remaining capacity by accessing the data structures of the selected file system. In other words, the user determines which set of instructions should be loaded into the module to make it operate correctly with a particular product, or in a particular application.
  • a default selection of the most popular file system would typically be implemented, and a data storage module need not support the recognition and processing of information from any, or multiple, file systems unless file system based display generation is required.
  • the host device In order for the user initiated update to take place, the host device must contain the information on how to update the information on the particular module, as well as means for the user to enter the module identification, file system or other data storage organization type (including by selection of host product from a list in application software) and display formatting information, as required. The following is a description of the user initiated update of this information.
  • a microprocessor equipped module with updateable firmware could accommodate new file systems and application specific display formats through the mechanism of a firmware upgrade.
  • Such a display format upgrade would be advantageous, for example, with a display with flexible display characteristics (e.g. a dot matrix display).
  • Uploading new firmware allows host devices and applications that may not have been conceived at the time of the module's manufacture to be supported, through the process of simply inserting the module into a "reader/writer" slot in a computer or other device equipped to store a new control program into the module.
  • FIG. 6 shows a block diagram of a PC 600 equipped module reader/writer 614.
  • the PC 600 may be a desktop or mobile computer.
  • a reader/writer 614 may be interfaced to the PC 600 via serial, parallel, Universal Serial Bus (USB), Small Computer System Interface (SCSI), Peripheral Component Interconnect (PCI), Industry Standard Architecture (ISA), Personal Computer Memory Card International Association (PCMCIA), CardBus (A PCMCIA technical standard based on PCI), IEEE- 1394 (a high speed serial interface) or any other suitable interface 612.
  • USB Universal Serial Bus
  • SCSI Small Computer System Interface
  • PCI Peripheral Component Interconnect
  • ISA Industry Standard Architecture
  • PCMCIA Personal Computer Memory Card International Association
  • CardBus A PCMCIA technical standard based on PCI
  • IEEE- 1394 a high speed serial interface
  • the display equipped data storage module 620 including its built-in display 618 is inserted into the reader/writer 614 electrically coupling it to the reader/writer via mating connectors 616.
  • the PC is equipped with a monitor or other display 602 coupled by cable or other interconnect 604 to provide a computer display for the PC user, and a keyboard 608 coupled via cable or other interconnect 606 to the PC 600 from which the user may enter commands and data.
  • a "point and click" graphical interface as is popular on both computers and consumer electronic products, may also be used with addition of a pointing device, as is well known in the art.
  • the PC 600 is shown to be running application program 610 which contains the instructions and user interface providing for the update of the portion or portions of the display subject to user initiated update, additionally providing means for commanding a module implementing multiple display modes to switch its mode of display, and also providing optional user selection among multiple file systems or other methods of data organization that may be recognized by the module.
  • One of the file systems or methods of data organization selected by the user may be used internally by the module in calculating the available storage space during automatic display update operations previously described and detailed in figure 10.
  • a PC 600 running application software 610 operates by accessing control and data registers in module 620 not used by the standard or normal storage module interface for the particular type of module, thus allowing user specified information, such as module identification data to be programmed into the display without interfering with the operation of the module in prior art host devices that have no prior knowledge of display equipped modules.
  • This is important because it permits display equipped modules such as 620 and prior art host devices, which may comply with recognized technical standards, to remain compatible and interoperable.
  • certain registers in the so-called "task file" register set are reserved for vendor-specific purposes, and thus their use will not interfere with normal operation in a host device unaware of the additional capabilities.
  • module 620 is recognized by the Reader/writer 612 and its device driver software in the conventional manner, and made accessible to application software 610 running on the PC 600.
  • the user starts the application software 610, either before or after module 620 is inserted, such that application software 610 is running and prepared to receive commands from the user via the keyboard 608.
  • the application software 610 When the application software 610 is running, it establishes communication with the module 620, and reads the module's specific capabilities with respect to its display 618 and its ability to display identification information, what display modes it supports, including multiple modes if supported, and what file systems, if any, are supported for subsequent internal use in the module 620 in calculations of available memory capacity.
  • the application software provides the user with the available options via monitor 602, and after validating the users proposed changes, input via keyboard 608. to verify their compatibility with the actual capabilities of the module, this information is stored in a non-volatile manner in module 620 so that it is retained after the module is removed from the reader/writer 614. At the completion of the process, the user removes the module from reader/writer 614. Note that, in the case of modules equipped to handle file systems in the automatic available storage computation, some modules 620 may support only a single (default) file system.
  • user initiated updates as described here are not limited to a PC, but can take place on any module-accepting host device equipped with the requisite application software and user interface.
  • a touch sensitive display screen on a camera or other portable device may be able to accept user commands and alpha-numeric text entry.
  • additional user initiated commands are possible, such as those supported by the operating system on the host device, or utility software.
  • "Formatting" a module which presents a disk drive interface or uses a file system, which erases all data from the module 620 and sets the available space to 100% is an example of an operating system supported operation.
  • User initiated operations may also include diagnostic and data repair actions, such as correcting an erroneous display or other storage media repairs to module 620 as are known in the art.
  • the operation of the application software 610, and its interaction with the logic or software (firmware) in the module is detailed in figure 7, also with reference to figure 6.
  • the module is (or has previously been) inserted into the module reader/writer 614 and the user has started-up operation of the application software 610 with the intent to perform a user initiated update of the module 620.
  • the application software 610 reads the module's specific capabilities with respect to all possible types of user initiated updates.
  • the application software permits the user to select among the functions available.
  • Update the module identification portion of the display 618 may include: optionally Update the module identification portion of the display 618, optionally Alter the format of display 618 in an application-specific manner and, optionally, Specify the file system or other method of data organization to be used with the module for the purpose of computing the available storage capacity. If multiple file systems or data organization methods are supported, these may be presented as a selection among brands and models of host devices for the convenience of non-technical end users.
  • a user option to "quit" the updating process is also presented.
  • control is transferred to step 716, signifying completion of the operation, and the PC 600 or host system performing the update returns to its idle state with respect to the updating operation.
  • the application software 610 validates the users command by verifying that the module 620 is able to accept the type of command proposed (i.e. is capable of displaying identifying information, application-specific formatting of a display 618 or handling the specified file system-based or non-file system-based remaining storage computations for the specified file system or storage method. For example, if the user commands a change in the display 618 format, say from "percent remaining storage capacity" to "hours: minutes: seconds of recording time remaining," the application software validates this command. Only if the requested capability is supported and the module is able to accept the command will the software reach the "write command and data" step 712.
  • the type of command proposed i.e. is capable of displaying identifying information, application-specific formatting of a display 618 or handling the specified file system-based or non-file system-based remaining storage computations for the specified file system or storage method. For example, if the user commands a change in the display 618 format, say from "percent remaining storage capacity" to "hours: minutes: seconds
  • step 710 If the requested command cannot be handled because of a limitation in the capability of module 620, the user is so told in step 710, and control is returned to step 704 where the user is again permitted to select among the available functions.
  • step 708 if the application software 610 determines that the module is capable of processing the command and the command is said to have been "validated.”
  • the application software 610 then writes the commands and data to the registers in module 620 to execute the user's command.
  • These registers are module specific, and are addressed and structured so as not to interfere with the normal operation of the module in a host device unaware of the display capability.
  • the registers may be vendor specific or may be standardized at some future date.
  • the logic or firmware in the host device acts to update the display, if a change to the displayed identifying information was commanded, or acts to update the appropriate flags and other required data in a reserved area of the module's nonvolatile memory, or acts to update in the case where a display format change was commanded, or acts to update flags and other required data, in the case of a change to the choice of file system or choice of storage method, if any, to be used subsequent automatic computations of remaining storage capacity.
  • the identifying information may also be stored in a nonvolatile memory in module 620, permitting its readout by application or system software at a later time, in addition to its visible display on display 618.
  • the control over the display 618 and the storage medium, disk or memory, in the module 620 is done under control of the logic or microprocessor and firmware in the module.
  • the module firmware returns to its idle state awaiting further commands, and the application software running on the PC returns to its idle state, awaiting further user commands.
  • user initiated updates as described here are not limited to a PC, but can take place on any host device equipped with the requisite application software and user interface, as noted previously.
  • a display may also be installed in a removable storage module that does not use a module controller IC distinct from the memory IC or ICs, such as a module containing only memory ICs or with interface capabilities integrated into the memory IC or ICs.
  • FIG. 8 shows a block diagram of a storage module 800 using one or more nonvolatile memory ICs 802 and 804, equipped with non-volatile display 812.
  • the host interface 806 drives a shared address, data and control bus 808 connected to all the memory ICs in the module.
  • one memory IC could provide a host interface, for example a serial interface, and generate an internal memory bus, thus coupling only memory IC 802 to the host interface 806.
  • a modified memory IC 802 includes display control logic 803 which determines the percentage of the module 800 storage capacity in use may generate additional display data and provides signals and display voltages and high voltages 810 that drive the non-volatile display 812.
  • the high voltage generation circuitry may be the type of circuit well known in the art as a charge pump, and it may use external passive or active component, or both passive and active components to generate high voltage. Such components may be on a per-chip or per-pin basis (e.g.
  • the display control logic 803 may optionally include prior knowledge of a file system used by the host device to organize data stored in the module, or other non-file system based data organization, and may access that data in calculating the remaining available storage space for purposes of displaying the available storage space on display 812, as described previously. Note that, if a file system is present, the occurrence of a file erase may be indicated by a write operation to file table maintained by the host file system in the memory array which comprise memory ICs 802, 804 and any other memory ICs in the module without any physical erasure of the file taking place.
  • the Display control logic 803 may recognize the updating of these file tables based on its prior knowledge of the logical or physical location ofthe tables or by other means related to its prior knowledge of the file system's operation. Display control logic 803 may also have prior knowledge of the data organization that is not file-system based. In any case, display control logic 803 will automatically update the display at the completion of any event that results in a change to the available storage capacity of the module 800 or a change to any displayable information.
  • the display control logic 803 may include the use of nonvolatile memory to allow the last calculated module storage availability data to be restored to the display control logic 803 at module 800 power-up, or it may be recalculated, as would be the case when the calculation was based on file system data.
  • the display control logic 803 in IC 802 has reserved pins 814 "strapped" to the positive power supply or to ground to indicate the total capacity of the module at the time it powers up.
  • the conventional manner of "strapping" to control an ICs power-up configuration is a technique well known in the art.
  • the module 800 receives commands, addresses, data, control signals and power over host interface 806.
  • the addressing of the memory ICs 802 and 804 is configured on the internal bus 808 (which is not connected to host interface 806 in an alternative embodiment noted above) so that only the appropriate memory IC in the memory array which comprise comprised ICs 802 and 804 accepts the commands and data designated for it.
  • memory IC 802 which has been modified to include display control logic 803 also "snoops" (i.e. monitors) all write and erase operations to IC 804 and any other ICs in a module which comprises additional memory ICs up to 'n' ICs of the same type as 804 on the module.
  • the information displayed on non-volatile display 812 is not limited to capacity information, and may include any of the previously discussed identification, status, error condition and other iconic displays, and numeric and graphical displays.
  • the card may signal to the host device that it is "busy" (i.e.
  • the display updating may be initiated as soon as the display control logic 803 has determined what the change in available storage capacity will be, before the actual read, write or erase operation completes.
  • Figure 9 shows a block diagram of a storage module 900 using one or more nonvolatile memory ICs 902 and 904, equipped with non-volatile display 914 which is coupled to a display controller IC 912.
  • the display controller IC 912 is coupled to the display control logic 903 in modified memory IC 902.
  • the host interface 906 drives a shared address, data and control bus 908 connected to all the memory ICs in the module.
  • one memory IC could provide a host interface, for example a serial interface, and generate an internal memory bus, thus coupling only memory IC 902 to the host interface 906.
  • a modified memory IC 902 includes display control logic 903 which determines the percentage of the module 900 storage capacity in use, may generate additional display data and may provide display controller interface 910 that provides address, data and control signals or otherwise communicates (e.g. through a serial interface to display controller IC 912, and may optionally generate display controls high voltages signals 91 1 to display 914).
  • the display controller IC 912 may also generate the display control high voltages internally.
  • the high voltage generation circuitry may be the type of circuit well known in the art as a charge pump and it may use external passive or active component, or both passive and active components to generate high voltage. Such components may be on a per-chip or per-pin basis (e.g.
  • An advantage of using a separate display controller 912 is that a serial interface can be used on signals 910, minimizing the number of additional pins on modified memory IC 902.
  • a further advantage is that display controller IC 912 can drive a large number of signals to non-volatile display 914, supporting a more complex display than would be feasible if the display were driven directly from the display logic in IC 902.
  • Modified memory IC 902 may be configured at power up by strapping pins 918 so it is aware of whether it is coupled to a display controller IC 912, or coupled to a display 914 without an intervening display controller IC 912, as is display 812 in figure 8.
  • the display control logic 903 may optionally include prior knowledge of a file system used by the host to organize data stored in the module and may access that data in calculating the remaining available storage space for purposes of displaying the available storage space on display 914, as described previously. Note that, if a file system is present, the occurrence of a file erase may be indicated by a write operation to file table maintained by the host file system in the memory array which comprise memory ICs 902, 904 and any other memory ICs in the module, without any physical erasure of the file taking place.
  • the display control logic 903 may recognize the updating of these file tables based on its prior knowledge of the logical or physical location of the tables or by other means related to its prior knowledge of the file system's operation.
  • the display control logic 903 may include the use of non-volatile memory to allow the last calculated module storage availability data to be restored to the display control logic 903 at module 900 power-up or it may be recalculated, as would be the case when the calculation was based on file system data or prior knowledge of another method of data organization used in module 900.
  • the display control logic 903 in IC 902 has reserved pins 918 "strapped" to the positive power supply or to ground to indicate the total capacity of the module at the time it powers up.
  • the conventional manner of "strapping" to control an ICs power-up configuration is a technique well known in the art.
  • the module 900 receives commands, addresses, data, control signals and power over host interface 906.
  • the addressing of the memory ICs 902 904 is configured on the internal bus 908 (which is not connected to host interface 906 in an alternative embodiment noted above) so that only the appropriate memory IC in the memory array which comprises ICs 902 and 904 accepts the commands and data designated for it.
  • memory IC 902 which has been modified to include display control logic 903 also "snoops" (i.e. monitors) all write and erase operations to IC 904 and any other ICs in a module which comprises additional memory ICs up to 'n' ICs of the same type as 904 on the module.
  • the ability of the display control logic 903 to recognize write and erase commands to the module combined with its prior knowledge of the operation of the internal data organization which may include an optional file system, if present, and further combined with the strapping information encoded on pins 918 indicating the total capacity of the module to the display control logic 903, provides the necessary information to allow the display control logic 903 in memory IC 902 to generate the correct signals and commands to display controller IC 912 and optionally high voltages to display 914, resulting in display of memory capacity remaining in the module.
  • the information displayed on non- volatile display 914 is not limited to capacity information, and may include any of the previously discussed identification, status, error condition and other iconic displays, and numeric and graphical displays.
  • FIG. 10 shows an example of a flowchart of internal module logic or firmware running on a microprocessor to automatically update an on-module display at pre-determined times at the completion every write or erase operation. This updating is based on information available within the module, including the optional use of module data organization information or file system data if present in the module and a further optional provision for application-specific display formatting, for example, a module dedicated to or configured for music storage could light up a 'music note icon' and generate a display of available recording time in 'hours: minutes: seconds' format.
  • Step 1000 "Update display” is the entry point in the module control logic or firmware, referred to hereafter in this figure 10 description as module control logic. It is entered after any operation that changes the amount of available data storage or any operation that changes the value of any information that can be displayed.
  • a file erase in a module where the data storage is managed by a host based file system may only be recognizable to the module controller IC (for example 432 in figure 4) as a write to logical or physical regions of memory or logical or physical sectors containing the file system tables.
  • Other, non-file-system types of data organization may also signal changes in available capacity without physical erasure taking place.
  • the module control logic determines whether it has optionally been configured for operation with a particular file system or other method on the module, for example as discussed in relation to figure 7, or is in an optional default mode of operating on the basis of a file system or other method of which it has prior knowledge and such a default file system is actually detected.
  • step 1004. file system or other prior knowledge based operation is not detected, then control proceeds to step 1006.
  • step 1004 file system or other non-file system based available storage calculation
  • the available storage calculation is based on accessing file system or other appropriate information stored in the module.
  • the module control logic may detect a particular file system or detect another method in use, or it may have received a prior instruction to use a particular type of file system or data storage method, for example as described in relation to figure 7.
  • the module control logic has prior knowledge during the process of automatically updating the available storage calculation of both the structure and interpretation of the data in the data structures or file tables maintained by the file system or other storage method and the ability to locate them in the storage medium or memory array.
  • Such methods of location can include but are not limited to associating a particular logical address or addresses, or logical sector number or number, or physical storage or memory address or location with the file system data structures or file tables, or recognizing specifically defined bits at specified locations in the memory array. Note that the prior knowledge of the particular file system or data storage method is required only at the time of the calculation so that a microprocessor and firmware based module with updateable internal firmware could be updated to recognize and properly handle new file systems and data storage methods introduced after the module has been shipped.
  • the file system based storage calculation may take into account all relevant information in the file tables, such as regions of the storage medium or memory, or sectors in the case of storage devices presenting a disk interface which are marked bad or reserved. As noted earlier, such a calculation will always be correct as long as the integrity of the file system data structures or data tables is intact, permitting the use of popular utility programs as may be appropriate to the module type, such as "Norton Disk Doctor.” Any other internal information in the module relevant to the calculation may also be used. Calculations for non- file-system based storage methods may use all relevant data pertaining to the usage and availability of data storage. At the completion of this calculation, control is transferred to step 1008.
  • step 1006 internal memory management data based available storage calculation
  • step 1008 the module control logic tests whether the module has the capability of displaying information formatted in an application-specific manner, and if so. is it enabled? If the answer is no, control proceeds to step 1012. If the answer is yes (i.e.e.g. both supported and enabled), the logic or firmware proceeds to step 1010.
  • the module control logic looks in its non- volatile memory dedicated to storing display formatting information and determines which of the available formats to use. Note that, in a manner akin to the mechanism described above where support for new file systems can be added by updating the firmware in a module so capable support for additional application specific display formats may be included in such a firmware update. If the user has not specified a particular format, a default value, established in this dedicated non-volatile memory at module initialization is used. Based on the display format indicated by the above tests, the display data is appropriately formatted. This formatting is based not only on the available storage capacity, but also on other status and internal information available within the module, such as the presence of error conditions. Control then proceeds to step 1012.
  • step 1012 if the module is incapable of displaying multiple data formats, the values for display in the single format supported by that module are computed. Also in step 1012, the display itself is updated under control ofthe module control logic.
  • the display updating task is completed and the module control logic pertaining to the Automatic Display Update returns to its idle state.
  • Certain modules may operate as a memory storage module when inserted into a host device and may include additional functionality as well.
  • a module might contain a battery and implement a self-contained function such as a miniature camera or an audio recorder such as a dictation machine. In operation, those devices will typically store data into their internal memory or other storage medium such as a magnetic disk. Because these modules contain a data storage module interface intended to operate in a host device, it is also advantageous for the user to be aware of the status of the device, including its available memory capacity, identification data, or other status information.
  • Such a module may or may not contain a battery or external power connection, depending on the specific application.
  • FIG 11 shows a removable data storage module equipped with a display and self- contained dictation machine functionality referred to in the following discussion as dictation module 1100.
  • Dictation module 1100 contains memory ICs 1 102 which are coupled to main logic IC 11 10 via internal memory bus 1 106 via memory power, address, data and control signals 1108.
  • Host interface 1004 permits dictation module 1 100 to operate as a conventional removable data storage module and may be a standards compatible host interface to permit the dictation module 1100 to operate with a wide variety of hosts supporting standardized removable data storage modules.
  • Main logic IC 11 10 includes the digital and analog circuitry comprising a self-contained dictation machine and also contains the data storage module controller logic 1130, the interface to the internal memory bus 1106, the display interface logic coupled to display signals 1112, a low-level analog signal interface coupled to microphone 1116 via microphone interconnect lines 11 18, an interface to user controls 1122 via user control signals 1124 and an output connection to drive miniature loudspeaker 1128 via speaker signals 1126.
  • the user controls typically a potentiometer (volume control) or digital encoding switch, and separate dictation function specific switches such as 'record' and 'play,' permit the user to operate the dictation module 1100 in a self-contained manner.
  • a user control may be provided to permit operation of the external display to permit storage capacity and other data storage module information to be displayed if the display is of a volatile type, requiring power to provide a visible indication.
  • power is provided by battery 1120.
  • a volatile or non-volatile display 11 14 is coupled to main logic IC 1110 via display interface signals 1 112. Note that since a battery is present in this embodiment, it is not necessary to use a non-volatile display, although the use of a non-volatile display would permit the display to be visible at all time without imposing any battery drain. This display may provide the user with information tailored to the particular application (e.g.
  • display 1114 also includes information pertaining to one or more of the module's remaining storage capacity, module identity, and module status information. Operation as a removable memory storage module is governed by the data storage module controller logic 1130 contained within the main logic IC 1110.
  • a digital voice recorder will be familiar to those skilled in the art, so the following description of operation will focus only on the areas of novelty related to the invention.
  • the user will operate user controls 1 122 and speak or enter audio into the dictation module 1100 via microphone 1 116. Audio playback is achieved through miniature loudspeaker 1128.
  • the display 1 1 14 may provide information to the user useful in this mode of self-contained operation, as noted above.
  • the user inserts the removable storage dictation module 1 100 into a host device such as a camera or PC.
  • the storage module controller logic 1 130 interacting with the host device and operating in the manner of figures 4, 5, 6, 7 and 10 automatically and in the user initiated manner described for those cases of updating, updates the elements of display 8 pertaining to one of more of remaining storage capacity information, identifying information, and status information, including graphical, alpha-numeric text, and iconic displays.
  • the display of available storage capacity may optionally involve the use of file system information stored within the dictation module 1100, or the use of other, non- file-system based methods of organizing the data, known to the controller logic 1130.

Abstract

There is provided a removable data storage module (10) containing a display (16) which may be non-volatile. The display (16) is viewable when the module (10) is removed from a host device (402). The purpose of the display (16) is to provide information to a user about a current status of the module (10). Such a display permits a user to select a data storage module (10) for use based on knowledge of the remaining available space, identification information related to the module's contents, or on the basis of other displayed information, such as the presence of error conditions. The display is automatically updated by the logic or microprocessor and firmware resident in the module (10) after any operation that changes the amount of available storage space, or causes a change in any condition that can be displayed.

Description

Specification
REMOVABLE DATA STORAGE MODULE INCORPORATING A DISPLAY
BACKGROUND OF THE INVENTION
Referenced to Prior Application
This application claims the benefit of U.S. Provisional Application 60/146,451, filed July 29, 1999, and entitled "Removable Data Storage Module Incorporating a Display." Field of the Invention This invention relates to removable data storage devices solid-state, optical, and magnetic, including those that use non-volatile semiconductor memory.
Description of the Prior Art
Removable data storage modules of many types have become very popular in computer, consumer electronics, and commercial applications. These modules are commonly used to store images from digital cameras, audio, and many other types of digital data including e-mail and other computer files. Many of these modules conform to recognized industry standards, such as CompactFlash. Personal Computer Memory Card International Association (PCMCIA), Solid State Floppy Disk (SSFDD), Multimedia Cards. Memory Sticks from Sony Electronics (San Jose, California) and others, promoting interchange among a broad range of products, while others are custom or application specific in nature. Some of these removable data storage modules contain an on-module controller device in addition to memory Integrated Circuits (ICs) and magnetic or optical disk media and support circuitry, while others are comprised only of one or more memory chips. These modules use a variety of interfaces, including parallel and serial interfaces, and in some cases implement command driven protocols such as the AT Attachment (ATA) disk drive protocol, where AT refers to IBM's "Advanced Technology" interface bus introduced in the 286 generation Personal Computer (PC). Furthermore, the logical organization of data in the module, which may be a sector-based, such as used in disk drives or disk drive emulators, may be determined by a file system. Such file systems may be proprietary or standardized. An example of a standardized file system is the widely implemented Microsoft "FAT file system" (File Allocation Table)..
In prior art systems, if the user wishes to know the available storage space, the identity of the module, or other module status information without inserting the module into a host device such as a camera or computer, the user had to read it from a display furnished by the camera, computer or other host device. After reading this information, the user must resort to handwriting the information on a label after removing the module, which is a crude and unreliable method at best. United States Patent Numer 5,481,303 issued to Ryo Uehara and assigned to Nikon Corporation (Tokyo, Japan) entitled ELECTRONIC STILL CAMERA WITH CAPACITY WARNING INDICATOR AND METHOD discloses an example of a host device. The electronic still camera calculates and displays the available capacity and number of frames remaining that may be photographed.
However, for a user with multiple modules, such as a photographer with multiple image storage modules; it has been impossible to determine by simply looking at the module outside of a host device, how much of its storage capacity is still available, what is stored on the module or other module status information. This is problematic, for example, for a photographer who needs to quickly take a photograph, and must replace a "full" module in the camera with a module that has available storage space. Under this type of circumstance, inserting each module into a camera or other host device to obtain a readout of its free space or identity is not practical.
Historically, it has not been possible to readily determine the available storage capacity (i.e. the amount of non-volatile memory space available and other status information) among a plurality of similar looking modules simply by looking at the modules. Thus, the need arises, for diverse applications that use data storage modules, to have the ability to readily select the appropriate module based on observing module status information without having to insert the module into another device.
SUMMARY OF THE INVENTION
In accordance with the present invention, there is provided a removable data storage module containing a display which may be non-volatile. The display is viewable when the module is removed from the host device or viewed through a window on the host device. The purpose of the display is to provide information to the user about the current status of the module. Such a display permits a user to select a data storage module for use based on knowledge of the remaining available storage space, identifying information related to the module's contents, or on the basis of other displayed information such as the presence of error conditions. The display is automatically updated after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed. Optionally, prior knowledge ofthe organization of data on the module, such as the structure and operation of a file system maintained by a host device, may be used in generating the display of available module storage capacity and the display of detected error conditions. Optionally, certain aspects of the appearance of, and contents of the display, and information used internally by the module related to the display, can be updated on modules with the appropriate capabilities through user initiated actions on hosts equipped for such updating.
Additional features and advantages of the invention will be readily apparent from the specification and from the drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is an illustration an example of components of a controller-equipped nonvolatile memory module in accordance with an embodiment of the present invention for providing numerical and graphic storage capacity information, dot-matrix identification information, and iconic status information.
Figure 2 is a detailed view of the display 16 of Fig. 1 indicating numerical and graphic storage capacity, dot-matrix identification information, and iconic status information display regions. Figure 3 is an illustration of a removable magnetic disk drive including a non- volatile display in accordance with an embodiment ofthe present invention.
Figure 4 is a block diagram of a typical flash or EEPROM non-volatile memory module including a controller device and a non-volatile display coupled to the controller device in accordance with an embodiment ofthe present invention. Figure 5 is a block diagram of a non-volatile memory module having a non-volatile text and graphics display operated through a display controller device in accordance with an embodiment ofthe present invention.
Figure 6 is a block diagram of a personal computer (PC) including a reader/writer module for updating the user definable portion of the display 16 of Fig. 1, as well as updating display formatting on a module capable of displaying data in multiple, application specific formats.
Figure 7 is a flowchart illustrating the sequence of actions performed by a PC and nonvolatile memory module including a display in accordance with an embodiment of the present invention in a user-initiated update of the display or an update of the display formatting on a module capable of displaying data in multiple, application specific formats.
Figure 8 is a block diagram of a non-volatile memory module using one or more nonvolatile memory chips having a non-volatile display driven from a controller device.
Figure 9 is a block diagram of an alternative non-volatile memory module using one or more non-volatile memory ICs having a non-volatile display driven from a modified memory IC through a display controller IC.
Figure 10 is a flowchart of an example of internal module firmware or logic to automatically update an on-module display, including computing available remaining storage space for modules using file systems and not using file systems. Also included is an optional provision for application-specific display generation in accordance with an embodiment of the present invention.
Figure 11 is a block diagram illustrating a removable data storage module with self- contained functionality, a dictation module, also capable of operating as a removable data storage module, equipped with a display that can be volatile or nonvolatile. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The updating of display information which changes dynamically is performed automatically by the logic or microprocessor and firmware resident in the module. Optionally, prior knowledge of the structure and organization of data stored in the module, such as the operation of a file system maintained by a host device—which organizes the data on the module— may be used in generating the display of available module storage capacity and the display of detected error conditions. This takes place with no intervention or action on the part of the host. The automatic display update takes place after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed, and thus permits modules so equipped to operate in prior art host devices without modification to them. The module identifying information, format of the display, and selection of optional file system to monitor and interpret for remaining capacity calculations are optionally alterable through user initiated actions taken on a properly equipped host device.
Note that modules may be equipped with logic appropriate to their structure, memory organization and the manner or manners of usage of their storage, for the purpose of automatically updating the display of remaining capacity, irrespective of whether a file system is used.
It is noteworthy that the lack of intervention in display updating by a host device permits the display equipped modules disclosed herein to operate with prior art host devices. However, it is also possible for future generations of host devices to generate commands and to control the graphics, formatting and calculated values displayed by future generations of data storage modules, and even the actual display updating. Such a data storage module's display can be customized to the application and technical requirements and capabilities of the particular host device by the host device itself. This can be accomplished through the use of an Application Programming Interface (API) and supporting hardware that can be developed and potentially standardized for such a purpose. Such an API can be designed so that its operational capability in a host device does not to interfere with the operation of prior art modules or with the display equipped modules disclosed herein. Furthermore, modules designed to respond to this API can be designed to retain compatibility with prior art host devices, which have no knowledge of this API. Such an API can be used to establish the desired display parameters, in a case where display updates are carried out automatically by the module, or to permit the host device to control the display updating.
Returning to the discussion of the preferred embodiments, the calculation of the updated display information is accomplished on one of the four following bases: (1) If data is explicitly written, the indicated available capacity is reduced by an amount corresponding to the amount of data written. (2) If data is explicitly erased, the indicated available capacity is increased by an amount corresponding to the amount of data erased. (3) In the case of a file structured module; if a file system erasure or other operation takes place. fFor example, in a DOS FAT file system when a "file erase" occurs, the indicated available capacity is updated in an amount corresponding to the size of the file erased, even though physical erasure or overwriting of the storage media in the module may not have taken place. Examples of this include a data storage module which is a rotating magnetic disk drive, and a module which emulates a disk drive using semiconductor memory. Note that a file system may also be present in a device that is not a disk drives or disk drive emulator. (4) In the case of a data storage module which does not explicitly erase memory to indicate its availability for reuse, or does not implement a file system managed by the host device, the indication of available capacity is determined by logic in the module having knowledge of the memory management method used. For example, reserved flag bits associated with blocks of memory or memory regions, or other methods that the module logic has prior knowledge of can be used to generate the correct indication of available storage capacity.
In the case of a file structured module, an update to the display resulting from a file system erasure is generated by the module's internal logic or microprocessor and firmware based on the module's incorporating prior-knowledge of the file system in its design, and its ability to "snoop," (e.g. monitor file system operations, and correctly interpret them). Such an approach is highly robust, inasmuch as it allows disk or file system utilities to operate on a file structured data storage module without destroying the integrity ofthe displayed information.
In all cases, the automatic computation and display updating operation is undertaken by the logic or microprocessor and firmware in the module after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed. With respect to the display itself, such a display can range from a simple segmented bar-graph, coarsely indicating available storage capacity, to a segmented numerical display or dot-matrix numerical or text characters, to a graphical display, including application-specific and module-specific icons and display information. The display is non-volatile and reflective in nature, such as Cholesteric LCD or Ferroelectric display technology, so no power is required to maintain the display. Such a non-volatile display may be visible continuously. The display may be monochromatic or color.
The display is coupled to and controlled by the electronics inside the removable module. The information displayed may come from a microprocessor or logic within the module, for example the remaining available storage capacity and other status information pertaining to a module, or it may originate in an external device, for example, module identifying information stored into the module after manual data entry into a device capable of accepting and subsequently storing such user-entered information.
The display sub-assembly may optionally incorporate drive electronics, or the display may be directly coupled to a semiconductor device, such as a module controller IC, or a memory IC that has been customized to include an appropriate interface in the module which also performs other functions. It is a feature of the invention that, in an implementation where the display assembly incorporates drive electronics, multiple versions of displays that use a common interface to a module controller IC or other semiconductor device in the module can be used. This allows a single version of a module controller to interface to multiple designs of displays that are application specific. If the particular display technology requires high voltages to turn the display elements "on" and "off," such voltages may be generated by the module controller IC itself, including the connection of external circuitry to the controller IC including, for example, resistors, capacitors, diodes and transistors or other passive and active components, or in conjunction with a power generation IC or ICs and the power generation ICs associated components. A well known method in the art for generating high voltages using ICs is using a charge pump circuit. Such a circuit may be associated with power supply voltage generation or with driving the outputs of a plurality of pins on an IC, for example, the module controller IC, to high voltages. In the preferred embodiment of the invention, additional functionality relating to display control is built into an IC already present in prior art data storage modules. Examples include a solid-state disk emulation or rotating disk drive module equipped with a display capable module-controller IC, any other controller-equipped memory module, including those with serial interfaces, or a memory module which comprises one or more memory chips, with one memory chip modified to include additional logic and outputs to calculate the information for, and to drive or interface to a display.
Certain information on the display such as available storage space or the presence of error conditions is automatically updated when the module is in use, either in a portable device such as a digital camera, music recorder, or portable computer, or in a stationary device such as a desktop computer. The display equipped storage module includes hardware logic or internal software that allows it to update certain regions of the display independently of any display-related action by the host device, when specific events, internal to the module, take place. For example, the remaining storage capacity and status indications are updated after any operation that changes the amount of available storage, or causes a change in any condition that can be displayed. By updating certain regions of the display automatically, in a manner "invisible" to the host device, and requiring no intervention by the host device to cause the updating, modules equipped with the display are able to provide remaining storage capacity information on an updated and continuous basis and module status information for users while operating in host device designed for prior art modules.
Certain other information on the display, included in the module status information, such as module identifying information, can only be modified through a deliberate action of the user. That optional portion of the display can only be altered by appropriate external commands or other signals, which are provided along with the updated information. The mechanism of updating this information does not interfere with the operation of the module as a data storage device, and in particular does not interfere with the operation of a module in prior art host devices designed for prior art modules with no display capability.
The display appearing on the data storage module may be application specific in nature. Due to the evolving nature of applications for removable data storage modules, in an environment of relatively stable standards for the modules themselves, it is a feature of the invention that support for new file systems and application specific displays may be retrofitted to a display equipped module that uses an internal microprocessor and updateable (e.g. uploadable) firmware.
In a typical operating scenario in accordance with the present invention, a storage module including a display operates in a host device that need have no prior knowledge of the presence of the display. The display is updated automatically using information that is available within the module (e.g. available storage capacity, detection of internal error conditions) and optionally information pertaining to a file system that may be used to organize the storage of data files in the module. The content of such file system information, if present, is maintained by file system software running on the host device. The file system's data structures, tables and other information pertaining to what information is stored in particular memory regions or sectors (in the case of a disk or disk emulating module) of the module are know to the logic or microprocessor and firmware in the module. This permits modules complying with existing hardware, and optionally file system industry standards, to operate in the installed base of host devices, including mobile and stationary host devices.
It is noteworthy that information obtained from the file system in a module must be accurate, or "valid." in order for the resulting display to be correct. The accuracy or validity of a file system refers to the correctness and integrity or assurance of reliability that the file system has in reporting how the storage in the module is used and how much is available. In some cases, when the accuracy is compromised or "corrupted." it is necessary to repair the file system using special software, a popular example being "Norton Disk Doctor." This happens frequently with PCs, for example. Repair software of that type reconstructs the file tables in the module when they have been damaged.
Additionally, in some modules, the memory used for data storage is prone to "wear out" if the same part of memory is used over and over (e.g. stores data, has its data erased, and stores data again too many times). If the use of the memory is spread out over all of the available memory, a term referred to as "wear leveling," it evens or "levels" the amount of wear on all parts of the memory, making the memory last longer. A simple analogy would be using the same spot on a cutting board over and over, versus spreading out the use over the entire surface to make it last longer. In some data storage modules, the controller inside the module accomplishes wear leveling by "moving files around." That is useful if a large file stored in the module is always read, like a book or a game program, but is never changed, while other areas are frequently being erased and rewritten, like e-mails or digital pictures. Continuing the earlier analogy, that is like covering part of the cutting board with a large book, which protects that part, but concentrates all the wear on the remaining part. Moving the file around is like moving the book around to expose all of the board's surface at different times. When a large, unchanging file is moved, the file system tables are updated so the host will know where to find the file.
In "normal" operation, the file system tables would never be modified except by the host device when it writes or erases a file. However, under these circumstances, repair, and wear leveling, and possibly other circumstances, these tables can be modified for the beneficial reasons described.
Thus, it is a feature of the invention, for modules where a file system is used to generate the available storage capacity display, that disk repair software and memory wear leveling that results in changes to the file tables do not interfere with the ability of the present invention to generate a correct display of remaining storage. This is true even after file system repair, wear leveling or other actions resulting in changes to the file tables have been performed, as long as those actions do not damage the tables' integrity or "correctness." Thus, in modules where a file system is present and is used, as long as the file tables accurately reflect the use of the data storage memory or disk media in the module (e.g. are said to be "valid") the invention operates correctly.
It is further noteworthy that both standardized and proprietary file systems can be used for the purpose of generating displays of available storage capacity, and that a single module may support multiple versions and types of file systems, and may detect the type in use using its internal logic or the file system may be selected externally in manner similar to the manner described for selecting among multiple display formats in figure 7. Thus, if used, the use of the optional file system data in computing the automatic display update is not limited to a single or specific file system. Other aspects of the display also require user-initiated operations, such as specifying the module identifying information to be displayed, or the particular format ofthe display if the module has an application-specific display capability. Referring to figure 1, an exploded view of a non-volatile memory module 10. In one embodiment of the present invention, the non-volatile memory module 10 is a "Compact Flash" style of non-volatile (or flash) memory module, a type of data storage module. This module contains a user visible, non-volatile display 16. This assembly is also representative of the way that PCMCIA types of memory modules are assembled. The components shown are as follows:
The top cover 12, typically constructed of thin sheet steel, has a hole 38 therein causing information from the display 16 to be visible when the module is assembled and operational. The hole 38 may be covered with a display glass or clear plastic (not shown) or any other material that allows the display information to be visible to the naked eye. Top cover 12 may also be constructed of clear plastic, with pain or other opaque marking applied except in the region where the display 16 is located. In such a case, hole 38 need not be present since the display can be seen through the transparent cover 12.
A thin piece of sheet metal 14 holds the display securely to the module's circuit board 30. It maintains compression of the conductive elastomer strips 20, ensuring an electrical connection between display 16 and circuit board 30. Note that many methods and substrates are commonly known in the art to electrically connect a display such as 16 to a circuit board such as 30, and the circuit board is just one example. The display 16 can also be attached directly to circuit board 30, for example by soldering or conductive adhesive. Also note that if top cover 12 is a molded part, it may perform the same locating and retention function for display 16 as does sheet metal 14.
The non- volatile display assembly 16 is characterized by its ability to retain the visible display content with no power applied to the display. Typically this type of display 16 uses Cholesteric LCD or Ferroelectric display technology. The display 16 may require a high voltage to alter the displayed information, typically 40 or more Volts for Cholesteric LCDs, for example, to be applied to it in order to change the appearance of the display, e.g. turn an element on the display 16 on or off. Displays having other attributes, such as variations in shapes, sizes, the use of customized graphical designs, and other interconnection methods may be deployed without departing from the scope and spirit of the present invention. A narrowly dimensioned non-volatile display, for example, could be configured for installation in one of the short edges of a module housing 34, making its connection through a clearance slot molded in the housing and mating with a connector on the circuit board's 30 surface. The display assembly 16 consists of the display glass with patterned contacts on the glass's bottom surface, optionally, as in this example, mounted on a circuit board, with or without an optional display controller IC 22 as discussed below. The display 16 is designed to display through the hole 38 or a transparent window in the top cover 12, one or more of the module's capacity information (numeric and/or graphical), text identification information and other status information such as the presence of an error condition.
The bottom view 18 of the display assembly 16 is shown including contacts for coupling the display 16 to the module's circuit board 30 in area 24. The connection is made by flexible conductive elastomer strips 20 sandwiched in between the display assembly 16 and circuit board 30.
The flexible conductive elastomer strips 20 exemplify a common way to couple the module's circuit board 30 and the display 16. Note that the display 16 may comprise glass only,or may be mounted on a circuit board and may optionally include display controller IC 22. The flexible conductive elastomer strips 20 are, essentially, thin vertical wires, insulated from each other, and embedded in soft rubber. When sandwiched between 2 circuit boards with the same pattern of connecting pads, they will connect the pads that align with each other through the short wires in the strip. A popular brand of this material is known to those skilled in the art as "Zebra Strip."
An optional display controller IC 22 is mounted on the back of display assembly 16. In the case of simpler displays, the IC 22 need not be present, in which case the LCD glass may be electrically coupled to an IC on the circuit board 30, such as module controller IC 32. If IC 22 is present, IC 22 is electrically coupled to the display 16. For example, a dot matrix display capable of displaying 10 characters in a 5 x 7 dot pattern would require (7 rows) + (10 x 5 columns) = 57 pins plus control and power supply signals for just the alpha-numeric character part. Such an IC 22 can accept its input serially, minimizing pin count on the module controller IC 32. Thus, such an IC 22 permits the module controller IC 32 to devote a minimum number of pins to display control. This also allows many different types of displays 16 to be used with a single module controller IC 32. This display controller IC 22 may also contain logic in support of graphics display or text generation, as well as voltage generation and other display support circuitry as required by the specific data displayed, artistic design and technology of the display 16. Note also that if display 16 requires high voltage generation, such generation may be performed by the module main controller IC 32, a display controller IC 22 or other IC, using additional passive and active components on an IC or a per-pin basis, without departing from the scope and spirit of the present invention.
The region 24 of the module's circuit board 30 that contains the same pattern of electrical contacts as the bottom of display assembly 16 as shown in bottom view 18. In operation, these contacts are electrically coupled to display 16 through conductive elastomer strips 20.
The connector 26 couples the module 10 to a host device when the module is in use as a data storage device or when its configuration is being altered by a host device equipped to make such alterations, such as a user initiated update to the optional identifying information display (detail in figure 2), or during other operations described in figure 6 and elsewhere. The non-volatile flash or EEPROM memory ICs 28, store digital information programmed into them without the requirement for battery or other power sources.
The circuit board 30 provides a substrate for the electrical coupling among the components of the memory module mounted to the circuit board 30, including the connector 26, the module controller IC 32 and its supporting circuitry, the display 16, or optionally the display controller IC 22 if used. Electrical coupling could also be achieved by other means known in the art without departing from the sprit and scope of the present invention. These means may include tape automated bonding bare die bonding and other surface mounting method commonly known in the art.
The module controller IC 32 contains the logic that controls the internal operation of the module as well as communication with the host device via connector 26. This controller receives and processes commands and data from the host device via connector 26, and it controls the operation of the memory ICs 28 in the module. It may include a microprocessor and firmware. It also controls updating and configuration of the display 16 in a manner transparent (e.g. invisible) to the host, which is to say that the display 16 is automatically updated after each data writing or erasing operation to the module is completed. This may involve a series of operations including internal calculations by logic or microprocessor based on memory usage, file system information, and other internally available information, and the changing of graphical, numeric and iconic images on the display 16. In this manner, any time that the module is removed by the user, its current status is displayed on display 16. Because no knowledge of the display capability need reside in the host, this module can operate in existing host devices that are designed prior to the availability of modules equipped with a display 16. The controller IC 32 is also responsive to specific commands, or decodes specific addresses sent by a host device, to permit user initiated updating of portions of the display 16 such as identification information seen in the display 16, the details of which are shown in figure 2. The controller IC 32 may also be responsive to commands from the host device to arrange and format the appearance and content of the display 16 in a manner appropriate to a particular application or host product, for example a camera or a digital music player.
The plastic frame 34 provides rigidity and mechanical integrity to the assembled module 10. The bottom cover 36 is typically constructed of the same thin sheet metal as the top cover 12. hHowever it may also be constructed of plastic or other material.
38 is a cutout in the top surface of the module top cover 12 that permits viewing the display when the module is assembled. As noted previously, such a cutout may not be required if top cover 12 is made from transparent material such as clear plastic. All electrical connections among the devices mounted to the circuit board 30 are made through circuit board 30. The host connector 26 is coupled to module controller IC 32. Module controller IC 32 is coupled to nonvolatile memory ICs 28 and to display 16 through conductive elastomer strips 20.
One of ordinary skill in the art will be familiar with the general operation of controller- equipped memory modules 10 used for data storage. Frequently such modules use the "PCMCIA/ATA" disk drive command-driven protocol, whereby the host device sends commands and data to the module 10 as if it were a disk drive, and the controller IC 32 within the module 10 manages the process of storing, reading out the requested data depending on the command, and erasing portions of the memories 28 if and when required. Controller- based, command-driven modules are not limited to the ATA command set nor to a parallel interface. For example, a module 10 could also use a serial interface and a proprietary command protocol. In either case, a key function of the on-module controller IC 32 is the management of the memory in the module. Thus controller 32 is aware of the total available memory and the amount currently in use, and may optionally also be aware of the particulars of a file system that is used in the particular application where the module 10 is deployed, as well as being aware of other pertinent status information that is to be displayed or used in computing and formatting data for viewing on display 16, such as error conditions. The information pertaining to the amount of storage available is formatted by the controller for display, and such formatting may be application specific (e.g. a music storage module can display available recording time rather than percentage of raw capacity available).
The operation of the display 16 in the module 10 of figure 1 proceeds as follows: The host device issues a command to store (i.e.. write) data into the memory 28, erase data from the memory 28 on the module, or to erase a file from module 10 whose storage or memory 28 utilization is also being managed by a host based file system. In the file system case, the resulting action of a file erasure may only be manifest in changes to the contents of file tables which are rewritten to regions or sectors of the memory 28 in the module (e.g. no physical erasure of memory 28 need take place). File systems of this nature are frequently used with most magnetic disk drives, where no erasure takes place, and thus are well known to those of ordinary skill in the art. Furthermore, those skilled in the art will recognize, in the case of PCs using the FAT file system and its variants, that "erased" files are still present, and in fact can be recovered with various disk utility programs such as the well known "Norton Utilities." Thus, a file system erase appears to module controller 32 to be a write to a recognized logical or physical region ofthe memory 28 in the module 10, which is recognized as such by module controller 32. In the case of a both a file write to module 10 and a data write to a nonfile structured module 10, the write command is followed by the data to be written. The command is processed by the module controller 32, and at the end of the write or erase operation, the module controller 32 calculates the values to be displayed on display 16, on the basis of internal and optionally file system information, and formats information in a form appropriate to the display 16, and transfers the display values and other displayable information to the display 16. As noted in the introduction to the discussion of figures 6, and in more detail in the discussion of figure 10, the ability to update the module firmware in a microprocessor equipped module with updateable firmware allows new file systems and new application- specific displays to be retrofitted to a display equipped module 10. This transfer of the displayable information involves a series of steps including controlling the display 16 power supply voltage and transferring the data using appropriate control signals. If the module controller 32 is coupled to the display, it must also control the signal timing. If the module controller is coupled to a display controller IC 22, it will send instructions and data to the display controller IC 22, which will in-turn apply the appropriate signals to the display 16. The module controller 32 may also be responsive to user-initiated commands to alter the module identification information display, per the detail in figure 2, or the internal display formatting mode, in a manner detailed in figure 6.
The display 16 itself can be constructed of any available non-volatile display technology that can be handled by the electrical capabilities of the module 10 operating in a host device equipped for the non-display enabled modules (e.g. excessive power, beyond that normally used for that type of module is not acceptable). The display 16 must also conform to the dimensional requirements of the module 10, particularly with respect to thickness. At the time of this writing, Cholesteric LCDs have been commercialized, and Ferro-electric display technology that may prove suitable has been demonstrated.
Figure 2 shows the top view of display assembly 16 of figure 1 in detail. In figure 2, the display assembly top view 200 is shown to comprise the optional substrate 202, the display glass 204, said display glass 204 containing optional visible display elements 206, 208, 210 and 212 described below, not all of which are required to be present. The display glass 204 is attached and electrically coupled to optional substrate 202, if the substrate 202 is present. Display glass 204 may also be mounted to the module's substrate or circuit board 30 in figure 1 in the manner described relative to figure 1. The display glass 204 has patterned contacts on its bottom surface. The display substrate 202, if used, has contacts on its bottom surface, visible in the display assembly 16 bottom view 18 in figure 1. The bottom surface contacts ofthe display glass 204 or substrate 202 are coupled to the contacts ofthe top surface of the module circuit board 30 as shown in figure 1. Display icon 206 is an example of an iconic display, iln this case, an icon indicating the presence of an error condition is shown. In operation, this would serve to warn the user that there is an internal problem with the module 10. Alternatively, an icon 206 can indicate an application-specific display mode, for example a musical note to indicate that the display is indicating remaining available recording time in hours, minutes and seconds. 208 is a graphic representation of the remaining display capacity, in this example a stacked bar-graph. 210 is a numeric display, in this example the digits are made of the common 7-segment type. 212 is a dot matrix alpha-numeric display, displaying module identifying information.
The applicability of this display is not limited to solid-state storage devices. A removable magnetic disk drive may also contain such a display, for the same purposes as previously described. Compact Flash, and PCMCIA type I, II and III hard disks have been demonstrated or are commercially available at the time of this writing.
Figure 3 shows a removable magnetic disk drive 300 equipped with a non- volatile display 308. Such a device contains a rotating magnetic storage medium 302 and associated control circuitry well known in the art, including PCMCIA/ATA removable disk drives. In this device, the disk drive 300 contains a controller IC within the drive that is either coupled to the non-volatile display 308, or it is coupled to a display controller IC, in the same manner as in figure 1. The disk drive 300 is removably coupled to the host device via electrical connector 304. After completion of any operation that changes the amount of available storage, or causes a change in any condition that can be displayed, which may include disk "formatting" in the manner well known in the art, the display 308 is automatically updated by the disk drive controller IC, independently of any action by the host device. Prior knowledge of data organization or file system information may optionally be used by the logic or microprocessor and firmware in the module in the same manner as in figure 1. Such prior knowledge may be required, for example, in cases where the disk drive's data organization is managed by host resident file system software. The controller in disk drive 300 is also responsive to user-initiated commands to alter the disk drive 300 identification information display 212, or the display format including iconic display 206, in a manner detailed in figure 6.
The details of the operation of a display 200 within a removable data storage module 10 is described in figures 4 and 5 and in the following discussion. Figure 4 shows a typical non-volatile memory module 400 equipped with a nonvolatile display 426 that is coupled to a module controller IC 432. The host device 402 is removably coupled to the module by connector 404. Memory module controller main logic 406 contains the command processing and memory management logic, and may include a microprocessor and firmware. It operates in a manner familiar to one of ordinary skill in the art to communicate with the host device 402 and read and write data to and from the nonvolatile memory array 424, erase data from memory array 424 as required, and to handle error detection and correction and other aspects of the particular host interface protocol such as PCMCIA/ATA. Host interface 408 handles the electrical signaling requirements of the particular host interface, whether serial or parallel, and communicates with the controller main logic 406 via an internal bi-directional bus 414. Bi-directional memory interface 410 is coupled to drivers 412 which provide the correct electrical drive and reception characteristics for the memory array 424, which comprise a plurality of memory chips 422. The operation of a memory array 424 and its address decoding and control requirements are conventional and will be familiar to one of ordinary skill in the art. Display interface 416 is coupled to the nonvolatile display 426 via electrical data and control signals 428. The display interface is equipped with output drivers that, operating under control of the controller main logic 406 act to drive the display 426 inputs with the correct voltage, waveforms and timing to permit the elements of the display 426 to be turned on or off as directed by the controller main logic 406. Display interface logic 416 operates in conjunction with display voltage generation block 418, also under control of controller main logic 406 to apply the proper generated voltages to nonvolatile display 426 via electrical signal lines 430. Note that, as previously mentioned, the display voltage generation may include a separate voltage generator IC, or the addition of passive or active components, or passive and active components on per-chip basis or a per-pin basis. Such a high voltage generating circuit may use a circuit known in the art as a charge pump. Non-volatile display 426, of which an example is shown in figure 2 as 200, is capable of displaying one or more of numerical or graphic storage capacity information, dot-matrix identification information, or iconic status information in one or more display regions. This display 426 is responsive to the display interface data and control signals 428 and voltages applied via electrical signal lines 430 to alter its displayed information under control of controller main logic 406.
One of ordinary skill in the art will be familiar with the general operation of controller- equipped memory modules 400 used for data storage. Frequently such modules use the "PCMCIA/ ATA" disk drive command-driven protocol, whereby the host sends commands and data to the module as if it were a disk drive, and the module controller IC 432 within the module manages the process of storing and reading requested data depending on the command and erasing portions of memory array 424 as required. Controller-based, command-driven modules 400 are not limited to the ATA command set, nor to a parallel interface. For example, such a module could also use a serial interface and a proprietary command protocol. In either case, a key function of the module controller IC 432 is the management of the memory in the module, and thus it is aware of the total available memory, and the amount currently in use, as well as other pertinent status information that is to be displayed such as error conditions. Module controller IC 432 may optionally be aware of the method used to organize the data stored in the module 400, such as a file system that is used by the host to logically manage the data storage in module 400. This file system information, or other organization information, may optionally be used by module controller IC 432 to compute the available memory. It is characteristic of file systems that a file erasure may take place by simply rewriting the file tables, in a logical or physical region of memory array 424 that is identifiable to module controller IC 432. In this case, a file erasure may be noted, and a display indication of an increase in the available memory for the user of module 400 may take place without any physical erasure of memory array 424 taking place. Such file systems are frequently used with magnetic disk drives and are well known in the art. Other organizations of the stored data may also signal the availability of memory before or after it is actually erased, and those methods can also be incorporated into the remaining storage calculation performed by module controller IC 432. The calculated information pertaining to the amount of storage available is then formatted by the controller for viewing on display 426. Such formatting may be application specifice.g. a music storage module can display available recording time rather than percentage of raw capacity available, and an indication that the display is operating in an application-specific mode may be indicated by an icon such as 206 in figure 2.
The operation of the display 426 in the module of figure 4 proceeds as follows: Upon the completion of any operation that changes the amount of available storage or causes a change in any condition that can be displayed, the module controller IC 432 calculates and updates the display of available storage or other conditions that can be displayed. An example of this for a module 400 which optionally contains a file system is as follows: The host device issues a command to store (e.g. write) data into the memory array 424 on the module 400, erase data from the memory array 424 on the module 400, or to perform a file erase of data on the module 400, which, as previously noted, may not cause any physical erasure to take place in memory array 424, and may be recognizable to module controller IC 432 only as a write to regions of memory array 424 that module controller IC 432 recognizes as containing file tables, by their logical or physical locations within memory array 424 or other means specific to the particular file system. In the case of a write, the command to write is followed by the data to be written. The command is processed by the controller main logic 406, and at the end of the data storage, file system table writing or memory erasure operation, the controller main logic 406 calculates and formats information in a form appropriate to the display 426 attached to it, and transfers the display information to the display 426. The calculation may rely on prior knowledge of the particular file system in use in module 400, or on the presence of another data organization method not involving a file system. Module 400 may be capable of supporting more than one file system, in which case controller main logic 406 may detect the presence of a particular file system or it may select the appropriate logic for a particular file system based on a previously programmed value stored in a non-volatile memory available to module controller IC 432, programmed into module 400 in the manner shown in figure 6. The transfer of data to display 426 involves a series of steps including controlling the display 426 power supply voltage via display voltage generation block 418 and transferring the data to display interface 416 via bi-directional bus 414. Display interface 416 and display voltage generation block 418 then operate under control of controller main logic 406 to alter the appropriate elements of non-volatile display 426, turning elements on or off as required. The module controller IC 432 may also be responsive to user-initiated commands to alter the module identification information display, the display format or the selected file system, in a manner detailed in figure 6.
Figure 5 shows a typical non- volatile memory module 500 equipped with a nonvolatile display 526 that is coupled to a display controller IC 532. Display controller IC 532 is coupled to Module controller IC 536. 502 is the host device, which is removably coupled to the module by connector 504. Memory module controller main logic 506 contains the command processing and memory management logic, and may include a microprocessor and firmware. It operates in a manner familiar to one of ordinary skill in the art to communicate with the host device 502 and read data from and write data to the non-volatile memory array 524. erase data from memory array 524 as required, and to handle error detection/correction and other aspects of the particular host interface protocol such as PCMCIA/ATA. Note that main logic 506 may contain high voltage generation circuitry or that capability may reside in another IC within module 500. Further, as previously described, the high voltage generation may use active and or passive components, on a per-chip or per-pin basis. Such a high voltage generating circuit may use a circuit known in the art as a charge pump. Host interface 508 handles the electrical signaling requirements of the particular host device protocol, whether serial or parallel, and communicates with the controller main logic 506 via an internal bidirectional bus 514. Bi-directional memory interface 510 is coupled to drivers 512 which provide the correct electrical drive and reception characteristics for the memory 524, which comprise a plurality of memory chips 522. The operation of a memory array 524 and its address decoding and control requirements are conventional and will be familiar to one of ordinary skill in the art.
Display interface 516 interfaces to display controller IC 532 via electrical data and control signals 528. The display interface is ideally a bi-directional serial interface which minimizes the number of pins used on the module controller IC 536. The display interface 516 may be designed so that it can interface directly to a simple display in the manner of figure 4, or via serial or parallel interface to an external display controller 532. Its selection of mode, whether to be coupled to a display or an external display controller can be determined by strapping, as is well known in the art, or by programmable registers inside module controller IC 536. The bi-directional capability supports reading-back the registers in the display controller IC 532 for display controllers with that capability. A parallel interface may also be used. Operating under control of the controller main logic 506, the display controller 532 is programmed to produce the desired display on non-volatile display 526. The display interface 516 operating display controller 532 works in conjunction with display voltage generation block 518 to permit the elements of the display to be turned on or off as directed by the controller main logic 506.
The use of an external display controller 532 permits a more complex display requiring more electrical connections than would be feasible to couple to a potentially large number of pinson module controller IC 536. Another purpose is to provide a set of consistent interface signals 528 emanating from the display interface 516 capable of supporting multiple versions of display 534. An example of this is application specific displays, that may require different versions of display controller 532. This is achieved while minimizing the pins used on module controller IC 536. An example display, shown in figure 2, is capable of displaying one or more of numerical or graphic storage capacity information, dot-matrix identification information, or iconic status information in one or more display regions. The display 526 is responsive to the display controller 532 output signals 534, and voltages applied via electrical signal lines 530 to alter its displayed information. Display controller 532 and signal lines 530 are both controlled by controller main logic 506. As previously noted, any IC or circuitry within module 500, including display controller 532 may generate the high voltages needed for the display.
One of ordinary skill in the art will be familiar with the general operation of controller- equipped memory modules 500 used for data storage. Frequently such modules use the "PCMCIA/ATA" disk drive command-driven protocol, whereby the host device sends commands and data to the module as if it were a disk drive, and the module controller IC 536 within the module manages the process of storing and reading requested data depending on the command, and erasing portions of memory array 524 as required. Controller-based, command-driven modules 500 are not limited to the ATA command set, nor to a parallel interface. For example, such a module 500 could also use a serial interface and a proprietary command protocol. In either case, a key function of the module controller IC 536 is the management of the memory in the module, and thus it is aware of the total available memory, and the amount currently in use, as well as other pertinent status information that is to be displayed such as error conditions. Module controller IC 536 may optionally be aware of the method used to organize the data stored in the module 500, such as a file system that is being used by the host to logically manage the data storage in module 500. This file system information, or other organizational information may optionally be used by module controller IC 536 to compute the available memory. It is characteristic of file systems that a file erasure may take place by simply rewriting the file tables, in a logical or physical region of memory array 524 that is identifiable to module controller IC 536. In this case, a file erasure may be noted, and a display indication of an increase in the available memory for the user of module 500 may take place without any physical erasure of memory array 524 taking place. Such file systems are frequently used with magnetic disk drives and are well known in the art. Other organization of the stored data may also signal the availability of memory before or after it is actually erased, and these methods can also be incorporated into the remaining storage calculation performed by module controller IC 536. The calculated information pertaining to the amount of storage available is then formatted by the module controller IC 536 for viewing on display 526. Such formatting may be application specific-e.g. a music storage module can display available recording time rather than percentage of raw capacity available, and an indication that the display 526 is operating in an application-specific mode may be indicated by an icon such as 206 in figure 2. The operation of the display 526 in the module 500 of figure 5 proceeds as follows:
Upon the completion of any operation that changes the amount of available storage or causes a change in any condition that can be displayed, the module controller IC 536 calculates and updates the display of available storage or other conditions that can be displayed. An example of this for a module 500 which optionally contains a file system is as follows: The host device issues a command to store (i.e. write) data into the memory array 524 on module 500, erase data from the memory array 524 on module 500, or to perform a file erase of data on the module 500, which, as previously noted, may not cause any physical erasure to take place in memory array 524, and may be recognizable to module controller IC 536 only as a write to regions of memory array 524 that module controller IC 536 recognizes as containing file tables, by their logical or physical locations within memory array 524 or other means specific to the particular file system. In the case of a write, the command to write is followed by the data to be written. The command is processed by the controller main logic 506, and at the end of the data storage, file system table writing or memory erasure operation, the controller main logic 506 calculates and formats information in a form appropriate to the display 526 attached to display controller 532, and transfers the display information to the display controller 532 for display on display 526. The calculation may rely on prior knowledge of the particular file system in use in module 500 or on the presence of another data organization method not involving a file system. Module 500 may be capable of supporting more than one file system. In which case controller main logic 506 may detect the presence of a particular file system or it may select the appropriate logic for a particular file system based on a previously programmed value stored in a non-volatile memory available to module controller IC 536, programmed into module 500 in the manner shown in figure 6. The transfer of data to display 526 involves a series of steps including controlling the display 526 power supply voltage via display voltage generation block 518 and transferring the data to the display interface 516 via bi-directional bus 514. Display interface 516 then transfers data and control signals to display controller 532, which drives the display 534. Display voltage generation block 518 operates under control of controller main logic 506 and in conjunction with display controller 532 to alter the appropriate elements of non-volatile display 526, turning elements on or off as required. The module controller IC 536 may also be responsive to user-initiated commands to alter the module identification information display, the display format or the selected file system, in a manner detailed in figure 6.
As mentioned previously, certain regions of the display and aspects of operation of a display equipped module are initiated by the module's user. For example, the user can specify identifying information for a particular module for the purpose of making the module's display present this information. Another user initiated action is to cause a module which is equipped with multiple display modes or configurations to select a particular display configuration that is appropriate to the user's application. For example, a module used to store images may indicate its "percentage of available free space," or the number of pictures remaining if the amount of storage per picture is constant; or, in the case of a module used with a music player, the amount of free space could be indicated in time units (e.g. hours, minutes and seconds). Other application specific display modes are possible for a module so- equipped. A further example of a user initiated action is specifying that a particular file system or other method of data organization is being used to maintain the file structure of data on a data storage module or specifying a non-file system based method that the memory uses for data storage. From the user's perspective, this might be indicated by the user selecting a particular brand and model of computer or camera from a list, with the result being that information is stored in the module allowing the controller to determine remaining capacity by accessing the data structures of the selected file system. In other words, the user determines which set of instructions should be loaded into the module to make it operate correctly with a particular product, or in a particular application. A default selection of the most popular file system would typically be implemented, and a data storage module need not support the recognition and processing of information from any, or multiple, file systems unless file system based display generation is required. In order for the user initiated update to take place, the host device must contain the information on how to update the information on the particular module, as well as means for the user to enter the module identification, file system or other data storage organization type (including by selection of host product from a list in application software) and display formatting information, as required. The following is a description of the user initiated update of this information. As noted earlier, a microprocessor equipped module with updateable firmware could accommodate new file systems and application specific display formats through the mechanism of a firmware upgrade. Such a display format upgrade would be advantageous, for example, with a display with flexible display characteristics (e.g. a dot matrix display). Uploading new firmware allows host devices and applications that may not have been conceived at the time of the module's manufacture to be supported, through the process of simply inserting the module into a "reader/writer" slot in a computer or other device equipped to store a new control program into the module.
Figure 6 shows a block diagram of a PC 600 equipped module reader/writer 614. The PC 600 may be a desktop or mobile computer. A reader/writer 614 may be interfaced to the PC 600 via serial, parallel, Universal Serial Bus (USB), Small Computer System Interface (SCSI), Peripheral Component Interconnect (PCI), Industry Standard Architecture (ISA), Personal Computer Memory Card International Association (PCMCIA), CardBus (A PCMCIA technical standard based on PCI), IEEE- 1394 (a high speed serial interface) or any other suitable interface 612. The purpose of the reader/writer 614 is to permit the reading and writing of data from and to the module. Module reader/writers 614 and their operation are well known in the art, and will not be described further.
In operation, the display equipped data storage module 620, including its built-in display 618 is inserted into the reader/writer 614 electrically coupling it to the reader/writer via mating connectors 616. The PC is equipped with a monitor or other display 602 coupled by cable or other interconnect 604 to provide a computer display for the PC user, and a keyboard 608 coupled via cable or other interconnect 606 to the PC 600 from which the user may enter commands and data. Note that that a "point and click" graphical interface, as is popular on both computers and consumer electronic products, may also be used with addition of a pointing device, as is well known in the art. The PC 600 is shown to be running application program 610 which contains the instructions and user interface providing for the update of the portion or portions of the display subject to user initiated update, additionally providing means for commanding a module implementing multiple display modes to switch its mode of display, and also providing optional user selection among multiple file systems or other methods of data organization that may be recognized by the module. One of the file systems or methods of data organization selected by the user may be used internally by the module in calculating the available storage space during automatic display update operations previously described and detailed in figure 10.
A PC 600 running application software 610 operates by accessing control and data registers in module 620 not used by the standard or normal storage module interface for the particular type of module, thus allowing user specified information, such as module identification data to be programmed into the display without interfering with the operation of the module in prior art host devices that have no prior knowledge of display equipped modules. This is important because it permits display equipped modules such as 620 and prior art host devices, which may comply with recognized technical standards, to remain compatible and interoperable. For example, in the ATA technical standard, certain registers in the so-called "task file" register set are reserved for vendor-specific purposes, and thus their use will not interfere with normal operation in a host device unaware of the additional capabilities.
Initially the user inserts module 620 into module reader/writer 614. The module 620 is recognized by the Reader/writer 612 and its device driver software in the conventional manner, and made accessible to application software 610 running on the PC 600. The user starts the application software 610, either before or after module 620 is inserted, such that application software 610 is running and prepared to receive commands from the user via the keyboard 608. When the application software 610 is running, it establishes communication with the module 620, and reads the module's specific capabilities with respect to its display 618 and its ability to display identification information, what display modes it supports, including multiple modes if supported, and what file systems, if any, are supported for subsequent internal use in the module 620 in calculations of available memory capacity. Having thus ascertained the capabilities of the module, the application software provides the user with the available options via monitor 602, and after validating the users proposed changes, input via keyboard 608. to verify their compatibility with the actual capabilities of the module, this information is stored in a non-volatile manner in module 620 so that it is retained after the module is removed from the reader/writer 614. At the completion of the process, the user removes the module from reader/writer 614. Note that, in the case of modules equipped to handle file systems in the automatic available storage computation, some modules 620 may support only a single (default) file system.
Note that user initiated updates as described here are not limited to a PC, but can take place on any module-accepting host device equipped with the requisite application software and user interface. For example, a touch sensitive display screen on a camera or other portable device may be able to accept user commands and alpha-numeric text entry. Further, note that additional user initiated commands are possible, such as those supported by the operating system on the host device, or utility software. "Formatting" a module which presents a disk drive interface or uses a file system, which erases all data from the module 620 and sets the available space to 100% is an example of an operating system supported operation. User initiated operations may also include diagnostic and data repair actions, such as correcting an erroneous display or other storage media repairs to module 620 as are known in the art. An example of this is the type exemplified by the well known "Norton Disk Doctor" and similar utility programs described earlier. Note that in the case of file system equipped modules 620, the remaining storage capacity region of display 618 generated during automatic operation by accessing the file system data tables will always be correct, as long as the tables themselves are intact or have been repaired to render them intact.
The operation of the application software 610, and its interaction with the logic or software (firmware) in the module is detailed in figure 7, also with reference to figure 6. In entry step 700, the module is (or has previously been) inserted into the module reader/writer 614 and the user has started-up operation of the application software 610 with the intent to perform a user initiated update of the module 620. In step 702, the application software 610 reads the module's specific capabilities with respect to all possible types of user initiated updates. In step 704, the application software permits the user to select among the functions available. These may include: optionally Update the module identification portion of the display 618, optionally Alter the format of display 618 in an application-specific manner and, optionally, Specify the file system or other method of data organization to be used with the module for the purpose of computing the available storage capacity. If multiple file systems or data organization methods are supported, these may be presented as a selection among brands and models of host devices for the convenience of non-technical end users. At step 704, a user option to "quit" the updating process is also presented. At step 706, if the user has elected to quit by appropriate inputs via keyboard 608, control is transferred to step 716, signifying completion of the operation, and the PC 600 or host system performing the update returns to its idle state with respect to the updating operation. If the user has not quit the updating process, at step 706, the application software 610 validates the users command by verifying that the module 620 is able to accept the type of command proposed (i.e. is capable of displaying identifying information, application-specific formatting of a display 618 or handling the specified file system-based or non-file system-based remaining storage computations for the specified file system or storage method. For example, if the user commands a change in the display 618 format, say from "percent remaining storage capacity" to "hours: minutes: seconds of recording time remaining," the application software validates this command. Only if the requested capability is supported and the module is able to accept the command will the software reach the "write command and data" step 712. If the requested command cannot be handled because of a limitation in the capability of module 620, the user is so told in step 710, and control is returned to step 704 where the user is again permitted to select among the available functions. Thus, at step 708, if the application software 610 determines that the module is capable of processing the command and the command is said to have been "validated."
At step 712, acting on the validated command to alter the identification display, the display format or the selection of file system or other data storage method to be used in subsequent automatic computations by module 620, the application software 610 then writes the commands and data to the registers in module 620 to execute the user's command. These registers are module specific, and are addressed and structured so as not to interfere with the normal operation of the module in a host device unaware of the display capability. The registers may be vendor specific or may be standardized at some future date. At step 714 upon receipt of the commands and data, the logic or firmware in the host device acts to update the display, if a change to the displayed identifying information was commanded, or acts to update the appropriate flags and other required data in a reserved area of the module's nonvolatile memory, or acts to update in the case where a display format change was commanded, or acts to update flags and other required data, in the case of a change to the choice of file system or choice of storage method, if any, to be used subsequent automatic computations of remaining storage capacity. Note that the identifying information may also be stored in a nonvolatile memory in module 620, permitting its readout by application or system software at a later time, in addition to its visible display on display 618.
The control over the display 618 and the storage medium, disk or memory, in the module 620 is done under control of the logic or microprocessor and firmware in the module. When the task is completed, at step 716, the module firmware returns to its idle state awaiting further commands, and the application software running on the PC returns to its idle state, awaiting further user commands. Note that user initiated updates as described here are not limited to a PC, but can take place on any host device equipped with the requisite application software and user interface, as noted previously. A display may also be installed in a removable storage module that does not use a module controller IC distinct from the memory IC or ICs, such as a module containing only memory ICs or with interface capabilities integrated into the memory IC or ICs. An example of this type of module is a "Smart Media" (also known as "SSFDD Card"), or a miniature size "Multimedia Card," an example of which is a module produced by SanDisk Corporation (Sunnyvale, California) and Siemens Semiconductor Corporation — as of writing also known as Infineon Technologies (San Jose, California). Such a module requires a modified memory chip, and may employ additional circuitry. It may use a serial or parallel interface. A detailed description follows in figures 8 and 9. Figure 8 shows a block diagram of a storage module 800 using one or more nonvolatile memory ICs 802 and 804, equipped with non-volatile display 812. The host interface 806 drives a shared address, data and control bus 808 connected to all the memory ICs in the module. However, in an alternative embodiment, one memory IC could provide a host interface, for example a serial interface, and generate an internal memory bus, thus coupling only memory IC 802 to the host interface 806. Continuing the description of the present embodiment, in figure 8, module 800, a modified memory IC 802 includes display control logic 803 which determines the percentage of the module 800 storage capacity in use may generate additional display data and provides signals and display voltages and high voltages 810 that drive the non-volatile display 812. The high voltage generation circuitry may be the type of circuit well known in the art as a charge pump, and it may use external passive or active component, or both passive and active components to generate high voltage. Such components may be on a per-chip or per-pin basis (e.g. components may be associated with the entire chip, or with one or a plurality of individual pins). The display control logic 803 may optionally include prior knowledge of a file system used by the host device to organize data stored in the module, or other non-file system based data organization, and may access that data in calculating the remaining available storage space for purposes of displaying the available storage space on display 812, as described previously. Note that, if a file system is present, the occurrence of a file erase may be indicated by a write operation to file table maintained by the host file system in the memory array which comprise memory ICs 802, 804 and any other memory ICs in the module without any physical erasure of the file taking place. In such a case, the Display control logic 803 may recognize the updating of these file tables based on its prior knowledge of the logical or physical location ofthe tables or by other means related to its prior knowledge of the file system's operation. Display control logic 803 may also have prior knowledge of the data organization that is not file-system based. In any case, display control logic 803 will automatically update the display at the completion of any event that results in a change to the available storage capacity of the module 800 or a change to any displayable information. The display control logic 803 may include the use of nonvolatile memory to allow the last calculated module storage availability data to be restored to the display control logic 803 at module 800 power-up, or it may be recalculated, as would be the case when the calculation was based on file system data. The display control logic 803 in IC 802 has reserved pins 814 "strapped" to the positive power supply or to ground to indicate the total capacity of the module at the time it powers up. The conventional manner of "strapping" to control an ICs power-up configuration is a technique well known in the art.
In operation, the module 800 receives commands, addresses, data, control signals and power over host interface 806. The addressing of the memory ICs 802 and 804 is configured on the internal bus 808 (which is not connected to host interface 806 in an alternative embodiment noted above) so that only the appropriate memory IC in the memory array which comprise comprised ICs 802 and 804 accepts the commands and data designated for it. However, memory IC 802, which has been modified to include display control logic 803 also "snoops" (i.e. monitors) all write and erase operations to IC 804 and any other ICs in a module which comprises additional memory ICs up to 'n' ICs of the same type as 804 on the module. The ability of the display control logic 803 to recognize write and erase commands to the module, combined with its prior knowledge of the operation of an optional file system, if present, and further combined with the strapping information encoded on pins 814 indicating the total capacity of the module to the display control logic 803, provides the necessary information to allow the display control logic 803 in memory IC 802 to generate the correct display of memory capacity remaining in the module. Note that the information displayed on non-volatile display 812 is not limited to capacity information, and may include any of the previously discussed identification, status, error condition and other iconic displays, and numeric and graphical displays. Optionally, in host devices where power is removed from the module at the completion of a read, write or erase operation, the card may signal to the host device that it is "busy" (i.e. has not completed its operation if additional time is required to update the display). Furthermore, in order to overlap the memory and display storage operations, the display updating may be initiated as soon as the display control logic 803 has determined what the change in available storage capacity will be, before the actual read, write or erase operation completes.
Figure 9 shows a block diagram of a storage module 900 using one or more nonvolatile memory ICs 902 and 904, equipped with non-volatile display 914 which is coupled to a display controller IC 912. The display controller IC 912 is coupled to the display control logic 903 in modified memory IC 902. The host interface 906 drives a shared address, data and control bus 908 connected to all the memory ICs in the module. However, in an alternative embodiment, one memory IC could provide a host interface, for example a serial interface, and generate an internal memory bus, thus coupling only memory IC 902 to the host interface 906. Continuing the description of the present embodiment, in figure 9 module 900, a modified memory IC 902 includes display control logic 903 which determines the percentage of the module 900 storage capacity in use, may generate additional display data and may provide display controller interface 910 that provides address, data and control signals or otherwise communicates (e.g. through a serial interface to display controller IC 912, and may optionally generate display controls high voltages signals 91 1 to display 914). The display controller IC 912 may also generate the display control high voltages internally. In any case, the high voltage generation circuitry may be the type of circuit well known in the art as a charge pump and it may use external passive or active component, or both passive and active components to generate high voltage. Such components may be on a per-chip or per-pin basis (e.g. components may be associated with the entire chip, or with one or a plurality of individual pins). An advantage of using a separate display controller 912 is that a serial interface can be used on signals 910, minimizing the number of additional pins on modified memory IC 902. A further advantage is that display controller IC 912 can drive a large number of signals to non-volatile display 914, supporting a more complex display than would be feasible if the display were driven directly from the display logic in IC 902. Modified memory IC 902 may be configured at power up by strapping pins 918 so it is aware of whether it is coupled to a display controller IC 912, or coupled to a display 914 without an intervening display controller IC 912, as is display 812 in figure 8. This in addition to other strapping of modified memory IC 902 described below. The display control logic 903 may optionally include prior knowledge of a file system used by the host to organize data stored in the module and may access that data in calculating the remaining available storage space for purposes of displaying the available storage space on display 914, as described previously. Note that, if a file system is present, the occurrence of a file erase may be indicated by a write operation to file table maintained by the host file system in the memory array which comprise memory ICs 902, 904 and any other memory ICs in the module, without any physical erasure of the file taking place. In such a case, the display control logic 903 may recognize the updating of these file tables based on its prior knowledge of the logical or physical location of the tables or by other means related to its prior knowledge of the file system's operation. The display control logic 903 may include the use of non-volatile memory to allow the last calculated module storage availability data to be restored to the display control logic 903 at module 900 power-up or it may be recalculated, as would be the case when the calculation was based on file system data or prior knowledge of another method of data organization used in module 900. The display control logic 903 in IC 902 has reserved pins 918 "strapped" to the positive power supply or to ground to indicate the total capacity of the module at the time it powers up. The conventional manner of "strapping" to control an ICs power-up configuration is a technique well known in the art.
In operation, the module 900 receives commands, addresses, data, control signals and power over host interface 906. The addressing of the memory ICs 902 904 is configured on the internal bus 908 (which is not connected to host interface 906 in an alternative embodiment noted above) so that only the appropriate memory IC in the memory array which comprises ICs 902 and 904 accepts the commands and data designated for it. However, memory IC 902, which has been modified to include display control logic 903 also "snoops" (i.e. monitors) all write and erase operations to IC 904 and any other ICs in a module which comprises additional memory ICs up to 'n' ICs of the same type as 904 on the module. The ability of the display control logic 903 to recognize write and erase commands to the module, combined with its prior knowledge of the operation of the internal data organization which may include an optional file system, if present, and further combined with the strapping information encoded on pins 918 indicating the total capacity of the module to the display control logic 903, provides the necessary information to allow the display control logic 903 in memory IC 902 to generate the correct signals and commands to display controller IC 912 and optionally high voltages to display 914, resulting in display of memory capacity remaining in the module. Note that the information displayed on non- volatile display 914 is not limited to capacity information, and may include any of the previously discussed identification, status, error condition and other iconic displays, and numeric and graphical displays.
Figure 10 shows an example of a flowchart of internal module logic or firmware running on a microprocessor to automatically update an on-module display at pre-determined times at the completion every write or erase operation. This updating is based on information available within the module, including the optional use of module data organization information or file system data if present in the module and a further optional provision for application-specific display formatting, for example, a module dedicated to or configured for music storage could light up a 'music note icon' and generate a display of available recording time in 'hours: minutes: seconds' format.
Step 1000, "Update display" is the entry point in the module control logic or firmware, referred to hereafter in this figure 10 description as module control logic. It is entered after any operation that changes the amount of available data storage or any operation that changes the value of any information that can be displayed. Note that, as previously described, a file erase in a module where the data storage is managed by a host based file system, may only be recognizable to the module controller IC (for example 432 in figure 4) as a write to logical or physical regions of memory or logical or physical sectors containing the file system tables. Other, non-file-system types of data organization may also signal changes in available capacity without physical erasure taking place. At the point where it makes the computation of the available storage capacity, the logic or firmware has available to it the amount of data that was written or erased, as well as the previously computed value of remaining storage capacity, and optionally knowledge of a file system or other non file system based method of data organization in use on the module. At step 1002, the module control logic determines whether it has optionally been configured for operation with a particular file system or other method on the module, for example as discussed in relation to figure 7, or is in an optional default mode of operating on the basis of a file system or other method of which it has prior knowledge and such a default file system is actually detected. If either of these conditions is met, file system based operation or operation based on another storage method of which the module controller IC (for example 432 in figure 4) has prior knowledge is indicated and control is transferred to step 1004. If file system or other prior knowledge based operation is not detected, then control proceeds to step 1006. At step 1004 (file system or other non-file system based available storage calculation), the available storage calculation is based on accessing file system or other appropriate information stored in the module. The module control logic may detect a particular file system or detect another method in use, or it may have received a prior instruction to use a particular type of file system or data storage method, for example as described in relation to figure 7. In both cases; the module control logic has prior knowledge during the process of automatically updating the available storage calculation of both the structure and interpretation of the data in the data structures or file tables maintained by the file system or other storage method and the ability to locate them in the storage medium or memory array. Such methods of location can include but are not limited to associating a particular logical address or addresses, or logical sector number or number, or physical storage or memory address or location with the file system data structures or file tables, or recognizing specifically defined bits at specified locations in the memory array. Note that the prior knowledge of the particular file system or data storage method is required only at the time of the calculation so that a microprocessor and firmware based module with updateable internal firmware could be updated to recognize and properly handle new file systems and data storage methods introduced after the module has been shipped. The file system based storage calculation may take into account all relevant information in the file tables, such as regions of the storage medium or memory, or sectors in the case of storage devices presenting a disk interface which are marked bad or reserved. As noted earlier, such a calculation will always be correct as long as the integrity of the file system data structures or data tables is intact, permitting the use of popular utility programs as may be appropriate to the module type, such as "Norton Disk Doctor." Any other internal information in the module relevant to the calculation may also be used. Calculations for non- file-system based storage methods may use all relevant data pertaining to the usage and availability of data storage. At the completion of this calculation, control is transferred to step 1008.
At step 1006 (internal memory management data based available storage calculation), the available storage capacity is calculated based on the known capacity of the storage module, and the known amount of the storage capacity currently in use, by subtracting: (total storage) - (storage in use) = remaining storage. Additionally, other internal data, such as reserved memory, internal memory management data or defective memory not available is used in this calculation. Control is then transferred to step 1008.
At step 1008 the module control logic tests whether the module has the capability of displaying information formatted in an application-specific manner, and if so. is it enabled? If the answer is no, control proceeds to step 1012. If the answer is yes (i.e.e.g. both supported and enabled), the logic or firmware proceeds to step 1010.
At step 1010, the module control logic looks in its non- volatile memory dedicated to storing display formatting information and determines which of the available formats to use. Note that, in a manner akin to the mechanism described above where support for new file systems can be added by updating the firmware in a module so capable support for additional application specific display formats may be included in such a firmware update. If the user has not specified a particular format, a default value, established in this dedicated non-volatile memory at module initialization is used. Based on the display format indicated by the above tests, the display data is appropriately formatted. This formatting is based not only on the available storage capacity, but also on other status and internal information available within the module, such as the presence of error conditions. Control then proceeds to step 1012.
At step 1012, if the module is incapable of displaying multiple data formats, the values for display in the single format supported by that module are computed. Also in step 1012, the display itself is updated under control ofthe module control logic.
At step 1014, the display updating task is completed and the module control logic pertaining to the Automatic Display Update returns to its idle state. Certain modules may operate as a memory storage module when inserted into a host device and may include additional functionality as well. Such a module might contain a battery and implement a self-contained function such as a miniature camera or an audio recorder such as a dictation machine. In operation, those devices will typically store data into their internal memory or other storage medium such as a magnetic disk. Because these modules contain a data storage module interface intended to operate in a host device, it is also advantageous for the user to be aware of the status of the device, including its available memory capacity, identification data, or other status information. Such a module may or may not contain a battery or external power connection, depending on the specific application. The principle of operation of such a self-contained device with respect to the automatic updating of its display and user initiated actions in defining the display format, identification data, and other parameters are the same as described with respect to figures 1 - 7, including the optional use of prior knowledge by the module's internal controller of the data storage method or the details and interpretation of a host maintained file system used to manage the data stored in the module.
Figure 11 shows a removable data storage module equipped with a display and self- contained dictation machine functionality referred to in the following discussion as dictation module 1100. Dictation module 1100 contains memory ICs 1 102 which are coupled to main logic IC 11 10 via internal memory bus 1 106 via memory power, address, data and control signals 1108. Host interface 1004 permits dictation module 1 100 to operate as a conventional removable data storage module and may be a standards compatible host interface to permit the dictation module 1100 to operate with a wide variety of hosts supporting standardized removable data storage modules. Main logic IC 11 10 includes the digital and analog circuitry comprising a self-contained dictation machine and also contains the data storage module controller logic 1130, the interface to the internal memory bus 1106, the display interface logic coupled to display signals 1112, a low-level analog signal interface coupled to microphone 1116 via microphone interconnect lines 11 18, an interface to user controls 1122 via user control signals 1124 and an output connection to drive miniature loudspeaker 1128 via speaker signals 1126. The user controls, typically a potentiometer (volume control) or digital encoding switch, and separate dictation function specific switches such as 'record' and 'play,' permit the user to operate the dictation module 1100 in a self-contained manner. Note that a user control may be provided to permit operation of the external display to permit storage capacity and other data storage module information to be displayed if the display is of a volatile type, requiring power to provide a visible indication. During operation as a self- contained device, power is provided by battery 1120. A volatile or non-volatile display 11 14 is coupled to main logic IC 1110 via display interface signals 1 112. Note that since a battery is present in this embodiment, it is not necessary to use a non-volatile display, although the use of a non-volatile display would permit the display to be visible at all time without imposing any battery drain. This display may provide the user with information tailored to the particular application (e.g. capability related to indexing into the recorded audio when the dictation module 1 100 is used as a stand-alone dictation machine). In addition to the dictation machine functions, however, display 1114 also includes information pertaining to one or more of the module's remaining storage capacity, module identity, and module status information. Operation as a removable memory storage module is governed by the data storage module controller logic 1130 contained within the main logic IC 1110.
The operation of a digital voice recorder will be familiar to those skilled in the art, so the following description of operation will focus only on the areas of novelty related to the invention. During self-contained operation, the user will operate user controls 1 122 and speak or enter audio into the dictation module 1100 via microphone 1 116. Audio playback is achieved through miniature loudspeaker 1128. The display 1 1 14 may provide information to the user useful in this mode of self-contained operation, as noted above. At some later time, the user inserts the removable storage dictation module 1 100 into a host device such as a camera or PC. At that time, the storage module controller logic 1 130, interacting with the host device and operating in the manner of figures 4, 5, 6, 7 and 10 automatically and in the user initiated manner described for those cases of updating, updates the elements of display 8 pertaining to one of more of remaining storage capacity information, identifying information, and status information, including graphical, alpha-numeric text, and iconic displays. As noted in those figures and the associated text, the display of available storage capacity may optionally involve the use of file system information stored within the dictation module 1100, or the use of other, non- file-system based methods of organizing the data, known to the controller logic 1130. When the user subsequently removes the module from the host device, he is free to continue using the device in its self-contained mode of operation as before.
This invention has been described relative to specific embodiments. Modifications that become apparent to persons of ordinary skill in the art only after reading this document are deemed within the spirit and scope of the invention. Applicant's use of the term "plurality" shall defined as one or more.

Claims

CLAIMSWhat is claim is:
1. A data storage module comprising: memory means for storing data files; non-volatile display means for displaying status information regarding the memory; and updating means to automatically update display means.
2. The data storage module of claim 1 wherein the updating means is a module controller.
3. The data storage module as recited in claims 1 or 2 wherein the status information comprises information regarding the remaining storage capacity ofthe memory means.
4. The data storage module as recited in claim 3 wherein the status further comprises identification information regarding the contents of the memory means.
5. A circuit for automatically updating a non-volatile display on a non-volatile memory module comprising: a main logic circuit for command processing and memory management; a host interface coupled to the main logic circuit for providing the exchange of electronic signals with a host device; a plurality of drivers coupled to the main logic circuit and a memory array providing electrical drive and reception characteristics for the memory array; a display interface with display logic circuit coupled to the non-volatile display and the main logic to drive the non-volatile display; and display voltage generation circuit coupled the main logic circuit, the display interface and the non-volatile display for providing voltage and timing to the non-volatile display.
6. The circuit of claim 5 further comprising a display controller coupled to the display interface and the non-volatile display.
7. The circuit recited in claims 5 or 6 futher comprising a microprocessor and firmware.
8. A removable data storage module for use with a host device comprising: a substrate for electrical coupling; a non-volatile display with holding means to conductively attach the non-volatile display to the substrate; a controller attached to substrate and coupled to the non-volatile display to support internal operation ofthe module; a non-volatile memory means coupled to the controller for storing data files; a connector coupled to the substrate to removably connect the module to the host device; a frame coupled to substrate to provide rigidity and mechanical integrity; a first cover attached to the frame with a transparent port through which the non- volatile display is viewable; and a second cover attached to frame opposite the first cover.
9. The module as recited in claim 8 further comprising a display controller coupled to the non-volatile display.
10. The module as recited in claims 8 or 9 wherein the non-volatile memory means is a plurality of memory circuits.
11. The module as recited in claims 8 or 9 wherein the non- volatile memory means is a rotating storage medium.
12. A removal data storage module for use with a host device comprising: a plurality of memory circuits wherein one memory circuit provides host interface to host device further comprising a display control logic circuit; a non-volatile display to display status and identification information regarding the memory circuits; and high voltage control means coupled to the non-volatile display for providing high voltage to the non-volatile display;
13. The module as recited in claim 12 further comprising a display controller coupled to the display control logic circuit.
13. A method for automatically updating the non-volatile display of a removal data storage module with non-volatile memory, the method comprising the steps of: recognizing an operation which changes information to be displayed; determining whether module has been configured for operation with a particular file system or other method; computing remaining storage capacity of module based on file system or data storage method if module has been configured for operation with a particular file system or method; computing remaining storage capacity of module based on internal memory management data if module has not been configured for operation with a particular file system or method; determining if application specific display format is supported and enabled; identifying application specific display format from a non- volatile table in the memory if application specific display format is supported and enabled, other wise use a default display format; formatting display based on display format; and sending voltage signals to update elements ofthe non-volatile display.
PCT/US2000/020755 1999-07-29 2000-07-28 Removable data storage module incorporating a display WO2001009827A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU63918/00A AU6391800A (en) 1999-07-29 2000-07-28 Removable data storage module incorporating a display

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14645199P 1999-07-29 1999-07-29
US60/146,451 1999-07-29
US60382800A 2000-06-26 2000-06-26
US09/603,828 2000-06-26

Publications (1)

Publication Number Publication Date
WO2001009827A1 true WO2001009827A1 (en) 2001-02-08

Family

ID=26843924

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/020755 WO2001009827A1 (en) 1999-07-29 2000-07-28 Removable data storage module incorporating a display

Country Status (2)

Country Link
AU (1) AU6391800A (en)
WO (1) WO2001009827A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006023311A2 (en) 2004-08-20 2006-03-02 Smartdisk Corporation Self-labeling digital storage unit
DE102008017401A1 (en) * 2008-04-05 2009-10-08 Leopold Kostal Gmbh & Co. Kg Static information transmission and representation system for vehicle, has control electrodes for transferring information to display element, and control electronic circuit for controlling of control electrodes
EP2332538A1 (en) 2004-05-21 2011-06-15 Japan Tobacco, Inc. Combinations comprising a 4-isoquinolone derivative and anti-HIV agents
GB2544581A (en) * 2015-11-20 2017-05-24 Avexir Tech Corp Solid state disk

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950502A (en) * 1995-08-04 1997-02-18 Smk Corp Memory card
US5721655A (en) * 1996-07-15 1998-02-24 Electronic Data Systems Corporation Method for labeling a removable media cartridge
US5751257A (en) * 1995-04-28 1998-05-12 Teletransactions, Inc. Programmable shelf tag and method for changing and updating shelf tag information
US5986992A (en) * 1997-04-07 1999-11-16 Sony America Disk cartridge with programmable LCD capacity display indicator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751257A (en) * 1995-04-28 1998-05-12 Teletransactions, Inc. Programmable shelf tag and method for changing and updating shelf tag information
JPH0950502A (en) * 1995-08-04 1997-02-18 Smk Corp Memory card
US5721655A (en) * 1996-07-15 1998-02-24 Electronic Data Systems Corporation Method for labeling a removable media cartridge
US5986992A (en) * 1997-04-07 1999-11-16 Sony America Disk cartridge with programmable LCD capacity display indicator

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Drive status display in storage device", IBM TECH. DIS. BULL., vol. 38, no. 2, February 1995 (1995-02-01), pages 89 - 90, XP002931230 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2332538A1 (en) 2004-05-21 2011-06-15 Japan Tobacco, Inc. Combinations comprising a 4-isoquinolone derivative and anti-HIV agents
WO2006023311A2 (en) 2004-08-20 2006-03-02 Smartdisk Corporation Self-labeling digital storage unit
EP1810116A2 (en) * 2004-08-20 2007-07-25 Smartdisk Corporation Self-labeling digital storage unit
EP1810116A4 (en) * 2004-08-20 2012-01-04 Mitsubishi Kagaku Media Co Ltd Self-labeling digital storage unit
US8578063B2 (en) 2004-08-20 2013-11-05 Mitsubishi Kagaku Media Co., Ltd. Self-labeling digital storage unit
DE102008017401A1 (en) * 2008-04-05 2009-10-08 Leopold Kostal Gmbh & Co. Kg Static information transmission and representation system for vehicle, has control electrodes for transferring information to display element, and control electronic circuit for controlling of control electrodes
DE102008017401B4 (en) * 2008-04-05 2020-02-13 Leopold Kostal Gmbh & Co. Kg System for the transmission and presentation of information
GB2544581A (en) * 2015-11-20 2017-05-24 Avexir Tech Corp Solid state disk

Also Published As

Publication number Publication date
AU6391800A (en) 2001-02-19

Similar Documents

Publication Publication Date Title
US7278051B2 (en) Field-operable, stand-alone apparatus for media recovery and regeneration
US6042478A (en) Hand held video game
KR100980905B1 (en) Data storing apparatus
US6839864B2 (en) Field-operable, stand-alone apparatus for media recovery and regeneration
US7162549B2 (en) Multimode controller for intelligent and “dumb” flash cards
EP0689127B1 (en) Recording and/or reproducing system and data backup system
US20040143716A1 (en) Folding USB flash memory device for providing memory storage capacity
US7757036B2 (en) Storage control apparatus capable of analyzing volume information and a control method thereof
JP3016490B2 (en) IC memory card
US7640425B2 (en) Disk apparatus and electronic apparatus
JPH0514294B2 (en)
JPH09147545A (en) Memory card and information processing device
CZ283632B6 (en) Personal computer
WO2001009827A1 (en) Removable data storage module incorporating a display
US20050092846A1 (en) Simulated smartmedia/XD-picture memory card capable of using various kinds on non-volatile memory
US20060289642A1 (en) Method of simulating an optical disk drive by a memory card and method of reading the memory card
CN103870209A (en) Working mode switching method, memory controller and memory storage device
KR100239033B1 (en) Studying implement using ic memory card
KR200369640Y1 (en) Storage volume information display enabled storage related devices
TWI243995B (en) Multimode controller for intelligent and ""dumb"" flash cards
JP4875148B2 (en) Information processing apparatus and storage media drive
KR20020030695A (en) Method for automatically testing stability and basic functionality of server
KR100280321B1 (en) Device and method for formatting a memory card in digital still camera
KR200281479Y1 (en) Portable Data Storage Device
JP4465746B2 (en) Storage device adapter and connection method using the same

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
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

Ref country code: JP