This patent application is related to Non-Provisional U.S. patent application Ser. No. 10/654,135, entitled “MEMORY CARD WITH A MODULAR COMPONENT” , filed on even date herewith, assigned to the assignee of the present invention, and incorporated herein by reference.
The need for portability and ease in capturing and saving information from various locations away from a user's office or work has resulted in a proliferation of portable electronic devices, such as digital cameras, personal digital assistants, and notebook computers. With the proliferation of portable electronic devices, the use of form factor cards adapted for use with these devices is steadily increasing as well, and the uncertainty of the portable electronic device market has also spilled over to the form factor card market.
The uncertainty of the form factor card market has resulted in several form factor card standards jockeying to become the dominant standard. The term “form factor card” is a general term often used to describe a memory card employing a variety of different standards, such as a SONY Memory Stick or Compact Flash card, but also applies to cards that perform other functions, including I/O cards such as serial cards, Ethernet cards, fax/modem cards, wireless pagers, and multimedia cards. Unfortunately, since none of the existing or emerging card standards are able to meet 100% of customer needs, a dominant standard has not emerged and is unlikely to emerge in the foreseeable future.
Consequently, a memory card manufacturer is forced to supply separate memory cards that accommodate the myriad of existing and emerging memory card technologies. If a memory card manufacturer wants to compete in the market, the memory card manufacturer must take into account all of the different memory card standards, which include both device interface standards and storage technology standards. For example, if there are N interfaces in the market and M different storage technologies, then the memory card manufacturer may design N times M memory cards employing different control systems to offer a full portfolio of memory cards and compete in the memory card market. This results in significant delays and could require many months to specify, design, verify, fabricate, and test the memory card before it may be brought to market. For example, a typical design period may encompass 18 months.
A need exists for a manufacturer to be able to leverage the development of memory cards by allowing the most efficient use of resources and accelerating time to market without increasing the cost of producing a memory card.
One exemplary embodiment of the present disclosure provides a memory card comprising a first modular component that comprises a first host interface and a first host interface module and a device interface module configured to operate a device interface that is coupled to a storage device. The first host interface module is configured to call a function in the device interface module. The first modular component is replaceable with a second modular component that comprises a second host interface and a second host interface module, and the second host interface module is configured to call the function in the device interface module.
Embodiments of the invention are better understood with reference to the following drawings. The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts.
a is a flow chart illustrating an embodiment of a method performed by a host interface module.
b is a flow chart illustrating an embodiment of a method performed by a system module.
c is a flow chart illustrating an embodiment of a method performed by a device interface module.
Host 12 communicates with memory card 14 to read information from and write information to memory card 14. Host 12 may be any device that utilizes memory card 14. For example, host 12 may be a digital camera, an MP3 player, a digital camcorder, a personal digital assistant, a laptop, a notebook computer, or another computing device. In one embodiment, host 12 is a personal digital assistant or “PDA”.
Each modular component 16a and 18a is configured according to one or more interface standards. The interface standards include host-to-memory card interface standards such as CompactFlash as set forth by the CompactFlash Specification Version 2.0 and any prior or subsequent versions, Secure Digital as set forth by the SD Memory Card Specifications Version 1.01 and any prior or subsequent versions, PCMCIA as set forth by the PC Card Standard 8.0 and any prior or subsequent versions, and Memory Stick according to specifications implemented by Sony Electronics Corporation, and data storage device interface standards such as an interfaces to magnetic random access memory (MRAM) and flash memory.
The CompactFlash Specification Version 2.0 may be available from the CompactFlash Association, P.O. Box 51537, Palo Alto, Calif. 94303. The SD Memory Card Specifications Version 1.01 may be available from the SD Card Association, 719 San Benito Street, Suite C, Hollister, Calif. 95023. The PC Card Standard 8.0 is available from PCMCIA, 2635 North First Street, Suite 209, San Jose, Calif. 95134. Memory Stick specifications may be available from Sony Electronics Corporation.
The interface specifications define the mechanical, electrical, and/or protocol attributes of an interface between two or more components. Modular components 16a and 18a are each configured such that they are replaceable by another modular component 16b and 18b, respectively. Modular components 16b and 18b are configured according to different interface standards than modular components 16a and 16b.
Data storage device 22 comprises a non-volatile memory. Non-volatile memories include flash memory, magnetic random access memory (MRAM), and other persistent storage device such as a micro disk drive.
Host interface module 30, system module 34, and device interface module 36 each comprise firmware that includes instructions configured to perform the functions described herein. The instructions are readable from one or more storage devices (not shown) and executable by one or more processors in memory card 14 (not shown).
System module 34, host interface module 30, and device interface module 36 each include discrete functions according to a defined interface. System module 34 includes functions that call other functions in host interface module 30 and device interface module 36 as indicated by arrows 44 and 46, respectively. System module 34 also includes functions for managing and controlling the overall operation of memory card 14. Host interface module 30 includes functions that control host interface 38 and portions of data mover 40 as indicated by an arrow 48. Host interface module 30 also includes functions that call functions in system module 34 and device interface module 36 as indicated by arrows 44 and 49, respectively. Device interface module 36 includes functions that control device interface 42 and portions of data mover 40 as indicated by an arrow 50. Device interface module 36 also includes functions that may call other functions in system module 34 and host interface module 30 as indicated by arrows 46 and 49, respectively.
In the embodiment of
In particular, host interface 38 and host interface module 30 of modular component 16a may be replaced with another host interface and host interface module in modular component 16b that implements a second type of interface between host 12 and memory card 14. Modular component 16b provides the same functional interface, i.e. the ability to call the same functions, to system module 34 and device interface module 36 as modular component 16a. In addition, modular component 16b is configured to call the same functions in system module 34 and device interface module 36 as modular component 16a.
Similarly, device interface 42 and device interface module 36 of modular component 18a may be replaced with another device interface and device interface module in modular component 18b that implements an interface to a second type of data storage device 22, e.g. flash memory. Modular component 18b provides the same functional interface, i.e. the ability to call the same functions, to system module 34 and host interface module 30 as modular component 118a. In addition, modular component 18b is configured to call the same functions in system module 34 and host interface module 30 as modular component 18a.
Host interface module 30 effectively hides the details of host interface 38 from system module 34 and device interface module 36 by using hardware abstraction layers. Similarly, device interface module 36 effectively hides the details of device interface 42 from system module 34 and host interface module 38 by using hardware abstraction layers.
System module 34 manages the transfer of information between host 12 and data storage device 22. Host electronic device 12 communicates with memory card 14 by providing commands to host interface 38. System module 34 detects commands received by host interface 38 and calls functions in host interface module 30 and/or device interface module 36 associated with the commands. In addition, system module 34 performs diagnostic, power management, and clock control functions.
Host interface module 30 operates according to a host interface protocol to communicate with host electronic device 12. Host interface module 30 interface protocols include CompactFlash, Secure Digital, Memory Stick, and other suitable host interface protocols.
In one embodiment, host interface module 30 operates as a CompactFlash interface meeting the CF+ and CompactFlash Specification Version 2.0 as set forth by the CompactFlash Association. The CF+ and CompactFlash Specification Version 2.0 are incorporated by reference herein. Host interface module 30 initiates data transfers, operates in supported CompactFlash modes (e.g., PC card memory, PC Card I/O and true IDE), maintains contents of a Card Information Structure (CIS) RAM, manages configuration parameters, and receives and executes CompactFlash ATA commands via the command parser 51.
Device interface module 36 configures device interface 42 for data transfers between data mover 40 and data storage device 22. Device interface module 36 may also perform error detection and correction and may implement sparing algorithms to improve storage efficiency of data storage device 22.
In one aspect, host interface module 30 acts as a master module relative to device interface module 36 by communicating with host 12 via host interface 38 and initiating all command executions when host interface 38 receives the host specific command from host 12. Thus, device interface module 36 acts as a slave to host interface module 30 by responding to the host commands received from host 12 via host interface module 30. Device interface module 36 includes detailed knowledge of the technology used by data storage device 22.
In one embodiment, host 12 read and write commands are based on logical block addressing. In one embodiment, device interface module 36 checks all sectors in data storage device 22 via spare lookup 76 to see if data requested by host 12 has been relocated on data storage system 22. In one aspect, device interface module 36 uses sparing tables to look up a logical block address included in the operation request and determine a physical sector address of any sector of data storage device 22. Device interface module 36 also communicates its state of execution of commands (e.g., busy, idle, etc.) to host interface module 30.
a, 6b, and 6c are flow charts illustrating a method for executing a command in a memory card with modular components. The method will be described with reference to the embodiment shown in
Referring to
Referring to
Referring back to
The command function calls one or more functions in host interface module 30 to set up host interface 38 and data mover 40 to allow the command to be executed as indicated in a block 610. The functions to set up host interface 38 and data mover 40 may depend on the command to be executed. For a read command, data mover 40 is set up to receive information from data storage device 22 over device interface 42, and host interface 38 is set up to provide information from data storage device 22 to host 12. For a write command, host interface 38 is set up to receive information from host 12, and data mover 40 is set up to provide information from host interface 38 to device interface 42.
The command function also calls a function associated with the command in device interface module 36. For example, the command function may call a function labeled “StartRead” if the command is a read. Similarly, the command function may call a function labeled “StartWrite” if the command is a write. The command function passes parameters from host interface module 30 to device interface module 36 by calling the function in device interface module 36. The parameters for read and write commands include an address in the form of a logical block address and a size of the data transfer.
Referring to
Device interface module 36 causes the device interface 42 and data storage device 22 to perform an action associated with the function as indicated in a block 634. The action depends on the command provided by host 12. For example, if the command is a read, device interface module 36 causes the device interface 42 to receive information from data storage device 22 from the physical block address and provide the information to data mover 40. Data mover 40 then provides the information to host 12 over host interface 38. If the command is a write, device interface module 36 causes the device interface 42 to provide information to data storage device 22 from data mover 40 and store the information at the physical block address.
Device interface module 36 and/or device interface 42 may also perform error detection and correction and/or sparing algorithms on information read from data storage device 22. Device interface module 36 and/or device interface 42 may further add ECC parity bytes to information written to data storage device 22. Because device interface module 36 and device interface 42 are closely linked to data storage device 22, these additional operations are performed without being visible to host 12, host interface module 30 and system module 34 and the operations may be specific to the type of data storage device 22.
Referring back to
Referring to
In one embodiment, host interface module 30 can cause a read or write command to be stopped in response to an abort command from host 12 by calling an abort function in device interface module 36. In response to executing the abort function, device interface module 36 causes any current operation on data storage device 22 to be stopped using device interface 42 and causes status information to be sent back to host interface module 30.
As illustrated in
With device interfaces 42 and 112, memory card 14 is configured to include two different types of data storage devices 22 and 122, e.g. an MRAM storage device and a flash memory storage device. In one embodiment, device interface module 36 is configured to operate data storage device 22 and data storage device 122. In other embodiments, device interface module 30 may operate data storage device 22 and another device interface module (not shown) may be included to operate data storage device 122.
In one embodiment, only one of data storage devices 22 and 122 is present in memory card 14. For example, the least expensive of data storage devices 22 and 122 may be included. In other embodiments, memory card 14 may include both data storage devices 22 and 122 to utilize advantages of different types of storage devices.
Number | Name | Date | Kind |
---|---|---|---|
6182162 | Estakhri et al. | Jan 2001 | B1 |
6353870 | Mills et al. | Mar 2002 | B1 |
6385677 | Yao | May 2002 | B1 |
6438638 | Jones et al. | Aug 2002 | B1 |
6741934 | Chen et al. | May 2004 | B1 |
6776348 | Liu et al. | Aug 2004 | B1 |
6817531 | Taussig et al. | Nov 2004 | B1 |
6842335 | Hanson et al. | Jan 2005 | B1 |
6980465 | Taussig et al. | Dec 2005 | B1 |
6984152 | Mowery et al. | Jan 2006 | B1 |
6993601 | Minami et al. | Jan 2006 | B1 |
20040030820 | Lan | Feb 2004 | A1 |
20040180692 | Yang et al. | Sep 2004 | A1 |
20050078195 | VanWagner | Apr 2005 | A1 |
20050268162 | Milligan et al. | Dec 2005 | A1 |
Number | Date | Country |
---|---|---|
0929043 | Jul 1999 | EP |
1049325 | Nov 2000 | EP |
1146428 | Oct 2001 | EP |
Number | Date | Country | |
---|---|---|---|
20050060464 A1 | Mar 2005 | US |